layerpro 2.1.0 → 2.1.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.
Files changed (4) hide show
  1. package/index.cjs +1233 -29
  2. package/index.css +486 -1
  3. package/index.js +1232 -28
  4. package/package.json +1 -1
package/index.js CHANGED
@@ -1,65 +1,1269 @@
1
- ;(()=>{const s=document.createElement("style");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:35px;--dock-sideLeft:10px;--dock-sideCenter:auto;--dock-sideRight:10px;--dock-icon-width:140px;--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],#popup{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;inset: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,#3c3c3c);overflow:hidden;position:relative;color:var(--button-color)}#popup .buttons button:last-child{border-right:none}#popup .buttons button img{filter:invert(1);opacity:.5;width:15px;height:auto;margin-top:2px}#popup .buttons button:hover{transition:all .3s ease;box-shadow:inset 0 0 5px #000;text-shadow:0 0 15px rgb(255,255,255),0 0 3px rgb(255,255,255)}#popup .popup_bar_selected{background:linear-gradient(45deg,#162858 60%,#224e918a)!important}#popup .zHigh{border-top-color:#278ed0!important;box-shadow:0 -15px 20px -10px #1e96ff80,0 0 15px #000000b3!important;border:1px solid rgba(0,0,0,.05)}#popup [class^=popup_raised_]{position:absolute;inset:0;width:100%;height:100%;background-color:#0000004d;z-index:1}#popup [class^=popup_window_]{position:absolute;inset:0;width:100%;height:100%;z-index:2;border-radius:10px;box-shadow:0 0 10px #0000004d;overflow:hidden}#popup [class^=popup_overflow_]{position:absolute;inset:auto;z-index:3;border-radius:10px;background:gray}#popup [class^=popup_bar_]{display:flex;width:100%;height:36px;background:linear-gradient(45deg,#4a4a4f 60%,#aaa);border-bottom:2px solid #555;box-shadow:0 1px 1px #888;z-index:2}#popup [class^=popup_drag_]{width:100%;padding:10px 0 0 10px;color:#eee;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#popup [class^=popup_icon_]{padding:8px 0 0 10px;color:#eee;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:#fff;border-radius:5px;margin:4px;transition:all .3s ease;background:transparent}#popup [class^=popup_option_] button img{filter:invert(1);opacity:.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,#3c3c3c);border-radius:5px;z-index:-1}#popup [class^=popup_option_] button:after{opacity:0;transition:opacity .3s ease-in-out}#popup [class^=popup_option_] button:hover{background:#ffffff1a;box-shadow:inset 0 0 5px #000;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,#popup [class^=button_close_]:hover{background:red!important;box-shadow:inset 0 0 25px #fff,0 0 35px red!important}#popup [class^=popup_internal_]{position:absolute;inset:37px 0 0;z-index:1;background:linear-gradient(0deg,#3c3c3c,#4a4a4f)}#popup [class^=popup_body_]{position:absolute;inset:0;color:#eee;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,.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}#popup_dock #popup_dock_list [class^=icon_]{width:var(--dock-icon-width);float:left;padding:4px;color:#fff;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:#4d4d4d}#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:#fff;padding:4px;margin:0;display:flex;align-content:center;justify-content:center;font-size:.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:.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,.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::-webkit-scrollbar{width:10px;scroll-behavior:smooth}#popup::-webkit-scrollbar-track{-webkit-border-radius:2px;border-radius:2px;margin:5px}#popup::-webkit-scrollbar-thumb{-webkit-border-radius:2px;border-radius:2px;background:#1e96ff!important}}";document.head.appendChild(s)})();import { createRoot } from 'react-dom/client';
2
- import he from 'jquery';
1
+ ;(()=>{const s=document.createElement("style");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:35px;--dock-sideLeft:10px;--dock-sideCenter:auto;--dock-sideRight:10px;--dock-icon-width:140px;--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],#popup{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:linear-gradient( 45deg,#162858 60%,rgba(34,78,145,0.5411764706) 100%) !important;}#popup .zHigh{border-top-color:#278ed0 !important;box-shadow:0 -15px 20px -10px rgba(30,150,255,0.5),0 0 15px rgba(0,0,0,0.7) !important;border:1px solid rgba(0,0,0,0.05);}#popup [class^=popup_raised_]{position:absolute;inset:0;width:100%;height:100%;background-color:rgba(0,0,0,0.3);z-index:1;}#popup [class^=popup_window_]{position:absolute;inset:0;width:100%;height:100%;z-index:2;border-radius:10px;box-shadow:0 0 10px rgba(0,0,0,0.3);overflow:hidden;}#popup [class^=popup_overflow_]{position:absolute;inset:auto;z-index:3;border-radius:10px;background:gray;}#popup [class^=popup_bar_]{display:flex;width:100%;height:36px;background:linear-gradient( 45deg,#4a4a4f 60%,#AAA 100%);border-bottom:2px solid #555;box-shadow:0 1px 1px #888;z-index:2;}#popup [class^=popup_drag_]{width:100%;padding:10px 0 0 10px;color:#eee;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}#popup [class^=popup_icon_]{padding:8px 0 0 10px;color:#eee;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:linear-gradient( 0deg,rgb(60,60,60) 0%,#4a4a4f 100%);}#popup [class^=popup_body_]{position:absolute;inset:0;color:#eee;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;}#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)})();import { createRoot } from 'react-dom/client';
2
+ import $2 from 'jquery';
3
3
 
4
- var D=Object.defineProperty;var C=(e,t)=>()=>(e&&(t=e(e=0)),t);var X=(e,t)=>{for(var i in t)D(e,i,{get:t[i],enumerable:true});};var ve,J=C(()=>{ve=e=>{console.groupCollapsed(`%c${e.name} v${e.version}%c`,"color:orange",""),console.debug(`%c${e.name} v${e.version}%c by Dario Passariello started`,"color:orange",""),console.debug(`%cType ${e.name} in this console to see it`,"color:gray",""),console.debug("name: %c"+e.name,"color:orange",""),console.debug("version: %c"+e.version,"color:orange",""),console.debug("description: %c"+e.description,"color:orange",""),console.debug("license: %c"+e.license,"color:orange",""),console.debug("author: %c"+e.author.name,"color:orange",""),console.debug("email: %c"+e.author.email,"color:orange",""),console.groupEnd();};Object.defineProperty(layerpro,"credits",{value:ve,writable:false,configurable:false});});var Q={};X(Q,{getMouseDirection:()=>Me,mouseCoord:()=>Ae});var Ae,U,K,F,V,Me,q=C(()=>{Ae=e=>[e.clientX,e.clientY,e.screenX,e.screenY,e.pageX,e.pageY],U=0,K="",F=0,V=0,Me=e=>(U=F<e.pageX?1:0,K=V<e.pageY?"down":"up",F=e.pageX,V=e.pageY,[U,K]);});var N,xe,ze,ke,je,ee=C(()=>{N=e=>{let t=document.createElement("div");return t.textContent=e,t.innerHTML},xe=e=>{let t=N(String(e)),i=window.layerpro.popup.open({id:"__alert",name:"Warning",icon:"&#9888;",width:380,height:220,iconize:false,maximize:false,close:true,isMaximize:false,dockable:false,raised:true,movable:true,resizable:false}),o=`
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __esm = (fn, res) => function __init() {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var credits;
14
+ var init_credits = __esm({
15
+ "core/credits.ts"() {
16
+ credits = (props) => {
17
+ console.groupCollapsed(`%c${props.name} v${props.version}%c`, "color:orange", "");
18
+ console.debug(`%c${props.name} v${props.version}%c by Dario Passariello started`, "color:orange", "");
19
+ console.debug(`%cType ${props.name} in this console to see it`, "color:gray", "");
20
+ console.debug("name: %c" + props.name, "color:orange", "");
21
+ console.debug("version: %c" + props.version, "color:orange", "");
22
+ console.debug("description: %c" + props.description, "color:orange", "");
23
+ console.debug("license: %c" + props.license, "color:orange", "");
24
+ console.debug("author: %c" + props.author.name, "color:orange", "");
25
+ console.debug("email: %c" + props.author.email, "color:orange", "");
26
+ console.groupEnd();
27
+ };
28
+ Object.defineProperty(
29
+ layerpro,
30
+ "credits",
31
+ {
32
+ value: credits,
33
+ writable: false,
34
+ configurable: false
35
+ }
36
+ );
37
+ }
38
+ });
39
+
40
+ // core/mouseCoords.ts
41
+ var mouseCoords_exports = {};
42
+ __export(mouseCoords_exports, {
43
+ getMouseDirection: () => getMouseDirection,
44
+ mouseCoord: () => mouseCoord
45
+ });
46
+ var mouseCoord, xDirection, yDirection, oldX, oldY, getMouseDirection;
47
+ var init_mouseCoords = __esm({
48
+ "core/mouseCoords.ts"() {
49
+ mouseCoord = (e) => {
50
+ return [
51
+ e.clientX,
52
+ e.clientY,
53
+ e.screenX,
54
+ e.screenY,
55
+ e.pageX,
56
+ e.pageY
57
+ ];
58
+ };
59
+ xDirection = 0;
60
+ yDirection = "";
61
+ oldX = 0;
62
+ oldY = 0;
63
+ getMouseDirection = (e) => {
64
+ xDirection = oldX < e.pageX ? 1 : 0;
65
+ yDirection = oldY < e.pageY ? "down" : "up";
66
+ oldX = e.pageX;
67
+ oldY = e.pageY;
68
+ return [xDirection, yDirection];
69
+ };
70
+ }
71
+ });
72
+
73
+ // core/message.ts
74
+ var escapeHtml, LPalert, LPmessage, LPconfirm, LPprompt;
75
+ var init_message = __esm({
76
+ "core/message.ts"() {
77
+ escapeHtml = (str) => {
78
+ const div = document.createElement("div");
79
+ div.textContent = str;
80
+ return div.innerHTML;
81
+ };
82
+ LPalert = (txt) => {
83
+ const safeText = escapeHtml(String(txt));
84
+ const pUp = window.layerpro.popup.open(
85
+ {
86
+ id: "__alert",
87
+ name: "Warning",
88
+ icon: "&#9888;",
89
+ width: 380,
90
+ height: 220,
91
+ iconize: false,
92
+ maximize: false,
93
+ close: true,
94
+ isMaximize: false,
95
+ dockable: false,
96
+ raised: true,
97
+ movable: true,
98
+ resizable: false
99
+ }
100
+ );
101
+ const view = `
5
102
  <div class='popup_prompt'>
6
103
  <div class="popup_message_body">
7
- <center>${t}</center>
104
+ <center>${safeText}</center>
8
105
  </div>
9
106
  <div class="buttons">
10
- <button id="${"a_"+i.id}" type="button">CLOSE</button>
107
+ <button id="${"a_" + pUp["id"]}" type="button">CLOSE</button>
11
108
  </div>
12
109
  </div>
13
- `;$(".popup_body_"+i.id).html(o),$("#a_"+i.id).on("click",()=>{window.layerpro.popup.close(i);});},ze=(e,t)=>{let i=N(String(e)),o=window.layerpro.popup.open({id:"__message",name:"Message",icon:"&#9965;",width:380,height:220,iconize:false,maximize:false,close:true,isMaximize:false,dockable:false,raised:true,movable:true,resizable:false}),n=`
110
+ `;
111
+ $(".popup_body_" + pUp["id"]).html(view);
112
+ $("#a_" + pUp["id"]).on("click", () => {
113
+ window.layerpro.popup.close(pUp);
114
+ });
115
+ return;
116
+ };
117
+ LPmessage = (txt, func) => {
118
+ const safeText = escapeHtml(String(txt));
119
+ const pUp = window.layerpro.popup.open(
120
+ {
121
+ id: "__message",
122
+ name: "Message",
123
+ icon: "&#9965;",
124
+ width: 380,
125
+ height: 220,
126
+ iconize: false,
127
+ maximize: false,
128
+ close: true,
129
+ isMaximize: false,
130
+ dockable: false,
131
+ raised: true,
132
+ movable: true,
133
+ resizable: false
134
+ }
135
+ );
136
+ const view = `
14
137
  <div class='popup_prompt'>
15
138
  <div class="popup_message_body">
16
- <center>${i}</center>
139
+ <center>${safeText}</center>
17
140
  </div>
18
141
  <div class="buttons">
19
- <button id="${"a_"+o.id}" type="button">CLOSE</button>
142
+ <button id="${"a_" + pUp["id"]}" type="button">CLOSE</button>
20
143
  </div>
21
144
  </div>
22
- `;$(".popup_body_"+o.id).html(n),$("#a_"+o.id).on("click",()=>{t&&t(),window.layerpro.popup.close(o);});},ke=(e,t,i)=>{if($(".confirm").length===0){let o=N(String(e)),n=window.layerpro.popup.open({id:"__confirm",name:"Confirm",icon:"&#9745;",width:380,height:220,iconize:false,maximize:false,close:true,isMaximize:false,dockable:false,raised:true,movable:true,resizable:false}),l=`
145
+ `;
146
+ $(".popup_body_" + pUp["id"]).html(view);
147
+ $("#a_" + pUp["id"]).on("click", () => {
148
+ if (func) {
149
+ func();
150
+ }
151
+ window.layerpro.popup.close(pUp);
152
+ });
153
+ return;
154
+ };
155
+ LPconfirm = (txt, func, noFunction) => {
156
+ if ($(".confirm").length === 0) {
157
+ const safeText = escapeHtml(String(txt));
158
+ const pUp = window.layerpro.popup.open(
159
+ {
160
+ id: "__confirm",
161
+ name: "Confirm",
162
+ icon: "&#9745;",
163
+ width: 380,
164
+ height: 220,
165
+ iconize: false,
166
+ maximize: false,
167
+ close: true,
168
+ isMaximize: false,
169
+ dockable: false,
170
+ raised: true,
171
+ movable: true,
172
+ resizable: false
173
+ }
174
+ );
175
+ const view = `
23
176
  <div class='popup_prompt'>
24
177
  <div class="popup_message_body">
25
- <center>${o}</center>
178
+ <center>${safeText}</center>
26
179
  </div>
27
180
  <div class="buttons">
28
- <button id="${"a_"+n.id}" type="button">CONFIRM</button>
29
- <button id="${"b_"+n.id}" type="button">CANCEL</button>
181
+ <button id="${"a_" + pUp["id"]}" type="button">CONFIRM</button>
182
+ <button id="${"b_" + pUp["id"]}" type="button">CANCEL</button>
30
183
  </div>
31
184
  </div>
32
- `;$(".popup_body_"+n.id).html(l),$("#a_"+n.id).on("click",()=>{t&&t(),window.layerpro.popup.close(n);}),$("#b_"+n.id).on("click",()=>{i&&i(),window.layerpro.popup.close(n);});}},je=(e,t)=>{let i=t||"_prompt",o=N(String(e)),n=window.layerpro.popup.open({id:"__prompt",name:"Prompt",icon:"&#9998;",width:380,height:220,iconize:false,maximize:false,close:true,isMaximize:false,dockable:false,raised:true,movable:true,resizable:false}),l=`
185
+ `;
186
+ $(".popup_body_" + pUp["id"]).html(view);
187
+ $("#a_" + pUp["id"]).on("click", () => {
188
+ if (func) {
189
+ func();
190
+ }
191
+ window.layerpro.popup.close(pUp);
192
+ });
193
+ $("#b_" + pUp["id"]).on("click", () => {
194
+ if (noFunction) {
195
+ noFunction();
196
+ }
197
+ window.layerpro.popup.close(pUp);
198
+ });
199
+ }
200
+ return;
201
+ };
202
+ LPprompt = (txt, value) => {
203
+ const finalValue = value || "_prompt";
204
+ const safeText = escapeHtml(String(txt));
205
+ const pUp = window.layerpro.popup.open(
206
+ {
207
+ id: "__prompt",
208
+ name: "Prompt",
209
+ icon: "&#9998;",
210
+ width: 380,
211
+ height: 220,
212
+ iconize: false,
213
+ maximize: false,
214
+ close: true,
215
+ isMaximize: false,
216
+ dockable: false,
217
+ raised: true,
218
+ movable: true,
219
+ resizable: false
220
+ }
221
+ );
222
+ const view = `
33
223
  <div class='popup_prompt'>
34
224
 
35
225
  <div class="popup_message_body">
36
226
  <center>
37
- ${o}
227
+ ${safeText}
38
228
  </center>
39
229
  </div>
40
230
 
41
- <input id="input_${n.id}" type="text" placeholder="write here" />
231
+ <input id="input_${pUp["id"]}" type="text" placeholder="write here" />
42
232
  <br/>
43
233
 
44
234
  <div class="buttons">
45
- <button id="a_${n.id}" type="button">OK</button>
46
- <button id="b_${n.id}" type="button">CANCEL</button>
235
+ <button id="a_${pUp["id"]}" type="button">OK</button>
236
+ <button id="b_${pUp["id"]}" type="button">CANCEL</button>
47
237
  </div>
48
238
 
49
239
  </div>
50
- `;$(".popup_body_"+n.id).html(l),$("#input_"+n.id).on("focus",function(){$(this).attr("placeholder","");}).on("blur",function(){$(this).attr("placeholder","write here");}),$("#a_"+n.id).on("click",()=>{if($("#input_"+n.id).val()>""){if(typeof i=="function"&&i(),String(i)===i)return JSON.stringify($("#input_"+n.id).val());window.layerpro.popup.close(n);}else alert("input can't be empty!");}),$("#b_"+n.id).on("click",()=>{window.layerpro.popup.close(n);});};window.message=(e,t)=>window.layerpro.message(e,t);window.alert=e=>window.layerpro.alert(e);window.confirm=(e,t,i)=>window.layerpro.confirm(e,t,i);window.prompt=(e,t,i)=>window.layerpro.prompt(e,t,i);Object.defineProperty(window,"alert",{enumerable:false});Object.defineProperty(window,"prompt",{enumerable:false});Object.defineProperty(window,"message",{enumerable:false});Object.defineProperty(window,"confirm",{enumerable:false});Object.defineProperties(window.layerpro,{prompt:{value:je},alert:{value:xe},message:{value:ze},confirm:{value:ke}});});var L,f,Z,te,oe=C(()=>{ee();L=new Map,f=new Map,Z=e=>{let t=document.createElement("div");return t.textContent=e,t.innerHTML},te=e=>{if(typeof e.body=="function"){console.error(`LayerPro Error: Passing a function as body is not supported. Use a React element like <Component /> or plain text/HTML string instead.
51
- Example: body: <MyComponent /> or body: "<p>Hello</p>"`);return}let t=e.raised===true?".popup_raised_"+e.id:"#popup";$('[class^="popup_window_"]',t).removeClass("zHigh"),$('[class^="popup_bar_"]',t).removeClass("popup_bar_selected"),$('[class^="icon_"]',t).removeClass("popup_bar_selected"),e.raised===true&&$('<div class="popup_raised_'+e.id+'">',t).appendTo("#popup").css({"pointer-events":"auto","z-index":Number(layerpro.popup.zIndex($('[class^="popup_overflow_"]',t)))+1e3}),$('<div class="popup_overflow_'+e.id+'">',t).appendTo(t).css({top:e.top,left:e.left,right:e.right,bottom:e.bottom,width:e.width,height:e.height,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,pointerEvents:"auto",zIndex:Number(layerpro.popup.zIndex($('[class^="popup_overflow_"]',t)))+1}).on("mousedown",r=>{layerpro.popup.index(e);}).hide().fadeIn(e.fadeIn);let i=$('<div class="popup_window_'+e.id+'">',t).appendTo(".popup_overflow_"+e.id).css({"pointer-events":"auto"}).addClass("zHigh").addClass(e.class);[e.top,e.left,e.bottom,e.right].reduce((r,a)=>typeof a=="number"&&isFinite(a)?Number(r)+a:r,0)===0&&layerpro.popup.center(e),layerpro.popup.unmount=r=>{let a=L.get(r);a&&(a.unmount(),L.delete(r));},layerpro.popup.cleanupEvents=r=>{let a=f.get(r);a&&(a.iconClick&&$(".icon_"+r,"#popup_dock").find("span").off("click"),a.iconClose&&$(".icon_close_"+r,"#popup_dock").off("click"),a.buttonIconize&&$(".button_iconize_"+r).off("click"),a.buttonMaximize&&$(".button_maximize_"+r).off("click"),a.buttonClose&&$(".button_close_"+r).off("click"),a.escKey&&$(document).off("keydown"),f.delete(r));},layerpro.popup.getReactRoot=r=>L.get(r),$('<div class="popup_bar_'+e.id+'">',t).appendTo(i).addClass("popup_bar_selected"),e.icon&&$('<div class="popup_icon_'+e.id+'">'+e.icon+"</div>",t).appendTo(".popup_bar_"+e.id);let l=Z(String(e.name));if($('<div class="popup_drag_'+e.id+'">'+l+"</div>",t).appendTo(".popup_bar_"+e.id),$('<div class="popup_option_'+e.id+'">',t).appendTo(".popup_bar_"+e.id),e.iconize===true&&$("#popup_dock").length===0&&($("#root").css("margin","0 0 var( --dock-height ) 0"),$(`
240
+ `;
241
+ $(".popup_body_" + pUp["id"]).html(view);
242
+ $("#input_" + pUp["id"]).on("focus", function() {
243
+ $(this).attr("placeholder", "");
244
+ }).on("blur", function() {
245
+ $(this).attr("placeholder", "write here");
246
+ });
247
+ $("#a_" + pUp["id"]).on("click", () => {
248
+ if ($("#input_" + pUp["id"]).val() > "") {
249
+ if (typeof finalValue === "function") finalValue();
250
+ const strVal = String(finalValue);
251
+ if (strVal === finalValue) return JSON.stringify($("#input_" + pUp["id"]).val());
252
+ window.layerpro.popup.close(pUp);
253
+ } else {
254
+ alert(`input can't be empty!`);
255
+ }
256
+ });
257
+ $("#b_" + pUp["id"]).on("click", () => {
258
+ window.layerpro.popup.close(pUp);
259
+ });
260
+ return;
261
+ };
262
+ window.message = (txt, func) => window.layerpro.message(txt, func);
263
+ window.alert = (txt) => window.layerpro.alert(txt);
264
+ window.confirm = (txt, func, noFunction) => window.layerpro.confirm(txt, func, noFunction);
265
+ window.prompt = (txt, func, _event) => window.layerpro.prompt(txt, func, _event);
266
+ Object.defineProperty(window, "alert", { enumerable: false });
267
+ Object.defineProperty(window, "prompt", { enumerable: false });
268
+ Object.defineProperty(window, "message", { enumerable: false });
269
+ Object.defineProperty(window, "confirm", { enumerable: false });
270
+ Object.defineProperties(
271
+ window.layerpro,
272
+ {
273
+ prompt: {
274
+ value: LPprompt
275
+ },
276
+ alert: {
277
+ value: LPalert
278
+ },
279
+ message: {
280
+ value: LPmessage
281
+ },
282
+ confirm: {
283
+ value: LPconfirm
284
+ }
285
+ }
286
+ );
287
+ }
288
+ });
289
+ var reactRoots, dockEventListeners, escapeHtml2, genLayer;
290
+ var init_genLayer = __esm({
291
+ "core/genLayer.ts"() {
292
+ init_message();
293
+ reactRoots = /* @__PURE__ */ new Map();
294
+ dockEventListeners = /* @__PURE__ */ new Map();
295
+ escapeHtml2 = (str) => {
296
+ const div = document.createElement("div");
297
+ div.textContent = str;
298
+ return div.innerHTML;
299
+ };
300
+ genLayer = (props) => {
301
+ if (typeof props.body === "function") {
302
+ console.error(
303
+ 'LayerPro Error: Passing a function as body is not supported. Use a React element like <Component /> or plain text/HTML string instead.\nExample: body: <MyComponent /> or body: "<p>Hello</p>"'
304
+ );
305
+ return;
306
+ }
307
+ const pContainer = props.raised === true ? ".popup_raised_" + props.id : "#popup";
308
+ $('[class^="popup_window_"]', pContainer).removeClass("zHigh");
309
+ $('[class^="popup_bar_"]', pContainer).removeClass("popup_bar_selected");
310
+ $('[class^="icon_"]', pContainer).removeClass("popup_bar_selected");
311
+ if (props.raised === true) {
312
+ $('<div class="popup_raised_' + props.id + '">', pContainer).appendTo("#popup").css({
313
+ "pointer-events": "auto",
314
+ "z-index": Number(layerpro.popup.zIndex($('[class^="popup_overflow_"]', pContainer))) + 1e3
315
+ });
316
+ }
317
+ $('<div class="popup_overflow_' + props.id + '">', pContainer).appendTo(pContainer).css(
318
+ {
319
+ top: props.top,
320
+ left: props.left,
321
+ right: props.right,
322
+ bottom: props.bottom,
323
+ width: props.width,
324
+ height: props.height,
325
+ minWidth: props.minWidth,
326
+ minHeight: props.minHeight,
327
+ maxWidth: props.maxWidth,
328
+ maxHeight: props.maxHeight,
329
+ pointerEvents: "auto",
330
+ zIndex: Number(layerpro.popup.zIndex($('[class^="popup_overflow_"]', pContainer))) + 1
331
+ }
332
+ ).on("mousedown", (_e) => {
333
+ layerpro.popup.index(props);
334
+ }).hide().fadeIn(props.fadeIn);
335
+ const item = $('<div class="popup_window_' + props.id + '">', pContainer).appendTo(".popup_overflow_" + props.id).css({ "pointer-events": "auto" }).addClass("zHigh").addClass(props.class);
336
+ const pos = [props.top, props.left, props.bottom, props.right], sum = pos.reduce((sumSoFar, nextValue) => {
337
+ if (typeof nextValue === "number" && isFinite(nextValue)) {
338
+ return Number(sumSoFar) + nextValue;
339
+ }
340
+ return sumSoFar;
341
+ }, 0);
342
+ if (sum === 0) layerpro.popup.center(props);
343
+ layerpro.popup.unmount = (id) => {
344
+ const root = reactRoots.get(id);
345
+ if (root) {
346
+ root.unmount();
347
+ reactRoots.delete(id);
348
+ }
349
+ };
350
+ layerpro.popup.cleanupEvents = (id) => {
351
+ const listeners = dockEventListeners.get(id);
352
+ if (listeners) {
353
+ if (listeners.iconClick) $(".icon_" + id, "#popup_dock").find("span").off("click");
354
+ if (listeners.iconClose) $(".icon_close_" + id, "#popup_dock").off("click");
355
+ if (listeners.buttonIconize) $(".button_iconize_" + id).off("click");
356
+ if (listeners.buttonMaximize) $(".button_maximize_" + id).off("click");
357
+ if (listeners.buttonClose) $(".button_close_" + id).off("click");
358
+ if (listeners.escKey) $(document).off("keydown");
359
+ dockEventListeners.delete(id);
360
+ }
361
+ };
362
+ layerpro.popup.getReactRoot = (id) => reactRoots.get(id);
363
+ $('<div class="popup_bar_' + props.id + '">', pContainer).appendTo(item).addClass("popup_bar_selected");
364
+ if (props.icon) $('<div class="popup_icon_' + props.id + '">' + props.icon + "</div>", pContainer).appendTo(".popup_bar_" + props.id);
365
+ const safeName = escapeHtml2(String(props.name));
366
+ $('<div class="popup_drag_' + props.id + '">' + safeName + "</div>", pContainer).appendTo(".popup_bar_" + props.id);
367
+ $('<div class="popup_option_' + props.id + '">', pContainer).appendTo(".popup_bar_" + props.id);
368
+ if (props.iconize === true && $("#popup_dock").length === 0) {
369
+ $("#root").css("margin", "0 0 var( --dock-height ) 0");
370
+ const dock = `
52
371
  <div id="popup_dock">
53
372
  <div id="popup_dock_icon"></div>
54
373
  <div id="popup_dock_list"></div>
55
374
  <div id="popup_dock_options"></div>
56
375
  </div>
57
- `).appendTo("#popup").css({pointerEvents:"auto",zIndex:Number(layerpro.popup.zIndex($("#popup")))+1e3})),$("#popup_dock").length>0&&e.dockable===true){let r=String(e.id),a=`
58
- <div class="icon_${e.id}">
59
- <span>${e.icon?e.icon:""}</span>
60
- <span>${l}</span>
61
- `,s=function(Ie){$(".popup_overflow_"+e.id+":hidden")?(layerpro.popup.iconize(e),layerpro.popup.index(e)):layerpro.popup.iconize(e),layerpro.popup.index(e);},w=function(Ie){e?.buttons?.cancel?.cb&&e?.buttons?.cancel?.cb(),layerpro.popup.close(e);};f.set(r,{iconClick:true,iconClose:true}),$(a,"#popup_dock").appendTo("#popup_dock_list").addClass("popup_bar_selected").find("span").on("click",s),$(`<button class="icon_close_${e.id}">X</button>`,"#popup_dock").appendTo(`.icon_${e.id}`).on("click",w);}if(e.iconize===true){let r=String(e.id),a=function(w){layerpro.popup.iconize(e);},s=f.get(r)||{};s.buttonIconize=true,f.set(r,s),$('<button class="button_iconize_'+e.id+' iconize">',"#popup").appendTo(".popup_option_"+e.id).on("click",a);}if(e.maximize===true){let r=String(e.id),a=function(w){layerpro.popup.maximize(e);},s=f.get(r)||{};s.buttonMaximize=true,f.set(r,s),$('<button class="button_maximize_'+e.id+' maximize">',"#popup").appendTo(".popup_option_"+e.id).on("click",a);}if(e.close===true){let r=String(e.id),a=function(w){e?.buttons?.cancel?.cb&&e?.buttons?.cancel?.cb(),layerpro.popup.close(e);},s=f.get(r)||{};s.buttonClose=true,f.set(r,s),$('<button class="button_close_'+e.id+' close">',"#popup").appendTo(".popup_option_"+e.id).on("click",a);}let b=function(r){(r.key==="Escape"||r.keyCode===27)&&(e?.buttons?.cancel?.cb&&e?.buttons?.cancel?.cb(),layerpro.popup.close(e));},h=String(e.id),u=f.get(h)||{};if(u.escKey=true,f.set(h,u),$(document).on("keydown",b),e.timer>0){let r={};r[`st_${e.id}`]=setTimeout(()=>{layerpro.popup.close(e),clearTimeout(r[`st_${e.id}`]);},e.timer);}if(e.source){let r=$(".popup_body_"+e.id),a=String(e.source);try{let s=new URL(a,window.location.origin);if(s.protocol!=="https:"&&s.protocol!=="http:"&&s.protocol!==""){console.error("Invalid URL protocol:",s.protocol);return}}catch{console.error("Invalid source URL:",e.source);return}fetch(a,{mode:"same-origin"}).then(s=>{let w=s.headers.get("content-type")||"";if(w.includes("text/html")||console.warn("Source returned non-HTML content:",w),!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return s.text()}).then(s=>{let w=Z(s);r.hide().html(w).fadeIn(e.fadeIn);}).catch(s=>{console.error("Error loading content:",s);});}e.movable&&layerpro.popup.movable(e),e.resizable&&layerpro.popup.resizable(e),e.isMaximize&&layerpro.popup.maximize(e);let g=()=>{if(e.body&&!e.source)if(typeof e.body=="object"&&e.body!==null&&e.body.props!==void 0){let a=document.querySelector(".popup_body_"+e.id);if(!a){console.debug("Container not found for React component");return}try{let s=createRoot(a);s.render(e.body),L.set(String(e.id),s);}catch(s){console.error("Error rendering React component:",s);}}else if(typeof e.body=="string"&&e.body.trim().startsWith("<")){let a=Z(e.body);$(".popup_body_"+e.id).html(a).fadeIn(e.fadeIn);}else {let a=Z(String(e.body));$(".popup_body_"+e.id).text(a).fadeIn(e.fadeIn);}},m=()=>{if(e.buttons){if($('<div class="buttons"></div>').appendTo(".popup_body_"+e.id),e.buttons.confirm){let r=$(`<button id="lp_confirm" type="button">
62
- ${e.buttons.confirm.text.toUpperCase()}
63
- </button>`).appendTo(".buttons");e.buttons.confirm.cb&&r.click(()=>{e.buttons?.confirm?.cb?.(),layerpro.popup.close(e);});}e.buttons.cancel&&$(`<button id="lp_cancel" type="button">
64
- ${e.buttons.cancel.text.toUpperCase()}
65
- </button>`).appendTo(".buttons").click(()=>{e.buttons?.cancel?.cb?.(),layerpro.popup.close(e);});}},_=$('<div class="popup_overflow_'+e.id+'">',"#popup");$('<div class="popup_internal_'+e.id+'">',_).appendTo(i),$('<div class="popup_body_'+e.id+'">',_).appendTo(".popup_internal_"+e.id).hide().fadeIn(e.fadeIn,function(){g(),m();});};});var T,ae,re,ce,W,ie,ne,se,k,y,A,M,x,pe=C(()=>{T=()=>typeof window>"u"?false:window.matchMedia("(max-width: 1024px)").matches,ae=()=>{if(typeof navigator>"u")return false;let e=navigator.userAgent;return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e)},re=()=>"ontouchstart"in window||navigator.maxTouchPoints>0,ce=()=>{if(window.__FORCE_TOUCH_MODE__===true)return "touch";let e=ae()||T();return re()&&e?"touch":"mouse"},W=ce(),ie=!T(),ne=null,se=()=>{console.debug(`[LayerPro] Mode: ${W==="touch"?"MOBILE (touch events)":"DESKTOP (mouse events)"} | UA: ${ae()?"mobile":"desktop"} | Viewport: ${T()?"mobile":"desktop"} | Touch: ${re()}`);};typeof window<"u"&&se();if(typeof window<"u"){let e=window.matchMedia("(max-width: 1024px)"),t=()=>{let o=ce(),n=W,l=!T();W=o,se(),ie!==l&&(ie=l,ne&&ne(o,n));};e.addListener?e.addListener(t):e.addEventListener("change",t);let i;window.addEventListener("resize",()=>{clearTimeout(i),i=setTimeout(t,150);});}k=()=>"pointerdown",y=()=>"pointermove",A=()=>"pointerup",M=e=>e.clientX!==void 0?e.clientX:e.touches&&e.touches.length>0?e.touches[0].clientX:e.clientX,x=e=>e.clientY!==void 0?e.clientY:e.touches&&e.touches.length>0?e.touches[0].clientY:e.clientY;});var ue={};X(ue,{popup:()=>c});var d,p,P,H,E,B,Y,G,j,le,S,O,R,v,I,de,c,ge=C(()=>{oe();pe();d=250,p=150,H=1,R=new Map,v=new Map,I=$(window),de=$("body"),c={open:e=>{if(e)return e.id=e.id||Math.round(Math.random()*1e3),e.body=e.body||"",e.class=e.class||"",e.width=e.width||300,e.height=e.height||200,e.minWidth=e.minWidth||340,e.minHeight=e.minHeight||220,e.name=e.name||"popUp_"+e.id,e.source=e.source||null,e.icon=e.icon||null,e.iconize=e.iconize||null,e.maximize=e.maximize||null,e.isMaximize=e.isMaximize||null,e.dockable=e.dockable||null,e.close=e.close||null,e.raised=e.raised||null,e.movable=e.movable||null,e.resizable=e.resizable||null,e.store=e.store||false,e.top=e.top?e.top:"auto",e.left=e.left?e.left:"auto",e.right=e.right?e.right:"auto",e.bottom=e.bottom?e.bottom:"auto",e.fadeIn=e.fadeIn||100,e.fadeOut=e.fadeOut||100,d=e.minWidth,p=e.minHeight,e.width<e.minWidth&&(e.width=e.minWidth),e.height<e.minHeight&&(e.height=e.minHeight),e.width==="auto"&&(e.width="100%"),e.height==="auto"&&(e.height="100%"),$("#popup").length===0&&$('<div id="popup">',"#popup").appendTo("body").css({"pointer-events":"none","z-index":c.zIndex($("*"))+1}),$(".popup_window_"+e.id,"#popup").length===0&&te(e),layerpro.purge(document),e},dispatch:e=>{layerpro.popup.store(e);},store:e=>{console.debug(e);},show:e=>{e.toggle();},vfx:(e,t,i=false)=>{setTimeout(()=>{$('[class^="popup_overflow_"]',"#popup").css("opacity",t==true?1:.5).find('[class^="popup_body_"]').css({"content-visibility":t==true?"auto":"hidden"}),e.css("opacity",1),i||$('[class^="popup_body_"]',e).css("content-visibility","visible");},1),dispatchEvent(new Event("layerProResize"));},center:e=>{let t=$(".popup_overflow_"+e.id,"#popup");t.css("top",Math.max(0,(I.height()-t.outerHeight())/2+I.scrollTop())),t.css("left",Math.max(0,(I.width()-t.outerWidth())/2+I.scrollLeft()));},checkArea:e=>{let t=M(e),i=x(e);return [t,i,I.scrollLeft(),I.scrollTop(),I.height(),I.width()]},close:e=>{let t;if(!e)$("#popup").fadeOut(()=>{$(void 0).remove();});else {typeof e=="object"?t=e.id:t=e,layerpro.popup.unmount&&layerpro.popup.unmount(String(t)),layerpro.popup.cleanupEvents&&layerpro.popup.cleanupEvents(String(t));let i=R.get(String(t));if(i){let n={passive:false};i.move&&document.removeEventListener(y(),i.move,n),i.up&&document.removeEventListener(A(),i.up,n),R.delete(String(t));}let o=v.get(String(t));if(o){let n={passive:false};o.move&&document.removeEventListener(y(),o.move,n),o.up&&document.removeEventListener(A(),o.up,n),v.delete(String(t));}e.raised===true?$(".popup_raised_"+t).fadeOut(e.fadeOut||500,n=>{$(".popup_raised_"+t).remove();}):$(".popup_overflow_"+t).fadeOut(e.fadeOut||500,function(n){$(this).remove(),$(".popup_raised_"+t).fadeOut(e.fadeOut||500,function(l){$(this).remove();});});}layerpro.purge(document),setTimeout(()=>c.removeDock(e),300);},removeDock:e=>{$(".icon_"+e.id).remove(),$('[class^="popup_overflow_"]',"#popup").length<1&&($("#root").css("margin","0"),$("#popup_dock").remove());},iconize:e=>{let t=$(".popup_overflow_"+e.id,"#popup");if(t.find("[class^=popup_window_]").hasClass("zHigh")!==false){if(c.vfx(t,false,true),!t.data("iconize"))t.animate({top:"100%",left:$(".icon_"+e.id,"#popup_dock").offset().left+15,width:0,height:0,opacity:0},200,()=>c.vfx(t,true)),t.data("iconize",{y:t.offset().top,x:t.offset().left,w:t.width(),h:t.height()},200);else if(t.data("iconize")){let i=t.data("iconize");t.animate({top:i.y,left:i.x,width:i.w,height:i.h,opacity:1},()=>c.vfx(t,true)),t.removeData("iconize");}}},maximize:e=>{let t=$(".popup_overflow_"+e.id,"#popup"),i=$('[class^="resize_"]',t),o=$('[class^="popup_drag_"]',t),n=6;if(c.vfx(t,false,true),!t.data("store"))t.data("store",{y:t.offset().top,x:t.offset().left,w:t.width(),h:t.height()}),t.animate({position:"absolute",top:-n,left:-n,right:-n,bottom:-n,width:I.width()+n*2,height:I.height()+n*2-45},()=>{I.on("layerProResize.eventItem",l=>{t.css({width:I.width()+n*2,height:I.height()+n*2-40});}),o.css("pointer-events","none"),i.off(k()),c.vfx(t,true,true);});else if(t.data("store")){let l=t.data("store");t.animate({top:l.y,left:l.x,width:l.w,height:l.h},()=>{o.css("pointer-events","auto"),i.on(k(),function(b){c.resizeModals(b,this,e);}),I.off("layerProResize.eventItem"),c.vfx(t,true);}),t.removeData("store");}},movable:e=>{if(e.movable===false)return;let t=String(e.id),i=$(".popup_overflow_"+e.id,"#popup"),o=$(".popup_drag_"+e.id,i),n=$(".popup_body_"+e.id,i);i.css("touch-action","none");let l=0,b=0,h=0,u=0,g=a=>{a.preventDefault();let s=M(a),w=x(a);l=h-s,b=u-w,h=s,u=w,c.checkArea(a)[1]<c.checkArea(a)[4]&&Math.sign(c.checkArea(a)[1])===1&&i.css("top",i.offset().top-b),c.checkArea(a)[0]<c.checkArea(a)[5]&&Math.sign(c.checkArea(a)[0])===1&&i.css("left",i.offset().left-l);},m=a=>{let s={passive:false};document.removeEventListener(y(),g,s),document.removeEventListener(A(),m,s),R.delete(t),n.css("pointer-events","auto"),c.vfx(i,true);};R.set(t,{move:g,up:m});let _={passive:false};o[0].addEventListener(k(),a=>{a.preventDefault(),n.css("pointer-events","none"),r(a),c.vfx(i,false);},_),e.maximize&&o.on("dblclick",a=>{layerpro.popup.maximize(e);});let r=a=>{h=M(a),u=x(a);let s={passive:false};document.addEventListener(y(),g,s),document.addEventListener(A(),m,s);};},resizable:e=>{if(!e.resizable)return;let t=String(e.id),i=$(".popup_overflow_"+e.id,"#popup");for(let b=4;b--;)$(`<div class='resize_${b}'>`,i).appendTo(i).css("touch-action","none"),$(`<div class='resize_corner_${b}'>`,i).appendTo(i).css("touch-action","none");let o=function(b){c.resizeModals(b,this,e);},n=v.get(t)||{};n.down=o,v.set(t,n);let l={passive:false};$("[class^=resize_]").each((b,h)=>{h.addEventListener(k(),u=>{u.preventDefault(),c.resizeModals(u,h,e);},l);});},resizeModals:(e,t,i)=>{let o=$(t),n=o.parent(),l=String(i.id),b=M(e),h=x(e),u=[b-I.scrollLeft(),h-I.scrollTop()];i.minWidth,de.css("pointer-events","none"),n.css("pointer-events","none"),c.vfx(n,false);let g=a=>{c.doRes(a,t);},m=a=>{c.stopRes(t);},_=v.get(l)||{};_.move=g,_.up=m,v.set(l,_);let r={passive:false};document.addEventListener(y(),g,r),document.addEventListener(A(),m,r),E=u[0],B=u[1],Y=n.width(),G=n.height(),j=n.position().left,le=n.position().top,S=le+G+1,O=j+Y+1,P=t;},doRes:(e,t)=>{dispatchEvent(new Event("layerProResize"));let i=$(t),o=i.parent(),n=M(e),l=x(e),b=[n-I.scrollLeft(),l-I.scrollTop()];if(t===P){let h=Y+b[0]-E,u=G+b[1]-B,g=Y-b[0]+E,m=G-b[1]+B;h<=0&&(h=0),u<=0&&(u=0),c.checkArea(e)[1]<c.checkArea(e)[4]&&Math.sign(c.checkArea(e)[1])===1&&i.hasClass("resize_0")&&(o.height()<=p&&m>p&&o.css({height:Number(p+1)}),o.height()>p&&p<=m&&o.css({top:Number(S-m),height:parseInt(m)})),c.checkArea(e)[0]<c.checkArea(e)[5]&&Math.sign(c.checkArea(e)[0])===1&&i.hasClass("resize_1")&&(o.width()>=d&&o.css({width:Number(h),right:Number(j-h)}),o.width()<=d&&o.css({width:Number(d+1)})),c.checkArea(e)[1]<c.checkArea(e)[4]&&Math.sign(c.checkArea(e)[1])===1&&i.hasClass("resize_2")&&(o.height()>=p&&o.css({height:Number(u)}),o.height()<=p&&u>p&&o.css({height:Number(p+1)})),c.checkArea(e)[0]<c.checkArea(e)[5]&&Math.sign(c.checkArea(e)[0])===1&&i.hasClass("resize_3")&&(o.width()<=d&&g>d&&o.css({width:Number(d+1)}),o.width()>d&&d<=g&&o.css({width:parseInt(g),left:Number(O-g)})),c.checkArea(e)[1]<c.checkArea(e)[4]&&c.checkArea(e)[0]<c.checkArea(e)[5]&&Math.sign(c.checkArea(e)[0])===1&&Math.sign(c.checkArea(e)[1])===1&&(i.hasClass("resize_corner_0")&&(o.height()>=p&&m>p&&o.css({top:Number(S-m),height:parseInt(m)}),o.height()<=p&&m>p&&o.css({height:Number(p+1)}),o.width()>=d&&g>d&&o.css({width:parseInt(g),left:Number(O-g)}),o.width()<=d&&g>d&&o.css({width:Number(d+1)})),i.hasClass("resize_corner_1")&&(o.height()>=p&&m>p&&o.css({top:Number(S-m),height:Number(m)}),o.height()<=p&&m>p&&o.css({height:Number(p+1)}),o.width()>=d&&o.css({width:Number(h),right:Number(j-h)}),o.width()<=d&&g>d&&o.css({width:Number(d+1)})),i.hasClass("resize_corner_2")&&(o.height()>=p&&o.css({height:Number(u)}),o.height()<=p&&u>p&&o.css({height:Number(p+1)}),o.width()>=d&&o.css({width:Number(h),right:Number(j-h)}),o.width()<=d&&o.css({width:Number(d+1)})),i.hasClass("resize_corner_3")&&(o.height()>=p&&u>p&&o.css({height:Number(u)}),o.height()<=p&&u>p&&o.css({height:Number(p+1)}),o.width()>=d&&g>d&&o.css({width:Number(g),left:Number(O-g)}),o.width()<=d&&g>d&&o.css({width:Number(d+1)})));}},stopRes:e=>{let t=$(e),i=t.parent();de.css("pointer-events","auto"),i.css("pointer-events","auto"),c.vfx(i,true),P=false;let o=v.get(String(e));if(o){let n={passive:false};o.move&&document.removeEventListener(y(),o.move,n),o.up&&document.removeEventListener(A(),o.up,n),v.delete(String(e));}},index:e=>{let t=$('[class^="popup_overflow_"]',"#popup");$('[class^="popup_window_"]',"#popup").removeClass("zHigh"),$('[class^="popup_bar_"]',"#popup").removeClass("popup_bar_selected"),$('[class^="icon_"]',"#popup").removeClass("popup_bar_selected"),t.each(function(){$(this,"#popup").css("zIndex",$(this,"#popup")[0].style.zIndex-1);}),$(".icon_"+e.id,"#popup").addClass("popup_bar_selected"),$(".popup_overflow_"+e.id,"#popup").css("zIndex",c.zIndex(t)),$(".popup_bar_"+e.id,"#popup").addClass("popup_bar_selected"),$(".popup_window_"+e.id,"#popup").addClass("zHigh");},zIndex:e=>(e.each(function(){let t=parseInt($(this,"#popup").css("zIndex"),10);t>H&&(H=t);}),H+1)};Object.defineProperty(layerpro,"popup",{value:c,writable:false,configurable:false});});var Le,be=C(()=>{Le=e=>{let t=e.attributes,i,o,n;if(t)for(o=t.length,i=0;i<o;i+=1)n=t[i].name,e[n];if(t=e.childNodes,t)for(o=t.length,i=0;i<o;i+=1)layerpro.purge(e.childNodes[i]);};Object.defineProperty(layerpro,"purge",{value:new Proxy(Le,{}),writable:false,configurable:false});});var me=C(()=>{window.offScreenBuffering=true;addEventListener("wheel",e=>{},{capture:true,passive:true});});globalThis.$=he;globalThis.jQuery=he;var Ye=()=>{window.layerpro||(Object.defineProperty(window,"layerpro",{value:{},writable:false,configurable:false,enumerable:false}),J(),q(),ge(),be(),me(),layerpro.setProps=(e,t)=>{Reflect.ownKeys(e).forEach(o=>{let n=Object.getOwnPropertyDescriptor(e,o);n&&(n.enumerable=t?.enumerable||false,n.configurable=t?.enumerable||false,n.writable=t?.writable||false,Object.defineProperty(e,o,n)),typeof e[o]=="object"&&e[o]!==null&&layerpro.setProps(e[o],t);});},layerpro.setProps(layerpro,{configurable:false,enumerable:false,writable:false}),Object.freeze(layerpro));};Ye();
376
+ `;
377
+ $(dock).appendTo("#popup").css(
378
+ {
379
+ pointerEvents: "auto",
380
+ zIndex: Number(layerpro.popup.zIndex($("#popup"))) + 1e3
381
+ }
382
+ );
383
+ }
384
+ if ($("#popup_dock").length > 0 && props.dockable === true) {
385
+ const idStr2 = String(props.id);
386
+ const dock_icon = `
387
+ <div class="icon_${props.id}">
388
+ <span>${props.icon ? props.icon : ""}</span>
389
+ <span>${safeName}</span>
390
+ `;
391
+ const iconClickHandler = function(_e) {
392
+ if ($(".popup_overflow_" + props.id + ":hidden")) {
393
+ layerpro.popup.iconize(props);
394
+ layerpro.popup.index(props);
395
+ } else {
396
+ layerpro.popup.iconize(props);
397
+ }
398
+ layerpro.popup.index(props);
399
+ };
400
+ const iconCloseHandler = function(_e) {
401
+ props?.buttons?.cancel?.cb && props?.buttons?.cancel?.cb();
402
+ layerpro.popup.close(props);
403
+ };
404
+ dockEventListeners.set(idStr2, { iconClick: true, iconClose: true });
405
+ $(dock_icon, "#popup_dock").appendTo("#popup_dock_list").addClass("popup_bar_selected").find("span").on("click", iconClickHandler);
406
+ $(`<button class="icon_close_${props.id}">X</button>`, "#popup_dock").appendTo(`.icon_${props.id}`).on("click", iconCloseHandler);
407
+ }
408
+ if (props.iconize === true) {
409
+ const idStr2 = String(props.id);
410
+ const buttonIconizeHandler = function(_e) {
411
+ layerpro.popup.iconize(props);
412
+ };
413
+ const existing2 = dockEventListeners.get(idStr2) || {};
414
+ existing2.buttonIconize = true;
415
+ dockEventListeners.set(idStr2, existing2);
416
+ $('<button class="button_iconize_' + props.id + ' iconize">', "#popup").appendTo(".popup_option_" + props.id).on("click", buttonIconizeHandler);
417
+ }
418
+ if (props.maximize === true) {
419
+ const idStr2 = String(props.id);
420
+ const buttonMaximizeHandler = function(_e) {
421
+ layerpro.popup.maximize(props);
422
+ };
423
+ const existing2 = dockEventListeners.get(idStr2) || {};
424
+ existing2.buttonMaximize = true;
425
+ dockEventListeners.set(idStr2, existing2);
426
+ $('<button class="button_maximize_' + props.id + ' maximize">', "#popup").appendTo(".popup_option_" + props.id).on("click", buttonMaximizeHandler);
427
+ }
428
+ if (props.close === true) {
429
+ const idStr2 = String(props.id);
430
+ const buttonCloseHandler = function(_e) {
431
+ props?.buttons?.cancel?.cb && props?.buttons?.cancel?.cb();
432
+ layerpro.popup.close(props);
433
+ };
434
+ const existing2 = dockEventListeners.get(idStr2) || {};
435
+ existing2.buttonClose = true;
436
+ dockEventListeners.set(idStr2, existing2);
437
+ $('<button class="button_close_' + props.id + ' close">', "#popup").appendTo(".popup_option_" + props.id).on("click", buttonCloseHandler);
438
+ }
439
+ const escHandler = function(e) {
440
+ if (e.key === "Escape" || e.keyCode === 27) {
441
+ props?.buttons?.cancel?.cb && props?.buttons?.cancel?.cb();
442
+ layerpro.popup.close(props);
443
+ }
444
+ };
445
+ const idStr = String(props.id), existing = dockEventListeners.get(idStr) || {};
446
+ existing.escKey = true;
447
+ dockEventListeners.set(idStr, existing);
448
+ $(document).on("keydown", escHandler);
449
+ if (props.timer > 0) {
450
+ const t = {};
451
+ t[String(`st_${props.id}`)] = setTimeout(() => {
452
+ layerpro.popup.close(props);
453
+ clearTimeout(t[String(`st_${props.id}`)]);
454
+ }, props.timer);
455
+ }
456
+ if (props.source) {
457
+ const bodyElement = $(".popup_body_" + props.id);
458
+ const sourceUrl = String(props.source);
459
+ try {
460
+ const url = new URL(sourceUrl, window.location.origin);
461
+ if (url.protocol !== "https:" && url.protocol !== "http:" && url.protocol !== "") {
462
+ console.error("Invalid URL protocol:", url.protocol);
463
+ return;
464
+ }
465
+ } catch {
466
+ console.error("Invalid source URL:", props.source);
467
+ return;
468
+ }
469
+ fetch(sourceUrl, { mode: "same-origin" }).then((response) => {
470
+ const contentType = response.headers.get("content-type") || "";
471
+ if (!contentType.includes("text/html")) {
472
+ console.warn("Source returned non-HTML content:", contentType);
473
+ }
474
+ if (!response.ok) {
475
+ throw new Error(`HTTP error! status: ${response.status}`);
476
+ }
477
+ return response.text();
478
+ }).then((html) => {
479
+ const safeHtml = escapeHtml2(html);
480
+ bodyElement.hide().html(safeHtml).fadeIn(props.fadeIn);
481
+ }).catch((error) => {
482
+ console.error("Error loading content:", error);
483
+ });
484
+ }
485
+ if (props.movable) layerpro.popup.movable(props);
486
+ if (props.resizable) layerpro.popup.resizable(props);
487
+ if (props.isMaximize) layerpro.popup.maximize(props);
488
+ const showBody = () => {
489
+ if (props.body && !props.source) {
490
+ const isReactElement = typeof props.body === "object" && props.body !== null && props.body.props !== void 0;
491
+ if (isReactElement) {
492
+ const container = document.querySelector(".popup_body_" + props.id);
493
+ if (!container) {
494
+ console.debug("Container not found for React component");
495
+ return;
496
+ }
497
+ try {
498
+ const root = createRoot(container);
499
+ root.render(props.body);
500
+ reactRoots.set(String(props.id), root);
501
+ } catch (_e) {
502
+ console.error("Error rendering React component:", _e);
503
+ }
504
+ } else if (typeof props.body === "string" && props.body.trim().startsWith("<")) {
505
+ const safeBody = escapeHtml2(props.body);
506
+ $(".popup_body_" + props.id).html(safeBody).fadeIn(props.fadeIn);
507
+ } else {
508
+ const safeBody = escapeHtml2(String(props.body));
509
+ $(".popup_body_" + props.id).text(safeBody).fadeIn(props.fadeIn);
510
+ }
511
+ }
512
+ };
513
+ const showButtons = () => {
514
+ if (props.buttons) {
515
+ $('<div class="buttons"></div>').appendTo(".popup_body_" + props.id);
516
+ if (props.buttons.confirm) {
517
+ const Confirm = $(`<button id="lp_confirm" type="button">
518
+ ${props.buttons.confirm.text.toUpperCase()}
519
+ </button>`).appendTo(".buttons");
520
+ props.buttons.confirm.cb && Confirm.click(
521
+ () => {
522
+ props.buttons?.confirm?.cb?.();
523
+ layerpro.popup.close(props);
524
+ }
525
+ );
526
+ }
527
+ if (props.buttons.cancel) {
528
+ const Cancel = $(`<button id="lp_cancel" type="button">
529
+ ${props.buttons.cancel.text.toUpperCase()}
530
+ </button>`).appendTo(".buttons");
531
+ Cancel.click(
532
+ () => {
533
+ props.buttons?.cancel?.cb?.();
534
+ layerpro.popup.close(props);
535
+ }
536
+ );
537
+ }
538
+ }
539
+ };
540
+ const _overflow = $('<div class="popup_overflow_' + props.id + '">', "#popup");
541
+ $('<div class="popup_internal_' + props.id + '">', _overflow).appendTo(item);
542
+ $('<div class="popup_body_' + props.id + '">', _overflow).appendTo(".popup_internal_" + props.id).hide().fadeIn(
543
+ props.fadeIn,
544
+ function() {
545
+ showBody();
546
+ showButtons();
547
+ }
548
+ );
549
+ return;
550
+ };
551
+ }
552
+ });
553
+
554
+ // core/mobile.ts
555
+ var MOBILE_BREAKPOINT, isMobileMediaQuery, isMobileUserAgent, hasTouchSupport, getInteractionMode, currentMode, wasAboveBreakpoint, onModeChangeCallback, logMode, getPointerDown, getPointerMove, getPointerUp, getClientX, getClientY;
556
+ var init_mobile = __esm({
557
+ "core/mobile.ts"() {
558
+ MOBILE_BREAKPOINT = 1024;
559
+ isMobileMediaQuery = () => {
560
+ if (typeof window === "undefined") return false;
561
+ return window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`).matches;
562
+ };
563
+ isMobileUserAgent = () => {
564
+ if (typeof navigator === "undefined") return false;
565
+ const ua = navigator.userAgent;
566
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);
567
+ };
568
+ hasTouchSupport = () => {
569
+ return "ontouchstart" in window || navigator.maxTouchPoints > 0;
570
+ };
571
+ getInteractionMode = () => {
572
+ if (window.__FORCE_TOUCH_MODE__ === true) return "touch";
573
+ const isMobileDevice = isMobileUserAgent() || isMobileMediaQuery();
574
+ if (hasTouchSupport() && isMobileDevice) return "touch";
575
+ return "mouse";
576
+ };
577
+ currentMode = getInteractionMode();
578
+ wasAboveBreakpoint = !isMobileMediaQuery();
579
+ onModeChangeCallback = null;
580
+ logMode = () => {
581
+ const isMobile = currentMode === "touch";
582
+ console.debug(`[LayerPro] Mode: ${isMobile ? "MOBILE (touch events)" : "DESKTOP (mouse events)"} | UA: ${isMobileUserAgent() ? "mobile" : "desktop"} | Viewport: ${isMobileMediaQuery() ? "mobile" : "desktop"} | Touch: ${hasTouchSupport()}`);
583
+ };
584
+ if (typeof window !== "undefined") {
585
+ logMode();
586
+ }
587
+ if (typeof window !== "undefined") {
588
+ const mq = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`);
589
+ const handleResize = () => {
590
+ const newMode = getInteractionMode();
591
+ const oldMode = currentMode;
592
+ const isNowAboveBreakpoint = !isMobileMediaQuery();
593
+ currentMode = newMode;
594
+ logMode();
595
+ if (wasAboveBreakpoint !== isNowAboveBreakpoint) {
596
+ wasAboveBreakpoint = isNowAboveBreakpoint;
597
+ if (onModeChangeCallback) {
598
+ onModeChangeCallback(newMode, oldMode);
599
+ }
600
+ }
601
+ };
602
+ if (mq.addListener) {
603
+ mq.addListener(handleResize);
604
+ } else {
605
+ mq.addEventListener("change", handleResize);
606
+ }
607
+ let resizeTimer;
608
+ window.addEventListener("resize", () => {
609
+ clearTimeout(resizeTimer);
610
+ resizeTimer = setTimeout(handleResize, 150);
611
+ });
612
+ }
613
+ getPointerDown = () => "pointerdown";
614
+ getPointerMove = () => "pointermove";
615
+ getPointerUp = () => "pointerup";
616
+ getClientX = (e) => {
617
+ if (e.clientX !== void 0) {
618
+ return e.clientX;
619
+ }
620
+ if (e.touches && e.touches.length > 0) {
621
+ return e.touches[0].clientX;
622
+ }
623
+ return e.clientX;
624
+ };
625
+ getClientY = (e) => {
626
+ if (e.clientY !== void 0) {
627
+ return e.clientY;
628
+ }
629
+ if (e.touches && e.touches.length > 0) {
630
+ return e.touches[0].clientY;
631
+ }
632
+ return e.clientY;
633
+ };
634
+ }
635
+ });
636
+
637
+ // core/properties.ts
638
+ var properties_exports = {};
639
+ __export(properties_exports, {
640
+ popup: () => popup
641
+ });
642
+ var larX, larY, isResizable, highIndex, startX, startY, startWidth, startHeight, startLeft, startTop, startBottom, startRight, movableHandlers, resizeHandlers, Win, Body, popup;
643
+ var init_properties = __esm({
644
+ "core/properties.ts"() {
645
+ init_genLayer();
646
+ init_mobile();
647
+ larX = 250;
648
+ larY = 150;
649
+ highIndex = 1;
650
+ movableHandlers = /* @__PURE__ */ new Map();
651
+ resizeHandlers = /* @__PURE__ */ new Map();
652
+ Win = $(window);
653
+ Body = $("body");
654
+ popup = {
655
+ open: (props) => {
656
+ if (!props) return;
657
+ props.id = props.id || Math.round(Math.random() * 1e3);
658
+ props.body = props.body || "";
659
+ props.class = props.class || "";
660
+ props.width = props.width || 300;
661
+ props.height = props.height || 200;
662
+ props.minWidth = props.minWidth || 340;
663
+ props.minHeight = props.minHeight || 220;
664
+ props.name = props.name || "popUp_" + props.id;
665
+ props.source = props.source || null;
666
+ props.icon = props.icon || null;
667
+ props.iconize = props.iconize || null;
668
+ props.maximize = props.maximize || null;
669
+ props.isMaximize = props.isMaximize || null;
670
+ props.dockable = props.dockable || null;
671
+ props.close = props.close || null;
672
+ props.raised = props.raised || null;
673
+ props.movable = props.movable || null;
674
+ props.resizable = props.resizable || null;
675
+ props.store = props.store || false;
676
+ props.top = props.top ? props.top : "auto";
677
+ props.left = props.left ? props.left : "auto";
678
+ props.right = props.right ? props.right : "auto";
679
+ props.bottom = props.bottom ? props.bottom : "auto";
680
+ props.fadeIn = props.fadeIn || 100;
681
+ props.fadeOut = props.fadeOut || 100;
682
+ larX = props.minWidth;
683
+ larY = props.minHeight;
684
+ if (props.width < props.minWidth) props.width = props.minWidth;
685
+ if (props.height < props.minHeight) props.height = props.minHeight;
686
+ if (props.width === "auto") props.width = "100%";
687
+ if (props.height === "auto") props.height = "100%";
688
+ if ($("#popup").length === 0) {
689
+ $('<div id="popup">', "#popup").appendTo("body").css({
690
+ "pointer-events": "none",
691
+ "z-index": popup.zIndex($("*")) + 1
692
+ });
693
+ }
694
+ if ($(".popup_window_" + props.id, "#popup").length === 0) {
695
+ genLayer(props);
696
+ }
697
+ layerpro.purge(document);
698
+ return props;
699
+ },
700
+ dispatch: (_e) => {
701
+ layerpro.popup.store(_e);
702
+ },
703
+ ///
704
+ store: (_element) => {
705
+ console.debug(_element);
706
+ },
707
+ ///
708
+ show: (item) => {
709
+ item.toggle();
710
+ return;
711
+ },
712
+ ///
713
+ vfx: (item, vis, all = false) => {
714
+ setTimeout(
715
+ () => {
716
+ $('[class^="popup_overflow_"]', "#popup").css("opacity", vis == true ? 1 : 0.5).find('[class^="popup_body_"]').css({ "content-visibility": vis == true ? "auto" : "hidden" });
717
+ item.css("opacity", 1);
718
+ if (!all) $('[class^="popup_body_"]', item).css("content-visibility", "visible");
719
+ return;
720
+ },
721
+ 1
722
+ );
723
+ dispatchEvent(new Event("layerProResize"));
724
+ },
725
+ ///
726
+ center: (props) => {
727
+ const _overflow = $(".popup_overflow_" + props.id, "#popup");
728
+ _overflow.css("top", Math.max(0, (Win.height() - _overflow.outerHeight()) / 2 + Win.scrollTop()));
729
+ _overflow.css("left", Math.max(0, (Win.width() - _overflow.outerWidth()) / 2 + Win.scrollLeft()));
730
+ return;
731
+ },
732
+ ///
733
+ checkArea: (e) => {
734
+ const clientX = getClientX(e);
735
+ const clientY = getClientY(e);
736
+ return [
737
+ clientX,
738
+ clientY,
739
+ Win.scrollLeft(),
740
+ Win.scrollTop(),
741
+ Win.height(),
742
+ Win.width()
743
+ ];
744
+ },
745
+ ///
746
+ close: (props) => {
747
+ let ob;
748
+ if (!props) {
749
+ $("#popup").fadeOut(() => {
750
+ $(void 0).remove();
751
+ });
752
+ } else {
753
+ typeof props === "object" ? ob = props.id : ob = props;
754
+ if (layerpro.popup.unmount) {
755
+ layerpro.popup.unmount(String(ob));
756
+ }
757
+ if (layerpro.popup.cleanupEvents) {
758
+ layerpro.popup.cleanupEvents(String(ob));
759
+ }
760
+ const movableCleanup = movableHandlers.get(String(ob));
761
+ if (movableCleanup) {
762
+ const moveOptions = { passive: false };
763
+ if (movableCleanup.move) document.removeEventListener(getPointerMove(), movableCleanup.move, moveOptions);
764
+ if (movableCleanup.up) document.removeEventListener(getPointerUp(), movableCleanup.up, moveOptions);
765
+ movableHandlers.delete(String(ob));
766
+ }
767
+ const resizeCleanup = resizeHandlers.get(String(ob));
768
+ if (resizeCleanup) {
769
+ const moveOptions = { passive: false };
770
+ if (resizeCleanup.move) document.removeEventListener(getPointerMove(), resizeCleanup.move, moveOptions);
771
+ if (resizeCleanup.up) document.removeEventListener(getPointerUp(), resizeCleanup.up, moveOptions);
772
+ resizeHandlers.delete(String(ob));
773
+ }
774
+ if (props.raised === true) {
775
+ $(".popup_raised_" + ob).fadeOut(props.fadeOut || 500, (e) => {
776
+ $(".popup_raised_" + ob).remove();
777
+ });
778
+ } else {
779
+ $(".popup_overflow_" + ob).fadeOut(
780
+ props.fadeOut || 500,
781
+ function(e) {
782
+ $(this).remove();
783
+ $(".popup_raised_" + ob).fadeOut(
784
+ props.fadeOut || 500,
785
+ function(e2) {
786
+ $(this).remove();
787
+ }
788
+ );
789
+ }
790
+ );
791
+ }
792
+ }
793
+ layerpro.purge(document);
794
+ setTimeout(() => popup.removeDock(props), 300);
795
+ return;
796
+ },
797
+ ///
798
+ removeDock: (props) => {
799
+ $(".icon_" + props.id).remove();
800
+ if ($('[class^="popup_overflow_"]', "#popup").length < 1) {
801
+ $("#root").css("margin", "0");
802
+ $("#popup_dock").remove();
803
+ }
804
+ return;
805
+ },
806
+ ///
807
+ iconize: (props) => {
808
+ const _overflow = $(".popup_overflow_" + props.id, "#popup");
809
+ if (_overflow.find("[class^=popup_window_]").hasClass("zHigh") === false) return;
810
+ popup.vfx(_overflow, false, true);
811
+ if (!_overflow.data("iconize")) {
812
+ _overflow.animate(
813
+ {
814
+ top: "100%",
815
+ left: $(".icon_" + props.id, "#popup_dock").offset().left + 15,
816
+ width: 0,
817
+ height: 0,
818
+ opacity: 0
819
+ },
820
+ 200,
821
+ () => popup.vfx(_overflow, true)
822
+ );
823
+ _overflow.data(
824
+ "iconize",
825
+ {
826
+ y: _overflow.offset().top,
827
+ x: _overflow.offset().left,
828
+ w: _overflow.width(),
829
+ h: _overflow.height()
830
+ },
831
+ 200
832
+ );
833
+ } else if (_overflow.data("iconize")) {
834
+ const s = _overflow.data("iconize");
835
+ _overflow.animate(
836
+ {
837
+ top: s.y,
838
+ left: s.x,
839
+ width: s.w,
840
+ height: s.h,
841
+ opacity: 1
842
+ },
843
+ () => popup.vfx(_overflow, true)
844
+ );
845
+ _overflow.removeData("iconize");
846
+ }
847
+ return;
848
+ },
849
+ ///
850
+ maximize: (props) => {
851
+ const _overflow = $(".popup_overflow_" + props.id, "#popup"), _resize = $('[class^="resize_"]', _overflow), _dragger = $('[class^="popup_drag_"]', _overflow), gap = 6;
852
+ popup.vfx(_overflow, false, true);
853
+ if (!_overflow.data("store")) {
854
+ _overflow.data("store", {
855
+ y: _overflow.offset().top,
856
+ x: _overflow.offset().left,
857
+ w: _overflow.width(),
858
+ h: _overflow.height()
859
+ });
860
+ _overflow.animate(
861
+ {
862
+ position: "absolute",
863
+ top: -gap,
864
+ left: -gap,
865
+ right: -gap,
866
+ bottom: -gap,
867
+ width: Win.width() + gap * 2,
868
+ height: Win.height() + gap * 2 - 45
869
+ },
870
+ () => {
871
+ Win.on("layerProResize.eventItem", (e) => {
872
+ _overflow.css({
873
+ width: Win.width() + gap * 2,
874
+ height: Win.height() + gap * 2 - 40
875
+ });
876
+ });
877
+ _dragger.css("pointer-events", "none");
878
+ _resize.off(getPointerDown());
879
+ popup.vfx(_overflow, true, true);
880
+ }
881
+ );
882
+ } else if (_overflow.data("store")) {
883
+ const s = _overflow.data("store");
884
+ _overflow.animate(
885
+ {
886
+ top: s.y,
887
+ left: s.x,
888
+ width: s.w,
889
+ height: s.h
890
+ },
891
+ () => {
892
+ _dragger.css("pointer-events", "auto");
893
+ _resize.on(getPointerDown(), function(e) {
894
+ popup.resizeModals(e, this, props);
895
+ });
896
+ Win.off("layerProResize.eventItem");
897
+ popup.vfx(_overflow, true);
898
+ }
899
+ );
900
+ _overflow.removeData("store");
901
+ }
902
+ return;
903
+ },
904
+ ///
905
+ movable: (props) => {
906
+ if (props.movable === false) return;
907
+ const idStr = String(props.id), _overflow = $(".popup_overflow_" + props.id, "#popup"), _dragger = $(".popup_drag_" + props.id, _overflow), _body = $(".popup_body_" + props.id, _overflow);
908
+ _overflow.css("touch-action", "none");
909
+ let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
910
+ const elementDrag = (e) => {
911
+ e.preventDefault();
912
+ const clientX = getClientX(e);
913
+ const clientY = getClientY(e);
914
+ pos1 = pos3 - clientX;
915
+ pos2 = pos4 - clientY;
916
+ pos3 = clientX;
917
+ pos4 = clientY;
918
+ if (popup.checkArea(e)[1] < popup.checkArea(e)[4] && Math.sign(popup.checkArea(e)[1]) === 1) _overflow.css("top", _overflow.offset().top - pos2);
919
+ if (popup.checkArea(e)[0] < popup.checkArea(e)[5] && Math.sign(popup.checkArea(e)[0]) === 1) _overflow.css("left", _overflow.offset().left - pos1);
920
+ return;
921
+ }, elementDragEnd = (e) => {
922
+ const moveOptions = { passive: false };
923
+ document.removeEventListener(getPointerMove(), elementDrag, moveOptions);
924
+ document.removeEventListener(getPointerUp(), elementDragEnd, moveOptions);
925
+ movableHandlers.delete(idStr);
926
+ _body.css("pointer-events", "auto");
927
+ popup.vfx(_overflow, true);
928
+ return;
929
+ };
930
+ movableHandlers.set(idStr, { move: elementDrag, up: elementDragEnd });
931
+ const downOptions = { passive: false };
932
+ _dragger[0].addEventListener(getPointerDown(), (e) => {
933
+ e.preventDefault();
934
+ _body.css("pointer-events", "none");
935
+ dragMouseDown(e);
936
+ popup.vfx(_overflow, false);
937
+ }, downOptions);
938
+ if (props.maximize) {
939
+ _dragger.on("dblclick", (e) => {
940
+ layerpro.popup.maximize(props);
941
+ });
942
+ }
943
+ const dragMouseDown = (e) => {
944
+ pos3 = getClientX(e);
945
+ pos4 = getClientY(e);
946
+ const moveOptions = { passive: false };
947
+ document.addEventListener(getPointerMove(), elementDrag, moveOptions);
948
+ document.addEventListener(getPointerUp(), elementDragEnd, moveOptions);
949
+ return;
950
+ };
951
+ return;
952
+ },
953
+ ///
954
+ resizable: (props) => {
955
+ if (!props.resizable) return;
956
+ const idStr = String(props.id), _overflow = $(".popup_overflow_" + props.id, "#popup");
957
+ for (let i = 4; i--; ) {
958
+ $(`<div class='resize_${i}'>`, _overflow).appendTo(_overflow).css("touch-action", "none");
959
+ $(`<div class='resize_corner_${i}'>`, _overflow).appendTo(_overflow).css("touch-action", "none");
960
+ }
961
+ const handleDown = function(e) {
962
+ popup.resizeModals(e, this, props);
963
+ }, existingHandlers = resizeHandlers.get(idStr) || {};
964
+ existingHandlers.down = handleDown;
965
+ resizeHandlers.set(idStr, existingHandlers);
966
+ const downOptions = { passive: false };
967
+ $("[class^=resize_]").each((_i, el) => {
968
+ el.addEventListener(getPointerDown(), (e) => {
969
+ e.preventDefault();
970
+ popup.resizeModals(e, el, props);
971
+ }, downOptions);
972
+ });
973
+ return;
974
+ },
975
+ ///
976
+ resizeModals: (e, id, props) => {
977
+ const _sizer = $(id), _parent = _sizer.parent(), idStr = String(props.id);
978
+ const clientX = getClientX(e);
979
+ const clientY = getClientY(e);
980
+ const cords = [clientX - Win.scrollLeft(), clientY - Win.scrollTop()];
981
+ if (props.minWidth) ;
982
+ Body.css("pointer-events", "none");
983
+ _parent.css("pointer-events", "none");
984
+ popup.vfx(_parent, false);
985
+ const doResHandler = (e2) => {
986
+ popup.doRes(e2, id);
987
+ }, stopResHandler = (e2) => {
988
+ popup.stopRes(id);
989
+ }, existingHandlers = resizeHandlers.get(idStr) || {};
990
+ existingHandlers.move = doResHandler;
991
+ existingHandlers.up = stopResHandler;
992
+ resizeHandlers.set(idStr, existingHandlers);
993
+ const moveOptions = { passive: false };
994
+ document.addEventListener(getPointerMove(), doResHandler, moveOptions);
995
+ document.addEventListener(getPointerUp(), stopResHandler, moveOptions);
996
+ startX = cords[0];
997
+ startY = cords[1];
998
+ startWidth = _parent.width();
999
+ startHeight = _parent.height();
1000
+ startLeft = _parent.position().left;
1001
+ startTop = _parent.position().top;
1002
+ startBottom = startTop + startHeight + 1;
1003
+ startRight = startLeft + startWidth + 1;
1004
+ isResizable = id;
1005
+ return;
1006
+ },
1007
+ ///
1008
+ doRes: (e, id) => {
1009
+ dispatchEvent(new Event("layerProResize"));
1010
+ const _sizer = $(id), _parent = _sizer.parent();
1011
+ const clientX = getClientX(e);
1012
+ const clientY = getClientY(e);
1013
+ const cords = [clientX - Win.scrollLeft(), clientY - Win.scrollTop()];
1014
+ if (id === isResizable) {
1015
+ let X = startWidth + cords[0] - startX, Y = startHeight + cords[1] - startY;
1016
+ const X1 = startWidth - cords[0] + startX, Y1 = startHeight - cords[1] + startY;
1017
+ if (X <= 0) {
1018
+ X = 0;
1019
+ }
1020
+ if (Y <= 0) {
1021
+ Y = 0;
1022
+ }
1023
+ if (popup.checkArea(e)[1] < popup.checkArea(e)[4] && Math.sign(popup.checkArea(e)[1]) === 1) {
1024
+ if (_sizer.hasClass("resize_0")) {
1025
+ if (_parent.height() <= larY && Y1 > larY) {
1026
+ _parent.css({ "height": Number(larY + 1) });
1027
+ }
1028
+ if (_parent.height() > larY && larY <= Y1) {
1029
+ _parent.css({ "top": Number(startBottom - Y1), "height": parseInt(Y1) });
1030
+ }
1031
+ }
1032
+ }
1033
+ if (popup.checkArea(e)[0] < popup.checkArea(e)[5] && Math.sign(popup.checkArea(e)[0]) === 1) {
1034
+ if (_sizer.hasClass("resize_1")) {
1035
+ if (_parent.width() >= larX) {
1036
+ _parent.css({ "width": Number(X), "right": Number(startLeft - X) });
1037
+ }
1038
+ if (_parent.width() <= larX) {
1039
+ _parent.css({ "width": Number(larX + 1) });
1040
+ }
1041
+ }
1042
+ }
1043
+ if (popup.checkArea(e)[1] < popup.checkArea(e)[4] && Math.sign(popup.checkArea(e)[1]) === 1) {
1044
+ if (_sizer.hasClass("resize_2")) {
1045
+ if (_parent.height() >= larY) {
1046
+ _parent.css({ "height": Number(Y) });
1047
+ }
1048
+ if (_parent.height() <= larY && Y > larY) {
1049
+ _parent.css({ "height": Number(larY + 1) });
1050
+ }
1051
+ }
1052
+ }
1053
+ if (popup.checkArea(e)[0] < popup.checkArea(e)[5] && Math.sign(popup.checkArea(e)[0]) === 1) {
1054
+ if (_sizer.hasClass("resize_3")) {
1055
+ if (_parent.width() <= larX && X1 > larX) {
1056
+ _parent.css({ "width": Number(larX + 1) });
1057
+ }
1058
+ if (_parent.width() > larX && larX <= X1) {
1059
+ _parent.css({ "width": parseInt(X1), "left": Number(startRight - X1) });
1060
+ }
1061
+ }
1062
+ }
1063
+ if (popup.checkArea(e)[1] < popup.checkArea(e)[4] && popup.checkArea(e)[0] < popup.checkArea(e)[5] && Math.sign(popup.checkArea(e)[0]) === 1 && Math.sign(popup.checkArea(e)[1]) === 1) {
1064
+ if (_sizer.hasClass("resize_corner_0")) {
1065
+ if (_parent.height() >= larY && Y1 > larY) {
1066
+ _parent.css({ "top": Number(startBottom - Y1), "height": parseInt(Y1) });
1067
+ }
1068
+ if (_parent.height() <= larY && Y1 > larY) {
1069
+ _parent.css({ "height": Number(larY + 1) });
1070
+ }
1071
+ if (_parent.width() >= larX && X1 > larX) {
1072
+ _parent.css({ "width": parseInt(X1), "left": Number(startRight - X1) });
1073
+ }
1074
+ if (_parent.width() <= larX && X1 > larX) {
1075
+ _parent.css({ "width": Number(larX + 1) });
1076
+ }
1077
+ }
1078
+ if (_sizer.hasClass("resize_corner_1")) {
1079
+ if (_parent.height() >= larY && Y1 > larY) {
1080
+ _parent.css({ "top": Number(startBottom - Y1), "height": Number(Y1) });
1081
+ }
1082
+ if (_parent.height() <= larY && Y1 > larY) {
1083
+ _parent.css({ "height": Number(larY + 1) });
1084
+ }
1085
+ if (_parent.width() >= larX) {
1086
+ _parent.css({ "width": Number(X), "right": Number(startLeft - X) });
1087
+ }
1088
+ if (_parent.width() <= larX && X1 > larX) {
1089
+ _parent.css({ "width": Number(larX + 1) });
1090
+ }
1091
+ }
1092
+ if (_sizer.hasClass("resize_corner_2")) {
1093
+ if (_parent.height() >= larY) {
1094
+ _parent.css({ "height": Number(Y) });
1095
+ }
1096
+ if (_parent.height() <= larY && Y > larY) {
1097
+ _parent.css({ "height": Number(larY + 1) });
1098
+ }
1099
+ if (_parent.width() >= larX) {
1100
+ _parent.css({ "width": Number(X), "right": Number(startLeft - X) });
1101
+ }
1102
+ if (_parent.width() <= larX) {
1103
+ _parent.css({ "width": Number(larX + 1) });
1104
+ }
1105
+ }
1106
+ if (_sizer.hasClass("resize_corner_3")) {
1107
+ if (_parent.height() >= larY && Y > larY) {
1108
+ _parent.css({ "height": Number(Y) });
1109
+ }
1110
+ if (_parent.height() <= larY && Y > larY) {
1111
+ _parent.css({ "height": Number(larY + 1) });
1112
+ }
1113
+ if (_parent.width() >= larX && X1 > larX) {
1114
+ _parent.css({ "width": Number(X1), "left": Number(startRight - X1) });
1115
+ }
1116
+ if (_parent.width() <= larX && X1 > larX) {
1117
+ _parent.css({ "width": Number(larX + 1) });
1118
+ }
1119
+ }
1120
+ }
1121
+ }
1122
+ return;
1123
+ },
1124
+ ///
1125
+ stopRes: (id) => {
1126
+ const _sizer = $(id), _parent = _sizer.parent();
1127
+ Body.css("pointer-events", "auto");
1128
+ _parent.css("pointer-events", "auto");
1129
+ popup.vfx(_parent, true);
1130
+ isResizable = false;
1131
+ const resizeCleanup = resizeHandlers.get(String(id));
1132
+ if (resizeCleanup) {
1133
+ const moveOptions = { passive: false };
1134
+ if (resizeCleanup.move) document.removeEventListener(getPointerMove(), resizeCleanup.move, moveOptions);
1135
+ if (resizeCleanup.up) document.removeEventListener(getPointerUp(), resizeCleanup.up, moveOptions);
1136
+ resizeHandlers.delete(String(id));
1137
+ }
1138
+ return;
1139
+ },
1140
+ ///
1141
+ index: (props) => {
1142
+ const _overflow = $('[class^="popup_overflow_"]', "#popup");
1143
+ $('[class^="popup_window_"]', "#popup").removeClass("zHigh");
1144
+ $('[class^="popup_bar_"]', "#popup").removeClass("popup_bar_selected");
1145
+ $('[class^="icon_"]', "#popup").removeClass("popup_bar_selected");
1146
+ _overflow.each(
1147
+ function() {
1148
+ $(this, "#popup").css("zIndex", $(this, "#popup")[0].style.zIndex - 1);
1149
+ }
1150
+ );
1151
+ $(".icon_" + props.id, "#popup").addClass("popup_bar_selected");
1152
+ $(".popup_overflow_" + props.id, "#popup").css("zIndex", popup.zIndex(_overflow));
1153
+ $(".popup_bar_" + props.id, "#popup").addClass("popup_bar_selected");
1154
+ $(".popup_window_" + props.id, "#popup").addClass("zHigh");
1155
+ return;
1156
+ },
1157
+ ///
1158
+ zIndex: (els) => {
1159
+ els.each(
1160
+ function() {
1161
+ const currentIndex = parseInt($(this, "#popup").css("zIndex"), 10);
1162
+ if (currentIndex > highIndex) highIndex = currentIndex;
1163
+ }
1164
+ );
1165
+ return highIndex + 1;
1166
+ }
1167
+ };
1168
+ Object.defineProperty(
1169
+ layerpro,
1170
+ "popup",
1171
+ {
1172
+ value: popup,
1173
+ writable: false,
1174
+ configurable: false
1175
+ }
1176
+ );
1177
+ }
1178
+ });
1179
+ var purge;
1180
+ var init_purge = __esm({
1181
+ "core/purge.ts"() {
1182
+ purge = (d) => {
1183
+ let a = d.attributes, index, l, n;
1184
+ if (a) {
1185
+ l = a.length;
1186
+ for (index = 0; index < l; index += 1) {
1187
+ n = a[index].name;
1188
+ if (typeof d[n] === "function") ;
1189
+ }
1190
+ }
1191
+ a = d.childNodes;
1192
+ if (a) {
1193
+ l = a.length;
1194
+ for (index = 0; index < l; index += 1) {
1195
+ layerpro.purge(d.childNodes[index]);
1196
+ }
1197
+ }
1198
+ };
1199
+ Object.defineProperty(
1200
+ layerpro,
1201
+ "purge",
1202
+ {
1203
+ value: new Proxy(purge, {}),
1204
+ writable: false,
1205
+ configurable: false
1206
+ }
1207
+ );
1208
+ }
1209
+ });
1210
+ var init_window = __esm({
1211
+ "core/window.ts"() {
1212
+ window.offScreenBuffering = true;
1213
+ addEventListener(
1214
+ "wheel",
1215
+ (e) => {
1216
+ },
1217
+ {
1218
+ capture: true,
1219
+ passive: true
1220
+ }
1221
+ );
1222
+ }
1223
+ });
1224
+ globalThis.$ = $2;
1225
+ globalThis.jQuery = $2;
1226
+ var run = () => {
1227
+ if (window.layerpro) return;
1228
+ Object.defineProperty(
1229
+ window,
1230
+ "layerpro",
1231
+ {
1232
+ value: {},
1233
+ writable: false,
1234
+ configurable: false,
1235
+ enumerable: false
1236
+ }
1237
+ );
1238
+ init_credits();
1239
+ init_mouseCoords();
1240
+ init_properties();
1241
+ init_purge();
1242
+ init_window();
1243
+ layerpro.setProps = (obj, options) => {
1244
+ const allProps = Reflect.ownKeys(obj);
1245
+ allProps.forEach(
1246
+ (prop) => {
1247
+ const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
1248
+ if (descriptor) {
1249
+ descriptor.enumerable = options?.enumerable || false;
1250
+ descriptor.configurable = options?.enumerable || false;
1251
+ descriptor.writable = options?.writable || false;
1252
+ Object.defineProperty(obj, prop, descriptor);
1253
+ }
1254
+ if (typeof obj[prop] === "object" && obj[prop] !== null) layerpro.setProps(obj[prop], options);
1255
+ }
1256
+ );
1257
+ return;
1258
+ };
1259
+ layerpro.setProps(
1260
+ layerpro,
1261
+ {
1262
+ configurable: false,
1263
+ enumerable: false,
1264
+ writable: false
1265
+ }
1266
+ );
1267
+ Object.freeze(layerpro);
1268
+ };
1269
+ run();