(srcs, _x, _y)
| 678 | } |
| 679 | |
| 680 | function chooseImg(srcs, _x, _y) { |
| 681 | let { x, y } = validateMouse(_x, _y); |
| 682 | |
| 683 | let id = "ufs-magnify-choose-image"; |
| 684 | let exist = document.getElementById(id); |
| 685 | if (exist) exist.remove(); |
| 686 | |
| 687 | // container |
| 688 | let overlay = document.createElement("div"); |
| 689 | overlay.id = id; |
| 690 | overlay.style.cssText = ` |
| 691 | top: ${y}px; |
| 692 | left: ${x}px; |
| 693 | `; |
| 694 | overlay.onclick = (e) => { |
| 695 | e.preventDefault(); |
| 696 | if (e.target == overlay || e.target == container) { |
| 697 | overlay.remove(); |
| 698 | } |
| 699 | }; |
| 700 | document.body.appendChild(overlay); |
| 701 | |
| 702 | // toolbar |
| 703 | let toolbar = document.createElement("div"); |
| 704 | toolbar.classList.add("ufs-toolbar"); |
| 705 | overlay.appendChild(toolbar); |
| 706 | |
| 707 | // toggle background |
| 708 | |
| 709 | let bgStates = [BgState.none, BgState.dark, BgState.light]; |
| 710 | let curBgState = |
| 711 | (Number(localStorage.getItem("ufs-magnify-image-bg-choose-image")) || 0) - |
| 712 | 1; |
| 713 | |
| 714 | let toggleBg = document.createElement("div"); |
| 715 | toggleBg.classList.add("ufs-btn"); |
| 716 | toggleBg.innerText = "B"; |
| 717 | toggleBg.ufs_title = "Change background"; |
| 718 | toggleBg.onclick = () => { |
| 719 | curBgState = (curBgState + 1) % bgStates.length; |
| 720 | overlay.style.background = ""; |
| 721 | |
| 722 | switch (bgStates[curBgState]) { |
| 723 | case BgState.none: |
| 724 | overlay.style.background = "#000b"; |
| 725 | break; |
| 726 | case BgState.dark: |
| 727 | overlay.style.background = "rgba(30, 30, 30, 1)"; |
| 728 | break; |
| 729 | case BgState.light: |
| 730 | overlay.style.background = "rgba(240, 240, 240, 1)"; |
| 731 | break; |
| 732 | } |
| 733 | |
| 734 | toggleBg.innerText = "BG " + bgStates[curBgState]; |
| 735 | localStorage.setItem("ufs-magnify-image-bg-choose-image", curBgState); |
| 736 | }; |
| 737 | toggleBg.click(); // default is toggle ON |
no test coverage detected