Socket
Socket
Sign inDemoInstall

@hdsydsvenskan/forms-utils

Package Overview
Dependencies
76
Maintainers
11
Versions
18
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @hdsydsvenskan/forms-utils

A set of useful utilities for the forms module


Version published
Weekly downloads
911
increased by208.81%
Maintainers
11
Install size
59.0 kB
Created
Weekly downloads
 

Readme

Source

@hdsydsvenskan/forms-utils

A collection of fields, widgets and other useful utils for the forms module.

js-semistandard-style

Usage

const { customFields: fields } = require('@hdsydsvenskan/forms-utils');
const { fields, widgets } = require('forms');

const formDefinition = {
  description: customFields.html({
    label: 'Description',
    html: '<p>This is a HTML description</p>'
  }),
  items: customFields.multiObject({
    label: 'Items',
    rowField: {
      itemName: fields.string({ label: 'Name' }),
      itemValuee: fields.string({ label: 'Value' })
    }
  })
}

API

.fields

  • .basic – a basic field which can eg. be extended to create more complex fields
  • .html – a HTML field, which doesn't contain any actual form widget, but inserts a piece of HTML in its place instead (specified through a html property). Does not interact with any value of the field, neither gets or sets it.
  • .multiField – a multi row field for creating complex forms. Repeats a sub-form for every item in an array value + allows adding new items. Needs a piece of client side JS to delete rows and to make adding new rows easier.

.widgets

  • Basic – a basic widget which can eg. be extended to create more complex widgets. In itself it just prints the escaped value of the field.
  • Image – an image widget which can show a preview thumbnail, linking to the full image, along with a file upload field and a "remove" button

.utils

  • getUserAttrs() – mimics the one from forms itself
  • htmlEscape() – mimics the one from forms itself
  • tag() – mimics the one from forms itself

Promised Forms

  • promisedFormHandle(form, body) – takes a form definition and a body and handles the form through a Promise – resolving to { success: true, form }, { error: true, form } or { empty: true, form }
  • promisedFormHandles(forms, body) – same as promisedFormHandle, but with multiple form definitions. If any of those definitions return error: true, then it will return { error: true, forms }. If any forms is empty, then it will return { empty: true, forms }. Else it will return { success: true, forms }.

Browser JS

Multi Field

Example
import { multiField } from '@hdsydsvenskan/forms-utils/browser/multi-field';

const multiFieldSetup = multiFieldSetup({ dragula });

multiFieldSetup.init();
multiField(options)
  • [options.activateInContext(newRow)] – if provided, then this will be called for every new row added. This enables other pieces of javascript to run on those new rows – adding eg. autocomplete functionality or other interesting things
  • [options.dragula] – if drag and drop capabilities are wanted, then provide a version of Dragula 3.x
  • [options.textRemove] – the text to add to the remove buttons. Defaults to Remove.

Returns an object with two methods: initField(elem) and init([context]).

initField(elem) initiates the javascript for a specific multi field setup.

init([context]) initiates the javascript for aöö multi field setups within the context or document.

FAQs

Last updated on 22 Jul 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc