@cocreate/local-storage
Advanced tools
Comparing version 1.3.49 to 1.4.0
@@ -0,1 +1,8 @@ | ||
# [1.4.0](https://github.com/CoCreate-app/CoCreate-local-storage/compare/v1.3.49...v1.4.0) (2023-01-29) | ||
### Features | ||
* import @cocreate/local-storage ([68bd564](https://github.com/CoCreate-app/CoCreate-local-storage/commit/68bd56424466d0188b5b012968405105326028bb)) | ||
## [1.3.49](https://github.com/CoCreate-app/CoCreate-local-storage/compare/v1.3.48...v1.3.49) (2023-01-27) | ||
@@ -2,0 +9,0 @@ |
{ | ||
"name": "@cocreate/local-storage", | ||
"version": "1.3.49", | ||
"version": "1.4.0", | ||
"description": "A Simple component similar to CoCreate-input & CoCreate-fetch which Save and fetch data for inputs, textarea, selects from localstorage. Easily configured using HTML5 attributes and/or JavaScript API", | ||
@@ -63,4 +63,5 @@ "keywords": [ | ||
"dependencies": { | ||
"@cocreate/docs": "^1.5.8" | ||
"@cocreate/actions": "^1.5.55", | ||
"@cocreate/docs": "^1.5.9" | ||
} | ||
} |
119
src/index.js
@@ -0,4 +1,7 @@ | ||
import action from '@cocreate/actions' | ||
const CoCreateLocalStorage = { | ||
support: true, | ||
storage: new Map(), | ||
init: function() { | ||
@@ -9,4 +12,8 @@ var elements = document.querySelectorAll('[localstorage-set], [localstorage-get]'); | ||
elements = document.querySelectorAll(`[localstorage-get="${e.key}"]`) | ||
for (let element of elements) | ||
this.get(element) | ||
for (let element of elements) { | ||
let value = this.getItem(key) | ||
if (value != null){ | ||
element.value = value; | ||
} | ||
} | ||
}); | ||
@@ -25,9 +32,15 @@ }, | ||
if (isRealtime == "false") return; | ||
this.set(e.target) | ||
let key = e.target.getAttribute('localstorage-set'); | ||
let elements = document.querySelectorAll(`[localstorage-get="${e.key}"]`) | ||
for (let el of elements){ | ||
if (el != element) | ||
this.get(el) | ||
this.setItem(key, e.target.value); | ||
let elements = document.querySelectorAll(`[localstorage-get="${key}"]`) | ||
for (let el of elements) { | ||
if (el != element) { | ||
let value = this.getItem(key) | ||
if (value != null){ | ||
el.value = value; | ||
} | ||
} | ||
} | ||
@@ -37,55 +50,51 @@ }) | ||
get: function(element) { | ||
let key = element.getAttribute('localstorage-get'); | ||
if (!key) return; | ||
let value = window.localStorage.getItem(key) | ||
if (value != null){ | ||
element.value = value; | ||
} | ||
getItem: function(key) { | ||
if (this.support) | ||
return window.localStorage.getItem(key) | ||
else | ||
return this.storage.get(key) | ||
}, | ||
set: function(element) { | ||
let key = element.getAttribute('localstorage-set'); | ||
if (element.value && key){ | ||
window.localStorage.setItem(key, element.value); | ||
} | ||
setItem: function(key, value) { | ||
if (this.support) | ||
window.localStorage.setItem(key, value); | ||
else | ||
this.storage.set(key, value) | ||
}, | ||
remove: function(element) { | ||
element.value = ''; | ||
let key = element.getAttribute('localstorage-remove'); | ||
if (key) { | ||
removeItem: function(key) { | ||
if (this.support) | ||
window.localStorage.removeItem(key) | ||
} | ||
}, | ||
else | ||
this.storage.delete(key) | ||
}, | ||
runStorage: function(btn) { | ||
const form = btn.form; | ||
let storage = window.localStorage; | ||
if (!form) return; | ||
let set_els = form.querySelectorAll('[localstorage-set]') | ||
set_els.forEach(input=>{ | ||
let key = input.getAttribute('localstorage-set'); | ||
if (input.value && key){ | ||
storage.setItem(key, input.value); | ||
for (let el of set_els) { | ||
let key = el.getAttribute('localstorage-set'); | ||
if (el.value && key){ | ||
this.setItem(key, el.value); | ||
} | ||
}); | ||
} | ||
let get_els = form.querySelectorAll('[localstorage-get]') | ||
get_els.forEach(input=>{ | ||
let key = input.getAttribute('localstorage-get'); | ||
for (let el of get_els) { | ||
let key = el.getAttribute('localstorage-get'); | ||
if (!key) return; | ||
let value = storage.getItem(key) | ||
let value = this.getItem(key) | ||
if (value != null){ | ||
input.value = value; | ||
el.value = value; | ||
} | ||
}); | ||
} | ||
let remove_els = form.querySelectorAll('[localstorage-remove]') | ||
remove_els.forEach(input=>{ | ||
input.value = ''; | ||
let key = input.getAttribute('localstorage-remove'); | ||
for (let el of remove_els) { | ||
el.value = ''; | ||
let key = el.getAttribute('localstorage-remove'); | ||
if (key) { | ||
storage.removeItem(key) | ||
this.removeItem(key) | ||
} | ||
}); | ||
} | ||
@@ -96,6 +105,22 @@ document.dispatchEvent(new CustomEvent('localStorage', { | ||
} | ||
}, | ||
checkSupport: function() { | ||
if (!('localStorage' in window)) { | ||
console.log("This browser doesn't support localStorage."); | ||
this.support = false; | ||
} else { | ||
try { | ||
let test = window.localStorage.getItem('test') | ||
if (window.CoCreateConfig) | ||
if (window.CoCreateConfig.localStorage === false) | ||
this.support = false; | ||
} catch(e) { | ||
this.support = false; | ||
} | ||
} | ||
} | ||
} | ||
CoCreate.action.init({ | ||
action.init({ | ||
name: "localStorage", | ||
@@ -108,3 +133,3 @@ endEvent: "localStorage", | ||
CoCreate.action.init({ | ||
action.init({ | ||
name: "localStorageRemove", | ||
@@ -111,0 +136,0 @@ endEvent: "localStorageRemoved", |
72098
243
2
+ Added@cocreate/actions@^1.5.55
Updated@cocreate/docs@^1.5.9