ember-source 4.10.0-beta.2 → 4.11.0-alpha.2

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 (361) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/build-metadata.json +3 -3
  3. package/dist/ember-template-compiler.js +147 -172
  4. package/dist/ember-template-compiler.map +1 -1
  5. package/dist/ember-testing.js +129 -6
  6. package/dist/ember-testing.map +1 -1
  7. package/dist/ember.debug.js +334 -314
  8. package/dist/ember.debug.map +1 -1
  9. package/dist/header/license.js +1 -1
  10. package/dist/packages/@ember/-internals/glimmer/index.js +60 -59
  11. package/dist/packages/@ember/-internals/metal/index.js +6 -6
  12. package/dist/packages/@ember/-internals/{utils/types.js → utility-types/index.js} +0 -0
  13. package/dist/packages/@ember/-internals/utils/index.js +3 -137
  14. package/dist/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -2
  15. package/dist/packages/@ember/-internals/views/lib/views/states/default.js +1 -2
  16. package/dist/packages/@ember/-internals/views/lib/views/states/destroying.js +2 -3
  17. package/dist/packages/@ember/-internals/views/lib/views/states/in_dom.js +1 -2
  18. package/dist/packages/@ember/array/-internals.js +8 -0
  19. package/dist/packages/@ember/array/index.js +2 -2
  20. package/dist/packages/@ember/array/lib/make-array.js +10 -0
  21. package/dist/packages/@ember/canary-features/index.js +0 -4
  22. package/dist/packages/@ember/debug/data-adapter.js +16 -16
  23. package/dist/packages/@ember/debug/index.js +2 -3
  24. package/dist/packages/@ember/debug/lib/inspect.js +117 -0
  25. package/dist/packages/@ember/engine/instance.js +1 -2
  26. package/dist/packages/@ember/instrumentation/index.js +2 -8
  27. package/dist/packages/@ember/object/core.js +2 -1
  28. package/dist/packages/@ember/object/mixin.js +11 -2
  29. package/dist/packages/@ember/object/promise-proxy-mixin.js +1 -2
  30. package/dist/packages/@ember/owner/index.js +2 -2
  31. package/dist/packages/@ember/routing/lib/utils.js +1 -2
  32. package/dist/packages/@ember/routing/router.js +36 -37
  33. package/dist/packages/ember/index.js +3 -3
  34. package/dist/packages/ember/version.js +1 -1
  35. package/dist/packages/ember-testing/lib/adapters/qunit.js +1 -1
  36. package/docs/data.json +252 -253
  37. package/package.json +19 -19
  38. package/types/preview/@ember/controller/index.d.ts +1 -1
  39. package/types/preview/@ember/engine/-private/container-proxy-mixin.d.ts +1 -1
  40. package/types/preview/@ember/engine/-private/registry-proxy-mixin.d.ts +1 -1
  41. package/types/preview/@ember/error/index.d.ts +2 -2
  42. package/types/preview/ember/index.d.ts +1 -1
  43. package/types/preview/index.d.ts +0 -2
  44. package/types/publish.mjs +314 -294
  45. package/types/stable/@ember/-internals/bootstrap/index.d.ts +3 -0
  46. package/types/stable/@ember/-internals/browser-environment/index.d.ts +9 -0
  47. package/types/stable/@ember/-internals/browser-environment/lib/has-dom.d.ts +4 -0
  48. package/types/stable/@ember/-internals/container/index.d.ts +4 -0
  49. package/types/stable/@ember/-internals/container/lib/container.d.ts +164 -0
  50. package/types/stable/@ember/-internals/container/lib/registry.d.ts +292 -0
  51. package/types/stable/@ember/-internals/environment/index.d.ts +5 -0
  52. package/types/stable/@ember/-internals/environment/lib/context.d.ts +10 -0
  53. package/types/stable/@ember/-internals/environment/lib/env.d.ts +153 -0
  54. package/types/stable/@ember/-internals/environment/lib/global.d.ts +4 -0
  55. package/types/stable/@ember/-internals/error-handling/index.d.ts +9 -0
  56. package/types/stable/@ember/-internals/glimmer/index.d.ts +456 -0
  57. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +47 -0
  58. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +41 -0
  59. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +51 -0
  60. package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +23 -0
  61. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +840 -0
  62. package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +37 -0
  63. package/types/stable/@ember/-internals/glimmer/lib/components/input.d.ts +4 -0
  64. package/types/stable/@ember/-internals/glimmer/lib/components/internal.d.ts +48 -0
  65. package/types/stable/@ember/-internals/glimmer/lib/components/link-to.d.ts +4 -0
  66. package/types/stable/@ember/-internals/glimmer/lib/components/textarea.d.ts +4 -0
  67. package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +4 -0
  68. package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +11 -0
  69. package/types/stable/@ember/-internals/glimmer/lib/glimmer-component-docs.d.ts +387 -0
  70. package/types/stable/@ember/-internals/glimmer/lib/glimmer-tracking-docs.d.ts +249 -0
  71. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +160 -0
  72. package/types/stable/@ember/-internals/glimmer/lib/helpers/-disallow-dynamic-resolution.d.ts +4 -0
  73. package/types/stable/@ember/-internals/glimmer/lib/helpers/-in-element-null-check.d.ts +4 -0
  74. package/types/stable/@ember/-internals/glimmer/lib/helpers/-normalize-class.d.ts +4 -0
  75. package/types/stable/@ember/-internals/glimmer/lib/helpers/-resolve.d.ts +4 -0
  76. package/types/stable/@ember/-internals/glimmer/lib/helpers/-track-array.d.ts +9 -0
  77. package/types/stable/@ember/-internals/glimmer/lib/helpers/action.d.ts +268 -0
  78. package/types/stable/@ember/-internals/glimmer/lib/helpers/array.d.ts +40 -0
  79. package/types/stable/@ember/-internals/glimmer/lib/helpers/component.d.ts +148 -0
  80. package/types/stable/@ember/-internals/glimmer/lib/helpers/concat.d.ts +27 -0
  81. package/types/stable/@ember/-internals/glimmer/lib/helpers/each-in.d.ts +160 -0
  82. package/types/stable/@ember/-internals/glimmer/lib/helpers/fn.d.ts +72 -0
  83. package/types/stable/@ember/-internals/glimmer/lib/helpers/get.d.ts +99 -0
  84. package/types/stable/@ember/-internals/glimmer/lib/helpers/hash.d.ts +43 -0
  85. package/types/stable/@ember/-internals/glimmer/lib/helpers/helper.d.ts +42 -0
  86. package/types/stable/@ember/-internals/glimmer/lib/helpers/if-unless.d.ts +181 -0
  87. package/types/stable/@ember/-internals/glimmer/lib/helpers/internal-helper.d.ts +5 -0
  88. package/types/stable/@ember/-internals/glimmer/lib/helpers/log.d.ts +18 -0
  89. package/types/stable/@ember/-internals/glimmer/lib/helpers/modifier.d.ts +41 -0
  90. package/types/stable/@ember/-internals/glimmer/lib/helpers/mut.d.ts +77 -0
  91. package/types/stable/@ember/-internals/glimmer/lib/helpers/page-title.d.ts +19 -0
  92. package/types/stable/@ember/-internals/glimmer/lib/helpers/readonly.d.ts +119 -0
  93. package/types/stable/@ember/-internals/glimmer/lib/helpers/unbound.d.ts +34 -0
  94. package/types/stable/@ember/-internals/glimmer/lib/helpers/unique-id.d.ts +7 -0
  95. package/types/stable/@ember/-internals/glimmer/lib/modifiers/action.d.ts +30 -0
  96. package/types/stable/@ember/-internals/glimmer/lib/modifiers/internal.d.ts +33 -0
  97. package/types/stable/@ember/-internals/glimmer/lib/modifiers/on.d.ts +94 -0
  98. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +96 -0
  99. package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +16 -0
  100. package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +5 -0
  101. package/types/stable/@ember/-internals/glimmer/lib/syntax/in-element.d.ts +46 -0
  102. package/types/stable/@ember/-internals/glimmer/lib/syntax/let.d.ts +54 -0
  103. package/types/stable/@ember/-internals/glimmer/lib/syntax/mount.d.ts +43 -0
  104. package/types/stable/@ember/-internals/glimmer/lib/syntax/outlet.d.ts +27 -0
  105. package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +4 -0
  106. package/types/stable/@ember/-internals/glimmer/lib/template.d.ts +6 -0
  107. package/types/stable/@ember/-internals/glimmer/lib/template_registry.d.ts +11 -0
  108. package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +10 -0
  109. package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +31 -0
  110. package/types/stable/@ember/-internals/glimmer/lib/utils/debug-render-message.d.ts +4 -0
  111. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +5 -0
  112. package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +19 -0
  113. package/types/stable/@ember/-internals/glimmer/lib/utils/outlet.d.ts +51 -0
  114. package/types/stable/@ember/-internals/glimmer/lib/utils/process-args.d.ts +4 -0
  115. package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +3 -0
  116. package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +61 -0
  117. package/types/stable/@ember/-internals/glimmer/lib/utils/to-bool.d.ts +3 -0
  118. package/types/stable/@ember/-internals/glimmer/lib/views/outlet.d.ts +34 -0
  119. package/types/stable/@ember/-internals/meta/index.d.ts +3 -0
  120. package/types/stable/@ember/-internals/meta/lib/meta.d.ts +174 -0
  121. package/types/stable/@ember/-internals/metal/index.d.ts +26 -0
  122. package/types/stable/@ember/-internals/metal/lib/alias.d.ts +22 -0
  123. package/types/stable/@ember/-internals/metal/lib/array.d.ts +18 -0
  124. package/types/stable/@ember/-internals/metal/lib/array_events.d.ts +6 -0
  125. package/types/stable/@ember/-internals/metal/lib/cache.d.ts +121 -0
  126. package/types/stable/@ember/-internals/metal/lib/cached.d.ts +3 -0
  127. package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +8 -0
  128. package/types/stable/@ember/-internals/metal/lib/change_event.d.ts +3 -0
  129. package/types/stable/@ember/-internals/metal/lib/computed.d.ts +484 -0
  130. package/types/stable/@ember/-internals/metal/lib/computed_cache.d.ts +3 -0
  131. package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +64 -0
  132. package/types/stable/@ember/-internals/metal/lib/dependent_keys.d.ts +2 -0
  133. package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +18 -0
  134. package/types/stable/@ember/-internals/metal/lib/each_proxy_events.d.ts +5 -0
  135. package/types/stable/@ember/-internals/metal/lib/events.d.ts +91 -0
  136. package/types/stable/@ember/-internals/metal/lib/expand_properties.d.ts +33 -0
  137. package/types/stable/@ember/-internals/metal/lib/get_properties.d.ts +36 -0
  138. package/types/stable/@ember/-internals/metal/lib/injected_property.d.ts +25 -0
  139. package/types/stable/@ember/-internals/metal/lib/libraries.d.ts +31 -0
  140. package/types/stable/@ember/-internals/metal/lib/namespace_search.d.ts +19 -0
  141. package/types/stable/@ember/-internals/metal/lib/observer.d.ts +54 -0
  142. package/types/stable/@ember/-internals/metal/lib/path_cache.d.ts +3 -0
  143. package/types/stable/@ember/-internals/metal/lib/properties.d.ts +58 -0
  144. package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +59 -0
  145. package/types/stable/@ember/-internals/metal/lib/property_get.d.ts +44 -0
  146. package/types/stable/@ember/-internals/metal/lib/property_set.d.ts +52 -0
  147. package/types/stable/@ember/-internals/metal/lib/set_properties.d.ts +32 -0
  148. package/types/stable/@ember/-internals/metal/lib/tags.d.ts +7 -0
  149. package/types/stable/@ember/-internals/metal/lib/tracked.d.ts +78 -0
  150. package/types/stable/@ember/-internals/overrides/index.d.ts +3 -0
  151. package/types/stable/@ember/-internals/owner/index.d.ts +646 -0
  152. package/types/stable/@ember/-internals/routing/index.d.ts +3 -0
  153. package/types/stable/@ember/-internals/runtime/index.d.ts +11 -0
  154. package/types/stable/@ember/-internals/runtime/lib/ext/rsvp.d.ts +5 -0
  155. package/types/stable/@ember/-internals/runtime/lib/mixins/-proxy.d.ts +34 -0
  156. package/types/stable/@ember/-internals/runtime/lib/mixins/action_handler.d.ts +23 -0
  157. package/types/stable/@ember/-internals/runtime/lib/mixins/comparable.d.ts +22 -0
  158. package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +22 -0
  159. package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +22 -0
  160. package/types/stable/@ember/-internals/runtime/lib/mixins/target_action_support.d.ts +29 -0
  161. package/types/stable/@ember/-internals/utility-types/index.d.ts +10 -0
  162. package/types/stable/@ember/-internals/utils/index.d.ts +16 -0
  163. package/types/stable/@ember/-internals/utils/lib/cache.d.ts +14 -0
  164. package/types/stable/@ember/-internals/utils/lib/dictionary.d.ts +7 -0
  165. package/types/stable/@ember/-internals/utils/lib/get-debug-name.d.ts +4 -0
  166. package/types/stable/@ember/-internals/utils/lib/guid.d.ts +60 -0
  167. package/types/stable/@ember/-internals/utils/lib/intern.d.ts +42 -0
  168. package/types/stable/@ember/-internals/utils/lib/invoke.d.ts +24 -0
  169. package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +5 -0
  170. package/types/stable/@ember/-internals/utils/lib/lookup-descriptor.d.ts +3 -0
  171. package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +6 -0
  172. package/types/stable/@ember/-internals/utils/lib/name.d.ts +4 -0
  173. package/types/stable/@ember/-internals/utils/lib/spec.d.ts +14 -0
  174. package/types/stable/@ember/-internals/utils/lib/super.d.ts +31 -0
  175. package/types/stable/@ember/-internals/utils/lib/symbol.d.ts +5 -0
  176. package/types/stable/@ember/-internals/utils/lib/to-string.d.ts +3 -0
  177. package/types/stable/@ember/-internals/views/index.d.ts +13 -0
  178. package/types/stable/@ember/-internals/views/lib/compat/attrs.d.ts +3 -0
  179. package/types/stable/@ember/-internals/views/lib/compat/fallback-view-registry.d.ts +6 -0
  180. package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +5 -0
  181. package/types/stable/@ember/-internals/views/lib/mixins/action_support.d.ts +13 -0
  182. package/types/stable/@ember/-internals/views/lib/mixins/child_views_support.d.ts +13 -0
  183. package/types/stable/@ember/-internals/views/lib/mixins/class_names_support.d.ts +14 -0
  184. package/types/stable/@ember/-internals/views/lib/mixins/view_state_support.d.ts +13 -0
  185. package/types/stable/@ember/-internals/views/lib/mixins/view_support.d.ts +25 -0
  186. package/types/stable/@ember/-internals/views/lib/system/action_manager.d.ts +11 -0
  187. package/types/stable/@ember/-internals/views/lib/system/event_dispatcher.d.ts +117 -0
  188. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +94 -0
  189. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +60 -0
  190. package/types/stable/@ember/-internals/views/lib/views/states/default.d.ts +5 -0
  191. package/types/stable/@ember/-internals/views/lib/views/states/destroying.d.ts +5 -0
  192. package/types/stable/@ember/-internals/views/lib/views/states/has_element.d.ts +5 -0
  193. package/types/stable/@ember/-internals/views/lib/views/states/in_dom.d.ts +5 -0
  194. package/types/stable/@ember/-internals/views/lib/views/states/pre_render.d.ts +11 -0
  195. package/types/stable/@ember/-internals/views/lib/views/states.d.ts +25 -0
  196. package/types/stable/@ember/application/index.d.ts +814 -0
  197. package/types/stable/@ember/application/instance.d.ts +288 -0
  198. package/types/stable/@ember/application/lib/lazy_load.d.ts +38 -0
  199. package/types/stable/@ember/application/namespace.d.ts +38 -0
  200. package/types/stable/@ember/array/-internals.d.ts +5 -0
  201. package/types/stable/@ember/array/index.d.ts +1457 -0
  202. package/types/stable/@ember/array/lib/make-array.d.ts +34 -0
  203. package/types/stable/@ember/array/mutable.d.ts +3 -0
  204. package/types/stable/@ember/array/proxy.d.ts +158 -0
  205. package/types/stable/@ember/canary-features/index.d.ts +49 -0
  206. package/types/stable/@ember/component/helper.d.ts +3 -0
  207. package/types/stable/@ember/component/index.d.ts +5 -0
  208. package/types/stable/@ember/component/template-only.d.ts +33 -0
  209. package/types/stable/@ember/controller/index.d.ts +277 -0
  210. package/types/stable/@ember/debug/container-debug-adapter.d.ts +73 -0
  211. package/types/stable/@ember/debug/data-adapter.d.ts +325 -0
  212. package/types/stable/@ember/debug/index.d.ts +52 -0
  213. package/types/stable/@ember/debug/lib/capture-render-tree.d.ts +21 -0
  214. package/types/stable/@ember/debug/lib/deprecate.d.ts +72 -0
  215. package/types/stable/@ember/debug/lib/handlers.d.ts +14 -0
  216. package/types/stable/@ember/debug/lib/inspect.d.ts +20 -0
  217. package/types/stable/@ember/debug/lib/testing.d.ts +4 -0
  218. package/types/stable/@ember/debug/lib/warn.d.ts +14 -0
  219. package/types/stable/@ember/deprecated-features/index.d.ts +3 -0
  220. package/types/stable/@ember/destroyable/index.d.ts +237 -0
  221. package/types/stable/@ember/engine/index.d.ts +347 -0
  222. package/types/stable/@ember/engine/instance.d.ts +127 -0
  223. package/types/stable/@ember/engine/lib/engine-parent.d.ts +27 -0
  224. package/types/stable/@ember/enumerable/index.d.ts +19 -0
  225. package/types/stable/@ember/enumerable/mutable.d.ts +21 -0
  226. package/types/stable/@ember/error/index.d.ts +15 -0
  227. package/types/stable/@ember/helper/index.d.ts +314 -0
  228. package/types/stable/@ember/instrumentation/index.d.ts +127 -0
  229. package/types/stable/@ember/modifier/index.d.ts +5 -0
  230. package/types/stable/@ember/object/-internals.d.ts +9 -0
  231. package/types/stable/@ember/object/compat.d.ts +90 -0
  232. package/types/stable/@ember/object/computed.d.ts +5 -0
  233. package/types/stable/@ember/object/core.d.ts +638 -0
  234. package/types/stable/@ember/object/evented.d.ts +134 -0
  235. package/types/stable/@ember/object/events.d.ts +3 -0
  236. package/types/stable/@ember/object/index.d.ts +60 -0
  237. package/types/stable/@ember/object/internals.d.ts +3 -0
  238. package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +644 -0
  239. package/types/stable/@ember/object/lib/computed/reduce_computed_macros.d.ts +791 -0
  240. package/types/stable/@ember/object/mixin.d.ts +157 -0
  241. package/types/stable/@ember/object/observable.d.ts +383 -0
  242. package/types/stable/@ember/object/observers.d.ts +3 -0
  243. package/types/stable/@ember/object/promise-proxy-mixin.d.ts +167 -0
  244. package/types/stable/@ember/object/proxy.d.ts +88 -0
  245. package/types/stable/@ember/owner/index.d.ts +80 -0
  246. package/types/stable/@ember/polyfills/index.d.ts +4 -0
  247. package/types/stable/@ember/polyfills/lib/assign.d.ts +9 -0
  248. package/types/stable/@ember/renderer/index.d.ts +28 -0
  249. package/types/stable/@ember/routing/-internals.d.ts +11 -0
  250. package/types/stable/@ember/routing/auto-location.d.ts +149 -0
  251. package/types/stable/@ember/routing/hash-location.d.ts +113 -0
  252. package/types/stable/@ember/routing/history-location.d.ts +143 -0
  253. package/types/stable/@ember/routing/index.d.ts +3 -0
  254. package/types/stable/@ember/routing/lib/cache.d.ts +16 -0
  255. package/types/stable/@ember/routing/lib/controller_for.d.ts +15 -0
  256. package/types/stable/@ember/routing/lib/dsl.d.ts +52 -0
  257. package/types/stable/@ember/routing/lib/engines.d.ts +14 -0
  258. package/types/stable/@ember/routing/lib/generate_controller.d.ts +25 -0
  259. package/types/stable/@ember/routing/lib/location-utils.d.ts +31 -0
  260. package/types/stable/@ember/routing/lib/query_params.d.ts +7 -0
  261. package/types/stable/@ember/routing/lib/route-info.d.ts +3 -0
  262. package/types/stable/@ember/routing/lib/router_state.d.ts +13 -0
  263. package/types/stable/@ember/routing/lib/routing-service.d.ts +35 -0
  264. package/types/stable/@ember/routing/lib/utils.d.ts +36 -0
  265. package/types/stable/@ember/routing/location.d.ts +108 -0
  266. package/types/stable/@ember/routing/none-location.d.ts +83 -0
  267. package/types/stable/@ember/routing/route-info.d.ts +125 -0
  268. package/types/stable/@ember/routing/route.d.ts +1456 -0
  269. package/types/stable/@ember/routing/router-service.d.ts +588 -0
  270. package/types/stable/@ember/routing/router.d.ts +431 -0
  271. package/types/stable/@ember/routing/transition.d.ts +180 -0
  272. package/types/stable/@ember/runloop/index.d.ts +657 -0
  273. package/types/stable/@ember/service/index.d.ts +82 -0
  274. package/types/stable/@ember/string/index.d.ts +152 -0
  275. package/types/stable/@ember/string/lib/string_registry.d.ts +9 -0
  276. package/types/stable/@ember/template/index.d.ts +3 -0
  277. package/types/stable/@ember/template-compilation/index.d.ts +4 -0
  278. package/types/stable/@ember/template-factory/index.d.ts +3 -0
  279. package/types/stable/@ember/test/adapter.d.ts +4 -0
  280. package/types/stable/@ember/test/index.d.ts +8 -0
  281. package/types/stable/@ember/utils/index.d.ts +9 -0
  282. package/types/stable/@ember/utils/lib/compare.d.ts +54 -0
  283. package/types/stable/@ember/utils/lib/is-equal.d.ts +52 -0
  284. package/types/stable/@ember/utils/lib/is_blank.d.ts +32 -0
  285. package/types/stable/@ember/utils/lib/is_empty.d.ts +38 -0
  286. package/types/stable/@ember/utils/lib/is_none.d.ts +26 -0
  287. package/types/stable/@ember/utils/lib/is_present.d.ts +35 -0
  288. package/types/stable/@ember/utils/lib/type-of.d.ts +68 -0
  289. package/types/stable/@ember/version/index.d.ts +3 -0
  290. package/types/stable/@glimmer/tracking/index.d.ts +203 -0
  291. package/types/stable/@glimmer/tracking/primitives/cache.d.ts +3 -0
  292. package/types/stable/ember/index.d.ts +376 -0
  293. package/types/stable/ember-template-compiler/index.d.ts +21 -0
  294. package/types/stable/ember-template-compiler/lib/plugins/assert-against-attrs.d.ts +20 -0
  295. package/types/stable/ember-template-compiler/lib/plugins/assert-against-named-outlets.d.ts +14 -0
  296. package/types/stable/ember-template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +5 -0
  297. package/types/stable/ember-template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +5 -0
  298. package/types/stable/ember-template-compiler/lib/plugins/assert-splattribute-expression.d.ts +5 -0
  299. package/types/stable/ember-template-compiler/lib/plugins/index.d.ts +5 -0
  300. package/types/stable/ember-template-compiler/lib/plugins/transform-action-syntax.d.ts +28 -0
  301. package/types/stable/ember-template-compiler/lib/plugins/transform-each-in-into-each.d.ts +24 -0
  302. package/types/stable/ember-template-compiler/lib/plugins/transform-each-track-array.d.ts +24 -0
  303. package/types/stable/ember-template-compiler/lib/plugins/transform-in-element.d.ts +22 -0
  304. package/types/stable/ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +4 -0
  305. package/types/stable/ember-template-compiler/lib/plugins/transform-resolutions.d.ts +5 -0
  306. package/types/stable/ember-template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +36 -0
  307. package/types/stable/ember-template-compiler/lib/plugins/utils.d.ts +13 -0
  308. package/types/stable/ember-template-compiler/lib/system/bootstrap.d.ts +26 -0
  309. package/types/stable/ember-template-compiler/lib/system/calculate-location-display.d.ts +4 -0
  310. package/types/stable/ember-template-compiler/lib/system/compile-options.d.ts +6 -0
  311. package/types/stable/ember-template-compiler/lib/system/compile.d.ts +13 -0
  312. package/types/stable/ember-template-compiler/lib/system/dasherize-component-name.d.ts +5 -0
  313. package/types/stable/ember-template-compiler/lib/system/initializer.d.ts +3 -0
  314. package/types/stable/ember-template-compiler/lib/system/precompile.d.ts +17 -0
  315. package/types/stable/ember-testing/index.d.ts +10 -0
  316. package/types/stable/ember-testing/lib/adapters/adapter.d.ts +20 -0
  317. package/types/stable/ember-testing/lib/adapters/qunit.d.ts +19 -0
  318. package/types/stable/ember-testing/lib/ext/application.d.ts +12 -0
  319. package/types/stable/ember-testing/lib/ext/rsvp.d.ts +4 -0
  320. package/types/stable/ember-testing/lib/helpers/and_then.d.ts +4 -0
  321. package/types/stable/ember-testing/lib/helpers/current_path.d.ts +22 -0
  322. package/types/stable/ember-testing/lib/helpers/current_route_name.d.ts +21 -0
  323. package/types/stable/ember-testing/lib/helpers/current_url.d.ts +22 -0
  324. package/types/stable/ember-testing/lib/helpers/pause_test.d.ts +53 -0
  325. package/types/stable/ember-testing/lib/helpers/visit.d.ts +22 -0
  326. package/types/stable/ember-testing/lib/helpers/wait.d.ts +34 -0
  327. package/types/stable/ember-testing/lib/helpers.d.ts +3 -0
  328. package/types/stable/ember-testing/lib/initializers.d.ts +3 -0
  329. package/types/stable/ember-testing/lib/setup_for_testing.d.ts +15 -0
  330. package/types/stable/ember-testing/lib/test/adapter.d.ts +7 -0
  331. package/types/stable/ember-testing/lib/test/helpers.d.ts +115 -0
  332. package/types/stable/ember-testing/lib/test/on_inject_helpers.d.ts +33 -0
  333. package/types/stable/ember-testing/lib/test/pending_requests.d.ts +6 -0
  334. package/types/stable/ember-testing/lib/test/promise.d.ts +38 -0
  335. package/types/stable/ember-testing/lib/test/run.d.ts +3 -0
  336. package/types/stable/ember-testing/lib/test/waiters.d.ts +67 -0
  337. package/types/stable/ember-testing/lib/test.d.ts +47 -0
  338. package/types/stable/index.d.ts +47 -0
  339. package/types/preview/@ember/application/tsconfig.json +0 -3
  340. package/types/preview/@ember/array/tsconfig.json +0 -3
  341. package/types/preview/@ember/component/tsconfig.json +0 -3
  342. package/types/preview/@ember/controller/tsconfig.json +0 -3
  343. package/types/preview/@ember/debug/tsconfig.json +0 -3
  344. package/types/preview/@ember/destroyable/tsconfig.json +0 -3
  345. package/types/preview/@ember/engine/tsconfig.json +0 -3
  346. package/types/preview/@ember/error/tsconfig.json +0 -3
  347. package/types/preview/@ember/helper/tsconfig.json +0 -3
  348. package/types/preview/@ember/modifier/tsconfig.json +0 -3
  349. package/types/preview/@ember/object/tsconfig.json +0 -3
  350. package/types/preview/@ember/owner/index.d.ts +0 -423
  351. package/types/preview/@ember/owner/tsconfig.json +0 -3
  352. package/types/preview/@ember/polyfills/tsconfig.json +0 -3
  353. package/types/preview/@ember/routing/tsconfig.json +0 -3
  354. package/types/preview/@ember/runloop/tsconfig.json +0 -3
  355. package/types/preview/@ember/service/tsconfig.json +0 -3
  356. package/types/preview/@ember/string/tsconfig.json +0 -3
  357. package/types/preview/@ember/template/tsconfig.json +0 -3
  358. package/types/preview/@ember/test/tsconfig.json +0 -3
  359. package/types/preview/@ember/utils/tsconfig.json +0 -3
  360. package/types/preview/ember/tsconfig.json +0 -3
  361. package/types/preview/tsconfig.json +0 -6
