@cocreate/croppie
Advanced tools
Comparing version 1.3.14 to 1.3.15
@@ -0,1 +1,8 @@ | ||
## [1.3.15](https://github.com/CoCreate-app/CoCreate-croppie/compare/v1.3.14...v1.3.15) (2023-06-10) | ||
### Bug Fixes | ||
* Update dependencies versions for [@cocreate](https://github.com/cocreate) libraries ([1a46a62](https://github.com/CoCreate-app/CoCreate-croppie/commit/1a46a62a1ee3395635ec52e35608fba4fb1aa9c6)) | ||
## [1.3.14](https://github.com/CoCreate-app/CoCreate-croppie/compare/v1.3.13...v1.3.14) (2023-06-04) | ||
@@ -2,0 +9,0 @@ |
module.exports = { | ||
"config": { | ||
"organization_id": "", | ||
"key": "", | ||
"host": "" | ||
}, | ||
"organization_id": "", | ||
"key": "", | ||
"host": "", | ||
"sources": [ | ||
@@ -8,0 +6,0 @@ { |
{ | ||
"name": "@cocreate/croppie", | ||
"version": "1.3.14", | ||
"version": "1.3.15", | ||
"description": "A simple croppie component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.", | ||
@@ -30,3 +30,4 @@ "keywords": [ | ||
"dev": "npx webpack --config webpack.config.js --watch", | ||
"docs": "node ./node_modules/@cocreate/docs/src/index.js" | ||
"docs": "node ./node_modules/@cocreate/docs/src/index.js", | ||
"postinstall": "node ./node_modules/@cocreate/cli/check-coc.js" | ||
}, | ||
@@ -51,2 +52,3 @@ "repository": { | ||
"@babel/preset-env": "^7.9.6", | ||
"@cocreate/cli": "^1.29.3", | ||
"babel-loader": "^8.1.0", | ||
@@ -63,7 +65,7 @@ "clean-webpack-plugin": "^3.0.0", | ||
"dependencies": { | ||
"@cocreate/actions": "^1.8.14", | ||
"@cocreate/crud-client": "^1.21.8", | ||
"@cocreate/docs": "^1.7.15", | ||
"@cocreate/actions": "^1.8.18", | ||
"@cocreate/crud-client": "^1.21.10", | ||
"@cocreate/docs": "^1.8.13", | ||
"croppie": "^2.6.5" | ||
} | ||
} |
278
src/index.js
@@ -6,156 +6,156 @@ import croppie from 'croppie'; | ||
const CocreateCroppie = { | ||
debug : true, | ||
selector_element : '[editor="croppie"]', | ||
selector_croppie : '.croppie', | ||
croppieElements : [], | ||
croppieObjs : [], | ||
displayErrors : function(msg) { | ||
if (this.debug) | ||
console.error(msg) | ||
debug: true, | ||
selector_element: '[editor="croppie"]', | ||
selector_croppie: '.croppie', | ||
croppieElements: [], | ||
croppieObjs: [], | ||
displayErrors: function (msg) { | ||
if (this.debug) | ||
console.error(msg) | ||
}, | ||
init : function() { | ||
init: function () { | ||
this.croppieElements = document.querySelectorAll(this.selector_element); | ||
for (let i=0; i < this.croppieElements.length; i++) { | ||
this.initCroppie(this.croppieElements[i]); | ||
for (let i = 0; i < this.croppieElements.length; i++) { | ||
this.initCroppie(this.croppieElements[i]); | ||
} | ||
}, | ||
initCroppie : function(el){ | ||
let cropieInit = (el.tagName != 'IMG') ? el.querySelector(this.selector_croppie) : el; | ||
initCroppie: function (el) { | ||
let cropieInit = (el.tagName != 'IMG') ? el.querySelector(this.selector_croppie) : el; | ||
let fileInput = el.querySelector("input[type='file']"); | ||
let objCroppie = {} | ||
if (!cropieInit){ | ||
this.displayErrors("No genero Croppie = "+cropieInit) | ||
return false | ||
if (!cropieInit) { | ||
this.displayErrors("No genero Croppie = " + cropieInit) | ||
return false | ||
} | ||
let resizer = new croppie(cropieInit, { | ||
boundary: { width: 300, height: 300 }, | ||
viewport: { width: 200, height: 200 }, | ||
showZoomer: true, | ||
// enableResize: true, | ||
enableOrientation: true, | ||
enableZoom: true, | ||
mouseWheelZoom: 'ctrl' | ||
boundary: { width: 300, height: 300 }, | ||
viewport: { width: 200, height: 200 }, | ||
showZoomer: true, | ||
// enableResize: true, | ||
enableOrientation: true, | ||
enableZoom: true, | ||
mouseWheelZoom: 'ctrl' | ||
}); | ||
objCroppie = {'croppie':el,'resizer':resizer} | ||
if (fileInput){ | ||
objCroppie["fileInput"] = fileInput | ||
fileInput.addEventListener('change', function(e) { | ||
if (this.files.length == 0) return; | ||
let file = this.files[0]; | ||
let reader = new FileReader(); | ||
reader.onload = function(e) { | ||
resizer.bind({ | ||
url: e.target.result | ||
}) | ||
}; | ||
reader.readAsDataURL(file); | ||
}) | ||
objCroppie = { 'croppie': el, 'resizer': resizer } | ||
if (fileInput) { | ||
objCroppie["fileInput"] = fileInput | ||
fileInput.addEventListener('change', function (e) { | ||
if (this.files.length == 0) return; | ||
let file = this.files[0]; | ||
let reader = new FileReader(); | ||
reader.onload = function (e) { | ||
resizer.bind({ | ||
url: e.target.result | ||
}) | ||
}; | ||
reader.readAsDataURL(file); | ||
}) | ||
} | ||
this.croppieObjs.push(objCroppie); | ||
}, | ||
saveCroppieCrud: async function(elCroppie) { | ||
let name = elCroppie.getAttribute('name'); | ||
let data = elCroppie.dataset; | ||
if (typeof name === 'undefined' || name === '' || name ==null){ | ||
console.error("you need add attr [name] "); | ||
return | ||
} | ||
if (typeof data["collection"] === 'undefined' || data["collection"] === ''){ | ||
console.error("you need add attr [collection] "); | ||
return | ||
} | ||
let obj = this.croppieObjs.find((obj) => obj.croppie === elCroppie); | ||
let base64 = (elCroppie.tagName == 'IMG') ? await this.getCropResult(obj.resizer) : (obj.fileInput.files.length) ? await this.getCropResult(obj.resizer) : null | ||
if (base64){ | ||
crud.createDocument({ | ||
collection:data["collection"], | ||
document: {[name]:base64}, | ||
}); | ||
}else{ | ||
console.error("it is Empty, not save croppie in crud") | ||
} | ||
saveCroppieCrud: async function (elCroppie) { | ||
let name = elCroppie.getAttribute('name'); | ||
let data = elCroppie.dataset; | ||
if (typeof name === 'undefined' || name === '' || name == null) { | ||
console.error("you need add attr [name] "); | ||
return | ||
} | ||
if (typeof data["collection"] === 'undefined' || data["collection"] === '') { | ||
console.error("you need add attr [collection] "); | ||
return | ||
} | ||
let obj = this.croppieObjs.find((obj) => obj.croppie === elCroppie); | ||
let base64 = (elCroppie.tagName == 'IMG') ? await this.getCropResult(obj.resizer) : (obj.fileInput.files.length) ? await this.getCropResult(obj.resizer) : null | ||
if (base64) { | ||
crud.createDocument({ | ||
collection: data["collection"], | ||
document: { [name]: base64 }, | ||
}); | ||
} else { | ||
console.error("it is Empty, not save croppie in crud") | ||
} | ||
}, | ||
__croppieUploadImageAction: function(btn) { | ||
let croppie = btn.closest(this.selector_element); | ||
if (!croppie ){ | ||
console.error("It needs to be inside an element "+this.selector_element+"") | ||
return false | ||
__croppieUploadImageAction: function (btn) { | ||
let croppie = btn.closest(this.selector_element); | ||
if (!croppie) { | ||
console.error("It needs to be inside an element " + this.selector_element + "") | ||
return false | ||
} | ||
let fileInput = croppie.querySelector("input[type='file']"); | ||
if (!fileInput ){ | ||
console.error("You need in input file inside "+this.selector_element+"") | ||
return false | ||
let fileInput = croppie.querySelector("input[type='file']"); | ||
if (!fileInput) { | ||
console.error("You need in input file inside " + this.selector_element + "") | ||
return false | ||
} | ||
fileInput.click(); | ||
document.dispatchEvent(new CustomEvent('CroppieUploadImage', { | ||
detail: {} | ||
})) | ||
}, | ||
__croppieSaveAction: function(btn) { | ||
let croppie = btn.closest(this.selector_element); | ||
let executeMultiple = false; | ||
if (!croppie ){ | ||
//btn It is not within the parent tag | ||
executeMultiple = true | ||
let that = this; | ||
let form = btn.closest('form'); | ||
let croppies = form.querySelectorAll(this.selector_element); | ||
croppies.forEach(function(croppie) { | ||
that.saveCroppieCrud(croppie); | ||
}); | ||
} | ||
if (executeMultiple == false) | ||
this.saveCroppieCrud(croppie) | ||
document.dispatchEvent(new CustomEvent('CroppieSave', { | ||
detail: {} | ||
})) | ||
fileInput.click(); | ||
document.dispatchEvent(new CustomEvent('CroppieUploadImage', { | ||
detail: {} | ||
})) | ||
}, | ||
__croppieSaveAction: function (btn) { | ||
let croppie = btn.closest(this.selector_element); | ||
let executeMultiple = false; | ||
if (!croppie) { | ||
//btn It is not within the parent tag | ||
executeMultiple = true | ||
let that = this; | ||
let form = btn.closest('form'); | ||
let croppies = form.querySelectorAll(this.selector_element); | ||
croppies.forEach(function (croppie) { | ||
that.saveCroppieCrud(croppie); | ||
}); | ||
} | ||
if (executeMultiple == false) | ||
this.saveCroppieCrud(croppie) | ||
document.dispatchEvent(new CustomEvent('CroppieSave', { | ||
detail: {} | ||
})) | ||
}, | ||
readFile: function (file = {}, method = 'readAsText') { | ||
const reader = new FileReader() | ||
return new Promise((resolve, reject) => { | ||
reader[method](file) | ||
reader.onload = () => { | ||
resolve(reader) | ||
} | ||
reader.onerror = (error) => reject(error) | ||
}) | ||
}, | ||
getCropResult : function(resizer) { | ||
return new Promise((resolve, reject) => { | ||
resizer.result('base64').then(function(base64) { | ||
resolve(base64); | ||
}).onerror = (error) => reject(error); | ||
}); | ||
} | ||
const reader = new FileReader() | ||
return new Promise((resolve, reject) => { | ||
reader[method](file) | ||
reader.onload = () => { | ||
resolve(reader) | ||
} | ||
reader.onerror = (error) => reject(error) | ||
}) | ||
}, | ||
getCropResult: function (resizer) { | ||
return new Promise((resolve, reject) => { | ||
resizer.result('base64').then(function (base64) { | ||
resolve(base64); | ||
}).onerror = (error) => reject(error); | ||
}); | ||
} | ||
}//end class CocreateCroppie | ||
action.init({ | ||
name: "CroppieUploadImage", | ||
endEvent: "CroppieUploadImage", | ||
callback: (btn, data) => { | ||
CocreateCroppie.__croppieUploadImageAction(btn); | ||
} | ||
name: "CroppieUploadImage", | ||
endEvent: "CroppieUploadImage", | ||
callback: (btn, data) => { | ||
CocreateCroppie.__croppieUploadImageAction(btn); | ||
} | ||
}); | ||
@@ -165,7 +165,7 @@ | ||
action.init({ | ||
name: "CroppieSave", | ||
endEvent: "CroppieSave", | ||
callback: (btn, data) => { | ||
CocreateCroppie.__croppieSaveAction(btn); | ||
}, | ||
name: "CroppieSave", | ||
endEvent: "CroppieSave", | ||
callback: (btn, data) => { | ||
CocreateCroppie.__croppieSaveAction(btn); | ||
}, | ||
}); | ||
@@ -172,0 +172,0 @@ |
Sorry, the diff of this file is not supported yet
Install scripts
Supply chain riskInstall scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.
Found 1 instance in 1 package
170761
12
750
1
Updated@cocreate/actions@^1.8.18
Updated@cocreate/docs@^1.8.13