API Reference

The following functions are a public API of the hybrids library available as named exports:

define

define(tagName: string, descriptorsOrConstructor: Object | Function): Wrapper
  • arguments:

    • tagName - a custom element tag name,

    • descriptorsOrConstructor - an object with a map of hybrid property descriptors or constructor

  • returns:

    • Wrapper - custom element constructor (extends HTMLElement)

define({ tagName: descriptorsOrConstructor, ... }): { tagName: Wrapper, ... }
  • arguments:

    • tagName - a custom element tag name in pascal case or camel case,

    • descriptorsOrConstructor - an object with a map of hybrid property descriptors or constructor

  • returns:

    • { tagName: Wrapper, ...} - a map of custom element constructors (extends HTMLElement)

property

property(defaultValue: any, [connect: Function]): Object
  • arguments:

    • defaultValue - any value

    • connect - a connect callback function of the property descriptor

  • returns:

    • a property descriptor, which resolves to value

parent

  • arguments:

    • hybridsOrFn - reference to an object containing property descriptors or a function, which returns true when current hybrids meets the condition

  • returns:

    • a property descriptor, which resolves to null or Element instance

children

  • arguments:

    • hybridsOrFn - reference to an object containing property descriptors or a function, which returns true when current hybrids meets the condition

    • options - object with available keys:

      • deep - boolean, defaults to false

      • nested - boolean, defaults to false

  • returns:

    • a property descriptor, which resolves to array of Element instances

render

  • arguments:

    • fn(host: Element): Function - callback function with host argument; returned function has host and target arguments

    • options: Object - an object, which has a following structure:

      • { shadowRoot: true } (default value) - initializes Shadow DOM and set target as shadowRoot

      • { shadowRoot: false } - sets target argument as host,

      • { shadowRoot: { extraOption: true, ... } } - initializes Shadow DOM with passed options for attachShadow() method

  • returns:

    • hybrid property descriptor, which resolves to a function

store

direct

  • arguments:

    • Model: object - a model definition

    • id: string | object - a string or an object representing identifier of the model instance

  • returns:

    • Model instance or model instance placeholder

  • arguments:

    • Model: object - a model definition

    • values: object - an object with partial values of the model instance

  • returns:

    • A promise, which resolves with the model instance

  • arguments:

    • modelInstance: object - a model instance

    • values: object | null - an object with partial values of the model instance or null for deleting the model

  • returns:

    • A promise, which resolves to the model instance or placeholder (for model deletion)

factory

  • arguments:

    • Model: object - a model definition

    • options - an object with the following properties or the shorter syntax with the below id field value

      • id - a host property name, or a function returning the identifier using the host

      • draft - a boolean switch for the draft mode, where the property returns a copy of the model instance for the form manipulation

  • returns:

    • hybrid property descriptor, which resolves to a store model instance

guards

  • arguments:

    • model: object - a model instance

  • returns:

    • true for a valid model instance, false otherwise

  • arguments:

    • model: object - a model instance

  • returns:

    • In pending state a promise instance resolving with the next model value, false otherwise

  • arguments:

    • model - a model instance

    • propertyName - a property name of the failed validation defined with store.value() method

  • returns:

    • An error instance or whatever has been thrown or false. When propertyName is set, it returns err.errors[propertyName] or false

value

  • arguments:

    • defaultValue - string or number value

    • validate - a validation function - validate(val, key, model), which should return false, error message or throws when validation fails, or a RegExp instance. If omitted, the default validation is used, which fails for empty string and 0.

    • errorMessage - optional error message used when validation fails

  • returns:

    • a String or Number instance

html

  • arguments:

    • HTML content as a template content

    • value - dynamic values as a property values or element content

  • returns:

    • an update function, which takes host and target arguments

  • arguments:

    • map - object with hybrids definitions or custom element's constructors

  • returns:

    • update function compatible with content expression

  • arguments:

    • styles - a list of text contents of CSS stylesheets, or instances of CSSStyleSheet (only for constructable stylesheets)

  • returns:

    • an update function compatible with content expression

  • arguments:

    • promise - promise, which should resolve/reject update function

    • placeholder - update function for render content until promise is resolved or rejected

    • delay - delay in milliseconds, after which placeholder is rendered

  • returns:

    • update function compatible with content expression

svg

  • arguments:

    • SVG content as a template content

    • value - dynamic values as a property values or element content

  • returns:

    • an update function, which takes host and target arguments

  • arguments:

    • map - object with hybrids definitions or custom element's constructors

  • returns:

    • update function compatible with content expression

  • arguments:

    • styles - text content of CSS stylesheet

  • returns:

    • update function compatible with content expression

  • arguments:

    • promise - promise, which should resolve/reject update function

    • placeholder - update function for render content until promise is resolved or rejected

    • delay - delay in milliseconds, after which placeholder is rendered

  • returns:

    • update function compatible with content expression

dispatch

  • arguments:

    • host - element instance

    • eventType - type of the event to be dispatched

    • options - a dictionary, having the following optional fields:

      • bubbles - a boolean indicating whether the event bubbles. The default is false

      • cancelable - a boolean indicating whether the event can be cancelled. The default is false

      • composed - a boolean indicating whether the event will trigger listeners outside of a shadow root The default is false

      • detail - a custom data, which will be passed to an event listener

  • returns:

    • false if event is cancelable and at least one of the event handlers which handled this event called preventDefault(), otherwise it returns true

Last updated

Was this helpful?