Releases: odoo/owl
v1.0.0
The 1.0.0 release!
Owl is now quite stable. Here is a changelog for this last batch of commits:
- fix
style
tag to properly generate combined css rules qweb
: add support forin
operator in qweb expressions- fix issue with component and multiple
t-call
- fix: many subtle scoping issues in templates
- fix: debug tool do not crash on non JSON stringifiable props
style
tag: accept the&
symbol- hooks: add
useExternalListener
hook - owl: improve npm packaging
v1.0.0-beta5
This release has 2 major highlights: it is now available on npm, and it has a
new feature: inline css tag.
- prepare owl for publishing on npm
- store: prevent crash when selector returns
null
- component: fix crash when given empty props
- tag: add inline css tag
v1.0.0-beta4
Two important fixes:
- qweb: t-call properly transfer key to sub components
- qweb/component: handle nested t-foreach and components
v1.0.0-beta3
- fix: qweb
renderToString
now properly escapet-esc
code - fix: issue with
t-if
,t-call
and a body - qweb: simplify generated template code
- qweb: accept assignations in qweb expressions (
a = b
) for inline handlers - fix: qweb properly bind handlers to components, and not sub objects
- fix: qweb properly display
false
for thefalse
value - fix: qweb do not add commas when displaying
t-set
with a body - fix: can instantiate components inside
t-call
templates - fix: store: result of selector function work with
map
- qweb: accept spread operator in expressions (
...
)
v1.0.0-beta2
- qweb fix: properly handle class attribute
- portal fix: manually unmounting it works
- doc: add some information on variables and t-call
- slots/vars/scoping/t-esc/t-raw: many small fixes
- component: add position option to mount method
- qweb: add support for arrow functions in expressions
- qweb: add template name in generated compiled code
- components: slots can define default content
v1.0.0-beta1
Owl is getting more stablerer...
- doc: improve component documentation
- tooling: add debug script
- misc: add support for Portal component
- component: fix tricky concurrency issue
v1.0.0-alpha5
Even more stable...
- fix: component now accept document
fragment
as mount target - imp: component can define custom props validator
- fix: components: handle multiple slots
- fix:
t-slot
: correct parented relationship with nested slots - fix: slots: now use correct scope and vars at update
- fix: component: reorganize fiber update algorithm (this fixes a few concurrency issues)
- fix: qweb: scope
t-key
directive to node and subnodes - qweb: use global
id
generator - fix: qweb: cascading
t-call
andt-raw="0"
should behave properly - store: allow
useStore
to return primitive types - store: prevent changes to store state in
useStore
return value - owl: add
prettier
todevDependencies
- playground: fix wms example
- playground: make it work on Edge
v1.0.0-alpha4
It's getting more stable!
- component: fix issue with props not being validated as expected
- component: many small concurrency fixes
- observer: notify subscribers immediately instead of waiting for next tick
- qweb fix: allow mixing body and expressions variables
- component: display better error message if render is empty
- component: fix various issues with mounting/unmounting components
- context: notify changes even if owner is not mounted
- qweb: add support for
typeof
operator - component: propagate errors to caller
- components/qweb: fix scoping issue with
t-model
andt-foreach
- component: various fixes with destroying components
- component: throw error if
t-component
is not used on a nodet
.
v1.0.0-alpha3
- component: throw error if mounted on invalid target
- store: throw error if no store found
- doc: add a tutorial
- hooks: set
el
on refs (fromuseRef
) all the time, even if target is a component - fix: component concurrent rendering issue
- fix: properly validates optional types in object props
- component: remove
renderBeforeRemount
option formount
(it always renders) - component: expose scheduler instance
v1.0.0-alpha2
1.0.0-alpha2
The alpha1
release was a good opportunity to discuss the external component
API, and it was discovered that for various reasons, it was not optimal, and
could be improved.
Root components and environment
Root components now takes their environment from their constructor:
// Before:
owl.config.env = ...;
const app = new App();
// now
App.env = ...;
const app = new App();
Root components and props
We removed the assignation to props
object from root components, since it
was not a "real" props
object in the sense that it was not managed by Owl. But
it is apparent that it makes it harder to test components in the most obvious
way:
// this did not work in 1.0.0-alpha, but works now:
const myComponent = new MyComponent(null, testProps);
await myComponent.mount(fixture);
// rest of test
So, while it made sense to do that, the ease of testing components is also
very important, and it was decided to go back to the previous behaviour.