Socket
Socket
Sign inDemoInstall

@jspreadsheet/validations

Package Overview
Dependencies
Maintainers
2
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jspreadsheet/validations - npm Package Compare versions

Comparing version 1.3.1 to 1.4.0

65

dist/index.d.ts

@@ -1,12 +0,57 @@

/**
* Official Type definitions for JSS Validations
* https://jspreadsheet.com/products/validations
* Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
*/
// @ts-ignore
export declare module 'jspreadsheet' {
interface Validation {
/** Excel-like range format Sheet1!A1:A6 */
range: string;
/** Validation type */
type: 'number' | 'text' | 'date' | 'list' | 'textLength' | 'empty' | 'notEmpty';
/** Validation action can be a warning or reject when the condition are not match or a format when the condition matches */
action: 'warning' | 'reject' | 'format';
/** Criteria to be match */
criteria:
| '='
| '!='
| '>='
| '>'
| '<='
| '<'
| 'between'
| 'not between'
| 'valid date'
| 'valid email'
| 'valid url'
| 'contains'
| 'not contains'
| 'begins with'
| 'ends with'
/** Custom message to the user */
text?: string;
/** Ignore blank cells */
allowBlank?: boolean;
/** For type: format you can apply some CSS when condition is matched */
format?: {
color: string;
'background-color': string;
'font-weight': number;
'font-style': string;
}
/** For type: format you can add a class when condition is matched */
className?: string;
}
interface validations {
(): any
[key: string]: any
}
interface Validations {
// Index position in the array of validations
index?: number | null;
// The validation definition object
value: Validation;
}
export declare function validations(): any
interface worksheetInstance {
// Get a validation object
getValidations: (validationIndex: number | null) => Validation | Validation[];
// Insert or update existing validations by index
setValidations: (validations: Validations[]) => void;
// Reset validations by validation indexes
resetValidations: (validationIndex: number | number[]) => void;
}
}

98

dist/index.js

