1let isRouteUserTop = false; 2// CSSã¨ã¢ã¤ã³ã³ã®ãªã³ã¯ã追å ãã颿° 3function addStylesheet(href) { 4 let link = document.createElement('link'); 5 link.href = href; 6 link.rel = 'stylesheet'; 7 document.head.appendChild(link); 8} 9 10// ãã°ã«ãã¿ã³ã使ãã追å ãã颿° 11function createToggleButton() { 12 const toggleBtn = document.createElement('div'); 13 toggleBtn.id = 'chatbot-toggle_button'; 14 // å³å¯ãï¼ã¦ã¼ã¶ã¼TOPãã¼ã¸ã®ã¿ï¼ 15 if (isRouteUserTop) { 16 toggleBtn.style.right = '30px'; 17 toggleBtn.style.left = 'auto'; 18 } else { 19 toggleBtn.style.left = '30px'; 20 toggleBtn.style.right = 'auto'; 21 } 22 toggleBtn.style.bottom = '30px'; 23 const anchor = document.createElement('a'); 24 anchor.id = 'chat-button'; 25 anchor.href = '#'; 26 anchor.addEventListener('click', event => { 27 event.preventDefault(); 28 toggleChatbox(); 29 }); 30 const img = document.createElement('img'); 31 // ããã©ã«ãã®AIç»å 32 // img.src = 'https://firebasestorage.googleapis.com/v0/b/mabo-f1cc7.appspot.com/o/chaticon.png?alt=media&token=1777070f-a83c-403d-8c83-f387f68ecd52'; 33 // ã¤ã¼ãï¼æ§AIç»å 34 img.src = 'https://e-ve.event-form.jp/img/common/e-ve_ai.png'; 35 // ç»åãµã¤ãº 36 img.width = '120'; 37 // img.height = '160'; 38 // img.style.maxWidth = '30%'; 39 // img.width = '200'; 40 // 追å ã®ã¹ã¿ã¤ã«ï¼éææ§ã«å½±é¿ããªãã確èªï¼ 41 // img.style.display = 'block'; // å¿ è¦ã«å¿ãã¦è¨å® 42 // img.style.backgroundColor = 'transparent'; // èæ¯ãéæã«è¨å®ï¼å¿ è¦ã«å¿ã 43 44 anchor.appendChild(img); 45 toggleBtn.appendChild(anchor); 46 document.body.appendChild(toggleBtn); 47} 48 49// ãã£ããããã¯ã¹ã®ãããã¼ã使ãã颿° 50function createChatboxHeader() { 51 const header = document.createElement('div'); 52 header.id = 'chatbot-header'; 53 header.style.background = '#4169e1'; 54 const logo = document.createElement('div'); 55 logo.id = 'chatbot-logo'; 56 logo.innerText = 'ã¤ã¼ãï¼ã¹ã¿ãã'; 57 const closeIcon = document.createElement('i'); 58 closeIcon.id = 'chatbot-close-icon'; 59 closeIcon.className = 'material-icons material-symbols-outlined waves-light'; 60 closeIcon.innerText = 'close'; 61 closeIcon.addEventListener('click', event => { 62 event.preventDefault(); 63 toggleChatbox(); 64 }); 65 header.appendChild(logo); 66 header.appendChild(closeIcon); 67 return header; 68} 69 70// ãã£ããããã¯ã¹ã使ãã追å ãã颿° 71function createChatbox() { 72 const chatbox = document.createElement('div'); 73 chatbox.id = 'chatbot'; 74 chatbox.style.display = 'none'; 75 76 const header = createChatboxHeader(); 77 const body = document.createElement('div'); 78 body.id = 'chatbot-body'; 79 const iframe = document.createElement('iframe'); 80 iframe.id = 'inline-frame'; 81 iframe.style.width = '100%'; 82 iframe.style.height = '100%'; 83 iframe.dataSrc = 'https://miibo.jp/chat/4d20c13f-61bf-4327-a6ff-24b7ffc108001938cf583183e4?name=%E3%82%A4%E3%83%BC%E3%83%99%EF%BC%81%E5%A4%AA%E9%83%8E%E5%90%9B'; 84 iframe.scrolling = 'no'; 85 iframe.frameBorder = 'no'; 86 body.appendChild(iframe); 87 chatbox.appendChild(header); 88 chatbox.appendChild(body); 89 document.body.appendChild(chatbox); 90} 91 92// ãã£ããããã¯ã¹ã®è¡¨ç¤º/é表示ãåãæ¿ãã颿° 93function toggleChatbox(utterance, ...states) { 94 var chatbox = document.getElementById('chatbot'); 95 var iframe = document.getElementById('inline-frame'); 96 97 // ããã§ã¤ãã³ããªãã¸ã§ã¯ãã§ã¯ãªããæååã¾ãã¯æªå®ç¾©ã®å¤ã渡ããããã¨ã確èªãã¾ãã 98 if (typeof utterance !== 'string') { 99 utterance = null; 100 } 101 102 if (chatbox.style.display === 'none' || utterance) { 103 chatbox.style.display = 'block'; 104 // å³å¯ãï¼ã¦ã¼ã¶ã¼TOPãã¼ã¸ã®ã¿ï¼ 105 if (isRouteUserTop) { 106 chatbox.style.right = '10px'; 107 chatbox.style.left = 'auto'; 108 } else { 109 chatbox.style.left = '10px'; 110 chatbox.style.right = 'auto'; 111 } 112 var src = 'https://miibo.jp/chat/4d20c13f-61bf-4327-a6ff-24b7ffc108001938cf583183e4?name=%E3%82%A4%E3%83%BC%E3%83%99%EF%BC%81%E5%A4%AA%E9%83%8E%E5%90%9B'; 113 // å¯å¤å¼æ°ããã¯ã¨ãªãã©ã¡ã¼ã¿ãçæ
114 states.forEach(state => { 115 if (state.key && state.value) { 116 src += src.includes('?') ? '&' : '?'; 117 src += encodeURIComponent(state.key)+'='+encodeURIComponent(state.value); 118 } 119 }); 120 121 // 以ä¸ã®æ¡ä»¶ã追å ãã¦ãåèªã¿è¾¼ã¿ã®å¿ è¦æ§ããã§ã㯠122 if (!iframeLoaded || (utterance && lastUtterance !== utterance)) { 123 if (utterance) { 124 src += src.includes('?') ? '&' : '?'; 125 src += "utterance=" + encodeURIComponent(utterance); 126 } 127 iframe.src = src; 128 iframeLoaded = true; 129 lastUtterance = utterance; 130 } 131 } else { 132 chatbox.style.display = 'none'; 133 } 134} 135 136// ã¤ãã³ããªã¹ãã¼ãè¨å®ãã颿° 137function setupEventListeners() { 138 document.querySelectorAll('.chatButton').forEach(button => { 139 button.addEventListener('click', event => { 140 event.preventDefault(); 141 const utterance = button.getAttribute('data-utterance'); 142 const statesData = button.getAttribute('data-states'); 143 let states = []; 144 try { 145 // JSON å½¢å¼ã®æååããªãã¸ã§ã¯ãã«å¤æ 146 const statesObj = JSON.parse(statesData); 147 // ãªãã¸ã§ã¯ããã key-value ãã¢ã®é åãçæ 148 states = Object.keys(statesObj).map(key => ({key, value: statesObj[key]})); 149 } catch (e) { 150 console.error("Error parsing states data", e); 151 } 152 153 toggleChatbox(utterance, ...states); 154 }); 155 }); 156} 157 158// ã¡ã¤ã³å®è¡é¨ 159addStylesheet('https://fonts.googleapis.com/icon?family=Material+Icons'); 160addStylesheet('https://miibo.jp/chat3.css'); 161createToggleButton(); 162createChatbox(); 163setupEventListeners(); 164 165var iframeLoaded = false; // iframeããã¼ãããããã©ããã追跡ãããã©ã° 166var lastUtterance = ""; // æå¾ã«çºè©±ããå 容ã追跡ãããã©ã°
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.