KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12
System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64
User : ServerPC ( 0)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  C:/Windows/SystemApps/MicrosoftWindows.Client.OOBE_cw5n1h2txyewy/Microsoft.Winjs-reduced/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : C:/Windows/SystemApps/MicrosoftWindows.Client.OOBE_cw5n1h2txyewy/Microsoft.Winjs-reduced/js/ui.js
/*! Copyright (c) Microsoft Corporation.  All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information. */
!function(){var a="undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:{};!function(b){"function"==typeof define&&define.amd?define(["./base"],b):(a.msWriteProfilerMark&&msWriteProfilerMark("WinJS.4.4 4.4.4.winjs.2018.4.19 ui.js,StartTM"),b("object"==typeof exports&&"string"!=typeof exports.nodeName?require("./base"):a.WinJS),a.msWriteProfilerMark&&msWriteProfilerMark("WinJS.4.4 4.4.4.winjs.2018.4.19 ui.js,StopTM"))}(function(b){var c=b.Utilities._require,d=b.Utilities._define;d("WinJS/_Accents",["require","exports","./Core/_Global","./Core/_WinRT","./Core/_Base","./Core/_BaseUtils","./Utilities/_ElementUtilities"],function(a,b,c,d,e,f,g){function h(a,b){t.push({selector:a,props:b}),i()}function i(){0!==t.length&&-1===u&&(u=f._setImmediate(function(){u=-1,m();var a=s?o.lightThemeSelector:o.darkThemeSelector,b=o.hoverSelector+" "+a,d=c.document.createElement("style");d.id=o.accentStyleId,d.textContent=t.map(function(c){var d="  "+c.props.map(function(a){return a.name+": "+r[a.value]+";"}).join("\n  "),e=c.selector.split(",").map(function(a){return l(a)}),f=e.join(",\n"),g=f+" {\n"+d+"\n}";if(c.props.some(function(a){return 0!==a.value})){var h="  "+c.props.map(function(a){return a.name+": "+r[a.value?a.value+3:a.value]+";"}).join("\n  "),i=[];e.forEach(function(c){if(-1!==c.indexOf(o.hoverSelector)&&-1===c.indexOf(b)){i.push(c.replace(o.hoverSelector,b));var d=c.replace(o.hoverSelector,"").trim();-1!==p.indexOf(d[0])&&i.push(c.replace(o.hoverSelector+" ",b))}else i.push(a+" "+c),-1!==p.indexOf(c[0])&&i.push(a+c);g+="\n"+i.join(",\n")+" {\n"+h+"\n}"})}return g}).join("\n"),c.document.head.appendChild(d)}))}function j(){var a=(d.Windows.UI.ViewManagement.UIColorType,q.getColorValue(d.Windows.UI.ViewManagement.UIColorType.accent)),b=k(a,1);r[0]!==b&&(r.length=0,r.push(b,k(a,s?.6:.4),k(a,s?.8:.6),k(a,s?.9:.7),k(a,s?.4:.6),k(a,s?.6:.8),k(a,s?.7:.9)),i())}function k(a,b){return"rgba("+a.r+","+a.g+","+a.b+","+b+")"}function l(a){return a.replace(/  /g," ").replace(/  /g," ").trim()}function m(){var a=c.document.head.querySelector("#"+o.accentStyleId);a&&a.parentNode.removeChild(a)}function n(){t.length=0,m()}var o={accentStyleId:"WinJSAccentsStyle",themeDetectionTag:"winjs-themedetection-tag",hoverSelector:"html.win-hoverable",lightThemeSelector:".win-ui-light",darkThemeSelector:".win-ui-dark"},p=[".","#",":"],q=null,r=[],s=!1,t=[],u=-1;!function(a){a[a.accent=0]="accent",a[a.listSelectRest=1]="listSelectRest",a[a.listSelectHover=2]="listSelectHover",a[a.listSelectPress=3]="listSelectPress",a[a._listSelectRestInverse=4]="_listSelectRestInverse",a[a._listSelectHoverInverse=5]="_listSelectHoverInverse",a[a._listSelectPressInverse=6]="_listSelectPressInverse"}(b.ColorTypes||(b.ColorTypes={}));var v=b.ColorTypes;b.createAccentRule=h;var w=c.document.createElement(o.themeDetectionTag);c.document.head.appendChild(w);var x=g._getComputedStyle(w);s="0"===x.opacity,w.parentElement.removeChild(w);try{q=new d.Windows.UI.ViewManagement.UISettings,q.addEventListener("colorvalueschanged",j),j()}catch(a){r.push("rgb(0, 120, 215)","rgba(0, 120, 215, "+(s?"0.6":"0.4")+")","rgba(0, 120, 215, "+(s?"0.8":"0.6")+")","rgba(0, 120, 215, "+(s?"0.9":"0.7")+")","rgba(0, 120, 215, "+(s?"0.4":"0.6")+")","rgba(0, 120, 215, "+(s?"0.6":"0.8")+")","rgba(0, 120, 215, "+(s?"0.7":"0.9")+")")}var y={ColorTypes:v,createAccentRule:h,_colors:r,_reset:n,_isDarkTheme:s};e.Namespace.define("WinJS.UI._Accents",y)}),d("require-style",{load:function(a){throw new Error("Dynamic load not allowed: "+a)}}),d("require-style!less/styles-intrinsic",[],function(){}),d("require-style!less/colors-intrinsic",[],function(){}),d("WinJS/Controls/IntrinsicControls",["../Utilities/_Hoverable","../_Accents","require-style!less/styles-intrinsic","require-style!less/colors-intrinsic"],function(a,b){"use strict";b.createAccentRule(".win-link,         .win-progress-bar,         .win-progress-ring,         .win-ring",[{name:"color",value:b.ColorTypes.accent}]),b.createAccentRule("::selection,         .win-button.win-button-primary,         .win-dropdown option:checked,         select[multiple].win-dropdown option:checked",[{name:"background-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-textbox:focus,         .win-textarea:focus,         .win-textbox:focus:hover,         .win-textarea:focus:hover",[{name:"border-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-textbox::-ms-clear:hover:not(:active),         .win-textbox::-ms-reveal:hover:not(:active)",[{name:"color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-checkbox:checked::-ms-check,         .win-textbox::-ms-clear:active,         .win-textbox::-ms-reveal:active",[{name:"background-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-progress-bar::-webkit-progress-value,         .win-progress-ring::-webkit-progress-value,         .win-ring::-webkit-progress-value",[{name:"background-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-progress-bar:not(:indeterminate)::-moz-progress-bar,         .win-progress-ring:not(:indeterminate)::-moz-progress-bar,         .win-ring:not(:indeterminate)::-moz-progress-bar",[{name:"background-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-checkbox:indeterminate::-ms-check,         .win-checkbox:hover:indeterminate::-ms-check,         .win-radio:checked::-ms-check",[{name:"border-color",value:b.ColorTypes.accent}]),b.createAccentRule(".win-slider::-ms-thumb,         .win-slider::-ms-fill-lower",[{name:"background",value:b.ColorTypes.accent}]),b.createAccentRule(".win-slider::-webkit-slider-thumb",[{name:"background",value:b.ColorTypes.accent}]),b.createAccentRule(".win-slider::-moz-range-thumb",[{name:"background",value:b.ColorTypes.accent}])}),d("WinJS/Controls/ElementResizeInstrument/_ElementResizeInstrument",["require","exports","../../Core/_BaseUtils","../../Core/_Base","../../Core/_Global","../../Core/_Log","../../Core/_ErrorFromName","../../Core/_Events","../../Promise","../../Utilities/_ElementUtilities"],function(a,b,c,d,e,f,g,h,i,j){"use strict";var k="display: block;position:absolute;top: 0;left: 0;height: 100%;width: 100%;overflow: hidden;pointer-events: none;z-index: -1;",l="win-resizeinstrument",m="about:blank",n={resize:"resize",_ready:"_ready"},o="resize",p="msHighContrastAdjust"in document.documentElement.style,q=function(){function a(){var a=this;this._disposed=!1,this._elementLoaded=!1,this._running=!1,this._objectWindowResizeHandlerBound=this._objectWindowResizeHandler.bind(this);var b=e.document.createElement("OBJECT");b.setAttribute("style",k),p?b.style.visibility="hidden":b.data=m,b.type="text/html",b.winControl=this,j.addClass(b,l),j.addClass(b,"win-disposable"),this._element=b,this._elementLoadPromise=new i(function(c){b.onload=function(){a._disposed||(a._elementLoaded=!0,a._objWindow.addEventListener(o,a._objectWindowResizeHandlerBound),c())}})}return Object.defineProperty(a.prototype,"element",{get:function(){return this._element},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_objWindow",{get:function(){return this._elementLoaded&&this._element.contentDocument&&this._element.contentDocument.defaultView||null},enumerable:!0,configurable:!0}),a.prototype.addedToDom=function(){var a=this;if(!this._disposed){var b=this.element;if(!e.document.body.contains(b))throw new g("WinJS.UI._ElementResizeInstrument","ElementResizeInstrument initialization failed");f.log&&"static"===j._getComputedStyle(b.parentElement).position&&f.log("_ElementResizeInstrument can only detect size changes that are made to it's nearest positioned ancestor. Its parent element is not currently positioned."),!this._elementLoaded&&p&&(b.data="about:blank"),this._elementLoadPromise.then(function(){a._running=!0,a.dispatchEvent(n._ready,null);var b=i.timeout(50),c=function(){a.removeEventListener(n.resize,c),b.cancel()};a.addEventListener(n.resize,c),b.then(function(){a._objectWindowResizeHandler()})})}},a.prototype.dispose=function(){this._disposed||(this._disposed=!0,this._elementLoadPromise.cancel(),this._objWindow&&this._objWindow.removeEventListener.call(this._objWindow,o,this._objectWindowResizeHandlerBound),this._running=!1)},a.prototype.addEventListener=function(a,b,c){},a.prototype.dispatchEvent=function(a,b){return!1},a.prototype.removeEventListener=function(a,b,c){},a.prototype._objectWindowResizeHandler=function(){var a=this;this._running&&this._batchResizeEvents(function(){a._fireResizeEvent()})},a.prototype._batchResizeEvents=function(a){this._pendingResizeAnimationFrameId&&c._cancelAnimationFrame(this._pendingResizeAnimationFrameId),this._pendingResizeAnimationFrameId=c._requestAnimationFrame(function(){a()})},a.prototype._fireResizeEvent=function(){this._disposed||this.dispatchEvent(n.resize,null)},a.EventNames=n,a}();b._ElementResizeInstrument=q,d.Class.mix(q,h.eventMixin)}),d("WinJS/Controls/ElementResizeInstrument",["require","exports"],function(a,b){function c(){return d||a(["./ElementResizeInstrument/_ElementResizeInstrument"],function(a){d=a}),d._ElementResizeInstrument}var d=null;return Object.create({},{_ElementResizeInstrument:{get:function(){return c()}}})}),d("WinJS/Controls/ItemContainer/_Constants",["exports","../../Core/_Base"],function(a,b){"use strict";var c={};c._listViewClass="win-listview",c._viewportClass="win-viewport",c._rtlListViewClass="win-rtl",c._horizontalClass="win-horizontal",c._verticalClass="win-vertical",c._scrollableClass="win-surface",c._itemsContainerClass="win-itemscontainer",c._listHeaderContainerClass="win-headercontainer",c._listFooterContainerClass="win-footercontainer",c._padderClass="win-itemscontainer-padder",c._proxyClass="_win-proxy",c._itemClass="win-item",c._itemBoxClass="win-itembox",c._itemsBlockClass="win-itemsblock",c._containerClass="win-container",c._containerEvenClass="win-container-even",c._containerOddClass="win-container-odd",c._backdropClass="win-backdrop",c._footprintClass="win-footprint",c._groupsClass="win-groups",c._selectedClass="win-selected",c._selectionBorderClass="win-selectionborder",c._selectionBackgroundClass="win-selectionbackground",c._selectionCheckmarkClass="win-selectioncheckmark",c._selectionCheckmarkBackgroundClass="win-selectioncheckmarkbackground",c._pressedClass="win-pressed",c._headerClass="win-groupheader",c._headerContainerClass="win-groupheadercontainer",c._groupLeaderClass="win-groupleader",c._progressClass="win-progress",c._revealedClass="win-revealed",c._itemFocusClass="win-focused",c._itemFocusOutlineClass="win-focusedoutline",c._zoomingXClass="win-zooming-x",c._zoomingYClass="win-zooming-y",c._listLayoutClass="win-listlayout",c._gridLayoutClass="win-gridlayout",c._headerPositionTopClass="win-headerpositiontop",c._headerPositionLeftClass="win-headerpositionleft",c._structuralNodesClass="win-structuralnodes",c._singleItemsBlockClass="win-single-itemsblock",c._uniformGridLayoutClass="win-uniformgridlayout",c._uniformListLayoutClass="win-uniformlistlayout",c._cellSpanningGridLayoutClass="win-cellspanninggridlayout",c._laidOutClass="win-laidout",c._nonDraggableClass="win-nondraggable",c._nonSelectableClass="win-nonselectable",c._dragOverClass="win-dragover",c._dragSourceClass="win-dragsource",c._clipClass="win-clip",c._selectionModeClass="win-selectionmode",c._noCSSGrid="win-nocssgrid",c._hidingSelectionMode="win-hidingselectionmode",c._hidingSelectionModeAnimationTimeout=250,c._INVALID_INDEX=-1,c._UNINITIALIZED=-1,c._LEFT_MSPOINTER_BUTTON=0,c._RIGHT_MSPOINTER_BUTTON=2,c._TAP_END_THRESHOLD=10,c._DEFAULT_PAGES_TO_LOAD=5,c._DEFAULT_PAGE_LOAD_THRESHOLD=2,c._MIN_AUTOSCROLL_RATE=150,c._MAX_AUTOSCROLL_RATE=1500,c._AUTOSCROLL_THRESHOLD=100,c._AUTOSCROLL_DELAY=50,c._DEFERRED_ACTION=250,c._DEFERRED_SCROLL_END=250,c._SELECTION_CHECKMARK="",c._LISTVIEW_PROGRESS_DELAY=2e3;var d={uninitialized:0,low:1,medium:2,high:3},e={rebuild:0,remeasure:1,relayout:2,realize:3};c._ScrollToPriority=d,c._ViewChange=e,b.Namespace._moduleDefine(a,"WinJS.UI",c)}),d("WinJS/Controls/ItemContainer/_ItemEventsHandler",["exports","../../Core/_Global","../../Core/_WinRT","../../Core/_Base","../../Core/_BaseUtils","../../Core/_WriteProfilerMark","../../Animations","../../Animations/_TransitionAnimation","../../Promise","../../Utilities/_ElementUtilities","../../Utilities/_UI","./_Constants"],function(a,b,c,d,e,f,g,h,i,j,k,l){"use strict";var m=e._browserStyleEquivalents.transform;d.Namespace._moduleDefine(a,"WinJS.UI",{_ItemEventsHandler:d.Namespace._lazy(function(){function a(a,c){var d=b.document.createElement("div");return d.className=a,c||d.setAttribute("aria-hidden",!0),d}var g=j._MSPointerEvent.MSPOINTER_TYPE_TOUCH||"touch",h=d.Class.define(function(a){this._site=a,this._work=[],this._animations={}},{dispose:function(){this._disposed||(this._disposed=!0,j._removeEventListener(b,"pointerup",this._resetPointerDownStateBound),j._removeEventListener(b,"pointercancel",this._resetPointerDownStateBound))},onPointerDown:function(a){f("WinJS.UI._ItemEventsHandler:MSPointerDown,StartTM");var d,h,i=this._site,m=a.pointerType===g;if(i.pressedElement=a.target,c.Windows.UI.Input.PointerPoint){var n=this._getCurrentPoint(a),o=n.properties;m||o.isInverted||o.isEraser||o.isMiddleButtonPressed?d=h=!1:(h=o.isRightButtonPressed,d=!h&&o.isLeftButtonPressed)}else d=a.button===l._LEFT_MSPOINTER_BUTTON,h=a.button===l._RIGHT_MSPOINTER_BUTTON;this._DragStartBound=this._DragStartBound||this.onDragStart.bind(this),this._PointerEnterBound=this._PointerEnterBound||this.onPointerEnter.bind(this),this._PointerLeaveBound=this._PointerLeaveBound||this.onPointerLeave.bind(this);var p=this._isInteractive(a.target),q=i.indexForItemElement(a.target),r=i.indexForHeaderElement(a.target),s=!p&&q!==l._INVALID_INDEX;if((m||d)&&this._site.pressedEntity.index===l._INVALID_INDEX&&!p&&(r===l._INVALID_INDEX?this._site.pressedEntity={type:k.ObjectType.item,index:q}:this._site.pressedEntity={type:k.ObjectType.groupHeader,index:r},this._site.pressedEntity.index!==l._INVALID_INDEX)){this._site.pressedPosition=j._getCursorPos(a);var t=i.verifySelectionAllowed(this._site.pressedEntity);this._canSelect=t.canSelect,this._canTapSelect=t.canTapSelect,this._site.pressedEntity.type===k.ObjectType.item?(this._site.pressedItemBox=i.itemBoxAtIndex(this._site.pressedEntity.index),this._site.pressedContainer=i.containerAtIndex(this._site.pressedEntity.index),this._site.animatedElement=this._site.pressedContainer,this._site.pressedHeader=null,this._togglePressed(!0,a),this._site.pressedContainer.addEventListener("dragstart",this._DragStartBound),m||(j._addEventListener(this._site.pressedContainer,"pointerenter",this._PointerEnterBound,!1),j._addEventListener(this._site.pressedContainer,"pointerleave",this._PointerLeaveBound,!1))):(this._site.pressedHeader=this._site.headerFromElement(a.target),e.isPhone?(this._site.animatedElement=this._site.pressedHeader,this._togglePressed(!0,a)):(this._site.pressedItemBox=null,this._site.pressedContainer=null,this._site.animatedElement=null)),this._resetPointerDownStateBound||(this._resetPointerDownStateBound=this._resetPointerDownStateForPointerId.bind(this)),m||(j._addEventListener(b,"pointerup",this._resetPointerDownStateBound,!1),j._addEventListener(b,"pointercancel",this._resetPointerDownStateBound,!1)),this._pointerId=a.pointerId,this._pointerRightButton=h}if(s&&m)try{j._setPointerCapture(i.canvasProxy,a.pointerId)}catch(a){return void f("WinJS.UI._ItemEventsHandler:MSPointerDown,StopTM")}this._site.pressedEntity.type===k.ObjectType.item&&this._selectionAllowed()&&this._multiSelection()&&this._site.pressedEntity.index!==l._INVALID_INDEX&&i.selection._getFocused().index!==l._INVALID_INDEX&&i.selection._pivot===l._INVALID_INDEX&&(i.selection._pivot=i.selection._getFocused().index),f("WinJS.UI._ItemEventsHandler:MSPointerDown,StopTM")},onPointerEnter:function(a){this._site.pressedContainer&&this._pointerId===a.pointerId&&this._togglePressed(!0,a)},onPointerLeave:function(a){this._site.pressedContainer&&this._pointerId===a.pointerId&&this._togglePressed(!1,a)},onDragStart:function(){this._resetPressedContainer()},_resetPressedContainer:function(){(this._site.pressedContainer||this._site.pressedHeader)&&this._site.animatedElement&&(this._togglePressed(!1),this._site.pressedContainer&&(this._site.pressedContainer.style[m.scriptName]="",this._site.pressedContainer.removeEventListener("dragstart",this._DragStartBound),j._removeEventListener(this._site.pressedContainer,"pointerenter",this._PointerEnterBound,!1),j._removeEventListener(this._site.pressedContainer,"pointerleave",this._PointerLeaveBound,!1)))},onClick:function(a){if(!this._skipClick){var b={type:k.ObjectType.item,index:this._site.indexForItemElement(a.target)};if(b.index===l._INVALID_INDEX&&(b.index=this._site.indexForHeaderElement(a.target),b.index!==l._INVALID_INDEX&&(b.type=k.ObjectType.groupHeader)),b.index!==l._INVALID_INDEX&&(j.hasClass(a.target,this._site.accessibleItemClass)||j.hasClass(a.target,l._headerClass))){this._site.verifySelectionAllowed(b).canTapSelect&&this.handleTap(b),this._site.fireInvokeEvent(b,a.target)}}},onPointerUp:function(a){f("WinJS.UI._ItemEventsHandler:MSPointerUp,StartTM");var b=this._site;this._skipClick=!0;var c=this;e._yieldForEvents(function(){c._skipClick=!1});try{j._releasePointerCapture(b.canvasProxy,a.pointerId)}catch(a){}var d=a.pointerType===g,h=this._releasedElement(a),i=b.indexForItemElement(h),m=h&&j.hasClass(h,l._headerContainerClass)?b.indexForHeaderElement(b.pressedHeader):b.indexForHeaderElement(h);if(this._pointerId===a.pointerId){var n;if(n=m===l._INVALID_INDEX?{type:k.ObjectType.item,index:i}:{type:k.ObjectType.groupHeader,index:m},this._resetPressedContainer(),this._site.pressedEntity.type===k.ObjectType.item&&n.type===k.ObjectType.item&&this._site.pressedContainer&&this._site.pressedEntity.index===n.index)if(a.shiftKey||(b.selection._pivot=l._INVALID_INDEX),a.shiftKey){if(this._selectionAllowed()&&this._multiSelection()&&b.selection._pivot!==l._INVALID_INDEX){var o=Math.min(this._site.pressedEntity.index,b.selection._pivot),p=Math.max(this._site.pressedEntity.index,b.selection._pivot),q=this._pointerRightButton||a.ctrlKey||b.tapBehavior===k.TapBehavior.toggleSelect;b.selectRange(o,p,q)}}else a.ctrlKey&&this.toggleSelectionIfAllowed(this._site.pressedEntity.index);if(this._site.pressedHeader||this._site.pressedContainer){var r=j._getCursorPos(a),s=Math.abs(r.left-this._site.pressedPosition.left)<=l._TAP_END_THRESHOLD&&Math.abs(r.top-this._site.pressedPosition.top)<=l._TAP_END_THRESHOLD;this._pointerRightButton||a.ctrlKey||a.shiftKey||!(d&&s||!d&&this._site.pressedEntity.index===n.index&&this._site.pressedEntity.type===n.type)||(n.type===k.ObjectType.groupHeader?(this._site.pressedHeader=b.headerAtIndex(n.index),this._site.pressedItemBox=null,this._site.pressedContainer=null):(this._site.pressedItemBox=b.itemBoxAtIndex(n.index),this._site.pressedContainer=b.containerAtIndex(n.index),this._site.pressedHeader=null),this._canTapSelect&&this.handleTap(this._site.pressedEntity),this._site.fireInvokeEvent(this._site.pressedEntity,this._site.pressedItemBox||this._site.pressedHeader))}this._site.pressedEntity.index!==l._INVALID_INDEX&&b.changeFocus(this._site.pressedEntity,!0,!1,!0),this.resetPointerDownState()}f("WinJS.UI._ItemEventsHandler:MSPointerUp,StopTM")},onPointerCancel:function(a){this._pointerId===a.pointerId&&(f("WinJS.UI._ItemEventsHandler:MSPointerCancel,info"),this.resetPointerDownState())},onLostPointerCapture:function(a){this._pointerId===a.pointerId&&(f("WinJS.UI._ItemEventsHandler:MSLostPointerCapture,info"),this.resetPointerDownState())},onContextMenu:function(a){this._shouldSuppressContextMenu(a.target)&&a.preventDefault()},onMSHoldVisual:function(a){this._shouldSuppressContextMenu(a.target)&&a.preventDefault()},onDataChanged:function(){this.resetPointerDownState()},toggleSelectionIfAllowed:function(a){this._selectionAllowed(a)&&this._toggleItemSelection(a)},handleTap:function(a){if(a.type!==k.ObjectType.groupHeader){var b=this._site,c=b.selection;this._selectionAllowed(a.index)&&this._selectOnTap()&&(b.tapBehavior===k.TapBehavior.toggleSelect?this._toggleItemSelection(a.index):b.selectionMode!==k.SelectionMode.multi&&c._isIncluded(a.index)||c.set(a.index))}},_toggleItemSelection:function(a){var b=this._site,c=b.selection,d=c._isIncluded(a);b.selectionMode===k.SelectionMode.single?d?c.clear():c.set(a):d?c.remove(a):c.add(a)},_getCurrentPoint:function(a){return c.Windows.UI.Input.PointerPoint.getCurrentPoint(a.pointerId)},_containedInElementWithClass:function(a,b){if(a.parentNode)for(var c=a.parentNode.querySelectorAll("."+b+", ."+b+" *"),d=0,e=c.length;d<e;d++)if(c[d]===a)return!0;return!1},_isSelected:function(a){return this._site.selection._isIncluded(a)},_isInteractive:function(a){return this._containedInElementWithClass(a,"win-interactive")},_shouldSuppressContextMenu:function(a){var b=this._site.containerFromElement(a);return this._selectionAllowed()&&b&&!this._isInteractive(a)},_togglePressed:function(a,b){var c=this._site.pressedEntity.type===k.ObjectType.groupHeader;!c&&j.hasClass(this._site.pressedItemBox,l._nonSelectableClass)||this._staticMode(c)||(a?j.addClass(this._site.animatedElement,l._pressedClass):j.removeClass(this._site.animatedElement,l._pressedClass))},_resetPointerDownStateForPointerId:function(a){this._pointerId===a.pointerId&&this.resetPointerDownState()},resetPointerDownState:function(){this._site.pressedElement=null,this._resetPointerDownStateBound&&(j._removeEventListener(b,"pointerup",this._resetPointerDownStateBound),j._removeEventListener(b,"pointercancel",this._resetPointerDownStateBound)),this._resetPressedContainer(),this._site.pressedContainer=null,this._site.animatedElement=null,this._site.pressedHeader=null,this._site.pressedItemBox=null,this._site.pressedEntity={type:k.ObjectType.item,index:l._INVALID_INDEX},this._pointerId=null},_releasedElement:function(a){return b.document.elementFromPoint(a.clientX,a.clientY)},_applyUIInBatches:function(a){function b(){c._work.length>0?(c._flushUIBatches(),c._paintedThisFrame=e._requestAnimationFrame(b.bind(c))):c._paintedThisFrame=null}var c=this;this._work.push(a),this._paintedThisFrame||b()},_flushUIBatches:function(){if(this._work.length>0){var a=this._work;this._work=[];for(var b=0;b<a.length;b++)a[b]()}},_selectionAllowed:function(a){var b=void 0!==a?this._site.itemAtIndex(a):null;return!(b&&j.hasClass(b,l._nonSelectableClass))&&this._site.selectionMode!==k.SelectionMode.none},_multiSelection:function(){return this._site.selectionMode===k.SelectionMode.multi},_selectOnTap:function(){return this._site.tapBehavior===k.TapBehavior.toggleSelect||this._site.tapBehavior===k.TapBehavior.directSelect},_staticMode:function(a){return a?this._site.headerTapBehavior===k.GroupHeaderTapBehavior.none:this._site.tapBehavior===k.TapBehavior.none&&this._site.selectionMode===k.SelectionMode.none}},{setAriaSelected:function(a,b){b!==("true"===a.getAttribute("aria-selected"))&&a.setAttribute("aria-selected",b)},renderSelection:function(b,c,d,e,f){if(!h._selectionTemplate){h._selectionTemplate=[],h._selectionTemplate.push(a(l._selectionBackgroundClass)),h._selectionTemplate.push(a(l._selectionBorderClass)),h._selectionTemplate.push(a(l._selectionCheckmarkBackgroundClass));var g=a(l._selectionCheckmarkClass);g.textContent=l._SELECTION_CHECKMARK,h._selectionTemplate.push(g)}if(d!==j._isSelectionRendered(b)){if(d){b.insertBefore(h._selectionTemplate[0].cloneNode(!0),b.firstElementChild);for(var i=1,k=h._selectionTemplate.length;i<k;i++)b.appendChild(h._selectionTemplate[i].cloneNode(!0))}else for(var m=b.querySelectorAll(j._selectionPartsSelector),i=0,k=m.length;i<k;i++)b.removeChild(m[i]);j[d?"addClass":"removeClass"](b,l._selectedClass),f&&j[d?"addClass":"removeClass"](f,l._selectedClass)}e&&h.setAriaSelected(c,d)}});return h})})}),d("WinJS/Controls/ListView/_SelectionManager",["exports","../../Core/_Global","../../Core/_Base","../../Promise","../../_Signal","../../Utilities/_UI","../ItemContainer/_Constants"],function(a,b,c,d,e,f,g){"use strict";c.Namespace._moduleDefine(a,"WinJS.UI",{_ItemSet:c.Namespace._lazy(function(){var b=c.Class.define(function(a,b,c){this._listView=a,this._ranges=b,this._itemsCount=c});return b.prototype={getRanges:function(){for(var a=[],b=0,c=this._ranges.length;b<c;b++){var d=this._ranges[b];a.push({firstIndex:d.firstIndex,lastIndex:d.lastIndex,firstKey:d.firstKey,lastKey:d.lastKey})}return a},getItems:function(){return a.getItemsFromRanges(this._listView._itemsManager.dataSource,this._ranges)},isEverything:function(){return this.count()===this._itemsCount},count:function(){for(var a=0,b=0,c=this._ranges.length;b<c;b++){var d=this._ranges[b];a+=d.lastIndex-d.firstIndex+1}return a},getIndices:function(){for(var a=[],b=0,c=this._ranges.length;b<c;b++)for(var d=this._ranges[b],e=d.firstIndex;e<=d.lastIndex;e++)a.push(e);return a}},b}),getItemsFromRanges:function(a,b){function c(){for(var a=[],c=0,e=b.length;c<e;c++)for(var f=b[c],g=f.firstIndex;g<=f.lastIndex;g++)a.push(g);return d.wrap(a)}var e=a.createListBinding(),f=[];return c().then(function(a){for(var b=0;b<a.length;b++)f.push(e.fromIndex(a[b]));return d.join(f).then(function(a){return e.release(),a})})},_Selection:c.Namespace._lazy(function(){function b(a){return a&&0===a.firstIndex&&a.lastIndex===Number.MAX_VALUE}return c.Class.derive(a._ItemSet,function(a,b){this._listView=a,this._itemsCount=-1,this._ranges=[],b&&this.set(b)},{clear:function(){return this._releaseRanges(this._ranges),this._ranges=[],d.wrap()},set:function(a){if(b(a))return this.selectAll();this._releaseRanges(this._ranges),this._ranges=[];var c=this;return this._execute("_set",a).then(function(){return c._ranges.sort(function(a,b){return a.firstIndex-b.firstIndex}),c._ensureKeys()}).then(function(){return c._ensureCount()})},add:function(a){if(b(a))return this.selectAll();var c=this;return this._execute("_add",a).then(function(){return c._ensureKeys()}).then(function(){return c._ensureCount()})},remove:function(a){var b=this;return this._execute("_remove",a).then(function(){return b._ensureKeys()})},selectAll:function(){var a=this;return a._ensureCount().then(function(){if(a._itemsCount){var b={firstIndex:0,lastIndex:a._itemsCount-1};return a._retainRange(b),a._releaseRanges(a._ranges),a._ranges=[b],a._ensureKeys()}})},_execute:function(a,b){function c(a,b,c){var d={};return d["first"+a]=b,d["last"+a]=c,d}function e(b){var c=f._getListBinding(),e=d.join([c.fromKey(b.firstKey),c.fromKey(b.lastKey)]).then(function(c){return c[0]&&c[1]&&(b.firstIndex=c[0].index,b.lastIndex=c[1].index,f[a](b)),b});i.push(e)}for(var f=this,g=!!f._getListBinding().fromKey,h=Array.isArray(b)?b:[b],i=[d.wrap()],j=0,k=h.length;j<k;j++){var l=h[j];"number"==typeof l?this[a](c("Index",l,l)):l&&(g&&void 0!==l.key?e(c("Key",l.key,l.key)):g&&void 0!==l.firstKey&&void 0!==l.lastKey?e(c("Key",l.firstKey,l.lastKey)):void 0!==l.index&&"number"==typeof l.index?this[a](c("Index",l.index,l.index)):void 0!==l.firstIndex&&void 0!==l.lastIndex&&"number"==typeof l.firstIndex&&"number"==typeof l.lastIndex&&this[a](c("Index",l.firstIndex,l.lastIndex)))}return d.join(i)},_set:function(a){this._retainRange(a),this._ranges.push(a)},_add:function(a){for(var b,c,d,e=this,f=null,g=function(a,b){b.lastIndex>a.lastIndex&&(a.lastIndex=b.lastIndex,a.lastKey=b.lastKey,a.lastPromise&&a.lastPromise.release(),a.lastPromise=e._getListBinding().fromIndex(a.lastIndex).retain())},h=0,i=this._ranges.length;h<i;h++){if(b=this._ranges[h],a.firstIndex<b.firstIndex){d=f&&a.firstIndex<f.lastIndex+1,d?(c=h-1,g(f,a)):(this._insertRange(h,a),c=h);break}if(a.firstIndex===b.firstIndex){g(b,a),c=h;break}f=b}if(void 0===c){var j=this._ranges.length?this._ranges[this._ranges.length-1]:null;j&&a.firstIndex<j.lastIndex+1?g(j,a):(this._retainRange(a),this._ranges.push(a))}else{for(f=null,h=c+1,i=this._ranges.length;h<i;h++){if(b=this._ranges[h],a.lastIndex<b.firstIndex){d=f&&f.lastIndex>a.lastIndex,d&&g(this._ranges[c],f),this._removeRanges(c+1,h-c-1);break}if(a.lastIndex===b.firstIndex){g(this._ranges[c],b),this._removeRanges(c+1,h-c);break}f=b}h>=i&&(g(this._ranges[c],this._ranges[i-1]),this._removeRanges(c+1,i-c-1))}},_remove:function(a){function b(a){return c._getListBinding().fromIndex(a).retain()}for(var c=this,d=[],e=0,f=this._ranges.length;e<f;e++){var g=this._ranges[e];g.lastIndex<a.firstIndex||g.firstIndex>a.lastIndex?d.push(g):g.firstIndex<a.firstIndex&&g.lastIndex>=a.firstIndex&&g.lastIndex<=a.lastIndex?(d.push({firstIndex:g.firstIndex,firstKey:g.firstKey,firstPromise:g.firstPromise,lastIndex:a.firstIndex-1,lastPromise:b(a.firstIndex-1)}),g.lastPromise.release()):g.lastIndex>a.lastIndex&&g.firstIndex>=a.firstIndex&&g.firstIndex<=a.lastIndex?(d.push({firstIndex:a.lastIndex+1,firstPromise:b(a.lastIndex+1),lastIndex:g.lastIndex,lastKey:g.lastKey,lastPromise:g.lastPromise}),g.firstPromise.release()):g.firstIndex<a.firstIndex&&g.lastIndex>a.lastIndex?(d.push({firstIndex:g.firstIndex,firstKey:g.firstKey,firstPromise:g.firstPromise,lastIndex:a.firstIndex-1,lastPromise:b(a.firstIndex-1)}),d.push({firstIndex:a.lastIndex+1,firstPromise:b(a.lastIndex+1),lastIndex:g.lastIndex,lastKey:g.lastKey,lastPromise:g.lastPromise})):(g.firstPromise.release(),g.lastPromise.release())}this._ranges=d},_ensureKeys:function(){for(var a=[d.wrap()],b=this,c=function(a,b){var c=a+"Key";if(b[c])return d.wrap();var e=b[a+"Promise"];return e.then(function(a){a&&(b[c]=a.key)}),e},e=0,f=this._ranges.length;e<f;e++){var g=this._ranges[e];a.push(c("first",g)),a.push(c("last",g))}return d.join(a).then(function(){b._ranges=b._ranges.filter(function(a){return a.firstKey&&a.lastKey})}),d.join(a)},_mergeRanges:function(a,b){a.lastIndex=b.lastIndex,a.lastKey=b.lastKey},_isIncluded:function(a){if(this.isEverything())return!0;for(var b=0,c=this._ranges.length;b<c;b++){var d=this._ranges[b];if(d.firstIndex<=a&&a<=d.lastIndex)return!0}return!1},_ensureCount:function(){var a=this;return this._listView._itemsCount().then(function(b){a._itemsCount=b})},_insertRange:function(a,b){this._retainRange(b),this._ranges.splice(a,0,b)},_removeRanges:function(a,b){for(var c=0;c<b;c++)this._releaseRange(this._ranges[a+c]);this._ranges.splice(a,b)},_retainRange:function(a){a.firstPromise||(a.firstPromise=this._getListBinding().fromIndex(a.firstIndex).retain()),a.lastPromise||(a.lastPromise=this._getListBinding().fromIndex(a.lastIndex).retain())},_retainRanges:function(){for(var a=0,b=this._ranges.length;a<b;a++)this._retainRange(this._ranges[a])},_releaseRange:function(a){a.firstPromise.release(),a.lastPromise.release()},_releaseRanges:function(a){for(var b=0,c=a.length;b<c;++b)this._releaseRange(a[b])},_getListBinding:function(){return this._listView._itemsManager._listBinding}},{supportedForProcessing:!1})}),_SelectionManager:c.Namespace._lazy(function(){var c=function(b){this._listView=b,this._selected=new a._Selection(this._listView),this._pivot=g._INVALID_INDEX,this._focused={type:f.ObjectType.item,index:0},this._pendingChange=d.wrap()};return c.prototype={count:function(){return this._selected.count()},getIndices:function(){return this._selected.getIndices()},getItems:function(){return this._selected.getItems()},getRanges:function(){return this._selected.getRanges()},isEverything:function(){return this._selected.isEverything()},set:function(b){var c=this,f=new e;return this._synchronize(f).then(function(){var e=new a._Selection(c._listView);return e.set(b).then(function(){c._set(e),f.complete()},function(a){return e.clear(),f.complete(),d.wrapError(a)})})},clear:function(){var b=this,c=new e;return this._synchronize(c).then(function(){var e=new a._Selection(b._listView);return e.clear().then(function(){b._set(e),c.complete()},function(a){return e.clear(),c.complete(),d.wrapError(a)})})},add:function(a){var b=this,c=new e;return this._synchronize(c).then(function(){var e=b._cloneSelection();return e.add(a).then(function(){b._set(e),c.complete()},function(a){return e.clear(),c.complete(),d.wrapError(a)})})},remove:function(a){var b=this,c=new e;return this._synchronize(c).then(function(){var e=b._cloneSelection();return e.remove(a).then(function(){b._set(e),c.complete()},function(a){return e.clear(),c.complete(),d.wrapError(a)})})},selectAll:function(){var b=this,c=new e;return this._synchronize(c).then(function(){var e=new a._Selection(b._listView);return e.selectAll().then(function(){b._set(e),c.complete()},function(a){return e.clear(),c.complete(),d.wrapError(a)})})},_synchronize:function(a){var b=this;return this._listView._versionManager.unlocked.then(function(){var c=b._pendingChange;return b._pendingChange=d.join([c,a.promise]).then(function(){}),c})},_reset:function(){this._pivot=g._INVALID_INDEX,this._setFocused({type:f.ObjectType.item,index:0},this._keyboardFocused()),this._pendingChange.cancel(),this._pendingChange=d.wrap(),this._selected.clear(),this._selected=new a._Selection(this._listView)},_dispose:function(){this._selected.clear(),this._selected=null,this._listView=null},_set:function(a){var b=this;return this._fireSelectionChanging(a).then(function(c){return c?(b._selected.clear(),b._selected=a,b._listView._updateSelection(),b._fireSelectionChanged()):a.clear(),c})},_fireSelectionChanging:function(a){var c=b.document.createEvent("CustomEvent"),e=d.wrap();c.initCustomEvent("selectionchanging",!0,!0,{newSelection:a,preventTapBehavior:function(){},setPromise:function(a){e=a}});var f=this._listView._element.dispatchEvent(c);return e.then(function(){return f})},_fireSelectionChanged:function(){var a=b.document.createEvent("CustomEvent");a.initCustomEvent("selectionchanged",!0,!1,null),this._listView._element.dispatchEvent(a)},_getFocused:function(){return{type:this._focused.type,index:this._focused.index}},_setFocused:function(a,b){this._focused={type:a.type,index:a.index},this._focusedByKeyboard=b},_keyboardFocused:function(){return this._focusedByKeyboard},_updateCount:function(a){this._selected._itemsCount=a},_isIncluded:function(a){return this._selected._isIncluded(a)},_cloneSelection:function(){var b=new a._Selection(this._listView);return b._ranges=this._selected.getRanges(),b._itemsCount=this._selected._itemsCount,b._retainRanges(),b}},c.supportedForProcessing=!1,c})})}),d("WinJS/Controls/ListView/_BrowseMode",["exports","../../Core/_Global","../../Core/_Base","../../Core/_BaseUtils","../../Animations","../../Promise","../../Utilities/_ElementUtilities","../../Utilities/_UI","../ItemContainer/_Constants","../ItemContainer/_ItemEventsHandler","./_SelectionManager"],function(a,b,c,d,e,f,g,h,i,j,k){"use strict";var l=d._browserStyleEquivalents.transform.scriptName;c.Namespace._moduleDefine(a,"WinJS.UI",{_SelectionMode:c.Namespace._lazy(function(){function a(a,b,c){return Math.max(a,Math.min(b,c))}function e(a,c,d){var e=b.document.createEvent("CustomEvent");return e.initCustomEvent("keyboardnavigating",!0,!0,{oldFocus:c.index,oldFocusType:c.type,newFocus:d.index,newFocusType:d.type}),a.dispatchEvent(e)}return c.Class.define(function(a){this.inboundFocusHandled=!1,this._pressedContainer=null,this._pressedItemBox=null,this._pressedHeader=null,this._pressedEntity={type:h.ObjectType.item,index:i._INVALID_INDEX},this._pressedPosition=null,this.initialize(a)},{_dispose:function(){this._itemEventsHandler&&this._itemEventsHandler.dispose(),this._setNewFocusItemOffsetPromise&&this._setNewFocusItemOffsetPromise.cancel()},initialize:function(a){function b(b,c){var d=function(c){return a._view.getAdjacent(c,b)};return d.clampToBounds=c,d}this.site=a,this._keyboardNavigationHandlers={},this._keyboardAcceleratorHandlers={};var c=this.site,d=this;this._itemEventsHandler=new j._ItemEventsHandler(Object.create({containerFromElement:function(a){return c._view.items.containerFrom(a)},indexForItemElement:function(a){return c._view.items.index(a)},indexForHeaderElement:function(a){return c._groups.index(a)},itemBoxAtIndex:function(a){return c._view.items.itemBoxAt(a)},itemAtIndex:function(a){return c._view.items.itemAt(a)},headerAtIndex:function(a){return c._groups.group(a).header},headerFromElement:function(a){return c._groups.headerFrom(a)},containerAtIndex:function(a){return c._view.items.containerAt(a)},isZombie:function(){return c._isZombie()},getItemPosition:function(a){return c._getItemPosition(a)},rtl:function(){return c._rtl()},fireInvokeEvent:function(a,b){return d._fireInvokeEvent(a,b)},verifySelectionAllowed:function(a){return d._verifySelectionAllowed(a)},changeFocus:function(a,b,d,e,f){return c._changeFocus(a,b,d,e,f)},selectRange:function(a,b,c){return d._selectRange(a,b,c)}},{pressedEntity:{enumerable:!0,get:function(){return d._pressedEntity},set:function(a){d._pressedEntity=a}},pressedContainerScaleTransform:{enumerable:!0,get:function(){return d._pressedContainerScaleTransform},set:function(a){d._pressedContainerScaleTransform=a}},pressedContainer:{enumerable:!0,get:function(){return d._pressedContainer},set:function(a){d._pressedContainer=a}},pressedItemBox:{enumerable:!0,get:function(){return d._pressedItemBox},set:function(a){d._pressedItemBox=a}},pressedHeader:{enumerable:!0,get:function(){return d._pressedHeader},set:function(a){return d._pressedHeader=a}},pressedPosition:{enumerable:!0,get:function(){return d._pressedPosition},set:function(a){d._pressedPosition=a}},pressedElement:{enumerable:!0,set:function(a){d._pressedElement=a}},eventHandlerRoot:{enumerable:!0,get:function(){return c._viewport}},selectionMode:{enumerable:!0,get:function(){return c._selectionMode}},accessibleItemClass:{enumerable:!0,get:function(){return i._itemClass}},canvasProxy:{enumerable:!0,get:function(){return c._canvasProxy}},tapBehavior:{enumerable:!0,get:function(){return c._tap}},headerTapBehavior:{enumerable:!0,get:function(){return c._groupHeaderTap}},draggable:{enumerable:!0,get:function(){return c.itemsDraggable||c.itemsReorderable}},selection:{enumerable:!0,get:function(){return c._selection}},customFootprintParent:{enumerable:!0,get:function(){return null}}}));var e=g.Key;this._keyboardNavigationHandlers[e.upArrow]=b(e.upArrow),this._keyboardNavigationHandlers[e.downArrow]=b(e.downArrow),this._keyboardNavigationHandlers[e.leftArrow]=b(e.leftArrow),this._keyboardNavigationHandlers[e.rightArrow]=b(e.rightArrow),this._keyboardNavigationHandlers[e.pageUp]=b(e.pageUp,!0),this._keyboardNavigationHandlers[e.pageDown]=b(e.pageDown,!0),this._keyboardNavigationHandlers[e.home]=function(a){return!d.site._header||a.type!==h.ObjectType.groupHeader&&a.type!==h.ObjectType.footer?f.wrap({type:a.type!==h.ObjectType.footer?a.type:h.ObjectType.groupHeader,index:0}):f.wrap({type:h.ObjectType.header,index:0})},this._keyboardNavigationHandlers[e.end]=function(a){if(!d.site._footer||a.type!==h.ObjectType.groupHeader&&a.type!==h.ObjectType.header){if(a.type===h.ObjectType.groupHeader||a.type===h.ObjectType.header)return f.wrap({type:h.ObjectType.groupHeader,index:c._groups.length()-1});var b=d.site._view.lastItemIndex();return b>=0?f.wrap({type:a.type,index:b}):f.cancel}return f.wrap({type:h.ObjectType.footer,index:0})},this._keyboardAcceleratorHandlers[e.a]=function(){d.site._multiSelection()&&d._selectAll()}},staticMode:function(){return this.site._tap===h.TapBehavior.none&&this.site._selectionMode===h.SelectionMode.none},itemUnrealized:function(a,b){if(this._pressedEntity.type!==h.ObjectType.groupHeader&&(this._pressedEntity.index===a&&this._resetPointerDownState(),this._itemBeingDragged(a)))for(var c=this._draggedItemBoxes.length-1;c>=0;c--)this._draggedItemBoxes[c]===b&&(g.removeClass(b,i._dragSourceClass),this._draggedItemBoxes.splice(c,1))},_fireInvokeEvent:function(a,c){function d(d,f){var g=d.createListBinding(),h=g.fromIndex(a.index),i=f?"groupheaderinvoked":"iteminvoked";h.done(function(){g.release()});var j=b.document.createEvent("CustomEvent");j.initCustomEvent(i,!0,!0,f?{groupHeaderPromise:h,groupHeaderIndex:a.index}:{itemPromise:h,itemIndex:a.index}),c.dispatchEvent(j)&&e.site._defaultInvoke(a)}if(c){var e=this;a.type===h.ObjectType.groupHeader?this.site._groupHeaderTap===h.GroupHeaderTapBehavior.invoke&&a.index!==i._INVALID_INDEX&&d(this.site.groupDataSource,!0):this.site._tap===h.TapBehavior.none||a.index===i._INVALID_INDEX||this.site._isInSelectionMode()||d(this.site.itemDataSource,!1)}},_verifySelectionAllowed:function(a){if(a.type===h.ObjectType.groupHeader)return{canSelect:!1,canTapSelect:!1};var c=a.index,d=this.site,e=this.site._view.items.itemAt(c);if(!d._selectionAllowed()||!d._selectOnTap()||e&&g.hasClass(e,i._nonSelectableClass))return{canSelect:!1,canTapSelect:!1};var j=d._selection._isIncluded(c),k=!d._multiSelection(),l=d._selection._cloneSelection();j?k?l.clear():l.remove(c):k?l.set(c):l.add(c);var m,n=b.document.createEvent("CustomEvent"),o=f.wrap(),p=!1,q=!1;n.initCustomEvent("selectionchanging",!0,!0,{newSelection:l,preventTapBehavior:function(){q=!0},setPromise:function(a){o=a}});var r=d._element.dispatchEvent(n);o.then(function(){p=!0,m=l._isIncluded(c),l.clear()});var s=r&&p&&(j||m);return{canSelect:s,canTapSelect:s&&!q}},_containedInElementWithClass:function(a,b){if(a.parentNode)for(var c=a.parentNode.querySelectorAll("."+b+", ."+b+" *"),d=0,e=c.length;d<e;d++)if(c[d]===a)return!0;return!1},_isDraggable:function(a){return!this._containedInElementWithClass(a,i._nonDraggableClass)},_isInteractive:function(a){return this._containedInElementWithClass(a,"win-interactive")},_resetPointerDownState:function(){this._itemEventsHandler.resetPointerDownState()},onPointerDown:function(a){this._itemEventsHandler.onPointerDown(a)},onclick:function(a){this._itemEventsHandler.onClick(a)},onPointerUp:function(a){this._itemEventsHandler.onPointerUp(a)},onPointerCancel:function(a){this._itemEventsHandler.onPointerCancel(a)},onLostPointerCapture:function(a){this._itemEventsHandler.onLostPointerCapture(a)},onContextMenu:function(a){this._itemEventsHandler.onContextMenu(a)},onMSHoldVisual:function(a){this._itemEventsHandler.onMSHoldVisual(a)},onDataChanged:function(a){this._itemEventsHandler.onDataChanged(a)},_removeTransform:function(a,b){b&&-1!==a.style[l].indexOf(b)&&(a.style[l]=a.style[l].replace(b,""))},_selectAll:function(){var a=[];this.site._view.items.each(function(b,c){c&&g.hasClass(c,i._nonSelectableClass)&&a.push(b)}),this.site._selection.selectAll(),a.length>0&&this.site._selection.remove(a)},_selectRange:function(a,b,c){for(var d=[],e=-1,f=a;f<=b;f++){var h=this.site._view.items.itemAt(f);h&&g.hasClass(h,i._nonSelectableClass)?-1!==e&&(d.push({firstIndex:e,lastIndex:f-1}),e=-1):-1===e&&(e=f)}-1!==e&&d.push({firstIndex:e,lastIndex:b}),d.length>0&&this.site._selection[c?"add":"set"](d)},onDragStart:function(a){if(this._pressedEntity={type:h.ObjectType.item,index:this.site._view.items.index(a.target)},this.site._selection._pivot=i._INVALID_INDEX,this._pressedEntity.index===i._INVALID_INDEX||!this.site.itemsDraggable&&!this.site.itemsReorderable||this.site._view.animating||!this._isDraggable(a.target)||this._pressedElement&&this._isInteractive(this._pressedElement))a.preventDefault();else{this._dragging=!0,this._dragDataTransfer=a.dataTransfer,this._pressedPosition=g._getCursorPos(a),this._dragInfo=null,this._lastEnteredElement=a.target,this.site._selection._isIncluded(this._pressedEntity.index)?this._dragInfo=this.site.selection:(this._draggingUnselectedItem=!0,this._dragInfo=new k._Selection(this.site,[{firstIndex:this._pressedEntity.index,lastIndex:this._pressedEntity.index}]));var c=this.site.itemsReorderable,e=b.document.createEvent("CustomEvent");if(e.initCustomEvent("itemdragstart",!0,!1,{dataTransfer:a.dataTransfer,dragInfo:this._dragInfo}),a.dataTransfer.setData("text",""),a.dataTransfer.setDragImage){var f=this.site._view.items.itemDataAt(this._pressedEntity.index);if(f&&f.container){var j=f.container.getBoundingClientRect();a.dataTransfer.setDragImage(f.container,a.clientX-j.left,a.clientY-j.top)}}this.site.element.dispatchEvent(e),this.site.itemsDraggable&&!this.site.itemsReorderable&&(this._firedDragEnter||this._fireDragEnterEvent(a.dataTransfer)&&(c=!0,this._dragUnderstood=!0)),c&&(this._addedDragOverClass=!0,g.addClass(this.site._element,i._dragOverClass)),this._draggedItemBoxes=[];var l=this,m=a.target;m.addEventListener("dragend",function a(b){m.removeEventListener("dragend",a),l.onDragEnd(b)}),d._yieldForDomModification(function(){if(l._dragging)for(var a=l._dragInfo.getIndices(),b=0,c=a.length;b<c;b++){var d=l.site._view.items.itemDataAt(a[b]);d&&d.itemBox&&l._addDragSourceClass(d.itemBox)}})}},onDragEnter:function(a){var c=this._dragUnderstood;this._lastEnteredElement=a.target,this._exitEventTimer&&(b.clearTimeout(this._exitEventTimer),this._exitEventTimer=0),this._firedDragEnter||this._fireDragEnterEvent(a.dataTransfer)&&(c=!0),(c||this._dragging&&this.site.itemsReorderable)&&(a.preventDefault(),this._dragUnderstood=!0,this._addedDragOverClass||(this._addedDragOverClass=!0,g.addClass(this.site._element,i._dragOverClass))),this._pointerLeftRegion=!1},onDragLeave:function(a){a.target===this._lastEnteredElement&&(this._pointerLeftRegion=!0,this._handleExitEvent())},fireDragUpdateEvent:function(){var a=b.document.createEvent("CustomEvent");a.initCustomEvent("itemdragchanged",!0,!1,{dataTransfer:this._dragDataTransfer,dragInfo:this._dragInfo}),this.site.element.dispatchEvent(a)},_fireDragEnterEvent:function(a){var c=b.document.createEvent("CustomEvent");c.initCustomEvent("itemdragenter",!0,!0,{dataTransfer:a});var d=!this.site.element.dispatchEvent(c);return this._firedDragEnter=!0,d},_fireDragBetweenEvent:function(a,c,d){var e=b.document.createEvent("CustomEvent");return e.initCustomEvent("itemdragbetween",!0,!0,{index:a,insertAfterIndex:c,dataTransfer:d}),this.site.element.dispatchEvent(e)},_fireDropEvent:function(a,c,d){var e=b.document.createEvent("CustomEvent");return e.initCustomEvent("itemdragdrop",!0,!0,{index:a,insertAfterIndex:c,dataTransfer:d}),this.site.element.dispatchEvent(e)},_handleExitEvent:function(){this._exitEventTimer&&(b.clearTimeout(this._exitEventTimer),this._exitEventTimer=0);var a=this;this._exitEventTimer=b.setTimeout(function(){if(!a.site._disposed&&a._pointerLeftRegion){if(a.site._layout.dragLeave&&a.site._layout.dragLeave(),a._pointerLeftRegion=!1,a._dragUnderstood=!1,a._lastEnteredElement=null,a._lastInsertPoint=null,a._dragBetweenDisabled=!1,a._firedDragEnter){var c=b.document.createEvent("CustomEvent");c.initCustomEvent("itemdragleave",!0,!1,{}),a.site.element.dispatchEvent(c),a._firedDragEnter=!1}a._addedDragOverClass&&(a._addedDragOverClass=!1,g.removeClass(a.site._element,i._dragOverClass)),a._exitEventTimer=0,a._stopAutoScroll()}},40)},_getEventPositionInElementSpace:function(a,b){var c={left:0,top:0};try{c=a.getBoundingClientRect()}catch(a){}var d=g._getComputedStyle(a,null),e=parseInt(d.paddingLeft),f=parseInt(d.paddingTop),h=parseInt(d.borderLeftWidth),i=parseInt(d.borderTopWidth),j=b.clientX,k=b.clientY,l={x:+j===j?j-c.left-e-h:0,y:+k===k?k-c.top-f-i:0};return this.site._rtl()&&(l.x=c.right-c.left-l.x),l},_getPositionInCanvasSpace:function(a){var b=this.site._horizontal()?this.site.scrollPosition:0,c=this.site._horizontal()?0:this.site.scrollPosition,d=this._getEventPositionInElementSpace(this.site.element,a);return{x:d.x+b,y:d.y+c}},_itemBeingDragged:function(a){return!!this._dragging&&(this._draggingUnselectedItem&&this._dragInfo._isIncluded(a)||!this._draggingUnselectedItem&&this.site._isSelected(a))},_addDragSourceClass:function(a){this._draggedItemBoxes.push(a),g.addClass(a,i._dragSourceClass),a.parentNode&&g.addClass(a.parentNode,i._footprintClass)},renderDragSourceOnRealizedItem:function(a,b){this._itemBeingDragged(a)&&this._addDragSourceClass(b)},onDragOver:function(b){if(this._dragUnderstood){this._pointerLeftRegion=!1,b.preventDefault();var c=this._getPositionInCanvasSpace(b),d=this._getEventPositionInElementSpace(this.site.element,b);if(this._checkAutoScroll(d.x,d.y),this.site._layout.hitTest)if(this._autoScrollFrame)this._lastInsertPoint&&(this.site._layout.dragLeave(),this._lastInsertPoint=null);else{var e=this.site._view.hitTest(c.x,c.y);e.insertAfterIndex=a(-1,this.site._cachedCount-1,e.insertAfterIndex),this._lastInsertPoint&&this._lastInsertPoint.insertAfterIndex===e.insertAfterIndex&&this._lastInsertPoint.index===e.index||(this._dragBetweenDisabled=!this._fireDragBetweenEvent(e.index,e.insertAfterIndex,b.dataTransfer),this._dragBetweenDisabled?this.site._layout.dragLeave():this.site._layout.dragOver(c.x,c.y,this._dragInfo)),this._lastInsertPoint=e}}},_clearDragProperties:function(){if(this._addedDragOverClass&&(this._addedDragOverClass=!1,g.removeClass(this.site._element,i._dragOverClass)),this._draggedItemBoxes){for(var a=0,b=this._draggedItemBoxes.length;a<b;a++)g.removeClass(this._draggedItemBoxes[a],i._dragSourceClass),this._draggedItemBoxes[a].parentNode&&g.removeClass(this._draggedItemBoxes[a].parentNode,i._footprintClass);this._draggedItemBoxes=[]}this.site._layout.dragLeave(),this._dragging=!1,this._dragInfo=null,this._draggingUnselectedItem=!1,this._dragDataTransfer=null,this._lastInsertPoint=null,this._resetPointerDownState(),this._lastEnteredElement=null,this._dragBetweenDisabled=!1,this._firedDragEnter=!1,this._dragUnderstood=!1,this._stopAutoScroll()},onDragEnd:function(){var a=b.document.createEvent("CustomEvent");a.initCustomEvent("itemdragend",!0,!1,{}),this.site.element.dispatchEvent(a),this._clearDragProperties()},_findFirstAvailableInsertPoint:function(a,b,c){for(var d=a.getIndices(),e=-1,f=this.site._cachedCount,g=d.length,h=-1,i=b,j=0;j<g;j++)if(d[j]===i){e=j,h=j;break}for(;e>=0&&i>=0;)c?(i++,e<g&&d[e+1]===i&&i<f?e++:i>=f?(c=!1,i=b,e=h):e=-1):(i--,e>0&&d[e-1]===i?e--:e=-1);return i},_reorderItems:function(a,b,c,d,e){var f=this.site,g=function(a){c?f._selection.remove({key:a[0].key}):f._selection.set({firstKey:a[0].key,lastKey:a[a.length-1].key}),e&&f.ensureVisible(f._selection._getFocused())};b.getItems().then(function(b){var c=f.itemDataSource;if(-1===a){c.beginEdits();for(var e=b.length-1;e>=0;e--)c.moveToStart(b[e].key);c.endEdits(),g(b)}else{var h=c.createListBinding();h.fromIndex(a).then(function(a){if(h.release(),c.beginEdits(),d)for(var e=0,f=b.length;e<f;e++)c.moveBefore(b[e].key,a.key);else for(var e=b.length-1;e>=0;e--)c.moveAfter(b[e].key,a.key);c.endEdits(),g(b)})}})},onDrop:function(b){if(this._draggedItemBoxes)for(var c=0,d=this._draggedItemBoxes.length;c<d;c++)this._draggedItemBoxes[c].parentNode&&g.removeClass(this._draggedItemBoxes[c].parentNode,i._footprintClass);if(!this._dragBetweenDisabled){var e=this._getPositionInCanvasSpace(b),f=this.site._view.hitTest(e.x,e.y),h=a(-1,this.site._cachedCount-1,f.insertAfterIndex),j=!0;if(this._lastInsertPoint&&this._lastInsertPoint.insertAfterIndex===h&&this._lastInsertPoint.index===f.index||(j=this._fireDragBetweenEvent(f.index,h,b.dataTransfer)),j&&(this._lastInsertPoint=null,this.site._layout.dragLeave(),this._fireDropEvent(f.index,h,b.dataTransfer)&&this._dragging&&this.site.itemsReorderable)){if(this._dragInfo.isEverything()||this.site._groupsEnabled())return;h=this._findFirstAvailableInsertPoint(this._dragInfo,h,!1),this._reorderItems(h,this._dragInfo,this._draggingUnselectedItem)}}this._clearDragProperties(),b.preventDefault()},_checkAutoScroll:function(a,c){var e=this.site._getViewportLength(),f=this.site._horizontal(),h=f?a:c,j=this.site._viewport[f?"scrollWidth":"scrollHeight"],k=Math.floor(this.site.scrollPosition),l=0;if(h<i._AUTOSCROLL_THRESHOLD?l=h-i._AUTOSCROLL_THRESHOLD:h>e-i._AUTOSCROLL_THRESHOLD&&(l=h-(e-i._AUTOSCROLL_THRESHOLD)),l=Math.round(l/i._AUTOSCROLL_THRESHOLD*(i._MAX_AUTOSCROLL_RATE-i._MIN_AUTOSCROLL_RATE)),(0===k&&l<0||k>=j-e&&l>0)&&(l=0),0===l)this._autoScrollDelay&&(b.clearTimeout(this._autoScrollDelay),this._autoScrollDelay=0);else if(!this._autoScrollDelay&&!this._autoScrollFrame){var m=this;this._autoScrollDelay=b.setTimeout(function(){if(m._autoScrollRate){m._lastDragTimeout=d._now();var a=function(){if(!m._autoScrollRate&&m._autoScrollFrame||m.site._disposed)m._stopAutoScroll();else{var b=d._now(),c=m._autoScrollRate*((b-m._lastDragTimeout)/1e3);c=c<0?Math.min(-1,c):Math.max(1,c);var e={};e[m.site._scrollProperty]=m.site._viewportScrollPosition+c,g.setScrollPosition(m.site._viewport,e),m._lastDragTimeout=b,m._autoScrollFrame=d._requestAnimationFrame(a)}};m._autoScrollFrame=d._requestAnimationFrame(a)}},i._AUTOSCROLL_DELAY)}this._autoScrollRate=l},_stopAutoScroll:function(){this._autoScrollDelay&&(b.clearTimeout(this._autoScrollDelay),this._autoScrollDelay=0),this._autoScrollRate=0,this._autoScrollFrame=0},onKeyDown:function(a){function b(a,b,g){function k(j){var k=!0,m=!1;if(g?a.index=Math.max(0,Math.min(j,a.index)):(a.index<0||a.index>j)&&(m=!0),!m&&(l.index!==a.index||l.type!==a.type)){e(d._element,l,a)&&(k=!1,c._setNewFocusItemOffsetPromise&&c._setNewFocusItemOffsetPromise.cancel(),d._batchViewUpdates(i._ViewChange.realize,i._ScrollToPriority.high,function(){return c._setNewFocusItemOffsetPromise=d._getItemOffset(l,!0).then(function(e){e=d._convertFromCanvasCoordinates(e);var g=e.end<=d.scrollPosition||e.begin>=d.scrollPosition+d._getViewportLength()-1;return c._setNewFocusItemOffsetPromise=d._getItemOffset(a).then(function(e){c._setNewFocusItemOffsetPromise=null;var h={position:d.scrollPosition,direction:"right"};return g&&(d._selection._setFocused(a,!0),e=d._convertFromCanvasCoordinates(e),a.index>l.index?(h.direction="right",h.position=e.end-d._getViewportLength()):(h.direction="left",h.position=e.begin)),d._changeFocus(a,b,n,g,!0),g?h:f.cancel},function(c){return d._changeFocus(a,b,n,!0,!0),f.wrapError(c)}),c._setNewFocusItemOffsetPromise},function(c){return d._changeFocus(a,b,n,!0,!0),f.wrapError(c)}),c._setNewFocusItemOffsetPromise},!0))}return k&&(d._selection._setFocused(l,!0),d.ensureVisible(l)),m?{type:h.ObjectType.item,index:i._INVALID_INDEX}:a}return a.type===h.ObjectType.item?f.wrap(j.lastItemIndex()).then(k):a.type===h.ObjectType.groupHeader?f.wrap(d._groups.length()-1).then(k):f.wrap(0).then(k)}var c=this,d=this.site,j=d._view,l=d._selection._getFocused(),m=!0,n=a.ctrlKey,o=g.Key,p=a.keyCode,q=d._rtl();if(!this._isInteractive(a.target)){if(a.ctrlKey&&!a.altKey&&!a.shiftKey&&this._keyboardAcceleratorHandlers[p]&&this._keyboardAcceleratorHandlers[p](),d.itemsReorderable&&!a.ctrlKey&&a.altKey&&a.shiftKey&&l.type===h.ObjectType.item&&(p===o.leftArrow||p===o.rightArrow||p===o.upArrow||p===o.downArrow)){var r=d._selection,s=l.index,t=!1,u=!0;if(!r.isEverything()){if(!r._isIncluded(s)){var v=d._view.items.itemAt(s);v&&g.hasClass(v,i._nonDraggableClass)?u=!1:(t=!0,r=new k._Selection(this.site,[{firstIndex:s,lastIndex:s}]))}if(u){var w=s;p===o.rightArrow?w+=q?-1:1:p===o.leftArrow?w+=q?1:-1:p===o.upArrow?w--:w++;var x=w>s,y=x;x&&w>=this.site._cachedCount&&(y=!1,w=this.site._cachedCount-1),w=this._findFirstAvailableInsertPoint(r,w,y),w=Math.min(Math.max(-1,w),this.site._cachedCount-1);var z=w-(x||-1===w?0:1),A=w,B=this.site._groupsEnabled();if(B){var C=this.site._groups,D=w>-1?C.groupFromItem(w):0;x?C.group(D).startIndex===w&&z--:D<C.length()-1&&w===C.group(D+1).startIndex-1&&z++}if(this._fireDragBetweenEvent(A,z,null)&&this._fireDropEvent(A,z,null)){if(B)return;this._reorderItems(w,r,t,!x,!0)}}}}else if(a.altKey)m=!1;else if(this._keyboardNavigationHandlers[p])this._keyboardNavigationHandlers[p](l).then(function(e){if(e.index!==l.index||e.type!==l.type){var f=c._keyboardNavigationHandlers[p].clampToBounds;e.type!==h.ObjectType.groupHeader&&a.shiftKey&&d._selectionAllowed()&&d._multiSelection()?(d._selection._pivot===i._INVALID_INDEX&&(d._selection._pivot=l.index),b(e,!0,f).then(function(b){if(b.index!==i._INVALID_INDEX){var e=Math.min(b.index,d._selection._pivot),f=Math.max(b.index,d._selection._pivot),g=a.ctrlKey||d._tap===h.TapBehavior.toggleSelect;c._selectRange(e,f,g)}})):(d._selection._pivot=i._INVALID_INDEX,b(e,!1,f))}else m=!1});else if(a.ctrlKey||p!==o.enter)l.type!==h.ObjectType.groupHeader&&(a.ctrlKey&&p===o.enter||p===o.space)?(this._itemEventsHandler.toggleSelectionIfAllowed(l.index),d._changeFocus(l,!0,n,!1,!0)):p===o.escape&&d._selection.count()>0?(d._selection._pivot=i._INVALID_INDEX,d._selection.clear()):m=!1;else{var E=l.type===h.ObjectType.groupHeader?d._groups.group(l.index).header:d._view.items.itemBoxAt(l.index);if(E){l.type===h.ObjectType.groupHeader?(this._pressedHeader=E,this._pressedItemBox=null,this._pressedContainer=null):(this._pressedItemBox=E,this._pressedContainer=d._view.items.containerAt(l.index),this._pressedHeader=null);var F=this._verifySelectionAllowed(l);F.canTapSelect&&this._itemEventsHandler.handleTap(l),this._fireInvokeEvent(l,E)}}this._keyDownHandled=m,m&&(a.stopPropagation(),a.preventDefault())}p===o.tab&&(this.site._keyboardFocusInbound=!0)},onKeyUp:function(a){this._keyDownHandled&&(a.stopPropagation(),a.preventDefault())},onTabEntered:function(a){if(0!==this.site._groups.length()||this.site._hasHeaderOrFooter){var b=this.site,c=b._selection._getFocused(),d=a.detail;if(!b._hasKeyboardFocus||a.target===b._viewport)if(this.inboundFocusHandled=!0,c.index=c.index===i._INVALID_INDEX?0:c.index,d||!this.site._supportsGroupHeaderKeyboarding&&!this.site._hasHeaderOrFooter){var f={type:h.ObjectType.item};c.type===h.ObjectType.groupHeader?(f.index=b._groupFocusCache.getIndexForGroup(c.index),e(b._element,c,f)?b._changeFocus(f,!0,!1,!1,!0):b._changeFocus(c,!0,!1,!1,!0)):(f.index=c.type!==h.ObjectType.item?b._groupFocusCache.getLastFocusedItemIndex():c.index,b._changeFocus(f,!0,!1,!1,!0)),a.preventDefault()}else{var f={type:h.ObjectType.groupHeader};this.site._hasHeaderOrFooter?this.site._lastFocusedElementInGroupTrack.type===h.ObjectType.groupHeader&&this.site._supportsGroupHeaderKeyboarding?(f.index=b._groups.groupFromItem(c.index),e(b._element,c,f)?b._changeFocus(f,!0,!1,!1,!0):b._changeFocus(c,!0,!1,!1,!0)):(f.type=this.site._lastFocusedElementInGroupTrack.type,f.index=0,b._changeFocus(f,!0,!1,!1,!0)):c.type!==h.ObjectType.groupHeader&&this.site._supportsGroupHeaderKeyboarding?(f.index=b._groups.groupFromItem(c.index),e(b._element,c,f)?b._changeFocus(f,!0,!1,!1,!0):b._changeFocus(c,!0,!1,!1,!0)):(f.index=c.index,b._changeFocus(f,!0,!1,!1,!0)),a.preventDefault()}}},onTabExiting:function(a){if(this.site._hasHeaderOrFooter||this.site._supportsGroupHeaderKeyboarding&&0!==this.site._groups.length()){var b=this.site,c=b._selection._getFocused(),d=a.detail;if(d){var f=null;if(c.type===h.ObjectType.item){var g=this.site._lastFocusedElementInGroupTrack.type;if(g!==h.ObjectType.header&&g!==h.ObjectType.footer&&this.site._supportsGroupHeaderKeyboarding)var f={type:h.ObjectType.groupHeader,index:b._groups.groupFromItem(c.index)};else var f={type:g===h.ObjectType.item?h.ObjectType.header:g,index:0}}f&&e(b._element,c,f)&&(b._changeFocus(f,!0,!1,!1,!0),a.preventDefault())}else if(!d&&c.type!==h.ObjectType.item){var i=0;i=c.type===h.ObjectType.groupHeader?b._groupFocusCache.getIndexForGroup(c.index):c.type===h.ObjectType.header?0:b._view.lastItemIndex();var f={type:h.ObjectType.item,index:i};e(b._element,c,f)&&(b._changeFocus(f,!0,!1,!1,!0),a.preventDefault())}}}})})})}),d("WinJS/Controls/ListView/_ErrorMessages",["exports","../../Core/_Base","../../Core/_Resources"],function(a,b,c){"use strict";b.Namespace._moduleDefine(a,null,{modeIsInvalid:{get:function(){return"Invalid argument: mode must be one of following values: 'none', 'single' or 'multi'."}},loadingBehaviorIsDeprecated:{get:function(){return"Invalid configuration: loadingBehavior is deprecated. The control will default this property to 'randomAccess'. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior."}},pagesToLoadIsDeprecated:{get:function(){return"Invalid configuration: pagesToLoad is deprecated. The control will not use this property. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior."}},pagesToLoadThresholdIsDeprecated:{get:function(){return"Invalid configuration: pagesToLoadThreshold is deprecated.  The control will not use this property. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior."}},automaticallyLoadPagesIsDeprecated:{get:function(){return"Invalid configuration: automaticallyLoadPages is deprecated. The control will default this property to false. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior."}},invalidTemplate:{get:function(){return"Invalid template: Templates must be created before being passed to the ListView, and must contain a valid tree of elements."}},loadMorePagesIsDeprecated:{get:function(){return"loadMorePages is deprecated. Invoking this function will not have any effect. Please refer to the 'ListView loading behaviors' SDK Sample for guidance on how to implement incremental load behavior."}},disableBackdropIsDeprecated:{get:function(){return"Invalid configuration: disableBackdrop is deprecated. Style: .win-listview .win-container.win-backdrop { background-color:transparent; } instead."}},backdropColorIsDeprecated:{get:function(){return"Invalid configuration: backdropColor is deprecated. Style: .win-listview .win-container.win-backdrop { rgba(155,155,155,0.23); } instead."}},itemInfoIsDeprecated:{get:function(){return"GridLayout.itemInfo may be altered or unavailable in future versions. Instead, use CellSpanningLayout."}},groupInfoIsDeprecated:{get:function(){return"GridLayout.groupInfo may be altered or unavailable in future versions. Instead, use CellSpanningLayout."}},resetItemIsDeprecated:{get:function(){return"resetItem may be altered or unavailable in future versions. Instead, mark the element as disposable using WinJS.Utilities.markDisposable."}},resetGroupHeaderIsDeprecated:{get:function(){return"resetGroupHeader may be altered or unavailable in future versions. Instead, mark the header element as disposable using WinJS.Utilities.markDisposable."}},maxRowsIsDeprecated:{get:function(){return"GridLayout.maxRows may be altered or unavailable in future versions. Instead, use the maximumRowsOrColumns property."}},swipeOrientationDeprecated:{get:function(){return"Invalid configuration: swipeOrientation is deprecated. The control will default this property to 'none'"}},swipeBehaviorDeprecated:{get:function(){return"Invalid configuration: swipeBehavior is deprecated. The control will default this property to 'none'"}}})}),d("WinJS/Controls/ListView/_GroupFocusCache",["exports","../../Core/_Base"],function(a,b){"use strict";b.Namespace._moduleDefine(a,"WinJS.UI",{_GroupFocusCache:b.Namespace._lazy(function(){return b.Class.define(function(a){this._listView=a,this.clear()},{updateCache:function(a,b,c){this._lastFocusedItemKey=b,this._lastFocusedItemIndex=c,c=""+c,this._itemToIndex[b]=c,this._groupToItem[a]=b},deleteItem:function(a){if(a===this._lastFocusedItemKey&&(this._lastFocusedItemKey=null,this._lastFocusedItemIndex=0),this._itemToIndex[a])for(var b=this,c=Object.keys(this._groupToItem),d=0,e=c.length;d<e;d++){var f=c[d];if(b._groupToItem[f]===a){b.deleteGroup(f);break}}},deleteGroup:function(a){var b=this._groupToItem[a];b&&delete this._itemToIndex[b],delete this._groupToItem[a]},updateItemIndex:function(a,b){a===this._lastFocusedItemKey&&(this._lastFocusedItemIndex=b),this._itemToIndex[a]&&(this._itemToIndex[a]=""+b)},getIndexForGroup:function(a){var b=this._listView._groups.group(a).key,c=this._groupToItem[b];return c&&this._itemToIndex[c]?+this._itemToIndex[c]:this._listView._groups.fromKey(b).group.startIndex},clear:function(){this._groupToItem={},this._itemToIndex={},this._lastFocusedItemIndex=0,this._lastFocusedItemKey=null},getLastFocusedItemIndex:function(){return this._lastFocusedItemIndex}})}),_UnsupportedGroupFocusCache:b.Namespace._lazy(function(){return b.Class.define(null,{updateCache:function(a,b,c){this._lastFocusedItemKey=b,this._lastFocusedItemIndex=c},deleteItem:function(a){a===this._lastFocusedItemKey&&(this._lastFocusedItemKey=null,this._lastFocusedItemIndex=0)},deleteGroup:function(){},updateItemIndex:function(a,b){a===this._lastFocusedItemKey&&(this._lastFocusedItemIndex=b)},getIndexForGroup:function(){return 0},clear:function(){this._lastFocusedItemIndex=0,this._lastFocusedItemKey=null},getLastFocusedItemIndex:function(){return this._lastFocusedItemIndex}})})})}),d("WinJS/Controls/ListView/_GroupsContainer",["exports","../../Core/_Base","../../Promise","../../Utilities/_Dispose","../../Utilities/_ElementUtilities","../../Utilities/_ItemsManager","../../Utilities/_UI","../ItemContainer/_Constants"],function(a,b,c,d,e,f,g,h){"use strict";b.Namespace._moduleDefine(a,"WinJS.UI",{_GroupsContainerBase:b.Namespace._lazy(function(){return b.Class.define(function(){},{index:function(a){var b=this.headerFrom(a);if(b)for(var c=0,d=this.groups.length;c<d;c++)if(b===this.groups[c].header)return c;return h._INVALID_INDEX},headerFrom:function(a){for(;a&&!e.hasClass(a,h._headerClass);)a=a.parentNode;return a},requestHeader:function(a){this._waitingHeaderRequests=this._waitingHeaderRequests||{},this._waitingHeaderRequests[a]||(this._waitingHeaderRequests[a]=[]);var b=this;return new c(function(c){var d=b.groups[a];d&&d.header?c(d.header):b._waitingHeaderRequests[a].push(c)})},notify:function(a,b){if(this._waitingHeaderRequests&&this._waitingHeaderRequests[a]){for(var c=this._waitingHeaderRequests[a],d=0,e=c.length;d<e;d++)c[d](b);this._waitingHeaderRequests[a]=[]}},groupFromImpl:function(a,b,c){if(b<a)return null;var d=a+Math.floor((b-a)/2);return c(this.groups[d],d)?this.groupFromImpl(a,d-1,c):d<b&&!c(this.groups[d+1],d+1)?this.groupFromImpl(d+1,b,c):d},groupFrom:function(a){if(this.groups.length>0){var b=this.groups.length-1;return a(this.groups[b],b)?this.groupFromImpl(0,this.groups.length-1,a):b}return null},groupFromItem:function(a){return this.groupFrom(function(b){return a<b.startIndex})},groupFromOffset:function(a){return this.groupFrom(function(b){return a<b.offset})},group:function(a){return this.groups[a]},length:function(){return this.groups.length},cleanUp:function(){if(this.listBinding){for(var a=0,b=this.groups.length;a<b;a++){var c=this.groups[a];c.userData&&this.listBinding.releaseItem(c.userData)}this.listBinding.release()}},_dispose:function(){this.cleanUp()},synchronizeGroups:function(){var a=this;return this.pendingChanges=[],this.ignoreChanges=!0,this.groupDataSource.invalidateAll().then(function(){return c.join(a.pendingChanges)}).then(function(){if(a._listView._ifZombieDispose())return c.cancel}).then(function(){a.ignoreChanges=!1},function(b){return a.ignoreChanges=!1,c.wrapError(b)})},fromKey:function(a){for(var b=0,c=this.groups.length;b<c;b++){var d=this.groups[b];if(d.key===a)return{group:d,index:b}}return null},fromHandle:function(a){for(var b=0,c=this.groups.length;b<c;b++){var d=this.groups[b];if(d.handle===a)return{group:d,index:b}}return null}})}),_UnvirtualizedGroupsContainer:b.Namespace._lazy(function(){return b.Class.derive(a._GroupsContainerBase,function(a,b){this._listView=a,this.groupDataSource=b,this.groups=[],this.pendingChanges=[],this.dirty=!0;var c=this,f={beginNotifications:function(){c._listView._versionManager.beginNotifications()},endNotifications:function(){c._listView._versionManager.endNotifications(),c._listView._ifZombieDispose()||!c.ignoreChanges&&c._listView._groupsChanged&&c._listView._scheduleUpdate()},indexChanged:function(){c._listView._versionManager.receivedNotification(),c._listView._ifZombieDispose()||this.scheduleUpdate()},itemAvailable:function(){},countChanged:function(a){c._listView._versionManager.receivedNotification(),c._listView._writeProfilerMark("groupCountChanged("+a+"),info"),c._listView._ifZombieDispose()||this.scheduleUpdate()},changed:function(a){if(c._listView._versionManager.receivedNotification(),!c._listView._ifZombieDispose()){var b=c.fromKey(a.key);b&&(c._listView._writeProfilerMark("groupChanged("+b.index+"),info"),b.group.userData=a,b.group.startIndex=a.firstItemIndexHint,this.markToRemove(b.group)),this.scheduleUpdate()}},removed:function(a){if(c._listView._versionManager.receivedNotification(),c._listView._groupRemoved(a),!c._listView._ifZombieDispose()){var b=c.fromHandle(a);if(b){c._listView._writeProfilerMark("groupRemoved("+b.index+"),info"),c.groups.splice(b.index,1);var d=c.groups.indexOf(b.group,b.index);d>-1&&c.groups.splice(d,1),this.markToRemove(b.group)}this.scheduleUpdate()}},inserted:function(a,b,d){if(c._listView._versionManager.receivedNotification(),!c._listView._ifZombieDispose()){c._listView._writeProfilerMark("groupInserted,info");var e=this;a.retain().then(function(f){var g;if(-1!==(g=b||d||c.groups.length?e.findIndex(b,d):0)){var h={key:f.key,startIndex:f.firstItemIndexHint,userData:f,handle:a.handle};c.groups.splice(g,0,h)}e.scheduleUpdate()}),c.pendingChanges.push(a)}},moved:function(a,b,d){if(c._listView._versionManager.receivedNotification(),!c._listView._ifZombieDispose()){c._listView._writeProfilerMark("groupMoved,info");var e=this;a.then(function(f){var g=e.findIndex(b,d),h=c.fromKey(f.key);if(h)c.groups.splice(h.index,1),-1!==g&&(h.index<g&&g--,h.group.key=f.key,h.group.userData=f,h.group.startIndex=f.firstItemIndexHint,c.groups.splice(g,0,h.group));else if(-1!==g){var i={key:f.key,startIndex:f.firstItemIndexHint,userData:f,handle:a.handle};c.groups.splice(g,0,i),a.retain()}e.scheduleUpdate()}),c.pendingChanges.push(a)}},reload:function(){c._listView._versionManager.receivedNotification(),c._listView._ifZombieDispose()||c._listView._processReload()},markToRemove:function(a){if(a.header){var b=a.header;a.header=null,a.left=-1,a.width=-1,a.decorator=null,a.tabIndex=-1,b.tabIndex=-1,c._listView._groupsToRemove[e._uniqueID(b)]={group:a,header:b}}},scheduleUpdate:function(){c.dirty=!0,c.ignoreChanges||(c._listView._groupsChanged=!0)},findIndex:function(a,b){var d,e=-1;return a&&(d=c.fromHandle(a))&&(e=d.index+1),-1===e&&b&&(d=c.fromHandle(b))&&(e=d.index),e},removeElements:function(a){if(a.header){var b=a.header.parentNode;b&&(d.disposeSubTree(a.header),b.removeChild(a.header)),a.header=null,a.left=-1,a.width=-1}}};this.listBinding=this.groupDataSource.createListBinding(f)},{initialize:function(){this.initializePromise&&this.initializePromise.cancel(),this._listView._writeProfilerMark("GroupsContainer_initialize,StartTM");var a=this;return this.initializePromise=this.groupDataSource.getCount().then(function(b){for(var d=[],e=0;e<b;e++)d.push(a.listBinding.fromIndex(e).retain());return c.join(d)}).then(function(b){a.groups=[];for(var c=0,d=b.length;c<d;c++){var e=b[c];a.groups.push({key:e.key,startIndex:e.firstItemIndexHint,handle:e.handle,userData:e})}a._listView._writeProfilerMark("GroupsContainer_initialize groups("+b.length+"),info"),a._listView._writeProfilerMark("GroupsContainer_initialize,StopTM")},function(b){return a._listView._writeProfilerMark("GroupsContainer_initialize,StopTM"),c.wrapError(b)}),this.initializePromise},renderGroup:function(a){if(this._listView.groupHeaderTemplate){var b=this.groups[a];return c.wrap(this._listView._groupHeaderRenderer(c.wrap(b.userData))).then(f._normalizeRendererReturn)}return c.wrap(null)},setDomElement:function(a,b){this.groups[a].header=b,this.notify(a,b)},removeElements:function(){for(var a=this._listView._groupsToRemove||{},b=Object.keys(a),c=!1,e=this._listView._selection._getFocused(),f=0,h=b.length;f<h;f++){var i=a[b[f]],j=i.header,k=i.group;if(c||e.type!==g.ObjectType.groupHeader||k.userData.index!==e.index||(this._listView._unsetFocusOnItem(),c=!0),j){var l=j.parentNode;l&&(d._disposeElement(j),l.removeChild(j))}}c&&this._listView._setFocusOnItem(e),this._listView._groupsToRemove={}},resetGroups:function(){for(var a=this.groups.slice(0),b=0,c=a.length;b<c;b++){var d=a[b];this.listBinding&&d.userData&&this.listBinding.releaseItem(d.userData)}this.groups.length=0,this.dirty=!0}})}),_NoGroups:b.Namespace._lazy(function(){return b.Class.derive(a._GroupsContainerBase,function(a){this._listView=a,this.groups=[{startIndex:0}],this.dirty=!0},{synchronizeGroups:function(){return c.wrap()},addItem:function(){return c.wrap(this.groups[0])},resetGroups:function(){this.groups=[{startIndex:0}],delete this.pinnedItem,delete this.pinnedOffset,this.dirty=!0},renderGroup:function(){return c.wrap(null)},ensureFirstGroup:function(){return c.wrap(this.groups[0])},groupOf:function(){return c.wrap(this.groups[0])},removeElements:function(){}})})})}),d("WinJS/Controls/ListView/_Helpers",["exports","../../Core/_Base","../ItemContainer/_Constants"],function(a,b,c){"use strict";function d(a){return Array.prototype.slice.call(a)}function e(a,b){if("string"==typeof a)return e([a],b);var c=new Array(Math.floor(b/a.length)+1).join(a.join(""));return c+=a.slice(0,b%a.length).join("")}function f(a,b){var d=c._containerEvenClass,f=c._containerOddClass,g=b%2==0?[d,f]:[f,d];return e(["<div class='win-container "+g[0]+" win-backdrop'></div>","<div class='win-container "+g[1]+" win-backdrop'></div>"],a)}b.Namespace._moduleDefine(a,"WinJS.UI",{_nodeListToArray:d,_repeat:e,_stripedContainers:f})}),d("WinJS/Controls/ListView/_ItemsContainer",["exports","../../Core/_Base","../../Promise","../../Utilities/_ElementUtilities","../ItemContainer/_Constants"],function(a,b,c,d,e){"use strict";b.Namespace._moduleDefine(a,"WinJS.UI",{_ItemsContainer:b.Namespace._lazy(function(){var a=function(a){this.site=a,this._itemData={},this.waitingItemRequests={}};return a.prototype={requestItem:function(a){this.waitingItemRequests[a]||(this.waitingItemRequests[a]=[]);var b=this;return new c(function(c){var d=b._itemData[a];d&&!d.detached&&d.element?c(d.element):b.waitingItemRequests[a].push(c)})},removeItem:function(a){delete this._itemData[a]},removeItems:function(){this._itemData={},this.waitingItemRequests={}},setItemAt:function(a,b){this._itemData[a]=b,b.detached||this.notify(a,b)},notify:function(a,b){if(this.waitingItemRequests[a]){for(var c=this.waitingItemRequests[a],d=0;d<c.length;d++)c[d](b.element);this.waitingItemRequests[a]=[]}},elementAvailable:function(a){var b=this._itemData[a];b.detached=!1,this.notify(a,b)},itemAt:function(a){var b=this._itemData[a];return b?b.element:null},itemDataAt:function(a){return this._itemData[a]},containerAt:function(a){var b=this._itemData[a];return b?b.container:null},itemBoxAt:function(a){var b=this._itemData[a];return b?b.itemBox:null},itemBoxFrom:function(a){for(;a&&!d.hasClass(a,e._itemBoxClass);)a=a.parentNode;return a},containerFrom:function(a){for(;a&&!d.hasClass(a,e._containerClass);)a=a.parentNode;return a},index:function(a){var b=this.containerFrom(a);if(b)for(var c in this._itemData)if(this._itemData[c].container===b)return parseInt(c,10);return e._INVALID_INDEX},each:function(a){for(var b in this._itemData)if(this._itemData.hasOwnProperty(b)){var c=this._itemData[b];a(parseInt(b,10),c.element,c)}},eachIndex:function(a){for(var b in this._itemData)if(a(parseInt(b,10)))break},count:function(){return Object.keys(this._itemData).length}},a})})}),d("WinJS/Controls/ListView/_Layouts",["exports","../../Core/_Global","../../Core/_Base","../../Core/_BaseUtils","../../Core/_ErrorFromName","../../Core/_Resources","../../Core/_WriteProfilerMark","../../Animations/_TransitionAnimation","../../Promise","../../Scheduler","../../_Signal","../../Utilities/_Dispose","../../Utilities/_ElementUtilities","../../Utilities/_SafeHtml","../../Utilities/_UI","../ItemContainer/_Constants","./_ErrorMessages"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){"use strict";function r(a){return"_win-dynamic-"+a+"-"+L++}function s(){var a,b,c,d=K.sheet.cssRules,e=M.length;for(a=0;a<e;a++)for(c="."+M[a]+" ",b=d.length-1;b>=0;b--)-1!==d[b].selectorText.indexOf(c)&&K.sheet.deleteRule(b);M=[]}function t(a,b,c,d){s();var e="."+p._listViewClass+" ."+a+" "+c+" { "+d+"}",f="_addDynamicCssRule:"+a+",info";b?b._writeProfilerMark(f):g("WinJS.UI.ListView:Layout"+f),K.sheet.insertRule(e,0)}function u(a){M.push(a)}function v(a,b,c){return Math.max(a,Math.min(b,c))}function w(a,b){return m.convertToPixels(a,m._getComputedStyle(a,null)[b])}function x(a,b){return w(b,"margin"+a)+w(b,"border"+a+"Width")+w(b,"padding"+a)}function y(a){return x("Top",a)+x("Bottom",a)}function z(a){return x("Left",a)+x("Right",a)}function A(a,b){if(a.items)for(var c=0,d=a.items.length;c<d;c++)b(a.items[c],c);else for(var e=0,f=0;e<a.itemsBlocks.length;e++)for(var g=a.itemsBlocks[e],c=0,d=g.items.length;c<d;c++)b(g.items[c],f++)}function B(a,b){if(b<0)return null;if(a.items)return b<a.items.length?a.items[b]:null;var c=a.itemsBlocks[0].items.length,d=Math.floor(b/c),e=b%c;return d<a.itemsBlocks.length&&e<a.itemsBlocks[d].items.length?a.itemsBlocks[d].items[e]:null}function C(a,b){for(var c,d=0,e=b.length;d<e;d++)if(b[d].itemsContainer.element===a){c=b[d].itemsContainer;break}return c}function D(a){var b,c;return a.itemsBlocks?(b=a.itemsBlocks.length,c=b>0?a.itemsBlocks[0].items.length*(b-1)+a.itemsBlocks[b-1].items.length:0):c=a.items.length,c}function E(a){if(!S){var c=b.document.createElement("div");c.style.width="500px",c.style.visibility="hidden";var d=b.document.createElement("div");d.style.cssText+="width: 500px; height: 200px; display: -webkit-flex; display: flex",n.setInnerHTMLUnsafe(d,"<div style='height: 100%; display: -webkit-flex; display: flex; flex-flow: column wrap; align-content: flex-start; -webkit-flex-flow: column wrap; -webkit-align-content: flex-start'><div style='width: 100px; height: 100px'></div><div style='width: 100px; height: 100px'></div><div style='width: 100px; height: 100px'></div></div>"),c.appendChild(d),a.viewport.insertBefore(c,a.viewport.firstChild);var e=c.offsetWidth>0,f=200;e&&(S={supportsCSSGrid:!!("-ms-grid-row"in b.document.documentElement.style),nestedFlexTooLarge:d.firstElementChild.offsetWidth>f,nestedFlexTooSmall:d.firstElementChild.offsetWidth<f}),a.readyToMeasure(),a.viewport.removeChild(c)}return S}function F(a){return i.is(a)?{realizedRangeComplete:a,layoutComplete:a}:"object"==typeof a&&a&&a.layoutComplete?a:{realizedRangeComplete:i.wrap(),layoutComplete:i.wrap()}}function G(a){return{left:w(a,"marginLeft"),right:w(a,"marginRight"),top:w(a,"marginTop"),bottom:w(a,"marginBottom")}}var H=m.Key,I=m._uniqueID,J={get itemInfoIsInvalid(){return"Invalid argument: An itemInfo function must be provided which returns an object with numeric width and height properties."},get groupInfoResultIsInvalid(){return"Invalid result: groupInfo result for cell spanning groups must include the following numeric properties: cellWidth and cellHeight."}},K=b.document.createElement("style");b.document.head.appendChild(K);var L=0,M=[],N=d._browserStyleEquivalents,O=N.transform,P=d._browserStyleEquivalents.transition.scriptName,Q=O.cssName+" cubic-bezier(0.1, 0.9, 0.2, 1) 167ms",R=12,S=null;c.Namespace._moduleDefine(a,"WinJS.UI",{Layout:c.Class.define(function(){}),_LayoutCommon:c.Namespace._lazy(function(){return c.Class.derive(a.Layout,null,{groupHeaderPosition:{enumerable:!0,get:function(){return this._groupHeaderPosition},set:function(a){this._groupHeaderPosition=a,this._invalidateLayout()}},initialize:function(a,b){a._writeProfilerMark("Layout:initialize,info"),this._inListMode||m.addClass(a.surface,p._gridLayoutClass),this._backdropColorClassName&&m.addClass(a.surface,this._backdropColorClassName),this._disableBackdropClassName&&m.addClass(a.surface,this._disableBackdropClassName),this._groups=[],this._groupMap={},this._oldGroupHeaderPosition=null,this._usingStructuralNodes=!1,this._site=a,this._groupsEnabled=b,this._resetAnimationCaches(!0)},orientation:{enumerable:!0,get:function(){return this._orientation},set:function(a){this._orientation=a,this._horizontal="horizontal"===a,this._invalidateLayout()}},uninitialize:function(){function a(a){var b,c=a.length;for(b=0;b<c;b++)a[b].cleanUp(!0)}var b="Layout:uninitialize,info";this._elementsToMeasure={},this._site?(this._site._writeProfilerMark(b),m.removeClass(this._site.surface,p._gridLayoutClass),m.removeClass(this._site.surface,p._headerPositionTopClass),m.removeClass(this._site.surface,p._headerPositionLeftClass),m.removeClass(this._site.surface,p._structuralNodesClass),m.removeClass(this._site.surface,p._singleItemsBlockClass),m.removeClass(this._site.surface,p._noCSSGrid),this._site.surface.style.cssText="",this._groups&&(a(this._groups),this._groups=null,this._groupMap=null),this._layoutPromise&&(this._layoutPromise.cancel(),this._layoutPromise=null),this._resetMeasurements(),this._oldGroupHeaderPosition=null,this._usingStructuralNodes=!1,this._envInfo=null,this._backdropColorClassName&&(m.removeClass(this._site.surface,this._backdropColorClassName),u(this._backdropColorClassName),this._backdropColorClassName=null),this._disableBackdropClassName&&(m.removeClass(this._site.surface,this._disableBackdropClassName),u(this._disableBackdropClassName),this._disableBackdropClassName=null),this._site=null,this._groupsEnabled=null,this._animationsRunning&&this._animationsRunning.cancel(),this._animatingItemsBlocks={}):g("WinJS.UI.ListView:"+b)},numberOfItemsPerItemsBlock:{get:function(){function b(){var a,b=c._site.groupCount;for(a=0;a<b;a++)if(c._isCellSpanning(a))return!1;return!0}var c=this;return c._measureItem(0).then(function(){return c._sizes.viewportContentSize!==c._getViewportCrossSize()&&c._viewportSizeChanged(c._getViewportCrossSize()),b()?c._envInfo.nestedFlexTooLarge||c._envInfo.nestedFlexTooSmall?(c._usingStructuralNodes=!0,Number.MAX_VALUE):(c._usingStructuralNodes=a._LayoutCommon._barsPerItemsBlock>0,a._LayoutCommon._barsPerItemsBlock*c._itemsPerBar):(c._usingStructuralNodes=!1,null)})}},layout:function(a,b,c,d){function e(a){function b(a){if(l._usingStructuralNodes){var b=[];return a.itemsBlocks.forEach(function(a){b=b.concat(a.items.slice(0))}),b}return a.items.slice(0)}return{element:a.element,items:b(a)}}function f(){function c(a,b){return new(a.enableCellSpanning?T.CellSpanningGroup:T.UniformGroup)(l,b)}var d,f=l._groups.length>0?l._getRealizationRange():null,g=[],h=[],j={},k={},m=0,n=a.length;for(d=0;d<n;d++){var o=null,p=l._getGroupInfo(d),q=l._site.groupFromIndex(d).key,r=l._groupMap[q],s=r instanceof T.CellSpanningGroup,t=p.enableCellSpanning;if(r)if(s!==t)j[q]=!0;else{var u=Math.max(0,b.firstIndex-r.startIndex),v=l._rangeForGroup(r,f);v&&u<=v.lastIndex&&(o={firstIndex:Math.max(u,v.firstIndex),lastIndex:v.lastIndex})}var w,x=c(p,a[d].itemsContainer.element);w=x.prepareLayoutWithCopyOfTree?x.prepareLayoutWithCopyOfTree(e(a[d].itemsContainer),o,r,{groupInfo:p,startIndex:m}):x.prepareLayout(D(a[d].itemsContainer),o,r,{groupInfo:p,startIndex:m}),h.push(w),m+=x.count,g.push(x),k[q]=x}return i.join(h).then(function(){for(var a=0,b=0,c=g.length;b<c;b++){var d=g[b];d.offset=a,a+=l._getGroupSize(d)}Object.keys(l._groupMap).forEach(function(a){var b=!j[a];l._groupMap[a].cleanUp(b)}),l._groups=g,l._groupMap=k})}function g(a,c,d){var e,f=l._groups[a],g=Math.max(0,b.firstIndex-f.startIndex),h=l._rangeForGroup(f,c);if(!d)return h||(e=f.startIndex+f.count-1<c.firstIndex),f.layoutUnrealizedRange(g,h,e);f.layoutRealizedRange(g,h)}function h(){if(0!==l._groups.length){var c,d=l._getRealizationRange(),e=a.length,f=n.groupIndexFromItemIndex(b.firstIndex);for(c=f;c<e;c++)g(c,d,!0),l._layoutGroup(c)}}function j(){if(0===l._groups.length)return i.wrap();var a=l._getRealizationRange(),c=n.groupIndexFromItemIndex(a.firstIndex-1),d=n.groupIndexFromItemIndex(a.lastIndex+1),e=n.groupIndexFromItemIndex(b.firstIndex),f=[],h=l._groups.length,j=!1,k=c,m=Math.max(e,d);for(m=Math.max(k+1,m);!j;)j=!0,k>=e&&(f.push(g(k,a,!1)),j=!1,k--),m<h&&(f.push(g(m,a,!1)),j=!1,m++);return i.join(f)}var k,l=this,n=l._site,o="Layout.layout",q=o+":realizedRange";return l._site._writeProfilerMark(o+",StartTM"),l._site._writeProfilerMark(q+",StartTM"),k=l._measureItem(0).then(function(){return m[l._usingStructuralNodes?"addClass":"removeClass"](l._site.surface,p._structuralNodesClass),m[l._envInfo.nestedFlexTooLarge||l._envInfo.nestedFlexTooSmall?"addClass":"removeClass"](l._site.surface,p._singleItemsBlockClass),l._sizes.viewportContentSize!==l._getViewportCrossSize()&&l._viewportSizeChanged(l._getViewportCrossSize()),l._cacheRemovedElements(c,l._cachedItemRecords,l._cachedInsertedItemRecords,l._cachedRemovedItems,!1),l._cacheRemovedElements(d,l._cachedHeaderRecords,l._cachedInsertedHeaderRecords,l._cachedRemovedHeaders,!0),f()}).then(function(){l._syncDomWithGroupHeaderPosition(a);var b=0;if(l._groups.length>0){var e=l._groups[l._groups.length-1];b=e.offset+l._getGroupSize(e)}l._horizontal?(l._groupsEnabled&&l._groupHeaderPosition===U.left?n.surface.style.cssText+=";height:"+l._sizes.surfaceContentSize+"px;-ms-grid-columns: ("+l._sizes.headerContainerWidth+"px auto)["+a.length+"]":n.surface.style.height=l._sizes.surfaceContentSize+"px",(l._envInfo.nestedFlexTooLarge||l._envInfo.nestedFlexTooSmall)&&(n.surface.style.width=b+"px")):(l._groupsEnabled&&l._groupHeaderPosition===U.top?n.surface.style.cssText+=";width:"+l._sizes.surfaceContentSize+"px;-ms-grid-rows: ("+l._sizes.headerContainerHeight+"px auto)["+a.length+"]":n.surface.style.width=l._sizes.surfaceContentSize+"px",(l._envInfo.nestedFlexTooLarge||l._envInfo.nestedFlexTooSmall)&&(n.surface.style.height=b+"px")),h(),l._layoutAnimations(c,d),l._site._writeProfilerMark(q+":complete,info"),l._site._writeProfilerMark(q+",StopTM")},function(a){return l._site._writeProfilerMark(q+":canceled,info"),l._site._writeProfilerMark(q+",StopTM"),i.wrapError(a)}),l._layoutPromise=k.then(function(){return j().then(function(){l._site._writeProfilerMark(o+":complete,info"),l._site._writeProfilerMark(o+",StopTM")},function(a){return l._site._writeProfilerMark(o+":canceled,info"),l._site._writeProfilerMark(o+",StopTM"),i.wrapError(a)})}),{realizedRangeComplete:k,layoutComplete:l._layoutPromise}},itemsFromRange:function(a,b){return this._rangeContainsItems(a,b)?{firstIndex:this._firstItemFromRange(a),lastIndex:this._lastItemFromRange(b)}:{firstIndex:0,lastIndex:-1}},getAdjacent:function(b,c){function d(){var a={type:b.type,index:b.index-g.startIndex},c=g.getAdjacent(a,h);if("boundary"===c){var d=e._groups[f-1],i=e._groups[f+1],j=e._groups.length-1;if(h===H.leftArrow){if(0===f)return b;if(d instanceof T.UniformGroup&&g instanceof T.UniformGroup){var k=e._indexToCoordinate(a.index),l=e._horizontal?k.row:k.column,m=Math.floor((d.count-1)/e._itemsPerBar),n=m*e._itemsPerBar;return{type:o.ObjectType.item,index:d.startIndex+Math.min(d.count-1,n+l)}}return{type:o.ObjectType.item,index:g.startIndex-1}}if(h===H.rightArrow){if(f===j)return b;if(g instanceof T.UniformGroup&&i instanceof T.UniformGroup){var k=e._indexToCoordinate(a.index),l=e._horizontal?k.row:k.column;return{type:o.ObjectType.item,index:i.startIndex+Math.min(i.count-1,l)}}return{type:o.ObjectType.item,index:i.startIndex}}return b}return c.index+=g.startIndex,c}var e=this,f=e._site.groupIndexFromItemIndex(b.index),g=e._groups[f],h=e._adjustedKeyForOrientationAndBars(e._adjustedKeyForRTL(c),g instanceof T.CellSpanningGroup);if(b.type||(b.type=o.ObjectType.item),b.type===o.ObjectType.item||c!==H.pageUp&&c!==H.pageDown){if(b.type===o.ObjectType.header&&h===H.rightArrow)return{type:e._groupsEnabled?o.ObjectType.groupHeader:o.ObjectType.footer,index:0};if(b.type===o.ObjectType.footer&&h===H.leftArrow)return{type:e._groupsEnabled?o.ObjectType.groupHeader:o.ObjectType.header,index:0};if(b.type===o.ObjectType.groupHeader){if(h===H.leftArrow){var i=b.index-1;return i=e._site.header?i:Math.max(0,i),{type:i>-1?o.ObjectType.groupHeader:o.ObjectType.header,index:i>-1?i:0}}if(h===H.rightArrow){var i=b.index+1;return i=e._site.header?i:Math.min(e._groups.length-1,b.index+1),{type:i>=e._groups.length?o.ObjectType.header:o.ObjectType.groupHeader,index:i>=e._groups.length?0:i}}return b}}else{var j=0;j=b.type===o.ObjectType.groupHeader?e._groups[b.index].startIndex:b.type===o.ObjectType.header?0:e._groups[e._groups.length-1].count-1,b={type:o.ObjectType.item,index:j}}switch(e._adjustedKeyForRTL(c)){case H.upArrow:case H.leftArrow:case H.downArrow:case H.rightArrow:return d();default:return a._LayoutCommon.prototype._getAdjacentForPageKeys.call(e,b,c)}},hitTest:function(a,b){var c,d=this._sizes;a-=d.layoutOriginX,b-=d.layoutOriginY;var e=this._groupFromOffset(this._horizontal?a:b),f=this._groups[e];return this._horizontal?a-=f.offset:b-=f.offset,this._groupsEnabled&&(this._groupHeaderPosition===U.left?a-=d.headerContainerWidth:b-=d.headerContainerHeight),c=f.hitTest(a,b),c.index+=f.startIndex,c.insertAfterIndex+=f.startIndex,c},setupAnimations:function(){if(0===this._groups.length)return void this._resetAnimationCaches();if(!Object.keys(this._cachedItemRecords).length){this._site._writeProfilerMark("Animation:setupAnimations,StartTM");for(var a=this._getRealizationRange(),b=this._site.tree,c=0,d="horizontal"===this.orientation,e=0,f=b.length;e<f;e++){var g=b[e],h=!1,i=this._groups[e],j=i instanceof T.CellSpanningGroup,k=i?i.offset:0;if(A(g.itemsContainer,function(b,d){if(a.firstIndex<=c&&a.lastIndex>=c&&(h=!0,!this._cachedItemRecords[c])){var f=this._getItemPositionForAnimations(c,e,d),g=f.row,i=f.column,k=f.left,l=f.top;this._cachedItemRecords[c]={oldRow:g,oldColumn:i,oldLeft:k,oldTop:l,width:f.width,height:f.height,element:b,inCellSpanningGroup:j}}c++}.bind(this)),h){var l=e;if(!this._cachedHeaderRecords[l]){var m=this._getHeaderPositionForAnimations(l);this._cachedHeaderRecords[l]={oldLeft:m.left,oldTop:m.top,width:m.width,height:m.height,element:g.header}}this._cachedGroupRecords[I(g.itemsContainer.element)]||(this._cachedGroupRecords[I(g.itemsContainer.element)]={oldLeft:d?k:0,left:d?k:0,oldTop:d?0:k,top:d?0:k,element:g.itemsContainer.element})}}this._site._writeProfilerMark("Animation:setupAnimations,StopTM")}},_layoutAnimations:function(a,b){if(Object.keys(this._cachedItemRecords).length||Object.keys(this._cachedGroupRecords).length||Object.keys(this._cachedHeaderRecords).length){this._site._writeProfilerMark("Animation:layoutAnimation,StartTM"),this._updateAnimationCache(a,b);for(var c=this._getRealizationRange(),d=this._site.tree,e=0,f="horizontal"===this.orientation,g=0,h=d.length;g<h;g++){var i=d[g],j=this._groups[g],k=j instanceof T.CellSpanningGroup,l=j?j.offset:0,n=0,o=0,q=this._cachedGroupRecords[I(i.itemsContainer.element)];q&&(f?n=q.oldLeft-l:o=q.oldTop-l),A(i.itemsContainer,function(a,b){if(c.firstIndex<=e&&c.lastIndex>=e){var d=this._cachedItemRecords[e];if(d){var f=this._getItemPositionForAnimations(e,g,b),h=f.row,i=f.column,j=f.left,l=f.top;if(d.inCellSpanningGroup=d.inCellSpanningGroup||k,d.oldRow!==h||d.oldColumn!==i||d.oldTop!==l||d.oldLeft!==j){d.row=h,d.column=i,d.left=j,d.top=l;var q=d.oldLeft-d.left-n,r=d.oldTop-d.top-o;if(q=(this._site.rtl?-1:1)*q,d.xOffset=q,d.yOffset=r,0!==q||0!==r){var s=d.element;d.needsToResetTransform=!0,s.style[P]="",s.style[O.scriptName]="translate("+q+"px,"+r+"px)"}var t=a.parentNode;m.hasClass(t,p._itemsBlockClass)&&(this._animatingItemsBlocks[I(t)]=t)}}else this._cachedInsertedItemRecords[e]=a,a.style[P]="",a.style.opacity=0}e++}.bind(this));var r=g,s=this._cachedHeaderRecords[r];if(s){var t=this._getHeaderPositionForAnimations(r);if(s.height=t.height,s.width=t.width,s.oldLeft!==t.left||s.oldTop!==t.top){s.left=t.left,s.top=t.top;var u=s.oldLeft-s.left,v=s.oldTop-s.top;if(0!==(u=(this._site.rtl?-1:1)*u)||0!==v){s.needsToResetTransform=!0;var w=s.element;w.style[P]="",w.style[O.scriptName]="translate("+u+"px,"+v+"px)"}}}if(q&&(f&&q.left!==l||!f&&q.top!==l)){var x=q.element;if(0===n&&0===o)q.needsToResetTransform&&(q.needsToResetTransform=!1,x.style[O.scriptName]="");else{var y=(this._site.rtl?-1:1)*n,z=o;q.needsToResetTransform=!0,x.style[P]="",x.style[O.scriptName]="translate("+y+"px, "+z+"px)"}}}if(this._inListMode||1===this._itemsPerBar)for(var B=Object.keys(this._animatingItemsBlocks),C=0,D=B.length;C<D;C++)this._animatingItemsBlocks[B[C]].style.overflow="visible";this._site._writeProfilerMark("Animation:layoutAnimation,StopTM")}},executeAnimations:function(){function b(){if(e(),H)f();else{if(aa._itemsPerBar>1)for(var a=aa._itemsPerBar*aa._sizes.containerCrossSize+aa._getHeaderSizeContentAdjustment()+aa._sizes.containerMargins[U?"top":v.rtl?"right":"left"]+(U?aa._sizes.layoutOriginY:aa._sizes.layoutOriginX),b=0,c=y.length;b<c;b++){var d=y[b];d[V]>d[W]?(N=Math.max(N,d[X]+d[U?"height":"width"]),R=Math.max(R,a-d[Y]),J=!0,T.push(d)):d[V]<d[W]&&(Q=Math.max(Q,a-d[X]),S=Math.max(S,d[Y]+d[U?"height":"width"]),T.push(d),J=!0)}v.rtl&&!U&&(N*=-1,R*=-1,Q*=-1,S*=-1),J?j(aa._itemsPerBar):q()}}function c(b){F=i.join(G),F.done(function(){G=[],t&&(a.Layout._debugAnimations?d._requestAnimationFrame(function(){b()}):b())})}function e(){if(x.length){v._writeProfilerMark("Animation:setupRemoveAnimation,StartTM"),B+=60,E+=60;var a=120;u&&(a*=10),G.push(h.executeTransition(x,[{property:"opacity",delay:A,duration:a,timing:"linear",to:0,skipStylesReset:!0}])),v._writeProfilerMark("Animation:setupRemoveAnimation,StopTM")}}function f(){v._writeProfilerMark("Animation:cellSpanningFadeOutMove,StartTM");for(var a=[],b=0,d=y.length;b<d;b++){var e=y[b],f=e.element;a.push(f)}for(var b=0,d=z.length;b<d;b++){var e=z[b],f=e.element;a.push(f)}var i=120;u&&(i*=10),G.push(h.executeTransition(a,{property:"opacity",delay:A,duration:i,timing:"linear",to:0})),c(g),v._writeProfilerMark("Animation:cellSpanningFadeOutMove,StopTM")}function g(){v._writeProfilerMark("Animation:cellSpanningFadeInMove,StartTM"),E=0;for(var a=[],b=0,c=y.length;b<c;b++){var d=y[b],e=d.element;e.style[O.scriptName]="",a.push(e)}for(var b=0,c=z.length;b<c;b++){var d=z[b],e=d.element;e.style[O.scriptName]="",a.push(e)}var f=120;u&&(f*=10),G.push(h.executeTransition(a,{property:"opacity",delay:E,duration:f,timing:"linear",to:1})),v._writeProfilerMark("Animation:cellSpanningFadeInMove,StopTM"),r()}function j(a){v._writeProfilerMark("Animation:setupReflowAnimation,StartTM");for(var b={},d=0,e=T.length;d<e;d++){var f=T[d],g=f.xOffset,i=f.yOffset;f[V]>f[W]?U?i-=N:g-=N:f[V]<f[W]&&(U?i+=Q:g+=Q);var j=f.element;K=Math.min(K,U?g:i),L=Math.max(L,U?g:i);var k=j.parentNode;m.hasClass(k,"win-itemscontainer")||(k=k.parentNode);var l=b[I(k)];if(!l){var n=D(C(k,v.tree));b[I(k)]=l=Math.ceil(n/a)-1}T[d][U?"column":"row"]===l&&(M[I(k)]=k);var q=80;u&&(q*=10),G.push(h.executeTransition(j,{property:O.cssName,delay:B,duration:q,timing:"cubic-bezier(0.1, 0.9, 0.2, 1)",to:"translate("+g+"px,"+i+"px)"}))}for(var r=Object.keys(M),d=0,e=r.length;d<e;d++){var s=M[r[d]];v.rtl&&U?(s.style.paddingLeft=-1*K+"px",s.style.marginLeft=K+"px"):(s.style[U?"paddingRight":"paddingBottom"]=L+"px",s.style[U?"marginRight":"marginBottom"]="-"+L+"px")}for(var t=Object.keys(Z),d=0,e=t.length;d<e;d++)Z[t[d]].classList.add(p._clipClass);c(o),v._writeProfilerMark("Animation:setupReflowAnimation,StopTM")}function n(){for(var a=Object.keys(M),b=0,c=a.length;b<c;b++){var d=M[a[b]];v.rtl&&U?(d.style.paddingLeft="",d.style.marginLeft=""):(d.style[U?"paddingRight":"paddingBottom"]="",d.style[U?"marginRight":"marginBottom"]="")}M={};for(var e=Object.keys(Z),b=0,c=e.length;b<c;b++){var f=Z[e[b]];f.style.overflow="",f.classList.remove(p._clipClass)}}function o(){v._writeProfilerMark("Animation:prepareReflowedItems,StartTM");for(var b=0,c=T.length;b<c;b++){var e=T[b],f=0,g=0;e[V]>e[W]?U?g=R:f=R:e[V]<e[W]&&(U?g=-1*S:f=-1*S),e.element.style[P]="",e.element.style[O.scriptName]="translate("+f+"px,"+g+"px)"}v._writeProfilerMark("Animation:prepareReflowedItems,StopTM"),a.Layout._debugAnimations?d._requestAnimationFrame(function(){q(!0)}):q(!0)}function q(a){var b=200;if(a&&(b=150,B=0,E=0),u&&(b*=10),y.length>0||z.length>0){v._writeProfilerMark("Animation:setupMoveAnimation,StartTM");for(var c=[],d=0,e=z.length;d<e;d++){var f=z[d].element;c.push(f)}for(var d=0,e=y.length;d<e;d++){var f=y[d].element;c.push(f)}G.push(h.executeTransition(c,{property:O.cssName,delay:B,duration:b,timing:"cubic-bezier(0.1, 0.9, 0.2, 1)",to:""})),E+=80,v._writeProfilerMark("Animation:setupMoveAnimation,StopTM")}r()}function r(){if(w.length>0){v._writeProfilerMark("Animation:setupInsertAnimation,StartTM");var a=120;u&&(a*=10),G.push(h.executeTransition(w,[{property:"opacity",delay:E,duration:a,timing:"linear",to:1}])),v._writeProfilerMark("Animation:setupInsertAnimation,StopTM")}c(s)}function s(){v._writeProfilerMark("Animation:cleanupAnimations,StartTM"),n();for(var a=0,b=x.length;a<b;a++){var c=x[a];c.parentNode&&(l._disposeElement(c),c.parentNode.removeChild(c))}v._writeProfilerMark("Animation:cleanupAnimations,StopTM"),aa._animationsRunning=null,t.complete()}var t=new k;if(this._filterInsertedElements(),this._filterMovedElements(),this._filterRemovedElements(),0===this._insertedElements.length&&0===this._removedElements.length&&0===this._itemMoveRecords.length&&0===this._moveRecords.length)return this._resetAnimationCaches(!0),t.complete(),t.promise;this._animationsRunning=t.promise;for(var u=a.Layout._debugAnimations||a.Layout._slowAnimations,v=this._site,w=this._insertedElements,x=this._removedElements,y=this._itemMoveRecords,z=this._moveRecords,A=0,B=0,E=0,F=null,G=[],H=!1,J=!1,K=0,L=0,M={},N=0,Q=0,R=0,S=0,T=[],U="horizontal"===this.orientation,V=U?"oldColumn":"oldRow",W=U?"column":"row",X=U?"oldTop":"oldLeft",Y=U?"top":"left",Z=this._animatingItemsBlocks,$=0,_=y.length;$<_;$++){if(y[$].inCellSpanningGroup){H=!0;break}}var aa=this;return a.Layout._debugAnimations?d._requestAnimationFrame(function(){b()}):b(),this._resetAnimationCaches(!0),t.promise.then(null,function(){n();for(var a=0,b=z.length;a<b;a++){var c=z[a].element;c.style[O.scriptName]="",c.style.opacity=1}for(var a=0,b=y.length;a<b;a++){var c=y[a].element;c.style[O.scriptName]="",c.style.opacity=1}for(var a=0,b=w.length;a<b;a++)w[a].style.opacity=1;for(var a=0,b=x.length;a<b;a++){var c=x[a];c.parentNode&&(l._disposeElement(c),c.parentNode.removeChild(c))}this._animationsRunning=null,t=null,F&&F.cancel()}.bind(this)),t.promise},dragOver:function(a,b,c){var d=this.hitTest(a,b),e=this._groups?this._site.groupIndexFromItemIndex(d.index):0,f=this._site.tree[e].itemsContainer,g=D(f),h=this._groups?this._groups[e].startIndex:0,i=this._getVisibleRange();d.index-=h,d.insertAfterIndex-=h,i.firstIndex=Math.max(i.firstIndex-h-1,0),i.lastIndex=Math.min(i.lastIndex-h+1,g);var j=Math.max(Math.min(g-1,d.insertAfterIndex),-1),k=Math.min(j+1,g);if(c){for(var l=j;l>=i.firstIndex;l--){if(!c._isIncluded(l+h)){j=l;break}l===i.firstIndex&&(j=-1)}for(var l=k;l<i.lastIndex;l++){if(!c._isIncluded(l+h)){k=l;break}l===i.lastIndex-1&&(k=g)}}var m=B(f,k),n=B(f,j);if(this._animatedDragItems)for(var l=0,o=this._animatedDragItems.length;l<o;l++){var p=this._animatedDragItems[l];p&&(p.style[P]=this._site.animationsDisabled?"":Q,p.style[O.scriptName]="")}this._animatedDragItems=[];var q="horizontal"===this.orientation,r=this._inListMode||1===this._itemsPerBar;this._groups&&this._groups[e]instanceof T.CellSpanningGroup&&(r=1===this._groups[e]._slotsPerColumn);var s=0,t=0;!q&&!r||q&&r?s=this._site.rtl?-R:R:t=R,m&&(m.style[P]=this._site.animationsDisabled?"":Q,m.style[O.scriptName]="translate("+s+"px, "+t+"px)",this._animatedDragItems.push(m)),n&&(n.style[P]=this._site.animationsDisabled?"":Q,n.style[O.scriptName]="translate("+-s+"px, -"+t+"px)",this._animatedDragItems.push(n))},dragLeave:function(){if(this._animatedDragItems)for(var a=0,b=this._animatedDragItems.length;a<b;a++)this._animatedDragItems[a].style[P]=this._site.animationsDisabled?"":Q,this._animatedDragItems[a].style[O.scriptName]="";this._animatedDragItems=[]},_setMaxRowsOrColumns:function(a){a===this._maxRowsOrColumns||this._inListMode||(this._sizes&&this._sizes.containerSizeLoaded&&(this._itemsPerBar=Math.floor(this._sizes.maxItemsContainerContentSize/this._sizes.containerCrossSize),a&&(this._itemsPerBar=Math.min(this._itemsPerBar,a)),this._itemsPerBar=Math.max(1,this._itemsPerBar)),this._maxRowsOrColumns=a,this._invalidateLayout())},_getItemPosition:function(a){if(this._groupsEnabled){var b=Math.min(this._groups.length-1,this._site.groupIndexFromItemIndex(a)),c=this._groups[b],d=a-c.startIndex;return this._getItemPositionForAnimations(a,b,d)}return this._getItemPositionForAnimations(a,0,a)},_getRealizationRange:function(){var a=this._site.realizedRange;return{firstIndex:this._firstItemFromRange(a.firstPixel),lastIndex:this._lastItemFromRange(a.lastPixel)}},_getVisibleRange:function(){var a=this._site.visibleRange;return{firstIndex:this._firstItemFromRange(a.firstPixel),lastIndex:this._lastItemFromRange(a.lastPixel)}},_resetAnimationCaches:function(a){if(!a){this._resetStylesForRecords(this._cachedGroupRecords),this._resetStylesForRecords(this._cachedItemRecords),this._resetStylesForRecords(this._cachedHeaderRecords),this._resetStylesForInsertedRecords(this._cachedInsertedItemRecords),this._resetStylesForInsertedRecords(this._cachedInsertedHeaderRecords),this._resetStylesForRemovedRecords(this._cachedRemovedItems),this._resetStylesForRemovedRecords(this._cachedRemovedHeaders);for(var b=Object.keys(this._animatingItemsBlocks),c=0,d=b.length;c<d;c++){var e=this._animatingItemsBlocks[b[c]];e.style.overflow="",e.classList.remove(p._clipClass)}}this._cachedGroupRecords={},this._cachedItemRecords={},this._cachedHeaderRecords={},this._cachedInsertedItemRecords={},this._cachedInsertedHeaderRecords={},this._cachedRemovedItems=[],this._cachedRemovedHeaders=[],this._animatingItemsBlocks={}},_cacheRemovedElements:function(a,b,c,d,e){var f="left";this._site.rtl&&(f="right");var g,h;e?(g=this._sizes.headerContainerOuterX,h=this._sizes.headerContainerOuterY):(g=this._sizes.containerMargins[f],h=this._sizes.containerMargins.top);for(var i=0,j=a.length;i<j;i++){var k=a[i];if(-1===k.newIndex){var l=k.element,m=b[k.oldIndex];m&&(m.element=l,delete b[k.oldIndex],l.style.position="absolute",l.style[P]="",l.style.top=m.oldTop-h+"px",l.style[f]=m.oldLeft-g+"px",l.style.width=m.width+"px",l.style.height=m.height+"px",l.style[O.scriptName]="",this._site.surface.appendChild(l),d.push(m)),c[k.oldIndex]&&delete c[k.oldIndex]}}},_cacheInsertedElements:function(a,b,c){for(var d={},e=0,f=a.length;e<f;e++){var g=a[e],h=b[g.oldIndex];if(h&&delete b[g.oldIndex],h||-1===g.oldIndex||g.moved){c[g.newIndex]&&delete c[g.newIndex];var i=g.element;d[g.newIndex]=i,i.style[P]="",i.style[O.scriptName]="",i.style.opacity=0}}for(var j=Object.keys(b),e=0,f=j.length;e<f;e++)d[j[e]]=b[j[e]];return d},_resetStylesForRecords:function(a){for(var b=Object.keys(a),c=0,d=b.length;c<d;c++){var e=a[b[c]];e.needsToResetTransform&&(e.element.style[O.scriptName]="",e.needsToResetTransform=!1)}},_resetStylesForInsertedRecords:function(a){for(var b=Object.keys(a),c=0,d=b.length;c<d;c++){a[b[c]].style.opacity=1}},_resetStylesForRemovedRecords:function(a){for(var b=0,c=a.length;b<c;b++){var d=a[b].element;d.parentNode&&(l._disposeElement(d),d.parentNode.removeChild(d))}},_updateAnimationCache:function(a,b){function c(a,b){for(var c={},e=0,f=a.length;e<f;e++){var g=a[e],h=b[g.oldIndex];h&&(c[g.newIndex]=h,h.element=g.element,delete b[g.oldIndex])}for(var i=Object.keys(b),e=0,f=i.length;e<f;e++){var j=i[e],k=b[j];k.element&&!d[I(k.element)]||(c[j]=k)}return c}this._resetStylesForRecords(this._cachedItemRecords),this._resetStylesForRecords(this._cachedHeaderRecords),this._resetStylesForInsertedRecords(this._cachedInsertedItemRecords),this._resetStylesForInsertedRecords(this._cachedInsertedHeaderRecords);for(var d={},e=this._getRealizationRange(),f=this._site.tree,g=0,h=0,i=f.length;g<i;g++)A(f[g].itemsContainer,function(a){e.firstIndex<=h&&e.lastIndex>=h&&(d[I(a)]=!0),h++});this._cachedItemRecords=c(a,this._cachedItemRecords),this._cachedHeaderRecords=c(b,this._cachedHeaderRecords),this._cachedInsertedItemRecords=this._cacheInsertedElements(a,this._cachedInsertedItemRecords,this._cachedItemRecords),this._cachedInsertedHeaderRecords=this._cacheInsertedElements(b,this._cachedInsertedHeaderRecords,this._cachedHeaderRecords)},_filterRemovedElements:function(){function a(a,g){for(var h=0,i=a.length;h<i;h++){var j=a[h],k=j.element;j[c]+j[d]-1<e||j[c]>f||!b._site.viewport.contains(k)?k.parentNode&&(l._disposeElement(k),k.parentNode.removeChild(k)):g.push(k)}}if(this._removedElements=[],this._site.animationsDisabled)return this._resetStylesForRemovedRecords(this._cachedRemovedItems),void this._resetStylesForRemovedRecords(this._cachedRemovedHeaders);var b=this,c="horizontal"===this.orientation?"oldLeft":"oldTop",d="horizontal"===this.orientation?"width":"height",e=this._site.scrollbarPos,f=e+this._site.viewportSize[d]-1;a(this._cachedRemovedItems,this._removedElements),a(this._cachedRemovedHeaders,this._removedElements)},_filterInsertedElements:function(){function a(a,d){for(var e=Object.keys(a),f=0,g=e.length;f<g;f++){var h=e[f],i=a[h];h<c.firstIndex||h>c.lastIndex||b._site.viewport.contains(i.element)?i.style.opacity=1:d.push(i)}}if(this._insertedElements=[],this._site.animationsDisabled)return this._resetStylesForInsertedRecords(this._cachedInsertedItemRecords),void this._resetStylesForInsertedRecords(this._cachedInsertedHeaderRecords);var b=this,c=this._getVisibleRange();a(this._cachedInsertedItemRecords,this._insertedElements),a(this._cachedInsertedHeaderRecords,this._insertedElements)},_filterMovedElements:function(){var a=this,b="horizontal"===this.orientation?"oldLeft":"oldTop",c="horizontal"===this.orientation?"left":"top",d="horizontal"===this.orientation?"width":"height",e=this._getRealizationRange(),f=this._site.scrollbarPos,g=f+this._site.viewportSize[d]-1;if(this._itemMoveRecords=[],this._moveRecords=[],!this._site.animationsDisabled)for(var h=this._site.tree,i=0,j=0,k=h.length;j<k;j++){var l=h[j],m=!1;A(l.itemsContainer,function(){if(e.firstIndex<=i&&e.lastIndex>=i){var h=this._cachedItemRecords[i];if(h){(h[b]+h[d]-1>=f&&h[b]<=g||h[c]+h[d]-1>=f&&h[c]<=g)&&a._site.viewport.contains(h.element)&&(m=!0,h.needsToResetTransform&&(this._itemMoveRecords.push(h),delete this._cachedItemRecords[i]))}}i++}.bind(this));var n=j,o=this._cachedHeaderRecords[n];o&&m&&o.needsToResetTransform&&(this._moveRecords.push(o),delete this._cachedHeaderRecords[n]);var p=this._cachedGroupRecords[I(l.itemsContainer.element)];p&&m&&p.needsToResetTransform&&(this._moveRecords.push(p),delete this._cachedGroupRecords[I(l.itemsContainer.element)])}this._resetStylesForRecords(this._cachedGroupRecords),this._resetStylesForRecords(this._cachedItemRecords),this._resetStylesForRecords(this._cachedHeaderRecords)},_getItemPositionForAnimations:function(a,b,c){var d=this._groups[b],e=d.getItemPositionForAnimations(c),f=this._groups[b]?this._groups[b].offset:0,g=this._groupsEnabled&&this._groupHeaderPosition===U.left?this._sizes.headerContainerWidth:0,h=this._groupsEnabled&&this._groupHeaderPosition===U.top?this._sizes.headerContainerHeight:0;return e.left+=this._sizes.layoutOriginX+g+this._sizes.itemsContainerOuterX,e.top+=this._sizes.layoutOriginY+h+this._sizes.itemsContainerOuterY,e[this._horizontal?"left":"top"]+=f,e},_getHeaderPositionForAnimations:function(a){var b;if(this._groupsEnabled){var c=this._sizes.headerContainerWidth-this._sizes.headerContainerOuterWidth,d=this._sizes.headerContainerHeight-this._sizes.headerContainerOuterHeight;this._groupHeaderPosition!==U.left||this._horizontal?this._groupHeaderPosition===U.top&&this._horizontal&&(c=this._groups[a].getItemsContainerSize()-this._sizes.headerContainerOuterWidth):d=this._groups[a].getItemsContainerSize()-this._sizes.headerContainerOuterHeight;var e=this._horizontal?this._groups[a].offset:0,f=this._horizontal?0:this._groups[a].offset;b={top:this._sizes.layoutOriginY+f+this._sizes.headerContainerOuterY,left:this._sizes.layoutOriginX+e+this._sizes.headerContainerOuterX,height:d,width:c}}else b={top:0,left:0,height:0,width:0};return b},_rangeContainsItems:function(a,b){if(0===this._groups.length)return!1;var c=this._groups[this._groups.length-1],d=this._sizes.layoutOrigin+c.offset+this._getGroupSize(c)-1;return b>=0&&a<=d},_itemFromOffset:function(a,b){function c(a){if(!b.wholeItem){var c=e._horizontal?e._site.rtl?"right":"left":"top",d=e._horizontal?e._site.rtl?"left":"right":"bottom";return b.last?a-e._sizes.containerMargins[c]:a+e._sizes.containerMargins[d]}return a}function d(a){return b.last?a-e._getHeaderSizeGroupAdjustment()-e._sizes.itemsContainerOuterStart:a}var e=this;if(0===this._groups.length)return 0;b=b||{},a-=this._sizes.layoutOrigin,a=c(a);var f=this._groupFromOffset(d(a)),g=this._groups[f];return a-=g.offset,a-=this._getHeaderSizeGroupAdjustment(),g.startIndex+g.itemFromOffset(a,b)},_firstItemFromRange:function(a,b){return b=b||{},b.last=0,this._itemFromOffset(a,b)},_lastItemFromRange:function(a,b){return b=b||{},b.last=1,this._itemFromOffset(a,b)},_adjustedKeyForRTL:function(a){return this._site.rtl&&(a===H.leftArrow?a=H.rightArrow:a===H.rightArrow&&(a=H.leftArrow)),a},_adjustedKeyForOrientationAndBars:function(a,b){var c=a;if(b)return a;if(!this._horizontal)switch(c){case H.leftArrow:c=H.upArrow;break;case H.rightArrow:c=H.downArrow;break;case H.upArrow:c=H.leftArrow;break;case H.downArrow:c=H.rightArrow}return 1===this._itemsPerBar&&(c===H.upArrow?c=H.leftArrow:c===H.downArrow&&(c=H.rightArrow)),c},_getAdjacentForPageKeys:function(a,b){var c,d=this._sizes.containerMargins,e="horizontal"===this.orientation?d.left+d.right:d.top+d.bottom,f=this._site.viewportSize["horizontal"===this.orientation?"width":"height"],g=this._site.scrollbarPos,h=g+f-1-d["horizontal"===this.orientation?"right":"bottom"],i=this._firstItemFromRange(g,{wholeItem:!0}),j=this._lastItemFromRange(h,{wholeItem:!1}),k=this._getItemPosition(a.index),l=!1;if((a.index<i||a.index>j)&&(l=!0,g="horizontal"===this.orientation?k.left-e:k.top-e,h=g+f-1,i=this._firstItemFromRange(g,{wholeItem:!0}),j=this._lastItemFromRange(h,{wholeItem:!1})),b===H.pageUp){if(!l&&i!==a.index)return{type:o.ObjectType.item,index:i};var m;m="horizontal"===this.orientation?k.left+k.width+e+d.left:k.top+k.height+e+d.bottom;var n=this._firstItemFromRange(m-f,{wholeItem:!0});c=a.index===n?Math.max(0,a.index-this._itemsPerBar):n}else{if(!l&&j!==a.index)return{type:o.ObjectType.item,index:j};var p;p="horizontal"===this.orientation?k.left-e-d.right:k.top-e-d.bottom;var q=Math.max(0,this._lastItemFromRange(p+f-1,{wholeItem:!0}));c=a.index===q?a.index+this._itemsPerBar:q}return{type:o.ObjectType.item,index:c}},_isCellSpanning:function(a){var b=this._site.groupFromIndex(a),c=this._groupInfo;return!!c&&!!("function"==typeof c?c(b):c).enableCellSpanning},_getGroupInfo:function(a){var b=this._site.groupFromIndex(a),c=this._groupInfo,d=this._sizes.containerMargins,f={enableCellSpanning:!1};if(c="function"==typeof c?c(b):c){if(c.enableCellSpanning&&(+c.cellWidth!==c.cellWidth||+c.cellHeight!==c.cellHeight))throw new e("WinJS.UI.GridLayout.GroupInfoResultIsInvalid",J.groupInfoResultIsInvalid);f={enableCellSpanning:!!c.enableCellSpanning,cellWidth:c.cellWidth+d.left+d.right,cellHeight:c.cellHeight+d.top+d.bottom}}return f},_getItemInfo:function(a){var b;if(this._itemInfo&&"function"==typeof this._itemInfo)b=this._itemInfo(a);else{if(!this._useDefaultItemInfo)throw new e("WinJS.UI.GridLayout.ItemInfoIsInvalid",J.itemInfoIsInvalid);b=this._defaultItemInfo(a)}return i.as(b).then(function(a){if(!a||+a.width!==a.width||+a.height!==a.height)throw new e("WinJS.UI.GridLayout.ItemInfoIsInvalid",J.itemInfoIsInvalid);return a})},_defaultItemInfo:function(a){var b=this;return this._site.renderItem(this._site.itemFromIndex(a)).then(function(c){return b._elementsToMeasure[a]={element:c},b._measureElements()}).then(function(){var c=b._elementsToMeasure[a],d={width:c.width,height:c.height};return delete b._elementsToMeasure[a],d},function(c){return delete b._elementsToMeasure[a],i.wrapError(c)})},_getGroupSize:function(a){var b=0;return this._groupsEnabled&&(this._horizontal&&this._groupHeaderPosition===U.top?b=this._sizes.headerContainerMinWidth:this._horizontal||this._groupHeaderPosition!==U.left||(b=this._sizes.headerContainerMinHeight)),Math.max(b,a.getItemsContainerSize()+this._getHeaderSizeGroupAdjustment())},_groupFromOffset:function(a){return a<this._groups[0].offset?0:this._groupFrom(function(b){return a<b.offset})},_groupFromImpl:function(a,b,c){if(b<a)return null;var d=a+Math.floor((b-a)/2);return c(this._groups[d],d)?this._groupFromImpl(a,d-1,c):d<b&&!c(this._groups[d+1],d+1)?this._groupFromImpl(d+1,b,c):d},_groupFrom:function(a){if(this._groups.length>0){var b=this._groups.length-1;return a(this._groups[b],b)?this._groupFromImpl(0,this._groups.length-1,a):b}return null},_invalidateLayout:function(){this._site&&this._site.invalidateLayout()},_resetMeasurements:function(){this._measuringPromise&&(this._measuringPromise.cancel(),this._measuringPromise=null),this._containerSizeClassName&&(m.removeClass(this._site.surface,this._containerSizeClassName),u(this._containerSizeClassName),this._containerSizeClassName=null),this._sizes=null,this._resetAnimationCaches()},_measureElements:function(){if(!this._measuringElements){var a=this;a._measuringElements=j.schedulePromiseHigh(null,"WinJS.UI.GridLayout._measuringElements").then(function(){a._site._writeProfilerMark("_measureElements,StartTM");var c=a._createMeasuringSurface(),d=b.document.createElement("div"),e=a._site,f=a._measuringElements,g=a._elementsToMeasure,h=!1;d.className=p._itemsContainerClass+" "+p._laidOutClass,d.style.cssText+=";display: -ms-grid;-ms-grid-column: 1;-ms-grid-row: 1";var i,j,k=Object.keys(g);for(j=0,i=k.length;j<i;j++){var l=g[k[j]].element;l.style["-ms-grid-column"]=j+1,l.style["-ms-grid-row"]=j+1,d.appendChild(l)}for(c.appendChild(d),e.viewport.insertBefore(c,e.viewport.firstChild),f.then(null,function(){h=!0}),j=0,i=k.length;j<i&&!h;j++){var n=g[k[j]],o=n.element.querySelector("."+p._itemClass);n.width=m.getTotalWidth(o),n.height=m.getTotalHeight(o)}c.parentNode&&c.parentNode.removeChild(c),f===a._measuringElements&&(a._measuringElements=null),e._writeProfilerMark("_measureElements,StopTM")},function(b){return a._measuringElements=null,i.wrapError(b)})}return this._measuringElements},_ensureEnvInfo:function(){return this._envInfo||(this._envInfo=E(this._site),this._envInfo&&!this._envInfo.supportsCSSGrid&&m.addClass(this._site.surface,p._noCSSGrid)),!!this._envInfo},_createMeasuringSurface:function(){var a=b.document.createElement("div");return a.style.cssText="visibility: hidden;-ms-grid-columns: auto;-ms-grid-rows: auto;-ms-flex-align: start;-webkit-align-items: flex-start;align-items: flex-start",a.className=p._scrollableClass+" "+(this._inListMode?p._listLayoutClass:p._gridLayoutClass),this._envInfo.supportsCSSGrid||m.addClass(a,p._noCSSGrid),this._groupsEnabled&&(this._groupHeaderPosition===U.top?m.addClass(a,p._headerPositionTopClass):m.addClass(a,p._headerPositionLeftClass)),a},_measureItem:function(a){function c(a,e){var e,h=!!e,j={},k=f.rtl?"right":"left";return f.itemCount.then(function(b){return!b||d._groupsEnabled&&!f.groupCount?i.cancel:(e=e||f.itemFromIndex(a),j.container=f.renderItem(e),d._groupsEnabled&&(j.headerContainer=f.renderHeader(d._site.groupFromIndex(f.groupIndexFromItemIndex(a)))),i.join(j))}).then(function(j){function l(){var a=d._horizontal,b=d._groupsEnabled,c=!1;g.then(null,function(){c=!0});var e=G(C),h=f.rtl?f.viewport.offsetWidth-(C.offsetLeft+C.offsetWidth):C.offsetLeft,i=C.offsetTop,l={viewportContentSize:0,surfaceContentSize:0,maxItemsContainerContentSize:0,surfaceOuterHeight:y(o),surfaceOuterWidth:z(o),layoutOriginX:h-e[k],layoutOriginY:i-e.top,itemsContainerOuterHeight:y(q),itemsContainerOuterWidth:z(q),itemsContainerOuterX:x(f.rtl?"Right":"Left",q),itemsContainerOuterY:x("Top",q),itemsContainerMargins:G(q),itemBoxOuterHeight:y(s),itemBoxOuterWidth:z(s),containerOuterHeight:y(j.container),containerOuterWidth:z(j.container),emptyContainerContentHeight:m.getContentHeight(r),emptyContainerContentWidth:m.getContentWidth(r),containerMargins:G(j.container),containerWidth:0,containerHeight:0,containerSizeLoaded:!1};f.header&&(l[a?"layoutOriginX":"layoutOriginY"]+=m[a?"getTotalWidth":"getTotalHeight"](f.header)),b&&(l.headerContainerOuterX=x(f.rtl?"Right":"Left",j.headerContainer),l.headerContainerOuterY=x("Top",j.headerContainer),l.headerContainerOuterWidth=z(j.headerContainer),l.headerContainerOuterHeight=y(j.headerContainer),l.headerContainerWidth=m.getTotalWidth(j.headerContainer),l.headerContainerHeight=m.getTotalHeight(j.headerContainer),l.headerContainerMinWidth=w(j.headerContainer,"minWidth")+l.headerContainerOuterWidth,l.headerContainerMinHeight=w(j.headerContainer,"minHeight")+l.headerContainerOuterHeight);var n={sizes:l,viewportContentWidth:m.getContentWidth(f.viewport),viewportContentHeight:m.getContentHeight(f.viewport),containerContentWidth:m.getContentWidth(j.container),containerContentHeight:m.getContentHeight(j.container),containerWidth:m.getTotalWidth(j.container),containerHeight:m.getTotalHeight(j.container)};return n.viewportCrossSize=n[a?"viewportContentHeight":"viewportContentWidth"],f.readyToMeasure(),c?null:n}function n(){o.parentNode&&o.parentNode.removeChild(o)}var o=d._createMeasuringSurface(),q=b.document.createElement("div"),r=b.document.createElement("div"),s=j.container.querySelector("."+p._itemBoxClass),t=f.groupIndexFromItemIndex(a);r.className=p._containerClass,q.className=p._itemsContainerClass+" "+p._laidOutClass;var u=1,v=1,A=2,B=2,C=q,D=!1;d._inListMode&&d._groupsEnabled&&(d._horizontal&&d._groupHeaderPosition===U.top?(u=2,B=1,A=1,C=j.headerContainer,D=!0):d._horizontal||d._groupHeaderPosition!==U.left||(v=2,B=1,A=1,C=j.headerContainer,D=!0)),q.style.cssText+=";display: "+(d._inListMode?(d._horizontal?"flex":"block")+"; overflow: hidden":"inline-block")+";vertical-align:top;-ms-grid-column: "+v+";-ms-grid-row: "+u,d._inListMode||(j.container.style.display="inline-block"),d._groupsEnabled&&(j.headerContainer.style.cssText+=";display: inline-block;-ms-grid-column: "+B+";-ms-grid-row: "+A,m.addClass(j.headerContainer,p._laidOutClass+" "+p._groupLeaderClass),(d._groupHeaderPosition===U.top&&d._horizontal||d._groupHeaderPosition===U.left&&!d._horizontal)&&m.addClass(q,p._groupLeaderClass)),D&&o.appendChild(j.headerContainer),q.appendChild(j.container),q.appendChild(r),o.appendChild(q),!D&&d._groupsEnabled&&o.appendChild(j.headerContainer),f.viewport.insertBefore(o,f.viewport.firstChild);var E=l();if(!E)return n(),i.cancel;if(d._horizontal&&0===E.viewportContentHeight||!d._horizontal&&0===E.viewportContentWidth)return n(),i.cancel;if(!(h||d._isCellSpanning(t)||0!==E.containerContentWidth&&0!==E.containerContentHeight))return n(),e.then(function(){return c(a,e)});var F=d._sizes=E.sizes;if(Object.defineProperties(F,{surfaceOuterCrossSize:{get:function(){return d._horizontal?F.surfaceOuterHeight:F.surfaceOuterWidth},enumerable:!0},layoutOrigin:{get:function(){return d._horizontal?F.layoutOriginX:F.layoutOriginY},enumerable:!0},itemsContainerOuterSize:{get:function(){return d._horizontal?F.itemsContainerOuterWidth:F.itemsContainerOuterHeight},enumerable:!0},itemsContainerOuterCrossSize:{get:function(){return d._horizontal?F.itemsContainerOuterHeight:F.itemsContainerOuterWidth},enumerable:!0},itemsContainerOuterStart:{get:function(){return d._horizontal?F.itemsContainerOuterX:F.itemsContainerOuterY},enumerable:!0},itemsContainerOuterCrossStart:{get:function(){return d._horizontal?F.itemsContainerOuterY:F.itemsContainerOuterX},enumerable:!0},containerCrossSize:{get:function(){return d._horizontal?F.containerHeight:F.containerWidth},enumerable:!0},containerSize:{get:function(){return d._horizontal?F.containerWidth:F.containerHeight},enumerable:!0}}),!d._isCellSpanning(t)){if(d._inListMode){var H=E.viewportCrossSize-F.surfaceOuterCrossSize-d._getHeaderSizeContentAdjustment()-F.itemsContainerOuterCrossSize;d._horizontal?(F.containerHeight=H,F.containerWidth=E.containerWidth):(F.containerHeight=E.containerHeight,F.containerWidth=H)}else F.containerWidth=E.containerWidth,F.containerHeight=E.containerHeight;F.containerSizeLoaded=!0}d._createContainerStyleRule(),d._viewportSizeChanged(E.viewportCrossSize),n()})}var d=this,e="Layout:measureItem",f=d._site,g=d._measuringPromise;if(!g){f._writeProfilerMark(e+",StartTM");var h=new k;d._measuringPromise=g=h.promise.then(function(){return d._ensureEnvInfo()?c(a):i.cancel}).then(function(){f._writeProfilerMark(e+":complete,info"),f._writeProfilerMark(e+",StopTM")},function(a){return d._measuringPromise=null,f._writeProfilerMark(e+":canceled,info"),f._writeProfilerMark(e+",StopTM"),i.wrapError(a)}),h.complete()}return g},_getHeaderSizeGroupAdjustment:function(){if(this._groupsEnabled){if(this._horizontal&&this._groupHeaderPosition===U.left)return this._sizes.headerContainerWidth;if(!this._horizontal&&this._groupHeaderPosition===U.top)return this._sizes.headerContainerHeight}return 0},_getHeaderSizeContentAdjustment:function(){if(this._groupsEnabled){if(this._horizontal&&this._groupHeaderPosition===U.top)return this._sizes.headerContainerHeight;if(!this._horizontal&&this._groupHeaderPosition===U.left)return this._sizes.headerContainerWidth}return 0},_getViewportCrossSize:function(){return this._site.viewportSize[this._horizontal?"height":"width"]},_viewportSizeChanged:function(a){var b=this._sizes;b.viewportContentSize=a,b.surfaceContentSize=a-b.surfaceOuterCrossSize,b.maxItemsContainerContentSize=b.surfaceContentSize-b.itemsContainerOuterCrossSize-this._getHeaderSizeContentAdjustment(),b.containerSizeLoaded&&!this._inListMode?(this._itemsPerBar=Math.floor(b.maxItemsContainerContentSize/b.containerCrossSize),this.maximumRowsOrColumns&&(this._itemsPerBar=Math.min(this._itemsPerBar,this.maximumRowsOrColumns)),this._itemsPerBar=Math.max(1,this._itemsPerBar)):(this._inListMode&&(b[this._horizontal?"containerHeight":"containerWidth"]=b.maxItemsContainerContentSize),this._itemsPerBar=1),this._resetAnimationCaches()},_createContainerStyleRule:function(){var a=this._sizes;if(!this._containerSizeClassName&&a.containerSizeLoaded&&(0===a.emptyContainerContentHeight||0===a.emptyContainerContentWidth)){var b=a.containerWidth-a.containerOuterWidth+"px",c=a.containerHeight-a.containerOuterHeight+"px";this._inListMode&&(this._horizontal?c="calc(100% - "+(a.containerMargins.top+a.containerMargins.bottom)+"px)":b="auto"),this._containerSizeClassName||(this._containerSizeClassName=r("containersize"),m.addClass(this._site.surface,this._containerSizeClassName));var d="."+p._containerClass,e="width:"+b+";height:"+c+";";t(this._containerSizeClassName,this._site,d,e)}},_ensureContainerSize:function(a){var b=this._sizes;if(b.containerSizeLoaded||this._ensuringContainerSize)return this._ensuringContainerSize?this._ensuringContainerSize:i.wrap();var c;if(this._itemInfo&&"function"==typeof this._itemInfo||!this._useDefaultItemInfo)c=this._getItemInfo();else{var d=b.containerMargins;c=i.wrap({width:a.groupInfo.cellWidth-d.left-d.right,height:a.groupInfo.cellHeight-d.top-d.bottom})}var e=this;return this._ensuringContainerSize=c.then(function(a){b.containerSizeLoaded=!0,b.containerWidth=a.width+b.itemBoxOuterWidth+b.containerOuterWidth,b.containerHeight=a.height+b.itemBoxOuterHeight+b.containerOuterHeight,e._inListMode?e._itemsPerBar=1:(e._itemsPerBar=Math.floor(b.maxItemsContainerContentSize/b.containerCrossSize),e.maximumRowsOrColumns&&(e._itemsPerBar=Math.min(e._itemsPerBar,e.maximumRowsOrColumns)),e._itemsPerBar=Math.max(1,e._itemsPerBar)),e._createContainerStyleRule()}),c.done(function(){e._ensuringContainerSize=null},function(){e._ensuringContainerSize=null}),c},_indexToCoordinate:function(a,b){b=b||this._itemsPerBar;var c=Math.floor(a/b);return this._horizontal?{column:c,row:a-c*b}:{row:c,column:a-c*b}},_rangeForGroup:function(a,b){var c=a.startIndex,d=c+a.count-1;return!b||b.firstIndex>d||b.lastIndex<c?null:{firstIndex:Math.max(0,b.firstIndex-c),lastIndex:Math.min(a.count-1,b.lastIndex-c)}},_syncDomWithGroupHeaderPosition:function(a){if(this._groupsEnabled&&this._oldGroupHeaderPosition!==this._groupHeaderPosition){var b,c=a.length;if(this._oldGroupHeaderPosition===U.top)if(m.removeClass(this._site.surface,p._headerPositionTopClass),this._horizontal)for(b=0;b<c;b++)a[b].header.style.maxWidth="",m.removeClass(a[b].itemsContainer.element,p._groupLeaderClass);else this._site.surface.style.msGridRows="";else if(this._oldGroupHeaderPosition===U.left){if(m.removeClass(this._site.surface,p._headerPositionLeftClass),!this._horizontal)for(b=0;b<c;b++)a[b].header.style.maxHeight="",m.removeClass(a[b].itemsContainer.element,p._groupLeaderClass);this._site.surface.style.msGridColumns=""}if(this._groupHeaderPosition===U.top){if(m.addClass(this._site.surface,p._headerPositionTopClass),this._horizontal)for(b=0;b<c;b++)m.addClass(a[b].itemsContainer.element,p._groupLeaderClass)}else if(m.addClass(this._site.surface,p._headerPositionLeftClass),!this._horizontal)for(b=0;b<c;b++)m.addClass(a[b].itemsContainer.element,p._groupLeaderClass);this._oldGroupHeaderPosition=this._groupHeaderPosition}},_layoutGroup:function(a){var b=this._groups[a],c=this._site.tree[a],d=c.header,e=c.itemsContainer.element,f=this._sizes,g=b.getItemsContainerCrossSize();if(this._groupsEnabled){if(this._horizontal)if(this._groupHeaderPosition===U.top){var h=f.headerContainerMinWidth-f.headerContainerOuterWidth,i=b.getItemsContainerSize()-f.headerContainerOuterWidth;d.style.maxWidth=Math.max(h,i)+"px",this._envInfo.supportsCSSGrid?(d.style.msGridColumn=a+1,e.style.msGridColumn=a+1):(d.style.height=f.headerContainerHeight-f.headerContainerOuterHeight+"px",e.style.height=g-f.itemsContainerOuterHeight+"px",e.style.marginBottom=f.itemsContainerMargins.bottom+(f.maxItemsContainerContentSize-g+f.itemsContainerOuterHeight)+"px"),m.addClass(e,p._groupLeaderClass)}else this._envInfo.supportsCSSGrid?(d.style.msGridColumn=2*a+1,e.style.msGridColumn=2*a+2):(d.style.width=f.headerContainerWidth-f.headerContainerOuterWidth+"px",d.style.height=g-f.headerContainerOuterHeight+"px",e.style.height=g-f.itemsContainerOuterHeight+"px");else if(this._groupHeaderPosition===U.left){var j=f.headerContainerMinHeight-f.headerContainerOuterHeight,k=b.getItemsContainerSize()-f.headerContainerOuterHeight;d.style.maxHeight=Math.max(j,k)+"px",this._envInfo.supportsCSSGrid?(d.style.msGridRow=a+1,e.style.msGridRow=a+1):(d.style.width=f.headerContainerWidth-f.headerContainerOuterWidth+"px",e.style.width=g-f.itemsContainerOuterWidth+"px",e.style["margin"+(this._site.rtl?"Left":"Right")]=f.itemsContainerMargins[this._site.rtl?"left":"right"]+(f.maxItemsContainerContentSize-g+f.itemsContainerOuterWidth)+"px"),m.addClass(e,p._groupLeaderClass)}else d.style.msGridRow=2*a+1,this._inListMode?d.style.height=f.headerContainerHeight-f.headerContainerOuterHeight+"px":this._envInfo.supportsCSSGrid?e.style.msGridRow=2*a+2:(d.style.height=f.headerContainerHeight-f.headerContainerOuterHeight+"px",d.style.width=g-f.headerContainerOuterWidth+"px",e.style.width=g-f.itemsContainerOuterWidth+"px");m.addClass(d,p._laidOutClass+" "+p._groupLeaderClass)}m.addClass(e,p._laidOutClass)}},{_barsPerItemsBlock:4})}),_LegacyLayout:c.Namespace._lazy(function(){return c.Class.derive(a._LayoutCommon,null,{disableBackdrop:{get:function(){return this._backdropDisabled||!1},set:function(a){if(m._deprecated(q.disableBackdropIsDeprecated),a=!!a,this._backdropDisabled!==a&&(this._backdropDisabled=a,this._disableBackdropClassName&&(u(this._disableBackdropClassName),this._site&&m.removeClass(this._site.surface,this._disableBackdropClassName),this._disableBackdropClassName=null),this._disableBackdropClassName=r("disablebackdrop"),this._site&&m.addClass(this._site.surface,this._disableBackdropClassName),a)){t(this._disableBackdropClassName,this._site,".win-container.win-backdrop","background-color:transparent;")}}},backdropColor:{get:function(){return this._backdropColor||"rgba(155,155,155,0.23)"},set:function(a){if(m._deprecated(q.backdropColorIsDeprecated),a&&this._backdropColor!==a){this._backdropColor=a,this._backdropColorClassName&&(u(this._backdropColorClassName),this._site&&m.removeClass(this._site.surface,this._backdropColorClassName),this._backdropColorClassName=null),this._backdropColorClassName=r("backdropcolor"),this._site&&m.addClass(this._site.surface,this._backdropColorClassName);var b="background-color:"+a+";";t(this._backdropColorClassName,this._site,".win-container.win-backdrop",b)}}}})}),GridLayout:c.Namespace._lazy(function(){return c.Class.derive(a._LegacyLayout,function(a){a=a||{},this.itemInfo=a.itemInfo,this.groupInfo=a.groupInfo,this._maxRowsOrColumns=0,this._useDefaultItemInfo=!0,this._elementsToMeasure={},this._groupHeaderPosition=a.groupHeaderPosition||U.top,this.orientation=a.orientation||"horizontal",a.maxRows&&(this.maxRows=+a.maxRows),a.maximumRowsOrColumns&&(this.maximumRowsOrColumns=+a.maximumRowsOrColumns)},{maximumRowsOrColumns:{get:function(){return this._maxRowsOrColumns},set:function(a){this._setMaxRowsOrColumns(a)}},maxRows:{get:function(){return this.maximumRowsOrColumns},set:function(a){m._deprecated(q.maxRowsIsDeprecated),this.maximumRowsOrColumns=a}},itemInfo:{enumerable:!0,get:function(){return this._itemInfo},set:function(a){a&&m._deprecated(q.itemInfoIsDeprecated),this._itemInfo=a,this._invalidateLayout()}},groupInfo:{enumerable:!0,get:function(){return this._groupInfo},set:function(a){a&&m._deprecated(q.groupInfoIsDeprecated),this._groupInfo=a,this._invalidateLayout()}}})})});var T=c.Namespace.defineWithParent(null,null,{UniformGroupBase:c.Namespace._lazy(function(){return c.Class.define(null,{cleanUp:function(){},itemFromOffset:function(a,b){b=b||{};var c=this._layout._sizes;a-=c.itemsContainerOuterStart,b.wholeItem&&(a+=(b.last?-1:1)*(c.containerSize-1));var d=this.count-1,e=Math.floor(d/this._layout._itemsPerBar),f=v(0,e,Math.floor(a/c.containerSize)),g=(f+b.last)*this._layout._itemsPerBar-b.last;return v(0,this.count-1,g)},hitTest:function(a,b){var c=this._layout._horizontal,d=this._layout._itemsPerBar,e=this._layout._inListMode||1===d,f=c?a:b,g=c?b:a,h=this._layout._sizes;f-=h.itemsContainerOuterStart,g-=h.itemsContainerOuterCrossStart;var i,j=Math.floor(f/h.containerSize),k=v(0,d-1,Math.floor(g/h.containerCrossSize)),l=Math.max(-1,j*d+k);if(i=!c&&e||c&&!e?(b-h.containerHeight/2)/h.containerHeight:(a-h.containerWidth/2)/h.containerWidth,e)return i=Math.floor(i),{index:l,insertAfterIndex:i>=0&&l>=0?i:-1};i=v(-1,d-1,i);var m;return m=i<0?j*d-1:j*d+Math.floor(i),{index:v(-1,this.count-1,l),insertAfterIndex:v(-1,this.count-1,m)}},getAdjacent:function(a,b){var c,d=a.index,e=Math.floor(d/this._layout._itemsPerBar),f=d%this._layout._itemsPerBar;switch(b){case H.upArrow:c=0===f?"boundary":d-1;break;case H.downArrow:var g=d===this.count-1,h=this._layout._itemsPerBar>1&&f===this._layout._itemsPerBar-1;c=g||h?"boundary":d+1;break;case H.leftArrow:c=0===e&&this._layout._itemsPerBar>1?"boundary":d-this._layout._itemsPerBar;break;case H.rightArrow:var i=this.count-1;c=e===Math.floor(i/this._layout._itemsPerBar)?"boundary":Math.min(d+this._layout._itemsPerBar,this.count-1)}return"boundary"===c?c:{type:o.ObjectType.item,index:c}},getItemsContainerSize:function(){var a=this._layout._sizes;return Math.ceil(this.count/this._layout._itemsPerBar)*a.containerSize+a.itemsContainerOuterSize},getItemsContainerCrossSize:function(){var a=this._layout._sizes;return this._layout._itemsPerBar*a.containerCrossSize+a.itemsContainerOuterCrossSize},getItemPositionForAnimations:function(a){var b=this._layout._sizes,c=this._layout._site.rtl?"right":"left",d=this._layout._sizes.containerMargins,e=this._layout._indexToCoordinate(a);return{row:e.row,column:e.column,top:d.top+e.row*b.containerHeight,left:d[c]+e.column*b.containerWidth,height:b.containerHeight-b.containerMargins.top-b.containerMargins.bottom,width:b.containerWidth-b.containerMargins.left-b.containerMargins.right}}})}),UniformGroup:c.Namespace._lazy(function(){return c.Class.derive(T.UniformGroupBase,function(a,b){this._layout=a,this._itemsContainer=b,m.addClass(this._itemsContainer,a._inListMode?p._uniformListLayoutClass:p._uniformGridLayoutClass)},{cleanUp:function(a){a||(m.removeClass(this._itemsContainer,p._uniformGridLayoutClass),m.removeClass(this._itemsContainer,p._uniformListLayoutClass),this._itemsContainer.style.height=this._itemsContainer.style.width=""),this._itemsContainer=null,this._layout=null,this.groupInfo=null,this.startIndex=null,this.offset=null,this.count=null},prepareLayout:function(a,b,c,d){return this.groupInfo=d.groupInfo,this.startIndex=d.startIndex,this.count=a,this._layout._ensureContainerSize(this)},layoutRealizedRange:function(){var a=this._layout._sizes;this._itemsContainer.style[this._layout._horizontal?"width":"height"]=this.getItemsContainerSize()-a.itemsContainerOuterSize+"px",this._itemsContainer.style[this._layout._horizontal?"height":"width"]=this._layout._inListMode?a.maxItemsContainerContentSize+"px":this._layout._itemsPerBar*a.containerCrossSize+"px"},layoutUnrealizedRange:function(){return i.wrap()}})}),UniformFlowGroup:c.Namespace._lazy(function(){return c.Class.derive(T.UniformGroupBase,function(a,b){this._layout=a,this._itemsContainer=b.element,m.addClass(this._itemsContainer,a._inListMode?p._uniformListLayoutClass:p._uniformGridLayoutClass)},{cleanUp:function(a){a||(m.removeClass(this._itemsContainer,p._uniformListLayoutClass),m.removeClass(this._itemsContainer,p._uniformGridLayoutClass),this._itemsContainer.style.height="")},layout:function(){this._layout._site._writeProfilerMark("Layout:_UniformFlowGroup:setItemsContainerHeight,info"),this._itemsContainer.style.height=this.count*this._layout._sizes.containerHeight+"px"}})}),CellSpanningGroup:c.Namespace._lazy(function(){return c.Class.define(function(a,b){this._layout=a,this._itemsContainer=b,m.addClass(this._itemsContainer,p._cellSpanningGridLayoutClass),this.resetMap()},{cleanUp:function(a){a||(this._cleanContainers(),m.removeClass(this._itemsContainer,p._cellSpanningGridLayoutClass),this._itemsContainer.style.cssText=""),this._itemsContainer=null,this._layoutPromise&&(this._layoutPromise.cancel(),this._layoutPromise=null),this.resetMap(),this._slotsPerColumn=null,this._offScreenSlotsPerColumn=null,this._items=null,this._layout=null,this._containersToHide=null,this.groupInfo=null,this.startIndex=null,this.offset=null,this.count=null},prepareLayoutWithCopyOfTree:function(a,b,c,d){var e,f=this;if(this._containersToHide={},b)for(e=b.firstIndex;e<=b.lastIndex;e++)this._containersToHide[I(c._items[e])]=c._items[e];this.groupInfo=d.groupInfo,this.startIndex=d.startIndex,this.count=a.items.length,this._items=a.items,this._slotsPerColumn=Math.floor(this._layout._sizes.maxItemsContainerContentSize/this.groupInfo.cellHeight),this._layout.maximumRowsOrColumns&&(this._slotsPerColumn=Math.min(this._slotsPerColumn,this._layout.maximumRowsOrColumns)),this._slotsPerColumn=Math.max(this._slotsPerColumn,1),this.resetMap();var g=new Array(this.count);for(e=0;e<this.count;e++)g[e]=this._layout._getItemInfo(this.startIndex+e);return i.join(g).then(function(a){a.forEach(function(a,b){f.addItemToMap(b,a)})})},layoutRealizedRange:function(a,b){if(b){var c,d=Math.max(a,b.firstIndex);for(c=d;c<=b.lastIndex;c++)this._layoutItem(c),delete this._containersToHide[I(this._items[c])]}Object.keys(this._containersToHide).forEach(function(a){m.removeClass(this._containersToHide[a],p._laidOutClass)}.bind(this)),this._containersToHide={},this._itemsContainer.style.cssText+=";width:"+(this.getItemsContainerSize()-this._layout._sizes.itemsContainerOuterSize)+"px;height:"+this._layout._sizes.maxItemsContainerContentSize+"px;-ms-grid-columns: ("+this.groupInfo.cellWidth+"px)["+this.getColumnCount()+"];-ms-grid-rows: ("+this.groupInfo.cellHeight+"px)["+(this._slotsPerColumn+this._offScreenSlotsPerColumn)+"]"},layoutUnrealizedRange:function(a,b,c){var d,e=this;return e._layoutPromise=new i(function(f){function g(){d=null,f()}function h(a){return j.schedule(a,j.Priority.normal,null,"WinJS.UI.GridLayout.CellSpanningGroup.LayoutUnrealizedRange")}if(b){var i=!1,k=b.firstIndex-1,l=Math.max(a,b.lastIndex+1);l=Math.max(k+1,l),d=h(function b(c){for(;!i;){if(c.shouldYield)return void c.setWork(b);i=!0,k>=a&&(e._layoutItem(k),k--,i=!1),l<e.count&&(e._layoutItem(l),l++,i=!1)}g()})}else if(c){var m=e.count-1;d=h(function b(c){for(;m>=a;m--){if(c.shouldYield)return void c.setWork(b);e._layoutItem(m)}g()})}else{var m=a;d=h(function a(b){for(;m<e.count;m++){if(b.shouldYield)return void b.setWork(a);e._layoutItem(m)}g()})}},function(){d&&d.cancel(),d=null}),e._layoutPromise},itemFromOffset:function(a,b){b=b||{};var c=this._layout._sizes,d=c.containerMargins;a-=c.itemsContainerOuterX,a-=(b.last?1:-1)*d[b.last?"left":"right"];var e=this.indexFromOffset(a,b.wholeItem,b.last).item;return v(0,this.count-1,e)},getAdjacent:function(a,b){var c,d;c=d=a.index;var e,f,g;g=this.lastAdjacent===c?this.lastInMapIndex:this.findItem(c);do{var h=Math.floor(g/this._slotsPerColumn),i=g-h*this._slotsPerColumn,j=Math.floor((this.occupancyMap.length-1)/this._slotsPerColumn);switch(b){case H.upArrow:if(!(i>0))return{type:o.ObjectType.item,index:d};g--;break;case H.downArrow:if(!(i+1<this._slotsPerColumn))return{type:o.ObjectType.item,index:d};g++;break;case H.leftArrow:g=h>0?g-this._slotsPerColumn:-1;break;case H.rightArrow:g=h<j?g+this._slotsPerColumn:this.occupancyMap.length}f=g>=0&&g<this.occupancyMap.length,f&&(e=this.occupancyMap[g]?this.occupancyMap[g].index:void 0)}while(f&&(c===e||void 0===e));return this.lastAdjacent=e,this.lastInMapIndex=g,f?{type:o.ObjectType.item,index:e}:"boundary"},hitTest:function(a,b){var c=this._layout._sizes,d=0;if(a-=c.itemsContainerOuterX,b-=c.itemsContainerOuterY,this.occupancyMap.length>0){for(var e=this.indexFromOffset(a,!1,0),f=Math.min(this._slotsPerColumn-1,Math.floor(b/this.groupInfo.cellHeight)),g=e.index,h=g;f-- >0;)g++,this.occupancyMap[g]&&(h=g);this.occupancyMap[h]||h--,d=this.occupancyMap[h].index}var i=this.getItemSize(d),j=i.column*this.groupInfo.cellWidth,k=i.row*this.groupInfo.cellHeight,l=1===this._slotsPerColumn,m=d;return(l&&a<j+i.contentWidth/2||!l&&b<k+i.contentHeight/2)&&m--,{type:o.ObjectType.item,index:v(0,this.count-1,d),insertAfterIndex:v(-1,this.count-1,m)}},getItemsContainerSize:function(){var a=this._layout._sizes;return this.getColumnCount()*this.groupInfo.cellWidth+a.itemsContainerOuterSize},getItemsContainerCrossSize:function(){var a=this._layout._sizes;return a.maxItemsContainerContentSize+a.itemsContainerOuterCrossSize},getItemPositionForAnimations:function(a){var b=this._layout._site.rtl?"right":"left",c=this._layout._sizes.containerMargins,d=this.getItemSize(a),e=this.groupInfo;return{row:d.row,column:d.column,top:c.top+d.row*e.cellHeight,left:c[b]+d.column*e.cellWidth,height:d.contentHeight,width:d.contentWidth}},_layoutItem:function(a){var b=this.getItemSize(a);return this._items[a].style.cssText+=";-ms-grid-row:"+(b.row+1)+";-ms-grid-column:"+(b.column+1)+";-ms-grid-row-span:"+b.rows+";-ms-grid-column-span:"+b.columns+";height:"+b.contentHeight+"px;width:"+b.contentWidth+"px",m.addClass(this._items[a],p._laidOutClass),this._items[a]},_cleanContainers:function(){var a,b=this._items,c=b.length;for(a=0;a<c;a++)b[a].style.cssText="",m.removeClass(b[a],p._laidOutClass)},getColumnCount:function(){return Math.ceil(this.occupancyMap.length/this._slotsPerColumn)},getOccupancyMapItemCount:function(){var a=-1;return this.occupancyMap.forEach(function(b){b.index>a&&(a=b.index)}),a+1},coordinateToIndex:function(a,b){return a*this._slotsPerColumn+b},markSlotAsFull:function(a,b){for(var c=this._layout._indexToCoordinate(a,this._slotsPerColumn),d=c.row+b.rows,e=c.row;e<d&&e<this._slotsPerColumn;e++)for(var f=c.column,g=c.column+b.columns;f<g;f++)this.occupancyMap[this.coordinateToIndex(f,e)]=b;this._offScreenSlotsPerColumn=Math.max(this._offScreenSlotsPerColumn,d-this._slotsPerColumn)},isSlotEmpty:function(a,b,c){for(var d=b,e=b+a.rows;d<e;d++)for(var f=c,g=c+a.columns;f<g;f++)if(d>=this._slotsPerColumn||void 0!==this.occupancyMap[this.coordinateToIndex(f,d)])return!1;return!0},findEmptySlot:function(a,b,c){var d=this._layout._indexToCoordinate(a,this._slotsPerColumn),e=d.row,f=Math.floor((this.occupancyMap.length-1)/this._slotsPerColumn);if(c){for(var g=d.column+1;g<=f;g++)if(this.isSlotEmpty(b,0,g))return this.coordinateToIndex(g,0)}else for(var g=d.column;g<=f;g++){for(var h=e;h<this._slotsPerColumn;h++)if(this.isSlotEmpty(b,h,g))return this.coordinateToIndex(g,h);e=0}return(f+1)*this._slotsPerColumn},findItem:function(a){for(var b=a,c=this.occupancyMap.length;b<c;b++){var d=this.occupancyMap[b];if(d&&d.index===a)return b}return b},getItemSize:function(a){var b=this.findItem(a),c=this.occupancyMap[b],d=this._layout._indexToCoordinate(b,this._slotsPerColumn);return a===c.index?{row:d.row,column:d.column,contentWidth:c.contentWidth,contentHeight:c.contentHeight,columns:c.columns,rows:c.rows}:null},resetMap:function(){this.occupancyMap=[],this.lastAdded=0,this._offScreenSlotsPerColumn=0},addItemToMap:function(a,b){function c(a,b){var c=d.findEmptySlot(d.lastAdded,a,b);d.lastAdded=c,d.markSlotAsFull(c,a)}var d=this,e=d.groupInfo,f=d._layout._sizes.containerMargins;c({index:a,contentWidth:b.width,contentHeight:b.height,columns:Math.max(1,Math.ceil((b.width+f.left+f.right)/e.cellWidth)),rows:Math.max(1,Math.ceil((b.height+f.top+f.bottom)/e.cellHeight))},b.newColumn)},indexFromOffset:function(a,b,c){var d=0,e=0,f=this.groupInfo,g=0;if(this.occupancyMap.length>0){if(e=this.getOccupancyMapItemCount()-1,d=Math.ceil((this.occupancyMap.length-1)/this._slotsPerColumn)*f.cellWidth,a<d){for(var h=this._slotsPerColumn,g=(Math.max(0,Math.floor(a/f.cellWidth))+c)*this._slotsPerColumn-c;!this.occupancyMap[g]&&h-- >0;)g+=c>0?-1:1;return{index:g,item:this.occupancyMap[g].index}}g=this.occupancyMap.length-1}return{index:g,item:e+(Math.max(0,Math.floor((a-d)/f.cellWidth))+c)*this._slotsPerColumn-c}}})})});c.Namespace._moduleDefine(a,"WinJS.UI",{ListLayout:c.Namespace._lazy(function(){return c.Class.derive(a._LegacyLayout,function(a){a=a||{},this._itemInfo={},this._groupInfo={},this._groupHeaderPosition=a.groupHeaderPosition||U.top,this._inListMode=!0,this.orientation=a.orientation||"vertical"},{initialize:function(b,c){m.addClass(b.surface,p._listLayoutClass),a._LegacyLayout.prototype.initialize.call(this,b,c)},uninitialize:function(){this._site&&m.removeClass(this._site.surface,p._listLayoutClass),a._LegacyLayout.prototype.uninitialize.call(this)},layout:function(b,c,d,e){return this._groupsEnabled||this._horizontal?a._LegacyLayout.prototype.layout.call(this,b,c,d,e):this._layoutNonGroupedVerticalList(b,c,d,e)},_layoutNonGroupedVerticalList:function(a,b,c,d){var e=this,f="Layout:_layoutNonGroupedVerticalList";return e._site._writeProfilerMark(f+",StartTM"),this._layoutPromise=e._measureItem(0).then(function(){m[e._usingStructuralNodes?"addClass":"removeClass"](e._site.surface,p._structuralNodesClass),m[e._envInfo.nestedFlexTooLarge||e._envInfo.nestedFlexTooSmall?"addClass":"removeClass"](e._site.surface,p._singleItemsBlockClass),e._sizes.viewportContentSize!==e._getViewportCrossSize()&&e._viewportSizeChanged(e._getViewportCrossSize()),e._cacheRemovedElements(c,e._cachedItemRecords,e._cachedInsertedItemRecords,e._cachedRemovedItems,!1),e._cacheRemovedElements(d,e._cachedHeaderRecords,e._cachedInsertedHeaderRecords,e._cachedRemovedHeaders,!0);var b=a[0].itemsContainer,g=new T.UniformFlowGroup(e,b);e._groups=[g],g.groupInfo={enableCellSpanning:!1},g.startIndex=0,g.count=D(b),g.offset=0,g.layout(),e._site._writeProfilerMark(f+":setSurfaceWidth,info"),e._site.surface.style.width=e._sizes.surfaceContentSize+"px",e._layoutAnimations(c,d),e._site._writeProfilerMark(f+":complete,info"),e._site._writeProfilerMark(f+",StopTM")},function(a){return e._site._writeProfilerMark(f+":canceled,info"),e._site._writeProfilerMark(f+",StopTM"),i.wrapError(a)}),{realizedRangeComplete:this._layoutPromise,layoutComplete:this._layoutPromise}},numberOfItemsPerItemsBlock:{get:function(){var b=this;return this._measureItem(0).then(function(){return b._envInfo.nestedFlexTooLarge||b._envInfo.nestedFlexTooSmall?(b._usingStructuralNodes=!0,Number.MAX_VALUE):(b._usingStructuralNodes=a.ListLayout._numberOfItemsPerItemsBlock>0,a.ListLayout._numberOfItemsPerItemsBlock)})}}},{_numberOfItemsPerItemsBlock:10})}),CellSpanningLayout:c.Namespace._lazy(function(){return c.Class.derive(a._LayoutCommon,function(a){a=a||{},this._itemInfo=a.itemInfo,this._groupInfo=a.groupInfo,this._groupHeaderPosition=a.groupHeaderPosition||U.top,this._horizontal=!0,this._cellSpanning=!0},{maximumRowsOrColumns:{get:function(){return this._maxRowsOrColumns},set:function(a){this._setMaxRowsOrColumns(a)}},itemInfo:{enumerable:!0,get:function(){return this._itemInfo},set:function(a){this._itemInfo=a,this._invalidateLayout()}},groupInfo:{enumerable:!0,get:function(){return this._groupInfo},set:function(a){this._groupInfo=a,this._invalidateLayout()}},orientation:{enumerable:!0,get:function(){return"horizontal"}}})}),_LayoutWrapper:c.Namespace._lazy(function(){return c.Class.define(function(a){this.defaultAnimations=!0,this.initialize=function(b,c){a.initialize(b,c)},this.hitTest=function(b,c){return a.hitTest(b,c)},a.uninitialize&&(this.uninitialize=function(){a.uninitialize()}),"numberOfItemsPerItemsBlock"in a&&Object.defineProperty(this,"numberOfItemsPerItemsBlock",{get:function(){return a.numberOfItemsPerItemsBlock}}),a._getItemPosition&&(this._getItemPosition=function(b){return a._getItemPosition(b)}),a.itemsFromRange&&(this.itemsFromRange=function(b,c){return a.itemsFromRange(b,c)}),a.getAdjacent&&(this.getAdjacent=function(b,c){return a.getAdjacent(b,c)}),a.dragOver&&(this.dragOver=function(b,c,d){return a.dragOver(b,c,d)}),a.dragLeave&&(this.dragLeave=function(){return a.dragLeave()});var b={enumerable:!0,get:function(){return"vertical"}};if(void 0!==a.orientation&&(b.get=function(){return a.orientation},b.set=function(b){a.orientation=b}),Object.defineProperty(this,"orientation",b),(a.setupAnimations||a.executeAnimations)&&(this.defaultAnimations=!1,this.setupAnimations=function(){return a.setupAnimations()},this.executeAnimations=function(){return a.executeAnimations()}),a.layout)if(this.defaultAnimations){var c=this;this.layout=function(b,d,e,f){var g,h=F(a.layout(b,d,[],[]));return h.realizedRangeComplete.then(function(){g=!0}),g&&c._layoutAnimations(e,f),h}}else this.layout=function(b,c,d,e){return F(a.layout(b,c,d,e))}},{uninitialize:function(){},numberOfItemsPerItemsBlock:{get:function(){}},layout:function(a,b,c,d){return this.defaultAnimations&&this._layoutAnimations(c,d),F()},itemsFromRange:function(){return{firstIndex:0,lastIndex:Number.MAX_VALUE}},getAdjacent:function(a,b){switch(b){case H.pageUp:case H.upArrow:case H.leftArrow:return{type:a.type,index:a.index-1};case H.downArrow:case H.rightArrow:case H.pageDown:return{type:a.type,index:a.index+1}}},dragOver:function(){},dragLeave:function(){},setupAnimations:function(){},executeAnimations:function(){},_getItemPosition:function(){},_layoutAnimations:function(){}})})});var U={left:"left",top:"top"};c.Namespace._moduleDefine(a,"WinJS.UI",{HeaderPosition:U,_getMargins:G})}),d("WinJS/Controls/ListView/_VirtualizeContentsView",["exports","../../Core/_Global","../../Core/_Base","../../Core/_BaseUtils","../../Promise","../../_Signal","../../Scheduler","../../Utilities/_Dispose","../../Utilities/_ElementUtilities","../../Utilities/_SafeHtml","../../Utilities/_UI","../ItemContainer/_Constants","../ItemContainer/_ItemEventsHandler","./_Helpers","./_ItemsContainer"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){"use strict";function p(a,b){i._setAttribute(a,"aria-flowto",b.id),i._setAttribute(b,"x-ms-aria-flowfrom",a.id)}c.Namespace._moduleDefine(a,"WinJS.UI",{_VirtualizeContentsView:c.Namespace._lazy(function(){function a(b){for(var c=b.job._workItems;c.length&&!b.shouldYield;)c.shift()();b.setWork(a),c.length||b.job.pause()}function q(b,c){var d=g.schedule(a,b,null,c);return d._workItems=[],d.addWork=function(a,b){b?this._workItems.unshift(a):this._workItems.push(a),this.resume()},d.clearWork=function(){this._workItems.length=0},d.dispose=function(){this.cancel(),this._workItems.length=0},d}function r(a){return a._zooming||a._pinching}function s(a,b){return a._isZombie()?e.wrap():r(a)?(+b!==b&&(b=v._waitForSeZoTimeoutDuration),e.timeout(v._waitForSeZoIntervalDuration).then(function(){return(b-=v._waitForSeZoIntervalDuration)<=0||s(a,b)})):e.wrap()}function t(a){if("number"==typeof a){var b=a;a=function(){return{position:b,direction:"right"}}}return a}function u(){}var v=c.Class.define(function(a){this._listView=a,this._forceRelayout=!1,this.maxLeadingPages=d._isiOS?v._iOSMaxLeadingPages:v._defaultPagesToPrefetch,this.maxTrailingPages=d._isiOS?v._iOSMaxTrailingPages:v._defaultPagesToPrefetch,this.items=new o._ItemsContainer(a),this.firstIndexDisplayed=-1,this.lastIndexDisplayed=-1,this.begin=0,this.end=0,this._realizePass=1,this._firstLayoutPass=!0,this._runningAnimations=null,this._renderCompletePromise=e.wrap(),this._state=new w(this),this._createLayoutSignal(),this._createTreeBuildingSignal(),this._layoutWork=null,this._onscreenJob=q(g.Priority.aboveNormal,"on-screen items"),this._frontOffscreenJob=q(g.Priority.normal,"front off-screen items"),this._backOffscreenJob=q(g.Priority.belowNormal,"back off-screen items"),this._scrollbarPos=0,this._direction="right",this._scrollToFunctor=t(0)},{_dispose:function(){this.cleanUp(),this.items=null,this._renderCompletePromise&&this._renderCompletePromise.cancel(),this._renderCompletePromise=null,this._onscreenJob.dispose(),this._frontOffscreenJob.dispose(),this._backOffscreenJob.dispose()},_createItem:function(a,b,c,d){this._listView._writeProfilerMark("createItem("+a+") "+this._getBoundingRectString(a)+",info");var f=this;f._listView._itemsManager._itemFromItemPromiseThrottled(b).done(function(b){b?c(a,b,f._listView._itemsManager._recordFromElement(b)):d(a)},function(b){return d(a),e.wrapError(b)})},_addItem:function(a,b,c,d){if(this._realizePass===d){var e=this._listView._itemsManager._recordFromElement(c);delete this._pendingItemPromises[e.itemPromise.handle],this.items.setItemAt(b,{itemBox:null,container:null,element:c,detached:!0,itemsManagerRecord:e})}},lastItemIndex:function(){return this.containers?this.containers.length-1:-1},_setSkipRealizationForChange:function(a){a?this._realizationLevel!==v._realizationLevel.realize&&(this._realizationLevel=v._realizationLevel.skip):this._realizationLevel=v._realizationLevel.realize},_realizeItems:function(a,b,c,d,h,j,k,n,o,p){function q(a,b){C.push(e._cancelBlocker(b.renderComplete)),u(a)}function r(a,b){function c(a,b){a.updatedDraggableAttribute||!G._listView.itemsDraggable&&!G._listView.itemsReorderable||a.itemsManagerRecord.renderComplete.done(function(){G._realizePass===h&&(i.hasClass(b,l._nonDraggableClass)||(a.itemBox.draggable=!0),a.updatedDraggableAttribute=!0)})}if(G._listView._writeProfilerMark("_realizeItems_appendedItemsToDom,StartTM"),!G._listView._isZombie()){var d,e=0,f=-1,g=-1;for(d=a;d<=b;d++){var j=G.items.itemDataAt(d);if(j){var n=j.element,o=j.itemBox;o||(o=G._listView._itemBoxTemplate.cloneNode(!0),j.itemBox=o,o.appendChild(n),i.addClass(n,l._itemClass),G._listView._setupAriaSelectionObserver(n),G._listView._isSelected(d)&&m._ItemEventsHandler.renderSelection(o,n,!0,!0),G._listView._currentMode().renderDragSourceOnRealizedItem(d,o)),c(j,n);var p=G.getContainer(d);o.parentNode!==p&&(j.container=p,G._appendAndRestoreFocus(p,o),e++,f<0&&(f=d),g=d,G._listView._isSelected(d)&&i.addClass(p,l._selectedClass),i.removeClass(p,l._backdropClass),G.items.elementAvailable(d))}}G._listView._writeProfilerMark("_realizeItems_appendedItemsToDom,StopTM"),e>0&&(G._listView._writeProfilerMark("_realizeItems_appendedItemsToDom:"+e+" ("+f+"-"+g+"),info"),G._reportElementsLevel(k))}}function s(a,b,c,d){function e(a,b){var c=G.items.itemDataAt(a);if(c){var d=c.itemBox;return!d||!d.parentNode||!!b&&(i.addClass(d.parentNode,l._backdropClass),d.parentNode.removeChild(d),!0)}return!0}if(!p){for(var f=!1;a>=c;)f=e(a,f),a--;for(f=!1;b<=d;)f=e(b,f),b++}}function t(a,b,c,d,f){function g(a){var b=G.items.itemDataAt(a);if(b){var d=b.itemsManagerRecord;d.readyComplete||G._realizePass!==h||c.addWork(function(){G._listView._isZombie()||d.pendingReady&&G._realizePass===h&&(G._listView._writeProfilerMark("pendingReady("+a+"),info"),d.pendingReady())},f)}}for(var i=[],j=a;j<=b;j++){var k=G.items.itemDataAt(j);k&&i.push(k.itemsManagerRecord.itemPromise)}e.join(i).then(function(){if("right"===d)for(var c=a;c<=b;c++)g(c);else for(var c=b;c>=a;c--)g(c)})}function u(a){if(G._realizePass===h){if(a>=n&&a<=o){if(0==--z){if(r(n,o),s(n,o,b,c),G._firstLayoutPass){t(n,o,G._frontOffscreenJob,"right"===k?"left":"right",!0);var d=g.schedulePromiseHigh(null,"WinJS.UI.ListView.entranceAnimation").then(function(){if(!G._listView._isZombie()){G._listView._writeProfilerMark("entranceAnimation,StartTM");var a=G._listView._animateListEntrance(!G._firstEntranceAnimated);return G._firstEntranceAnimated=!0,a}});G._runningAnimations=e.join([G._runningAnimations,d]),G._runningAnimations.done(function(){G._listView._writeProfilerMark("entranceAnimation,StopTM"),G._realizePass===h&&(G._runningAnimations=null,D.complete())}),G._firstLayoutPass=!1,G._listView._isCurrentZoomView&&g.requestDrain(G._onscreenJob.priority)}else t(n,o,G._frontOffscreenJob,k),D.complete();G._updateHeaders(G._listView._canvas,n,o+1).done(function(){E.complete()})}}else a<n?(--B,B%y==0&&r(b,n-1),B||(G._updateHeaders(G._listView._canvas,b,n).done(function(){"right"!==k&&F.complete()}),t(b,n-1,"right"!==k?G._frontOffscreenJob:G._backOffscreenJob,"left"))):a>o&&(--A,A%y==0&&r(o+1,c-1),A||(G._updateHeaders(G._listView._canvas,o+1,c).then(function(){"right"===k&&F.complete()}),t(o+1,c-1,"right"===k?G._frontOffscreenJob:G._backOffscreenJob,"right")));x--,0===x&&(G._renderCompletePromise=e.join(C).then(null,function(a){if(Array.isArray(a)&&a.some(function(a){return a&&!(a instanceof Error&&"Canceled"===a.name)}))return e.wrapError(a)}),(G._headerRenderPromises||e.wrap()).done(function(){g.schedule(function(){G._listView._isZombie()?L.cancel():L.complete()},Math.min(G._onscreenJob.priority,G._backOffscreenJob.priority),null,"WinJS.UI.ListView._allItemsRealized")}))}}function v(b,c,d){if(G._realizePass===h){var c=d.element;G._addItem(a,b,c,h),q(b,d)}}var w="_realizeItems("+b+"-"+(c-1)+") visible("+n+"-"+o+")";this._listView._writeProfilerMark(w+",StartTM"),k=k||"right";var x=c-b,y=o-n+1,z=y,A=c-o-1,B=n-b,C=[],D=new f,E=new f,F=new f,G=this;if(x>0){var H=0,I=0,J=0;G.firstIndexDisplayed=n,G.lastIndexDisplayed=o;var K=G._listView._isCurrentZoomView;G._highPriorityRealize&&(G._firstLayoutPass||G._hasAnimationInViewportPending)?(G._highPriorityRealize=!1,G._onscreenJob.priority=g.Priority.high,G._frontOffscreenJob.priority=g.Priority.normal,G._backOffscreenJob.priority=g.Priority.belowNormal):G._highPriorityRealize?(G._highPriorityRealize=!1,G._onscreenJob.priority=g.Priority.high,G._frontOffscreenJob.priority=g.Priority.high-1,G._backOffscreenJob.priority=g.Priority.high-1):K?(G._onscreenJob.priority=g.Priority.aboveNormal,G._frontOffscreenJob.priority=g.Priority.normal,G._backOffscreenJob.priority=g.Priority.belowNormal):(G._onscreenJob.priority=g.Priority.belowNormal,G._frontOffscreenJob.priority=g.Priority.idle,G._backOffscreenJob.priority=g.Priority.idle);var L=new f,M=G._listView._versionManager.cancelOnNotification(L.promise),N=function(a,b){b.startStage1&&b.stage0.then(function(){G._realizePass===h&&b.startStage1&&a.addWork(b.startStage1)})},O=function(a,b){if(!G.items.itemDataAt(b)){var c=G._listView._itemsManager._itemPromiseAtIndex(b);G._pendingItemPromises[c.handle]=c,delete G._previousRealizationPendingItemPromises[c.handle],a.addWork(function(){if(!G._listView._isZombie()&&(H++,G._createItem(b,c,v,u),!G._listView._isZombie()&&G._realizePass===h&&c.handle)){var d=G._listView._itemsManager._recordFromHandle(c.handle);N(a,d)}})}},P=function(a,b,c){for(var d=b;d<=c;d++)O(a,d)},Q=function(a,b,c){for(var d=c;d>=b;d--)O(a,d)},R=function(a,b,c){for(var d=b;d<=c;d++){var e=G.items.itemDataAt(d);if(e){var f=e.itemsManagerRecord;q(d,f),I++,N(a,f)}}};this._previousRealizationPendingItemPromises=this._pendingItemPromises||{},this._pendingItemPromises={};var S;"left"===k?(Q(G._onscreenJob,n,o),Q(G._frontOffscreenJob,b,n-1),S=b>n-1):(P(G._onscreenJob,n,o),P(G._frontOffscreenJob,o+1,c-1),S=o+1>c-1);for(var T=0,U=Object.keys(this._previousRealizationPendingItemPromises),V=U.length;T<V;T++){var W=U[T];G._listView._itemsManager.releaseItemPromise(this._previousRealizationPendingItemPromises[W])}this._previousRealizationPendingItemPromises={},R(G._onscreenJob,n,o),"left"===k?R(G._frontOffscreenJob,b,n-1):R(G._frontOffscreenJob,o+1,c-1);var X=z===o-n+1;return G._firstLayoutPass?G._listView._canvas.style.opacity=0:X?G._listView._showProgressBar(G._listView._element,"50%","50%"):G._listView._hideProgressBar(),G._frontOffscreenJob.pause(),G._backOffscreenJob.pause(),E.promise.done(function(){G._frontOffscreenJob.resume(),S&&F.complete()},function(){L.cancel()}),F.promise.done(function(){G._listView._writeProfilerMark("frontItemsRealized,info"),"left"===k?(P(G._backOffscreenJob,o+1,c-1),R(G._backOffscreenJob,o+1,c-1)):(Q(G._backOffscreenJob,b,n-1),R(G._backOffscreenJob,b,n-1)),G._backOffscreenJob.resume()}),L.promise.done(function(){G._listView._versionManager.clearCancelOnNotification(M),G._listView._writeProfilerMark(w+" complete(created:"+H+" updated:"+I+"),info")},function(a){return G._listView._versionManager.clearCancelOnNotification(M),G._onscreenJob.clearWork(),G._frontOffscreenJob.clearWork(),G._backOffscreenJob.clearWork(),D.cancel(),E.cancel(),G._listView._writeProfilerMark(w+" canceled(created:"+H+" updated:"+I+" clean:"+J+"),info"),e.wrapError(a)}),G._listView._writeProfilerMark(w+",StopTM"),{viewportItemsRealized:E.promise,allItemsRealized:L.promise,loadingCompleted:e.join([L.promise,D.promise]).then(function(){for(var a=[],d=b;d<c;d++){var f=G.items.itemDataAt(d);f&&a.push(f.itemsManagerRecord.itemReadyPromise)}return e._cancelBlocker(e.join(a))})}}return G._listView._writeProfilerMark(w+",StopTM"),{viewportItemsRealized:e.wrap(),allItemsRealized:e.wrap(),loadingCompleted:e.wrap()}},_setAnimationInViewportState:function(a){if(this._hasAnimationInViewportPending=!1,a&&a.length>0)for(var b=this._listView._getViewportLength(),c=this._listView._layout.itemsFromRange(this._scrollbarPos,this._scrollbarPos+b-1),d=0,e=a.length;d<e;d++){var f=a[d];if(f.newIndex>=c.firstIndex&&f.newIndex<=c.lastIndex&&f.newIndex!==f.oldIndex){this._hasAnimationInViewportPending=!0;break}}},_addHeader:function(a,b){var c=this;return this._listView._groups.renderGroup(b).then(function(a){if(a){a.element.tabIndex=0;var d=c._getHeaderContainer(b);a.element.parentNode!==d&&(d.appendChild(a.element),i.addClass(a.element,l._headerClass)),c._listView._groups.setDomElement(b,a.element)}})},_updateHeaders:function(a,b,c){function d(b){var c=g._listView._groups.group(b);if(c&&!c.header){var d=c.headerPromise;return d||(d=c.headerPromise=g._addHeader(a,b),d.done(function(){c.headerPromise=null},function(){c.headerPromise=null})),d}return e.wrap()}function f(){g._headerRenderPromises=null}var g=this;this._listView._groups.removeElements();var h=this._listView._groups.groupFromItem(b),i=h,j=this._listView._groups.groupFromItem(c-1),k=[];if(null!==i)for(;i<=j;i++)k.push(d(i));return this._headerRenderPromises=e.join(k,this._headerRenderPromises).then(f,f),this._headerRenderPromises||e.wrap()},_unrealizeItem:function(a){var b,c=this._listView;this._listView._writeProfilerMark("_unrealizeItem("+a+"),info");var d=c._selection._getFocused();d.type===k.ObjectType.item&&d.index===a&&(c._unsetFocusOnItem(),b=!0);var e=this.items.itemDataAt(a),f=e.element,g=e.itemBox;g&&g.parentNode&&(i.removeClass(g.parentNode,l._selectedClass),i.removeClass(g.parentNode,l._footprintClass),i.addClass(g.parentNode,l._backdropClass),g.parentNode.removeChild(g)),e.container=null,c._currentMode().itemUnrealized&&c._currentMode().itemUnrealized(a,g),this.items.removeItem(a),e.removed||c._itemsManager.releaseItem(f),h._disposeElement(f),b&&c._setFocusOnItem(c._selection._getFocused())},_unrealizeGroup:function(a){var b,c=a.header,d=this._listView._selection._getFocused();d.type===k.ObjectType.groupHeader&&this._listView._groups.group(d.index)===a&&(this._listView._unsetFocusOnItem(),b=!0),c.parentNode&&c.parentNode.removeChild(c),h._disposeElement(c),a.header=null,a.left=-1,a.top=-1,b&&this._listView._setFocusOnItem(this._listView._selection._getFocused())},_unrealizeItems:function(a){var b=this,c=0;this.items.eachIndex(function(d){if(d<b.begin||d>=b.end)return b._unrealizeItem(d),a&&++c>=a});var d=this._listView._groups,e=d.groupFromItem(this.begin);if(null!==e)for(var f=d.groupFromItem(this.end-1),g=0,h=d.length();g<h;g++){var i=d.group(g);(g<e||g>f)&&i.header&&this._unrealizeGroup(i)}},_unrealizeExcessiveItems:function(){var a=this.items.count(),b=this.end-this.begin,c=b+this._listView._maxDeferredItemCleanup;this._listView._writeProfilerMark("_unrealizeExcessiveItems realized("+a+") approved("+c+"),info"),a>c&&this._unrealizeItems(a-c)},_lazilyUnrealizeItems:function(){this._listView._writeProfilerMark("_lazilyUnrealizeItems,StartTM");var a=this;return s(this._listView).then(function(){function b(){a._listView._writeProfilerMark("_lazilyUnrealizeItems,StopTM")}if(a._listView._isZombie())return void b();var c=[];a.items.eachIndex(function(b){(b<a.begin||b>=a.end)&&c.push(b)}),a._listView._writeProfilerMark("_lazilyUnrealizeItems itemsToUnrealize("+c.length+"),info");var d=[],f=a._listView._groups,h=f.groupFromItem(a.begin);if(null!==h)for(var i=f.groupFromItem(a.end-1),j=0,k=f.length();j<k;j++){var l=f.group(j);(j<h||j>i)&&l.header&&d.push(l)}if(c.length||d.length){var m;return new e(function(b){function e(f){if(!a._listView._isZombie()){for(var g=-1,h=-1,i=0,j=r(a._listView);c.length&&!j&&!f.shouldYield;){var k=c.shift();a._unrealizeItem(k),i++,g<0&&(g=k),h=k}for(a._listView._writeProfilerMark("unrealizeWorker removeItems:"+i+" ("+g+"-"+h+"),info");d.length&&!j&&!f.shouldYield;)a._unrealizeGroup(d.shift());c.length||d.length?j?f.setPromise(s(a._listView).then(function(){return e})):f.setWork(e):b()}}m=g.schedule(e,g.Priority.belowNormal,null,"WinJS.UI.ListView._lazilyUnrealizeItems")}).then(b,function(b){return m.cancel(),a._listView._writeProfilerMark("_lazilyUnrealizeItems canceled,info"),a._listView._writeProfilerMark("_lazilyUnrealizeItems,StopTM"),e.wrapError(b)})}return b(),e.wrap()})},_getBoundingRectString:function(a){var b;if(a>=0&&a<this.containers.length){var c=this._listView._layout._getItemPosition(a);c&&(b="["+c.left+"; "+c.top+"; "+c.width+"; "+c.height+" ]")}return b||""},_clearDeferTimeout:function(){this.deferTimeout&&(this.deferTimeout.cancel(),this.deferTimeout=null),-1!==this.deferredActionCancelToken&&(this._listView._versionManager.clearCancelOnNotification(this.deferredActionCancelToken),this.deferredActionCancelToken=-1)},_setupAria:function(a){function b(){d._listView._writeProfilerMark("aria work,StopTM")}function c(a){var b=d._listView._groups,c=b.group(a+1);return c?Math.min(c.startIndex-1,d.end-1):d.end-1}if(!this._listView._isZombie()){var d=this;return this._listView._createAriaMarkers(),this._listView._itemsCount().then(function(f){if(!(f>0&&-1!==d.firstIndexDisplayed&&-1!==d.lastIndexDisplayed))return e.wrap();d._listView._writeProfilerMark("aria work,StartTM");var h,j,k,l,m,n,o=d._listView._ariaStartMarker,q=d._listView._ariaEndMarker,t=d.begin,u=d.items.itemAt(d.begin);if(u)return i._ensureId(u),d._listView._groupsEnabled()?(j=d._listView._groups,k=l=j.groupFromItem(d.begin),m=j.group(l),n=c(l),i._ensureId(m.header),i._setAttribute(m.header,"role",d._listView._headerRole),i._setAttribute(m.header,"x-ms-aria-flowfrom",o.id),p(m.header,u),i._setAttribute(m.header,"tabindex",d._listView._tabIndex)):i._setAttribute(u,"x-ms-aria-flowfrom",o.id),new e(function(e){var o=a;h=g.schedule(function a(g){if(d._listView._isZombie())return void b();for(;t<d.end;t++){if(!o&&r(d._listView))return void g.setPromise(s(d._listView).then(function(b){return o=b,a}));if(g.shouldYield)return void g.setWork(a);u=d.items.itemAt(t);var h=d.items.itemAt(t+1);if(h&&i._ensureId(h),i._setAttribute(u,"role",d._listView._itemRole),i._setAttribute(u,"aria-setsize",f),i._setAttribute(u,"aria-posinset",t+1),i._setAttribute(u,"tabindex",d._listView._tabIndex),d._listView._groupsEnabled())if(t!==n&&h)p(u,h);else{var v=j.group(l+1);v&&v.header&&h?(i._setAttribute(v.header,"tabindex",d._listView._tabIndex),i._setAttribute(v.header,"role",d._listView._headerRole),i._ensureId(v.header),p(u,v.header),p(v.header,h)):i._setAttribute(u,"aria-flowto",q.id),l++,m=v,n=c(l)}else h?p(u,h):i._setAttribute(u,"aria-flowto",q.id);if(!h)break}d._listView._fireAccessibilityAnnotationCompleteEvent(d.begin,t,k,l-1),b(),e()},g.Priority.belowNormal,null,"WinJS.UI.ListView._setupAria")},function(){h.cancel(),b()});b()})}},_setupDeferredActions:function(){function a(){b._listView._isZombie()||(b.deferTimeout=null,b._listView._versionManager.clearCancelOnNotification(b.deferredActionCancelToken),b.deferredActionCancelToken=-1)}this._listView._writeProfilerMark("_setupDeferredActions,StartTM");var b=this;this._clearDeferTimeout(),this.deferTimeout=this._lazilyRemoveRedundantItemsBlocks().then(function(){return e.timeout(l._DEFERRED_ACTION)}).then(function(){return s(b._listView)}).then(function(a){return b._setupAria(a)}).then(a,function(b){return a(),e.wrapError(b)}),this.deferredActionCancelToken=this._listView._versionManager.cancelOnNotification(this.deferTimeout),this._listView._writeProfilerMark("_setupDeferredActions,StopTM")},_updateAriaMarkers:function(a,b,c){function d(){return f.items.itemAt(b)}function e(){for(var a=c;a>=b;a--)if(f.items.itemAt(a))return f.items.itemAt(a);return null}var f=this;if(!this._listView._isZombie()){this._listView._createAriaMarkers();var g,h,j=this._listView._ariaStartMarker,k=this._listView._ariaEndMarker;if(-1!==b&&-1!==c&&b<=c&&(g=d(),h=e()),!a&&g&&h){if(i._ensureId(g),i._ensureId(h),this._listView._groupsEnabled()){var l=this._listView._groups,m=l.group(l.groupFromItem(b));m.header&&(i._ensureId(m.header),b===m.startIndex?i._setAttribute(j,"aria-flowto",m.header.id):i._setAttribute(j,"aria-flowto",g.id))}else i._setAttribute(j,"aria-flowto",g.id);i._setAttribute(k,"x-ms-aria-flowfrom",h.id)}else p(j,k),this._listView._fireAccessibilityAnnotationCompleteEvent(-1,-1)}},updateAriaForAnnouncement:function(a,b){if(a!==this._listView.header&&a!==this._listView.footer){var c=-1,d=k.ObjectType.item;i.hasClass(a,l._headerClass)?(c=this._listView._groups.index(a),d=k.ObjectType.groupHeader,i._setAttribute(a,"role",this._listView._headerRole),i._setAttribute(a,"tabindex",this._listView._tabIndex)):(c=this.items.index(a),i._setAttribute(a,"aria-setsize",b),i._setAttribute(a,"aria-posinset",c+1),i._setAttribute(a,"role",this._listView._itemRole),i._setAttribute(a,"tabindex",this._listView._tabIndex)),d===k.ObjectType.groupHeader?this._listView._fireAccessibilityAnnotationCompleteEvent(-1,-1,c,c):this._listView._fireAccessibilityAnnotationCompleteEvent(c,c,-1,-1)}},_reportElementsLevel:function(a){function b(a,b){for(var c=0,e=a;e<=b;e++){var f=d.itemDataAt(e);f&&f.container&&c++}return c}var c,d=this.items;c="right"===a?Math.floor(100*b(this.firstIndexDisplayed,this.end-1)/(this.end-this.firstIndexDisplayed)):Math.floor(100*b(this.begin,this.lastIndexDisplayed)/(this.lastIndexDisplayed-this.begin+1)),this._listView._writeProfilerMark("elementsLevel level("+c+"),info")},_createHeaderContainer:function(a){return this._createSurfaceChild(l._headerContainerClass,a)},_createItemsContainer:function(a){var c=this._createSurfaceChild(l._itemsContainerClass,a),d=b.document.createElement("div");return d.className=l._padderClass,c.appendChild(d),c},_ensureContainerInDOM:function(a){var b=this.containers[a];return!(!b||this._listView._canvas.contains(b))&&(this._forceItemsBlocksInDOM(a,a+1),!0)},_ensureItemsBlocksInDOM:function(a,b){if(this._expandedRange){var c=this._expandedRange.first.index,d=this._expandedRange.last.index+1;a<=c&&b>c?b=Math.max(b,d):a<d&&b>=d&&(a=Math.min(a,c))}this._forceItemsBlocksInDOM(a,b)},_removeRedundantItemsBlocks:function(){-1!==this.begin&&-1!==this.end&&this._forceItemsBlocksInDOM(this.begin,this.end)},_lazilyRemoveRedundantItemsBlocks:function(){this._listView._writeProfilerMark("_lazilyRemoveRedundantItemsBlocks,StartTM");var a=this;return s(this._listView).then(function(){function b(){a._listView._writeProfilerMark("_lazilyRemoveRedundantItemsBlocks,StopTM")}if(a._listView._isZombie())return void b();if(a._expandedRange&&-1!==a.begin&&-1!==a.end&&(a._expandedRange.first.index<a.begin||a._expandedRange.last.index+1>a.end)){var c;return new e(function(b){function d(c){if(!a._listView._isZombie()){for(var e=r(a._listView);a._expandedRange.first.index<a.begin&&!e&&!c.shouldYield;){var f=Math.min(a.begin,a._expandedRange.first.index+a._blockSize*v._blocksToRelease);a._forceItemsBlocksInDOM(f,a.end)}for(;a._expandedRange.last.index+1>a.end&&!e&&!c.shouldYield;){var g=Math.max(a.end,a._expandedRange.last.index-a._blockSize*v._blocksToRelease);a._forceItemsBlocksInDOM(a.begin,g)}a._expandedRange.first.index<a.begin||a._expandedRange.last.index+1>a.end?e?c.setPromise(s(a._listView).then(function(){return d})):c.setWork(d):b()}}c=g.schedule(d,g.Priority.belowNormal,null,"WinJS.UI.ListView._lazilyRemoveRedundantItemsBlocks")}).then(b,function(b){return c.cancel(),a._listView._writeProfilerMark("_lazilyRemoveRedundantItemsBlocks canceled,info"),a._listView._writeProfilerMark("_lazilyRemoveRedundantItemsBlocks,StopTM"),e.wrapError(b)})}return b(),e.wrap()})},_forceItemsBlocksInDOM:function(a,b){function c(a,b){a.element.firstElementChild.style[q]=b}function d(a){for(var b=0;b<n.tree.length;b++)for(var c=n.tree[b].itemsContainer,d=0,e=c.itemsBlocks.length;d<e;d++)if(a(c,c.itemsBlocks[d]))return}function e(a){n._listView._writeProfilerMark("_itemsBlockExtent,StartTM"),n._listView._itemsBlockExtent=i[n._listView._horizontal()?"getTotalWidth":"getTotalHeight"](a.element),n._listView._writeProfilerMark("_itemsBlockExtent("+n._listView._itemsBlockExtent+"),info"),n._listView._writeProfilerMark("_itemsBlockExtent,StopTM")}function f(){return-1===n._listView._itemsBlockExtent&&d(function(a,b){return b.items.length===n._blockSize&&b.element.parentNode===a.element&&(e(b),!0)}),-1===n._listView._itemsBlockExtent&&d(function(a,b){return b.items.length===n._blockSize&&(a.element.appendChild(b.element),e(b),a.element.removeChild(b.element),!0)}),n._listView._itemsBlockExtent}function g(a,b,c){function d(b){var c=a.itemsBlocks[b];c&&c.element.parentNode===a.element&&(a.element.removeChild(c.element),p++)}if(Array.isArray(b))b.forEach(d);else for(var e=b;e<c;e++)d(e)}function h(a,b,c){for(var d=a.element.firstElementChild,e=d,f=b;f<c;f++){var g=a.itemsBlocks[f];g&&(g.element.parentNode!==a.element&&(a.element.insertBefore(g.element,e.nextElementSibling),o++),e=g.element)}}function j(a){if(a<n.tree.length){n._listView._writeProfilerMark("collapseGroup("+a+"),info");var b=n.tree[a].itemsContainer;g(b,0,b.itemsBlocks.length),c(b,"")}}function k(a){if(a<n.tree.length){n._listView._writeProfilerMark("expandGroup("+a+"),info");var b=n.tree[a].itemsContainer;h(b,0,b.itemsBlocks.length),c(b,"")}}function l(a,b){function c(a,b){for(var c=[],d=a;d<=b;d++)c.push(d);return c}var d=b[0],e=b[1],f=a[0],g=a[1];return e<f||d>g?c(f,g):d>f&&e<g?c(f,d-1).concat(c(e+1,g)):f<d?c(f,d-1):g>e?c(e+1,g):null}if(this._blockSize){var m="_forceItemsBlocksInDOM begin("+a+") end("+b+"),";this._listView._writeProfilerMark(m+"StartTM");var n=this,o=0,p=0,q="padding"+(this._listView._horizontal()?"Left":"Top"),r=this._listView._groups.groupFromItem(a),s=this._listView._groups.groupFromItem(b-1),t=this._listView._groups.group(r),u=n.tree[r].itemsContainer,v=Math.floor((a-t.startIndex)/this._blockSize),w=this._listView._groups.group(s),x=n.tree[s].itemsContainer,y=Math.floor((b-1-w.startIndex)/this._blockSize);v&&-1===n._listView._itemsBlockExtent&&d(function(a,b){return b.items.length===n._blockSize&&b.element.parentNode===a.element&&(e(b),!0)});var z=this._expandedRange?l([this._expandedRange.first.groupIndex,this._expandedRange.last.groupIndex],[r,s]):null;if(z&&z.forEach(j),this._expandedRange&&this._expandedRange.first.groupKey===t.key){var A=l([this._expandedRange.first.block,Number.MAX_VALUE],[v,Number.MAX_VALUE]);A&&g(u,A)}else this._expandedRange&&r>=this._expandedRange.first.groupIndex&&r<=this._expandedRange.last.groupIndex&&g(u,0,v);if(r!==s?(h(u,v,u.itemsBlocks.length),h(x,0,y+1)):h(u,v,y+1),this._expandedRange&&this._expandedRange.last.groupKey===w.key){var A=l([0,this._expandedRange.last.block],[0,y]);A&&g(x,A)}else this._expandedRange&&s>=this._expandedRange.first.groupIndex&&s<=this._expandedRange.last.groupIndex&&g(x,y+1,x.itemsBlocks.length);c(u,v?v*f()+"px":""),r!==s&&c(x,"");for(var B=r+1;B<s;B++)k(B);this._expandedRange={first:{index:a,groupIndex:r,groupKey:t.key,block:v},last:{index:b-1,groupIndex:s,groupKey:w.key,block:y}},this._listView._writeProfilerMark("_forceItemsBlocksInDOM groups("+r+"-"+s+") blocks("+v+"-"+y+") added("+o+") removed("+p+"),info"),this._listView._writeProfilerMark(m+"StopTM")}},_realizePageImpl:function(){var a=this,b="realizePage(scrollPosition:"+this._scrollbarPos+" forceLayout:"+this._forceRelayout+")";return this._listView._writeProfilerMark(b+",StartTM"),this._listView._versionManager.locked?(this._listView._versionManager.unlocked.done(function(){a._listView._isZombie()||a._listView._batchViewUpdates(l._ViewChange.realize,l._ScrollToPriority.low,a._listView.scrollPosition)}),this._listView._writeProfilerMark(b+",StopTM"),e.cancel):new e(function(c){function d(){c(),k.complete()}function g(){a._listView._hideProgressBar(),a._state.setLoadingState(a._listView._LoadingState.viewPortLoaded),a._executeAnimations&&a._setState(F,k.promise)}function h(b){a._updateAriaMarkers(0===b,a.firstIndexDisplayed,a.lastIndexDisplayed),a._state.setLoadingState&&a._state.setLoadingState(a._listView._LoadingState.itemsLoaded)}function j(b){a._listView._clearInsertedItems(),a._listView._groups.removeElements(),g(),h(b),d()}var k=new f;a._state.setLoadingState(a._listView._LoadingState.itemsLoading),a._firstLayoutPass&&a._listView._showProgressBar(a._listView._element,"50%","50%");var l=a.containers.length;if(l){var m,n,o=a.maxLeadingPages,p=a.maxTrailingPages,q=a._listView._getViewportLength();if(a._listView._zooming)m=n=0;else if(v._disableCustomPagesPrefetch)m=n=v._defaultPagesToPrefetch;else{m="left"===a._direction?o:p;var r=Math.max(0,m-a._scrollbarPos/q);n=Math.min(o,r+("right"===a._direction?o:p))}var s=Math.max(0,a._scrollbarPos-m*q),t=a._scrollbarPos+(1+n)*q,u=a._listView._layout.itemsFromRange(s,t-1);if((u.firstIndex<0||u.firstIndex>=l)&&(u.lastIndex<0||u.lastIndex>=l))a.begin=-1,a.end=-1,a.firstIndexDisplayed=-1,a.lastIndexDisplayed=-1,j(l);else{var w=i._clamp(u.firstIndex,0,l-1),x=i._clamp(u.lastIndex+1,0,l),y=a._listView._layout.itemsFromRange(a._scrollbarPos,a._scrollbarPos+q-1),z=i._clamp(y.firstIndex,0,l-1),A=i._clamp(y.lastIndex,0,l-1);if(a._realizationLevel!==v._realizationLevel.skip||a.lastRealizePass||z!==a.firstIndexDisplayed||A!==a.lastIndexDisplayed)if((a._forceRelayout||w!==a.begin||x!==a.end||z!==a.firstIndexDisplayed||A!==a.lastIndexDisplayed)&&w<x&&s<t){a._listView._writeProfilerMark("realizePage currentInView("+z+"-"+A+") previousInView("+a.firstIndexDisplayed+"-"+a.lastIndexDisplayed+") change("+(z-a.firstIndexDisplayed)+"),info"),a._cancelRealize();var B=a._realizePass;a.begin=w,a.end=x,a.firstIndexDisplayed=z,a.lastIndexDisplayed=A,a.deletesWithoutRealize=0,a._ensureItemsBlocksInDOM(a.begin,a.end);var C=a._realizeItems(a._listView._itemCanvas,a.begin,a.end,l,B,a._scrollbarPos,a._direction,z,A,a._forceRelayout);a._forceRelayout=!1;var D=C.viewportItemsRealized.then(function(){return g(),C.allItemsRealized}).then(function(){if(a._realizePass===B)return a._updateHeaders(a._listView._canvas,a.begin,a.end).then(function(){h(l)})}).then(function(){return C.loadingCompleted}).then(function(){a._unrealizeExcessiveItems(),a.lastRealizePass=null,d()},function(b){return a._realizePass===B&&(a.lastRealizePass=null,a.begin=-1,a.end=-1),e.wrapError(b)});a.lastRealizePass=e.join([C.viewportItemsRealized,C.allItemsRealized,C.loadingCompleted,D]),a._unrealizeExcessiveItems()}else a.lastRealizePass?a.lastRealizePass.then(d):j(l);else a.begin=w,a.end=w+Object.keys(a.items._itemData).length,a._updateHeaders(a._listView._canvas,a.begin,a.end).done(function(){a.lastRealizePass=null,j(l)})}}else a.begin=-1,a.end=-1,a.firstIndexDisplayed=-1,a.lastIndexDisplayed=-1,j(l);a._reportElementsLevel(a._direction),a._listView._writeProfilerMark(b+",StopTM")})},realizePage:function(a,b,c,d){this._scrollToFunctor=t(a),this._forceRelayout=this._forceRelayout||b,this._scrollEndPromise=c,this._listView._writeProfilerMark(this._state.name+"_realizePage,info"),this._state.realizePage(d||A)},onScroll:function(a,b){this.realizePage(a,!1,b,C)},reload:function(a,b){this._listView._isZombie()||(this._scrollToFunctor=t(a),this._forceRelayout=!0,this._highPriorityRealize=!!b,this.stopWork(!0),this._listView._writeProfilerMark(this._state.name+"_rebuildTree,info"),this._state.rebuildTree())},refresh:function(a){this._listView._isZombie()||(this._scrollToFunctor=t(a),this._forceRelayout=!0,this._highPriorityRealize=!0,this.stopWork(),this._listView._writeProfilerMark(this._state.name+"_relayout,info"),this._state.relayout())},waitForValidScrollPosition:function(a){var b=this,c=this._listView._viewport[this._listView._scrollLength]-this._listView._getViewportLength();return a>c?b._listView._itemsCount().then(function(c){return b.containers.length<c?e._cancelBlocker(b._creatingContainersWork&&b._creatingContainersWork.promise).then(function(){return b._getLayoutCompleted()}).then(function(){return a}):a}):e.wrap(a)},waitForEntityPosition:function(a){var b=this;return a.type===k.ObjectType.header||a.type===k.ObjectType.footer?e.wrap():(this._listView._writeProfilerMark(this._state.name+"_waitForEntityPosition("+a.type+": "+a.index+"),info"),e._cancelBlocker(this._state.waitForEntityPosition(a).then(function(){if(a.type!==k.ObjectType.groupHeader&&a.index>=b.containers.length||a.type===k.ObjectType.groupHeader&&b._listView._groups.group(a.index).startIndex>=b.containers.length)return b._creatingContainersWork&&b._creatingContainersWork.promise}).then(function(){return b._getLayoutCompleted()})))},stopWork:function(a){this._listView._writeProfilerMark(this._state.name+"_stop,info"),this._state.stop(a),this._layoutWork&&this._layoutWork.cancel(),a&&this._creatingContainersWork&&this._creatingContainersWork.cancel(),a&&(this._state=new w(this))},_cancelRealize:function(){this._listView._writeProfilerMark("_cancelRealize,StartTM"),(this.lastRealizePass||this.deferTimeout)&&(this._forceRelayout=!0),this._clearDeferTimeout(),this._realizePass++,this._headerRenderPromises&&(this._headerRenderPromises.cancel(),this._headerRenderPromises=null);var a=this.lastRealizePass;a&&(this.lastRealizePass=null,this.begin=-1,this.end=-1,a.cancel()),this._listView._writeProfilerMark("_cancelRealize,StopTM")},resetItems:function(a){if(!this._listView._isZombie()){this.firstIndexDisplayed=-1,this.lastIndexDisplayed=-1,this._runningAnimations=null,this._executeAnimations=!1;var b=this._listView;this._firstLayoutPass=!0,b._unsetFocusOnItem(),b._currentMode().onDataChanged&&b._currentMode().onDataChanged(),this.items.each(function(c,d){a&&d.parentNode&&d.parentNode.parentNode&&d.parentNode.parentNode.removeChild(d.parentNode),b._itemsManager.releaseItem(d),h._disposeElement(d)}),this.items.removeItems(),this._deferredReparenting=[],a&&b._groups.removeElements(),b._clearInsertedItems()}},reset:function(){if(this.stopWork(!0),this._state=new w(this),this.resetItems(),!this._listView._isZombie()){var a=this._listView;a._groups.resetGroups(),a._resetCanvas(),this.tree=null,this.keyToGroupIndex=null,this.containers=null,this._expandedRange=null}},cleanUp:function(){this.stopWork(!0),this._runningAnimations&&this._runningAnimations.cancel();var a=this._listView._itemsManager;this.items.each(function(b,c){a.releaseItem(c),h._disposeElement(c)}),this._listView._unsetFocusOnItem(),this.items.removeItems(),this._deferredReparenting=[],this._listView._groups.resetGroups(),this._listView._resetCanvas(),this.tree=null,this.keyToGroupIndex=null,this.containers=null,this._expandedRange=null,this.destroyed=!0},getContainer:function(a){return this.containers[a]},_getHeaderContainer:function(a){return this.tree[a].header},_getGroups:function(a){if(this._listView._groupDataSource){var b=this._listView._groups.groups,c=[];if(a)for(var d=0,e=b.length;d<e;d++){var f=b[d],g=d+1<e?b[d+1].startIndex:a;c.push({key:f.key,size:g-f.startIndex})}return c}return[{key:"-1",size:a}]},_createChunk:function(a,b,c){function d(a,b){var d=a.element.children,e=d.length,g=Math.min(b-a.items.length,c);j.insertAdjacentHTMLUnsafe(a.element,"beforeend",n._repeat("<div class='win-container win-backdrop'></div>",g));for(var h=0;h<g;h++){var i=d[e+h];a.items.push(i),f.containers.push(i)}}function e(a){var b={header:f._listView._groupDataSource?f._createHeaderContainer():null,itemsContainer:{element:f._createItemsContainer(),items:[]}};f.tree.push(b),f.keyToGroupIndex[a.key]=f.tree.length-1,d(b.itemsContainer,a.size)}var f=this;if(this._listView._writeProfilerMark("createChunk,StartTM"),this.tree.length&&this.tree.length<=a.length){var g=this.tree[this.tree.length-1],h=a[this.tree.length-1].size;if(g.itemsContainer.items.length<h)return d(g.itemsContainer,h),void this._listView._writeProfilerMark("createChunk,StopTM")}this.tree.length<a.length&&e(a[this.tree.length]),this._listView._writeProfilerMark("createChunk,StopTM")},_createChunkWithBlocks:function(a,c,d,e){function f(a,c){var f,g=a.itemsBlocks.length?a.itemsBlocks[a.itemsBlocks.length-1]:null;if(c=Math.min(c,e),g&&g.items.length<d){var i=Math.min(c,d-g.items.length),k=g.items.length,f=(a.itemsBlocks.length-1)*d+k,l=n._stripedContainers(i,f);j.insertAdjacentHTMLUnsafe(g.element,"beforeend",l),w=g.element.children;for(var m=0;m<i;m++){var o=w[k+m];g.items.push(o),h.containers.push(o)}c-=i}f=a.itemsBlocks.length*d;var p=Math.floor(c/d),q="",r=f,s=f+d;if(p>0){var t=["<div class='win-itemsblock'>"+n._stripedContainers(d,r)+"</div>","<div class='win-itemsblock'>"+n._stripedContainers(d,s)+"</div>"];q=n._repeat(t,p),f+=p*d}var u=c%d;u>0&&(q+="<div class='win-itemsblock'>"+n._stripedContainers(u,f)+"</div>",f+=u,p++);var v=b.document.createElement("div");j.setInnerHTMLUnsafe(v,q);for(var w=v.children,x=0;x<p;x++){var y=w[x],z={element:y,items:n._nodeListToArray(y.children)};a.itemsBlocks.push(z);for(var A=0;A<z.items.length;A++)h.containers.push(z.items[A])}}function g(a){var b={header:h._listView._groupDataSource?h._createHeaderContainer():null,itemsContainer:{element:h._createItemsContainer(),itemsBlocks:[]}};h.tree.push(b),h.keyToGroupIndex[a.key]=h.tree.length-1,f(b.itemsContainer,a.size)}var h=this;if(this._listView._writeProfilerMark("createChunk,StartTM"),this.tree.length&&this.tree.length<=a.length){var i=this.tree[this.tree.length-1].itemsContainer,k=a[this.tree.length-1].size,l=0;if(i.itemsBlocks.length&&(l=(i.itemsBlocks.length-1)*d+i.itemsBlocks[i.itemsBlocks.length-1].items.length),l<k)return f(i,k-l),void this._listView._writeProfilerMark("createChunk,StopTM")}this.tree.length<a.length&&g(a[this.tree.length]),this._listView._writeProfilerMark("createChunk,StopTM")},_generateCreateContainersWorker:function(){var a=this,b=0,c=!1;return function e(f){a._listView._versionManager.locked?f.setPromise(a._listView._versionManager.unlocked.then(function(){return e})):a._listView._itemsCount().then(function(g){if(!c&&r(a._listView))f.setPromise(s(a._listView).then(function(a){return c=a,e}));else{if(a._listView._isZombie())return;c=!1;var h=d._now()+v._createContainersJobTimeslice,i=a._getGroups(g),j=a.containers.length,k=a.end===a.containers.length,l=v._chunkSize;do{a._blockSize?a._createChunkWithBlocks(i,g,a._blockSize,l):a._createChunk(i,g,l),b++}while(a.containers.length<g&&d._now()<h);a._listView._writeProfilerMark("createContainers yields containers("+a.containers.length+"),info"),a._listView._affectedRange.add({start:j,end:a.containers.length},g),k?(a.stopWork(),a._listView._writeProfilerMark(a._state.name+"_relayout,info"),a._state.relayout()):(a._listView._writeProfilerMark(a._state.name+"_layoutNewContainers,info"),a._state.layoutNewContainers()),a.containers.length<g?f.setWork(e):(a._listView._writeProfilerMark("createContainers completed steps("+b+"),info"),a._creatingContainersWork.complete())}})}},_scheduleLazyTreeCreation:function(){return g.schedule(this._generateCreateContainersWorker(),g.Priority.idle,this,"WinJS.UI.ListView.LazyTreeCreation")},_createContainers:function(){this.tree=null,this.keyToGroupIndex=null,this.containers=null,this._expandedRange=null;var a,b=this;return this._listView._itemsCount().then(function(c){if(0===c&&b._listView._hideProgressBar(),a=c,b._listView._writeProfilerMark("createContainers("+a+"),StartTM"),b._listView._groupDataSource)return b._listView._groups.initialize()}).then(function(){return b._listView._writeProfilerMark("numberOfItemsPerItemsBlock,StartTM"),a&&b._listView._groups.length()?b._listView._layout.numberOfItemsPerItemsBlock:null}).then(function(c){b._listView._writeProfilerMark("numberOfItemsPerItemsBlock("+c+"),info"),b._listView._writeProfilerMark("numberOfItemsPerItemsBlock,StopTM"),b._listView._resetCanvas(),b.tree=[],b.keyToGroupIndex={},b.containers=[],b._blockSize=c;var e,f=b._getGroups(a),g=d._now()+v._maxTimePerCreateContainers,h=Math.min(v._startupChunkSize,v._chunkSize);do{e=c?b._createChunkWithBlocks(f,a,c,h):b._createChunk(f,a,h)}while(d._now()<g&&b.containers.length<a&&!e);if(b._listView._writeProfilerMark("createContainers created("+b.containers.length+"),info"),b._listView._affectedRange.add({start:0,end:b.containers.length},a),b.containers.length<a){var i=b._scheduleLazyTreeCreation();b._creatingContainersWork.promise.done(null,function(){i.cancel()})}else b._listView._writeProfilerMark("createContainers completed synchronously,info"),b._creatingContainersWork.complete();b._listView._writeProfilerMark("createContainers("+a+"),StopTM")})},_updateItemsBlocks:function(a){function c(){var a=b.document.createElement("div");return a.className=l._itemsBlockClass,a}function d(b,d){function g(){b.itemsBlocks=null,b.items=[];for(var a=0;a<k;a++){var c=e.containers[d+a];b.element.appendChild(c),b.items.push(c)}}function h(){b.itemsBlocks=[{element:j.length?j.shift():c(),items:[]}];for(var f=b.itemsBlocks[0],g=0;g<k;g++){if(f.items.length===a){var h=j.length?j.shift():c();b.itemsBlocks.push({element:h,items:[]}),f=b.itemsBlocks[b.itemsBlocks.length-1]}var i=e.containers[d+g];f.element.appendChild(i),f.items.push(i)}b.items=null}var i,j=[],k=0,l=b.itemsBlocks;if(l)for(i=0;i<l.length;i++)k+=l[i].items.length,j.push(l[i].element);else k=b.items.length;for(f?h():g(),i=0;i<j.length;i++){var m=j[i];m.parentNode===b.element&&b.element.removeChild(m)}return k}for(var e=this,f=!!a,g=0,h=0;g<this.tree.length;g++)h+=d(this.tree[g].itemsContainer,h);e._blockSize=a},_layoutItems:function(){var a=this;return this._listView._itemsCount().then(function(){return e.as(a._listView._layout.numberOfItemsPerItemsBlock).then(function(b){a._listView._writeProfilerMark("numberOfItemsPerItemsBlock("+b+"),info"),b!==a._blockSize&&(a._updateItemsBlocks(b),a._listView._itemsBlockExtent=-1);var c,d=a._listView._affectedRange.get();return d&&(c={firstIndex:Math.max(d.start-1,0),lastIndex:Math.min(a.containers.length-1,d.end)},c.firstIndex<a.containers.length||0===a.containers.length)?a._listView._layout.layout(a.tree,c,a._modifiedElements||[],a._modifiedGroups||[]):(a._listView._affectedRange.clear(),{realizedRangeComplete:e.wrap(),layoutComplete:e.wrap()})})})},updateTree:function(a,b,c){return this._listView._writeProfilerMark(this._state.name+"_updateTree,info"),this._state.updateTree(a,b,c)},_updateTreeImpl:function(a,c,d,e){function f(a){for(var b=0,c=a.length;b<c;b++){var d=a[b];d.parentNode.removeChild(d)}}if(this._executeAnimations=!0,this._modifiedElements=d,!d.handled){d.handled=!0,this._listView._writeProfilerMark("_updateTreeImpl,StartTM");var g,h=this;e||this._unrealizeItems();for(var g=0,j=d.length;g<j;g++)d[g]._itemBox&&d[g]._itemBox.parentNode&&i.removeClass(d[g]._itemBox.parentNode,l._selectedClass);this.items.each(function(a,b,c){c.container&&i.removeClass(c.container,l._selectedClass),c.container&&i.addClass(c.container,l._backdropClass)});var k=this._listView._updateContainers(this._getGroups(a),a,c,d);f(k.removedHeaders),f(k.removedItemsContainers);for(var g=0,j=d.length;g<j;g++){var n=d[g];if(-1!==n.newIndex){if(n.element=this.getContainer(n.newIndex),!n.element)throw"Container missing after updateContainers."}else i.removeClass(n.element,l._backdropClass)}var o=b.document.activeElement;this._listView._canvas.contains(o)&&(this._requireFocusRestore=o),this._deferredReparenting=[],this.items.each(function(a,b,c){var d=h.getContainer(a),e=c.itemBox;e&&d&&(c.container=d,e.parentNode!==d&&(a>=h.firstIndexDisplayed&&a<=h.lastIndexDisplayed?h._appendAndRestoreFocus(d,e):h._deferredReparenting.push({itemBox:e,container:d})),i.removeClass(d,l._backdropClass),i[h._listView.selection._isIncluded(a)?"addClass":"removeClass"](d,l._selectedClass),!h._listView.selection._isIncluded(a)&&i.hasClass(e,l._selectedClass)&&m._ItemEventsHandler.renderSelection(e,c.element,!1,!0))}),this._listView._writeProfilerMark("_updateTreeImpl,StopTM")}},_completeUpdateTree:function(){if(this._deferredReparenting){var a=this._deferredReparenting.length;if(a>0){var b="_completeReparenting("+a+")";this._listView._writeProfilerMark(b+",StartTM");for(var c,d=0;d<a;d++)c=this._deferredReparenting[d],this._appendAndRestoreFocus(c.container,c.itemBox);this._deferredReparenting=[],this._listView._writeProfilerMark(b+",StopTM")}}this._requireFocusRestore=null},_appendAndRestoreFocus:function(a,c){if(c.parentNode!==a){var d;if(this._requireFocusRestore&&(d=b.document.activeElement),this._requireFocusRestore&&this._requireFocusRestore===d&&(a.contains(d)||c.contains(d))&&(this._listView._unsetFocusOnItem(),d=b.document.activeElement),i.empty(a),a.appendChild(c),this._requireFocusRestore&&d===this._listView._keyboardEventsHelper){var e=this._listView._selection._getFocused();e.type===k.ObjectType.item&&this.items.itemBoxAt(e.index)===c&&(i._setActive(this._requireFocusRestore),this._requireFocusRestore=null)}}},_startAnimations:function(){this._listView._writeProfilerMark("startAnimations,StartTM");var a=this;return this._hasAnimationInViewportPending=!1,e.as(this._listView._layout.executeAnimations()).then(function(){a._listView._writeProfilerMark("startAnimations,StopTM")})},_setState:function(a,b){if(!this._listView._isZombie()){var c=this._state.name;this._state=new a(this,b),this._listView._writeProfilerMark(this._state.name+"_enter from("+c+"),info"),this._state.enter()}},getAdjacent:function(a,b){var c=this;return this.waitForEntityPosition(a).then(function(){return c._listView._layout.getAdjacent(a,b)})},hitTest:function(a,b){if(this._realizedRangeLaidOut)return{index:-1,insertAfterIndex:-1};var c=this._listView._layout.hitTest(a,b);return c.index=i._clamp(c.index,-1,this._listView._cachedCount-1,0),c.insertAfterIndex=i._clamp(c.insertAfterIndex,-1,this._listView._cachedCount-1,0),c},_createTreeBuildingSignal:function(){if(!this._creatingContainersWork){this._creatingContainersWork=new f;var a=this;this._creatingContainersWork.promise.done(function(){a._creatingContainersWork=null},function(){a._creatingContainersWork=null})}},_createLayoutSignal:function(){var a=this;this._layoutCompleted||(this._layoutCompleted=new f,this._layoutCompleted.promise.done(function(){a._layoutCompleted=null},function(){a._layoutCompleted=null})),this._realizedRangeLaidOut||(this._realizedRangeLaidOut=new f,this._realizedRangeLaidOut.promise.done(function(){a._realizedRangeLaidOut=null},function(){a._realizedRangeLaidOut=null}))},_getLayoutCompleted:function(){return this._layoutCompleted?e._cancelBlocker(this._layoutCompleted.promise):e.wrap()},_createSurfaceChild:function(a,c){var d=b.document.createElement("div");return d.className=a,this._listView._canvas.insertBefore(d,c?c.nextElementSibling:null),d},_executeScrollToFunctor:function(){var a=this;return e.as(this._scrollToFunctor?this._scrollToFunctor():null).then(function(b){a._scrollToFunctor=null,b=b||{},+b.position===b.position&&(a._scrollbarPos=b.position),a._direction=b.direction||"right"})}},{_defaultPagesToPrefetch:2,_iOSMaxLeadingPages:6,_iOSMaxTrailingPages:2,_disableCustomPagesPrefetch:!1,_waitForSeZoIntervalDuration:100,_waitForSeZoTimeoutDuration:500,_chunkSize:500,_startupChunkSize:100,_maxTimePerCreateContainers:5,_createContainersJobTimeslice:15,_blocksToRelease:10,_realizationLevel:{skip:"skip",realize:"realize",normal:"normal"}}),w=c.Class.define(function(a){this.view=a,this.view._createTreeBuildingSignal(),this.view._createLayoutSignal()},{name:"CreatedState",enter:function(){this.view._createTreeBuildingSignal(),this.view._createLayoutSignal()},stop:u,realizePage:u,rebuildTree:function(){this.view._setState(x)},relayout:function(){this.view._setState(x)},layoutNewContainers:u,waitForEntityPosition:function(){return this.view._setState(x),this.view._getLayoutCompleted()},updateTree:u}),x=c.Class.define(function(a){this.view=a},{name:"BuildingState",enter:function(){this.canceling=!1,this.view._createTreeBuildingSignal(),this.view._createLayoutSignal();var a=this,b=new f;this.promise=b.promise.then(function(){return a.view._createContainers()}).then(function(){a.view._setState(y)},function(b){return a.canceling||(a.view._setState(w),a.view._listView._raiseViewComplete()),e.wrapError(b)}),b.complete()},stop:function(){this.canceling=!0,this.promise.cancel(),this.view._setState(w)},realizePage:u,rebuildTree:function(){this.canceling=!0,this.promise.cancel(),this.enter()},relayout:u,layoutNewContainers:u,waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:u}),y=c.Class.define(function(a,b){this.view=a,this.nextStateType=b||A},{name:"LayingoutState",enter:function(){var a=this;this.canceling=!1,this.view._createLayoutSignal(),this.view._listView._writeProfilerMark(this.name+"_enter_layoutItems,StartTM");var b=new f;this.promise=b.promise.then(function(){return a.view._layoutItems()}).then(function(b){return a.view._layoutWork=b.layoutComplete,b.realizedRangeComplete}).then(function(){a.view._listView._writeProfilerMark(a.name+"_enter_layoutItems,StopTM"),a.view._listView._clearInsertedItems(),a.view._setAnimationInViewportState(a.view._modifiedElements),a.view._modifiedElements=[],a.view._modifiedGroups=[],a.view._realizedRangeLaidOut.complete(),a.view._layoutWork.then(function(){a.view._listView._writeProfilerMark(a.name+"_enter_layoutCompleted,info"),a.view._listView._affectedRange.clear(),a.view._layoutCompleted.complete()}),a.canceling||a.view._setState(a.nextStateType)},function(b){return a.view._listView._writeProfilerMark(a.name+"_enter_layoutCanceled,info"),a.canceling||(a.view.firstIndexDisplayed=a.view.lastIndexDisplayed=-1,a.view._updateAriaMarkers(!0,a.view.firstIndexDisplayed,a.view.lastIndexDisplayed),a.view._setState(G)),e.wrapError(b)}),b.complete(),this.canceling&&this.promise.cancel()},cancelLayout:function(a){this.view._listView._writeProfilerMark(this.name+"_cancelLayout,info"),this.canceling=!0,this.promise&&this.promise.cancel(),a&&this.view._setState(z)},stop:function(){this.cancelLayout(!0)},realizePage:u,rebuildTree:function(){this.cancelLayout(!1),this.view._setState(x)},relayout:function(){this.cancelLayout(!1),this.enter()},layoutNewContainers:function(){this.relayout()},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c)}}),z=c.Class.define(function(a){this.view=a},{name:"LayoutCanceledState",enter:u,stop:u,realizePage:function(){this.relayout()},rebuildTree:function(){this.view._setState(x)},relayout:function(){this.view._setState(y)},layoutNewContainers:function(){this.relayout()},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c)}}),A=c.Class.define(function(a){this.view=a,this.nextState=E,this.relayoutNewContainers=!0},{name:"RealizingState",enter:function(){var a=this,b=new f;this.promise=b.promise.then(function(){return a.view._executeScrollToFunctor()}).then(function(){return a.relayoutNewContainers=!1,e._cancelBlocker(a.view._realizePageImpl())}).then(function(){a.view._state===a&&(a.view._completeUpdateTree(),a.view._listView._writeProfilerMark("RealizingState_to_UnrealizingState"),a.view._setState(a.nextState))},function(b){return a.view._state!==a||a.canceling||(a.view._listView._writeProfilerMark("RealizingState_to_CanceledState"),a.view._setState(B)),e.wrapError(b)}),b.complete()},stop:function(){this.canceling=!0,this.promise.cancel(),this.view._cancelRealize(),this.view._setState(B)},realizePage:function(){this.canceling=!0,this.promise.cancel(),this.enter()},rebuildTree:function(){this.stop(),this.view._setState(x)},relayout:function(){this.stop(),this.view._setState(y)},layoutNewContainers:function(){this.relayoutNewContainers?this.relayout():(this.view._createLayoutSignal(),this.view._relayoutInComplete=!0)},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c)},setLoadingState:function(a){this.view._listView._setViewState(a)}}),B=c.Class.define(function(a){this.view=a},{name:"CanceledState",enter:u,stop:function(){this.view._cancelRealize()},realizePage:function(a){this.stop(),this.view._setState(a)},rebuildTree:function(){this.stop(),this.view._setState(x)},relayout:function(a){this.stop(),this.view._setState(y,a)},layoutNewContainers:function(){this.relayout(B)},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c)}}),C=c.Class.derive(A,function(a){this.view=a,this.nextState=D,this.relayoutNewContainers=!0},{name:"ScrollingState",setLoadingState:function(){}}),D=c.Class.derive(B,function(a){this.view=a},{name:"ScrollingPausedState",enter:function(){var a=this;this.promise=e._cancelBlocker(this.view._scrollEndPromise).then(function(){a.view._setState(E)})},stop:function(){this.promise.cancel(),this.view._cancelRealize()}}),E=c.Class.define(function(a){this.view=a},{name:"UnrealizingState",enter:function(){var a=this;this.promise=this.view._lazilyUnrealizeItems().then(function(){return a.view._listView._writeProfilerMark("_renderCompletePromise wait starts,info"),a.view._renderCompletePromise}).then(function(){a.view._setState(G)})},stop:function(){this.view._cancelRealize(),this.promise.cancel(),this.view._setState(B)},realizePage:function(a){this.promise.cancel(),this.view._setState(a)},rebuildTree:function(){this.view._setState(x)},relayout:function(){this.view._setState(y)},layoutNewContainers:function(){this.view._createLayoutSignal(),this.view._relayoutInComplete=!0},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c)}}),F=c.Class.define(function(a,b){this.view=a,this.realizePromise=b,this.realizeId=1},{name:"RealizingAnimatingState",enter:function(){var a=this;this.animating=!0,this.animatePromise=this.view._startAnimations(),this.animateSignal=new f,this.view._executeAnimations=!1,this.animatePromise.done(function(){a.animating=!1,a.modifiedElements?(a.view._updateTreeImpl(a.count,a.delta,a.modifiedElements),a.modifiedElements=null,a.view._setState(B)):a.animateSignal.complete()},function(b){return a.animating=!1,e.wrapError(b)}),this._waitForRealize()},_waitForRealize:function(){var a=this;this.realizing=!0,this.realizePromise.done(function(){a.realizing=!1});var b=++this.realizeId;e.join([this.realizePromise,this.animateSignal.promise]).done(function(){b===a.realizeId&&(a.view._completeUpdateTree(),a.view._listView._writeProfilerMark("RealizingAnimatingState_to_UnrealizingState"),a.view._setState(E))})},stop:function(a){this.realizePromise.cancel(),this.view._cancelRealize(),a&&(this.animatePromise.cancel(),this.view._setState(B))},realizePage:function(){if(!this.modifiedElements){var a=this;this.realizePromise=this.view._executeScrollToFunctor().then(function(){return e._cancelBlocker(a.view._realizePageImpl())}),this._waitForRealize()}},rebuildTree:function(){this.stop(!0),this.view._setState(x)},relayout:function(){this.stop(!0),this.modifiedElements&&(this.view._updateTreeImpl(this.count,this.delta,this.modifiedElements),this.modifiedElements=null),this.view._setState(y)},layoutNewContainers:function(){this.view._createLayoutSignal(),this.view._relayoutInComplete=!0},waitForEntityPosition:function(){return this.view._getLayoutCompleted()},updateTree:function(a,b,c){if(this.animating){var d=this.modifiedElements;return this.count=a,this.delta=b,this.modifiedElements=c,d?e.cancel:this.animatePromise}return this.view._updateTreeImpl(a,b,c)},setLoadingState:function(a){this.view._listView._setViewState(a)}}),G=c.Class.derive(B,function(a){this.view=a},{name:"CompletedState",enter:function(){this._stopped=!1,this.view._setupDeferredActions(),this.view._realizationLevel=v._realizationLevel.normal,this.view._listView._raiseViewComplete(),this.view._state===this&&this.view._relayoutInComplete&&!this._stopped&&this.view._setState(H)},stop:function(){this._stopped=!0,B.prototype.stop.call(this)},layoutNewContainers:function(){this.view._createLayoutSignal(),this.view._setState(H)},updateTree:function(a,b,c){return this.view._updateTreeImpl(a,b,c,!0)}}),H=c.Class.derive(B,function(a){this.view=a},{name:"LayingoutNewContainersState",enter:function(){var a=this;this.promise=e.join([this.view.deferTimeout,this.view._layoutWork]),this.promise.then(function(){a.view._relayoutInComplete=!1,a.relayout(B)})},stop:function(){this.promise.cancel(),this.view._cancelRealize()},realizePage:function(a){this.stop(),this.view._setState(y,a)},layoutNewContainers:function(){this.view._createLayoutSignal()}});return v})})}),d("require-style!less/styles-listview",[],function(){}),d("require-style!less/colors-listview",[],function(){}),d("WinJS/Controls/ListView",["../Core/_Global","../Core/_Base","../Core/_BaseUtils","../Core/_ErrorFromName","../Core/_Events","../Core/_Log","../Core/_Resources","../Core/_WriteProfilerMark","../_Accents","../Animations","../Animations/_TransitionAnimation","../BindingList","../Promise","../Scheduler","../_Signal","../Utilities/_Control","../Utilities/_Dispose","../Utilities/_ElementUtilities","../Utilities/_Hoverable","../Utilities/_ItemsManager","../Utilities/_SafeHtml","../Utilities/_TabContainer","../Utilities/_UI","../Utilities/_VersionManager","./ElementResizeInstrument","./ItemContainer/_Constants","./ItemContainer/_ItemEventsHandler","./ListView/_BrowseMode","./ListView/_ErrorMessages","./ListView/_GroupFocusCache","./ListView/_GroupsContainer","./ListView/_Helpers","./ListView/_ItemsContainer","./ListView/_Layouts","./ListView/_SelectionManager","./ListView/_VirtualizeContentsView","require-style!less/styles-listview","require-style!less/colors-listview"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J){"use strict";function K(){var a=Q;Q=[],a=a.filter(function(a){return!a._isZombie()||(a._dispose(),!1)}),Q=Q.concat(a)}function L(a){Q.push(a),N&&N.cancel(),N=m.timeout(P).then(K)}function M(a){return a.offsetParent?a.offsetParent.offsetWidth-a.offsetLeft-a.offsetWidth:0}i.createAccentRule(".win-listview:not(.win-selectionstylefilled) .win-selectioncheckmarkbackground,         .win-itemcontainer:not(.win-selectionstylefilled) .win-selectioncheckmarkbackground",[{name:"border-color",value:i.ColorTypes.accent},{name:"background-color",value:i.ColorTypes.accent}]),i.createAccentRule(".win-listview:not(.win-selectionstylefilled) .win-container.win-selected .win-selectionborder,         .win-itemcontainer:not(.win-selectionstylefilled).win-container.win-selected .win-selectionborder",[{name:"border-color",value:i.ColorTypes.accent}]),i.createAccentRule(".win-listview.win-selectionstylefilled .win-selected .win-selectionbackground,         .win-itemcontainer.win-selectionstylefilled.win-selected .win-selectionbackground",[{name:"background-color",value:i.ColorTypes.accent}]);var N,O=c._browserStyleEquivalents.transform,P=1e3,Q=[],R=r._uniqueID,S={get notCompatibleWithSemanticZoom(){return"ListView can only be used with SemanticZoom if randomAccess loading behavior is specified."},get listViewInvalidItem(){return"Item must provide index, key or description of corresponding item."},get listViewViewportAriaLabel(){return g._getWinJSString("ui/listViewViewportAriaLabel").value}},T=c.requireSupportedForProcessing,U={entrance:"entrance",contentTransition:"contentTransition"};b.Namespace.define("WinJS.UI",{ListViewAnimationType:U,ListView:b.Namespace._lazy(function(){var g=b.Class.define(function(){this.clear()},{add:function(a,b){if(a._lastKnownSizeOfData=b,this._range){this._range.start=Math.min(this._range.start,a.start);var c=this._range._lastKnownSizeOfData-this._range.end,d=a._lastKnownSizeOfData-a.end,e=Math.min(c,d);this._range._lastKnownSizeOfData=a._lastKnownSizeOfData,this._range.end=this._range._lastKnownSizeOfData-e}else this._range=a},addAll:function(){this.add({start:0,end:Number.MAX_VALUE},Number.MAX_VALUE)},clear:function(){this._range=null},get:function(){return this._range}}),i=b.Class.define(function(a){this._listView=a},{getPanAxis:function(){return this._listView._getPanAxis()},configureForZoom:function(a,b,c,d){this._listView._configureForZoom(a,b,c,d)},setCurrentItem:function(a,b){this._listView._setCurrentItem(a,b)},getCurrentItem:function(){return this._listView._getCurrentItem()},beginZoom:function(){return this._listView._beginZoom()},positionItem:function(a,b){return this._listView._positionItem(a,b)},endZoom:function(a){this._listView._endZoom(a)},pinching:{get:function(){return this._listView._pinching},set:function(a){this._listView._pinching=a}}}),s=b.Class.define(function(b,c){if(b=b||a.document.createElement("div"),this._id=b.id||"",this._writeProfilerMark("constructor,StartTM"),c=c||{},b.winControl=this,r.addClass(b,"win-disposable"),this._affectedRange=new g,this._mutationObserver=new r._MutationObserver(this._itemPropertyChange.bind(this)),this._versionManager=null,this._insertedItems={},this._element=b,this._startProperty=null,this._scrollProperty=null,this._scrollLength=null,this._scrolling=!1,this._zooming=!1,this._pinching=!1,this._itemsManager=null,this._canvas=null,this._cachedCount=z._UNINITIALIZED,this._loadingState=this._LoadingState.complete,this._firstTimeDisplayed=!0,this._currentScrollPosition=0,this._lastScrollPosition=0,this._notificationHandlers=[],this._itemsBlockExtent=-1,this._lastFocusedElementInGroupTrack={type:w.ObjectType.item,index:-1},this._headerFooterVisibilityStatus={headerVisible:!1,footerVisible:!1},this._viewportWidth=z._UNINITIALIZED,this._viewportHeight=z._UNINITIALIZED,this._manipulationState=r._MSManipulationEvent.MS_MANIPULATION_STATE_STOPPED,this._maxDeferredItemCleanup=Number.MAX_VALUE,this._groupsToRemove={},this._setupInternalTree(),this._isCurrentZoomView=!0,this._dragSource=!1,this._reorderable=!1,this._groupFocusCache=new D._UnsupportedGroupFocusCache,this._viewChange=z._ViewChange.rebuild,this._scrollToFunctor=null,this._setScrollbarPosition=!1,this._view=new J._VirtualizeContentsView(this),this._selection=new I._SelectionManager(this),this._createTemplates(),this._groupHeaderRenderer=t._trivialHtmlRenderer,this._itemRenderer=t._trivialHtmlRenderer,this._groupHeaderRelease=null,this._itemRelease=null,c.itemDataSource)this._dataSource=c.itemDataSource;else{var d=new l.List;this._dataSource=d.dataSource}this._selectionMode=w.SelectionMode.multi,this._tap=w.TapBehavior.invokeOnly,this._groupHeaderTap=w.GroupHeaderTapBehavior.invoke,this._mode=new B._SelectionMode(this),this._groups=new E._NoGroups(this),this._updateItemsAriaRoles(),this._updateGroupHeadersAriaRoles(),this._element.setAttribute("aria-multiselectable",this._multiSelection()),this._element.tabIndex=-1,this._tabManager.tabIndex=this._tabIndex,"absolute"!==this._element.style.position&&"relative"!==this._element.style.position&&(this._element.style.position="relative"),this._updateItemsManager(),c.layout||this._updateLayout(new H.GridLayout),this._attachEvents(),this._runningInit=!0,p.setOptions(this,c),this._runningInit=!1,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0),this._writeProfilerMark("constructor,StopTM")},{element:{get:function(){return this._element}},layout:{get:function(){return this._layoutImpl},set:function(a){this._updateLayout(a),this._runningInit||(this._view.reset(),this._updateItemsManager(),this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0,!0))}},maxLeadingPages:{get:function(){return this._view.maxLeadingPages},set:function(a){this._view.maxLeadingPages=Math.max(0,Math.floor(a))}},maxTrailingPages:{get:function(){return this._view.maxTrailingPages},set:function(a){this._view.maxTrailingPages=Math.max(0,Math.floor(a))}},pagesToLoad:{get:function(){return 2*J._VirtualizeContentsView._defaultPagesToPrefetch+1},set:function(){r._deprecated(C.pagesToLoadIsDeprecated)}},pagesToLoadThreshold:{get:function(){return 0},set:function(){r._deprecated(C.pagesToLoadThresholdIsDeprecated)}},groupDataSource:{get:function(){return this._groupDataSource},set:function(a){function b(a){a.detail===w.DataSourceStatus.failure&&(c.itemDataSource=null,c.groupDataSource=null)}this._writeProfilerMark("set_groupDataSource,info");var c=this;this._groupDataSource&&this._groupDataSource.removeEventListener&&this._groupDataSource.removeEventListener("statuschanged",b,!1),this._groupDataSource=a,this._groupFocusCache=a&&this._supportsGroupHeaderKeyboarding?new D._GroupFocusCache(this):new D._UnsupportedGroupFocusCache,this._groupDataSource&&this._groupDataSource.addEventListener&&this._groupDataSource.addEventListener("statuschanged",b,!1),this._createGroupsContainer(),this._runningInit?(this._updateGroupWork(),this._resetLayout()):(this._view.reset(),this._pendingLayoutReset=!0,this._pendingGroupWork=!0,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0,!0))}},_updateGroupWork:function(){this._pendingGroupWork=!1,this._groupDataSource?r.addClass(this._element,z._groupsClass):r.removeClass(this._element,z._groupsClass),this._resetLayout()},automaticallyLoadPages:{get:function(){return!1},set:function(){r._deprecated(C.automaticallyLoadPagesIsDeprecated)}},loadingBehavior:{get:function(){return"randomAccess"},set:function(){r._deprecated(C.loadingBehaviorIsDeprecated)}},selectionMode:{get:function(){return this._selectionMode},set:function(a){if("string"==typeof a&&a.match(/^(none|single|multi)$/)){if(c.isPhone&&a===w.SelectionMode.single)return;return this._selectionMode=a,this._element.setAttribute("aria-multiselectable",this._multiSelection()),this._updateItemsAriaRoles(),void this._configureSelectionMode()}throw new d("WinJS.UI.ListView.ModeIsInvalid",C.modeIsInvalid)}},tapBehavior:{get:function(){return this._tap},set:function(a){c.isPhone&&a===w.TapBehavior.directSelect||(this._tap=a,this._updateItemsAriaRoles(),this._configureSelectionMode())}},groupHeaderTapBehavior:{get:function(){return this._groupHeaderTap},set:function(a){this._groupHeaderTap=a,this._updateGroupHeadersAriaRoles()}},swipeBehavior:{get:function(){return"none"},set:function(a){r._deprecated(C.swipeBehaviorDeprecated)}},itemDataSource:{get:function(){return this._itemsManager.dataSource},set:function(a){this._writeProfilerMark("set_itemDataSource,info"),this._dataSource=a||(new l.List).dataSource,this._groupFocusCache.clear(),this._runningInit||(this._selection._reset(),this._cancelAsyncViewWork(!0),this._updateItemsManager(),this._pendingLayoutReset=!0,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0,!0))}},itemTemplate:{get:function(){return this._itemRenderer},set:function(a){this._setRenderer(a,!1),this._runningInit||(this._cancelAsyncViewWork(!0),this._updateItemsManager(),this._pendingLayoutReset=!0,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0,!0))}},resetItem:{get:function(){return this._itemRelease},set:function(a){r._deprecated(C.resetItemIsDeprecated),this._itemRelease=a}},groupHeaderTemplate:{get:function(){return this._groupHeaderRenderer},set:function(a){this._setRenderer(a,!0),this._runningInit||(this._cancelAsyncViewWork(!0),this._pendingLayoutReset=!0,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.medium,0,!0))}},resetGroupHeader:{get:function(){return this._groupHeaderRelease},set:function(a){r._deprecated(C.resetGroupHeaderIsDeprecated),this._groupHeaderRelease=a}},header:{get:function(){return this._header},set:function(a){r.empty(this._headerContainer),this._header=a,a&&(this._header.tabIndex=this._tabIndex,this._headerContainer.appendChild(a));var b=this._selection._getFocused();if(b.type===w.ObjectType.header){var c=b;a||(c={type:w.ObjectType.item,index:0}),this._hasKeyboardFocus?this._changeFocus(c,!0,!1,!0):this._changeFocusPassively(c)}this.recalculateItemPosition(),this._raiseHeaderFooterVisibilityEvent()}},footer:{get:function(){return this._footer},set:function(a){r.empty(this._footerContainer),this._footer=a,a&&(this._footer.tabIndex=this._tabIndex,this._footerContainer.appendChild(a));var b=this._selection._getFocused();if(b.type===w.ObjectType.footer){var c=b;a||(c={type:w.ObjectType.item,index:0}),this._hasKeyboardFocus?this._changeFocus(c,!0,!1,!0):this._changeFocusPassively(c)}this.recalculateItemPosition(),this._raiseHeaderFooterVisibilityEvent()}},loadingState:{get:function(){return this._loadingState}},selection:{get:function(){return this._selection}},indexOfFirstVisible:{get:function(){return this._view.firstIndexDisplayed},set:function(a){if(!(a<0)){this._writeProfilerMark("set_indexOfFirstVisible("+a+"),info"),this._raiseViewLoading(!0);var b=this;this._batchViewUpdates(z._ViewChange.realize,z._ScrollToPriority.high,function(){var c;return b._entityInRange({type:w.ObjectType.item,index:a}).then(function(a){return a.inRange?b._getItemOffset({type:w.ObjectType.item,index:a.index}).then(function(a){return c=a,b._ensureFirstColumnRange(w.ObjectType.item)}).then(function(){return c=b._correctRangeInFirstColumn(c,w.ObjectType.item),c=b._convertFromCanvasCoordinates(c),b._view.waitForValidScrollPosition(c.begin)}).then(function(a){var c=a<b._lastScrollPosition?"left":"right",d=b._viewport[b._scrollLength]-b._getViewportLength();return a=r._clamp(a,0,d),{position:a,direction:c}}):{position:0,direction:"left"}})},!0)}}},indexOfLastVisible:{get:function(){return this._view.lastIndexDisplayed}},currentItem:{get:function(){var a=this._selection._getFocused(),b={index:a.index,type:a.type,key:null,hasFocus:!!this._hasKeyboardFocus,showFocus:!1};if(a.type===w.ObjectType.groupHeader){var c=this._groups.group(a.index);c&&(b.key=c.key,b.showFocus=!(!c.header||!r.hasClass(c.header,z._itemFocusClass)))}else if(a.type===w.ObjectType.item){var d=this._view.items.itemAt(a.index);if(d){var e=this._itemsManager._recordFromElement(d);b.key=e.item&&e.item.key,b.showFocus=!!d.parentNode.querySelector("."+z._itemFocusOutlineClass)}}return b},set:function(a){function b(b,d,e){var f=!!a.showFocus&&c._hasKeyboardFocus;c._unsetFocusOnItem(d),c._selection._setFocused(e,f),c._hasKeyboardFocus?(c._keyboardFocusInbound=f,c._setFocusOnItem(e)):c._tabManager.childFocus=d?b:null,e.type!==w.ObjectType.groupHeader&&(c._updateFocusCache(e.index),c._updater&&(c._updater.newSelectionPivot=e.index,c._updater.oldSelectionPivot=-1),c._selection._pivot=e.index)}this._hasKeyboardFocus=a.hasFocus||this._hasKeyboardFocus,a.type||(a.type=w.ObjectType.item);var c=this;if(a.key&&(a.type===w.ObjectType.item&&this._dataSource.itemFromKey||a.type===w.ObjectType.groupHeader&&this._groupDataSource&&this._groupDataSource.itemFromKey)){this.oldCurrentItemKeyFetch&&this.oldCurrentItemKeyFetch.cancel();var d=a.type===w.ObjectType.groupHeader?this._groupDataSource:this._dataSource;this.oldCurrentItemKeyFetch=d.itemFromKey(a.key).then(function(d){if(c.oldCurrentItemKeyFetch=null,d){var e=a.type===w.ObjectType.groupHeader?c._groups.group(d.index).header:c._view.items.itemAt(d.index);b(e,!!e,{type:a.type,index:d.index})}})}else{var e;if(a.type===w.ObjectType.header||a.type===w.ObjectType.footer)e=a.type===w.ObjectType.header?this._header:this._footer,b(e,!!e,{type:a.type,index:a.index});else if(void 0!==a.index){if(a.type===w.ObjectType.groupHeader){var f=c._groups.group(a.index);e=f&&f.header}else e=c._view.items.itemAt(a.index);b(e,!!e,{type:a.type,index:a.index})}}}},zoomableView:{get:function(){return this._zoomableView||(this._zoomableView=new i(this)),this._zoomableView}},itemsDraggable:{get:function(){return this._dragSource},set:function(a){c.isPhone||this._dragSource!==a&&(this._dragSource=a,this._setDraggable())}},itemsReorderable:{get:function(){return this._reorderable},set:function(a){c.isPhone||this._reorderable!==a&&(this._reorderable=a,this._setDraggable())}},maxDeferredItemCleanup:{get:function(){return this._maxDeferredItemCleanup},set:function(a){this._maxDeferredItemCleanup=Math.max(0,+a||0)}},dispose:function(){this._dispose()},elementFromIndex:function(a){return this._view.items.itemAt(a)},indexOfElement:function(a){return this._view.items.index(a)},ensureVisible:function(a){var b=w.ObjectType.item,c=a;if(+a!==a&&(b=a.type,c=a.index),this._writeProfilerMark("ensureVisible("+b+": "+c+"),info"),!(c<0)){this._raiseViewLoading(!0);var d=this;this._batchViewUpdates(z._ViewChange.realize,z._ScrollToPriority.high,function(){var a;return d._entityInRange({type:b,index:c}).then(function(c){return c.inRange?d._getItemOffset({type:b,index:c.index}).then(function(c){return a=c,d._ensureFirstColumnRange(b)}).then(function(){a=d._correctRangeInFirstColumn(a,b);var e=d._getViewportLength(),f=d._viewportScrollPosition,g=f+e,h=d._viewportScrollPosition,i=a.end-a.begin;a=d._convertFromCanvasCoordinates(a);var j=!1;if(b===w.ObjectType.groupHeader&&f<=a.begin){var k=d._groups.group(c.index).header;if(k){var l,m=H._getMargins(k);if(d._horizontalLayout){var n=d._rtl();l=(n?M(k)-m.right:k.offsetLeft-m.left)+k.offsetWidth+(n?m.left:m.right)}else l=k.offsetTop+k.offsetHeight+m.top;j=l<=g}}j||(i>=g-f?h=a.begin:a.begin<f?h=a.begin:a.end>g&&(h=a.end-e));var o=h<d._lastScrollPosition?"left":"right",p=d._viewport[d._scrollLength]-e;return h=r._clamp(h,0,p),{position:h,direction:o}}):{position:0,direction:"left"}})},!0)}},loadMorePages:function(){r._deprecated(C.loadMorePagesIsDeprecated)},recalculateItemPosition:function(){this._writeProfilerMark("recalculateItemPosition,info"),this._forceLayoutImpl(z._ViewChange.relayout)},forceLayout:function(){this._writeProfilerMark("forceLayout,info"),this._forceLayoutImpl(z._ViewChange.remeasure)},_entityInRange:function(a){if(a.type===w.ObjectType.item)return this._itemsCount().then(function(b){var c=r._clamp(a.index,0,b-1);return{inRange:c>=0&&c<b,index:c}});if(a.type===w.ObjectType.groupHeader){var b=r._clamp(a.index,0,this._groups.length()-1);return m.wrap({inRange:b>=0&&b<this._groups.length(),index:b})}return m.wrap({inRange:!0,index:0})},_forceLayoutImpl:function(a){var b=this;this._versionManager&&this._versionManager.unlocked.then(function(){b._writeProfilerMark("_forceLayoutImpl viewChange("+a+"),info"),b._cancelAsyncViewWork(),b._pendingLayoutReset=!0,b._resizeViewport(),b._batchViewUpdates(a,z._ScrollToPriority.low,function(){return{position:b._lastScrollPosition,direction:"right"}},!0,!0)})},_configureSelectionMode:function(){var b=z._selectionModeClass,c=z._hidingSelectionMode;if(this._isInSelectionMode())r.addClass(this._canvas,b),r.removeClass(this._canvas,c);else{if(r.hasClass(this._canvas,b)){var d=this;a.setTimeout(function(){a.setTimeout(function(){r.removeClass(d._canvas,c)},z._hidingSelectionModeAnimationTimeout)},50),r.addClass(this._canvas,c)}r.removeClass(this._canvas,b)}},_lastScrollPosition:{get:function(){return this._lastScrollPositionValue},set:function(a){if(0===a)this._lastDirection="right",this._direction="right",this._lastScrollPositionValue=0;else{var b=a<this._lastScrollPositionValue?"left":"right";this._direction=this._scrollDirection(a),this._lastDirection=b,this._lastScrollPositionValue=a}}},_hasHeaderOrFooter:{get:function(){return!(!this._header&&!this._footer)}},_getHeaderOrFooterFromElement:function(a){return this._header&&this._header.contains(a)?this._header:this._footer&&this._footer.contains(a)?this._footer:null},_supportsGroupHeaderKeyboarding:{get:function(){return this._groupDataSource}},_viewportScrollPosition:{get:function(){return this._currentScrollPosition=r.getScrollPosition(this._viewport)[this._scrollProperty],this._currentScrollPosition},set:function(a){var b={};b[this._scrollProperty]=a,r.setScrollPosition(this._viewport,b),this._currentScrollPosition=a}},_canvasStart:{get:function(){return this._canvasStartValue||0},set:function(a){var b=this._horizontal()?this._rtl()?-a:a:0,c=this._horizontal()?0:a;this._canvas.style[O.scriptName]=0!==a?"translate( "+b+"px, "+c+"px)":"",this._canvasStartValue=a}},scrollPosition:{get:function(){return this._viewportScrollPosition},set:function(a){var b=this;this._batchViewUpdates(z._ViewChange.realize,z._ScrollToPriority.high,function(){return b._view.waitForValidScrollPosition(a).then(function(){var c=b._viewport[b._scrollLength]-b._getViewportLength();a=r._clamp(a,0,c);var d=a<b._lastScrollPosition?"left":"right";return{position:a,direction:d}})},!0)}},_setRenderer:function(a,b){var e;if(a){if("function"==typeof a)e=a;else if("object"==typeof a){if(c.validation&&!a.renderItem)throw new d("WinJS.UI.ListView.invalidTemplate",C.invalidTemplate);e=a.renderItem}}else{if(c.validation)throw new d("WinJS.UI.ListView.invalidTemplate",C.invalidTemplate);e=t.trivialHtmlRenderer}e&&(b?this._groupHeaderRenderer=e:this._itemRenderer=e)},_renderWithoutReuse:function(a,b){b&&q._disposeElement(b);var c=this._itemRenderer(a);return c.then?c.then(function(a){return a.tabIndex=0,a}):((c.element||c).tabIndex=0,c)},_isInsertedItem:function(a){return!!this._insertedItems[a.handle]},_clearInsertedItems:function(){for(var a=Object.keys(this._insertedItems),b=0,c=a.length;b<c;b++)this._insertedItems[a[b]].release();this._insertedItems={},this._modifiedElements=[],this._countDifference=0},_cancelAsyncViewWork:function(a){this._view.stopWork(a)},_updateView:function(){function a(){c._itemsBlockExtent=-1,c._firstItemRange=null,c._firstHeaderRange=null,c._itemMargins=null,c._headerMargins=null,c._canvasMargins=null,c._cachedRTL=null,c._rtl()}function b(){c._scrollToPriority=z._ScrollToPriority.uninitialized;var a=c._setScrollbarPosition;c._setScrollbarPosition=!1;var b="number"==typeof c._scrollToFunctor?{position:c._scrollToFunctor}:c._scrollToFunctor();return m.as(b).then(function(b){return b=b||{},a&&+b.position===b.position&&(c._lastScrollPosition=b.position,c._viewportScrollPosition=b.position),b},function(b){return c._setScrollbarPosition|=a,m.wrapError(b)})}if(!this._isZombie()){var c=this,d=this._viewChange;this._viewChange=z._ViewChange.realize,d===z._ViewChange.rebuild?(this._pendingGroupWork&&this._updateGroupWork(),this._pendingLayoutReset&&this._resetLayout(),a(),this._firstTimeDisplayed||this._view.reset(),this._view.reload(b,!0),this._setFocusOnItem(this._selection._getFocused()),this._headerFooterVisibilityStatus={headerVisible:!1,footerVisible:!1}):d===z._ViewChange.remeasure?(this._view.resetItems(!0),this._resetLayout(),a(),this._view.refresh(b),this._setFocusOnItem(this._selection._getFocused()),this._headerFooterVisibilityStatus={headerVisible:!1,footerVisible:!1}):d===z._ViewChange.relayout?(this._pendingLayoutReset&&(this._resetLayout(),a()),this._view.refresh(b)):(this._view.onScroll(b),this._raiseHeaderFooterVisibilityEvent())}},_batchViewUpdates:function(a,b,c,d,e){if(this._viewChange=Math.min(this._viewChange,a),(null===this._scrollToFunctor||b>=this._scrollToPriority)&&(this._scrollToPriority=b,this._scrollToFunctor=c),this._setScrollbarPosition|=!!d,!this._batchingViewUpdates){this._raiseViewLoading();var f=this;this._batchingViewUpdatesSignal=new o,this._batchingViewUpdates=m.any([this._batchingViewUpdatesSignal.promise,n.schedulePromiseHigh(null,"WinJS.UI.ListView._updateView")]).then(function(){if(!f._isZombie())return f._viewChange!==z._ViewChange.rebuild||f._firstTimeDisplayed||0===Object.keys(f._view.items._itemData).length||e?void 0:f._fadeOutViewport()}).then(function(){f._batchingViewUpdates=null,f._batchingViewUpdatesSignal=null,f._updateView(),f._firstTimeDisplayed=!1},function(){f._batchingViewUpdates=null,f._batchingViewUpdatesSignal=null})}return this._batchingViewUpdatesSignal},_resetCanvas:function(){if(!this._disposed){var b=a.document.createElement("div");b.className=this._canvas.className,this._viewport.replaceChild(b,this._canvas),this._canvas=b,this._groupsToRemove={},this._canvas.appendChild(this._canvasProxy)}},_setupInternalTree:function(){r.addClass(this._element,z._listViewClass),r[this._rtl()?"addClass":"removeClass"](this._element,z._rtlListViewClass),this._element.innerHTML='<div tabIndex="-1" role="group" class="'+z._viewportClass+" "+z._horizontalClass+'"><div></div><div class="'+z._scrollableClass+'"><div class="'+z._proxyClass+'"></div></div><div></div><div></div></div><div aria-hidden="true" style="position:absolute;left:50%;top:50%;width:0px;height:0px;" tabindex="-1"></div>',this._viewport=this._element.firstElementChild,this._headerContainer=this._viewport.firstElementChild,r.addClass(this._headerContainer,z._listHeaderContainerClass),this._canvas=this._headerContainer.nextElementSibling,this._footerContainer=this._canvas.nextElementSibling,r.addClass(this._footerContainer,z._listFooterContainerClass),this._canvasProxy=this._canvas.firstElementChild,this._deleteWrapper=this._canvas.nextElementSibling,this._keyboardEventsHelper=this._viewport.nextElementSibling,this._tabIndex=r.getTabIndex(this._element),this._tabIndex<0&&(this._tabIndex=0),this._tabManager=new v.TabContainer(this._viewport),this._tabManager.tabIndex=this._tabIndex,this._progressBar=a.document.createElement("progress"),r.addClass(this._progressBar,z._progressClass),r.addClass(this._progressBar,"win-progress-ring"),this._progressBar.style.position="absolute",this._progressBar.max=100},_unsetFocusOnItem:function(b){this._tabManager.childFocus&&this._clearFocusRectangle(this._tabManager.childFocus),this._isZombie()||(b||(this._tabManager.childFocus&&(this._tabManager.childFocus=null),this._keyboardEventsHelper._shouldHaveFocus=!1,a.document.activeElement!==this._viewport&&this._hasKeyboardFocus&&(this._keyboardEventsHelper._shouldHaveFocus=!0,r._setActive(this._keyboardEventsHelper))),this._itemFocused=!1)},_setFocusOnItem:function(a){if(this._writeProfilerMark("_setFocusOnItem,info"),this._focusRequest&&this._focusRequest.cancel(),!this._isZombie()){var b=this,c=function(c){b._isZombie()||(b._tabManager.childFocus!==c&&(b._tabManager.childFocus=c),b._focusRequest=null,b._hasKeyboardFocus&&!b._itemFocused&&(b._selection._keyboardFocused()&&b._drawFocusRectangle(c),a.type!==w.ObjectType.groupHeader&&a.type!==w.ObjectType.item||b._view.updateAriaForAnnouncement(c,a.type===w.ObjectType.groupHeader?b._groups.length():b._cachedCount),b._itemFocused=!0,r._setActive(c)))};a.type===w.ObjectType.item?this._focusRequest=this._view.items.requestItem(a.index):a.type===w.ObjectType.groupHeader?this._focusRequest=this._groups.requestHeader(a.index):this._focusRequest=m.wrap(a.type===w.ObjectType.header?this._header:this._footer),this._focusRequest.then(c)}},_attachEvents:function(){function a(a,b,c){return{name:b?a:a.toLowerCase(),handler:function(b){d["_on"+a](b)},capture:c}}function b(a,b,c){return{capture:c,name:b?a:a.toLowerCase(),handler:function(b){var c=d._mode,e="on"+a;!d._disposed&&c[e]&&c[e](b)}}}function c(a,b){return{handler:function(b){d["_on"+a](b)},filter:b}}var d=this,e=[c("PropertyChange",["dir","style","tabindex"])];this._cachedStyleDir=this._element.style.direction,e.forEach(function(a){new r._MutationObserver(a.handler).observe(d._element,{attributes:!0,attributeFilter:a.filter})}),[b("PointerDown"),b("click",!1),b("PointerUp"),b("LostPointerCapture"),b("MSHoldVisual",!0),b("PointerCancel"),b("DragStart"),b("DragOver"),b("DragEnter"),b("DragLeave"),b("Drop"),b("ContextMenu")].forEach(function(a){r._addEventListener(d._viewport,a.name,a.handler,!!a.capture)}),[a("FocusIn",!1,!1),a("FocusOut",!1,!1),b("KeyDown"),b("KeyUp")].forEach(function(a){r._addEventListener(d._element,a.name,a.handler,!!a.capture)}),this._onElementResizeBound=this._onElementResize.bind(this),r._resizeNotifier.subscribe(this._element,this._onElementResizeBound),this._elementResizeInstrument=new y._ElementResizeInstrument,this._element.appendChild(this._elementResizeInstrument.element),this._elementResizeInstrument.addEventListener("resize",this._onElementResizeBound),r._inDom(this.element).then(function(){d._disposed||d._elementResizeInstrument.addedToDom()}),[a("MSManipulationStateChanged",!0),a("Scroll")].forEach(function(a){d._viewport.addEventListener(a.name,a.handler,!1)}),this._viewport.addEventListener("onTabEnter",this._onTabEnter.bind(this)),this._viewport.addEventListener("onTabExit",this._onTabExit.bind(this)),this._viewport.addEventListener("onTabEntered",function(a){d._mode.onTabEntered(a)}),this._viewport.addEventListener("onTabExiting",function(a){d._mode.onTabExiting(a)})},_updateItemsManager:function(){function a(a){a.detail===w.DataSourceStatus.failure&&(b.itemDataSource=null,b.groupDataSource=null)}var b=this,c={beginNotifications:function(){},changed:function(a,c){if(!b._ifZombieDispose()){b._createUpdater();var d=b._updater.elements[R(c)];if(d){var e=b.selection._isIncluded(d.index);if(e&&(b._updater.updateDrag=!0),c!==a){if(b._tabManager.childFocus!==c&&b._updater.newFocusedItem!==c||(b._updater.newFocusedItem=a,b._tabManager.childFocus=null),d.itemBox){r.addClass(a,z._itemClass),b._setupAriaSelectionObserver(a);var f=c.nextElementSibling;d.itemBox.removeChild(c),d.itemBox.insertBefore(a,f)}b._setAriaSelected(a,e),b._view.items.setItemAt(d.newIndex,{element:a,itemBox:d.itemBox,container:d.container,itemsManagerRecord:d.itemsManagerRecord}),delete b._updater.elements[R(c)],q._disposeElement(c),b._updater.elements[R(a)]={item:a,container:d.container,itemBox:d.itemBox,index:d.index,newIndex:d.newIndex,itemsManagerRecord:d.itemsManagerRecord}}else d.itemBox&&d.container&&(A._ItemEventsHandler.renderSelection(d.itemBox,a,e,!0),r[e?"addClass":"removeClass"](d.container,z._selectedClass));b._updater.changed=!0}for(var g=0,h=b._notificationHandlers.length;g<h;g++)b._notificationHandlers[g].changed(a,c);b._writeProfilerMark("changed,info")}},removed:function(a,c,d){function e(a){b._updater.updateDrag=!0,b._currentMode()._dragging&&b._currentMode()._draggingUnselectedItem&&b._currentMode()._dragInfo._isIncluded(a)&&(b._updater.newDragInfo=new I._Selection(b,[]));var c=b._updater.selectionFirst[a],d=b._updater.selectionLast[a],e=c||d;e&&(delete b._updater.selectionFirst[e.oldFirstIndex],delete b._updater.selectionLast[e.oldLastIndex],b._updater.selectionChanged=!0)}if(!b._ifZombieDispose()){b._createUpdater();b._insertedItems[d]&&delete b._insertedItems[d];var f;if(a){var g=b._updater.elements[R(a)],h=b._itemsManager.itemObject(a);if(h&&b._groupFocusCache.deleteItem(h.key),g){if(f=g.index,g.itemBox){var i=g.itemBox,j=z._containerOddClass,k=z._containerEvenClass,l=r.hasClass(i.parentElement,k)?k:j;b._updater.removed.push({index:f,itemBox:i,containerStripe:l})}b._updater.deletesCount++;b._view.items.itemDataAt(f).removed=!0,delete b._updater.elements[R(a)]}else f=h&&h.index;b._updater.oldFocus.type!==w.ObjectType.groupHeader&&b._updater.oldFocus.index===f&&(b._updater.newFocus.index=f,b._updater.focusedItemRemoved=!0),e(f)}else(f=b._updater.selectionHandles[d])===+f&&e(f);b._writeProfilerMark("removed("+f+"),info"),b._updater.changed=!0}},updateAffectedRange:function(a){b._itemsCount().then(function(c){var d=b._view.containers?b._view.containers.length:0;a.start=Math.min(a.start,d),b._affectedRange.add(a,c)}),b._createUpdater(),b._updater.changed=!0},indexChanged:function(a,c,d){if(!b._ifZombieDispose()){if(b._createUpdater(),a){var e=b._itemsManager.itemObject(a);e&&b._groupFocusCache.updateItemIndex(e.key,c);var f=b._updater.elements[R(a)];f&&(f.newIndex=c,b._updater.changed=!0),b._updater.itemsMoved=!0}b._currentMode()._dragging&&b._currentMode()._draggingUnselectedItem&&b._currentMode()._dragInfo._isIncluded(d)&&(b._updater.newDragInfo=new I._Selection(b,[{firstIndex:c,lastIndex:c}]),b._updater.updateDrag=!0),b._updater.oldFocus.type!==w.ObjectType.groupHeader&&b._updater.oldFocus.index===d&&(b._updater.newFocus.index=c,b._updater.changed=!0),b._updater.oldSelectionPivot===d&&(b._updater.newSelectionPivot=c,b._updater.changed=!0);var g=b._updater.selectionFirst[d];g&&(g.newFirstIndex=c,b._updater.changed=!0,b._updater.selectionChanged=!0,b._updater.updateDrag=!0),g=b._updater.selectionLast[d],g&&(g.newLastIndex=c,b._updater.changed=!0,b._updater.selectionChanged=!0,b._updater.updateDrag=!0)}},endNotifications:function(){b._update()},inserted:function(a){b._ifZombieDispose()||(b._writeProfilerMark("inserted,info"),b._createUpdater(),b._updater.changed=!0,a.retain(),b._updater.insertsCount++,b._insertedItems[a.handle]=a)},moved:function(a,c,d,e){if(!b._ifZombieDispose()){if(b._createUpdater(),b._updater.movesCount++,a){b._updater.itemsMoved=!0;var f=b._updater.elements[R(a)];f&&(f.moved=!0)}var g=b._updater.selectionHandles[e.handle];if(g===+g){b._updater.updateDrag=!0,b._updater.selectionChanged=!0,b._updater.changed=!0;var h=b._updater.selectionFirst[g],i=b._updater.selectionLast[g],j=h||i;j&&j.oldFirstIndex!==j.oldLastIndex&&(delete b._updater.selectionFirst[j.oldFirstIndex],delete b._updater.selectionLast[j.oldLastIndex])}b._writeProfilerMark("moved("+g+"),info")}},countChanged:function(a,c){b._ifZombieDispose()||(b._writeProfilerMark("countChanged("+a+"),info"),b._cachedCount=a,b._createUpdater(),b._view.lastIndexDisplayed+1===c&&(b._updater.changed=!0),b._updater.countDifference+=a-c)},reload:function(){b._ifZombieDispose()||(b._writeProfilerMark("reload,info"),b._processReload())}};this._versionManager&&this._versionManager._dispose(),this._versionManager=new x._VersionManager,this._updater=null;var d=this._selection.getRanges();this._selection._selected.clear(),this._itemsManager&&(this._itemsManager.dataSource&&this._itemsManager.dataSource.removeEventListener&&this._itemsManager.dataSource.removeEventListener("statuschanged",a,!1),this._clearInsertedItems(),this._itemsManager.release()),this._itemsCountPromise&&(this._itemsCountPromise.cancel(),this._itemsCountPromise=null),this._cachedCount=z._UNINITIALIZED,this._itemsManager=t._createItemsManager(this._dataSource,this._renderWithoutReuse.bind(this),c,{ownerElement:this._element,versionManager:this._versionManager,indexInView:function(a){return a>=b.indexOfFirstVisible&&a<=b.indexOfLastVisible},viewCallsReady:!0,profilerId:this._id}),this._dataSource.addEventListener&&this._dataSource.addEventListener("statuschanged",a,!1),this._selection._selected.set(d)},_processReload:function(){this._affectedRange.addAll(),this._cancelAsyncViewWork(!0),this._currentMode()._dragging&&this._currentMode()._clearDragProperties(),this._groupFocusCache.clear(),this._selection._reset(),this._updateItemsManager(),this._pendingLayoutReset=!0,this._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.low,this.scrollPosition)},_createUpdater:function(){if(!this._updater){this.itemDataSource._isVirtualizedDataSource&&this._affectedRange.addAll(),this._versionManager.beginUpdating(),this._cancelAsyncViewWork();var a={changed:!1,elements:{},selectionFirst:{},selectionLast:{},selectionHandles:{},oldSelectionPivot:{type:w.ObjectType.item,index:z._INVALID_INDEX},newSelectionPivot:{type:w.ObjectType.item,index:z._INVALID_INDEX},removed:[],selectionChanged:!1,oldFocus:{type:w.ObjectType.item,index:z._INVALID_INDEX},newFocus:{type:w.ObjectType.item,index:z._INVALID_INDEX},hadKeyboardFocus:this._hasKeyboardFocus,itemsMoved:!1,lastVisible:this.indexOfLastVisible,updateDrag:!1,movesCount:0,insertsCount:0,deletesCount:0,countDifference:0};this._view.items.each(function(b,c,d){a.elements[R(c)]={item:c,container:d.container,itemBox:d.itemBox,index:b,newIndex:b,itemsManagerRecord:d.itemsManagerRecord,detached:d.detached}});for(var b=this._selection._selected._ranges,c=0,d=b.length;c<d;c++){var e=b[c],f={newFirstIndex:b[c].firstIndex,oldFirstIndex:b[c].firstIndex,newLastIndex:b[c].lastIndex,oldLastIndex:b[c].lastIndex};a.selectionFirst[f.oldFirstIndex]=f,a.selectionLast[f.oldLastIndex]=f,a.selectionHandles[e.firstPromise.handle]=f.oldFirstIndex,a.selectionHandles[e.lastPromise.handle]=f.oldLastIndex}a.oldSelectionPivot=this._selection._pivot,a.newSelectionPivot=a.oldSelectionPivot,a.oldFocus=this._selection._getFocused(),a.newFocus=this._selection._getFocused(),this._updater=a}},_synchronize:function(){var a=this._updater;if(this._updater=null,this._groupsChanged=!1,this._countDifference=this._countDifference||0,a&&a.changed){a.itemsMoved&&this._layout.itemsMoved&&this._layout.itemsMoved(),a.removed.length&&this._layout.itemsRemoved&&this._layout.itemsRemoved(a.removed.map(function(a){return a.itemBox})),(a.itemsMoved||a.removed.length||Object.keys(this._insertedItems).length)&&this._layout.setupAnimations&&this._layout.setupAnimations(),this._currentMode().onDataChanged&&this._currentMode().onDataChanged();var b=[];for(var c in a.selectionFirst)if(a.selectionFirst.hasOwnProperty(c)){var d=a.selectionFirst[c];a.selectionChanged=a.selectionChanged||d.newLastIndex-d.newFirstIndex!=d.oldLastIndex-d.oldFirstIndex,d.newFirstIndex<=d.newLastIndex&&b.push({firstIndex:d.newFirstIndex,lastIndex:d.newLastIndex})}if(a.selectionChanged){var e=new I._Selection(this,b);this._selection._fireSelectionChanging(e),this._selection._selected.set(b),this._selection._fireSelectionChanged(),e.clear()}else this._selection._selected.set(b);this._selection._updateCount(this._cachedCount),a.newSelectionPivot=Math.min(this._cachedCount-1,a.newSelectionPivot),this._selection._pivot=a.newSelectionPivot>=0?a.newSelectionPivot:z._INVALID_INDEX,a.newFocus.type!==w.ObjectType.groupHeader&&(a.newFocus.index=Math.max(0,Math.min(this._cachedCount-1,a.newFocus.index))),this._selection._setFocused(a.newFocus,this._selection._keyboardFocused());var f=this._modifiedElements||[],g={};for(this._modifiedElements=[],this._countDifference+=a.countDifference,c=0;c<f.length;c++){var h=f[c];-1===h.newIndex?this._modifiedElements.push(h):g[h.newIndex]=h}for(c=0;c<a.removed.length;c++){var i=a.removed[c],h=g[i.index];h?delete g[i.index]:h={oldIndex:i.index},h.newIndex=-1,h._removalHandled||(h._itemBox=i.itemBox,h._containerStripe=i.containerStripe),this._modifiedElements.push(h)}var j=Object.keys(this._insertedItems);for(c=0;c<j.length;c++)this._modifiedElements.push({oldIndex:-1,newIndex:this._insertedItems[j[c]].index});this._writeProfilerMark("_synchronize:update_modifiedElements,StartTM");var k={};for(c in a.elements)if(a.elements.hasOwnProperty(c)){var l=a.elements[c];k[l.newIndex]={element:l.item,container:l.container,itemBox:l.itemBox,itemsManagerRecord:l.itemsManagerRecord,detached:l.detached};var h=g[l.index];h?(delete g[l.index],h.newIndex=l.newIndex):h={oldIndex:l.index,newIndex:l.newIndex},h.moved=l.moved,this._modifiedElements.push(h)}this._writeProfilerMark("_synchronize:update_modifiedElements,StopTM");var m=Object.keys(g);for(c=0;c<m.length;c++){var n=m[c],h=g[n];-1!==h.oldIndex&&this._modifiedElements.push(h)}this._view.items._itemData=k,a.updateDrag&&this._currentMode()._dragging&&(this._currentMode()._draggingUnselectedItem?a.newDragInfo&&(this._currentMode()._dragInfo=a.newDragInfo):this._currentMode()._dragInfo=this._selection,this._currentMode().fireDragUpdateEvent()),a.focusedItemRemoved||this._focusRequest&&a.oldFocus.index!==a.newFocus.index||a.oldFocus.type!==a.newFocus.type?(this._itemFocused=!1,this._setFocusOnItem(this._selection._getFocused())):a.newFocusedItem&&(this._hasKeyboardFocus=a.hadKeyboardFocus,this._itemFocused=!1,this._setFocusOnItem(this._selection._getFocused()));var o=this;return this._groups.synchronizeGroups().then(function(){return a.newFocus.type===w.ObjectType.groupHeader&&(a.newFocus.index=Math.min(o._groups.length()-1,a.newFocus.index),a.newFocus.index<0&&(a.newFocus={type:w.ObjectType.item,index:0}),o._selection._setFocused(a.newFocus,o._selection._keyboardFocused())),o._versionManager.endUpdating(),a.deletesCount>0&&o._updateDeleteWrapperSize(),o._view.updateTree(o._cachedCount,o._countDifference,o._modifiedElements)}).then(function(){return o._lastScrollPosition})}this._countDifference+=a?a.countDifference:0;var o=this;return this._groups.synchronizeGroups().then(function(){return a&&o._versionManager.endUpdating(),o._view.updateTree(o._cachedCount,o._countDifference,o._modifiedElements)}).then(function(){return o.scrollPosition})},_updateDeleteWrapperSize:function(a){var b=this._horizontal()?"width":"height";this._deleteWrapper.style["min-"+b]=(a?0:this.scrollPosition+this._getViewportSize()[b])+"px"},_verifyRealizationNeededForChange:function(){var a=!1,b=(this._view.lastIndexDisplayed||0)-(this._view.firstIndexDisplayed||0),c=this._updater&&0===this._updater.movesCount&&0===this._updater.insertsCount&&this._updater.deletesCount>0&&this._updater.deletesCount===Math.abs(this._updater.countDifference);if(c&&this._updater.elements)for(var d=Object.keys(this._updater.elements),e=0,f=d.length;e<f;e++){var g=this._updater.elements[d[e]],h=g.index-g.newIndex;if(h<0||h>this._updater.deletesCount){c=!1;break}}this._view.deletesWithoutRealize=this._view.deletesWithoutRealize||0,c&&this._view.lastIndexDisplayed<this._view.end-b&&this._updater.deletesCount+this._view.deletesWithoutRealize<b?(a=!0,this._view.deletesWithoutRealize+=Math.abs(this._updater.countDifference),this._writeProfilerMark("skipping realization on delete,info")):this._view.deletesWithoutRealize=0,this._view._setSkipRealizationForChange(a)},_update:function(){if(this._writeProfilerMark("update,StartTM"),!this._ifZombieDispose()){this._updateJob=null;var a=this;this._versionManager.noOutstandingNotifications&&(this._updater||this._groupsChanged?(this._cancelAsyncViewWork(),this._verifyRealizationNeededForChange(),this._synchronize().then(function(b){a._writeProfilerMark("update,StopTM"),a._batchViewUpdates(z._ViewChange.relayout,z._ScrollToPriority.low,b).complete()})):this._batchViewUpdates(z._ViewChange.relayout,z._ScrollToPriority.low,this._lastScrollPosition).complete())}},_scheduleUpdate:function(){if(!this._updateJob){var a=this;this._updateJob=n.schedulePromiseHigh(null,"WinJS.UI.ListView._update").then(function(){a._updateJob&&a._update()}),this._raiseViewLoading()}},_createGroupsContainer:function(){this._groups&&this._groups.cleanUp(),this._groupDataSource?this._groups=new E._UnvirtualizedGroupsContainer(this,this._groupDataSource):this._groups=new E._NoGroups(this)},_createLayoutSite:function(){var b=this;return Object.create({invalidateLayout:function(){b._pendingLayoutReset=!0;var a="horizontal"===b._layout.orientation!==b._horizontalLayout;b._affectedRange.addAll(),b._batchViewUpdates(z._ViewChange.rebuild,z._ScrollToPriority.low,a?0:b.scrollPosition,!1,!0)},itemFromIndex:function(a){return b._itemsManager._itemPromiseAtIndex(a)},groupFromIndex:function(a){return b._groupsEnabled()?a<b._groups.length()?b._groups.group(a).userData:null:{key:"-1"}},groupIndexFromItemIndex:function(a){return a=Math.max(0,a),b._groups.groupFromItem(a)},renderItem:function(c){return m._cancelBlocker(b._itemsManager._itemFromItemPromise(c)).then(function(c){if(c){var d=b._itemsManager._recordFromElement(c);d.pendingReady&&d.pendingReady(),c=c.cloneNode(!0),r.addClass(c,z._itemClass);var e=a.document.createElement("div");r.addClass(e,z._itemBoxClass),e.appendChild(c);var f=a.document.createElement("div");return r.addClass(f,z._containerClass),f.appendChild(e),f}return m.cancel})},renderHeader:function(c){return t._normalizeRendererReturn(b.groupHeaderTemplate(m.wrap(c))).then(function(b){r.addClass(b.element,z._headerClass);var c=a.document.createElement("div");return r.addClass(c,z._headerContainerClass),c.appendChild(b.element),c})},readyToMeasure:function(){b._getViewportLength(),b._getCanvasMargins()},_isZombie:function(){return b._isZombie()},_writeProfilerMark:function(a){b._writeProfilerMark(a)}},{_itemsManager:{enumerable:!0,get:function(){return b._itemsManager}},rtl:{enumerable:!0,get:function(){return b._rtl()}},surface:{enumerable:!0,get:function(){return b._canvas}},viewport:{enumerable:!0,get:function(){return b._viewport}},scrollbarPos:{enumerable:!0,get:function(){return b.scrollPosition}},viewportSize:{enumerable:!0,get:function(){return b._getViewportSize()}},loadingBehavior:{enumerable:!0,get:function(){return b.loadingBehavior}},animationsDisabled:{enumerable:!0,get:function(){return b._animationsDisabled()}},tree:{enumerable:!0,get:function(){return b._view.tree}},realizedRange:{enumerable:!0,get:function(){return{firstPixel:Math.max(0,b.scrollPosition-2*b._getViewportLength()),lastPixel:b.scrollPosition+3*b._getViewportLength()-1}}},visibleRange:{enumerable:!0,get:function(){return{firstPixel:b.scrollPosition,lastPixel:b.scrollPosition+b._getViewportLength()-1}}},itemCount:{enumerable:!0,get:function(){return b._itemsCount()}},groupCount:{enumerable:!0,get:function(){return b._groups.length()}},header:{enumerable:!0,get:function(){return b.header}},footer:{enumerable:!0,get:function(){return b.footer}}})},_initializeLayout:function(){this._affectedRange.addAll();var a=this._createLayoutSite();return this._layout.initialize(a,this._groupsEnabled()),"horizontal"===this._layout.orientation},_resetLayoutOrientation:function(a){this._horizontalLayout?(this._startProperty="left",this._scrollProperty="scrollLeft",this._scrollLength="scrollWidth",this._deleteWrapper.style.minHeight="",r.addClass(this._viewport,z._horizontalClass),r.removeClass(this._viewport,z._verticalClass),a&&(this._viewport.scrollTop=0)):(this._startProperty="top",this._scrollProperty="scrollTop",this._scrollLength="scrollHeight",this._deleteWrapper.style.minWidth="",r.addClass(this._viewport,z._verticalClass),r.removeClass(this._viewport,z._horizontalClass),a&&r.setScrollPosition(this._viewport,{scrollLeft:0}))},_resetLayout:function(){this._pendingLayoutReset=!1,this._affectedRange.addAll(),this._layout&&(this._layout.uninitialize(),this._horizontalLayout=this._initializeLayout(),this._resetLayoutOrientation())},_updateLayout:function(a){var b=!1;this._layout&&(this._cancelAsyncViewWork(!0),this._layout.uninitialize(),b=!0);var c;if(a&&"function"==typeof a.type){c=new(T(a.type))(a)}else c=a&&a.initialize?a:new H.GridLayout(a);b&&this._resetCanvas(),this._layoutImpl=c,this._layout=new H._LayoutWrapper(c),b&&this._unsetFocusOnItem(),this._setFocusOnItem({type:w.ObjectType.item,index:0}),this._selection._setFocused({type:w.ObjectType.item,index:0}),this._lastFocusedElementInGroupTrack={type:w.ObjectType.item,index:-1},this._headerContainer.style.opacity=0,this._footerContainer.style.opacity=0,this._horizontalLayout=this._initializeLayout(),this._resetLayoutOrientation(b),b&&(this._canvas.style.width=this._canvas.style.height="")},_currentMode:function(){return this._mode},_setDraggable:function(){var a=this.itemsDraggable||this.itemsReorderable;this._view.items.each(function(b,c,d){d.itemBox&&(d.itemBox.draggable=a&&!r.hasClass(c,z._nonDraggableClass))})},_resizeViewport:function(){this._viewportWidth=z._UNINITIALIZED,this._viewportHeight=z._UNINITIALIZED},_onElementResize:function(){this._writeProfilerMark("_onElementResize,info"),n.schedule(function(){if(!this._isZombie()&&this._viewportWidth!==z._UNINITIALIZED&&this._viewportHeight!==z._UNINITIALIZED){var a=this._element.offsetWidth,b=this._element.offsetHeight;if(this._previousWidth!==a||this._previousHeight!==b){this._writeProfilerMark("resize ("+this._previousWidth+"x"+this._previousHeight+") => ("+a+"x"+b+"),info"),this._previousWidth=a,this._previousHeight=b,this._resizeViewport();var c=this;this._affectedRange.addAll(),this._batchViewUpdates(z._ViewChange.relayout,z._ScrollToPriority.low,function(){return{position:c.scrollPosition,direction:"right"}})}}},n.Priority.max,this,"WinJS.UI.ListView._onElementResize")},_onFocusIn:function(a){function b(a){c._changeFocus(c._selection._getFocused(),!0,!1,!1,a)}this._hasKeyboardFocus=!0;var c=this;if(a.target===this._keyboardEventsHelper)!this._keyboardEventsHelper._shouldHaveFocus&&this._keyboardFocusInbound?b(!0):this._keyboardEventsHelper._shouldHaveFocus=!1;else if(a.target===this._element)b();else{if(this._mode.inboundFocusHandled)return void(this._mode.inboundFocusHandled=!1);var d=this._view.items,e={},f=this._getHeaderOrFooterFromElement(a.target),g=null;if(f?(e.index=0,e.type=f===this._header?w.ObjectType.header:w.ObjectType.footer,this._lastFocusedElementInGroupTrack=e):(f=this._groups.headerFrom(a.target),f?(e.type=w.ObjectType.groupHeader,e.index=this._groups.index(f),this._lastFocusedElementInGroupTrack=e):(e.index=d.index(a.target),e.type=w.ObjectType.item,f=d.itemBoxAt(e.index),g=d.itemAt(e.index))),e.index!==z._INVALID_INDEX&&((this._keyboardFocusInbound||this._selection._keyboardFocused())&&(e.type===w.ObjectType.groupHeader&&a.target===f||e.type===w.ObjectType.item&&a.target.parentNode===f)&&this._drawFocusRectangle(f),this._tabManager.childFocus!==f&&this._tabManager.childFocus!==g&&(this._selection._setFocused(e,this._keyboardFocusInbound||this._selection._keyboardFocused()),this._keyboardFocusInbound=!1,e.type===w.ObjectType.item&&(f=d.itemAt(e.index)),this._tabManager.childFocus=f,c._updater))){var h=c._updater.elements[R(f)],i=e.index;h&&h.newIndex&&(i=h.newIndex),c._updater.oldFocus={type:e.type,index:i},c._updater.newFocus={type:e.type,index:i}}}},_onFocusOut:function(a){if(!this._disposed){this._hasKeyboardFocus=!1,this._itemFocused=!1;var b=this._view.items.itemBoxFrom(a.target)||this._groups.headerFrom(a.target);b&&this._clearFocusRectangle(b)}},_onMSManipulationStateChanged:function(a){function b(){c._manipulationEndSignal=null}var c=this;this._manipulationState=a.currentState,c._writeProfilerMark("_onMSManipulationStateChanged state("+a.currentState+"),info"),this._manipulationState===r._MSManipulationEvent.MS_MANIPULATION_STATE_STOPPED||this._manipulationEndSignal||(this._manipulationEndSignal=new o,this._manipulationEndSignal.promise.done(b,b)),this._manipulationState===r._MSManipulationEvent.MS_MANIPULATION_STATE_STOPPED&&this._manipulationEndSignal.complete()},_pendingScroll:!1,_onScroll:function(){this._zooming||this._pendingScroll||this._checkScroller()},_checkScroller:function(){if(!this._isZombie()){var a=this._viewportScrollPosition;if(a!==this._lastScrollPosition){this._pendingScroll=c._requestAnimationFrame(this._checkScroller.bind(this)),a=Math.max(0,a);var b=this._scrollDirection(a);this._lastScrollPosition=a,this._raiseViewLoading(!0),this._raiseHeaderFooterVisibilityEvent();var d=this;this._view.onScroll(function(){return{position:d._lastScrollPosition,direction:b}},this._manipulationEndSignal?this._manipulationEndSignal.promise:m.timeout(z._DEFERRED_SCROLL_END))}else this._pendingScroll=null}},_scrollDirection:function(a){var b=a<this._lastScrollPosition?"left":"right";return b===this._lastDirection?b:this._direction},_onTabEnter:function(){this._keyboardFocusInbound=!0},_onTabExit:function(){this._keyboardFocusInbound=!1},_onPropertyChange:function(a){var b=this;a.forEach(function(a){var c=!1;if("dir"===a.attributeName?c=!0:"style"===a.attributeName&&(c=b._cachedStyleDir!==a.target.style.direction),c&&(b._cachedStyleDir=a.target.style.direction,b._cachedRTL=null,r[b._rtl()?"addClass":"removeClass"](b._element,z._rtlListViewClass),b._lastScrollPosition=0,b._viewportScrollPosition=0,b.forceLayout()),"tabIndex"===a.attributeName){var d=b._element.tabIndex;d>=0&&(b._view.items.each(function(a,b){b.tabIndex=d}),b._header&&(b._header.tabIndex=d),b._footer&&(b._footer.tabIndex=d),b._tabIndex=d,b._tabManager.tabIndex=d,b._element.tabIndex=-1)}})},_getCanvasMargins:function(){return this._canvasMargins||(this._canvasMargins=H._getMargins(this._canvas)),this._canvasMargins},_convertCoordinatesByCanvasMargins:function(a,b){function c(c,d){void 0!==a[c]&&(a[c]=b(a[c],d))}var d;return this._horizontal()?(d=this._getCanvasMargins()[this._rtl()?"right":"left"],c("left",d)):(d=this._getCanvasMargins().top,c("top",d)),c("begin",d),c("end",d),a},_convertFromCanvasCoordinates:function(a){return this._convertCoordinatesByCanvasMargins(a,function(a,b){return a+b})},_convertToCanvasCoordinates:function(a){return this._convertCoordinatesByCanvasMargins(a,function(a,b){return a-b})},_getViewportSize:function(){return this._viewportWidth!==z._UNINITIALIZED&&this._viewportHeight!==z._UNINITIALIZED||(this._viewportWidth=Math.max(0,r.getContentWidth(this._element)),this._viewportHeight=Math.max(0,r.getContentHeight(this._element)),this._writeProfilerMark("viewportSizeDetected width:"+this._viewportWidth+" height:"+this._viewportHeight),this._previousWidth=this._element.offsetWidth,this._previousHeight=this._element.offsetHeight),{width:this._viewportWidth,height:this._viewportHeight}},_itemsCount:function(){function a(){b._itemsCountPromise=null}var b=this;if(this._cachedCount!==z._UNINITIALIZED)return m.wrap(this._cachedCount);var c;return this._itemsCountPromise?c=this._itemsCountPromise:(c=this._itemsCountPromise=this._itemsManager.dataSource.getCount().then(function(a){return a===w.CountResult.unknown&&(a=0),b._cachedCount=a,b._selection._updateCount(b._cachedCount),a},function(){return m.cancel}),this._itemsCountPromise.then(a,a)),c},_isSelected:function(a){return this._selection._isIncluded(a)},_LoadingState:{itemsLoading:"itemsLoading",viewPortLoaded:"viewPortLoaded",itemsLoaded:"itemsLoaded",complete:"complete"},_raiseViewLoading:function(a){this._loadingState!==this._LoadingState.itemsLoading&&(this._scrolling=!!a),this._setViewState(this._LoadingState.itemsLoading)},_raiseViewComplete:function(){this._disposed||this._view.animating||this._setViewState(this._LoadingState.complete)},_raiseHeaderFooterVisibilityEvent:function(){var b=this,c=function(a){if(!a)return!1;var c=b._lastScrollPosition,d=a[b._horizontal()?"offsetLeft":"offsetTop"];return d+a[b._horizontal()?"offsetWidth":"offsetHeight"]>c&&d<c+b._getViewportLength()},d=function(c,d){var e=a.document.createEvent("CustomEvent");e.initCustomEvent(c,!0,!0,{visible:d}),b._element.dispatchEvent(e)},e=!!this._header&&c(this._headerContainer),f=!!this._footer&&c(this._footerContainer);this._headerFooterVisibilityStatus.headerVisible!==e&&(this._headerFooterVisibilityStatus.headerVisible=e,d("headervisibilitychanged",e)),this._headerFooterVisibilityStatus.footerVisible!==f&&(this._headerFooterVisibilityStatus.footerVisible=f,d("footervisibilitychanged",f))},_setViewState:function(b){if(b!==this._loadingState){var c={scrolling:!1};switch(b){case this._LoadingState.viewPortLoaded:this._scheduledForDispose||(L(this),this._scheduledForDispose=!0),this._setViewState(this._LoadingState.itemsLoading);break;case this._LoadingState.itemsLoaded:c={scrolling:this._scrolling},this._setViewState(this._LoadingState.viewPortLoaded);break;case this._LoadingState.complete:this._setViewState(this._LoadingState.itemsLoaded),this._updateDeleteWrapperSize(!0)}this._writeProfilerMark("loadingStateChanged:"+b+",info"),this._loadingState=b;var d=a.document.createEvent("CustomEvent");d.initCustomEvent("loadingstatechanged",!0,!1,c),this._element.dispatchEvent(d)}},_createTemplates:function(){function b(b,c){var d=a.document.createElement("div");return d.className=b,c||d.setAttribute("aria-hidden",!0),d}this._itemBoxTemplate=b(z._itemBoxClass,!0)},_updateSelection:function(){var a=this._selection.getIndices(),b=this._selection.isEverything(),c={};if(!b)for(var d=0,e=a.length;d<e;d++){var f=a[d];c[f]=!0}this._view.items.each(function(a,d,e){if(e.itemBox){var f=b||!!c[a];A._ItemEventsHandler.renderSelection(e.itemBox,d,f,!0),e.container&&r[f?"addClass":"removeClass"](e.container,z._selectedClass)}})},_getViewportLength:function(){return this._getViewportSize()[this._horizontal()?"width":"height"]},_horizontal:function(){return this._horizontalLayout},_rtl:function(){return"boolean"!=typeof this._cachedRTL&&(this._cachedRTL="rtl"===r._getComputedStyle(this._element,null).direction),this._cachedRTL},_showProgressBar:function(a,b,c){var d=this._progressBar,e=d.style;if(!d.parentNode){this._fadingProgressBar=!1,this._progressIndicatorDelayTimer&&this._progressIndicatorDelayTimer.cancel();var f=this;this._progressIndicatorDelayTimer=m.timeout(z._LISTVIEW_PROGRESS_DELAY).then(function(){f._isZombie()||(a.appendChild(d),j.fadeIn(d),f._progressIndicatorDelayTimer=null)})}e[this._rtl()?"right":"left"]=b,e.top=c},_hideProgressBar:function(){this._progressIndicatorDelayTimer&&(this._progressIndicatorDelayTimer.cancel(),this._progressIndicatorDelayTimer=null);var a=this._progressBar;if(a.parentNode&&!this._fadingProgressBar){this._fadingProgressBar=!0;var b=this;j.fadeOut(a).then(function(){a.parentNode&&a.parentNode.removeChild(a),b._fadingProgressBar=!1})}},_getPanAxis:function(){return this._horizontal()?"horizontal":"vertical"},_configureForZoom:function(a,b,e){if(c.validation&&(!this._view.realizePage||"number"!=typeof this._view.begin))throw new d("WinJS.UI.ListView.NotCompatibleWithSemanticZoom",S.notCompatibleWithSemanticZoom);this._isZoomedOut=a,this._disableEntranceAnimation=!b,this._isCurrentZoomView=b,this._triggerZoom=e},_setCurrentItem:function(a,b){this._rtl()&&(a=this._viewportWidth-a),this._horizontal()?a+=this.scrollPosition:b+=this.scrollPosition;var c=this._view.hitTest(a,b),d={type:c.type?c.type:w.ObjectType.item,index:c.index};d.index>=0&&(this._hasKeyboardFocus?this._changeFocus(d,!0,!1,!0):this._changeFocusPassively(d))},_getCurrentItem:function(){var a=this._selection._getFocused();a.type===w.ObjectType.groupHeader?a={type:w.ObjectType.item,index:this._groups.group(a.index).startIndex}:a.type!==w.ObjectType.item&&(a={type:w.ObjectType.item,index:a.type===w.ObjectType.header?0:this._cachedCount}),"number"!=typeof a.index&&(this._setCurrentItem(.5*this._viewportWidth,.5*this._viewportHeight),a=this._selection._getFocused());var b=this,c=this._getItemOffsetPosition(a.index).then(function(a){var c=b._canvasStart;return a[b._startProperty]+=c,a});return m.join({item:this._dataSource.itemFromIndex(a.index),position:c})},_animateItemsForPhoneZoom:function(){function a(a,b,c){return function(d){return(b[d]-a)*c}}function b(){for(var a=0,b=c.length;a<b;a++)c[a].style[O.scriptName]=""}for(var c=[],d=[],e=[],f=Number.MAX_VALUE,g=this,h=this._view.firstIndexDisplayed,i=Math.min(this._cachedCount,this._view.lastIndexDisplayed+1);h<i;h++)e.push(this._view.waitForEntityPosition({type:w.ObjectType.item,index:h}).then(function(){c.push(g._view.items.containerAt(h));var a=0;if(g.layout._getItemPosition){var b=g.layout._getItemPosition(h);b.row&&(a=b.row)}d.push(a),f=Math.min(a,f)}));return m.join(e).then(function(){return(0===c.length?m.wrap():k.executeTransition(c,{property:O.cssName,delay:a(f,d,30),duration:100,timing:"ease-in-out",from:g._isCurrentZoomView?"rotateX(0deg)":"rotateX(-90deg)",to:g._isCurrentZoomView?"rotateX(90deg)":"rotateX(0deg)"})).then(b,b)}).then(b,b)},_beginZoom:function(){this._zooming=!0;var a=null;if(c.isPhone){if(this._isZoomedOut)if(this._zoomAnimationPromise&&this._zoomAnimationPromise.cancel(),this._isCurrentZoomView){var b=this,d=function(){b._zoomAnimationPromise=null};this._zoomAnimationPromise=a=this._animateItemsForPhoneZoom().then(d,d)}else this._zoomAnimationPromise=new o,a=this._zoomAnimationPromise.promise}else{var e=this._horizontal(),f=-this.scrollPosition;r.addClass(this._viewport,e?z._zoomingXClass:z._zoomingYClass),this._canvasStart=f,r.addClass(this._viewport,e?z._zoomingYClass:z._zoomingXClass)}return a},_positionItem:function(a,b){function e(a){return f._getItemOffsetPosition(a).then(function(d){var e,g=f._horizontal(),h=f._viewport[g?"scrollWidth":"scrollHeight"],i=g?f._viewportWidth:f._viewportHeight,j=g?"headerContainerWidth":"headerContainerHeight",k=f.layout._sizes,l=0;k&&k[j]&&(l=k[j]);var m=c.isPhone?l:b[f._startProperty],n=i-(g?d.width:d.height);m=Math.max(0,Math.min(n,m)),e=d[f._startProperty]-m;var o=Math.max(0,Math.min(h-i,e)),p=o-e;e=o;var q={type:w.ObjectType.item,index:a};if(f._hasKeyboardFocus?f._changeFocus(q,!0):f._changeFocusPassively(q),f._raiseViewLoading(!0),c.isPhone)f._viewportScrollPosition=e;else{var r=-e;f._canvasStart=r}if(f._view.realizePage(e,!0),c.isPhone&&f._isZoomedOut){var s=function(){f._zoomAnimationPromise&&f._zoomAnimationPromise.complete&&f._zoomAnimationPromise.complete(),f._zoomAnimationPromise=null};f._animateItemsForPhoneZoom().then(s,s)}return g?{x:p,y:0}:{x:0,y:p}})}var f=this,g=0;if(a&&(g=this._isZoomedOut?a.groupIndexHint:a.firstItemIndexHint),"number"==typeof g)return e(g);var h,i=this._isZoomedOut?a.groupKey:a.firstItemKey;if("string"==typeof i&&this._dataSource.itemFromKey)h=this._dataSource.itemFromKey(i,this._isZoomedOut?{groupMemberKey:a.key,groupMemberIndex:a.index}:null);else{var j=this._isZoomedOut?a.groupDescription:a.firstItemDescription;if(c.validation&&void 0===j)throw new d("WinJS.UI.ListView.InvalidItem",S.listViewInvalidItem);h=this._dataSource.itemFromDescription(j)}return h.then(function(a){return e(a.index)})},_endZoom:function(a){if(!this._isZombie()){if(!c.isPhone){var b=this._canvasStart;r.removeClass(this._viewport,z._zoomingYClass),r.removeClass(this._viewport,z._zoomingXClass),this._canvasStart=0,this._viewportScrollPosition=-b}this._disableEntranceAnimation=!a,this._isCurrentZoomView=a,this._zooming=!1,this._view.realizePage(this.scrollPosition,!1)}},_getItemOffsetPosition:function(a){var b=this;return this._getItemOffset({type:w.ObjectType.item,index:a}).then(function(a){return b._ensureFirstColumnRange(w.ObjectType.item).then(function(){return a=b._correctRangeInFirstColumn(a,w.ObjectType.item),a=b._convertFromCanvasCoordinates(a),b._horizontal()?(a.left=a.begin,a.width=a.end-a.begin,a.height=a.totalHeight):(a.top=a.begin,a.height=a.end-a.begin,a.width=a.totalWidth),a})})},_groupRemoved:function(a){this._groupFocusCache.deleteGroup(a)},_updateFocusCache:function(a){this._updateFocusCacheItemRequest&&this._updateFocusCacheItemRequest.cancel();var b=this;this._updateFocusCacheItemRequest=this._view.items.requestItem(a).then(function(){b._updateFocusCacheItemRequest=null;var c=b._view.items.itemDataAt(a),d=b._groups.groupFromItem(a),e=b._groups.group(d).key;c.itemsManagerRecord.item&&b._groupFocusCache.updateCache(e,c.itemsManagerRecord.item.key,a)})},_changeFocus:function(a,b,c,d,e){if(!this._isZombie()){var f;if(a.type===w.ObjectType.item)f=this._view.items.itemAt(a.index),!b&&f&&r.hasClass(f,z._nonSelectableClass)&&(b=!0),this._updateFocusCache(a.index);else if(a.type===w.ObjectType.groupHeader){this._lastFocusedElementInGroupTrack=a;var g=this._groups.group(a.index);f=g&&g.header}else this._lastFocusedElementInGroupTrack=a,f=a.type===w.ObjectType.footer?this._footer:this._header;this._unsetFocusOnItem(!!f),this._hasKeyboardFocus=!0,this._selection._setFocused(a,e),d||this.ensureVisible(a),!b&&this._selectFocused(c)&&this._selection.set(a.index),this._setFocusOnItem(a)}},_changeFocusPassively:function(a){var b;switch(a.type){case w.ObjectType.item:b=this._view.items.itemAt(a.index),this._updateFocusCache(a.index);break;case w.ObjectType.groupHeader:this._lastFocusedElementInGroupTrack=a;var c=this._groups.group(a.index);b=c&&c.header;break;case w.ObjectType.header:this._lastFocusedElementInGroupTrack=a,b=this._header;break;case w.ObjectType.footer:this._lastFocusedElementInGroupTrack=a,b=this._footer}this._unsetFocusOnItem(!!b),this._selection._setFocused(a),this._setFocusOnItem(a)},_drawFocusRectangle:function(b){if(b!==this._header&&b!==this._footer)if(r.hasClass(b,z._headerClass))r.addClass(b,z._itemFocusClass);else{var c=this._view.items.itemBoxFrom(b);if(c.querySelector("."+z._itemFocusOutlineClass))return;r.addClass(c,z._itemFocusClass);var d=a.document.createElement("div");d.className=z._itemFocusOutlineClass,c.appendChild(d)}},_clearFocusRectangle:function(a){if(a&&!this._isZombie()&&a!==this._header&&a!==this._footer){var b=this._view.items.itemBoxFrom(a);if(b){r.removeClass(b,z._itemFocusClass);var c=b.querySelector("."+z._itemFocusOutlineClass);c&&c.parentNode.removeChild(c)}else{var d=this._groups.headerFrom(a);d&&r.removeClass(d,z._itemFocusClass)}}},_defaultInvoke:function(a){(this._isZoomedOut||c.isPhone&&this._triggerZoom&&a.type===w.ObjectType.groupHeader)&&(this._changeFocusPassively(a),this._triggerZoom())},_selectionAllowed:function(a){var b=void 0!==a?this.elementFromIndex(a):null;return!(b&&r.hasClass(b,z._nonSelectableClass))&&this._selectionMode!==w.SelectionMode.none},_multiSelection:function(){return this._selectionMode===w.SelectionMode.multi},_isInSelectionMode:function(){return this.tapBehavior===w.TapBehavior.toggleSelect&&this.selectionMode===w.SelectionMode.multi},_selectOnTap:function(){return this._tap===w.TapBehavior.toggleSelect||this._tap===w.TapBehavior.directSelect},_selectFocused:function(a){return this._tap===w.TapBehavior.directSelect&&this._selectionMode===w.SelectionMode.multi&&!a},_dispose:function(){if(!this._disposed){this._disposed=!0;var a=function(a){a&&(a.textContent="")};r._resizeNotifier.unsubscribe(this._element,this._onElementResizeBound),this._elementResizeInstrument.dispose(),this._batchingViewUpdates&&this._batchingViewUpdates.cancel(),this._view&&this._view._dispose&&this._view._dispose(),this._mode&&this._mode._dispose&&this._mode._dispose(),this._groups&&this._groups._dispose&&this._groups._dispose(),this._selection&&this._selection._dispose&&this._selection._dispose(),this._layout&&this._layout.uninitialize&&this._layout.uninitialize(),this._itemsCountPromise&&this._itemsCountPromise.cancel(),this._versionManager&&this._versionManager._dispose(),this._clearInsertedItems(),this._itemsManager&&this._itemsManager.release(),this._zoomAnimationPromise&&this._zoomAnimationPromise.cancel(),a(this._viewport),a(this._canvas),a(this._canvasProxy),this._versionManager=null,this._view=null,this._mode=null,this._element=null,this._viewport=null,this._itemsManager=null,this._canvas=null,this._canvasProxy=null,this._itemsCountPromise=null,this._scrollToFunctor=null;var b=Q.indexOf(this);b>=0&&Q.splice(b,1)}},_isZombie:function(){return this._disposed||!(this.element.firstElementChild&&a.document.body.contains(this.element))},_ifZombieDispose:function(){var a=this._isZombie();return a&&!this._disposed&&L(this),a},_animationsDisabled:function(){return 0===this._viewportWidth||0===this._viewportHeight||!k.isAnimationEnabled()},_fadeOutViewport:function(){var a=this;return new m(function(b){if(a._animationsDisabled())return void b();if(!a._fadingViewportOut){a._waitingEntranceAnimationPromise&&(a._waitingEntranceAnimationPromise.cancel(),a._waitingEntranceAnimationPromise=null);var c=a._fireAnimationEvent(U.contentTransition);a._firedAnimationEvent=!0,c.prevented?(a._disableEntranceAnimation=!0,a._viewport.style.opacity=1,b()):(a._fadingViewportOut=!0,a._viewport.style.overflow="hidden",j.fadeOut(a._viewport).then(function(){a._isZombie()||(a._fadingViewportOut=!1,a._viewport.style.opacity=1,b())}))}})},_animateListEntrance:function(a){function b(){e._canvas.style.opacity=1,e._headerContainer.style.opacity=1,e._footerContainer.style.opacity=1,e._viewport.style.overflow="",e._raiseHeaderFooterVisibilityEvent()}var d={prevented:!1,animationPromise:m.wrap()},e=this;return this._raiseHeaderFooterVisibilityEvent(),this._disableEntranceAnimation||this._animationsDisabled()?(b(),this._waitingEntranceAnimationPromise&&(this._waitingEntranceAnimationPromise.cancel(),this._waitingEntranceAnimationPromise=null),m.wrap()):(this._firedAnimationEvent?this._firedAnimationEvent=!1:d=this._fireAnimationEvent(U.entrance),d.prevented||c.isPhone?(b(),m.wrap()):(this._waitingEntranceAnimationPromise&&this._waitingEntranceAnimationPromise.cancel(),this._canvas.style.opacity=0,this._viewport.style.overflow="hidden",this._headerContainer.style.opacity=1,this._footerContainer.style.opacity=1,this._waitingEntranceAnimationPromise=d.animationPromise.then(function(){if(!e._isZombie())return e._canvas.style.opacity=1,j.enterContent(e._viewport).then(function(){e._isZombie()||(e._waitingEntranceAnimationPromise=null,e._viewport.style.overflow="")})}),this._waitingEntranceAnimationPromise))},_fireAnimationEvent:function(b){var c=a.document.createEvent("CustomEvent"),d=m.wrap();return c.initCustomEvent("contentanimating",!0,!0,{type:b}),b===U.entrance&&(c.detail.setPromise=function(a){d=a}),{prevented:!this._element.dispatchEvent(c),animationPromise:d}},_createAriaMarkers:function(){this._viewport.getAttribute("aria-label")||this._viewport.setAttribute("aria-label",S.listViewViewportAriaLabel),this._ariaStartMarker||(this._ariaStartMarker=a.document.createElement("div"),this._ariaStartMarker.id=R(this._ariaStartMarker),this._viewport.insertBefore(this._ariaStartMarker,this._viewport.firstElementChild)),this._ariaEndMarker||(this._ariaEndMarker=a.document.createElement("div"),this._ariaEndMarker.id=R(this._ariaEndMarker),this._viewport.appendChild(this._ariaEndMarker))},_updateItemsAriaRoles:function(){var a,b,c=this,d=this._element.getAttribute("role");this._currentMode().staticMode()?(a="list",b="listitem"):(a="listbox",b="option"),d===a&&this._itemRole===b||(this._element.setAttribute("role",a),this._itemRole=b,this._view.items.each(function(a,b){b.setAttribute("role",c._itemRole)}))},_updateGroupHeadersAriaRoles:function(){var a=this.groupHeaderTapBehavior===w.GroupHeaderTapBehavior.none?"separator":"link";if(this._headerRole!==a){this._headerRole=a;for(var b=0,c=this._groups.length();b<c;b++){var d=this._groups.group(b).header;d&&d.setAttribute("role",this._headerRole)}}},_setAriaSelected:function(a,b){b!==("true"===a.getAttribute("aria-selected"))&&a.setAttribute("aria-selected",b)},_setupAriaSelectionObserver:function(a){a._mutationObserver||(this._mutationObserver.observe(a,{attributes:!0,attributeFilter:["aria-selected"]}),a._mutationObserver=!0)},_itemPropertyChange:function(a){function b(a){a.forEach(function(a){a.item.setAttribute("aria-selected",!a.selected)})}if(!this._isZombie()){for(var c=this,d=c._selectionMode===w.SelectionMode.single,e=[],f=[],g=0,h=a.length;g<h;g++){var i=a[g].target,j=c._view.items.itemBoxFrom(i),k="true"===i.getAttribute("aria-selected");if(j&&k!==r._isSelectionRendered(j)){var l=c._view.items.index(j),m={index:l,item:i,selected:k};(c._selectionAllowed(l)?e:f).push(m)}}if(e.length>0){var n=new o;c.selection._synchronize(n).then(function(){var a=c.selection._cloneSelection();return e.forEach(function(b){b.selected?a[d?"set":"add"](b.index):a.remove(b.index)}),c.selection._set(a)}).then(function(a){c._isZombie()||a||b(e),n.complete()})}b(f)}},_groupsEnabled:function(){return!!this._groups.groupDataSource},_getItemPosition:function(a,b){var c=this;return this._view.waitForEntityPosition(a).then(function(){var d,e=c._zooming&&0!==c._canvasStart;switch(a.type){case w.ObjectType.item:d=c._view.getContainer(a.index);break;case w.ObjectType.groupHeader:d=c._view._getHeaderContainer(a.index);break;case w.ObjectType.header:e=!0,d=c._headerContainer;break;case w.ObjectType.footer:e=!0,d=c._footerContainer}if(d){c._writeProfilerMark("WinJS.UI.ListView:getItemPosition,info");var f,g;c._view._expandedRange?(f=c._view._expandedRange.first.index,g=c._view._expandedRange.last.index):b=!1,a.type===w.ObjectType.item?(b=!!b,b&=c._view._ensureContainerInDOM(a.index)):b=!1;var h=c._getItemMargins(a.type),i={left:c._rtl()?M(d)-h.right:d.offsetLeft-h.left,top:d.offsetTop-h.top,totalWidth:r.getTotalWidth(d),totalHeight:r.getTotalHeight(d),contentWidth:r.getContentWidth(d),contentHeight:r.getContentHeight(d)};return b&&c._view._forceItemsBlocksInDOM(f,g+1),e?i:c._convertToCanvasCoordinates(i)}return m.cancel})},_getItemOffset:function(a,b){var c=this;return this._getItemPosition(a,b).then(function(b){var d=c._getItemMargins(a.type);if(c._horizontal()){var e=c._rtl();b.begin=b.left-d[e?"left":"right"],b.end=b.left+b.totalWidth+d[e?"right":"left"]}else b.begin=b.top-d.bottom,b.end=b.top+b.totalHeight+d.top;return b})},_getItemMargins:function(b){b=b||w.ObjectType.item;var c=this,d=function(b){var d,e=c._canvas.querySelector("."+b);e||(e=a.document.createElement("div"),r.addClass(e,b),c._viewport.appendChild(e),d=!0);var f=H._getMargins(e);return d&&c._viewport.removeChild(e),f};return b===w.ObjectType.item?this._itemMargins?this._itemMargins:this._itemMargins=d(z._containerClass):b===w.ObjectType.groupHeader?this._headerMargins?this._headerMargins:this._headerMargins=d(z._headerContainerClass):(this._headerFooterMargins||(this._headerFooterMargins={headerMargins:d(z._listHeaderContainerClass),footerMargins:d(z._listFooterContainerClass)}),this._headerFooterMargins[b===w.ObjectType.header?"headerMargins":"footerMargins"])},_fireAccessibilityAnnotationCompleteEvent:function(b,c,d,e){var f={firstIndex:b,lastIndex:c,firstHeaderIndex:+d||-1,lastHeaderIndex:+e||-1},g=a.document.createEvent("CustomEvent");g.initCustomEvent("accessibilityannotationcomplete",!0,!1,f),this._element.dispatchEvent(g)},_ensureFirstColumnRange:function(a){if(a===w.ObjectType.header||a===w.ObjectType.footer)return m.wrap();var b=a===w.ObjectType.item?"_firstItemRange":"_firstHeaderRange";if(this[b])return m.wrap();var c=this;return this._getItemOffset({type:a,index:0},!0).then(function(a){c[b]=a})},_correctRangeInFirstColumn:function(a,b){return b===w.ObjectType.header||b===w.ObjectType.footer?a:((b===w.ObjectType.groupHeader?this._firstHeaderRange:this._firstItemRange).begin===a.begin&&(this._horizontal()?a.begin=-this._getCanvasMargins()[this._rtl()?"right":"left"]:a.begin=-this._getCanvasMargins().top),a)},_updateContainers:function(b,c,d,e){function f(){var b=a.document.createElement("div");return b.className=z._containerClass,b}function g(b,c,d){c+d>m&&(d=m-c);var e,f=b.itemsContainer,g=f.itemsBlocks,h=n._view._blockSize,i=g.length?g[g.length-1]:null,j=g.length?(g.length-1)*h+i.items.length:0,k=d-j;if(k>0){var l,o=k;if(i&&i.items.length<h){var p=Math.min(o,h-i.items.length);l=i.items.length;var q=F._stripedContainers(p,j);u.insertAdjacentHTMLUnsafe(i.element,"beforeend",q),e=i.element.children;for(var r=0;r<p;r++)i.items.push(e[l+r]);o-=p}j=g.length*h;var s=Math.floor(o/h),t="",v=j,y=j+h;if(s>0){var z=["<div class='win-itemsblock'>"+F._stripedContainers(h,v)+"</div>","<div class='win-itemsblock'>"+F._stripedContainers(h,y)+"</div>"];t=F._repeat(z,s),j+=s*h}var A=o%h;A>0&&(t+="<div class='win-itemsblock'>"+F._stripedContainers(A,j)+"</div>",j+=A,s++);var B=a.document.createElement("div");u.setInnerHTMLUnsafe(B,t);for(var e=B.children,r=0;r<s;r++){var C=e[r],D={element:C,items:F._nodeListToArray(C.children)};g.push(D)}}else if(k<0)for(var E=k;E<0;E++){var G=i.items.pop();!n._view._requireFocusRestore&&G.contains(a.document.activeElement)&&(n._view._requireFocusRestore=a.document.activeElement,n._unsetFocusOnItem()),i.element.removeChild(G),x.push(G),i.items.length||(f.element===i.element.parentNode&&f.element.removeChild(i.element),g.pop(),i=g[g.length-1])}for(var r=0,H=g.length;r<H;r++)for(var C=g[r],E=0;E<C.items.length;E++)w.push(C.items[E])}function h(a,b,c){for(var d=e.filter(function(a){return-1===a.oldIndex&&a.newIndex>=b&&a.newIndex<b+c}).sort(function(a,b){return a.newIndex-b.newIndex}),g=a.itemsContainer,h=0,i=d.length;h<i;h++){var j=d[h],k=j.newIndex-b,l=f(),m=k<g.items.length?g.items[k]:null;g.items.splice(k,0,l),g.element.insertBefore(l,m)}}function i(a,b,c){b+c>m&&(c=m-b);var d=a.itemsContainer,e=c-d.items.length;if(e>0){var f=d.element.children,g=f.length;u.insertAdjacentHTMLUnsafe(d.element,"beforeend",F._repeat("<div class='win-container win-backdrop'></div>",e));for(var h=0;h<e;h++){var i=f[g+h];d.items.push(i)}}for(var h=e;h<0;h++){var i=d.items.pop();d.element.removeChild(i),x.push(i)}for(var h=0,j=d.items.length;h<j;h++)w.push(d.items[h])}function j(a,b){var c=n._view._createHeaderContainer(J),d={header:c,itemsContainer:{element:n._view._createItemsContainer(c)}};return d.itemsContainer[n._view._blockSize?"itemsBlocks":"items"]=[],n._view._blockSize?g(d,b,a.size):i(d,b,a.size),d}function k(a,b,d,f){for(var g,h,i=d+f-1,j=0,k=e.length;j<k;j++){var l=e[j];l.newIndex>=d&&l.newIndex<=i&&-1!==l.oldIndex&&(g!==+g||l.newIndex<g)&&(g=l.newIndex,h=l.newIndex-l.oldIndex)}if(g===+g){var m=0;for(j=0,k=e.length;j<k;j++){var l=e[j];l.newIndex>=d&&l.newIndex<g&&-1===l.oldIndex&&m++}var o=0,p=g-h;for(j=0,k=e.length;j<k;j++){var l=e[j];l.oldIndex>=b&&l.oldIndex<p&&-1===l.newIndex&&o++}h+=o,h-=m,h-=d-b;var q=a.itemsContainer;if(h>0){var r=q.element.children;u.insertAdjacentHTMLUnsafe(q.element,"afterBegin",F._repeat("<div class='win-container win-backdrop'></div>",h));for(var s=0;s<h;s++){var t=r[s];q.items.splice(s,0,t)}}for(var s=h;s<0;s++){var t=q.items.shift();q.element.removeChild(t)}h&&n._affectedRange.add({start:d,end:d+f},c)}}function l(a){for(var b=0,c=0,d=n._view.tree.length;c<d;c++){var e=n._view.tree[c],f=e.itemsContainer.items.length,g=b+f-1;if(a>=b&&a<=g)return{group:c,item:a-b};b+=f}}var m,n=this,o=this._view.containers.length+d,p=o<c;if(p){for(var q=0,s=0;s<e.length;s++)-1===e[s].oldIndex&&q++;m=this._view.containers.length+q}else m=c;var t=[],v={},w=[],x=[],y=[],A=0;if(!n._view._blockSize)for(var s=0,B=this._view.tree.length;s<B;s++)y.push(A),A+=this._view.tree[s].itemsContainer.items.length;if(!n._view._blockSize)for(var C=e.filter(function(a){return-1===a.newIndex&&!a._removalHandled}).sort(function(a,b){return b.oldIndex-a.oldIndex}),s=0,B=C.length;s<B;s++){var D=C[s];D._removalHandled=!0;var E=D._itemBox;D._itemBox=null;var G=l(D.oldIndex),H=this._view.tree[G.group],I=H.itemsContainer.items[G.item];I.parentNode.removeChild(I),r.hasClass(E,z._selectedClass)&&r.addClass(I,z._selectedClass),H.itemsContainer.items.splice(G.item,1),D.element=I}this._view._modifiedGroups=[];var J=this._canvasProxy;A=0;for(var s=0,B=b.length;s<B&&(!this._groupsEnabled()||A<m);s++){var K=b[s],L=this._view.keyToGroupIndex[K.key],M=this._view.tree[L];if(M)n._view._blockSize?g(M,A,K.size):(k(M,y[L],A,K.size),h(M,A,K.size),i(M,A,K.size)),t.push(M),v[K.key]=t.length-1,delete this._view.keyToGroupIndex[K.key],J=M.itemsContainer.element,this._view._modifiedGroups.push({oldIndex:L,newIndex:t.length-1,element:M.header});else{var N=j(K,A);t.push(N),v[K.key]=t.length-1,this._view._modifiedGroups.push({oldIndex:-1,newIndex:t.length-1,element:N.header}),J=N.itemsContainer.element}A+=K.size}for(var O=[],P=[],Q=this._view.keyToGroupIndex?Object.keys(this._view.keyToGroupIndex):[],s=0,B=Q.length;s<B;s++){var G=this._view.keyToGroupIndex[Q[s]],R=this._view.tree[G];if(P.push(R.header),O.push(R.itemsContainer.element),this._view._blockSize)for(var S=0;S<R.itemsContainer.itemsBlocks.length;S++)for(var T=R.itemsContainer.itemsBlocks[S],U=0;U<T.items.length;U++)x.push(T.items[U]);else for(var U=0;U<R.itemsContainer.items.length;U++)x.push(R.itemsContainer.items[U]);this._view._modifiedGroups.push({oldIndex:G,newIndex:-1,element:R.header})}for(var s=0,B=e.length;s<B;s++)if(-1===e[s].newIndex&&!e[s]._removalHandled){e[s]._removalHandled=!0;var E=e[s]._itemBox;e[s]._itemBox=null;var I;x.length?(I=x.pop(),r.empty(I)):I=f(),r.hasClass(E,z._selectedClass)&&r.addClass(I,z._selectedClass),e._containerStripe===z._containerEvenClass?(r.addClass(I,z._containerEvenClass),r.removeClass(I,z._containerOddClass)):(r.addClass(I,z._containerOddClass),r.removeClass(I,z._containerEvenClass)),I.appendChild(E),e[s].element=I}return this._view.tree=t,this._view.keyToGroupIndex=v,this._view.containers=w,{removedHeaders:P,removedItemsContainers:O}},_writeProfilerMark:function(a){var b="WinJS.UI.ListView:"+this._id+":"+a;h(b),f.log&&f.log(b,null,"listviewprofiler")}},{triggerDispose:function(){K()}});return b.Class.mix(s,e.createEventProperties("iteminvoked","groupheaderinvoked","selectionchanging","selectionchanged","loadingstatechanged","keyboardnavigating","contentanimating","itemdragstart","itemdragenter","itemdragend","itemdragbetween","itemdragleave","itemdragchanged","itemdragdrop","headervisibilitychanged","footervisibilitychanged","accessibilityannotationcomplete")),b.Class.mix(s,p.DOMEventMixin),s})})}),d("require-style!less/styles-datetimepicker",[],function(){}),d("WinJS/Controls/TimePicker",["../Core/_Global","../Core/_WinRT","../Core/_Base","../Core/_BaseUtils","../Core/_Events","../Core/_Resources","../Utilities/_Control","../Utilities/_ElementUtilities","../Utilities/_Hoverable","../Utilities/_Select","require-style!less/styles-datetimepicker"],function(a,b,c,d,e,f,g,h,i,j){"use strict";c.Namespace.define("WinJS.UI",{TimePicker:c.Namespace._lazy(function(){var d="{minute.integer(2)}",i="{hour.integer(1)}",k="{period.abbreviated(2)}",l={get ariaLabel(){return f._getWinJSString("ui/timePicker").value},get selectHour(){return f._getWinJSString("ui/selectHour").value},get selectMinute(){return f._getWinJSString("ui/selectMinute").value},get selectAMPM(){return f._getWinJSString("ui/selectAMPM").value}},m=function(a,b){return a.getHours()===b.getHours()&&a.getMinutes()===b.getMinutes()},n=c.Class.define(function(b,c){this._currentTime=n._sentinelDate(),b=b||a.document.createElement("div"),h.addClass(b,"win-disposable"),b.winControl=this,b.getAttribute("aria-label")||b.setAttribute("aria-label",l.ariaLabel),this._timePatterns={minute:null,hour:null,period:null},this._init(b),g.setOptions(this,c)},{_currentTime:null,_clock:null,_disabled:!1,_hourElement:null,_hourControl:null,_minuteElement:null,_minuteControl:null,_ampmElement:null,_ampmControl:null,_minuteIncrement:1,_timePatterns:{minute:null,hour:null,period:null},_information:null,_addAccessibilityAttributes:function(){this._domElement.setAttribute("role","group"),this._hourElement.setAttribute("aria-label",l.selectHour),this._minuteElement.setAttribute("aria-label",l.selectMinute),this._ampmElement&&this._ampmElement.setAttribute("aria-label",l.selectAMPM)},_addControlsInOrder:function(a){var b=this;a.order.forEach(function(a,c){switch(a){case"hour":b._domElement.appendChild(b._hourElement),h.addClass(b._hourElement,"win-order"+c);break;case"minute":b._domElement.appendChild(b._minuteElement),h.addClass(b._minuteElement,"win-order"+c);break;case"period":b._ampmElement&&(b._domElement.appendChild(b._ampmElement),h.addClass(b._ampmElement,"win-order"+c))}})},dispose:function(){},clock:{get:function(){return this._clock},set:function(a){this._clock!==a&&(this._clock=a,this._init())}},current:{get:function(){var a=this._currentTime;if(a){var b=n._sentinelDate();return b.setHours(a.getHours()),b.setMinutes(this._getMinutesIndex(a)*this.minuteIncrement),b.setSeconds(0),b.setMilliseconds(0),b}return a},set:function(a){var b;"string"==typeof a?(b=n._sentinelDate(),b.setTime(Date.parse(b.toDateString()+" "+a))):(b=n._sentinelDate(),b.setHours(a.getHours()),b.setMinutes(a.getMinutes()));var c=this._currentTime;m(c,b)||(this._currentTime=b,this._updateDisplay())}},disabled:{get:function(){return this._disabled},set:function(a){this._disabled!==a&&(this._disabled=a,this._hourControl&&(this._hourControl.setDisabled(a),this._minuteControl.setDisabled(a)),this._ampmControl&&this._ampmControl.setDisabled(a))}},element:{get:function(){return this._domElement}},_init:function(a){this._setElement(a),this._updateDisplay()},hourPattern:{get:function(){return this._timePatterns.hour.pattern},set:function(a){this._timePatterns.hour!==a&&(this._timePatterns.hour=a,this._init())}},_getHoursAmpm:function(a){var b=a.getHours();return this._ampmElement?0===b?{hours:12,ampm:0}:b<12?{hours:b,ampm:0}:{hours:b-12,ampm:1}:{hours:b}},_getHoursIndex:function(a){return this._ampmElement&&12===a?0:a},_getMinutesIndex:function(a){return parseInt(a.getMinutes()/this.minuteIncrement)},minuteIncrement:{get:function(){return Math.max(1,Math.abs(0|this._minuteIncrement)%60)},set:function(a){this._minuteIncrement!==a&&(this._minuteIncrement=a,this._init())}},minutePattern:{get:function(){return this._timePatterns.minute.pattern},set:function(a){this._timePatterns.minute!==a&&(this._timePatterns.minute=a,this._init())}},periodPattern:{get:function(){return this._timePatterns.period.pattern},set:function(a){this._timePatterns.period!==a&&(this._timePatterns.period=a,this._init())}},_setElement:function(b){if(this._domElement=this._domElement||b,this._domElement){var c=n.getInformation(this.clock,this.minuteIncrement,this._timePatterns);this._information=c,c.forceLanguage&&(this._domElement.setAttribute("lang",c.forceLanguage),this._domElement.setAttribute("dir",c.isRTL?"rtl":"ltr")),h.empty(this._domElement),h.addClass(this._domElement,"win-timepicker"),this._hourElement=a.document.createElement("select"),h.addClass(this._hourElement,"win-timepicker-hour win-dropdown"),this._minuteElement=a.document.createElement("select"),h.addClass(this._minuteElement,"win-timepicker-minute win-dropdown"),this._ampmElement=null,"12HourClock"===c.clock&&(this._ampmElement=a.document.createElement("select"),h.addClass(this._ampmElement,"win-timepicker-period win-dropdown")),this._addControlsInOrder(c);var d=this._getHoursAmpm(this.current);this._hourControl=new j._Select(this._hourElement,{dataSource:this._getInfoHours(),disabled:this.disabled,index:this._getHoursIndex(d.hours)}),this._minuteControl=new j._Select(this._minuteElement,{dataSource:c.minutes,disabled:this.disabled,index:this._getMinutesIndex(this.current)}),this._ampmControl=null,this._ampmElement&&(this._ampmControl=new j._Select(this._ampmElement,{dataSource:c.periods,disabled:this.disabled,index:d.ampm})),this._wireupEvents(),this._updateValues(),this._addAccessibilityAttributes()}},_getInfoHours:function(){return this._information.hours},_updateLayout:function(){this._domElement&&this._updateValues()},_updateValues:function(){if(this._hourControl){var a=this._getHoursAmpm(this.current);this._ampmControl&&(this._ampmControl.index=a.ampm),this._hourControl.index=this._getHoursIndex(a.hours),this._minuteControl.index=this._getMinutesIndex(this.current)}},_updateDisplay:function(){var a=this._getHoursAmpm(this.current);this._ampmControl&&(this._ampmControl.index=a.ampm),this._hourControl&&(this._hourControl.index=this._getHoursIndex(a.hours),this._minuteControl.index=this._getMinutesIndex(this.current))},_wireupEvents:function(){var a=this,b=function(){var b=a._hourControl.index;return a._ampmElement&&1===a._ampmControl.index&&12!==b&&(b+=12),b},c=function(){var c=b();a._currentTime.setHours(c),a._currentTime.setMinutes(a._minuteControl.index*a.minuteIncrement)};this._hourElement.addEventListener("change",c,!1),this._minuteElement.addEventListener("change",c,!1),this._ampmElement&&this._ampmElement.addEventListener("change",c,!1)}},{_sentinelDate:function(){var a=new Date;return new Date(2011,6,15,a.getHours(),a.getMinutes())},_getInformationWinRT:function(a,c,e){var f=function(c,d){var e=b.Windows.Globalization.DateTimeFormatting;c=c||d;var f=new e.DateTimeFormatter(c);return a&&(f=e.DateTimeFormatter(c,f.languages,f.geographicRegion,f.calendar,a)),f},g=b.Windows.Globalization,h=new g.Calendar;a&&(h=new g.Calendar(h.languages,h.getCalendarSystem(),a)),h.setDateTime(n._sentinelDate());var j=h.getClock(),l=24;l=h.numberOfHoursInThisPeriod;var m=function(){var a=f(e.period,k);return{getLength:function(){return 2},getValue:function(b){var c=n._sentinelDate();if(0===b){c.setHours(1);return a.format(c)}if(1===b){c.setHours(13);return a.format(c)}return null}}}(),o=function(){var a=f(e.minute,d),b=n._sentinelDate();return{getLength:function(){return 60/c},getValue:function(d){var e=d*c;return b.setMinutes(e),a.format(b)}}}(),p=function(){var a=f(e.hour,i),b=n._sentinelDate();return{getLength:function(){return l},getValue:function(c){return b.setHours(c),a.format(b)}}}(),q=f("hour minute"),r=q.patterns[0],s=["hour","minute"],t={period:r.indexOf("{period"),hour:r.indexOf("{hour"),minute:r.indexOf("{minute")};t.period>-1&&s.push("period");var u=b.Windows.Globalization.DateTimeFormatting.DateTimeFormatter,v=new u("month.full",b.Windows.Globalization.ApplicationLanguages.languages,"ZZ","GregorianCalendar","24HourClock"),w=v.patterns[0],x=8207===w.charCodeAt(0);if(x){var y=t.hour;t.hour=t.minute,t.minute=y}return s.sort(function(a,b){return t[a]<t[b]?-1:t[a]>t[b]?1:0}),{minutes:o,hours:p,clock:j,periods:m,order:s,forceLanguage:q.resolvedLanguage,isRTL:x}},_getInformationJS:function(a,b){var c=[12,1,2,3,4,5,6,7,8,9,10,11],d={};d.getLength=function(){return 60/b},d.getValue=function(a){var c=a*b;return c<10?"0"+c.toString():c.toString()};var e=["hour","minute","period"];return"24HourClock"===a&&(c=["00","01","02","03","04","05","06","07","08","09",10,11,12,13,14,15,16,17,18,19,20,21,22,23],e=["hour","minute"]),{minutes:d,hours:c,clock:a||"12HourClock",periods:["AM","PM"],order:e}}});return b.Windows.Globalization.DateTimeFormatting&&b.Windows.Globalization.Calendar&&b.Windows.Globalization.ApplicationLanguages?n.getInformation=n._getInformationWinRT:n.getInformation=n._getInformationJS,c.Class.mix(n,e.createEventProperties("change")),c.Class.mix(n,g.DOMEventMixin),n})})}),d("require-style!less/styles-toggleswitch",[],function(){}),d("require-style!less/colors-toggleswitch",[],function(){}),d("WinJS/Controls/ToggleSwitch",["../Core/_Global","../Core/_Base","../Core/_BaseUtils","../Core/_Events","../Core/_Resources","../_Accents","../Utilities/_Control","../Utilities/_ElementUtilities","require-style!less/styles-toggleswitch","require-style!less/colors-toggleswitch"],function(a,b,c,d,e,f,g,h){"use strict";f.createAccentRule(".win-toggleswitch-on .win-toggleswitch-track",[{name:"background-color",value:f.ColorTypes.accent}]),f.createAccentRule("html.win-hoverable .win-toggleswitch-on:not(.win-toggleswitch-disabled):not(.win-toggleswitch-pressed) .win-toggleswitch-clickregion:hover .win-toggleswitch-track",[{name:"background-color",value:f.ColorTypes.listSelectPress}]),b.Namespace.define("WinJS.UI",{ToggleSwitch:b.Namespace._lazy(function(){var c="win-toggleswitch",f="win-toggleswitch-header",i="win-toggleswitch-clickregion",j="win-toggleswitch-track",k="win-toggleswitch-thumb",l="win-toggleswitch-values",m="win-toggleswitch-value",n="win-toggleswitch-value-on",o="win-toggleswitch-value-off",p="win-toggleswitch-description",q="win-toggleswitch-on",r="win-toggleswitch-off",s="win-toggleswitch-disabled",t="win-toggleswitch-enabled",u="win-toggleswitch-dragging",v="win-toggleswitch-pressed",w={get on(){return e._getWinJSString("ui/on").value},get off(){return e._getWinJSString("ui/off").value}},x=b.Class.define(function(b,d){b=b||a.document.createElement("div"),this._domElement=b,h.addClass(this._domElement,c),this._domElement.innerHTML=['<div class="'+f+'"></div>','<div class="'+i+'">','   <div class="'+j+'">','       <div class="'+k+'"></div>',"   </div>",'   <div class="'+l+'">','      <div class="'+m+" "+n+'"></div>','      <div class="'+m+" "+o+'"></div>',"   </div>","</div>",'<div class="'+p+'"></div>'].join("\n"),this._headerElement=this._domElement.firstElementChild,this._clickElement=this._headerElement.nextElementSibling,this._trackElement=this._clickElement.firstElementChild,this._thumbElement=this._trackElement.firstElementChild,this._labelsElement=this._trackElement.nextElementSibling,this._labelOnElement=this._labelsElement.firstElementChild,this._labelOffElement=this._labelOnElement.nextElementSibling,this._descriptionElement=this._clickElement.nextElementSibling,this._headerElement.setAttribute("aria-hidden",!0),this._labelsElement.setAttribute("aria-hidden",!0),this._headerElement.setAttribute("id",h._uniqueID(this._headerElement)),this._domElement.setAttribute("aria-labelledby",this._headerElement.id),this._domElement.setAttribute("role","checkbox"),this._domElement.winControl=this,h.addClass(this._domElement,"win-disposable"),this._domElement.addEventListener("keydown",this._keyDownHandler.bind(this)),h._addEventListener(this._clickElement,"pointerdown",this._pointerDownHandler.bind(this)),h._addEventListener(this._clickElement,"pointercancel",this._pointerCancelHandler.bind(this)),this._boundPointerMove=this._pointerMoveHandler.bind(this),this._boundPointerUp=this._pointerUpHandler.bind(this),this._mutationObserver=new h._MutationObserver(this._ariaChangedHandler.bind(this)),this._mutationObserver.observe(this._domElement,{attributes:!0,attributeFilter:["aria-checked"]}),this._dragX=0,this._dragging=!1,this.checked=!1,this.disabled=!1,this.labelOn=w.on,this.labelOff=w.off,g.setOptions(this,d)},{element:{get:function(){return this._domElement}},checked:{get:function(){return this._checked},set:function(a){(a=!!a)!==this.checked&&(this._checked=a,this._domElement.setAttribute("aria-checked",a),a?(h.addClass(this._domElement,q),h.removeClass(this._domElement,r)):(h.addClass(this._domElement,r),h.removeClass(this._domElement,q)),this.dispatchEvent("change"))}},disabled:{get:function(){return this._disabled},set:function(a){(a=!!a)!==this._disabled&&(a?(h.addClass(this._domElement,s),h.removeClass(this._domElement,t)):(h.removeClass(this._domElement,s),h.addClass(this._domElement,t)),this._disabled=a,this._domElement.setAttribute("aria-disabled",a),this._domElement.setAttribute("tabIndex",a?-1:0))}},labelOn:{get:function(){return this._labelOnElement.innerHTML},set:function(a){this._labelOnElement.innerHTML=a}},labelOff:{get:function(){return this._labelOffElement.innerHTML},set:function(a){this._labelOffElement.innerHTML=a}},title:{get:function(){return this._headerElement.innerHTML},set:function(a){this._headerElement.innerHTML=a}},onchange:d._createEventProperty("change"),dispose:function(){this._disposed||(this._disposed=!0)},_ariaChangedHandler:function(){var a=this._domElement.getAttribute("aria-checked");a="true"===a,this.checked=a},_keyDownHandler:function(a){this.disabled||(a.keyCode===h.Key.space&&(a.preventDefault(),this.checked=!this.checked),a.keyCode!==h.Key.rightArrow&&a.keyCode!==h.Key.upArrow||(a.preventDefault(),this.checked=!0),a.keyCode!==h.Key.leftArrow&&a.keyCode!==h.Key.downArrow||(a.preventDefault(),this.checked=!1))},_pointerDownHandler:function(a){this.disabled||this._mousedown||(a.preventDefault(),this._mousedown=!0,this._dragXStart=a.pageX-this._trackElement.getBoundingClientRect().left,this._dragX=this._dragXStart,this._dragging=!1,h.addClass(this._domElement,v),h._globalListener.addEventListener(this._domElement,"pointermove",this._boundPointerMove,!0),h._globalListener.addEventListener(this._domElement,"pointerup",this._boundPointerUp,!0),a.pointerType===h._MSPointerEvent.MSPOINTER_TYPE_TOUCH&&h._setPointerCapture(this._domElement,a.pointerId))},_pointerCancelHandler:function(a){this._resetPressedState(),a.pointerType===h._MSPointerEvent.MSPOINTER_TYPE_TOUCH&&h._releasePointerCapture(this._domElement,a.pointerId)},_pointerUpHandler:function(a){if(!this.disabled&&this._mousedown){a=a.detail.originalEvent,a.preventDefault();var b=this._trackElement.getBoundingClientRect(),c=this._thumbElement.getBoundingClientRect(),d="rtl"===h._getComputedStyle(this._domElement).direction;if(this._dragging){var e=b.width-c.width;this.checked=d?this._dragX<e/2:this._dragX>=e/2,this._dragging=!1,h.removeClass(this._domElement,u)}else this.checked=!this.checked;this._resetPressedState()}},_pointerMoveHandler:function(a){if(!this.disabled&&this._mousedown){a=a.detail.originalEvent,a.preventDefault();var b=this._trackElement.getBoundingClientRect(),c=a.pageX-b.left;if(!(c>b.width)){var d=this._thumbElement.getBoundingClientRect(),e=b.width-d.width-6;this._dragX=Math.min(e,c-d.width/2),this._dragX=Math.max(2,this._dragX),!this._dragging&&Math.abs(c-this._dragXStart)>3&&(this._dragging=!0,h.addClass(this._domElement,u)),this._thumbElement.style.left=this._dragX+"px"}}},_resetPressedState:function(){this._mousedown=!1,this._thumbElement.style.left="",h.removeClass(this._domElement,v),h._globalListener.removeEventListener(this._domElement,"pointermove",this._boundPointerMove,!0),h._globalListener.removeEventListener(this._domElement,"pointerup",this._boundPointerUp,!0)}});return b.Class.mix(x,g.DOMEventMixin),x})})}),d("WinJS/Utilities/_KeyboardBehavior",["exports","../Core/_Global","../Core/_Base","./_Control","./_ElementUtilities","./_TabContainer"],function(a,b,c,d,e,f){"use strict";if(b.document){var g={touch:"touch",pen:"pen",mouse:"mouse",keyboard:"keyboard"},h=g.mouse,i={2:g.touch,3:g.pen,4:g.mouse,touch:g.touch,pen:g.pen,mouse:g.mouse};e._addEventListener(b,"pointerdown",function(a){h=i[a.pointerType]||g.mouse},!0),b.addEventListener("keydown",function(){h=g.keyboard},!0),c.Namespace._moduleDefine(a,"WinJS.UI",{_keyboardSeenLast:{get:function(){return h===g.keyboard},set:function(a){h=a?g.keyboard:g.mouse}},_lastInputType:{get:function(){return h},set:function(a){g[a]&&(h=a)}},_InputTypes:g,_WinKeyboard:function(b){e._addEventListener(b,"pointerdown",function(a){e.removeClass(a.target,"win-keyboard")},!0),b.addEventListener("keydown",function(a){e.addClass(a.target,"win-keyboard")},!0),e._addEventListener(b,"focusin",function(b){a._keyboardSeenLast&&e.addClass(b.target,"win-keyboard")},!1),e._addEventListener(b,"focusout",function(a){e.removeClass(a.target,"win-keyboard")},!1)},_KeyboardBehavior:c.Namespace._lazy(function(){var a=e.Key,g=c.Class.define(function(a,c){a=a||b.document.createElement("DIV"),c=c||{},a._keyboardBehavior=this,this._element=a,this._fixedDirection=g.FixedDirection.width,this._fixedSize=1,this._currentIndex=0,d.setOptions(this,c),this._tabContainer=new f.TabContainer(this.scroller||this._element),this._tabContainer.tabIndex=0,this._element.children.length>0&&(this._tabContainer.childFocus=this._getFocusInto(this._element.children[0])),this._element.addEventListener("keydown",this._keyDownHandler.bind(this)),e._addEventListener(this._element,"pointerdown",this._MSPointerDownHandler.bind(this))},{element:{get:function(){return this._element}},fixedDirection:{get:function(){return this._fixedDirection},set:function(a){this._fixedDirection=a}},fixedSize:{get:function(){return this._fixedSize},set:function(a){+a===a&&(a=Math.max(1,a),this._fixedSize=a)}},currentIndex:{get:function(){return this._element.children.length>0?this._currentIndex:-1},set:function(a){if(+a===a){var b=this._element.children.length;a=Math.max(0,Math.min(b-1,a)),this._currentIndex=a,this._tabContainer.childFocus=this._getFocusInto(this._element.children[a])}}},getAdjacent:{get:function(){return this._getAdjacent},set:function(a){this._getAdjacent=a}},scroller:{get:function(){return this._scroller},set:function(a){this._scroller=a}},_keyDownHandler:function(b){if(!b.altKey){if(e._matchesSelector(b.target,".win-interactive, .win-interactive *"))return;var c=this.currentIndex,d=this._element.children.length-1,f="rtl"===e._getComputedStyle(this._element).direction,h=f?a.rightArrow:a.leftArrow,i=f?a.leftArrow:a.rightArrow,j=this.getAdjacent&&this.getAdjacent(c,b.keyCode);if(+j===j)c=j;else{var k=c%this.fixedSize;b.keyCode===h?this.fixedDirection===g.FixedDirection.width?0!==k&&c--:c>=this.fixedSize&&(c-=this.fixedSize):b.keyCode===i?this.fixedDirection===g.FixedDirection.width?k!==this.fixedSize-1&&c++:c+this.fixedSize-k<=d&&(c+=this.fixedSize):b.keyCode===a.upArrow?this.fixedDirection===g.FixedDirection.height?0!==k&&c--:c>=this.fixedSize&&(c-=this.fixedSize):b.keyCode===a.downArrow?this.fixedDirection===g.FixedDirection.height?k!==this.fixedSize-1&&c++:c+this.fixedSize-k<=d&&(c+=this.fixedSize):b.keyCode===a.home?c=0:b.keyCode===a.end&&(c=this._element.children.length-1)}c=Math.max(0,Math.min(this._element.children.length-1,c)),c!==this.currentIndex&&(this._focus(c,b.keyCode),b.keyCode!==h&&b.keyCode!==i&&b.keyCode!==a.upArrow&&b.keyCode!==a.downArrow||b.stopPropagation(),b.preventDefault())}},_getFocusInto:function(a,b){return a&&a.winControl&&a.winControl._getFocusInto?a.winControl._getFocusInto(b):a},_focus:function(a,b){a=+a===a?a:this.currentIndex;var c=this._element.children[a];c&&(c=this._getFocusInto(c,b),this.currentIndex=a,e._setActive(c,this.scroller))},_MSPointerDownHandler:function(a){var b=a.target;if(b!==this.element){for(;b.parentNode!==this.element;)b=b.parentNode;for(var c=-1;b;)c++,b=b.previousElementSibling;this.currentIndex=c}}},{FixedDirection:{height:"height",width:"width"}});return g})})}}),d("require-style!less/styles-lightdismissservice",[],function(){});var e=this.__extends||function(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);c.prototype=b.prototype,a.prototype=new c};return d("WinJS/_LightDismissService",["require","exports","./Application","./Core/_Base","./Core/_BaseUtils","./Utilities/_ElementUtilities","./Core/_Global","./Utilities/_KeyboardBehavior","./Core/_Log","./Core/_Resources"],function(a,b,c,d,f,g,h,i,j,k){a(["require-style!less/styles-lightdismissservice"]);var l=1e3,m={get closeOverlay(){return k._getWinJSString("ui/closeOverlay").value}};b._ClassNames={_clickEater:"win-clickeater"};b.LightDismissalReasons={tap:"tap",lostFocus:"lostFocus",escape:"escape",hardwareBackButton:"hardwareBackButton",windowResize:"windowResize",windowBlur:"windowBlur"},b.DismissalPolicies={light:function(a){switch(a.reason){case b.LightDismissalReasons.tap:case b.LightDismissalReasons.escape:return!!a.active||(a.stopPropagation(),!1);case b.LightDismissalReasons.hardwareBackButton:return a.active?(a.preventDefault(),!0):(a.stopPropagation(),!1);case b.LightDismissalReasons.lostFocus:case b.LightDismissalReasons.windowResize:case b.LightDismissalReasons.windowBlur:return!0}},modal:function(a){switch(a.stopPropagation(),a.reason){case b.LightDismissalReasons.tap:case b.LightDismissalReasons.lostFocus:case b.LightDismissalReasons.windowResize:case b.LightDismissalReasons.windowBlur:return!1;case b.LightDismissalReasons.escape:return a.active;case b.LightDismissalReasons.hardwareBackButton:return a.preventDefault(),a.active}},sticky:function(a){return a.stopPropagation(),!1}};var n={keyDown:"keyDown",keyUp:"keyUp",keyPress:"keyPress"},o=function(){function a(a){this.element=a.element,this.element.tabIndex=a.tabIndex,this.onLightDismiss=a.onLightDismiss,a.onTakeFocus&&(this.onTakeFocus=a.onTakeFocus),a.onShouldLightDismiss&&(this.onShouldLightDismiss=a.onShouldLightDismiss),this._ldeOnKeyDownBound=this._ldeOnKeyDown.bind(this),this._ldeOnKeyUpBound=this._ldeOnKeyUp.bind(this),this._ldeOnKeyPressBound=this._ldeOnKeyPress.bind(this)}return a.prototype.restoreFocus=function(){var a=h.document.activeElement;if(a&&this.containsElement(a))return this._ldeCurrentFocus=a,!0;var b=!i._keyboardSeenLast;return this._ldeCurrentFocus&&this.containsElement(this._ldeCurrentFocus)&&g._tryFocusOnAnyElement(this._ldeCurrentFocus,b)},a.prototype._ldeOnKeyDown=function(a){this._ldeService.keyDown(this,a)},a.prototype._ldeOnKeyUp=function(a){this._ldeService.keyUp(this,a)},a.prototype._ldeOnKeyPress=function(a){this._ldeService.keyPress(this,a)},a.prototype.setZIndex=function(a){this.element.style.zIndex=a},a.prototype.getZIndexCount=function(){return 1},a.prototype.containsElement=function(a){return this.element.contains(a)},a.prototype.onTakeFocus=function(a){this.restoreFocus()||g._focusFirstFocusableElement(this.element,a)||g._tryFocusOnAnyElement(this.element,a)},a.prototype.onFocus=function(a){this._ldeCurrentFocus=a},a.prototype.onShow=function(a){this._ldeService=a,this.element.addEventListener("keydown",this._ldeOnKeyDownBound),this.element.addEventListener("keyup",this._ldeOnKeyUpBound),this.element.addEventListener("keypress",this._ldeOnKeyPressBound)},a.prototype.onHide=function(){this._ldeCurrentFocus=null,this._ldeService=null,this.element.removeEventListener("keydown",this._ldeOnKeyDownBound),this.element.removeEventListener("keyup",this._ldeOnKeyUpBound),this.element.removeEventListener("keypress",this._ldeOnKeyPressBound)},a.prototype.onKeyInStack=function(a){},a.prototype.onShouldLightDismiss=function(a){return!1},a.prototype.onLightDismiss=function(a){},a}(),p=function(a){function c(){a.apply(this,arguments)}return e(c,a),c.prototype.onKeyInStack=function(a){},c.prototype.onShouldLightDismiss=function(a){return b.DismissalPolicies.light(a)},c}(o);b.LightDismissableElement=p;var q=function(a){function c(){a.apply(this,arguments)}return e(c,a),c.prototype.onKeyInStack=function(a){a.stopPropagation()},c.prototype.onShouldLightDismiss=function(a){return b.DismissalPolicies.modal(a)},c}(o);b.ModalElement=q;var r=function(){function a(){}return a.prototype.setZIndex=function(a){},a.prototype.getZIndexCount=function(){return 1},a.prototype.containsElement=function(a){return h.document.body.contains(a)},a.prototype.onTakeFocus=function(a){this.currentFocus&&this.containsElement(this.currentFocus)&&g._tryFocusOnAnyElement(this.currentFocus,a)},a.prototype.onFocus=function(a){this.currentFocus=a},a.prototype.onShow=function(a){},a.prototype.onHide=function(){this.currentFocus=null},a.prototype.onKeyInStack=function(a){},a.prototype.onShouldLightDismiss=function(a){return!1},a.prototype.onLightDismiss=function(a){},a}(),s=function(){function a(){this._debug=!1,this._clients=[],this._notifying=!1,this._bodyClient=new r,this._updateDom_rendered={serviceActive:!1},this._clickEaterEl=this._createClickEater(),this._onBeforeRequestingFocusOnKeyboardInputBound=this._onBeforeRequestingFocusOnKeyboardInput.bind(this),this._onFocusInBound=this._onFocusIn.bind(this),this._onKeyDownBound=this._onKeyDown.bind(this),this._onWindowResizeBound=this._onWindowResize.bind(this),this._onClickEaterPointerUpBound=this._onClickEaterPointerUp.bind(this),this._onClickEaterPointerCancelBound=this._onClickEaterPointerCancel.bind(this),c.addEventListener("backclick",this._onBackClick.bind(this)),h.window.addEventListener("blur",this._onWindowBlur.bind(this)),this.shown(this._bodyClient)}return a.prototype.shown=function(a){-1===this._clients.indexOf(a)&&(this._clients.push(a),a.onShow(this),this._updateDom())},a.prototype.hidden=function(a){var b=this._clients.indexOf(a);-1!==b&&(this._clients.splice(b,1),a.setZIndex(""),a.onHide(),this._updateDom())},a.prototype.updated=function(a){this._updateDom()},a.prototype.keyDown=function(a,b){b.keyCode===g.Key.escape?this._escapePressed(b):this._dispatchKeyboardEvent(a,n.keyDown,b)},a.prototype.keyUp=function(a,b){this._dispatchKeyboardEvent(a,n.keyUp,b)},a.prototype.keyPress=function(a,b){this._dispatchKeyboardEvent(a,n.keyPress,b)},a.prototype.isShown=function(a){return-1!==this._clients.indexOf(a)},a.prototype.isTopmost=function(a){return a===this._clients[this._clients.length-1]},a.prototype._setDebug=function(a){this._debug=a},a.prototype._updateDom=function(a){a=a||{};var b=!!a.activeDismissableNeedsFocus,d=this._updateDom_rendered;if(!this._notifying){var e=this._clients.length>1;if(e!==d.serviceActive){if(e)c.addEventListener("beforerequestingfocusonkeyboardinput",this._onBeforeRequestingFocusOnKeyboardInputBound),g._addEventListener(h.document.documentElement,"focusin",this._onFocusInBound),h.document.documentElement.addEventListener("keydown",this._onKeyDownBound),h.window.addEventListener("resize",this._onWindowResizeBound),this._bodyClient.currentFocus=h.document.activeElement,h.document.body.appendChild(this._clickEaterEl);else{c.removeEventListener("beforerequestingfocusonkeyboardinput",this._onBeforeRequestingFocusOnKeyboardInputBound),g._removeEventListener(h.document.documentElement,"focusin",this._onFocusInBound),h.document.documentElement.removeEventListener("keydown",this._onKeyDownBound),h.window.removeEventListener("resize",this._onWindowResizeBound);var f=this._clickEaterEl.parentNode;f&&f.removeChild(this._clickEaterEl)}d.serviceActive=e}var j=0,k=l+1;this._clients.forEach(function(a,b){var c=parseInt(k.toString())+parseInt(j.toString());a.setZIndex(""+c),k=c,j=parseInt(a.getZIndexCount().toString())+1}),e&&(this._clickEaterEl.style.zIndex=""+(k-1));var m=this._clients.length>0?this._clients[this._clients.length-1]:null;if(this._activeDismissable!==m&&(this._activeDismissable=m,b=!0),b){var n=!i._keyboardSeenLast;this._activeDismissable&&this._activeDismissable.onTakeFocus(n)}}},a.prototype._dispatchKeyboardEvent=function(a,b,c){var d=this._clients.indexOf(a);if(-1!==d)for(var e={type:b,keyCode:c.keyCode,propagationStopped:!1,stopPropagation:function(){this.propagationStopped=!0,c.stopPropagation()}},f=this._clients.slice(0,d+1),g=f.length-1;g>=0&&!e.propagationStopped;g--)f[g].onKeyInStack(e)},a.prototype._dispatchLightDismiss=function(a,b,c){if(this._notifying)return void(j.log&&j.log('_LightDismissService ignored dismiss trigger to avoid re-entrancy: "'+a+'"',"winjs _LightDismissService","warning"));if(b=b||this._clients.slice(0),0!==b.length){this._notifying=!0;for(var d={reason:a,active:!1,_stop:!1,stopPropagation:function(){this._stop=!0},_doDefault:!0,preventDefault:function(){this._doDefault=!1}},e=b.length-1;e>=0&&!d._stop;e--)d.active=this._activeDismissable===b[e],b[e].onShouldLightDismiss(d)&&b[e].onLightDismiss(d);return this._notifying=!1,this._updateDom(c),d._doDefault}},a.prototype._onBeforeRequestingFocusOnKeyboardInput=function(a){return!0},a.prototype._clickEaterTapped=function(){this._dispatchLightDismiss(b.LightDismissalReasons.tap)},a.prototype._onFocusIn=function(a){for(var c=a.target,d=this._clients.length-1;d>=0&&!this._clients[d].containsElement(c);d--);-1!==d&&this._clients[d].onFocus(c),d+1<this._clients.length&&this._dispatchLightDismiss(b.LightDismissalReasons.lostFocus,this._clients.slice(d+1),{activeDismissableNeedsFocus:!0})},a.prototype._onKeyDown=function(a){a.keyCode===g.Key.escape&&this._escapePressed(a)},a.prototype._escapePressed=function(a){a.preventDefault(),a.stopPropagation(),this._dispatchLightDismiss(b.LightDismissalReasons.escape)},a.prototype._onBackClick=function(a){return!this._dispatchLightDismiss(b.LightDismissalReasons.hardwareBackButton)},a.prototype._onWindowResize=function(a){this._dispatchLightDismiss(b.LightDismissalReasons.windowResize)},a.prototype._onWindowBlur=function(a){if(!this._debug)if(h.document.hasFocus()){var c=h.document.activeElement;c&&"IFRAME"===c.tagName&&!c.msLightDismissBlur&&(c.addEventListener("blur",this._onWindowBlur.bind(this),!1),c.msLightDismissBlur=!0)}else this._dispatchLightDismiss(b.LightDismissalReasons.windowBlur)},a.prototype._createClickEater=function(){var a=h.document.createElement("section");return a.className=b._ClassNames._clickEater,g._addEventListener(a,"pointerdown",this._onClickEaterPointerDown.bind(this),!0),a.addEventListener("click",this._onClickEaterClick.bind(this),!0),a.setAttribute("role","menuitem"),a.setAttribute("aria-label",m.closeOverlay),a.setAttribute("unselectable","on"),a},a.prototype._onClickEaterPointerDown=function(a){a.stopPropagation(),a.preventDefault(),this._clickEaterPointerId=a.pointerId,this._registeredClickEaterCleanUp||(g._addEventListener(h.window,"pointerup",this._onClickEaterPointerUpBound),g._addEventListener(h.window,"pointercancel",this._onClickEaterPointerCancelBound),this._registeredClickEaterCleanUp=!0)},a.prototype._onClickEaterPointerUp=function(a){var b=this;if(a.stopPropagation(),a.preventDefault(),a.pointerId===this._clickEaterPointerId){this._resetClickEaterPointerState();h.document.elementFromPoint(a.clientX,a.clientY)===this._clickEaterEl&&(this._skipClickEaterClick=!0,f._yieldForEvents(function(){b._skipClickEaterClick=!1}),this._clickEaterTapped())}},a.prototype._onClickEaterClick=function(a){a.stopPropagation(),a.preventDefault(),this._skipClickEaterClick||this._clickEaterTapped()},a.prototype._onClickEaterPointerCancel=function(a){a.pointerId===this._clickEaterPointerId&&this._resetClickEaterPointerState()},a.prototype._resetClickEaterPointerState=function(){this._registeredClickEaterCleanUp&&(g._removeEventListener(h.window,"pointerup",this._onClickEaterPointerUpBound),g._removeEventListener(h.window,"pointercancel",this._onClickEaterPointerCancelBound)),this._clickEaterPointerId=null,this._registeredClickEaterCleanUp=!1},a}(),t=new s;b.shown=t.shown.bind(t),b.hidden=t.hidden.bind(t),b.updated=t.updated.bind(t),b.isShown=t.isShown.bind(t),b.isTopmost=t.isTopmost.bind(t),b.keyDown=t.keyDown.bind(t),b.keyUp=t.keyUp.bind(t),b.keyPress=t.keyPress.bind(t),b._clickEaterTapped=t._clickEaterTapped.bind(t),b._onBackClick=t._onBackClick.bind(t),b._setDebug=t._setDebug.bind(t),d.Namespace.define("WinJS.UI._LightDismissService",{shown:b.shown,hidden:b.hidden,updated:b.updated,isShown:b.isShown,isTopmost:b.isTopmost,keyDown:b.keyDown,keyUp:b.keyUp,keyPress:b.keyPress,_clickEaterTapped:b._clickEaterTapped,_onBackClick:b._onBackClick,_setDebug:b._setDebug,LightDismissableElement:p,DismissalPolicies:b.DismissalPolicies,LightDismissalReasons:b.LightDismissalReasons,_ClassNames:b._ClassNames,_service:t})}),d("WinJS/Controls/_LegacyAppBar/_Constants",["exports","../../Core/_Base"],function(a,b){"use strict";b.Namespace._moduleDefine(a,null,{appBarClass:"win-navbar",firstDivClass:"win-firstdiv",finalDivClass:"win-finaldiv",invokeButtonClass:"win-navbar-invokebutton",ellipsisClass:"win-navbar-ellipsis",primaryCommandsClass:"win-primarygroup",secondaryCommandsClass:"win-secondarygroup",commandLayoutClass:"win-commandlayout",menuLayoutClass:"win-menulayout",topClass:"win-top",bottomClass:"win-bottom",showingClass:"win-navbar-opening",shownClass:"win-navbar-opened",hidingClass:"win-navbar-closing",hiddenClass:"win-navbar-closed",compactClass:"win-navbar-compact",minimalClass:"win-navbar-minimal",menuContainerClass:"win-navbar-menu",appBarPlacementTop:"top",appBarPlacementBottom:"bottom",appBarLayoutCustom:"custom",appBarLayoutCommands:"commands",appBarLayoutMenu:"menu",appBarInvokeButtonWidth:32,typeSeparator:"separator",typeContent:"content",typeButton:"button",typeToggle:"toggle",typeFlyout:"flyout",appBarCommandClass:"win-command",appBarCommandGlobalClass:"win-global",appBarCommandSelectionClass:"win-selection",commandHiddenClass:"win-command-hidden",sectionSelection:"selection",sectionGlobal:"global",sectionPrimary:"primary",sectionSecondary:"secondary",menuCommandClass:"win-command",menuCommandButtonClass:"win-command-button",menuCommandToggleClass:"win-command-toggle",menuCommandFlyoutClass:"win-command-flyout",menuCommandFlyoutActivatedClass:"win-command-flyout-activated",menuCommandSeparatorClass:"win-command-separator",_menuCommandInvokedEvent:"_invoked",menuClass:"win-menu",menuContainsToggleCommandClass:"win-menu-containstogglecommand",menuContainsFlyoutCommandClass:"win-menu-containsflyoutcommand",menuMouseSpacingClass:"win-menu-mousespacing",menuTouchSpacingClass:"win-menu-touchspacing",menuCommandHoverDelay:400,overlayClass:"win-overlay",flyoutClass:"win-flyout",flyoutLightClass:"win-ui-light",settingsFlyoutClass:"win-settingsflyout",scrollsClass:"win-scrolls",pinToRightEdge:-1,pinToBottomEdge:-1,separatorWidth:34,buttonWidth:68,narrowClass:"win-narrow",wideClass:"win-wide",_visualViewportClass:"win-visualviewport-space",commandPropertyMutated:"_commandpropertymutated",commandVisibilityChanged:"commandvisibilitychanged"})}),d("WinJS/Utilities/_KeyboardInfo",["require","exports","../Core/_BaseCoreUtils","../Core/_Global","../Core/_WinRT"],function(a,b,c,d,e){"use strict";var f={visualViewportClass:"win-visualviewport-space",scrollTimeout:150};b._KeyboardInfo,b._KeyboardInfo={get _visible(){try{return e.Windows.UI.ViewManagement.InputPane&&e.Windows.UI.ViewManagement.InputPane.getForCurrentView().occludedRect.height>0}catch(a){return!1}},get _extraOccluded(){var a=0;return!b._KeyboardInfo._isResized&&e.Windows.UI.ViewManagement.InputPane&&(a=e.Windows.UI.ViewManagement.InputPane.getForCurrentView().occludedRect.height),a},get _isResized(){var a=d.document.documentElement.clientHeight/d.innerHeight;return d.document.documentElement.clientWidth/d.innerWidth/a<.99},get _visibleDocBottom(){return b._KeyboardInfo._visibleDocTop+b._KeyboardInfo._visibleDocHeight},get _visibleDocHeight(){return b._KeyboardInfo._visualViewportHeight-b._KeyboardInfo._extraOccluded},get _visibleDocTop(){return 0},get _visibleDocBottomOffset(){return b._KeyboardInfo._extraOccluded},get _visualViewportHeight(){return b._KeyboardInfo._visualViewportSpace.height},get _visualViewportWidth(){return b._KeyboardInfo._visualViewportSpace.width},get _visualViewportSpace(){var a=d.document.body.querySelector("."+f.visualViewportClass);return a||(a=d.document.createElement("DIV"),a.className=f.visualViewportClass,d.document.body.appendChild(a)),a.getBoundingClientRect()},get _animationShowLength(){if(c.hasWinRT){if(e.Windows.UI.Core.AnimationMetrics){for(var a=e.Windows.UI.Core.AnimationMetrics,b=new a.AnimationDescription(a.AnimationEffect.showPanel,a.AnimationEffectTarget.primary),d=b.animations,f=0,g=0;g<d.size;g++){var h=d[g];f=Math.max(f,h.delay+h.duration)}return f}return 50+300}return 0},get _scrollTimeout(){return f.scrollTimeout},get _layoutViewportCoords(){var a=d.window.pageYOffset-d.document.documentElement.scrollTop;return{visibleDocTop:a,visibleDocBottom:d.document.documentElement.clientHeight-(a+this._visibleDocHeight)}}}}),d("require-style!less/styles-overlay",[],function(){}),d("require-style!less/colors-overlay",[],function(){}),d("WinJS/Controls/Flyout/_Overlay",["exports","../../Core/_Global","../../Core/_WinRT","../../Core/_Base","../../Core/_BaseUtils","../../Core/_ErrorFromName","../../Core/_Events","../../Core/_Resources","../../Core/_WriteProfilerMark","../../_Accents","../../Animations","../../Application","../../ControlProcessor","../../Promise","../../Scheduler","../../Utilities/_Control","../../Utilities/_ElementUtilities","../../Utilities/_KeyboardInfo","../_LegacyAppBar/_Constants","require-style!less/styles-overlay","require-style!less/colors-overlay"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){"use strict";j.createAccentRule("button[aria-checked=true].win-command:before,         .win-menu-containsflyoutcommand button.win-command-flyout-activated:before",[{name:"background-color",value:j.ColorTypes.accent},{name:"border-color",value:j.ColorTypes.accent}]),j.createAccentRule(".win-flyout, .win-settingsflyout",[{name:"border-color",value:j.ColorTypes.accent}]),d.Namespace._moduleDefine(a,"WinJS.UI",{_Overlay:d.Namespace._lazy(function(){function a(a,c,d){var e=b.document.querySelectorAll("."+s.overlayClass);if(e)for(var f=e.length,g=0;g<f;g++){var h=e[g],i=h.winControl;if(!i._disposed&&i){var j=i[c](a);if(d&&j)return j}}}function e(a){if(!a)return[];"string"!=typeof a&&a&&a.length||(a=[a]);var c,d=[];for(c=0;c<a.length;c++)if(a[c])if("string"==typeof a[c]){var e=b.document.getElementById(a[c]);e&&d.push(e)}else a[c].element?d.push(a[c].element):d.push(a[c]);return d}var g=d.Class.define(function(){this._currentState=g.states.off,this._inputPaneShowing=this._inputPaneShowing.bind(this),this._inputPaneHiding=this._inputPaneHiding.bind(this),this._documentScroll=this._documentScroll.bind(this),this._windowResized=this._windowResized.bind(this)},{initialize:function(){this._toggleListeners(g.states.on)},reset:function(){this._toggleListeners(g.states.off),this._toggleListeners(g.states.on)},_inputPaneShowing:function(b){i(g.profilerString+"_showingKeyboard,StartTM"),a(b,"_showingKeyboard"),i(g.profilerString+"_showingKeyboard,StopTM")},_inputPaneHiding:function(b){i(g.profilerString+"_hidingKeyboard,StartTM"),a(b,"_hidingKeyboard"),i(g.profilerString+"_hidingKeyboard,StopTM")},_documentScroll:function(b){i(g.profilerString+"_checkScrollPosition,StartTM"),a(b,"_checkScrollPosition"),i(g.profilerString+"_checkScrollPosition,StopTM")},_windowResized:function(b){i(g.profilerString+"_baseResize,StartTM"),a(b,"_baseResize"),i(g.profilerString+"_baseResize,StopTM")},_toggleListeners:function(a){var d;if(this._currentState!==a){if(a===g.states.on?d="addEventListener":a===g.states.off&&(d="removeEventListener"),c.Windows.UI.ViewManagement.InputPane){var e=c.Windows.UI.ViewManagement.InputPane.getForCurrentView();e[d]("showing",this._inputPaneShowing,!1),e[d]("hiding",this._inputPaneHiding,!1),b.document[d]("scroll",this._documentScroll,!1)}b.addEventListener("resize",this._windowResized,!1),this._currentState=a}}},{profilerString:{get:function(){return"WinJS.UI._Overlay Global Listener:"}},states:{get:function(){return{off:0,on:1}}}}),j={get duplicateConstruction(){return"Invalid argument: Controls may only be instantiated one time for each DOM element"},get mustContainCommands(){return"Invalid HTML: AppBars/Menus must contain only AppBarCommands/MenuCommands"},get closeOverlay(){return h._getWinJSString("ui/closeOverlay").value}},l=d.Class.define(function(a,b){this._baseOverlayConstructor(a,b)},{_baseOverlayConstructor:function(a,c){if(this._disposed=!1,a||(a=b.document.createElement("div")),a.winControl)throw new f("WinJS.UI._Overlay.DuplicateConstruction",j.duplicateConstruction);this._element||(this._element=a),this._element.hasAttribute("tabIndex")||(this._element.tabIndex=-1),this._sticky=!1,this._doNext="",this._element.style.visibility="hidden",this._element.style.opacity=0,a.winControl=this,q.addClass(this._element,s.overlayClass),q.addClass(this._element,"win-disposable");var d=this._element.getAttribute("unselectable");null!==d&&void 0!==d||this._element.setAttribute("unselectable","on"),this._currentAnimateIn=this._baseAnimateIn,this._currentAnimateOut=this._baseAnimateOut,this._animationPromise=n.as(),this._queuedToShow=[],this._queuedToHide=[],this._queuedCommandAnimation=!1,c&&p.setOptions(this,c),l._globalEventListeners.initialize()},element:{get:function(){return this._element}},dispose:function(){this._disposed||(this._disposed=!0,this._dispose())},_dispose:function(){},_show:function(){this._baseShow()},_hide:function(){this._baseHide()},hidden:{get:function(){return"hidden"===this._element.style.visibility||"hiding"===this._element.winAnimating||"hide"===this._doNext},set:function(a){var b=this.hidden;!a&&b?this.show():a&&!b&&this.hide()}},addEventListener:function(a,b,c){return this._element.addEventListener(a,b,c)},removeEventListener:function(a,b,c){return this._element.removeEventListener(a,b,c)},_baseShow:function(){if(this._animating||this._needToHandleHidingKeyboard)return this._doNext="show",!1;if("visible"!==this._element.style.visibility){this._element.winAnimating="showing",this._element.style.display="",this._element.style.visibility="hidden",this._queuedCommandAnimation&&(this._showAndHideFast(this._queuedToShow,this._queuedToHide),this._queuedToShow=[],this._queuedToHide=[]),this._beforeShow(),this._sendEvent(l.beforeShow),this._ensurePosition();var a=this;return this._animationPromise=this._currentAnimateIn().then(function(){a._baseEndShow()},function(){a._baseEndShow()}),!0}return!1},_beforeShow:function(){},_ensurePosition:function(){},_baseEndShow:function(){this._disposed||(this._element.setAttribute("aria-hidden","false"),this._element.winAnimating="","show"===this._doNext&&(this._doNext=""),this._sendEvent(l.afterShow),this._writeProfilerMark("show,StopTM"),o.schedule(this._checkDoNext,o.Priority.normal,this,"WinJS.UI._Overlay._checkDoNext"))},_baseHide:function(){if(this._animating)return this._doNext="hide",!1;if(this._needToHandleHidingKeyboard&&(this._element.style.visibility=""),"hidden"!==this._element.style.visibility){if(this._element.winAnimating="hiding",this._element.setAttribute("aria-hidden","true"),this._sendEvent(l.beforeHide),""===this._element.style.visibility)this._element.style.opacity=0,this._baseEndHide();else{var a=this;this._animationPromise=this._currentAnimateOut().then(function(){a._baseEndHide()},function(){a._baseEndHide()})}return!0}return!1},_baseEndHide:function(){this._disposed||(this._beforeEndHide(),this._element.style.visibility="hidden",this._element.style.display="none",this._element.winAnimating="",this._queuedCommandAnimation&&(this._showAndHideFast(this._queuedToShow,this._queuedToHide),this._queuedToShow=[],this._queuedToHide=[]),"hide"===this._doNext&&(this._doNext=""),this._afterHide(),this._sendEvent(l.afterHide),this._writeProfilerMark("hide,StopTM"),o.schedule(this._checkDoNext,o.Priority.normal,this,"WinJS.UI._Overlay._checkDoNext"))},_beforeEndHide:function(){},_afterHide:function(){},_checkDoNext:function(){this._animating||this._needToHandleHidingKeyboard||this._disposed||("hide"===this._doNext?(this._hide(),this._doNext=""):this._queuedCommandAnimation?this._showAndHideQueue():"show"===this._doNext&&(this._show(),this._doNext=""))},_baseAnimateIn:function(){return this._element.style.opacity=0,this._element.style.visibility="visible",q._getComputedStyle(this._element,null).opacity,k.fadeIn(this._element)},_baseAnimateOut:function(){return this._element.style.opacity=1,q._getComputedStyle(this._element,null).opacity,k.fadeOut(this._element)},_animating:{get:function(){return!!this._element.winAnimating}},_sendEvent:function(a,c){if(!this._disposed){var d=b.document.createEvent("CustomEvent");d.initEvent(a,!0,!0,c||{}),this._element.dispatchEvent(d)}},_showCommands:function(a,b){var c=this._resolveCommands(a);this._showAndHideCommands(c.commands,[],b)},_hideCommands:function(a,b){var c=this._resolveCommands(a);this._showAndHideCommands([],c.commands,b)},_showOnlyCommands:function(a,b){var c=this._resolveCommands(a);this._showAndHideCommands(c.commands,c.others,b)},_showAndHideCommands:function(a,b,c){c||this.hidden&&!this._animating?(this._showAndHideFast(a,b),this._removeFromQueue(a,this._queuedToShow),this._removeFromQueue(b,this._queuedToHide)):(this._updateAnimateQueue(a,this._queuedToShow,this._queuedToHide),this._updateAnimateQueue(b,this._queuedToHide,this._queuedToShow))},_removeFromQueue:function(a,b){var c;for(c=0;c<a.length;c++){var d;for(d=0;d<b.length;d++)if(b[d]===a[c]){b.splice(d,1);break}}},_updateAnimateQueue:function(a,b,c){if(!this._disposed){var d;for(d=0;d<a.length;d++){var e;for(e=0;e<b.length&&b[e]!==a[d];e++);for(e===b.length&&(b[e]=a[d]),e=0;e<c.length;e++)if(c[e]===a[d]){c.splice(e,1);break}}this._queuedCommandAnimation||(this._animating||o.schedule(this._checkDoNext,o.Priority.normal,this,"WinJS.UI._Overlay._checkDoNext"),this._queuedCommandAnimation=!0)}},_showAndHideFast:function(a,b){var c,d;for(c=0;c<a.length;c++)(d=a[c])&&d.style&&(d.style.visibility="",d.style.display="");for(c=0;c<b.length;c++)(d=b[c])&&d.style&&(d.style.visibility="hidden",d.style.display="none");this._commandsUpdated()},_showAndHideQueue:function(){if(this._queuedCommandAnimation=!1,this.hidden)this._showAndHideFast(this._queuedToShow,this._queuedToHide),o.schedule(this._checkDoNext,o.Priority.normal,this,"WinJS.UI._Overlay._checkDoNext");else{var a,c=this._queuedToShow,d=this._queuedToHide,e=this._findSiblings(c.concat(d));for(a=0;a<c.length;a++)c[a]&&c[a].style&&b.document.body.contains(c[a])?"hidden"!==c[a].style.visibility&&"0"!==c[a].style.opacity&&(e.push(c[a]),c.splice(a,1),a--):(c.splice(a,1),a--);for(a=0;a<d.length;a++)d[a]&&d[a].style&&b.document.body.contains(d[a])&&"hidden"!==d[a].style.visibility&&"0"!==d[a].style.opacity||(d.splice(a,1),a--);var f=this._baseBeginAnimateCommands(c,d,e),g=this;f?f.done(function(){g._baseEndAnimateCommands(d)},function(){g._baseEndAnimateCommands(d)}):o.schedule(function(){g._baseEndAnimateCommands([])},o.Priority.normal,null,"WinJS.UI._Overlay._endAnimateCommandsWithoutAnimation")}this._queuedToShow=[],this._queuedToHide=[]},_baseBeginAnimateCommands:function(a,b,c){this._beginAnimateCommands(a,b,this._getVisibleCommands(c));var d=null,e=null;b.length>0&&(e=k.createDeleteFromListAnimation(b,0===a.length?c:void 0)),a.length>0&&(d=k.createAddToListAnimation(a,c));for(var f=0,g=b.length;f<g;f++){var h=b[f].getBoundingClientRect(),i=q._getComputedStyle(b[f]);b[f].style.top=h.top-parseFloat(i.marginTop)+"px",b[f].style.left=h.left-parseFloat(i.marginLeft)+"px",b[f].style.opacity=0,b[f].style.position="fixed"}this._element.winAnimating="rearranging";var j=null;for(e&&(j=e.execute()),f=0;f<a.length;f++)a[f].style.visibility="",a[f].style.display="",a[f].style.opacity=1;if(d){var l=d.execute();j=j?n.join([j,l]):l}return j},_beginAnimateCommands:function(){},_getVisibleCommands:function(a){var b,c=a,d=[];c||(c=this.element.querySelectorAll(".win-command"));for(var e=0,f=c.length;e<f;e++)b=c[e].winControl||c[e],b.hidden||d.push(b);return d},_baseEndAnimateCommands:function(a){if(!this._disposed){var b;for(b=0;b<a.length;b++)a[b].style.position="",a[b].style.top="",a[b].style.left="",a[b].getBoundingClientRect(),a[b].style.visibility="hidden",a[b].style.display="none",a[b].style.opacity=1;this._element.winAnimating="",this._endAnimateCommands(),this._checkDoNext()}},_endAnimateCommands:function(){},_resolveCommands:function(a){a=e(a);var b={};b.commands=[],b.others=[];var c,d,f=this.element.querySelectorAll(".win-command");for(c=0;c<f.length;c++){var g=!1;for(d=0;d<a.length;d++)if(a[d]===f[c]){b.commands.push(f[c]),a.splice(d,1),g=!0;break}g||b.others.push(f[c])}return b},_findSiblings:function(a){var b,c,d=[],e=this.element.querySelectorAll(".win-command");for(b=0;b<e.length;b++){var f=!1;for(c=0;c<a.length;c++)if(a[c]===e[b]){a.splice(c,1),f=!0;break}f||d.push(e[b])}return d},_baseResize:function(a){this._resize(a)},_hideOrDismiss:function(){var a=this._element;a&&q.hasClass(a,s.settingsFlyoutClass)?this._dismiss():a&&q.hasClass(a,s.appBarClass)?this.close():this.hide()},_resize:function(){},_commandsUpdated:function(){},_checkScrollPosition:function(){},_showingKeyboard:function(){},_hidingKeyboard:function(){},_verifyCommandsOnly:function(a,b){for(var c=a.children,d=new Array(c.length),e=0;e<c.length;e++){if(!q.hasClass(c[e],"win-command")&&c[e].getAttribute("data-win-control")!==b)throw new f("WinJS.UI._Overlay.MustContainCommands",j.mustContainCommands);m.processAll(c[e]),d[e]=c[e].winControl}return d},_focusOnLastFocusableElementOrThis:function(){this._focusOnLastFocusableElement()||l._trySetActive(this._element)},_focusOnLastFocusableElement:function(){if(this._element.firstElementChild){var a=this._element.firstElementChild.tabIndex,c=this._element.lastElementChild.tabIndex;this._element.firstElementChild.tabIndex=-1,this._element.lastElementChild.tabIndex=-1;var d=q._focusLastFocusableElement(this._element);return d&&l._trySelect(b.document.activeElement),this._element.firstElementChild.tabIndex=a,this._element.lastElementChild.tabIndex=c,d}return!1},_focusOnFirstFocusableElementOrThis:function(){this._focusOnFirstFocusableElement()||l._trySetActive(this._element)},_focusOnFirstFocusableElement:function(a,c){if(this._element.firstElementChild){var d=this._element.firstElementChild.tabIndex,e=this._element.lastElementChild.tabIndex;this._element.firstElementChild.tabIndex=-1,this._element.lastElementChild.tabIndex=-1;var f=q._focusFirstFocusableElement(this._element,a,c);return f&&l._trySelect(b.document.activeElement),this._element.firstElementChild.tabIndex=d,this._element.lastElementChild.tabIndex=e,f}return!1},_writeProfilerMark:function(a){i("WinJS.UI._Overlay:"+this._id+":"+a)}},{_isFlyoutVisible:function(){for(var a=b.document.querySelectorAll("."+s.flyoutClass),c=0;c<a.length;c++){var d=a[c].winControl;if(d&&!d.hidden)return!0}return!1},_trySetActive:function(a,c){return!!(a&&b.document.body&&b.document.body.contains(a))&&(!!q._setActive(a,c)&&a===b.document.activeElement)},_trySelect:function(a){try{a&&a.select&&a.select()}catch(a){}},_sizeOfDocument:function(){return{width:b.document.documentElement.offsetWidth,height:b.document.documentElement.offsetHeight}},_getParentControlUsingClassName:function(a,c){for(;a&&a!==b.document.body;){if(q.hasClass(a,c))return a.winControl;a=a.parentNode}return null},_globalEventListeners:new g,_hideAppBars:function(a,b){var c=a.map(function(a){return a.close(),a._animationPromise});return n.join(c)},_showAppBars:function(a,b){var c=a.map(function(a){return a._show(),a._animationPromise});return n.join(c)},_keyboardInfo:r._KeyboardInfo,_scrollTimeout:r._KeyboardInfo._scrollTimeout,beforeShow:"beforeshow",beforeHide:"beforehide",afterShow:"aftershow",afterHide:"afterhide",commonstrings:{get cannotChangeCommandsWhenVisible(){return"Invalid argument: You must call hide() before changing {0} commands"},get cannotChangeHiddenProperty(){return"Unable to set hidden property while parent {0} is visible."}}});return d.Class.mix(l,p.DOMEventMixin),l})})}),d("WinJS/Controls/Flyout",["exports","../Core/_Global","../Core/_Base","../Core/_BaseUtils","../Core/_ErrorFromName","../Core/_Events","../Core/_Log","../Core/_Resources","../Core/_WriteProfilerMark","../Animations","../_Signal","../_LightDismissService","../Utilities/_Dispose","../Utilities/_ElementUtilities","../Utilities/_KeyboardBehavior","../Utilities/_Hoverable","./_LegacyAppBar/_Constants","./Flyout/_Overlay"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){"use strict";c.Namespace._moduleDefine(a,"WinJS.UI",{Flyout:c.Namespace._lazy(function(){function a(a,b){return n.convertToPixels(a,n._getComputedStyle(a,null)[b])}function p(b){return{marginTop:a(b,"marginTop"),marginBottom:a(b,"marginBottom"),marginLeft:a(b,"marginLeft"),marginRight:a(b,"marginRight"),totalWidth:n.getTotalWidth(b),totalHeight:n.getTotalHeight(b),contentWidth:n.getContentWidth(b),contentHeight:n.getContentHeight(b)}}var s=n.Key,t={get ariaLabel(){return h._getWinJSString("ui/flyoutAriaLabel").value},get noAnchor(){return"Invalid argument: Flyout anchor element not found in DOM."},get badPlacement(){return"Invalid argument: Flyout placement should be 'top' (default), 'bottom', 'left', 'right', 'auto', 'autohorizontal', or 'autovertical'."},get badAlignment(){return"Invalid argument: Flyout alignment should be 'center' (default), 'left', or 'right'."},get noCoordinates(){return"Invalid argument: Flyout coordinates must contain a valid x,y pair."}},u=f._createEventProperty,v=c.Class.define(function(a){this._onLightDismiss=a,this._currentlyFocusedClient=null,this._clients=[]},{shown:function(a){a._focusable=!0,-1===this._clients.indexOf(a)&&(this._clients.push(a),a.onShow(this),l.isShown(this)?(l.updated(this),this._activateTopFocusableClientIfNeeded()):l.shown(this))},hiding:function(a){var b=this._clients.indexOf(a);-1!==b&&(this._clients[b]._focusable=!1,this._activateTopFocusableClientIfNeeded())},hidden:function(a){var b=this._clients.indexOf(a);-1!==b&&(this._clients.splice(b,1),a.setZIndex(""),a.onHide(),0===this._clients.length?l.hidden(this):(l.updated(this),this._activateTopFocusableClientIfNeeded()))},keyDown:function(a,b){l.keyDown(this,b)},keyUp:function(a,b){l.keyUp(this,b)},keyPress:function(a,b){l.keyPress(this,b)},clients:{get:function(){return this._clients}},_clientForElement:function(a){for(var b=this._clients.length-1;b>=0;b--)if(this._clients[b].containsElement(a))return this._clients[b];return null},_focusableClientForElement:function(a){for(var b=this._clients.length-1;b>=0;b--)if(this._clients[b]._focusable&&this._clients[b].containsElement(a))return this._clients[b];return null},_getTopmostFocusableClient:function(){for(var a=this._clients.length-1;a>=0;a--){var b=this._clients[a];if(b&&b._focusable)return b}return null},_activateTopFocusableClientIfNeeded:function(){var a=this._getTopmostFocusableClient();if(a&&l.isTopmost(this)){var b=!o._keyboardSeenLast;a.onTakeFocus(b)}},setZIndex:function(a){this._clients.forEach(function(b,c){b.setZIndex(a+c)},this)},getZIndexCount:function(){return this._clients.length},containsElement:function(a){return!!this._clientForElement(a)},onTakeFocus:function(a){var c=this._focusableClientForElement(b.document.activeElement);!c&&-1!==this._clients.indexOf(this._currentlyFocusedClient)&&this._currentlyFocusedClient._focusable&&(c=this._currentlyFocusedClient),c||(c=this._getTopmostFocusableClient()),this._currentlyFocusedClient=c,c&&c.onTakeFocus(a)},onFocus:function(a){this._currentlyFocusedClient=this._clientForElement(a),this._currentlyFocusedClient&&this._currentlyFocusedClient.onFocus(a)},onShow:function(a){},onHide:function(){this._currentlyFocusedClient=null},onKeyInStack:function(a){var b=this._clients.indexOf(this._currentlyFocusedClient);if(-1!==b)for(var c=this._clients.slice(0,b+1),d=c.length-1;d>=0&&!a.propagationStopped;d--)c[d]._focusable&&c[d].onKeyInStack(a)},onShouldLightDismiss:function(a){return l.DismissalPolicies.light(a)},onLightDismiss:function(a){this._onLightDismiss(a)}}),w=c.Class.define(function(){var a=this;this._dismissableLayer=new v(function(b){b.reason===l.LightDismissalReasons.escape?a.collapseFlyout(a.getAt(a.length-1)):a.collapseAll()}),this._cascadingStack=[],this._handleKeyDownInCascade_bound=this._handleKeyDownInCascade.bind(this),this._inputType=null},{appendFlyout:function(a){if(g.log&&this.reentrancyLock&&g.log("_CascadeManager is attempting to append a Flyout through reentrancy.","winjs _CascadeManager","error"),this.indexOf(a)<0){var b=this.collapseAll;if(a._positionRequest instanceof y.AnchorPositioning){var c=this.indexOfElement(a._positionRequest.anchor);c>=0&&(b=function(){this.collapseFlyout(this.getAt(c+1))})}b.call(this),a.element.addEventListener("keydown",this._handleKeyDownInCascade_bound,!1),this._cascadingStack.push(a)}},collapseFlyout:function(a){if(!this.reentrancyLock&&a&&this.indexOf(a)>=0){this.reentrancyLock=!0;var b=new k;this.unlocked=b.promise;for(var c;this.length&&a!==c;)c=this._cascadingStack.pop(),c.element.removeEventListener("keydown",this._handleKeyDownInCascade_bound,!1),c._hide();0===this._cascadingStack.length&&(this._inputType=null),this.reentrancyLock=!1,this.unlocked=null,b.complete()}},flyoutShown:function(a){this._dismissableLayer.shown(a._dismissable)},flyoutHiding:function(a){this._dismissableLayer.hiding(a._dismissable)},flyoutHidden:function(a){this._dismissableLayer.hidden(a._dismissable)},collapseAll:function(){var a=this.getAt(0);a&&this.collapseFlyout(a)},indexOf:function(a){return this._cascadingStack.indexOf(a)},indexOfElement:function(a){for(var b=-1,c=0,d=this.length;c<d;c++){if(this.getAt(c).element.contains(a)){b=c;break}}return b},length:{get:function(){return this._cascadingStack.length}},getAt:function(a){return this._cascadingStack[a]},handleFocusIntoFlyout:function(a){var b=this.indexOfElement(a.target);if(b>=0){var c=this.getAt(b+1);this.collapseFlyout(c)}},inputType:{get:function(){return this._inputType||(this._inputType=o._lastInputType),this._inputType}},dismissableLayer:{get:function(){return this._dismissableLayer}},_handleKeyDownInCascade:function(a){var b="rtl"===n._getComputedStyle(a.target).direction,c=b?s.rightArrow:s.leftArrow,d=a.target;if(a.keyCode===c){var e=this.indexOfElement(d);if(e>=1){var f=this.getAt(e);this.collapseFlyout(f),a.preventDefault()}}else a.keyCode!==s.alt&&a.keyCode!==s.F10||this.collapseAll()}}),x={top:{top:"50px",left:"0px",keyframe:"WinJS-showFlyoutTop"},bottom:{top:"-50px",left:"0px",keyframe:"WinJS-showFlyoutBottom"},left:{top:"0px",left:"50px",keyframe:"WinJS-showFlyoutLeft"},right:{top:"0px",left:"-50px",keyframe:"WinJS-showFlyoutRight"}},y={AnchorPositioning:c.Class.define(function(a,c,d){if("string"==typeof a?a=b.document.getElementById(a):a&&a.element&&(a=a.element),!a)throw new e("WinJS.UI.Flyout.NoAnchor",t.noAnchor);this.anchor=a,this.placement=c,this.alignment=d},{getTopLeft:function(a,b){function c(a){h(a)?(y=f(a)-w,s=r._Overlay._keyboardInfo._visibleDocTop,v=x.top):(y=g(a)-w,s=q.pinToBottomEdge,v=x.bottom),u=!0}function d(a,b){return(r._Overlay._keyboardInfo._visibleDocHeight-a.height)/2>=b.totalHeight}function f(a){return a.top-r._Overlay._keyboardInfo._visibleDocTop}function g(a){return r._Overlay._keyboardInfo._visibleDocBottom-a.bottom}function h(a){return f(a)>g(a)}function i(a,b){return s=a-b.totalHeight,v=x.top,s>=r._Overlay._keyboardInfo._visibleDocTop&&s+b.totalHeight<=r._Overlay._keyboardInfo._visibleDocBottom}function j(a,b){return s=a,v=x.bottom,s>=r._Overlay._keyboardInfo._visibleDocTop&&s+b.totalHeight<=r._Overlay._keyboardInfo._visibleDocBottom}function k(a,b){return p=a-b.totalWidth,v=x.left,p>=0&&p+b.totalWidth<=r._Overlay._keyboardInfo._visualViewportWidth}function l(a,b){return p=a,v=x.right,p>=0&&p+b.totalWidth<=r._Overlay._keyboardInfo._visualViewportWidth}function m(a,b){s=a.top+a.height/2-b.totalHeight/2,s<r._Overlay._keyboardInfo._visibleDocTop?s=r._Overlay._keyboardInfo._visibleDocTop:s+b.totalHeight>=r._Overlay._keyboardInfo._visibleDocBottom&&(s=q.pinToBottomEdge)}function n(a,b,c){if("center"===c)p=a.left+a.width/2-b.totalWidth/2;else if("left"===c)p=a.left;else{if("right"!==c)throw new e("WinJS.UI.Flyout.BadAlignment",t.badAlignment);p=a.right-b.totalWidth}p<0?p=0:p+b.totalWidth>=r._Overlay._keyboardInfo._visualViewportWidth&&(p=q.pinToRightEdge)}var o;try{o=this.anchor.getBoundingClientRect()}catch(a){throw new e("WinJS.UI.Flyout.NoAnchor",t.noAnchor)}var p,s,u,v,w=a.totalHeight-a.contentHeight,y=a.contentHeight,z=this.alignment;switch(this.placement){case"top":i(o.top,a)||(s=r._Overlay._keyboardInfo._visibleDocTop,u=!0,y=f(o)-w),n(o,a,z);break;case"bottom":j(o.bottom,a)||(s=q.pinToBottomEdge,u=!0,y=g(o)-w),n(o,a,z);break;case"left":k(o.left,a)||(p=0),m(o,a);break;case"right":l(o.right,a)||(p=q.pinToRightEdge),m(o,a);break;case"autovertical":i(o.top,a)||j(o.bottom,a)||c(o),n(o,a,z);break;case"autohorizontal":k(o.left,a)||l(o.right,a)||(p=q.pinToRightEdge),m(o,a);break;case"auto":d(o,a)?(i(o.top,a)||j(o.bottom,a),n(o,a,z)):k(o.left,a)||l(o.right,a)?m(o,a):(c(o),n(o,a,z));break;case"_cascade":j(o.top-a.marginTop,a)||i(o.bottom+a.marginBottom,a)||m(o,a);var A=3,B=o.right-a.marginLeft-A,C=o.left+a.marginRight+A;b?k(C,a)||l(B,a)||(p=0,v=x.left):l(B,a)||k(C,a)||(p=q.pinToRightEdge,v=x.right);break;default:throw new e("WinJS.UI.Flyout.BadPlacement",t.badPlacement)}return{left:p,top:s,animOffset:v,doesScroll:u,contentHeight:y,verticalMarginBorderPadding:w}}}),CoordinatePositioning:c.Class.define(function(a){if(a.clientX===+a.clientX&&a.clientY===+a.clientY){var b=a;a={x:b.clientX,y:b.clientY}}else if(a.x!==+a.x||a.y!==+a.y)throw new e("WinJS.UI.Flyout.NoCoordinates",t.noCoordinates);this.coordinates=a},{getTopLeft:function(a,b){var c=this.coordinates,d=a.totalWidth-a.marginLeft-a.marginRight,e=b?d:0,f=a.totalHeight-a.contentHeight,g=a.contentHeight,h=c.y-a.marginTop,i=c.x-a.marginLeft-e;return h<0?h=0:h+a.totalHeight>r._Overlay._keyboardInfo._visibleDocBottom&&(h=q.pinToBottomEdge),i<0?i=0:i+a.totalWidth>r._Overlay._keyboardInfo._visualViewportWidth&&(i=q.pinToRightEdge),{left:i,top:h,verticalMarginBorderPadding:f,contentHeight:g,doesScroll:!1,animOffset:x.top}}})},z=c.Class.derive(r._Overlay,function(a,c){c=c||{},this._element=a||b.document.createElement("div"),this._id=this._element.id||n._uniqueID(this._element),this._writeProfilerMark("constructor,StartTM"),this._baseFlyoutConstructor(this._element,c);var d=this._element.getElementsByTagName("*");return this._addFirstDiv().tabIndex=n._getLowestTabIndexInList(d),this._addFinalDiv().tabIndex=n._getHighestTabIndexInList(d),this._element.addEventListener("keydown",this._handleKeyDown,!0),this._writeProfilerMark("constructor,StopTM"),this},{_lastMaxHeight:null,_baseFlyoutConstructor:function(a,b){this._placement="auto",this._alignment="center",this._baseOverlayConstructor(a,b),this._element.style.visibilty="hidden",this._element.style.display="none",n.addClass(this._element,q.flyoutClass);var c=this;this._dismissable=new l.LightDismissableElement({element:this._element,tabIndex:this._element.hasAttribute("tabIndex")?this._element.tabIndex:-1,onLightDismiss:function(){c.hide()},onTakeFocus:function(a){c._dismissable.restoreFocus()||(n.hasClass(c.element,q.menuClass)?r._Overlay._trySetActive(c._element):c._focusOnFirstFocusableElementOrThis())}});var d=this._element.getAttribute("role");null!==d&&""!==d&&void 0!==d||(n.hasClass(this._element,q.menuClass)?this._element.setAttribute("role","menu"):this._element.setAttribute("role","dialog"));var e=this._element.getAttribute("aria-label");null!==e&&""!==e&&void 0!==e||this._element.setAttribute("aria-label",t.ariaLabel),this._currentAnimateIn=this._flyoutAnimateIn,this._currentAnimateOut=this._flyoutAnimateOut,n._addEventListener(this.element,"focusin",this._handleFocusIn.bind(this),!1)},anchor:{get:function(){return this._anchor},set:function(a){this._anchor=a}},placement:{get:function(){return this._placement},set:function(a){if("top"!==a&&"bottom"!==a&&"left"!==a&&"right"!==a&&"auto"!==a&&"autohorizontal"!==a&&"autovertical"!==a)throw new e("WinJS.UI.Flyout.BadPlacement",t.badPlacement);this._placement=a}},alignment:{get:function(){return this._alignment},set:function(a){if("right"!==a&&"left"!==a&&"center"!==a)throw new e("WinJS.UI.Flyout.BadAlignment",t.badAlignment);this._alignment=a}},disabled:{get:function(){return!!this._element.disabled},set:function(a){a=!!a,!!this._element.disabled!==a&&(this._element.disabled=a,!this.hidden&&this._element.disabled&&this.hide())}},onbeforeshow:u(r._Overlay.beforeShow),onaftershow:u(r._Overlay.afterShow),onbeforehide:u(r._Overlay.beforeHide),onafterhide:u(r._Overlay.afterHide),_dispose:function(){m.disposeSubTree(this.element),this._hide(),z._cascadeManager.flyoutHidden(this),this.anchor=null},show:function(a,b,c){this._writeProfilerMark("show,StartTM"),this._positionRequest=new y.AnchorPositioning(a||this._anchor,b||this._placement,c||this._alignment),this._show()},_show:function(){this._baseFlyoutShow()},showAt:function(a){this._writeProfilerMark("show,StartTM"),this._positionRequest=new y.CoordinatePositioning(a),this._show()},hide:function(){this._writeProfilerMark("hide,StartTM"),this._hide()},_hide:function(){z._cascadeManager.collapseFlyout(this),this._baseHide()&&z._cascadeManager.flyoutHiding(this)},_beforeEndHide:function(){z._cascadeManager.flyoutHidden(this)},_baseFlyoutShow:function(){if(!this.disabled&&!this._disposed)if(z._cascadeManager.appendFlyout(this),this._element.winAnimating)this._doNext="show";else if(z._cascadeManager.reentrancyLock){this._doNext="show";var a=this;z._cascadeManager.unlocked.then(function(){a._checkDoNext()})}else if(this._baseShow()){if(!n.hasClass(this.element,"win-menu")){var b=this._element.getElementsByTagName("*"),c=this.element.querySelectorAll(".win-first");this.element.children.length&&!n.hasClass(this.element.children[0],q.firstDivClass)&&(c&&c.length>0&&c.item(0).parentNode.removeChild(c.item(0)),c=this._addFirstDiv()),c.tabIndex=n._getLowestTabIndexInList(b);var d=this.element.querySelectorAll(".win-final");n.hasClass(this.element.children[this.element.children.length-1],q.finalDivClass)||(d&&d.length>0&&d.item(0).parentNode.removeChild(d.item(0)),d=this._addFinalDiv()),d.tabIndex=n._getHighestTabIndexInList(b)}z._cascadeManager.flyoutShown(this)}},_lightDismiss:function(){z._cascadeManager.collapseAll()},_ensurePosition:function(){this._keyboardMovedUs=!1,this._clearAdjustedStyles(),this._setAlignment();var a=p(this._element),b="rtl"===n._getComputedStyle(this._element).direction;this._currentPosition=this._positionRequest.getTopLeft(a,b),this._currentPosition.top<0?(this._element.style.bottom=r._Overlay._keyboardInfo._visibleDocBottomOffset+"px",this._element.style.top="auto"):(this._element.style.top=this._currentPosition.top+"px",this._element.style.bottom="auto"),this._currentPosition.left<0?(this._element.style.right="0px",this._element.style.left="auto"):(this._element.style.left=this._currentPosition.left+"px",this._element.style.right="auto"),this._currentPosition.doesScroll&&(n.addClass(this._element,q.scrollsClass),this._lastMaxHeight=this._element.style.maxHeight,this._element.style.maxHeight=this._currentPosition.contentHeight+"px"),r._Overlay._keyboardInfo._visible&&(this._checkKeyboardFit(),this._keyboardMovedUs&&this._adjustForKeyboard())},_clearAdjustedStyles:function(){this._element.style.top="0px",this._element.style.bottom="auto",this._element.style.left="0px",this._element.style.right="auto",n.removeClass(this._element,q.scrollsClass),null!==this._lastMaxHeight&&(this._element.style.maxHeight=this._lastMaxHeight,this._lastMaxHeight=null),n.removeClass(this._element,"win-rightalign"),n.removeClass(this._element,"win-leftalign")},_setAlignment:function(){switch(this._positionRequest.alignment){case"left":n.addClass(this._element,"win-leftalign");break;case"right":n.addClass(this._element,"win-rightalign")}},_showingKeyboard:function(a){if(!this.hidden&&(a.ensuredFocusedElementInView=!0,this._checkKeyboardFit(),this._keyboardMovedUs)){this._element.style.opacity=0;var c=this;b.setTimeout(function(){c._adjustForKeyboard(),c._baseAnimateIn()},r._Overlay._keyboardInfo._animationShowLength)}},_resize:function(){if((!this.hidden||this._animating)&&this._needToHandleHidingKeyboard){var a=this;d._setImmediate(function(){a.hidden&&!a._animating||a._ensurePosition()}),this._needToHandleHidingKeyboard=!1}},_checkKeyboardFit:function(){var a=!1,b=r._Overlay._keyboardInfo._visibleDocHeight,c=this._currentPosition.contentHeight+this._currentPosition.verticalMarginBorderPadding;c>b?(a=!0,this._currentPosition.top=q.pinToBottomEdge,this._currentPosition.contentHeight=b-this._currentPosition.verticalMarginBorderPadding,this._currentPosition.doesScroll=!0):this._currentPosition.top>=0&&this._currentPosition.top+c>r._Overlay._keyboardInfo._visibleDocBottom?(this._currentPosition.top=q.pinToBottomEdge,a=!0):this._currentPosition.top===q.pinToBottomEdge&&(a=!0),this._keyboardMovedUs=a},_adjustForKeyboard:function(){this._currentPosition.doesScroll&&(this._lastMaxHeight||(n.addClass(this._element,q.scrollsClass),this._lastMaxHeight=this._element.style.maxHeight),this._element.style.maxHeight=this._currentPosition.contentHeight+"px"),this._checkScrollPosition(!0)},_hidingKeyboard:function(){if(!this.hidden||this._animating)if(r._Overlay._keyboardInfo._isResized)this._needToHandleHidingKeyboard=!0;else{var a=this;d._setImmediate(function(){a.hidden&&!a._animating||a._ensurePosition()})}},_checkScrollPosition:function(a){this.hidden&&!a||void 0!==this._currentPosition&&(this._currentPosition.top<0?(this._element.style.bottom=r._Overlay._keyboardInfo._visibleDocBottomOffset+"px",this._element.style.top="auto"):(this._element.style.top=this._currentPosition.top+"px",this._element.style.bottom="auto"))},_flyoutAnimateIn:function(){return this._keyboardMovedUs?this._baseAnimateIn():(this._element.style.opacity=1,this._element.style.visibility="visible",j.showPopup(this._element,void 0!==this._currentPosition?this._currentPosition.animOffset:0))},_flyoutAnimateOut:function(){return this._keyboardMovedUs?this._baseAnimateOut():(this._element.style.opacity=0,j.hidePopup(this._element,void 0!==this._currentPosition?this._currentPosition.animOffset:0))},_hideAllOtherFlyouts:function(a){for(var c=b.document.querySelectorAll("."+q.flyoutClass),d=0;d<c.length;d++){var e=c[d].winControl;e&&!e.hidden&&e!==a&&e.hide()}},_handleKeyDown:function(a){a.keyCode!==s.space&&a.keyCode!==s.enter||this!==b.document.activeElement?!a.shiftKey||a.keyCode!==s.tab||this!==b.document.activeElement||a.altKey||a.ctrlKey||a.metaKey||(a.preventDefault(),a.stopPropagation(),this.winControl._focusOnLastFocusableElementOrThis()):(a.preventDefault(),a.stopPropagation(),this.winControl.hide())},_handleFocusIn:function(a){this.element.contains(a.relatedTarget)||z._cascadeManager.handleFocusIntoFlyout(a)},_addFirstDiv:function(){var a=b.document.createElement("div");a.className=q.firstDivClass,a.style.display="inline",a.setAttribute("role","menuitem"),a.setAttribute("aria-hidden","true"),this._element.children[0]?this._element.insertBefore(a,this._element.children[0]):this._element.appendChild(a);var c=this;return n._addEventListener(a,"focusin",function(){c._focusOnLastFocusableElementOrThis()},!1),a},_addFinalDiv:function(){var a=b.document.createElement("div");a.className=q.finalDivClass,a.style.display="inline",a.setAttribute("role","menuitem"),a.setAttribute("aria-hidden","true"),this._element.appendChild(a);var c=this;return n._addEventListener(a,"focusin",function(){c._focusOnFirstFocusableElementOrThis()},!1),a},_writeProfilerMark:function(a){i("WinJS.UI.Flyout:"+this._id+":"+a)}},{_cascadeManager:new w});return z})})}),d("require-style!less/styles-contentdialog",[],function(){}),d("require-style!less/colors-contentdialog",[],function(){}),d("WinJS/Controls/ContentDialog",["../Application","../Utilities/_Dispose","../_Accents","../Promise","../_Signal","../_LightDismissService","../Core/_BaseUtils","../Core/_Global","../Core/_WinRT","../Core/_Base","../Core/_Events","../Core/_ErrorFromName","../Core/_Resources","../Utilities/_Control","../Utilities/_ElementUtilities","../Utilities/_KeyboardInfo","../Utilities/_Hoverable","../Animations","require-style!less/styles-contentdialog","require-style!less/colors-contentdialog"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){"use strict";c.createAccentRule(".win-contentdialog-dialog",[{name:"outline-color",value:c.ColorTypes.accent}]),j.Namespace.define("WinJS.UI",{ContentDialog:j.Namespace._lazy(function(){function a(a){if(void 0===u){var b=h.document.createElement("div");b.style.position="-ms-device-fixed",u="-ms-device-fixed"===o._getComputedStyle(b).position}return u}function c(a){return d._cancelBlocker(a,function(){a.cancel()})}function i(a){a.ensuredFocusedElementInView=!0,this.dialog._renderForInputPane(a.occludedRect.height)}function m(){this.dialog._clearInputPaneRendering()}function q(){}function s(a,b){a._interruptibleWorkPromises=a._interruptibleWorkPromises||[];var c=new e;a._interruptibleWorkPromises.push(b(a,c.promise)),c.complete()}function t(){(this._interruptibleWorkPromises||[]).forEach(function(a){a.cancel()})}var u,v={get duplicateConstruction(){return"Invalid argument: Controls may only be instantiated one time for each DOM element"},get controlDisposed(){return"Cannot interact with the control after it has been disposed"},get contentDialogAlreadyShowing(){return"Cannot show a ContentDialog if there is already a ContentDialog that is showing"}},w={none:"none",primary:"primary",secondary:"secondary"},x={contentDialog:"win-contentdialog",backgroundOverlay:"win-contentdialog-backgroundoverlay",dialog:"win-contentdialog-dialog",title:"win-contentdialog-title",content:"win-contentdialog-content",commands:"win-contentdialog-commands",primaryCommand:"win-contentdialog-primarycommand",secondaryCommand:"win-contentdialog-secondarycommand",_verticalAlignment:"win-contentdialog-verticalalignment",_scroller:"win-contentdialog-scroller",_column0or1:"win-contentdialog-column0or1",_visible:"win-contentdialog-visible",_tabStop:"win-contentdialog-tabstop",_commandSpacer:"win-contentdialog-commandspacer",_deviceFixedSupported:"win-contentdialog-devicefixedsupported"},y={beforeShow:"beforeshow",afterShow:"aftershow",beforeHide:"beforehide",afterHide:"afterhide"},z={Init:j.Class.define(null,{name:"Init",hidden:!0,enter:function(){var a=this.dialog;a._dismissable=new f.ModalElement({element:a._dom.root,tabIndex:a._dom.root.hasAttribute("tabIndex")?a._dom.root.tabIndex:-1,onLightDismiss:function(){a.hide(w.none)},onTakeFocus:function(b){a._dismissable.restoreFocus()||o._tryFocusOnAnyElement(a._dom.dialog,b)}}),this.dialog._dismissedSignal=null,this.dialog._setState(z.Hidden,!1)},exit:q,show:function(){throw"It's illegal to call show on the Init state"},hide:q,onCommandClicked:q,onInputPaneShown:q,onInputPaneHidden:q}),Hidden:j.Class.define(null,{name:"Hidden",hidden:!0,enter:function(a){a&&this.show()},exit:q,show:function(){var a=this.dialog._dismissedSignal=new e;return this.dialog._setState(z.BeforeShow),a.promise},hide:q,onCommandClicked:q,onInputPaneShown:q,onInputPaneHidden:q}),BeforeShow:j.Class.define(null,{name:"BeforeShow",hidden:!0,enter:function(){s(this,function(a,b){return b.then(function(){return a.dialog._fireBeforeShow()}).then(function(b){return b||a.dialog._cancelDismissalPromise(null),b}).then(function(b){b?a.dialog._setState(z.Showing):a.dialog._setState(z.Hidden,!1)})})},exit:t,show:function(){return d.wrapError(new l("WinJS.UI.ContentDialog.ContentDialogAlreadyShowing",v.contentDialogAlreadyShowing))},hide:q,onCommandClicked:q,onInputPaneShown:q,onInputPaneHidden:q}),Showing:j.Class.define(null,{name:"Showing",hidden:{get:function(){return!!this._pendingHide}},enter:function(){s(this,function(a,b){return b.then(function(){return a._pendingHide=null,o.addClass(a.dialog._dom.root,x._visible),a.dialog._addExternalListeners(),p._KeyboardInfo._visible&&a.dialog._renderForInputPane(),f.shown(a.dialog._dismissable),a.dialog._playEntranceAnimation()}).then(function(){a.dialog._fireEvent(y.afterShow)}).then(function(){a.dialog._setState(z.Shown,a._pendingHide)})})},exit:t,show:function(){if(this._pendingHide){var a=this._pendingHide.dismissalResult;return this._pendingHide=null,this.dialog._resetDismissalPromise(a,new e).promise}return d.wrapError(new l("WinJS.UI.ContentDialog.ContentDialogAlreadyShowing",v.contentDialogAlreadyShowing))},hide:function(a){this._pendingHide={dismissalResult:a}},onCommandClicked:q,onInputPaneShown:i,onInputPaneHidden:m}),Shown:j.Class.define(null,{name:"Shown",hidden:!1,enter:function(a){a&&this.hide(a.dismissalResult)},exit:q,show:function(){return d.wrapError(new l("WinJS.UI.ContentDialog.ContentDialogAlreadyShowing",v.contentDialogAlreadyShowing))},hide:function(a){this.dialog._setState(z.BeforeHide,a)},onCommandClicked:function(a){this.hide(a)},onInputPaneShown:i,onInputPaneHidden:m}),BeforeHide:j.Class.define(null,{name:"BeforeHide",hidden:!1,enter:function(a){s(this,function(b,c){return c.then(function(){return b.dialog._fireBeforeHide(a)}).then(function(c){c?b.dialog._setState(z.Hiding,a):b.dialog._setState(z.Shown,null)})})},exit:t,show:function(){return d.wrapError(new l("WinJS.UI.ContentDialog.ContentDialogAlreadyShowing",v.contentDialogAlreadyShowing))},hide:q,onCommandClicked:q,onInputPaneShown:i,onInputPaneHidden:m}),Hiding:j.Class.define(null,{name:"Hiding",hidden:{get:function(){return!this._showIsPending}},enter:function(a){s(this,function(b,c){return c.then(function(){b._showIsPending=!1,b.dialog._resetDismissalPromise(a,null)}).then(function(){return b.dialog._playExitAnimation()}).then(function(){b.dialog._removeExternalListeners(),f.hidden(b.dialog._dismissable),o.removeClass(b.dialog._dom.root,x._visible),b.dialog._clearInputPaneRendering(),b.dialog._fireAfterHide(a)}).then(function(){b.dialog._setState(z.Hidden,b._showIsPending)})})},exit:t,show:function(){return this._showIsPending?d.wrapError(new l("WinJS.UI.ContentDialog.ContentDialogAlreadyShowing",v.contentDialogAlreadyShowing)):(this._showIsPending=!0,this.dialog._dismissedSignal=new e,this.dialog._dismissedSignal.promise)},hide:function(a){this._showIsPending&&(this._showIsPending=!1,this.dialog._resetDismissalPromise(a,null))},onCommandClicked:q,onInputPaneShown:q,onInputPaneHidden:q}),Disposed:j.Class.define(null,{name:"Disposed",hidden:!0,enter:function(){f.hidden(this.dialog._dismissable),this.dialog._removeExternalListeners(),this.dialog._dismissedSignal&&this.dialog._dismissedSignal.error(new l("WinJS.UI.ContentDialog.ControlDisposed",v.controlDisposed))},exit:q,show:function(){return d.wrapError(new l("WinJS.UI.ContentDialog.ControlDisposed",v.controlDisposed))},hide:q,onCommandClicked:q,onInputPaneShown:q,onInputPaneHidden:q})},A=j.Class.define(function(a,b){if(a&&a.winControl)throw new l("WinJS.UI.ContentDialog.DuplicateConstruction",v.duplicateConstruction);b=b||{},this._onInputPaneShownBound=this._onInputPaneShown.bind(this),this._onInputPaneHiddenBound=this._onInputPaneHidden.bind(this),this._onUpdateInputPaneRenderingBound=this._onUpdateInputPaneRendering.bind(this),this._disposed=!1,this._currentFocus=null,this._rendered={registeredForResize:!1,resizedForInputPane:!1,top:"",bottom:""},this._initializeDom(a||h.document.createElement("div")),this._setState(z.Init),this.title="",this.primaryCommandText="",this.primaryCommandDisabled=!1,this.secondaryCommandText="",this.secondaryCommandDisabled=!1,n.setOptions(this,b)},{element:{get:function(){return this._dom.root}},title:{get:function(){return this._title},set:function(a){a=a||"",this._title!==a&&(this._title=a,this._dom.title.textContent=a,this._dom.title.style.display=a?"":"none")}},primaryCommandText:{get:function(){return this._primaryCommandText},set:function(a){a=a||"",this._primaryCommandText!==a&&(this._primaryCommandText=a,this._dom.commands[0].textContent=a,this._updateCommandsUI())}},secondaryCommandText:{get:function(){return this._secondaryCommandText},set:function(a){a=a||"",this._secondaryCommandText!==a&&(this._secondaryCommandText=a,this._dom.commands[1].textContent=a,this._updateCommandsUI())}},primaryCommandDisabled:{get:function(){return this._primaryCommandDisabled},set:function(a){a=!!a,this._primaryCommandDisabled!==a&&(this._primaryCommandDisabled=a,this._dom.commands[0].disabled=a)}},secondaryCommandDisabled:{get:function(){return this._secondaryCommandDisabled},set:function(a){a=!!a,this._secondaryCommandDisabled!==a&&(this._secondaryCommandDisabled=a,this._dom.commands[1].disabled=a)}},hidden:{get:function(){return this._state.hidden},set:function(a){if(!a&&this._state.hidden){var b=function(){};this.show().done(b,b)}else a&&!this._state.hidden&&this.hide(w.none)}},dispose:function(){this._disposed||(this._setState(z.Disposed),this._disposed=!0,o._resizeNotifier.unsubscribe(this._dom.root,this._onUpdateInputPaneRenderingBound),b._disposeElement(this._dom.content))},show:function(){return this._state.show()},hide:function(a){this._state.hide(void 0===a?w.none:a)},_initializeDom:function(b){var c=h.document.createElement("div");c.className=x.content,o._reparentChildren(b,c),b.winControl=this,o.addClass(b,x.contentDialog),o.addClass(b,x._verticalAlignment),o.addClass(b,"win-disposable"),b.innerHTML='<div class="'+x.backgroundOverlay+'"></div><div class="'+x._tabStop+'"></div><div tabindex="-1" role="dialog" class="'+x.dialog+'"><h2 class="'+x.title+'" role="heading"></h2><div class="'+x._scroller+'"></div><div class="'+x.commands+'"><button type="button" class="'+x._commandSpacer+' win-button"></button><button type="button" class="'+x.primaryCommand+' win-button"></button><button type="button" class="'+x.secondaryCommand+' win-button"></button></div></div><div class="'+x._tabStop+'"></div><div class="'+x._column0or1+'"></div>';var d={};d.root=b,d.backgroundOverlay=d.root.firstElementChild,d.startBodyTab=d.backgroundOverlay.nextElementSibling,d.dialog=d.startBodyTab.nextElementSibling,d.title=d.dialog.firstElementChild,d.scroller=d.title.nextElementSibling,d.commandContainer=d.scroller.nextElementSibling,d.commandSpacer=d.commandContainer.firstElementChild,d.commands=[],d.commands.push(d.commandSpacer.nextElementSibling),d.commands.push(d.commands[0].nextElementSibling),d.endBodyTab=d.dialog.nextElementSibling,d.content=c,this._dom=d,d.scroller.appendChild(d.content),o._ensureId(d.title),o._ensureId(d.startBodyTab),o._ensureId(d.endBodyTab),d.dialog.setAttribute("aria-labelledby",d.title.id),d.startBodyTab.setAttribute("x-ms-aria-flowfrom",d.endBodyTab.id),d.endBodyTab.setAttribute("aria-flowto",d.startBodyTab.id),this._updateTabIndices(),d.root.addEventListener("keydown",this._onKeyDownEnteringElement.bind(this),!0),o._addEventListener(d.root,"pointerdown",this._onPointerDown.bind(this)),o._addEventListener(d.root,"pointerup",this._onPointerUp.bind(this)),d.root.addEventListener("click",this._onClick.bind(this)),o._addEventListener(d.startBodyTab,"focusin",this._onStartBodyTabFocusIn.bind(this)),o._addEventListener(d.endBodyTab,"focusin",this._onEndBodyTabFocusIn.bind(this)),d.commands[0].addEventListener("click",this._onCommandClicked.bind(this,w.primary)),d.commands[1].addEventListener("click",this._onCommandClicked.bind(this,w.secondary)),a()&&o.addClass(d.root,x._deviceFixedSupported)},_updateCommandsUI:function(){this._dom.commands[0].style.display=this.primaryCommandText?"":"none",this._dom.commands[1].style.display=this.secondaryCommandText?"":"none",this._dom.commandSpacer.style.display=this.primaryCommandText&&!this.secondaryCommandText||!this.primaryCommandText&&this.secondaryCommandText?"":"none"},_updateTabIndices:function(){this._updateTabIndicesThrottled||(this._updateTabIndicesThrottled=g._throttledFunction(100,this._updateTabIndicesImpl.bind(this))),this._updateTabIndicesThrottled()},_updateTabIndicesImpl:function(){var a=o._getHighAndLowTabIndices(this._dom.content);this._dom.startBodyTab.tabIndex=a.lowest,this._dom.commands[0].tabIndex=a.highest,this._dom.commands[1].tabIndex=a.highest,this._dom.endBodyTab.tabIndex=a.highest},_elementInDialog:function(a){return this._dom.dialog.contains(a)||a===this._dom.startBodyTab||a===this._dom.endBodyTab},_onCommandClicked:function(a){this._state.onCommandClicked(a)},_onPointerDown:function(a){a.stopPropagation(),this._elementInDialog(a.target)||a.preventDefault()},_onPointerUp:function(a){a.stopPropagation(),this._elementInDialog(a.target)||a.preventDefault()},_onClick:function(a){a.stopPropagation(),this._elementInDialog(a.target)||a.preventDefault()},_onKeyDownEnteringElement:function(a){a.keyCode===o.Key.tab&&this._updateTabIndices()},_onStartBodyTabFocusIn:function(){o._focusLastFocusableElement(this._dom.dialog)},_onEndBodyTabFocusIn:function(){o._focusFirstFocusableElement(this._dom.dialog)},_onInputPaneShown:function(a){this._state.onInputPaneShown(a.detail.originalEvent)},_onInputPaneHidden:function(){this._state.onInputPaneHidden()},_onUpdateInputPaneRendering:function(){this._renderForInputPane()},_setState:function(a,b){this._disposed||(this._state&&this._state.exit(),this._state=new a,this._state.dialog=this,this._state.enter(b))},_resetDismissalPromise:function(a,b){var c=this._dismissedSignal,d=this._dismissedSignal=b;return c.complete({result:a}),d},_cancelDismissalPromise:function(a){var b=this._dismissedSignal,c=this._dismissedSignal=a;return b.cancel(),c},_fireEvent:function(a,b){b=b||{};var c=b.detail||null,d=!!b.cancelable,e=h.document.createEvent("CustomEvent");return e.initCustomEvent(a,!0,d,c),this._dom.root.dispatchEvent(e)},_fireBeforeShow:function(){return this._fireEvent(y.beforeShow,{cancelable:!0})},_fireBeforeHide:function(a){return this._fireEvent(y.beforeHide,{detail:{result:a},cancelable:!0})},_fireAfterHide:function(a){this._fireEvent(y.afterHide,{detail:{result:a}})},_playEntranceAnimation:function(){return c(r.fadeIn(this._dom.root))},_playExitAnimation:function(){return c(r.fadeOut(this._dom.root))},_addExternalListeners:function(){o._inputPaneListener.addEventListener(this._dom.root,"showing",this._onInputPaneShownBound),o._inputPaneListener.addEventListener(this._dom.root,"hiding",this._onInputPaneHiddenBound)},_removeExternalListeners:function(){o._inputPaneListener.removeEventListener(this._dom.root,"showing",this._onInputPaneShownBound),o._inputPaneListener.removeEventListener(this._dom.root,"hiding",this._onInputPaneHiddenBound)},_shouldResizeForInputPane:function(){if(this._rendered.resizedForInputPane)return!0;var a=this._dom.dialog.getBoundingClientRect();return p._KeyboardInfo._visibleDocTop>a.top||p._KeyboardInfo._visibleDocBottom<a.bottom},_renderForInputPane:function(){var a=this._rendered;if(a.registeredForResize||(o._resizeNotifier.subscribe(this._dom.root,this._onUpdateInputPaneRenderingBound),a.registeredForResize=!0),this._shouldResizeForInputPane()){var b=p._KeyboardInfo._visibleDocTop+"px",c=p._KeyboardInfo._visibleDocBottomOffset+"px";if(a.top!==b&&(this._dom.root.style.top=b,a.top=b),a.bottom!==c&&(this._dom.root.style.bottom=c,a.bottom=c),!a.resizedForInputPane){this._dom.scroller.insertBefore(this._dom.title,this._dom.content),this._dom.root.style.height="auto";var d=h.document.activeElement;d&&this._dom.scroller.contains(d)&&d.scrollIntoView(),a.resizedForInputPane=!0}}},_clearInputPaneRendering:function(){var a=this._rendered;a.registeredForResize&&(o._resizeNotifier.unsubscribe(this._dom.root,this._onUpdateInputPaneRenderingBound),a.registeredForResize=!1),""!==a.top&&(this._dom.root.style.top="",a.top=""),""!==a.bottom&&(this._dom.root.style.bottom="",a.bottom=""),a.resizedForInputPane&&(this._dom.dialog.insertBefore(this._dom.title,this._dom.scroller),this._dom.root.style.height="",a.resizedForInputPane=!1)}},{DismissalResult:w,_ClassNames:x});return j.Class.mix(A,k.createEventProperties("beforeshow","aftershow","beforehide","afterhide")),j.Class.mix(A,n.DOMEventMixin),A})})}),d("ui",["WinJS/Core/_WinJS","WinJS/Controls/IntrinsicControls","WinJS/Controls/ListView","WinJS/Controls/TimePicker","WinJS/Controls/ToggleSwitch","WinJS/Controls/Flyout","WinJS/Controls/ContentDialog"],function(a){"use strict";return a}),c(["WinJS/Core/_WinJS","ui"],function(b){a.WinJS=b,"undefined"!=typeof module&&(module.exports=b)}),a.WinJS})}();
//# sourceMappingURL=ui.min.js.map

Anon7 - 2021