-
-
Notifications
You must be signed in to change notification settings - Fork 408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Custom Components API #213
Conversation
text/0000-custom-components.md
Outdated
|
||
At a later time, before Ember is ready to render the template, the component | ||
manager's *getContext* method will be called. It will receive the *component | ||
instance* and return the context object for the template. The context binds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What can the component instance be? Just Ember.Component
or can it be a web component/dom node?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean the component instance or the comtext object?
The component instance is for your own internal use, so it could be anything. It's whatever you returned from create
.
The comtext object is the template context (what {{this}}
resolves to). It could also be any object. (Technically it can be a dom node but it won't do what you want.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can already render a DOM node today. e.g. if a helper or property lookup returns a DOM node, it already works
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The component instance is for your own internal use, so it could be anything. It's whatever you returned from create.
Not sure I understand the reasoning behind returning anything.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason is to hide internal book-keeping information from your users. For example, Ember does something like this today:
class CurlyComponentManager {
create(definition, args) {
let { factory } = definition.meta;
return factory.create({
...args.named,
[INTERNAL_STUFF]: foo,
[DEFINITELY_PRIVATE_API]: bar,
[YOU_ARE_NOT_SUPPOSED_TO_TOUCH_THIS]: baz,
[OH_GOD_PLEASE_DEFINITELY_DONT_CHANGE_THIS]: bat
});
}
getContext(component) {
return component;
}
// ...
}
This works, but we are stashing a lot of internal stuff on the Ember.Component
instance.
It would be better to do this instead:
class CurlyComponentManager {
create(definition, args) {
let { factory } = definition.meta;
let component = factory.create(args.named);
let metadata = {
[INTERNAL_STUFF]: foo,
[DEFINITELY_PRIVATE_API]: bar,
[YOU_ARE_NOT_SUPPOSED_TO_TOUCH_THIS]: baz,
[OH_GOD_PLEASE_DEFINITELY_DONT_CHANGE_THIS]: bat
});
return { component, metadata };
}
getContext({ component }) {
return component;
}
// ...
}
This way, you won't leak the internals to your users.
text/0000-custom-components.md
Outdated
the component manager `component-manager:foo`. This will be described in more | ||
detail in the sections below. | ||
|
||
> **Note**: Specifying the manager as a lookup key allows the component manger |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo ("manger" -> "manager")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a couple more of those mangers lying around. Festive 🎄
Fix destructure syntax
text/0000-custom-components.md
Outdated
here will be reflected in the template. | ||
|
||
Ember does not provide a fine-grained change tracking system, so there is no | ||
guarantee on how often *update* will be called. More precisely, if on of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: if on one of
text/0000-custom-components.md
Outdated
private pools = {}; | ||
|
||
create({ metadata }: ComponentDefinition, args: ComponentArguments): Object { | ||
let pool = this.pools[meatadata.name]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo; meatadata
🍖
text/0000-custom-components.md
Outdated
|
||
instance.didReceiveAttrs(); | ||
|
||
return instance; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this return entry
instead of instance?
I have a question on the scope of this RFC. Given the announcements at EmberConf, I sort of assume that the Glimmer/Ember integration can use this RFC as a building block. However, from the text in this RFC it appears that the layout/template of a component is an opaque thing, while Glimmer components also introduce new template syntax/semantics:
Is supporting that kind of semantics change in scope of this RFC? If so, how would I do something like that? |
That's exactly what this is ;) I think Tom and Yehuda mentioned in the keynote that the more successful experimentations in the Ember ecosystem came by providing primitives from which third-parties can build on, namely fastboot and engines. This RFC is the primitive that will unlock the possibility of using different kinds of components, one of them is angle bracket components, whose details you mention will likely be discussed in a follow-up RFC. You will notice that Glimmer.js components are very barebones at the moment, partially due to this. |
Would it be out of scope for this RFC to support changes to how components are rendered? For example, say I have a google maps component that works like this: {{#google-map as |map|}}
{{#map.marker as |marker|}}
{{#marker.info-window}}
This is rendered in the markers info window
{{/marker.info-window}}
{{/map.marker}}
{{/google-map}} Currently the info window content is rendered into the DOM, and then google maps moves the element into its own internal structure. elements for markers, etc are also rendered. It would be amazing if there was a way to control how the element is inserted into the DOM, possibly like this? class MapsComponentManager {
render(/* dom, element: HTMLElement */) {
// no-op since we don't want these rendered
}
}
// components/google-map/info-window.js
Ember.Component.extend({
didInsertElement() {
this._super(...arguments);
// despite the component not being directly rendered, it's element
// is still available as a property on the component itself as usual
assert(this.element);
}
}); The |
@chancancode this looks super useful and I like the idea of providing the primitives and to allow experimentation outside of ember core. However, while in this case, I think the primitives look right, is only once we start building on top of those that we realize if they work or not. I think we may need some time to experiment with this a throw a few different use cases to them before solidifying this or "committing" to an API. I'm mainly thinking of my use case for ember-cli-hot-loader, but I think the same would apply to liquid-fire and angle brackets... How could we get a "POC" of this or something on the alpha channel to start playing? Is there something we could help with? |
First pass on registering custom component manager landed in Ember (emberjs/ember.js#15254) and allows one to do the following: {{use-component-manager "nyan-cat"}}
{{nyan-cat}} where |
Is there a glimmer component manager yet? |
I'm assuming this has to be imported manually to work, and isn't included in ember yet. |
Yep, the only thing landed in ember (behind a feature flag that is disabled by default) is the ability to specify a custom manager. |
Great 👍 So you can also use curly components in a glimmerjs app? |
sorry for noise, just curious if there is any further development on this? |
e12b5ab
to
e86b38d
Compare
Hello everyone! Sorry for the delay. We had some new breakthroughs at the December core team face-to-face meeting. I updated the RFC to reflect the new development and this should be ready for another round of review, and hopefully FCP soon. CHANGELOG: ✂️ typescript You can read the current version here. The previous version is still available here, for reference. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love the update! Thanks for putting so much time into it!
I left a number of inline comments / questions, but I had additional question that didn't really fit in a specific section:
- In the
Capabilities
section, we describe a future where these capabilities can and will be iterated, but do not mention how that iteration will happen. Is it safe to assume any changes (new capabilities, optional flags, etc) will be made via this same RFC process? How will these capabilities be discoverable? API docs only? Do we anticipate guides?
text/0000-custom-components.md
Outdated
components_. | ||
|
||
This API will allow addon authors to provide special-purpose component base | ||
classes that their users can subclass from in the apps. These components are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/in the apps/in apps/?
text/0000-custom-components.md
Outdated
|
||
# Motivation | ||
|
||
The ability to author reusable, composable components is a core features of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/core features/core feature/
text/0000-custom-components.md
Outdated
|
||
The ability to author reusable, composable components is a core features of | ||
Ember.js. Despite being a [last-minute addition](http://emberjs.com/blog/2013/06/23/ember-1-0-rc6.html) | ||
to Ember 1.0, the `Ember.Component` API and programming mode has proven itself |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/mode/model/ (I think)
text/0000-custom-components.md
Outdated
will create and maintain (at most) one instance of each unique component | ||
manager for every application instance. | ||
|
||
To register a component manager, an addon will typically put it inside its |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should suggest re-exporting in its app/
tree (where the "real" implementation is in its own addon/
tree), and it should also describe what this looks like in module unification layouts.
text/0000-custom-components.md
Outdated
// ... | ||
}); | ||
|
||
setComponentManager(MyComponent, 'awesome'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I would prefer the actual class to be the second argument, and that the return value from the helper function must be used (e.g. we should not guarantee a mutation based solution). This in practice gives us much more flexibility (we could subclass to "stamp" the object, if we wanted to).
With those changes, folks could do the following:
export default setComponentManager('awesome', EmberObject.extend({
// ...snip...
})
text/0000-custom-components.md
Outdated
4. The `ember-basic-component` addon author would like to take advantage of | ||
this performance optimization, so it updates its component manager code to | ||
work with the arguments proxy and changes its capabilities declaration to | ||
`capabilities('3.5')` in a major release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do we expect addon authors to manage their Ember version support with the capabilities
section? We do not provide a way for them to provide the same manager with varying compatibility, do they then need to do build time work to ensure to only ship the manager actually needed by the host app?
text/0000-custom-components.md
Outdated
`capabilities('3.5')` in a major release. | ||
|
||
This system allows us to rapidly improve the API and take advantage of the | ||
underlying rendering engine featuers as soon as they become available. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/featuers/features/
text/0000-custom-components.md
Outdated
Therefore, this hook is not suitable for invoking user callbacks intended for | ||
performing DOM cleanup, such as `willDestroyElement` in the classic components | ||
API. We expect a subsequent RFC addressing DOM-related functionalities to | ||
clearify this issues or provide another specialized method for that purpose. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/clearify/clarify/
text/0000-custom-components.md
Outdated
## Recycling Components | ||
|
||
This example implements an API which maintain a pool of recycled component | ||
instances to avoid allocation costs, similar to Flex's "sustain" feature. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Flex's "sustain"/flexi-sustain/
do not expect the guides need to be updated for this feature (at least not the | ||
components section). | ||
|
||
For documentation purposes, each Ember.js release will only document the latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is good enough. We need to maintain a canonical list of capabilities that are supported (and any options that were allowed with each).
544db29
to
d7dce0d
Compare
I think I have addressed all the feedback so far! |
d7dce0d
to
77952db
Compare
77952db
to
68b62a8
Compare
I updated the RFC to add some details about the support policy of component manager APIs |
This was discussed in todays core team call, and with the last round of updates we are happy to get this moved into final comment period. Please take a 🆕 👀 ..... |
I would like to point out that this is not intended to be the ultimate API that solves every use case. Rather, this is the MVP of the framework that allows adding extensions that would solve those use cases. So I would appreciate feedback to focus on whether that framework is flexible enough to eventually support the use case you have in mind, rather than whether it is sufficient to support that today as proposed. |
I think to avoid confusion we should remove the theoretical I chatted with @chancancode a bit this morning about the current state of this RFC and have no objections to it; however, I do want to document that while it hopes to be a primitive upon which things such as |
I updated it to remove the mention |
I'd love to see some support for flexi-sustain and similiar things, but I realize it might be out of scope here. |
text/0000-custom-components.md
Outdated
|
||
This API will allow addon authors to provide special-purpose component base | ||
classes that their users can subclass from in apps. These components are | ||
invokable in templates just like any other Ember components (decendents of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"descendants"
Since 12 days have passed with no additional unaddressed comments, I'm going to merge this RFC. |
Bumps [ember-source](https://github.com/emberjs/ember.js) from 2.18.2 to 3.5.0. <details> <summary>Release notes</summary> *Sourced from [ember-source's releases](https://github.com/emberjs/ember.js/releases).* > ## v3.5.0 > ### CHANGELOG > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > > ## v3.5.0-beta.4 > ### CHANGELOG > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) / [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ## v3.5.0-beta.3 > ### CHANGELOG > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation w/o jQuery > > ## v3.5.0-beta.2 > ### CHANGELOG > > - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.38.8 > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > > ## v3.5.0-beta.1 > ### CHANGELOG > > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > - [#16907](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16907) Upgrade to TypeScript 3.0 > > ## v3.4.5 > ### CHANGELOG > > - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0. > > ## v3.4.4 > ### CHANGELOG > > - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11 > > ## v3.4.3 > ### CHANGELOG > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ## v3.4.2 > ### CHANGELOG > > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery > ></table> ... (truncated) </details> <details> <summary>Changelog</summary> *Sourced from [ember-source's changelog](https://github.com/emberjs/ember.js/blob/master/CHANGELOG.md).* > ### v3.5.0 (October 8, 2018) > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > > ### v3.4.5 (October 4, 2018) > > - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0. > > ### v3.4.4 (September 27, 2018) > > - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11 > > ### v3.4.3 (September 25, 2018) > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ### v3.4.2 (September 24, 2018) > > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery > > ### v3.4.1 (September 10, 2018) > > - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.35.8 > > ### v3.4.0 (August 27, 2018) > > - [#16603](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16603) [BUGFIX] Support mouseEnter/Leave events w/o jQuery > - [#16857](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16857) [BUGFIX] Prevents the recursive redefinition of root chains > - [#16854](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16854) [BUGFIX] Don't thread FactoryManager through createComponent > - [#16773](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16773) [FEATURE] Custom component manager (see [emberjs/rfcs#213](https://github.com/emberjs/rfcs/blob/master/text/0213-custom-components.md) for more details) > - [#16708](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16708) [FEATURE] Angle bracket component invocation (see [emberjs/rfcs#311](https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md) for more details) > - [#16744](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16744) [DEPRECATION] Deprecate `component#sendAction` (see [emberjs/rfcs#335](https://github.com/emberjs/rfcs/blob/master/text/0335-deprecate-send-action.md) for more details) > - [#16720](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16720) Upgrade `backburner.js` to 2.3.0 > - [#16783](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16783) [BUGFIX] Allow setting length on ArrayProxy. > - [#16785](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16785) [BUGFIX] Ensure `ArrayMixin#invoke` returns an Ember.A. > - [#16784](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16784) [BUGFIX] Setting ArrayProxy#content in willDestroy resets length. > - [#16794](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16794) [BUGFIX] Fix instance-initializer-test blueprint for new QUnit testing API ([emberjs/rfcs#232](https://github-redirect.dependabot.com/emberjs/rfcs/pull/232)) > - [#16797](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16797) [BUGFIX] Drop autorun assertion > > ### v3.3.2 (August 20, 2018) > > - [#16853](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16853) [BUGFIX] Allow ArrayProxy#pushObjects to accept ArrayProxy again > - [#16870](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16870) [BUGFIX] Enable @ember/object#get to be called with an empty string > > ### v3.3.1 (July 23, 2018) > > - [#16836](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16836/commits) [DOC] Fix Broken 3.3 API Documentation > ></table> ... (truncated) </details> <details> <summary>Commits</summary> - [`db6a5de`](emberjs/ember.js@db6a5de) Release v3.5.0 - [`cae13d4`](emberjs/ember.js@cae13d4) Add v3.5.0 to CHANGELOG - [`5da9996`](emberjs/ember.js@5da9996) Fix typo on line 75 - [`b41d933`](emberjs/ember.js@b41d933) Fixup CHANGELOG - [`48ad148`](emberjs/ember.js@48ad148) Add v3.4.5 to CHANGELOG - [`d37a42e`](emberjs/ember.js@d37a42e) Release v3.5.0-beta.4 - [`942fdb7`](emberjs/ember.js@942fdb7) Add v3.5.0-beta.4 to CHANGELOG - [`16225e8`](emberjs/ember.js@16225e8) [DOC RELEASE] [DOC 3.3] [DOC 3.4] Fix missing docs - [`e90e1c6`](emberjs/ember.js@e90e1c6) Fix rendering of empty content with `{{{...}}}` in IE11 - [`d752b94`](emberjs/ember.js@d752b94) Merge pull request [#17004](https://github-redirect.dependabot.com/emberjs/ember.js/issues/17004) from emberjs/beta-triple-curlies-bugfix - Additional commits viewable in [compare view](emberjs/ember.js@v2.18.2...v3.5.0) </details> <br /> [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)](https://dependabot.com/compatibility-score.html?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. Dependabot will **not** automatically merge this PR because it includes a major update to a development dependency. --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com). <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details>
Bumps [ember-source](https://github.com/emberjs/ember.js) from 2.18.2 to 3.5.0. <details> <summary>Release notes</summary> *Sourced from [ember-source's releases](https://github.com/emberjs/ember.js/releases).* > ## v3.5.0 > ### CHANGELOG > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > > ## v3.5.0-beta.4 > ### CHANGELOG > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) / [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ## v3.5.0-beta.3 > ### CHANGELOG > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation w/o jQuery > > ## v3.5.0-beta.2 > ### CHANGELOG > > - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.38.8 > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > > ## v3.5.0-beta.1 > ### CHANGELOG > > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > - [#16907](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16907) Upgrade to TypeScript 3.0 > > ## v3.4.5 > ### CHANGELOG > > - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0. > > ## v3.4.4 > ### CHANGELOG > > - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11 > > ## v3.4.3 > ### CHANGELOG > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ## v3.4.2 > ### CHANGELOG > > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery > ></table> ... (truncated) </details> <details> <summary>Changelog</summary> *Sourced from [ember-source's changelog](https://github.com/emberjs/ember.js/blob/master/CHANGELOG.md).* > ### v3.5.0 (October 8, 2018) > > - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias > - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object" > > ### v3.4.5 (October 4, 2018) > > - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0. > > ### v3.4.4 (September 27, 2018) > > - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11 > > ### v3.4.3 (September 25, 2018) > > - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` > > ### v3.4.2 (September 24, 2018) > > - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed > - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery > > ### v3.4.1 (September 10, 2018) > > - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.35.8 > > ### v3.4.0 (August 27, 2018) > > - [#16603](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16603) [BUGFIX] Support mouseEnter/Leave events w/o jQuery > - [#16857](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16857) [BUGFIX] Prevents the recursive redefinition of root chains > - [#16854](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16854) [BUGFIX] Don't thread FactoryManager through createComponent > - [#16773](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16773) [FEATURE] Custom component manager (see [emberjs/rfcs#213](https://github.com/emberjs/rfcs/blob/master/text/0213-custom-components.md) for more details) > - [#16708](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16708) [FEATURE] Angle bracket component invocation (see [emberjs/rfcs#311](https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md) for more details) > - [#16744](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16744) [DEPRECATION] Deprecate `component#sendAction` (see [emberjs/rfcs#335](https://github.com/emberjs/rfcs/blob/master/text/0335-deprecate-send-action.md) for more details) > - [#16720](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16720) Upgrade `backburner.js` to 2.3.0 > - [#16783](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16783) [BUGFIX] Allow setting length on ArrayProxy. > - [#16785](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16785) [BUGFIX] Ensure `ArrayMixin#invoke` returns an Ember.A. > - [#16784](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16784) [BUGFIX] Setting ArrayProxy#content in willDestroy resets length. > - [#16794](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16794) [BUGFIX] Fix instance-initializer-test blueprint for new QUnit testing API ([emberjs/rfcs#232](https://github-redirect.dependabot.com/emberjs/rfcs/pull/232)) > - [#16797](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16797) [BUGFIX] Drop autorun assertion > > ### v3.3.2 (August 20, 2018) > > - [#16853](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16853) [BUGFIX] Allow ArrayProxy#pushObjects to accept ArrayProxy again > - [#16870](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16870) [BUGFIX] Enable @ember/object#get to be called with an empty string > > ### v3.3.1 (July 23, 2018) > > - [#16836](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16836/commits) [DOC] Fix Broken 3.3 API Documentation > ></table> ... (truncated) </details> <details> <summary>Commits</summary> - [`db6a5de`](emberjs/ember.js@db6a5de) Release v3.5.0 - [`cae13d4`](emberjs/ember.js@cae13d4) Add v3.5.0 to CHANGELOG - [`5da9996`](emberjs/ember.js@5da9996) Fix typo on line 75 - [`b41d933`](emberjs/ember.js@b41d933) Fixup CHANGELOG - [`48ad148`](emberjs/ember.js@48ad148) Add v3.4.5 to CHANGELOG - [`d37a42e`](emberjs/ember.js@d37a42e) Release v3.5.0-beta.4 - [`942fdb7`](emberjs/ember.js@942fdb7) Add v3.5.0-beta.4 to CHANGELOG - [`16225e8`](emberjs/ember.js@16225e8) [DOC RELEASE] [DOC 3.3] [DOC 3.4] Fix missing docs - [`e90e1c6`](emberjs/ember.js@e90e1c6) Fix rendering of empty content with `{{{...}}}` in IE11 - [`d752b94`](emberjs/ember.js@d752b94) Merge pull request [#17004](https://github-redirect.dependabot.com/emberjs/ember.js/issues/17004) from emberjs/beta-triple-curlies-bugfix - Additional commits viewable in [compare view](emberjs/ember.js@v2.18.2...v3.5.0) </details> <br /> [![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)](https://dependabot.com/compatibility-score.html?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. Dependabot will **not** automatically merge this PR because it includes an out-of-range update to a development dependency. --- **Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit. You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com). <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) Finally, you can contact us by mentioning @dependabot. </details>
rendered