Files
konva/dist/kinetic-Container-current.min.js

2 lines
2.2 KiB
JavaScript

Kinetic.Container=function(a){this._containerInit(a)},Kinetic.Container.prototype={_containerInit:function(a){this.children=[],Kinetic.Node.call(this,a)},getChildren:function(){return this.children},removeChildren:function(){while(this.children.length>0)this.children[0].remove()},add:function(a){a._id=Kinetic.Global.idCounter++,a.index=this.children.length,a.parent=this,this.children.push(a);var b=a.getStage();if(!b)Kinetic.Global._addTempNode(a);else{b._addId(a),b._addName(a);var c=Kinetic.Global;c._pullNodes(b)}return this},get:function(a){var b=new Kinetic.Collection;if(a.charAt(0)==="#"){var c=this._getNodeById(a.slice(1));c&&b.push(c)}else if(a.charAt(0)==="."){var d=this._getNodesByName(a.slice(1));Kinetic.Collection.apply(b,d)}else{var e=[],f=this.getChildren();for(var g=0;g<f.length;g++)e=e.concat(f[g]._get(a));Kinetic.Collection.apply(b,e)}return b},_getNodeById:function(a){var b=this.getStage();return b.ids[a]!==undefined&&this.isAncestorOf(b.ids[a])?b.ids[a]:null},_getNodesByName:function(a){var b=this.getStage().names[a]||[];return this._getDescendants(b)},_get:function(a){var b=Kinetic.Node.prototype._get.call(this,a),c=this.getChildren();for(var d=0;d<c.length;d++)b=b.concat(c[d]._get(a));return b},toObject:function(){var a=Kinetic.Node.prototype.toObject.call(this);a.children=[];var b=this.getChildren();for(var c=0;c<b.length;c++){var d=b[c];a.children.push(d.toObject())}return a},_getDescendants:function(a){var b=[];for(var c=0;c<a.length;c++){var d=a[c];this.isAncestorOf(d)&&b.push(d)}return b},isAncestorOf:function(a){var b=a.getParent();while(b){if(b._id===this._id)return!0;b=b.getParent()}return!1},clone:function(a){var b=Kinetic.Node.prototype.clone.call(this,a);for(var c in this.children)b.add(this.children[c].clone());return b},getIntersections:function(){var a=Kinetic.Type._getXY(Array.prototype.slice.call(arguments)),b=[],c=this.get("Shape");for(var d=0;d<c.length;d++){var e=c[d];e.isVisible()&&e.intersects(a)&&b.push(e)}return b},_setChildrenIndices:function(){for(var a=0;a<this.children.length;a++)this.children[a].index=a},draw:function(a){if(Kinetic.Node.prototype._shouldDraw.call(this,a)){var b=this.children,c=b.length;for(var d=0;d<c;d++)b[d].draw(a)}}},Kinetic.Global.extend(Kinetic.Container,Kinetic.Node);