1addEventListener("direct-upload:initialize", event => { 2 const { target, detail } = event 3 const { id, file } = detail 4 target.insertAdjacentHTML("beforebegin", ` 5 <div id="direct-upload-${id}" class="direct-upload direct-upload--pending"> 6 <div id="direct-upload-progress-${id}" class="direct-upload__progress" style="width: 0%"></div> 7 <span class="direct-upload__filename">${file.name}</span> 8 </div> 9 `) 10}) 11 12addEventListener("direct-upload:start", event => { 13 const { id } = event.detail 14 const element = document.getElementById(`direct-upload-${id}`) 15 element.classList.remove("direct-upload--pending") 16}) 17 18addEventListener("direct-upload:progress", event => { 19 const { id, progress } = event.detail 20 const progressElement = document.getElementById(`direct-upload-progress-${id}`) 21 progressElement.style.width = `${progress}%` 22}) 23 24addEventListener("direct-upload:error", event => { 25 event.preventDefault() 26 const { id, error } = event.detail 27 const element = document.getElementById(`direct-upload-${id}`) 28 element.classList.add("direct-upload--error") 29 element.setAttribute("title", error) 30}) 31 32addEventListener("direct-upload:end", event => { 33 const { id } = event.detail 34 const element = document.getElementById(`direct-upload-${id}`) 35 element.classList.add("direct-upload--complete") 36})
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.