/** _enyo.CardArranger_ is an enyo.Arranger that displays only one active control. The non-active controls are hidden with _setShowing(false)_. Transitions between arrangements are handled by fading from one control to the next. */ enyo.kind({ name: "enyo.CardArranger", kind: "Arranger", layoutClass: "enyo-arranger enyo-arranger-fit", calcArrangementDifference: function(inI0, inA0, inI1, inA1) { return this.containerBounds.width; }, arrange: function(inC, inName) { for (var i=0, c, b, v; c=inC[i]; i++) { v = (i == 0) ? 1 : 0; this.arrangeControl(c, {opacity: v}); } }, start: function() { this.inherited(arguments); var c$ = this.container.getPanels(); for (var i=0, c; c=c$[i]; i++) { var wasShowing=c.showing; c.setShowing(i == this.container.fromIndex || i == (this.container.toIndex)); if (c.showing && !wasShowing) { c.resized(); } } }, finish: function() { this.inherited(arguments); var c$ = this.container.getPanels(); for (var i=0, c; c=c$[i]; i++) { c.setShowing(i == this.container.toIndex); } }, destroy: function() { var c$ = this.container.getPanels(); for (var i=0, c; c=c$[i]; i++) { enyo.Arranger.opacifyControl(c, 1); if (!c.showing) { c.setShowing(true); } } this.inherited(arguments); } });