UNPKG

winjs

Version:

WinJS is a set of JavaScript toolkits that allow developers to build applications using HTML/JS/CSS technology.

3 lines 872 kB
/*! 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.2.winjs.2017.3.14 ui.js,StartTM"),b("object"==typeof exports&&"string"!=typeof exports.nodeName?require("./base"):a.WinJS),a.msWriteProfilerMark&&msWriteProfilerMark("WinJS.4.4 4.4.2.winjs.2017.3.14 ui.js,StopTM"))}(function(b){var c=b.Utilities._require,d=b.Utilities._define;d("WinJS/VirtualizedDataSource/_VirtualizedDataSourceImpl",["exports","../Core/_Global","../Core/_Base","../Core/_BaseUtils","../Core/_ErrorFromName","../Core/_Events","../Core/_Log","../Core/_Resources","../Core/_WriteProfilerMark","../Promise","../Scheduler","../_Signal","../Utilities/_UI"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){"use strict";c.Namespace._moduleDefine(a,"WinJS.UI",{VirtualizedDataSource:c.Namespace._lazy(function(){function a(a,c){function f(a){var b="WinJS.UI.VirtualizedDataSource:"+pd+":"+a+",StartTM";i(b),g.log&&g.log(b,"winjs vds","perf")}function u(a){var b="WinJS.UI.VirtualizedDataSource:"+pd+":"+a+",StopTM";i(b),g.log&&g.log(b,"winjs vds","perf")}function v(a){return"number"==typeof a&&a>=0}function w(a){return v(a)&&a===Math.floor(a)}function x(a){if(null===a)a=void 0;else if(void 0!==a&&!w(a))throw new e("WinJS.UI.ListDataSource.InvalidIndexReturned",s.invalidIndexReturned);return a}function y(a){if(null===a)a=void 0;else if(void 0!==a&&!w(a)&&a!==p.unknown)throw new e("WinJS.UI.ListDataSource.InvalidCountReturned",s.invalidCountReturned);return a}function z(){var a=(nc++).toString(),b={handle:a,item:null,itemNew:null,fetchListeners:null,cursorCount:0,bindingMap:null};return Nc[a]=b,b}function A(){return z()}function B(a,b){a.prev=b.prev,a.next=b,a.prev.next=a,b.prev=a}function C(a){a.lastInSequence&&(delete a.lastInSequence,a.prev.lastInSequence=!0),a.firstInSequence&&(delete a.firstInSequence,a.next.firstInSequence=!0),a.prev.next=a.next,a.next.prev=a.prev}function D(a){for(;!a.firstInSequence;)a=a.prev;return a}function E(a){for(;!a.lastInSequence;)a=a.next;return a}function F(a,b,c){return b.prev.next=c.next,c.next.prev=b.prev,b.prev=a.prev,c.next=a,b.prev.next=b,a.prev=c,!0}function G(a,b,c){return b.prev.next=c.next,c.next.prev=b.prev,b.prev=a,c.next=a.next,a.next=b,c.next.prev=c,!0}function H(a){delete a.lastInSequence,delete a.next.firstInSequence}function I(a){var b=a.next;a.lastInSequence=!0,b.firstInSequence=!0,b===Lc&&na(Lc,void 0)}function J(a,b,c,d){B(a,b);var e=a.prev;e.lastInSequence&&(c?delete e.lastInSequence:a.firstInSequence=!0,d?delete b.firstInSequence:a.lastInSequence=!0)}function K(a,b){a.key=b,Oc[a.key]=a}function L(a,b,c){+b===b&&(a.index=b,c[b]=a,Ac||(a.firstInSequence&&a.prev&&a.prev.index===b-1&&H(a.prev),a.lastInSequence&&a.next&&a.next.index===b+1&&H(a)))}function M(a,b){var c=b===Pc?A():z();return B(c,a),c}function N(a,b,c){var d=M(a,c);return d.firstInSequence=!0,d.lastInSequence=!0,L(d,b,c),d}function O(a,b){return N(a,b,Pc)}function P(a,b){var c=M(a,b);return delete a.firstInSequence,c.prev.index===c.index-1?delete c.prev.lastInSequence:c.firstInSequence=!0,L(c,a.index-1,b),c}function Q(a,b){var c=M(a.next,b);return delete a.lastInSequence,c.next.index===c.index+1?delete c.next.firstInSequence:c.lastInSequence=!0,L(c,a.index+1,b),c}function R(a,b,c,d){J(a,b,c,d),Oc[a.key]=a,void 0!==a.index&&(Pc[a.index]=a)}function S(a){C(a),a.key&&delete Oc[a.key],void 0!==a.index&&Pc[a.index]===a&&delete Pc[a.index];var b=a.bindingMap;for(var c in b){var d=b[c].handle;d&&Nc[d]===a&&delete Nc[d]}Nc[a.handle]===a&&delete Nc[a.handle]}function T(a){return!Nc[a.handle]}function U(a,b,c,d,e){var f=e?null:b[a-1];if(f&&(f.next!==d||d.firstInSequence))f=f.next;else if(f=b[a+1],!f){f=c.next;for(var g;;){if(f.firstInSequence&&(g=f),!(a>=f.index)||f===d)break;f=f.next}f!==d||d.firstInSequence||(f=g&&void 0===g.index?g:void 0)}return f}function V(a){return!a.item&&!a.itemNew&&a!==Lc}function W(a,b){Object.defineProperty(a,"handle",{value:b,writable:!1,enumerable:!1,configurable:!0})}function X(a,b,c){W(a,c),Object.defineProperty(a,"index",{get:function(){for(;b.slotMergedWith;)b=b.slotMergedWith;return b.index},enumerable:!1,configurable:!0})}function Y(a){if(void 0===a)return a;var b=JSON.stringify(a);if(void 0===b)throw new e("WinJS.UI.ListDataSource.ObjectIsNotValidJson",s.objectIsNotValidJson);return b}function Z(b){return a.itemSignature?a.itemSignature(b.data):Y(b.data)}function $(b){var c=b.itemNew;b.itemNew=null,c&&(c=Object.create(c),X(c,b,b.handle),a.compareByIdentity||(b.signature=Z(c))),b.item=c,delete b.indexRequested,delete b.keyRequested}function _(a){return a.bindingMap||a.cursorCount>0}function aa(a){return _(a)||a.fetchListeners||a.directFetchListeners}function ba(a){return aa(a)||!a.firstInSequence&&_(a.prev)||!a.lastInSequence&&_(a.next)||!id&&(!a.firstInSequence&&a.prev!==Kc&&!(a.prev.item||a.prev.itemNew))|(!a.lastInSequence&&a.next!==Lc&&!(a.next.item||a.next.itemNew))}function ca(a){I(a),S(a)}function da(){if(!vc){Rc&&!T(Rc)||(Rc=Lc.prev);for(var a=Rc.prev,b=Rc.next,c=0,d=function(a){a===Lc||ba(a)||(hc>=c?c++:ca(a))};a||b;){if(a){var e=a;a=e.prev,e!==Kc&&d(e)}if(b){var f=b;b=f.next,f!==Mc&&d(f)}}Qc=0}}function ea(a){aa(a)||(Qc++,vc||Uc||(Rc=a,Qc>hc&&!Sc&&(Sc=!0,k.schedule(function(){Sc=!1,da()},k.Priority.idle,null,"WinJS.UI.VirtualizedDataSource.releaseSlotIfUnrequested"))))}function fa(a){for(var b in lc)a(lc[b])}function ga(a,b){for(var c in a.bindingMap)b(a.bindingMap[c].bindingRecord,c)}function ha(a){return a.notificationsSent||(a.notificationsSent=!0,a.notificationHandler.beginNotifications&&a.notificationHandler.beginNotifications()),a.notificationHandler}function ia(){sc||yc||fa(function(a){a.notificationsSent&&(a.notificationsSent=!1,a.notificationHandler.endNotifications&&a.notificationHandler.endNotifications())})}function ja(a,b){var c=a.bindingMap;if(c){var d=c[b];if(d){var e=d.handle;if(e)return e}}return a.handle}function ka(a,b){return a&&a.handle!==b&&(a=Object.create(a),W(a,b)),a}function la(a){var b=Jc;Jc=a,fa(function(a){a.notificationHandler&&a.notificationHandler.countChanged&&ha(a).countChanged(Jc,b)})}function ma(a,b){ga(a,function(c,d){c.notificationHandler.indexChanged&&ha(c).indexChanged(ja(a,d),a.index,b)})}function na(a,b){var c=a.index;if(void 0!==c&&Pc[c]===a&&delete Pc[c],+b===b)L(a,b,Pc);else{if(+c!==c)return;delete a.index}ma(a,c)}function oa(a,b,c,d,e){var f={};if((d||!b.lastInSequence)&&(e||!c.firstInSequence))if(b===Kc)if(c===Lc)for(var g in lc)f[g]=lc[g];else for(var g in c.bindingMap)f[g]=lc[g];else if(c===Lc||c.bindingMap)for(var g in b.bindingMap)(c===Lc||c.bindingMap[g])&&(f[g]=lc[g]);for(var g in a.bindingMap)f[g]=lc[g];return f}function pa(a){var b,c=a.prev,d=a.next,e=oa(a,c,d);for(b in e){var f=e[b];f.notificationHandler&&ha(f).inserted(f.itemPromiseFromKnownSlot(a),c.lastInSequence||c===Kc?null:ja(c,b),d.firstInSequence||d===Lc?null:ja(d,b))}}function qa(a){var b=a.item;$(a),ga(a,function(c,d){var e=ja(a,d);ha(c).changed(ka(a.item,e),ka(b,e))})}function ra(a,b,c,d,e){var f,g=b.prev;if(b===a){if(!a.firstInSequence||!c)return;b=a.next}else if(g===a){if(!a.lastInSequence||!d)return;g=a.prev}if(!e){var h=oa(a,g,b,c,d);for(f in h){var i=h[f];ha(i).moved(i.itemPromiseFromKnownSlot(a),(g.lastInSequence||g===a.prev)&&!c||g===Kc?null:ja(g,f),(b.firstInSequence||b===a.next)&&!d||b===Lc?null:ja(b,f))}fa(function(b){b.adjustCurrentSlot(a)})}C(a),J(a,b,c,d)}function sa(a,b){Ba(a,!0),ga(a,function(c,d){ha(c).removed(ja(a,d),b)}),fa(function(b){b.adjustCurrentSlot(a)}),S(a)}function ta(a){for(;!a.firstInSequence;)a=a.prev;var b;do{b=a.lastInSequence;var c=a.next;sa(a,!0),a=c}while(!b)}function ua(a){var b;if(!a)return b;for(var c=0;!a.firstInSequence;)c++,a=a.prev;return"number"==typeof a.indexNew?a.indexNew+c:"number"==typeof a.index?a.index+c:b}function va(a,b){for(a=a.next;a;a=a.next)if(a.firstInSequence){var c=void 0!==a.indexNew?a.indexNew:a.index;void 0!==c&&(a.indexNew=c+b)}zc+=b,Ac=!0,Uc?wb():Cc++}function wa(a,b){if(a.firstInSequence){var c;if(0>b)c=a.indexNew,void 0!==c?delete a.indexNew:c=a.index,a.lastInSequence||(a=a.next,void 0!==c&&(a.indexNew=c));else if(!a.lastInSequence){var d=a.next;c=d.indexNew,void 0!==c?delete d.indexNew:c=d.index,void 0!==c&&(a.indexNew=c)}}va(a,b)}function xa(a,b){for(var c=Kc;c!==Lc;c=c.next){var d=c.indexNew;if(void 0!==d&&d>=a){va(c,b);break}}}function ya(){var a,b,c;for(a=Kc;;a=a.next){if(a.firstInSequence){if(b=a,void 0!==a.indexNew){if(c=a.indexNew,delete a.indexNew,isNaN(c))break}else c=a.index;a!==Kc&&a.prev.index===c-1&&H(a.prev)}if(a.lastInSequence)for(var d=c,e=b;e!==a.next;e=e.next)d!==e.index&&na(e,d),+d===d&&d++;if(a===Lc)break}for(;a!==Mc;a=a.next)void 0!==a.index&&a!==Lc&&na(a,void 0);Ac=!1,zc&&+Jc===Jc&&(pc?pc.reset():la(Jc+zc),zc=0)}function za(a,b,c,d,e){if(a.item)return new j(function(b){e?e(b,a.item):b(a.item)});var f={listBindingID:d,retained:!1};return a[b]||(a[b]={}),a[b][c]=f,f.promise=new j(function(a,b){f.complete=e?function(b){e(a,b)}:a,f.error=b},function(){for(;a.slotMergedWith;)a=a.slotMergedWith;var d=a[b];if(d){if(delete d[c],Object.keys(d).length>0)return;delete a[b]}ea(a)}),f.promise}function Aa(a,b){for(var c in b)b[c].complete(a)}function Ba(a,b){var c=a.fetchListeners,d=a.directFetchListeners;if(c||d){$(a);var e=a.item,f=function(a){b?Aa(e,a):Gc.push(function(){Aa(e,a)})};d&&(a.directFetchListeners=null,f(d)),c&&(a.fetchListeners=null,f(c)),ea(a)}}function Ca(){var a=Gc;Gc=[];for(var b=0,c=a.length;c>b;b++)a[b]()}function Da(a,b){var c=a.directFetchListeners;if(c){a.directFetchListeners=null;for(var d in c)c[d].error(b);ea(a)}}function Ea(a){return a.firstInSequence&&P(a,Pc),a.lastInSequence&&Q(a,Pc),a.itemNew&&$(a),ab(),a}function Fa(a){if(!a.firstInSequence){var b=a.prev;return b===Kc?null:Ea(b)}return Ea(P(a,Pc))}function Ga(a){if(!a.lastInSequence){var b=a.next;return b===Lc?null:Ea(b)}return Ea(Q(a,Pc))}function Ha(a){return a?za(a,"directFetchListeners",(oc++).toString()):j.wrap(null)}function Ia(a){if("string"!=typeof a||!a)throw new e("WinJS.UI.ListDataSource.KeyIsInvalid",s.keyIsInvalid)}function Ja(a){var b=O(Mc);return K(b,a),b.keyRequested=!0,b}function Ka(a,b){Ia(a);var c=Oc[a];return c||(c=Ja(a),c.hints=b),Ea(c)}function La(a){if("number"!=typeof a||0>a)throw new e("WinJS.UI.ListDataSource.IndexIsInvalid",s.indexIsInvalid);if(Lc.index<=a)return null;var b=Pc[a];if(!b){var c=U(a,Pc,Kc,Lc);if(!c)return null;c===Lc&&a>=Lc&&na(Lc,void 0),b=c.prev.index===a-1?Q(c.prev,Pc):c.index===a+1?P(c,Pc):O(c,a)}return b.item||(b.indexRequested=!0),Ea(b)}function Ma(a){var b=O(Mc);return b.description=a,Ea(b)}function Na(a){if(jc=a,ic!==jc){var c=function(){kc=!1,ic!==jc&&(ic=jc,qd.dispatchEvent(t,ic))};jc===o.failure?c():kc||(kc=!0,b.setTimeout(c,40))}}function Oa(a){var b=a.fetchID;return b&&Fc[b]}function Pa(a,b){a.fetchID=b}function Qa(){var a=Ec;return Ec++,Fc[a]=!0,a}function Ra(a,b,c){var d=Qa();Pa(a,d);for(var e=a;!e.firstInSequence&&b>0;)e=e.prev,b--,Pa(e,d);for(var f=a;!f.lastInSequence&&c>0;)f=f.next,c--,Pa(f,d);return d}function Sa(a){var b=a.items,c=a.offset,d=a.totalCount,e=a.absoluteIndex,f=a.atStart,g=a.atEnd;if(v(e)){if(v(d)){var h=b.length;e-c+h===d&&(g=!0)}c===e&&(f=!0)}f&&(b.unshift(Hc),a.offset++),g&&b.push(Ic)}function Ta(a,b,c){return delete Fc[c],b!==Cc||T(a)?(ab(),!1):!0}function Ua(a,b,c,d){var g=Cc;c.then(function(c){if(!c.items||!c.items.length)return j.wrapError(new e(q.doesNotExist));var h="itemsFetched id="+b+" count="+c.items.length;f(h),Ta(a,g,b)&&(+d===d&&(c.absoluteIndex=d),Sa(c),qb(a,c.items,c.offset,c.totalCount,c.absoluteIndex)),u(h)}).then(null,function(c){Ta(a,g,b)&&rb(a,c)})}function Va(a,b,c,d){var g=Cc;d.then(function(d){if(!d.items||!d.items.length)return j.wrapError(new e(q.doesNotExist));var h="itemsFetched id="+c+" count="+d.items.length;f(h),Ta(b,g,c)&&(d.absoluteIndex=a,Sa(d),sb(a,b,d.items,d.offset,d.totalCount,d.absoluteIndex)),u(h)}).then(null,function(){Ta(b,g,c)&&tb(a,b,g)})}function Wa(a,b){var c=Ra(a,0,b-1);jd?Ua(a,c,jd(c,b),0):Ua(a,c,id(c,0,0,b-1),0)}function Xa(a,b){var c=Ra(a,b-1,0);Ua(a,c,kd(c,b))}function Ya(a,b,c){var d=Ra(a,b,c);Ua(a,d,hd(d,a.key,b,c,a.hints))}function Za(a,b,c){var d=a.index;if(b>d&&(b=d),id){var e=Ra(a,b,c);Ua(a,e,id(e,d,b,c),d)}else if(a.key)Ya(a,b,c);else{var f,g,h=Kc,i=d+1;for(f=a.prev;f!==Kc;f=f.prev)if(void 0!==f.index&&f.key){g=d-f.index,i>g&&(i=g,h=f);break}for(f=a.next;f!==Lc;f=f.next)if(void 0!==f.index&&f.key){g=f.index-d,i>g&&(i=g,h=f);break}if(h===Kc){var e=Ra(a,0,d+1);Va(0,a,e,jd(e,d+1))}else{var j=Math.max(h.index-d,0),k=Math.max(d-h.index,0),e=Ra(h,j,k);Va(h.index,a,e,hd(e,h.key,j,k,a.hints))}}}function $a(a,b,c){var d=Ra(a,b,c);Ua(a,d,ld(d,a.description,b,c))}function _a(){if(!Uc){for(var a,b,c,d,e,f,g,h,i=!1,j=!1,k=Kc.next;k!==Mc;){var l=k.next;if(k!==Lc&&V(k)&&(j=!0,a?b++:(a=k,b=1),Oa(k)&&(i=!0),k.keyRequested&&!c&&(c=k,d=b-1),void 0===k.description||e||(e=k,f=b-1),k.indexRequested&&!g&&(g=k,h=b-1),k.lastInSequence||l===Mc||!V(l))){if(i)i=!1;else{if(qc=!1,!a.firstInSequence&&a.prev.key&&hd?Ya(a.prev,0,b):!k.lastInSequence&&l.key&&hd?Ya(l,b,0):a.prev!==Kc||a.firstInSequence||!jd&&!id?l===Lc&&!k.lastInSequence&&kd?Xa(k,b):c?Ya(c,d,b-1-d):e?$a(e,f,b-1-f):g?Za(g,h,b-1-h):"number"==typeof a.index?Za(a,b-1,0):ta(a):Wa(a,b),qc)return void ab();if(Uc)return}a=g=c=null}k=l}Na(j?o.waiting:o.ready)}}function ab(){Dc||(Dc=!0,k.schedule(function(){Dc=!1,_a(),ia()},k.Priority.max,null,"WinJS.UI.ListDataSource._fetch"))}function bb(b){var c=b.itemNew;if(!c)return!1;var d=b.item;for(var e in d)switch(e){case"data":break;default:if(d[e]!==c[e])return!0}return a.compareByIdentity?d.data!==c.data:b.signature!==Z(c)}function cb(a){aa(a)?bb(a)?qa(a):a.itemNew=null:a.item=null}function db(a){a.item?cb(a):Ba(a)}function eb(a,b){a.key||K(a,b.key),a.itemNew=b,db(a)}function fb(a,b,c){var d=b.bindingMap;if(d)for(var e in c)if(d[e]){var f=b.fetchListeners;for(var g in f){var h=f[g];h.listBindingID===e&&h.retained&&(delete f[g],h.complete(null))}var i=d[e].bindingRecord;ha(i).removed(ja(b,e),!0,ja(a,e)),b.bindingMap&&delete b.bindingMap[e]}}function gb(a,b){if(a.index!==b.index){var c=b.index;b.index=a.index,ma(b,c)}b.slotMergedWith=a;var d=b.bindingMap;for(var e in d){a.bindingMap||(a.bindingMap={});var f=d[e];f.handle||(f.handle=b.handle),Nc[f.handle]=a,a.bindingMap[e]=f}fa(function(c){c.adjustCurrentSlot(b,a)});var g=b.itemNew||b.item;if(g&&(g=Object.create(g),X(g,a,a.handle),eb(a,g)),a.item)b.directFetchListeners&&Gc.push(function(){Aa(a.item,b.directFetchListeners)}),b.fetchListeners&&Gc.push(function(){Aa(a.item,b.fetchListeners)});else{var h;for(h in b.directFetchListeners)a.directFetchListeners||(a.directFetchListeners={}),a.directFetchListeners[h]=b.directFetchListeners[h];for(h in b.fetchListeners)a.fetchListeners||(a.fetchListeners={}),a.fetchListeners[h]=b.fetchListeners[h]}a.itemNew&&Ba(a),b.handle=(nc++).toString(),I(b),S(b)}function hb(a,b,c){b&&b.key&&(c||(c=b.itemNew||b.item),delete b.key,delete Oc[c.key],b.itemNew=null,b.item=null),c&&eb(a,c),b&&gb(a,b)}function ib(a){if("object"!=typeof a)throw new e("WinJS.UI.ListDataSource.InvalidItemReturned",s.invalidItemReturned);if(a===Hc)return Kc;if(a===Ic)return Lc;if(a.key)return d.validation&&Ia(a.key),Oc[a.key];throw new e("WinJS.UI.ListDataSource.InvalidKeyReturned",s.invalidKeyReturned)}function jb(a,b){var c=ib(b);c===a&&(c=null),c&&fb(a,c,a.bindingMap),hb(a,c,b)}function kb(a,b,c,d){if(b&&a.key&&a.key!==b.key)return wb(),!1;var e=Pc[c];if(e)if(e===a)e=null;else{if(e.key&&(a.key||b&&e.key!==b.key))return wb(),!1;if(!a.key&&e.bindingMap)return!1}var f;if(b)if(f=Oc[b.key],f===a)f=null;else if(f&&f.bindingMap)return!1;return e?(fb(a,e,a.bindingMap),delete Pc[c],na(a,c),a.prev.index===c-1&&H(a.prev),a.next.index===c+1&&H(a),d.slotNext=e.slotNext,b||(b=e.itemNew||e.item,b&&(f=Oc[b.key]))):na(a,c),f&&e!==f&&fb(a,f,a.bindingMap),hb(a,f,b),e&&e!==f&&gb(a,e),!0}function lb(a,b,c){if(b.key&&a.key&&b.key!==a.key)return wb(),!1;for(var d in a.bindingMap)c[d]=!0;return fb(a,b,c),hb(a,b),!0}function mb(a,b){for(var c={};a;){var d=a.firstInSequence?null:a.prev;if(b.firstInSequence||b.prev!==Kc){if(b=b.firstInSequence?P(b,Pc):b.prev,!lb(b,a,c))return}else sa(a,!0);a=d}}function nb(a,b){for(var c={};a;){var d=a.lastInSequence?null:a.next;if(b.lastInSequence||b.next!==Lc){if(b=b.lastInSequence?Q(b,Pc):b.next,!lb(b,a,c))return}else sa(a,!0);a=d}}function ob(a){for(var b=0;b<a.length;b++){var c=a[b];mb(c.slotBeforeSequence,c.slotFirstInSequence),nb(c.slotAfterSequence,c.slotLastInSequence)}}function pb(a,b){function c(b){for(var c=Lc.prev;!(c.index<a)&&c!==b;){var e=c.prev;void 0!==c.index&&sa(c,!0),c=e}d=0}for(var d=0,e=Lc.prev;!(e.index<a)||d>0;){var f=e.prev;if(e===Kc){c(Kc);break}if(e.key){if(e.index>=a)return wb(),!1;if(!(e.index>=b))return hd?Ya(e,0,d):Za(e,0,d),!1;c(e)}else e.indexRequested||e.firstInSequence?c(f):d++;e=f}return!0}function qb(a,b,c,d,e){var g="WinJS.UI.ListDataSource.processResults";return f(g),e=x(e),d=y(d),vc?void u(g):(Ac&&ya(),!v(d)&&d!==p.unknown||d===Jc||Lc.firstInSequence?(qc=!0,function(){var f,g,h,i,j=b.length;if("number"!=typeof e)for(f=0;j>f;f++)if(h=ib(b[f]),h&&void 0!==h.index){e=h.index+c-f;break}"number"==typeof e&&b[j-1]===Ic?d=e-c+j-1:!v(d)||void 0!==e&&null!==e||(e=d-(j-1)+c),v(d)&&!pb(d,e-c)&&(d=void 0);var k=new Array(j);for(f=0;j>f;f++){var l=null;if(h=ib(b[f])){if(f>0&&!h.firstInSequence&&h.prev.key&&h.prev.key!==b[f-1].key||"number"==typeof e&&void 0!==h.index&&h.index!==e-c+f)return void wb();(h===Kc||h===Lc||h.bindingMap)&&(l=h)}if("number"==typeof e&&(h=Pc[e-c+f])){if(h.key&&h.key!==b[f].key)return void wb();!l&&h.bindingMap&&(l=h)}if(f===c){if(a.key&&a.key!==b[f].key||"number"==typeof a.index&&"number"==typeof e&&a.index!==e)return void wb();l||(l=a)}k[f]=l}for(f=0;j>f;f++)h=k[f],h&&void 0!==h.index&&h!==Kc&&h!==Lc&&jb(h,b[f]);var m,n,o=[],p=!0;for(f=0;j>f;f++)if(h=k[f],h&&h!==Lc){var q=f;if(void 0===h.index){var r={};kb(h,b[f],e-c+f,r);var s,t=h,u=h;for(g=f-1;!t.firstInSequence&&(s=b[g],s!==Hc);g--){var w=e-c+g;if(0>w)break;if(!kb(t.prev,s,w,r))break;t=t.prev,g>=0&&(k[g]=t)}for(g=f+1;!u.lastInSequence&&(s=b[g],s!==Ic&&g!==d||u.next===Lc)&&(u.next===Lc||kb(u.next,s,e-c+g,r))&&(u=u.next,j>g&&(k[g]=u),q=g,u!==Lc);g++);if(m=t.firstInSequence?null:t.prev,n=u.lastInSequence?null:u.next,m&&I(m),n&&I(u),"number"==typeof e){if(u===Lc)m&&G(Lc,D(m),m);else{var x=r.slotNext;x||(x=U(u.index,Pc,Kc,Lc,!0)),F(x,t,u)}t.prev.index===t.index-1&&H(t.prev),u.next.index===u.index+1&&H(u)}else p||(i=k[f-1],i&&(t.prev!==i&&(u===Lc?(m&&G(Lc,D(m),m),F(t,D(i),i)):G(i,t,u)),H(i)));if(p=!1,Tc)return;o.push({slotBeforeSequence:m,slotFirstInSequence:t,slotLastInSequence:u,slotAfterSequence:n})}f!==c||h===a||T(a)||(m=a.firstInSequence?null:a.prev,n=a.lastInSequence?null:a.next,fb(h,a,h.bindingMap),gb(h,a),o.push({slotBeforeSequence:m,slotFirstInSequence:h,slotLastInSequence:h,slotAfterSequence:n})),f=q}for(v(d)&&Lc.index!==d&&na(Lc,d),ob(o),f=0;j>f;f++)if(h=k[f]){for(g=f-1;g>=0;g--){var y=k[g+1];jb(k[g]=y.firstInSequence?P(k[g+1],Pc):y.prev,b[g])}for(g=f+1;j>g;g++)i=k[g-1],h=k[g],h?h.firstInSequence&&(h.prev!==i&&G(i,h,E(h)),H(i)):jb(k[g]=i.lastInSequence?Q(i,Pc):i.next,b[g]);break}delete a.description}(),Tc||(void 0!==d&&d!==Jc&&la(d),ab()),ia(),Ca(),void u(g)):(wb(),void u(g)))}function rb(a,b){switch(b.name){case q.noResponse:Na(o.failure),Da(a,b);break;case q.doesNotExist:a.indexRequested?pb(a.index):(a.keyRequested||a.description)&&ta(a),ia(),wb()}}function sb(a,b,c,d,f,g){g=x(g),f=y(f);var h=a-d,i=c.length;if(b.index>=h&&b.index<h+i)qb(b,c,b.index-h,f,b.index);else if(d===i-1&&a<b.index||v(f)&&f<=b.index)rb(b,new e(q.doesNotExist));else if(b.index<h){var j=Ra(b,0,h-b.index);Va(h,b,j,hd(j,c[0].key,h-b.index,0))}else{var k=h+i-1,j=Ra(b,b.index-k,0);Va(k,b,j,hd(j,c[i-1].key,0,b.index-k))}}function tb(a,b,c){switch(c.name){case q.doesNotExist:a===Kc.index?(pb(0),rb(b,c)):wb();break;default:rb(b,c)}}function ub(){for(var a=0;a<nd.length&&"beginRefresh"!==nd[a].kind;a++);for(var b=a;b<nd.length&&"beginRefresh"!==nd[b].kind;b++);if(b>a&&b+(b-a)<nd.length){for(var c=!0,d=b-a,e=0;d>e;e++)if(nd[a+e].kind!==nd[b+e].kind){c=!1;break}if(c&&g.log){g.log(s.refreshCycleIdentified,"winjs vds","error");for(var e=a;b>e;e++)g.log(""+(e-a)+": "+JSON.stringify(nd[e]),"winjs vds","error")}return c}}function vb(){return++md>h&&ub()?void Na(o.failure):(nd[++od%nd.length]={kind:"beginRefresh"},Zc={firstInSequence:!0,lastInSequence:!0,index:-1},$c={firstInSequence:!0,lastInSequence:!0},Zc.next=$c,$c.prev=Zc,Xc=!1,Yc=void 0,_c={},ad={},bd={},bd[-1]=Zc,void(cd={}))}function wb(){if(!Tc){if(Tc=!0,Na(o.waiting),xc)return xc=!1,void Zb();if(!vc){var a=++Cc;Uc=!0,Wc=0,k.schedule(function(){if(Cc===a){Tc=!1,vb();for(var b=Kc.next;b!==Mc;){var c=b.next;ba(b)||b===Lc||ca(b),b=c}Eb()}},k.Priority.high,null,"WinJS.VirtualizedDataSource.beginRefresh")}}}function xb(){return Vc=Vc||new l,wb(),Vc.promise}function yb(a,b){return delete Fc[b],a!==Cc?!1:(Wc--,!0)}function zb(a,b,c,d,g){var h=Cc;Wc++,d.then(function(b){if(!b.items||!b.items.length)return j.wrapError(new e(q.doesNotExist));var d="itemsFetched id="+c+" count="+b.items.length;f(d),yb(h,c)&&(Sa(b),Kb(a,b.items,b.offset,b.totalCount,"number"==typeof g?g:b.absoluteIndex)),u(d)}).then(null,function(d){yb(h,c)&&Lb(a,b,d)})}function Ab(a,b,c,d){if(hd)zb(a.key,!1,b,hd(b,a.key,c,d,a.hints));else{var e=10,f=a.index;bd[f]&&bd[f].firstInSequence?zb(a.key,!1,b,id(b,f-1,Math.min(c+e,f)-1,d+1+e),f-1):bd[f]&&bd[f].lastInSequence?zb(a.key,!1,b,id(b,f+1,Math.min(c+e,f)+1,d-1+e),f+1):zb(a.key,!1,b,id(b,f,Math.min(c+e,f),d+e),f)}}function Bb(a){jd?zb(null,!0,a,jd(a,1),0):id&&zb(null,!0,a,id(a,0,0,0),0)}function Cb(a){return Fc[_c[a]]}function Db(a,b){for(var c,d,e,f=3,g=Cc,h=0,i=a;i!==Mc;i=i.next){if(!c&&i.key&&!cd[i.key]&&!Cb(i.key)){var j=ad[i.key];(!j||j.firstInSequence||j.lastInSequence)&&(c=i,d=j,e=Qa())}if(c){var k=Cb(i.key);if(cd[i.key]||ad[i.key]||k||(i.key&&(_c[i.key]=e),h++),i.lastInSequence||i.next===Lc||k){if(Ab(c,e,!d||d.firstInSequence?f:0,h-1+f),!b)break;c=null,h=0}}else i.key&&V(i)&&!cd[i.key]&&(ad[i.key]||(e=Qa(),zb(i.key,!1,e,hd(e,i.key,1,1,i.hints))))}0!==Wc||Xc||Cc!==g||Bb(Qa())}function Eb(){var a=Cc;do dd=!1,ed=!0,Db(Kc.next,!0),ed=!1;while(0===Wc&&dd&&Cc===a&&Uc);0===Wc&&Cc===a&&Ub()}function Fb(a){var b=Cc;if(a){var c=Oc[a];c||(c=Kc.next);do fd=!1,gd=!0,Db(c,!1),gd=!1;while(fd&&Cc===b&&Uc)}ed?dd=!0:0===Wc&&Cc===b&&Eb()}function Gb(a){if("object"==typeof a&&a){if(a===Hc)return Zc;if(a===Ic)return $c;if(a.key)return ad[a.key];throw new e("WinJS.UI.ListDataSource.InvalidKeyReturned",s.invalidKeyReturned)}throw new e("WinJS.UI.ListDataSource.InvalidItemReturned",s.invalidItemReturned)}function Hb(a,b){for(;void 0===a.index;){if(L(a,b,bd),a.firstInSequence)return!0;a=a.prev,b--}return a.index!==b?(wb(),!1):!0}function Ib(a,b){a.key=b.key,ad[a.key]=a,a.item=b}function Jb(){for(var a=$c;!a.firstInSequence;)if(a=a.prev,a===Zc)return null;return a}function Kb(a,b,c,d,e){e=x(e),d=y(d);var f=!1;Xc=!0;var g=e-c,h=b[0];h.key===a&&(f=!0);var i=Gb(h);if(i){if(+g===g&&!Hb(i,g))return}else{if(bd[g])return void wb();var j;if(void 0!==e&&(j=bd[g-1])){if(!j.lastInSequence)return void wb();i=Q(j,bd)}else{var k=+g===g?U(g,bd,Zc,$c):Jb(Zc,$c);if(!k)return void wb();i=N(k,g,bd)}Ib(i,b[0])}for(var l=b.length,m=1;l>m;m++){h=b[m],h.key===a&&(f=!0);var n=Gb(h);if(n){if(void 0!==i.index&&!Hb(n,i.index+1))return;if(n!==i.next){if(!i.lastInSequence||!n.firstInSequence)return void wb();var o=E(n);if(o!==$c)G(i,n,o);else{var q=D(i);if(q===Zc)return void wb();F(n,q,i)}H(i)}else i.lastInSequence&&H(i)}else{if(!i.lastInSequence)return void wb();n=Q(i,bd),Ib(n,h)}i=n}if(f||(cd[a]=!0),!v(d)&&!$c.firstInSequence){var r=$c.prev.index;void 0!==r&&(d=r+1)}if(v(d)||d===p.unknown){if(v(Yc)){if(d!==Yc)return void wb()}else Yc=d;v(Yc)&&!bd[Yc]&&L($c,Yc,bd)}gd?fd=!0:Fb(a)}function Lb(a,b,c){switch(c.name){case q.noResponse:Na(o.failure);break;case q.doesNotExist:b?(L($c,0,bd),Yc=0,Ub()):(cd[a]=!0,gd?fd=!0:Fb(a))}}function Mb(a){return a===Zc?Kc:a===$c?Lc:Oc[a.key]}function Nb(a){return a===Kc?Zc:a===Lc?$c:ad[a.key]}function Ob(a){H(a),a.next.mergedForRefresh=!0}function Pb(a,b){K(b,a.key),b.itemNew=a.item}function Qb(a,b,c){var d=A();Pb(a,d),J(d,b,c,!c);var e=a.index;return+e!==e&&(e=c?d.prev.index+1:b.next.index-1),L(d,e,Pc),d}function Rb(a,b,c){a?(fb(a,b,a.bindingMap),hb(a,b,c.item)):(Pb(c,b),b.indexRequested&&db(b))}function Sb(a,b,c){return b.key?!1:(a?(c.mergeWithPrev=!b.firstInSequence,c.mergeWithNext=!b.lastInSequence):c.stationary=!0,Rb(a,b,c),!0)}function Tb(a){var b;if(a.indexRequested)b=a.index;else{var c=Nb(a);c&&(b=c.index)}return b}function Ub(){md=0,nd=new Array(100),od=-1,Ac=!0,_c={};var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s=[],t=[];for(o=0,h=Zc;h;h=h.next)h.sequenceNumber=o,h.firstInSequence&&(j=h),h.lastInSequence&&(t[o]={first:j,last:h,matchingItems:0},o++);for(Rc=null,Qc=0,c=Kc.next;c!==Mc;)h=ad[c.key],e=c.next,c!==Lc&&(ba(c)?c.key&&!h?sa(c,!1):0===Yc||c.indexRequested&&c.index>=Yc?sa(c,!0):c.item||c.keyRequested?c.itemNew=h.item:c.key&&(c.keyRequested||(delete Oc[c.key],delete c.key),c.itemNew=null):ca(c)),c=e;for(c=Kc.next;c!==Lc;)e=c.next,c.indexRequested&&(h=bd[c.index],h&&Rb(Mb(h),c,h)),c=e;var u,v,w,x,y,z=0,A=[];for(k=0,c=Kc;c!==Mc;c=c.next){if(c.firstInSequence)for(j=c,w=null,a=0;o>a;a++)A[a]=0;if(c.indexRequested&&(w=c),h=Nb(c),h&&A[h.sequenceNumber]++,c.lastInSequence){for(v=0,a=z;o>a;a++)v<A[a]&&(v=A[a],u=a);l={first:j,last:c,sequenceNew:v>0?t[u]:void 0,matchingItems:v},w&&(l.indexRequested=!0,l.stationarySlot=w),s[k]=l,c===Lc&&(x=k,y=l),k++,void 0!==t[u].first.index&&(z=u)}}s[0].sequenceNew!==t[0]&&(I(Kc),s[0].first=Kc.next,s.unshift({first:Kc,last:Kc,sequenceNew:t[0],matchingItems:1}),x++,k++);var B=!Lc.firstInSequence;for(y.sequenceNew!==t[o-1]&&(I(Lc.prev),y.last=Lc.prev,x++,s.splice(x,0,{first:Lc,last:Lc,sequenceNew:t[o-1],matchingItems:1}),k++,y=s[x]),a=0;k>a;a++)p=s[a].sequenceNew,p&&p.matchingItems<s[a].matchingItems&&(p.matchingItems=s[a].matchingItems,p.sequenceOld=s[a]);for(t[o-1].sequenceOld=y,y.stationarySlot=Lc,t[0].sequenceOld=s[0],s[0].stationarySlot=Kc,a=0;x>=a;a++)l=s[a],l.sequenceNew&&(n=l.sequenceNew.sequenceOld)===m&&m.last!==Lc?(Ob(n.last),n.last=l.last,delete s[a]):m=l;for(m=null,a=x;a>=0;a--)l=s[a],l&&(l.sequenceNew&&(n=l.sequenceNew.sequenceOld)===m&&l.last!==Lc?(Ob(l.last),n.first=l.first,delete s[a]):m=l);B&&delete Lc.mergedForRefresh;var C=[];for(a=x+1;k>a;a++)if(l=s[a],l&&(!l.sequenceNew||l.sequenceNew.sequenceOld!==l)){var D=!0,E=null,J=null,K=0;for(h=Nb(l.first),h&&(E=J=h,K=1),c=l.first;c!==l.last;c=c.next){var L=Nb(c.next);if(h&&L&&(h.lastInSequence||h.next!==L)){D=!1;break}h&&!E&&(E=J=h),L&&E&&(J=L,K++),h=L}if(D&&E&&void 0!==E.index){var M;E.firstInSequence||(f=Mb(E.prev),f&&(M=f.index));var N;if(J.lastInSequence||(g=Mb(J.next),g&&(N=g.index)),(!g||g.lastInSequence||g.mergedForRefresh)&&(void 0===M||void 0===N||N-M-1>=K)){for(l.locationJustDetermined=!0,h=E;h.locationJustDetermined=!0,h!==J;h=h.next);var j=Mb(E),O=Mb(J);C.push({slotBeforeSequence:j.firstInSequence?null:j.prev,slotFirstInSequence:j,slotLastInSequence:O,slotAfterSequence:O.lastInSequence?null:O.next})}}}for(a=0;k>a;a++)if(l=s[a],l&&!l.indexRequested&&!l.locationJustDetermined&&(!l.sequenceNew||l.sequenceNew.sequenceOld!==l)){l.sequenceNew=null,c=l.first;var P;do{if(P=c===l.last,e=c.next,c!==Kc&&c!==Lc&&c!==Mc&&!c.item&&!c.keyRequested)if(sa(c,!0),l.first===c){if(l.last===c){delete s[a];break}l.first=c.next}else l.last===c&&(l.last=c.prev);c=e}while(!P)}for(a=0;o>a;a++){for(p=t[a],h=p.first;!Mb(h)&&!h.lastInSequence;h=h.next);if(h.lastInSequence&&!Mb(h))p.firstInner=p.lastInner=null;else{for(p.firstInner=h,h=p.last;!Mb(h);h=h.prev);p.lastInner=h}}for(a=0;o>a;a++)if(p=t[a],p&&p.firstInner&&(l=p.sequenceOld)){var Q=0;for(c=l.first;!0&&(h=Nb(c),h&&h.sequenceNumber===p.firstInner.sequenceNumber&&(h.ordinal=Q),!c.lastInSequence);c=c.next,Q++);var R=[];for(h=p.firstInner;!0;h=h.next){if(Q=h.ordinal,void 0!==Q){for(var S=0,T=R.length-1;T>=S;){var U=Math.floor(.5*(S+T));R[U].ordinal<Q?S=U+1:T=U-1}R[S]=h,S>0&&(h.predecessor=R[S-1])}if(h===p.lastInner)break}var W=[],X=R.length;for(h=R[X-1],b=X;b--;)h.stationary=!0,W[b]=h,h=h.predecessor;l.stationarySlot=Mb(W[0]),h=W[0],c=Mb(h),d=c.prev;for(var Y=c.firstInSequence;!h.firstInSequence;)if(h=h.prev,i=Mb(h),!i||h.locationJustDetermined)for(;!Y&&d!==Kc&&(c=d,d=c.prev,Y=c.firstInSequence,!Sb(i,c,h)););for(b=0;X-1>b;b++){h=W[b],c=Mb(h);var i,Z=W[b+1],_=null,aa=Mb(Z);for(e=c.next,h=h.next;h!==Z&&!_&&c!==aa;h=h.next)if(i=Mb(h),!i||h.locationJustDetermined)for(;e!==aa;){if(e.mergedForRefresh){_=h.prev;break}if(c=e,e=c.next,Sb(i,c,h))break}if(_)for(d=aa.prev,h=Z.prev;h!==_&&aa!==c;h=h.prev)if(i=Mb(h),!i||h.locationJustDetermined)for(;d!==c&&(aa=d,d=aa.prev,!Sb(i,aa,h)););for(;e!==aa;)c=e,e=c.next,c!==Kc&&V(c)&&!c.keyRequested&&sa(c)}for(h=W[X-1],c=Mb(h),e=c.next,Y=c.lastInSequence;!h.lastInSequence;)if(h=h.next,i=Mb(h),!i||h.locationJustDetermined)for(;!Y&&e!==Lc&&(c=e,e=c.next,Y=c.lastInSequence,!Sb(i,c,h)););}for(a=0;o>a;a++)if(p=t[a],p.firstInner)for(d=null,h=p.firstInner;!0;h=h.next){if(c=Mb(h)){if(!h.stationary){var da,ea=!1,fa=!1;if(d)da=d.next,ea=!0;else{var ga;for(ga=p.firstInner;!ga.stationary&&ga!==p.lastInner;ga=ga.next);if(ga.stationary)da=Mb(ga),fa=!0;else if(q=h.index,0===q)da=Kc.next,ea=!0;else if(void 0===q)da=Mc;else{da=Kc.next;for(var ha=null;;){if(da.firstInSequence&&(ha=da),q<da.index&&ha||da===Lc)break;da=da.next}!da.firstInSequence&&ha&&(da=ha)}}c.mergedForRefresh&&(delete c.mergedForRefresh,c.lastInSequence||(c.next.mergedForRefresh=!0)),ea=ea||h.mergeWithPrev,fa=fa||h.mergeWithNext;var ja=h.locationJustDetermined;ra(c,da,ea,fa,ja),ja&&fa&&(da.mergedForRefresh=!0)}d=c}if(h===p.lastInner)break}for(a=0;o>a;a++)if(p=t[a],p.firstInner)for(d=null,h=p.firstInner;!0;h=h.next){if(c=Mb(h),!c){var ka;if(d)ka=d.next;else{var ma;for(ma=p.firstInner;!Mb(ma);ma=ma.next);ka=Mb(ma)}c=Qb(h,ka,!!d);var L=Nb(ka);ka.mergedForRefresh||L&&L.locationJustDetermined||($(c),pa(c))}if(d=c,h===p.lastInner)break}Pc=[];var oa=-1;for(c=Kc,r=0;c!==Mc;r++){var e=c.next;if(c.firstInSequence&&(j=c,r=0),void 0===oa){var qa=Tb(c);void 0!==qa&&(oa=qa-r)}if(void 0!==oa&&!c.lastInSequence){var ta=Tb(c.next);if(void 0!==ta&&ta!==oa+r+1){I(c);for(var ua=!0,va=c.next,wa=!1;!wa&&va!==Lc;){var xa=va.next;wa=va.lastInSequence,ra(va,xa,!ua,!1),ua=!1,va=xa}}}if(c.lastInSequence){q=oa;for(var ya=j;ya!==e;){var za=ya.next;if(q>=Yc&&ya!==Lc)sa(ya,!0);else{var Aa=Pc[q];q!==ya.index?(delete Pc[q],na(ya,q)):+q===q&&Pc[q]!==ya&&(Pc[q]=ya),ya.itemNew&&db(ya),Aa&&(ya.key?(fb(ya,Aa,ya.bindingMap),gb(ya,Aa),+q===q&&(Pc[q]=ya)):(fb(Aa,ya,Aa.bindingMap),gb(Aa,ya),+q===q&&(Pc[q]=Aa))),+q===q&&q++}ya=za}oa=void 0}c=e}var Ba,Da=-2;for(c=Kc,r=0;c!==Mc;r++){var e=c.next;if(c.firstInSequence&&(j=c,r=0),delete c.mergedForRefresh,c.lastInSequence)if(void 0===j.index){f=j.prev;var Ea;f&&(Ea=Nb(f))&&!Ea.lastInSequence&&(h=Nb(c))&&h.prev===Ea?(G(f,j,c),H(f)):c===Lc||Ba||F(Mc,j,c)}else{if(Da<c.index&&!Ba)Da=c.index;else{for(g=Kc.next;g.index<c.index;g=g.next);for(var va=j;va!==e;){var xa=va.next;h=Nb(va),ra(va,g,g.prev.index===va.index-1,g.index===va.index+1,h&&h.locationJustDetermined),va=xa}}f=j.prev,f&&f.index===j.index-1&&H(f)}c===Lc&&(Ba=!0),c=e}Ac=!1,ob(C),void 0!==Yc&&Yc!==Jc&&la(Yc),ia();var Fa=[];for(a=0;o>a;a++){p=t[a];var Ga=[];c=null,r=0;var Ha;for(h=p.first;!0&&(h===Zc?Ga.push(Hc):h===$c?Ga.push(Ic):(Ga.push(h.item),c||(c=Mb(h),Ha=r)),!h.lastInSequence);h=h.next,r++);c&&Fa.push({slot:c,results:Ga,offset:Ha})}for(vb(),Uc=!1,Ca(),a=0;a<Fa.length;a++){var Ia=Fa[a];qb(Ia.slot,Ia.results,Ia.offset,Jc,Ia.slot.index)}if(Vc){var Ja=Vc;Vc=null,Ja.complete()}ab()}function Vb(a,b,c,d,e,f,g){var h=uc.prev,i={prev:h,next:uc,applyEdit:a,editType:b,complete:c,error:d,keyUpdate:e};h.next=i,uc.prev=i,vc=!0,(Tc||Uc)&&(Cc++,Uc=!1,Tc=!0),uc.next===i&&Zb(),i.failed||(f(),i.undo=g), sc||$b()}function Wb(){tc=!1;var a=uc.next.next;uc.next=a,a.prev=uc}function Xb(){for(;uc.prev!==uc;){var a=uc.prev;a.error&&a.error(new e(r.canceled)),a.undo&&!Tc&&a.undo(),uc.prev=a.prev}uc.next=uc,sc=!1,$b()}function Yb(b){function c(){xc||(f?wc=!0:Zb())}function d(a){if(a){var d;if(g&&g.key!==a.key){var e=a.key;if(b.undo){if(d=g.slot){var h=d.key;h&&delete Oc[h],K(d,e),d.itemNew=a,d.item?(qa(d),ia()):Ba(d)}}else g.key=e}else b.editType===rd.change&&(d.itemNew=a,f||cb(d))}Wb(),b.complete&&b.complete(a),c()}function e(a){switch(a.Name){case r.noResponse:return Na(o.failure),xc=!0,void(tc=!1);case r.notPermitted:break;case r.noLongerMeaningful:wb()}b.failed=!0,Wb(),Xb(),b.error&&b.error(a),c()}if(!tc){var f=!0,g=b.keyUpdate;a.beginEdits&&!rc&&(rc=!0,a.beginEdits()),tc=!0,b.applyEdit().then(d,e),f=!1}}function Zb(){for(;uc.next!==uc;)if(wc=!1,Yb(uc.next),!wc)return;_b()}function $b(){ya(),ia(),Ca(),uc.next===uc&&_b()}function _b(){vc=!1,a.endEdits&&rc&&!sc&&(rc=!1,a.endEdits()),Tc?(Tc=!1,wb()):ab()}function ac(a){return Ia(a),Oc[a]||Ja(a)}function bc(a,b,c,d,e){var f=A();return J(f,c,d,e),a&&K(f,a),f.itemNew=b,wa(f,1),sc||yc||(f.firstInSequence||"number"!=typeof f.prev.index?f.lastInSequence||"number"!=typeof f.next.index||L(f,f.next.index-1,Pc):L(f,f.prev.index+1,Pc)),$(f),pa(f),f}function cc(a,b,c,d,e){var f={key:a};return new j(function(a,g){Vb(e,rd.insert,a,g,f,function(){if(c){var a={key:f.key,data:b};f.slot=bc(f.key,a,c,d,!d)}},function(){var a=f.slot;a&&(wa(a,-1),sa(a,!1))})})}function dc(a,b,c,d){return new j(function(e,f){var g,h,i,j;Vb(d,rd.move,e,f,null,function(){h=a.next,i=a.firstInSequence,j=a.lastInSequence;var d=a.prev;g="number"!=typeof a.index&&(i||!d.item)&&(j||!h.item),wa(a,-1),ra(a,b,c,!c),wa(a,1),g&&(I(d),i||mb(d,a),j||nb(h,a))},function(){g?wb():(wa(a,-1),ra(a,h,!i,!j),wa(a,1))})})}function ec(){function a(){yc||(ya(),ia(),Ca())}this.invalidateAll=function(){return 0===Jc?(this.reload(),j.wrap()):xb()},this.reload=function(){pc&&pc.cancel(),Vc&&Vc.cancel();for(var a=Kc.next;a!==Mc;a=a.next){var b=a.fetchListeners;for(var c in b)b[c].promise.cancel();var d=a.directFetchListeners;for(var c in d)d[c].promise.cancel()}fc(),fa(function(a){a.notificationHandler&&a.notificationHandler.reload()})},this.beginNotifications=function(){yc=!0},this.inserted=function(b,c,d,e){if(vc)wb();else{var f=b.key,g=Oc[c],h=Oc[d],i="string"==typeof c,j="string"==typeof d;if(i?h&&!h.firstInSequence&&(g=h.prev):j&&g&&!g.lastInSequence&&(h=g.next),(i||j)&&!g&&!h&&Kc.next===Lc)return void wb();if(Oc[f])return void wb();if(g&&h&&(g.next!==h||g.lastInSequence||h.firstInSequence))return void wb();if(g&&(g.keyRequested||g.indexRequested)||h&&(h.keyRequested||h.indexRequested))return void wb();if(g||h)bc(f,b,h?h:g.next,!!g,!!h);else if(Kc.next===Lc)bc(f,b,Kc.next,!0,!0);else{if(void 0===e)return void wb();xa(e,1)}a()}},this.changed=function(b){if(vc)wb();else{var c=b.key,d=Oc[c];d&&(d.keyRequested?wb():(d.itemNew=b,d.item&&(qa(d),a())))}},this.moved=function(b,c,d,e,f){if(vc)wb();else{var g=b.key,h=Oc[g],i=Oc[c],j=Oc[d];h&&h.keyRequested||i&&i.keyRequested||j&&j.keyRequested?wb():h?i&&j&&(i.next!==j||i.lastInSequence||j.firstInSequence)?wb():i||j?(wa(h,-1),ra(h,j?j:i.next,!!i,!!j),wa(h,1),a()):(wa(h,-1),sa(h,!1),void 0!==e&&(f>e&&f--,xa(f,1)),a()):i||j?(void 0!==e&&(xa(e,-1),f>e&&f--),this.inserted(b,c,d,f)):void 0!==e&&(xa(e,-1),f>e&&f--,xa(f,1),a())}},this.removed=function(b,c){if(vc)wb();else{var d;d="string"==typeof b?Oc[b]:Pc[c],d?d.keyRequested?wb():(wa(d,-1),sa(d,!1),a()):void 0!==c&&(xa(c,-1),a())}},this.endNotifications=function(){yc=!1,a()}}function fc(){Na(o.ready),pc=null,rc=!1,sc=!1,tc=!1,uc={},uc.next=uc,uc.prev=uc,vc=!1,xc=!1,zc=0,Ac=!1,Bc=0,Fc={},Gc=[],Jc=p.unknown,Kc={firstInSequence:!0,lastInSequence:!0,index:-1},Lc={firstInSequence:!0,lastInSequence:!0},Mc={firstInSequence:!0,lastInSequence:!0},Kc.next=Lc,Lc.prev=Kc,Lc.next=Mc,Mc.prev=Lc,Nc={},Oc={},Pc={},Pc[-1]=Kc,Qc=0,Rc=null,Sc=!1,Tc=!1,Uc=!1,Vc=null}var gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Oc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Wc,Xc,Yc,Zc,$c,_c,ad,bd,cd,dd,ed,fd,gd,hd,id,jd,kd,ld,md=0,nd=new Array(100),od=-1;a.itemsFromKey&&(hd=function(b,c,d,e,g){var h="fetchItemsFromKey id="+b+" key="+c+" countBefore="+d+" countAfter="+e;f(h),nd[++od%nd.length]={kind:"itemsFromKey",key:c,countBefore:d,countAfter:e};var i=a.itemsFromKey(c,d,e,g);return u(h),i}),a.itemsFromIndex&&(id=function(b,c,d,e){var g="fetchItemsFromIndex id="+b+" index="+c+" countBefore="+d+" countAfter="+e;f(g),nd[++od%nd.length]={kind:"itemsFromIndex",index:c,countBefore:d,countAfter:e};var h=a.itemsFromIndex(c,d,e);return u(g),h}),a.itemsFromStart&&(jd=function(b,c){var d="fetchItemsFromStart id="+b+" count="+c;f(d),nd[++od%nd.length]={kind:"itemsFromStart",count:c};var e=a.itemsFromStart(c);return u(d),e}),a.itemsFromEnd&&(kd=function(b,c){var d="fetchItemsFromEnd id="+b+" count="+c;f(d),nd[++od%nd.length]={kind:"itemsFromEnd",count:c};var e=a.itemsFromEnd(c);return u(d),e}),a.itemsFromDescription&&(ld=function(b,c,d,e){var g="fetchItemsFromDescription id="+b+" desc="+c+" countBefore="+d+" countAfter="+e;f(g),nd[++od%nd.length]={kind:"itemsFromDescription",description:c,countBefore:d,countAfter:e};var h=a.itemsFromDescription(c,d,e);return u(g),h});var pd=++n,qd=this,rd={insert:"insert",change:"change",move:"move",remove:"remove"};if(!a)throw new e("WinJS.UI.ListDataSource.ListDataAdapterIsInvalid",s.listDataAdapterIsInvalid);hc=a.compareByIdentity?0:200,c&&"number"==typeof c.cacheSize&&(hc=c.cacheSize),a.setNotificationHandler&&(gc=new ec,a.setNotificationHandler(gc)),ic=o.ready,kc=!1,lc={},mc=0,nc=1,oc=0,Cc=0,Dc=!1,Ec=1,Hc={},Ic={},fc(),this.createListBinding=function(a){function b(a){a&&a.cursorCount++}function c(a){a&&0===--a.cursorCount&&ea(a)}function d(a){b(a),c(m),m=a}function e(a,b){a===m&&(b||(b=!m||m.lastInSequence||m.next===Lc?null:m.next),d(b))}function f(a){var b=a.bindingMap,c=b[l].handle;delete a.bindingMap[l];var d=!0,e=!0;for(var f in b)if(d=!1,c&&b[f].handle===c){e=!1;break}c&&e&&delete Nc[c],d&&(a.bindingMap=null,ea(a))}function g(a,b){a.bindingMap||(a.bindingMap={});var c=a.bindingMap[l];if(c?c.count++:a.bindingMap[l]={bindingRecord:lc[l],count:1},a.fetchListeners){var d=a.fetchListeners[b];d&&(d.retained=!0)}}function h(a){var b=Nc[a];if(b){var c=b.bindingMap[l];if(0===--c.count){var d=b.fetchListeners;for(var e in d){var g=d[e];g.listBindingID===l&&(g.retained=!1)}f(b)}}}function i(b){var c=ja(b,l),d=(oc++).toString(),e=za(b,"fetchListeners",d,l,function(a,b){a(ka(b,c))});return X(e,b,c),a&&(e.retain=function(){return o._retainItem(b,d),e},e.release=function(){o._releaseItem(c)}),e}function k(b){var c;return!n&&b?c=i(b):(n?(c=new j(function(){}),c.cancel()):c=j.wrap(null),W(c,null),a&&(c.retain=function(){return c},c.release=function(){})),d(b),c}var l=(mc++).toString(),m=null,n=!1;lc[l]={notificationHandler:a,notificationsSent:!1,adjustCurrentSlot:e,itemPromiseFromKnownSlot:i};var o={_retainItem:function(a,b){g(a,b)},_releaseItem:function(a){h(a)},jumpToItem:function(a){return k(a?Nc[a.handle]:null)},current:function(){return k(m)},previous:function(){return k(m?Fa(m):null)},next:function(){return k(m?Ga(m):null)},releaseItem:function(a){this._releaseItem(a.handle)},release:function(){n=!0,c(m),m=null;for(var a=Kc.next;a!==Mc;){var b=a.next,d=a.fetchListeners;for(var e in d){var g=d[e];g.listBindingID===l&&(g.promise.cancel(),delete d[e])}a.bindingMap&&a.bindingMap[l]&&f(a),a=b}delete lc[l]}};return(jd||id)&&(o.first=function(){return k(Ga(Kc))}),kd&&(o.last=function(){return k(Fa(Lc))}),hd&&(o.fromKey=function(a,b){return k(Ka(a,b))}),(id||jd&&hd)&&(o.fromIndex=function(a){return k(La(a))}),ld&&(o.fromDescription=function(a){return k(Ma(a))}),o},this.invalidateAll=function(){return xb()};var sd=function(a,b){var c=new l;a.then(function(a){c.complete(a)},function(a){c.error(a)});var d=c.promise.then(null,function(c){return"WinJS.UI.VirtualizedDataSource.resetCount"===c.name?(pc=null,a=b.getCount()):j.wrapError(c)}),f=0,g={get:function(){return f++,new j(function(a,b){d.then(a,b)},function(){0===--f&&(c.promise.cancel(),a.cancel(),g===pc&&(pc=null))})},reset:function(){c.error(new e("WinJS.UI.VirtualizedDataSource.resetCount"))},cancel:function(){c.promise.cancel(),a.cancel(),g===pc&&(pc=null)}};return g};this.getCount=function(){if(a.getCount){var b=this;return j.wrap().then(function(){if(sc||vc)return Jc;var c;if(!pc){var d;c=a.getCount();var e;c.then(function(){pc===d&&(pc=null),e=!0},function(){pc===d&&(pc=null),e=!0}),zc=0,e||(d=pc=sd(c,b))}return pc?pc.get():c}).then(function(a){if(!w(a)&&void 0!==a)throw new e("WinJS.UI.ListDataSource.InvalidRequestedCountReturned",s.invalidRequestedCountReturned);return a!==Jc&&(Jc===p.unknown?Jc=a:(la(a),ia())),0===a&&(Kc.next!==Lc||Lc.next!==Mc?wb():Kc.lastInSequence&&(H(Kc),Lc.index=0)),a}).then(null,function(a){return a.name===m.CountError.noResponse?(Na(o.failure),Jc):j.wrapError(a)})}return j.wrap(Jc)},hd&&(this.itemFromKey=function(a,b){return Ha(Ka(a,b))}),(id||jd&&hd)&&(this.itemFromIndex=function(a){return Ha(La(a))}),ld&&(this.itemFromDescription=function(a){return Ha(Ma(a))}),this.beginEdits=function(){sc=!0},a.insertAtStart&&(this.insertAtStart=function(b,c){return cc(b,c,Kc.lastInSequence?null:Kc.next,!0,function(){return a.insertAtStart(b,c)})}),a.insertBefore&&(this.insertBefore=function(b,c,d){var e=ac(d);return cc(b,c,e,!1,function(){return a.insertBefore(b,c,d,ua(e))})}),a.insertAfter&&(this.insertAfter=function(b,c,d){var e=ac(d);return cc(b,c,e?e.next:null,!0,function(){return a.insertAfter(b,c,d,ua(e))})}),a.insertAtEnd&&(this.insertAtEnd=function(b,c){return cc(b,c,Lc.firstInSequence?null:Lc,!1,function(){return a.insertAtEnd(b,c)})}),a.change&&(this.change=function(b,c){var d=ac(b);return new j(function(e,f){var g;Vb(function(){return a.change(b,c,ua(d))},rd.change,e,f,null,function(){g=d.item,d.itemNew={key:b,data:c},g?qa(d):Ba(d)},function(){g?(d.itemNew=g,qa(d)):wb()})})}),a.moveToStart&&(this.moveToStart=function(b){var c=ac(b);return dc(c,Kc.next,!0,function(){return a.moveToStart(b,ua(c))})}),a.moveBefore&&(this.moveBefore=function(b,c){var d=ac(b),e=ac(c);return dc(d,e,!1,function(){return a.moveBefore(b,c,ua(d),ua(e))})}),a.moveAfter&&(this.moveAfter=function(b,c){var d=ac(b),e=ac(c);return dc(d,e.next,!0,function(){return a.moveAfter(b,c,ua(d),ua(e))})}),a.moveToEnd&&(this.moveToEnd=function(b){var c=ac(b);return dc(c,Lc,!1,function(){return a.moveToEnd(b,ua(c))})}),a.remove&&(this.remove=function(b){Ia(b);var c=Oc[b];return new j(function(d,e){var f,g,h;Vb(function(){return a.remove(b,ua(c))},rd.remove,d,e,null,function(){c&&(f=c.next,g=c.firstInSequence,h=c.lastInSequence,wa(c,-1),sa(c,!1))},function(){c&&(R(c,f,!g,!h),wa(c,1),pa(c))})})}),this.endEdits=function(){sc=!1,$b()}}var h=100,n=1,o=m.DataSourceStatus,p=m.CountResult,q=m.FetchError,r=m.EditError,s={get listDataAdapterIsInvalid(){return"Invalid argument: listDataAdapter must be an object or an array."},get indexIsInvalid(){return"Invalid argument: index must be a non-negative integer."},get keyIsInvalid(){return"Invalid argument: key must be a string."},get invalidItemReturned(){return"Error: data adapter returned item that is not an object."},get invalidKeyReturned(){return"Error: data adapter returned item with undefined or null key."},get invalidIndexReturned(){return"Error: data adapter should return undefined, null or a non-negative integer for the index."},get invalidCountReturned(){return"Error: data adapter should return undefined, null, CountResult.unknown, or a non-negative integer for the count."},get invalidRequestedCountReturned(){return"Error: data adapter should return CountResult.unknown, CountResult.failure, or a non-negative integer for the count."},get refreshCycleIdentified(){return"refresh cycle found, likely data inconsistency"}},t="statuschanged",u=c.Class.define(function(){},{_baseDataSourceConstructor:a,_isVirtualizedDataSource:!0},{supportedForProcessing:!1});return c.Class.mix(u,f.eventMixin),u})})}),d("WinJS/VirtualizedDataSource/_GroupDataSource",["exports","../Core/_Base","../Core/_ErrorFromName","../Promise","../Scheduler","../Utilities/_UI","./_VirtualizedDataSourceImpl"],function(a,b,c,d,e,f,g){"use strict";b.Namespace._moduleDefine(a,"WinJS.UI",{_GroupDataSource:b.Namespace._lazy(function(){function a(){return new c(f.FetchError.doesNotExist)}function h(a){return a&&a.firstReached&&a.lastReached}var i=101,j=b.Class.define(function(a){this._groupDataAdapter=a},{beginNotifications:function(){},inserted:function(a,b,c){this._groupDataAdapter._inserted(a,b,c)},changed:function(a,b){this._groupDataAdapter._changed(a,b)},moved:function(a,b,c){this._groupDataAdapter._moved(a,b,c)},removed:function(a,b){this._groupDataAdapter._removed(a,b)},countChanged:function(a,b){0===a&&0!==b&&this._groupDataAdapter.invalidateGroups()},indexChanged:function(a,b,c){this._groupDataAdapter._indexChanged(a,b,c)},endNotifications:function(){this._groupDataAdapter._endNotifications()},reload:function(){this._groupDataAdapter._reload()}},{supportedForProcessing:!1}),k=b.Class.define(function(a,b,c,d){this._listBinding=a.createListBinding(new j(this)),this._groupKey=b,this._groupData=c,this._initializeState(),this._batchSize=i,this._count=null,d&&("number"==typeof d.groupCountEstimate&&(this._count=d.groupCountEstimate<0?null:Math.max(d.groupCountEstimate,1)),"number"==typeof d.batchSize&&(this._batchSize=d.batchSize+1)),this._listBinding.last&&(this.itemsFromEnd=function(a){var b=this;return this._fetchItems(function(){return b._lastGroup},function(a){if(a)return!1;var c=b._count;return+c!==c?!0:c>0?!0:void 0},function(){b._fetchBatch(b._listBinding.last(),b._batchSize-1,0)},a-1,0)})},{setNotificationHandler:function(a){this._listDataNotificationHandler=a},compareByIdentity:!0,itemsFromKey:function(a,b,c,d){var e=this;return this._fetchItems(function(){return e._keyMap[a]},function(){var a=e._lastGroup;return a?+a.index!==a.index?!0:void 0:!0},function(){d=d||{};var a="string"==typeof d.groupMemberKey&&e._listBinding.fromKey?e._listBinding.fromKey(d.groupMemberKey):"number"==typeof d.groupMemberIndex&&e._listBinding.fromIndex?e._listBinding.fromIndex(d.groupMemberIndex):void 0!==d.groupMemberDescription&&e._listBinding.fromDescription?e._listBinding.fromDescription(d.groupMemberDescription):e._listBinding.first(),b=Math.floor(.5*(e._batchSize-1));e._fetchBatch(a,b,e._batchSize-1-b)},b,c)},itemsFromIndex:function(a,b,c){var d=this;return this._fetchItems(function(){return d._indexMap[a]},function(){var b=d._lastGroup;return b?+b.index!==b.index?!0:a<=b.index?!0:void 0:!0},function(){d._fetchNextIndex()},b,c)},getCount:function(){if(this._lastGroup&&"number"==typeof this._lastGroup.index)return d.wrap(this._count);var a=this,b=new d(function(b){var c={initialBatch:function(){a._fetchNextIndex()},getGroup:function(){return null},countBefore:0,countAfter:0,complete:function(c){c&&(a._count=0);var d=a._count;return"number"==typeof d?(b(d),!0):!1}};a._fetchQueue.push(c),a._itemBatch||a._continueFetch(c)});return"number"==typeof this._count?d.wrap(this._count):b},invalidateGroups:function(){this._beginRefresh(),this._initializeState()},_initializeState:function(){this._count=null,this._indexMax=null,this._keyMap={},this._indexMap={},this._lastGroup=null,this._handleMap={},this._fetchQueue=[],this._itemBatch=null,this._itemsToFetch=0,this._indicesChanged=!1},_releaseItem:function(a){delete this._handleMap[a.handle],this._listBinding.releaseItem(a)},_processBatch:function(){for(var a=null,b=null,c=null,d=0,f=!0,g=0;g<this._batchSize;g++){var h=this._itemBatch[g],i=h?this._groupKey(h):null;if(h&&(f=!1),b&&null!==i&&i===b.key)d++,b.lastItem===a?(b.lastItem.handle!==b.firstItem.handle&&this._releaseItem(b.lastItem),b.lastItem=h,this._handleMap[h.handle]=b,b.size++):b.firstItem===h&&(b.firstItem.handle!==b.lastItem.handle&&this._releaseItem(b.firstItem),b.firstItem=c,this._handleMap[c.handle]=b,b.size+=d);else{var j=null;if(b&&(b.lastReached=!0,"number"==typeof b.index&&(j=b.index+1)),h){var k=this._keyMap[i];if(k||(k={key:i,data:this._groupData(h),firstItem:h,lastItem:h,size:1},this._keyMap[k.key]=k,this._handleMap[h.handle]=k),g>0&&(k.firstReached=!0,b||(j=0)),"number"!=typeof k.index&&"number"==typeof j){for(var l=k;l;l=this._nextGroup(l))l.index=j,this._indexMap[j]=l,j++;this._indexMax=j,"number"==typeof this._count&&!this._lastGroup&&this._count<=this._indexMax&&(this._count=this._indexMax+1)}c=h,d=0,b=k}else b&&(this._lastGroup=b,"number"==typeof b.index&&(this._count=b.index+1),this._listDataNotificationHandler.invalidateAll(),b=null)}a=h}var m;for(m=this._fetchQueue[0];m&&m.complete(f);m=this._fetchQueue[0])this._fetchQueue.splice(0,1);if(m){var n=this;e.schedule(function(){n._continueFetch(m)},e.Priority.normal,null,"WinJS.UI._GroupDataSource._continueFetch")}else this._itemBatch=null},_processPromise:function(a,b){a.retain(),this._itemBatch[b]=a;var c=this;a.then(function(a){c._itemBatch[b]=a,0===--c._itemsToFetch&&c._processBatch()})},_fetchBatch:function(a,b){this._itemBatch=new Array(this._batchSize),this._itemsToFetch=this._batchSize,this._processPromise(a,b);var c;for(this._listBinding.jumpToItem(a),c=b-1;c>=0;c--)this._processPromise(this._listBinding.previous(),c);for(this._listBinding.jumpToItem(a),c=b+1;c<this._batchSize;c++)this._processPromise(this._listBinding.next(),c)},_fetchAdjacent:function(a,b){this._fetchBatch(this._listBinding.fromKey?this._listBinding.fromKey(a.key):this._listBinding.fromIndex(a.index),b?0:this._batchSize-1,b?this._batchSize-1:0)},_fetchNextIndex:function(){var a=this._indexMap[this._indexMax-1];a?this._fetchAdjacent(a.lastItem,!0):this._fetchBatch(this._listBinding.first(),1,this._batchSize-2)},_continueFetch:function(a){if