ember-source 7.1.0-alpha.4 → 7.1.0-alpha.5

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 (481) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dev/packages/@ember/-internals/container/index.js +4 -401
  3. package/dist/dev/packages/@ember/-internals/deprecations/index.js +1 -1
  4. package/dist/dev/packages/@ember/-internals/environment/index.js +3 -161
  5. package/dist/dev/packages/@ember/-internals/glimmer/index.js +14 -15
  6. package/dist/dev/packages/@ember/-internals/meta/lib/meta.js +0 -1
  7. package/dist/dev/packages/@ember/-internals/metal/index.js +18 -9
  8. package/dist/dev/packages/@ember/-internals/routing/index.js +1 -10
  9. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -12
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -10
  11. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -10
  12. package/dist/dev/packages/@ember/-internals/string/index.js +0 -1
  13. package/dist/dev/packages/@ember/-internals/utils/index.js +8 -3
  14. package/dist/dev/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -1
  15. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +3 -12
  16. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -11
  17. package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  18. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -18
  19. package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +1 -1
  20. package/dist/dev/packages/@ember/application/index.js +5 -28
  21. package/dist/dev/packages/@ember/application/instance.js +3 -22
  22. package/dist/dev/packages/@ember/application/namespace.js +4 -11
  23. package/dist/dev/packages/@ember/array/index.js +7 -15
  24. package/dist/dev/packages/@ember/array/proxy.js +10 -14
  25. package/dist/dev/packages/@ember/canary-features/index.js +1 -1
  26. package/dist/dev/packages/@ember/component/helper.js +1 -14
  27. package/dist/dev/packages/@ember/component/index.js +1355 -16
  28. package/dist/dev/packages/@ember/component/template-only.js +1 -9
  29. package/dist/dev/packages/@ember/controller/index.js +3 -19
  30. package/dist/dev/packages/@ember/debug/container-debug-adapter.js +0 -19
  31. package/dist/dev/packages/@ember/debug/data-adapter.js +4 -11
  32. package/dist/dev/packages/@ember/debug/index.js +1 -1
  33. package/dist/dev/packages/@ember/debug/lib/deprecate.js +1 -1
  34. package/dist/dev/packages/@ember/engine/index.js +3 -29
  35. package/dist/dev/packages/@ember/engine/instance.js +3 -8
  36. package/dist/dev/packages/@ember/helper/index.js +169 -21
  37. package/dist/dev/packages/@ember/instrumentation/index.js +1 -1
  38. package/dist/dev/packages/@ember/modifier/index.js +2 -16
  39. package/dist/dev/packages/@ember/modifier/on.js +1 -9
  40. package/dist/dev/packages/@ember/object/-internals.js +3 -11
  41. package/dist/dev/packages/@ember/object/compat.js +3 -10
  42. package/dist/dev/packages/@ember/object/computed.js +2 -12
  43. package/dist/dev/packages/@ember/object/core.js +10 -18
  44. package/dist/dev/packages/@ember/object/evented.js +2 -12
  45. package/dist/dev/packages/@ember/object/events.js +1 -11
  46. package/dist/dev/packages/@ember/object/index.js +10 -14
  47. package/dist/dev/packages/@ember/object/internals.js +1 -1
  48. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +6 -23
  49. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -12
  50. package/dist/dev/packages/@ember/object/mixin.js +7 -10
  51. package/dist/dev/packages/@ember/object/observable.js +8 -12
  52. package/dist/dev/packages/@ember/object/observers.js +1 -11
  53. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -13
  54. package/dist/dev/packages/@ember/object/proxy.js +0 -7
  55. package/dist/dev/packages/@ember/reactive/collections.js +589 -1
  56. package/dist/dev/packages/@ember/renderer/index.js +1 -14
  57. package/dist/dev/packages/@ember/routing/-internals.js +1 -10
  58. package/dist/dev/packages/@ember/routing/index.js +614 -14
  59. package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -11
  60. package/dist/dev/packages/@ember/routing/lib/routing-service.js +7 -17
  61. package/dist/dev/packages/@ember/routing/lib/utils.js +2 -11
  62. package/dist/dev/packages/@ember/routing/route.js +12 -23
  63. package/dist/dev/packages/@ember/routing/router-service.js +8 -17
  64. package/dist/dev/packages/@ember/routing/router.js +5 -21
  65. package/dist/dev/packages/@ember/runloop/index.js +1 -10
  66. package/dist/dev/packages/@ember/service/index.js +1 -11
  67. package/dist/dev/packages/@ember/template/index.js +1 -14
  68. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +12 -15
  69. package/dist/dev/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -1
  70. package/dist/dev/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
  71. package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
  72. package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +1 -3
  73. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -10
  74. package/dist/dev/packages/@ember/template-factory/index.js +1 -8
  75. package/dist/dev/packages/@ember/utils/lib/compare.js +0 -7
  76. package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -12
  77. package/dist/dev/packages/@glimmer/manager/index.js +4 -314
  78. package/dist/dev/packages/@glimmer/node/index.js +3 -11
  79. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +5 -7
  80. package/dist/dev/packages/@glimmer/program/index.js +194 -3
  81. package/dist/dev/packages/@glimmer/reference/index.js +4 -5
  82. package/dist/dev/packages/@glimmer/runtime/index.js +17 -10
  83. package/dist/dev/packages/@glimmer/tracking/index.js +2 -11
  84. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -11
  85. package/dist/dev/packages/@glimmer/util/index.js +1 -2
  86. package/dist/dev/packages/@glimmer/validator/index.js +4 -1253
  87. package/dist/dev/packages/@glimmer/vm/index.js +1 -1
  88. package/dist/dev/packages/@glimmer/wire-format/index.js +3 -65
  89. package/dist/dev/packages/ember/version.js +1 -1
  90. package/dist/dev/packages/ember-template-compiler/index.js +7 -7
  91. package/dist/dev/packages/shared-chunks/{alias-CSC0WIbj.js → alias-ZcMQckQV.js} +8 -4
  92. package/dist/dev/packages/shared-chunks/api-AYt3zE12.js +310 -0
  93. package/dist/dev/packages/shared-chunks/{api-BQMslHhq.js → api-WvJPuo9z.js} +4 -5
  94. package/dist/dev/packages/shared-chunks/{args-proxy-DgXMc9b5.js → args-proxy-BNLuRFlO.js} +2 -4
  95. package/dist/dev/packages/shared-chunks/{array-D8PfjQHi.js → array-Bh_kUjzy.js} +2 -1
  96. package/dist/dev/packages/shared-chunks/cache-B7dqAS38.js +596 -0
  97. package/dist/dev/packages/shared-chunks/{capabilities-O_xc7Yqk.js → capabilities-CZkuOqqC.js} +0 -5
  98. package/dist/dev/packages/shared-chunks/chain-tags-D6tuFUj_.js +190 -0
  99. package/dist/dev/packages/shared-chunks/{collections-D_nY_0UJ.js → collections-DPkjqeA3.js} +0 -1
  100. package/dist/dev/packages/shared-chunks/{compiler-D1leQ3Gl.js → compiler-CXB_8GdR.js} +7043 -234
  101. package/dist/dev/packages/shared-chunks/computed-CJnghmXC.js +980 -0
  102. package/dist/dev/packages/shared-chunks/container-BzzHmCNj.js +404 -0
  103. package/dist/dev/packages/shared-chunks/curly-CvC8E_4-.js +617 -0
  104. package/dist/dev/packages/shared-chunks/{fragment-Cc5k9Oy4.js → curried-BVwSNqpf.js} +5 -288
  105. package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
  106. package/dist/dev/packages/shared-chunks/element-C-QcIABg.js +109 -0
  107. package/dist/dev/packages/shared-chunks/element-builder-kHVx0F__.js +812 -0
  108. package/dist/dev/packages/shared-chunks/env-g-kaAFLN.js +161 -0
  109. package/dist/dev/packages/shared-chunks/events-6aFVjD4k.js +180 -0
  110. package/dist/dev/packages/shared-chunks/get-CpJjYeJO.js +138 -0
  111. package/dist/dev/packages/shared-chunks/get-debug-name-CSniHBsn.js +45 -0
  112. package/dist/dev/packages/shared-chunks/get_properties-CIm8IAtP.js +55 -0
  113. package/dist/dev/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
  114. package/dist/dev/packages/shared-chunks/hash-D3BENmhU.js +192 -0
  115. package/dist/dev/packages/shared-chunks/helper-DlC4YesW.js +314 -0
  116. package/dist/dev/packages/shared-chunks/index-CTxkmV78.js +2500 -0
  117. package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
  118. package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-DmGmwWPJ.js} +29 -29
  119. package/dist/dev/packages/shared-chunks/injected_property-B4T-FzZZ.js +70 -0
  120. package/dist/dev/packages/shared-chunks/intern-zquhAEIg.js +51 -0
  121. package/dist/dev/packages/shared-chunks/internal-CbQSKXEm.js +140 -0
  122. package/dist/dev/packages/shared-chunks/internal-helper-Dsl9_7H_.js +7 -0
  123. package/dist/dev/packages/shared-chunks/{neq-DujMPv1k.js → invoke-B6j6DdDz.js} +4 -32
  124. package/dist/{prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js → dev/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
  125. package/dist/dev/packages/shared-chunks/libraries-CHBwbR72.js +79 -0
  126. package/dist/dev/packages/shared-chunks/mandatory-setter-BpbAMTzV.js +107 -0
  127. package/dist/dev/packages/shared-chunks/meta-BmRXesrk.js +46 -0
  128. package/dist/{prod/packages/shared-chunks/name-C68GLLO3.js → dev/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
  129. package/dist/dev/packages/shared-chunks/{namespace_search-uT8odThF.js → namespace_search-BfvzEQzN.js} +1 -2
  130. package/dist/dev/packages/shared-chunks/normalize-CKySQVU7.js +84 -0
  131. package/dist/dev/packages/shared-chunks/observers-C2DurkLG.js +199 -0
  132. package/dist/dev/packages/shared-chunks/on-D8QwT-eN.js +253 -0
  133. package/dist/dev/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
  134. package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
  135. package/dist/dev/packages/shared-chunks/or-DBU9Ge4r.js +118 -0
  136. package/dist/{prod/packages/shared-chunks/program-B7SJZ5NF.js → dev/packages/shared-chunks/program-DzAfcWFj.js} +1 -1
  137. package/dist/{prod/packages/shared-chunks/program-context-DFiwaPMR.js → dev/packages/shared-chunks/program-context-CqcQMsfa.js} +3 -3
  138. package/dist/dev/packages/shared-chunks/property_get-CIBS9umw.js +139 -0
  139. package/dist/dev/packages/shared-chunks/{property_set-DaoZXGM5.js → property_set-D3PKyisF.js} +4 -2
  140. package/dist/dev/packages/shared-chunks/props-fiqxqhAH.js +85 -0
  141. package/dist/dev/packages/shared-chunks/{reference-C3TKDRnP.js → reference-BoPB2LfI.js} +3 -4
  142. package/dist/dev/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
  143. package/dist/{prod/packages/shared-chunks/rehydrate-builder-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DdzXTaJk.js} +7 -4
  144. package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-DDdabL30.js} +510 -15
  145. package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.js → dev/packages/shared-chunks/serialize-builder-B3u9Wr3n.js} +2 -7
  146. package/dist/dev/packages/shared-chunks/set_properties-BghuuGJx.js +48 -0
  147. package/dist/dev/packages/shared-chunks/{setup-registry-DxchCIL2.js → setup-registry-XxD0xvgf.js} +34 -14
  148. package/dist/dev/packages/shared-chunks/spec-BXl1reqK.js +16 -0
  149. package/dist/dev/packages/shared-chunks/super-BBBjgF69.js +91 -0
  150. package/dist/dev/packages/shared-chunks/template-BRrQR6KS.js +16 -0
  151. package/dist/dev/packages/shared-chunks/template-only-Yluyu0DY.js +78 -0
  152. package/dist/dev/packages/shared-chunks/textarea-C0Us0PNJ.js +468 -0
  153. package/dist/dev/packages/shared-chunks/tracked-CKE4wnE6.js +148 -0
  154. package/dist/dev/packages/shared-chunks/tracked-data-CGnA4ytZ.js +31 -0
  155. package/dist/dev/packages/shared-chunks/transform-resolutions-h1ik8gqW.js +645 -0
  156. package/dist/dev/packages/shared-chunks/unique-id-A83bjEE-.js +32 -0
  157. package/dist/{prod/packages/shared-chunks/on-CersD7PL.js → dev/packages/shared-chunks/untouchable-this-cH6_N2LJ.js} +215 -1397
  158. package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
  159. package/dist/prod/packages/@ember/-internals/container/index.js +5 -315
  160. package/dist/prod/packages/@ember/-internals/deprecations/index.js +1 -1
  161. package/dist/prod/packages/@ember/-internals/environment/index.js +3 -158
  162. package/dist/prod/packages/@ember/-internals/glimmer/index.js +14 -13
  163. package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +1 -2
  164. package/dist/prod/packages/@ember/-internals/metal/index.js +19 -13
  165. package/dist/prod/packages/@ember/-internals/routing/index.js +2 -6
  166. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  167. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -10
  168. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +2 -6
  169. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +1 -1
  170. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -6
  171. package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
  172. package/dist/prod/packages/@ember/-internals/utils/index.js +33 -30
  173. package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -2
  174. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -6
  175. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +3 -7
  176. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +2 -2
  177. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -14
  178. package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +1 -2
  179. package/dist/prod/packages/@ember/application/index.js +5 -24
  180. package/dist/prod/packages/@ember/application/instance.js +6 -18
  181. package/dist/prod/packages/@ember/application/namespace.js +5 -8
  182. package/dist/prod/packages/@ember/array/index.js +8 -12
  183. package/dist/prod/packages/@ember/array/proxy.js +10 -10
  184. package/dist/prod/packages/@ember/canary-features/index.js +1 -1
  185. package/dist/prod/packages/@ember/component/helper.js +1 -12
  186. package/dist/prod/packages/@ember/component/index.js +1292 -15
  187. package/dist/prod/packages/@ember/component/template-only.js +1 -6
  188. package/dist/prod/packages/@ember/controller/index.js +3 -16
  189. package/dist/prod/packages/@ember/debug/container-debug-adapter.js +1 -15
  190. package/dist/prod/packages/@ember/debug/data-adapter.js +5 -7
  191. package/dist/prod/packages/@ember/debug/index.js +1 -1
  192. package/dist/prod/packages/@ember/debug/lib/deprecate.js +1 -1
  193. package/dist/prod/packages/@ember/engine/index.js +4 -25
  194. package/dist/prod/packages/@ember/engine/instance.js +4 -9
  195. package/dist/prod/packages/@ember/helper/index.js +169 -19
  196. package/dist/prod/packages/@ember/instrumentation/index.js +1 -1
  197. package/dist/prod/packages/@ember/modifier/index.js +2 -14
  198. package/dist/prod/packages/@ember/modifier/on.js +1 -6
  199. package/dist/prod/packages/@ember/object/-internals.js +3 -6
  200. package/dist/prod/packages/@ember/object/compat.js +4 -7
  201. package/dist/prod/packages/@ember/object/computed.js +2 -8
  202. package/dist/prod/packages/@ember/object/core.js +9 -15
  203. package/dist/prod/packages/@ember/object/evented.js +2 -7
  204. package/dist/prod/packages/@ember/object/events.js +1 -6
  205. package/dist/prod/packages/@ember/object/index.js +10 -12
  206. package/dist/prod/packages/@ember/object/internals.js +3 -6
  207. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +6 -20
  208. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -9
  209. package/dist/prod/packages/@ember/object/mixin.js +7 -9
  210. package/dist/prod/packages/@ember/object/observable.js +8 -9
  211. package/dist/prod/packages/@ember/object/observers.js +1 -6
  212. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -9
  213. package/dist/prod/packages/@ember/object/proxy.js +0 -7
  214. package/dist/prod/packages/@ember/reactive/collections.js +589 -1
  215. package/dist/prod/packages/@ember/renderer/index.js +1 -12
  216. package/dist/prod/packages/@ember/routing/history-location.js +1 -1
  217. package/dist/prod/packages/@ember/routing/index.js +581 -12
  218. package/dist/prod/packages/@ember/routing/lib/dsl.js +1 -1
  219. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +2 -6
  220. package/dist/prod/packages/@ember/routing/lib/routing-service.js +5 -14
  221. package/dist/prod/packages/@ember/routing/lib/utils.js +2 -6
  222. package/dist/prod/packages/@ember/routing/none-location.js +1 -1
  223. package/dist/prod/packages/@ember/routing/route.js +12 -21
  224. package/dist/prod/packages/@ember/routing/router-service.js +6 -14
  225. package/dist/prod/packages/@ember/routing/router.js +5 -17
  226. package/dist/prod/packages/@ember/runloop/index.js +2 -6
  227. package/dist/prod/packages/@ember/service/index.js +1 -7
  228. package/dist/prod/packages/@ember/template/index.js +1 -12
  229. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +13 -14
  230. package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -2
  231. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +1 -1
  232. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +1 -1
  233. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +1 -1
  234. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +1 -1
  235. package/dist/prod/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
  236. package/dist/prod/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
  237. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +1 -1
  238. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +1 -1
  239. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +127 -4
  240. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -7
  241. package/dist/prod/packages/@ember/template-factory/index.js +1 -5
  242. package/dist/prod/packages/@ember/utils/lib/compare.js +1 -8
  243. package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -7
  244. package/dist/prod/packages/@glimmer/manager/index.js +4 -292
  245. package/dist/prod/packages/@glimmer/node/index.js +3 -8
  246. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +5 -5
  247. package/dist/prod/packages/@glimmer/program/index.js +194 -3
  248. package/dist/prod/packages/@glimmer/reference/index.js +4 -4
  249. package/dist/prod/packages/@glimmer/runtime/index.js +16 -8
  250. package/dist/prod/packages/@glimmer/tracking/index.js +2 -7
  251. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -6
  252. package/dist/prod/packages/@glimmer/util/index.js +2 -2
  253. package/dist/prod/packages/@glimmer/validator/index.js +5 -1016
  254. package/dist/prod/packages/@glimmer/vm/index.js +1 -1
  255. package/dist/prod/packages/@glimmer/wire-format/index.js +3 -65
  256. package/dist/prod/packages/ember/version.js +1 -1
  257. package/dist/prod/packages/ember-template-compiler/index.js +5 -7
  258. package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-CLuFeKoV.js} +8 -6
  259. package/dist/prod/packages/shared-chunks/api-CM1trl_4.js +289 -0
  260. package/dist/prod/packages/shared-chunks/{api-B5UrgITK.js → api-zh_k31vb.js} +4 -5
  261. package/dist/prod/packages/shared-chunks/{args-proxy-Dl0A0YWI.js → args-proxy-BDXbXCF9.js} +2 -2
  262. package/dist/prod/packages/shared-chunks/{array-kVQfzrQn.js → array-DHdr4__s.js} +3 -3
  263. package/dist/prod/packages/shared-chunks/assert-CUCJBR2C.js +19 -0
  264. package/dist/prod/packages/shared-chunks/cache-BIlOoPA7.js +371 -0
  265. package/dist/prod/packages/shared-chunks/{capabilities-DXA-L0iT.js → capabilities-_5e35539.js} +0 -3
  266. package/dist/prod/packages/shared-chunks/chain-tags-BJqcuCM1.js +179 -0
  267. package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-DjQtTQGk.js} +7045 -193
  268. package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-2Udcmflw.js} +109 -239
  269. package/dist/prod/packages/shared-chunks/container-D5NwW5Fd.js +316 -0
  270. package/dist/prod/packages/shared-chunks/curly-BsqvV8G0.js +546 -0
  271. package/dist/prod/packages/shared-chunks/{fragment-D7nBU9ae.js → curried-BVwSNqpf.js} +6 -303
  272. package/dist/prod/packages/shared-chunks/debug-render-tree-BLtnOSbb.js +2049 -0
  273. package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-DBCISop4.js} +1 -1
  274. package/dist/prod/packages/shared-chunks/element-BjFr0tO0.js +101 -0
  275. package/dist/prod/packages/shared-chunks/{element-builder-CzXb9l1W.js → element-builder-BPjq0rxK.js} +109 -88
  276. package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
  277. package/dist/prod/packages/shared-chunks/events-970OxD6Q.js +175 -0
  278. package/dist/prod/packages/shared-chunks/get-D5wxdTkY.js +138 -0
  279. package/dist/prod/packages/shared-chunks/get_properties-BcAC5sGx.js +55 -0
  280. package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
  281. package/dist/prod/packages/shared-chunks/hash-DcUe-meU.js +192 -0
  282. package/dist/prod/packages/shared-chunks/helper-Da672z4a.js +299 -0
  283. package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index--2U-v2nf.js} +18 -10
  284. package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
  285. package/dist/prod/packages/shared-chunks/index-D87qoERP.js +2322 -0
  286. package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property-D9B-fPiH.js} +3 -3
  287. package/dist/prod/packages/shared-chunks/intern-zquhAEIg.js +51 -0
  288. package/dist/prod/packages/shared-chunks/internal-DidurjJB.js +137 -0
  289. package/dist/prod/packages/shared-chunks/internal-helper-DIbr1RgC.js +7 -0
  290. package/dist/prod/packages/shared-chunks/{neq-BqdovTuC.js → invoke-Dr_CRwA_.js} +4 -24
  291. package/dist/{dev/packages/shared-chunks/is_proxy-B0smdQy8.js → prod/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
  292. package/dist/prod/packages/shared-chunks/libraries-DaXpIDYN.js +60 -0
  293. package/dist/prod/packages/shared-chunks/meta-B9mldqPL.js +36 -0
  294. package/dist/{dev/packages/shared-chunks/name-Z7dpqvzn.js → prod/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
  295. package/dist/prod/packages/shared-chunks/namespace_search-BfvzEQzN.js +134 -0
  296. package/dist/prod/packages/shared-chunks/normalize-D9jDJVGg.js +84 -0
  297. package/dist/prod/packages/shared-chunks/observers-Co4JALkS.js +199 -0
  298. package/dist/prod/packages/shared-chunks/on-C3ZQiUUD.js +228 -0
  299. package/dist/prod/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
  300. package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
  301. package/dist/prod/packages/shared-chunks/or-oTVMuHc8.js +91 -0
  302. package/dist/{dev/packages/shared-chunks/program-DfV0v8aa.js → prod/packages/shared-chunks/program-B7CWdS8W.js} +1 -2
  303. package/dist/{dev/packages/shared-chunks/program-context-sJz0oHOA.js → prod/packages/shared-chunks/program-context-CGMN-aQM.js} +3 -3
  304. package/dist/prod/packages/shared-chunks/property_get-hWJ0nGhW.js +122 -0
  305. package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-Dj5-ScWk.js} +4 -5
  306. package/dist/prod/packages/shared-chunks/props-fiqxqhAH.js +85 -0
  307. package/dist/prod/packages/shared-chunks/{reference-BNqcwZWH.js → reference-BshxG6wn.js} +3 -3
  308. package/dist/prod/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
  309. package/dist/{dev/packages/shared-chunks/rehydrate-builder-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-BKg2X6Lo.js} +7 -7
  310. package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-nx5-PsDW.js} +487 -12
  311. package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.js → prod/packages/shared-chunks/serialize-builder-BGbC30SN.js} +2 -10
  312. package/dist/prod/packages/shared-chunks/set_properties-oPyURk67.js +48 -0
  313. package/dist/prod/packages/shared-chunks/{setup-registry-Cs-7NIJU.js → setup-registry-TiaKLj5k.js} +35 -13
  314. package/dist/prod/packages/shared-chunks/spec-BXl1reqK.js +16 -0
  315. package/dist/prod/packages/shared-chunks/super-BBBjgF69.js +91 -0
  316. package/dist/prod/packages/shared-chunks/template-BRrQR6KS.js +16 -0
  317. package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
  318. package/dist/prod/packages/shared-chunks/textarea-CPKZ1c_O.js +455 -0
  319. package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-CffAABMz.js} +6 -4
  320. package/dist/prod/packages/shared-chunks/tracked-data-C83f5V5S.js +31 -0
  321. package/dist/prod/packages/shared-chunks/unique-id-CfHImDRV.js +32 -0
  322. package/dist/prod/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
  323. package/docs/data.json +1263 -1029
  324. package/package.json +1 -1
  325. package/types/stable/@ember/-internals/container/lib/registry.d.ts +1 -1
  326. package/types/stable/@ember/-internals/deprecations/index.d.ts +1 -1
  327. package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
  328. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
  329. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  330. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  331. package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
  332. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
  333. package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
  334. package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
  335. package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
  336. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
  337. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
  338. package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
  339. package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
  340. package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
  341. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
  342. package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
  343. package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
  344. package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
  345. package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
  346. package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
  347. package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
  348. package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
  349. package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
  350. package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
  351. package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
  352. package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
  353. package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
  354. package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
  355. package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
  356. package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
  357. package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
  358. package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
  359. package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
  360. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
  361. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
  362. package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
  363. package/types/stable/@ember/application/index.d.ts +5 -4
  364. package/types/stable/@ember/application/instance.d.ts +4 -3
  365. package/types/stable/@ember/application/namespace.d.ts +1 -1
  366. package/types/stable/@ember/array/proxy.d.ts +4 -3
  367. package/types/stable/@ember/component/helper.d.ts +1 -1
  368. package/types/stable/@ember/component/index.d.ts +6 -3
  369. package/types/stable/@ember/controller/index.d.ts +2 -2
  370. package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
  371. package/types/stable/@ember/engine/index.d.ts +3 -3
  372. package/types/stable/@ember/engine/instance.d.ts +4 -3
  373. package/types/stable/@ember/helper/index.d.ts +177 -5
  374. package/types/stable/@ember/modifier/index.d.ts +1 -1
  375. package/types/stable/@ember/object/-internals.d.ts +2 -2
  376. package/types/stable/@ember/object/compat.d.ts +2 -2
  377. package/types/stable/@ember/object/computed.d.ts +3 -1
  378. package/types/stable/@ember/object/evented.d.ts +1 -1
  379. package/types/stable/@ember/object/events.d.ts +1 -1
  380. package/types/stable/@ember/object/index.d.ts +8 -2
  381. package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
  382. package/types/stable/@ember/object/mixin.d.ts +1 -1
  383. package/types/stable/@ember/object/observers.d.ts +1 -1
  384. package/types/stable/@ember/object/proxy.d.ts +1 -1
  385. package/types/stable/@ember/reactive/collections.d.ts +6 -6
  386. package/types/stable/@ember/renderer/index.d.ts +2 -2
  387. package/types/stable/@ember/routing/index.d.ts +1 -1
  388. package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
  389. package/types/stable/@ember/routing/route.d.ts +2 -2
  390. package/types/stable/@ember/routing/router.d.ts +2 -2
  391. package/types/stable/@ember/service/index.d.ts +1 -1
  392. package/types/stable/@ember/template/index.d.ts +1 -1
  393. package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
  394. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
  395. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
  396. package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
  397. package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
  398. package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
  399. package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
  400. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
  401. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
  402. package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
  403. package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
  404. package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
  405. package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
  406. package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
  407. package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
  408. package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
  409. package/types/stable/@ember/template-factory/index.d.ts +1 -1
  410. package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
  411. package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
  412. package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
  413. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
  414. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
  415. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
  416. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
  417. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
  418. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
  419. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
  420. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
  421. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
  422. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
  423. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
  424. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
  425. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
  426. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
  427. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
  428. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
  429. package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
  430. package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
  431. package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
  432. package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
  433. package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
  434. package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
  435. package/types/stable/@glimmer/runtime/index.d.ts +7 -4
  436. package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
  437. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
  438. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
  439. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
  440. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
  441. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
  442. package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
  443. package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
  444. package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
  445. package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
  446. package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
  447. package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
  448. package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
  449. package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
  450. package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
  451. package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
  452. package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
  453. package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
  454. package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
  455. package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
  456. package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
  457. package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
  458. package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
  459. package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
  460. package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
  461. package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
  462. package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
  463. package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
  464. package/types/stable/@glimmer/tracking/index.d.ts +2 -1
  465. package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
  466. package/types/stable/index.d.ts +7 -0
  467. package/dist/dev/packages/shared-chunks/constants-BbdWMvgs.js +0 -213
  468. package/dist/dev/packages/shared-chunks/dynamic-CgX8M02_.js +0 -3823
  469. package/dist/dev/packages/shared-chunks/element-builder-BpJIoi99.js +0 -404
  470. package/dist/dev/packages/shared-chunks/index-RzG0Jvjx.js +0 -6306
  471. package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
  472. package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
  473. package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
  474. package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
  475. package/dist/prod/packages/shared-chunks/constants-DThhT5fu.js +0 -210
  476. package/dist/prod/packages/shared-chunks/index-r-Dz_hzt.js +0 -5931
  477. package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
  478. package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
  479. package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
  480. package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
  481. package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
