Summary Table
| Categories |
Total Count |
| PII |
0 |
| URL |
0 |
| DNS |
0 |
| EKL |
0 |
| IP |
0 |
| PORT |
0 |
| VsID |
0 |
| CF |
0 |
| AI |
0 |
| VPD |
0 |
| PL |
0 |
| Other |
0 |
File Content
/**
* loaded from https://github.com/Zmetser/localstorageservice
*/
(function ( angular ) {
'use strict';
var TableStorageProvider = function () {
this.$get = function () {
var Storage = function ( tableName ) {
this.$$tableName = tableName;
this.$$table = getFromLocalStorage( tableName );
};
Storage.prototype.addItem =
Storage.prototype.setItem = function ( itemName, data ) {
var item, arrayMode;
arrayMode = angular.isUndefined(data);
// Kick of array storage on first add.
if ( arrayMode && isEmpty(this.$$table) ) {
this.$$table = [];
}
else if ( arrayMode && !angular.isArray(this.$$table) ) {
throw new Error('itemName should be specified in Object Storage mode.');
}
if ( arrayMode ) {
item = itemName;
this.$$table.push(item);
}
else {
item = this.$$table[itemName] = data;
}
addToLocalStorage( this.$$tableName, this.$$table );
return item;
};
Storage.prototype.getItem = function ( itemName ) {
var item;
if ( !this.$$table.hasOwnProperty(itemName) ) {
return null;
}
item = this.$$table[itemName];
return item;
};
Storage.prototype.removeItem = function ( itemName ) {
var item;
if ( angular.isArray(this.$$table) ){
item = this._removeFromArray( itemName );
}
else {
item = this._removeFromObject( itemName );
}
addToLocalStorage( this.$$tableName, this.$$table );
return item;
};
Storage.prototype._removeFromArray = function ( item ) {
var index, removedItem;
if ( !angular.isNumber(item) ) {
index = getIndex(this.$$table, item);
}
else {
index = item;
}
if ( index <= this.$$table.length && index >= 0 ) {
removedItem = this.$$table[index];
this.$$table.splice(index, 1);
return removedItem;
}
return null;
};
Storage.prototype._removeFromObject = function ( itemName ) {
var item;
if ( !this.$$table.hasOwnProperty(itemName) ) {
return null;
}
item = this.$$table[itemName];
delete this.$$table[itemName];
return item;
};
Storage.prototype.truncate = function () {
this.$$table = {};
removeFromLocalStorage( this.$$tableName );
this.$$tableName = '';
};
var $storage = function ( tableName ) {
return new Storage( tableName );
};
return $storage;
};
};
angular.module('localStorageModule', [])
.provider('$storage', TableStorageProvider);
// localStorage helpers
function addToLocalStorage( key, value ) {
if ( undefined === value ) {
return false;
}
value = JSON.stringify(value);
localStorage.setItem(key, value);
return true;
}
function getFromLocalStorage( key ) {
var item = localStorage.getItem(key);
if ( !item ) {
return {};
}
item = JSON.parse(item);
return item;
}
function removeFromLocalStorage( key ) {
localStorage.removeItem(key);
}
// common helpers
function isEmpty( value ) {
if ( angular.isObject(value) ) {
for ( var key in value ) {
if ( value.hasOwnProperty(key) ) {
return false;
}
}
return true;
}
return angular.isUndefined(value) || value === '' || value === null || value !== value;
}
function getIndex( array, item ) {
if ( !angular.isArray(array) ) { return false; }
if ( !angular.isObject(item) ) {
return array.indexOf(item);
}
else {
for (var i = 0; i < array.length; i++) {
if (angular.equals(array[i], item)) {
return i;
}
}
return -1;
}
}
})( angular );