layerpro 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- ;(()=>{if(typeof document==="undefined"||document.querySelector("style[data-layerpro-styles]"))return;const s=document.createElement("style");const n=globalThis.__layerproNonce||globalThis.layerpro?.nonce||document.querySelector("style[nonce],script[nonce]")?.nonce||document.body?.dataset?.nonce;if(n)s.setAttribute("nonce",n);s.setAttribute("data-layerpro-styles","");s.textContent=":root{--input-background-color:#444;--input-color:white;--button-background-color:#444;--button-color:white;--inputButton-fontSize:.8em;--resize-background-color:rgba(30,150,255,.5);--resize-shadow:0 0 10px rgba(30,150,255,.5);--dock-background-color:black;--dock-height:40px;--dock-sideLeft:10px;--dock-sideCenter:auto;--dock-sideRight:10px;--dock-icon-width:140px;--bar-background:linear-gradient( 45deg,#4a4a4f 60%,#AAA 100%);--bar-selected-background:linear-gradient( 45deg,#162858 60%,#224e918a 100%);--bar-color:#eee;--bar-border-bottom:2px solid #555;--bar-shadow:0 1px 1px #888;--window-background:gray;--window-shadow:0 0 10px rgba(0,0,0,.3);--window-border-radius:10px;--window-z-high-border:#278ed0;--window-z-high-shadow:0 0 15px rgba(0,0,0,.7);--internal-background:linear-gradient( 0deg,rgba(60,60,60,1) 0%,#4a4a4f 100%);--body-color:#eee;--body-background:transparent;--modal-background:rgba(0,0,0,.3);--popup-z-index:1000;--transition-time:.5s;--border-radius:25px;--corner-size:14px;--corner-border-radius:50%;--hover-opacity:1;--hover-filter:blur(3px);}#popup > [class^=popup_overflow],#popup > [class^=popup_bar_],#popup > [class^=popup_window_],#popup > [class^=popup_internal],#popup > [class^=popup_body]{position:static;}#popup > [class^=popup_overflow],#popup > [class^=popup_bar_],#popup > [class^=popup_window_],#popup > [class^=popup_internal],#popup > [class^=popup_body],#popup,#popup_dock{will-change:transform,opacity,top,left,height,width;}#popup{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;}#popup .buttons{display:flex;position:absolute;left:0;right:0;bottom:0;height:40px;justify-content:space-evenly;align-items:center;}#popup .buttons button{all:unset;width:100%;height:100%;border-right:2px solid #636363;background:linear-gradient( 180deg,#000 0%,rgb(60,60,60) 100%);overflow:hidden;position:relative;color:var(--button-color);}#popup .buttons button:last-child{border-right:none;}#popup .buttons button img{filter:invert(1);opacity:0.5;width:15px;height:auto;margin-top:2px;}#popup .buttons button:hover{transition:all 0.3s ease;box-shadow:inset 0 0 5px rgb(0,0,0);text-shadow:0 0 15px rgb(255,255,255),0 0 3px rgb(255,255,255);}#popup .popup_bar_selected{background:var(--bar-selected-background) !important;}#popup .zHigh{border-top-color:var(--window-z-high-border) !important;box-shadow:var(--window-z-high-shadow) !important;border:1px solid rgba(0,0,0,0.05);}#popup [class*=popup_modal_]{position:absolute;inset:0;width:100%;height:100%;background-color:var(--modal-background);z-index:1;}#popup [class*=popup_window_]{position:absolute;inset:0;width:100%;height:100%;z-index:2;border-radius:var(--window-border-radius);box-shadow:var(--window-shadow);overflow:hidden;}#popup [class*=popup_overflow_]{position:absolute;inset:auto;z-index:3;border-radius:var(--window-border-radius);background:var(--window-background);}#popup .popup_bar,#popup [class*=popup_bar_]{display:flex;width:100%;height:36px;background:var(--bar-background);border-bottom:var(--bar-border-bottom);box-shadow:var(--bar-shadow);z-index:2;}#popup [class*=popup_drag_]{width:100%;padding:10px 0 0 10px;color:var(--bar-color);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}#popup [class*=popup_icon_]{padding:8px 0 0 10px;color:var(--bar-color);font-size:1.1em;}#popup [class*=popup_option_]{display:flex;margin-right:15px;}#popup [class*=popup_option_] button{position:relative;display:inline-block;width:36px;height:28px;color:white;border-radius:5px;margin:4px;transition:all 0.3s ease;background:transparent;}#popup [class*=popup_option_] button img{filter:invert(1);opacity:0.5;width:15px;height:auto;margin-top:2px;}#popup [class*=popup_option_] button:after{content:\"\";inset:0;display:block;position:absolute;background:linear-gradient( 180deg,#000 0%,rgb(60,60,60) 100%);border-radius:5px;z-index:-1;}#popup [class*=popup_option_] button:after{opacity:0;transition:opacity 0.3s ease-in-out;}#popup [class*=popup_option_] button:hover{background:rgba(255,255,255,0.1);box-shadow:inset 0 0 5px rgb(0,0,0);text-shadow:0 0 15px rgb(255,255,255),0 0 3px rgb(255,255,255);}#popup [class*=popup_option_] button:hover::after{opacity:1;}#popup [class*=popup_option_] button [class*=button_close_]:hover{background:rgb(255,0,0) !important;box-shadow:inset 0 0 25px rgb(255,255,255),0 0 35px rgb(255,0,0) !important;}#popup [class*=button_close_]:hover{background:rgb(255,0,0) !important;box-shadow:inset 0 0 25px rgb(255,255,255),0 0 35px rgb(255,0,0) !important;}#popup [class*=popup_internal_]{position:absolute;inset:37px 0 0 0;z-index:1;background:var(--internal-background);}#popup .popup_body,#popup [class*=popup_body_]{position:absolute;inset:0;color:var(--body-color);background:var(--body-background);text-align:center;}.popupMaxSize{position:absolute !important;width:100% !important;height:100% !important;inset:0 !important;margin:0 !important;padding:0 !important;border-radius:0 !important;}#popup_dock{position:absolute;bottom:0;left:0;right:0;height:var(--dock-height);background-color:var(--dock-background-color);border-top:1px solid rgba(255,255,255,0.521);}#popup_dock #popup_dock_icon{position:absolute;top:3px;left:3px;width:70px;height:var(--dock-height);}#popup_dock #popup_dock_list{position:absolute;top:3px;left:var(--dock-sideLeft);right:var(--dock-sideLeft);height:calc(var(--dock-height) - 5px);overflow-y:auto;text-align:right;display:flex;flex-direction:row;justify-content:flex-end;height:30px;}#popup_dock #popup_dock_list [class^=icon_]{width:var(--dock-icon-width);float:left;padding:4px;color:white;margin:2px 3px 0 0;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;filter:saturate(400%);}#popup_dock #popup_dock_list [class^=icon_]:hover{background-color:rgb(77,77,77);}#popup_dock #popup_dock_list [class^=icon_] span:nth-child(1){width:20%;text-align:center;color:#F60;}#popup_dock #popup_dock_list [class^=icon_] span:nth-child(2){width:80%;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}#popup_dock #popup_dock_list [class^=icon_] button{width:20px;height:20px;color:white;padding:4px;margin:0;display:flex;align-content:center;justify-content:center;font-size:0.7em;border:none;background:none;}#popup_dock #popup_dock_options{position:absolute;top:3px;right:10px;width:var(--dock-sideRight);height:var(--dock-height);}#popup .iconize:before,#popup .maximize:before,#popup .close:before{content:\"\";position:absolute;inset:0;background-repeat:no-repeat !important;background-position:center !important;background-size:50% !important;filter:invert(1);opacity:0.5;margin:0;padding:0;}#popup .iconize:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Imljb25pemUuc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzc2MiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iNS42IgogICAgIGlua3NjYXBlOmN4PSI5LjkxMDcxNDMiCiAgICAgaW5rc2NhcGU6Y3k9IjY4LjM5Mjg1NyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMzc2NSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMjkxLjcwODMyKSI+CiAgICA8cmVjdAogICAgICAgcnk9IjAuNjk5MTc0MjMiCiAgICAgICB5PSIyOTMuNjkyNzgiCiAgICAgICB4PSIwLjI3NDg0NjczIgogICAgICAgaGVpZ2h0PSIxLjM5ODM0ODUiCiAgICAgICB3aWR0aD0iNC43NjI0OTk4IgogICAgICAgaWQ9InJlY3QzNzM2LTciCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO3N0cm9rZS13aWR0aDowLjEzMjk5MTg1IiAvPgogIDwvZz4KPC9zdmc+Cg==) !important;}#popup .maximize:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1heGltaXplLnN2ZyIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczM3NjIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iNC45ODc2MjgyIgogICAgIGlua3NjYXBlOmN5PSIyNS4zODAwODMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgdW5pdHM9InB4IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDI3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTM3NjUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTI5MS43MDgzMikiPgogICAgPHJlY3QKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMTQ3MDQ1NCIKICAgICAgIGlkPSJyZWN0MzczMiIKICAgICAgIHdpZHRoPSI0Ljc2MjQ5OTgiCiAgICAgICBoZWlnaHQ9IjQuNzYyNDk5OCIKICAgICAgIHg9IjAuMjkxODUyNTMiCiAgICAgICB5PSIyOTIuMDEwNDQiCiAgICAgICByeT0iMC42NjcxMjEyMyIgLz4KICA8L2c+Cjwvc3ZnPgo=) !important;}#popup .close:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNsb3NlLnN2ZyIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczM3NjIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iNC45ODc2MjgyIgogICAgIGlua3NjYXBlOmN5PSIyNS4zODAwODMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgdW5pdHM9InB4IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDI3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTM3NjUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTI5MS43MDgzMikiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMTQ5MDI2NjMiCiAgICAgICBkPSJtIDAuOTY5NDI2NTUsMjkxLjk4MjY1IGMgLTAuMTczMTcsMCAtMC4zNDYzMSwwLjA2NjYgLTAuNDc5LDAuMTk5MjcgLTAuMjY1MzgsMC4yNjUzNyAtMC4yNjUzOCwwLjY5MjQ0IDAsMC45NTc4MSBsIDEuMjI0MjA5OTUsMS4yMjQxNyAtMS4yMjQyMDk5NSwxLjIyNDE3IGMgLTAuMjY1MzgsMC4yNjUzNyAtMC4yNjUzOCwwLjY5MjQ0IDAsMC45NTc4MSAwLjI2NTM4LDAuMjY1MzcgMC42OTI2MDk5NSwwLjI2NTM3IDAuOTU3OTg5OTUsMCBsIDEuMjI0MjEsLTEuMjI0MTcgMS4yMjQyMDgsMS4yMjQxNyBjIDAuMTMyNjkyLDAuMTMyNjggMC4zMDU4MywwLjE5OTI3IDAuNDc4OTkxLDAuMTk5MjcgMC4wNDMzLDAgMC4wODY3LC0wLjAwNCAwLjEyOTM3OSwtMC4wMTI1IDAuMTI3OTcxLC0wLjAyNDkgMC4yNTAxLC0wLjA4NzIgMC4zNDk2MiwtMC4xODY3NiAwLjAzMzIsLTAuMDMzMiAwLjA2MjMsLTAuMDY4NiAwLjA4NzEsLTAuMTA2MTQgMC4xNzQxNiwtMC4yNjMxOSAwLjE0NTA2OSwtMC42MTk0NiAtMC4wODcxLC0wLjg1MTY2IGwgLTEuMjI0MjA4LC0xLjIyNDE3IDEuMjI0MjA4LC0xLjIyNDE3IGMgMC4yNjUzNywtMC4yNjUzNyAwLjI2NTM3LC0wLjY5MjQ0IDAsLTAuOTU3ODEgLTAuMjY1Mzc5LC0wLjI2NTM3IC0wLjY5MjYxLC0wLjI2NTM3IC0wLjk1Nzk5LDAgbCAtMS4yMjQyMDgsMS4yMjQxNyAtMS4yMjQyMSwtMS4yMjQxNyBjIC0wLjEzMjY5LC0wLjEzMjY5IC0wLjMwNTgzLC0wLjE5OTI3IC0wLjQ3ODk4OTk1LC0wLjE5OTI3IHoiCiAgICAgICBpZD0icmVjdDM3MTUiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg==) !important;}#popup > input,#popup > button,#popup > textarea,#popup > select{all:unset;}.popup_alert,.popup_message,.popup_prompt,.popup_confirm{height:calc(100% - 41px);box-shadow:0 1px 1px #888;overflow:auto;padding:20px;word-break:break-all;}.popup_alert input[type=text],.popup_message input[type=text],.popup_prompt input[type=text],.popup_confirm input[type=text]{position:relative;width:90%;height:35px;padding:5px;font-size:1.05em;border:2px solid rgba(0,0,0,0.3);border-radius:6px;color:#ddd;background-color:#4a4a4f;}.popup_window___alert #a___alert,.popup_window___alert #a___message,.popup_window___message #a___alert,.popup_window___message #a___message{width:100% !important;}.popup_window___prompt #a___alert,.popup_window___prompt #b___alert,.popup_window___prompt #a___message,.popup_window___prompt #b___message,.popup_window___confirm #a___alert,.popup_window___confirm #b___alert,.popup_window___confirm #a___message,.popup_window___confirm #b___message{width:50% !important;}.resize_0,.resize_1,.resize_2,.resize_3{position:absolute;background-color:var(--resize-background-color);border-radius:var(--border-radius);opacity:0;z-index:5000;transition:var(--transition-time);}.resize_0{top:-4px;left:0;width:100%;height:10px;cursor:n-resize;}.resize_1{top:0;right:-4px;width:10px;height:100%;cursor:e-resize;}.resize_2{bottom:-4px;left:0;width:100%;height:10px;cursor:n-resize;}.resize_3{top:0;left:-4px;width:10px;height:100%;cursor:e-resize;}.resize_corner_0,.resize_corner_1,.resize_corner_2,.resize_corner_3{position:absolute;background-color:var(--resize-background-color);border-radius:var(--border-radius);opacity:0;z-index:5000;transition:var(--transition-time);width:var(--corner-size);height:var(--corner-size);border-radius:var(--corner-border-radius);}.resize_corner_0{top:-4px;left:-4px;cursor:nw-resize;}.resize_corner_1{top:-4px;right:-4px;cursor:ne-resize;}.resize_corner_2{bottom:-4px;right:-4px;cursor:nw-resize;}.resize_corner_3{bottom:-4px;left:-4px;cursor:ne-resize;}.resize_0:hover,.resize_1:hover,.resize_2:hover,.resize_3:hover,.resize_corner_0:hover,.resize_corner_1:hover,.resize_corner_2:hover,.resize_corner_3:hover{opacity:var(--hover-opacity);filter:var(--hover-filter);box-shadow:var(--resize-shadow);transition:var(--transition-time);}#popup{}#popup::-webkit-scrollbar{width:10px;scroll-behavior:smooth;}#popup{}#popup::-webkit-scrollbar-track{-webkit-border-radius:2px;border-radius:2px;margin:5px;}#popup{}#popup::-webkit-scrollbar-thumb{-webkit-border-radius:2px;border-radius:2px;background:rgb(30,150,255) !important;}";document.head.appendChild(s)})();var e = Object.defineProperty, t = (t, o, n) => ((t, o, n) => o in t ? e(t, o, {
1
+ ;(()=>{if(typeof document==="undefined"||document.querySelector("style[data-layerpro-styles]"))return;const s=document.createElement("style");const n=globalThis.__layerproNonce||globalThis.layerpro?.nonce||document.querySelector("style[nonce],script[nonce]")?.nonce||document.body?.dataset?.nonce;if(n)s.setAttribute("nonce",n);s.setAttribute("data-layerpro-styles","");s.textContent="@layer layerpro{:root{--input-background-color:#444;--input-color:white;--button-background-color:#444;--button-color:white;--inputButton-fontSize:.8em;--resize-background-color:rgba(30,150,255,.5);--resize-shadow:0 0 10px rgba(30,150,255,.5);--dock-background-color:black;--dock-height:40px;--dock-sideLeft:10px;--dock-sideCenter:auto;--dock-sideRight:10px;--dock-icon-width:140px;--bar-background:linear-gradient( 45deg,#4a4a4f 60%,#AAA 100%);--bar-selected-background:linear-gradient( 45deg,#162858 60%,#224e918a 100%);--bar-color:#eee;--bar-border-bottom:2px solid #555;--bar-shadow:0 1px 1px #888;--window-background:gray;--window-shadow:0 0 10px rgba(0,0,0,.3);--window-border-radius:10px;--window-z-high-border:#278ed0;--window-z-high-shadow:0 0 15px rgba(0,0,0,.7);--internal-background:linear-gradient( 0deg,rgba(60,60,60,1) 0%,#4a4a4f 100%);--body-color:#eee;--body-background:transparent;--modal-background:rgba(0,0,0,.3);--popup-z-index:1000;--transition-time:.5s;--border-radius:25px;--corner-size:14px;--corner-border-radius:50%;--hover-opacity:1;--hover-filter:blur(3px);}}@layer layerpro{#popup > [class^=popup_overflow],#popup > [class^=popup_bar_],#popup > [class^=popup_window_],#popup > [class^=popup_internal],#popup > [class^=popup_body]{position:static;}#popup > [class^=popup_overflow],#popup > [class^=popup_bar_],#popup > [class^=popup_window_],#popup > [class^=popup_internal],#popup > [class^=popup_body],#popup,#popup_dock{will-change:transform,opacity,top,left,height,width;}#popup{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none;z-index:var(--lp-z-index,1001);}#popup .buttons{display:flex;position:absolute;left:0;right:0;bottom:0;height:40px;justify-content:space-evenly;align-items:center;}#popup .buttons button{all:unset;width:100%;height:100%;border-right:2px solid #636363;background:linear-gradient( 180deg,#000 0%,rgb(60,60,60) 100%);overflow:hidden;position:relative;color:var(--button-color);}#popup .buttons button:last-child{border-right:none;}#popup .buttons button img{filter:invert(1);opacity:0.5;width:15px;height:auto;margin-top:2px;}#popup .buttons button:hover{transition:all 0.3s ease;box-shadow:inset 0 0 5px rgb(0,0,0);text-shadow:0 0 15px rgb(255,255,255),0 0 3px rgb(255,255,255);}#popup .popup_bar_selected{background:var(--bar-selected-background) !important;}#popup .zHigh{border-top-color:var(--window-z-high-border) !important;box-shadow:var(--window-z-high-shadow) !important;border:1px solid rgba(0,0,0,0.05);}#popup [class*=popup_modal_]{position:absolute;inset:0;width:100%;height:100%;background-color:var(--modal-background);pointer-events:auto;z-index:var(--lp-z-index,1);}#popup [class*=popup_window_]{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:auto;border-radius:var(--window-border-radius);box-shadow:var(--window-shadow);overflow:hidden;}#popup [class*=popup_overflow_]{position:absolute;inset:auto;top:var(--lp-top,auto);left:var(--lp-left,auto);right:var(--lp-right,auto);bottom:var(--lp-bottom,auto);width:var(--lp-width,auto);height:var(--lp-height,auto);min-width:var(--lp-min-width,auto);min-height:var(--lp-min-height,auto);max-width:var(--lp-max-width,none);max-height:var(--lp-max-height,none);z-index:var(--lp-z-index,3);pointer-events:auto;border-radius:var(--window-border-radius);background:var(--window-background);}#popup .popup_bar,#popup [class*=popup_bar_]{display:flex;width:100%;height:36px;background:var(--bar-background);border-bottom:var(--bar-border-bottom);box-shadow:var(--bar-shadow);z-index:2;}#popup [class*=popup_drag_]{width:100%;padding:10px 0 0 10px;color:var(--bar-color);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}#popup [class*=popup_icon_]{padding:8px 0 0 10px;color:var(--bar-color);font-size:1.1em;}#popup [class*=popup_option_]{display:flex;margin-right:15px;}#popup [class*=popup_option_] button{position:relative;display:inline-block;width:36px;height:28px;color:white;border-radius:5px;margin:4px;transition:all 0.3s ease;background:transparent;}#popup [class*=popup_option_] button img{filter:invert(1);opacity:0.5;width:15px;height:auto;margin-top:2px;}#popup [class*=popup_option_] button:after{content:\"\";inset:0;display:block;position:absolute;background:linear-gradient( 180deg,#000 0%,rgb(60,60,60) 100%);border-radius:5px;z-index:-1;}#popup [class*=popup_option_] button:after{opacity:0;transition:opacity 0.3s ease-in-out;}#popup [class*=popup_option_] button:hover{background:rgba(255,255,255,0.1);box-shadow:inset 0 0 5px rgb(0,0,0);text-shadow:0 0 15px rgb(255,255,255),0 0 3px rgb(255,255,255);}#popup [class*=popup_option_] button:hover::after{opacity:1;}#popup [class*=popup_option_] button [class*=button_close_]:hover{background:rgb(255,0,0) !important;box-shadow:inset 0 0 25px rgb(255,255,255),0 0 35px rgb(255,0,0) !important;}#popup [class*=button_close_]:hover{background:rgb(255,0,0) !important;box-shadow:inset 0 0 25px rgb(255,255,255),0 0 35px rgb(255,0,0) !important;}#popup [class*=popup_internal_]{position:absolute;inset:37px 0 0 0;z-index:1;background:var(--internal-background);}#popup .popup_body,#popup [class*=popup_body_]{position:absolute;inset:0;color:var(--body-color);background:var(--body-background);text-align:center;}.popupMaxSize{position:absolute !important;width:100% !important;height:100% !important;inset:0 !important;margin:0 !important;padding:0 !important;border-radius:0 !important;}}@layer layerpro{#popup .lp_hidden{display:none;}#popup .lp_fade_in{opacity:1;transition:opacity var(--lp-fade-duration,100ms) ease;}#popup .lp_fade_out{opacity:0;transition:opacity var(--lp-fade-duration,100ms) ease;}#popup .lp_no_transition{transition:none;}#popup .popup_maximized{position:fixed;top:-6px;left:-6px;right:-6px;bottom:-6px;width:auto;height:auto;}#popup .popup_iconized{width:0;height:0;opacity:0;}#popup .popup_dimmed{opacity:0.5;}#popup [class*=popup_body_].popup_content_hidden{content-visibility:hidden;}#popup [class*=popup_body_].popup_content_visible{content-visibility:visible;}#popup .lp_no_pointer{pointer-events:none;}#popup .lp_pointer{pointer-events:auto;}#popup .lp_no_touch{touch-action:none;}body.lp_page_locked{pointer-events:none;}}@layer layerpro{#root.layerpro-dock,html.layerpro-dock,body.layerpro-dock{position:absolute;top:0;right:0;left:0;bottom:var(--dock-height) !important;overflow-y:auto !important;}#popup_dock{position:fixed;bottom:0;left:0;right:0;height:var(--dock-height);pointer-events:auto;z-index:var(--lp-z-index,1001);background-color:var(--dock-background-color);border-top:1px solid rgba(255,255,255,0.521);}#popup_dock #popup_dock_icon{position:absolute;top:3px;left:3px;width:70px;height:var(--dock-height);}#popup_dock #popup_dock_list{position:absolute;top:3px;left:var(--dock-sideLeft);right:var(--dock-sideLeft);height:calc(var(--dock-height) - 5px);overflow-y:auto;text-align:right;display:flex;flex-direction:row;justify-content:flex-end;height:30px;}#popup_dock #popup_dock_list [class^=icon_]{width:var(--dock-icon-width);float:left;padding:4px;color:white;margin:2px 3px 0 0;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;filter:saturate(400%);}#popup_dock #popup_dock_list [class^=icon_]:hover{background-color:rgb(77,77,77);}#popup_dock #popup_dock_list [class^=icon_] span:nth-child(1){width:20%;text-align:center;color:#F60;}#popup_dock #popup_dock_list [class^=icon_] span:nth-child(2){width:80%;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}#popup_dock #popup_dock_list [class^=icon_] button{width:20px;height:20px;color:white;padding:4px;margin:0;display:flex;align-content:center;justify-content:center;font-size:0.7em;border:none;background:none;}#popup_dock #popup_dock_options{position:absolute;top:3px;right:10px;width:var(--dock-sideRight);height:var(--dock-height);}}@layer layerpro{#popup .iconize:before,#popup .maximize:before,#popup .close:before{content:\"\";position:absolute;inset:0;background-repeat:no-repeat !important;background-position:center !important;background-size:50% !important;filter:invert(1);opacity:0.5;margin:0;padding:0;}#popup .iconize:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Imljb25pemUuc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzc2MiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iNS42IgogICAgIGlua3NjYXBlOmN4PSI5LjkxMDcxNDMiCiAgICAgaW5rc2NhcGU6Y3k9IjY4LjM5Mjg1NyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMjciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMzc2NSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMjkxLjcwODMyKSI+CiAgICA8cmVjdAogICAgICAgcnk9IjAuNjk5MTc0MjMiCiAgICAgICB5PSIyOTMuNjkyNzgiCiAgICAgICB4PSIwLjI3NDg0NjczIgogICAgICAgaGVpZ2h0PSIxLjM5ODM0ODUiCiAgICAgICB3aWR0aD0iNC43NjI0OTk4IgogICAgICAgaWQ9InJlY3QzNzM2LTciCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO3N0cm9rZS13aWR0aDowLjEzMjk5MTg1IiAvPgogIDwvZz4KPC9zdmc+Cg==) !important;}#popup .maximize:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1heGltaXplLnN2ZyIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczM3NjIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iNC45ODc2MjgyIgogICAgIGlua3NjYXBlOmN5PSIyNS4zODAwODMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgdW5pdHM9InB4IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDI3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTM3NjUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTI5MS43MDgzMikiPgogICAgPHJlY3QKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMTQ3MDQ1NCIKICAgICAgIGlkPSJyZWN0MzczMiIKICAgICAgIHdpZHRoPSI0Ljc2MjQ5OTgiCiAgICAgICBoZWlnaHQ9IjQuNzYyNDk5OCIKICAgICAgIHg9IjAuMjkxODUyNTMiCiAgICAgICB5PSIyOTIuMDEwNDQiCiAgICAgICByeT0iMC42NjcxMjEyMyIgLz4KICA8L2c+Cjwvc3ZnPgo=) !important;}#popup .close:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iMjAiCiAgIGhlaWdodD0iMjAiCiAgIHZpZXdCb3g9IjAgMCA1LjI5MTY2NjUgNS4yOTE2NjY4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzY4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjEuMSAoM2JmNWFlMGQyNSwgMjAyMS0wOS0yMCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNsb3NlLnN2ZyIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczM3NjIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iNC45ODc2MjgyIgogICAgIGlua3NjYXBlOmN5PSIyNS4zODAwODMiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgdW5pdHM9InB4IgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMDI3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSIwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTM3NjUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTI5MS43MDgzMikiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMTQ5MDI2NjMiCiAgICAgICBkPSJtIDAuOTY5NDI2NTUsMjkxLjk4MjY1IGMgLTAuMTczMTcsMCAtMC4zNDYzMSwwLjA2NjYgLTAuNDc5LDAuMTk5MjcgLTAuMjY1MzgsMC4yNjUzNyAtMC4yNjUzOCwwLjY5MjQ0IDAsMC45NTc4MSBsIDEuMjI0MjA5OTUsMS4yMjQxNyAtMS4yMjQyMDk5NSwxLjIyNDE3IGMgLTAuMjY1MzgsMC4yNjUzNyAtMC4yNjUzOCwwLjY5MjQ0IDAsMC45NTc4MSAwLjI2NTM4LDAuMjY1MzcgMC42OTI2MDk5NSwwLjI2NTM3IDAuOTU3OTg5OTUsMCBsIDEuMjI0MjEsLTEuMjI0MTcgMS4yMjQyMDgsMS4yMjQxNyBjIDAuMTMyNjkyLDAuMTMyNjggMC4zMDU4MywwLjE5OTI3IDAuNDc4OTkxLDAuMTk5MjcgMC4wNDMzLDAgMC4wODY3LC0wLjAwNCAwLjEyOTM3OSwtMC4wMTI1IDAuMTI3OTcxLC0wLjAyNDkgMC4yNTAxLC0wLjA4NzIgMC4zNDk2MiwtMC4xODY3NiAwLjAzMzIsLTAuMDMzMiAwLjA2MjMsLTAuMDY4NiAwLjA4NzEsLTAuMTA2MTQgMC4xNzQxNiwtMC4yNjMxOSAwLjE0NTA2OSwtMC42MTk0NiAtMC4wODcxLC0wLjg1MTY2IGwgLTEuMjI0MjA4LC0xLjIyNDE3IDEuMjI0MjA4LC0xLjIyNDE3IGMgMC4yNjUzNywtMC4yNjUzNyAwLjI2NTM3LC0wLjY5MjQ0IDAsLTAuOTU3ODEgLTAuMjY1Mzc5LC0wLjI2NTM3IC0wLjY5MjYxLC0wLjI2NTM3IC0wLjk1Nzk5LDAgbCAtMS4yMjQyMDgsMS4yMjQxNyAtMS4yMjQyMSwtMS4yMjQxNyBjIC0wLjEzMjY5LC0wLjEzMjY5IC0wLjMwNTgzLC0wLjE5OTI3IC0wLjQ3ODk4OTk1LC0wLjE5OTI3IHoiCiAgICAgICBpZD0icmVjdDM3MTUiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg==) !important;}}@layer layerpro{#popup > input,#popup > button,#popup > textarea,#popup > select{all:unset;}}@layer layerpro{.popup_alert,.popup_message,.popup_prompt,.popup_confirm{height:calc(100% - 41px);box-shadow:0 1px 1px #888;overflow:auto;padding:20px;word-break:break-all;}.popup_alert input[type=text],.popup_message input[type=text],.popup_prompt input[type=text],.popup_confirm input[type=text]{position:relative;width:90%;height:35px;padding:5px;font-size:1.05em;border:2px solid rgba(0,0,0,0.3);border-radius:6px;color:#ddd;background-color:#4a4a4f;}.popup_window___alert #a___alert,.popup_window___alert #a___message,.popup_window___message #a___alert,.popup_window___message #a___message{width:100% !important;}.popup_window___prompt #a___alert,.popup_window___prompt #b___alert,.popup_window___prompt #a___message,.popup_window___prompt #b___message,.popup_window___confirm #a___alert,.popup_window___confirm #b___alert,.popup_window___confirm #a___message,.popup_window___confirm #b___message{width:50% !important;}}@layer layerpro{.resize_0,.resize_1,.resize_2,.resize_3{position:absolute;background-color:var(--resize-background-color);border-radius:var(--border-radius);opacity:0;z-index:5000;transition:var(--transition-time);}.resize_0{top:-4px;left:0;width:100%;height:10px;cursor:n-resize;}.resize_1{top:0;right:-4px;width:10px;height:100%;cursor:e-resize;}.resize_2{bottom:-4px;left:0;width:100%;height:10px;cursor:n-resize;}.resize_3{top:0;left:-4px;width:10px;height:100%;cursor:e-resize;}.resize_corner_0,.resize_corner_1,.resize_corner_2,.resize_corner_3{position:absolute;background-color:var(--resize-background-color);border-radius:var(--border-radius);opacity:0;z-index:5000;transition:var(--transition-time);width:var(--corner-size);height:var(--corner-size);border-radius:var(--corner-border-radius);}.resize_corner_0{top:-4px;left:-4px;cursor:nw-resize;}.resize_corner_1{top:-4px;right:-4px;cursor:ne-resize;}.resize_corner_2{bottom:-4px;right:-4px;cursor:nw-resize;}.resize_corner_3{bottom:-4px;left:-4px;cursor:ne-resize;}.resize_0:hover,.resize_1:hover,.resize_2:hover,.resize_3:hover,.resize_corner_0:hover,.resize_corner_1:hover,.resize_corner_2:hover,.resize_corner_3:hover{opacity:var(--hover-opacity);filter:var(--hover-filter);box-shadow:var(--resize-shadow);transition:var(--transition-time);}}@layer layerpro{#popup{}#popup::-webkit-scrollbar{width:10px;scroll-behavior:smooth;}#popup{}#popup::-webkit-scrollbar-track{-webkit-border-radius:2px;border-radius:2px;margin:5px;}#popup{}#popup::-webkit-scrollbar-thumb{-webkit-border-radius:2px;border-radius:2px;background:rgb(30,150,255) !important;}}";document.head.appendChild(s)})();var e = Object.defineProperty, t = (t, o, n) => ((t, o, n) => o in t ? e(t, o, {
2
2
  enumerable: !0,
3
3
  configurable: !0,
4
4
  writable: !0,
@@ -20,8 +20,8 @@ if (!n.setProps) {
20
20
  const i = Object.getOwnPropertyDescriptor(t, n);
21
21
  i && (i.enumerable = o?.enumerable ?? !1, i.configurable = o?.configurable ?? !1,
22
22
  i.writable = o?.writable ?? !1, Object.defineProperty(t, n, i));
23
- const s = t[n];
24
- "object" == typeof s && null !== s && e(s, o);
23
+ const r = t[n];
24
+ "object" == typeof r && null !== r && e(r, o);
25
25
  });
26
26
  };
27
27
  Object.defineProperty(n, "setProps", {
@@ -31,25 +31,25 @@ if (!n.setProps) {
31
31
  });
32
32
  }
33
33
 
34
- var i = globalThis.layerpro, s = globalThis;
34
+ var i = globalThis.layerpro, r = globalThis;
35
35
 
36
36
  Object.defineProperty(i, "config", {
37
37
  value: e => {
38
- void 0 !== e.nonce && (s.__layerproNonce = e.nonce);
38
+ void 0 !== e.nonce && (r.__layerproNonce = e.nonce);
39
39
  },
40
40
  writable: !1,
41
41
  configurable: !1
42
42
  });
43
43
 
44
- var r = globalThis.layerpro;
44
+ var s = globalThis.layerpro;
45
45
 
46
- Object.defineProperty(r, "credits", {
46
+ Object.defineProperty(s, "credits", {
47
47
  value: e => {},
48
48
  writable: !1,
49
49
  configurable: !1
50
50
  });
51
51
 
52
- var p = "4.0.0", a = globalThis.layerpro;
52
+ var p = "4.0.1", a = globalThis.layerpro;
53
53
 
54
54
  Object.defineProperty(a, "version", {
55
55
  value: () => p,
@@ -57,20 +57,20 @@ Object.defineProperty(a, "version", {
57
57
  configurable: !1
58
58
  });
59
59
 
60
- var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.querySelector(e) ?? document : e instanceof HTMLElement ? e : document, u = e => e ? e.split(/\s+/).filter(e => e.length > 0) : [], h = new Set([ "opacity", "zindex", "z-index", "fontweight", "font-weight", "lineheight", "line-height", "zoom", "flex", "flexgrow", "flex-grow", "flexshrink", "flex-shrink", "order", "gridcolumn", "grid-column", "gridrow", "grid-row", "columncount", "column-count", "fontsizeadjust", "font-size-adjust", "appearance" ]), m = (e, t) => "number" != typeof t || h.has(e.toLowerCase()) ? String(t) : `${t}px`, f = (e, t, o, n) => {
61
- const i = e => o(e), s = n?.ns ? `${t}.${n.ns}` : t;
60
+ var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.querySelector(e) ?? document : e instanceof HTMLElement ? e : document, u = e => e ? e.split(/\s+/).filter(e => e.length > 0) : [], h = new Set([ "--lp-z-index", "--lp-opacity" ]), m = (e, t, o, n) => {
61
+ const i = e => o(e), r = n?.ns ? `${t}.${n.ns}` : t;
62
62
  e.addEventListener(t, i, n);
63
- let r = l.get(e);
64
- r || (r = new Map, l.set(e, r)), r.set(s, {
63
+ let s = l.get(e);
64
+ s || (s = new Map, l.set(e, s)), s.set(r, {
65
65
  handler: i,
66
66
  opts: n ?? {}
67
67
  });
68
- }, b = (e, t, o) => {
68
+ }, f = (e, t, o) => {
69
69
  const n = l.get(e);
70
70
  if (n) {
71
71
  if (o?.ns) {
72
- const i = `${t}.${o.ns}`, s = n.get(i);
73
- return void (s && (e.removeEventListener(t, s.handler, s.opts), n.delete(i)));
72
+ const i = `${t}.${o.ns}`, r = n.get(i);
73
+ return void (r && (e.removeEventListener(t, r.handler, r.opts), n.delete(i)));
74
74
  }
75
75
  for (const [o, i] of [ ...n ]) (o === t || o.startsWith(`${t}.`)) && (e.removeEventListener(t, i.handler, i.opts),
76
76
  n.delete(o));
@@ -97,9 +97,19 @@ var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.q
97
97
  text(e) {
98
98
  return this.el.textContent = e, this;
99
99
  }
100
- css(e, t) {
101
- if ("object" == typeof e && null !== e) for (const [t, o] of Object.entries(e)) this.el.style.setProperty(t.replace(/[A-Z]/g, e => `-${e.toLowerCase()}`), m(t, o)); else this.el.style.setProperty(e.replace(/[A-Z]/g, e => `-${e.toLowerCase()}`), m(e, t));
102
- return this;
100
+ cssVar(e, t) {
101
+ const o = e.startsWith("--") ? e : `--${e}`, n = "number" == typeof t && !h.has(o) ? `${t}px` : String(t);
102
+ return this.el.style.setProperty(o, n), this;
103
+ }
104
+ removeVar(e) {
105
+ const t = e.startsWith("--") ? e : `--${e}`;
106
+ return this.el.style.removeProperty(t), this;
107
+ }
108
+ geom(e) {
109
+ return void 0 !== e.top && this.cssVar("--lp-top", e.top), void 0 !== e.left && this.cssVar("--lp-left", e.left),
110
+ void 0 !== e.right && this.cssVar("--lp-right", e.right), void 0 !== e.bottom && this.cssVar("--lp-bottom", e.bottom),
111
+ void 0 !== e.width && this.cssVar("--lp-width", e.width), void 0 !== e.height && this.cssVar("--lp-height", e.height),
112
+ this;
103
113
  }
104
114
  addClass(e) {
105
115
  for (const t of u(e)) this.el.classList.add(t);
@@ -118,7 +128,7 @@ var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.q
118
128
  }
119
129
  isHidden() {
120
130
  const e = this.el;
121
- return "none" === e.style.display || ("none" === getComputedStyle(e).display || 0 === e.offsetWidth && 0 === e.offsetHeight);
131
+ return !!e.classList.contains("lp_hidden") || ("none" === getComputedStyle(e).display || 0 === e.offsetWidth && 0 === e.offsetHeight);
122
132
  }
123
133
  attr(e, t) {
124
134
  return void 0 === t ? this.el.getAttribute(e) : (this.el.setAttribute(e, t), this);
@@ -138,19 +148,19 @@ var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.q
138
148
  return this.el.parentElement ? new e(this.el.parentElement) : null;
139
149
  }
140
150
  hide() {
141
- return this.el.style.display = "none", this;
151
+ return this.el.classList.add("lp_hidden"), this;
142
152
  }
143
153
  show() {
144
- return this.el.style.display = "", this;
154
+ return this.el.classList.remove("lp_hidden"), this;
145
155
  }
146
156
  toggle() {
147
- return this.el.style.display = "none" === this.el.style.display ? "" : "none", this;
157
+ return this.el.classList.toggle("lp_hidden"), this;
148
158
  }
149
159
  on(e, t, o) {
150
- return f(this.el, e, t, o), this;
160
+ return m(this.el, e, t, o), this;
151
161
  }
152
162
  off(e, t) {
153
- return b(this.el, e, t), this;
163
+ return f(this.el, e, t), this;
154
164
  }
155
165
  data(e, t) {
156
166
  let o = c.get(this.el);
@@ -192,115 +202,203 @@ var l = new WeakMap, c = new WeakMap, d = e => "string" == typeof e ? document.q
192
202
  fadeIn(e, t) {
193
203
  const o = this.el;
194
204
  let n = 100, i = t;
195
- return "function" == typeof e ? i = e : n = e, o.style.display = "", o.style.transition = "none",
196
- o.style.opacity = "0", o.offsetWidth, o.style.transition = `opacity ${n}ms ease`,
197
- o.style.opacity = "1", this.finishTransition(n, () => {
198
- o.style.transition = "", o.style.opacity = "", i?.();
205
+ return "function" == typeof e ? i = e : n = e, o.style.setProperty("--lp-fade-duration", `${n}ms`),
206
+ o.classList.remove("lp_hidden"), o.classList.add("lp_no_transition"), o.classList.add("lp_fade_out"),
207
+ o.offsetWidth, o.classList.remove("lp_no_transition"), o.classList.remove("lp_fade_out"),
208
+ o.classList.add("lp_fade_in"), this.finishTransition(n, () => {
209
+ o.classList.remove("lp_fade_in"), i?.();
199
210
  }), this;
200
211
  }
201
212
  fadeOut(e, t) {
202
213
  const o = this.el;
203
214
  let n = 100, i = t;
204
- return "function" == typeof e ? i = e : n = e, o.style.transition = `opacity ${n}ms ease`,
205
- o.style.opacity = "0", this.finishTransition(n, () => {
206
- o.style.display = "none", o.style.transition = "", o.style.opacity = "", i?.();
207
- }), this;
208
- }
209
- animate(e, t, o) {
210
- const n = this.el;
211
- let i = 200, s = o;
212
- "function" == typeof t ? s = t : i = t;
213
- const r = Object.keys(e), p = {};
214
- for (const t of r) p[t] = m(t, e[t]);
215
- return n.style.transition = "none", n.offsetWidth, n.style.transition = `${r.join(", ")} ${i}ms ease`,
216
- Object.assign(n.style, p), this.finishTransition(i, () => {
217
- n.style.transition = "", s?.();
215
+ return "function" == typeof e ? i = e : n = e, o.style.setProperty("--lp-fade-duration", `${n}ms`),
216
+ o.classList.remove("lp_fade_in"), o.classList.add("lp_fade_out"), this.finishTransition(n, () => {
217
+ o.classList.add("lp_hidden"), o.classList.remove("lp_fade_out"), i?.();
218
218
  }), this;
219
219
  }
220
220
  finishTransition(e, t) {
221
221
  const o = this.el;
222
222
  let n = !1;
223
223
  const i = () => {
224
- n || (n = !0, o.removeEventListener("transitionend", s), t());
225
- }, s = e => {
224
+ n || (n = !0, o.removeEventListener("transitionend", r), t());
225
+ }, r = e => {
226
226
  e.target === o && i();
227
227
  };
228
- o.addEventListener("transitionend", s), window.setTimeout(i, e + 60);
228
+ o.addEventListener("transitionend", r), window.setTimeout(i, e + 60);
229
229
  }
230
230
  };
231
231
 
232
- function g(e, t) {
232
+ function b(e, t) {
233
233
  const o = d(t).querySelector(e);
234
234
  return o ? new _(o) : null;
235
235
  }
236
236
 
237
- function v(e, t) {
237
+ function g(e, t) {
238
238
  return [ ...d(t).querySelectorAll(e) ].map(e => new _(e));
239
239
  }
240
240
 
241
- var y = e => {
241
+ var v = e => {
242
242
  const t = document.createElement("div");
243
243
  t.innerHTML = e.trim();
244
244
  const o = t.firstElementChild;
245
245
  return new _(o);
246
- }, w = {
246
+ }, y = {
247
247
  on(e, t, o) {
248
- f(document, e, t, o);
248
+ m(document, e, t, o);
249
249
  },
250
250
  off(e, t) {
251
- b(document, e, t);
251
+ f(document, e, t);
252
252
  }
253
- }, z = {
253
+ }, w = {
254
254
  on(e, t, o) {
255
- f(window, e, t, o);
255
+ m(window, e, t, o);
256
256
  },
257
257
  off(e, t) {
258
- b(window, e, t);
258
+ f(window, e, t);
259
259
  },
260
260
  height: () => window.innerHeight,
261
261
  width: () => window.innerWidth,
262
262
  scrollTop: () => window.scrollY || document.documentElement.scrollTop || 0,
263
263
  scrollLeft: () => window.scrollX || document.documentElement.scrollLeft || 0
264
- }, x = new Map, k = new WeakSet, $ = new Map, E = e => {
264
+ }, z = new Map, $ = new WeakSet, k = new Map, x = e => {
265
265
  e ? Array.from(document.body.children).forEach(e => {
266
- "popup" !== e.id && (e.setAttribute("aria-hidden", "true"), k.add(e));
266
+ "popup" !== e.id && "popup_dock" !== e.id && (e.setAttribute("aria-hidden", "true"),
267
+ $.add(e));
267
268
  }) : Array.from(document.body.children).forEach(e => {
268
- k.has(e) && (e.removeAttribute("aria-hidden"), k.delete(e));
269
+ $.has(e) && (e.removeAttribute("aria-hidden"), $.delete(e));
269
270
  });
270
- }, T = () => {
271
- const e = x.get("__lastActive__");
272
- e && "function" == typeof e.focus && e.focus(), x.delete("__lastActive__");
273
- }, S = e => {
274
- const t = $.get(e);
275
- t && (t.el.removeEventListener("keydown", t.handler), $.delete(e));
276
- }, C = E, L = () => {
271
+ }, S = () => {
272
+ const e = z.get("__lastActive__");
273
+ e && "function" == typeof e.focus && e.focus(), z.delete("__lastActive__");
274
+ }, C = e => {
275
+ const t = k.get(e);
276
+ t && (t.el.removeEventListener("keydown", t.handler), k.delete(e));
277
+ }, L = x, E = () => {
277
278
  const e = document.activeElement;
278
- x.set("__lastActive__", e);
279
- }, M = (e, t) => {
279
+ z.set("__lastActive__", e);
280
+ }, T = (e, t) => {
280
281
  const o = e => {
281
282
  const o = e;
282
283
  if ("Tab" !== o.key) return;
283
284
  const n = t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
284
285
  if (0 === n.length) return;
285
- const i = n[0], s = n[n.length - 1];
286
- o.shiftKey ? document.activeElement === i && (e.preventDefault(), s.focus()) : document.activeElement === s && (e.preventDefault(),
286
+ const i = n[0], r = n[n.length - 1];
287
+ o.shiftKey ? document.activeElement === i && (e.preventDefault(), r.focus()) : document.activeElement === r && (e.preventDefault(),
287
288
  i.focus());
288
289
  };
289
- $.set(e, {
290
+ k.set(e, {
290
291
  el: t,
291
292
  handler: o
292
293
  }), t.addEventListener("keydown", o, !0);
293
- }, A = e => {
294
- S(e), T(), E(!1);
295
- }, N = new Map, O = new Map, H = {
294
+ }, M = e => {
295
+ C(e), S(), x(!1);
296
+ }, A = "layerpro-dock", P = () => {
297
+ document.documentElement?.classList.remove(A), document.body?.classList.remove(A);
298
+ }, N = {
296
299
  "&": "&",
297
300
  "<": "&lt;",
298
301
  ">": "&gt;",
299
302
  '"': "&quot;",
300
303
  "'": "&#39;"
301
- }, P = e => e.replace(/[&<>"']/g, e => H[e]), I = e => {
304
+ }, O = e => e.replace(/[&<>"']/g, e => N[e]), I = new Map, V = new Map, H = e => {
305
+ if ("function" == typeof e.body) return;
306
+ const t = !0 === e.modal ? ".popup_modal_" + e.id : "#popup";
307
+ g('[class^="popup_window_"]', t).forEach(e => e.removeClass("zHigh")), g('[class^="popup_bar_"]', t).forEach(e => e.removeClass("popup_bar_selected")),
308
+ g('[class^="icon_"]', t).forEach(e => e.removeClass("popup_bar_selected")), !0 === e.modal && v(`<div class="popup_modal_${e.id} popup_modal">`).appendTo("#popup").cssVar("--lp-z-index", layerpro.popup.zIndex() + 1e3),
309
+ v(`<div class="popup_overflow_${e.id} popup_overflow">`).appendTo(t).cssVar("--lp-top", e.top).cssVar("--lp-left", e.left).cssVar("--lp-right", e.right).cssVar("--lp-bottom", e.bottom).cssVar("--lp-width", e.width).cssVar("--lp-height", e.height).cssVar("--lp-min-width", e.minWidth).cssVar("--lp-min-height", e.minHeight).cssVar("--lp-z-index", layerpro.popup.zIndex()).on("pointerdown", () => {
310
+ layerpro.popup.index(e);
311
+ }).hide().fadeIn(e.fadeIn);
312
+ const o = v(`<div class="popup_window_${e.id} popup_window">`).appendTo(`.popup_overflow_${e.id}`).addClass("zHigh").addClass(e.class);
313
+ o.attr("role", "dialog"), o.attr("tabindex", "-1"), o.attr("aria-modal", !0 === e.modal ? "true" : "false"),
314
+ e.name && o.attr("aria-label", String(e.name)), L(!0), E(), T(String(e.id), o.el),
315
+ "function" == typeof requestAnimationFrame ? requestAnimationFrame(() => o.el.focus()) : o.el.focus();
316
+ const n = [ e.top, e.left, e.bottom, e.right ].reduce((e, t) => "number" == typeof t && isFinite(t) ? Number(e) + t : e, 0);
317
+ if (!0 === e.center || 0 === n) {
318
+ const t = g('[class^="popup_overflow_"]', "#popup").length, o = 20 * Math.max(0, t - 1);
319
+ layerpro.popup.center(e, o);
320
+ }
321
+ layerpro.popup.unmount = e => {
322
+ import("layerpro/react").then(t => {
323
+ const o = t.default;
324
+ o.unmount && o.unmount(String(e));
325
+ }).catch(() => {});
326
+ }, layerpro.popup.cleanupEvents = e => {
327
+ const t = V.get(e);
328
+ t && (t.iconClick && b(`.icon_${e}`, "#popup_dock")?.off("click"), t.iconClose && b(`.icon_close_${e}`, "#popup_dock")?.off("click"),
329
+ t.buttonIconize && b(`.button_iconize_${e}`)?.off("click"), t.buttonMaximize && b(`.button_maximize_${e}`)?.off("click"),
330
+ t.buttonClose && b(`.button_close_${e}`)?.off("click"), t.escKey && y.off("keydown", {
331
+ ns: `esc-${e}`
332
+ }), V.delete(e));
333
+ }, layerpro.popup.abortSource = e => {
334
+ const t = I.get(e);
335
+ t && (t.abort(), I.delete(e));
336
+ }, layerpro.popup.destroy = e => {
337
+ layerpro.popup.abortSource(e), layerpro.popup.cleanupEvents(e), L(!1);
338
+ const t = document.querySelector(`.popup_window_${e}`);
339
+ t && t.remove();
340
+ }, v(`<div class="popup_bar_${e.id} popup_bar">`).appendTo(o).addClass("popup_bar_selected"),
341
+ e.icon && v(`<div class="popup_icon_${e.id} popup_icon">${e.icon}</div>`).appendTo(`.popup_bar_${e.id}`);
342
+ const i = O(String(e.name));
343
+ if (v(`<div class="popup_drag_${e.id} popup_drag">${i}</div>`).appendTo(`.popup_bar_${e.id}`),
344
+ v(`<div class="popup_option_${e.id} popup_option">`).appendTo(`.popup_bar_${e.id}`),
345
+ !0 === e.iconize && !b("#popup_dock")) {
346
+ v('\n <div id="popup_dock">\n <div id="popup_dock_icon"></div>\n <div id="popup_dock_list"></div>\n <div id="popup_dock_options"></div>\n </div>\n ').appendTo("html").cssVar("--lp-z-index", layerpro.popup.zIndex() + 1e3),
347
+ document.documentElement?.classList.add(A), document.body?.classList.add(A);
348
+ }
349
+ if (b("#popup_dock") && !0 === e.dockable) {
350
+ const t = String(e.id), o = `\n <div class="icon_${e.id}">\n <span>${e.icon ? e.icon : ""}</span>\n <span>${i}</span>\n </div>\n `, n = () => {
351
+ const t = b(".popup_overflow_" + e.id, "#popup");
352
+ t && t.data("iconize") ? (layerpro.popup.index(e), layerpro.popup.iconize(e)) : layerpro.popup.iconize(e),
353
+ layerpro.popup.index(e);
354
+ }, r = t => {
355
+ t?.stopPropagation(), e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(), layerpro.popup.close(e);
356
+ };
357
+ V.set(t, {
358
+ iconClick: !0,
359
+ iconClose: !0
360
+ }), v(o).appendTo("#popup_dock_list").addClass("popup_bar_selected").on("click", n),
361
+ v(`<button class="icon_close_${e.id}">X</button>`).appendTo(`.icon_${e.id}`).on("click", r);
362
+ }
363
+ if (!0 === e.iconize) {
364
+ const t = String(e.id), o = () => {
365
+ layerpro.popup.iconize(e);
366
+ }, n = V.get(t) || {};
367
+ n.buttonIconize = !0, V.set(t, n), v(`<button class="button_iconize_${e.id} iconize">`).appendTo(`.popup_option_${e.id}`).on("click", o);
368
+ }
369
+ if (!0 === e.maximize) {
370
+ const t = String(e.id), o = () => {
371
+ layerpro.popup.maximize(e);
372
+ }, n = V.get(t) || {};
373
+ n.buttonMaximize = !0, V.set(t, n), v(`<button class="button_maximize_${e.id} maximize">`).appendTo(`.popup_option_${e.id}`).on("click", o);
374
+ }
375
+ if (!0 === e.close) {
376
+ const t = String(e.id), o = () => {
377
+ e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(), layerpro.popup.close(e);
378
+ }, n = V.get(t) || {};
379
+ n.buttonClose = !0, V.set(t, n), v(`<button class="button_close_${e.id} close">`).appendTo(`.popup_option_${e.id}`).on("click", o);
380
+ }
381
+ const r = String(e.id), s = V.get(r) || {};
382
+ if (s.escKey = !0, V.set(r, s), y.on("keydown", t => {
383
+ const o = t;
384
+ "Escape" !== o.key && 27 !== o.keyCode || (e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(),
385
+ layerpro.popup.close(e));
386
+ }, {
387
+ ns: `esc-${r}`
388
+ }), e.timer > 0) {
389
+ const t = {};
390
+ t[String(`st_${e.id}`)] = setTimeout(() => {
391
+ layerpro.popup.close(e), clearTimeout(t[String(`st_${e.id}`)]);
392
+ }, e.timer);
393
+ }
394
+ e.movable && layerpro.popup.movable(e), e.resizable && layerpro.popup.resizable(e),
395
+ e.isMaximize && layerpro.popup.maximize(e), v(`<div class="popup_internal_${e.id} popup_internal">`).appendTo(o),
396
+ v(`<div class="popup_body_${e.id} popup_body">`).appendTo(`.popup_internal_${e.id}`).hide().fadeIn(e.fadeIn, () => {
397
+ W(e), j(e), R(e);
398
+ });
399
+ }, W = e => {
302
400
  if (!e.source) return;
303
- const t = g(`.popup_body_${e.id}`), o = String(e.source);
401
+ const t = b(`.popup_body_${e.id}`), o = String(e.source);
304
402
  let n;
305
403
  try {
306
404
  n = new URL(o, window.location.origin);
@@ -309,18 +407,18 @@ var y = e => {
309
407
  }
310
408
  if (n.origin !== window.location.origin) return;
311
409
  const i = new AbortController;
312
- N.set(String(e.id), i), fetch(o, {
410
+ I.set(String(e.id), i), fetch(o, {
313
411
  mode: "same-origin",
314
412
  signal: i.signal
315
413
  }).then(e => {
316
414
  if ((e.headers.get("content-type") || "").includes("text/html"), !e.ok) throw new Error(`HTTP error! status: ${e.status}`);
317
415
  return e.text();
318
416
  }).then(o => {
319
- N.get(String(e.id)) && !i.signal.aborted && t?.hide().html(o).fadeIn(e.fadeIn);
417
+ I.get(String(e.id)) && !i.signal.aborted && t?.hide().html(o).fadeIn(e.fadeIn);
320
418
  }).catch(e => {
321
419
  e.name;
322
420
  });
323
- }, W = e => {
421
+ }, j = e => {
324
422
  if (e.body && !e.source) {
325
423
  const t = e.body;
326
424
  if ("object" == typeof t && null !== t && void 0 !== t.type && "object" == typeof t.props && null !== t.props) {
@@ -331,42 +429,42 @@ var y = e => {
331
429
  n && n(e, t);
332
430
  }).catch(e => {});
333
431
  } else if ("string" == typeof e.body && e.body.trim().startsWith("<")) {
334
- const t = P(e.body);
335
- g(`.popup_body_${e.id}`)?.html(t).fadeIn(e.fadeIn);
432
+ const t = O(e.body);
433
+ b(`.popup_body_${e.id}`)?.html(t).fadeIn(e.fadeIn);
336
434
  } else {
337
- const t = P(String(e.body));
338
- g(`.popup_body_${e.id}`)?.text(t).fadeIn(e.fadeIn);
435
+ const t = O(String(e.body));
436
+ b(`.popup_body_${e.id}`)?.text(t).fadeIn(e.fadeIn);
339
437
  }
340
438
  }
341
- }, j = e => {
439
+ }, R = e => {
342
440
  if (e.buttons) {
343
- if (y('<div class="buttons"></div>').appendTo(`.popup_body_${e.id}`), e.buttons.confirm) {
344
- const t = P(e.buttons.confirm.text.toUpperCase()), o = y(`<button id="lp_confirm" type="button">\n ${t}\n </button>`).appendTo(`.popup_body_${e.id} .buttons`);
441
+ if (v('<div class="buttons"></div>').appendTo(`.popup_body_${e.id}`), e.buttons.confirm) {
442
+ const t = O(e.buttons.confirm.text.toUpperCase()), o = v(`<button id="lp_confirm" type="button">\n ${t}\n </button>`).appendTo(`.popup_body_${e.id} .buttons`);
345
443
  e.buttons.confirm.cb && o.on("click", () => {
346
444
  e.buttons?.confirm?.cb?.(), layerpro.popup.close(e);
347
445
  });
348
446
  }
349
447
  if (e.buttons.cancel) {
350
- const t = P(e.buttons.cancel.text.toUpperCase());
351
- y(`<button id="lp_cancel" type="button">\n ${t}\n </button>`).appendTo(`.popup_body_${e.id} .buttons`).on("click", () => {
448
+ const t = O(e.buttons.cancel.text.toUpperCase());
449
+ v(`<button id="lp_cancel" type="button">\n ${t}\n </button>`).appendTo(`.popup_body_${e.id} .buttons`).on("click", () => {
352
450
  e.buttons?.cancel?.cb?.(), layerpro.popup.close(e);
353
451
  });
354
452
  }
355
453
  }
356
- }, R = () => "undefined" != typeof window && window.matchMedia("(max-width: 1024px)").matches, D = () => {
454
+ }, q = () => "undefined" != typeof window && window.matchMedia("(max-width: 1024px)").matches, D = () => {
357
455
  if (!0 === window.__FORCE_TOUCH_MODE__) return "touch";
358
456
  const e = (() => {
359
457
  if ("undefined" == typeof navigator) return !1;
360
458
  const e = navigator.userAgent;
361
459
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e);
362
- })() || R();
460
+ })() || q();
363
461
  return ("ontouchstart" in window || navigator.maxTouchPoints > 0) && e ? "touch" : "mouse";
364
- }, q = D(), B = !R(), X = null;
462
+ }, B = D(), X = !q(), Y = null;
365
463
 
366
464
  if ("undefined" != typeof window) {
367
465
  const e = window.matchMedia("(max-width: 1024px)"), t = () => {
368
- const e = D(), t = q, o = !R();
369
- q = e, B !== o && (B = o, X && X(e, t));
466
+ const e = D(), t = B, o = !q();
467
+ B = e, X !== o && (X = o, Y && Y(e, t));
370
468
  };
371
469
  let o;
372
470
  e.addListener ? e.addListener(t) : e.addEventListener("change", t), window.addEventListener("resize", () => {
@@ -374,302 +472,315 @@ if ("undefined" != typeof window) {
374
472
  });
375
473
  }
376
474
 
377
- var Y = e => {
475
+ var U = e => {
378
476
  const t = e;
379
477
  return void 0 !== t.clientX ? t.clientX : t.touches && t.touches.length > 0 ? t.touches[0].clientX : 0;
380
478
  }, K = e => {
381
479
  const t = e;
382
480
  return void 0 !== t.clientY ? t.clientY : t.touches && t.touches.length > 0 ? t.touches[0].clientY : 0;
383
- }, F = 250, U = 150, Z = !1, G = 1e3, V = !1, J = 0, Q = new Map, ee = new Map, te = new Map, oe = new Map, ne = null, ie = () => g("body"), se = e => "object" == typeof e && null !== e ? e.id : e, re = {
481
+ }, F = e => `layerpro:geometry:${e}`, J = e => `layerpro:native:${e}`, G = () => {
482
+ try {
483
+ return "undefined" == typeof localStorage ? null : localStorage;
484
+ } catch {
485
+ return null;
486
+ }
487
+ }, Q = (e, t) => {
488
+ const o = G();
489
+ if (o) try {
490
+ o.setItem(e, JSON.stringify(t));
491
+ } catch {}
492
+ }, Z = e => {
493
+ const t = G();
494
+ if (!t) return null;
495
+ try {
496
+ const o = t.getItem(e);
497
+ if (!o) return null;
498
+ const n = JSON.parse(o);
499
+ return n && "object" == typeof n ? n : null;
500
+ } catch {
501
+ return null;
502
+ }
503
+ }, ee = [ "--input-background-color", "--input-color", "--button-background-color", "--button-color", "--inputButton-fontSize", "--resize-background-color", "--resize-shadow", "--dock-background-color", "--dock-height", "--dock-sideLeft", "--dock-sideCenter", "--dock-sideRight", "--dock-icon-width", "--bar-background", "--bar-selected-background", "--bar-color", "--bar-border-bottom", "--bar-shadow", "--window-background", "--window-shadow", "--window-border-radius", "--window-z-high-border", "--window-z-high-shadow", "--internal-background", "--body-color", "--body-background", "--modal-background", "--popup-z-index", "--transition-time", "--border-radius", "--corner-size", "--corner-border-radius", "--hover-opacity", "--hover-filter" ], te = new Map, oe = (e, t) => {
504
+ const o = String(e.id), n = !0 === e.persist ? (e => Z(J(e)))(o) : null, i = ((e, t) => {
505
+ const o = t?.outerWidth ?? ("number" == typeof e.width ? e.width : 340), n = t?.outerHeight ?? ("number" == typeof e.height ? e.height : 220), i = t?.screenX ?? ("number" == typeof e.left ? e.left : void 0), r = t?.screenY ?? ("number" == typeof e.top ? e.top : void 0), s = [ `width=${Math.round(o)}`, `height=${Math.round(n)}`, "menubar=no", "toolbar=no", "location=no", "status=no", "resizable=yes", "scrollbars=yes" ];
506
+ return void 0 !== i && s.push(`left=${Math.round(i)}`), void 0 !== r && s.push(`top=${Math.round(r)}`),
507
+ s.join(",");
508
+ })(e, n), r = window.open("", `layerpro_${o}`, i);
509
+ if (!r) return null;
510
+ const s = r.document;
511
+ s.open(), s.write(`<!DOCTYPE html><html><head><meta charset="utf-8"><title>${O(String(e.name ?? "LayerPro"))}</title><style>${(() => {
512
+ const e = document.querySelector("style[data-layerpro-styles]");
513
+ return e?.textContent ?? "";
514
+ })()}</style><style>:root{${(() => {
515
+ const e = getComputedStyle(document.documentElement), t = [];
516
+ for (const o of ee) {
517
+ const n = e.getPropertyValue(o);
518
+ n && t.push(`${o}:${n.trim()};`);
519
+ }
520
+ return t.join("");
521
+ })()}}html,body{margin:0;padding:0;height:100%;overflow:hidden}</style></head><body>${(e => {
522
+ const t = String(e.id), o = O(String(e.name ?? "")), n = e.icon ? O(String(e.icon)) : "", i = [];
523
+ return !0 === e.maximize && i.push(`<button class="button_maximize_${t} maximize"></button>`),
524
+ !0 === e.close && i.push(`<button class="button_close_${t} close"></button>`), `\n <div id="popup">\n <div class="popup_overflow_${t} popup_overflow">\n <div class="popup_window_${t} popup_window zHigh" role="dialog" tabindex="-1" aria-label="${o}">\n <div class="popup_bar_${t} popup_bar popup_bar_selected">\n ${n ? `<div class="popup_icon_${t} popup_icon">${n}</div>` : ""}\n <div class="popup_drag_${t} popup_drag">${o}</div>\n <div class="popup_option_${t} popup_option">${i.join("")}</div>\n </div>\n <div class="popup_internal_${t} popup_internal">\n <div class="popup_body_${t} popup_body"></div>\n </div>\n </div>\n </div>\n </div>\n `;
525
+ })(e)}</body></html>`), s.close();
526
+ const p = s.querySelector(`.popup_overflow_${o}`);
527
+ p && (p.style.setProperty("--lp-top", "0"), p.style.setProperty("--lp-left", "0"),
528
+ p.style.setProperty("--lp-width", "100%"), p.style.setProperty("--lp-height", "100%"));
529
+ const a = s.querySelector(`.popup_body_${o}`);
530
+ a && (a.innerHTML = (e => {
531
+ const t = e.body;
532
+ return "string" != typeof t ? "" : (t.trim().startsWith("<"), O(t));
533
+ })(e) + (e => {
534
+ if (!e.buttons) return "";
535
+ const t = [ '<div class="buttons">' ];
536
+ return e.buttons.confirm && t.push(`<button id="lp_confirm" type="button">${O(String(e.buttons.confirm.text).toUpperCase())}</button>`),
537
+ e.buttons.cancel && t.push(`<button id="lp_cancel" type="button">${O(String(e.buttons.cancel.text).toUpperCase())}</button>`),
538
+ t.push("</div>"), t.join("");
539
+ })(e));
540
+ const l = s.getElementById("lp_confirm");
541
+ l?.addEventListener("click", () => {
542
+ e.buttons?.confirm?.cb?.(), r.close();
543
+ });
544
+ const c = s.getElementById("lp_cancel");
545
+ c?.addEventListener("click", () => {
546
+ e.buttons?.cancel?.cb?.(), r.close();
547
+ });
548
+ const d = s.querySelector(`.button_close_${o}`);
549
+ d?.addEventListener("click", () => {
550
+ e.buttons?.cancel?.cb?.(), r.close();
551
+ }), s.addEventListener("keydown", t => {
552
+ const o = t;
553
+ "Escape" !== o.key && 27 !== o.keyCode || (e.buttons?.cancel?.cb?.(), r.close());
554
+ }), !0 === e.closeWithOpener && (e => {
555
+ const t = e.setInterval(() => {
556
+ let o = !1;
557
+ try {
558
+ const t = e.opener;
559
+ o = !t || !0 === t.closed;
560
+ } catch {
561
+ o = !1;
562
+ }
563
+ if (o) {
564
+ e.clearInterval(t);
565
+ try {
566
+ e.close();
567
+ } catch {}
568
+ }
569
+ }, 400);
570
+ })(r);
571
+ const u = () => {
572
+ if (!0 === e.persist) try {
573
+ ((e, t) => {
574
+ Q(J(e), t);
575
+ })(o, {
576
+ screenX: r.screenX,
577
+ screenY: r.screenY,
578
+ outerWidth: r.outerWidth,
579
+ outerHeight: r.outerHeight
580
+ });
581
+ } catch {}
582
+ }, h = window.setInterval(() => {
583
+ r.closed && (window.clearInterval(h), u(), te.delete(o), t?.());
584
+ }, 400), m = {
585
+ win: r,
586
+ id: o,
587
+ close: () => {
588
+ window.clearInterval(h), u(), te.delete(o);
589
+ try {
590
+ r.close();
591
+ } catch {}
592
+ t?.();
593
+ }
594
+ };
595
+ return te.set(o, m), m;
596
+ }, ne = 250, ie = 150, re = !1, se = 1e3, pe = !1, ae = 0, le = new Map, ce = new Map, de = new Map, ue = new Map, he = new Map, me = null, fe = () => b("body"), _e = e => "object" == typeof e && null !== e ? e.id : e, be = {
384
597
  open: e => {
385
598
  if (!e) return Promise.reject(new Error("LayerPro: open() requires a props object"));
386
- e.id = e.id ?? "popup_" + ++J, e.body = e.body ?? "", e.class = e.class ?? "", e.width = e.width ?? 340,
387
- e.height = e.height ?? 220, e.minWidth = e.minWidth ?? 340, e.minHeight = e.minHeight ?? 220,
388
- e.name = e.name ?? "popUp_" + e.id, e.source = e.source ?? null, e.icon = e.icon ?? null,
389
- e.iconize = e.iconize ?? null, e.maximize = e.maximize ?? null, e.isMaximize = e.isMaximize ?? null,
390
- e.dockable = e.dockable ?? null, e.close = e.close ?? null, e.modal = e.modal ?? null,
391
- e.movable = e.movable ?? null, e.resizable = e.resizable ?? null, e.store = e.store ?? !1,
392
- e.top = e.top ?? "auto", e.left = e.left ?? "auto", e.right = e.right ?? "auto",
599
+ e.id = e.id ?? "popup_" + ++ae, e.body = e.body ?? "", e.class = e.class ?? "",
600
+ e.width = e.width ?? 340, e.height = e.height ?? 220, e.minWidth = e.minWidth ?? 340,
601
+ e.minHeight = e.minHeight ?? 220, e.name = e.name ?? "popUp_" + e.id, e.source = e.source ?? null,
602
+ e.icon = e.icon ?? null, e.iconize = e.iconize ?? null, e.maximize = e.maximize ?? null,
603
+ e.isMaximize = e.isMaximize ?? null, e.dockable = e.dockable ?? null, e.close = e.close ?? null,
604
+ e.modal = e.modal ?? null, e.movable = e.movable ?? null, e.resizable = e.resizable ?? null,
605
+ e.store = e.store ?? !1, e.top = e.top ?? "auto", e.left = e.left ?? "auto", e.right = e.right ?? "auto",
393
606
  e.bottom = e.bottom ?? "auto", e.fadeIn = e.fadeIn ?? 100, e.fadeOut = e.fadeOut ?? 100,
394
- F = e.minWidth, U = e.minHeight, e.width < e.minWidth && (e.width, e.width = e.minWidth),
607
+ e.native = e.native ?? !1, e.persist = e.persist ?? !1, e.closeWithOpener = e.closeWithOpener ?? !1,
608
+ ne = e.minWidth, ie = e.minHeight, e.width < e.minWidth && (e.width, e.width = e.minWidth),
395
609
  e.height < e.minHeight && (e.height, e.height = e.minHeight), "auto" === e.width && (e.width = "100%"),
396
- "auto" === e.height && (e.height = "100%"), g("#popup") || y('<div id="popup">').appendTo("body").css({
397
- "pointer-events": "none",
398
- "z-index": re.zIndex() + 1
399
- });
610
+ "auto" === e.height && (e.height = "100%"), b("#popup") || v('<div id="popup">').appendTo("body").cssVar("--lp-z-index", be.zIndex() + 1);
400
611
  const t = String(e.id);
401
- oe.delete(t);
612
+ ue.delete(t), he.set(t, e);
402
613
  const o = new Promise(e => {
403
- oe.set(t, e);
614
+ ue.set(t, e);
404
615
  });
405
- return g(".popup_window_" + e.id, "#popup") ? (re.index(e), W(e), j(e)) : (e => {
406
- if ("function" == typeof e.body) return;
407
- const t = !0 === e.modal ? ".popup_modal_" + e.id : "#popup";
408
- v('[class^="popup_window_"]', t).forEach(e => e.removeClass("zHigh")), v('[class^="popup_bar_"]', t).forEach(e => e.removeClass("popup_bar_selected")),
409
- v('[class^="icon_"]', t).forEach(e => e.removeClass("popup_bar_selected")), !0 === e.modal && y(`<div class="popup_modal_${e.id} popup_modal">`).appendTo("#popup").css({
410
- "pointer-events": "auto",
411
- "z-index": layerpro.popup.zIndex() + 1e3
412
- }), y(`<div class="popup_overflow_${e.id} popup_overflow">`).appendTo(t).css({
413
- top: e.top,
414
- left: e.left,
415
- right: e.right,
416
- bottom: e.bottom,
417
- width: e.width,
418
- height: e.height,
419
- minWidth: e.minWidth,
420
- minHeight: e.minHeight,
421
- maxWidth: e.maxWidth,
422
- maxHeight: e.maxHeight,
423
- pointerEvents: "auto",
424
- zIndex: layerpro.popup.zIndex()
425
- }).on("pointerdown", () => {
426
- layerpro.popup.index(e);
427
- }).hide().fadeIn(e.fadeIn);
428
- const o = y(`<div class="popup_window_${e.id} popup_window">`).appendTo(`.popup_overflow_${e.id}`).css({
429
- "pointer-events": "auto"
430
- }).addClass("zHigh").addClass(e.class);
431
- o.attr("role", "dialog"), o.attr("tabindex", "-1"), o.attr("aria-modal", !0 === e.modal ? "true" : "false"),
432
- e.name && o.attr("aria-label", String(e.name)), C(!0), L(), M(String(e.id), o.el),
433
- "function" == typeof requestAnimationFrame ? requestAnimationFrame(() => o.el.focus()) : o.el.focus();
434
- const n = [ e.top, e.left, e.bottom, e.right ].reduce((e, t) => "number" == typeof t && isFinite(t) ? Number(e) + t : e, 0);
435
- if (!0 === e.center || 0 === n) {
436
- const t = v('[class^="popup_overflow_"]', "#popup").length, o = 20 * Math.max(0, t - 1);
437
- layerpro.popup.center(e, o);
438
- }
439
- layerpro.popup.unmount = e => {
440
- import("layerpro/react").then(t => {
441
- const o = t.default;
442
- o.unmount && o.unmount(String(e));
443
- }).catch(() => {});
444
- }, layerpro.popup.cleanupEvents = e => {
445
- const t = O.get(e);
446
- t && (t.iconClick && g(`.icon_${e}`, "#popup_dock")?.off("click"), t.iconClose && g(`.icon_close_${e}`, "#popup_dock")?.off("click"),
447
- t.buttonIconize && g(`.button_iconize_${e}`)?.off("click"), t.buttonMaximize && g(`.button_maximize_${e}`)?.off("click"),
448
- t.buttonClose && g(`.button_close_${e}`)?.off("click"), t.escKey && w.off("keydown", {
449
- ns: `esc-${e}`
450
- }), O.delete(e));
451
- }, layerpro.popup.abortSource = e => {
452
- const t = N.get(e);
453
- t && (t.abort(), N.delete(e));
454
- }, layerpro.popup.destroy = e => {
455
- layerpro.popup.abortSource(e), layerpro.popup.cleanupEvents(e), C(!1);
456
- const t = document.querySelector(`.popup_window_${e}`);
457
- t && t.remove();
458
- }, y(`<div class="popup_bar_${e.id} popup_bar">`).appendTo(o).addClass("popup_bar_selected"),
459
- e.icon && y(`<div class="popup_icon_${e.id} popup_icon">${e.icon}</div>`).appendTo(`.popup_bar_${e.id}`);
460
- const i = P(String(e.name));
461
- y(`<div class="popup_drag_${e.id} popup_drag">${i}</div>`).appendTo(`.popup_bar_${e.id}`),
462
- y(`<div class="popup_option_${e.id} popup_option">`).appendTo(`.popup_bar_${e.id}`),
463
- !0 !== e.iconize || g("#popup_dock") || (g("#root")?.css("margin", "0 0 var( --dock-height ) 0"),
464
- y('\n <div id="popup_dock">\n <div id="popup_dock_icon"></div>\n <div id="popup_dock_list"></div>\n <div id="popup_dock_options"></div>\n </div>\n ').appendTo("#popup").css({
465
- pointerEvents: "auto",
466
- zIndex: layerpro.popup.zIndex() + 1e3
467
- }));
468
- if (g("#popup_dock") && !0 === e.dockable) {
469
- const t = String(e.id), o = `\n <div class="icon_${e.id}">\n <span>${e.icon ? e.icon : ""}</span>\n <span>${i}</span>\n </div>\n `, n = () => {
470
- const t = g(".popup_overflow_" + e.id, "#popup");
471
- t && t.data("iconize") ? (layerpro.popup.index(e), layerpro.popup.iconize(e)) : layerpro.popup.iconize(e),
472
- layerpro.popup.index(e);
473
- }, s = t => {
474
- t?.stopPropagation(), e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(), layerpro.popup.close(e);
475
- };
476
- O.set(t, {
477
- iconClick: !0,
478
- iconClose: !0
479
- }), y(o).appendTo("#popup_dock_list").addClass("popup_bar_selected").on("click", n),
480
- y(`<button class="icon_close_${e.id}">X</button>`).appendTo(`.icon_${e.id}`).on("click", s);
481
- }
482
- if (!0 === e.iconize) {
483
- const t = String(e.id), o = () => {
484
- layerpro.popup.iconize(e);
485
- }, n = O.get(t) || {};
486
- n.buttonIconize = !0, O.set(t, n), y(`<button class="button_iconize_${e.id} iconize">`).appendTo(`.popup_option_${e.id}`).on("click", o);
487
- }
488
- if (!0 === e.maximize) {
489
- const t = String(e.id), o = () => {
490
- layerpro.popup.maximize(e);
491
- }, n = O.get(t) || {};
492
- n.buttonMaximize = !0, O.set(t, n), y(`<button class="button_maximize_${e.id} maximize">`).appendTo(`.popup_option_${e.id}`).on("click", o);
493
- }
494
- if (!0 === e.close) {
495
- const t = String(e.id), o = () => {
496
- e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(), layerpro.popup.close(e);
497
- }, n = O.get(t) || {};
498
- n.buttonClose = !0, O.set(t, n), y(`<button class="button_close_${e.id} close">`).appendTo(`.popup_option_${e.id}`).on("click", o);
499
- }
500
- const s = String(e.id), r = O.get(s) || {};
501
- if (r.escKey = !0, O.set(s, r), w.on("keydown", t => {
502
- const o = t;
503
- "Escape" !== o.key && 27 !== o.keyCode || (e?.buttons?.cancel?.cb && e?.buttons?.cancel?.cb(),
504
- layerpro.popup.close(e));
505
- }, {
506
- ns: `esc-${s}`
507
- }), e.timer > 0) {
508
- const t = {};
509
- t[String(`st_${e.id}`)] = setTimeout(() => {
510
- layerpro.popup.close(e), clearTimeout(t[String(`st_${e.id}`)]);
511
- }, e.timer);
512
- }
513
- e.movable && layerpro.popup.movable(e), e.resizable && layerpro.popup.resizable(e),
514
- e.isMaximize && layerpro.popup.maximize(e), y(`<div class="popup_internal_${e.id} popup_internal">`).appendTo(o),
515
- y(`<div class="popup_body_${e.id} popup_body">`).appendTo(`.popup_internal_${e.id}`).hide().fadeIn(e.fadeIn, () => {
516
- I(e), W(e), j(e);
517
- });
518
- })(e), o;
616
+ if (!0 === e.native) {
617
+ if (oe(e, () => {
618
+ const o = ue.get(t);
619
+ o && (o(e), ue.delete(t));
620
+ })) return o;
621
+ e.native = !1;
622
+ }
623
+ if (b(".popup_window_" + e.id, "#popup") ? (be.index(e), j(e), R(e)) : H(e), !0 === e.persist) {
624
+ const t = (n = String(e.id), Z(F(n)));
625
+ t && ((e, t) => {
626
+ const o = document.querySelector(`.popup_overflow_${e}`);
627
+ !!o && (void 0 !== t.top && o.style.setProperty("--lp-top", `${t.top}px`), void 0 !== t.left && o.style.setProperty("--lp-left", `${t.left}px`),
628
+ void 0 !== t.width && o.style.setProperty("--lp-width", `${t.width}px`), void 0 !== t.height && o.style.setProperty("--lp-height", `${t.height}px`));
629
+ })(String(e.id), t);
630
+ }
631
+ var n;
632
+ return o;
519
633
  },
520
634
  store: e => {
521
- null != e && te.set(String(Date.now()), e);
635
+ null != e && de.set(String(Date.now()), e);
522
636
  },
523
637
  show: e => {
524
- const t = e instanceof _ ? e : "string" == typeof e ? g(e) : null;
638
+ const t = e instanceof _ ? e : "string" == typeof e ? b(e) : null;
525
639
  t?.toggle();
526
640
  },
527
641
  vfx: (e, t, o = !1) => {
528
642
  setTimeout(() => {
529
- v('[class^="popup_overflow_"]', "#popup").forEach(e => {
530
- e.css("opacity", !0 === t ? 1 : .5), e.find('[class^="popup_body_"]')?.css({
531
- "content-visibility": !0 === t ? "auto" : "hidden"
532
- });
643
+ g('[class^="popup_overflow_"]', "#popup").forEach(e => {
644
+ e.toggleClass("popup_dimmed", !0 !== t), e.find('[class^="popup_body_"]')?.toggleClass("popup_content_hidden", !0 !== t);
533
645
  });
534
- const n = e instanceof _ ? e : "string" == typeof e ? g(e) : null;
535
- n?.css("opacity", 1), !o && n && v('[class^="popup_body_"]', n.el).forEach(e => e.css("content-visibility", "visible"));
646
+ const n = e instanceof _ ? e : "string" == typeof e ? b(e) : null;
647
+ n?.removeClass("popup_dimmed"), !o && n && g('[class^="popup_body_"]', n.el).forEach(e => e.addClass("popup_content_visible"));
536
648
  }, 1), dispatchEvent(new Event("layerProResize"));
537
649
  },
538
650
  center: (e, t = 0) => {
539
- const o = g(".popup_overflow_" + se(e), "#popup");
540
- o && (o.css("top", Math.max(0, (z.height() - o.outerHeight()) / 2 + z.scrollTop() + t)),
541
- o.css("left", Math.max(0, (z.width() - o.outerWidth()) / 2 + z.scrollLeft() + t)));
651
+ const o = b(".popup_overflow_" + _e(e), "#popup");
652
+ o && (o.cssVar("--lp-top", Math.max(0, (w.height() - o.outerHeight()) / 2 + w.scrollTop() + t)),
653
+ o.cssVar("--lp-left", Math.max(0, (w.width() - o.outerWidth()) / 2 + w.scrollLeft() + t)));
542
654
  },
543
- checkArea: e => [ Y(e), K(e), z.scrollLeft(), z.scrollTop(), z.height(), z.width() ],
655
+ checkArea: e => [ U(e), K(e), w.scrollLeft(), w.scrollTop(), w.height(), w.width() ],
544
656
  close: e => {
545
657
  let t;
546
658
  if (e) {
547
- t = se(e);
548
- const o = "object" == typeof e && null !== e ? e : void 0;
659
+ t = _e(e);
660
+ const n = "object" == typeof e && null !== e ? e : void 0;
661
+ if (o = t, te.has(String(o))) return void (e => {
662
+ const t = te.get(String(e));
663
+ !!t && t.close();
664
+ })(t);
665
+ const i = n ?? he.get(String(t));
666
+ if (!0 === i?.persist) {
667
+ const e = (e => {
668
+ const t = document.querySelector(`.popup_overflow_${e}`);
669
+ return t ? {
670
+ top: t.offsetTop,
671
+ left: t.offsetLeft,
672
+ width: t.offsetWidth,
673
+ height: t.offsetHeight
674
+ } : null;
675
+ })(String(t));
676
+ e && ((e, t) => {
677
+ Q(F(e), t);
678
+ })(String(t), e);
679
+ }
549
680
  layerpro.popup.unmount && layerpro.popup.unmount(String(t)), layerpro.popup.abortSource && layerpro.popup.abortSource(String(t)),
550
- layerpro.popup.cleanupEvents && layerpro.popup.cleanupEvents(String(t)), A(String(t));
551
- const n = oe.get(String(t));
552
- n && (n(o ?? {}), oe.delete(String(t)));
553
- const i = Q.get(String(t));
554
- if (i) {
681
+ layerpro.popup.cleanupEvents && layerpro.popup.cleanupEvents(String(t)), M(String(t));
682
+ const r = ue.get(String(t));
683
+ r && (r(n ?? {}), ue.delete(String(t))), he.delete(String(t));
684
+ const s = le.get(String(t));
685
+ if (s) {
555
686
  const e = {
556
687
  passive: !1
557
688
  };
558
- i.move && document.removeEventListener("pointermove", i.move, e), i.up && document.removeEventListener("pointerup", i.up, e),
559
- Q.delete(String(t));
689
+ s.move && document.removeEventListener("pointermove", s.move, e), s.up && document.removeEventListener("pointerup", s.up, e),
690
+ le.delete(String(t));
560
691
  }
561
- const s = ee.get(String(t));
562
- if (s) {
692
+ const p = ce.get(String(t));
693
+ if (p) {
563
694
  const e = {
564
695
  passive: !1
565
696
  };
566
- s.move && document.removeEventListener("pointermove", s.move, e), s.up && document.removeEventListener("pointerup", s.up, e),
567
- ee.delete(String(t));
697
+ p.move && document.removeEventListener("pointermove", p.move, e), p.up && document.removeEventListener("pointerup", p.up, e),
698
+ ce.delete(String(t));
568
699
  }
569
- (o ? !0 === o.modal : !!g(".popup_modal_" + t)) ? g(".popup_modal_" + t)?.fadeOut(o?.fadeOut || 500, () => g(".popup_modal_" + t)?.remove()) : g(".popup_overflow_" + t)?.fadeOut(o?.fadeOut || 500, () => {
570
- g(".popup_overflow_" + t)?.remove(), g(".popup_modal_" + t)?.fadeOut(o?.fadeOut || 500, () => g(".popup_modal_" + t)?.remove());
700
+ (n ? !0 === n.modal : !!b(".popup_modal_" + t)) ? b(".popup_modal_" + t)?.fadeOut(n?.fadeOut || 500, () => b(".popup_modal_" + t)?.remove()) : b(".popup_overflow_" + t)?.fadeOut(n?.fadeOut || 500, () => {
701
+ b(".popup_overflow_" + t)?.remove(), b(".popup_modal_" + t)?.fadeOut(n?.fadeOut || 500, () => b(".popup_modal_" + t)?.remove());
571
702
  });
572
- } else g("#popup")?.fadeOut(() => g("#popup")?.remove());
573
- setTimeout(() => re.removeDock(e), 300);
703
+ } else (() => {
704
+ for (const e of [ ...te.values() ]) e.close();
705
+ })(), b("#popup")?.fadeOut(() => {
706
+ b("#popup")?.remove(), b("#popup_dock")?.remove(), P();
707
+ });
708
+ var o;
709
+ setTimeout(() => be.removeDock(e), 300);
574
710
  },
575
711
  removeDock: e => {
576
- const t = se(e);
577
- g(".icon_" + t)?.remove(), v('[class^="popup_overflow_"]', "#popup").length < 1 && (g("#root")?.css("margin", "0"),
578
- g("#popup_dock")?.remove());
712
+ const t = _e(e);
713
+ b(".icon_" + t)?.remove(), b(".popup_overflow_" + t) ? setTimeout(() => be.removeDock(e), 100) : g('[class^="popup_overflow_"]', "#popup").length < 1 && (b("#popup_dock")?.remove(),
714
+ P());
579
715
  },
580
716
  iconize: e => {
581
- const t = se(e), o = g(".popup_overflow_" + t, "#popup");
582
- if (o && !1 !== o.find("[class^=popup_window_]")?.hasClass("zHigh")) if (re.vfx(o, !1, !0),
717
+ const t = _e(e), o = b(".popup_overflow_" + t, "#popup");
718
+ if (o && !1 !== o.find("[class^=popup_window_]")?.hasClass("zHigh")) if (be.vfx(o, !1, !0),
583
719
  o.data("iconize")) {
584
720
  if (o.data("iconize")) {
585
721
  const e = o.data("iconize");
586
- o.css({
587
- top: e.y,
588
- left: e.x,
589
- width: e.w,
590
- height: e.h,
591
- opacity: 1
592
- }), re.vfx(o, !0), o.removeData("iconize");
722
+ o.removeClass("popup_iconized").cssVar("--lp-top", e.y).cssVar("--lp-left", e.x).cssVar("--lp-width", e.w).cssVar("--lp-height", e.h),
723
+ be.vfx(o, !0), o.removeData("iconize");
593
724
  }
594
725
  } else {
595
- const e = g(".icon_" + t, "#popup_dock")?.el.offsetLeft ?? 0;
726
+ const e = b(".icon_" + t, "#popup_dock")?.el.offsetLeft ?? 0;
596
727
  o.data("iconize", {
597
728
  y: o.el.offsetTop,
598
729
  x: o.el.offsetLeft,
599
730
  w: o.el.offsetWidth,
600
731
  h: o.el.offsetHeight
601
- }), o.css({
602
- top: "100%",
603
- left: e + 15,
604
- width: 0,
605
- height: 0,
606
- opacity: 0
607
- }), re.vfx(o, !0);
732
+ }), o.cssVar("--lp-top", "100%").cssVar("--lp-left", e + 15).addClass("popup_iconized"),
733
+ be.vfx(o, !0);
608
734
  }
609
735
  },
610
736
  maximize: e => {
611
- const t = g(".popup_overflow_" + se(e), "#popup"), o = t ? g('[class^="resize_"]', t.el) : null;
612
- if (re.vfx(t, !1, !0), t?.data("store")) {
737
+ const t = b(".popup_overflow_" + _e(e), "#popup"), o = t ? b('[class^="resize_"]', t.el) : null;
738
+ if (be.vfx(t, !1, !0), t?.data("store")) {
613
739
  if (t?.data("store")) {
614
740
  const n = t.data("store");
615
- t.css({
616
- position: "absolute",
617
- top: n.y,
618
- left: n.x,
619
- right: "auto",
620
- bottom: "auto",
621
- width: n.w,
622
- height: n.h
623
- }), o?.on("pointerdown", function(t) {
624
- re.resizeModals(t, this, e);
625
- }), re.vfx(t, !0), t.removeData("store");
741
+ t.removeClass("popup_maximized"), t.cssVar("--lp-top", n.y).cssVar("--lp-left", n.x).cssVar("--lp-width", n.w).cssVar("--lp-height", n.h),
742
+ o?.on("pointerdown", function(t) {
743
+ be.resizeModals(t, this, e);
744
+ }), be.vfx(t, !0), t.removeData("store");
626
745
  }
627
746
  } else t.data("store", {
628
747
  y: t.el.offsetTop,
629
748
  x: t.el.offsetLeft,
630
749
  w: t.el.offsetWidth,
631
750
  h: t.el.offsetHeight
632
- }), t.css({
633
- position: "fixed",
634
- top: -6,
635
- left: -6,
636
- right: -6,
637
- bottom: 39,
638
- width: "auto",
639
- height: "auto"
640
- }), o?.off("pointerdown"), re.vfx(t, !0, !0);
751
+ }), t.addClass("popup_maximized"), o?.off("pointerdown"), be.vfx(t, !0, !0);
641
752
  },
642
753
  movable: e => {
643
754
  if (!1 === e.movable) return;
644
- const t = se(e), o = String(t), n = g(".popup_overflow_" + t, "#popup"), i = n ? g(".popup_drag_" + t, n.el) : null, s = n ? g(".popup_body_" + t, n.el) : null;
645
- n?.css("touch-action", "none");
646
- let r = 0, p = 0, a = 0, l = 0;
755
+ const t = _e(e), o = String(t), n = b(".popup_overflow_" + t, "#popup"), i = n ? b(".popup_drag_" + t, n.el) : null, r = n ? b(".popup_body_" + t, n.el) : null;
756
+ n?.addClass("lp_no_touch");
757
+ let s = 0, p = 0, a = 0, l = 0;
647
758
  const c = e => {
648
759
  e.preventDefault();
649
- const t = Y(e), o = K(e);
650
- r = a - t, p = l - o, a = t, l = o, re.checkArea(e)[1] < re.checkArea(e)[4] && 1 === Math.sign(re.checkArea(e)[1]) && n?.css("top", n.el.offsetTop - p),
651
- re.checkArea(e)[0] < re.checkArea(e)[5] && 1 === Math.sign(re.checkArea(e)[0]) && n?.css("left", n.el.offsetLeft - r);
760
+ const t = U(e), o = K(e);
761
+ s = a - t, p = l - o, a = t, l = o, be.checkArea(e)[1] < be.checkArea(e)[4] && 1 === Math.sign(be.checkArea(e)[1]) && n?.cssVar("--lp-top", n.el.offsetTop - p),
762
+ be.checkArea(e)[0] < be.checkArea(e)[5] && 1 === Math.sign(be.checkArea(e)[0]) && n?.cssVar("--lp-left", n.el.offsetLeft - s);
652
763
  }, d = () => {
653
764
  const e = {
654
765
  passive: !1
655
766
  };
656
767
  document.removeEventListener("pointermove", c, e), document.removeEventListener("pointerup", d, e),
657
- Q.delete(o), s?.css("pointer-events", "auto"), re.vfx(n, !0);
768
+ le.delete(o), r?.addClass("lp_pointer"), be.vfx(n, !0);
658
769
  };
659
- Q.set(o, {
770
+ le.set(o, {
660
771
  move: c,
661
772
  up: d
662
773
  });
663
774
  i?.el.addEventListener("pointerdown", e => {
664
- "fixed" !== n?.el.style.position && (e.preventDefault(), s?.css("pointer-events", "none"),
665
- u(e), re.vfx(n, !1));
775
+ n?.hasClass("popup_maximized") || (e.preventDefault(), r?.addClass("lp_no_pointer"),
776
+ u(e), be.vfx(n, !1));
666
777
  }, {
667
778
  passive: !1
668
779
  }), e.maximize && i?.on("dblclick", () => {
669
780
  layerpro.popup.maximize(e);
670
781
  });
671
782
  const u = e => {
672
- a = Y(e), l = K(e);
783
+ a = U(e), l = K(e);
673
784
  const t = {
674
785
  passive: !1
675
786
  };
@@ -678,174 +789,164 @@ var Y = e => {
678
789
  },
679
790
  resizable: e => {
680
791
  if (!e.resizable) return;
681
- const t = se(e), o = String(t), n = g(".popup_overflow_" + t, "#popup");
682
- for (let e = 4; e--; ) y(`<div class='resize_${e}'>`).appendTo(n?.el).css("touch-action", "none"),
683
- y(`<div class='resize_corner_${e}'>`).appendTo(n?.el).css("touch-action", "none");
684
- const i = ee.get(o) || {};
792
+ const t = _e(e), o = String(t), n = b(".popup_overflow_" + t, "#popup");
793
+ for (let e = 4; e--; ) v(`<div class='resize_${e}'>`).appendTo(n?.el).addClass("lp_no_touch"),
794
+ v(`<div class='resize_corner_${e}'>`).appendTo(n?.el).addClass("lp_no_touch");
795
+ const i = ce.get(o) || {};
685
796
  i.down = function(t) {
686
- re.resizeModals(t, this, e);
687
- }, ee.set(o, i);
688
- const s = {
797
+ be.resizeModals(t, this, e);
798
+ }, ce.set(o, i);
799
+ const r = {
689
800
  passive: !1
690
801
  };
691
- v("[class^=resize_]").forEach(t => {
802
+ g("[class^=resize_]").forEach(t => {
692
803
  t.el.addEventListener("pointerdown", o => {
693
- o.preventDefault(), re.resizeModals(o, t.el, e);
694
- }, s);
804
+ o.preventDefault(), be.resizeModals(o, t.el, e);
805
+ }, r);
695
806
  });
696
807
  },
697
808
  resizeModals: (e, t, o) => {
698
- const n = t instanceof HTMLElement ? new _(t) : g(t), i = n?.parent(), s = String(o.id);
699
- i?.el.style.setProperty("transition", "none");
700
- const r = Y(e), p = K(e), a = [ r - z.scrollLeft(), p - z.scrollTop() ];
701
- o.minWidth, ie()?.css("pointer-events", "none"), i?.css("pointer-events", "none"),
702
- re.vfx(i, !1);
809
+ const n = t instanceof HTMLElement ? new _(t) : b(t), i = n?.parent(), r = String(o.id);
810
+ i?.addClass("lp_no_transition");
811
+ const s = U(e), p = K(e), a = [ s - w.scrollLeft(), p - w.scrollTop() ];
812
+ o.minWidth, fe()?.addClass("lp_page_locked"), i?.addClass("lp_no_pointer"), be.vfx(i, !1);
703
813
  const l = e => {
704
- re.doRes(e, t);
814
+ be.doRes(e, t);
705
815
  }, c = () => {
706
- re.stopRes(t, s);
707
- }, d = ee.get(s) || {};
708
- d.move = l, d.up = c, ee.set(s, d);
816
+ be.stopRes(t, r);
817
+ }, d = ce.get(r) || {};
818
+ d.move = l, d.up = c, ce.set(r, d);
709
819
  const u = {
710
820
  passive: !1
711
821
  };
712
822
  document.addEventListener("pointermove", l, u), document.addEventListener("pointerup", c, u);
713
- const h = i?.position().left ?? 0, m = i?.position().top ?? 0, f = i?.width() ?? 0, b = i?.height() ?? 0;
714
- ne = {
823
+ const h = i?.position().left ?? 0, m = i?.position().top ?? 0, f = i?.width() ?? 0, g = i?.height() ?? 0;
824
+ me = {
715
825
  id: String(o.id),
716
826
  startX: a[0],
717
827
  startY: a[1],
718
828
  startWidth: f,
719
- startHeight: b,
829
+ startHeight: g,
720
830
  startLeft: h,
721
831
  startTop: m,
722
- startBottom: m + b + 1,
832
+ startBottom: m + g + 1,
723
833
  startRight: h + f + 1
724
- }, Z = t;
834
+ }, re = t;
725
835
  },
726
836
  doRes: (e, t) => {
727
837
  dispatchEvent(new Event("layerProResize"));
728
- const o = t instanceof HTMLElement ? new _(t) : g(t), n = o?.parent(), i = Y(e), s = K(e), r = [ i - z.scrollLeft(), s - z.scrollTop() ];
729
- if (t === Z && ne) {
730
- const t = ne;
731
- let i = t.startWidth + r[0] - t.startX, s = t.startHeight + r[1] - t.startY;
732
- const p = t.startWidth - r[0] + t.startX, a = t.startHeight - r[1] + t.startY;
733
- i <= 0 && (i = 0), s <= 0 && (s = 0), re.checkArea(e)[1] < re.checkArea(e)[4] && 1 === Math.sign(re.checkArea(e)[1]) && o?.hasClass("resize_0") && (n && n.height() <= U && a > U && n.css({
734
- height: Number(U + 1)
735
- }), n && n.height() > U && U <= a && n.css({
838
+ const o = t instanceof HTMLElement ? new _(t) : b(t), n = o?.parent(), i = U(e), r = K(e), s = [ i - w.scrollLeft(), r - w.scrollTop() ];
839
+ if (t === re && me) {
840
+ const t = me;
841
+ let i = t.startWidth + s[0] - t.startX, r = t.startHeight + s[1] - t.startY;
842
+ const p = t.startWidth - s[0] + t.startX, a = t.startHeight - s[1] + t.startY;
843
+ i <= 0 && (i = 0), r <= 0 && (r = 0), be.checkArea(e)[1] < be.checkArea(e)[4] && 1 === Math.sign(be.checkArea(e)[1]) && o?.hasClass("resize_0") && (n && n.height() <= ie && a > ie && n.geom({
844
+ height: Number(ie + 1)
845
+ }), n && n.height() > ie && ie <= a && n.geom({
736
846
  top: Number(t.startBottom - a),
737
847
  height: parseInt(String(a))
738
- })), re.checkArea(e)[0] < re.checkArea(e)[5] && 1 === Math.sign(re.checkArea(e)[0]) && o?.hasClass("resize_1") && (n && n.width() >= F && n.css({
848
+ })), be.checkArea(e)[0] < be.checkArea(e)[5] && 1 === Math.sign(be.checkArea(e)[0]) && o?.hasClass("resize_1") && (n && n.width() >= ne && n.geom({
739
849
  width: Number(i),
740
850
  right: Number(t.startLeft - i)
741
- }), n && n.width() <= F && n.css({
742
- width: Number(F + 1)
743
- })), re.checkArea(e)[1] < re.checkArea(e)[4] && 1 === Math.sign(re.checkArea(e)[1]) && o?.hasClass("resize_2") && (n && n.height() >= U && n.css({
744
- height: Number(s)
745
- }), n && n.height() <= U && s > U && n.css({
746
- height: Number(U + 1)
747
- })), re.checkArea(e)[0] < re.checkArea(e)[5] && 1 === Math.sign(re.checkArea(e)[0]) && o?.hasClass("resize_3") && (n && n.width() <= F && p > F && n.css({
748
- width: Number(F + 1)
749
- }), n && n.width() > F && F <= p && n.css({
851
+ }), n && n.width() <= ne && n.geom({
852
+ width: Number(ne + 1)
853
+ })), be.checkArea(e)[1] < be.checkArea(e)[4] && 1 === Math.sign(be.checkArea(e)[1]) && o?.hasClass("resize_2") && (n && n.height() >= ie && n.geom({
854
+ height: Number(r)
855
+ }), n && n.height() <= ie && r > ie && n.geom({
856
+ height: Number(ie + 1)
857
+ })), be.checkArea(e)[0] < be.checkArea(e)[5] && 1 === Math.sign(be.checkArea(e)[0]) && o?.hasClass("resize_3") && (n && n.width() <= ne && p > ne && n.geom({
858
+ width: Number(ne + 1)
859
+ }), n && n.width() > ne && ne <= p && n.geom({
750
860
  width: parseInt(String(p)),
751
861
  left: Number(t.startRight - p)
752
- })), re.checkArea(e)[1] < re.checkArea(e)[4] && re.checkArea(e)[0] < re.checkArea(e)[5] && 1 === Math.sign(re.checkArea(e)[0]) && 1 === Math.sign(re.checkArea(e)[1]) && (o?.hasClass("resize_corner_0") && (n && n.height() >= U && a > U && n.css({
862
+ })), be.checkArea(e)[1] < be.checkArea(e)[4] && be.checkArea(e)[0] < be.checkArea(e)[5] && 1 === Math.sign(be.checkArea(e)[0]) && 1 === Math.sign(be.checkArea(e)[1]) && (o?.hasClass("resize_corner_0") && (n && n.height() >= ie && a > ie && n.geom({
753
863
  top: Number(t.startBottom - a),
754
864
  height: parseInt(String(a))
755
- }), n && n.height() <= U && a > U && n.css({
756
- height: Number(U + 1)
757
- }), n && n.width() >= F && p > F && n.css({
865
+ }), n && n.height() <= ie && a > ie && n.geom({
866
+ height: Number(ie + 1)
867
+ }), n && n.width() >= ne && p > ne && n.geom({
758
868
  width: parseInt(String(p)),
759
869
  left: Number(t.startRight - p)
760
- }), n && n.width() <= F && p > F && n.css({
761
- width: Number(F + 1)
762
- })), o?.hasClass("resize_corner_1") && (n && n.height() >= U && a > U && n.css({
870
+ }), n && n.width() <= ne && p > ne && n.geom({
871
+ width: Number(ne + 1)
872
+ })), o?.hasClass("resize_corner_1") && (n && n.height() >= ie && a > ie && n.geom({
763
873
  top: Number(t.startBottom - a),
764
874
  height: Number(a)
765
- }), n && n.height() <= U && a > U && n.css({
766
- height: Number(U + 1)
767
- }), n && n.width() >= F && n.css({
875
+ }), n && n.height() <= ie && a > ie && n.geom({
876
+ height: Number(ie + 1)
877
+ }), n && n.width() >= ne && n.geom({
768
878
  width: Number(i),
769
879
  right: Number(t.startLeft - i)
770
- }), n && n.width() <= F && p > F && n.css({
771
- width: Number(F + 1)
772
- })), o?.hasClass("resize_corner_2") && (n && n.height() >= U && n.css({
773
- height: Number(s)
774
- }), n && n.height() <= U && s > U && n.css({
775
- height: Number(U + 1)
776
- }), n && n.width() >= F && n.css({
880
+ }), n && n.width() <= ne && p > ne && n.geom({
881
+ width: Number(ne + 1)
882
+ })), o?.hasClass("resize_corner_2") && (n && n.height() >= ie && n.geom({
883
+ height: Number(r)
884
+ }), n && n.height() <= ie && r > ie && n.geom({
885
+ height: Number(ie + 1)
886
+ }), n && n.width() >= ne && n.geom({
777
887
  width: Number(i),
778
888
  right: Number(t.startLeft - i)
779
- }), n && n.width() <= F && n.css({
780
- width: Number(F + 1)
781
- })), o?.hasClass("resize_corner_3") && (n && n.height() >= U && s > U && n.css({
782
- height: Number(s)
783
- }), n && n.height() <= U && s > U && n.css({
784
- height: Number(U + 1)
785
- }), n && n.width() >= F && p > F && n.css({
889
+ }), n && n.width() <= ne && n.geom({
890
+ width: Number(ne + 1)
891
+ })), o?.hasClass("resize_corner_3") && (n && n.height() >= ie && r > ie && n.geom({
892
+ height: Number(r)
893
+ }), n && n.height() <= ie && r > ie && n.geom({
894
+ height: Number(ie + 1)
895
+ }), n && n.width() >= ne && p > ne && n.geom({
786
896
  width: Number(p),
787
897
  left: Number(t.startRight - p)
788
- }), n && n.width() <= F && p > F && n.css({
789
- width: Number(F + 1)
898
+ }), n && n.width() <= ne && p > ne && n.geom({
899
+ width: Number(ne + 1)
790
900
  })));
791
901
  }
792
902
  },
793
903
  stopRes: (e, t) => {
794
- const o = e instanceof HTMLElement ? new _(e) : g(e), n = o?.parent();
795
- n?.el.style.setProperty("transition", ""), o?.el.style.setProperty("transition", ""),
796
- ie()?.css("pointer-events", "auto"), n?.css("pointer-events", "auto"), re.vfx(n, !0),
797
- Z = !1, ne?.id === t && (ne = null);
798
- const i = ee.get(t);
904
+ const o = e instanceof HTMLElement ? new _(e) : b(e), n = o?.parent();
905
+ n?.removeClass("lp_no_transition"), o?.removeClass("lp_no_transition"), fe()?.removeClass("lp_page_locked"),
906
+ n?.removeClass("lp_no_pointer"), be.vfx(n, !0), re = !1, me?.id === t && (me = null);
907
+ const i = ce.get(t);
799
908
  if (i) {
800
909
  const e = {
801
910
  passive: !1
802
911
  };
803
912
  i.move && document.removeEventListener("pointermove", i.move, e), i.up && document.removeEventListener("pointerup", i.up, e),
804
- ee.delete(t);
913
+ ce.delete(t);
805
914
  }
806
915
  },
807
916
  index: e => {
808
- const t = se(e);
809
- v('[class^="popup_window_"]', "#popup").forEach(e => e.removeClass("zHigh")), v('[class^="popup_bar_"]', "#popup").forEach(e => e.removeClass("popup_bar_selected")),
810
- v('[class^="icon_"]', "#popup").forEach(e => e.removeClass("popup_bar_selected")),
811
- g(".icon_" + t, "#popup")?.addClass("popup_bar_selected"), g(".popup_overflow_" + t, "#popup")?.css("zIndex", re.zIndex()),
812
- g(".popup_bar_" + t, "#popup")?.addClass("popup_bar_selected"), g(".popup_window_" + t, "#popup")?.addClass("zHigh");
917
+ const t = _e(e);
918
+ g('[class^="popup_window_"]', "#popup").forEach(e => e.removeClass("zHigh")), g('[class^="popup_bar_"]', "#popup").forEach(e => e.removeClass("popup_bar_selected")),
919
+ g('[class^="icon_"]', "#popup").forEach(e => e.removeClass("popup_bar_selected")),
920
+ b(".icon_" + t, "#popup")?.addClass("popup_bar_selected"), b(".popup_overflow_" + t, "#popup")?.cssVar("--lp-z-index", be.zIndex()),
921
+ b(".popup_bar_" + t, "#popup")?.addClass("popup_bar_selected"), b(".popup_window_" + t, "#popup")?.addClass("zHigh");
813
922
  },
814
923
  zIndex: () => {
815
- if (!V) {
816
- V = !0;
924
+ if (!pe) {
925
+ pe = !0;
817
926
  try {
818
927
  const e = getComputedStyle(document.documentElement).getPropertyValue("--popup-z-index").trim();
819
928
  if (e) {
820
929
  const t = parseInt(e, 10);
821
- isNaN(t) || (G = t);
930
+ isNaN(t) || (se = t);
822
931
  }
823
932
  } catch {}
824
933
  }
825
- return ++G;
934
+ return ++se;
826
935
  }
827
936
  };
828
937
 
829
938
  Object.defineProperty(layerpro, "popup", {
830
- value: re,
939
+ value: be,
831
940
  writable: !1,
832
941
  configurable: !1
833
- }), globalThis.popup = re, Object.defineProperty(window, "popup", {
942
+ }), globalThis.popup = be, Object.defineProperty(window, "popup", {
834
943
  enumerable: !1
835
944
  });
836
945
 
837
- var pe = {
838
- "&": "&amp;",
839
- "<": "&lt;",
840
- ">": "&gt;",
841
- '"': "&quot;",
842
- "'": "&#39;"
843
- }, ae = e => e.replace(/[&<>"']/g, e => pe[e]);
844
-
845
946
  Object.defineProperties(layerpro, {
846
947
  prompt: {
847
948
  value: (e, t) => {
848
- const o = ae(String(e)), n = {
949
+ const o = O(String(e)), n = {
849
950
  value: ""
850
951
  }, i = {
851
952
  id: "__prompt",
@@ -861,24 +962,24 @@ Object.defineProperties(layerpro, {
861
962
  modal: !0,
862
963
  movable: !0,
863
964
  resizable: !1
864
- }, s = layerpro.popup.open(i), r = `\n <div class='popup_prompt'>\n\n <div class="popup_message_body">\n <center>\n ${o}\n </center>\n </div>\n\n <input id="input_${i.id}" type="text" placeholder="write here" />\n <br/>\n\n <div class="buttons">\n <button id="a_${i.id}" type="button">OK</button>\n <button id="b_${i.id}" type="button">CANCEL</button>\n </div>\n\n </div>\n `;
865
- g(".popup_body_" + i.id)?.html(r);
866
- const p = g("#input_" + i.id);
965
+ }, r = layerpro.popup.open(i), s = `\n <div class='popup_prompt'>\n\n <div class="popup_message_body">\n <center>\n ${o}\n </center>\n </div>\n\n <input id="input_${i.id}" type="text" placeholder="write here" />\n <br/>\n\n <div class="buttons">\n <button id="a_${i.id}" type="button">OK</button>\n <button id="b_${i.id}" type="button">CANCEL</button>\n </div>\n\n </div>\n `;
966
+ b(".popup_body_" + i.id)?.html(s);
967
+ const p = b("#input_" + i.id);
867
968
  return t && p?.val(t), p?.on("focus", () => {
868
969
  p.attr("placeholder", "");
869
970
  })?.on("blur", () => {
870
971
  p.attr("placeholder", "write here");
871
- }), g("#a_" + i.id)?.on("click", () => {
972
+ }), b("#a_" + i.id)?.on("click", () => {
872
973
  const e = p?.val() ?? "";
873
974
  String(e) > "" ? (n.value = String(e), layerpro.popup.close(i)) : layerpro.alert("input can't be empty!");
874
- }), g("#b_" + i.id)?.on("click", () => {
975
+ }), b("#b_" + i.id)?.on("click", () => {
875
976
  n.value = "", layerpro.popup.close(i);
876
- }), s.then(() => n.value);
977
+ }), r.then(() => n.value);
877
978
  }
878
979
  },
879
980
  alert: {
880
981
  value: e => {
881
- const t = ae(String(e)), o = {
982
+ const t = O(String(e)), o = {
882
983
  id: "__alert",
883
984
  name: "Warning",
884
985
  icon: "&#9888;",
@@ -893,14 +994,14 @@ Object.defineProperties(layerpro, {
893
994
  movable: !0,
894
995
  resizable: !1
895
996
  }, n = layerpro.popup.open(o), i = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${t}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + o.id}" type="button">CLOSE</button>\n </div>\n </div>\n `;
896
- return g(".popup_body_" + o.id)?.html(i), g("#a_" + o.id)?.on("click", () => {
997
+ return b(".popup_body_" + o.id)?.html(i), b("#a_" + o.id)?.on("click", () => {
897
998
  layerpro.popup.close(o);
898
999
  }), n.then(() => {});
899
1000
  }
900
1001
  },
901
1002
  message: {
902
1003
  value: e => {
903
- const t = ae(String(e)), o = {
1004
+ const t = O(String(e)), o = {
904
1005
  id: "__message",
905
1006
  name: "Message",
906
1007
  icon: "&#9965;",
@@ -915,14 +1016,14 @@ Object.defineProperties(layerpro, {
915
1016
  movable: !0,
916
1017
  resizable: !1
917
1018
  }, n = layerpro.popup.open(o), i = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${t}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + o.id}" type="button">OK</button>\n </div>\n </div>\n `;
918
- return g(".popup_body_" + o.id)?.html(i), g("#a_" + o.id)?.on("click", () => {
1019
+ return b(".popup_body_" + o.id)?.html(i), b("#a_" + o.id)?.on("click", () => {
919
1020
  layerpro.popup.close(o);
920
1021
  }), n.then(() => {});
921
1022
  }
922
1023
  },
923
1024
  confirm: {
924
1025
  value: e => {
925
- const t = ae(String(e)), o = {
1026
+ const t = O(String(e)), o = {
926
1027
  value: !1
927
1028
  }, n = {
928
1029
  id: "__confirm",
@@ -938,10 +1039,10 @@ Object.defineProperties(layerpro, {
938
1039
  modal: !0,
939
1040
  movable: !0,
940
1041
  resizable: !1
941
- }, i = layerpro.popup.open(n), s = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${t}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + n.id}" type="button">CONFIRM</button>\n <button id="${"b_" + n.id}" type="button">CANCEL</button>\n </div>\n </div>\n `;
942
- return g(".popup_body_" + n.id)?.html(s), g("#a_" + n.id)?.on("click", () => {
1042
+ }, i = layerpro.popup.open(n), r = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${t}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + n.id}" type="button">CONFIRM</button>\n <button id="${"b_" + n.id}" type="button">CANCEL</button>\n </div>\n </div>\n `;
1043
+ return b(".popup_body_" + n.id)?.html(r), b("#a_" + n.id)?.on("click", () => {
943
1044
  o.value = !0, layerpro.popup.close(n);
944
- }), g("#b_" + n.id)?.on("click", () => {
1045
+ }), b("#b_" + n.id)?.on("click", () => {
945
1046
  o.value = !1, layerpro.popup.close(n);
946
1047
  }), i.then(() => o.value);
947
1048
  }
@@ -955,8 +1056,8 @@ Object.defineProperties(layerpro, {
955
1056
  }
956
1057
  });
957
1058
 
958
- X = (e, t) => {
959
- v('[class^="popup_overflow_"]').forEach(e => {
1059
+ Y = (e, t) => {
1060
+ g('[class^="popup_overflow_"]').forEach(e => {
960
1061
  const t = e.el.className.match(/popup_overflow_(\d+)/);
961
1062
  t && t[1] && layerpro.popup.close({
962
1063
  id: t[1],
@@ -965,10 +1066,10 @@ X = (e, t) => {
965
1066
  });
966
1067
  };
967
1068
 
968
- var le = globalThis.layerpro;
1069
+ var ge = globalThis.layerpro;
969
1070
 
970
- le.setProps(le, {
1071
+ ge.setProps(ge, {
971
1072
  configurable: !1,
972
1073
  enumerable: !1,
973
1074
  writable: !1
974
- }), Object.freeze(le);
1075
+ }), Object.freeze(ge);