| 17749 | } |
| 17750 | var self = this; |
| 17751 | var createSpanMark = item => { |
| 17752 | var spanMark=self._spanMarkPool[item.src]; |
| 17753 | if(!spanMark){ |
| 17754 | spanMark = document.createElement("span"); |
| 17755 | try{ |
| 17756 | if (item.noActual && item.img && item.img.naturalHeight && item.img.naturalWidth) { |
| 17757 | spanMark.dataset.naturalSize = JSON.stringify({ |
| 17758 | h: item.img.naturalHeight, |
| 17759 | w: item.img.naturalWidth, |
| 17760 | }); |
| 17761 | let key = item.img.naturalWidth + "x" + item.img.naturalHeight; |
| 17762 | self.sizeMap[key] = (self.sizeMap[key] || 0) + 1; |
| 17763 | if (self.sizeMap[key] === 2) { |
| 17764 | let option = document.createElement("option"); |
| 17765 | option.innerText = key; |
| 17766 | option.value = item.img.naturalWidth + "-" + item.img.naturalWidth + "x" + item.img.naturalHeight + "-" + item.img.naturalHeight; |
| 17767 | self.pinSize.appendChild(option); |
| 17768 | } |
| 17769 | } |
| 17770 | spanMark.className="pv-gallery-sidebar-thumb-container"; |
| 17771 | spanMark.dataset.index=index; |
| 17772 | spanMark.dataset.type=item.type; |
| 17773 | spanMark.dataset.src=item.src; |
| 17774 | spanMark.dataset.srcs=item.srcs?item.srcs.join(","):""; |
| 17775 | //if(item.xhr)spanMark.dataset.xhr=encodeURIComponent(JSON.stringify(item.xhr)); |
| 17776 | spanMark.dataset.description=encodeURIComponent(item.description || (item.img ? (item.img.title || item.img.alt || "") : "")); |
| 17777 | spanMark.dataset.thumbSrc=(item.img && (item.img.currentSrc || item.img.src)) || item.imgSrc; |
| 17778 | let title = item.img ? (item.img.title || item.img.alt || "").slice(-200) : ""; |
| 17779 | if (title) { |
| 17780 | if (title.indexOf('http') === 0 || title.indexOf('data') === 0) title = ''; |
| 17781 | else title += '\n'; |
| 17782 | } |
| 17783 | let itemSrc = item.src.replace(/^blob:.*/, "").replace(/^(data[^;]+).*/, "$1..."); |
| 17784 | spanMark.title = title + (itemSrc.length > 150 ? itemSrc.slice(0, 110) + " ... " + itemSrc.slice(-30) : itemSrc); |
| 17785 | setHTML(spanMark, '<span class="pv-gallery-vertical-align-helper"></span>' + |
| 17786 | '<span class="pv-gallery-sidebar-thumb-loading" title="'+i18n("loading")+'......"></span>'); |
| 17787 | spanMark.addEventListener('contextmenu', function(e) { |
| 17788 | e.preventDefault(); |
| 17789 | e.stopPropagation(); |
| 17790 | spanMark.classList.toggle("ignore"); |
| 17791 | if ((e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) && self.lastMark && self.lastMark !== spanMark && self.lastMark.parentNode === spanMark.parentNode) { |
| 17792 | const children = Array.from(thumbnails.children); |
| 17793 | let current; |
| 17794 | if (children.indexOf(self.lastMark) < children.indexOf(spanMark)) { |
| 17795 | current = self.lastMark.nextElementSibling; |
| 17796 | } else { |
| 17797 | current = spanMark.nextElementSibling; |
| 17798 | } |
| 17799 | while (current !== null && current !== self.lastMark && current !== spanMark) { |
| 17800 | current.classList.toggle("ignore"); |
| 17801 | current = current.nextElementSibling; |
| 17802 | } |
| 17803 | } |
| 17804 | self.lastMark = spanMark; |
| 17805 | }); |
| 17806 | }catch(e){}; |
| 17807 | self._spanMarkPool[item.src] = spanMark; |
| 17808 | } |