1(function () { 2 'use strict'; 3 4 var FLOAT_ID = 'okebos-livescore-float'; 5 var CLOSE_BTN_ID = 'okebos-livescore-float-close'; 6 var STYLE_ID = 'okebos-livescore-float-styles'; 7 8 var CONFIG = { 9 imageUrl: 'https://azure1.online/img/livescore-floating-bos.gif', 10 linkUrl: 'https://livescore-okebos.site/id', 11 linkTarget: '_blank', 12 linkRel: 'noopener noreferrer', 13 bottomDesktop: '100px', 14 bottomMobile: '80px', 15 left: '16px', 16 widthDesktop: '175px', 17 widthMobile: '140px' 18 }; 19 20 function injectStyles() { 21 if (document.getElementById(STYLE_ID)) { 22 return; 23 } 24 25 var style = document.createElement('style'); 26 style.id = STYLE_ID; 27 style.textContent = [ 28 '#' + FLOAT_ID + ' {', 29 ' position: fixed;', 30 ' left: ' + CONFIG.left + ';', 31 ' bottom: ' + CONFIG.bottomDesktop + ';', 32 ' z-index: 2147483000;', 33 ' line-height: 0;', 34 '}', 35 '#' + FLOAT_ID + ' .livescore-float-inner {', 36 ' position: relative;', 37 ' display: inline-block;', 38 ' line-height: 0;', 39 '}', 40 '#' + FLOAT_ID + ' .livescore-float-link {', 41 ' display: block;', 42 ' line-height: 0;', 43 ' transition: transform 0.2s ease;', 44 '}', 45 '#' + FLOAT_ID + ' .livescore-float-link:hover {', 46 ' transform: scale(1.06);', 47 '}', 48 '#' + FLOAT_ID + ' img {', 49 ' width: ' + CONFIG.widthDesktop + ';', 50 ' height: auto;', 51 ' display: block;', 52 ' border: 0;', 53 ' pointer-events: none;', 54 '}', 55 '#' + CLOSE_BTN_ID + ' {', 56 ' position: absolute;', 57 ' top: 2px;', 58 ' left: 2px;', 59 ' width: 20px;', 60 ' height: 20px;', 61 ' border: 0;', 62 ' border-radius: 50%;', 63 ' background: rgba(0, 0, 0, 0.82);', 64 ' color: #fff;', 65 ' font-size: 14px;', 66 ' font-weight: 700;', 67 ' line-height: 20px;', 68 ' text-align: center;', 69 ' padding: 0;', 70 ' cursor: pointer;', 71 ' box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);', 72 ' z-index: 2;', 73 '}', 74 '#' + CLOSE_BTN_ID + ':hover {', 75 ' background: #c53030;', 76 '}', 77 '@media (max-width: 767px) {', 78 ' #' + FLOAT_ID + ' {', 79 ' bottom: ' + CONFIG.bottomMobile + ';', 80 ' }', 81 ' #' + FLOAT_ID + ' img {', 82 ' width: ' + CONFIG.widthMobile + ';', 83 ' }', 84 ' #' + CLOSE_BTN_ID + ' {', 85 ' width: 18px;', 86 ' height: 18px;', 87 ' line-height: 18px;', 88 ' font-size: 12px;', 89 ' top: 1px;', 90 ' left: 1px;', 91 ' }', 92 '}' 93 ].join('\n'); 94 95 document.head.appendChild(style); 96 } 97 98 function createFloatButton() { 99 var wrap = document.createElement('div'); 100 wrap.id = FLOAT_ID; 101 102 var inner = document.createElement('div'); 103 inner.className = 'livescore-float-inner'; 104 105 var closeBtn = document.createElement('button'); 106 closeBtn.id = CLOSE_BTN_ID; 107 closeBtn.type = 'button'; 108 closeBtn.setAttribute('aria-label', 'Tutup LiveScore'); 109 closeBtn.textContent = '\u00d7'; 110 closeBtn.addEventListener('click', function (event) { 111 event.preventDefault(); 112 event.stopPropagation(); 113 wrap.remove(); 114 }); 115 116 var link = document.createElement('a'); 117 link.className = 'livescore-float-link'; 118 link.href = CONFIG.linkUrl; 119 link.target = CONFIG.linkTarget; 120 link.rel = CONFIG.linkRel; 121 link.title = 'LiveScore Bola'; 122 link.setAttribute('aria-label', 'LiveScore Bola'); 123 124 var image = document.createElement('img'); 125 image.src = CONFIG.imageUrl; 126 image.alt = 'LiveScore Bola'; 127 image.loading = 'lazy'; 128 129 link.appendChild(image); 130 inner.appendChild(closeBtn); 131 inner.appendChild(link); 132 wrap.appendChild(inner); 133 134 return wrap; 135 } 136 137 function init() { 138 if (document.getElementById(FLOAT_ID)) { 139 return; 140 } 141 142 injectStyles(); 143 document.body.appendChild(createFloatButton()); 144 } 145 146 if (document.readyState === 'loading') { 147 document.addEventListener('DOMContentLoaded', init); 148 } else { 149 init(); 150 } 151})();
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.