The basics
attributesValidationRules is a key that can be added on any incident listed on the “incidents” key of the main.js file of any plugin.
Example of a main.js file:
attributesValidationRules is an object that its keys define the expected keys of the “attrs” that the Incident supports. For example an Incident that supports the “opacity” and “width” animatedAttrs and also the “type” attribute would expect something like this as its attrs on instantiation:
A basic validation ruleset for this Incident can be defined in the following way:
Notice the “units” key on the “width” attribute. “units” key enums the list of supported units of the attribute, separately from the rest of its definition. The way we’ve defined it here, width can be any number greater than 0 followed by any of the supported units (“800px”, “50%”, etc).
List of supported validation rules
number
type: “number”
Used for plain numbers (either integers or floats)
Supported properties:
- min (defines the minimum accepted value)
- max (defines the maximum accepted value)
- integer: (boolean, default true, defines if the value must be an integer or not)
measurement
type: “measurement”
Used to define quantities measured in units (e.g. px, rad, %)
Supported properties:
- min (defines the minimum accepted value)
- max (defines the maximum accepted value)
- integer: (boolean, default true, defines if the value must be an integer or not)
- units (a list of supported units. Defaults to unitless, so no units are expected)
string
type: “string”
Supported properties:
- textarea: (boolean, default false, defines whether the UI should render it as text area)
- empty: (if true an empty string is accepted “ “. Defaults to true)
- min: (minimum string length)
- max (maximum string length)
- length: (fixed string length is only accepted)
- pattern: (regex pattern)
color
type: “color”
No supported properties
enum
type: “enum”
Supported properties:
- values: (an array containing all the accepted values)
boolean
type: “boolean”
No supported properties
object
type: “object”
Supported properties:
- props: (an object, the keys’ names of which define its supported properties and the value of each key defines the validation rule of it)
- strict: (boolean, defaults to true. If true only properties of its “props” key will be accepted. Otherwise any other property name will be accepted and treated as a small string)
array
type: “array”
Supported properties: