ember-source 7.2.0-alpha.4 → 7.2.0-beta.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.
Files changed (326) hide show
  1. package/blueprints/-addon-import.js +4 -6
  2. package/blueprints/-utils.js +6 -9
  3. package/build-metadata.json +3 -3
  4. package/dist/dev/packages/@ember/-internals/browser-environment/index.js +1 -1
  5. package/dist/dev/packages/@ember/-internals/glimmer/index.js +11 -11
  6. package/dist/dev/packages/@ember/-internals/metal/index.js +18 -18
  7. package/dist/dev/packages/@ember/-internals/routing/index.js +3 -3
  8. package/dist/dev/packages/@ember/-internals/runtime/index.js +1 -1
  9. package/dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
  11. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  12. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  13. package/dist/dev/packages/@ember/-internals/utils/index.js +2 -2
  14. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  15. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  16. package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  17. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  18. package/dist/dev/packages/@ember/application/index.js +6 -7
  19. package/dist/dev/packages/@ember/application/instance.js +4 -4
  20. package/dist/dev/packages/@ember/application/namespace.js +3 -3
  21. package/dist/dev/packages/@ember/array/index.js +10 -64
  22. package/dist/dev/packages/@ember/array/lib/is-array.js +71 -0
  23. package/dist/dev/packages/@ember/array/proxy.js +8 -8
  24. package/dist/dev/packages/@ember/component/helper.js +1 -1
  25. package/dist/dev/packages/@ember/component/index.js +21 -15
  26. package/dist/dev/packages/@ember/component/template-only.js +1 -1
  27. package/dist/dev/packages/@ember/controller/index.js +3 -3
  28. package/dist/dev/packages/@ember/debug/data-adapter.js +3 -3
  29. package/dist/dev/packages/@ember/debug/index.js +1 -1
  30. package/dist/dev/packages/@ember/engine/index.js +5 -5
  31. package/dist/dev/packages/@ember/engine/instance.js +2 -2
  32. package/dist/dev/packages/@ember/helper/index.js +8 -27
  33. package/dist/dev/packages/@ember/modifier/index.js +2 -2
  34. package/dist/dev/packages/@ember/modifier/on.js +1 -1
  35. package/dist/dev/packages/@ember/object/-internals.js +2 -2
  36. package/dist/dev/packages/@ember/object/compat.js +3 -3
  37. package/dist/dev/packages/@ember/object/computed.js +2 -2
  38. package/dist/dev/packages/@ember/object/core.js +7 -7
  39. package/dist/dev/packages/@ember/object/evented.js +2 -2
  40. package/dist/dev/packages/@ember/object/events.js +1 -1
  41. package/dist/dev/packages/@ember/object/index.js +30 -25
  42. package/dist/dev/packages/@ember/object/internals.js +1 -1
  43. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +5 -5
  44. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -3
  45. package/dist/dev/packages/@ember/object/mixin.js +6 -6
  46. package/dist/dev/packages/@ember/object/observable.js +7 -7
  47. package/dist/dev/packages/@ember/object/observers.js +1 -1
  48. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -3
  49. package/dist/dev/packages/@ember/reactive/collections.js +153 -153
  50. package/dist/dev/packages/@ember/renderer/index.js +1 -1
  51. package/dist/dev/packages/@ember/routing/-internals.js +3 -3
  52. package/dist/dev/packages/@ember/routing/index.js +12 -8
  53. package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -3
  54. package/dist/dev/packages/@ember/routing/lib/routing-service.js +5 -5
  55. package/dist/dev/packages/@ember/routing/lib/utils.js +3 -3
  56. package/dist/dev/packages/@ember/routing/route.js +12 -12
  57. package/dist/dev/packages/@ember/routing/router-service.js +25 -18
  58. package/dist/dev/packages/@ember/routing/router.js +5 -5
  59. package/dist/dev/packages/@ember/runloop/index.js +1 -1
  60. package/dist/dev/packages/@ember/service/index.js +1 -1
  61. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  62. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -2
  63. package/dist/dev/packages/@ember/template-factory/index.js +1 -1
  64. package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -1
  65. package/dist/dev/packages/@glimmer/encoder/index.js +1 -1
  66. package/dist/dev/packages/@glimmer/manager/index.js +4 -4
  67. package/dist/dev/packages/@glimmer/node/index.js +3 -3
  68. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -2
  69. package/dist/dev/packages/@glimmer/program/index.js +10 -10
  70. package/dist/dev/packages/@glimmer/reference/index.js +5 -5
  71. package/dist/dev/packages/@glimmer/runtime/index.js +13 -13
  72. package/dist/dev/packages/@glimmer/tracking/index.js +2 -2
  73. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  74. package/dist/dev/packages/@glimmer/util/index.js +4 -4
  75. package/dist/dev/packages/@glimmer/validator/index.js +3 -3
  76. package/dist/dev/packages/@glimmer/vm/index.js +2 -2
  77. package/dist/dev/packages/ember/version.js +1 -1
  78. package/dist/dev/packages/ember-template-compiler/index.js +4 -4
  79. package/dist/dev/packages/router_js/index.js +2 -2
  80. package/dist/dev/packages/rsvp/index.js +2281 -1
  81. package/dist/dev/packages/shared-chunks/{alias-RGbDZoAB.js → alias-DpqL1qx6.js} +7 -7
  82. package/dist/dev/packages/shared-chunks/{api-BT9M3UaD.js → api-BlZDPg1n.js} +6 -6
  83. package/dist/dev/packages/shared-chunks/{element-builder-Cl1kHFJE.js → api-C0PAtEgQ.js} +139 -120
  84. package/dist/dev/packages/shared-chunks/{api-DG5kRT-o.js → api-DuLOZMO_.js} +3 -3
  85. package/dist/dev/packages/shared-chunks/{args-proxy-CB0SM6jC.js → args-proxy-CS5Brs3_.js} +2 -2
  86. package/dist/dev/packages/shared-chunks/{untouchable-this-BHdAERUu.js → arguments-CDkbOqTS.js} +236 -236
  87. package/dist/dev/packages/shared-chunks/{array-BMaSKezP.js → array-CVEnNWng.js} +3 -3
  88. package/dist/dev/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  89. package/dist/dev/packages/shared-chunks/{cache-CeWOBNQg.js → cache-DGDPVCpC.js} +2 -3
  90. package/dist/dev/packages/shared-chunks/{capabilities-CZkuOqqC.js → capabilities-CajW4QjE.js} +1 -1
  91. package/dist/dev/packages/shared-chunks/{chain-tags-DfmU63mS.js → chain-tags-uWSImHzB.js} +4 -4
  92. package/dist/dev/packages/shared-chunks/{collections-DEt-i-8B.js → collections-DPkjqeA3.js} +2 -2
  93. package/dist/dev/packages/shared-chunks/{compiler-DhH2WLpA.js → compiler-QUSl_urU.js} +3 -3
  94. package/dist/dev/packages/shared-chunks/{computed-Daavz6vC.js → computed-BPCtuOxQ.js} +6 -6
  95. package/dist/dev/packages/shared-chunks/{curly-YoYS2vXw.js → curly-Ei5G8jhk.js} +7 -7
  96. package/dist/dev/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  97. package/dist/dev/packages/shared-chunks/{decorator-DYQwMItS.js → decorator-B5Uh5NFI.js} +1 -1
  98. package/dist/dev/packages/shared-chunks/{element-bBwMD8cw.js → element-BYLB-q7a.js} +5 -3
  99. package/dist/dev/packages/shared-chunks/{events-B1lx9T1I.js → events-6aFVjD4k.js} +1 -1
  100. package/dist/{prod/packages/shared-chunks/flags-B9qxc-pB.js → dev/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  101. package/dist/dev/packages/shared-chunks/{get-CO3EIWsm.js → get-6I3sjd-I.js} +33 -36
  102. package/dist/{prod/packages/shared-chunks/get_properties-wj_Qmotj.js → dev/packages/shared-chunks/get_properties-Cm2sWt5f.js} +1 -1
  103. package/dist/dev/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  104. package/dist/dev/packages/shared-chunks/{hash-2-93qikL.js → hash-6NDs_5_f.js} +18 -12
  105. package/dist/dev/packages/shared-chunks/{helper-Bm6EhgSW.js → helper-DIj85_-f.js} +21 -9
  106. package/dist/dev/packages/shared-chunks/{index-dyv6rcBf.js → index-B3pPx1fL.js} +113 -134
  107. package/dist/dev/packages/shared-chunks/{index-DX90CU4L.js → index-BGP1rw3B.js} +1 -1
  108. package/dist/dev/packages/shared-chunks/{index-DkwVSPP5.js → index-DaFzpTIE.js} +10 -9
  109. package/dist/dev/packages/shared-chunks/{injected_property-B075jH6c.js → injected_property-CbBLr5jt.js} +2 -2
  110. package/dist/dev/packages/shared-chunks/{internal-Bpr6ihB_.js → internal-DTOXyEGM.js} +4 -4
  111. package/dist/dev/packages/shared-chunks/{internal-helper-IC87S6iZ.js → internal-helper-CKrni0b_.js} +1 -1
  112. package/dist/dev/packages/shared-chunks/{invoke-Ds0KEfP_.js → invoke-d9sqa50M.js} +3 -3
  113. package/dist/dev/packages/shared-chunks/{libraries-P8Ins5CB.js → libraries-DwffpMGE.js} +1 -1
  114. package/dist/dev/packages/shared-chunks/{meta-Cjo3zQJq.js → meta-BqC7f9Ia.js} +1 -1
  115. package/dist/{prod/packages/shared-chunks/namespace_search-TFdmjK_a.js → dev/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  116. package/dist/dev/packages/shared-chunks/{normalize-CxG_iVLJ.js → normalize-CKySQVU7.js} +2 -2
  117. package/dist/dev/packages/shared-chunks/{or-Bg6rCMF8.js → not-DYh6AY9Z.js} +36 -36
  118. package/dist/dev/packages/shared-chunks/{observers-CejcZw5s.js → observers-DMlX2nCi.js} +5 -5
  119. package/dist/dev/packages/shared-chunks/{on-Ch_lyozr.js → on-DlF0Wy7P.js} +10 -10
  120. package/dist/dev/packages/shared-chunks/{present-D0EfKzC6.js → present-B1rrjAVM.js} +1 -1
  121. package/dist/{prod/packages/shared-chunks/program-CF651Zuj.js → dev/packages/shared-chunks/program-DlgjqLa6.js} +3 -3
  122. package/dist/dev/packages/shared-chunks/{program-context-BaYVr5GA.js → program-context-Dq8xN2HI.js} +5 -4
  123. package/dist/dev/packages/shared-chunks/{property_get-BjbsrgpU.js → property_get-CRP7MFz_.js} +3 -3
  124. package/dist/dev/packages/shared-chunks/{property_set-LJskl202.js → property_set-qCUylPEK.js} +3 -3
  125. package/dist/dev/packages/shared-chunks/{reference-C-OXd_kp.js → reference-BqOLhKFy.js} +3 -3
  126. package/dist/dev/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  127. package/dist/dev/packages/shared-chunks/{rehydrate-builder-IH4d_JQy.js → rehydrate-builder-C6k1XhET.js} +4 -4
  128. package/dist/dev/packages/shared-chunks/{render-Dz3OWqXy.js → render-87_sKZ_k.js} +94 -94
  129. package/dist/dev/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  130. package/dist/dev/packages/shared-chunks/{serialize-builder-DKliZPPG.js → serialize-builder-BlxBjwO-.js} +2 -2
  131. package/dist/dev/packages/shared-chunks/{set_properties-CNds2HCH.js → set_properties-C4TSebH6.js} +2 -2
  132. package/dist/dev/packages/shared-chunks/{setup-registry-C_YovxNX.js → setup-registry-9DCmHTFF.js} +18 -18
  133. package/dist/{prod/packages/shared-chunks/simple-cast-BXTrayoV.js → dev/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  134. package/dist/{prod/packages/shared-chunks/super-D4qkU4uq.js → dev/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  135. package/dist/{prod/packages/shared-chunks/syscall-ops-nrBHMOTp.js → dev/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  136. package/dist/dev/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  137. package/dist/dev/packages/shared-chunks/{template-only-BxYzSEnC.js → template-only-Cu639ICT.js} +2 -4
  138. package/dist/dev/packages/shared-chunks/{textarea-DHjEFpZu.js → textarea-C4lYkaHj.js} +12 -8
  139. package/dist/dev/packages/shared-chunks/{tracked-B76E1nGz.js → tracked-DEyf0T_X.js} +5 -5
  140. package/dist/dev/packages/shared-chunks/{tracked-data-CH1USZZy.js → tracked-data-DgqqRdYO.js} +2 -2
  141. package/dist/dev/packages/shared-chunks/{unique-id-Hd96VZlE.js → unique-id-DQOhouG1.js} +2 -2
  142. package/dist/dev/packages/shared-chunks/{unrecognized-url-error-BQdkjTtZ.js → unrecognized-url-error-BJHjL30Q.js} +2 -2
  143. package/dist/{prod/packages/shared-chunks/vm-ops-5QCUIRx4.js → dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  144. package/dist/prod/packages/@ember/-internals/glimmer/index.js +11 -11
  145. package/dist/prod/packages/@ember/-internals/metal/index.js +18 -18
  146. package/dist/prod/packages/@ember/-internals/routing/index.js +3 -3
  147. package/dist/prod/packages/@ember/-internals/runtime/index.js +1 -1
  148. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  149. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +7 -7
  150. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -1
  151. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  152. package/dist/prod/packages/@ember/-internals/utils/index.js +2 -2
  153. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -1
  154. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -2
  155. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  156. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -1
  157. package/dist/prod/packages/@ember/application/index.js +5 -6
  158. package/dist/prod/packages/@ember/application/instance.js +4 -4
  159. package/dist/prod/packages/@ember/application/namespace.js +3 -3
  160. package/dist/prod/packages/@ember/array/index.js +11 -58
  161. package/dist/prod/packages/@ember/array/lib/is-array.js +64 -0
  162. package/dist/prod/packages/@ember/array/proxy.js +8 -8
  163. package/dist/prod/packages/@ember/component/helper.js +1 -1
  164. package/dist/prod/packages/@ember/component/index.js +20 -14
  165. package/dist/prod/packages/@ember/component/template-only.js +1 -1
  166. package/dist/prod/packages/@ember/controller/index.js +3 -3
  167. package/dist/prod/packages/@ember/debug/data-adapter.js +3 -3
  168. package/dist/prod/packages/@ember/engine/index.js +5 -5
  169. package/dist/prod/packages/@ember/engine/instance.js +2 -2
  170. package/dist/prod/packages/@ember/helper/index.js +8 -27
  171. package/dist/prod/packages/@ember/modifier/index.js +2 -2
  172. package/dist/prod/packages/@ember/modifier/on.js +1 -1
  173. package/dist/prod/packages/@ember/object/-internals.js +2 -2
  174. package/dist/prod/packages/@ember/object/compat.js +3 -3
  175. package/dist/prod/packages/@ember/object/computed.js +2 -2
  176. package/dist/prod/packages/@ember/object/core.js +7 -7
  177. package/dist/prod/packages/@ember/object/evented.js +2 -2
  178. package/dist/prod/packages/@ember/object/events.js +1 -1
  179. package/dist/prod/packages/@ember/object/index.js +30 -25
  180. package/dist/prod/packages/@ember/object/internals.js +2 -2
  181. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +4 -4
  182. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -2
  183. package/dist/prod/packages/@ember/object/mixin.js +6 -6
  184. package/dist/prod/packages/@ember/object/observable.js +7 -7
  185. package/dist/prod/packages/@ember/object/observers.js +1 -1
  186. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -3
  187. package/dist/prod/packages/@ember/reactive/collections.js +153 -153
  188. package/dist/prod/packages/@ember/renderer/index.js +1 -1
  189. package/dist/prod/packages/@ember/routing/index.js +12 -8
  190. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -2
  191. package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -4
  192. package/dist/prod/packages/@ember/routing/lib/utils.js +3 -3
  193. package/dist/prod/packages/@ember/routing/route.js +12 -12
  194. package/dist/prod/packages/@ember/routing/router-service.js +24 -17
  195. package/dist/prod/packages/@ember/routing/router.js +5 -5
  196. package/dist/prod/packages/@ember/runloop/index.js +1 -1
  197. package/dist/prod/packages/@ember/service/index.js +1 -1
  198. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  199. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -2
  200. package/dist/prod/packages/@ember/template-factory/index.js +1 -1
  201. package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -1
  202. package/dist/prod/packages/@glimmer/encoder/index.js +1 -1
  203. package/dist/prod/packages/@glimmer/manager/index.js +4 -4
  204. package/dist/prod/packages/@glimmer/node/index.js +3 -3
  205. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -2
  206. package/dist/prod/packages/@glimmer/program/index.js +10 -10
  207. package/dist/prod/packages/@glimmer/reference/index.js +5 -5
  208. package/dist/prod/packages/@glimmer/runtime/index.js +13 -13
  209. package/dist/prod/packages/@glimmer/tracking/index.js +2 -2
  210. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -1
  211. package/dist/prod/packages/@glimmer/util/index.js +4 -4
  212. package/dist/prod/packages/@glimmer/validator/index.js +3 -3
  213. package/dist/prod/packages/@glimmer/vm/index.js +2 -2
  214. package/dist/prod/packages/ember/version.js +1 -1
  215. package/dist/prod/packages/ember-template-compiler/index.js +4 -4
  216. package/dist/prod/packages/router_js/index.js +2 -2
  217. package/dist/prod/packages/rsvp/index.js +2281 -1
  218. package/dist/prod/packages/shared-chunks/{alias-DsIh-16z.js → alias-Bod6qdNp.js} +7 -7
  219. package/dist/prod/packages/shared-chunks/{api-CGZbGcvX.js → api-B_poQGXS.js} +6 -6
  220. package/dist/prod/packages/shared-chunks/{element-builder-CZePCkbA.js → api-CQexacBn.js} +139 -120
  221. package/dist/prod/packages/shared-chunks/{api-DOLN_cR2.js → api-DlJKfm_f.js} +3 -3
  222. package/dist/prod/packages/shared-chunks/{args-proxy-CaXVcI8G.js → args-proxy-CCoFtYLS.js} +2 -2
  223. package/dist/prod/packages/shared-chunks/{debug-render-tree-CYENUjgX.js → arguments-BzAkZVBa.js} +198 -198
  224. package/dist/prod/packages/shared-chunks/{array-DYFI95FA.js → array-BzReKMeW.js} +3 -3
  225. package/dist/prod/packages/shared-chunks/{array-utils-BEaSKdEb.js → array-utils-CZQxrdD3.js} +1 -1
  226. package/dist/prod/packages/shared-chunks/{cache-CG6_L9db.js → cache-CofLhaS4.js} +1 -2
  227. package/dist/prod/packages/shared-chunks/{capabilities-_5e35539.js → capabilities-BuVYh-vx.js} +1 -1
  228. package/dist/prod/packages/shared-chunks/{chain-tags-BP0V2LnZ.js → chain-tags-B2J7DsxO.js} +4 -4
  229. package/dist/prod/packages/shared-chunks/{collections-By4M3cTy.js → collections-GpG8lT2g.js} +10 -10
  230. package/dist/prod/packages/shared-chunks/{compiler-DQmEjFyx.js → compiler-lBSssiWp.js} +2 -2
  231. package/dist/prod/packages/shared-chunks/{computed-D6MVTTDd.js → computed-DtIStxvq.js} +6 -6
  232. package/dist/prod/packages/shared-chunks/{curly-DCYSwLtz.js → curly-IY06zACp.js} +7 -7
  233. package/dist/prod/packages/shared-chunks/{curried-Cnjy9_ug.js → curried-BZnYakIg.js} +1 -1
  234. package/dist/prod/packages/shared-chunks/{decorator-B8Lpq40g.js → decorator-9ikVwsjY.js} +1 -1
  235. package/dist/prod/packages/shared-chunks/{element-CT5H5uxF.js → element-DgHdPZ8u.js} +5 -3
  236. package/dist/prod/packages/shared-chunks/{events-C7aYCy0N.js → events-DYrYz3V8.js} +1 -1
  237. package/dist/{dev/packages/shared-chunks/flags-B9qxc-pB.js → prod/packages/shared-chunks/flags-BZxHQ0yn.js} +1 -1
  238. package/dist/prod/packages/shared-chunks/{get-tlL23wmp.js → get-Dago5uGl.js} +33 -36
  239. package/dist/{dev/packages/shared-chunks/get_properties-B203vZpz.js → prod/packages/shared-chunks/get_properties-Dg3xFpiS.js} +1 -1
  240. package/dist/prod/packages/shared-chunks/{guid-PO2v9BaN.js → guid-Cbq2sNV_.js} +1 -1
  241. package/dist/prod/packages/shared-chunks/{hash-C6IoC4eR.js → hash-gEXIsSO4.js} +24 -18
  242. package/dist/prod/packages/shared-chunks/{helper-CCK8Ef0x.js → helper-DkXiTBjc.js} +21 -9
  243. package/dist/prod/packages/shared-chunks/{index-D-rcNBLp.js → index-Bf53M8eS.js} +9 -8
  244. package/dist/prod/packages/shared-chunks/{index-DabsnYit.js → index-CslMfEpb.js} +110 -131
  245. package/dist/prod/packages/shared-chunks/{injected_property-COGiYHKc.js → injected_property-Y-FadDej.js} +2 -2
  246. package/dist/prod/packages/shared-chunks/{internal-BEJC2IJ-.js → internal-BQ7zHrqS.js} +4 -4
  247. package/dist/prod/packages/shared-chunks/{internal-helper-CoxiRnnb.js → internal-helper-Bz1lpDXr.js} +1 -1
  248. package/dist/prod/packages/shared-chunks/{invoke-D_jsLbsj.js → invoke-DhQ5QRp2.js} +3 -3
  249. package/dist/prod/packages/shared-chunks/{libraries-Bs3H8iwC.js → libraries-DBql0hdn.js} +2 -2
  250. package/dist/prod/packages/shared-chunks/{meta-Ce6-qROq.js → meta-BJtIZDir.js} +1 -1
  251. package/dist/{dev/packages/shared-chunks/namespace_search-TFdmjK_a.js → prod/packages/shared-chunks/namespace_search-BfvzEQzN.js} +1 -1
  252. package/dist/prod/packages/shared-chunks/{normalize-Bx4H3NjB.js → normalize-C_IStty9.js} +2 -2
  253. package/dist/prod/packages/shared-chunks/{or-sYlRiUn_.js → not-BOIVROuv.js} +28 -28
  254. package/dist/prod/packages/shared-chunks/{observers-Ci31SE36.js → observers-BmobpXAF.js} +5 -5
  255. package/dist/prod/packages/shared-chunks/{on-Dgmychhk.js → on-BZHAxzdq.js} +10 -10
  256. package/dist/{dev/packages/shared-chunks/program-CPXeXWVB.js → prod/packages/shared-chunks/program-BAh__OXZ.js} +3 -3
  257. package/dist/prod/packages/shared-chunks/{program-context-DmI53TzJ.js → program-context-COSioH46.js} +5 -4
  258. package/dist/prod/packages/shared-chunks/{property_get-Sw0SicEZ.js → property_get-DAKgbeJX.js} +2 -2
  259. package/dist/prod/packages/shared-chunks/{property_set-SHEIPMUG.js → property_set-BaQJdVfS.js} +3 -3
  260. package/dist/prod/packages/shared-chunks/{reference-D2agTt1V.js → reference-CG0yPgLy.js} +3 -3
  261. package/dist/prod/packages/shared-chunks/{registers-Buvdhhxx.js → registers-C_W2qYHJ.js} +1 -1
  262. package/dist/prod/packages/shared-chunks/{rehydrate-builder-B7MtrWip.js → rehydrate-builder-Blt1x9MP.js} +4 -4
  263. package/dist/prod/packages/shared-chunks/{render-B790-vbk.js → render-Dx7lr1hR.js} +94 -94
  264. package/dist/prod/packages/shared-chunks/{rsvp-C6j8G1D1.js → rsvp.es-DR7yS7qg.js} +150 -154
  265. package/dist/prod/packages/shared-chunks/{serialize-builder-kEyOKbzp.js → serialize-builder-BvAXYHTr.js} +2 -2
  266. package/dist/prod/packages/shared-chunks/{set_properties-CcLLHg1w.js → set_properties-Qxhw4qzw.js} +2 -2
  267. package/dist/prod/packages/shared-chunks/{setup-registry-D14I0iDX.js → setup-registry-U-6VaNQG.js} +18 -18
  268. package/dist/{dev/packages/shared-chunks/simple-cast-BXTrayoV.js → prod/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  269. package/dist/{dev/packages/shared-chunks/super-D4qkU4uq.js → prod/packages/shared-chunks/super-BBBjgF69.js} +1 -1
  270. package/dist/{dev/packages/shared-chunks/syscall-ops-nrBHMOTp.js → prod/packages/shared-chunks/syscall-ops-CN7STuUn.js} +1 -1
  271. package/dist/prod/packages/shared-chunks/{template-B0Apv9g2.js → template-BRrQR6KS.js} +1 -1
  272. package/dist/prod/packages/shared-chunks/{template-only-CP0NT7ce.js → template-only-DKNcKM5b.js} +2 -4
  273. package/dist/prod/packages/shared-chunks/{textarea-B_JYBuE8.js → textarea-DOmZ1x0E.js} +11 -7
  274. package/dist/prod/packages/shared-chunks/{tracked-CXcapuAm.js → tracked-B9380JtC.js} +5 -5
  275. package/dist/prod/packages/shared-chunks/{tracked-data-DNDzhYXf.js → tracked-data-CHq42QHb.js} +2 -2
  276. package/dist/prod/packages/shared-chunks/{unique-id-Hn8Qp4dS.js → unique-id-o2pS74go.js} +2 -2
  277. package/dist/prod/packages/shared-chunks/{unrecognized-url-error-ClNyMFJt.js → unrecognized-url-error-EgNrnFu_.js} +2 -2
  278. package/dist/{dev/packages/shared-chunks/vm-ops-5QCUIRx4.js → prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js} +1 -1
  279. package/docs/data.json +316 -334
  280. package/package.json +6 -4
  281. package/types/stable/@ember/-internals/glimmer/index.d.ts +165 -121
  282. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  283. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  284. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +8 -2
  285. package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +12 -12
  286. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +18 -6
  287. package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +3 -1
  288. package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +65 -121
  289. package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +8 -4
  290. package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +16 -14
  291. package/types/stable/@ember/-internals/glimmer/lib/helpers/element.d.ts +2 -0
  292. package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +11 -7
  293. package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +23 -29
  294. package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +3 -1
  295. package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +95 -49
  296. package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +23 -54
  297. package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +6 -2
  298. package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +4 -8
  299. package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +10 -10
  300. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +1 -2
  301. package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +2 -0
  302. package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +2 -14
  303. package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +15 -11
  304. package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +17 -10
  305. package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +1 -1
  306. package/types/stable/@ember/array/index.d.ts +6 -29
  307. package/types/stable/@ember/array/lib/is-array.d.ts +35 -0
  308. package/types/stable/@ember/component/template-only.d.ts +1 -3
  309. package/types/stable/@ember/controller/index.d.ts +1 -1
  310. package/types/stable/@ember/helper/index.d.ts +0 -19
  311. package/types/stable/@ember/object/index.d.ts +4 -3
  312. package/types/stable/@ember/object/observable.d.ts +4 -0
  313. package/types/stable/@ember/reactive/collections.d.ts +0 -6
  314. package/types/stable/@ember/routing/lib/generate_controller.d.ts +1 -1
  315. package/types/stable/@ember/routing/route.d.ts +2 -2
  316. package/types/stable/@ember/routing/router-service.d.ts +20 -12
  317. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +0 -2
  318. package/types/stable/@glimmer/runtime/lib/dom/sanitized-values.d.ts +2 -2
  319. package/types/stable/@glimmer/runtime/lib/helpers/array.d.ts +1 -1
  320. package/types/stable/@glimmer/runtime/lib/helpers/concat.d.ts +8 -3
  321. package/types/stable/@glimmer/runtime/lib/helpers/fn.d.ts +13 -7
  322. package/types/stable/@glimmer/runtime/lib/helpers/get.d.ts +21 -29
  323. package/types/stable/@glimmer/runtime/lib/helpers/hash.d.ts +1 -1
  324. package/types/stable/@glimmer/syntax/lib/get-template-locals.d.ts +1 -1
  325. package/types/stable/@glimmer/tracking/index.d.ts +12 -12
  326. package/types/stable/index.d.ts +1 -0
@@ -3,143 +3,87 @@ declare module '@ember/-internals/glimmer/lib/helpers/component' {
3
3
  @module ember
4
4
  */
5
5
  /**
6
- The `{{component}}` helper lets you add instances of `Component` to a
7
- template. See [Component](/ember/release/classes/Component) for
8
- additional information on how a `Component` functions.
9
- `{{component}}`'s primary use is for cases where you want to dynamically
10
- change which type of component is rendered as the state of your application
11
- changes. This helper has three modes: inline, block, and nested.
12
-
13
- ### Inline Form
14
-
15
- Given the following template:
16
-
17
- ```app/application.hbs
18
- {{component this.infographicComponentName}}
19
- ```
20
-
21
- And the following application code:
22
-
23
- ```app/controllers/application.js
24
- import Controller from '@ember/controller';
25
- import { tracked } from '@glimmer/tracking';
26
-
27
- export default class ApplicationController extends Controller {
28
- @tracked isMarketOpen = 'live-updating-chart'
29
-
30
- get infographicComponentName() {
31
- return this.isMarketOpen ? 'live-updating-chart' : 'market-close-summary';
32
- }
33
- }
34
- ```
6
+ The `component` helper is used to package a Component with initial arguments.
7
+ The included arguments can then be merged during the final invocation.
35
8
 
36
- The `live-updating-chart` component will be appended when `isMarketOpen` is
37
- `true`, and the `market-close-summary` component will be appended when
38
- `isMarketOpen` is `false`. If the value changes while the app is running,
39
- the component will be automatically swapped out accordingly.
40
- Note: You should not use this helper when you are consistently rendering the same
41
- component. In that case, use standard component syntax, for example:
9
+ See [Component](/ember/release/modules/@glimmer%2Fcomponent/) for
10
+ additional information on how a `Component` functions.
42
11
 
43
- ```app/templates/application.hbs
44
- <LiveUpdatingChart />
45
- ```
12
+ This is similar to the concept of Partial Application.
13
+
14
+ For example, given a `FullName` component:
15
+
16
+ ```app/components/full-name.gjs
17
+ import MyInputComponent from './my-input-component';
18
+
19
+ <template>
20
+ {{yield (component MyInputComponent value=@model.name placeholder="Username")}}
21
+ </template>
22
+ ```
23
+
24
+ The yielded component can be invoked by the calling component.
25
+ See the following snippet:
26
+
27
+ ```app/components/person-form.gjs
28
+ import FullName from './full-name';
29
+
30
+ <template>
31
+ <FullName @model={{@model}} as |Field|>
32
+ <Field />
33
+ </FullName>
34
+ </template>
35
+ ```
36
+
37
+ Which will output an input whose value is already bound to `@model.name` and `placeholder`
38
+ is "Username".
39
+
40
+ Any arguments passed at the invocation site of the component will override those applied via
41
+ the `component` helper. For example, if the invocation site of the component is:
46
42
 
47
- or
43
+ ```app/components/person-form.gjs
44
+ import FullName from './full-name';
48
45
 
49
- ```app/templates/application.hbs
50
- {{live-updating-chart}}
46
+ <template>
47
+ <FullName @model={{@model}} as |Field|>
48
+ <Field @placeholder="Your name" />
49
+ </FullName>
50
+ </template>
51
51
  ```
52
52
 
53
- ### Block Form
54
-
55
- Using the block form of this helper is similar to using the block form
56
- of a component. Given the following application template:
53
+ The output will be an input whose value is bound to `@model.name` and `placeholder`
54
+ is "Your name".
55
+
56
+ The `component` helper is built-in and does not need to be imported.
57
+
58
+ Prior to Strict Mode aka "Template Tag" or gjs, the component helper was also used to invoke
59
+ components dynamically. This is no longer necessary, and they can be directly invoked, as above.
57
60
 
58
- ```app/templates/application.hbs
59
- {{#component this.infographicComponentName}}
60
- Last update: {{this.lastUpdateTimestamp}}
61
- {{/component}}
62
- ```
63
-
64
- The following controller code:
61
+ ### Dynamic Component Invocation
65
62
 
66
- ```app/controllers/application.js
67
- import Controller from '@ember/controller';
68
- import { computed } from '@ember/object';
63
+ ```app/templates/application.gjs
64
+ import Component from '@glimmer/component';
69
65
  import { tracked } from '@glimmer/tracking';
66
+ import { component } from '@ember/helper';
67
+ import LiveUpdatingChart from '../components/live-updating-chart';
68
+ import MarketCloseSummary from '../components/market-close-summary';
70
69
 
71
- export default class ApplicationController extends Controller {
72
- @tracked isMarketOpen = 'live-updating-chart'
70
+ export default class Application extends Component {
71
+ @tracked isMarketOpen = false;
73
72
 
74
- get lastUpdateTimestamp() {
75
- return new Date();
73
+ get infographicComponent() {
74
+ return this.isMarketOpen ? LiveUpdatingChart : MarketCloseSummary;
76
75
  }
77
76
 
78
- get infographicComponentName() {
79
- return this.isMarketOpen ? 'live-updating-chart' : 'market-close-summary';
80
- }
77
+ <template>
78
+ {{!-- The component can be invoked directly --}}
79
+ <this.infographicComponent />
80
+
81
+ {{!-- The component helper here is no longer necessary --}}
82
+ {{component this.infographicComponentName}}
83
+ </template>
81
84
  }
82
85
  ```
83
86
 
84
- And the following component template:
85
-
86
- ```app/templates/components/live-updating-chart.hbs
87
- {{! chart }}
88
- {{yield}}
89
- ```
90
-
91
- The `Last Update: {{this.lastUpdateTimestamp}}` will be rendered in place of the `{{yield}}`.
92
-
93
- ### Nested Usage
94
-
95
- The `component` helper can be used to package a component path with initial attrs.
96
- The included attrs can then be merged during the final invocation.
97
- For example, given a `person-form` component with the following template:
98
-
99
- ```app/templates/components/person-form.hbs
100
- {{yield (hash
101
- nameInput=(component "my-input-component" value=@model.name placeholder="First Name")
102
- )}}
103
- ```
104
-
105
- When yielding the component via the `hash` helper, the component is invoked directly.
106
- See the following snippet:
107
-
108
- ```
109
- <PersonForm as |form|>
110
- <form.nameInput @placeholder="Username" />
111
- </PersonForm>
112
- ```
113
-
114
- or
115
- ```
116
- {{#person-form as |form|}}
117
- {{form.nameInput placeholder="Username"}}
118
- {{/person-form}}
119
- ```
120
-
121
- Which outputs an input whose value is already bound to `model.name` and `placeholder`
122
- is "Username".
123
-
124
- When yielding the component without the `hash` helper use the `component` helper.
125
- For example, below is a `full-name` component template:
126
-
127
- ```handlebars
128
- {{yield (component "my-input-component" value=@model.name placeholder="Name")}}
129
- ```
130
-
131
- ```
132
- <FullName as |field|>
133
- {{component field placeholder="Full name"}}
134
- </FullName>
135
- ```
136
- or
137
- ```
138
- {{#full-name as |field|}}
139
- {{component field placeholder="Full name"}}
140
- {{/full-name}}
141
- ```
142
-
143
87
  @method component
144
88
  @since 1.11.0
145
89
  @for Ember.Templates.helpers
@@ -7,13 +7,17 @@ declare module '@ember/-internals/glimmer/lib/helpers/concat' {
7
7
 
8
8
  Example:
9
9
 
10
- ```handlebars
11
- {{some-component name=(concat firstName " " lastName)}}
10
+ ```gjs
11
+ import { concat } from '@ember/helper';
12
+
13
+ <template>
14
+ {{yield (concat firstName " " lastName)}}
12
15
 
13
- {{! would pass name="<first name value> <last name value>" to the component}}
16
+ {{! would yield name="<first name value> <last name value>" to the component}}
17
+ </template>
14
18
  ```
15
19
 
16
- or for angle bracket invocation, you actually don't need concat at all.
20
+ For invocation of components, you don't need concat at all.
17
21
 
18
22
  ```handlebars
19
23
  <SomeComponent @name="{{firstName}} {{lastName}}" />
@@ -1,6 +1,6 @@
1
1
  declare module '@ember/-internals/glimmer/lib/helpers/each-in' {
2
2
  /**
3
- The `{{#each}}` helper loops over elements in a collection. It is an extension
3
+ The `{{#each}}` keyword loops over elements in a collection. It is an extension
4
4
  of the base Handlebars `{{#each}}` helper.
5
5
 
6
6
  The default behavior of `{{#each}}` is to yield its inner block once for every
@@ -44,6 +44,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/each-in' {
44
44
  {{/each}}
45
45
  </ul>
46
46
  ```
47
+
48
+ `#each` is a keyword and does not need to be imported.
47
49
 
48
50
  ### Specifying Keys
49
51
 
@@ -110,11 +112,11 @@ declare module '@ember/-internals/glimmer/lib/helpers/each-in' {
110
112
  @public
111
113
  */
112
114
  /**
113
- The `{{each-in}}` helper loops over properties on an object.
115
+ The `{{#each-in}}` keyword loops over properties on an object.
114
116
 
115
117
  For example, given this component definition:
116
118
 
117
- ```app/components/developer-details.js
119
+ ```app/components/developer-details.gjs
118
120
  import Component from '@glimmer/component';
119
121
  import { tracked } from '@glimmer/tracking';
120
122
 
@@ -123,21 +125,19 @@ declare module '@ember/-internals/glimmer/lib/helpers/each-in' {
123
125
  "name": "Shelly Sails",
124
126
  "age": 42
125
127
  };
128
+
129
+ <template>
130
+ <ul>
131
+ {{#each-in this.developer as |key value|}}
132
+ <li>{{key}}: {{value}}</li>
133
+ {{/each-in}}
134
+ </ul>
135
+ </template>
126
136
  }
127
137
  ```
128
138
 
129
139
  This template would display all properties on the `developer`
130
- object in a list:
131
-
132
- ```app/components/developer-details.hbs
133
- <ul>
134
- {{#each-in this.developer as |key value|}}
135
- <li>{{key}}: {{value}}</li>
136
- {{/each-in}}
137
- </ul>
138
- ```
139
-
140
- Outputting their name and age:
140
+ object in a list, outputting their name and age:
141
141
 
142
142
  ```html
143
143
  <ul>
@@ -145,6 +145,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/each-in' {
145
145
  <li>age: 42</li>
146
146
  </ul>
147
147
  ```
148
+
149
+ `#each-in` is a keyword and does not need to be imported.
148
150
 
149
151
  @method each-in
150
152
  @for Ember.Templates.helpers
@@ -19,6 +19,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/element' {
19
19
  Passing `null`, `undefined`, or non-string values will throw an assertion error.
20
20
 
21
21
  Changing the tag name will tear down and recreate the element and its contents.
22
+
23
+ The `element` helper is built-in and does not need to be imported.
22
24
 
23
25
  @method element
24
26
  @for Ember.Templates.helpers
@@ -12,13 +12,15 @@ declare module '@ember/-internals/glimmer/lib/helpers/fn' {
12
12
  to a component invoked within the loop. Here's how you could use the `fn`
13
13
  helper to pass both the function and its arguments together:
14
14
 
15
- ```app/templates/components/items-listing.hbs
16
- {{#each @items as |item|}}
17
- <DisplayItem @item=item @select={{fn this.handleSelected item}} />
18
- {{/each}}
15
+ ```app/components/items-listing.gjs
16
+ <template>
17
+ {{#each @items as |item|}}
18
+ <DisplayItem @item=item @select={{fn this.handleSelected item}} />
19
+ {{/each}}
20
+ </template>
19
21
  ```
20
22
 
21
- ```app/components/items-list.js
23
+ ```app/components/items-list.gjs
22
24
  import Component from '@glimmer/component';
23
25
  import { action } from '@ember/object';
24
26
 
@@ -30,7 +32,7 @@ declare module '@ember/-internals/glimmer/lib/helpers/fn' {
30
32
  }
31
33
  ```
32
34
 
33
- In this case the `display-item` component will receive a normal function
35
+ In this case the `DisplayItem` component will receive a normal function
34
36
  that it can invoke. When it invokes the function, the `handleSelected`
35
37
  function will receive the `item` and any arguments passed, thanks to the
36
38
  `fn` helper.
@@ -47,7 +49,7 @@ declare module '@ember/-internals/glimmer/lib/helpers/fn' {
47
49
  properly bound to the `items-list`, but let's explore what happens if we
48
50
  left out `@action`:
49
51
 
50
- ```app/components/items-list.js
52
+ ```app/components/items-list.gjs
51
53
  import Component from '@glimmer/component';
52
54
 
53
55
  export default class ItemsList extends Component {
@@ -63,6 +65,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/fn' {
63
65
  are bound (via `@action` or other means) before passing into `fn`!
64
66
 
65
67
  See also [partial application](https://en.wikipedia.org/wiki/Partial_application).
68
+
69
+ `fn` is built-in and does not need to be imported.
66
70
 
67
71
  @method fn
68
72
  @for @ember/helper
@@ -9,28 +9,33 @@ declare module '@ember/-internals/glimmer/lib/helpers/get' {
9
9
 
10
10
  For example, these two usages are equivalent:
11
11
 
12
- ```app/components/developer-detail.js
12
+ ```app/components/developer-detail.gjs
13
13
  import Component from '@glimmer/component';
14
14
  import { tracked } from '@glimmer/tracking';
15
+ import { get } from '@ember/object';
15
16
 
16
17
  export default class extends Component {
17
18
  @tracked developer = {
18
19
  name: "Sandi Metz",
19
20
  language: "Ruby"
20
21
  }
22
+
23
+ <template>
24
+ {{this.developer.name}}
25
+ {{get this.developer "name"}}
26
+ </template>
21
27
  }
22
28
  ```
23
-
24
- ```handlebars
25
- {{this.developer.name}}
26
- {{get this.developer "name"}}
27
- ```
28
-
29
+
29
30
  If there were several facts about a person, the `{{get}}` helper can dynamically
30
31
  pick one:
31
32
 
32
- ```app/templates/application.hbs
33
- <DeveloperDetail @factName="language" />
33
+ ```app/templates/application.gjs
34
+ import DeveloperDetail from '../components/developer-detail';
35
+
36
+ <template>
37
+ <DeveloperDetail @factName="language" />
38
+ </template
34
39
  ```
35
40
 
36
41
  ```handlebars
@@ -40,9 +45,10 @@ declare module '@ember/-internals/glimmer/lib/helpers/get' {
40
45
  For a more complex example, this template would allow the user to switch
41
46
  between showing the user's name and preferred coding language with a click:
42
47
 
43
- ```app/components/developer-detail.js
48
+ ```app/components/developer-detail.gjs
44
49
  import Component from '@glimmer/component';
45
50
  import { tracked } from '@glimmer/tracking';
51
+ import { get } from '@ember/object';
46
52
 
47
53
  export default class extends Component {
48
54
  @tracked developer = {
@@ -56,28 +62,16 @@ declare module '@ember/-internals/glimmer/lib/helpers/get' {
56
62
  showFact(fact) {
57
63
  this.currentFact = fact;
58
64
  }
59
- }
60
- ```
61
-
62
- ```app/components/developer-detail.js
63
- {{get this.developer this.currentFact}}
65
+
66
+ <template>
67
+ {{get this.developer this.currentFact}}
64
68
 
65
- <button {{on 'click' (fn this.showFact "name")}}>Show name</button>
66
- <button {{on 'click' (fn this.showFact "language")}}>Show language</button>
67
- ```
68
-
69
- The `{{get}}` helper can also respect mutable values itself. For example:
70
-
71
- ```app/components/developer-detail.js
72
- <Input @value={{mut (get this.person this.currentFact)}} />
73
-
74
- <button {{on 'click' (fn this.showFact "name")}}>Show name</button>
75
- <button {{on 'click' (fn this.showFact "language")}}>Show language</button>
69
+ <button {{on 'click' (fn this.showFact "name")}}>Show name</button>
70
+ <button {{on 'click' (fn this.showFact "language")}}>Show language</button>
71
+ </template>
72
+ }
76
73
  ```
77
74
 
78
- Would allow the user to swap what fact is being displayed, and also edit
79
- that fact via a two-way mutable binding.
80
-
81
75
  The `{{get}}` helper can also be used for array element access via index.
82
76
  This would display the value of the first element in the array `this.names`:
83
77
 
@@ -4,7 +4,7 @@ declare module '@ember/-internals/glimmer/lib/helpers/hash' {
4
4
  */
5
5
  /**
6
6
  Use the `{{hash}}` helper to create a hash to pass as an option to your
7
- components. This is specially useful for contextual components where you can
7
+ components. This is especially useful for contextual components where you can
8
8
  just yield a hash:
9
9
 
10
10
  ```handlebars
@@ -32,6 +32,8 @@ declare module '@ember/-internals/glimmer/lib/helpers/hash' {
32
32
  return Object.prototype.toString.apply(obj);
33
33
  }
34
34
  ```
35
+
36
+ The `hash` helper is a built-in keyword and does not need to be imported as of v7.1.0.
35
37
 
36
38
  @method hash
37
39
  @for @ember/helper