layerpro
Version:
The real custom modals, alert, confirm, prompt... for your browser
610 lines (604 loc) • 53.4 kB
JavaScript
;(()=>{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 as e } from "react-dom/client";
import o from "jquery";
var t, i, n, p, s, r, c, a = Object.defineProperty, d = Object.getOwnPropertyNames, l = (e, o) => function() {
return e && (o = (0, e[d(e)[0]])(e = 0)), o;
}, u = (e, o) => {
for (var t in o) a(e, t, {
get: o[t],
enumerable: !0
});
}, h = l({
"core/credits.ts"() {
t = e => {}, Object.defineProperty(layerpro, "credits", {
value: t,
writable: !1,
configurable: !1
});
}
});
u({}, {
getMouseDirection: () => c,
mouseCoord: () => i
});
var m, b, _, f, v, g, w, y, z, k, x, C, E, S, M, N, T, O, I, A, L, P, j, H, R, W, D, X, q, Y, U, K, B, F, J, Q, G, V, Z = l({
"core/mouseCoords.ts"() {
i = e => [ e.clientX, e.clientY, e.screenX, e.screenY, e.pageX, e.pageY ], n = 0,
p = "", s = 0, r = 0, c = e => (n = s < e.pageX ? 1 : 0, p = r < e.pageY ? "down" : "up",
s = e.pageX, r = e.pageY, [ n, p ]);
}
}), ee = l({
"core/message.ts"() {
m = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
}, b = e => e.replace(/[&<>"']/g, e => m[e]), _ = e => {
const o = b(String(e)), t = window.layerpro.popup.open({
id: "__alert",
name: "Warning",
icon: "⚠",
width: 380,
height: 220,
iconize: !1,
maximize: !1,
close: !0,
isMaximize: !1,
dockable: !1,
raised: !0,
movable: !0,
resizable: !1
}), i = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${o}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + t.id}" type="button">CLOSE</button>\n </div>\n </div>\n `;
$(".popup_body_" + t.id).html(i), $("#a_" + t.id).on("click", () => {
window.layerpro.popup.close(t);
});
}, f = (e, o) => {
const t = b(String(e)), i = window.layerpro.popup.open({
id: "__message",
name: "Message",
icon: "⛭",
width: 380,
height: 220,
iconize: !1,
maximize: !1,
close: !0,
isMaximize: !1,
dockable: !1,
raised: !0,
movable: !0,
resizable: !1
}), n = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${t}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + i.id}" type="button">CLOSE</button>\n </div>\n </div>\n `;
$(".popup_body_" + i.id).html(n), $("#a_" + i.id).on("click", () => {
o && o(), window.layerpro.popup.close(i);
});
}, v = (e, o, t) => {
if (0 === $(".confirm").length) {
const i = b(String(e)), n = window.layerpro.popup.open({
id: "__confirm",
name: "Confirm",
icon: "☑",
width: 380,
height: 220,
iconize: !1,
maximize: !1,
close: !0,
isMaximize: !1,
dockable: !1,
raised: !0,
movable: !0,
resizable: !1
}), p = `\n <div class='popup_prompt'>\n <div class="popup_message_body">\n <center>${i}</center>\n </div>\n <div class="buttons">\n <button id="${"a_" + n.id}" type="button">CONFIRM</button>\n <button id="${"b_" + n.id}" type="button">CANCEL</button>\n </div>\n </div>\n `;
$(".popup_body_" + n.id).html(p), $("#a_" + n.id).on("click", () => {
o && o(), window.layerpro.popup.close(n);
}), $("#b_" + n.id).on("click", () => {
t && t(), window.layerpro.popup.close(n);
});
}
}, g = (e, o) => {
const t = o || "_prompt", i = b(String(e)), n = window.layerpro.popup.open({
id: "__prompt",
name: "Prompt",
icon: "✎",
width: 380,
height: 220,
iconize: !1,
maximize: !1,
close: !0,
isMaximize: !1,
dockable: !1,
raised: !0,
movable: !0,
resizable: !1
}), p = `\n <div class='popup_prompt'>\n\n <div class="popup_message_body">\n <center>\n ${i}\n </center>\n </div>\n\n <input id="input_${n.id}" type="text" placeholder="write here" />\n <br/>\n\n <div class="buttons">\n <button id="a_${n.id}" type="button">OK</button>\n <button id="b_${n.id}" type="button">CANCEL</button>\n </div>\n\n </div>\n `;
$(".popup_body_" + n.id).html(p), $("#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() > "") {
"function" == typeof t && t();
if (String(t) === t) 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, o) => window.layerpro.message(e, o), window.alert = e => window.layerpro.alert(e),
window.confirm = (e, o, t) => window.layerpro.confirm(e, o, t), window.prompt = (e, o, t) => window.layerpro.prompt(e, o, t),
Object.defineProperty(window, "alert", {
enumerable: !1
}), Object.defineProperty(window, "prompt", {
enumerable: !1
}), Object.defineProperty(window, "message", {
enumerable: !1
}), Object.defineProperty(window, "confirm", {
enumerable: !1
}), Object.defineProperties(window.layerpro, {
prompt: {
value: g
},
alert: {
value: _
},
message: {
value: f
},
confirm: {
value: v
}
});
}
}), oe = l({
"core/genLayer.ts"() {
ee(), w = new Map, y = new Map, z = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
}, k = e => e.replace(/[&<>"']/g, e => z[e]), x = o => {
if ("function" == typeof o.body) return;
const t = !0 === o.raised ? ".popup_raised_" + o.id : "#popup", i = "#popup" === t ? document.querySelector("#popup") : document.querySelector(t);
i?.querySelectorAll('[class^="popup_window_"]').forEach(e => e.classList.remove("zHigh")),
i?.querySelectorAll('[class^="popup_bar_"]').forEach(e => e.classList.remove("popup_bar_selected")),
i?.querySelectorAll('[class^="icon_"]').forEach(e => e.classList.remove("popup_bar_selected")),
!0 === o.raised && $('<div class="popup_raised_' + o.id + '">', t).appendTo("#popup").css({
"pointer-events": "auto",
"z-index": layerpro.popup.zIndex() + 1e3
}), $('<div class="popup_overflow_' + o.id + '">', t).appendTo(t).css({
top: o.top,
left: o.left,
right: o.right,
bottom: o.bottom,
width: o.width,
height: o.height,
minWidth: o.minWidth,
minHeight: o.minHeight,
maxWidth: o.maxWidth,
maxHeight: o.maxHeight,
pointerEvents: "auto",
zIndex: layerpro.popup.zIndex()
}).on("mousedown", e => {
layerpro.popup.index(o);
}).hide().fadeIn(o.fadeIn);
const n = $('<div class="popup_window_' + o.id + '">', t).appendTo(".popup_overflow_" + o.id).css({
"pointer-events": "auto"
}).addClass("zHigh").addClass(o.class);
0 === [ o.top, o.left, o.bottom, o.right ].reduce((e, o) => "number" == typeof o && isFinite(o) ? Number(e) + o : e, 0) && layerpro.popup.center(o),
layerpro.popup.unmount = e => {
const o = w.get(e);
o && (o.unmount(), w.delete(e));
}, layerpro.popup.cleanupEvents = e => {
const o = y.get(e);
o && (o.iconClick && $(".icon_" + e, "#popup_dock").find("span").off("click"), o.iconClose && $(".icon_close_" + e, "#popup_dock").off("click"),
o.buttonIconize && $(".button_iconize_" + e).off("click"), o.buttonMaximize && $(".button_maximize_" + e).off("click"),
o.buttonClose && $(".button_close_" + e).off("click"), o.escKey && $(document).off("keydown"),
y.delete(e));
}, layerpro.popup.getReactRoot = e => w.get(e), $('<div class="popup_bar_' + o.id + '">', t).appendTo(n).addClass("popup_bar_selected"),
o.icon && $('<div class="popup_icon_' + o.id + '">' + o.icon + "</div>", t).appendTo(".popup_bar_" + o.id);
const p = k(String(o.name));
if ($('<div class="popup_drag_' + o.id + '">' + p + "</div>", t).appendTo(".popup_bar_" + o.id),
$('<div class="popup_option_' + o.id + '">', t).appendTo(".popup_bar_" + o.id),
!0 === o.iconize && 0 === $("#popup_dock").length) {
$("#root").css("margin", "0 0 var( --dock-height ) 0");
$('\n <div id="popup_dock">\n <div id="popup_dock_icon"></div>\n <div id="popup_dock_list"></div>\n <div id="popup_dock_options"></div>\n </div>\n ').appendTo("#popup").css({
pointerEvents: "auto",
zIndex: layerpro.popup.zIndex() + 1e3
});
}
if ($("#popup_dock").length > 0 && !0 === o.dockable) {
const e = String(o.id), t = `\n <div class="icon_${o.id}">\n <span>${o.icon ? o.icon : ""}</span>\n <span>${p}</span>\n `, i = function(e) {
$(".popup_overflow_" + o.id + ":hidden") ? (layerpro.popup.iconize(o), layerpro.popup.index(o)) : layerpro.popup.iconize(o),
layerpro.popup.index(o);
}, n = function(e) {
o?.buttons?.cancel?.cb && o?.buttons?.cancel?.cb(), layerpro.popup.close(o);
};
y.set(e, {
iconClick: !0,
iconClose: !0
}), $(t, "#popup_dock").appendTo("#popup_dock_list").addClass("popup_bar_selected").find("span").on("click", i),
$(`<button class="icon_close_${o.id}">X</button>`, "#popup_dock").appendTo(`.icon_${o.id}`).on("click", n);
}
if (!0 === o.iconize) {
const e = String(o.id), t = function(e) {
layerpro.popup.iconize(o);
}, i = y.get(e) || {};
i.buttonIconize = !0, y.set(e, i), $('<button class="button_iconize_' + o.id + ' iconize">', "#popup").appendTo(".popup_option_" + o.id).on("click", t);
}
if (!0 === o.maximize) {
const e = String(o.id), t = function(e) {
layerpro.popup.maximize(o);
}, i = y.get(e) || {};
i.buttonMaximize = !0, y.set(e, i), $('<button class="button_maximize_' + o.id + ' maximize">', "#popup").appendTo(".popup_option_" + o.id).on("click", t);
}
if (!0 === o.close) {
const e = String(o.id), t = function(e) {
o?.buttons?.cancel?.cb && o?.buttons?.cancel?.cb(), layerpro.popup.close(o);
}, i = y.get(e) || {};
i.buttonClose = !0, y.set(e, i), $('<button class="button_close_' + o.id + ' close">', "#popup").appendTo(".popup_option_" + o.id).on("click", t);
}
const s = String(o.id), r = y.get(s) || {};
if (r.escKey = !0, y.set(s, r), $(document).on("keydown", function(e) {
"Escape" !== e.key && 27 !== e.keyCode || (o?.buttons?.cancel?.cb && o?.buttons?.cancel?.cb(),
layerpro.popup.close(o));
}), o.timer > 0) {
const e = {};
e[String(`st_${o.id}`)] = setTimeout(() => {
layerpro.popup.close(o), clearTimeout(e[String(`st_${o.id}`)]);
}, o.timer);
}
if (o.source) {
const e = $(".popup_body_" + o.id), t = String(o.source);
try {
const e = new URL(t, window.location.origin);
if ("https:" !== e.protocol && "http:" !== e.protocol && "" !== e.protocol) return;
} catch {
return;
}
fetch(t, {
mode: "same-origin"
}).then(e => {
if ((e.headers.get("content-type") || "").includes("text/html"), !e.ok) throw new Error(`HTTP error! status: ${e.status}`);
return e.text();
}).then(t => {
const i = k(t);
e.hide().html(i).fadeIn(o.fadeIn);
}).catch(e => {});
}
o.movable && layerpro.popup.movable(o), o.resizable && layerpro.popup.resizable(o),
o.isMaximize && layerpro.popup.maximize(o);
const c = $('<div class="popup_overflow_' + o.id + '">', "#popup");
$('<div class="popup_internal_' + o.id + '">', c).appendTo(n), $('<div class="popup_body_' + o.id + '">', c).appendTo(".popup_internal_" + o.id).hide().fadeIn(o.fadeIn, function() {
(() => {
if (o.body && !o.source) {
const t = o.body, i = "object" == typeof t && null !== t && void 0 !== t.type && "object" == typeof t.props && null !== t.props;
if (i) ; else if ("function" == typeof o.body) return;
if (i) {
const t = document.querySelector(".popup_body_" + o.id);
if (!t) return;
try {
const i = e(t);
i.render(o.body), w.set(String(o.id), i);
} catch (e) {
const o = e?.message || String(e);
o.includes("Invalid hook call") || o.includes("hooks");
}
} else if ("string" == typeof o.body && o.body.trim().startsWith("<")) {
const e = k(o.body);
$(".popup_body_" + o.id).html(e).fadeIn(o.fadeIn);
} else {
const e = k(String(o.body));
$(".popup_body_" + o.id).text(e).fadeIn(o.fadeIn);
}
}
})(), (() => {
if (o.buttons) {
if ($('<div class="buttons"></div>').appendTo(".popup_body_" + o.id), o.buttons.confirm) {
const e = $(`<button id="lp_confirm" type="button">\n ${o.buttons.confirm.text.toUpperCase()}\n </button>`).appendTo(".buttons");
o.buttons.confirm.cb && e.click(() => {
o.buttons?.confirm?.cb?.(), layerpro.popup.close(o);
});
}
o.buttons.cancel && $(`<button id="lp_cancel" type="button">\n ${o.buttons.cancel.text.toUpperCase()}\n </button>`).appendTo(".buttons").click(() => {
o.buttons?.cancel?.cb?.(), layerpro.popup.close(o);
});
}
})();
});
};
}
}), te = l({
"core/mobile.ts"() {
if (C = () => "undefined" != typeof window && window.matchMedia("(max-width: 1024px)").matches,
E = () => {
if ("undefined" == typeof navigator) return !1;
const e = navigator.userAgent;
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e);
}, S = () => "ontouchstart" in window || navigator.maxTouchPoints > 0, (M = () => {
if (!0 === window.__FORCE_TOUCH_MODE__) return "touch";
const e = E() || C();
return S() && e ? "touch" : "mouse";
})(), N = !C(), "undefined" != typeof window) {
const e = window.matchMedia("(max-width: 1024px)"), o = () => {
const e = M(), o = !C();
N !== o && (N = o);
};
let t;
e.addListener ? e.addListener(o) : e.addEventListener("change", o), window.addEventListener("resize", () => {
clearTimeout(t), t = setTimeout(o, 150);
});
}
T = () => "pointerdown", O = () => "pointermove", I = () => "pointerup", A = e => void 0 !== e.clientX ? e.clientX : e.touches && e.touches.length > 0 ? e.touches[0].clientX : e.clientX,
L = e => void 0 !== e.clientY ? e.clientY : e.touches && e.touches.length > 0 ? e.touches[0].clientY : e.clientY;
}
});
u({}, {
popup: () => V
});
var ie, ne = l({
"core/properties.ts"() {
oe(), te(), P = 250, j = 150, R = 1e3, F = new Map, J = new Map, Q = $(window),
G = $("body"), V = {
open: e => {
if (e) return e.id = e.id || Math.round(1e3 * Math.random()), 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 || !1, 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, P = e.minWidth, j = e.minHeight, e.width < e.minWidth && (e.width = e.minWidth),
e.height < e.minHeight && (e.height = e.minHeight), "auto" === e.width && (e.width = "100%"),
"auto" === e.height && (e.height = "100%"), 0 === $("#popup").length && $('<div id="popup">', "#popup").appendTo("body").css({
"pointer-events": "none",
"z-index": V.zIndex($("*")) + 1
}), 0 === $(".popup_window_" + e.id, "#popup").length && x(e), layerpro.purge(document),
e;
},
dispatch: e => {
layerpro.popup.store(e);
},
store: e => {},
show: e => {
e.toggle();
},
vfx: (e, o, t = !1) => {
setTimeout(() => {
$('[class^="popup_overflow_"]', "#popup").css("opacity", 1 == o ? 1 : .5).find('[class^="popup_body_"]').css({
"content-visibility": 1 == o ? "auto" : "hidden"
}), e.css("opacity", 1), t || $('[class^="popup_body_"]', e).css("content-visibility", "visible");
}, 1), dispatchEvent(new Event("layerProResize"));
},
center: e => {
const o = $(".popup_overflow_" + e.id, "#popup");
o.css("top", Math.max(0, (Q.height() - o.outerHeight()) / 2 + Q.scrollTop())), o.css("left", Math.max(0, (Q.width() - o.outerWidth()) / 2 + Q.scrollLeft()));
},
checkArea: e => [ A(e), L(e), Q.scrollLeft(), Q.scrollTop(), Q.height(), Q.width() ],
close: e => {
let o;
if (e) {
o = "object" == typeof e ? e.id : e, layerpro.popup.unmount && layerpro.popup.unmount(String(o)),
layerpro.popup.cleanupEvents && layerpro.popup.cleanupEvents(String(o));
const t = F.get(String(o));
if (t) {
const e = {
passive: !1
};
t.move && document.removeEventListener(O(), t.move, e), t.up && document.removeEventListener(I(), t.up, e),
F.delete(String(o));
}
const i = J.get(String(o));
if (i) {
const e = {
passive: !1
};
i.move && document.removeEventListener(O(), i.move, e), i.up && document.removeEventListener(I(), i.up, e),
J.delete(String(o));
}
!0 === e.raised ? $(".popup_raised_" + o).fadeOut(e.fadeOut || 500, e => {
$(".popup_raised_" + o).remove();
}) : $(".popup_overflow_" + o).fadeOut(e.fadeOut || 500, function(t) {
$(this).remove(), $(".popup_raised_" + o).fadeOut(e.fadeOut || 500, function(e) {
$(this).remove();
});
});
} else $("#popup").fadeOut(() => {
$(void 0).remove();
});
layerpro.purge(document), setTimeout(() => V.removeDock(e), 300);
},
removeDock: e => {
$(".icon_" + e.id).remove(), $('[class^="popup_overflow_"]', "#popup").length < 1 && ($("#root").css("margin", "0"),
$("#popup_dock").remove());
},
iconize: e => {
const o = $(".popup_overflow_" + e.id, "#popup");
if (!1 !== o.find("[class^=popup_window_]").hasClass("zHigh")) if (V.vfx(o, !1, !0),
o.data("iconize")) {
if (o.data("iconize")) {
const e = o.data("iconize");
o.animate({
top: e.y,
left: e.x,
width: e.w,
height: e.h,
opacity: 1
}, () => V.vfx(o, !0)), o.removeData("iconize");
}
} else o.animate({
top: "100%",
left: $(".icon_" + e.id, "#popup_dock").offset().left + 15,
width: 0,
height: 0,
opacity: 0
}, 200, () => V.vfx(o, !0)), o.data("iconize", {
y: o.offset().top,
x: o.offset().left,
w: o.width(),
h: o.height()
}, 200);
},
maximize: e => {
const o = $(".popup_overflow_" + e.id, "#popup"), t = $('[class^="resize_"]', o), i = $('[class^="popup_drag_"]', o);
if (V.vfx(o, !1, !0), o.data("store")) {
if (o.data("store")) {
const n = o.data("store");
o.animate({
top: n.y,
left: n.x,
width: n.w,
height: n.h
}, () => {
i.css("pointer-events", "auto"), t.on(T(), function(o) {
V.resizeModals(o, this, e);
}), Q.off("layerProResize.eventItem"), V.vfx(o, !0);
}), o.removeData("store");
}
} else o.data("store", {
y: o.offset().top,
x: o.offset().left,
w: o.width(),
h: o.height()
}), o.animate({
position: "absolute",
top: -6,
left: -6,
right: -6,
bottom: -6,
width: Q.width() + 12,
height: Q.height() + 12 - 45
}, () => {
Q.on("layerProResize.eventItem", e => {
o.css({
width: Q.width() + 12,
height: Q.height() + 12 - 40
});
}), i.css("pointer-events", "none"), t.off(T()), V.vfx(o, !0, !0);
});
},
movable: e => {
if (!1 === e.movable) return;
const o = String(e.id), t = $(".popup_overflow_" + e.id, "#popup"), i = $(".popup_drag_" + e.id, t), n = $(".popup_body_" + e.id, t);
t.css("touch-action", "none");
let p = 0, s = 0, r = 0, c = 0;
const a = e => {
e.preventDefault();
const o = A(e), i = L(e);
p = r - o, s = c - i, r = o, c = i, V.checkArea(e)[1] < V.checkArea(e)[4] && 1 === Math.sign(V.checkArea(e)[1]) && t.css("top", t.offset().top - s),
V.checkArea(e)[0] < V.checkArea(e)[5] && 1 === Math.sign(V.checkArea(e)[0]) && t.css("left", t.offset().left - p);
}, d = e => {
const i = {
passive: !1
};
document.removeEventListener(O(), a, i), document.removeEventListener(I(), d, i),
F.delete(o), n.css("pointer-events", "auto"), V.vfx(t, !0);
};
F.set(o, {
move: a,
up: d
});
i[0].addEventListener(T(), e => {
e.preventDefault(), n.css("pointer-events", "none"), l(e), V.vfx(t, !1);
}, {
passive: !1
}), e.maximize && i.on("dblclick", o => {
layerpro.popup.maximize(e);
});
const l = e => {
r = A(e), c = L(e);
const o = {
passive: !1
};
document.addEventListener(O(), a, o), document.addEventListener(I(), d, o);
};
},
resizable: e => {
if (!e.resizable) return;
const o = String(e.id), t = $(".popup_overflow_" + e.id, "#popup");
for (let e = 4; e--; ) $(`<div class='resize_${e}'>`, t).appendTo(t).css("touch-action", "none"),
$(`<div class='resize_corner_${e}'>`, t).appendTo(t).css("touch-action", "none");
const i = J.get(o) || {};
i.down = function(o) {
V.resizeModals(o, this, e);
}, J.set(o, i);
const n = {
passive: !1
};
$("[class^=resize_]").each((o, t) => {
t.addEventListener(T(), o => {
o.preventDefault(), V.resizeModals(o, t, e);
}, n);
});
},
resizeModals: (e, o, t) => {
const i = $(o).parent(), n = String(t.id), p = A(e), s = L(e), r = [ p - Q.scrollLeft(), s - Q.scrollTop() ];
t.minWidth, G.css("pointer-events", "none"), i.css("pointer-events", "none"), V.vfx(i, !1);
const c = e => {
V.doRes(e, o);
}, a = e => {
V.stopRes(o);
}, d = J.get(n) || {};
d.move = c, d.up = a, J.set(n, d);
const l = {
passive: !1
};
document.addEventListener(O(), c, l), document.addEventListener(I(), a, l), W = r[0],
D = r[1], X = i.width(), q = i.height(), Y = i.position().left, U = i.position().top,
K = U + q + 1, B = Y + X + 1, H = o;
},
doRes: (e, o) => {
dispatchEvent(new Event("layerProResize"));
const t = $(o), i = t.parent(), n = A(e), p = L(e), s = [ n - Q.scrollLeft(), p - Q.scrollTop() ];
if (o === H) {
let o = X + s[0] - W, n = q + s[1] - D;
const p = X - s[0] + W, r = q - s[1] + D;
o <= 0 && (o = 0), n <= 0 && (n = 0), V.checkArea(e)[1] < V.checkArea(e)[4] && 1 === Math.sign(V.checkArea(e)[1]) && t.hasClass("resize_0") && (i.height() <= j && r > j && i.css({
height: Number(j + 1)
}), i.height() > j && j <= r && i.css({
top: Number(K - r),
height: parseInt(r)
})), V.checkArea(e)[0] < V.checkArea(e)[5] && 1 === Math.sign(V.checkArea(e)[0]) && t.hasClass("resize_1") && (i.width() >= P && i.css({
width: Number(o),
right: Number(Y - o)
}), i.width() <= P && i.css({
width: Number(P + 1)
})), V.checkArea(e)[1] < V.checkArea(e)[4] && 1 === Math.sign(V.checkArea(e)[1]) && t.hasClass("resize_2") && (i.height() >= j && i.css({
height: Number(n)
}), i.height() <= j && n > j && i.css({
height: Number(j + 1)
})), V.checkArea(e)[0] < V.checkArea(e)[5] && 1 === Math.sign(V.checkArea(e)[0]) && t.hasClass("resize_3") && (i.width() <= P && p > P && i.css({
width: Number(P + 1)
}), i.width() > P && P <= p && i.css({
width: parseInt(p),
left: Number(B - p)
})), V.checkArea(e)[1] < V.checkArea(e)[4] && V.checkArea(e)[0] < V.checkArea(e)[5] && 1 === Math.sign(V.checkArea(e)[0]) && 1 === Math.sign(V.checkArea(e)[1]) && (t.hasClass("resize_corner_0") && (i.height() >= j && r > j && i.css({
top: Number(K - r),
height: parseInt(r)
}), i.height() <= j && r > j && i.css({
height: Number(j + 1)
}), i.width() >= P && p > P && i.css({
width: parseInt(p),
left: Number(B - p)
}), i.width() <= P && p > P && i.css({
width: Number(P + 1)
})), t.hasClass("resize_corner_1") && (i.height() >= j && r > j && i.css({
top: Number(K - r),
height: Number(r)
}), i.height() <= j && r > j && i.css({
height: Number(j + 1)
}), i.width() >= P && i.css({
width: Number(o),
right: Number(Y - o)
}), i.width() <= P && p > P && i.css({
width: Number(P + 1)
})), t.hasClass("resize_corner_2") && (i.height() >= j && i.css({
height: Number(n)
}), i.height() <= j && n > j && i.css({
height: Number(j + 1)
}), i.width() >= P && i.css({
width: Number(o),
right: Number(Y - o)
}), i.width() <= P && i.css({
wid