ember-source 6.12.0-beta.3 → 7.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/blueprints/initializer-test/files/__root__/__testType__/__path__/__name__-test.ts +2 -2
  2. package/blueprints/instance-initializer-test/files/__root__/__testType__/__path__/__name__-test.ts +3 -3
  3. package/build-metadata.json +3 -3
  4. package/dist/{packages/shared-chunks/registry-XY5cfmbH.js → dev/packages/@ember/-internals/container/index.js} +28 -27
  5. package/dist/{packages → dev/packages}/@ember/-internals/deprecations/index.js +5 -16
  6. package/dist/{packages/shared-chunks/env-DEd6hPbj.js → dev/packages/@ember/-internals/environment/index.js} +31 -53
  7. package/dist/dev/packages/@ember/-internals/glimmer/index.js +42 -0
  8. package/dist/{packages → dev/packages}/@ember/-internals/meta/lib/meta.js +37 -38
  9. package/dist/dev/packages/@ember/-internals/metal/index.js +63 -0
  10. package/dist/{packages → dev/packages}/@ember/-internals/routing/index.js +7 -8
  11. package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/ext/rsvp.js +1 -2
  12. package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/-proxy.js +14 -15
  13. package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/action_handler.js +21 -9
  14. package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/registry_proxy.js +11 -2
  15. package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/target_action_support.js +22 -9
  16. package/dist/{packages → dev/packages}/@ember/-internals/string/index.js +1 -2
  17. package/dist/dev/packages/@ember/-internals/utils/index.js +34 -0
  18. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/compat/fallback-view-registry.js +1 -2
  19. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/mixins/action_support.js +16 -10
  20. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/system/event_dispatcher.js +19 -20
  21. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/system/utils.js +7 -23
  22. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/views/core_view.js +6 -7
  23. package/dist/{packages → dev/packages}/@ember/-internals/views/lib/views/states.js +3 -4
  24. package/dist/{packages → dev/packages}/@ember/application/index.js +50 -121
  25. package/dist/{packages → dev/packages}/@ember/application/instance.js +17 -17
  26. package/dist/{packages → dev/packages}/@ember/application/namespace.js +27 -9
  27. package/dist/{packages → dev/packages}/@ember/array/index.js +34 -25
  28. package/dist/{packages → dev/packages}/@ember/array/proxy.js +19 -20
  29. package/dist/{packages → dev/packages}/@ember/canary-features/index.js +1 -1
  30. package/dist/dev/packages/@ember/component/helper.js +14 -0
  31. package/dist/{packages → dev/packages}/@ember/component/index.js +12 -12
  32. package/dist/{packages → dev/packages}/@ember/component/template-only.js +6 -6
  33. package/dist/{packages → dev/packages}/@ember/controller/index.js +7 -9
  34. package/dist/{packages → dev/packages}/@ember/debug/container-debug-adapter.js +6 -7
  35. package/dist/{packages → dev/packages}/@ember/debug/data-adapter.js +6 -7
  36. package/dist/{packages → dev/packages}/@ember/debug/index.js +4 -11
  37. package/dist/{packages → dev/packages}/@ember/debug/lib/assert.js +1 -3
  38. package/dist/{packages → dev/packages}/@ember/debug/lib/deprecate.js +7 -3
  39. package/dist/{packages → dev/packages}/@ember/debug/lib/handlers.js +1 -3
  40. package/dist/{packages → dev/packages}/@ember/debug/lib/warn.js +1 -2
  41. package/dist/{packages → dev/packages}/@ember/engine/index.js +22 -22
  42. package/dist/dev/packages/@ember/engine/instance.js +200 -0
  43. package/dist/{packages → dev/packages}/@ember/helper/index.js +12 -11
  44. package/dist/{packages → dev/packages}/@ember/instrumentation/index.js +3 -8
  45. package/dist/dev/packages/@ember/modifier/index.js +23 -0
  46. package/dist/{packages → dev/packages}/@ember/modifier/on.js +6 -6
  47. package/dist/dev/packages/@ember/object/-internals.js +49 -0
  48. package/dist/{packages → dev/packages}/@ember/object/compat.js +11 -12
  49. package/dist/{packages → dev/packages}/@ember/object/computed.js +7 -8
  50. package/dist/{packages → dev/packages}/@ember/object/core.js +28 -29
  51. package/dist/{packages → dev/packages}/@ember/object/evented.js +7 -8
  52. package/dist/dev/packages/@ember/object/events.js +11 -0
  53. package/dist/{packages → dev/packages}/@ember/object/index.js +18 -19
  54. package/dist/{packages → dev/packages}/@ember/object/internals.js +1 -1
  55. package/dist/{packages → dev/packages}/@ember/object/lib/computed/computed_macros.js +30 -27
  56. package/dist/{packages → dev/packages}/@ember/object/lib/computed/reduce_computed_macros.js +36 -37
  57. package/dist/{packages → dev/packages}/@ember/object/mixin.js +15 -23
  58. package/dist/dev/packages/@ember/object/observable.js +181 -0
  59. package/dist/dev/packages/@ember/object/observers.js +11 -0
  60. package/dist/{packages → dev/packages}/@ember/object/promise-proxy-mixin.js +7 -8
  61. package/dist/dev/packages/@ember/renderer/index.js +14 -0
  62. package/dist/dev/packages/@ember/routing/-internals.js +22 -0
  63. package/dist/{packages → dev/packages}/@ember/routing/hash-location.js +1 -1
  64. package/dist/{packages → dev/packages}/@ember/routing/history-location.js +9 -25
  65. package/dist/dev/packages/@ember/routing/index.js +14 -0
  66. package/dist/{packages → dev/packages}/@ember/routing/lib/dsl.js +5 -6
  67. package/dist/{packages → dev/packages}/@ember/routing/lib/generate_controller.js +22 -10
  68. package/dist/{packages → dev/packages}/@ember/routing/lib/location-utils.js +3 -16
  69. package/dist/{packages → dev/packages}/@ember/routing/lib/routing-service.js +19 -9
  70. package/dist/{packages → dev/packages}/@ember/routing/lib/utils.js +12 -13
  71. package/dist/{packages → dev/packages}/@ember/routing/none-location.js +2 -4
  72. package/dist/{packages → dev/packages}/@ember/routing/route.js +38 -39
  73. package/dist/{packages → dev/packages}/@ember/routing/router-service.js +13 -14
  74. package/dist/{packages → dev/packages}/@ember/routing/router.js +63 -71
  75. package/dist/{packages → dev/packages}/@ember/runloop/index.js +9 -8
  76. package/dist/{packages → dev/packages}/@ember/service/index.js +6 -7
  77. package/dist/dev/packages/@ember/template/index.js +14 -0
  78. package/dist/{packages → dev/packages}/@ember/template-compilation/index.js +3 -3
  79. package/dist/dev/packages/@ember/template-compiler/index.js +2 -0
  80. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/compile-options.js +11 -6
  81. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/dasherize-component-name.js +1 -2
  82. package/dist/dev/packages/@ember/template-compiler/lib/plugins/allowed-globals.js +56 -0
  83. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/assert-against-attrs.js +19 -3
  84. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +11 -2
  85. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +1 -2
  86. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +3 -4
  87. package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +40 -0
  88. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-each-track-array.js +21 -2
  89. package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +50 -0
  90. package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-resolutions.js +2 -3
  91. package/dist/dev/packages/@ember/template-compiler/lib/template.js +248 -0
  92. package/dist/dev/packages/@ember/template-factory/index.js +8 -0
  93. package/dist/dev/packages/@ember/test/index.js +18 -0
  94. package/dist/{packages → dev/packages}/@ember/utils/lib/compare.js +5 -6
  95. package/dist/{packages → dev/packages}/@ember/utils/lib/is_empty.js +6 -7
  96. package/dist/{packages → dev/packages}/@glimmer/destroyable/index.js +21 -16
  97. package/dist/{packages/shared-chunks/encoder-CT1wqYMF.js → dev/packages/@glimmer/encoder/index.js} +3 -4
  98. package/dist/{packages → dev/packages}/@glimmer/global-context/index.js +6 -5
  99. package/dist/{packages/shared-chunks/api-1B_9SjFR.js → dev/packages/@glimmer/manager/index.js} +17 -14
  100. package/dist/dev/packages/@glimmer/node/index.js +40 -0
  101. package/dist/{packages → dev/packages}/@glimmer/opcode-compiler/index.js +5 -6
  102. package/dist/dev/packages/@glimmer/program/index.js +12 -0
  103. package/dist/dev/packages/@glimmer/reference/index.js +208 -0
  104. package/dist/dev/packages/@glimmer/runtime/index.js +11 -0
  105. package/dist/dev/packages/@glimmer/tracking/index.js +137 -0
  106. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +11 -0
  107. package/dist/{packages → dev/packages}/@glimmer/util/index.js +2 -3
  108. package/dist/{packages → dev/packages}/@glimmer/validator/index.js +304 -372
  109. package/dist/{packages → dev/packages}/@glimmer/vm/index.js +1 -1
  110. package/dist/{packages → dev/packages}/ember/version.js +2 -2
  111. package/dist/dev/packages/ember-template-compiler/index.js +109 -0
  112. package/dist/{packages → dev/packages}/ember-testing/index.js +1 -3
  113. package/dist/dev/packages/ember-testing/lib/public-api.js +2 -0
  114. package/dist/dev/packages/ember-testing/lib/test/pending_requests.js +10 -0
  115. package/dist/dev/packages/ember-testing/lib/test.js +25 -0
  116. package/dist/{packages/shared-chunks/router-DSi8WnDi.js → dev/packages/router_js/index.js} +120 -58
  117. package/dist/{packages/shared-chunks/alias-BEMS3qgG.js → dev/packages/shared-chunks/alias-CSC0WIbj.js} +4 -5
  118. package/dist/{packages/shared-chunks/api-CkUl6KyJ.js → dev/packages/shared-chunks/api-BqXkkT0p.js} +14 -16
  119. package/dist/{packages/shared-chunks/args-proxy-B91L3LRK.js → dev/packages/shared-chunks/args-proxy-DgXMc9b5.js} +7 -8
  120. package/dist/{packages/shared-chunks/array-BqYCCatg.js → dev/packages/shared-chunks/array-D8PfjQHi.js} +3 -4
  121. package/dist/dev/packages/shared-chunks/capabilities-O_xc7Yqk.js +34 -0
  122. package/dist/{packages/shared-chunks/collections-B8me-ZlQ.js → dev/packages/shared-chunks/collections-D_nY_0UJ.js} +1 -2
  123. package/dist/{packages/@ember/template-compiler/lib/template.js → dev/packages/shared-chunks/compiler-CNj62pww.js} +22 -243
  124. package/dist/{packages/shared-chunks/constants-oDhF27qL.js → dev/packages/shared-chunks/constants-eoaL3OJQ.js} +9 -9
  125. package/dist/{packages/shared-chunks/debug-to-string-BsFOvUtQ.js → dev/packages/shared-chunks/debug-to-string-CFb7h0lY.js} +1 -3
  126. package/dist/{packages/shared-chunks/dynamic-CuBsUXX8.js → dev/packages/shared-chunks/dynamic-CFg3dljk.js} +108 -134
  127. package/dist/{packages/shared-chunks/element-builder-BuVym8EM.js → dev/packages/shared-chunks/element-builder-BOxP8emt.js} +4 -5
  128. package/dist/{packages/shared-chunks/flags-BsZlvEeR.js → dev/packages/shared-chunks/flags-B9qxc-pB.js} +1 -1
  129. package/dist/{packages/shared-chunks/capabilities-DHiXCCuB.js → dev/packages/shared-chunks/fragment-Cc5k9Oy4.js} +2 -33
  130. package/dist/{packages/shared-chunks/index-ByyoGpfz.js → dev/packages/shared-chunks/index-PxU6E7q8.js} +658 -214
  131. package/dist/{packages/shared-chunks/index-CQkjwqTv.js → dev/packages/shared-chunks/index-Q7JnrdBn.js} +20 -19
  132. package/dist/dev/packages/shared-chunks/invoke-DxRPE05O.js +67 -0
  133. package/dist/{packages/shared-chunks/is_proxy-C2q5rUMp.js → dev/packages/shared-chunks/is_proxy-B0smdQy8.js} +1 -1
  134. package/dist/{packages/shared-chunks/mandatory-setter-DLKyVs4Q.js → dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js} +47 -48
  135. package/dist/{packages/shared-chunks/name-DVtQREj6.js → dev/packages/shared-chunks/name-Z7dpqvzn.js} +1 -1
  136. package/dist/{packages/shared-chunks/namespace_search-ClQOZuFA.js → dev/packages/shared-chunks/namespace_search-uT8odThF.js} +3 -4
  137. package/dist/{packages/shared-chunks/observers-DhgQ6ba5.js → dev/packages/shared-chunks/observers-Bj9qLVau.js} +231 -87
  138. package/dist/{packages/shared-chunks/program-CcLlGnAU.js → dev/packages/shared-chunks/program-DfV0v8aa.js} +4 -6
  139. package/dist/{packages/shared-chunks/program-context-CZJnCFdo.js → dev/packages/shared-chunks/program-context-BRjCC_BA.js} +2 -2
  140. package/dist/{packages/shared-chunks/property_set-DrZnfGQ7.js → dev/packages/shared-chunks/property_set-DaoZXGM5.js} +11 -16
  141. package/dist/dev/packages/shared-chunks/public-api-C3KlJmEr.js +10 -0
  142. package/dist/{packages/shared-chunks/reference-B6HMX4y0.js → dev/packages/shared-chunks/reference-C3TKDRnP.js} +11 -12
  143. package/dist/{packages/@glimmer/runtime/index.js → dev/packages/shared-chunks/rehydrate-builder-DPImr9e9.js} +8 -16
  144. package/dist/{packages/shared-chunks/render-DTOhhssy.js → dev/packages/shared-chunks/render-sg8BuFaE.js} +16 -23
  145. package/dist/{packages/shared-chunks/serialize-builder-DEgRJgNQ.js → dev/packages/shared-chunks/serialize-builder-b_gSYCSS.js} +7 -7
  146. package/dist/{packages/shared-chunks/set_properties-Dag9Xz6u.js → dev/packages/shared-chunks/set_properties-kVGzZL_a.js} +2 -2
  147. package/dist/{packages/shared-chunks/setup-registry-Bbj8WQen.js → dev/packages/shared-chunks/setup-registry-DGdDOxrk.js} +12 -12
  148. package/dist/{packages/shared-chunks/simple-cast-BXTrayoV.js → dev/packages/shared-chunks/simple-cast-DCvJLSin.js} +1 -1
  149. package/dist/{packages/shared-chunks/template-CMHIG4cn.js → dev/packages/shared-chunks/template-kM-7TTcc.js} +3 -4
  150. package/dist/dev/packages/shared-chunks/to-string-C7M8LBLH.js +36 -0
  151. package/dist/{packages/shared-chunks/transform-resolutions-vHYYonpB.js → dev/packages/shared-chunks/transform-resolutions-fXGQKGsL.js} +331 -288
  152. package/dist/{packages/shared-chunks/unrecognized-url-error-BBMMZhBN.js → dev/packages/shared-chunks/unrecognized-url-error-B3wUTorp.js} +103 -39
  153. package/dist/prod/packages/@ember/-internals/browser-environment/index.js +2 -0
  154. package/dist/prod/packages/@ember/-internals/container/index.js +697 -0
  155. package/dist/prod/packages/@ember/-internals/deprecations/index.js +114 -0
  156. package/dist/prod/packages/@ember/-internals/environment/index.js +171 -0
  157. package/dist/prod/packages/@ember/-internals/error-handling/index.js +26 -0
  158. package/dist/prod/packages/@ember/-internals/glimmer/index.js +39 -0
  159. package/dist/prod/packages/@ember/-internals/meta/index.js +1 -0
  160. package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +455 -0
  161. package/dist/prod/packages/@ember/-internals/metal/index.js +61 -0
  162. package/dist/prod/packages/@ember/-internals/owner/index.js +252 -0
  163. package/dist/prod/packages/@ember/-internals/routing/index.js +14 -0
  164. package/dist/prod/packages/@ember/-internals/runtime/index.js +9 -0
  165. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +51 -0
  166. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +89 -0
  167. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +187 -0
  168. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/comparable.js +37 -0
  169. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +44 -0
  170. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +42 -0
  171. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +142 -0
  172. package/dist/prod/packages/@ember/-internals/string/index.js +93 -0
  173. package/dist/prod/packages/@ember/-internals/utility-types/index.js +12 -0
  174. package/dist/prod/packages/@ember/-internals/utils/index.js +75 -0
  175. package/dist/prod/packages/@ember/-internals/views/index.js +7 -0
  176. package/dist/prod/packages/@ember/-internals/views/lib/compat/attrs.js +3 -0
  177. package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +7 -0
  178. package/dist/prod/packages/@ember/-internals/views/lib/component_lookup.js +14 -0
  179. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +35 -0
  180. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +227 -0
  181. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +172 -0
  182. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +87 -0
  183. package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +83 -0
  184. package/dist/prod/packages/@ember/application/index.js +899 -0
  185. package/dist/prod/packages/@ember/application/instance.js +438 -0
  186. package/dist/prod/packages/@ember/application/namespace.js +68 -0
  187. package/dist/prod/packages/@ember/array/-internals.js +9 -0
  188. package/dist/prod/packages/@ember/array/index.js +591 -0
  189. package/dist/prod/packages/@ember/array/lib/make-array.js +42 -0
  190. package/dist/prod/packages/@ember/array/make.js +1 -0
  191. package/dist/prod/packages/@ember/array/mutable.js +1 -0
  192. package/dist/prod/packages/@ember/array/proxy.js +267 -0
  193. package/dist/prod/packages/@ember/canary-features/index.js +67 -0
  194. package/dist/prod/packages/@ember/component/helper.js +12 -0
  195. package/dist/prod/packages/@ember/component/index.js +32 -0
  196. package/dist/prod/packages/@ember/component/template-only.js +39 -0
  197. package/dist/prod/packages/@ember/controller/index.js +177 -0
  198. package/dist/prod/packages/@ember/debug/container-debug-adapter.js +117 -0
  199. package/dist/prod/packages/@ember/debug/data-adapter.js +553 -0
  200. package/dist/prod/packages/@ember/debug/index.js +30 -0
  201. package/dist/prod/packages/@ember/debug/lib/assert.js +7 -0
  202. package/dist/prod/packages/@ember/debug/lib/capture-render-tree.js +28 -0
  203. package/dist/prod/packages/@ember/debug/lib/deprecate.js +56 -0
  204. package/dist/prod/packages/@ember/debug/lib/handlers.js +5 -0
  205. package/dist/prod/packages/@ember/debug/lib/inspect.js +120 -0
  206. package/dist/prod/packages/@ember/debug/lib/testing.js +9 -0
  207. package/dist/prod/packages/@ember/debug/lib/warn.js +6 -0
  208. package/dist/prod/packages/@ember/deprecated-features/index.js +7 -0
  209. package/dist/prod/packages/@ember/destroyable/index.js +251 -0
  210. package/dist/prod/packages/@ember/engine/index.js +450 -0
  211. package/dist/{packages → prod/packages}/@ember/engine/instance.js +24 -10
  212. package/dist/prod/packages/@ember/engine/lib/engine-parent.js +33 -0
  213. package/dist/prod/packages/@ember/engine/parent.js +1 -0
  214. package/dist/prod/packages/@ember/enumerable/index.js +20 -0
  215. package/dist/prod/packages/@ember/enumerable/mutable.js +22 -0
  216. package/dist/prod/packages/@ember/helper/index.js +489 -0
  217. package/dist/prod/packages/@ember/instrumentation/index.js +242 -0
  218. package/dist/prod/packages/@ember/modifier/index.js +21 -0
  219. package/dist/prod/packages/@ember/modifier/on.js +20 -0
  220. package/dist/prod/packages/@ember/object/-internals.js +28 -0
  221. package/dist/prod/packages/@ember/object/compat.js +128 -0
  222. package/dist/prod/packages/@ember/object/computed.js +10 -0
  223. package/dist/prod/packages/@ember/object/core.js +781 -0
  224. package/dist/prod/packages/@ember/object/evented.js +76 -0
  225. package/dist/prod/packages/@ember/object/events.js +6 -0
  226. package/dist/prod/packages/@ember/object/index.js +205 -0
  227. package/dist/prod/packages/@ember/object/internals.js +8 -0
  228. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +776 -0
  229. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +1032 -0
  230. package/dist/prod/packages/@ember/object/mixin.js +560 -0
  231. package/dist/{packages → prod/packages}/@ember/object/observable.js +80 -15
  232. package/dist/prod/packages/@ember/object/observers.js +6 -0
  233. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +138 -0
  234. package/dist/prod/packages/@ember/object/proxy.js +98 -0
  235. package/dist/prod/packages/@ember/owner/index.js +88 -0
  236. package/dist/prod/packages/@ember/reactive/collections.js +1 -0
  237. package/dist/prod/packages/@ember/reactive/index.js +12 -0
  238. package/dist/prod/packages/@ember/renderer/index.js +12 -0
  239. package/dist/prod/packages/@ember/routing/hash-location.js +153 -0
  240. package/dist/prod/packages/@ember/routing/history-location.js +250 -0
  241. package/dist/prod/packages/@ember/routing/index.js +12 -0
  242. package/dist/prod/packages/@ember/routing/lib/cache.js +37 -0
  243. package/dist/prod/packages/@ember/routing/lib/controller_for.js +16 -0
  244. package/dist/prod/packages/@ember/routing/lib/dsl.js +178 -0
  245. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +62 -0
  246. package/dist/prod/packages/@ember/routing/lib/location-utils.js +48 -0
  247. package/dist/prod/packages/@ember/routing/lib/query_params.js +9 -0
  248. package/dist/prod/packages/@ember/routing/lib/router_state.js +26 -0
  249. package/dist/prod/packages/@ember/routing/lib/routing-service.js +125 -0
  250. package/dist/prod/packages/@ember/routing/lib/utils.js +236 -0
  251. package/dist/prod/packages/@ember/routing/none-location.js +120 -0
  252. package/dist/prod/packages/@ember/routing/route.js +1604 -0
  253. package/dist/prod/packages/@ember/routing/router-service.js +640 -0
  254. package/dist/prod/packages/@ember/routing/router.js +1335 -0
  255. package/dist/prod/packages/@ember/runloop/index.js +736 -0
  256. package/dist/prod/packages/@ember/service/index.js +124 -0
  257. package/dist/prod/packages/@ember/template/index.js +12 -0
  258. package/dist/prod/packages/@ember/template-compilation/index.js +20 -0
  259. package/dist/prod/packages/@ember/template-compiler/-internal-primitives.js +1 -0
  260. package/dist/prod/packages/@ember/template-compiler/-internal-utils.js +1 -0
  261. package/dist/prod/packages/@ember/template-compiler/index.js +2 -0
  262. package/dist/prod/packages/@ember/template-compiler/lib/-internal/primitives.js +1 -0
  263. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +103 -0
  264. package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +21 -0
  265. package/dist/prod/packages/@ember/template-compiler/lib/plugins/allowed-globals.js +56 -0
  266. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +49 -0
  267. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +34 -0
  268. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +22 -0
  269. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +37 -0
  270. package/dist/{packages → prod/packages}/@ember/template-compiler/lib/plugins/index.js +1 -1
  271. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-action-syntax.js +65 -0
  272. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-in-into-each.js +51 -0
  273. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +50 -0
  274. package/dist/{packages → prod/packages}/@ember/template-compiler/lib/plugins/transform-in-element.js +20 -6
  275. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.js +37 -0
  276. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +4 -0
  277. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.js +57 -0
  278. package/dist/prod/packages/@ember/template-compiler/lib/plugins/utils.js +55 -0
  279. package/dist/prod/packages/@ember/template-compiler/lib/public-api.js +1 -0
  280. package/dist/prod/packages/@ember/template-compiler/lib/runtime.js +1 -0
  281. package/dist/prod/packages/@ember/template-compiler/lib/system/calculate-location-display.js +28 -0
  282. package/dist/prod/packages/@ember/template-compiler/lib/template.js +245 -0
  283. package/dist/prod/packages/@ember/template-factory/index.js +5 -0
  284. package/dist/prod/packages/@ember/test/adapter.js +2 -0
  285. package/dist/prod/packages/@ember/test/index.js +18 -0
  286. package/dist/prod/packages/@ember/utils/index.js +7 -0
  287. package/dist/prod/packages/@ember/utils/lib/compare.js +159 -0
  288. package/dist/prod/packages/@ember/utils/lib/is-equal.js +60 -0
  289. package/dist/prod/packages/@ember/utils/lib/is_blank.js +36 -0
  290. package/dist/prod/packages/@ember/utils/lib/is_empty.js +67 -0
  291. package/dist/prod/packages/@ember/utils/lib/is_none.js +28 -0
  292. package/dist/prod/packages/@ember/utils/lib/is_present.js +39 -0
  293. package/dist/prod/packages/@ember/utils/lib/type-of.js +110 -0
  294. package/dist/prod/packages/@ember/version/index.js +1 -0
  295. package/dist/prod/packages/@glimmer/destroyable/index.js +128 -0
  296. package/dist/prod/packages/@glimmer/encoder/index.js +28 -0
  297. package/dist/prod/packages/@glimmer/env/index.js +4 -0
  298. package/dist/prod/packages/@glimmer/global-context/index.js +138 -0
  299. package/dist/prod/packages/@glimmer/manager/index.js +293 -0
  300. package/dist/{packages/shared-chunks/node-dom-helper-BYL7Plyj.js → prod/packages/@glimmer/node/index.js} +10 -12
  301. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +40 -0
  302. package/dist/prod/packages/@glimmer/owner/index.js +19 -0
  303. package/dist/prod/packages/@glimmer/program/index.js +12 -0
  304. package/dist/{packages/shared-chunks/iterable-BKS7az3P.js → prod/packages/@glimmer/reference/index.js} +13 -12
  305. package/dist/prod/packages/@glimmer/runtime/index.js +9 -0
  306. package/dist/prod/packages/@glimmer/tracking/index.js +115 -0
  307. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +6 -0
  308. package/dist/prod/packages/@glimmer/util/index.js +129 -0
  309. package/dist/prod/packages/@glimmer/validator/index.js +1027 -0
  310. package/dist/prod/packages/@glimmer/vm/index.js +15 -0
  311. package/dist/prod/packages/@glimmer/wire-format/index.js +102 -0
  312. package/dist/prod/packages/@simple-dom/document/index.js +355 -0
  313. package/dist/prod/packages/backburner.js/index.js +939 -0
  314. package/dist/prod/packages/dag-map/index.js +202 -0
  315. package/dist/prod/packages/ember/version.js +4 -0
  316. package/dist/prod/packages/ember-template-compiler/index.js +100 -0
  317. package/dist/prod/packages/ember-testing/index.js +6 -0
  318. package/dist/prod/packages/ember-testing/lib/adapters/adapter.js +49 -0
  319. package/dist/prod/packages/ember-testing/lib/public-api.js +2 -0
  320. package/dist/prod/packages/ember-testing/lib/test/adapter.js +32 -0
  321. package/dist/prod/packages/ember-testing/lib/test/pending_requests.js +10 -0
  322. package/dist/prod/packages/ember-testing/lib/test/waiters.js +128 -0
  323. package/dist/prod/packages/ember-testing/lib/test.js +25 -0
  324. package/dist/prod/packages/route-recognizer/index.js +671 -0
  325. package/dist/prod/packages/router_js/index.js +1527 -0
  326. package/dist/prod/packages/rsvp/index.js +1 -0
  327. package/dist/prod/packages/shared-chunks/alias-BkT-0B1G.js +81 -0
  328. package/dist/prod/packages/shared-chunks/api-Co-k4HVs.js +200 -0
  329. package/dist/prod/packages/shared-chunks/args-proxy-Dl0A0YWI.js +131 -0
  330. package/dist/prod/packages/shared-chunks/array-EwekEvId.js +117 -0
  331. package/dist/prod/packages/shared-chunks/array-utils-CZQxrdD3.js +45 -0
  332. package/dist/prod/packages/shared-chunks/assert-CUCJBR2C.js +19 -0
  333. package/dist/prod/packages/shared-chunks/cache-qDyqAcpg.js +35 -0
  334. package/dist/prod/packages/shared-chunks/capabilities-DGmQ_mz4.js +26 -0
  335. package/dist/prod/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js +121 -0
  336. package/dist/prod/packages/shared-chunks/collections-GpG8lT2g.js +75 -0
  337. package/dist/prod/packages/shared-chunks/compiler-Ddfo5StE.js +6806 -0
  338. package/dist/prod/packages/shared-chunks/computed_cache-DmYKevAP.js +12 -0
  339. package/dist/prod/packages/shared-chunks/constants-b-2IVErl.js +210 -0
  340. package/dist/prod/packages/shared-chunks/debug-brand-B1TWjOCH.js +12 -0
  341. package/dist/prod/packages/shared-chunks/decorator-BdDDBUd2.js +123 -0
  342. package/dist/prod/packages/shared-chunks/dictionary-gc5gpyOG.js +13 -0
  343. package/dist/prod/packages/shared-chunks/element-builder-CiLTrXD6.js +776 -0
  344. package/dist/prod/packages/shared-chunks/flags-B9qxc-pB.js +24 -0
  345. package/dist/prod/packages/shared-chunks/fragment-EpVz5Xuc.js +910 -0
  346. package/dist/prod/packages/shared-chunks/get-debug-name-BDxIL2Y1.js +3 -0
  347. package/dist/prod/packages/shared-chunks/has-dom-DdQORPzI.js +4 -0
  348. package/dist/prod/packages/shared-chunks/index-CSVCFS_p.js +1904 -0
  349. package/dist/prod/packages/shared-chunks/index-Cc8WmrB-.js +21 -0
  350. package/dist/prod/packages/shared-chunks/index-DZLHQAlb.js +5842 -0
  351. package/dist/prod/packages/shared-chunks/injected_property-DL3vQoFA.js +58 -0
  352. package/dist/prod/packages/shared-chunks/invoke-DxL00a1D.js +53 -0
  353. package/dist/prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js +16 -0
  354. package/dist/prod/packages/shared-chunks/lookup-descriptor-CwcVgaLv.js +13 -0
  355. package/dist/prod/packages/shared-chunks/name-C68GLLO3.js +11 -0
  356. package/dist/prod/packages/shared-chunks/namespace_search-Aog9nySA.js +1070 -0
  357. package/dist/prod/packages/shared-chunks/object-utils-AijlD-JH.js +12 -0
  358. package/dist/prod/packages/shared-chunks/observers-R1ZklwWy.js +714 -0
  359. package/dist/prod/packages/shared-chunks/on-CrTl7JQU.js +3329 -0
  360. package/dist/prod/packages/shared-chunks/program-B7SJZ5NF.js +176 -0
  361. package/dist/prod/packages/shared-chunks/program-context-C-JdYXRA.js +146 -0
  362. package/dist/prod/packages/shared-chunks/property_set-O080KTKZ.js +99 -0
  363. package/dist/prod/packages/shared-chunks/public-api-C3KlJmEr.js +10 -0
  364. package/dist/prod/packages/shared-chunks/reference-BNqcwZWH.js +151 -0
  365. package/dist/prod/packages/shared-chunks/registers-ylirb0dq.js +35 -0
  366. package/dist/prod/packages/shared-chunks/rehydrate-builder-CSn1aIO1.js +459 -0
  367. package/dist/prod/packages/shared-chunks/render-C1ZnScKH.js +1464 -0
  368. package/dist/prod/packages/shared-chunks/rsvp-CnCSY930.js +2306 -0
  369. package/dist/prod/packages/shared-chunks/serialize-builder-CVQ3q8rJ.js +124 -0
  370. package/dist/prod/packages/shared-chunks/set_properties-CjsDTRey.js +101 -0
  371. package/dist/prod/packages/shared-chunks/setup-registry-CMNYh2jY.js +53 -0
  372. package/dist/prod/packages/shared-chunks/simple-cast-DCvJLSin.js +33 -0
  373. package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +275 -0
  374. package/dist/prod/packages/shared-chunks/template-Dc_cBOoX.js +19 -0
  375. package/dist/prod/packages/shared-chunks/tracked-ChVNBE2f.js +131 -0
  376. package/dist/prod/packages/shared-chunks/transform-resolutions-C7wq_Q_c.js +6939 -0
  377. package/dist/prod/packages/shared-chunks/unrecognized-url-error-DDBwfzdm.js +537 -0
  378. package/docs/data.json +3009 -2358
  379. package/lib/index.js +157 -279
  380. package/package.json +27 -58
  381. package/types/stable/@ember/-internals/deprecations/index.d.ts +0 -6
  382. package/types/stable/@ember/-internals/environment/index.d.ts +0 -1
  383. package/types/stable/@ember/-internals/environment/lib/env.d.ts +0 -3
  384. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +3 -6
  385. package/types/stable/@ember/-internals/glimmer/lib/component-managers/root.d.ts +1 -2
  386. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +22 -29
  387. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +2 -2
  388. package/types/stable/@ember/-internals/glimmer/lib/resolver.d.ts +0 -2
  389. package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +0 -1
  390. package/types/stable/@ember/-internals/meta/lib/meta.d.ts +1 -1
  391. package/types/stable/@ember/-internals/metal/lib/alias.d.ts +0 -11
  392. package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +0 -1
  393. package/types/stable/@ember/-internals/metal/lib/each_proxy_events.d.ts +0 -1
  394. package/types/stable/@ember/-internals/metal/lib/observer.d.ts +0 -2
  395. package/types/stable/@ember/-internals/metal/lib/property_get.d.ts +4 -10
  396. package/types/stable/@ember/-internals/utils/index.d.ts +0 -1
  397. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +3 -15
  398. package/types/stable/@ember/application/index.d.ts +2 -63
  399. package/types/stable/@ember/routing/history-location.d.ts +0 -1
  400. package/types/stable/@ember/routing/lib/location-utils.d.ts +1 -2
  401. package/types/stable/@ember/routing/none-location.d.ts +1 -2
  402. package/types/stable/@ember/template-compiler/index.d.ts +1 -0
  403. package/types/stable/@ember/template-compiler/lib/plugins/allowed-globals.d.ts +26 -0
  404. package/types/stable/@ember/test/index.d.ts +0 -3
  405. package/types/stable/@glimmer/interfaces/lib/compile/wire-format/api.d.ts +1 -1
  406. package/types/stable/@glimmer/interfaces/lib/template.d.ts +1 -1
  407. package/types/stable/@glimmer/program/lib/program.d.ts +0 -1
  408. package/types/stable/@glimmer/validator/lib/collections/map.d.ts +1 -1
  409. package/types/stable/@handlebars/parser/types/ast.d.ts +148 -0
  410. package/types/stable/@handlebars/parser/types/index.d.ts +13 -0
  411. package/types/stable/ember-template-compiler/index.d.ts +0 -2
  412. package/types/stable/ember-template-compiler/lib/public-api.d.ts +0 -1
  413. package/types/stable/ember-testing/lib/public-api.d.ts +0 -6
  414. package/types/stable/ember-testing/lib/test/pending_requests.d.ts +0 -3
  415. package/types/stable/ember-testing/lib/test.d.ts +0 -23
  416. package/types/stable/index.d.ts +15 -32
  417. package/types/stable/router_js/index.d.ts +7 -0
  418. package/types/stable/router_js/lib/core.d.ts +9 -0
  419. package/types/stable/router_js/lib/route-info.d.ts +107 -0
  420. package/types/stable/router_js/lib/router.d.ts +245 -0
  421. package/types/stable/router_js/lib/transition-aborted-error.d.ts +15 -0
  422. package/types/stable/router_js/lib/transition-intent/named-transition-intent.d.ts +23 -0
  423. package/types/stable/router_js/lib/transition-intent/url-transition-intent.d.ts +12 -0
  424. package/types/stable/router_js/lib/transition-intent.d.ts +13 -0
  425. package/types/stable/router_js/lib/transition-state.d.ts +25 -0
  426. package/types/stable/router_js/lib/transition.d.ts +241 -0
  427. package/types/stable/router_js/lib/unrecognized-url-error.d.ts +11 -0
  428. package/types/stable/router_js/lib/utils.d.ts +41 -0
  429. package/dist/ember-template-compiler.js +0 -20631
  430. package/dist/ember-template-compiler.js.map +0 -1
  431. package/dist/ember-testing.js +0 -1351
  432. package/dist/ember-testing.js.map +0 -1
  433. package/dist/ember.debug.js +0 -52306
  434. package/dist/ember.debug.js.map +0 -1
  435. package/dist/ember.prod.js +0 -49369
  436. package/dist/ember.prod.js.map +0 -1
  437. package/dist/packages/@ember/-internals/container/index.js +0 -1
  438. package/dist/packages/@ember/-internals/environment/index.js +0 -1
  439. package/dist/packages/@ember/-internals/glimmer/index.js +0 -18
  440. package/dist/packages/@ember/-internals/metal/index.js +0 -51
  441. package/dist/packages/@ember/-internals/utils/index.js +0 -7
  442. package/dist/packages/@ember/application/lib/lazy_load.js +0 -68
  443. package/dist/packages/@ember/component/helper.js +0 -14
  444. package/dist/packages/@ember/modifier/index.js +0 -23
  445. package/dist/packages/@ember/object/-internals.js +0 -35
  446. package/dist/packages/@ember/object/events.js +0 -12
  447. package/dist/packages/@ember/object/observers.js +0 -12
  448. package/dist/packages/@ember/renderer/index.js +0 -14
  449. package/dist/packages/@ember/routing/index.js +0 -14
  450. package/dist/packages/@ember/template/index.js +0 -14
  451. package/dist/packages/@ember/template-factory/index.js +0 -8
  452. package/dist/packages/@ember/test/index.js +0 -27
  453. package/dist/packages/@glimmer/encoder/index.js +0 -1
  454. package/dist/packages/@glimmer/manager/index.js +0 -5
  455. package/dist/packages/@glimmer/node/index.js +0 -2
  456. package/dist/packages/@glimmer/program/index.js +0 -3
  457. package/dist/packages/@glimmer/reference/index.js +0 -2
  458. package/dist/packages/@glimmer/tracking/index.js +0 -48
  459. package/dist/packages/@glimmer/tracking/primitives/cache/index.js +0 -12
  460. package/dist/packages/ember/barrel.js +0 -511
  461. package/dist/packages/ember/index.js +0 -20
  462. package/dist/packages/ember-template-compiler/index.js +0 -17135
  463. package/dist/packages/ember-testing/lib/adapters/qunit.js +0 -53
  464. package/dist/packages/ember-testing/lib/ext/application.js +0 -174
  465. package/dist/packages/ember-testing/lib/ext/rsvp.js +0 -17
  466. package/dist/packages/ember-testing/lib/helpers/and_then.js +0 -11
  467. package/dist/packages/ember-testing/lib/helpers/current_path.js +0 -32
  468. package/dist/packages/ember-testing/lib/helpers/current_route_name.js +0 -32
  469. package/dist/packages/ember-testing/lib/helpers/current_url.js +0 -29
  470. package/dist/packages/ember-testing/lib/helpers/pause_test.js +0 -76
  471. package/dist/packages/ember-testing/lib/helpers/visit.js +0 -51
  472. package/dist/packages/ember-testing/lib/helpers/wait.js +0 -55
  473. package/dist/packages/ember-testing/lib/helpers.js +0 -17
  474. package/dist/packages/ember-testing/lib/initializers.js +0 -56
  475. package/dist/packages/ember-testing/lib/public-api.js +0 -8
  476. package/dist/packages/ember-testing/lib/setup_for_testing.js +0 -31
  477. package/dist/packages/ember-testing/lib/test/helpers.js +0 -133
  478. package/dist/packages/ember-testing/lib/test/on_inject_helpers.js +0 -39
  479. package/dist/packages/ember-testing/lib/test/pending_requests.js +0 -22
  480. package/dist/packages/ember-testing/lib/test/promise.js +0 -83
  481. package/dist/packages/ember-testing/lib/test/run.js +0 -11
  482. package/dist/packages/ember-testing/lib/test.js +0 -68
  483. package/dist/packages/router_js/index.js +0 -2
  484. package/dist/packages/shared-chunks/helpers-C1rIkuSd.js +0 -11
  485. package/dist/packages/shared-chunks/invoke-BjRgvK2V.js +0 -27
  486. package/dist/packages/shared-chunks/public-api-BQsJemZG.js +0 -20
  487. package/dist/packages/shared-chunks/template_registry-DigcUg9m.js +0 -24
  488. package/dist/packages/shared-chunks/to-string-CqD7_vQ4.js +0 -60
  489. package/types/stable/@ember/-internals/environment/lib/global.d.ts +0 -4
  490. package/types/stable/@ember/-internals/glimmer/lib/modifiers/internal.d.ts +0 -34
  491. package/types/stable/@ember/-internals/glimmer/lib/syntax/utils.d.ts +0 -5
  492. package/types/stable/@ember/-internals/glimmer/lib/templates/empty.d.ts +0 -4
  493. package/types/stable/@ember/-internals/glimmer/lib/utils/debug-render-message.d.ts +0 -4
  494. package/types/stable/@ember/-internals/metal/lib/dependent_keys.d.ts +0 -3
  495. package/types/stable/@ember/-internals/utils/lib/symbol.d.ts +0 -5
  496. package/types/stable/@ember/application/lib/lazy_load.d.ts +0 -38
  497. package/types/stable/@ember/template-compiler/lib/public-types.d.ts +0 -3
  498. package/types/stable/ember/barrel.d.ts +0 -358
  499. package/types/stable/ember/index.d.ts +0 -358
  500. package/types/stable/ember-template-compiler/lib/system/bootstrap.d.ts +0 -26
  501. package/types/stable/ember-template-compiler/lib/system/initializer.d.ts +0 -3
  502. package/types/stable/ember-testing/lib/adapters/qunit.d.ts +0 -22
  503. package/types/stable/ember-testing/lib/ext/application.d.ts +0 -12
  504. package/types/stable/ember-testing/lib/ext/rsvp.d.ts +0 -4
  505. package/types/stable/ember-testing/lib/helpers/and_then.d.ts +0 -4
  506. package/types/stable/ember-testing/lib/helpers/current_path.d.ts +0 -22
  507. package/types/stable/ember-testing/lib/helpers/current_route_name.d.ts +0 -21
  508. package/types/stable/ember-testing/lib/helpers/current_url.d.ts +0 -22
  509. package/types/stable/ember-testing/lib/helpers/pause_test.d.ts +0 -52
  510. package/types/stable/ember-testing/lib/helpers/visit.d.ts +0 -22
  511. package/types/stable/ember-testing/lib/helpers/wait.d.ts +0 -34
  512. package/types/stable/ember-testing/lib/helpers.d.ts +0 -3
  513. package/types/stable/ember-testing/lib/initializers.d.ts +0 -3
  514. package/types/stable/ember-testing/lib/setup_for_testing.d.ts +0 -15
  515. package/types/stable/ember-testing/lib/test/helpers.d.ts +0 -116
  516. package/types/stable/ember-testing/lib/test/on_inject_helpers.d.ts +0 -33
  517. package/types/stable/ember-testing/lib/test/promise.d.ts +0 -37
  518. package/types/stable/ember-testing/lib/test/run.d.ts +0 -3
  519. package/types/stable/loader/lib/index.d.ts +0 -4
  520. package/types/stable/require.d.ts +0 -4
  521. /package/dist/{packages → dev/packages}/@ember/-internals/browser-environment/index.js +0 -0
  522. /package/dist/{packages → dev/packages}/@ember/-internals/error-handling/index.js +0 -0
  523. /package/dist/{packages → dev/packages}/@ember/-internals/meta/index.js +0 -0
  524. /package/dist/{packages → dev/packages}/@ember/-internals/owner/index.js +0 -0
  525. /package/dist/{packages → dev/packages}/@ember/-internals/runtime/index.js +0 -0
  526. /package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/comparable.js +0 -0
  527. /package/dist/{packages → dev/packages}/@ember/-internals/runtime/lib/mixins/container_proxy.js +0 -0
  528. /package/dist/{packages → dev/packages}/@ember/-internals/utility-types/index.js +0 -0
  529. /package/dist/{packages → dev/packages}/@ember/-internals/views/index.js +0 -0
  530. /package/dist/{packages → dev/packages}/@ember/-internals/views/lib/compat/attrs.js +0 -0
  531. /package/dist/{packages → dev/packages}/@ember/-internals/views/lib/component_lookup.js +0 -0
  532. /package/dist/{packages → dev/packages}/@ember/array/-internals.js +0 -0
  533. /package/dist/{packages → dev/packages}/@ember/array/lib/make-array.js +0 -0
  534. /package/dist/{packages → dev/packages}/@ember/array/make.js +0 -0
  535. /package/dist/{packages → dev/packages}/@ember/array/mutable.js +0 -0
  536. /package/dist/{packages → dev/packages}/@ember/debug/lib/capture-render-tree.js +0 -0
  537. /package/dist/{packages → dev/packages}/@ember/debug/lib/inspect.js +0 -0
  538. /package/dist/{packages → dev/packages}/@ember/debug/lib/testing.js +0 -0
  539. /package/dist/{packages → dev/packages}/@ember/deprecated-features/index.js +0 -0
  540. /package/dist/{packages → dev/packages}/@ember/destroyable/index.js +0 -0
  541. /package/dist/{packages → dev/packages}/@ember/engine/lib/engine-parent.js +0 -0
  542. /package/dist/{packages → dev/packages}/@ember/engine/parent.js +0 -0
  543. /package/dist/{packages → dev/packages}/@ember/enumerable/index.js +0 -0
  544. /package/dist/{packages → dev/packages}/@ember/enumerable/mutable.js +0 -0
  545. /package/dist/{packages → dev/packages}/@ember/object/proxy.js +0 -0
  546. /package/dist/{packages → dev/packages}/@ember/owner/index.js +0 -0
  547. /package/dist/{packages → dev/packages}/@ember/reactive/collections.js +0 -0
  548. /package/dist/{packages → dev/packages}/@ember/reactive/index.js +0 -0
  549. /package/dist/{packages → dev/packages}/@ember/routing/lib/cache.js +0 -0
  550. /package/dist/{packages → dev/packages}/@ember/routing/lib/controller_for.js +0 -0
  551. /package/dist/{packages → dev/packages}/@ember/routing/lib/query_params.js +0 -0
  552. /package/dist/{packages → dev/packages}/@ember/routing/lib/router_state.js +0 -0
  553. /package/dist/{packages → dev/packages}/@ember/template-compiler/-internal-primitives.js +0 -0
  554. /package/dist/{packages → dev/packages}/@ember/template-compiler/-internal-utils.js +0 -0
  555. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/-internal/primitives.js +0 -0
  556. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-action-syntax.js +0 -0
  557. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-each-in-into-each.js +0 -0
  558. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.js +0 -0
  559. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.js +0 -0
  560. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/plugins/utils.js +0 -0
  561. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/public-api.js +0 -0
  562. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/runtime.js +0 -0
  563. /package/dist/{packages → dev/packages}/@ember/template-compiler/lib/system/calculate-location-display.js +0 -0
  564. /package/dist/{packages → dev/packages}/@ember/template-compiler/runtime.js +0 -0
  565. /package/dist/{packages → dev/packages}/@ember/test/adapter.js +0 -0
  566. /package/dist/{packages → dev/packages}/@ember/utils/index.js +0 -0
  567. /package/dist/{packages → dev/packages}/@ember/utils/lib/is-equal.js +0 -0
  568. /package/dist/{packages → dev/packages}/@ember/utils/lib/is_blank.js +0 -0
  569. /package/dist/{packages → dev/packages}/@ember/utils/lib/is_none.js +0 -0
  570. /package/dist/{packages → dev/packages}/@ember/utils/lib/is_present.js +0 -0
  571. /package/dist/{packages → dev/packages}/@ember/utils/lib/type-of.js +0 -0
  572. /package/dist/{packages → dev/packages}/@ember/version/index.js +0 -0
  573. /package/dist/{packages → dev/packages}/@glimmer/env/index.js +0 -0
  574. /package/dist/{packages → dev/packages}/@glimmer/owner/index.js +0 -0
  575. /package/dist/{packages → dev/packages}/@glimmer/wire-format/index.js +0 -0
  576. /package/dist/{packages → dev/packages}/@simple-dom/document/index.js +0 -0
  577. /package/dist/{packages → dev/packages}/backburner.js/index.js +0 -0
  578. /package/dist/{packages → dev/packages}/dag-map/index.js +0 -0
  579. /package/dist/{packages → dev/packages}/ember-testing/lib/adapters/adapter.js +0 -0
  580. /package/dist/{packages → dev/packages}/ember-testing/lib/test/adapter.js +0 -0
  581. /package/dist/{packages → dev/packages}/ember-testing/lib/test/waiters.js +0 -0
  582. /package/dist/{packages → dev/packages}/route-recognizer/index.js +0 -0
  583. /package/dist/{packages → dev/packages}/rsvp/index.js +0 -0
  584. /package/dist/{packages → dev/packages}/shared-chunks/array-utils-CZQxrdD3.js +0 -0
  585. /package/dist/{packages → dev/packages}/shared-chunks/assert-CUCJBR2C.js +0 -0
  586. /package/dist/{packages → dev/packages}/shared-chunks/cache-qDyqAcpg.js +0 -0
  587. /package/dist/{packages → dev/packages}/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js +0 -0
  588. /package/dist/{packages → dev/packages}/shared-chunks/computed_cache-DmYKevAP.js +0 -0
  589. /package/dist/{packages → dev/packages}/shared-chunks/debug-brand-B1TWjOCH.js +0 -0
  590. /package/dist/{packages → dev/packages}/shared-chunks/dictionary-gc5gpyOG.js +0 -0
  591. /package/dist/{packages → dev/packages}/shared-chunks/index-BGP1rw3B.js +0 -0
  592. /package/dist/{packages → dev/packages}/shared-chunks/object-utils-AijlD-JH.js +0 -0
  593. /package/dist/{packages → dev/packages}/shared-chunks/present-B1rrjAVM.js +0 -0
  594. /package/dist/{packages → dev/packages}/shared-chunks/registers-ylirb0dq.js +0 -0
  595. /package/dist/{packages → dev/packages}/shared-chunks/rsvp-CnCSY930.js +0 -0
  596. /package/dist/{packages → prod/packages}/@ember/routing/-internals.js +0 -0
  597. /package/dist/{packages/@ember/template-compiler/index.js → prod/packages/@ember/template-compiler/runtime.js} +0 -0
