# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [6.0.1] - 2020-11-26 ### Fixed * `component.on('update')` - fixed `this.props` to hold up-to-date value. ### Changed * `preact` to "10.5.7" ## [6.0.0] - 2020-01-22 :warning: this release breaks towards 5.x.x :warning: ### Breaking changes To be able to access updated DOM on mounted component call `await component.update()` otherwise the update happens async, ie accessing the DOM right after component update yeilds unexpected results. ### Changed * `preact` to "10.2.1" ### Fixed * `Component.appendAt(container, props)` - applies any String `props` to the created element. ## [5.1.0] - 2019-12-15 ### Added * `render-as` feature support ## [5.0.2] - 2019-05-13 :warning: this release breaks towards 4.2.0 :warning: ### Breaking changes * `compilers/tag-file` - delegates all js specific component definition to *the runtime* * `index.js` - represents an singleton commonjs module aka *the runtime* with default renderer `preact` * `directives` are removed * `BaseTag` api is removed * `tag.plasma` is removed and custom elements dispatch custom dom events on themselfs ## *[4.2.0]* - 2017-03-12 ### Fixed - BaseTag `update` method to properly assign `tag.attributes` ### Added - `tagName(tagName, props)` support for directives which need to change rendered tagName ### Improved - `README.md` with known issue 3 ## [4.1.0] - 2016-08-25 ### Fixed - BaseTag `update` event is fired after tag props/attrs are updated - Oval Directives `postCreate` is not triggered - Set root attributes only for compiled tag files - `freeze`-ed dom elements with children ### Improved - Oval Directives `postCreate(el, value)` - Oval Directives automatically delete directive's property once consumed - Oval Directives README section ## [4.0.0] - 2016-08-13 ### API CHANGES - removed `tag.keepTagName` - `oval.mountAll` - `oval.appendAt` - `oval.mountAt` - `oval.BaseTag` - replaced `morphdom` with `incremental-dom` ### Added - custom tag attribute `freeze` ### Fixed - `if` control statements having multiple expressions within as single line - boolean attributes parsing in `createElement` ## [3.1.0] - 2016-08-05 ### Added - `BaseTag.morph()` - `BaseTag.updateinnerChildren(sourceEl)` - accepting optional source element ### Improved - `BaseTag.injectDirectives()` - every directive accepts `tag` and `directiveName` - each loop tests - Components with child components rendering - Components events - `BaseTag.updateAttributes(sourceEl)` - accepts optional source element - `BaseTag.updateProps(sourceEl)` - accepts optional source element - `BaseTag.updateRefs(sourceEl)` - accepts optional source element ### Fixed - oval `if` control statement edge case with inner tags having the same name of the openning one ## [3.0.0] - 2016-08-03 ### API changes - replaced `unmount` with `unmounted` and introduced `unmount` as before element remove - renamed `keepParentTag` with `keepTagName` - `tag.shouldRender` is refactored as flag instead of function - tag directives are refactored to support better dom element augmentation control and less CPU ### Improved - README ### Fixed - oval control statements ## [2.0.0] - 2016-08-02 ### API changes - `baseTag` all props from parent component go to `tag.props` - `ref-` is now called `prop-` ### Added - basic oval tests - `oval.mountAt` - code coverage - examples - documentation - `tag.updateProps()` which populates `tag.props` object - `tag.updateRefs()` which populates `tag.refs` object - `tag.updateAttributes()` which populates `tag.attributes` object - moved examples in a seperate [repository](https://github.com/camplight/organic-oval-examples) ### Improved - `oval.unmount` - oval compiler related code located under /lib/compilers - add option to strip component's parent tag `tag.keepParentTag`, defaults to `true` - `if` control statements parser - do not remove other element attributes - directives - `baseTag`'s `tag.injectDirectives` passes `tag` to every directive: - `create-element` to passes the `createElement` function to every directive along with the `tagName`, `props` and `children` ### Fixed - `registerTag` remove usage of `document.registerTag` - `BaseTag` organic-plasma-dom events - `BaseTag.shouldRender` - standardjs source code style ## [1.0.0] - 2016-07-27 ### Added - `oval` - `oval.init` - `oval.updateElement` - `oval.createElement` - `oval.BaseTag` - `oval.registerTag` - `oval.getRegisteredTag` - `oval.mountAll` - `oval.appendAt`