ember-source 7.2.0-beta.1 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-metadata.json +3 -3
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +7 -7
- package/dist/dev/packages/@ember/-internals/routing/index.js +2 -2
- package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
- package/dist/dev/packages/@ember/application/index.js +3 -3
- package/dist/dev/packages/@ember/application/instance.js +1 -1
- package/dist/dev/packages/@ember/component/helper.js +1 -1
- package/dist/dev/packages/@ember/component/index.js +3 -3
- package/dist/dev/packages/@ember/engine/index.js +3 -3
- package/dist/dev/packages/@ember/engine/instance.js +1 -1
- package/dist/dev/packages/@ember/helper/index.js +1132 -79
- package/dist/dev/packages/@ember/modifier/on.js +1 -1
- package/dist/dev/packages/@ember/object/compat.js +0 -32
- package/dist/dev/packages/@ember/renderer/index.js +1 -1
- package/dist/dev/packages/@ember/routing/-internals.js +2 -2
- package/dist/dev/packages/@ember/routing/index.js +6 -26
- package/dist/dev/packages/@ember/routing/lib/utils.js +2 -2
- package/dist/dev/packages/@ember/routing/route.js +2 -2
- package/dist/dev/packages/@ember/routing/router-service.js +9 -9
- package/dist/dev/packages/@ember/routing/router.js +2 -2
- package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
- package/dist/dev/packages/@glimmer/runtime/index.js +7 -7
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/router_js/index.js +2 -2
- package/dist/dev/packages/rsvp/index.js +1 -2281
- package/dist/dev/packages/shared-chunks/{arguments-CDkbOqTS.js → arguments-BDcCvRM4.js} +5 -1
- package/dist/dev/packages/shared-chunks/{curly-Ei5G8jhk.js → curly-CxVJYzMX.js} +1 -1
- package/dist/dev/packages/shared-chunks/{element-BYLB-q7a.js → element-Cgoi4ldD.js} +0 -24
- package/dist/dev/packages/shared-chunks/get-BAZ7dSW_.js +40 -0
- package/dist/dev/packages/shared-chunks/hash-CKwikdMv.js +57 -0
- package/dist/dev/packages/shared-chunks/{helper-DIj85_-f.js → helper--ZiOCQkd.js} +2 -2
- package/dist/dev/packages/shared-chunks/{index-B3pPx1fL.js → index-CuorsWcn.js} +208 -84
- package/dist/dev/packages/shared-chunks/{invoke-d9sqa50M.js → invoke-DCF-tTDb.js} +1 -1
- package/dist/dev/packages/shared-chunks/{not-DYh6AY9Z.js → not-n3KAqx1U.js} +1 -1
- package/dist/dev/packages/shared-chunks/{on-DlF0Wy7P.js → on-CsI9Xgvl.js} +22 -11
- package/dist/dev/packages/shared-chunks/{render-87_sKZ_k.js → render-WPz2Nl45.js} +1 -1
- package/dist/{prod/packages/shared-chunks/rsvp.es-DR7yS7qg.js → dev/packages/shared-chunks/rsvp-aLN_pQtn.js} +152 -148
- package/dist/dev/packages/shared-chunks/{setup-registry-9DCmHTFF.js → setup-registry-5_gLCFs4.js} +3 -3
- package/dist/dev/packages/shared-chunks/{textarea-C4lYkaHj.js → textarea-B5TmhnQU.js} +2 -22
- package/dist/dev/packages/shared-chunks/{unique-id-DQOhouG1.js → unique-id-Csxuh1I7.js} +0 -4
- package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BJHjL30Q.js → unrecognized-url-error-DyurFqvv.js} +1 -1
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +7 -7
- package/dist/prod/packages/@ember/-internals/routing/index.js +2 -2
- package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
- package/dist/prod/packages/@ember/application/index.js +3 -3
- package/dist/prod/packages/@ember/application/instance.js +1 -1
- package/dist/prod/packages/@ember/component/helper.js +1 -1
- package/dist/prod/packages/@ember/component/index.js +3 -3
- package/dist/prod/packages/@ember/engine/index.js +3 -3
- package/dist/prod/packages/@ember/engine/instance.js +1 -1
- package/dist/prod/packages/@ember/helper/index.js +1132 -79
- package/dist/prod/packages/@ember/modifier/on.js +1 -1
- package/dist/prod/packages/@ember/object/compat.js +0 -32
- package/dist/prod/packages/@ember/renderer/index.js +1 -1
- package/dist/prod/packages/@ember/routing/index.js +6 -26
- package/dist/prod/packages/@ember/routing/lib/utils.js +2 -2
- package/dist/prod/packages/@ember/routing/route.js +2 -2
- package/dist/prod/packages/@ember/routing/router-service.js +9 -9
- package/dist/prod/packages/@ember/routing/router.js +2 -2
- package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
- package/dist/prod/packages/@glimmer/runtime/index.js +7 -7
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/router_js/index.js +2 -2
- package/dist/prod/packages/rsvp/index.js +1 -2281
- package/dist/prod/packages/shared-chunks/{arguments-BzAkZVBa.js → arguments-DxmU3uk4.js} +5 -1
- package/dist/prod/packages/shared-chunks/{curly-IY06zACp.js → curly-D2WsNyFi.js} +1 -1
- package/dist/prod/packages/shared-chunks/{element-DgHdPZ8u.js → element-BmBjPjkQ.js} +0 -24
- package/dist/prod/packages/shared-chunks/get-CMIqiKkx.js +40 -0
- package/dist/prod/packages/shared-chunks/hash-BPZcn79q.js +57 -0
- package/dist/prod/packages/shared-chunks/{helper-DkXiTBjc.js → helper-Df5MpdcT.js} +2 -2
- package/dist/prod/packages/shared-chunks/{index-CslMfEpb.js → index-DyYpsxuM.js} +208 -84
- package/dist/prod/packages/shared-chunks/{invoke-DhQ5QRp2.js → invoke-D7d52XJk.js} +1 -1
- package/dist/prod/packages/shared-chunks/{not-BOIVROuv.js → not-BGYHtDIW.js} +1 -1
- package/dist/prod/packages/shared-chunks/{on-BZHAxzdq.js → on-Ch0e_hqJ.js} +22 -11
- package/dist/prod/packages/shared-chunks/{render-Dx7lr1hR.js → render-CO2mZxto.js} +1 -1
- package/dist/{dev/packages/shared-chunks/rsvp.es-DR7yS7qg.js → prod/packages/shared-chunks/rsvp-aLN_pQtn.js} +152 -148
- package/dist/prod/packages/shared-chunks/{setup-registry-U-6VaNQG.js → setup-registry-jfUHS-vs.js} +3 -3
- package/dist/prod/packages/shared-chunks/{textarea-DOmZ1x0E.js → textarea-CQmTzSKe.js} +2 -22
- package/dist/prod/packages/shared-chunks/{unique-id-o2pS74go.js → unique-id-BJb1p8EG.js} +0 -4
- package/dist/prod/packages/shared-chunks/{unrecognized-url-error-EgNrnFu_.js → unrecognized-url-error-DgXBAzKl.js} +1 -1
- package/docs/data.json +1216 -1380
- package/package.json +3 -6
- package/types/stable/@ember/-internals/glimmer/index.d.ts +7 -380
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +2 -2
- package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +171 -62
- package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +0 -24
- package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +3 -1
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unbound.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/helpers/unique-id.d.ts +0 -3
- package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +4 -2
- package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +7 -2
- package/types/stable/@ember/helper/index.d.ts +1113 -73
- package/types/stable/@ember/object/compat.d.ts +0 -32
- package/types/stable/@ember/routing/router-service.d.ts +9 -9
- package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +0 -33
- package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +0 -25
- package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +0 -70
- package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +0 -69
- package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +0 -36
- package/types/stable/index.d.ts +0 -14
- package/dist/dev/packages/shared-chunks/get-6I3sjd-I.js +0 -135
- package/dist/dev/packages/shared-chunks/hash-6NDs_5_f.js +0 -198
- package/dist/prod/packages/shared-chunks/get-Dago5uGl.js +0 -135
- package/dist/prod/packages/shared-chunks/hash-gEXIsSO4.js +0 -198
- package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +0 -43
- package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +0 -93
- package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +0 -32
- package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +0 -77
- package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +0 -94
- package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +0 -46
- package/types/stable/@ember/-internals/glimmer/lib/helpers/helper.d.ts +0 -43
- package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +0 -228
- package/types/stable/@ember/-internals/glimmer/lib/helpers/log.d.ts +0 -19
- package/types/stable/@ember/-internals/glimmer/lib/helpers/modifier.d.ts +0 -42
- package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +0 -24
- package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +0 -95
- package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +0 -49
- package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +0 -43
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-source",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.1",
|
|
4
4
|
"description": "A JavaScript framework for creating ambitious web applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -367,9 +367,6 @@
|
|
|
367
367
|
}
|
|
368
368
|
},
|
|
369
369
|
"packageManager": "pnpm@10.33.2",
|
|
370
|
-
"_originalVersion": "7.2.
|
|
371
|
-
"_versionPreviouslyCalculated": true
|
|
372
|
-
"publishConfig": {
|
|
373
|
-
"tag": "beta"
|
|
374
|
-
}
|
|
370
|
+
"_originalVersion": "7.2.1",
|
|
371
|
+
"_versionPreviouslyCalculated": true
|
|
375
372
|
}
|
|
@@ -82,8 +82,8 @@ declare module '@ember/-internals/glimmer' {
|
|
|
82
82
|
)}}></span>
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
Ember's built-in helpers are described under the [
|
|
86
|
-
|
|
85
|
+
Ember's built-in and importable helpers are described under the [@ember/helper](../modules/@ember%2Fhelper).
|
|
86
|
+
module. Documentation on creating custom helpers can be found under
|
|
87
87
|
[helper](/ember/release/functions/@ember%2Fcomponent%2Fhelper/helper) (or
|
|
88
88
|
under [Helper](/ember/release/classes/Helper) if a helper requires access to
|
|
89
89
|
dependency injection).
|
|
@@ -101,387 +101,14 @@ declare module '@ember/-internals/glimmer' {
|
|
|
101
101
|
@module ember
|
|
102
102
|
*/
|
|
103
103
|
/**
|
|
104
|
+
|
|
105
|
+
## Looking for template keywords and helpers?
|
|
106
|
+
|
|
107
|
+
See [@ember/helper](../modules/@ember%2Fhelper).
|
|
108
|
+
|
|
104
109
|
@class Ember.Templates.helpers
|
|
105
110
|
@public
|
|
106
111
|
*/
|
|
107
|
-
/**
|
|
108
|
-
`{{yield}}` denotes an area of a template that will be rendered inside
|
|
109
|
-
of another template.
|
|
110
|
-
|
|
111
|
-
### Use with `Component`
|
|
112
|
-
|
|
113
|
-
When designing components `{{yield}}` is used to denote where, inside the component's
|
|
114
|
-
template, an optional block passed to the component should render:
|
|
115
|
-
|
|
116
|
-
```app/templates/application.gjs
|
|
117
|
-
import LabeledTextField from '../components/labeled-textfield';
|
|
118
|
-
|
|
119
|
-
<template>
|
|
120
|
-
<LabeledTextField @value={{@model.name}}>
|
|
121
|
-
First name:
|
|
122
|
-
</LabeledTextField>
|
|
123
|
-
</template>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
```app/components/labeled-textfield.gjs
|
|
127
|
-
import { Input } from '@ember/component';
|
|
128
|
-
|
|
129
|
-
<template>
|
|
130
|
-
<label>
|
|
131
|
-
{{yield}} <Input @value={{@value}} />
|
|
132
|
-
</label>
|
|
133
|
-
</template>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Result:
|
|
137
|
-
|
|
138
|
-
```html
|
|
139
|
-
<label>
|
|
140
|
-
First name: <input type="text" />
|
|
141
|
-
</label>
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Additionally you can `yield` properties into the context for use by the consumer:
|
|
145
|
-
|
|
146
|
-
```app/templates/application.gjs
|
|
147
|
-
import Component from '@glimmer/component';
|
|
148
|
-
import LabeledTextField from '../components/labeled-textfield';
|
|
149
|
-
|
|
150
|
-
export default class Application extends Component {
|
|
151
|
-
firstNameValidator = (value) => {
|
|
152
|
-
// validates
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
<template>
|
|
156
|
-
<LabeledTextField @value={{@model.validation}} @validator={{this.firstNameValidator}} as |validationError|>
|
|
157
|
-
{{#if validationError}}
|
|
158
|
-
<p class="error">{{validationError}}</p>
|
|
159
|
-
{{/if}}
|
|
160
|
-
First name:
|
|
161
|
-
</LabeledTextField>
|
|
162
|
-
</template>
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
```app/components/labeled-textfield.gjs
|
|
167
|
-
import { Input } from '@ember/component';
|
|
168
|
-
|
|
169
|
-
<template>
|
|
170
|
-
<label>
|
|
171
|
-
{{yield this.validationError}} <Input @value={{@value}} />
|
|
172
|
-
</label>
|
|
173
|
-
</template>
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Result:
|
|
177
|
-
|
|
178
|
-
```html
|
|
179
|
-
<label>
|
|
180
|
-
<p class="error">First Name must be at least 3 characters long.</p>
|
|
181
|
-
First name: <input type="text" />
|
|
182
|
-
</label>
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
`yield` can also be used with the `hash` helper:
|
|
186
|
-
|
|
187
|
-
```app/templates/application.gjs
|
|
188
|
-
import DateRanges from '../components/date-ranges';
|
|
189
|
-
|
|
190
|
-
<template>
|
|
191
|
-
<DateRanges @value={{@model.date}} as |range|>
|
|
192
|
-
Start date: {{range.start}}
|
|
193
|
-
End date: {{range.end}}
|
|
194
|
-
</DateRanges>
|
|
195
|
-
</template>
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
```app/components/date-ranges.gjs
|
|
199
|
-
<template>
|
|
200
|
-
<div>
|
|
201
|
-
{{yield (hash start=@value.start end=@value.end)}}
|
|
202
|
-
</div>
|
|
203
|
-
</template>
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
Result:
|
|
207
|
-
|
|
208
|
-
```html
|
|
209
|
-
<div>
|
|
210
|
-
Start date: July 1st
|
|
211
|
-
End date: July 30th
|
|
212
|
-
</div>
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Multiple values can be yielded as block params:
|
|
216
|
-
|
|
217
|
-
```app/templates/application.gjs
|
|
218
|
-
import Banner from '../components/banner';
|
|
219
|
-
|
|
220
|
-
<template>
|
|
221
|
-
<Banner @value={{@model}} as |title subtitle body|>
|
|
222
|
-
<h1>{{title}}</h1>
|
|
223
|
-
<h2>{{subtitle}}</h2>
|
|
224
|
-
{{body}}
|
|
225
|
-
</Banner>
|
|
226
|
-
</template>
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
```app/components/banner.gjs
|
|
230
|
-
<template>
|
|
231
|
-
<div>
|
|
232
|
-
{{yield "Hello title" "hello subtitle" "body text"}}
|
|
233
|
-
</div>
|
|
234
|
-
</template>
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
Result:
|
|
238
|
-
|
|
239
|
-
```html
|
|
240
|
-
<div>
|
|
241
|
-
<h1>Hello title</h1>
|
|
242
|
-
<h2>hello subtitle</h2>
|
|
243
|
-
body text
|
|
244
|
-
</div>
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
However, it is preferred to use the hash helper, as this can prevent breaking changes to your component and also simplify the api for the component.
|
|
248
|
-
|
|
249
|
-
Multiple components can be yielded with the `hash` and `component` helper:
|
|
250
|
-
|
|
251
|
-
```app/templates/application.gjs
|
|
252
|
-
import Banner from '../components/banner';
|
|
253
|
-
|
|
254
|
-
<template>
|
|
255
|
-
<Banner @value={{@model}} as |banner|>
|
|
256
|
-
<banner.Title>Banner title</banner.Title>
|
|
257
|
-
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
258
|
-
<banner.Body>A load of body text</banner.Body>
|
|
259
|
-
</Banner>
|
|
260
|
-
</template>
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
```app/components/banner.gjs
|
|
264
|
-
import Title from './banner/title';
|
|
265
|
-
import Subtitle from './banner/subtitle';
|
|
266
|
-
import Body from './banner/body';
|
|
267
|
-
|
|
268
|
-
export default class Banner extends Component {
|
|
269
|
-
Title = Title;
|
|
270
|
-
Subtitle = Subtitle;
|
|
271
|
-
Body = Body;
|
|
272
|
-
|
|
273
|
-
<template>
|
|
274
|
-
<div>
|
|
275
|
-
{{yield (hash
|
|
276
|
-
Title=this.Title
|
|
277
|
-
Subtitle=this.Subtitle
|
|
278
|
-
Body=(component this.Body defaultArg="some value")
|
|
279
|
-
)}}
|
|
280
|
-
</div>
|
|
281
|
-
</template>
|
|
282
|
-
}
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Result:
|
|
286
|
-
|
|
287
|
-
```html
|
|
288
|
-
<div>
|
|
289
|
-
<h1>Banner title</h1>
|
|
290
|
-
<h2>Banner subtitle</h2>
|
|
291
|
-
A load of body text
|
|
292
|
-
</div>
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
A benefit of using this pattern is that the user of the component can change the order the components are displayed.
|
|
296
|
-
|
|
297
|
-
```app/templates/application.gjs
|
|
298
|
-
import Banner from '../components/banner';
|
|
299
|
-
|
|
300
|
-
<template>
|
|
301
|
-
<Banner @value={{@model}} as |banner|>
|
|
302
|
-
<banner.Subtitle>Banner subtitle</banner.Subtitle>
|
|
303
|
-
<banner.Title>Banner title</banner.Title>
|
|
304
|
-
<banner.Body>A load of body text</banner.Body>
|
|
305
|
-
</Banner>
|
|
306
|
-
</template>
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
Result:
|
|
310
|
-
|
|
311
|
-
```html
|
|
312
|
-
<div>
|
|
313
|
-
<h2>Banner subtitle</h2>
|
|
314
|
-
<h1>Banner title</h1>
|
|
315
|
-
A load of body text
|
|
316
|
-
</div>
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
Another benefit to using `yield` with the `hash` and `component` helper
|
|
320
|
-
is you can pass attributes and arguments to these components:
|
|
321
|
-
|
|
322
|
-
```app/templates/application.gjs
|
|
323
|
-
import Banner from '../components/banner';
|
|
324
|
-
|
|
325
|
-
<template>
|
|
326
|
-
<Banner @value={{@model}} as |banner|>
|
|
327
|
-
<banner.Subtitle class="mb-1">Banner subtitle</banner.Subtitle>
|
|
328
|
-
<banner.Title @variant="loud">Banner title</banner.Title>
|
|
329
|
-
<banner.Body>A load of body text</banner.Body>
|
|
330
|
-
</Banner>
|
|
331
|
-
</template>
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
```app/components/banner/subtitle.gjs
|
|
335
|
-
{{!-- note the use of ..attributes --}}
|
|
336
|
-
<h2 ...attributes>
|
|
337
|
-
{{yield}}
|
|
338
|
-
</h2>
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
```app/components/banner/title.gjs
|
|
342
|
-
<template>
|
|
343
|
-
{{#if (eq @variant "loud")}}
|
|
344
|
-
<h1 class="loud">{{yield}}</h1>
|
|
345
|
-
{{else}}
|
|
346
|
-
<h1 class="quiet">{{yield}}</h1>
|
|
347
|
-
{{/if}}
|
|
348
|
-
</template>
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
Result:
|
|
352
|
-
|
|
353
|
-
```html
|
|
354
|
-
<div>
|
|
355
|
-
<h2 class="mb-1">Banner subtitle</h2>
|
|
356
|
-
<h1 class="loud">Banner title</h1>
|
|
357
|
-
A load of body text
|
|
358
|
-
</div>
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
@method yield
|
|
362
|
-
@for Ember.Templates.helpers
|
|
363
|
-
@param {Hash} options
|
|
364
|
-
@return {String} HTML string
|
|
365
|
-
@public
|
|
366
|
-
*/
|
|
367
|
-
/**
|
|
368
|
-
`{{(has-block)}}` indicates if the component was invoked with a block.
|
|
369
|
-
|
|
370
|
-
This component is invoked with a block:
|
|
371
|
-
|
|
372
|
-
```handlebars
|
|
373
|
-
<MyComponent>
|
|
374
|
-
Hi Jen!
|
|
375
|
-
</MyComponent>
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
This component is invoked without a block:
|
|
379
|
-
|
|
380
|
-
```handlebars
|
|
381
|
-
<MyComponent />
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
This is useful when you want to create a component that can optionally take a block
|
|
385
|
-
and then render a default template when it is not invoked with a block.
|
|
386
|
-
|
|
387
|
-
```app/components/my-component.gjs
|
|
388
|
-
<template>
|
|
389
|
-
{{#if (has-block)}}
|
|
390
|
-
Welcome {{yield}}, we are happy you're here!
|
|
391
|
-
{{else}}
|
|
392
|
-
Hey you! You're great!
|
|
393
|
-
{{/if}}
|
|
394
|
-
</template>
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
@method has-block
|
|
398
|
-
@for Ember.Templates.helpers
|
|
399
|
-
@param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
|
|
400
|
-
@return {Boolean} `true` if the component was invoked with a block
|
|
401
|
-
@public
|
|
402
|
-
*/
|
|
403
|
-
/**
|
|
404
|
-
`{{(has-block-params)}}` indicates if the component was invoked with block params.
|
|
405
|
-
|
|
406
|
-
This component is invoked with block params:
|
|
407
|
-
|
|
408
|
-
```handlebars
|
|
409
|
-
<MyComponent as |favoriteFlavor|>
|
|
410
|
-
Hi Jen!
|
|
411
|
-
</MyComponent>
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
And without block params:
|
|
415
|
-
|
|
416
|
-
```handlebars
|
|
417
|
-
<MyComponent>
|
|
418
|
-
Hi Jen!
|
|
419
|
-
</MyComponent>
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
This is useful when you want to create a component that can render itself
|
|
423
|
-
differently when it is not invoked with block params.
|
|
424
|
-
|
|
425
|
-
```app/components/my-component.gjs
|
|
426
|
-
<template>
|
|
427
|
-
{{#if (has-block-params)}}
|
|
428
|
-
Welcome {{yield this.favoriteFlavor}}, we're happy you're here and hope you
|
|
429
|
-
enjoy your favorite ice cream flavor.
|
|
430
|
-
{{else}}
|
|
431
|
-
Welcome {{yield}}, we're happy you're here, but we're unsure what
|
|
432
|
-
flavor ice cream you would enjoy.
|
|
433
|
-
{{/if}}
|
|
434
|
-
</template>
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
@method has-block-params
|
|
438
|
-
@for Ember.Templates.helpers
|
|
439
|
-
@param {String} the name of the block. The name (at the moment) is either "main" or "inverse" (though only curly components support inverse)
|
|
440
|
-
@return {Boolean} `true` if the component was invoked with block params
|
|
441
|
-
@public
|
|
442
|
-
*/
|
|
443
|
-
/**
|
|
444
|
-
Execute the `debugger` statement in the current template's context.
|
|
445
|
-
|
|
446
|
-
```handlebars
|
|
447
|
-
{{debugger}}
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
When using the debugger helper you will have access to a `get` function. This
|
|
451
|
-
function retrieves values available in the context of the template.
|
|
452
|
-
For example, if you're wondering why a value `{{foo}}` isn't rendering as
|
|
453
|
-
expected within a template, you could place a `{{debugger}}` statement and,
|
|
454
|
-
when the `debugger;` breakpoint is hit, you can attempt to retrieve this value:
|
|
455
|
-
|
|
456
|
-
```
|
|
457
|
-
> get('foo')
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
`get` is also aware of keywords. So in this situation
|
|
461
|
-
|
|
462
|
-
```handlebars
|
|
463
|
-
{{#each this.items as |item|}}
|
|
464
|
-
{{debugger}}
|
|
465
|
-
{{/each}}
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
You'll be able to get values from the current item:
|
|
469
|
-
|
|
470
|
-
```
|
|
471
|
-
> get('item.name')
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
You can also access the context of the view to make sure it is the object that
|
|
475
|
-
you expect:
|
|
476
|
-
|
|
477
|
-
```
|
|
478
|
-
> context
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
@method debugger
|
|
482
|
-
@for Ember.Templates.helpers
|
|
483
|
-
@public
|
|
484
|
-
*/
|
|
485
112
|
export { default as template, templateCacheCounters } from "@glimmer/opcode-compiler/lib/template";
|
|
486
113
|
export { default as RootTemplate } from "@ember/-internals/glimmer/lib/templates/root";
|
|
487
114
|
export { default as Input } from "@ember/-internals/glimmer/lib/components/input";
|
|
@@ -657,7 +657,7 @@ declare module '@ember/-internals/glimmer/lib/component' {
|
|
|
657
657
|
|
|
658
658
|
See the [Guide on Component event
|
|
659
659
|
handlers](https://guides.emberjs.com/release/components/component-state-and-actions/#toc_html-modifiers-and-actions)
|
|
660
|
-
and the [API docs for `on`](../
|
|
660
|
+
and the [API docs for `on`](../functions/Keywords/on)
|
|
661
661
|
for more details.
|
|
662
662
|
|
|
663
663
|
### Event Handler Methods
|
|
@@ -29,7 +29,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
29
29
|
Ember Helpers are functions that can compute values, and are used in templates.
|
|
30
30
|
For example, this code calls a helper named `format-currency`:
|
|
31
31
|
|
|
32
|
-
```app/templates/application.gjs
|
|
32
|
+
```gjs {data-filename="app/templates/application.gjs"}
|
|
33
33
|
import Cost from '../components/cost';
|
|
34
34
|
|
|
35
35
|
<template>
|
|
@@ -37,7 +37,7 @@ declare module '@ember/-internals/glimmer/lib/helper' {
|
|
|
37
37
|
</template>
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
```app/components/cost.gjs
|
|
40
|
+
```gjs {data-filename="app/components/cost.gjs"}
|
|
41
41
|
import formatCurrency from '../helpers/format-currency';
|
|
42
42
|
|
|
43
43
|
<template>
|