Files
galaxy/static/scripts/libs/jquery/jstorage.js
T
2018-05-23 15:37:14 -04:00

1 line
7.5 KiB
JavaScript

!function(){function e(){var e="{}";if("userDataBehavior"==v){p.load("jStorage");try{e=p.getAttribute("jStorage")}catch(e){}try{C=p.getAttribute("jStorage_update")}catch(e){}m.jStorage=e}i(),g(),_()}function t(){"localStorage"==v||"globalStorage"==v?"addEventListener"in window?window.addEventListener("storage",r,!1):document.attachEvent("onstorage",r):"userDataBehavior"==v&&setInterval(r,1e3)}function r(){var e;clearTimeout(T),T=setTimeout(function(){if("localStorage"==v||"globalStorage"==v)e=m.jStorage_update;else if("userDataBehavior"==v){p.load("jStorage");try{e=p.getAttribute("jStorage_update")}catch(e){}}e&&e!=C&&(C=e,a())},25)}function a(){var t,r=j.parse(j.stringify(h.__jstorage_meta.CRC32));e(),t=j.parse(j.stringify(h.__jstorage_meta.CRC32));var a,n=[],i=[];for(a in r)if(r.hasOwnProperty(a)){if(!t[a]){i.push(a);continue}r[a]!=t[a]&&"2."==String(r[a]).substr(0,2)&&n.push(a)}for(a in t)t.hasOwnProperty(a)&&(r[a]||n.push(a));o(n,"updated"),o(i,"deleted")}function o(e,t){if(e=[].concat(e||[]),"flushed"==t){e=[];for(var r in y)y.hasOwnProperty(r)&&e.push(r);t="deleted"}for(var a=0,o=e.length;a<o;a++){if(y[e[a]])for(var n=0,i=y[e[a]].length;n<i;n++)y[e[a]][n](e[a],t);if(y["*"])for(var n=0,i=y["*"].length;n<i;n++)y["*"][n](e[a],t)}}function n(){var e=(+new Date).toString();if("localStorage"==v||"globalStorage"==v)try{m.jStorage_update=e}catch(e){v=!1}else"userDataBehavior"==v&&(p.setAttribute("jStorage_update",e),p.save("jStorage"));r()}function i(){if(m.jStorage)try{h=j.parse(String(m.jStorage))}catch(e){m.jStorage="{}"}else m.jStorage="{}";b=m.jStorage?String(m.jStorage).length:0,h.__jstorage_meta||(h.__jstorage_meta={}),h.__jstorage_meta.CRC32||(h.__jstorage_meta.CRC32={})}function s(){l();try{m.jStorage=j.stringify(h),p&&(p.setAttribute("jStorage",m.jStorage),p.save("jStorage")),b=m.jStorage?String(m.jStorage).length:0}catch(e){}}function u(e){if(!e||"string"!=typeof e&&"number"!=typeof e)throw new TypeError("Key name must be string or numeric");if("__jstorage_meta"==e)throw new TypeError("Reserved key name");return!0}function g(){var e,t,r,a,i=1/0,u=!1,_=[];if(clearTimeout(w),h.__jstorage_meta&&"object"==typeof h.__jstorage_meta.TTL){e=+new Date,r=h.__jstorage_meta.TTL,a=h.__jstorage_meta.CRC32;for(t in r)r.hasOwnProperty(t)&&(r[t]<=e?(delete r[t],delete a[t],delete h[t],u=!0,_.push(t)):r[t]<i&&(i=r[t]));i!=1/0&&(w=setTimeout(g,i-e)),u&&(s(),n(),o(_,"deleted"))}}function _(){var e;if(h.__jstorage_meta.PubSub){var t,r=O;for(e=h.__jstorage_meta.PubSub.length-1;e>=0;e--)(t=h.__jstorage_meta.PubSub[e])[0]>O&&(r=t[0],c(t[1],t[2]));O=r}}function c(e,t){if(L[e])for(var r=0,a=L[e].length;r<a;r++)L[e][r](e,j.parse(j.stringify(t)))}function l(){if(h.__jstorage_meta.PubSub){for(var e=+new Date-2e3,t=0,r=h.__jstorage_meta.PubSub.length;t<r;t++)if(h.__jstorage_meta.PubSub[t][0]<=e){h.__jstorage_meta.PubSub.splice(t,h.__jstorage_meta.PubSub.length-t);break}h.__jstorage_meta.PubSub.length||delete h.__jstorage_meta.PubSub}}function d(e,t){h.__jstorage_meta||(h.__jstorage_meta={}),h.__jstorage_meta.PubSub||(h.__jstorage_meta.PubSub=[]),h.__jstorage_meta.PubSub.unshift([+new Date,e,t]),s(),n()}function f(e,t){for(var r,a=e.length,o=t^a,n=0;a>=4;)r=1540483477*(65535&(r=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+((1540483477*(r>>>16)&65535)<<16),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),a-=4,++n;switch(a){case 3:o^=(255&e.charCodeAt(n+2))<<16;case 2:o^=(255&e.charCodeAt(n+1))<<8;case 1:o=1540483477*(65535&(o^=255&e.charCodeAt(n)))+((1540483477*(o>>>16)&65535)<<16)}return o^=o>>>13,o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16),(o^=o>>>15)>>>0}var S=window.jQuery||window.$||(window.$={}),j={parse:window.JSON&&(window.JSON.parse||window.JSON.decode)||String.prototype.evalJSON&&function(e){return String(e).evalJSON()}||S.parseJSON||S.evalJSON,stringify:Object.toJSON||window.JSON&&(window.JSON.stringify||window.JSON.encode)||S.toJSON};if(!("parse"in j&&"stringify"in j))throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");var w,h={__jstorage_meta:{CRC32:{}}},m={jStorage:"{}"},p=null,b=0,v=!1,y={},T=!1,C=0,L={},O=+new Date,P={isXML:function(e){var t=(e?e.ownerDocument||e:0).documentElement;return!!t&&"HTML"!==t.nodeName},encode:function(e){if(!this.isXML(e))return!1;try{return(new XMLSerializer).serializeToString(e)}catch(t){try{return e.xml}catch(e){}}return!1},decode:function(e){var t,r="DOMParser"in window&&(new DOMParser).parseFromString||window.ActiveXObject&&function(e){var t=new ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(e),t};return!!r&&(t=r.call("DOMParser"in window&&new DOMParser||window,e,"text/xml"),!!this.isXML(t)&&t)}};S.jStorage={version:"0.4.4",set:function(e,t,r){if(u(e),r=r||{},void 0===t)return this.deleteKey(e),t;if(P.isXML(t))t={_is_xml:!0,xml:P.encode(t)};else{if("function"==typeof t)return;t&&"object"==typeof t&&(t=j.parse(j.stringify(t)))}return h[e]=t,h.__jstorage_meta.CRC32[e]="2."+f(j.stringify(t),2538058380),this.setTTL(e,r.TTL||0),o(e,"updated"),t},get:function(e,t){return u(e),e in h?h[e]&&"object"==typeof h[e]&&h[e]._is_xml?P.decode(h[e].xml):h[e]:void 0===t?null:t},deleteKey:function(e){return u(e),e in h&&(delete h[e],"object"==typeof h.__jstorage_meta.TTL&&e in h.__jstorage_meta.TTL&&delete h.__jstorage_meta.TTL[e],delete h.__jstorage_meta.CRC32[e],s(),n(),o(e,"deleted"),!0)},setTTL:function(e,t){var r=+new Date;return u(e),t=Number(t)||0,e in h&&(h.__jstorage_meta.TTL||(h.__jstorage_meta.TTL={}),t>0?h.__jstorage_meta.TTL[e]=r+t:delete h.__jstorage_meta.TTL[e],s(),g(),n(),!0)},getTTL:function(e){var t=+new Date;return u(e),e in h&&h.__jstorage_meta.TTL&&h.__jstorage_meta.TTL[e]?h.__jstorage_meta.TTL[e]-t||0:0},flush:function(){return h={__jstorage_meta:{CRC32:{}}},s(),n(),o(null,"flushed"),!0},storageObj:function(){function e(){}return e.prototype=h,new e},index:function(){var e,t=[];for(e in h)h.hasOwnProperty(e)&&"__jstorage_meta"!=e&&t.push(e);return t},storageSize:function(){return b},currentBackend:function(){return v},storageAvailable:function(){return!!v},listenKeyChange:function(e,t){u(e),y[e]||(y[e]=[]),y[e].push(t)},stopListening:function(e,t){if(u(e),y[e])if(t)for(var r=y[e].length-1;r>=0;r--)y[e][r]==t&&y[e].splice(r,1);else delete y[e]},subscribe:function(e,t){if(!(e=(e||"").toString()))throw new TypeError("Channel not defined");L[e]||(L[e]=[]),L[e].push(t)},publish:function(e,t){if(!(e=(e||"").toString()))throw new TypeError("Channel not defined");d(e,t)},reInit:function(){e()}},function(){var e=!1;if("localStorage"in window)try{window.localStorage.setItem("_tmptest","tmpval"),e=!0,window.localStorage.removeItem("_tmptest")}catch(e){}if(e)try{window.localStorage&&(m=window.localStorage,v="localStorage",C=m.jStorage_update)}catch(e){}else if("globalStorage"in window)try{window.globalStorage&&(m="localhost"==window.location.hostname?window.globalStorage["localhost.localdomain"]:window.globalStorage[window.location.hostname],v="globalStorage",C=m.jStorage_update)}catch(e){}else{if(!(p=document.createElement("link")).addBehavior)return void(p=null);p.style.behavior="url(#default#userData)",document.getElementsByTagName("head")[0].appendChild(p);try{p.load("jStorage")}catch(e){p.setAttribute("jStorage","{}"),p.save("jStorage"),p.load("jStorage")}var a="{}";try{a=p.getAttribute("jStorage")}catch(e){}try{C=p.getAttribute("jStorage_update")}catch(e){}m.jStorage=a,v="userDataBehavior"}i(),g(),t(),_(),"addEventListener"in window&&window.addEventListener("pageshow",function(e){e.persisted&&r()},!1)}()}();