1 |
- Ext.define('Ext.data.proxy.Sql',{alias:'proxy.sql',extend:'Ext.data.proxy.Client',alternateClassName:'Ext.data.proxy.SQL',isSQLProxy:!0,config:{reader:null,writer:null,table:null,database:'Sencha'},_createOptions:{silent:!0,dirty:!1},updateModel:function(b){var a=this,d,g,c,e,f;if(b){a.uniqueIdStrategy=b.identifier.isUnique;if(!a.getTable()){d=b.entityName;a.setTable(d.slice(d.lastIndexOf('.')+1))}a.columns=e=a.getPersistedModelColumns(b);a.quotedColumns=f=[];for(c=0,g=e.length;c<g;++c){f.push('"'+e[c]+'"')}}a.callParent([b])},setException:function(a,b){a.setException(b)},create:function(a){var d=this,e=a.getRecords(),b,c;a.setStarted();d.executeTransaction(function(f){d.insertRecords(e,f,function(e,d){b=e;c=d})},function(b){a.setException(b)},function(){if(c){a.setException(statementError)}else {a.process(b)}})},read:function(a){var e=this,i=e.getModel(),f=a.getRecords(),d=f?f[0]:null,g,h,b,c;if(d&&!d.phantom){b=d.getId()}else {b=a.getId()}if(b!==undefined){c={idOnly:!0,id:b}}else {c={page:a.getPage(),start:a.getStart(),limit:a.getLimit(),sorters:a.getSorters(),filters:a.getFilters()}}a.setStarted();e.executeTransaction(function(b){e.selectRecords(b,c,function(d,c){g=d;h=c})},function(b){a.setException(b)},function(){if(h){a.setException(statementError)}else {a.process(g)}})},update:function(a){var d=this,e=a.getRecords(),b,c;a.setStarted();d.executeTransaction(function(f){d.updateRecords(f,e,function(e,d){b=e;c=d})},function(b){a.setException(b)},function(){if(c){a.setException(statementError)}else {a.process(b)}})},erase:function(a){var d=this,e=a.getRecords(),c,b;a.setStarted();d.executeTransaction(function(f){d.destroyRecords(f,e,function(e,d){c=e;b=d})},function(b){a.setException(b)},function(){if(b){a.setException(b)}else {a.process(c)}})},createTable:function(b){var a=this;if(!b){a.executeTransaction(function(c){a.createTable(c)});return}a.executeStatement(b,'CREATE TABLE IF NOT EXISTS "'+a.getTable()+'" ('+a.getSchemaString()+')',function(){a.tableExists=!0})},insertRecords:function(e,o,q){var a=this,i=a.columns,n=e.length,h=0,m=a.uniqueIdStrategy,p=a._createOptions,r=e.length,c,f,g,l,k,j,b,d;d=function(c){++h;if(h===n){q.call(a,new Ext.data.ResultSet({success:!b}),b)}};g=Ext.String.repeat('?',i.length,',');l='INSERT INTO "'+a.getTable()+'" ('+a.quotedColumns.join(',')+') VALUES ('+g+')';for(c=0;c<r;++c){f=e[c];k=a.getRecordData(f);j=a.getColumnValues(i,k);(function(c){a.executeStatement(o,l,j,function(b,a){if(!m){c.setId(a.insertId,p)}d()},function(f,a){if(!b){b=[]}b.push(a);d()})})(f)}},selectRecords:function(s,d,r,v){var e=this,m=e.getModel(),t=m.idProperty,j='SELECT * FROM "'+e.getTable()+'"',n=' WHERE ',q=' ORDER BY ',i=[],l,k,o,b,g,u,h,p,c,a,f;if(d.idOnly){j+=n+'"'+t+'" = ?';i.push(d)}else {k=d.filters;g=k&&k.length;if(g){for(b=0;b<g;b++){h=k[b];c=h.getProperty();f=e.toSqlValue(h.getValue(),m.getField(c));a=h.getOperator();if(c!==null){a=a||'=';o='?';if(a==='like'||(a==='='&&h.getAnyMatch())){a='LIKE';f='%'+f+'%'}if(a==='in'||a==='notin'){if(a==='notin'){a='not in'}o='('+Ext.String.repeat('?',f.length,',')+')';i=i.concat(f)}else {i.push(f)}j+=n+'"'+c+'" '+a+' '+o;n=' AND '}}}l=d.sorters;g=l&&l.length;if(g){for(b=0;b<g;b++){p=l[b];c=p.getProperty();if(c!==null){j+=q+'"'+c+'" '+p.getDirection();q=', '}}}if(d.page!==undefined){j+=' LIMIT '+parseInt(d.start,10)+', '+parseInt(d.limit,10)}}e.executeStatement(s,j,i,function(q,p){var k=p.rows,c=k.length,i=[],j=m.fields,o=j.length,n,g,a,l,b,f,h;for(a=0,l=c;a<l;++a){n=k.item(a);g={};for(b=0;b<o;++b){f=j[b];h=f.name;g[h]=e.fromSqlValue(n[h],f)}i.push(new m(g))}r.call(e,new Ext.data.ResultSet({records:i,success:!0,total:c,count:c}))},function(b,a){r.call(e,new Ext.data.ResultSet({success:!1,total:0,count:0}),a)})},updateRecords:function(o,g,p){var a=this,q=a.columns,i=a.quotedColumns,n=g.length,j=0,k=[],s=a._createOptions,e,b,d,r,m,l,h,c,f;f=function(b){++j;if(j===n){p.call(a,new Ext.data.ResultSet({success:!c}),c)}};for(b=0,e=i.length;b<e;b++){k.push(i[b]+' = ?')}m='UPDATE "'+a.getTable()+'" SET '+k.join(', ')+' WHERE "'+a.getModel().idProperty+'" = ?';for(b=0,e=g.length;b<e;++b){d=g[b];l=a.getRecordData(d);h=a.getColumnValues(q,l);h.push(d.getId());(function(b){a.executeStatement(o,m,h,function(a,c){f()},function(d,a){if(!c){c=[]}c.push(a);f()})})(d)}},destroyRecords:function(h,d,c){var a=this,o=a.getTable(),i=a.getModel().idProperty,f=[],e=[],l=[],k=d.length,j='"'+i+'" = ?',b,n,m,g;for(b=0;b<k;b++){f.push(j);e.push(d[b].getId())}g='DELETE FROM "'+a.getTable()+'" WHERE '+f.join(' OR ');a.executeStatement(h,g,e,function(b,e){c.call(a,new Ext.data.ResultSet({success:!0}))},function(e,b){c.call(a,new Ext.data.ResultSet({success:!1}),b)})},getRecordData:function(d){var g=this,e=d.fields,i=d.idProperty,h=g.uniqueIdStrategy,f={},k=e.length,j=d.data,c,b,l,a;for(c=0;c<k;++c){a=e[c];if(a.persist!==!1){b=a.name;if(b===i&&!h){continue}f[b]=g.toSqlValue(j[b],a)}}return f},getColumnValues:function(c,f){var g=c.length,e=[],a,d,b;for(a=0;a<g;a++){d=c[a];b=f[d];if(b!==undefined){e.push(b)}}return e},getSchemaString:function(){var c=this,b=[],i=c.getModel(),e=i.idProperty,h=i.fields,j=c.uniqueIdStrategy,k=h.length,d,f,a,g;for(d=0;d<k;d++){f=h[d];a=f.getType();g=f.name;if(g===e){if(j){a=c.convertToSqlType(a);b.unshift('"'+e+'" '+a)}else {b.unshift('"'+e+'" INTEGER PRIMARY KEY AUTOINCREMENT')}}else {a=c.convertToSqlType(a);b.push('"'+g+'" '+a)}}return b.join(', ')},convertToSqlType:function(a){switch(a.toLowerCase()){case 'string':case 'auto':return 'TEXT';case 'int':case 'date':return 'INTEGER';case 'float':return 'REAL';case 'bool':return 'NUMERIC';}},dropTable:function(){var a=this;a.executeTransaction(function(b){a.executeStatement(b,'DROP TABLE "'+a.getTable()+'"',function(){a.tableExists=!1})},null,null,!1)},getDatabaseObject:function(){return window.openDatabase(this.getDatabase(),'1.0','Sencha Database',5*1024*1024)},privates:{executeStatement:function(d,f,e,b,a){var c=this;d.executeSql(f,e,b?function(){b.apply(c,arguments)}:null,a?function(){a.apply(c,arguments)}:null)},executeTransaction:function(e,c,d,b){var a=this;b=b!==!1;a.getDatabaseObject().transaction(e?function(f){if(b&&!a.tableExists){a.createTable(f)}e.apply(a,arguments)}:null,c?function(){c.apply(a,arguments)}:null,d?function(){d.apply(a,arguments)}:null)},fromSqlValue:function(a,b){if(b.isDateField){a=a?new Date(a):null}else if(b.isBooleanField){a=a===1}return a},getPersistedModelColumns:function(e){var d=e.fields,g=this.uniqueIdStrategy,h=e.idProperty,c=[],i=d.length,b,a,f;for(b=0;b<i;++b){a=d[b];f=a.name;if(f===h&&!g){continue}if(a.persist!==!1){c.push(a.name)}}return c},toSqlValue:function(a,b){if(b.isDateField){a=a?a.getTime():null}else if(b.isBooleanField){a=a?1:0}return a}}});Ext.define('Ext.device.accelerometer.Abstract',{config:{frequency:10000},getCurrentAcceleration:function(a){return a},watchAcceleration:function(a){var b=Ext.device.accelerometer.Abstract.prototype.config;a=Ext.applyIf(a,{frequency:b.frequency});return a},clearWatch:Ext.emptyFn});Ext.define('Ext.device.accelerometer.Cordova',{alternateClassName:'Ext.device.accelerometer.PhoneGap',extend:'Ext.device.accelerometer.Abstract',activeWatchID:null,getCurrentAcceleration:function(a){a=this.callParent(arguments);navigator.accelerometer.getCurrentAcceleration(a.success,a.failure);return a},watchAcceleration:function(a){a=this.callParent(arguments);if(this.activeWatchID){this.clearWatch()}this.activeWatchID=navigator.accelerometer.watchAcceleration(a.callback,a.failure,a);return a},clearWatch:function(){if(this.activeWatchID){navigator.accelerometer.clearWatch(this.activeWatchID);this.activeWatchID=null}}});Ext.define('Ext.device.accelerometer.Simulator',{extend:'Ext.device.accelerometer.Abstract'});Ext.define('Ext.device.Accelerometer',{singleton:!0,requires:['Ext.device.accelerometer.Cordova','Ext.device.accelerometer.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.accelerometer.Cordova')}return Ext.create('Ext.device.accelerometer.Simulator')}});Ext.define('Ext.device.communicator.Default',{SERVER_URL:'http://localhost:3000',callbackDataMap:{},callbackIdMap:{},idSeed:0,globalScopeId:'0',generateId:function(){return String(++this.idSeed)},getId:function(b){var a=b.$callbackId;if(!a){b.$callbackId=a=this.generateId()}return a},getCallbackId:function(f,c){var b=this.callbackIdMap,h=this.callbackDataMap,e,a,d,g;if(!c){a=this.globalScopeId}else if(c.isIdentifiable){a=c.getId()}else {a=this.getId(c)}d=this.getId(f);if(!b[a]){b[a]={}}if(!b[a][d]){e=this.generateId();g={callback:f,scope:c};b[a][d]=e;h[e]=g}return b[a][d]},getCallbackData:function(a){return this.callbackDataMap[a]},invoke:function(c,b){var a=this.getCallbackData(c);a.callback.apply(a.scope,b)},send:function(a){var b,f,c,d;if(!a){a={}}else if(a.callbacks){b=a.callbacks;f=a.scope;delete a.callbacks;delete a.scope;for(c in b){if(b.hasOwnProperty(c)){d=b[c];if(typeof d==='function'){a[c]=this.getCallbackId(d,f)}}}}a.__source=document.location.href;var e=this.doSend(a);return (e&&e.length>0)?JSON.parse(e):null},doSend:function(a){var b=new XMLHttpRequest();b.open('GET',this.SERVER_URL+'?'+Ext.Object.toQueryString(a)+'&_dc='+new Date().getTime(),!1);try{b.send(null);return b.responseText}catch(c){if(a.failure){this.invoke(a.failure)}else if(a.callback){this.invoke(a.callback)}}}});Ext.define('Ext.device.communicator.Android',{extend:'Ext.device.communicator.Default',doSend:function(a){return window.Sencha.action(JSON.stringify(a))}});Ext.define('Ext.device.Communicator',{requires:['Ext.device.communicator.Default','Ext.device.communicator.Android'],singleton:!0,constructor:function(){if(Ext.os.is.Android){return new Ext.device.communicator.Android()}return new Ext.device.communicator.Default()}});Ext.define('Ext.device.analytics.Abstract',{config:{accountID:null},updateAccountID:function(a){if(a){window.plugins.googleAnalyticsPlugin.startTrackerWithAccountID(a)}},registerAccount:function(a){this.setAccountID(a)},trackEvent:Ext.emptyFn,trackPageview:Ext.emptyFn});Ext.define('Ext.device.analytics.Cordova',{extend:'Ext.device.analytics.Abstract',trackEvent:function(a){if(!this.getAccountID()){return}window.plugins.googleAnalyticsPlugin.trackEvent(a.category,a.action,a.label,a.value,a.nonInteraction)},trackPageview:function(a){if(!this.getAccountID()){return}window.plugins.googleAnalyticsPlugin.trackPageview(a)}});Ext.define('Ext.device.Analytics',{alternateClassName:'Ext.ux.device.Analytics',singleton:!0,requires:['Ext.device.Communicator','Ext.device.analytics.*'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.analytics.Cordova')}else {return Ext.create('Ext.device.analytics.Abstract')}}});Ext.define('Ext.device.browser.Abstract',{open:Ext.emptyFn,close:Ext.emptyFn});Ext.define('Ext.device.browser.Cordova',{extend:'Ext.device.browser.Abstract',open:function(a){if(!this._window){this._window=Ext.create('Ext.device.browser.Window')}this._window.open(a);return this._window},close:function(){if(!this._window){return}this._window.close()}});Ext.define('Ext.device.browser.Simulator',{open:function(a){window.open(a.url,'_blank')},close:Ext.emptyFn});Ext.define('Ext.device.Browser',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.browser.Cordova','Ext.device.browser.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.browser.Cordova')}return Ext.create('Ext.device.browser.Simulator')}});Ext.define('Ext.device.camera.Abstract',{source:{library:0,camera:1,album:2},destination:{data:0,file:1,'native':2},encoding:{jpeg:0,jpg:0,png:1},media:{picture:0,video:1,all:2},direction:{back:0,front:1},capture:Ext.emptyFn,getPicture:Ext.emptyFn,cleanup:Ext.emptyFn});Ext.define('Ext.device.camera.Cordova',{alternateClassName:'Ext.device.camera.PhoneGap',extend:'Ext.device.camera.Abstract',getPicture:function(a,b,c){try{navigator.camera.getPicture(a,b,c)}catch(d){alert(d)}},cleanup:function(a,b){try{navigator.camera.cleanup(a,b)}catch(c){alert(c)}},capture:function(a){var f=a.success,g=a.failure,h=a.scope,k=this.source,i=this.destination,j=this.encoding,e=a.source,c=a.destination,d=a.encoding,b={};if(h){f=Ext.Function.bind(f,h);g=Ext.Function.bind(g,h)}if(e!==undefined){b.sourceType=k.hasOwnProperty(e)?k[e]:e}if(c!==undefined){b.destinationType=i.hasOwnProperty(c)?i[c]:c}if(d!==undefined){b.encodingType=j.hasOwnProperty(d)?j[d]:d}if('quality' in a){b.quality=a.quality}if('width' in a){b.targetWidth=a.width}if('height' in a){b.targetHeight=a.height}this.getPicture(f,g,b)}});Ext.define('Ext.device.camera.Simulator',{extend:'Ext.device.camera.Abstract',config:{samples:[{success:'http://www.sencha.com/img/sencha-large.png'}]},constructor:function(a){this.initConfig(a)},updateSamples:function(a){this.sampleIndex=0},capture:function(b){var a=this.sampleIndex,e=this.getSamples(),h=e.length,c=e[a],g=b.scope,f=b.success,d=b.failure;if('success' in c){if(f){f.call(g,c.success)}}else {if(d){d.call(g,c.failure)}}if(++a>h-1){a=0}this.sampleIndex=a}});Ext.define('Ext.device.Camera',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.camera.Cordova','Ext.device.camera.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.camera.Cordova')}}return Ext.create('Ext.device.camera.Simulator')}});Ext.define('Ext.device.capture.Cordova',{captureAudio:function(a){var b={limit:a.limit,duration:a.maximumDuration};navigator.device.capture.captureAudio(a.success,a.failure,b)},captureVideo:function(a){var b={limit:a.limit,duration:a.maximumDuration};navigator.device.capture.captureVideo(a.success,a.failure,b)}});Ext.define('Ext.device.capture.Abstract',{alternateClassName:'Ext.device.capture.Simulator',captureAudio:Ext.emptyFn,captureVideo:Ext.emptyFn});Ext.define('Ext.device.Capture',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.capture.Cordova','Ext.device.capture.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.capture.Cordova')}return Ext.create('Ext.device.capture.Simulator')}});Ext.define('Ext.device.compass.Abstract',{config:{frequency:100},getHeadingAvailable:function(a){return a},getCurrentHeading:function(a){return a},watchHeading:function(a){var b=Ext.device.compass.Abstract.prototype.config;a=Ext.applyIf(a,{frequency:b.frequency});return a},clearWatch:Ext.emptyFn});Ext.define('Ext.device.compass.Cordova',{alternateClassName:'Ext.device.compass.PhoneGap',extend:'Ext.device.compass.Abstract',activeWatchID:null,getHeadingAvailable:function(a){var b=function(b){if(b.hasOwnProperty("code")){a.callback.call(a.scope||this,!1)}else {a.callback.call(a.scope||this,!0)}};this.getCurrentHeading({success:b,failure:b})},getCurrentHeading:function(a){a=this.callParent(arguments);navigator.compass.getCurrentHeading(a.success,a.failure);return a},watchHeading:function(a){a=this.callParent(arguments);if(this.activeWatchID){this.clearWatch()}this.activeWatchID=navigator.compass.watchHeading(a.callback,a.failure,a);return a},clearWatch:function(){if(this.activeWatchID){navigator.compass.clearWatch(this.activeWatchID);this.activeWatchID=null}}});Ext.define('Ext.device.compass.Simulator',{extend:'Ext.device.compass.Abstract'});Ext.define('Ext.device.Compass',{singleton:!0,requires:['Ext.device.compass.Cordova','Ext.device.compass.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.compass.Cordova')}return Ext.create('Ext.device.compass.Simulator')}});Ext.define('Ext.device.connection.Abstract',{extend:'Ext.Evented',mixins:['Ext.mixin.Observable'],config:{online:!1,type:null},UNKNOWN:'Unknown connection',ETHERNET:'Ethernet connection',WIFI:'WiFi connection',CELL_2G:'Cell 2G connection',CELL_3G:'Cell 3G connection',CELL_4G:'Cell 4G connection',NONE:'No network connection',isOnline:function(){return this.getOnline()}});Ext.define('Ext.device.connection.Cordova',{alternateClassName:'Ext.device.connection.PhoneGap',extend:'Ext.device.connection.Abstract',constructor:function(){var a=this;document.addEventListener('online',function(){a.fireEvent('online',a)});document.addEventListener('offline',function(){a.fireEvent('offline',a)})},syncOnline:function(){var a=navigator.connection.type;this._type=a;this._online=a!=Connection.NONE},getOnline:function(){this.syncOnline();return this._online},getType:function(){this.syncOnline();return this._type}});Ext.define('Ext.device.connection.Simulator',{extend:'Ext.device.connection.Abstract',getOnline:function(){this._online=navigator.onLine;this._type=Ext.device.Connection.UNKNOWN;return this._online}});Ext.define('Ext.device.Connection',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.connection.Cordova','Ext.device.connection.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.connection.Cordova')}}return Ext.create('Ext.device.connection.Simulator')}});Ext.define('Ext.device.contacts.Abstract',{mixins:['Ext.mixin.Observable'],config:{includeImages:!1},getContacts:function(a){if(!this._store){this._store=[{first:'Peter',last:'Venkman',emails:{work:'peter.venkman@gb.com'}},{first:'Egon',last:'Spengler',emails:{work:'egon.spengler@gb.com'}}]}a.success.call(a.scope||this,this._store)},getThumbnail:function(a){a.callback.call(a.scope||this,"")},getLocalizedLabel:function(a){a.callback.call(a.scope||this,a.label.toUpperCase(),a.label)}});Ext.define('Ext.device.contacts.Cordova',{alternateClassName:'Ext.device.contacts.PhoneGap',extend:'Ext.device.contacts.Abstract',getContacts:function(a){if(!a){Ext.Logger.warn('Ext.device.Contacts#getContacts: You must specify a `config` object.');return !1}if(!a.success){Ext.Logger.warn('Ext.device.Contacts#getContacts: You must specify a `success` method.');return !1}if(!a.fields){a.fields=["*"]}if(!Ext.isArray(a.fields)){a.fields=[a.fields]}if(Ext.isEmpty(a.multiple)){a.multiple=!0}navigator.contacts.find(a.fields,a.success,a.failure,a)}});Ext.define('Ext.device.Contacts',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.contacts.Cordova'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.contacts.Cordova')}}return Ext.create('Ext.device.contacts.Abstract')}});Ext.define('Ext.device.device.Abstract',{mixins:['Ext.mixin.Observable'],name:'not available',uuid:'anonymous',platform:Ext.os.name,scheme:!1,openURL:function(a){window.location=a}});Ext.define('Ext.device.device.Cordova',{alternateClassName:'Ext.device.device.PhoneGap',extend:'Ext.device.device.Abstract',availableListeners:['pause','resume','backbutton','batterycritical','batterylow','batterystatus','menubutton','searchbutton','startcallbutton','endcallbutton','volumeupbutton','volumedownbutton'],constructor:function(){if(Ext.isReady){this.onReady()}else {Ext.onReady(this.onReady,this,{single:!0})}},onReady:function(){var b=this,a=window.device;b.name=a.name||a.model;b.cordova=a.cordova;b.platform=a.platform||Ext.os.name;b.uuid=a.uuid;b.version=a.version;b.model=a.model},privates:{doAddListener:function(b){var a=this;if(!a.addedListeners){a.addedListeners=[]}if(a.availableListeners.indexOf(b)!=-1&&a.addedListeners.indexOf(b)==-1){a.addedListeners.push(b);document.addEventListener(b,function(){a.fireEvent(b,a)})}Ext.device.Device.mixins.observable.doAddListener.apply(Ext.device.Device.mixins.observable,arguments)}}});Ext.define('Ext.device.device.Simulator',{extend:'Ext.device.device.Abstract'});Ext.define('Ext.device.Device',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.device.Cordova','Ext.device.device.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.device.Cordova')}}return Ext.create('Ext.device.device.Simulator')}});Ext.define('Ext.device.filesystem.Abstract',{config:{fileSystemType:1,fileSystemSize:0,readerType:"text",stringEncoding:"UTF8"},requestFileSystem:function(a){var b=Ext.device.filesystem.Abstract.prototype.config;a=Ext.applyIf(a,{type:b.fileSystemType,size:b.fileSystemSize,success:Ext.emptyFn,failure:Ext.emptyFn});return a}});Ext.define('Ext.device.filesystem.HTML5',{extend:'Ext.device.filesystem.Abstract',requestFileSystem:function(a){if(!a.success){Ext.Logger.error('Ext.device.filesystem#requestFileSystem: You must specify a `success` callback.');return null}var c=this,b=function(d){var b=Ext.create('Ext.device.filesystem.FileSystem',d);a.success.call(a.scope||c,b)};window.requestFileSystem(a.type,a.size,b,a.failure||Ext.emptyFn)}},function(){Ext.define('Ext.device.filesystem.FileSystem',{fs:null,root:null,constructor:function(a){this.fs=a;this.root=Ext.create('Ext.device.filesystem.DirectoryEntry','/',this)},getRoot:function(){return this.root}},function(){Ext.define('Ext.device.filesystem.Entry',{directory:!1,path:0,fileSystem:null,entry:null,constructor:function(b,c,a){this.directory=b;this.path=c;this.fileSystem=a},isFile:function(){return !this.directory},isDirectory:function(){return this.directory},getName:function(){var b=this.path.split('/');for(var a=b.length-1;a>=0;--a){if(b[a].length>0){return b[a]}}return '/'},getFullPath:function(){return this.path},getFileSystem:function(){return this.fileSystem},getEntry:function(){return null},moveTo:function(a){if(a.parent==null){Ext.Logger.error('Ext.device.filesystem.Entry#moveTo: You must specify a new `parent` of the entry.');return null}var b=this;this.getEntry({options:a.options||{},success:function(c){a.parent.getEntry({options:a.options||{},success:function(d){if(a.copy){c.copyTo(d,a.newName,function(e){a.success.call(a.scope||b,e.isDirectory?Ext.create('Ext.device.filesystem.DirectoryEntry',e.fullPath,b.fileSystem):Ext.create('Ext.device.filesystem.FileEntry',e.fullPath,b.fileSystem))},a.failure)}else {c.moveTo(d,a.newName,function(e){a.success.call(a.scope||b,e.isDirectory?Ext.create('Ext.device.filesystem.DirectoryEntry',e.fullPath,b.fileSystem):Ext.create('Ext.device.filesystem.FileEntry',e.fullPath,b.fileSystem))},a.failure)}},failure:a.failure})},failure:a.failure})},copyTo:function(a){this.moveTo(Ext.apply(a,{copy:!0}))},remove:function(a){this.getEntry({success:function(b){if(a.recursively&&this.directory){b.removeRecursively(a.success,a.failure)}else {b.remove(a.success,a.failure)}},failure:a.failure})},getParent:function(a){if(!a.success){Ext.Logger.error('Ext.device.filesystem.Entry#getParent: You must specify a `success` callback.');return null}var b=this;this.getEntry({options:a.options||{},success:function(c){c.getParent(function(d){a.success.call(a.scope||b,d.isDirectory?Ext.create('Ext.device.filesystem.DirectoryEntry',d.fullPath,b.fileSystem):Ext.create('Ext.device.filesystem.FileEntry',d.fullPath,b.fileSystem))},a.failure)},failure:a.failure})}});Ext.define('Ext.device.filesystem.DirectoryEntry',{extend:'Ext.device.filesystem.Entry',cachedDirectory:null,constructor:function(b,a){this.callParent([!0,b,a])},getEntry:function(a){var e=this,d=a.success;if((a.options&&a.options.create)&&this.path){var b=this.path.split("/");if(b[0]=='.'||b[0]==''){b=b.slice(1)}var c=function(e){if(b.length){e.getDirectory(b.shift(),a.options,c,a.failure)}else {d(e)}};c(this.fileSystem.fs.root)}else {this.fileSystem.fs.root.getDirectory(this.path,a.options,function(b){a.success.call(a.scope||e,b)},a.failure)}},readEntries:function(a){if(!a.success){Ext.Logger.error('Ext.device.filesystem.DirectoryEntry#readEntries: You must specify a `success` callback.');return null}var b=this;this.getEntry({success:function(d){var c=d.createReader();c.readEntries(function(e){var f=[],c=0,g=e.length;for(;c<g;c++){entryInfo=e[c];f[c]=entryInfo.isDirectory?Ext.create('Ext.device.filesystem.DirectoryEntry',entryInfo.fullPath,b.fileSystem):Ext.create('Ext.device.filesystem.FileEntry',entryInfo.fullPath,b.fileSystem)}a.success.call(a.scope||this,f)},function(b){if(a.failure){a.failure.call(a.scope||this,b)}})},failure:a.failure})},getFile:function(a){if(a.path==null){Ext.Logger.error('Ext.device.filesystem.DirectoryEntry#getFile: You must specify a `path` of the file.');return null}var d=this,c=this.path+a.path,b=Ext.create('Ext.device.filesystem.FileEntry',c,this.fileSystem);b.getEntry({success:function(){a.success.call(a.scope||d,b)},options:a.options||{},failure:a.failure})},getDirectory:function(a){if(a.path==null){Ext.Logger.error('Ext.device.filesystem.DirectoryEntry#getFile: You must specify a `path` of the file.');return null}var d=this,c=this.path+a.path,b=Ext.create('Ext.device.filesystem.DirectoryEntry',c,this.fileSystem);b.getEntry({success:function(){a.success.call(a.scope||d,b)},options:a.options||{},failure:a.failure})},removeRecursively:function(a){this.remove(Ext.apply(a,{recursively:!0}))}});Ext.define('Ext.device.filesystem.FileEntry',{extend:'Ext.device.filesystem.Entry',length:0,offset:0,constructor:function(b,a){this.callParent([!1,b,a]);this.offset=0;this.length=0},getEntry:function(a){var b=this,c=Ext.applyIf({},a);if(this.fileSystem){var d=function(e){if((a.options&&a.options.create)&&Ext.isString(this.path)){var d=this.path.split("/");if(d[0]=='.'||d[0]==''){d=d.slice(1)}if(d.length>1&&!a.recursive===!0){d.pop();var f=Ext.create('Ext.device.filesystem.DirectoryEntry',d.join("/"),b.fileSystem);f.getEntry({options:a.options,success:function(){c.recursive=!0;b.getEntry(c)},failure:a.failure})}else {if(a.failure){a.failure.call(a.scope||b,e)}}}else {if(a.failure){a.failure.call(a.scope||b,e)}}};this.fileSystem.fs.root.getFile(this.path,a.options||null,function(e){e.file(function(d){b.length=d.size;c.success.call(a.scope||b,e)},function(c){d.call(a.scope||b,c)})},function(c){d.call(a.scope||b,c)})}else {a.failure({code:-1,message:"FileSystem not Initialized"})}},getOffset:function(){return this.offset},seek:function(a){if(a.offset==null){Ext.Logger.error('Ext.device.filesystem.FileEntry#seek: You must specify an `offset` in the file.');return null}this.offset=a.offset||0;if(a.success){a.success.call(a.scope||this)}},read:function(a){var b=this;this.getEntry({success:function(c){c.file(function(e){if(Ext.isNumber(a.length)){if(Ext.isFunction(e.slice)){e=e.slice(b.offset,a.length)}else {if(a.failure){a.failure.call(a.scope||b,{code:-2,message:"File missing slice functionality"})}return}}var d=new FileReader();d.onloadend=function(d){a.success.call(a.scope||b,d.target.result)};d.onerror=function(d){a.failure.call(a.scope||b,d)};if(a.reader){d=Ext.applyIf(d,a.reader)}a.encoding=a.encoding||"UTF8";switch(a.type){default:case "text":d.readAsText(e,a.encoding);break;case "dataURL":d.readAsDataURL(e);break;case "binaryString":d.readAsBinaryString(e);break;case "arrayBuffer":d.readAsArrayBuffer(e);break;}},function(d){a.failure.call(a.scope||b,d)})},failure:function(c){a.failure.call(a.scope||b,c)}})},write:function(a){if(a.data==null){Ext.Logger.error('Ext.device.filesystem.FileEntry#write: You must specify `data` to write into the file.');return null}var b=this;this.getEntry({options:a.options||{},success:function(c){c.createWriter(function(d){d.onwriteend=function(e){b.length=e.target.length;a.success.call(a.scope||b,e.result)};d.onerror=function(e){a.failure.call(a.scope||b,e)};if(a.writer){d=Ext.applyIf(d,a.writer)}if(b.offset){d.seek(b.offset)}else if(a.append){d.seek(b.length)}b.writeData(d,a.data)},function(d){a.failure.call(a.scope||b,d)})},failure:function(c){a.failure.call(a.scope||b,c)}})},writeData:function(a,b){a.write(new Blob([b]))},truncate:function(a){if(a.size==null){Ext.Logger.error('Ext.device.filesystem.FileEntry#write: You must specify a `size` of the file.');return null}var b=this;this.getEntry({success:function(c){c.createWriter(function(d){d.truncate(a.size);a.success.call(a.scope||b,b)},function(d){a.failure.call(a.scope||b,d)})},failure:function(c){a.failure.call(a.scope||b,c)}})}})})});Ext.define('Ext.device.filesystem.Cordova',{alternateClassName:'Ext.device.filesystem.PhoneGap',extend:'Ext.device.filesystem.HTML5',constructor:function(){Ext.override(Ext.device.filesystem.Entry,{writeMetadata:function(a){var b=this;this.getEntry({options:a.options,success:function(c){c.setMetadata(function(){a.success.call(a.scope||b)},function(d){a.failure.call(a.scope||b,d)},a.metadata)},failure:function(c){a.failure.call(a.scope||b,c)}})},readMetadata:function(a){var b=this;this.getEntry({options:a.options,success:function(c){c.getMetadata(function(d){a.success.call(a.scope||b,d)},function(d){a.failure.call(a.scope||b,d)})},failure:function(c){a.failure.call(a.scope||b,c)}})}});Ext.override(Ext.device.filesystem.FileEntry,{writeData:function(a,b){a.write(b.toString())},upload:function(a){var b=new FileUploadOptions();b.fileKey=a.fileKey||"file";b.fileName=this.path.substr(this.path.lastIndexOf('/')+1);b.mimeType=a.mimeType||"image/jpeg";b.params=a.params||{};b.headers=a.headers||{};b.chunkMode=a.chunkMode||!0;var c=new FileTransfer();c.upload(this.path,encodeURI(a.url),a.success,a.failure,b,a.trustAllHosts||!1);return c},download:function(a){var b=new FileTransfer();b.download(encodeURI(a.source),this.path,a.success,a.failure,a.trustAllHosts||!1,a.options||{});return b}})}});Ext.define('Ext.device.filesystem.Chrome',{extend:'Ext.device.filesystem.HTML5',requestFileSystem:function(a){var c=this;a=Ext.device.filesystem.Abstract.prototype.requestFileSystem(a);var b=function(d){var b=Ext.create('Ext.device.filesystem.FileSystem',d);a.success.call(a.scope||c,b)};if(a.type==window.PERSISTENT){if(navigator.webkitPersistentStorage){navigator.webkitPersistentStorage.requestQuota(a.size,function(c){window.webkitRequestFileSystem(a.type,c,b,a.failure)})}else {window.webkitStorageInfo.requestQuota(window.PERSISTENT,a.size,function(c){window.webkitRequestFileSystem(a.type,c,b,a.failure)})}}else {window.webkitRequestFileSystem(a.type,a.size,b,a.failure)}}});Ext.define('Ext.device.filesystem.Simulator',{extend:'Ext.device.filesystem.HTML5'});Ext.define('Ext.device.FileSystem',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.filesystem.Cordova','Ext.device.filesystem.Chrome','Ext.device.filesystem.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.filesystem.Cordova')}}else if(a.Chrome){return Ext.create('Ext.device.filesystem.Chrome')}return Ext.create('Ext.device.filesystem.Simulator')}});Ext.define('Ext.device.geolocation.Abstract',{config:{maximumAge:0,frequency:10000,allowHighAccuracy:!1,timeout:Infinity},getCurrentPosition:function(b){var a=Ext.device.geolocation.Abstract.prototype.config;b=Ext.applyIf(b,{maximumAge:a.maximumAge,frequency:a.frequency,allowHighAccuracy:a.allowHighAccuracy,timeout:a.timeout});return b},watchPosition:function(b){var a=Ext.device.geolocation.Abstract.prototype.config;b=Ext.applyIf(b,{maximumAge:a.maximumAge,frequency:a.frequency,allowHighAccuracy:a.allowHighAccuracy,timeout:a.timeout});return b},clearWatch:function(){}});Ext.define('Ext.device.geolocation.Cordova',{alternateClassName:'Ext.device.geolocation.PhoneGap',extend:'Ext.device.geolocation.Abstract',activeWatchID:null,getCurrentPosition:function(a){a=this.callParent(arguments);navigator.geolocation.getCurrentPosition(a.success,a.failure,a);return a},watchPosition:function(a){a=this.callParent(arguments);if(this.activeWatchID){this.clearWatch()}this.activeWatchID=navigator.geolocation.watchPosition(a.callback,a.failure,a);return a},clearWatch:function(){if(this.activeWatchID){navigator.geolocation.clearWatch(this.activeWatchID);this.activeWatchID=null}}});Ext.define('Ext.device.geolocation.Simulator',{extend:'Ext.device.geolocation.Abstract',requires:['Ext.util.Geolocation'],getCurrentPosition:function(a){a=this.callParent([a]);Ext.apply(a,{autoUpdate:!1,listeners:{scope:this,locationupdate:function(b){if(a.success){a.success.call(a.scope||this,b.position)}},locationerror:function(){if(a.failure){a.failure.call(a.scope||this)}}}});this.geolocation=Ext.create('Ext.util.Geolocation',a);this.geolocation.updateLocation();return a},watchPosition:function(a){a=this.callParent([a]);Ext.apply(a,{listeners:{scope:this,locationupdate:function(b){if(a.callback){a.callback.call(a.scope||this,b.position)}},locationerror:function(){if(a.failure){a.failure.call(a.scope||this)}}}});this.geolocation=Ext.create('Ext.util.Geolocation',a);return a},clearWatch:function(){if(this.geolocation){this.geolocation.destroy()}this.geolocation=null}});Ext.define('Ext.device.Geolocation',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.geolocation.Cordova','Ext.device.geolocation.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.geolocation.Cordova')}}return Ext.create('Ext.device.geolocation.Simulator')}});Ext.define('Ext.device.globalization.Abstract',{mixins:['Ext.mixin.Observable'],config:{formatLength:'full',selector:'date and time',dateType:'wide',items:'months',numberType:'decimal',currencyCode:"USD"},getPreferredLanguage:function(a){return a},getLocaleName:function(a){return a},dateToString:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{date:new Date(),formatLength:b.formatLength,selector:b.selector});return a},stringToDate:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{dateString:Ext.util.Format.date(new Date(),'m/d/Y'),formatLength:b.formatLength,selector:b.selector});return a},getDatePattern:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{formatLength:b.formatLength,selector:b.selector});return a},getDateNames:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{type:b.dateType,items:b.items});return a},isDayLightSavingsTime:function(a){a=Ext.applyIf(a,{date:new Date()});return a},getFirstDayOfWeek:function(a){return a},numberToString:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{number:b.number,type:b.numberType});return a},stringToNumber:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{type:b.numberType});return a},getNumberPattern:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{type:b.numberType});if(!a.success){Ext.Logger.warn('You need to specify a `success` function for #getNumberPattern')}return a},getCurrencyPattern:function(a){var b=Ext.device.globalization.Abstract.prototype.config;a=Ext.applyIf(a,{currencyCode:b.currencyCode});if(!a.success){Ext.Logger.warn('You need to specify a `success` function for #getCurrency')}return a}});Ext.define('Ext.device.globalization.Cordova',{alternateClassName:'Ext.device.globalization.PhoneGap',extend:'Ext.device.globalization.Abstract',getPreferredLanguage:function(a){a=this.callParent(arguments);navigator.globalization.getPreferredLanguage(a.success,a.error)},getLocaleName:function(a){a=this.callParent(arguments);navigator.globalization.getLocaleName(a.success,a.error)},dateToString:function(a){a=this.callParent(arguments);navigator.globalization.dateToString(a.date,a.success,a.error,a)},stringToDate:function(a){a=this.callParent(arguments);navigator.globalization.stringToDate(a.dateString,a.success,a.error,a)},getDatePattern:function(a){a=this.callParent(arguments);navigator.globalization.getDatePattern(a.success,a.error,a)},getDateNames:function(a){a=this.callParent(arguments);navigator.globalization.getDateNames(a.success,a.error,a)},isDayLightSavingsTime:function(a){a=this.callParent(arguments);navigator.globalization.isDayLightSavingsTime(a.date,a.success,a.error,a)},getFirstDayOfWeek:function(a){a=this.callParent(arguments);navigator.globalization.getFirstDayOfWeek(a.success,a.error)},numberToString:function(a){a=this.callParent(arguments);navigator.globalization.numberToString(a.number,a.success,a.error,a)},stringToNumber:function(a){a=this.callParent(arguments);navigator.globalization.stringToNumber(a.string,a.success,a.error,a)},getNumberPattern:function(a){a=this.callParent(arguments);navigator.globalization.getNumberPattern(a.success,a.error,a)},getCurrencyPattern:function(a){a=this.callParent(arguments);navigator.globalization.getCurrencyPattern(a.currencyCode,a.success,a.error)}});Ext.define('Ext.device.globalization.Simulator',{extend:'Ext.device.globalization.Abstract'});Ext.define('Ext.device.Globalization',{singleton:!0,requires:['Ext.device.globalization.Cordova','Ext.device.globalization.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.globalization.Cordova')}}return Ext.create('Ext.device.globalization.Simulator')}});Ext.define('Ext.device.media.Abstract',{mixins:['Ext.mixin.Observable'],config:{src:null},play:Ext.emptyFn,pause:Ext.emptyFn,stop:Ext.emptyFn,release:Ext.emptyFn,seekTo:Ext.emptyFn,getCurrentPosition:Ext.emptyFn,getDuration:Ext.emptyFn,startRecord:Ext.emptyFn,stopRecord:Ext.emptyFn});Ext.define('Ext.device.media.Cordova',{alternateClassName:'Ext.device.media.PhoneGap',extend:'Ext.device.media.Abstract',config:{src:null,media:null},updateSrc:function(a,b){this.setMedia(new Media(a))},play:function(){var a=this.getMedia();if(a){a.play()}},pause:function(){var a=this.getMedia();if(a){a.pause()}},stop:function(){var a=this.getMedia();if(a){a.stop()}},release:function(){var a=this.getMedia();if(a){a.release()}},seekTo:function(b){var a=this.getMedia();if(a){a.seekTo(b)}},getDuration:function(){var a=this.getMedia();if(a){a.getDuration()}},startRecord:function(){var a=this.getMedia();if(!a){this.setSrc(null)}a.startRecord()},stopRecord:function(){var a=this.getMedia();if(a){a.stopRecord()}}});Ext.define('Ext.device.Media',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.media.Cordova'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.media.Cordova')}return Ext.create('Ext.device.media.Abstract')}});Ext.define('Ext.device.notification.Abstract',{show:function(a){if(!a.message){throw ('[Ext.device.Notification#show] You passed no message')}if(!a.buttons){a.buttons=["OK","Cancel"]}if(!Ext.isArray(a.buttons)){a.buttons=[a.buttons]}if(!a.scope){a.scope=this}return a},alert:function(a){if(!a.message){throw ('[Ext.device.Notification#alert] You passed no message')}if(!a.scope){a.scope=this}return a},confirm:function(a){if(!a.message){throw ('[Ext.device.Notification#confirm] You passed no message')}if(!a.buttons){a.buttons=["OK","Cancel"]}if(!Ext.isArray(a.buttons)){a.buttons=[a.buttons]}if(!a.scope){a.scope=this}return a},prompt:function(a){if(!a.message){throw ('[Ext.device.Notification#prompt] You passed no message')}if(!a.buttons){a.buttons=["OK","Cancel"]}if(!Ext.isArray(a.buttons)){a.buttons=[a.buttons]}if(!a.scope){a.scope=this}return a},vibrate:Ext.emptyFn,beep:Ext.emptyFn});Ext.define('Ext.device.notification.Cordova',{alternateClassName:'Ext.device.notification.PhoneGap',extend:'Ext.device.notification.Abstract',requires:['Ext.device.Communicator'],show:function(a){a=this.callParent(arguments);this.confirm(a)},confirm:function(a){a=this.callParent(arguments);var b=a.buttons,e=a.buttons.length;if(e&&typeof b[0]!=="string"){var d=[],c;for(c=0;c<e;c++){d.push(b[c].text)}b=d}var f=function(c){if(a.callback){a.callback.apply(a.scope,(b)?[b[c-1].toLowerCase()]:[])}};navigator.notification.confirm(a.message,f,a.title,b)},alert:function(a){navigator.notification.alert(a.message,a.callback,a.title,a.buttonName)},prompt:function(a){a=this.callParent(arguments);var b=a.buttons,e=a.buttons.length;if(e&&typeof b[0]!=="string"){var d=[],c;for(c=0;c<e;c++){d.push(b[c].text)}b=d}var f=function(c){if(a.callback){a.callback.call(a.scope,(b)?b[c.buttonIndex-1].toLowerCase():null,c.input1)}};navigator.notification.prompt(a.message,f,a.title,b)},vibrate:function(a){navigator.notification.vibrate(a)},beep:function(a){navigator.notification.vibrate(a)}});Ext.define('Ext.device.notification.Simulator',{extend:'Ext.device.notification.Abstract',requires:['Ext.MessageBox','Ext.util.Audio'],msg:null,show:function(){var a=this.callParent(arguments),e=[],f=a.buttons.length,c,b,d;for(b=0;b<f;b++){c=a.buttons[b];if(Ext.isString(c)){c={text:a.buttons[b],itemId:a.buttons[b].toLowerCase()}}e.push(c)}this.msg=Ext.create('Ext.MessageBox');d=function(b){if(a.callback){a.callback.apply(a.scope,[b])}};this.msg.show({title:a.title,message:a.message,scope:this.msg,buttons:e,fn:d})},alert:function(){var a=this.callParent(arguments);if(a.buttonName){a.buttons=[a.buttonName]}this.show(a)},confirm:function(){var a=this.callParent(arguments);this.show(a)},prompt:function(){var a=this.callParent(arguments),e=[],f=a.buttons.length,c,b,d;for(b=0;b<f;b++){c=a.buttons[b];if(Ext.isString(c)){c={text:a.buttons[b],itemId:a.buttons[b].toLowerCase()}}e.push(c)}this.msg=Ext.create('Ext.MessageBox');d=function(b,c){if(a.callback){a.callback.apply(a.scope,[b,c])}};this.msg.prompt(a.title,a.message,d,this.msg,a.multiLine,a.value,a.prompt)},beep:function(a){if(!Ext.isNumber(a)){a=1}var c=0,b=function(){if(c<a){Ext.defer(function(){Ext.util.Audio.beep(b)},50)}c++};b()},vibrate:function(){var c=["@-webkit-keyframes vibrate{"," from {"," -webkit-transform: rotate(-2deg);"," }"," to{"," -webkit-transform: rotate(2deg);"," }","}","body {"," -webkit-animation: vibrate 50ms linear 10 alternate;","}"],b=document.getElementsByTagName("head")[0],a=document.createElement('style');a.innerHTML=c.join('\n');b.appendChild(a);Ext.defer(function(){b.removeChild(a)},400)}});Ext.define('Ext.device.Notification',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.notification.Cordova','Ext.device.notification.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.notification.Cordova')}}return Ext.create('Ext.device.notification.Simulator')}});Ext.define('Ext.device.orientation.Abstract',{mixins:['Ext.mixin.Observable'],onDeviceOrientation:function(a){this.doFireEvent('orientationchange',[a])}});Ext.define('Ext.device.orientation.HTML5',{extend:'Ext.device.orientation.Abstract',constructor:function(){this.callParent(arguments);this.onDeviceOrientation=Ext.Function.bind(this.onDeviceOrientation,this);window.addEventListener('deviceorientation',this.onDeviceOrientation,!0)}});Ext.define('Ext.device.Orientation',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.orientation.HTML5'],constructor:function(){return Ext.create('Ext.device.orientation.HTML5')}});Ext.define('Ext.device.push.Abstract',{ALERT:1,BADGE:2,SOUND:4,register:function(a){var b=this;if(!a.received){Ext.Logger.error('Failed to pass a received callback. This is required.')}if(a.type==null){Ext.Logger.error('Failed to pass a type. This is required.')}return {success:function(c){b.onSuccess(c,a.success,a.scope||b)},failure:function(c){b.onFailure(c,a.failure,a.scope||b)},received:function(c){b.onReceived(c,a.received,a.scope||b)},type:a.type}},onSuccess:function(c,a,b){if(a){a.call(b,c)}},onFailure:function(b,a,c){if(a){a.call(c,b)}},onReceived:function(b,a,c){if(a){a.call(c,b)}}});Ext.define('Ext.device.push.Cordova',{extend:'Ext.device.push.Abstract',statics:{callbacks:{}},setPushConfig:function(a){var b=Ext.id(null,'callback');Ext.device.push.Cordova.callbacks[b]=a.callbacks.received;return {"badge":(a.callbacks.type===Ext.device.Push.BADGE)?"true":"false","sound":(a.callbacks.type===Ext.device.Push.SOUND)?"true":"false","alert":(a.callbacks.type===Ext.device.Push.ALERT)?"true":"false","ecb":'Ext.device.push.Cordova.callbacks.'+b,"senderID":a.senderID}},register:function(){var a=arguments[0];a.callbacks=this.callParent(arguments);var b=this.setPushConfig(a),c=window.plugins.pushNotification;c.register(a.callbacks.success,a.callbacks.failure,b)}});Ext.define('Ext.device.Push',{singleton:!0,requires:['Ext.device.Communicator','Ext.device.push.Cordova'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.push.Cordova')}}return Ext.create('Ext.device.push.Abstract')}});Ext.define('Ext.device.splashscreen.Abstract',{show:Ext.emptyFn,hide:Ext.emptyFn});Ext.define('Ext.device.splashscreen.Cordova',{alternateClassName:'Ext.device.splashscreen.PhoneGap',extend:'Ext.device.splashscreen.Abstract',show:function(){navigator.splashscreen.show()},hide:function(){navigator.splashscreen.hide()}});Ext.define('Ext.device.splashscreen.Simulator',{extend:'Ext.device.splashscreen.Abstract'});Ext.define('Ext.device.Splashscreen',{singleton:!0,requires:['Ext.device.splashscreen.Cordova','Ext.device.splashscreen.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.splashscreen.Cordova')}}return Ext.create('Ext.device.splashscreen.Simulator')}});Ext.define('Ext.device.storage.Abstract',{config:{databaseName:"Sencha",databaseVersion:'1.0',databaseDisplayName:'Sencha Database',databaseSize:5*1024*1024},openDatabase:function(b){var a=Ext.device.storage.Abstract.prototype.config;b=Ext.applyIf(b,{name:a.databaseName,version:a.databaseVersion,displayName:a.databaseDisplayName,size:a.databaseSize});return b},numKeys:Ext.emptyFn,getKey:Ext.emptyFn,getItem:Ext.emptyFn,setItem:Ext.emptyFn,removeItem:Ext.emptyFn,clear:Ext.emptyFn});Ext.define("Ext.device.storage.HTML5.SQLStatement",{extend:'Ext.Base',sql:null,"arguments":null,success:Ext.emptyFn,failure:Ext.emptyFn,constructor:function(a){this.sql=a.sql;this.arguments=a.arguments;this.success=a.success;this.failure=a.failure}});Ext.define('Ext.device.storage.HTML5.Database',{requires:["Ext.device.storage.HTML5.SQLStatement"],db:null,constructor:function(a){this.db=window.openDatabase(a.name,a.version,a.displayName,a.size)},getVersion:function(){if(this.db){return this.db.version}return null},transaction:function(a,c,b){if(!this.db){return}if(!Ext.isArray(a)){a=[a]}var d=function(d){Ext.each(a,function(e){if(Ext.isString(e)){d.executeSql(e)}else if(Ext.isObject(e)){d.executeSql(e.sql,e.arguments,e.success,e.failure)}})};this.db.transaction(d,b,c)}});Ext.define('Ext.device.storage.HTML5.HTML5',{extend:'Ext.device.storage.Abstract',requires:['Ext.device.storage.HTML5.Database'],dbCache:{},openDatabase:function(a){a=this.callParent(arguments);if(!this.dbCache[a.name]||a.noCache){this.dbCache[a.name]=Ext.create('Ext.device.storage.HTML5.Database',a)}return this.dbCache[a.name]},numKeys:function(){return window.localStorage.length},getKey:function(a){return window.localStorage.key(a)},getItem:function(a){return window.localStorage.getItem(a)},setItem:function(b,a){return window.localStorage.setItem(b,a)},removeItem:function(a){return window.localStorage.removeItem(a)},clear:function(){return window.localStorage.clear()}});Ext.define('Ext.device.storage.Cordova',{alternateClassName:'Ext.device.storage.PhoneGap',extend:'Ext.device.storage.HTML5.HTML5'});Ext.define('Ext.device.storage.Simulator',{extend:'Ext.device.storage.HTML5.HTML5'});Ext.define('Ext.device.Storage',{singleton:!0,requires:['Ext.device.storage.Cordova','Ext.device.storage.Simulator'],constructor:function(){var a=Ext.browser.is;if(a.WebView){if(a.Cordova){return Ext.create('Ext.device.storage.Cordova')}}return Ext.create('Ext.device.storage.Simulator')}});Ext.define('Ext.device.twitter.Abstract',{compose:Ext.emptyFn,getPublicTimeline:Ext.emptyFn,getMentions:Ext.emptyFn,getTwitterUsername:Ext.emptyFn,getTwitterRequest:Ext.emptyFn});Ext.define('Ext.device.twitter.Cordova',{compose:function(a){window.plugins.twitter.composeTweet(a.success,a.failure,a.tweet,{urlAttach:a.url,imageAttach:a.image})},getPublicTimeline:function(a){window.plugins.twitter.getPublicTimeline(a.success,a.failure)},getMentions:function(a){window.plugins.twitter.getMentions(a.success,a.failure)},getTwitterUsername:function(a){window.plugins.twitter.getTwitterUsername(a.success,a.failure)},getTwitterRequest:function(a){window.plugins.twitter.getTWRequest(a.url,a.params,a.success,a.failure,a.options)}});Ext.define('Ext.device.Twitter',{alternateClassName:'Ext.ux.device.Twitter',singleton:!0,requires:['Ext.device.Communicator','Ext.device.twitter.*'],constructor:function(){var a=Ext.browser.is;if(a.WebView&&a.Cordova){return Ext.create('Ext.device.twitter.Cordova')}else {return Ext.create('Ext.device.twitter.Abstract')}}});Ext.define('Ext.device.browser.Window',{extend:'Ext.Evented',open:function(b){var a=this;this._window=window.open(b.url,b.showToolbar?'_blank':'_self',b.options||null);this._window.addEventListener('loadstart',function(){a.fireEvent('loadstart',a)});this._window.addEventListener('loadstop',function(){a.fireEvent('loadstop',a)});this._window.addEventListener('loaderror',function(){a.fireEvent('loaderror',a)});this._window.addEventListener('exit',function(){a.fireEvent('close',a)})},close:function(){if(!this._window){return}this._window.close()}});
|