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,791 @@
1
+ declare module '@ember/object/lib/computed/reduce_computed_macros.d.ts' {
2
+ import EmberArray from '@ember/array';
3
+ /**
4
+ A computed property that returns the sum of the values in the dependent array.
5
+
6
+ Example:
7
+
8
+ ```javascript
9
+ import { sum } from '@ember/object/computed';
10
+
11
+ class Invoice {
12
+ lineItems = [1.00, 2.50, 9.99];
13
+
14
+ @sum('lineItems') total;
15
+ }
16
+
17
+ let invoice = new Invoice();
18
+
19
+ invoice.total; // 13.49
20
+ ```
21
+
22
+ @method sum
23
+ @for @ember/object/computed
24
+ @static
25
+ @param {String} dependentKey
26
+ @return {ComputedProperty} computes the sum of all values in the
27
+ dependentKey's array
28
+ @since 1.4.0
29
+ @public
30
+ */
31
+ export function sum(dependentKey: string): PropertyDecorator;
32
+ /**
33
+ A computed property that calculates the maximum value in the dependent array.
34
+ This will return `-Infinity` when the dependent array is empty.
35
+
36
+ Example:
37
+
38
+ ```javascript
39
+ import { set } from '@ember/object';
40
+ import { mapBy, max } from '@ember/object/computed';
41
+
42
+ class Person {
43
+ children = [];
44
+
45
+ @mapBy('children', 'age') childAges;
46
+ @max('childAges') maxChildAge;
47
+ }
48
+
49
+ let lordByron = new Person();
50
+
51
+ lordByron.maxChildAge; // -Infinity
52
+
53
+ set(lordByron, 'children', [
54
+ {
55
+ name: 'Augusta Ada Byron',
56
+ age: 7
57
+ }
58
+ ]);
59
+ lordByron.maxChildAge; // 7
60
+
61
+ set(lordByron, 'children', [
62
+ ...lordByron.children,
63
+ {
64
+ name: 'Allegra Byron',
65
+ age: 5
66
+ }, {
67
+ name: 'Elizabeth Medora Leigh',
68
+ age: 8
69
+ }
70
+ ]);
71
+ lordByron.maxChildAge; // 8
72
+ ```
73
+
74
+ If the types of the arguments are not numbers, they will be converted to
75
+ numbers and the type of the return value will always be `Number`. For example,
76
+ the max of a list of Date objects will be the highest timestamp as a `Number`.
77
+ This behavior is consistent with `Math.max`.
78
+
79
+ @method max
80
+ @for @ember/object/computed
81
+ @static
82
+ @param {String} dependentKey
83
+ @return {ComputedProperty} computes the largest value in the dependentKey's
84
+ array
85
+ @public
86
+ */
87
+ export function max(dependentKey: string): PropertyDecorator;
88
+ /**
89
+ A computed property that calculates the minimum value in the dependent array.
90
+ This will return `Infinity` when the dependent array is empty.
91
+
92
+ Example:
93
+
94
+ ```javascript
95
+ import { set } from '@ember/object';
96
+ import { mapBy, min } from '@ember/object/computed';
97
+
98
+ class Person {
99
+ children = [];
100
+
101
+ @mapBy('children', 'age') childAges;
102
+ @min('childAges') minChildAge;
103
+ }
104
+
105
+ let lordByron = Person.create({ children: [] });
106
+
107
+ lordByron.minChildAge; // Infinity
108
+
109
+ set(lordByron, 'children', [
110
+ {
111
+ name: 'Augusta Ada Byron',
112
+ age: 7
113
+ }
114
+ ]);
115
+ lordByron.minChildAge; // 7
116
+
117
+ set(lordByron, 'children', [
118
+ ...lordByron.children,
119
+ {
120
+ name: 'Allegra Byron',
121
+ age: 5
122
+ }, {
123
+ name: 'Elizabeth Medora Leigh',
124
+ age: 8
125
+ }
126
+ ]);
127
+ lordByron.minChildAge; // 5
128
+ ```
129
+
130
+ If the types of the arguments are not numbers, they will be converted to
131
+ numbers and the type of the return value will always be `Number`. For example,
132
+ the min of a list of Date objects will be the lowest timestamp as a `Number`.
133
+ This behavior is consistent with `Math.min`.
134
+
135
+ @method min
136
+ @for @ember/object/computed
137
+ @static
138
+ @param {String} dependentKey
139
+ @return {ComputedProperty} computes the smallest value in the dependentKey's array
140
+ @public
141
+ */
142
+ export function min(dependentKey: string): PropertyDecorator;
143
+ /**
144
+ Returns an array mapped via the callback
145
+
146
+ The callback method you provide should have the following signature:
147
+ - `item` is the current item in the iteration.
148
+ - `index` is the integer index of the current item in the iteration.
149
+
150
+ ```javascript
151
+ function mapCallback(item, index);
152
+ ```
153
+
154
+ Example:
155
+
156
+ ```javascript
157
+ import { set } from '@ember/object';
158
+ import { map } from '@ember/object/computed';
159
+
160
+ class Hamster {
161
+ constructor(chores) {
162
+ set(this, 'chores', chores);
163
+ }
164
+
165
+ @map('chores', function(chore, index) {
166
+ return `${chore.toUpperCase()}!`;
167
+ })
168
+ excitingChores;
169
+ });
170
+
171
+ let hamster = new Hamster(['clean', 'write more unit tests']);
172
+
173
+ hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
174
+ ```
175
+
176
+ You can optionally pass an array of additional dependent keys as the second
177
+ parameter to the macro, if your map function relies on any external values:
178
+
179
+ ```javascript
180
+ import { set } from '@ember/object';
181
+ import { map } from '@ember/object/computed';
182
+
183
+ class Hamster {
184
+ shouldUpperCase = false;
185
+
186
+ constructor(chores) {
187
+ set(this, 'chores', chores);
188
+ }
189
+
190
+ @map('chores', ['shouldUpperCase'], function(chore, index) {
191
+ if (this.shouldUpperCase) {
192
+ return `${chore.toUpperCase()}!`;
193
+ } else {
194
+ return `${chore}!`;
195
+ }
196
+ })
197
+ excitingChores;
198
+ }
199
+
200
+ let hamster = new Hamster(['clean', 'write more unit tests']);
201
+
202
+ hamster.excitingChores; // ['clean!', 'write more unit tests!']
203
+
204
+ set(hamster, 'shouldUpperCase', true);
205
+ hamster.excitingChores; // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
206
+ ```
207
+
208
+ @method map
209
+ @for @ember/object/computed
210
+ @static
211
+ @param {String} dependentKey
212
+ @param {Array} [additionalDependentKeys] optional array of additional
213
+ dependent keys
214
+ @param {Function} callback
215
+ @return {ComputedProperty} an array mapped via the callback
216
+ @public
217
+ */
218
+ export function map(dependentKey: string, callback: (value: unknown, index: number) => unknown): PropertyDecorator;
219
+ export function map(dependentKey: string, additionalDependentKeys: string[], callback: (value: unknown, index: number) => unknown): PropertyDecorator;
220
+ /**
221
+ Returns an array mapped to the specified key.
222
+
223
+ Example:
224
+
225
+ ```javascript
226
+ import { set } from '@ember/object';
227
+ import { mapBy } from '@ember/object/computed';
228
+
229
+ class Person {
230
+ children = [];
231
+
232
+ @mapBy('children', 'age') childAges;
233
+ }
234
+
235
+ let lordByron = new Person();
236
+
237
+ lordByron.childAges; // []
238
+
239
+ set(lordByron, 'children', [
240
+ {
241
+ name: 'Augusta Ada Byron',
242
+ age: 7
243
+ }
244
+ ]);
245
+ lordByron.childAges; // [7]
246
+
247
+ set(lordByron, 'children', [
248
+ ...lordByron.children,
249
+ {
250
+ name: 'Allegra Byron',
251
+ age: 5
252
+ }, {
253
+ name: 'Elizabeth Medora Leigh',
254
+ age: 8
255
+ }
256
+ ]);
257
+ lordByron.childAges; // [7, 5, 8]
258
+ ```
259
+
260
+ @method mapBy
261
+ @for @ember/object/computed
262
+ @static
263
+ @param {String} dependentKey
264
+ @param {String} propertyKey
265
+ @return {ComputedProperty} an array mapped to the specified key
266
+ @public
267
+ */
268
+ export function mapBy(dependentKey: string, propertyKey: string): PropertyDecorator;
269
+ /**
270
+ Filters the array by the callback, like the `Array.prototype.filter` method.
271
+
272
+ The callback method you provide should have the following signature:
273
+ - `item` is the current item in the iteration.
274
+ - `index` is the integer index of the current item in the iteration.
275
+ - `array` is the dependant array itself.
276
+
277
+ ```javascript
278
+ function filterCallback(item, index, array);
279
+ ```
280
+
281
+ In the callback, return a truthy value that coerces to true to keep the
282
+ element, or a falsy to reject it.
283
+
284
+ Example:
285
+
286
+ ```javascript
287
+ import { set } from '@ember/object';
288
+ import { filter } from '@ember/object/computed';
289
+
290
+ class Hamster {
291
+ constructor(chores) {
292
+ set(this, 'chores', chores);
293
+ }
294
+
295
+ @filter('chores', function(chore, index, array) {
296
+ return !chore.done;
297
+ })
298
+ remainingChores;
299
+ }
300
+
301
+ let hamster = Hamster.create([
302
+ { name: 'cook', done: true },
303
+ { name: 'clean', done: true },
304
+ { name: 'write more unit tests', done: false }
305
+ ]);
306
+
307
+ hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
308
+ ```
309
+
310
+ You can also use `@each.property` in your dependent key, the callback will
311
+ still use the underlying array:
312
+
313
+ ```javascript
314
+ import { set } from '@ember/object';
315
+ import { filter } from '@ember/object/computed';
316
+
317
+ class Hamster {
318
+ constructor(chores) {
319
+ set(this, 'chores', chores);
320
+ }
321
+
322
+ @filter('chores.@each.done', function(chore, index, array) {
323
+ return !chore.done;
324
+ })
325
+ remainingChores;
326
+ }
327
+
328
+ let hamster = new Hamster([
329
+ { name: 'cook', done: true },
330
+ { name: 'clean', done: true },
331
+ { name: 'write more unit tests', done: false }
332
+ ]);
333
+ hamster.remainingChores; // [{name: 'write more unit tests', done: false}]
334
+
335
+ set(hamster.chores[2], 'done', true);
336
+ hamster.remainingChores; // []
337
+ ```
338
+
339
+ Finally, you can optionally pass an array of additional dependent keys as the
340
+ second parameter to the macro, if your filter function relies on any external
341
+ values:
342
+
343
+ ```javascript
344
+ import { filter } from '@ember/object/computed';
345
+
346
+ class Hamster {
347
+ constructor(chores) {
348
+ set(this, 'chores', chores);
349
+ }
350
+
351
+ doneKey = 'finished';
352
+
353
+ @filter('chores', ['doneKey'], function(chore, index, array) {
354
+ return !chore[this.doneKey];
355
+ })
356
+ remainingChores;
357
+ }
358
+
359
+ let hamster = new Hamster([
360
+ { name: 'cook', finished: true },
361
+ { name: 'clean', finished: true },
362
+ { name: 'write more unit tests', finished: false }
363
+ ]);
364
+
365
+ hamster.remainingChores; // [{name: 'write more unit tests', finished: false}]
366
+ ```
367
+
368
+ @method filter
369
+ @for @ember/object/computed
370
+ @static
371
+ @param {String} dependentKey
372
+ @param {Array} [additionalDependentKeys] optional array of additional dependent keys
373
+ @param {Function} callback
374
+ @return {ComputedProperty} the filtered array
375
+ @public
376
+ */
377
+ export function filter(dependentKey: string, callback: (value: unknown, index: number, array: unknown[] | EmberArray<unknown>) => unknown): PropertyDecorator;
378
+ export function filter(dependentKey: string, additionalDependentKeys: string[], callback: (value: unknown, index: number, array: unknown[] | EmberArray<unknown>) => unknown): PropertyDecorator;
379
+ /**
380
+ Filters the array by the property and value.
381
+
382
+ Example:
383
+
384
+ ```javascript
385
+ import { set } from '@ember/object';
386
+ import { filterBy } from '@ember/object/computed';
387
+
388
+ class Hamster {
389
+ constructor(chores) {
390
+ set(this, 'chores', chores);
391
+ }
392
+
393
+ @filterBy('chores', 'done', false) remainingChores;
394
+ }
395
+
396
+ let hamster = new Hamster([
397
+ { name: 'cook', done: true },
398
+ { name: 'clean', done: true },
399
+ { name: 'write more unit tests', done: false }
400
+ ]);
401
+
402
+ hamster.remainingChores; // [{ name: 'write more unit tests', done: false }]
403
+ ```
404
+
405
+ @method filterBy
406
+ @for @ember/object/computed
407
+ @static
408
+ @param {String} dependentKey
409
+ @param {String} propertyKey
410
+ @param {*} value
411
+ @return {ComputedProperty} the filtered array
412
+ @public
413
+ */
414
+ export function filterBy(dependentKey: string, propertyKey: string, value?: unknown): PropertyDecorator;
415
+ /**
416
+ A computed property which returns a new array with all the unique elements
417
+ from one or more dependent arrays.
418
+
419
+ Example:
420
+
421
+ ```javascript
422
+ import { set } from '@ember/object';
423
+ import { uniq } from '@ember/object/computed';
424
+
425
+ class Hamster {
426
+ constructor(fruits) {
427
+ set(this, 'fruits', fruits);
428
+ }
429
+
430
+ @uniq('fruits') uniqueFruits;
431
+ }
432
+
433
+ let hamster = new Hamster([
434
+ 'banana',
435
+ 'grape',
436
+ 'kale',
437
+ 'banana'
438
+ ]);
439
+
440
+ hamster.uniqueFruits; // ['banana', 'grape', 'kale']
441
+ ```
442
+
443
+ @method uniq
444
+ @for @ember/object/computed
445
+ @static
446
+ @param {String} propertyKey*
447
+ @return {ComputedProperty} computes a new array with all the
448
+ unique elements from the dependent array
449
+ @public
450
+ */
451
+ export function uniq(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
452
+ /**
453
+ A computed property which returns a new array with all the unique elements
454
+ from an array, with uniqueness determined by specific key.
455
+
456
+ Example:
457
+
458
+ ```javascript
459
+ import { set } from '@ember/object';
460
+ import { uniqBy } from '@ember/object/computed';
461
+
462
+ class Hamster {
463
+ constructor(fruits) {
464
+ set(this, 'fruits', fruits);
465
+ }
466
+
467
+ @uniqBy('fruits', 'id') uniqueFruits;
468
+ }
469
+
470
+ let hamster = new Hamster([
471
+ { id: 1, 'banana' },
472
+ { id: 2, 'grape' },
473
+ { id: 3, 'peach' },
474
+ { id: 1, 'banana' }
475
+ ]);
476
+
477
+ hamster.uniqueFruits; // [ { id: 1, 'banana' }, { id: 2, 'grape' }, { id: 3, 'peach' }]
478
+ ```
479
+
480
+ @method uniqBy
481
+ @for @ember/object/computed
482
+ @static
483
+ @param {String} dependentKey
484
+ @param {String} propertyKey
485
+ @return {ComputedProperty} computes a new array with all the
486
+ unique elements from the dependent array
487
+ @public
488
+ */
489
+ export function uniqBy(dependentKey: string, propertyKey: string): PropertyDecorator;
490
+ /**
491
+ A computed property which returns a new array with all the unique elements
492
+ from one or more dependent arrays.
493
+
494
+ Example:
495
+
496
+ ```javascript
497
+ import { set } from '@ember/object';
498
+ import { union } from '@ember/object/computed';
499
+
500
+ class Hamster {
501
+ constructor(fruits, vegetables) {
502
+ set(this, 'fruits', fruits);
503
+ set(this, 'vegetables', vegetables);
504
+ }
505
+
506
+ @union('fruits', 'vegetables') uniqueFruits;
507
+ });
508
+
509
+ let hamster = new, Hamster(
510
+ [
511
+ 'banana',
512
+ 'grape',
513
+ 'kale',
514
+ 'banana',
515
+ 'tomato'
516
+ ],
517
+ [
518
+ 'tomato',
519
+ 'carrot',
520
+ 'lettuce'
521
+ ]
522
+ );
523
+
524
+ hamster.uniqueFruits; // ['banana', 'grape', 'kale', 'tomato', 'carrot', 'lettuce']
525
+ ```
526
+
527
+ @method union
528
+ @for @ember/object/computed
529
+ @static
530
+ @param {String} propertyKey*
531
+ @return {ComputedProperty} computes a new array with all the unique elements
532
+ from one or more dependent arrays.
533
+ @public
534
+ */
535
+ export let union: typeof uniq;
536
+ /**
537
+ A computed property which returns a new array with all the elements
538
+ two or more dependent arrays have in common.
539
+
540
+ Example:
541
+
542
+ ```javascript
543
+ import { set } from '@ember/object';
544
+ import { intersect } from '@ember/object/computed';
545
+
546
+ class FriendGroups {
547
+ constructor(adaFriends, charlesFriends) {
548
+ set(this, 'adaFriends', adaFriends);
549
+ set(this, 'charlesFriends', charlesFriends);
550
+ }
551
+
552
+ @intersect('adaFriends', 'charlesFriends') friendsInCommon;
553
+ }
554
+
555
+ let groups = new FriendGroups(
556
+ ['Charles Babbage', 'John Hobhouse', 'William King', 'Mary Somerville'],
557
+ ['William King', 'Mary Somerville', 'Ada Lovelace', 'George Peacock']
558
+ );
559
+
560
+ groups.friendsInCommon; // ['William King', 'Mary Somerville']
561
+ ```
562
+
563
+ @method intersect
564
+ @for @ember/object/computed
565
+ @static
566
+ @param {String} propertyKey*
567
+ @return {ComputedProperty} computes a new array with all the duplicated
568
+ elements from the dependent arrays
569
+ @public
570
+ */
571
+ export function intersect(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
572
+ /**
573
+ A computed property which returns a new array with all the properties from the
574
+ first dependent array that are not in the second dependent array.
575
+
576
+ Example:
577
+
578
+ ```javascript
579
+ import { set } from '@ember/object';
580
+ import { setDiff } from '@ember/object/computed';
581
+
582
+ class Hamster {
583
+ constructor(likes, fruits) {
584
+ set(this, 'likes', likes);
585
+ set(this, 'fruits', fruits);
586
+ }
587
+
588
+ @setDiff('likes', 'fruits') wants;
589
+ }
590
+
591
+ let hamster = new Hamster(
592
+ [
593
+ 'banana',
594
+ 'grape',
595
+ 'kale'
596
+ ],
597
+ [
598
+ 'grape',
599
+ 'kale',
600
+ ]
601
+ );
602
+
603
+ hamster.wants; // ['banana']
604
+ ```
605
+
606
+ @method setDiff
607
+ @for @ember/object/computed
608
+ @static
609
+ @param {String} setAProperty
610
+ @param {String} setBProperty
611
+ @return {ComputedProperty} computes a new array with all the items from the
612
+ first dependent array that are not in the second dependent array
613
+ @public
614
+ */
615
+ export function setDiff(setAProperty: string, setBProperty: string): PropertyDecorator;
616
+ /**
617
+ A computed property that returns the array of values for the provided
618
+ dependent properties.
619
+
620
+ Example:
621
+
622
+ ```javascript
623
+ import { set } from '@ember/object';
624
+ import { collect } from '@ember/object/computed';
625
+
626
+ class Hamster {
627
+ @collect('hat', 'shirt') clothes;
628
+ }
629
+
630
+ let hamster = new Hamster();
631
+
632
+ hamster.clothes; // [null, null]
633
+
634
+ set(hamster, 'hat', 'Camp Hat');
635
+ set(hamster, 'shirt', 'Camp Shirt');
636
+ hamster.clothes; // ['Camp Hat', 'Camp Shirt']
637
+ ```
638
+
639
+ @method collect
640
+ @for @ember/object/computed
641
+ @static
642
+ @param {String} dependentKey*
643
+ @return {ComputedProperty} computed property which maps values of all passed
644
+ in properties to an array.
645
+ @public
646
+ */
647
+ export function collect(dependentKey: string, ...additionalDependentKeys: string[]): PropertyDecorator;
648
+ type SortDefinition = (itemA: unknown, itemB: unknown) => number;
649
+ /**
650
+ A computed property which returns a new array with all the properties from the
651
+ first dependent array sorted based on a property or sort function. The sort
652
+ macro can be used in two different ways:
653
+
654
+ 1. By providing a sort callback function
655
+ 2. By providing an array of keys to sort the array
656
+
657
+ In the first form, the callback method you provide should have the following
658
+ signature:
659
+
660
+ ```javascript
661
+ function sortCallback(itemA, itemB);
662
+ ```
663
+
664
+ - `itemA` the first item to compare.
665
+ - `itemB` the second item to compare.
666
+
667
+ This function should return negative number (e.g. `-1`) when `itemA` should
668
+ come before `itemB`. It should return positive number (e.g. `1`) when `itemA`
669
+ should come after `itemB`. If the `itemA` and `itemB` are equal this function
670
+ should return `0`.
671
+
672
+ Therefore, if this function is comparing some numeric values, simple `itemA -
673
+ itemB` or `itemA.get( 'foo' ) - itemB.get( 'foo' )` can be used instead of
674
+ series of `if`.
675
+
676
+ Example:
677
+
678
+ ```javascript
679
+ import { set } from '@ember/object';
680
+ import { sort } from '@ember/object/computed';
681
+
682
+ class ToDoList {
683
+ constructor(todos) {
684
+ set(this, 'todos', todos);
685
+ }
686
+
687
+ // using a custom sort function
688
+ @sort('todos', function(a, b){
689
+ if (a.priority > b.priority) {
690
+ return 1;
691
+ } else if (a.priority < b.priority) {
692
+ return -1;
693
+ }
694
+
695
+ return 0;
696
+ })
697
+ priorityTodos;
698
+ }
699
+
700
+ let todoList = new ToDoList([
701
+ { name: 'Unit Test', priority: 2 },
702
+ { name: 'Documentation', priority: 3 },
703
+ { name: 'Release', priority: 1 }
704
+ ]);
705
+
706
+ todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
707
+ ```
708
+
709
+ You can also optionally pass an array of additional dependent keys as the
710
+ second parameter, if your sort function is dependent on additional values that
711
+ could changes:
712
+
713
+ ```js
714
+ import EmberObject, { set } from '@ember/object';
715
+ import { sort } from '@ember/object/computed';
716
+
717
+ class ToDoList {
718
+ sortKey = 'priority';
719
+
720
+ constructor(todos) {
721
+ set(this, 'todos', todos);
722
+ }
723
+
724
+ // using a custom sort function
725
+ @sort('todos', ['sortKey'], function(a, b){
726
+ if (a[this.sortKey] > b[this.sortKey]) {
727
+ return 1;
728
+ } else if (a[this.sortKey] < b[this.sortKey]) {
729
+ return -1;
730
+ }
731
+
732
+ return 0;
733
+ })
734
+ sortedTodos;
735
+ });
736
+
737
+ let todoList = new ToDoList([
738
+ { name: 'Unit Test', priority: 2 },
739
+ { name: 'Documentation', priority: 3 },
740
+ { name: 'Release', priority: 1 }
741
+ ]);
742
+
743
+ todoList.priorityTodos; // [{ name:'Release', priority:1 }, { name:'Unit Test', priority:2 }, { name:'Documentation', priority:3 }]
744
+ ```
745
+
746
+ In the second form, you should provide the key of the array of sort values as
747
+ the second parameter:
748
+
749
+ ```javascript
750
+ import { set } from '@ember/object';
751
+ import { sort } from '@ember/object/computed';
752
+
753
+ class ToDoList {
754
+ constructor(todos) {
755
+ set(this, 'todos', todos);
756
+ }
757
+
758
+ // using standard ascending sort
759
+ todosSorting = ['name'];
760
+ @sort('todos', 'todosSorting') sortedTodos;
761
+
762
+ // using descending sort
763
+ todosSortingDesc = ['name:desc'];
764
+ @sort('todos', 'todosSortingDesc') sortedTodosDesc;
765
+ }
766
+
767
+ let todoList = new ToDoList([
768
+ { name: 'Unit Test', priority: 2 },
769
+ { name: 'Documentation', priority: 3 },
770
+ { name: 'Release', priority: 1 }
771
+ ]);
772
+
773
+ todoList.sortedTodos; // [{ name:'Documentation', priority:3 }, { name:'Release', priority:1 }, { name:'Unit Test', priority:2 }]
774
+ todoList.sortedTodosDesc; // [{ name:'Unit Test', priority:2 }, { name:'Release', priority:1 }, { name:'Documentation', priority:3 }]
775
+ ```
776
+
777
+ @method sort
778
+ @for @ember/object/computed
779
+ @static
780
+ @param {String} itemsKey
781
+ @param {String|Function|Array} sortDefinitionOrDependentKeys The key of the sort definition (an array of sort properties),
782
+ the sort function, or an array of additional dependent keys
783
+ @param {Function?} sortDefinition the sort function (when used with additional dependent keys)
784
+ @return {ComputedProperty} computes a new sorted array based on the sort
785
+ property array or callback function
786
+ @public
787
+ */
788
+ export function sort(itemsKey: string, sortDefinition: SortDefinition | string): PropertyDecorator;
789
+ export function sort(itemsKey: string, additionalDependentKeys: string[], sortDefinition: SortDefinition): PropertyDecorator;
790
+ export {};
791
+ }