@@ -16,23 +16,23 @@ if (!lemonade && typeof(require) === 'function') {

$jscomp.polyfill("Array.prototype.includes",function(h){return h?h:function(d,l){var m=this;m instanceof String&&(m=String(m));var t=m.length;l=l||0;for(0>l&&(l=Math.max(l+t,0));l<t;l++){var v=m[l];if(v===d||Object.is(v,d))return!0}return!1}},"es7","es3");
var _$_8a55=["","validations","This extension is not included on the scope of this license","License required","This extension request Jspreadsheet Pro v9+","!",":","object"," .conditional_formatting_","_"," {\n",";\n","\n}","jss_validations_","style","head","get","set","JSS: input should be an array","setValidations","onvalidation","#REF!","between","is not between","not between","less than","<","less than or equal to","<=","bigger than",">","bigger than or equal to",">=","equal to","=","different to",
"!=","contains","not contains","begins with","ends with","is a valid email","valid email","is a valid url","valid url","is a valid date","valid date","before","on or before","after","on or after","a number ","a text ","a date ","an element of the list: ","empty","filled","textLength","The cell text length must be ","The content of this cell must be "," ","list","string",","," [","]"," and ","2012","yyyy","12","mm","19","dd","Value is included in the options","Cell is empty","notEmpty","Cell is not empty",
"number","Number","text","Text","date","Date","List","Text length","all","none","jss_object","List of valid values","The range is mandatory","The type is mandatory","The criteria is mandatory","format","background-color","font-weight","bold","font-style","italic","Cell range","Action","Warning message","Reject entry","Format style","Type","Criteria","Color","Background color","Add a custom CSS className","Save","Back","data-tooltip","jss_warning","data-validation","reject","conditional_formatting_",
"All validations found for this selection","No validation found for this selection","rule","i","Add new validation","jtoolbar-disabled","onafterchanges","onchangeproperty","onformulachain","oncreatecell","onbeforechange","onselection","onload","onrenameworksheet","onchangereferences","onundo","onredo","Validations","460px","620px","warning","block","div","undefined","function"];
(function(h,d){typeof exports===_$_8a55[7]&&typeof module!==_$_8a55[138]?module.exports=d():typeof define===_$_8a55[139]&&define.amd?define(d):h.validations=d()})(this,function(){var h=null,d=jSuites.translate,l={reject:2,warning:1,format:0},m=function(b,e){b=this.config.validations[b]&&this.config.validations[b].action?this.config.validations[b].action:0;e=this.config.validations[e]&&this.config.validations[e].action?this.config.validations[e].action:0;return l[b]-l[e]},t=function(b,e,c){if(e&&e.range){var a;
if(0<e.range.indexOf(_$_8a55[5])){e=e.range.split(_$_8a55[5]);var g=e[1];var f=z(e[0])}else g=e.range,f=h.current;f.validations&&(e=-1===g.indexOf(_$_8a55[6])?[g]:h.helpers.getTokensFromRange(g),e.forEach(function(k){f.validations[k]||(f.validations[k]=[]);0===b?(a=f.validations[k].indexOf(c),0<=a&&f.validations[k].splice(a,1)):f.validations[k].push(c);1<f.validations[k].length&&f.validations[k].sort(m.bind(f.parent))}))}},v=function(b){for(var e=0;e<b.worksheets.length;e++)b.worksheets[e].validations=
{};if(b=b.config.validations)for(e=0;e<b.length;e++)t(1,b[e],e)},x=function(b){for(var e=0;e<b.worksheets.length;e++)b.worksheets[e].validations={}},y=function(){var b=function(c){var a=c.config.validations;if(a&&a.length){for(var g=_$_8a55[0],f=0;f<a.length;f++)if(a[f]&&a[f].format){var k=Object.entries(a[f].format).map(function([n,q]){return`\t${n}: ${q} !important\n`});g+=_$_8a55[8]+c.name+_$_8a55[9]+f+_$_8a55[10]+k.join(_$_8a55[11])+_$_8a55[12]}a=document.getElementById(_$_8a55[13]+c.name);a||
(a=document.createElement(_$_8a55[14]),a.id=_$_8a55[13]+c.name,document.getElementsByTagName(_$_8a55[15])[0].appendChild(a));a.innerHTML=g}},e=function(c){c.getValidations=e[_$_8a55[16]];c.setValidations=e[_$_8a55[17]];c.resetValidations=e.reset};e[_$_8a55[16]]=function(c){var a=this.parent.config.validations;return c?a[c]:a};e[_$_8a55[17]]=function(c){if(!this.isEditable())return!1;Array.isArray(c)||typeof c!==_$_8a55[7]||(c=[c]);if(Array.isArray(c)){for(var a,g,f=[],k=0;k<c.length;k++){g=null;if(0<=
c[k].index)a=c[k].index,this.parent.config.validations&&this.parent.config.validations[a]&&(g=JSON.parse(JSON.stringify(this.parent.config.validations[a]))),this.parent.config.validations[a]=c[k].value;else{a=c[k].value;this.parent.config.validations||(this.parent.config.validations=[]);var n=this.parent.config.validations.length;this.parent.config.validations.push(a);a=n}f.push({index:a,oldValue:g,value:c[k].value})}this.parent.setHistory({worksheet:this,action:_$_8a55[19],records:f});this.persistence(_$_8a55[19],
{data:f});b(this.parent);for(c=0;c<f.length;c++)f[c].oldValue&&t(0,f[c].oldValue,f[c].index),f[c].value&&t(1,f[c].value,f[c].index);this.parent.dispatch(_$_8a55[20],this,f)}else console.error(_$_8a55[18])};e.reset=function(c){if(!this.isEditable())return!1;Array.isArray(c)||(c=[c]);c=c.map(function(a){return{index:a,value:null}});e[_$_8a55[17]].call(this,c)};e.build=function(){b(this);v(this)};e.updateAll=function(c,a){var g=this.parent.config.validations,f=[];if(g&&g.length){for(var k=0;k<g.length;k++){var n=
{index:k,value:JSON.parse(JSON.stringify(g[k]))};var q=this.updateFormula(n.value.range,c,a,this.getWorksheetName());q!==n.value.range&&(0<=q.indexOf(_$_8a55[21])?n.value=null:n.value.range=q,f.push(n))}f.length&&e[_$_8a55[17]].call(this,f)}};e.updateWorksheetName=function(c,a){var g=this.parent.config.validations,f=[];if(g&&g.length){for(var k=0;k<g.length;k++){var n=h.helpers.updateWorksheetName(g[k].range,c,a);if(n!==g[k].range){var q={index:k,value:g[k]};q.value.range=n;f.push(q)}}f.length&&e[_$_8a55[17]].call(this,
f)}};return e}(),A={number:[{text:d(_$_8a55[22]),value:_$_8a55[22]},{text:d(_$_8a55[23]),value:_$_8a55[24]},{text:d(_$_8a55[25]),value:_$_8a55[26]},{text:d(_$_8a55[27]),value:_$_8a55[28]},{text:d(_$_8a55[29]),value:_$_8a55[30]},{text:d(_$_8a55[31]),value:_$_8a55[32]},{text:d(_$_8a55[33]),value:_$_8a55[34]},{text:d(_$_8a55[35]),value:_$_8a55[36]}],text:[{text:d(_$_8a55[37]),value:_$_8a55[37]},{text:d(_$_8a55[38]),value:_$_8a55[38]},{text:d(_$_8a55[39]),value:_$_8a55[39]},{text:d(_$_8a55[40]),value:_$_8a55[40]},
{text:d(_$_8a55[33]),value:_$_8a55[34]},{text:d(_$_8a55[41]),value:_$_8a55[42]},{text:d(_$_8a55[43]),value:_$_8a55[44]}],date:[{text:d(_$_8a55[45]),value:_$_8a55[46]},{text:d(_$_8a55[33]),value:_$_8a55[34]},{text:d(_$_8a55[47]),value:_$_8a55[26]},{text:d(_$_8a55[48]),value:_$_8a55[28]},{text:d(_$_8a55[49]),value:_$_8a55[30]},{text:d(_$_8a55[50]),value:_$_8a55[32]},{text:d(_$_8a55[22]),value:_$_8a55[22]},{text:d(_$_8a55[24]),value:_$_8a55[24]}],textLength:[{text:d(_$_8a55[22]),value:_$_8a55[22]},{text:d(_$_8a55[23]),
value:_$_8a55[24]},{text:d(_$_8a55[25]),value:_$_8a55[26]},{text:d(_$_8a55[27]),value:_$_8a55[28]},{text:d(_$_8a55[29]),value:_$_8a55[30]},{text:d(_$_8a55[31]),value:_$_8a55[32]},{text:d(_$_8a55[33]),value:_$_8a55[34]},{text:d(_$_8a55[35]),value:_$_8a55[36]}]},z=function(b,e){Array.isArray(b)&&(b=b[0]);b=b.replace(new RegExp(/'/g),_$_8a55[0]).toUpperCase();if(void 0===e)return window[b]?window[b]:null;window[b]=e},G=function(){var b=this;b.create=function(e){b.instance=jSuites.calendar(e,this)};return lemonade.element('<input class="jss_object" @ready="self.create(this)" @bind="self.value" style="width: 100%;" />',
b)},H={number:_$_8a55[51],text:_$_8a55[52],date:_$_8a55[53],list:_$_8a55[54],empty:_$_8a55[55],notEmpty:_$_8a55[56]},I=function(b){var e=b.type===_$_8a55[57]?_$_8a55[58]:_$_8a55[59]+H[b.type];b.criteria&&(e+=_$_8a55[60]+b.criteria);b.type===_$_8a55[61]?(b=typeof b.value[0]!==_$_8a55[62]?b.value[0].join(_$_8a55[63]):b.value[0],e+=_$_8a55[64]+b+_$_8a55[65]):Array.isArray(b.value)&&(b.value[0]&&(e+=_$_8a55[60]+b.value[0]),1<b.value.length&&(e+=_$_8a55[66]+b.value[1]));return e},E=function(){this.type==
_$_8a55[61]&&(this.criteria=d(_$_8a55[73]));this.label=this.type;this.label==_$_8a55[55]?this.label=_$_8a55[74]:this.label==_$_8a55[75]&&(this.label=_$_8a55[76]);return lemonade.element('<div>\n <div class="row middle p8">\n <div class="column f1 cursor" onclick="self.parent.openForm(self)">\n <div class="p2"><b>{{self.label}}</b> <span>({{self.range}})</span></div>\n <div class="p2" data-visible="{{self.criteria?true:false}}">{{self.criteria}}: {{self.value}}</div>\n </div><div>\n <div><i class=\'material-icons cursor\' onclick="self.parent.removeValidation(self.index)">delete</i></div>\n </div>\n </div>\n </div>\n ',
this)},J=function(){var b=this,e=null;b.criteriaVisibility=!0;b.createType=function(a){jSuites.dropdown(a,{data:[{value:_$_8a55[77],text:d(_$_8a55[78])},{value:_$_8a55[79],text:d(_$_8a55[80])},{value:_$_8a55[81],text:d(_$_8a55[82])},{value:_$_8a55[61],text:d(_$_8a55[83])},{value:_$_8a55[57],text:d(_$_8a55[84])},{value:_$_8a55[55],text:d(_$_8a55[74])},{value:_$_8a55[75],text:d(_$_8a55[76])}],onchange:function(g,f,k,n){b.criteria=_$_8a55[0];b.start=_$_8a55[0];b.end=_$_8a55[0];A[n]?(e.setData(A[n]),
b.criteriaVisibility=!0):(e.setData(null),b.criteriaVisibility=!1);for(g=0;g<b.el.children[0].children.length;g++)b.el.children[0].children[g].classList.contains(_$_8a55[85])||b.el.children[0].children[g].classList.contains(n)?b.el.children[0].children[g].style.display=_$_8a55[0]:b.el.children[0].children[g].style.display=_$_8a55[86]},onload:function(g,f){f.header.classList.add(_$_8a55[87])}})};b.createCriteria=function(a){e=jSuites.dropdown(a,{data:A.number,autocomplete:!0,onload:function(g,f){f.header.classList.add(_$_8a55[87])}})};
b.createPicker=function(a){h.picker(a,function(){-1==a.innerText.indexOf(_$_8a55[5])?a.innerText=h.current.getWorksheetName()+_$_8a55[5]+a.innerText:a.innerText=a.innerText;b.range=a.innerText;jSuites.focus(a)})};b.createColorPicker=function(a){jSuites.color(a)};b.createList=function(a){jSuites.tags(a,{placeholder:_$_8a55[88]})};b.close=function(a){a&&(b.range?b.type?b.criteriaVisibility&&!b.criteria?alert(d(_$_8a55[91])):(-1===b.range.indexOf(_$_8a55[5])&&(b.range=b.instance.getWorksheetName()+_$_8a55[5]+
b.range),a={range:b.range,action:b.action,type:b.type,criteria:b.criteria,text:b.text,className:b.className,allowBlank:b.allowBlank},b.type===_$_8a55[81]?a.criteria.includes(_$_8a55[22])?a.value=[b.startDate,b.endDate]:a.value=[b.startDate]:a.criteria.includes(_$_8a55[22])?a.value=[b.start,b.end]:a.value=[b.start],a.action===_$_8a55[92]&&(a.format={},b.formatColor&&(a.format.color=b.formatColor),b.formatBackgroundColor&&(a.format[_$_8a55[93]]=b.formatBackgroundColor),b.bold&&(a.format[_$_8a55[94]]=
_$_8a55[95]),b.italic&&(a.format[_$_8a55[96]]=_$_8a55[97])),a={value:a},null!==b.index&&(a.index=b.index),b.instance.setValidations(a)):alert(d(_$_8a55[90])):alert(d(_$_8a55[89])))};var c=`<div>
var _$_2ed1=["","validations","This extension is not included on the scope of this license","License required","This extension request Jspreadsheet Pro v9+","!",":","object"," .conditional_formatting_","_"," {\n",";\n","\n}","jss_validations_","style","head","get","set","JSS: input should be an array","setValidations","onvalidation","#REF!","between","is not between","not between","less than","<","less than or equal to","<=","bigger than",">","bigger than or equal to",">=","equal to","=","different to",
"!=","contains","not contains","begins with","ends with","is a valid email","valid email","is a valid url","valid url","is a valid date","valid date","before","on or before","after","on or after","a number ","a text ","a date ","an element of the list: ","empty","filled","textLength","The cell text length must be ","The content of this cell must be "," ","list","string",","," [","]"," and ","Value is included in the options","Cell is empty","notEmpty","Cell is not empty","number","Number","text",
"Text","date","Date","List","Text length","all","none","jss_object","List of valid values","The range is mandatory","The type is mandatory","The criteria is mandatory","format","background-color","font-weight","bold","font-style","italic","Cell range","Action","Warning message","Reject entry","Format style","Type","Criteria","Color","Background color","Add a custom CSS className","Save","Back","data-tooltip","jss_warning","data-validation","reject","conditional_formatting_","All validations found for this selection",
"No validation found for this selection","rule","i","Add new validation","jtoolbar-disabled","onafterchanges","onchangeproperty","onformulachain","oncreatecell","onbeforechange","onselection","onload","onrenameworksheet","onchangereferences","onundo","onredo","Validations","460px","620px","warning","block","div","undefined","function"];
(function(h,d){typeof exports===_$_2ed1[7]&&typeof module!==_$_2ed1[132]?module.exports=d():typeof define===_$_2ed1[133]&&define.amd?define(d):h.validations=d()})(this,function(){var h=null,d=jSuites.translate,l={reject:2,warning:1,format:0},m=function(b,e){b=this.config.validations[b]&&this.config.validations[b].action?this.config.validations[b].action:0;e=this.config.validations[e]&&this.config.validations[e].action?this.config.validations[e].action:0;return l[b]-l[e]},t=function(b,e,c){if(e&&e.range){var a;
if(0<e.range.indexOf(_$_2ed1[5])){e=e.range.split(_$_2ed1[5]);var g=e[1];var f=z(e[0])}else g=e.range,f=h.current;f.validations&&(e=-1===g.indexOf(_$_2ed1[6])?[g]:h.helpers.getTokensFromRange(g),e.forEach(function(k){f.validations[k]||(f.validations[k]=[]);0===b?(a=f.validations[k].indexOf(c),0<=a&&f.validations[k].splice(a,1)):f.validations[k].push(c);1<f.validations[k].length&&f.validations[k].sort(m.bind(f.parent))}))}},v=function(b){for(var e=0;e<b.worksheets.length;e++)b.worksheets[e].validations=
{};if(b=b.config.validations)for(e=0;e<b.length;e++)t(1,b[e],e)},x=function(b){for(var e=0;e<b.worksheets.length;e++)b.worksheets[e].validations={}},y=function(){var b=function(c){var a=c.config.validations;if(a&&a.length){for(var g=_$_2ed1[0],f=0;f<a.length;f++)if(a[f]&&a[f].format){var k=Object.entries(a[f].format).map(function([n,q]){return`\t${n}: ${q} !important\n`});g+=_$_2ed1[8]+c.name+_$_2ed1[9]+f+_$_2ed1[10]+k.join(_$_2ed1[11])+_$_2ed1[12]}a=document.getElementById(_$_2ed1[13]+c.name);a||
(a=document.createElement(_$_2ed1[14]),a.id=_$_2ed1[13]+c.name,document.getElementsByTagName(_$_2ed1[15])[0].appendChild(a));a.innerHTML=g}},e=function(c){c.getValidations=e[_$_2ed1[16]];c.setValidations=e[_$_2ed1[17]];c.resetValidations=e.reset};e[_$_2ed1[16]]=function(c){var a=this.parent.config.validations;return c?a[c]:a};e[_$_2ed1[17]]=function(c){if(!this.isEditable())return!1;Array.isArray(c)||typeof c!==_$_2ed1[7]||(c=[c]);if(Array.isArray(c)){for(var a,g,f=[],k=0;k<c.length;k++){g=null;if(0<=
c[k].index)a=c[k].index,this.parent.config.validations&&this.parent.config.validations[a]&&(g=JSON.parse(JSON.stringify(this.parent.config.validations[a]))),this.parent.config.validations[a]=c[k].value;else{a=c[k].value;this.parent.config.validations||(this.parent.config.validations=[]);var n=this.parent.config.validations.length;this.parent.config.validations.push(a);a=n}f.push({index:a,oldValue:g,value:c[k].value})}this.parent.setHistory({worksheet:this,action:_$_2ed1[19],records:f});this.persistence(_$_2ed1[19],
{data:f});b(this.parent);for(c=0;c<f.length;c++)f[c].oldValue&&t(0,f[c].oldValue,f[c].index),f[c].value&&t(1,f[c].value,f[c].index);this.parent.dispatch(_$_2ed1[20],this,f)}else console.error(_$_2ed1[18])};e.reset=function(c){if(!this.isEditable())return!1;Array.isArray(c)||(c=[c]);c=c.map(function(a){return{index:a,value:null}});e[_$_2ed1[17]].call(this,c)};e.build=function(){b(this);v(this)};e.updateAll=function(c,a){var g=this.parent.config.validations,f=[];if(g&&g.length){for(var k=0;k<g.length;k++){var n=
{index:k,value:JSON.parse(JSON.stringify(g[k]))};var q=this.updateFormula(n.value.range,c,a,this.getWorksheetName());q!==n.value.range&&(0<=q.indexOf(_$_2ed1[21])?n.value=null:n.value.range=q,f.push(n))}f.length&&e[_$_2ed1[17]].call(this,f)}};e.updateWorksheetName=function(c,a){var g=this.parent.config.validations,f=[];if(g&&g.length){for(var k=0;k<g.length;k++){var n=h.helpers.updateWorksheetName(g[k].range,c,a);if(n!==g[k].range){var q={index:k,value:g[k]};q.value.range=n;f.push(q)}}f.length&&e[_$_2ed1[17]].call(this,
f)}};return e}(),A={number:[{text:d(_$_2ed1[22]),value:_$_2ed1[22]},{text:d(_$_2ed1[23]),value:_$_2ed1[24]},{text:d(_$_2ed1[25]),value:_$_2ed1[26]},{text:d(_$_2ed1[27]),value:_$_2ed1[28]},{text:d(_$_2ed1[29]),value:_$_2ed1[30]},{text:d(_$_2ed1[31]),value:_$_2ed1[32]},{text:d(_$_2ed1[33]),value:_$_2ed1[34]},{text:d(_$_2ed1[35]),value:_$_2ed1[36]}],text:[{text:d(_$_2ed1[37]),value:_$_2ed1[37]},{text:d(_$_2ed1[38]),value:_$_2ed1[38]},{text:d(_$_2ed1[39]),value:_$_2ed1[39]},{text:d(_$_2ed1[40]),value:_$_2ed1[40]},
{text:d(_$_2ed1[33]),value:_$_2ed1[34]},{text:d(_$_2ed1[41]),value:_$_2ed1[42]},{text:d(_$_2ed1[43]),value:_$_2ed1[44]}],date:[{text:d(_$_2ed1[45]),value:_$_2ed1[46]},{text:d(_$_2ed1[33]),value:_$_2ed1[34]},{text:d(_$_2ed1[47]),value:_$_2ed1[26]},{text:d(_$_2ed1[48]),value:_$_2ed1[28]},{text:d(_$_2ed1[49]),value:_$_2ed1[30]},{text:d(_$_2ed1[50]),value:_$_2ed1[32]},{text:d(_$_2ed1[22]),value:_$_2ed1[22]},{text:d(_$_2ed1[24]),value:_$_2ed1[24]}],textLength:[{text:d(_$_2ed1[22]),value:_$_2ed1[22]},{text:d(_$_2ed1[23]),
value:_$_2ed1[24]},{text:d(_$_2ed1[25]),value:_$_2ed1[26]},{text:d(_$_2ed1[27]),value:_$_2ed1[28]},{text:d(_$_2ed1[29]),value:_$_2ed1[30]},{text:d(_$_2ed1[31]),value:_$_2ed1[32]},{text:d(_$_2ed1[33]),value:_$_2ed1[34]},{text:d(_$_2ed1[35]),value:_$_2ed1[36]}]},z=function(b,e){Array.isArray(b)&&(b=b[0]);b=b.replace(new RegExp(/'/g),_$_2ed1[0]).toUpperCase();if(void 0===e)return window[b]?window[b]:null;window[b]=e},G=function(){var b=this;b.create=function(e){b.instance=jSuites.calendar(e,this)};return lemonade.element('<input class="jss_object" @ready="self.create(this)" @bind="self.value" style="width: 100%;" />',
b)},H={number:_$_2ed1[51],text:_$_2ed1[52],date:_$_2ed1[53],list:_$_2ed1[54],empty:_$_2ed1[55],notEmpty:_$_2ed1[56]},I=function(b){var e=b.type===_$_2ed1[57]?_$_2ed1[58]:_$_2ed1[59]+H[b.type];b.criteria&&(e+=_$_2ed1[60]+b.criteria);b.type===_$_2ed1[61]?(b=typeof b.value[0]!==_$_2ed1[62]?b.value[0].join(_$_2ed1[63]):b.value[0],e+=_$_2ed1[64]+b+_$_2ed1[65]):Array.isArray(b.value)&&(b.value[0]&&(e+=_$_2ed1[60]+b.value[0]),1<b.value.length&&(e+=_$_2ed1[66]+b.value[1]));return e},E=function(){this.type==
_$_2ed1[61]&&(this.criteria=d(_$_2ed1[67]));this.label=this.type;this.label==_$_2ed1[55]?this.label=_$_2ed1[68]:this.label==_$_2ed1[69]&&(this.label=_$_2ed1[70]);return lemonade.element('<div>\n <div class="row middle p8">\n <div class="column f1 cursor" onclick="self.parent.openForm(self)">\n <div class="p2"><b>{{self.label}}</b> <span>({{self.range}})</span></div>\n <div class="p2" data-visible="{{self.criteria?true:false}}">{{self.criteria}}: {{self.value}}</div>\n </div><div>\n <div><i class=\'material-icons cursor\' onclick="self.parent.removeValidation(self.index)">delete</i></div>\n </div>\n </div>\n </div>\n ',
this)},J=function(){var b=this,e=null;b.criteriaVisibility=!0;b.createType=function(a){jSuites.dropdown(a,{data:[{value:_$_2ed1[71],text:d(_$_2ed1[72])},{value:_$_2ed1[73],text:d(_$_2ed1[74])},{value:_$_2ed1[75],text:d(_$_2ed1[76])},{value:_$_2ed1[61],text:d(_$_2ed1[77])},{value:_$_2ed1[57],text:d(_$_2ed1[78])},{value:_$_2ed1[55],text:d(_$_2ed1[68])},{value:_$_2ed1[69],text:d(_$_2ed1[70])}],onchange:function(g,f,k,n){b.criteria=_$_2ed1[0];b.start=_$_2ed1[0];b.end=_$_2ed1[0];A[n]?(e.setData(A[n]),
b.criteriaVisibility=!0):(e.setData(null),b.criteriaVisibility=!1);for(g=0;g<b.el.children[0].children.length;g++)b.el.children[0].children[g].classList.contains(_$_2ed1[79])||b.el.children[0].children[g].classList.contains(n)?b.el.children[0].children[g].style.display=_$_2ed1[0]:b.el.children[0].children[g].style.display=_$_2ed1[80]},onload:function(g,f){f.header.classList.add(_$_2ed1[81])}})};b.createCriteria=function(a){e=jSuites.dropdown(a,{data:A.number,autocomplete:!0,onload:function(g,f){f.header.classList.add(_$_2ed1[81])}})};
b.createPicker=function(a){h.picker(a,function(){-1==a.innerText.indexOf(_$_2ed1[5])?a.innerText=h.current.getWorksheetName()+_$_2ed1[5]+a.innerText:a.innerText=a.innerText;b.range=a.innerText;jSuites.focus(a)})};b.createColorPicker=function(a){jSuites.color(a)};b.createList=function(a){jSuites.tags(a,{placeholder:_$_2ed1[82]})};b.close=function(a){a&&(b.range?b.type?b.criteriaVisibility&&!b.criteria?alert(d(_$_2ed1[85])):(-1===b.range.indexOf(_$_2ed1[5])&&(b.range=b.instance.getWorksheetName()+_$_2ed1[5]+
b.range),a={range:b.range,action:b.action,type:b.type,criteria:b.criteria,text:b.text,className:b.className,allowBlank:b.allowBlank},b.type===_$_2ed1[75]?a.criteria.includes(_$_2ed1[22])?a.value=[b.startDate,b.endDate]:a.value=[b.startDate]:a.criteria.includes(_$_2ed1[22])?a.value=[b.start,b.end]:a.value=[b.start],a.action===_$_2ed1[86]&&(a.format={},b.formatColor&&(a.format.color=b.formatColor),b.formatBackgroundColor&&(a.format[_$_2ed1[87]]=b.formatBackgroundColor),b.bold&&(a.format[_$_2ed1[88]]=
_$_2ed1[89]),b.italic&&(a.format[_$_2ed1[90]]=_$_2ed1[91])),a={value:a},null!==b.index&&(a.index=b.index),b.instance.setValidations(a)):alert(d(_$_2ed1[84])):alert(d(_$_2ed1[83])))};var c=`<div>
<div>

@@ -43,3 +43,3 @@ <!-- Validation type -->

<div class="form-group">
<label class="label">${d(_$_8a55[98])}</label>
<label class="label">${d(_$_2ed1[92])}</label>
<div @ready="self.createPicker(this)" @bind="self.range"></div>

@@ -50,7 +50,7 @@ </div>

<div class="form-group">
<label class="label">${d(_$_8a55[99])}</label>
<label class="label">${d(_$_2ed1[93])}</label>
<select style="padding: 8px;" @bind="self.action">
<option value="warning">${d(_$_8a55[100])}</option>
<option value="reject">${d(_$_8a55[101])}</option>
<option value="format">${d(_$_8a55[102])}</option>
<option value="warning">${d(_$_2ed1[94])}</option>
<option value="reject">${d(_$_2ed1[95])}</option>
<option value="format">${d(_$_2ed1[96])}</option>
</select>

@@ -65,3 +65,3 @@ </div>

<div class="form-group">
<label class="label">${d(_$_8a55[100])}</label>
<label class="label">${d(_$_2ed1[94])}</label>
<input type="text" @bind="self.text" class="jss_object w100">

@@ -76,3 +76,3 @@ </div>

<div class="form-group">
<label class="label">${d(_$_8a55[103])}</label>
<label class="label">${d(_$_2ed1[97])}</label>
<div @ready="self.createType(this)" @bind="self.type"></div>

@@ -82,3 +82,3 @@ </div>

<div class="form-group">
<label class="label">${d(_$_8a55[104])}</label>
<label class="label">${d(_$_2ed1[98])}</label>
<div name="criteria" @ready="self.createCriteria(this)" @bind="self.criteria"></div>

@@ -135,3 +135,3 @@ </div>

<div class="row all" style="{{self.action === 'reject' && 'display: none;'}}">
<div class="row all" style="{{self.action !== 'warning' && 'display: none;'}}">
<div class="column f1">

@@ -156,3 +156,3 @@ <div class="form-group">

<div class="form-group">
<label class="label">${d(_$_8a55[105])}</label>
<label class="label">${d(_$_2ed1[99])}</label>
<input @ready="self.createColorPicker(this)" @bind="self.formatColor" class="jss_object w100">

@@ -163,3 +163,3 @@ </div>

<div class="form-group">
<label class="label">${d(_$_8a55[106])}</label>
<label class="label">${d(_$_2ed1[100])}</label>
<input @ready="self.createColorPicker(this)" @bind="self.formatBackgroundColor" class="jss_object w100">

@@ -172,3 +172,3 @@ </div>

<div class="form-group">
<input type="text" placeholder="${d(_$_8a55[107])}" @bind="self.className" class="jss_object">
<input type="text" placeholder="${d(_$_2ed1[101])}" @bind="self.className" class="jss_object">
</div>

@@ -194,3 +194,3 @@ </div>

<div class='form-group center'>
<button type="button" class="jbutton dark w100" onclick="self.close(true)">${d(_$_8a55[108])}</button>
<button type="button" class="jbutton dark w100" onclick="self.close(true)">${d(_$_2ed1[102])}</button>
</div>

@@ -200,15 +200,15 @@ </div>

</div>
<p onclick="self.parent.closeForm()" class="cursor">${d(_$_8a55[109])}</p>
</div>`;return lemonade.element(c,b,{Calendar:G,List:E})},K=function(b,e){if(this.records[e]&&this.records[e][b]&&this.records[e][b].element){this.records[e][b].element.removeAttribute(_$_8a55[110]);this.records[e][b].element.classList.remove(_$_8a55[111]);var c=this.records[e][b].element.getAttribute(_$_8a55[112]);if(c){c=c.split(_$_8a55[63]);for(var a=0;a<c.length;a++)this.records[e][b].element.classList.remove(c[a])}this.records[e][b].element.removeAttribute(_$_8a55[112])}},w=function(b,
e,c,a){if(this.parent.config.validations&&this.records[e]&&this.records[e][b]&&this.records[e][b].element){K.call(this,b,e);if(null==c||void 0==c)c=this.records[e][b].v;var g=this,f=h.helpers.getColumnNameFromCoords(b,e);if(this.records[e][b].element&&this.validations&&void 0!==this.validations[f]){f=this.validations[f];for(var k=0;k<f.length;k++){var n=f[k],q=this.parent.config.validations[n];if(!q)break;if(!jSuites.validations(c,q)){if(q.action!==_$_8a55[92]){c=q.text||I(q);this.records[e][b].element.setAttribute(_$_8a55[110],
c);this.records[e][b].element.classList.add(_$_8a55[111]);if(q.action===_$_8a55[113]&&!a)return setTimeout(function(){g.records[e][b].element.removeAttribute(_$_8a55[110]);g.records[e][b].element.classList.remove(_$_8a55[111])},2500),!1;break}}else if(q.action===_$_8a55[92]){var r=[];q.className&&(r=q.className.split(_$_8a55[63]));r.push(_$_8a55[114]+this.parent.name+_$_8a55[9]+n);for(q=0;q<r.length;q++)this.records[e][b].element.classList.add(r[q]);this.records[e][b].element.setAttribute(_$_8a55[112],
r)}}}}},L=function(b,e){var c={init:function(a){y(a)},updateDataFromSelection:function(a,g){if(c.modal.isOpen()){if(a.length&&this.parent.config.validations){var f=a[0],k=a[1],n=a[2];a=a[3];var q=[],r=null;if(r=this.validations)for(;k<=a;k++)for(var p=f;p<=n;p++){var u=this.helpers.getColumnNameFromCoords(p,k);if(r[u])for(var B=0;B<r[u].length;B++)q[r[u][B]]=!0}f=this.parent.config.validations.map(function(F,C){return Object.assign({},F,{index:C})});c.message=d(_$_8a55[115])+_$_8a55[60]+(g||_$_8a55[0]);
c.data=f.filter(function(F,C){return q[C]})}else c.data=[];c.data.length||(c.message=d(_$_8a55[116])+_$_8a55[60]+(g||_$_8a55[0]));c.closeForm()}},toolbar:function(a){a.items.push({content:_$_8a55[117],type:_$_8a55[118],tooltip:d(_$_8a55[119]),onclick:function(){c.open(h.current)},updateState:function(g,f,k,n){n.isEditable()?k.classList.remove(_$_8a55[120]):k.classList.add(_$_8a55[120])}});return a},open:function(a){c.settings.instance=a;c.modal.open();var g=a.selectedCell;if(g[0]<g[2])var f=g[0],
k=g[2];else f=g[2],k=g[0];if(g[1]<g[3]){var n=g[1];g=g[3]}else n=g[3],g=g[1];c.updateDataFromSelection.call(a,[f,n,k,g])},onevent:function(a,g,f,k,n,q){if(a===_$_8a55[121]||a===_$_8a55[122]||a===_$_8a55[123])f.forEach(function(p){p.x&&p.y&&w.call(g,p.x,p.y,null,!0)});else if(a===_$_8a55[124])w.call(g,k,n);else if(a===_$_8a55[125]){if((_$_8a55[0]+q).substr(0,1)!==_$_8a55[34])return w.call(g,k,n,q)}else if(a===_$_8a55[126])c.updateDataFromSelection.call(g,[f,k,n,q]);else if(a===_$_8a55[20]){var r=null;
f.forEach(function(p){p.oldValue&&p.oldValue.range&&h.helpers.getTokensFromRange(p.oldValue.range).forEach(function(u){r||(r={});r[u]=!0})});f.forEach(function(p){p.value&&p.value.range&&h.helpers.getTokensFromRange(p.value.range).forEach(function(u){r||(r={});r[u]=!0})});r&&(f=Object.keys(r),f.forEach(function(p){var u=p.split(_$_8a55[5]);p=h.helpers.getCoordsFromColumnName(u[1]);w.call(z(u[0]),p[0],p[1],null,!0)}),f=h.helpers.getRangeFromTokens(Object.keys(r)),a=h.helpers.getCoordsFromRange(f),
c.updateDataFromSelection.call(g,a,f))}else if(a===_$_8a55[127])y.build.call(g),r=null,(f=g.config.validations)&&f.length&&(f.forEach(function(p){p&&p.range&&h.helpers.getTokensFromRange(p.range).forEach(function(u){r||(r={});r[u]=!0})}),r&&(f=Object.keys(r),f.forEach(function(p){var u=p.split(_$_8a55[5]);p=h.helpers.getCoordsFromColumnName(u[1]);w.call(z(u[0]),p[0],p[1],null,!0)})));else if(a===_$_8a55[128]||a===_$_8a55[129])g.parent.ignoreHistory||(g.parent.historyCascade=!0,a===_$_8a55[128]?y.updateWorksheetName.call(g,
n,k):(x(g.parent),y.updateAll.call(g,f,k),v(g.parent)),g.parent.historyCascade=!1);else if(a===_$_8a55[130]){if(f.action==_$_8a55[19]){a=[];for(k=0;k<f.records.length;k++)a.push({index:f.records[k].index,value:f.records[k].oldValue});g.setValidations(a)}}else a===_$_8a55[131]&&f.action==_$_8a55[19]&&g.setValidations(f.records)},createModal:function(a){c.modal=jSuites.modal(a,{title:_$_8a55[132],closed:!0,width:_$_8a55[133],height:_$_8a55[134],icon:_$_8a55[117],backdrop:!1})},openForm:function(a){a.value||
(a.value=[]);a.format||(a.format={});c.settings.index=a.index;c.settings.range=a.range||c.settings.instance.getRange();c.settings.action=a.action||_$_8a55[135];c.settings.type=a.type||_$_8a55[77];c.settings.criteria=a.criteria||_$_8a55[0];c.settings.text=a.text||_$_8a55[0];c.settings.className=a.className||_$_8a55[0];c.settings.allowBlank=a.allowBlank||_$_8a55[0];c.settings.formatColor=a.format.color||_$_8a55[0];c.settings.formatBackgroundColor=a.format[_$_8a55[93]]||_$_8a55[0];c.settings.italic=
a.format[_$_8a55[96]]||_$_8a55[0];c.settings.bold=a.format[_$_8a55[94]]||_$_8a55[0];a.type===_$_8a55[81]?(c.settings.startDate=a.value[0]||_$_8a55[0],c.settings.endDate=a.value[1]||_$_8a55[0]):(c.settings.start=a.value[0]||_$_8a55[0],c.settings.end=a.value[1]||_$_8a55[0]);c.listContainer.style.display=_$_8a55[86];c.settingsContainer.style.display=_$_8a55[136]},closeForm:function(){c.listContainer.style.display=_$_8a55[136];c.settingsContainer.style.display=_$_8a55[86]},removeValidation:function(a){c.settings.instance.resetValidations(a)}};
e=document.createElement(_$_8a55[137]);b.tools.append(e);lemonade.render(function(){var a=`<div @ready="self.createModal(this)">
<p onclick="self.parent.closeForm()" class="cursor">${d(_$_2ed1[103])}</p>
</div>`;return lemonade.element(c,b,{Calendar:G,List:E})},K=function(b,e){if(this.records[e]&&this.records[e][b]&&this.records[e][b].element){this.records[e][b].element.removeAttribute(_$_2ed1[104]);this.records[e][b].element.classList.remove(_$_2ed1[105]);var c=this.records[e][b].element.getAttribute(_$_2ed1[106]);if(c){c=c.split(_$_2ed1[63]);for(var a=0;a<c.length;a++)this.records[e][b].element.classList.remove(c[a])}this.records[e][b].element.removeAttribute(_$_2ed1[106])}},w=function(b,
e,c,a){if(this.parent.config.validations&&this.records[e]&&this.records[e][b]&&this.records[e][b].element){K.call(this,b,e);if(null==c||void 0==c)c=this.records[e][b].v;var g=this,f=h.helpers.getColumnNameFromCoords(b,e);if(this.records[e][b].element&&this.validations&&void 0!==this.validations[f]){f=this.validations[f];for(var k=0;k<f.length;k++){var n=f[k],q=this.parent.config.validations[n];if(!q)break;if(!jSuites.validations(c,q)){if(q.action!==_$_2ed1[86]){c=q.text||I(q);this.records[e][b].element.setAttribute(_$_2ed1[104],
c);this.records[e][b].element.classList.add(_$_2ed1[105]);if(q.action===_$_2ed1[107]&&!a)return setTimeout(function(){g.records[e][b].element.removeAttribute(_$_2ed1[104]);g.records[e][b].element.classList.remove(_$_2ed1[105])},2500),!1;break}}else if(q.action===_$_2ed1[86]){var r=[];q.className&&(r=q.className.split(_$_2ed1[63]));r.push(_$_2ed1[108]+this.parent.name+_$_2ed1[9]+n);for(q=0;q<r.length;q++)this.records[e][b].element.classList.add(r[q]);this.records[e][b].element.setAttribute(_$_2ed1[106],
r)}}}}},L=function(b,e){var c={init:function(a){y(a)},updateDataFromSelection:function(a,g){if(c.modal.isOpen()){if(a.length&&this.parent.config.validations){var f=a[0],k=a[1],n=a[2];a=a[3];var q=[],r=null;if(r=this.validations)for(;k<=a;k++)for(var p=f;p<=n;p++){var u=this.helpers.getColumnNameFromCoords(p,k);if(r[u])for(var B=0;B<r[u].length;B++)q[r[u][B]]=!0}f=this.parent.config.validations.map(function(F,C){return Object.assign({},F,{index:C})});c.message=d(_$_2ed1[109])+_$_2ed1[60]+(g||_$_2ed1[0]);
c.data=f.filter(function(F,C){return q[C]})}else c.data=[];c.data.length||(c.message=d(_$_2ed1[110])+_$_2ed1[60]+(g||_$_2ed1[0]));c.closeForm()}},toolbar:function(a){a.items.push({content:_$_2ed1[111],type:_$_2ed1[112],tooltip:d(_$_2ed1[113]),onclick:function(){c.open(h.current)},updateState:function(g,f,k,n){n.isEditable()?k.classList.remove(_$_2ed1[114]):k.classList.add(_$_2ed1[114])}});return a},open:function(a){c.settings.instance=a;c.modal.open();var g=a.selectedCell;if(g[0]<g[2])var f=g[0],
k=g[2];else f=g[2],k=g[0];if(g[1]<g[3]){var n=g[1];g=g[3]}else n=g[3],g=g[1];c.updateDataFromSelection.call(a,[f,n,k,g])},onevent:function(a,g,f,k,n,q){if(a===_$_2ed1[115]||a===_$_2ed1[116]||a===_$_2ed1[117])f.forEach(function(p){p.x&&p.y&&w.call(g,p.x,p.y,null,!0)});else if(a===_$_2ed1[118])w.call(g,k,n);else if(a===_$_2ed1[119]){if((_$_2ed1[0]+q).substr(0,1)!==_$_2ed1[34])return w.call(g,k,n,q)}else if(a===_$_2ed1[120])c.updateDataFromSelection.call(g,[f,k,n,q]);else if(a===_$_2ed1[20]){var r=null;
f.forEach(function(p){p.oldValue&&p.oldValue.range&&h.helpers.getTokensFromRange(p.oldValue.range).forEach(function(u){r||(r={});r[u]=!0})});f.forEach(function(p){p.value&&p.value.range&&h.helpers.getTokensFromRange(p.value.range).forEach(function(u){r||(r={});r[u]=!0})});r&&(f=Object.keys(r),f.forEach(function(p){var u=p.split(_$_2ed1[5]);p=h.helpers.getCoordsFromColumnName(u[1]);w.call(z(u[0]),p[0],p[1],null,!0)}),f=h.helpers.getRangeFromTokens(Object.keys(r)),a=h.helpers.getCoordsFromRange(f),
c.updateDataFromSelection.call(g,a,f))}else if(a===_$_2ed1[121])y.build.call(g),r=null,(f=g.config.validations)&&f.length&&(f.forEach(function(p){p&&p.range&&h.helpers.getTokensFromRange(p.range).forEach(function(u){r||(r={});r[u]=!0})}),r&&(f=Object.keys(r),f.forEach(function(p){var u=p.split(_$_2ed1[5]);p=h.helpers.getCoordsFromColumnName(u[1]);w.call(z(u[0]),p[0],p[1],null,!0)})));else if(a===_$_2ed1[122]||a===_$_2ed1[123])g.parent.ignoreHistory||(g.parent.historyCascade=!0,a===_$_2ed1[122]?y.updateWorksheetName.call(g,
n,k):(x(g.parent),y.updateAll.call(g,f,k),v(g.parent)),g.parent.historyCascade=!1);else if(a===_$_2ed1[124]){if(f.action==_$_2ed1[19]){a=[];for(k=0;k<f.records.length;k++)a.push({index:f.records[k].index,value:f.records[k].oldValue});g.setValidations(a)}}else a===_$_2ed1[125]&&f.action==_$_2ed1[19]&&g.setValidations(f.records)},createModal:function(a){c.modal=jSuites.modal(a,{title:_$_2ed1[126],closed:!0,width:_$_2ed1[127],height:_$_2ed1[128],icon:_$_2ed1[111],backdrop:!1})},openForm:function(a){a.value||
(a.value=[]);a.format||(a.format={});c.settings.index=a.index;c.settings.range=a.range||c.settings.instance.getRange();c.settings.action=a.action||_$_2ed1[129];c.settings.type=a.type||_$_2ed1[71];c.settings.criteria=a.criteria||_$_2ed1[0];c.settings.text=a.text||_$_2ed1[0];c.settings.className=a.className||_$_2ed1[0];c.settings.allowBlank=a.allowBlank||_$_2ed1[0];c.settings.formatColor=a.format.color||_$_2ed1[0];c.settings.formatBackgroundColor=a.format[_$_2ed1[87]]||_$_2ed1[0];c.settings.italic=
a.format[_$_2ed1[90]]||_$_2ed1[0];c.settings.bold=a.format[_$_2ed1[88]]||_$_2ed1[0];a.type===_$_2ed1[75]?(c.settings.startDate=a.value[0]||_$_2ed1[0],c.settings.endDate=a.value[1]||_$_2ed1[0]):(c.settings.start=a.value[0]||_$_2ed1[0],c.settings.end=a.value[1]||_$_2ed1[0]);c.listContainer.style.display=_$_2ed1[80];c.settingsContainer.style.display=_$_2ed1[130]},closeForm:function(){c.listContainer.style.display=_$_2ed1[130];c.settingsContainer.style.display=_$_2ed1[80]},removeValidation:function(a){c.settings.instance.resetValidations(a)}};
e=document.createElement(_$_2ed1[131]);b.tools.append(e);lemonade.render(function(){var a=`<div @ready="self.createModal(this)">
<div @ref="self.listContainer">

@@ -219,5 +219,5 @@ <div>

</div>
<p><input type="button" value="${d(_$_8a55[119])}" onclick="self.openForm({ index: null })" class="jbutton dark" /></p>
<p><input type="button" value="${d(_$_2ed1[113])}" onclick="self.openForm({ index: null })" class="jbutton dark" /></p>
</div>
<div @ref="self.settingsContainer" style="display: none;"><Settings @ref="self.settings" /></div>
</div>`;return lemonade.element(a,c,{Settings:J,List:E})},e);return c},D=function(){return!0};D.oninit=function(b,e){e=_$_8a55[0];8==b.status?b.scope&&-1!=b.scope.indexOf(_$_8a55[1])||(e=_$_8a55[2]):e=_$_8a55[3];if(!e){var c=h.version();if(!c||!c.version||9>parseInt(c.version))e=_$_8a55[4]}e?console.error(e):b.setPlugins({validations:L})};D.license=function(b){null===h&&(h=this)};return D});
</div>`;return lemonade.element(a,c,{Settings:J,List:E})},e);return c},D=function(){return!0};D.oninit=function(b,e){e=_$_2ed1[0];8==b.status?b.scope&&-1!=b.scope.indexOf(_$_2ed1[1])||(e=_$_2ed1[2]):e=_$_2ed1[3];if(!e){var c=h.version();if(!c||!c.version||9>parseInt(c.version))e=_$_2ed1[4]}e?console.error(e):b.setPlugins({validations:L})};D.license=function(b){null===h&&(h=this)};return D});

@@ -30,4 +30,3 @@ {

"dependencies": {
"jszip": "^3.7.1",
"jsuites": "^4.17.1",
"jsuites": "^4.17.7",
"lemonadejs": "^2.8.8"

@@ -37,3 +36,3 @@ },

"types": "dist/index.d.ts",
"version": "1.3.1",
"version": "1.4.0",
"bugs": "https://github.com/jspreadsheet/pro/issues",

@@ -40,0 +39,0 @@ "homepage": "https://github.com/jspreadsheet/pro",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc