UNPKG

jspanel4

Version:

A JavaScript library to create highly configurable multifunctional floating panels that can also be used as modal, tooltip, hint or contextmenu

1 lines 3.53 kB
"use strict";if(!jsPanel.dock){jsPanel.dock={version:"1.1.3",date:"2020-06-04 08:38",defaults:{position:{my:"left-top",at:"right-top"},linkSlaveHeight:!1,linkSlaveWidth:!1,callback:!1}};var dockPanel=function(e){var i,n=this;if(this.slaveconfig=Object.assign({},jsPanel.dock.defaults,e),!(i=this.slaveconfig.master&&1===this.slaveconfig.master.nodeType?this.slaveconfig.master:document.querySelector(this.slaveconfig.master))){if(this.errorReporting){jsPanel.errorpanel("&#9664; COULD NOT DOCK PANEL &#9658;<br>The configured master panel to does not exist")}return!1}i.slaves||(i.slaves=new Set),i.handlers||(i.handlers={}),i.handlers.fronted||(i.options.onfronted.push(function(){var e=i.style.zIndex;return i.slaves.forEach(function(i){i.style.zIndex=e}),!0}),i.handlers.fronted=!0),i.handlers.smallified||(i.options.onsmallified.push(function(){return i.slaves.forEach(function(e){e.smallify().reposition()}),!0}),i.handlers.smallified=!0),i.handlers.unsmallified||(i.options.onunsmallified.push(function(){return i.slaves.forEach(function(e){e.unsmallify().reposition()}),!0}),i.handlers.unsmallified=!0),i.handlers.closed||(i.options.onclosed.push(function(){return i.slaves.forEach(function(e){e.close()}),!0}),i.handlers.closed=!0),i.handlers.minimized||(i.options.onminimized.push(function(){return i.slaves.forEach(function(e){e.minimize()}),!0}),i.handlers.minimized=!0),i.handlers.maximized||(i.options.onmaximized.push(function(){return i.slaves.forEach(function(e){if(e.normalize(),e.slaveconfig.linkSlaveHeight){var n=window.getComputedStyle(i).height;e.resize({height:n})}if(e.slaveconfig.linkSlaveWidth){var o=window.getComputedStyle(i).width;e.resize({width:o})}e.reposition()}),!0}),i.handlers.maximized=!0),i.handlers.normalized||(i.options.onnormalized.push(function(){return i.slaves.forEach(function(e){if(e.normalize(),e.slaveconfig.linkSlaveHeight){var n=window.getComputedStyle(i).height;e.resize({height:n})}if(e.slaveconfig.linkSlaveWidth){var o=window.getComputedStyle(i).width;e.resize({width:o})}e.reposition()}),!0}),i.handlers.normalized=!0);var o=Object.assign({},this.slaveconfig.position,{of:i,minLeft:!1,minTop:!1,maxLeft:!1,maxTop:!1,autoposition:!1,modify:!1});if(o.my||(o.my=jsPanel.dock.defaults.position.my),o.at||(o.at=jsPanel.dock.defaults.position.at),n.options.position=o,["smallify","minimize","normalize","maximize"].forEach(function(e){n.setControlStatus(e,"remove")}),this.slaveconfig.linkSlaveHeight){var t=window.getComputedStyle(i).height;n.resize({height:t})}if(this.slaveconfig.linkSlaveWidth){var s=window.getComputedStyle(i).width;n.resize({width:s})}return n.reposition(o),n.dragit("disable"),n.resizeit("disable"),n.options.minimizeTo=!1,n.options.onclosed.push(function(){i.slaves.delete(n)}),n.options.onfronted.push(function(e){var n=e.style.zIndex;i.style.zIndex=n,i.slaves.forEach(function(e){e.style.zIndex=n})}),i.reposSlave=function(){document.querySelector("#"+n.id)&&n.reposition()},i.options.dragit&&i.options.dragit.drag.push(i.reposSlave),i.resizeSlave=function(){if(document.querySelector("#"+n.id)){if(n.reposition(),n.slaveconfig.linkSlaveHeight){var e=window.getComputedStyle(i).height;n.resize({height:e})}if(n.slaveconfig.linkSlaveWidth){var o=window.getComputedStyle(i).width;n.resize({width:o})}}},i.options.resizeit&&i.options.resizeit.resize.push(i.resizeSlave),i.slaves.add(n),n.dockedTo=i.id,this.slaveconfig.callback&&this.slaveconfig.callback.call(n,i,n),n};jsPanel.extend({dock:dockPanel})}"undefined"!=typeof module&&(module.exports=jsPanel);