All notable changes to this project will be documented in this file.
- Fixed props defined outside class constructor should work now
- Fixed a problem with hydration system and injected component
- Fixed a problem with spread props when a component is created by loop the props are undefined
- Improved suspendContent
- Added
suspendContent
a mechanism that suspends the creation of children nodes and saves them in a component property calledsuspendNodes
. It is possible to use it via:- special prop
<${MyComponent} suspendcontent/>
- class property
...suspendContent = true...
- special prop
- Improved hydration system
- Added support to hydration
- Added component method:
this.inject('<${MyComponent}>...</>')
, a better alternative tothis.mount('<${MyComponent}>...</>')
- Added component method:
this.enject(..)
, to remove injected template with this.inject
- Breaking changes
- Removed hook
onMountAsync
use insteadonMount
- Removed property
autoCreateChildren
use insteadsuspendcontent
prop in markup
- Removed hook
- Added prop
suspendcontent
- Added spread operator props like
<my-component ...${myObject}/>
- Improved performance
- Fixed component data attributes do not work
- Improved component attributes now are removed at creation of the HTML element
- Removed IE11 info
- Fixed version script
- Breaking changes
- Drop UMD distribution
- Added full support to ESM
- Improved performance during the component creation
- Fixed dozAttach can be undefined using
data-follow
- Added
data-follow
support
- Fixed
runMount
fails if there are child components
- Added app event
elementAttributesAttach
- Fixed if beforeCreate returns false the component will be not created
- Fixed directives don't work on Parcel 2
- Improvement
- Added experimental loadingComponent and errorComponent for async components
- Fixed propsPropagation error when a child component has propsPropagation set to true
- Fixed wrong string using same component with props set to empty string
- Revert before "Fixed wrong string using same component with props set to empty string"
- Fixed issue when a component is passed via prop
- Added support to promised components
- Fixed directives now are excluded from propsPropagation
- Added directive
d:no-propagation
; - Fixed propsPropagation does not work on add props;
- Fixed propsPropagation does not work on set props;
- Fixed wrong string using same component with props set to empty string;
- Improvement expose createInstance;
- Fixed plugins were loaded after app creation;
- Fixed
d:lazy
initial check;
- Added
d:lazy
component directive;
- Added support to server side props;
- Improvement
appReady
event, now supportswaitMount
;
- Added deferred mount;
- Fixed esm version;
- Added app boolean option
setAllAttributes
- Added app callback option
onVdomUpdateElement
- Improvement optimize esm;
- Fixed "Uncaught TypeError: Illegal invocation" in Chrome;
- Fixed possible undefined
this
object inh
method;
- Updated dependencies;
- Removed esm minification
- Fixed in 'd-animate' directive instance.elementsWithAnimation could be "falsy" and therefore generate error on Tizen 6.0
- Improvement esm size
- Improvement set sideEffects to false on the package.json
- Fixed issue using appCreate with doz-ssr
- Fixed style does not work on web-component
- Added new api called
appCreate
- Added event listener support to web-component
- Fixed conflict between multiple apps in the same page
- Changed Disable proxy error when proxy not found
- Added ESM version
- Added
propsPropagation
to component - Added
listeners
to Doz instance
- Added
exposeAttributes
to component
- Improvement property tag of a Doz component now is writable
- Fixed double text node insert when props is an empty text
- Fixed possible error using slot
- Added exposed methods for web components
- Added support to functions for the hooks directives
- Fixed memory leak
- Added support to empty closed tag like "<${FooBar}>...</>"
- Fixed closed tag using a placeholder component
- Improved
mount
method
- Added
setProps
method - Added
setPropsAsync
method
- Improved directives engine
- Fixed remove cache when use forceupdate attribute
- Fixed use ElementTraversal interface
- Improved performance
- Changed template compiler engine, it should be 2x times faster
- Improved performance
- Improved performance
- Removed error when directive d-id already exists
- Removed useless code
- Added
defineWebComponent
- Added
defineWebComponentFromGlobal
- Added
getWebComponentById
- Added
getWebComponentByTag
- Fixed the pseudo selectors
:host
and:host-context
are not modified
- Added data-no-shadow attribute for DozWebComponent
- Fixed attributes now are converted from dashcase to camelcase when use DozWebComponent
- Fixed duplicate style when use DozWebComponent
- Added data-soft-entrance attribute for DozWebComponent
- Fixed possible duplicate elements during updating with keys
- Fixed possible error when remove an element from keyed list
- Breaking changes
- Refactored method
createExtWebComponent
tocreateDozWebComponent
- Refactored method
getExtWebComponentById
togetDozWebComponentById
- Refactored method
getExtWebComponentByTag
togetDozWebComponentByTag
- Refactored method
- Removed app id suffix from tag name of local component
- Improved performance when use keyed list
- Fixed style update doesn't work fine
- Fixed possible wrong position of last two items when re-assign array, using keys
- Fixed update of attributes doesn't work
- Improved all styles now are placed inside shadowRoot
- Improved added observedAttributes array property to webcomponent function
- Updated types definitions
- Added Ext Web Component
- Improved styles, now without tag script
- Fixed issue using key during sorting list
- Improved animation directive
- Fixed issue using a class with constructor in production with doz-cli
- Fixed "Cannot call a class as a function" in production with doz-cli
- Fixed HTML5 booleans attributes without value
- Fixed conflict between directives
d-show
andd-animate
- Removed for the moment "support to attributes without quotes" :(, so many problems
- Fixed SVG elements are malformed
- Fixed several issues using keyed elements
- Fixed possible delay when use style inside component
- Improved performance about 2x
- Added
prepareCommit
method to component instance - Added
commit
method to component instance - Added support to attributes without quotes
- Fixed reflow issue using script tag instead style tag
- Added
DOZ_APP_ID
global variable
- Removed empty methods
show
andhide
from directived-show
- Fixed issue on Edge when using
d-ref
andd-show
together
- Fixed style reset error when removing a component
- Changed now exposed param
withStyle
fortoStyle
method
- Improved class recognition
- Fixed double app rendering in SSR
- Fixed possible "max cycle exceeded" warning when using
d-animate
- Added
appId
property to Doz instance - Improved
d-bind
directive - Changed uId format, now also includes appId
- Fixed multiple Doz apps can coexist
- Added max id safer for vdom mapper
- Removed auto-cast of
d-bind
directive
- Fixed when an attribute is empty it is removed
- Added
d-animate
directive for animation - Added
animate
helper to Component - Added support for animation to
d-show
- Improved HTML boolean attribute support
- Improved directive attributes, now supports also object
- Removed console log in directive
d-show
- Added support handler as function to
d-on
directive - Improved catch logic handler into template
- Added support handler as function instead string for html element
- Fixed memory leak using element handler
- Improved performance
- Fixed 'Cannot call a class as a function' with mount method
- Fixed issue when before a slot there are a text child
- Updated readme example
- Added
tag
decorator
- Fixed issue when
each
method returns empty array - Improved style manager
- Fixed possible issue of style with pseudo classes
- Changed installation method, using npx instead npm, this solves issue on Mac.
- Added project built with Doz
- Added support to components created by object
- Fixed possible undefined style element
- Fixed style issues
- Added support to new local components with class
- Added key attribute for keyed loops
- Changed now props in template preserves the type
- Removed directive
d-key
- Fixed Keyed loops
- Added attribute
scoped
to tag style - Improved sanitization input values
- Added directive 'd-show'
- Added 'props' as second argument to template function
- Improved directive 'd-key', now works also with no component elements
- Improved directives organization
- Fixed issue with comments into scoped style #9
- Fixed data-uid is undefined #10
- Fixed attributes with dash (-) are "duplicated" without dash #13
- Changed attributes "style" and "class" will not be removed from the component tag during render
- Fixed
onDrawByParent
was not called when there is a slot
- Added support to slots
- Added
onDrawByParent
event to component, useful for nested component - Added magic word "scope" for listener referred to manipulation of v-dom inside
onDrawByParent
event
- Fixed last dynamic component created into a list does not work fine
- Added alias pseudo element :component
- Fixed minors
- Changed logo header
- Added
mainComponent
property to Doz instance - Improved nested component system
- Deprecated into style system the pseudo element ":root" in favor of ":wrapper"
- Fixed an issue relative to nested component system. If last node is a dz-root, the new element created must be insert before it.
- Improved nested component system
- Changed template parser, now removes all spaces after new line and tab
- Fixed possible wrong parent component
- Fixed when bind value is 0 don't work
- Removed specials attributes from compiled code
- Fixed "Cannot call a class as a function" during development
- Fixed another possible error "Cannot call a class as a function" when using a component built with class pattern or single function
- Added
propsType
object config, now it is possible define a type for each prop. - Improved auto-cast
- Added directive
d-key
for loops - Added
uId
property - Fixed possible wrong destroy components
- Improved scoped style, now creates a style for each component instance
- Fixed empty initial input when use d-bind
- Fixed possible error "Cannot call a class as a function" when using a component built with class pattern or single function
- Fixed undefined
ref
- Improved virtual-dom logic now is better organized with new class named DOMManipulation
- Changes minor refactoring of some stuff
- Fixed multiple :global style in same line
- Added
renderPause
method to component - Added
renderResume
method to component - Added
isRenderPause
property to component - Improved IE11 support
- Fixed possible issues during attributes changes
- Fixed error when the virtual-dom does not match (removeAttribute)
- Fixed error when the virtual-dom does not match
- Fixed possible null error when a component is destroyed
- Fixed possible memory leak when a component is destroyed
- Fixed layout issues during mount, unmount and remount
- Fixed the defined store is not deleted after destroying the component
- Fixed the defined id is not deleted after destroying the component
- Added
loadProps
method - Added new hook
onLoadProps
- Added directive instance hook
d:onloadprops
- Added app hook
componentLoadProps
- Added
propsListenerAsync
- Added directive instance hooks
d:oncreate
d:onconfigcreate
d:onmount
d:onmountasync
d:onupdate
d:onunmount
d:ondestroy
- Added new hooks of app
componentCreate
componentConfigCreate
componentMount
componentMountAsync
componentUpdate
componentUnmount
componentDestroy
- Changed now propsConvert and propsComputed are called on beforeMount event
- Fixed auto-cast when bind an input
- Added
delayUpdate
- Added
propsComputedOnFly
- Added
propsConvertOnFly
- Improved minor things
- Fixed apply
propsConvert
andpropsComputed
to initial props
- Fixed possible issues of
propsConvert
andpropsComputed
- Fixed drawDynamics which may not work
- Changed remove new line space from attributes during the compiling
- Fixed cache issue for
propsComputed
- Added
propsConvert
api for props manipulation without cache - Improved performance
- Fixed SFC issue when create a bundle with ParcelJS
- Added support to Single Function Component (SFC)
- Removed
style
object, deprecated since 1.8.0 - Removed
onRender
hooks in favor ofonMount
, deprecated since 1.0.0 - Improved bundle size
- Added
propsComputed
api for props manipulation - Fixed
parentNode
isnull
when using scoped style without others tags
- Fixed scoped style issue when using animation
- Fixed possible issue when using style tag inside
h
tagged function
- Added support to
propsListener
for value as function
- Fixed
this
argument forpropsListener
- Added support for scoped style into template function
- Added
shared
api for sharing things between component - Added
propsListener
api for props changes - Fixed when function "drawnDynamic" is called, parent property is set to wrong parent
- Deprecated style object in favor of tag style inside template function
- Updated README
- Fixed double component during initial rendering when use
mount
method
- Added new hook
onAfterRender
- Added mixin warning message
- Improved
onUpdate
performance - Fixed router example
- Fixed with
d-is
directive the dashed attributes are not transformed into camelcase
- Fixed call render method only if rendered to DOM
- Improved types definition
- Fixed text is not decoded when reuse textnode element
- Improved 2x rendering performance
- Fixed issue when props is passed as function
- Improved rendering performance
- Improved IE11 compatibility
- Improved W3C standard
- Added basic types definition
- Removed src folder from npm distribution
- Added directive
d-is
- Removed unused dev libraries
- Added
use
to module, a method for define plugins :) - Added app instance events
on
adds a listener given an event nameemit
call an event
- Added
autoDraw
property to Doz constructor, by default it's false - Added
draw
method to Doz instance - Added "$this", a special placeholder for indicate "this" of DOM element in listener context
- Exposed
compile
function
- Added class pattern, now it's possible create component with class ES6 syntax
- Added new property
config
to component class, available only with class ES6 - Added new method
define
to module, alias ofcomponent
- Added
h
an helper that improve virtual dom performance - Added
mixin
for global component to module, now it's possible add external functions to global - Added
mixin
for local component as component property, now it's possible add external functions to local - Removed global namespace
__DOZ_GLOBAL_COMPONENT__
- Improvement template engine
- Fixed scoped style issue with hmr
- Added compatibility with Parcel HMR (Hot module replacement)
- Improvement proxy performance
- Breaking changes
- Refactored method
style
totoStyle
- Refactored method
- Added property
appRoot
to component instance - Added property
style
to component instance - Added method
getCmp
shorthand reference togetComponentById
- Fixed attributes was removed with falsy value, now only if empty
- Added new method
style
to component instance
- Fixed possible root instance issue
- Improvement event handler, now supports inline logic
- Fixed props update issue in constructor
- Fixed possible undefined target property
- Added new hook
onMountAsync
- Fixed possible issue on nested update
- Added new method
getHTMLElement
to component instance
- Improvement for constructor, now supports all component events
- Fixed auto-cast issue for numeric argument passed to custom function
- Added support to local components for components
- Fixed issue on
beforeDestroy
anddestroy
that are not called in the child component when parent is destroyed - Added version method
Doz.version
- Added new option property
autoCreateChildren
to component definition - Added new property
rawChildren
to component - Added new hook
onBeforeMount
- Added new hook
onMount
- Added new hook
onBeforeUnmount
- Added new hook
onUnmount
- Deprecated hooks
onRender
in favor ofonMount
- Added "changes" param to
onBeforeUpdate
andonUpdate
- Added new event
onAppReady
- Fixed update children problem
- Fixed bind problem on radio input. The initial value was not considered
- Improvement binding for checkbox and select
- Improvement dash-case attributes to camel-case props
- Fixed deep state updating issue
- Fixed svg animation start issue
- Improvement deep state updating
- Improvement "d-bind"
- Added support to SVG element
- Fixed issue when inside the template there are no tag element like comment for example
- Cleanup
- Added proxy polyfill
- Improvement security
- Fixed observer issue
- Fixed xss vulnerability
- Fixed infinite loop issue when props are updated inside
onBeforeChange
- First release