PageSourceSearch

https://flow.team/flow-renewal/js/signinview/header/SignHeaderNFooter.js?ver=8.12727.3507.96053

js flow.team collected 2026-10-01 15:48:06 UTC 6,821 bytes, 161 lines download raw bytes

1var HeaderNFooter = (function () {
2
3    var urls = {
4        manual : "https://support.flow.team/hc/ko",
5        faq: "https://support.flow.team/hc/ko/categories/204406027-%EC%9E%90%EC%A3%BC-%EB%AC%BB%EB%8A%94-%EC%A7%88%EB%AC%B8",
6        tip: "https://post.flow.team/category/tip",
7        insight: "https://post.flow.team/category/insight",
8        video: "https://post.flow.team/category/video",
9        interview: "https://post.flow.team/category/interview",
10        news: "https://post.flow.team/category/news",
11        blog: "https://post.flow.team/",
12        youtube: "https://www.youtube.com/channel/UCmnzKvpQMl8uyT1PUMdPsXQ",
13        facebook: "https://www.facebook.com/flow.team/",
14        instagram: "https://www.instagram.com/flow.designlab/",
15        reference: "https://post.flow.team/category/reference/",
16    }
17
18    return {
19        addEvent: addEvent,
20    };
21
22    function addEvent() {
23        $("header").on({
24            mouseover: activeItem,
25            mouseleave: disabledItem,
26        });
27        $(".btnNavi").on("click", clickMobileHamburger);
28        $(".btnTop").on("click", function () {
29            $("html, body").animate({scrollTop: 0}, 500);
30        });
31        $(".btnBannerClose").on("click", function () {
32            $('.mainBannerWrap').addClass('on');
33        });
34        $(".js-go-url").on("click", function (e) {
35            e.preventDefault();
36            var code = $(this).attr("data-code");
37            window.open(urls[$(this).attr("data-code")], code);
38        })
39        $("#m-voucher-banner").on("click", function () {
40            OpenUtil.openWindow('https://www.flow.team/goodchance', '_blank');
41        })
42        $(".js-signup-btn").on("click", function() {
43            const projectInviteKey = Often.null2Void(window.CONNECT_INVITE_KEY)
44
45            const isRenewalSignUp = Often.null2Void(window.isRenewalSignUp)
46            const signUpUrl = isRenewalSignUp ? '/newSignup.act'  : '/signup.act'
47
48            // 이미 프로젝트 초대 -> 직원으로 참여 완료된 경우에는 다시 회원가입 시도 시 초대키를 제거함
49            const url = new URL(location.href)
50            const isInvitationCompleted = url.searchParams.get('complete') === 'true'
51            if (isInvitationCompleted) {
52                window.CONNECT_INVITE_KEY = undefined
53                Often.submitForm('invite_form', signUpUrl, '_self')
54                return
55            }
56
57            Often.submitForm('invite_form', signUpUrl, '_self', {
58                INVT_KEY: projectInviteKey
59            })
60        });
61        $(".js-signin-btn").on("click", function() {
62            const projectInviteKey = Often.null2Void(window.CONNECT_INVITE_KEY);
63            if (projectInviteKey) {
64                Often.submitForm("invite_form", "/signin.act", "_self", {INVT_KEY: projectInviteKey});
65            } else {
66                location.href = "/signin.act";
67            }
68        })
69
70        // 모바일 (비대면 바우처 배너) 제외
71        /*
72        < 모든 모바일서 비대면 바우처 제외 (임시조치) >
73        var mobileVoucherExceptionPages = ["terms", "privacy", "company", "consult"];
74        var isMobileVoucherNecessary = isArrayContainPage(mobileVoucherExceptionPages);
75        if(Often.isMobile() && isMobileVoucherNecessary)
76            $(".article_float_banner").css("display", "none");
77        */
78
79        // web (비대면 바우처 배너) 제외
80        const VoucherExceptionPages = ["company", "corpsignup", "corpsignin"];
81        const isVoucherNecessary = isArrayContainPage(VoucherExceptionPages);
82        if (isVoucherNecessary){
83            $(".voucher").css("display", "none");
84            $(".flower-event").css("display", "none");
85        }
86        // (소개 및 타사 비교자료 신청 배너) 유무 판별
87        const bannerNecessaryPages = ["terms", "privacy", "signin", "corpsignin", "setpwd_renewal", "signup", "corpsignup", "company", "consult", "pt-recruit", "finance", "marketing", "design"]; // web 배너 제외
88        const mobileExceptionPages = ["terms", "privacy", "signin", "corpsignin", "setpwd_renewal", "signup", "corpsignup", "consult", "pt-recruit"]; // web 제외 무시 후 mobile에 배너 추가
89        const isNecessary = isArrayContainPage(bannerNecessaryPages);
90        const isMobileNecessary = isArrayContainPage(mobileExceptionPages);
91
92        if (!isNecessary || (Often.isMobile() && isMobileNecessary)) {
93            $("#topBannerButton").removeClass('d-none');
94        }
95
96        function isArrayContainPage(pages) {
97            var necessaryResult = false;
98            pages.forEach(function (page){
99                if (Often.isAct(page)) {
100                    necessaryResult = true;
101                    return necessaryResult;
102                }
103            })
104            return necessaryResult;
105        }
106
107        if (Often.isAct("company")) {
108            $("#topBannerButton").addClass("company");
109            $("#headerInnerSection").addClass("company");
110        }
111    }
112
113    function activeItem(e) {
114        // header의 gnb 마우스 오버 시 동작 함수
115        var $gnbList = $(e.target).closest(".js-gnb");
116        if ($gnbList.length === 0) return;
117        $(e.currentTarget).find(".js-gnb").removeClass('active');
118        $gnbList.addClass('active');
119    }
120
121    function disabledItem(e) {
122        $(e.currentTarget).find(".js-gnb").removeClass('active');
123    }
124
125    function clickMobileHamburger() {
126        var $mobileGnb = $(".mobileMenu");
127        $mobileGnb.toggleClass("open");
128        if ($mobileGnb.hasClass("open")) {
129            $("#ch-plugin").css("display", "none");
130            $("html").css("overflow", "hidden");
131            $('.mobileGnbItem').on("click", function () {
132                $(this).toggleClass('open');
133            });
134            $(".top-thin-banner").css("display", "none");
135            $(".top-thin-banner.voucher").css("display", "flex");
136            mobileBtnWrapToggle("flex");
137
138        } else {
139            $("#ch-plugin").css("display", "");
140            $("html").css("overflow", "visible");
141            $('.mobileGnbItem').off("click");
142            $(".top-thin-banner").css("display", "flex");
143            mobileBtnWrapToggle("none");
144
145        }
146    }
147
148    // KSH : 모바일용 하단 2개의 버튼이 나오지 않는 페이지에서, 햄버거 메뉴 띄울시에는 2개의 버튼이 보이도록 처리하는 함수.
149    // 회사소개 - /company.act
150    // 소개 및 비교자료 신청 - /consult.act?contact=resource
151    // 도입문의 - /consult.act
152    function mobileBtnWrapToggle(displayVal){
153        var companySection = $("#company");
154        var consultSection = $("#consult");
155
156        if(companySection || consultSection){
157            $(".mobile-button-wrap").css("display", displayVal);
158        }
159    }
160
161})();

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.