diff --git a/index.html b/index.html index 6ebb739..541ba45 100755 --- a/index.html +++ b/index.html @@ -172,14 +172,14 @@ var N = var Pivot = { Leaves:{}, - Root:N.Create({}), + Root:N.Create({Label:"All Pivots"}), Init(inRows) { Pivot.Leaves = inRows.map(r => N.Create({Row:r})); Pivot.Init = ()=>{}; }, - Pivot(inParent, inPivotIndicies, inSumIndicies, inDepth) + Pivot(inRoot, inParent, inPivotIndicies, inSumIndicies, inDepth) { //arguments: // - a Node with leaf Nodes temporarily stored in its Meta.Leaves @@ -226,6 +226,7 @@ var Pivot = { iterator = inLastBranch => { + N.Connect(inRoot, inLastBranch, "Terminal"); inLastBranch.Meta.Leaves.forEach( inLeaf => { // collect modifiers effecting leaves @@ -247,7 +248,7 @@ var Pivot = inLastBranch.ID.Walk = N.ID.Walk; modifiers.forEach( inModifier => N.Connect(inModifier, inLastBranch, "ModifyUp") ) - // also walk them up, but with a unique check connection + // also walk them up and connect, but with "check unique" enabled N.Walk( inNode=> { modifiers.forEach( inModifier => N.Connect(inModifier, inNode, "ModifyUp", true) ) @@ -263,7 +264,7 @@ var Pivot = } else { - iterator = child => Pivot.Pivot(child, inPivotIndicies, inSumIndicies, depth+1); + iterator = child => Pivot.Pivot(inRoot, child, inPivotIndicies, inSumIndicies, depth+1); } N.Step(inParent, "Hierarchy").forEach(iterator); return inParent; @@ -274,10 +275,11 @@ var Pivot = let pivotRoot = N.Create({Label:"Pivot Root", Leaves:Pivot.Leaves}); N.Connect(Pivot.Root, pivotRoot, "Pivot"); - return Pivot.Pivot(pivotRoot, inPivotIndicies, inSumIndicies); + return Pivot.Pivot(pivotRoot, pivotRoot, inPivotIndicies, inSumIndicies); }, Delete(inRoot) { + // disconnect modifiers let check = N.Step(inRoot, "Modifier"); if(check) { @@ -286,6 +288,14 @@ var Pivot = Pivot.Unmodify(check[0]); } } + + // disconnect terminal branches + N.Walk(()=>{}, inRoot, "Terminal", inNode=>{ + N.Disconnect(inNode, null, "Hierarchy"); + }); + + // disconnect from app + N.Disconnect(null, inRoot, "Pivot") }, Modify(inNode) { @@ -461,6 +471,7 @@ let ElModifiers = ({node}) => }; let ElRoot = props => { + let pivots = N.Step(Pivot.Root, "Pivot")||[]; return h("div", null, [ h("h3", null, "tree view"), h(ElModifiers, {node:Pivot.Root}), @@ -469,7 +480,7 @@ let ElRoot = props => AddNewPivot(); } }, "add new pivot"), - ...N.Step(Pivot.Root, "Pivot").map(pivot=>h(ElPivot, {pivot})) + pivots.map(pivot=>h(ElPivot, {pivot})) ]) }; let Render = () => render(h(ElRoot), document.querySelector("#app"));