PageSourceSearch

https://www.appboxapp.com/build/assets/qr-modal-util.BDoc568x.js

js appboxapp.com collected 2026-09-25 22:31:24 UTC 7,697 bytes, 1 lines download raw bytes

1const n={getDomain:()=>"localhost"===window.location.hostname?"wwwdev.appboxapp.com":window.location.hostname,generateSessionId:()=>"qr_"+Date.now()+"_"+Math.random().toString(36).substring(2,9),generateQrCode(n,i){var s;const a=$(n);if(!a.length)return;a.empty();const t=window.QRCode;if("function"==typeof t)try{new t(a[0],{text:i,width:200,height:200,colorDark:"#000000",colorLight:"#ffffff",correctLevel:(null==(s=t.CorrectLevel)?void 0:s.L)??1,typeNumber:10})}catch(e){a.html(this.createFallbackHtml("QR 코드 생성 실패"))}else if("object"==typeof t&&"function"==typeof t.toCanvas){const n=document.createElement("canvas");a.append(n),t.toCanvas(n,i,{width:200,margin:2,errorCorrectionLevel:"L"},n=>{n&&a.html(this.createFallbackHtml("QR 코드 생성 실패"))})}else a.html(this.createFallbackHtml("QR 라이브러리 로드 실패"))},createFallbackHtml:n=>`\n          <div class="qr-fallback">\n            <i class="ri-qr-code-line font-48px gray-400"></i>\n            <p class="font-12px gray-500 mt-8px">${n}</p>\n          </div>\n        `,createApkQrUrl(n,i){return`https://${this.getDomain()}/d/q/apk/${n}?sid=${i}`},createTestflightQrUrl(n,i){return`https://${this.getDomain()}/d/q/tf/${n}?sid=${i}`},resetModalState(){$('[id$="notiModalData"], [id$="qrModalData"], .notification-data-box').css({height:"",overflow:""})},updateModalToScanned(n,i,s,a){const t="tf"===i,e=n.find('[id$="qrCodeContainer"], [id$="QrCodeContainer"], #noti-qrCodeContainer'),l=n.find('[id$="notiModalData"], [id$="qrModalData"], .notification-data-box');l.css({height:"",overflow:""});const o=l.outerHeight();l.css({height:o,overflow:"hidden"}),Loading.showInElement(e),setTimeout(()=>{Loading.hideInElement(e),n.find('[id$="ModalIcon"]').attr("class","ri-checkbox-circle-fill font-18px noti-icon--success"),e.hide();const i=t?this.getTestFlightGuideHtml(a):this.getApkGuideHtml(a);l.html(i).show(),this.animateGuideItems(),n.find(".modal-footer").html(`\n            <div class="flex">\n            <button type="button" class="btn btn-save w-full" onclick="window.QrModalUtil.resetModalState(); window.Modal.close('${n.attr("id")}');">확인</button>\n            </div>\n          `)},800)},animateGuideItems(){$(".qr-scanned-guide .guide-item").each((n,i)=>{setTimeout(()=>{$(i).addClass("fade-in")},200*n)})},getApkGuideHtml:n=>`\n          <div class="sns-card__notice sns-card__notice--info mb-40px">\n            <div class="flex gap-8 align-center">\n              <i class="ri-information-fill"></i>\n               ${"Y"===n?"<span>모든 절차 완료. 푸시와 인앱 메시지를 테스트해 보세요!</span>":"<span>알림 메시지를 수신하려면 FCM을 설정하세요.</span>"}\n            </div>\n            ${"N"===n?'<a href="/guide/push/%EB%B9%84%EA%B3%B5%EA%B0%9C%20%ED%82%A4(Json)%20%ED%8C%8C%EC%9D%BC%20%EB%93%B1%EB%A1%9D" class="notice-link" target="_blank" style="width: fit-content;">가이드 보기</a>':""}\n          </div>\n          <div class="qr-scanned-guide">\n            <div class="guide-item">\n              <i class="ri-check-line"></i>\n              <div class="flex flex-col gap-2">\n                <p class="font-18px font-sb gray-800">SDK 기능</p>\n                <p class="font-14px gray-500">웹 앱 기능을 통한 자연스러운 웹 콘텐츠 제공</p>\n              </div>\n            </div>\n            ${"Y"===n?'\n              <div class="guide-item">\n                <i class="ri-check-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">푸시 메시지 가능</p>\n                  <p class="font-14px gray-500">타겟팅된 푸시 메시지로 사용자 재참여 유도</p>\n                </div>\n              </div>\n              <div class="guide-item">\n                <i class="ri-check-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">인앱 메시지 가능</p>\n                  <p class="font-14px gray-500">앱 내에서 실시간 메시지로 사용자 참여율 극대화</p>\n                </div>\n              </div>
1\n            ':'\n              <div class="guide-item">\n                <i class="ri-close-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">푸시 메시지 가능</p>\n                  <p class="font-14px gray-500">타겟팅된 푸시 메시지로 사용자 재참여 유도</p>\n                </div>\n              </div>\n              <div class="guide-item">\n                <i class="ri-close-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">인앱 메시지 가능</p>\n                  <p class="font-14px gray-500">앱 내에서 실시간 메시지로 사용자 참여율 극대화</p>\n                </div>\n              </div>\n            '}\n          </div>\n        `,getTestFlightGuideHtml:n=>`\n          <div class="sns-card__notice sns-card__notice--info mb-40px">\n            <div class="flex gap-8 align-center">\n              <i class="ri-information-fill"></i>\n               ${"Y"===n?"<span>모든 절차 완료. 푸시와 인앱 메시지를 테스트해 보세요!</span>":"<span>알림 메시지를 수신하려면 FCM을 설정하세요.</span>"}\n            </div>\n            ${"N"===n?'<a href="/guide/push/%EB%B9%84%EA%B3%B5%EA%B0%9C%20%ED%82%A4(Json)%20%ED%8C%8C%EC%9D%BC%20%EB%93%B1%EB%A1%9D" class="notice-link" target="_blank" style="width: fit-content;">가이드 보기</a>':""}\n          </div>\n          <div class="qr-scanned-guide">\n            <div class="guide-item">\n              <i class="ri-check-line"></i>\n              <div class="flex flex-col gap-2">\n                <p class="font-18px font-sb gray-800">SDK 기능</p>\n                <p class="font-14px gray-500">웹 앱 기능을 통한 자연스러운 웹 콘텐츠 제공</p>\n              </div>\n            </div>\n            ${"Y"===n?'\n              <div class="guide-item">\n                <i class="ri-check-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">푸시 메시지 가능</p>\n                  <p class="font-14px gray-500">타겟팅된 푸시 메시지로 사용자 재참여 유도</p>\n                </div>\n              </div>\n              <div class="guide-item">\n                <i class="ri-check-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">인앱 메시지 가능</p>\n                  <p class="font-14px gray-500">앱 내에서 실시간 메시지로 사용자 참여율 극대화</p>\n                </div>\n              </div>\n            ':'\n              <div class="guide-item">\n                <i class="ri-close-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">푸시 메시지 가능</p>\n                  <p class="font-14px gray-500">타겟팅된 푸시 메시지로 사용자 재참여 유도</p>\n                </div>\n              </div>\n              <div class="guide-item">\n                <i class="ri-close-line"></i>\n                <div class="flex flex-col gap-2">\n                  <p class="font-18px font-sb gray-800">인앱 메시지 가능</p>\n                  <p class="font-14px gray-500">앱 내에서 실시간 메시지로 사용자 참여율 극대화</p>\n                </div>\n              </div>\n            '}\n          </div>\n        `};export{n as Q};

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.