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 (extendsHTMLElement
)
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 (extendsHTMLElement
)
property
property(defaultValue: any, [connect: Function]): Object
arguments:
defaultValue
- any valueconnect
- a connect callback function of the property descriptor
returns:
a property descriptor, which resolves to value
parent
parent(hybridsOrFn: Object | Function: (hybrids) => {...}: Boolean): Object
arguments:
hybridsOrFn
- reference to an object containing property descriptors or a function, which returnstrue
when currenthybrids
meets the condition
returns:
a property descriptor, which resolves to
null
orElement
instance
children
children(hybridsOrFn: Object | Function: (hybrids) => {...}: Boolean, [options: Object]): Object
arguments:
hybridsOrFn
- reference to an object containing property descriptors or a function, which returnstrue
when currenthybrids
meets the conditionoptions
- object with available keys:deep
- boolean, defaults tofalse
nested
- boolean, defaults tofalse
returns:
a property descriptor, which resolves to
array
ofElement
instances
render
render(fn: Function, options: Object = { shadowRoot: true }): Object
arguments:
fn(host: Element): Function
- callback function withhost
argument; returned function hashost
andtarget
argumentsoptions: Object
- an object, which has a following structure:{ shadowRoot: true }
(default value) - initializes Shadow DOM and settarget
asshadowRoot
{ shadowRoot: false }
- setstarget
argument ashost
,{ shadowRoot: { extraOption: true, ... } }
- initializes Shadow DOM with passed options forattachShadow()
method
returns:
hybrid property descriptor, which resolves to a function
store
direct
store.get(Model: object, id?: string | object) : object;
arguments:
Model: object
- a model definitionid: string | object
- a string or an object representing identifier of the model instance
returns:
Model instance or model instance placeholder
store.set(Model: object, values: object) : Promise;
arguments:
Model: object
- a model definitionvalues: object
- an object with partial values of the model instance
returns:
A promise, which resolves with the model instance
store.set(modelInstance: object, values: object | null): Promise;
arguments:
modelInstance: object
- a model instancevalues: object | null
- an object with partial values of the model instance ornull
for deleting the model
returns:
A promise, which resolves to the model instance or placeholder (for model deletion)
factory
store(Model: object, options?: id | { id?: string | (host) => any, draft?: boolean }): object
arguments:
Model: object
- a model definitionoptions
- an object with the following properties or the shorter syntax with the belowid
field valueid
- ahost
property name, or a function returning the identifier using thehost
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
store.ready(model: object): boolean
arguments:
model: object
- a model instance
returns:
true
for a valid model instance,false
otherwise
store.pending(model: object): boolean | Promise
arguments:
model: object
- a model instance
returns:
In pending state a promise instance resolving with the next model value,
false
otherwise
store.error(model: object, propertyName?: string): boolean | Error | any
arguments:
model
- a model instancepropertyName
- a property name of the failed validation defined withstore.value()
method
returns:
An error instance or whatever has been thrown or
false
. WhenpropertyName
is set, it returnserr.errors[propertyName]
orfalse
value
store.value(defaultValue: string | number, validate?: fn | RegExp, errorMessage?: string): String | Number
arguments:
defaultValue
-string
ornumber
valuevalidate
- a validation function -validate(val, key, model)
, which should returnfalse
, error message or throws when validation fails, or a RegExp instance. If omitted, the default validation is used, which fails for empty string and0
.errorMessage
- optional error message used when validation fails
returns:
a
String
orNumber
instance
html
html`<div property="${value}">${value}</div>` : Function
arguments:
HTML content as a template content
value
- dynamic values as a property values or element content
returns:
an update function, which takes
host
andtarget
arguments
html`...`.define(map: Object): Function
arguments:
map
- object with hybrids definitions or custom element's constructors
returns:
update function compatible with content expression
html`...`.style(...styles: Array<string | CSSStyleSheet>): Function
arguments:
styles
- a list of text contents of CSS stylesheets, or instances ofCSSStyleSheet
(only for constructable stylesheets)
returns:
an update function compatible with content expression
html.resolve(promise: Promise, placeholder: Function, delay = 200): Function
arguments:
promise
- promise, which should resolve/reject update functionplaceholder
- update function for render content until promise is resolved or rejecteddelay
- delay in milliseconds, after which placeholder is rendered
returns:
update function compatible with content expression
svg
svg`<circle property="${value}">${value}</circle>` : Function
arguments:
SVG content as a template content
value
- dynamic values as a property values or element content
returns:
an update function, which takes
host
andtarget
arguments
svg`...`.define(map: Object): Function
arguments:
map
- object with hybrids definitions or custom element's constructors
returns:
update function compatible with content expression
svg`...`.style(styles: string, [styles: string]...): Function
arguments:
styles
- text content of CSS stylesheet
returns:
update function compatible with content expression
svg.resolve(promise: Promise, placeholder: Function, delay = 200): Function
arguments:
promise
- promise, which should resolve/reject update functionplaceholder
- update function for render content until promise is resolved or rejecteddelay
- delay in milliseconds, after which placeholder is rendered
returns:
update function compatible with content expression
dispatch
dispatch(host: Element, eventType: string, [options]): Boolean
arguments:
host
- element instanceeventType
- type of the event to be dispatchedoptions
- a dictionary, having the following optional fields:bubbles
- a boolean indicating whether the event bubbles. The default is falsecancelable
- a boolean indicating whether the event can be cancelled. The default is falsecomposed
- a boolean indicating whether the event will trigger listeners outside of a shadow root The default is falsedetail
- 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 calledpreventDefault()
, otherwise it returnstrue
Last updated
Was this helpful?