@@ -0,0 +1,1032 @@
1
+ import '../../../-internals/environment/index.js';
2
+ import { c as computed, m as autoComputed } from '../../../../shared-chunks/namespace_search-Aog9nySA.js';
3
+ import '../../../../shared-chunks/super-Cm_a_cLQ.js';
4
+ import '../../../../@glimmer/validator/index.js';
5
+ import '../../../../shared-chunks/reference-BNqcwZWH.js';
6
+ import '../../../../shared-chunks/capabilities-DGmQ_mz4.js';
7
+ import { g as get } from '../../../../shared-chunks/observers-R1ZklwWy.js';
8
+ import '../../index.js';
9
+ import '../../core.js';
10
+ import compare from '../../../utils/lib/compare.js';
11
+ import EmberArray, { A, uniqBy as uniqBy$1 } from '../../../array/index.js';
12
+
13
+ /**
14
+ @module @ember/object
15
+ */
16
+
17
+ function isNativeOrEmberArray(obj) {
18
+ return Array.isArray(obj) || EmberArray.detect(obj);
19
+ }
20
+ function reduceMacro(dependentKey, callback, initialValue, name) {
21
+ return computed(`${dependentKey}.[]`, function () {
22
+ let arr = get(this, dependentKey);
23
+ if (arr === null || typeof arr !== 'object') {
24
+ return initialValue;
25
+ }
26
+ return arr.reduce(callback, initialValue, this);
27
+ }).readOnly();
28
+ }
29
+ function arrayMacro(dependentKey, additionalDependentKeys, callback) {
30
+ // This is a bit ugly
31
+ let propertyName;
32
+ if (/@each/.test(dependentKey)) {
33
+ propertyName = dependentKey.replace(/\.@each.*$/, '');
34
+ } else {
35
+ propertyName = dependentKey;
36
+ dependentKey += '.[]';
37
+ }
38
+ return computed(dependentKey, ...additionalDependentKeys, function () {
39
+ let value = get(this, propertyName);
40
+ if (isNativeOrEmberArray(value)) {
41
+ return A(callback.call(this, value));
42
+ } else {
43
+ return A();
44
+ }
45
+ }).readOnly();
46
+ }
47
+ function multiArrayMacro(_dependentKeys, callback, name) {
48
+ let dependentKeys = _dependentKeys.map(key => `${key}.[]`);
49
+ return computed(...dependentKeys, function () {
50
+ return A(callback.call(this, _dependentKeys));
51
+ }).readOnly();
52
+ }
53
+
54
+ /**
55
+ A computed property that returns the sum of the values in the dependent array.
56
+
57
+ Example:
58
+
59
+ ```javascript
60
+ import { sum } from '@ember/object/computed';
61
+
62
+ class Invoice {
63
+ lineItems = [1.00, 2.50, 9.99];
64
+
65
+ @sum('lineItems') total;
66
+ }
67
+
68
+ let invoice = new Invoice();
69
+
70
+ invoice.total; // 13.49
71
+ ```
72
+
73
+ @method sum
74
+ @for @ember/object/computed
75
+ @static
76
+ @param {String} dependentKey
77
+ @return {ComputedProperty} computes the sum of all values in the
78
+ dependentKey's array
79
+ @since 1.4.0
80
+ @public
81
+ */
82
+ function sum(dependentKey) {
83
+ return reduceMacro(dependentKey, (sum, item) => sum + item, 0);
84
+ }
85
+
86
+ /**
87
+ A computed property that calculates the maximum value in the dependent array.
88
+ This will return `-Infinity` when the dependent array is empty.
89
+
90
+ Example:
91
+
92
+ ```javascript
93
+ import { set } from '@ember/object';
94
+ import { mapBy, max } from '@ember/object/computed';
95
+
96
+ class Person {
97
+ children = [];
98
+
99
+ @mapBy('children', 'age') childAges;
100
+ @max('childAges') maxChildAge;
101
+ }
102
+
103
+ let lordByron = new Person();
104
+
105
+ lordByron.maxChildAge; // -Infinity
106
+
107
+ set(lordByron, 'children', [
108
+ {
109
+ name: 'Augusta Ada Byron',
110
+ age: 7
111
+ }
112
+ ]);
113
+ lordByron.maxChildAge; // 7
114
+
115
+ set(lordByron, 'children', [
116
+ ...lordByron.children,
117
+ {
118
+ name: 'Allegra Byron',
119
+ age: 5
120
+ }, {
121
+ name: 'Elizabeth Medora Leigh',
122
+ age: 8
123
+ }
124
+ ]);
125
+ lordByron.maxChildAge; // 8
126
+ ```
127
+
128
+ If the types of the arguments are not numbers, they will be converted to
129
+ numbers and the type of the return value will always be `Number`. For example,
130
+ the max of a list of Date objects will be the highest timestamp as a `Number`.
131
+ This behavior is consistent with `Math.max`.
132
+
133
+ @method max
134
+ @for @ember/object/computed
135
+ @static
136
+ @param {String} dependentKey
137
+ @return {ComputedProperty} computes the largest value in the dependentKey's
138
+ array
139
+ @public
140
+ */
141
+ function max(dependentKey) {
142
+ return reduceMacro(dependentKey, (max, item) => Math.max(max, item), -Infinity);
143
+ }
144
+
145
+ /**
146
+ A computed property that calculates the minimum value in the dependent array.
147
+ This will return `Infinity` when the dependent array is empty.
148
+
149
+ Example:
150
+
151
+ ```javascript
152
+ import { set } from '@ember/object';
153
+ import { mapBy, min } from '@ember/object/computed';
154
+
155
+ class Person {
156
+ children = [];
157
+
158
+ @mapBy('children', 'age') childAges;
159
+ @min('childAges') minChildAge;
160
+ }
161
+
162
+ let lordByron = Person.create({ children: [] });
163
+
164
+ lordByron.minChildAge; // Infinity
165
+
166
+ set(lordByron, 'children', [
167
+ {
168
+ name: 'Augusta Ada Byron',
169
+ age: 7
170
+ }
171
+ ]);
172
+ lordByron.minChildAge; // 7
173
+
174
+ set(lordByron, 'children', [
175
+ ...lordByron.children,
176
+ {
177
+ name: 'Allegra Byron',
178
+ age: 5
179
+ }, {
180
+ name: 'Elizabeth Medora Leigh',
181
+ age: 8
182
+ }
183
+ ]);
184
+ lordByron.minChildAge; // 5
185
+ ```
186
+
187
+ If the types of the arguments are not numbers, they will be converted to
188
+ numbers and the type of the return value will always be `Number`. For example,
189
+ the min of a list of Date objects will be the lowest timestamp as a `Number`.
190
+ This behavior is consistent with `Math.min`.
191
+
192
+ @method min
193
+ @for @ember/object/computed
194
+ @static
195
+ @param {String} dependentKey
196
+ @return {ComputedProperty} computes the smallest value in the dependentKey's array
197
+ @public
198
+ */
199
+ function min(dependentKey) {
200
+ return reduceMacro(dependentKey, (min, item) => Math.min(min, item), Infinity);
201
+ }
202
+
203
+ /**
204
+ Returns an array mapped via the callback
205
+
206
+ The callback method you provide should have the following signature:
207
+ - `item` is the current item in the iteration.
208
+ - `index` is the integer index of the current item in the iteration.
209
+
210
+ ```javascript
211
+ function mapCallback(item, index);
212
+ ```
213
+
214
+ Example:
215
+
216
+ ```javascript
217
+ import { set } from '@ember/object';
218
+ import { map } from '@ember/object/computed';
219
+
220
+ class Hamster {
221
+ constructor(chores) {
222
+ set(this, 'chores', chores);
223
+ }
224
+
225
+ @map('chores', function(chore, index) {
226
+ return `${chore.toUpperCase()}!`;
227
+ })
228
+ excitingChores;
229
+ });
230
+
231
+ let hamster = new Hamster(['clean', 'write more unit tests']);
232
+
233
+ hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
234
+ ```
235
+
236
+ You can optionally pass an array of additional dependent keys as the second
237
+ parameter to the macro, if your map function relies on any external values:
238
+
239
+ ```javascript
240
+ import { set } from '@ember/object';
241
+ import { map } from '@ember/object/computed';
242
+
243
+ class Hamster {
244
+ shouldUpperCase = false;
245
+
246
+ constructor(chores) {
247
+ set(this, 'chores', chores);
248
+ }
249
+
250
+ @map('chores', ['shouldUpperCase'], function(chore, index) {
251
+ if (this.shouldUpperCase) {
252
+ return `${chore.toUpperCase()}!`;
253
+ } else {
254
+ return `${chore}!`;
255
+ }
256
+ })
257
+ excitingChores;
258
+ }
259
+
260
+ let hamster = new Hamster(['clean', 'write more unit tests']);
261
+
262
+ hamster.excitingChores; // ['clean!', 'write more unit tests!']
263
+
264
+ set(hamster, 'shouldUpperCase', true);
265
+ hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
266
+ ```
267
+
268
+ @method map
269
+ @for @ember/object/computed
270
+ @static
271
+ @param {String} dependentKey
272
+ @param {Array} [additionalDependentKeys] optional array of additional
273
+ dependent keys
274
+ @param {Function} callback
275
+ @return {ComputedProperty} an array mapped via the callback
276
+ @public
277
+ */
278
+
279
+ function map(dependentKey, additionalDependentKeysOrCallback, callback) {
280
+ let additionalDependentKeys;
281
+ if (typeof additionalDependentKeysOrCallback === 'function') {
282
+ callback = additionalDependentKeysOrCallback;
283
+ additionalDependentKeys = [];
284
+ } else {
285
+ additionalDependentKeys = additionalDependentKeysOrCallback;
286
+ }
287
+ const cCallback = callback;
288
+ return arrayMacro(dependentKey, additionalDependentKeys, function (value) {
289
+ // This is so dumb...
290
+ return Array.isArray(value) ? value.map(cCallback, this) : value.map(cCallback, this);
291
+ });
292
+ }
293
+
294
+ /**
295
+ Returns an array mapped to the specified key.
296
+
297
+ Example:
298
+
299
+ ```javascript
300
+ import { set } from '@ember/object';
301
+ import { mapBy } from '@ember/object/computed';
302
+
303
+ class Person {
304
+ children = [];
305
+
306
+ @mapBy('children', 'age') childAges;
307
+ }
308
+
309
+ let lordByron = new Person();
310
+
311
+ lordByron.childAges; // []
312
+
313
+ set(lordByron, 'children', [
314
+ {
315
+ name: 'Augusta Ada Byron',
316
+ age: 7
317
+ }
318
+ ]);
319
+ lordByron.childAges; // [7]
320
+
321
+ set(lordByron, 'children', [
322
+ ...lordByron.children,
323
+ {
324
+ name: 'Allegra Byron',
325
+ age: 5
326
+ }, {
327
+ name: 'Elizabeth Medora Leigh',
328
+ age: 8
329
+ }
330
+ ]);
331
+ lordByron.childAges; // [7, 5, 8]
332
+ ```
333
+
334
+ @method mapBy
335
+ @for @ember/object/computed
336
+ @static
337
+ @param {String} dependentKey
338
+ @param {String} propertyKey
339
+ @return {ComputedProperty} an array mapped to the specified key
340
+ @public
341
+ */
342
+ function mapBy(dependentKey, propertyKey) {
343
+ return map(`${dependentKey}.@each.${propertyKey}`, item => get(item, propertyKey));
344
+ }
345
+
346
+ /**
347
+ Filters the array by the callback, like the `Array.prototype.filter` method.
348
+
349
+ The callback method you provide should have the following signature:
350
+ - `item` is the current item in the iteration.
351
+ - `index` is the integer index of the current item in the iteration.
352
+ - `array` is the dependant array itself.
353
+
354
+ ```javascript
355
+ function filterCallback(item, index, array);
356
+ ```
357
+
358
+ In the callback, return a truthy value that coerces to true to keep the
359
+ element, or a falsy to reject it.
360
+
361
+ Example:
362
+
363
+ ```javascript
364
+ import { set } from '@ember/object';
365
+ import { filter } from '@ember/object/computed';
366
+
367
+ class Hamster {
368
+ constructor(chores) {
369
+ set(this, 'chores', chores);
370
+ }
371
+
372
+ @filter('chores', function(chore, index, array) {
373
+ return !chore.done;
374
+ })
375
+ remainingChores;
376
+ }
377
+
378
+ let hamster = Hamster.create([
379
+ { name: 'cook', done: true },
380
+ { name: 'clean', done: true },
381
+ { name: 'write more unit tests', done: false }
382
+ ]);
383
+
384
+ hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
385
+ ```
386
+
387
+ You can also use `@each.property` in your dependent key, the callback will
388
+ still use the underlying array:
389
+
390
+ ```javascript
391
+ import { set } from '@ember/object';
392
+ import { filter } from '@ember/object/computed';
393
+
394
+ class Hamster {
395
+ constructor(chores) {
396
+ set(this, 'chores', chores);
397
+ }
398
+
399
+ @filter('chores.@each.done', function(chore, index, array) {
400
+ return !chore.done;
401
+ })
402
+ remainingChores;
403
+ }
404
+
405
+ let hamster = new Hamster([
406
+ { name: 'cook', done: true },
407
+ { name: 'clean', done: true },
408
+ { name: 'write more unit tests', done: false }
409
+ ]);
410
+ hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
411
+
412
+ set(hamster.chores[2], 'done', true);
413
+ hamster.remainingChores; // []
414
+ ```
415
+
416
+ Finally, you can optionally pass an array of additional dependent keys as the
417
+ second parameter to the macro, if your filter function relies on any external
418
+ values:
419
+
420
+ ```javascript
421
+ import { filter } from '@ember/object/computed';
422
+
423
+ class Hamster {
424
+ constructor(chores) {
425
+ set(this, 'chores', chores);
426
+ }
427
+
428
+ doneKey = 'finished';
429
+
430
+ @filter('chores', ['doneKey'], function(chore, index, array) {
431
+ return !chore[this.doneKey];
432
+ })
433
+ remainingChores;
434
+ }
435
+
436
+ let hamster = new Hamster([
437
+ { name: 'cook', finished: true },
438
+ { name: 'clean', finished: true },
439
+ { name: 'write more unit tests', finished: false }
440
+ ]);
441
+
442
+ hamster.remainingChores; // [{name: 'write more unit tests', finished: false}]
443
+ ```
444
+
445
+ @method filter
446
+ @for @ember/object/computed
447
+ @static
448
+ @param {String} dependentKey
449
+ @param {Array} [additionalDependentKeys] optional array of additional dependent keys
450
+ @param {Function} callback
451
+ @return {ComputedProperty} the filtered array
452
+ @public
453
+ */
454
+
455
+ function filter(dependentKey, additionalDependentKeysOrCallback, callback) {
456
+ let additionalDependentKeys;
457
+ if (typeof additionalDependentKeysOrCallback === 'function') {
458
+ callback = additionalDependentKeysOrCallback;
459
+ additionalDependentKeys = [];
460
+ } else {
461
+ additionalDependentKeys = additionalDependentKeysOrCallback;
462
+ }
463
+ const cCallback = callback;
464
+ return arrayMacro(dependentKey, additionalDependentKeys, function (value) {
465
+ // This is a really silly way to keep TS happy
466
+ return Array.isArray(value) ? value.filter(cCallback, this) : value.filter(cCallback, this);
467
+ });
468
+ }
469
+
470
+ /**
471
+ Filters the array by the property and value.
472
+
473
+ Example:
474
+
475
+ ```javascript
476
+ import { set } from '@ember/object';
477
+ import { filterBy } from '@ember/object/computed';
478
+
479
+ class Hamster {
480
+ constructor(chores) {
481
+ set(this, 'chores', chores);
482
+ }
483
+
484
+ @filterBy('chores', 'done', false) remainingChores;
485
+ }
486
+
487
+ let hamster = new Hamster([
488
+ { name: 'cook', done: true },
489
+ { name: 'clean', done: true },
490
+ { name: 'write more unit tests', done: false }
491
+ ]);
492
+
493
+ hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
494
+ ```
495
+
496
+ @method filterBy
497
+ @for @ember/object/computed
498
+ @static
499
+ @param {String} dependentKey
500
+ @param {String} propertyKey
501
+ @param {*} value
502
+ @return {ComputedProperty} the filtered array
503
+ @public
504
+ */
505
+ function filterBy(dependentKey, propertyKey, value) {
506
+ let callback;
507
+ if (arguments.length === 2) {
508
+ callback = item => get(item, propertyKey);
509
+ } else {
510
+ callback = item => get(item, propertyKey) === value;
511
+ }
512
+ return filter(`${dependentKey}.@each.${propertyKey}`, callback);
513
+ }
514
+
515
+ /**
516
+ A computed property which returns a new array with all the unique elements
517
+ from one or more dependent arrays.
518
+
519
+ Example:
520
+
521
+ ```javascript
522
+ import { set } from '@ember/object';
523
+ import { uniq } from '@ember/object/computed';
524
+
525
+ class Hamster {
526
+ constructor(fruits) {
527
+ set(this, 'fruits', fruits);
528
+ }
529
+
530
+ @uniq('fruits') uniqueFruits;
531
+ }
532
+
533
+ let hamster = new Hamster([
534
+ 'banana',
535
+ 'grape',
536
+ 'kale',
537
+ 'banana'
538
+ ]);
539
+
540
+ hamster.uniqueFruits; // ['banana', 'grape', 'kale']
541
+ ```
542
+
543
+ @method uniq
544
+ @for @ember/object/computed
545
+ @static
546
+ @param {String} propertyKey*
547
+ @return {ComputedProperty} computes a new array with all the
548
+ unique elements from the dependent array
549
+ @public
550
+ */
551
+ function uniq(dependentKey, ...additionalDependentKeys) {
552
+ let args = [dependentKey, ...additionalDependentKeys];
553
+ return multiArrayMacro(args, function (dependentKeys) {
554
+ let uniq = A();
555
+ let seen = new Set();
556
+ dependentKeys.forEach(dependentKey => {
557
+ let value = get(this, dependentKey);
558
+ if (isNativeOrEmberArray(value)) {
559
+ value.forEach(item => {
560
+ if (!seen.has(item)) {
561
+ seen.add(item);
562
+ uniq.push(item);
563
+ }
564
+ });
565
+ }
566
+ });
567
+ return uniq;
568
+ });
569
+ }
570
+
571
+ /**
572
+ A computed property which returns a new array with all the unique elements
573
+ from an array, with uniqueness determined by specific key.
574
+
575
+ Example:
576
+
577
+ ```javascript
578
+ import { set } from '@ember/object';
579
+ import { uniqBy } from '@ember/object/computed';
580
+
581
+ class Hamster {
582
+ constructor(fruits) {
583
+ set(this, 'fruits', fruits);
584
+ }
585
+
586
+ @uniqBy('fruits', 'id') uniqueFruits;
587
+ }
588
+
589
+ let hamster = new Hamster([
590
+ { id: 1, 'banana' },
591
+ { id: 2, 'grape' },
592
+ { id: 3, 'peach' },
593
+ { id: 1, 'banana' }
594
+ ]);
595
+
596
+ hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
597
+ ```
598
+
599
+ @method uniqBy
600
+ @for @ember/object/computed
601
+ @static
602
+ @param {String} dependentKey
603
+ @param {String} propertyKey
604
+ @return {ComputedProperty} computes a new array with all the
605
+ unique elements from the dependent array
606
+ @public
607
+ */
608
+ function uniqBy(dependentKey, propertyKey) {
609
+ return computed(`${dependentKey}.[]`, function () {
610
+ let list = get(this, dependentKey);
611
+ return isNativeOrEmberArray(list) ? uniqBy$1(list, propertyKey) : A();
612
+ }).readOnly();
613
+ }
614
+
615
+ /**
616
+ A computed property which returns a new array with all the unique elements
617
+ from one or more dependent arrays.
618
+
619
+ Example:
620
+
621
+ ```javascript
622
+ import { set } from '@ember/object';
623
+ import { union } from '@ember/object/computed';
624
+
625
+ class Hamster {
626
+ constructor(fruits, vegetables) {
627
+ set(this, 'fruits', fruits);
628
+ set(this, 'vegetables', vegetables);
629
+ }
630
+
631
+ @union('fruits', 'vegetables') uniqueFruits;
632
+ });
633
+
634
+ let hamster = new, Hamster(
635
+ [
636
+ 'banana',
637
+ 'grape',
638
+ 'kale',
639
+ 'banana',
640
+ 'tomato'
641
+ ],
642
+ [
643
+ 'tomato',
644
+ 'carrot',
645
+ 'lettuce'
646
+ ]
647
+ );
648
+
649
+ hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
650
+ ```
651
+
652
+ @method union
653
+ @for @ember/object/computed
654
+ @static
655
+ @param {String} propertyKey*
656
+ @return {ComputedProperty} computes a new array with all the unique elements
657
+ from one or more dependent arrays.
658
+ @public
659
+ */
660
+ let union = uniq;
661
+
662
+ /**
663
+ A computed property which returns a new array with all the elements
664
+ two or more dependent arrays have in common.
665
+
666
+ Example:
667
+
668
+ ```javascript
669
+ import { set } from '@ember/object';
670
+ import { intersect } from '@ember/object/computed';
671
+
672
+ class FriendGroups {
673
+ constructor(adaFriends, charlesFriends) {
674
+ set(this, 'adaFriends', adaFriends);
675
+ set(this, 'charlesFriends', charlesFriends);
676
+ }
677
+
678
+ @intersect('adaFriends', 'charlesFriends') friendsInCommon;
679
+ }
680
+
681
+ let groups = new FriendGroups(
682
+ ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
683
+ ['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']
684
+ );
685
+
686
+ groups.friendsInCommon; // ['William King', 'Mary Somerville']
687
+ ```
688
+
689
+ @method intersect
690
+ @for @ember/object/computed
691
+ @static
692
+ @param {String} propertyKey*
693
+ @return {ComputedProperty} computes a new array with all the duplicated
694
+ elements from the dependent arrays
695
+ @public
696
+ */
697
+ function intersect(dependentKey, ...additionalDependentKeys) {
698
+ let args = [dependentKey, ...additionalDependentKeys];
699
+ return multiArrayMacro(args, function (dependentKeys) {
700
+ let arrays = dependentKeys.map(dependentKey => {
701
+ let array = get(this, dependentKey);
702
+ return Array.isArray(array) ? array : [];
703
+ });
704
+ let firstArray = arrays.pop();
705
+ let results = firstArray.filter(candidate => {
706
+ for (let array of arrays) {
707
+ let found = false;
708
+ for (let item of array) {
709
+ if (item === candidate) {
710
+ found = true;
711
+ break;
712
+ }
713
+ }
714
+ if (found === false) {
715
+ return false;
716
+ }
717
+ }
718
+ return true;
719
+ });
720
+ return A(results);
721
+ });
722
+ }
723
+
724
+ /**
725
+ A computed property which returns a new array with all the properties from the
726
+ first dependent array that are not in the second dependent array.
727
+
728
+ Example:
729
+
730
+ ```javascript
731
+ import { set } from '@ember/object';
732
+ import { setDiff } from '@ember/object/computed';
733
+
734
+ class Hamster {
735
+ constructor(likes, fruits) {
736
+ set(this, 'likes', likes);
737
+ set(this, 'fruits', fruits);
738
+ }
739
+
740
+ @setDiff('likes', 'fruits') wants;
741
+ }
742
+
743
+ let hamster = new Hamster(
744
+ [
745
+ 'banana',
746
+ 'grape',
747
+ 'kale'
748
+ ],
749
+ [
750
+ 'grape',
751
+ 'kale',
752
+ ]
753
+ );
754
+
755
+ hamster.wants; // ['banana']
756
+ ```
757
+
758
+ @method setDiff
759
+ @for @ember/object/computed
760
+ @static
761
+ @param {String} setAProperty
762
+ @param {String} setBProperty
763
+ @return {ComputedProperty} computes a new array with all the items from the
764
+ first dependent array that are not in the second dependent array
765
+ @public
766
+ */
767
+ function setDiff(setAProperty, setBProperty) {
768
+ return computed(`${setAProperty}.[]`, `${setBProperty}.[]`, function () {
769
+ let setA = get(this, setAProperty);
770
+ let setB = get(this, setBProperty);
771
+ if (!isNativeOrEmberArray(setA)) {
772
+ return A();
773
+ }
774
+ if (!isNativeOrEmberArray(setB)) {
775
+ return setA;
776
+ }
777
+ return setA.filter(x => setB.indexOf(x) === -1);
778
+ }).readOnly();
779
+ }
780
+
781
+ /**
782
+ A computed property that returns the array of values for the provided
783
+ dependent properties.
784
+
785
+ Example:
786
+
787
+ ```javascript
788
+ import { set } from '@ember/object';
789
+ import { collect } from '@ember/object/computed';
790
+
791
+ class Hamster {
792
+ @collect('hat', 'shirt') clothes;
793
+ }
794
+
795
+ let hamster = new Hamster();
796
+
797
+ hamster.clothes; // [null, null]
798
+
799
+ set(hamster, 'hat', 'Camp Hat');
800
+ set(hamster, 'shirt', 'Camp Shirt');
801
+ hamster.clothes; // ['Camp Hat', 'Camp Shirt']
802
+ ```
803
+
804
+ @method collect
805
+ @for @ember/object/computed
806
+ @static
807
+ @param {String} dependentKey*
808
+ @return {ComputedProperty} computed property which maps values of all passed
809
+ in properties to an array.
810
+ @public
811
+ */
812
+ function collect(dependentKey, ...additionalDependentKeys) {
813
+ let dependentKeys = [dependentKey, ...additionalDependentKeys];
814
+ return multiArrayMacro(dependentKeys, function () {
815
+ let res = dependentKeys.map(key => {
816
+ let val = get(this, key);
817
+ return val === undefined ? null : val;
818
+ });
819
+ return A(res);
820
+ });
821
+ }
822
+
823
+ // (UN)SAFETY: we use `any` here to match how TS defines the sorting for arrays.
824
+ // Additionally, since we're using it with *decorators*, we don't have any way
825
+ // to plumb through the relationship between the types in a way that would be
826
+ // variance-safe.
827
+
828
+ /**
829
+ A computed property which returns a new array with all the properties from the
830
+ first dependent array sorted based on a property or sort function. The sort
831
+ macro can be used in two different ways:
832
+
833
+ 1. By providing a sort callback function
834
+ 2. By providing an array of keys to sort the array
835
+
836
+ In the first form, the callback method you provide should have the following
837
+ signature:
838
+
839
+ ```javascript
840
+ function sortCallback(itemA, itemB);
841
+ ```
842
+
843
+ - `itemA` the first item to compare.
844
+ - `itemB` the second item to compare.
845
+
846
+ This function should return negative number (e.g. `-1`) when `itemA` should
847
+ come before `itemB`. It should return positive number (e.g. `1`) when `itemA`
848
+ should come after `itemB`. If the `itemA` and `itemB` are equal this function
849
+ should return `0`.
850
+
851
+ Therefore, if this function is comparing some numeric values, simple `itemA -
852
+ itemB` or `itemA.get( 'foo' ) - itemB.get( 'foo' )` can be used instead of
853
+ series of `if`.
854
+
855
+ Example:
856
+
857
+ ```javascript
858
+ import { set } from '@ember/object';
859
+ import { sort } from '@ember/object/computed';
860
+
861
+ class ToDoList {
862
+ constructor(todos) {
863
+ set(this, 'todos', todos);
864
+ }
865
+
866
+ // using a custom sort function
867
+ @sort('todos', function(a, b){
868
+ if (a.priority > b.priority) {
869
+ return 1;
870
+ } else if (a.priority < b.priority) {
871
+ return -1;
872
+ }
873
+
874
+ return 0;
875
+ })
876
+ priorityTodos;
877
+ }
878
+
879
+ let todoList = new ToDoList([
880
+ { name: 'Unit Test', priority: 2 },
881
+ { name: 'Documentation', priority: 3 },
882
+ { name: 'Release', priority: 1 }
883
+ ]);
884
+
885
+ todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
886
+ ```
887
+
888
+ You can also optionally pass an array of additional dependent keys as the
889
+ second parameter, if your sort function is dependent on additional values that
890
+ could changes:
891
+
892
+ ```js
893
+ import EmberObject, { set } from '@ember/object';
894
+ import { sort } from '@ember/object/computed';
895
+
896
+ class ToDoList {
897
+ sortKey = 'priority';
898
+
899
+ constructor(todos) {
900
+ set(this, 'todos', todos);
901
+ }
902
+
903
+ // using a custom sort function
904
+ @sort('todos', ['sortKey'], function(a, b){
905
+ if (a[this.sortKey] > b[this.sortKey]) {
906
+ return 1;
907
+ } else if (a[this.sortKey] < b[this.sortKey]) {
908
+ return -1;
909
+ }
910
+
911
+ return 0;
912
+ })
913
+ sortedTodos;
914
+ });
915
+
916
+ let todoList = new ToDoList([
917
+ { name: 'Unit Test', priority: 2 },
918
+ { name: 'Documentation', priority: 3 },
919
+ { name: 'Release', priority: 1 }
920
+ ]);
921
+
922
+ todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
923
+ ```
924
+
925
+ In the second form, you should provide the key of the array of sort values as
926
+ the second parameter:
927
+
928
+ ```javascript
929
+ import { set } from '@ember/object';
930
+ import { sort } from '@ember/object/computed';
931
+
932
+ class ToDoList {
933
+ constructor(todos) {
934
+ set(this, 'todos', todos);
935
+ }
936
+
937
+ // using standard ascending sort
938
+ todosSorting = ['name'];
939
+ @sort('todos', 'todosSorting') sortedTodos;
940
+
941
+ // using descending sort
942
+ todosSortingDesc = ['name:desc'];
943
+ @sort('todos', 'todosSortingDesc') sortedTodosDesc;
944
+ }
945
+
946
+ let todoList = new ToDoList([
947
+ { name: 'Unit Test', priority: 2 },
948
+ { name: 'Documentation', priority: 3 },
949
+ { name: 'Release', priority: 1 }
950
+ ]);
951
+
952
+ todoList.sortedTodos; // [{ name:'Documentation', priority:3 }, { name:'Release', priority:1 }, { name:'Unit Test', priority:2 }]
953
+ todoList.sortedTodosDesc; // [{ name:'Unit Test', priority:2 }, { name:'Release', priority:1 }, { name:'Documentation', priority:3 }]
954
+ ```
955
+
956
+ @method sort
957
+ @for @ember/object/computed
958
+ @static
959
+ @param {String} itemsKey
960
+ @param {String|Function|Array} sortDefinitionOrDependentKeys The key of the sort definition (an array of sort properties),
961
+ the sort function, or an array of additional dependent keys
962
+ @param {Function?} sortDefinition the sort function (when used with additional dependent keys)
963
+ @return {ComputedProperty} computes a new sorted array based on the sort
964
+ property array or callback function
965
+ @public
966
+ */
967
+
968
+ function sort(itemsKey, additionalDependentKeysOrDefinition, sortDefinition) {
969
+ let additionalDependentKeys;
970
+ let sortDefinitionOrString;
971
+ if (Array.isArray(additionalDependentKeysOrDefinition)) {
972
+ additionalDependentKeys = additionalDependentKeysOrDefinition;
973
+ sortDefinitionOrString = sortDefinition;
974
+ } else {
975
+ additionalDependentKeys = [];
976
+ sortDefinitionOrString = additionalDependentKeysOrDefinition;
977
+ }
978
+ if (typeof sortDefinitionOrString === 'function') {
979
+ return customSort(itemsKey, additionalDependentKeys, sortDefinitionOrString);
980
+ } else {
981
+ return propertySort(itemsKey, sortDefinitionOrString);
982
+ }
983
+ }
984
+ function customSort(itemsKey, additionalDependentKeys, comparator) {
985
+ return arrayMacro(itemsKey, additionalDependentKeys, function (value) {
986
+ return value.slice().sort((x, y) => comparator.call(this, x, y));
987
+ });
988
+ }
989
+
990
+ // This one needs to dynamically set up and tear down observers on the itemsKey
991
+ // depending on the sortProperties
992
+ function propertySort(itemsKey, sortPropertiesKey) {
993
+ let cp = autoComputed(function (key) {
994
+ let sortProperties = get(this, sortPropertiesKey);
995
+ let itemsKeyIsAtThis = itemsKey === '@this';
996
+ let normalizedSortProperties = normalizeSortProperties(sortProperties);
997
+ let items = itemsKeyIsAtThis ? this : get(this, itemsKey);
998
+ if (!isNativeOrEmberArray(items)) {
999
+ return A();
1000
+ }
1001
+ if (normalizedSortProperties.length === 0) {
1002
+ return A(items.slice());
1003
+ } else {
1004
+ return sortByNormalizedSortProperties(items, normalizedSortProperties);
1005
+ }
1006
+ }).readOnly();
1007
+ return cp;
1008
+ }
1009
+ function normalizeSortProperties(sortProperties) {
1010
+ let callback = p => {
1011
+ let [prop, direction] = p.split(':');
1012
+ direction = direction || 'asc';
1013
+
1014
+ // SAFETY: There will always be at least one value returned by split
1015
+ return [prop, direction];
1016
+ };
1017
+ // This nonsense is necessary since technically the two map implementations diverge.
1018
+ return Array.isArray(sortProperties) ? sortProperties.map(callback) : sortProperties.map(callback);
1019
+ }
1020
+ function sortByNormalizedSortProperties(items, normalizedSortProperties) {
1021
+ return A(items.slice().sort((itemA, itemB) => {
1022
+ for (let [prop, direction] of normalizedSortProperties) {
1023
+ let result = compare(get(itemA, prop), get(itemB, prop));
1024
+ if (result !== 0) {
1025
+ return direction === 'desc' ? -1 * result : result;
1026
+ }
1027
+ }
1028
+ return 0;
1029
+ }));
1030
+ }
1031
+
1032
+ export { collect, filter, filterBy, intersect, map, mapBy, max, min, setDiff, sort, sum, union, uniq, uniqBy };