initial commit
This commit is contained in:
1
lib/common/layout/abstract-layout.js
Normal file
1
lib/common/layout/abstract-layout.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),s=e(require("../listen")),i=e(require("react/lib/cloneWithProps")),n=e(require("clamp"));module.exports=function(){return{handleSize:8,propTypes:{onLayoutResize:t.PropTypes.func},getDefaultProps:function(){return{supportedChildren:{HLayout:!0,VLayout:!0,TreeView:!0,"layout-child":!0}}},handleResize:function(){this.forceUpdate()},getInitialState:function(){var e=this.props.serialized,t=[];if(e.length>0)for(var s=0;s<e.length;s++)t[s]=e[s].size;else if(Array.isArray(this.props.children))for(var i=this.props.children.length,n=this.handleSize*(i-1),a=this.getSize()-n,s=0;i>s;s++){var r=a/i;this.props.serialized[s]={size:r,children:[]},t.push(r)}else{var r=this.getSize();this.props.serialized[0]={size:r,children:[]},t.push(r)}return{sizes:t,serialized:this.props.serialized}},componentDidMount:function(){},onMouseMove:function(e,t){t.preventDefault(),t.stopPropagation();var s=this.getEventPosition(t)-this.start,i=this.startSizes[0]+this.startSizes[1];this.state.sizes[e]=n(this.startSizes[0]+s,0,i),this.state.sizes[e+1]=n(this.startSizes[1]-s,0,i),this.state.serialized[e].size=this.state.sizes[e],this.state.serialized[e+1].size=this.state.sizes[e+1],this.props.onLayoutResize&&this.props.onLayoutResize(this.state.sizes),this.setState(this.state)},onMouseUp:function(){this.state.disposables.forEach(function(e){e.dispose()});for(var e=document.getElementsByClassName("animation-preview"),t=0;t<e.length;t++)e[t].style.pointerEvents=""},onHandleDown:function(e,t){var i=this;if(1===t.nativeEvent.which){t.nativeEvent.preventDefault(),this.start=this.getEventPosition(t.nativeEvent),this.startSizes=[this.state.sizes[e],this.state.sizes[e+1]],this.state.disposables=[s(document.body,"mouseup",this.onMouseUp),s(document.body,"mousemove",function(t){i.onMouseMove(e,t)})];for(var n=document.getElementsByClassName("animation-preview"),a=0;a<n.length;a++)n[a].style.pointerEvents="none"}},render:function(){for(var e=this,s=this.props.children.slice(),n=this.state.sizes.reduce(function(e,t){return e+t},0),a=this.handleSize*(s.length-1),r=(this.getSize()-a)/n,o=0;o<this.state.sizes.length;o++)this.state.sizes[o]*=r;for(var h=0,o=0;o<s.length;o++){var l=s[o],p=this.state.sizes[o];if(l&&l.type&&this.props.supportedChildren[l.type.displayName]){var u=this.getProps(p,this.props.width,this.props.height);("HLayout"===l.type.displayName||"VLayout"===l.type.displayName)&&(u.serialized=this.state.serialized[o].children),l=i(l,u)}s[o]=t.createElement("div",{key:h++,className:this.getContainerClass(),style:this.getProps(p,this.props.width,p,this.props.height)},l)}var d=[];return s.forEach(function(i,n){d.push(i),n<s.length-1&&d.push(t.createElement("div",{key:h++,className:"layout-handle",onMouseDown:function(t){e.onHandleDown(n,t)},style:e.getHandleStyle()}))}),t.createElement("div",{className:this.getLayoutClass()},d)}}};
|
||||
1
lib/common/layout/h-layout.js
Normal file
1
lib/common/layout/h-layout.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var t=function(t){return t&&t.__esModule?t["default"]:t},e=t(require("react")),r=t(require("./abstract-layout")),n=function(){return{getContainerClass:function(){return"h-child-container"},getLayoutClass:function(){return"h-layout"},getSize:function(){return this.props.width},getProps:function(t){return{width:t,height:this.props.height}},getEventPosition:function(t){return t.clientX},getHandleStyle:function(){return{"float":"left",width:this.handleSize,height:this.props.height,cursor:"ew-resize"}},displayName:"HLayout"}};module.exports=e.createClass(Object.assign(r(),n()));
|
||||
1
lib/common/layout/layout.js
Normal file
1
lib/common/layout/layout.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),i=require("react/lib/cloneWithProps");module.exports=t.createClass({displayName:"VLayout",getInitialState:function(){return{serialized:this.props.serialized}},propTypes:{width:t.PropTypes.number.isRequired,height:t.PropTypes.number.isRequired},render:function(){var e=this.props.children;return("VLayout"===e.type.displayName||"HLayout"===e.type.displayName)&&(e=i(e,{height:this.props.height,width:this.props.width,serialized:this.state.serialized})),t.createElement("div",{className:"layout"},e)}});
|
||||
1
lib/common/layout/v-layout.js
Normal file
1
lib/common/layout/v-layout.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";var t=function(t){return t&&t.__esModule?t["default"]:t},e=t(require("react")),n=t(require("./abstract-layout")),r=function(){return{getContainerClass:function(){return"v-child-container"},getLayoutClass:function(){return"layout"},getSize:function(){return this.props.height},getProps:function(t){return{width:this.props.width,height:t}},getEventPosition:function(t){return t.clientY},getHandleStyle:function(){return{width:"100%",height:this.handleSize,cursor:"ns-resize"}},displayName:"VLayout"}};module.exports=e.createClass(Object.assign(n(),r()));
|
||||
Reference in New Issue
Block a user