New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

javascript-helpers

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

javascript-helpers - npm Package Compare versions

Comparing version 1.0.1 to 1.1.0

src/modules/isMobile/isMobile.js

6

package.json
{
"name": "javascript-helpers",
"title": "Javascript Helpers",
"description": "List of useful Javascript functions to make development easier",
"version": "1.0.1",
"title": "JavaScript Helpers",
"description": "List of useful JavaScript functions to make development easier",
"version": "1.1.0",
"main": "src/index.js",

@@ -7,0 +7,0 @@ "homepage": "https://valeriodipunzio.com/plugins/javascript-helpers/",

# Javascript Helpers
# JavaScript Helpers
Visit the [Plugin Documentation Page](https://www.valeriodipunzio.com/plugins/javascript-helpers/) for more info.
Visit the [Plugin Documentation Page](https://valeriodipunzio.com/plugins/javascript-helpers/) for more info.

@@ -10,3 +10,3 @@

See the [Changelog Page](https://www.valeriodipunzio.com/plugins/javascript-helpers/#changelog) for details.
See the [Changelog Page](https://valeriodipunzio.com/plugins/javascript-helpers/#changelog) for details.

@@ -17,3 +17,3 @@

See the [Releases Page](https://github.com/SimplySayHi/javascript-helpers/releases) to download provious versions.
See the [Releases Page](https://github.com/SimplySayHi/javascript-helpers/releases) to see previous versions.

@@ -20,0 +20,0 @@

@@ -17,2 +17,3 @@

import isFieldForChangeEventFn from './modules/isFieldForChangeEvent/isFieldForChangeEvent.js';
import isMobileFn from './modules/isMobile/isMobile.js';
import isNodeListFn from './modules/isNodeList/isNodeList.js';

@@ -52,2 +53,3 @@ import isPlainObjectFn from './modules/isPlainObject/isPlainObject.js';

isFieldForChangeEvent = isFieldForChangeEventFn,
isMobile = isMobileFn,
isNodeList = isNodeListFn,

@@ -54,0 +56,0 @@ isPlainObject = isPlainObjectFn,

@@ -6,6 +6,8 @@

if( !cssClasses ){ return; }
elements = getElements( elements );
getElements( elements ).forEach(function(elem){
cssClasses.split(' ').forEach(function(className){
if( !cssClasses ){ return elements; }
elements.forEach(elem => {
cssClasses.split(' ').forEach(className => {
elem.classList.add( className );

@@ -15,2 +17,4 @@ });

return elements;
}

@@ -6,7 +6,9 @@

export default ( fields = [], cssClasses = '' ) => {
export default ( fields, cssClasses = '' ) => {
if( !cssClasses ){ return; }
fields = getElements(fields);
if( !cssClasses ){ return fields; }
getElements(fields).forEach(function(fieldEl){
fields.forEach(fieldEl => {
if( fieldEl.type !== 'checkbox' && fieldEl.type !== 'radio' ){

@@ -26,3 +28,5 @@ let containerEl = fieldEl.closest('[data-formjs-question]') || fieldEl;

});
return fields;
}
import isDomNode from '../isDomNode/isDomNode.js';
import isValidSelector from '../isValidSelector/isValidSelector.js';
import getElements from '../getElements/getElements.js';
export default ( formEl = null ) => {
export default ( formEl ) => {
const isFormSelector = isValidSelector(formEl) && document.querySelector(formEl).tagName.toLowerCase() === 'form';
formEl = getElements(formEl)[0] || null;
const isForm = !!formEl && formEl.tagName && formEl.tagName.toLowerCase() === 'form';
return {
result: isFormSelector || isDomNode(formEl),
element: isFormSelector ? document.querySelector(formEl) : formEl
result: isForm,
element: formEl
}
}

@@ -5,47 +5,39 @@

const fieldsStringSelector = 'input:not([type="reset"]):not([type="submit"]):not([type="button"]):not([type="hidden"]), select, textarea';
export default ( formEl, data = {}, skipFilledFields = false ) => {
export default ( formEl = null, data = {}, skipFilledFields = false ) => {
formEl = getElements(formEl)[0] || null;
formEl = getElements(formEl)[0];
if( !formEl || !data || isEmptyObject(data) ){ return formEl; }
if( !formEl || !data || isEmptyObject(data) ){ return; }
Object.keys( data ).forEach(name => {
const firstFieldEl = formEl.querySelector('[name="'+ name +'"]');
const isRadio = firstFieldEl && firstFieldEl.type === 'radio';
const isSingleCheckbox = typeof data[name] === 'boolean';
const keyValue = isSingleCheckbox || isRadio ? [data[name]] : data[name];
Array.from( formEl.querySelectorAll(fieldsStringSelector) ).forEach(fieldEl => {
const name = fieldEl.name;
if( typeof data[name] !== 'undefined' ){
let value = data[name];
const type = fieldEl.type,
isCheckbox = type === 'checkbox',
isRadio = type === 'radio';
if( isCheckbox || isRadio ){
if( isRadio ){
fieldEl = formEl.querySelector('[name="'+ name +'"][value="'+ value +'"]');
} else if( fieldEl.matches('[data-checks]') ) {
if( value.indexOf(fieldEl.value) === -1 ){
fieldEl = null;
}
}
if( Array.isArray(keyValue) ){
// CHECKBOXES ( SINGLE & MUTIPLE ) & RADIOS
keyValue.forEach(listValue => {
const isBoolean = typeof listValue === 'boolean';
const fieldEl = isBoolean ?
formEl.querySelector('[name="'+ name +'"]') :
formEl.querySelector('[name="'+ name +'"][value="'+ listValue +'"]');
if( fieldEl ){
fieldEl.checked = value;
fieldEl.checked = isBoolean ? listValue : true;
}
});
} else if( !skipFilledFields || fieldEl.value === '' ) {
} else {
fieldEl.value = value;
const fieldEl = formEl.querySelector('[name="'+ name +'"]');
if( fieldEl && (!skipFilledFields || fieldEl.value === '') ){
fieldEl.value = keyValue;
}
}
}
});
}
return formEl;
}

@@ -1,2 +0,2 @@

import getElements from "../getElements/getElements";
import getElements from "../getElements/getElements.js";

@@ -3,0 +3,0 @@ const fieldsStringSelector = 'input:not([type="reset"]):not([type="submit"]):not([type="button"]):not([type="hidden"]), select, textarea';

@@ -6,17 +6,11 @@

for(let i=1; i<arguments.length; i++){
let obj = arguments[i];
if(!obj){ continue; }
for(let key in obj){
if( obj.hasOwnProperty(key) ){
if ( isPlainObject(obj[key]) ){
out[key] = mergeObjects(out[key], obj[key]);
} else {
out[key] = obj[key];
}
Array.from(arguments).filter(arg => !!arg).forEach(arg => {
Object.keys(arg).forEach(key => {
if ( isPlainObject(arg[key]) ){
out[key] = mergeObjects(out[key], arg[key]);
} else {
out[key] = arg[key];
}
}
}
});
});

@@ -23,0 +17,0 @@ return out;

@@ -6,5 +6,7 @@

if( !cssClasses ){ return; }
elements = getElements(elements);
getElements(elements).forEach(function(elem){
if( !cssClasses ){ return elements; }
elements.forEach(function(elem){
cssClasses.split(' ').forEach(function(className){

@@ -14,3 +16,5 @@ elem.classList.remove( className );

});
return elements;
}
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