Components managment library
npm install sham-ui
##### Table of Contents
- start
- Parameters
- createDI
- DI
- bind
- Parameters
- bindLazy
- Parameters
- resolve
- Parameters
- Store
- Properties
- Dom
- build
- Parameters
- el
- Parameters
- text
- Parameters
- comment
- Parameters
- unsafe
- Parameters
- Hooks
- create
- Parameters
- hydrate
- Parameters
- rehydrate
- Parameters
- resolveID
- Parameters
- optionsCallback
- Parameters
- didMountCallback
- Parameters
- onRemoveCallback
- Parameters
- didReceiveCallback
- Parameters
- componentConstructor
- Parameters
- ComponentFactory
- Parameters
- Component
- Parameters
- Properties
- spots
- nested
- nodes
- onMount
- onRemove
- onReceive
- setDefaultOptions
- Parameters
- insert
- Parameters
- cond
- Parameters
- loop
- Parameters
- createRootContext
- Parameters
- createChildContext
- Parameters
- createLoopContext
- Parameters
- createBlockContext
- Parameters
#### start
Render root components
##### Parameters
- DI DI
#### createDI
Create new instance of DI
Returns DI
#### DI
##### bind
Bind item by name
###### Parameters
- name string
- item any
Returns DI
##### bindLazy
Lazy bind item factory by name
###### Parameters
- name string
- factory any
Returns DI
##### resolve
Get item from container by name
###### Parameters
- name string
Returns any
#### Store
Components store
##### Properties
- byId Map<string, Component> Inner store
#### Dom
Inner service for wrap document's methods (create elements, text nodes & comments)
##### build
Construct dom enabled
###### Parameters
- component Component
Returns boolean
##### el
Create element
###### Parameters
- component Component
- tagName string
Returns HTMLElement
##### text
Create a text node
###### Parameters
- component Component
- data string
Returns Text
##### comment
Create comment node
###### Parameters
- component Component
- data string
Returns Comment
##### unsafe
This function is being used for unsafe innerHTML insertion of HTML into DOM.
Code looks strange. I know. But it is possible minimalistic implementation of.
###### Parameters
- component Comment
- root {Element} Node there to insert unsafe html.
- nodes {Array} List of already inserted html nodes for remove.
- html {string} Unsafe html to insert.
#### Hooks
Inner service for hydrate/rehydrate hooks
##### create
Hook for extra processing after component created
###### Parameters
- component Component
##### hydrate
Hook for mark root component as ready for hydrating
###### Parameters
- component Component
##### rehydrate
Hook for mark rehydrating component
###### Parameters
- component Component
##### resolveID
Hook for resolve ID for component
###### Parameters
- component Component
Returns string
#### optionsCallback
Setup default component state
Return reference to component state
Type: Function
##### Parameters
- defaultState Object<string, any>
#### didMountCallback
Registry function on component didMount hook.
Param callback will call after component render & update
Type: Function
##### Parameters
- callback Function
Returns (onRemoveCallback \| undefined)
#### onRemoveCallback
Registry function on component onRemove hook
Param callback will call after component remove
Type: Function
##### Parameters
- callback Function
#### didReceiveCallback
Registry function on component didReceive hook.
Param callback will call after component receive new state update from outer components
Type: Function
##### Parameters
- callback Function
#### componentConstructor
Constructor function for component
Type: Function
##### Parameters
- options optionsCallback
- didMount didMountCallback
- didReceive didReceiveCallback
#### ComponentFactory
Factory for create new component
##### Parameters
- constructors ...componentConstructor?
Returns Component.constructor
#### Component
Base component class
##### Parameters
- context Object Context
- options Object? Default options
##### Properties
- ctx Object Context
- ID string Component unique ID
- dom Dom
- UI Store
- hooks Hooks
##### spots
Type: Array<Spot>
##### nested
##### nodes
##### onMount
##### onRemove
##### onReceive
#### setDefaultOptions
##### Parameters
- current Object
- newOptions Object
- proxy Function
Returns Object
#### insert
Custom tags processor.
##### Parameters
- context Object Context
- template Class<Component> Component class for insert, if test true
- data Object Options for component
#### cond
If condition processor.
##### Parameters
- context Object Context
- template Class<Component> Component class for insert, if test true
- test boolean Condition test
Returns boolean test result
#### loop
Loops processor
##### Parameters
- context Object Context
- template Class<Component> Component class for insert, if test true
- array (Array \| Object) Iterated object or array
- options (LoopOptions | null) Options for component
#### createRootContext
##### Parameters
- $0 Object
- $0.DI DI
- $0.ID string?
- $0.container Element
- $0.directives Object (optional, default {})
- $0.filters Object (optional, default [])
Returns Object
#### createChildContext
##### Parameters
- parent Component
- container Element
- blocks Object
Returns Object
#### createLoopContext
##### Parameters
- parent Component
- container Element
Returns any
#### createBlockContext
##### Parameters
- owner Component
Returns Object
The MIT License (MIT)
Copyright (c) 2015 Eugene Burnashov
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.