ember-source 7.4.0-alpha.1 → 7.5.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 (228) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dev/packages/@ember/-internals/deprecations/index.js +45 -0
  3. package/dist/dev/packages/@ember/-internals/glimmer/index.js +9 -9
  4. package/dist/dev/packages/@ember/-internals/metal/index.js +12 -12
  5. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +6 -6
  6. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +2 -2
  7. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/comparable.js +2 -2
  8. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +2 -2
  9. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +2 -2
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  11. package/dist/dev/packages/@ember/-internals/views/index.js +1 -0
  12. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -2
  13. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +1 -1
  14. package/dist/dev/packages/@ember/-internals/views/lib/views/core-view-utils.js +14 -0
  15. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +25 -21
  16. package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +5 -2
  17. package/dist/dev/packages/@ember/application/index.js +1 -1
  18. package/dist/dev/packages/@ember/application/instance.js +16 -13
  19. package/dist/dev/packages/@ember/application/namespace.js +1 -1
  20. package/dist/dev/packages/@ember/array/index.js +8 -8
  21. package/dist/dev/packages/@ember/array/proxy.js +8 -5
  22. package/dist/dev/packages/@ember/component/helper.js +2 -2
  23. package/dist/dev/packages/@ember/component/index.js +7 -7
  24. package/dist/dev/packages/@ember/component/template-only.js +1 -1
  25. package/dist/dev/packages/@ember/controller/index.js +4 -4
  26. package/dist/dev/packages/@ember/engine/index.js +2 -2
  27. package/dist/dev/packages/@ember/enumerable/index.js +2 -2
  28. package/dist/dev/packages/@ember/enumerable/mutable.js +2 -2
  29. package/dist/dev/packages/@ember/helper/index.js +8 -8
  30. package/dist/dev/packages/@ember/modifier/index.js +2 -2
  31. package/dist/dev/packages/@ember/modifier/on.js +1 -1
  32. package/dist/dev/packages/@ember/object/-internals.js +1 -1
  33. package/dist/dev/packages/@ember/object/computed.js +2 -2
  34. package/dist/dev/packages/@ember/object/core.js +7 -7
  35. package/dist/dev/packages/@ember/object/evented.js +3 -71
  36. package/dist/dev/packages/@ember/object/events.js +17 -1
  37. package/dist/dev/packages/@ember/object/index.js +4 -4
  38. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +3 -3
  39. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +1 -1
  40. package/dist/dev/packages/@ember/object/mixin.js +11 -592
  41. package/dist/dev/packages/@ember/object/observable.js +7 -7
  42. package/dist/dev/packages/@ember/object/observers.js +1 -1
  43. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +10 -4
  44. package/dist/dev/packages/@ember/object/proxy.js +8 -1
  45. package/dist/dev/packages/@ember/renderer/index.js +1 -1
  46. package/dist/dev/packages/@ember/routing/index.js +1 -1
  47. package/dist/dev/packages/@ember/routing/lib/routing-service.js +2 -2
  48. package/dist/dev/packages/@ember/routing/route.js +34 -9
  49. package/dist/dev/packages/@ember/routing/router-service.js +71 -6
  50. package/dist/dev/packages/@ember/routing/router.js +32 -6
  51. package/dist/dev/packages/@ember/runloop/index.js +1 -1
  52. package/dist/dev/packages/@ember/service/index.js +1 -1
  53. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  54. package/dist/dev/packages/@glimmer/destroyable/index.js +43 -14
  55. package/dist/dev/packages/@glimmer/manager/index.js +3 -3
  56. package/dist/dev/packages/@glimmer/node/index.js +2 -2
  57. package/dist/dev/packages/@glimmer/program/index.js +1 -1
  58. package/dist/dev/packages/@glimmer/reference/index.js +2 -2
  59. package/dist/dev/packages/@glimmer/runtime/index.js +11 -11
  60. package/dist/dev/packages/@glimmer/tracking/index.js +1 -1
  61. package/dist/dev/packages/ember/version.js +1 -1
  62. package/dist/dev/packages/shared-chunks/{alias-3DBxvoim.js → alias-CSzPOqZC.js} +3 -3
  63. package/dist/dev/packages/shared-chunks/{api-BlZDPg1n.js → api-B0N4oLJG.js} +3 -3
  64. package/dist/dev/packages/shared-chunks/{api-Dz70AUL_.js → api-CK8FxDZV.js} +2 -0
  65. package/dist/dev/packages/shared-chunks/{api-DuLOZMO_.js → api-PyzZqscb.js} +2 -2
  66. package/dist/dev/packages/shared-chunks/{args-proxy-CS5Brs3_.js → args-proxy-C39f5UPF.js} +1 -1
  67. package/dist/dev/packages/shared-chunks/{arguments-DniR8eF2.js → arguments-LEaMCStR.js} +7 -3
  68. package/dist/dev/packages/shared-chunks/{array-DvaweI_T.js → array-CxZAmpTY.js} +2 -2
  69. package/dist/dev/packages/shared-chunks/{chain-tags-uWSImHzB.js → chain-tags-uYrtCZq1.js} +1 -1
  70. package/dist/dev/packages/shared-chunks/{computed-DGxbeUbf.js → computed-CXIM4Sjc.js} +3 -3
  71. package/dist/dev/packages/shared-chunks/{curly-BCD_vyHq.js → curly-DbGgDeux.js} +18 -17
  72. package/dist/dev/packages/shared-chunks/destroyable-key-BsfVBM7f.js +12 -0
  73. package/dist/dev/packages/shared-chunks/{element-Cgoi4ldD.js → element-DLh78jeJ.js} +3 -3
  74. package/dist/dev/packages/shared-chunks/evented-cAr_RO4u.js +100 -0
  75. package/dist/dev/packages/shared-chunks/{events-6aFVjD4k.js → events-e_Do73jh.js} +3 -0
  76. package/dist/dev/packages/shared-chunks/{get-zsePWrJL.js → get-fzmvcT9R.js} +3 -3
  77. package/dist/dev/packages/shared-chunks/{hash-BFu91gtE.js → hash-D1O4fZ99.js} +3 -3
  78. package/dist/dev/packages/shared-chunks/{index-Bv9SQpEx.js → index-D8La4_AP.js} +12 -12
  79. package/dist/dev/packages/shared-chunks/{injected_property-DbXd6Gax.js → injected_property-DyyWscn-.js} +1 -1
  80. package/dist/dev/packages/shared-chunks/{internal-DTOXyEGM.js → internal-CZjbPyX3.js} +2 -2
  81. package/dist/dev/packages/shared-chunks/{internal-helper-CKrni0b_.js → internal-helper-BkRVvV7p.js} +1 -1
  82. package/dist/dev/packages/shared-chunks/{invoke-CgF42joE.js → invoke-BPNErlhO.js} +2 -2
  83. package/dist/dev/packages/shared-chunks/mixin-M88Ghbyw.js +612 -0
  84. package/dist/dev/packages/shared-chunks/{namespace_search-BfvzEQzN.js → namespace_search-TFdmjK_a.js} +1 -1
  85. package/dist/dev/packages/shared-chunks/{not-0cVb-rLf.js → not-DNpbxEvj.js} +2 -2
  86. package/dist/dev/packages/shared-chunks/{observers-DMlX2nCi.js → observers-BsxKjjpC.js} +2 -2
  87. package/dist/dev/packages/shared-chunks/{on-CVIjn2C-.js → on-Dfya_9b_.js} +3 -3
  88. package/dist/dev/packages/shared-chunks/{outlet-BO5-QFmm.js → outlet-wIOlGMfN.js} +3 -3
  89. package/dist/dev/packages/shared-chunks/{property_set-DezUwDX4.js → property_set-CxxTalOq.js} +1 -1
  90. package/dist/dev/packages/shared-chunks/{reference-BqOLhKFy.js → reference-De0V3Vxp.js} +2 -0
  91. package/dist/dev/packages/shared-chunks/{rehydrate-builder-CsnkZkur.js → rehydrate-builder-B3wE1O5a.js} +1 -1
  92. package/dist/dev/packages/shared-chunks/{render-D_Rawf-r.js → render-CNXCIKfb.js} +16 -5
  93. package/dist/dev/packages/shared-chunks/{serialize-builder-D1oAeiyl.js → serialize-builder-v4amW_JS.js} +1 -1
  94. package/dist/{prod/packages/shared-chunks/set_properties-DYiBfzdk.js → dev/packages/shared-chunks/set_properties-KoN0q2wj.js} +2 -2
  95. package/dist/dev/packages/shared-chunks/{setup-registry-Ci8Af2Bz.js → setup-registry-BPb25ZxQ.js} +16 -15
  96. package/dist/dev/packages/shared-chunks/{template-only-Cu639ICT.js → template-only-DHdQevpG.js} +2 -2
  97. package/dist/dev/packages/shared-chunks/{textarea-DvS6Xmdh.js → textarea-Obtv2iCY.js} +3 -3
  98. package/dist/dev/packages/shared-chunks/{tracked-57EW14Ny.js → tracked-CLY9ttD5.js} +1 -1
  99. package/dist/dev/packages/shared-chunks/{unique-id-Csxuh1I7.js → unique-id-CdB2MG3m.js} +2 -2
  100. package/dist/prod/packages/@ember/-internals/deprecations/index.js +45 -0
  101. package/dist/prod/packages/@ember/-internals/glimmer/index.js +9 -9
  102. package/dist/prod/packages/@ember/-internals/metal/index.js +13 -13
  103. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +6 -6
  104. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +2 -2
  105. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/comparable.js +2 -2
  106. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/container_proxy.js +2 -2
  107. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +2 -2
  108. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -3
  109. package/dist/prod/packages/@ember/-internals/views/index.js +1 -0
  110. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -2
  111. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +1 -1
  112. package/dist/prod/packages/@ember/-internals/views/lib/views/core-view-utils.js +14 -0
  113. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +25 -21
  114. package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +5 -2
  115. package/dist/prod/packages/@ember/application/index.js +1 -1
  116. package/dist/prod/packages/@ember/application/instance.js +14 -12
  117. package/dist/prod/packages/@ember/application/namespace.js +1 -1
  118. package/dist/prod/packages/@ember/array/index.js +8 -8
  119. package/dist/prod/packages/@ember/array/proxy.js +8 -5
  120. package/dist/prod/packages/@ember/component/helper.js +2 -2
  121. package/dist/prod/packages/@ember/component/index.js +8 -8
  122. package/dist/prod/packages/@ember/component/template-only.js +1 -1
  123. package/dist/prod/packages/@ember/controller/index.js +4 -4
  124. package/dist/prod/packages/@ember/engine/index.js +2 -2
  125. package/dist/prod/packages/@ember/enumerable/index.js +2 -2
  126. package/dist/prod/packages/@ember/enumerable/mutable.js +2 -2
  127. package/dist/prod/packages/@ember/helper/index.js +8 -8
  128. package/dist/prod/packages/@ember/modifier/index.js +2 -2
  129. package/dist/prod/packages/@ember/modifier/on.js +1 -1
  130. package/dist/prod/packages/@ember/object/-internals.js +1 -0
  131. package/dist/prod/packages/@ember/object/compat.js +1 -1
  132. package/dist/prod/packages/@ember/object/computed.js +2 -2
  133. package/dist/prod/packages/@ember/object/core.js +7 -7
  134. package/dist/prod/packages/@ember/object/evented.js +3 -71
  135. package/dist/prod/packages/@ember/object/events.js +17 -1
  136. package/dist/prod/packages/@ember/object/index.js +5 -5
  137. package/dist/prod/packages/@ember/object/internals.js +1 -0
  138. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +3 -3
  139. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +1 -1
  140. package/dist/prod/packages/@ember/object/mixin.js +9 -557
  141. package/dist/prod/packages/@ember/object/observable.js +7 -7
  142. package/dist/prod/packages/@ember/object/observers.js +1 -1
  143. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +10 -4
  144. package/dist/prod/packages/@ember/object/proxy.js +8 -1
  145. package/dist/prod/packages/@ember/renderer/index.js +1 -1
  146. package/dist/prod/packages/@ember/routing/index.js +1 -1
  147. package/dist/prod/packages/@ember/routing/lib/routing-service.js +2 -2
  148. package/dist/prod/packages/@ember/routing/route.js +35 -10
  149. package/dist/prod/packages/@ember/routing/router-service.js +71 -6
  150. package/dist/prod/packages/@ember/routing/router.js +32 -6
  151. package/dist/prod/packages/@ember/runloop/index.js +1 -1
  152. package/dist/prod/packages/@ember/service/index.js +1 -1
  153. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +3 -3
  154. package/dist/prod/packages/@glimmer/destroyable/index.js +37 -11
  155. package/dist/prod/packages/@glimmer/manager/index.js +3 -3
  156. package/dist/prod/packages/@glimmer/node/index.js +2 -2
  157. package/dist/prod/packages/@glimmer/program/index.js +1 -1
  158. package/dist/prod/packages/@glimmer/reference/index.js +2 -2
  159. package/dist/prod/packages/@glimmer/runtime/index.js +11 -11
  160. package/dist/prod/packages/@glimmer/tracking/index.js +1 -1
  161. package/dist/prod/packages/ember/version.js +1 -1
  162. package/dist/prod/packages/shared-chunks/{alias-IFzw6sv_.js → alias-DvgufSYq.js} +4 -4
  163. package/dist/prod/packages/shared-chunks/{api-DzOa0Acr.js → api-B3M8aF1d.js} +2 -0
  164. package/dist/prod/packages/shared-chunks/{api-B_poQGXS.js → api-CoUjEXgs.js} +3 -3
  165. package/dist/prod/packages/shared-chunks/{api-DlJKfm_f.js → api-DJnXAjon.js} +2 -2
  166. package/dist/prod/packages/shared-chunks/{args-proxy-CCoFtYLS.js → args-proxy-BHODnDyt.js} +1 -1
  167. package/dist/prod/packages/shared-chunks/{arguments-CCYATlEH.js → arguments-xjTAZ6VE.js} +7 -3
  168. package/dist/prod/packages/shared-chunks/{array-CnXdmzOG.js → array-CK__rqeu.js} +2 -2
  169. package/dist/prod/packages/shared-chunks/{chain-tags-B2J7DsxO.js → chain-tags-BlsXEpE-.js} +1 -1
  170. package/dist/prod/packages/shared-chunks/{computed-BNdMwGhH.js → computed-ZvOk7SJQ.js} +4 -4
  171. package/dist/prod/packages/shared-chunks/{curly-CdvJuTyW.js → curly-Bg--Dj0X.js} +18 -17
  172. package/dist/prod/packages/shared-chunks/{decorator-9ikVwsjY.js → decorator-DcvVDSJV.js} +1 -1
  173. package/dist/prod/packages/shared-chunks/destroyable-key-BsfVBM7f.js +12 -0
  174. package/dist/prod/packages/shared-chunks/{element-BmBjPjkQ.js → element-CZnh4CbF.js} +3 -3
  175. package/dist/prod/packages/shared-chunks/evented-DYsL5t87.js +100 -0
  176. package/dist/prod/packages/shared-chunks/{events-DYrYz3V8.js → events-3Q5Qvo6Q.js} +3 -0
  177. package/dist/prod/packages/shared-chunks/{get-CEjFJzGs.js → get-B1Vq9Mmk.js} +3 -3
  178. package/dist/prod/packages/shared-chunks/{hash-BitfXhCx.js → hash-pP7ZP_NN.js} +3 -3
  179. package/dist/prod/packages/shared-chunks/{index-D8cl-pfl.js → index-Dncpaycf.js} +12 -12
  180. package/dist/prod/packages/shared-chunks/{injected_property-DqQ0XV7k.js → injected_property-4vB_6fM8.js} +2 -2
  181. package/dist/prod/packages/shared-chunks/{internal-BQ7zHrqS.js → internal-D1sloI2P.js} +2 -2
  182. package/dist/prod/packages/shared-chunks/{internal-helper-Bz1lpDXr.js → internal-helper-Becm19An.js} +1 -1
  183. package/dist/prod/packages/shared-chunks/{invoke-4JGJYH7Z.js → invoke-BqNxG81o.js} +2 -2
  184. package/dist/prod/packages/shared-chunks/mixin-AGmJaAAY.js +576 -0
  185. package/dist/prod/packages/shared-chunks/{namespace_search-BfvzEQzN.js → namespace_search-TFdmjK_a.js} +1 -1
  186. package/dist/prod/packages/shared-chunks/{not-Dn5s9qVZ.js → not-BRssU6nS.js} +2 -2
  187. package/dist/prod/packages/shared-chunks/{observers-BmobpXAF.js → observers-B1wiwQeH.js} +2 -2
  188. package/dist/prod/packages/shared-chunks/{on-ov4KAucw.js → on-BFt-Sx9A.js} +3 -3
  189. package/dist/prod/packages/shared-chunks/{outlet-BWnaVOrA.js → outlet-bc38zkd8.js} +3 -3
  190. package/dist/prod/packages/shared-chunks/{property_set-BmAQ0MGK.js → property_set-CVmdjPdh.js} +2 -2
  191. package/dist/prod/packages/shared-chunks/{reference-CG0yPgLy.js → reference-CccCE8mJ.js} +2 -0
  192. package/dist/prod/packages/shared-chunks/{rehydrate-builder-n_8RCUj9.js → rehydrate-builder-B9bh-2Dy.js} +1 -1
  193. package/dist/prod/packages/shared-chunks/{render-BAVl5E6X.js → render-C_iak8Db.js} +16 -5
  194. package/dist/prod/packages/shared-chunks/{serialize-builder-CsG9WHVw.js → serialize-builder-Du-432zt.js} +1 -1
  195. package/dist/{dev/packages/shared-chunks/set_properties-BzM_irwA.js → prod/packages/shared-chunks/set_properties-BObIgkE-.js} +2 -2
  196. package/dist/prod/packages/shared-chunks/{setup-registry-DeyoFe6Q.js → setup-registry-Czh4z4t2.js} +16 -15
  197. package/dist/prod/packages/shared-chunks/{template-only-DKNcKM5b.js → template-only-CWsfnbVm.js} +2 -2
  198. package/dist/prod/packages/shared-chunks/{textarea-B-sssXGa.js → textarea-DbUSajBD.js} +3 -3
  199. package/dist/prod/packages/shared-chunks/{tracked-DvOpYI0o.js → tracked-z77O-F0O.js} +2 -2
  200. package/dist/prod/packages/shared-chunks/{unique-id-BJb1p8EG.js → unique-id-DNqsbhfh.js} +2 -2
  201. package/docs/data.json +859 -511
  202. package/lib/browsers.cjs +33 -33
  203. package/package.json +3 -2
  204. package/types/stable/@ember/-internals/deprecations/index.d.ts +30 -0
  205. package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
  206. package/types/stable/@ember/-internals/metal/lib/evented-methods.d.ts +22 -0
  207. package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -0
  208. package/types/stable/@ember/-internals/utils/lib/internal-mixin-create.d.ts +13 -0
  209. package/types/stable/@ember/-internals/views/index.d.ts +1 -0
  210. package/types/stable/@ember/-internals/views/lib/views/core-view-utils.d.ts +5 -0
  211. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +9 -6
  212. package/types/stable/@ember/array/proxy.d.ts +1 -0
  213. package/types/stable/@ember/object/evented.d.ts +6 -0
  214. package/types/stable/@ember/object/events.d.ts +26 -1
  215. package/types/stable/@ember/object/mixin.d.ts +3 -0
  216. package/types/stable/@ember/object/promise-proxy-mixin.d.ts +1 -0
  217. package/types/stable/@ember/object/proxy.d.ts +2 -0
  218. package/types/stable/@ember/routing/route.d.ts +9 -2
  219. package/types/stable/@ember/routing/router-service.d.ts +54 -6
  220. package/types/stable/@ember/routing/router.d.ts +9 -8
  221. package/types/stable/@glimmer/destroyable/index.d.ts +1 -0
  222. package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +1 -2
  223. package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +2 -0
  224. package/types/stable/@glimmer/runtime/lib/vm/render-result.d.ts +2 -0
  225. package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -0
  226. package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
  227. package/types/stable/@glimmer/util/lib/destroyable-key.d.ts +15 -0
  228. package/types/stable/index.d.ts +4 -0