@@ -0,0 +1,268 @@
1
+ declare module '@ember/-internals/glimmer/lib/helpers/action.d.ts' {
2
+ export const ACTIONS: WeakSet<object>;
3
+ /**
4
+ The `{{action}}` helper provides a way to pass triggers for behavior (usually
5
+ just a function) between components, and into components from controllers.
6
+
7
+ ### Passing functions with the action helper
8
+
9
+ There are three contexts an action helper can be used in. The first two
10
+ contexts to discuss are attribute context, and Handlebars value context.
11
+
12
+ ```handlebars
13
+ {{! An example of attribute context }}
14
+ <div onclick={{action "save"}}></div>
15
+ {{! Examples of Handlebars value context }}
16
+ {{input on-input=(action "save")}}
17
+ {{yield (action "refreshData") andAnotherParam}}
18
+ ```
19
+
20
+ In these contexts,
21
+ the helper is called a "closure action" helper. Its behavior is simple:
22
+ If passed a function name, read that function off the `actions` property
23
+ of the current context. Once that function is read, or immediately if a function was
24
+ passed, create a closure over that function and any arguments.
25
+ The resulting value of an action helper used this way is simply a function.
26
+
27
+ For example, in the attribute context:
28
+
29
+ ```handlebars
30
+ {{! An example of attribute context }}
31
+ <div onclick={{action "save"}}></div>
32
+ ```
33
+
34
+ The resulting template render logic would be:
35
+
36
+ ```js
37
+ var div = document.createElement('div');
38
+ var actionFunction = (function(context){
39
+ return function() {
40
+ return context.actions.save.apply(context, arguments);
41
+ };
42
+ })(context);
43
+ div.onclick = actionFunction;
44
+ ```
45
+
46
+ Thus when the div is clicked, the action on that context is called.
47
+ Because the `actionFunction` is just a function, closure actions can be
48
+ passed between components and still execute in the correct context.
49
+
50
+ Here is an example action handler on a component:
51
+
52
+ ```app/components/my-component.js
53
+ import Component from '@glimmer/component';
54
+ import { action } from '@ember/object';
55
+
56
+ export default class extends Component {
57
+ @action
58
+ save() {
59
+ this.model.save();
60
+ }
61
+ }
62
+ ```
63
+
64
+ Actions are always looked up on the `actions` property of the current context.
65
+ This avoids collisions in the naming of common actions, such as `destroy`.
66
+ Two options can be passed to the `action` helper when it is used in this way.
67
+
68
+ * `target=someProperty` will look to `someProperty` instead of the current
69
+ context for the `actions` hash. This can be useful when targeting a
70
+ service for actions.
71
+ * `value="target.value"` will read the path `target.value` off the first
72
+ argument to the action when it is called and rewrite the first argument
73
+ to be that value. This is useful when attaching actions to event listeners.
74
+
75
+ ### Invoking an action
76
+
77
+ Closure actions curry both their scope and any arguments. When invoked, any
78
+ additional arguments are added to the already curried list.
79
+ Actions are presented in JavaScript as callbacks, and are
80
+ invoked like any other JavaScript function.
81
+
82
+ For example
83
+
84
+ ```app/components/update-name.js
85
+ import Component from '@glimmer/component';
86
+ import { action } from '@ember/object';
87
+
88
+ export default class extends Component {
89
+ @action
90
+ setName(model, name) {
91
+ model.set('name', name);
92
+ }
93
+ }
94
+ ```
95
+
96
+ ```app/components/update-name.hbs
97
+ {{input on-input=(action (action 'setName' @model) value="target.value")}}
98
+ ```
99
+
100
+ The first argument (`@model`) was curried over, and the run-time argument (`event`)
101
+ becomes a second argument. Action calls can be nested this way because each simply
102
+ returns a function. Any function can be passed to the `{{action}}` helper, including
103
+ other actions.
104
+
105
+ Actions invoked with `sendAction` have the same currying behavior as demonstrated
106
+ with `on-input` above. For example:
107
+
108
+ ```app/components/my-input.js
109
+ import Component from '@glimmer/component';
110
+ import { action } from '@ember/object';
111
+
112
+ export default class extends Component {
113
+ @action
114
+ setName(model, name) {
115
+ model.set('name', name);
116
+ }
117
+ }
118
+ ```
119
+
120
+ ```handlebars
121
+ <MyInput @submit={{action 'setName' @model}} />
122
+ ```
123
+
124
+ or
125
+
126
+ ```handlebars
127
+ {{my-input submit=(action 'setName' @model)}}
128
+ ```
129
+
130
+ ```app/components/my-component.js
131
+ import Component from '@ember/component';
132
+
133
+ export default Component.extend({
134
+ click() {
135
+ // Note that model is not passed, it was curried in the template
136
+ this.submit('bob');
137
+ }
138
+ });
139
+ ```
140
+
141
+ ### Attaching actions to DOM elements
142
+
143
+ The third context of the `{{action}}` helper can be called "element space".
144
+ For example:
145
+
146
+ ```handlebars
147
+ {{! An example of element space }}
148
+ <div {{action "save"}}></div>
149
+ ```
150
+
151
+ Used this way, the `{{action}}` helper provides a useful shortcut for
152
+ registering an HTML element in a template for a single DOM event and
153
+ forwarding that interaction to the template's context (controller or component).
154
+ If the context of a template is a controller, actions used this way will
155
+ bubble to routes when the controller does not implement the specified action.
156
+ Once an action hits a route, it will bubble through the route hierarchy.
157
+
158
+ ### Event Propagation
159
+
160
+ `{{action}}` helpers called in element space can control event bubbling. Note
161
+ that the closure style actions cannot.
162
+
163
+ Events triggered through the action helper will automatically have
164
+ `.preventDefault()` called on them. You do not need to do so in your event
165
+ handlers. If you need to allow event propagation (to handle file inputs for
166
+ example) you can supply the `preventDefault=false` option to the `{{action}}` helper:
167
+
168
+ ```handlebars
169
+ <div {{action "sayHello" preventDefault=false}}>
170
+ <input type="file" />
171
+ <input type="checkbox" />
172
+ </div>
173
+ ```
174
+
175
+ To disable bubbling, pass `bubbles=false` to the helper:
176
+
177
+ ```handlebars
178
+ <button {{action 'edit' post bubbles=false}}>Edit</button>
179
+ ```
180
+
181
+ To disable bubbling with closure style actions you must create your own
182
+ wrapper helper that makes use of `event.stopPropagation()`:
183
+
184
+ ```handlebars
185
+ <div onclick={{disable-bubbling (action "sayHello")}}>Hello</div>
186
+ ```
187
+
188
+ ```app/helpers/disable-bubbling.js
189
+ import { helper } from '@ember/component/helper';
190
+
191
+ export function disableBubbling([action]) {
192
+ return function(event) {
193
+ event.stopPropagation();
194
+ return action(event);
195
+ };
196
+ }
197
+ export default helper(disableBubbling);
198
+ ```
199
+
200
+ If you need the default handler to trigger you should either register your
201
+ own event handler, or use event methods on your view class. See
202
+ ["Responding to Browser Events"](/ember/release/classes/Component)
203
+ in the documentation for `Component` for more information.
204
+
205
+ ### Specifying DOM event type
206
+
207
+ `{{action}}` helpers called in element space can specify an event type.
208
+ By default the `{{action}}` helper registers for DOM `click` events. You can
209
+ supply an `on` option to the helper to specify a different DOM event name:
210
+
211
+ ```handlebars
212
+ <div {{action "anActionName" on="doubleClick"}}>
213
+ click me
214
+ </div>
215
+ ```
216
+
217
+ See ["Event Names"](/ember/release/classes/Component) for a list of
218
+ acceptable DOM event names.
219
+
220
+ ### Specifying whitelisted modifier keys
221
+
222
+ `{{action}}` helpers called in element space can specify modifier keys.
223
+ By default the `{{action}}` helper will ignore click events with pressed modifier
224
+ keys. You can supply an `allowedKeys` option to specify which keys should not be ignored.
225
+
226
+ ```handlebars
227
+ <div {{action "anActionName" allowedKeys="alt"}}>
228
+ click me
229
+ </div>
230
+ ```
231
+
232
+ This way the action will fire when clicking with the alt key pressed down.
233
+ Alternatively, supply "any" to the `allowedKeys` option to accept any combination of modifier keys.
234
+
235
+ ```handlebars
236
+ <div {{action "anActionName" allowedKeys="any"}}>
237
+ click me with any key pressed
238
+ </div>
239
+ ```
240
+
241
+ ### Specifying a Target
242
+
243
+ A `target` option can be provided to the helper to change
244
+ which object will receive the method call. This option must be a path
245
+ to an object, accessible in the current context:
246
+
247
+ ```app/templates/application.hbs
248
+ <div {{action "anActionName" target=someService}}>
249
+ click me
250
+ </div>
251
+ ```
252
+
253
+ ```app/controllers/application.js
254
+ import Controller from '@ember/controller';
255
+ import { service } from '@ember/service';
256
+
257
+ export default class extends Controller {
258
+ @service someService;
259
+ }
260
+ ```
261
+
262
+ @method action
263
+ @for Ember.Templates.helpers
264
+ @public
265
+ */
266
+ const _default: object;
267
+ export default _default;
268
+ }
@@ -0,0 +1,40 @@
1
+ declare module '@ember/-internals/glimmer/lib/helpers/array.d.ts' {
2
+ /**
3
+ @module ember
4
+ */
5
+ /**
6
+ Use the `{{array}}` helper to create an array to pass as an option to your
7
+ components.
8
+
9
+ ```handlebars
10
+ <MyComponent @people={{array
11
+ 'Tom Dale'
12
+ 'Yehuda Katz'
13
+ this.myOtherPerson}}
14
+ />
15
+ ```
16
+ or
17
+ ```handlebars
18
+ {{my-component people=(array
19
+ 'Tom Dale'
20
+ 'Yehuda Katz'
21
+ this.myOtherPerson)
22
+ }}
23
+ ```
24
+
25
+ Would result in an object such as:
26
+
27
+ ```js
28
+ ['Tom Dale', 'Yehuda Katz', this.get('myOtherPerson')]
29
+ ```
30
+
31
+ Where the 3rd item in the array is bound to updates of the `myOtherPerson` property.
32
+
33
+ @method array
34
+ @for Ember.Templates.helpers
35
+ @param {Array} options
36
+ @return {Array} Array
37
+ @since 3.8.0
38
+ @public
39
+ */
40
+ }
@@ -0,0 +1,148 @@
1
+ declare module '@ember/-internals/glimmer/lib/helpers/component.d.ts' {
2
+ /**
3
+ @module ember
4
+ */
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
+ ```
35
+
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:
42
+
43
+ ```app/templates/application.hbs
44
+ <LiveUpdatingChart />
45
+ ```
46
+
47
+ or
48
+
49
+ ```app/templates/application.hbs
50
+ {{live-updating-chart}}
51
+ ```
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:
57
+
58
+ ```app/templates/application.hbs
59
+ {{#component this.infographicComponentName}}
60
+ Last update: {{this.lastUpdateTimestamp}}
61
+ {{/component}}
62
+ ```
63
+
64
+ The following controller code:
65
+
66
+ ```app/controllers/application.js
67
+ import Controller from '@ember/controller';
68
+ import { computed } from '@ember/object';
69
+ import { tracked } from '@glimmer/tracking';
70
+
71
+ export default class ApplicationController extends Controller {
72
+ @tracked isMarketOpen = 'live-updating-chart'
73
+
74
+ get lastUpdateTimestamp() {
75
+ return new Date();
76
+ }
77
+
78
+ get infographicComponentName() {
79
+ return this.isMarketOpen ? 'live-updating-chart' : 'market-close-summary';
80
+ }
81
+ }
82
+ ```
83
+
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
+ @method component
144
+ @since 1.11.0
145
+ @for Ember.Templates.helpers
146
+ @public
147
+ */
148
+ }
@@ -0,0 +1,27 @@
1
+ declare module '@ember/-internals/glimmer/lib/helpers/concat.d.ts' {
2
+ /**
3
+ @module ember
4
+ */
5
+ /**
6
+ Concatenates the given arguments into a string.
7
+
8
+ Example:
9
+
10
+ ```handlebars
11
+ {{some-component name=(concat firstName " " lastName)}}
12
+
13
+ {{! would pass name="<first name value> <last name value>" to the component}}
14
+ ```
15
+
16
+ or for angle bracket invocation, you actually don't need concat at all.
17
+
18
+ ```handlebars
19
+ <SomeComponent @name="{{firstName}} {{lastName}}" />
20
+ ```
21
+
22
+ @public
23
+ @method concat
24
+ @for Ember.Templates.helpers
25
+ @since 1.13.0
26
+ */
27
+ }
@@ -0,0 +1,160 @@
1
+ declare module '@ember/-internals/glimmer/lib/helpers/each-in.d.ts' {
2
+ /**
3
+ The `{{#each}}` helper loops over elements in a collection. It is an extension
4
+ of the base Handlebars `{{#each}}` helper.
5
+
6
+ The default behavior of `{{#each}}` is to yield its inner block once for every
7
+ item in an array passing the item as the first block parameter.
8
+
9
+ Assuming the `@developers` argument contains this array:
10
+
11
+ ```javascript
12
+ [{ name: 'Yehuda' },{ name: 'Tom' }, { name: 'Paul' }];
13
+ ```
14
+
15
+ ```handlebars
16
+ <ul>
17
+ {{#each @developers as |person|}}
18
+ <li>Hello, {{person.name}}!</li>
19
+ {{/each}}
20
+ </ul>
21
+ ```
22
+
23
+ The same rules apply to arrays of primitives.
24
+
25
+ ```javascript
26
+ ['Yehuda', 'Tom', 'Paul']
27
+ ```
28
+
29
+ ```handlebars
30
+ <ul>
31
+ {{#each @developerNames as |name|}}
32
+ <li>Hello, {{name}}!</li>
33
+ {{/each}}
34
+ </ul>
35
+ ```
36
+
37
+ During iteration, the index of each item in the array is provided as a second block
38
+ parameter.
39
+
40
+ ```handlebars
41
+ <ul>
42
+ {{#each @developers as |person index|}}
43
+ <li>Hello, {{person.name}}! You're number {{index}} in line</li>
44
+ {{/each}}
45
+ </ul>
46
+ ```
47
+
48
+ ### Specifying Keys
49
+
50
+ In order to improve rendering speed, Ember will try to reuse the DOM elements
51
+ where possible. Specifically, if the same item is present in the array both
52
+ before and after the change, its DOM output will be reused.
53
+
54
+ The `key` option is used to tell Ember how to determine if the items in the
55
+ array being iterated over with `{{#each}}` has changed between renders. By
56
+ default the item's object identity is used.
57
+
58
+ This is usually sufficient, so in most cases, the `key` option is simply not
59
+ needed. However, in some rare cases, the objects' identities may change even
60
+ though they represent the same underlying data.
61
+
62
+ For example:
63
+
64
+ ```javascript
65
+ people.map(person => {
66
+ return { ...person, type: 'developer' };
67
+ });
68
+ ```
69
+
70
+ In this case, each time the `people` array is `map`-ed over, it will produce
71
+ an new array with completely different objects between renders. In these cases,
72
+ you can help Ember determine how these objects related to each other with the
73
+ `key` option:
74
+
75
+ ```handlebars
76
+ <ul>
77
+ {{#each @developers key="name" as |person|}}
78
+ <li>Hello, {{person.name}}!</li>
79
+ {{/each}}
80
+ </ul>
81
+ ```
82
+
83
+ By doing so, Ember will use the value of the property specified (`person.name`
84
+ in the example) to find a "match" from the previous render. That is, if Ember
85
+ has previously seen an object from the `@developers` array with a matching
86
+ name, its DOM elements will be re-used.
87
+
88
+ There are two special values for `key`:
89
+
90
+ * `@index` - The index of the item in the array.
91
+ * `@identity` - The item in the array itself.
92
+
93
+ ### {{else}} condition
94
+
95
+ `{{#each}}` can have a matching `{{else}}`. The contents of this block will render
96
+ if the collection is empty.
97
+
98
+ ```handlebars
99
+ <ul>
100
+ {{#each @developers as |person|}}
101
+ <li>{{person.name}} is available!</li>
102
+ {{else}}
103
+ <li>Sorry, nobody is available for this task.</li>
104
+ {{/each}}
105
+ </ul>
106
+ ```
107
+
108
+ @method each
109
+ @for Ember.Templates.helpers
110
+ @public
111
+ */
112
+ /**
113
+ The `{{each-in}}` helper loops over properties on an object.
114
+
115
+ For example, given this component definition:
116
+
117
+ ```app/components/developer-details.js
118
+ import Component from '@glimmer/component';
119
+ import { tracked } from '@glimmer/tracking';
120
+
121
+ export default class extends Component {
122
+ @tracked developer = {
123
+ "name": "Shelly Sails",
124
+ "age": 42
125
+ };
126
+ }
127
+ ```
128
+
129
+ 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:
141
+
142
+ ```html
143
+ <ul>
144
+ <li>name: Shelly Sails</li>
145
+ <li>age: 42</li>
146
+ </ul>
147
+ ```
148
+
149
+ @method each-in
150
+ @for Ember.Templates.helpers
151
+ @public
152
+ @since 2.1.0
153
+ */
154
+ export class EachInWrapper {
155
+ inner: unknown;
156
+ constructor(inner: unknown);
157
+ }
158
+ const _default: object;
159
+ export default _default;
160
+ }