@@ -0,0 +1,192 @@
1
+ import { a as createComputeRef, b as isInvokableRef, u as updateRef, v as valueForRef } from './reference-BoPB2LfI.js';
2
+ import { f as reifyPositional, g as buildUntouchableThis, h as check, e as reifyNamed } from './untouchable-this-cH6_N2LJ.js';
3
+ import { j as setInternalHelperManager } from './api-WvJPuo9z.js';
4
+
5
+ function internalHelper(helper) {
6
+ return setInternalHelperManager(helper, {});
7
+ }
8
+
9
+ /**
10
+ Use the `{{array}}` helper to create an array to pass as an option to your
11
+ components.
12
+
13
+ ```handlebars
14
+ <MyComponent @people={{array
15
+ 'Tom Dale'
16
+ 'Yehuda Katz'
17
+ this.myOtherPerson}}
18
+ />
19
+ ```
20
+ or
21
+ ```handlebars
22
+ {{my-component people=(array
23
+ 'Tom Dale'
24
+ 'Yehuda Katz'
25
+ this.myOtherPerson)
26
+ }}
27
+ ```
28
+
29
+ Would result in an object such as:
30
+
31
+ ```js
32
+ ['Tom Dale', 'Yehuda Katz', this.get('myOtherPerson')]
33
+ ```
34
+
35
+ Where the 3rd item in the array is bound to updates of the `myOtherPerson` property.
36
+
37
+ @method array
38
+ @param {Array} options
39
+ @return {Array} Array
40
+ @public
41
+ */
42
+
43
+ const array = internalHelper(({
44
+ positional
45
+ }) => {
46
+ return createComputeRef(() => reifyPositional(positional), null, 'array');
47
+ });
48
+
49
+ const context = buildUntouchableThis('`fn` helper');
50
+
51
+ /**
52
+ The `fn` helper allows you to ensure a function that you are passing off
53
+ to another component, helper, or modifier has access to arguments that are
54
+ available in the template.
55
+
56
+ For example, if you have an `each` helper looping over a number of items, you
57
+ may need to pass a function that expects to receive the item as an argument
58
+ to a component invoked within the loop. Here's how you could use the `fn`
59
+ helper to pass both the function and its arguments together:
60
+
61
+ ```app/templates/components/items-listing.hbs
62
+ {{#each @items as |item|}}
63
+ <DisplayItem @item=item @select={{fn this.handleSelected item}} />
64
+ {{/each}}
65
+ ```
66
+
67
+ ```app/components/items-list.js
68
+ import Component from '@glimmer/component';
69
+ import { action } from '@ember/object';
70
+
71
+ export default class ItemsList extends Component {
72
+ handleSelected = (item) => {
73
+ // ...snip...
74
+ }
75
+ }
76
+ ```
77
+
78
+ In this case the `display-item` component will receive a normal function
79
+ that it can invoke. When it invokes the function, the `handleSelected`
80
+ function will receive the `item` and any arguments passed, thanks to the
81
+ `fn` helper.
82
+
83
+ Let's take look at what that means in a couple circumstances:
84
+
85
+ - When invoked as `this.args.select()` the `handleSelected` function will
86
+ receive the `item` from the loop as its first and only argument.
87
+ - When invoked as `this.args.select('foo')` the `handleSelected` function
88
+ will receive the `item` from the loop as its first argument and the
89
+ string `'foo'` as its second argument.
90
+
91
+ In the example above, we used an arrow function to ensure that
92
+ `handleSelected` is properly bound to the `items-list`, but let's explore what
93
+ happens if we left out the arrow function:
94
+
95
+ ```app/components/items-list.js
96
+ import Component from '@glimmer/component';
97
+
98
+ export default class ItemsList extends Component {
99
+ handleSelected(item) {
100
+ // ...snip...
101
+ }
102
+ }
103
+ ```
104
+
105
+ In this example, when `handleSelected` is invoked inside the `display-item`
106
+ component, it will **not** have access to the component instance. In other
107
+ words, it will have no `this` context, so please make sure your functions
108
+ are bound (via an arrow function or other means) before passing into `fn`!
109
+
110
+ See also [partial application](https://en.wikipedia.org/wiki/Partial_application).
111
+
112
+ @method fn
113
+ @public
114
+ */
115
+ const fn = internalHelper(({
116
+ positional
117
+ }) => {
118
+ let callbackRef = check(positional[0]);
119
+ return createComputeRef(() => {
120
+ return (...invocationArgs) => {
121
+ let [fn, ...args] = reifyPositional(positional);
122
+ assertCallbackIsFn(callbackRef);
123
+ if (isInvokableRef(callbackRef)) {
124
+ let value = args.length > 0 ? args[0] : invocationArgs[0];
125
+ return void updateRef(callbackRef, value);
126
+ } else {
127
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- @fixme
128
+ return fn.call(context, ...args, ...invocationArgs);
129
+ }
130
+ };
131
+ }, null, 'fn');
132
+ });
133
+ function assertCallbackIsFn(callbackRef) {
134
+ if (!(callbackRef && (isInvokableRef(callbackRef) || typeof valueForRef(callbackRef) === 'function'))) {
135
+ throw new Error(`You must pass a function as the \`fn\` helper's first argument, you passed ${callbackRef ? valueForRef(callbackRef) : callbackRef}. While rendering:\n\n${callbackRef?.debugLabel}`);
136
+ }
137
+ }
138
+
139
+ /**
140
+ Use the `{{hash}}` helper to create a hash to pass as an option to your
141
+ components. This is specially useful for contextual components where you can
142
+ just yield a hash:
143
+
144
+ ```handlebars
145
+ {{yield (hash
146
+ name='Sarah'
147
+ title=office
148
+ )}}
149
+ ```
150
+
151
+ Would result in an object such as:
152
+
153
+ ```js
154
+ { name: 'Sarah', title: this.get('office') }
155
+ ```
156
+
157
+ Where the `title` is bound to updates of the `office` property.
158
+
159
+ Note that the hash is an empty object with no prototype chain, therefore
160
+ common methods like `toString` are not available in the resulting hash.
161
+ If you need to use such a method, you can use the `call` or `apply`
162
+ approach:
163
+
164
+ ```js
165
+ function toString(obj) {
166
+ return Object.prototype.toString.apply(obj);
167
+ }
168
+ ```
169
+
170
+ @method hash
171
+ @param {Object} options
172
+ @return {Object} Hash
173
+ @public
174
+ */
175
+ const hash = internalHelper(({
176
+ named
177
+ }) => {
178
+ let ref = createComputeRef(() => {
179
+ return reifyNamed(named);
180
+ }, null, 'hash');
181
+
182
+ // Setup the children so that templates can bypass getting the value of
183
+ // the reference and treat children lazily
184
+ let children = new Map();
185
+ for (let name in named) {
186
+ children.set(name, named[name]);
187
+ }
188
+ ref.children = children;
189
+ return ref;
190
+ });
191
+
192
+ export { array as a, fn as f, hash as h, internalHelper as i };
@@ -0,0 +1,314 @@
1
+ import { setOwner } from '../@ember/-internals/owner/index.js';
2
+ import { FrameworkObject } from '../@ember/object/-internals.js';
3
+ import { g as getDebugName } from './get-debug-name-CSniHBsn.js';
4
+ import '../@ember/debug/index.js';
5
+ import { join } from '../@ember/runloop/index.js';
6
+ import { a as getInternalHelperManager, i as helperCapabilities } from './api-WvJPuo9z.js';
7
+ import { b as setHelperManager } from './api-AYt3zE12.js';
8
+ import { m as createTag, D as DIRTY_TAG, k as consumeTag } from './cache-B7dqAS38.js';
9
+ import { assert } from '../@ember/debug/lib/assert.js';
10
+
11
+ /**
12
+ @module @ember/component
13
+ */
14
+
15
+ const RECOMPUTE_TAG = Symbol('RECOMPUTE_TAG');
16
+
17
+ // Signature type utilities
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
20
+
21
+ // Implements Ember's `Factory` interface and tags it for narrowing/checking.
22
+
23
+ const IS_CLASSIC_HELPER = Symbol('IS_CLASSIC_HELPER');
24
+
25
+ // A zero-runtime-overhead private symbol to use in branding the component to
26
+ // preserve its type parameter.
27
+
28
+ /**
29
+ Ember Helpers are functions that can compute values, and are used in templates.
30
+ For example, this code calls a helper named `format-currency`:
31
+
32
+ ```app/templates/application.hbs
33
+ <Cost @cents={{230}} />
34
+ ```
35
+
36
+ ```app/components/cost.hbs
37
+ <div>{{format-currency @cents currency="$"}}</div>
38
+ ```
39
+
40
+ Additionally a helper can be called as a nested helper.
41
+ In this example, we show the formatted currency value if the `showMoney`
42
+ named argument is truthy.
43
+
44
+ ```handlebars
45
+ {{if @showMoney (format-currency @cents currency="$")}}
46
+ ```
47
+
48
+ Helpers defined using a class must provide a `compute` function. For example:
49
+
50
+ ```app/helpers/format-currency.js
51
+ import Helper from '@ember/component/helper';
52
+
53
+ export default class extends Helper {
54
+ compute([cents], { currency }) {
55
+ return `${currency}${cents * 0.01}`;
56
+ }
57
+ }
58
+ ```
59
+
60
+ Each time the input to a helper changes, the `compute` function will be
61
+ called again.
62
+
63
+ As instances, these helpers also have access to the container and will accept
64
+ injected dependencies.
65
+
66
+ Additionally, class helpers can call `recompute` to force a new computation.
67
+
68
+ @class Helper
69
+ @extends CoreObject
70
+ @public
71
+ @since 1.13.0
72
+ */
73
+ // ESLint doesn't understand declaration merging.
74
+ /* eslint-disable import/export */
75
+
76
+ class Helper extends FrameworkObject {
77
+ static isHelperFactory = true;
78
+ static [IS_CLASSIC_HELPER] = true;
79
+
80
+ // `packages/ember/index.js` was setting `Helper.helper`. This seems like
81
+ // a bad idea and probably not something we want. We've moved that definition
82
+ // here, but it should definitely be reviewed and probably removed.
83
+ /** @deprecated */
84
+ static helper = helper;
85
+
86
+ // SAFETY: this is initialized in `init`, rather than `constructor`. It is
87
+ // safe to `declare` like this *if and only if* nothing uses the constructor
88
+ // directly in this class, since nothing else can run before `init`.
89
+
90
+ // SAFETY: this has no runtime existence whatsoever; it is a "phantom type"
91
+ // here to preserve the type param.
92
+
93
+ init(properties) {
94
+ super.init(properties);
95
+ this[RECOMPUTE_TAG] = createTag();
96
+ (!(this.compute) && assert('expected compute to be defined', this.compute));
97
+ }
98
+
99
+ /**
100
+ On a class-based helper, it may be useful to force a recomputation of that
101
+ helpers value. This is akin to `rerender` on a component.
102
+ In most cases, `recompute` is not needed because accessing tracked
103
+ properties in `compute` will automatically re-run the helper when
104
+ those properties change. Use `recompute` only when you need to
105
+ trigger a recomputation imperatively, for example in response to an
106
+ external event:
107
+ ```app/helpers/current-time.js
108
+ import Helper from '@ember/component/helper';
109
+ export default class CurrentTimeHelper extends Helper {
110
+ interval = null;
111
+ compute() {
112
+ return new Date().toLocaleTimeString();
113
+ }
114
+ constructor() {
115
+ super(...arguments);
116
+ this.interval = setInterval(() => this.recompute(), 1000);
117
+ }
118
+ willDestroy() {
119
+ super.willDestroy();
120
+ clearInterval(this.interval);
121
+ }
122
+ }
123
+ ```
124
+ @method recompute
125
+ @public
126
+ @since 1.13.0
127
+ */
128
+ recompute() {
129
+ join(() => DIRTY_TAG(this[RECOMPUTE_TAG]));
130
+ }
131
+ }
132
+ /* eslint-enable import/export */
133
+
134
+ function isClassicHelper(obj) {
135
+ return obj[IS_CLASSIC_HELPER] === true;
136
+ }
137
+ class ClassicHelperManager {
138
+ capabilities = helperCapabilities('3.23', {
139
+ hasValue: true,
140
+ hasDestroyable: true
141
+ });
142
+ ownerInjection;
143
+ constructor(owner) {
144
+ let ownerInjection = {};
145
+ setOwner(ownerInjection, owner);
146
+ this.ownerInjection = ownerInjection;
147
+ }
148
+ createHelper(definition, args) {
149
+ let instance = isFactoryManager(definition) ? definition.create() : definition.create(this.ownerInjection);
150
+ (!(function (instance) {
151
+ if (instance !== null && typeof instance === 'object') {
152
+ let cast = instance;
153
+ return typeof cast.compute === 'function' && typeof cast.destroy === 'function';
154
+ }
155
+ return false;
156
+ }(instance)) && assert('expected HelperInstance', function (instance) {
157
+ if (instance !== null && typeof instance === 'object') {
158
+ let cast = instance;
159
+ return typeof cast.compute === 'function' && typeof cast.destroy === 'function';
160
+ }
161
+ return false;
162
+ }(instance)));
163
+ return {
164
+ instance,
165
+ args
166
+ };
167
+ }
168
+ getDestroyable({
169
+ instance
170
+ }) {
171
+ return instance;
172
+ }
173
+ getValue({
174
+ instance,
175
+ args
176
+ }) {
177
+ let {
178
+ positional,
179
+ named
180
+ } = args;
181
+ let ret = instance.compute(positional, named);
182
+ consumeTag(instance[RECOMPUTE_TAG]);
183
+ return ret;
184
+ }
185
+ getDebugName(definition) {
186
+ return getDebugName((definition.class || definition)['prototype']);
187
+ }
188
+ }
189
+ function isFactoryManager(obj) {
190
+ return obj != null && 'class' in obj;
191
+ }
192
+ setHelperManager(owner => {
193
+ return new ClassicHelperManager(owner);
194
+ }, Helper);
195
+ const CLASSIC_HELPER_MANAGER = getInternalHelperManager(Helper);
196
+
197
+ ///////////
198
+
199
+ class Wrapper {
200
+ isHelperFactory = true;
201
+ constructor(compute) {
202
+ this.compute = compute;
203
+ }
204
+ create() {
205
+ // needs new instance or will leak containers
206
+ return {
207
+ compute: this.compute
208
+ };
209
+ }
210
+ }
211
+ class SimpleClassicHelperManager {
212
+ capabilities = helperCapabilities('3.23', {
213
+ hasValue: true
214
+ });
215
+ createHelper(definition, args) {
216
+ return () => definition.compute.call(null, args.positional, args.named);
217
+ }
218
+ getValue(fn) {
219
+ return fn();
220
+ }
221
+ getDebugName(definition) {
222
+ return getDebugName(definition.compute);
223
+ }
224
+ }
225
+ const SIMPLE_CLASSIC_HELPER_MANAGER = new SimpleClassicHelperManager();
226
+ setHelperManager(() => SIMPLE_CLASSIC_HELPER_MANAGER, Wrapper.prototype);
227
+
228
+ /*
229
+ Function-based helpers need to present with a constructor signature so that
230
+ type parameters can be preserved when `helper()` is passed a generic function
231
+ (this is particularly key for checking helper invocations with Glint).
232
+ Accordingly, we define an abstract class and declaration merge it with the
233
+ interface; this inherently provides an `abstract` constructor. Since it is
234
+ `abstract`, it is not callable, which is important since end users should not
235
+ be able to do `let myHelper = helper(someFn); new myHelper()`.
236
+ */
237
+
238
+ /**
239
+ * The type of a function-based helper.
240
+ *
241
+ * @note This is *not* user-constructible: it is exported only so that the type
242
+ * returned by the `helper` function can be named (and indeed can be exported
243
+ * like `export default helper(...)` safely).
244
+ */
245
+ // Making `FunctionBasedHelper` an alias this way allows callers to name it in
246
+ // terms meaningful to *them*, while preserving the type behavior described on
247
+ // the `abstract class FunctionBasedHelperInstance` below.
248
+
249
+ // This abstract class -- specifically, its `protected abstract __concrete__`
250
+ // member -- prevents subclasses from doing `class X extends helper(..)`, since
251
+ // that is an error at runtime. While it is rare that people would type that, it
252
+ // is not impossible and we use this to give them early signal via the types for
253
+ // a behavior which will break (and in a somewhat inscrutable way!) at runtime.
254
+ //
255
+ // This is needful because we lie about what this actually is for Glint's sake:
256
+ // a function-based helper returns a `Factory<SimpleHelper>`, which is designed
257
+ // to be "opaque" from a consumer's POV, i.e. not user-callable or constructible
258
+ // but only useable in a template (or via `invokeHelper()` which also treats it
259
+ // as a fully opaque `object` from a type POV). But Glint needs a `Helper<S>` to
260
+ // make it work the same way as class-based helpers. (Note that this does not
261
+ // hold for plain functions as helpers, which it can handle distinctly.) This
262
+ // signature thus makes it so that the item is usable *as* a `Helper` in Glint,
263
+ // but without letting end users treat it as a helper class instance.
264
+
265
+ /**
266
+ In many cases it is not necessary to use the full `Helper` class.
267
+ The `helper` method create pure-function helpers without instances.
268
+ For example:
269
+
270
+ ```app/helpers/format-currency.js
271
+ import { helper } from '@ember/component/helper';
272
+
273
+ export default helper(function([cents], {currency}) {
274
+ return `${currency}${cents * 0.01}`;
275
+ });
276
+ ```
277
+
278
+ @static
279
+ @param {Function} helper The helper function
280
+ @method helper
281
+ @for @ember/component/helper
282
+ @public
283
+ @since 1.13.0
284
+ */
285
+ // This overload allows users to write types directly on the callback passed to
286
+ // the `helper` function and infer the resulting type correctly.
287
+
288
+ // This overload allows users to provide a `Signature` type explicitly at the
289
+ // helper definition site, e.g. `helper<Sig>((pos, named) => {...})`. **Note:**
290
+ // this overload must appear second, since TS' inference engine will not
291
+ // correctly infer the type of `S` here from the types on the supplied callback.
292
+
293
+ function helper(helperFn) {
294
+ // SAFETY: this is completely lies, in two ways:
295
+ //
296
+ // 1. `Wrapper` is a `Factory<SimpleHelper<S>>`, but from the perspective of
297
+ // any external callers (i.e. Ember *users*), it is quite important that
298
+ // the `Factory` relationship be hidden, because it is not public API for
299
+ // an end user to call `.create()` on a helper created this way. Instead,
300
+ // we provide them an `abstract new` signature (which means it cannot be
301
+ // directly constructed by calling `new` on it) and which does not have the
302
+ // `.create()` signature on it anymore.
303
+ //
304
+ // 2. The produced type here ends up being a subtype of `Helper`, which is not
305
+ // strictly true. This is necessary for the sake of Glint, which provides
306
+ // its information by way of a "declaration merge" with `Helper<S>` in the
307
+ // case of items produced by `helper()`.
308
+ //
309
+ // Long-term, this entire construct can go away in favor of deprecating the
310
+ // `helper()` invocation in favor of using plain functions.
311
+ return new Wrapper(helperFn);
312
+ }
313
+
314
+ export { CLASSIC_HELPER_MANAGER as C, Helper as H, helper as h, isClassicHelper as i };