@@ -0,0 +1,576 @@
1
+ import { peekMeta, meta } from '../@ember/-internals/meta/lib/meta.js';
2
+ import { R as ROOT, o as observerListenerMetaFor, w as wrap } from './super-BBBjgF69.js';
3
+ import { n as nativeDescDecorator, c as isClassicDecorator, a as descriptorForDecorator, m as makeComputedDecorator } from './decorator-DcvVDSJV.js';
4
+ import { i as defineValue, h as defineDecorator, C as ComputedProperty } from './computed-ZvOk7SJQ.js';
5
+ import { e as setUnprocessedMixins } from './namespace_search-TFdmjK_a.js';
6
+ import { c as revalidateObservers, b as addObserver, r as removeObserver } from './observers-B1wiwQeH.js';
7
+ import { a as addListener, r as removeListener } from './events-3Q5Qvo6Q.js';
8
+ import { deprecateUntil, DEPRECATIONS } from '../@ember/-internals/deprecations/index.js';
9
+
10
+ /**
11
+ Key for the internal Mixin constructor.
12
+
13
+ Ember's own internals are built on mixins, so they need a way to construct
14
+ one without triggering the mixin deprecation that `Mixin.create` emits. This
15
+ is deliberately a Symbol so that it does not show up as a discoverable
16
+ property name and cannot be reached by name from application code.
17
+
18
+ @private
19
+ */
20
+ const INTERNAL_MIXIN_CREATE = Symbol('__internal__mixin__');
21
+
22
+ /**
23
+ @module @ember/object/mixin
24
+ */
25
+ const a_concat = Array.prototype.concat;
26
+ function extractAccessors(properties) {
27
+ if (properties !== undefined) {
28
+ for (let key of Object.keys(properties)) {
29
+ let desc = Object.getOwnPropertyDescriptor(properties, key);
30
+ if (desc.get !== undefined || desc.set !== undefined) {
31
+ Object.defineProperty(properties, key, {
32
+ value: nativeDescDecorator(desc)
33
+ });
34
+ }
35
+ }
36
+ }
37
+ return properties;
38
+ }
39
+ function concatenatedMixinProperties(concatProp, props, values, base) {
40
+ // reset before adding each new mixin to pickup concats from previous
41
+ let concats = values[concatProp] || base[concatProp];
42
+ if (props[concatProp]) {
43
+ concats = concats ? a_concat.call(concats, props[concatProp]) : props[concatProp];
44
+ }
45
+ return concats;
46
+ }
47
+ function giveDecoratorSuper(key, decorator, property, descs) {
48
+ if (property === true) {
49
+ return decorator;
50
+ }
51
+ let originalGetter = property._getter;
52
+ if (originalGetter === undefined) {
53
+ return decorator;
54
+ }
55
+ let superDesc = descs[key];
56
+
57
+ // Check to see if the super property is a decorator first, if so load its descriptor
58
+ let superProperty = typeof superDesc === 'function' ? descriptorForDecorator(superDesc) : superDesc;
59
+ if (superProperty === undefined || superProperty === true) {
60
+ return decorator;
61
+ }
62
+ let superGetter = superProperty._getter;
63
+ if (superGetter === undefined) {
64
+ return decorator;
65
+ }
66
+ let get = wrap(originalGetter, superGetter);
67
+ let set;
68
+ let originalSetter = property._setter;
69
+ let superSetter = superProperty._setter;
70
+ if (superSetter !== undefined) {
71
+ if (originalSetter !== undefined) {
72
+ set = wrap(originalSetter, superSetter);
73
+ } else {
74
+ // If the super property has a setter, we default to using it no matter what.
75
+ // This is clearly very broken and weird, but it's what was here so we have
76
+ // to keep it until the next major at least.
77
+ //
78
+ // TODO: Add a deprecation here.
79
+ set = superSetter;
80
+ }
81
+ } else {
82
+ set = originalSetter;
83
+ }
84
+
85
+ // only create a new CP if we must
86
+ if (get !== originalGetter || set !== originalSetter) {
87
+ // Since multiple mixins may inherit from the same parent, we need
88
+ // to clone the computed property so that other mixins do not receive
89
+ // the wrapped version.
90
+ let dependentKeys = property._dependentKeys || [];
91
+ let newProperty = new ComputedProperty([...dependentKeys, {
92
+ get,
93
+ set
94
+ }]);
95
+ newProperty._readOnly = property._readOnly;
96
+ newProperty._meta = property._meta;
97
+ newProperty.enumerable = property.enumerable;
98
+
99
+ // SAFETY: We passed in the impl for this class
100
+ return makeComputedDecorator(newProperty, ComputedProperty);
101
+ }
102
+ return decorator;
103
+ }
104
+ function giveMethodSuper(key, method, values, descs) {
105
+ // Methods overwrite computed properties, and do not call super to them.
106
+ if (descs[key] !== undefined) {
107
+ return method;
108
+ }
109
+
110
+ // Find the original method in a parent mixin
111
+ let superMethod = values[key];
112
+
113
+ // Only wrap the new method if the original method was a function
114
+ if (typeof superMethod === 'function') {
115
+ return wrap(method, superMethod);
116
+ }
117
+ return method;
118
+ }
119
+ function simpleMakeArray(value) {
120
+ if (!value) {
121
+ return [];
122
+ } else if (!Array.isArray(value)) {
123
+ return [value];
124
+ } else {
125
+ return value;
126
+ }
127
+ }
128
+ function applyConcatenatedProperties(key, value, values) {
129
+ let baseValue = values[key];
130
+ let ret = simpleMakeArray(baseValue).concat(simpleMakeArray(value));
131
+ return ret;
132
+ }
133
+ function applyMergedProperties(key, value, values) {
134
+ let baseValue = values[key];
135
+ if (!baseValue) {
136
+ return value;
137
+ }
138
+ let newBase = Object.assign({}, baseValue);
139
+ let hasFunction = false;
140
+ let props = Object.keys(value);
141
+ for (let prop of props) {
142
+ let propValue = value[prop];
143
+ if (typeof propValue === 'function') {
144
+ hasFunction = true;
145
+ newBase[prop] = giveMethodSuper(prop, propValue, baseValue, {});
146
+ } else {
147
+ newBase[prop] = propValue;
148
+ }
149
+ }
150
+ if (hasFunction) {
151
+ newBase._super = ROOT;
152
+ }
153
+ return newBase;
154
+ }
155
+ function mergeMixins(mixins, meta, descs, values, base, keys, keysWithSuper) {
156
+ let currentMixin;
157
+ for (let i = 0; i < mixins.length; i++) {
158
+ currentMixin = mixins[i];
159
+ if (MIXINS.has(currentMixin)) {
160
+ if (meta.hasMixin(currentMixin)) {
161
+ continue;
162
+ }
163
+ meta.addMixin(currentMixin);
164
+ let {
165
+ properties,
166
+ mixins
167
+ } = currentMixin;
168
+ if (properties !== undefined) {
169
+ mergeProps(meta, properties, descs, values, base, keys, keysWithSuper);
170
+ } else if (mixins !== undefined) {
171
+ mergeMixins(mixins, meta, descs, values, base, keys, keysWithSuper);
172
+ if (currentMixin instanceof Mixin && currentMixin._without !== undefined) {
173
+ currentMixin._without.forEach(keyName => {
174
+ // deleting the key means we won't process the value
175
+ let index = keys.indexOf(keyName);
176
+ if (index !== -1) {
177
+ keys.splice(index, 1);
178
+ }
179
+ });
180
+ }
181
+ }
182
+ } else {
183
+ mergeProps(meta, currentMixin, descs, values, base, keys, keysWithSuper);
184
+ }
185
+ }
186
+ }
187
+ function mergeProps(meta, props, descs, values, base, keys, keysWithSuper) {
188
+ let concats = concatenatedMixinProperties('concatenatedProperties', props, values, base);
189
+ let mergings = concatenatedMixinProperties('mergedProperties', props, values, base);
190
+ let propKeys = Object.keys(props);
191
+ for (let key of propKeys) {
192
+ let value = props[key];
193
+ if (value === undefined) continue;
194
+ if (keys.indexOf(key) === -1) {
195
+ keys.push(key);
196
+ let desc = meta.peekDescriptors(key);
197
+ if (desc === undefined) {
198
+ // If the value is a classic decorator, we don't want to actually
199
+ // access it, because that will execute the decorator while we're
200
+ // building the class.
201
+ if (!isClassicDecorator(value)) {
202
+ // The superclass did not have a CP, which means it may have
203
+ // observers or listeners on that property.
204
+ let prev = values[key] = base[key];
205
+ if (typeof prev === 'function') {
206
+ updateObserversAndListeners(base, key, prev, false);
207
+ }
208
+ }
209
+ } else {
210
+ descs[key] = desc;
211
+
212
+ // The super desc will be overwritten on descs, so save off the fact that
213
+ // there was a super so we know to Object.defineProperty when writing
214
+ // the value
215
+ keysWithSuper.push(key);
216
+ desc.teardown(base, key, meta);
217
+ }
218
+ }
219
+ let isFunction = typeof value === 'function';
220
+ if (isFunction) {
221
+ let desc = descriptorForDecorator(value);
222
+ if (desc !== undefined) {
223
+ // Wrap descriptor function to implement _super() if needed
224
+ descs[key] = giveDecoratorSuper(key, value, desc, descs);
225
+ values[key] = undefined;
226
+ continue;
227
+ }
228
+ }
229
+ if (concats && concats.indexOf(key) >= 0 || key === 'concatenatedProperties' || key === 'mergedProperties') {
230
+ value = applyConcatenatedProperties(key, value, values);
231
+ } else if (mergings && mergings.indexOf(key) > -1) {
232
+ value = applyMergedProperties(key, value, values);
233
+ } else if (isFunction) {
234
+ value = giveMethodSuper(key, value, values, descs);
235
+ }
236
+ values[key] = value;
237
+ descs[key] = undefined;
238
+ }
239
+ }
240
+ function updateObserversAndListeners(obj, key, fn, add) {
241
+ let meta = observerListenerMetaFor(fn);
242
+ if (meta === undefined) return;
243
+ let {
244
+ observers,
245
+ listeners
246
+ } = meta;
247
+ if (observers !== undefined) {
248
+ let updateObserver = add ? addObserver : removeObserver;
249
+ for (let path of observers.paths) {
250
+ updateObserver(obj, path, null, key, observers.sync);
251
+ }
252
+ }
253
+ if (listeners !== undefined) {
254
+ let updateListener = add ? addListener : removeListener;
255
+ for (let listener of listeners) {
256
+ updateListener(obj, listener, null, key);
257
+ }
258
+ }
259
+ }
260
+ function applyMixin(obj, mixins, _hideKeys = false) {
261
+ let descs = Object.create(null);
262
+ let values = Object.create(null);
263
+ let meta$1 = meta(obj);
264
+ let keys = [];
265
+ let keysWithSuper = [];
266
+ obj._super = ROOT;
267
+
268
+ // Go through all mixins and hashes passed in, and:
269
+ //
270
+ // * Handle concatenated properties
271
+ // * Handle merged properties
272
+ // * Set up _super wrapping if necessary
273
+ // * Set up computed property descriptors
274
+ // * Copying `toString` in broken browsers
275
+ mergeMixins(mixins, meta$1, descs, values, obj, keys, keysWithSuper);
276
+ for (let key of keys) {
277
+ let value = values[key];
278
+ let desc = descs[key];
279
+ if (value !== undefined) {
280
+ if (typeof value === 'function') {
281
+ updateObserversAndListeners(obj, key, value, true);
282
+ }
283
+ defineValue(obj, key, value, keysWithSuper.indexOf(key) !== -1, !_hideKeys);
284
+ } else if (desc !== undefined) {
285
+ defineDecorator(obj, key, desc, meta$1);
286
+ }
287
+ }
288
+ if (!meta$1.isPrototypeMeta(obj)) {
289
+ revalidateObservers(obj);
290
+ }
291
+ return obj;
292
+ }
293
+
294
+ /**
295
+ @method mixin
296
+ @param obj
297
+ @param mixins*
298
+ @return obj
299
+ @private
300
+ */
301
+ function mixin(obj, ...args) {
302
+ applyMixin(obj, args);
303
+ return obj;
304
+ }
305
+ const MIXINS = new WeakSet();
306
+
307
+ /**
308
+ The `Mixin` class allows you to create mixins, whose properties can be
309
+ added to other classes. For instance,
310
+
311
+ ```javascript
312
+ import Mixin from '@ember/object/mixin';
313
+
314
+ const EditableMixin = Mixin.create({
315
+ edit() {
316
+ console.log('starting to edit');
317
+ this.set('isEditing', true);
318
+ },
319
+ isEditing: false
320
+ });
321
+ ```
322
+
323
+ ```javascript
324
+ import EmberObject from '@ember/object';
325
+ import EditableMixin from '../mixins/editable';
326
+
327
+ // Mix mixins into classes by passing them as the first arguments to
328
+ // `.extend.`
329
+ class Comment extends EmberObject.extend(EditableMixin) {
330
+ post = null
331
+ }
332
+
333
+ let comment = Comment.create({
334
+ post: somePost
335
+ });
336
+
337
+ comment.edit(); // outputs 'starting to edit'
338
+ ```
339
+
340
+ Note that Mixins are created with `Mixin.create`, not
341
+ `Mixin.extend`.
342
+
343
+ Note that mixins extend a constructor's prototype so arrays and object literals
344
+ defined as properties will be shared amongst objects that implement the mixin.
345
+ If you want to define a property in a mixin that is not shared, you can define
346
+ it either as a computed property or have it be created on initialization of the object.
347
+
348
+ ```javascript
349
+ // filters array will be shared amongst any object implementing mixin
350
+ import Mixin from '@ember/object/mixin';
351
+ import { A } from '@ember/array';
352
+
353
+ const FilterableMixin = Mixin.create({
354
+ filters: A()
355
+ });
356
+ ```
357
+
358
+ ```javascript
359
+ import Mixin from '@ember/object/mixin';
360
+ import { A } from '@ember/array';
361
+ import { computed } from '@ember/object';
362
+
363
+ // filters will be a separate array for every object implementing the mixin
364
+ const FilterableMixin = Mixin.create({
365
+ filters: computed(function() {
366
+ return A();
367
+ })
368
+ });
369
+ ```
370
+
371
+ ```javascript
372
+ import Mixin from '@ember/object/mixin';
373
+ import { A } from '@ember/array';
374
+
375
+ // filters will be created as a separate array during the object's initialization
376
+ const Filterable = Mixin.create({
377
+ filters: null,
378
+
379
+ init() {
380
+ this._super(...arguments);
381
+ this.set("filters", A());
382
+ }
383
+ });
384
+ ```
385
+
386
+ @class Mixin
387
+ @public
388
+ */
389
+ class Mixin {
390
+ /** @internal */
391
+
392
+ /** @internal */
393
+ mixins;
394
+
395
+ /** @internal */
396
+ properties;
397
+
398
+ /** @internal */
399
+ ownerConstructor;
400
+
401
+ /** @internal */
402
+ _without;
403
+ /** @internal */
404
+ constructor(mixins, properties) {
405
+ MIXINS.add(this);
406
+ this.properties = extractAccessors(properties);
407
+ this.mixins = buildMixinsArray(mixins);
408
+ this.ownerConstructor = undefined;
409
+ this._without = undefined;
410
+ }
411
+
412
+ /**
413
+ @method create
414
+ @for @ember/object/mixin
415
+ @static
416
+ @param arguments*
417
+ @public
418
+ */
419
+ static create(...args) {
420
+ deprecateUntil(`Using mixins is deprecated. Refactor to composition patterns or class decorators.`, DEPRECATIONS.DEPRECATE_MIXINS);
421
+ return this[INTERNAL_MIXIN_CREATE](...args);
422
+ }
423
+
424
+ /** @internal */
425
+ static [INTERNAL_MIXIN_CREATE](...args) {
426
+ setUnprocessedMixins();
427
+ let M = this;
428
+ return new M(args, undefined);
429
+ }
430
+
431
+ // returns the mixins currently applied to the specified object
432
+ // TODO: Make `mixin`
433
+ /** @internal */
434
+ static mixins(obj) {
435
+ let meta = peekMeta(obj);
436
+ let ret = [];
437
+ if (meta === null) {
438
+ return ret;
439
+ }
440
+ meta.forEachMixins(currentMixin => {
441
+ // skip primitive mixins since these are always anonymous
442
+ if (!currentMixin.properties) {
443
+ ret.push(currentMixin);
444
+ }
445
+ });
446
+ return ret;
447
+ }
448
+
449
+ /**
450
+ @method reopen
451
+ @param arguments*
452
+ @private
453
+ @internal
454
+ */
455
+ reopen(...args) {
456
+ if (args.length === 0) {
457
+ return this;
458
+ }
459
+ if (this.properties) {
460
+ let currentMixin = new Mixin(undefined, this.properties);
461
+ this.properties = undefined;
462
+ this.mixins = [currentMixin];
463
+ } else if (!this.mixins) {
464
+ this.mixins = [];
465
+ }
466
+ this.mixins = this.mixins.concat(buildMixinsArray(args));
467
+ return this;
468
+ }
469
+
470
+ /**
471
+ @method apply
472
+ @param obj
473
+ @return applied object
474
+ @private
475
+ @internal
476
+ */
477
+ apply(obj, _hideKeys = false) {
478
+ // Ember.NativeArray is a normal Ember.Mixin that we mix into `Array.prototype` when prototype extensions are enabled
479
+ // mutating a native object prototype like this should _not_ result in enumerable properties being added (or we have significant
480
+ // issues with things like deep equality checks from test frameworks, or things like jQuery.extend(true, [], [])).
481
+ //
482
+ // _hideKeys disables enumerablity when applying the mixin. This is a hack, and we should stop mutating the array prototype by default 😫
483
+ return applyMixin(obj, [this], _hideKeys);
484
+ }
485
+
486
+ /** @internal */
487
+ applyPartial(obj) {
488
+ return applyMixin(obj, [this]);
489
+ }
490
+
491
+ /**
492
+ @method detect
493
+ @param obj
494
+ @return {Boolean}
495
+ @private
496
+ @internal
497
+ */
498
+ detect(obj) {
499
+ if (typeof obj !== 'object' || obj === null) {
500
+ return false;
501
+ }
502
+ if (MIXINS.has(obj)) {
503
+ return _detect(obj, this);
504
+ }
505
+ let meta = peekMeta(obj);
506
+ if (meta === null) {
507
+ return false;
508
+ }
509
+ return meta.hasMixin(this);
510
+ }
511
+
512
+ /** @internal */
513
+ without(...args) {
514
+ let ret = new Mixin([this]);
515
+ ret._without = args;
516
+ return ret;
517
+ }
518
+
519
+ /** @internal */
520
+ keys() {
521
+ let keys = _keys(this);
522
+ return keys;
523
+ }
524
+
525
+ /** @internal */
526
+ toString() {
527
+ return '(unknown mixin)';
528
+ }
529
+ }
530
+ function buildMixinsArray(mixins) {
531
+ let length = mixins && mixins.length || 0;
532
+ let m = undefined;
533
+ if (length > 0) {
534
+ m = new Array(length);
535
+ for (let i = 0; i < length; i++) {
536
+ let x = mixins[i];
537
+ if (MIXINS.has(x)) {
538
+ m[i] = x;
539
+ } else {
540
+ m[i] = new Mixin(undefined, x);
541
+ }
542
+ }
543
+ }
544
+ return m;
545
+ }
546
+ function _detect(curMixin, targetMixin, seen = new Set()) {
547
+ if (seen.has(curMixin)) {
548
+ return false;
549
+ }
550
+ seen.add(curMixin);
551
+ if (curMixin === targetMixin) {
552
+ return true;
553
+ }
554
+ let mixins = curMixin.mixins;
555
+ if (mixins) {
556
+ return mixins.some(mixin => _detect(mixin, targetMixin, seen));
557
+ }
558
+ return false;
559
+ }
560
+ function _keys(mixin, ret = new Set(), seen = new Set()) {
561
+ if (seen.has(mixin)) {
562
+ return;
563
+ }
564
+ seen.add(mixin);
565
+ if (mixin.properties) {
566
+ let props = Object.keys(mixin.properties);
567
+ for (let prop of props) {
568
+ ret.add(prop);
569
+ }
570
+ } else if (mixin.mixins) {
571
+ mixin.mixins.forEach(x => _keys(x, ret, seen));
572
+ }
573
+ return ret;
574
+ }
575
+
576
+ export { INTERNAL_MIXIN_CREATE as I, Mixin as M, applyMixin as a, mixin as m };
@@ -131,4 +131,4 @@ function tryIsNamespace(lookup, prop) {
131
131
  }
132
132
  }
133
133
 
134
- export { NAMESPACES as N, NAMESPACES_BY_ID as a, addNamespace as b, findNamespaces as c, processNamespace as d, setSearchDisabled as e, findNamespace as f, isSearchDisabled as i, processAllNamespaces as p, removeNamespace as r, setUnprocessedMixins as s };
134
+ export { NAMESPACES as N, NAMESPACES_BY_ID as a, addNamespace as b, findNamespaces as c, processNamespace as d, setUnprocessedMixins as e, findNamespace as f, isSearchDisabled as i, processAllNamespaces as p, removeNamespace as r, setSearchDisabled as s };
@@ -1,6 +1,6 @@
1
1
  import { toBool } from '../@glimmer/global-context/index.js';
2
- import { c as createComputeRef, v as valueForRef } from './reference-CG0yPgLy.js';
3
- import { i as internalHelper } from './hash-BitfXhCx.js';
2
+ import { c as createComputeRef, v as valueForRef } from './reference-CccCE8mJ.js';
3
+ import { i as internalHelper } from './hash-pP7ZP_NN.js';
4
4
 
5
5
  /**
6
6
  * Performs a strict equality comparison.
@@ -3,8 +3,8 @@ import { peekMeta } from '../@ember/-internals/meta/lib/meta.js';
3
3
  import { registerDestructor } from '../@glimmer/destroyable/index.js';
4
4
  import { a as valueForTag, v as validateTag, k as CURRENT_TAG } from './cache-CofLhaS4.js';
5
5
  import { a as tagMetaFor } from './meta-BJtIZDir.js';
6
- import { g as getChainTagsForKey } from './chain-tags-B2J7DsxO.js';
7
- import { a as addListener, r as removeListener, s as sendEvent } from './events-DYrYz3V8.js';
6
+ import { g as getChainTagsForKey } from './chain-tags-BlsXEpE-.js';
7
+ import { a as addListener, r as removeListener, s as sendEvent } from './events-3Q5Qvo6Q.js';
8
8
 
9
9
  const AFTER_OBSERVERS = ':change';
10
10
  function changeEvent(keyName) {
@@ -1,7 +1,7 @@
1
- import { g as check } from './arguments-CCYATlEH.js';
1
+ import { g as check } from './arguments-xjTAZ6VE.js';
2
2
  import { registerDestructor } from '../@glimmer/destroyable/index.js';
3
- import { k as setInternalModifierManager } from './api-DlJKfm_f.js';
4
- import { v as valueForRef } from './reference-CG0yPgLy.js';
3
+ import { k as setInternalModifierManager } from './api-DJnXAjon.js';
4
+ import { v as valueForRef } from './reference-CccCE8mJ.js';
5
5
  import { b as createUpdatableTag } from './cache-CofLhaS4.js';
6
6
 
7
7
  class OnModifierState {
@@ -1,8 +1,8 @@
1
1
  import { _instrumentStart } from '../@ember/instrumentation/index.js';
2
2
  import { c as capabilityFlagsFrom } from './capabilities-BuVYh-vx.js';
3
- import { v as valueForRef, U as UNDEFINED_REFERENCE } from './reference-CG0yPgLy.js';
4
- import { E as EMPTY_ARGS } from './arguments-CCYATlEH.js';
5
- import { u as unwrapTemplate } from './curly-CdvJuTyW.js';
3
+ import { v as valueForRef, U as UNDEFINED_REFERENCE } from './reference-CccCE8mJ.js';
4
+ import { E as EMPTY_ARGS } from './arguments-xjTAZ6VE.js';
5
+ import { u as unwrapTemplate } from './curly-Bg--Dj0X.js';
6
6
  import { t as templateFactory } from './index-kwuZeaNz.js';
7
7
 
8
8
  function instrumentationPayload(def) {
@@ -1,7 +1,7 @@
1
1
  import { l as lookupDescriptor } from './lookup-descriptor-CwcVgaLv.js';
2
- import { C as COMPUTED_SETTERS } from './decorator-9ikVwsjY.js';
2
+ import { C as COMPUTED_SETTERS } from './decorator-DcvVDSJV.js';
3
3
  import { i as isPath, _ as _getPath } from './property_get-DuDs6rLg.js';
4
- import { n as notifyPropertyChange } from './computed-BNdMwGhH.js';
4
+ import { n as notifyPropertyChange } from './computed-ZvOk7SJQ.js';
5
5
 
6
6
  /**
7
7
  @module @ember/object
@@ -1,4 +1,5 @@
1
1
  import { e as expect, i as isDict } from './collections-GpG8lT2g.js';
2
+ import { D as DESTROYABLE_META_KEY } from './destroyable-key-BsfVBM7f.js';
2
3
  import { setProp, getProp } from '../@glimmer/global-context/index.js';
3
4
  import { C as CONSTANT_TAG, I as INITIAL, v as validateTag, t as track, a as valueForTag, c as consumeTag } from './cache-CofLhaS4.js';
4
5
 
@@ -11,6 +12,7 @@ const INVOKABLE = 3;
11
12
  //////////
12
13
 
13
14
  class ReferenceImpl {
15
+ [DESTROYABLE_META_KEY];
14
16
  [REFERENCE];
15
17
  tag = null;
16
18
  lastRevision = INITIAL;
@@ -1,4 +1,4 @@
1
- import { N as NewTreeBuilder, R as RemoteBlock, C as COMMENT_NODE, T as TEXT_NODE, E as ELEMENT_NODE, e as NS_SVG } from './api-DzOa0Acr.js';
1
+ import { N as NewTreeBuilder, R as RemoteBlock, C as COMMENT_NODE, T as TEXT_NODE, E as ELEMENT_NODE, e as NS_SVG } from './api-B3M8aF1d.js';
2
2
  import { c as castToSimple, a as castToBrowser } from './simple-cast-DCvJLSin.js';
3
3
  import { e as expect } from './collections-GpG8lT2g.js';
4
4
  import { a as assert } from './assert-Zqc4wiAV.js';