discourse-ember-source 3.5.1.1 → 3.5.1.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 (741) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ember/version.rb +1 -1
  3. metadata +2 -740
  4. data/.gitignore +0 -9
  5. data/.travis.yml +0 -5
  6. data/Gemfile +0 -6
  7. data/LICENSE.txt +0 -21
  8. data/README +0 -18
  9. data/README.md +0 -39
  10. data/Rakefile +0 -27
  11. data/bin/console +0 -14
  12. data/bin/setup +0 -8
  13. data/discourse-ember-source-3.5.1.0.gem +0 -0
  14. data/dist/ember-all.debug.map +0 -1
  15. data/dist/ember-template-compiler.map +0 -1
  16. data/dist/ember-testing.map +0 -1
  17. data/dist/ember-tests.map +0 -1
  18. data/dist/ember-tests.prod.map +0 -1
  19. data/dist/ember.debug.map +0 -1
  20. data/dist/ember.min.map +0 -1
  21. data/dist/ember.prod.map +0 -1
  22. data/dist/es/@ember/application/globals-resolver.js +0 -425
  23. data/dist/es/@ember/application/index.js +0 -3
  24. data/dist/es/@ember/application/instance.js +0 -513
  25. data/dist/es/@ember/application/lib/application.js +0 -1139
  26. data/dist/es/@ember/application/lib/lazy_load.js +0 -69
  27. data/dist/es/@ember/application/lib/validate-type.js +0 -24
  28. data/dist/es/@ember/application/tests/application_instance_test.js +0 -230
  29. data/dist/es/@ember/application/tests/application_test.js +0 -470
  30. data/dist/es/@ember/application/tests/bootstrap-test.js +0 -28
  31. data/dist/es/@ember/application/tests/dependency_injection/custom_resolver_test.js +0 -32
  32. data/dist/es/@ember/application/tests/dependency_injection/default_resolver_test.js +0 -363
  33. data/dist/es/@ember/application/tests/dependency_injection/normalization_test.js +0 -70
  34. data/dist/es/@ember/application/tests/dependency_injection/to_string_test.js +0 -71
  35. data/dist/es/@ember/application/tests/dependency_injection_test.js +0 -93
  36. data/dist/es/@ember/application/tests/initializers_test.js +0 -391
  37. data/dist/es/@ember/application/tests/instance_initializers_test.js +0 -395
  38. data/dist/es/@ember/application/tests/lazy_load_test.js +0 -79
  39. data/dist/es/@ember/application/tests/logging_test.js +0 -179
  40. data/dist/es/@ember/application/tests/readiness_test.js +0 -138
  41. data/dist/es/@ember/application/tests/reset_test.js +0 -185
  42. data/dist/es/@ember/application/tests/visit_test.js +0 -783
  43. data/dist/es/@ember/canary-features/index.js +0 -76
  44. data/dist/es/@ember/controller/index.js +0 -50
  45. data/dist/es/@ember/controller/lib/controller_mixin.js +0 -42
  46. data/dist/es/@ember/controller/tests/controller_test.js +0 -209
  47. data/dist/es/@ember/debug/index.js +0 -264
  48. data/dist/es/@ember/debug/lib/deprecate.js +0 -198
  49. data/dist/es/@ember/debug/lib/handlers.js +0 -22
  50. data/dist/es/@ember/debug/lib/testing.js +0 -7
  51. data/dist/es/@ember/debug/lib/warn.js +0 -107
  52. data/dist/es/@ember/debug/tests/handlers-test.js +0 -144
  53. data/dist/es/@ember/debug/tests/main_test.js +0 -444
  54. data/dist/es/@ember/deprecated-features/index.js +0 -21
  55. data/dist/es/@ember/engine/index.js +0 -532
  56. data/dist/es/@ember/engine/instance.js +0 -228
  57. data/dist/es/@ember/engine/lib/engine-parent.js +0 -32
  58. data/dist/es/@ember/engine/tests/engine_initializers_test.js +0 -366
  59. data/dist/es/@ember/engine/tests/engine_instance_initializers_test.js +0 -409
  60. data/dist/es/@ember/engine/tests/engine_instance_test.js +0 -115
  61. data/dist/es/@ember/engine/tests/engine_parent_test.js +0 -20
  62. data/dist/es/@ember/engine/tests/engine_test.js +0 -121
  63. data/dist/es/@ember/error/index.js +0 -36
  64. data/dist/es/@ember/error/tests/index_test.js +0 -19
  65. data/dist/es/@ember/instrumentation/index.js +0 -240
  66. data/dist/es/@ember/instrumentation/tests/index-test.js +0 -214
  67. data/dist/es/@ember/map/index.js +0 -218
  68. data/dist/es/@ember/map/lib/ordered-set.js +0 -186
  69. data/dist/es/@ember/map/lib/utils.js +0 -29
  70. data/dist/es/@ember/map/tests/map_test.js +0 -578
  71. data/dist/es/@ember/map/with-default.js +0 -87
  72. data/dist/es/@ember/object/computed.js +0 -35
  73. data/dist/es/@ember/object/lib/computed/computed_macros.js +0 -742
  74. data/dist/es/@ember/object/lib/computed/reduce_computed_macros.js +0 -894
  75. data/dist/es/@ember/object/tests/computed/computed_macros_test.js +0 -533
  76. data/dist/es/@ember/object/tests/computed/reduce_computed_macros_test.js +0 -2243
  77. data/dist/es/@ember/polyfills/index.js +0 -3
  78. data/dist/es/@ember/polyfills/lib/assign.js +0 -43
  79. data/dist/es/@ember/polyfills/lib/merge.js +0 -35
  80. data/dist/es/@ember/polyfills/tests/assign_test.js +0 -64
  81. data/dist/es/@ember/runloop/index.js +0 -749
  82. data/dist/es/@ember/runloop/tests/debounce_test.js +0 -87
  83. data/dist/es/@ember/runloop/tests/later_test.js +0 -264
  84. data/dist/es/@ember/runloop/tests/next_test.js +0 -56
  85. data/dist/es/@ember/runloop/tests/once_test.js +0 -62
  86. data/dist/es/@ember/runloop/tests/onerror_test.js +0 -59
  87. data/dist/es/@ember/runloop/tests/run_bind_test.js +0 -59
  88. data/dist/es/@ember/runloop/tests/run_test.js +0 -28
  89. data/dist/es/@ember/runloop/tests/schedule_test.js +0 -86
  90. data/dist/es/@ember/runloop/tests/sync_test.js +0 -32
  91. data/dist/es/@ember/runloop/tests/unwind_test.js +0 -54
  92. data/dist/es/@ember/service/index.js +0 -57
  93. data/dist/es/@ember/string/index.js +0 -362
  94. data/dist/es/@ember/string/lib/string_registry.js +0 -13
  95. data/dist/es/@ember/string/tests/camelize_test.js +0 -53
  96. data/dist/es/@ember/string/tests/capitalize_test.js +0 -58
  97. data/dist/es/@ember/string/tests/classify_test.js +0 -79
  98. data/dist/es/@ember/string/tests/dasherize_test.js +0 -57
  99. data/dist/es/@ember/string/tests/decamelize_test.js +0 -51
  100. data/dist/es/@ember/string/tests/loc_test.js +0 -76
  101. data/dist/es/@ember/string/tests/underscore_test.js +0 -51
  102. data/dist/es/@ember/string/tests/w_test.js +0 -39
  103. data/dist/es/@glimmer/compiler.js +0 -1226
  104. data/dist/es/@glimmer/encoder.js +0 -39
  105. data/dist/es/@glimmer/low-level.js +0 -82
  106. data/dist/es/@glimmer/node.js +0 -112
  107. data/dist/es/@glimmer/opcode-compiler.js +0 -1999
  108. data/dist/es/@glimmer/program.js +0 -405
  109. data/dist/es/@glimmer/reference.js +0 -478
  110. data/dist/es/@glimmer/runtime.js +0 -4086
  111. data/dist/es/@glimmer/syntax.js +0 -1424
  112. data/dist/es/@glimmer/util.js +0 -189
  113. data/dist/es/@glimmer/vm.js +0 -27
  114. data/dist/es/@glimmer/wire-format.js +0 -56
  115. data/dist/es/backburner.js +0 -936
  116. data/dist/es/container/index.js +0 -8
  117. data/dist/es/container/lib/container.js +0 -437
  118. data/dist/es/container/lib/registry.js +0 -646
  119. data/dist/es/container/tests/container_test.js +0 -872
  120. data/dist/es/container/tests/owner_test.js +0 -20
  121. data/dist/es/container/tests/registry_test.js +0 -943
  122. data/dist/es/dag-map.js +0 -209
  123. data/dist/es/ember-browser-environment/index.js +0 -8
  124. data/dist/es/ember-browser-environment/lib/has-dom.js +0 -19
  125. data/dist/es/ember-console/index.js +0 -177
  126. data/dist/es/ember-environment/index.js +0 -3
  127. data/dist/es/ember-environment/lib/context.js +0 -20
  128. data/dist/es/ember-environment/lib/env.js +0 -185
  129. data/dist/es/ember-environment/lib/global.js +0 -14
  130. data/dist/es/ember-error-handling/index.js +0 -22
  131. data/dist/es/ember-extension-support/index.js +0 -2
  132. data/dist/es/ember-extension-support/lib/container_debug_adapter.js +0 -99
  133. data/dist/es/ember-extension-support/lib/data_adapter.js +0 -493
  134. data/dist/es/ember-extension-support/tests/container_debug_adapter_test.js +0 -73
  135. data/dist/es/ember-extension-support/tests/data_adapter_test.js +0 -301
  136. data/dist/es/ember-glimmer/index.js +0 -286
  137. data/dist/es/ember-glimmer/lib/compile-time-lookup.js +0 -37
  138. data/dist/es/ember-glimmer/lib/component-managers/abstract.js +0 -49
  139. data/dist/es/ember-glimmer/lib/component-managers/curly.js +0 -395
  140. data/dist/es/ember-glimmer/lib/component-managers/custom.js +0 -145
  141. data/dist/es/ember-glimmer/lib/component-managers/definition-state.js +0 -1
  142. data/dist/es/ember-glimmer/lib/component-managers/mount.js +0 -103
  143. data/dist/es/ember-glimmer/lib/component-managers/outlet.js +0 -114
  144. data/dist/es/ember-glimmer/lib/component-managers/render.js +0 -112
  145. data/dist/es/ember-glimmer/lib/component-managers/root.js +0 -74
  146. data/dist/es/ember-glimmer/lib/component-managers/template-only.js +0 -46
  147. data/dist/es/ember-glimmer/lib/component.js +0 -633
  148. data/dist/es/ember-glimmer/lib/components/checkbox.js +0 -57
  149. data/dist/es/ember-glimmer/lib/components/link-to.js +0 -777
  150. data/dist/es/ember-glimmer/lib/components/text_area.js +0 -236
  151. data/dist/es/ember-glimmer/lib/components/text_field.js +0 -145
  152. data/dist/es/ember-glimmer/lib/dom.js +0 -3
  153. data/dist/es/ember-glimmer/lib/environment.js +0 -102
  154. data/dist/es/ember-glimmer/lib/helper.js +0 -128
  155. data/dist/es/ember-glimmer/lib/helpers/-class.js +0 -23
  156. data/dist/es/ember-glimmer/lib/helpers/-html-safe.js +0 -9
  157. data/dist/es/ember-glimmer/lib/helpers/-input-type.js +0 -11
  158. data/dist/es/ember-glimmer/lib/helpers/-normalize-class.js +0 -22
  159. data/dist/es/ember-glimmer/lib/helpers/action.js +0 -360
  160. data/dist/es/ember-glimmer/lib/helpers/component.js +0 -135
  161. data/dist/es/ember-glimmer/lib/helpers/concat.js +0 -38
  162. data/dist/es/ember-glimmer/lib/helpers/each-in.js +0 -126
  163. data/dist/es/ember-glimmer/lib/helpers/get.js +0 -100
  164. data/dist/es/ember-glimmer/lib/helpers/hash.js +0 -44
  165. data/dist/es/ember-glimmer/lib/helpers/if-unless.js +0 -142
  166. data/dist/es/ember-glimmer/lib/helpers/loc.js +0 -40
  167. data/dist/es/ember-glimmer/lib/helpers/log.js +0 -25
  168. data/dist/es/ember-glimmer/lib/helpers/mut.js +0 -107
  169. data/dist/es/ember-glimmer/lib/helpers/query-param.js +0 -31
  170. data/dist/es/ember-glimmer/lib/helpers/readonly.js +0 -104
  171. data/dist/es/ember-glimmer/lib/helpers/unbound.js +0 -36
  172. data/dist/es/ember-glimmer/lib/modifiers/action.js +0 -185
  173. data/dist/es/ember-glimmer/lib/protocol-for-url.js +0 -48
  174. data/dist/es/ember-glimmer/lib/renderer.js +0 -371
  175. data/dist/es/ember-glimmer/lib/resolver.js +0 -290
  176. data/dist/es/ember-glimmer/lib/setup-registry.js +0 -77
  177. data/dist/es/ember-glimmer/lib/syntax.js +0 -73
  178. data/dist/es/ember-glimmer/lib/syntax/-text-area.js +0 -8
  179. data/dist/es/ember-glimmer/lib/syntax/input.js +0 -173
  180. data/dist/es/ember-glimmer/lib/syntax/let.js +0 -50
  181. data/dist/es/ember-glimmer/lib/syntax/mount.js +0 -101
  182. data/dist/es/ember-glimmer/lib/syntax/outlet.js +0 -120
  183. data/dist/es/ember-glimmer/lib/syntax/render.js +0 -140
  184. data/dist/es/ember-glimmer/lib/syntax/utils.js +0 -6
  185. data/dist/es/ember-glimmer/lib/template-compiler.js +0 -7
  186. data/dist/es/ember-glimmer/lib/template.js +0 -16
  187. data/dist/es/ember-glimmer/lib/template_registry.js +0 -18
  188. data/dist/es/ember-glimmer/lib/templates/component.js +0 -2
  189. data/dist/es/ember-glimmer/lib/templates/empty.js +0 -2
  190. data/dist/es/ember-glimmer/lib/templates/link-to.js +0 -2
  191. data/dist/es/ember-glimmer/lib/templates/outlet.js +0 -2
  192. data/dist/es/ember-glimmer/lib/templates/root.js +0 -2
  193. data/dist/es/ember-glimmer/lib/utils/bindings.js +0 -180
  194. data/dist/es/ember-glimmer/lib/utils/curly-component-state-bucket.js +0 -36
  195. data/dist/es/ember-glimmer/lib/utils/custom-component-manager.js +0 -20
  196. data/dist/es/ember-glimmer/lib/utils/debug-stack.js +0 -57
  197. data/dist/es/ember-glimmer/lib/utils/iterable.js +0 -358
  198. data/dist/es/ember-glimmer/lib/utils/outlet.js +0 -89
  199. data/dist/es/ember-glimmer/lib/utils/process-args.js +0 -40
  200. data/dist/es/ember-glimmer/lib/utils/references.js +0 -325
  201. data/dist/es/ember-glimmer/lib/utils/serialization-first-node-helpers.js +0 -1
  202. data/dist/es/ember-glimmer/lib/utils/string.js +0 -98
  203. data/dist/es/ember-glimmer/lib/utils/to-bool.js +0 -9
  204. data/dist/es/ember-glimmer/lib/views/outlet.js +0 -71
  205. data/dist/es/ember-glimmer/tests/integration/application/actions-test.js +0 -107
  206. data/dist/es/ember-glimmer/tests/integration/application/engine-test.js +0 -912
  207. data/dist/es/ember-glimmer/tests/integration/application/rendering-test.js +0 -530
  208. data/dist/es/ember-glimmer/tests/integration/components/angle-bracket-invocation-test.js +0 -852
  209. data/dist/es/ember-glimmer/tests/integration/components/append-test.js +0 -742
  210. data/dist/es/ember-glimmer/tests/integration/components/attribute-bindings-test.js +0 -999
  211. data/dist/es/ember-glimmer/tests/integration/components/attrs-lookup-test.js +0 -268
  212. data/dist/es/ember-glimmer/tests/integration/components/class-bindings-test.js +0 -849
  213. data/dist/es/ember-glimmer/tests/integration/components/contextual-components-test.js +0 -1493
  214. data/dist/es/ember-glimmer/tests/integration/components/curly-components-test.js +0 -3705
  215. data/dist/es/ember-glimmer/tests/integration/components/destroy-test.js +0 -33
  216. data/dist/es/ember-glimmer/tests/integration/components/dynamic-components-test.js +0 -896
  217. data/dist/es/ember-glimmer/tests/integration/components/error-handling-test.js +0 -164
  218. data/dist/es/ember-glimmer/tests/integration/components/fragment-components-test.js +0 -285
  219. data/dist/es/ember-glimmer/tests/integration/components/instrumentation-compile-test.js +0 -108
  220. data/dist/es/ember-glimmer/tests/integration/components/instrumentation-test.js +0 -157
  221. data/dist/es/ember-glimmer/tests/integration/components/life-cycle-test.js +0 -1653
  222. data/dist/es/ember-glimmer/tests/integration/components/link-to-test.js +0 -218
  223. data/dist/es/ember-glimmer/tests/integration/components/local-lookup-test.js +0 -414
  224. data/dist/es/ember-glimmer/tests/integration/components/namespaced-lookup-test.js +0 -185
  225. data/dist/es/ember-glimmer/tests/integration/components/render-to-element-test.js +0 -0
  226. data/dist/es/ember-glimmer/tests/integration/components/target-action-test.js +0 -779
  227. data/dist/es/ember-glimmer/tests/integration/components/template-only-components-test.js +0 -225
  228. data/dist/es/ember-glimmer/tests/integration/components/to-string-test.js +0 -27
  229. data/dist/es/ember-glimmer/tests/integration/components/utils-test.js +0 -401
  230. data/dist/es/ember-glimmer/tests/integration/components/web-component-fallback-test.js +0 -35
  231. data/dist/es/ember-glimmer/tests/integration/components/will-destroy-element-hook-test.js +0 -40
  232. data/dist/es/ember-glimmer/tests/integration/content-test.js +0 -1759
  233. data/dist/es/ember-glimmer/tests/integration/custom-component-manager-test.js +0 -508
  234. data/dist/es/ember-glimmer/tests/integration/event-dispatcher-test.js +0 -607
  235. data/dist/es/ember-glimmer/tests/integration/helpers/-class-test.js +0 -76
  236. data/dist/es/ember-glimmer/tests/integration/helpers/closure-action-test.js +0 -1240
  237. data/dist/es/ember-glimmer/tests/integration/helpers/concat-test.js +0 -106
  238. data/dist/es/ember-glimmer/tests/integration/helpers/custom-helper-test.js +0 -672
  239. data/dist/es/ember-glimmer/tests/integration/helpers/element-action-test.js +0 -1595
  240. data/dist/es/ember-glimmer/tests/integration/helpers/get-test.js +0 -618
  241. data/dist/es/ember-glimmer/tests/integration/helpers/hash-test.js +0 -188
  242. data/dist/es/ember-glimmer/tests/integration/helpers/if-unless-test.js +0 -149
  243. data/dist/es/ember-glimmer/tests/integration/helpers/input-test.js +0 -827
  244. data/dist/es/ember-glimmer/tests/integration/helpers/loc-test.js +0 -103
  245. data/dist/es/ember-glimmer/tests/integration/helpers/log-test.js +0 -61
  246. data/dist/es/ember-glimmer/tests/integration/helpers/mut-test.js +0 -580
  247. data/dist/es/ember-glimmer/tests/integration/helpers/partial-test.js +0 -386
  248. data/dist/es/ember-glimmer/tests/integration/helpers/readonly-test.js +0 -293
  249. data/dist/es/ember-glimmer/tests/integration/helpers/render-test.js +0 -522
  250. data/dist/es/ember-glimmer/tests/integration/helpers/text-area-test.js +0 -166
  251. data/dist/es/ember-glimmer/tests/integration/helpers/unbound-test.js +0 -650
  252. data/dist/es/ember-glimmer/tests/integration/helpers/yield-test.js +0 -275
  253. data/dist/es/ember-glimmer/tests/integration/input-test.js +0 -242
  254. data/dist/es/ember-glimmer/tests/integration/mount-test.js +0 -424
  255. data/dist/es/ember-glimmer/tests/integration/outlet-test.js +0 -318
  256. data/dist/es/ember-glimmer/tests/integration/refinements-test.js +0 -74
  257. data/dist/es/ember-glimmer/tests/integration/render-settled-test.js +0 -72
  258. data/dist/es/ember-glimmer/tests/integration/svg-test.js +0 -158
  259. data/dist/es/ember-glimmer/tests/integration/syntax/each-in-test.js +0 -697
  260. data/dist/es/ember-glimmer/tests/integration/syntax/each-test.js +0 -1251
  261. data/dist/es/ember-glimmer/tests/integration/syntax/experimental-syntax-test.js +0 -42
  262. data/dist/es/ember-glimmer/tests/integration/syntax/if-unless-test.js +0 -108
  263. data/dist/es/ember-glimmer/tests/integration/syntax/in-element-test.js +0 -119
  264. data/dist/es/ember-glimmer/tests/integration/syntax/let-test.js +0 -390
  265. data/dist/es/ember-glimmer/tests/integration/syntax/with-dynamic-var-test.js +0 -36
  266. data/dist/es/ember-glimmer/tests/integration/syntax/with-test.js +0 -422
  267. data/dist/es/ember-glimmer/tests/unit/outlet-test.js +0 -48
  268. data/dist/es/ember-glimmer/tests/unit/runtime-resolver-cache-test.js +0 -263
  269. data/dist/es/ember-glimmer/tests/unit/template-factory-test.js +0 -67
  270. data/dist/es/ember-glimmer/tests/unit/utils/debug-stack-test.js +0 -38
  271. data/dist/es/ember-glimmer/tests/utils/abstract-test-case.js +0 -1
  272. data/dist/es/ember-glimmer/tests/utils/helpers.js +0 -15
  273. data/dist/es/ember-glimmer/tests/utils/shared-conditional-tests.js +0 -965
  274. data/dist/es/ember-glimmer/tests/utils/string-test.js +0 -47
  275. data/dist/es/ember-glimmer/tests/utils/test-case.js +0 -6
  276. data/dist/es/ember-glimmer/tests/utils/test-helpers.js +0 -1
  277. data/dist/es/ember-meta/index.js +0 -1
  278. data/dist/es/ember-meta/lib/meta.js +0 -623
  279. data/dist/es/ember-meta/tests/meta_test.js +0 -169
  280. data/dist/es/ember-metal/index.js +0 -33
  281. data/dist/es/ember-metal/lib/alias.js +0 -80
  282. data/dist/es/ember-metal/lib/array.js +0 -55
  283. data/dist/es/ember-metal/lib/array_events.js +0 -65
  284. data/dist/es/ember-metal/lib/chains.js +0 -315
  285. data/dist/es/ember-metal/lib/change_event.js +0 -4
  286. data/dist/es/ember-metal/lib/computed.js +0 -526
  287. data/dist/es/ember-metal/lib/computed_cache.js +0 -58
  288. data/dist/es/ember-metal/lib/dependent_keys.js +0 -34
  289. data/dist/es/ember-metal/lib/deprecate_property.js +0 -34
  290. data/dist/es/ember-metal/lib/descriptor.js +0 -28
  291. data/dist/es/ember-metal/lib/each_proxy.js +0 -106
  292. data/dist/es/ember-metal/lib/each_proxy_events.js +0 -13
  293. data/dist/es/ember-metal/lib/events.js +0 -174
  294. data/dist/es/ember-metal/lib/expand_properties.js +0 -64
  295. data/dist/es/ember-metal/lib/get_properties.js +0 -45
  296. data/dist/es/ember-metal/lib/injected_property.js +0 -53
  297. data/dist/es/ember-metal/lib/is_blank.js +0 -34
  298. data/dist/es/ember-metal/lib/is_empty.js +0 -63
  299. data/dist/es/ember-metal/lib/is_none.js +0 -27
  300. data/dist/es/ember-metal/lib/is_present.js +0 -38
  301. data/dist/es/ember-metal/lib/libraries.js +0 -80
  302. data/dist/es/ember-metal/lib/mixin.js +0 -646
  303. data/dist/es/ember-metal/lib/namespace_search.js +0 -166
  304. data/dist/es/ember-metal/lib/observer.js +0 -34
  305. data/dist/es/ember-metal/lib/observer_set.js +0 -48
  306. data/dist/es/ember-metal/lib/path_cache.js +0 -5
  307. data/dist/es/ember-metal/lib/properties.js +0 -192
  308. data/dist/es/ember-metal/lib/property_events.js +0 -198
  309. data/dist/es/ember-metal/lib/property_get.js +0 -160
  310. data/dist/es/ember-metal/lib/property_set.js +0 -157
  311. data/dist/es/ember-metal/lib/set_properties.js +0 -43
  312. data/dist/es/ember-metal/lib/tags.js +0 -81
  313. data/dist/es/ember-metal/lib/tracked.js +0 -201
  314. data/dist/es/ember-metal/lib/transaction.js +0 -137
  315. data/dist/es/ember-metal/lib/watch_key.js +0 -113
  316. data/dist/es/ember-metal/lib/watch_path.js +0 -24
  317. data/dist/es/ember-metal/lib/watching.js +0 -54
  318. data/dist/es/ember-metal/tests/accessors/get_path_test.js +0 -82
  319. data/dist/es/ember-metal/tests/accessors/get_properties_test.js +0 -36
  320. data/dist/es/ember-metal/tests/accessors/get_test.js +0 -335
  321. data/dist/es/ember-metal/tests/accessors/mandatory_setters_test.js +0 -470
  322. data/dist/es/ember-metal/tests/accessors/set_path_test.js +0 -97
  323. data/dist/es/ember-metal/tests/accessors/set_test.js +0 -128
  324. data/dist/es/ember-metal/tests/alias_test.js +0 -167
  325. data/dist/es/ember-metal/tests/chains_test.js +0 -210
  326. data/dist/es/ember-metal/tests/computed_test.js +0 -1040
  327. data/dist/es/ember-metal/tests/descriptor_test.js +0 -368
  328. data/dist/es/ember-metal/tests/events_test.js +0 -210
  329. data/dist/es/ember-metal/tests/expand_properties_test.js +0 -119
  330. data/dist/es/ember-metal/tests/injected_property_test.js +0 -76
  331. data/dist/es/ember-metal/tests/is_blank_test.js +0 -29
  332. data/dist/es/ember-metal/tests/is_empty_test.js +0 -55
  333. data/dist/es/ember-metal/tests/is_none_test.js +0 -23
  334. data/dist/es/ember-metal/tests/is_present_test.js +0 -30
  335. data/dist/es/ember-metal/tests/libraries_test.js +0 -99
  336. data/dist/es/ember-metal/tests/main_test.js +0 -31
  337. data/dist/es/ember-metal/tests/mixin/alias_method_test.js +0 -91
  338. data/dist/es/ember-metal/tests/mixin/apply_test.js +0 -40
  339. data/dist/es/ember-metal/tests/mixin/computed_test.js +0 -166
  340. data/dist/es/ember-metal/tests/mixin/concatenated_properties_test.js +0 -117
  341. data/dist/es/ember-metal/tests/mixin/detect_test.js +0 -40
  342. data/dist/es/ember-metal/tests/mixin/introspection_test.js +0 -75
  343. data/dist/es/ember-metal/tests/mixin/merged_properties_test.js +0 -200
  344. data/dist/es/ember-metal/tests/mixin/method_test.js +0 -252
  345. data/dist/es/ember-metal/tests/mixin/observer_test.js +0 -202
  346. data/dist/es/ember-metal/tests/mixin/reopen_test.js +0 -53
  347. data/dist/es/ember-metal/tests/mixin/without_test.js +0 -22
  348. data/dist/es/ember-metal/tests/namespace_search_test.js +0 -16
  349. data/dist/es/ember-metal/tests/observer_test.js +0 -961
  350. data/dist/es/ember-metal/tests/performance_test.js +0 -81
  351. data/dist/es/ember-metal/tests/properties_test.js +0 -120
  352. data/dist/es/ember-metal/tests/property_did_change_hook.js +0 -73
  353. data/dist/es/ember-metal/tests/set_properties_test.js +0 -49
  354. data/dist/es/ember-metal/tests/tracked/computed_test.js +0 -67
  355. data/dist/es/ember-metal/tests/tracked/get_test.js +0 -86
  356. data/dist/es/ember-metal/tests/tracked/set_test.js +0 -44
  357. data/dist/es/ember-metal/tests/tracked/support.js +0 -37
  358. data/dist/es/ember-metal/tests/tracked/validation_test.js +0 -233
  359. data/dist/es/ember-metal/tests/watching/is_watching_test.js +0 -97
  360. data/dist/es/ember-metal/tests/watching/unwatch_test.js +0 -109
  361. data/dist/es/ember-metal/tests/watching/watch_test.js +0 -255
  362. data/dist/es/ember-owner/index.js +0 -66
  363. data/dist/es/ember-routing/index.js +0 -21
  364. data/dist/es/ember-routing/lib/ext/controller.js +0 -222
  365. data/dist/es/ember-routing/lib/location/api.js +0 -118
  366. data/dist/es/ember-routing/lib/location/auto_location.js +0 -323
  367. data/dist/es/ember-routing/lib/location/hash_location.js +0 -171
  368. data/dist/es/ember-routing/lib/location/history_location.js +0 -298
  369. data/dist/es/ember-routing/lib/location/none_location.js +0 -122
  370. data/dist/es/ember-routing/lib/location/util.js +0 -114
  371. data/dist/es/ember-routing/lib/services/router.js +0 -243
  372. data/dist/es/ember-routing/lib/services/routing.js +0 -101
  373. data/dist/es/ember-routing/lib/system/cache.js +0 -40
  374. data/dist/es/ember-routing/lib/system/controller_for.js +0 -14
  375. data/dist/es/ember-routing/lib/system/dsl.js +0 -208
  376. data/dist/es/ember-routing/lib/system/generate_controller.js +0 -54
  377. data/dist/es/ember-routing/lib/system/query_params.js +0 -6
  378. data/dist/es/ember-routing/lib/system/route.js +0 -2476
  379. data/dist/es/ember-routing/lib/system/router.js +0 -1607
  380. data/dist/es/ember-routing/lib/system/router_state.js +0 -26
  381. data/dist/es/ember-routing/lib/system/transition.js +0 -153
  382. data/dist/es/ember-routing/lib/utils.js +0 -230
  383. data/dist/es/ember-routing/tests/ext/controller_test.js +0 -85
  384. data/dist/es/ember-routing/tests/location/auto_location_test.js +0 -379
  385. data/dist/es/ember-routing/tests/location/hash_location_test.js +0 -207
  386. data/dist/es/ember-routing/tests/location/history_location_test.js +0 -322
  387. data/dist/es/ember-routing/tests/location/none_location_test.js +0 -88
  388. data/dist/es/ember-routing/tests/location/util_test.js +0 -159
  389. data/dist/es/ember-routing/tests/system/cache_test.js +0 -54
  390. data/dist/es/ember-routing/tests/system/controller_for_test.js +0 -75
  391. data/dist/es/ember-routing/tests/system/dsl_test.js +0 -413
  392. data/dist/es/ember-routing/tests/system/route_test.js +0 -587
  393. data/dist/es/ember-routing/tests/system/router_test.js +0 -287
  394. data/dist/es/ember-routing/tests/utils_test.js +0 -37
  395. data/dist/es/ember-runtime/.gitignore +0 -1
  396. data/dist/es/ember-runtime/README +0 -12
  397. data/dist/es/ember-runtime/index.js +0 -35
  398. data/dist/es/ember-runtime/lib/compare.js +0 -149
  399. data/dist/es/ember-runtime/lib/copy.js +0 -106
  400. data/dist/es/ember-runtime/lib/ext/function.js +0 -154
  401. data/dist/es/ember-runtime/lib/ext/rsvp.js +0 -59
  402. data/dist/es/ember-runtime/lib/is-equal.js +0 -60
  403. data/dist/es/ember-runtime/lib/mixins/-proxy.js +0 -109
  404. data/dist/es/ember-runtime/lib/mixins/action_handler.js +0 -222
  405. data/dist/es/ember-runtime/lib/mixins/array.js +0 -1661
  406. data/dist/es/ember-runtime/lib/mixins/comparable.js +0 -38
  407. data/dist/es/ember-runtime/lib/mixins/container_proxy.js +0 -154
  408. data/dist/es/ember-runtime/lib/mixins/copyable.js +0 -34
  409. data/dist/es/ember-runtime/lib/mixins/enumerable.js +0 -16
  410. data/dist/es/ember-runtime/lib/mixins/evented.js +0 -149
  411. data/dist/es/ember-runtime/lib/mixins/mutable_enumerable.js +0 -18
  412. data/dist/es/ember-runtime/lib/mixins/observable.js +0 -482
  413. data/dist/es/ember-runtime/lib/mixins/promise_proxy.js +0 -224
  414. data/dist/es/ember-runtime/lib/mixins/registry_proxy.js +0 -265
  415. data/dist/es/ember-runtime/lib/mixins/target_action_support.js +0 -172
  416. data/dist/es/ember-runtime/lib/system/array_proxy.js +0 -298
  417. data/dist/es/ember-runtime/lib/system/core_object.js +0 -1037
  418. data/dist/es/ember-runtime/lib/system/namespace.js +0 -69
  419. data/dist/es/ember-runtime/lib/system/object.js +0 -73
  420. data/dist/es/ember-runtime/lib/system/object_proxy.js +0 -81
  421. data/dist/es/ember-runtime/lib/type-of.js +0 -107
  422. data/dist/es/ember-runtime/tests/array/any-test.js +0 -55
  423. data/dist/es/ember-runtime/tests/array/compact-test.js +0 -12
  424. data/dist/es/ember-runtime/tests/array/every-test.js +0 -82
  425. data/dist/es/ember-runtime/tests/array/filter-test.js +0 -123
  426. data/dist/es/ember-runtime/tests/array/find-test.js +0 -86
  427. data/dist/es/ember-runtime/tests/array/firstObject-test.js +0 -27
  428. data/dist/es/ember-runtime/tests/array/forEach-test.js +0 -68
  429. data/dist/es/ember-runtime/tests/array/includes-test.js +0 -46
  430. data/dist/es/ember-runtime/tests/array/indexOf-test.js +0 -27
  431. data/dist/es/ember-runtime/tests/array/invoke-test.js +0 -60
  432. data/dist/es/ember-runtime/tests/array/isAny-test.js +0 -53
  433. data/dist/es/ember-runtime/tests/array/lastIndexOf-test.js +0 -78
  434. data/dist/es/ember-runtime/tests/array/lastObject-test.js +0 -31
  435. data/dist/es/ember-runtime/tests/array/map-test.js +0 -68
  436. data/dist/es/ember-runtime/tests/array/mapBy-test.js +0 -16
  437. data/dist/es/ember-runtime/tests/array/objectAt-test.js +0 -34
  438. data/dist/es/ember-runtime/tests/array/reduce-test.js +0 -24
  439. data/dist/es/ember-runtime/tests/array/reject-test.js +0 -134
  440. data/dist/es/ember-runtime/tests/array/sortBy-test.js +0 -23
  441. data/dist/es/ember-runtime/tests/array/toArray-test.js +0 -11
  442. data/dist/es/ember-runtime/tests/array/uniq-test.js +0 -27
  443. data/dist/es/ember-runtime/tests/array/uniqBy-test.js +0 -33
  444. data/dist/es/ember-runtime/tests/array/without-test.js +0 -39
  445. data/dist/es/ember-runtime/tests/copyable-array/copy-test.js +0 -12
  446. data/dist/es/ember-runtime/tests/core/compare_test.js +0 -89
  447. data/dist/es/ember-runtime/tests/core/copy_test.js +0 -47
  448. data/dist/es/ember-runtime/tests/core/isEqual_test.js +0 -65
  449. data/dist/es/ember-runtime/tests/core/is_array_test.js +0 -59
  450. data/dist/es/ember-runtime/tests/core/is_empty_test.js +0 -15
  451. data/dist/es/ember-runtime/tests/core/type_of_test.js +0 -54
  452. data/dist/es/ember-runtime/tests/ext/function_test.js +0 -121
  453. data/dist/es/ember-runtime/tests/ext/rsvp_test.js +0 -269
  454. data/dist/es/ember-runtime/tests/helpers/array.js +0 -336
  455. data/dist/es/ember-runtime/tests/inject_test.js +0 -51
  456. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/chained_test.js +0 -63
  457. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/observable_test.js +0 -892
  458. data/dist/es/ember-runtime/tests/legacy_1x/mixins/observable/propertyChanges_test.js +0 -142
  459. data/dist/es/ember-runtime/tests/legacy_1x/system/object/base_test.js +0 -98
  460. data/dist/es/ember-runtime/tests/legacy_1x/system/object/concatenated_test.js +0 -131
  461. data/dist/es/ember-runtime/tests/mixins/array_test.js +0 -400
  462. data/dist/es/ember-runtime/tests/mixins/comparable_test.js +0 -37
  463. data/dist/es/ember-runtime/tests/mixins/container_proxy_test.js +0 -48
  464. data/dist/es/ember-runtime/tests/mixins/enumerable_test.js +0 -17
  465. data/dist/es/ember-runtime/tests/mixins/evented_test.js +0 -23
  466. data/dist/es/ember-runtime/tests/mixins/mutable_enumerable_test.js +0 -17
  467. data/dist/es/ember-runtime/tests/mixins/observable_test.js +0 -137
  468. data/dist/es/ember-runtime/tests/mixins/promise_proxy_test.js +0 -593
  469. data/dist/es/ember-runtime/tests/mixins/target_action_support_test.js +0 -237
  470. data/dist/es/ember-runtime/tests/mutable-array/addObject-test.js +0 -76
  471. data/dist/es/ember-runtime/tests/mutable-array/clear-test.js +0 -64
  472. data/dist/es/ember-runtime/tests/mutable-array/insertAt-test.js +0 -216
  473. data/dist/es/ember-runtime/tests/mutable-array/popObject-test.js +0 -91
  474. data/dist/es/ember-runtime/tests/mutable-array/pushObject-test.js +0 -98
  475. data/dist/es/ember-runtime/tests/mutable-array/pushObjects-test.js +0 -12
  476. data/dist/es/ember-runtime/tests/mutable-array/removeAt-test.js +0 -187
  477. data/dist/es/ember-runtime/tests/mutable-array/removeObject-test.js +0 -77
  478. data/dist/es/ember-runtime/tests/mutable-array/removeObjects-test.js +0 -202
  479. data/dist/es/ember-runtime/tests/mutable-array/replace-test.js +0 -221
  480. data/dist/es/ember-runtime/tests/mutable-array/reverseObjects-test.js +0 -35
  481. data/dist/es/ember-runtime/tests/mutable-array/setObjects-test.js +0 -63
  482. data/dist/es/ember-runtime/tests/mutable-array/shiftObject-test.js +0 -105
  483. data/dist/es/ember-runtime/tests/mutable-array/unshiftObject-test.js +0 -99
  484. data/dist/es/ember-runtime/tests/mutable-array/unshiftObjects-test.js +0 -102
  485. data/dist/es/ember-runtime/tests/system/array_proxy/arranged_content_test.js +0 -275
  486. data/dist/es/ember-runtime/tests/system/array_proxy/array_observer_test.js +0 -51
  487. data/dist/es/ember-runtime/tests/system/array_proxy/content_change_test.js +0 -85
  488. data/dist/es/ember-runtime/tests/system/array_proxy/length_test.js +0 -201
  489. data/dist/es/ember-runtime/tests/system/array_proxy/watching_and_listening_test.js +0 -157
  490. data/dist/es/ember-runtime/tests/system/core_object_test.js +0 -114
  491. data/dist/es/ember-runtime/tests/system/namespace/base_test.js +0 -175
  492. data/dist/es/ember-runtime/tests/system/native_array/a_test.js +0 -16
  493. data/dist/es/ember-runtime/tests/system/native_array/copyable_suite_test.js +0 -19
  494. data/dist/es/ember-runtime/tests/system/native_array/replace_test.js +0 -17
  495. data/dist/es/ember-runtime/tests/system/object/computed_test.js +0 -352
  496. data/dist/es/ember-runtime/tests/system/object/create_test.js +0 -135
  497. data/dist/es/ember-runtime/tests/system/object/destroy_test.js +0 -146
  498. data/dist/es/ember-runtime/tests/system/object/detectInstance_test.js +0 -38
  499. data/dist/es/ember-runtime/tests/system/object/detect_test.js +0 -33
  500. data/dist/es/ember-runtime/tests/system/object/es-compatibility-test.js +0 -469
  501. data/dist/es/ember-runtime/tests/system/object/events_test.js +0 -156
  502. data/dist/es/ember-runtime/tests/system/object/extend_test.js +0 -153
  503. data/dist/es/ember-runtime/tests/system/object/observer_test.js +0 -216
  504. data/dist/es/ember-runtime/tests/system/object/reopenClass_test.js +0 -36
  505. data/dist/es/ember-runtime/tests/system/object/reopen_test.js +0 -48
  506. data/dist/es/ember-runtime/tests/system/object/strict-mode-test.js +0 -31
  507. data/dist/es/ember-runtime/tests/system/object/toString_test.js +0 -125
  508. data/dist/es/ember-runtime/tests/system/object_proxy_test.js +0 -314
  509. data/dist/es/ember-template-compiler/index.js +0 -26
  510. data/dist/es/ember-template-compiler/lib/compat.js +0 -16
  511. data/dist/es/ember-template-compiler/lib/plugins/assert-if-helper-without-arguments.js +0 -38
  512. data/dist/es/ember-template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -20
  513. data/dist/es/ember-template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -26
  514. data/dist/es/ember-template-compiler/lib/plugins/assert-splattribute-expression.js +0 -27
  515. data/dist/es/ember-template-compiler/lib/plugins/deprecate-render-model.js +0 -38
  516. data/dist/es/ember-template-compiler/lib/plugins/deprecate-render.js +0 -41
  517. data/dist/es/ember-template-compiler/lib/plugins/deprecate-send-action.js +0 -42
  518. data/dist/es/ember-template-compiler/lib/plugins/index.js +0 -50
  519. data/dist/es/ember-template-compiler/lib/plugins/transform-action-syntax.js +0 -52
  520. data/dist/es/ember-template-compiler/lib/plugins/transform-angle-bracket-components.js +0 -10
  521. data/dist/es/ember-template-compiler/lib/plugins/transform-attrs-into-args.js +0 -62
  522. data/dist/es/ember-template-compiler/lib/plugins/transform-dot-component-invocation.js +0 -88
  523. data/dist/es/ember-template-compiler/lib/plugins/transform-each-in-into-each.js +0 -48
  524. data/dist/es/ember-template-compiler/lib/plugins/transform-has-block-syntax.js +0 -46
  525. data/dist/es/ember-template-compiler/lib/plugins/transform-in-element.js +0 -83
  526. data/dist/es/ember-template-compiler/lib/plugins/transform-inline-link-to.js +0 -31
  527. data/dist/es/ember-template-compiler/lib/plugins/transform-input-type-syntax.js +0 -52
  528. data/dist/es/ember-template-compiler/lib/plugins/transform-old-binding-syntax.js +0 -48
  529. data/dist/es/ember-template-compiler/lib/plugins/transform-old-class-binding-syntax.js +0 -102
  530. data/dist/es/ember-template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.js +0 -34
  531. data/dist/es/ember-template-compiler/lib/plugins/transform-top-level-components.js +0 -41
  532. data/dist/es/ember-template-compiler/lib/system/bootstrap.js +0 -44
  533. data/dist/es/ember-template-compiler/lib/system/calculate-location-display.js +0 -20
  534. data/dist/es/ember-template-compiler/lib/system/compile-options.js +0 -71
  535. data/dist/es/ember-template-compiler/lib/system/compile.js +0 -28
  536. data/dist/es/ember-template-compiler/lib/system/dasherize-component-name.js +0 -13
  537. data/dist/es/ember-template-compiler/lib/system/initializer.js +0 -22
  538. data/dist/es/ember-template-compiler/lib/system/precompile.js +0 -18
  539. data/dist/es/ember-template-compiler/tests/plugins/assert-if-helper-without-arguments-test.js +0 -51
  540. data/dist/es/ember-template-compiler/tests/plugins/assert-input-helper-without-block-test.js +0 -17
  541. data/dist/es/ember-template-compiler/tests/plugins/assert-reserved-named-arguments-test.js +0 -416
  542. data/dist/es/ember-template-compiler/tests/plugins/assert-splattribute-expression-test.js +0 -57
  543. data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-model-test.js +0 -19
  544. data/dist/es/ember-template-compiler/tests/plugins/deprecate-render-test.js +0 -19
  545. data/dist/es/ember-template-compiler/tests/plugins/deprecate-send-action-test.js +0 -29
  546. data/dist/es/ember-template-compiler/tests/plugins/transform-dot-component-invocation-test.js +0 -27
  547. data/dist/es/ember-template-compiler/tests/plugins/transform-inline-link-to-test.js +0 -15
  548. data/dist/es/ember-template-compiler/tests/plugins/transform-input-type-syntax-test.js +0 -25
  549. data/dist/es/ember-template-compiler/tests/system/bootstrap-test.js +0 -155
  550. data/dist/es/ember-template-compiler/tests/system/compile_options_test.js +0 -115
  551. data/dist/es/ember-template-compiler/tests/system/dasherize-component-name-test.js +0 -19
  552. data/dist/es/ember-testing/index.js +0 -10
  553. data/dist/es/ember-testing/lib/adapters/adapter.js +0 -58
  554. data/dist/es/ember-testing/lib/adapters/qunit.js +0 -47
  555. data/dist/es/ember-testing/lib/events.js +0 -136
  556. data/dist/es/ember-testing/lib/ext/application.js +0 -191
  557. data/dist/es/ember-testing/lib/ext/rsvp.js +0 -19
  558. data/dist/es/ember-testing/lib/helpers.js +0 -30
  559. data/dist/es/ember-testing/lib/helpers/-is-form-control.js +0 -16
  560. data/dist/es/ember-testing/lib/helpers/and_then.js +0 -3
  561. data/dist/es/ember-testing/lib/helpers/click.js +0 -36
  562. data/dist/es/ember-testing/lib/helpers/current_path.js +0 -27
  563. data/dist/es/ember-testing/lib/helpers/current_route_name.js +0 -25
  564. data/dist/es/ember-testing/lib/helpers/current_url.js +0 -27
  565. data/dist/es/ember-testing/lib/helpers/fill_in.js +0 -46
  566. data/dist/es/ember-testing/lib/helpers/find.js +0 -41
  567. data/dist/es/ember-testing/lib/helpers/find_with_assert.js +0 -34
  568. data/dist/es/ember-testing/lib/helpers/key_event.js +0 -36
  569. data/dist/es/ember-testing/lib/helpers/pause_test.js +0 -65
  570. data/dist/es/ember-testing/lib/helpers/trigger_event.js +0 -62
  571. data/dist/es/ember-testing/lib/helpers/visit.js +0 -42
  572. data/dist/es/ember-testing/lib/helpers/wait.js +0 -72
  573. data/dist/es/ember-testing/lib/initializers.js +0 -17
  574. data/dist/es/ember-testing/lib/setup_for_testing.js +0 -44
  575. data/dist/es/ember-testing/lib/support.js +0 -62
  576. data/dist/es/ember-testing/lib/test.js +0 -70
  577. data/dist/es/ember-testing/lib/test/adapter.js +0 -33
  578. data/dist/es/ember-testing/lib/test/helpers.js +0 -125
  579. data/dist/es/ember-testing/lib/test/on_inject_helpers.js +0 -38
  580. data/dist/es/ember-testing/lib/test/pending_requests.js +0 -24
  581. data/dist/es/ember-testing/lib/test/promise.js +0 -79
  582. data/dist/es/ember-testing/lib/test/run.js +0 -9
  583. data/dist/es/ember-testing/lib/test/waiters.js +0 -117
  584. data/dist/es/ember-testing/tests/acceptance_test.js +0 -478
  585. data/dist/es/ember-testing/tests/adapters/adapter_test.js +0 -31
  586. data/dist/es/ember-testing/tests/adapters/qunit_test.js +0 -50
  587. data/dist/es/ember-testing/tests/adapters_test.js +0 -405
  588. data/dist/es/ember-testing/tests/ext/rsvp_test.js +0 -124
  589. data/dist/es/ember-testing/tests/helper_registration_test.js +0 -98
  590. data/dist/es/ember-testing/tests/helpers_test.js +0 -1228
  591. data/dist/es/ember-testing/tests/integration_test.js +0 -106
  592. data/dist/es/ember-testing/tests/reexports_test.js +0 -26
  593. data/dist/es/ember-testing/tests/test/waiters-test.js +0 -145
  594. data/dist/es/ember-utils/index.js +0 -28
  595. data/dist/es/ember-utils/lib/cache.js +0 -36
  596. data/dist/es/ember-utils/lib/dictionary.js +0 -11
  597. data/dist/es/ember-utils/lib/guid.js +0 -120
  598. data/dist/es/ember-utils/lib/inspect.js +0 -112
  599. data/dist/es/ember-utils/lib/intern.js +0 -49
  600. data/dist/es/ember-utils/lib/invoke.js +0 -53
  601. data/dist/es/ember-utils/lib/is_proxy.js +0 -14
  602. data/dist/es/ember-utils/lib/lookup-descriptor.js +0 -11
  603. data/dist/es/ember-utils/lib/make-array.js +0 -7
  604. data/dist/es/ember-utils/lib/name.js +0 -9
  605. data/dist/es/ember-utils/lib/proxy-utils.js +0 -1
  606. data/dist/es/ember-utils/lib/spec.js +0 -14
  607. data/dist/es/ember-utils/lib/super.js +0 -83
  608. data/dist/es/ember-utils/lib/symbol-utils.js +0 -8
  609. data/dist/es/ember-utils/lib/symbol.js +0 -15
  610. data/dist/es/ember-utils/lib/to-string.js +0 -35
  611. data/dist/es/ember-utils/lib/weak_set.js +0 -18
  612. data/dist/es/ember-utils/tests/cache_test.js +0 -77
  613. data/dist/es/ember-utils/tests/can_invoke_test.js +0 -46
  614. data/dist/es/ember-utils/tests/checkHasSuper_test.js +0 -17
  615. data/dist/es/ember-utils/tests/generate_guid_test.js +0 -13
  616. data/dist/es/ember-utils/tests/guid_for_test.js +0 -101
  617. data/dist/es/ember-utils/tests/inspect_test.js +0 -146
  618. data/dist/es/ember-utils/tests/is_proxy_test.js +0 -18
  619. data/dist/es/ember-utils/tests/make_array_test.js +0 -41
  620. data/dist/es/ember-utils/tests/to-string-test.js +0 -32
  621. data/dist/es/ember-utils/tests/try_invoke_test.js +0 -48
  622. data/dist/es/ember-views/index.js +0 -28
  623. data/dist/es/ember-views/lib/compat/attrs.js +0 -3
  624. data/dist/es/ember-views/lib/compat/fallback-view-registry.js +0 -3
  625. data/dist/es/ember-views/lib/component_lookup.js +0 -27
  626. data/dist/es/ember-views/lib/mixins/action_support.js +0 -189
  627. data/dist/es/ember-views/lib/mixins/child_views_support.js +0 -27
  628. data/dist/es/ember-views/lib/mixins/class_names_support.js +0 -102
  629. data/dist/es/ember-views/lib/mixins/text_support.js +0 -333
  630. data/dist/es/ember-views/lib/mixins/view_state_support.js +0 -19
  631. data/dist/es/ember-views/lib/mixins/view_support.js +0 -452
  632. data/dist/es/ember-views/lib/system/action_manager.js +0 -14
  633. data/dist/es/ember-views/lib/system/event_dispatcher.js +0 -454
  634. data/dist/es/ember-views/lib/system/jquery.js +0 -29
  635. data/dist/es/ember-views/lib/system/jquery_event_deprecation.js +0 -61
  636. data/dist/es/ember-views/lib/system/lookup_partial.js +0 -55
  637. data/dist/es/ember-views/lib/system/utils.js +0 -201
  638. data/dist/es/ember-views/lib/utils/lookup-component.js +0 -58
  639. data/dist/es/ember-views/lib/views/core_view.js +0 -83
  640. data/dist/es/ember-views/lib/views/states.js +0 -48
  641. data/dist/es/ember-views/lib/views/states/default.js +0 -17
  642. data/dist/es/ember-views/lib/views/states/destroying.js +0 -16
  643. data/dist/es/ember-views/lib/views/states/has_element.js +0 -31
  644. data/dist/es/ember-views/lib/views/states/in_dom.js +0 -28
  645. data/dist/es/ember-views/lib/views/states/pre_render.js +0 -3
  646. data/dist/es/ember/index.js +0 -645
  647. data/dist/es/ember/tests/application_lifecycle_test.js +0 -188
  648. data/dist/es/ember/tests/component_context_test.js +0 -255
  649. data/dist/es/ember/tests/component_registration_test.js +0 -252
  650. data/dist/es/ember/tests/controller_test.js +0 -44
  651. data/dist/es/ember/tests/error_handler_test.js +0 -581
  652. data/dist/es/ember/tests/helpers/helper_registration_test.js +0 -103
  653. data/dist/es/ember/tests/helpers/link_to_test.js +0 -2103
  654. data/dist/es/ember/tests/helpers/link_to_test/link_to_transitioning_classes_test.js +0 -342
  655. data/dist/es/ember/tests/helpers/link_to_test/link_to_with_query_params_test.js +0 -694
  656. data/dist/es/ember/tests/homepage_example_test.js +0 -47
  657. data/dist/es/ember/tests/integration/multiple-app-test.js +0 -101
  658. data/dist/es/ember/tests/production_build_test.js +0 -34
  659. data/dist/es/ember/tests/reexports_test.js +0 -307
  660. data/dist/es/ember/tests/routing/decoupled_basic_test.js +0 -4506
  661. data/dist/es/ember/tests/routing/query_params_test.js +0 -1579
  662. data/dist/es/ember/tests/routing/query_params_test/model_dependent_state_with_query_params_test.js +0 -1117
  663. data/dist/es/ember/tests/routing/query_params_test/overlapping_query_params_test.js +0 -185
  664. data/dist/es/ember/tests/routing/query_params_test/query_param_async_get_handler_test.js +0 -327
  665. data/dist/es/ember/tests/routing/query_params_test/query_params_paramless_link_to_test.js +0 -37
  666. data/dist/es/ember/tests/routing/query_params_test/shared_state_test.js +0 -84
  667. data/dist/es/ember/tests/routing/router_map_test.js +0 -46
  668. data/dist/es/ember/tests/routing/router_service_test/basic_test.js +0 -95
  669. data/dist/es/ember/tests/routing/router_service_test/currenturl_lifecycle_test.js +0 -149
  670. data/dist/es/ember/tests/routing/router_service_test/isActive_test.js +0 -113
  671. data/dist/es/ember/tests/routing/router_service_test/replaceWith_test.js +0 -144
  672. data/dist/es/ember/tests/routing/router_service_test/transitionTo_test.js +0 -370
  673. data/dist/es/ember/tests/routing/router_service_test/urlFor_test.js +0 -307
  674. data/dist/es/ember/tests/routing/substates_test.js +0 -1110
  675. data/dist/es/ember/tests/routing/toplevel_dom_test.js +0 -37
  676. data/dist/es/ember/tests/service_injection_test.js +0 -278
  677. data/dist/es/ember/tests/view_instrumentation_test.js +0 -47
  678. data/dist/es/ember/version.js +0 -1
  679. data/dist/es/handlebars.js +0 -1268
  680. data/dist/es/internal-test-helpers/index.js +0 -31
  681. data/dist/es/internal-test-helpers/lib/.gitkeep +0 -0
  682. data/dist/es/internal-test-helpers/lib/apply-mixins.js +0 -37
  683. data/dist/es/internal-test-helpers/lib/browser-detect.js +0 -4
  684. data/dist/es/internal-test-helpers/lib/build-owner.js +0 -49
  685. data/dist/es/internal-test-helpers/lib/confirm-export.js +0 -45
  686. data/dist/es/internal-test-helpers/lib/ember-dev/assertion.js +0 -87
  687. data/dist/es/internal-test-helpers/lib/ember-dev/containers.js +0 -34
  688. data/dist/es/internal-test-helpers/lib/ember-dev/debug.js +0 -47
  689. data/dist/es/internal-test-helpers/lib/ember-dev/deprecation.js +0 -71
  690. data/dist/es/internal-test-helpers/lib/ember-dev/index.js +0 -19
  691. data/dist/es/internal-test-helpers/lib/ember-dev/method-call-tracker.js +0 -127
  692. data/dist/es/internal-test-helpers/lib/ember-dev/namespaces.js +0 -34
  693. data/dist/es/internal-test-helpers/lib/ember-dev/run-loop.js +0 -28
  694. data/dist/es/internal-test-helpers/lib/ember-dev/setup-qunit.js +0 -26
  695. data/dist/es/internal-test-helpers/lib/ember-dev/utils.js +0 -33
  696. data/dist/es/internal-test-helpers/lib/ember-dev/warning.js +0 -71
  697. data/dist/es/internal-test-helpers/lib/equal-inner-html.js +0 -37
  698. data/dist/es/internal-test-helpers/lib/equal-tokens.js +0 -53
  699. data/dist/es/internal-test-helpers/lib/factory.js +0 -65
  700. data/dist/es/internal-test-helpers/lib/get-all-property-names.js +0 -12
  701. data/dist/es/internal-test-helpers/lib/get-text-of.js +0 -3
  702. data/dist/es/internal-test-helpers/lib/matchers.js +0 -167
  703. data/dist/es/internal-test-helpers/lib/module-for.js +0 -89
  704. data/dist/es/internal-test-helpers/lib/registry-check.js +0 -28
  705. data/dist/es/internal-test-helpers/lib/run.js +0 -11
  706. data/dist/es/internal-test-helpers/lib/strip.js +0 -12
  707. data/dist/es/internal-test-helpers/lib/system/synthetic-events.js +0 -183
  708. data/dist/es/internal-test-helpers/lib/test-cases/abstract-application.js +0 -70
  709. data/dist/es/internal-test-helpers/lib/test-cases/abstract-rendering.js +0 -203
  710. data/dist/es/internal-test-helpers/lib/test-cases/abstract.js +0 -222
  711. data/dist/es/internal-test-helpers/lib/test-cases/application.js +0 -39
  712. data/dist/es/internal-test-helpers/lib/test-cases/autoboot-application.js +0 -34
  713. data/dist/es/internal-test-helpers/lib/test-cases/default-resolver-application.js +0 -43
  714. data/dist/es/internal-test-helpers/lib/test-cases/node-query.js +0 -120
  715. data/dist/es/internal-test-helpers/lib/test-cases/query-param.js +0 -124
  716. data/dist/es/internal-test-helpers/lib/test-cases/rendering.js +0 -14
  717. data/dist/es/internal-test-helpers/lib/test-cases/router.js +0 -26
  718. data/dist/es/internal-test-helpers/lib/test-cases/test-resolver-application.js +0 -40
  719. data/dist/es/internal-test-helpers/lib/test-resolver.js +0 -86
  720. data/dist/es/internal-test-helpers/tests/index-test.js +0 -10
  721. data/dist/es/route-recognizer.js +0 -685
  722. data/dist/es/router.js +0 -2454
  723. data/dist/es/rsvp.js +0 -2394
  724. data/dist/es/simple-html-tokenizer.js +0 -638
  725. data/dist/jquery/jquery.js +0 -10364
  726. data/dist/node/app-boot-test.js +0 -146
  727. data/dist/node/build-info-test.js +0 -177
  728. data/dist/node/component-rendering-test.js +0 -34
  729. data/dist/node/helpers/app-module.js +0 -198
  730. data/dist/node/helpers/assert-html-matches.js +0 -25
  731. data/dist/node/helpers/build-owner.js +0 -28
  732. data/dist/node/helpers/component-module.js +0 -137
  733. data/dist/node/sourcemap-test.js +0 -27
  734. data/dist/node/template-compiler-test.js +0 -45
  735. data/dist/node/visit-test.js +0 -349
  736. data/dist/qunit/qunit.css +0 -436
  737. data/dist/qunit/qunit.js +0 -5188
  738. data/dist/tests/index.html +0 -254
  739. data/ember-source.gemspec +0 -28
  740. data/node_modules/.yarn-integrity +0 -10
  741. data/yarn.lock +0 -4
@@ -1,1607 +0,0 @@
1
- import { getOwner } from 'ember-owner';
2
- import { assign } from '@ember/polyfills';
3
- import { cancel, once, run, scheduleOnce, schedule } from '@ember/runloop';
4
- import { get, set, defineProperty, computed } from 'ember-metal';
5
- import EmberError from '@ember/error';
6
- import { assert, deprecate, info } from '@ember/debug';
7
- import { Object as EmberObject, Evented, typeOf, A as emberA } from 'ember-runtime';
8
- import { defaultSerialize, hasDefaultSerialize } from './route';
9
- import EmberRouterDSL from './dsl';
10
- import EmberLocation from '../location/api';
11
- import { resemblesURL, getActiveTargetName, calculateCacheKey, extractRouteArgs } from '../utils';
12
- import RouterState from './router_state';
13
- import { DEBUG } from '@glimmer/env';
14
- import { ORPHAN_OUTLET_RENDER } from '@ember/deprecated-features';
15
-
16
- /**
17
- @module @ember/routing
18
- */
19
-
20
- import Router from 'router';
21
-
22
- function K() {
23
- return this;
24
- }
25
-
26
- const { slice } = Array.prototype;
27
-
28
- /**
29
- The `EmberRouter` class manages the application state and URLs. Refer to
30
- the [routing guide](https://guides.emberjs.com/release/routing/) for documentation.
31
-
32
- @class EmberRouter
33
- @extends EmberObject
34
- @uses Evented
35
- @public
36
- */
37
- const EmberRouter = EmberObject.extend(Evented, {
38
- /**
39
- The `location` property determines the type of URL's that your
40
- application will use.
41
-
42
- The following location types are currently available:
43
-
44
- * `history` - use the browser's history API to make the URLs look just like any standard URL
45
- * `hash` - use `#` to separate the server part of the URL from the Ember part: `/blog/#/posts/new`
46
- * `none` - do not store the Ember URL in the actual browser URL (mainly used for testing)
47
- * `auto` - use the best option based on browser capabilities: `history` if possible, then `hash` if possible, otherwise `none`
48
-
49
- This value is defaulted to `auto` by the `locationType` setting of `/config/environment.js`
50
-
51
- @property location
52
- @default 'hash'
53
- @see {Location}
54
- @public
55
- */
56
- location: 'hash',
57
-
58
- /**
59
- Represents the URL of the root of the application, often '/'. This prefix is
60
- assumed on all routes defined on this router.
61
-
62
- @property rootURL
63
- @default '/'
64
- @public
65
- */
66
- rootURL: '/',
67
-
68
- _initRouterJs() {
69
- let routerMicrolib = (this._routerMicrolib = new Router());
70
- routerMicrolib.triggerEvent = triggerEvent.bind(this);
71
-
72
- routerMicrolib._triggerWillChangeContext = K;
73
- routerMicrolib._triggerWillLeave = K;
74
-
75
- let dslCallbacks = this.constructor.dslCallbacks || [K];
76
- let dsl = this._buildDSL();
77
-
78
- dsl.route(
79
- 'application',
80
- { path: '/', resetNamespace: true, overrideNameAssertion: true },
81
- function() {
82
- for (let i = 0; i < dslCallbacks.length; i++) {
83
- dslCallbacks[i].call(this);
84
- }
85
- }
86
- );
87
-
88
- if (DEBUG) {
89
- if (get(this, 'namespace.LOG_TRANSITIONS_INTERNAL')) {
90
- routerMicrolib.log = console.log.bind(console); // eslint-disable-line no-console
91
- }
92
- }
93
-
94
- routerMicrolib.map(dsl.generate());
95
- },
96
-
97
- _buildDSL() {
98
- let enableLoadingSubstates = this._hasModuleBasedResolver();
99
- let options = { enableLoadingSubstates };
100
-
101
- let owner = getOwner(this);
102
- let router = this;
103
-
104
- options.resolveRouteMap = name => owner.factoryFor(`route-map:${name}`);
105
-
106
- options.addRouteForEngine = (name, engineInfo) => {
107
- if (!router._engineInfoByRoute[name]) {
108
- router._engineInfoByRoute[name] = engineInfo;
109
- }
110
- };
111
-
112
- return new EmberRouterDSL(null, options);
113
- },
114
-
115
- init() {
116
- this._super(...arguments);
117
-
118
- this.currentURL = null;
119
- this.currentRouteName = null;
120
- this.currentPath = null;
121
-
122
- this._qpCache = Object.create(null);
123
- this._resetQueuedQueryParameterChanges();
124
- this._handledErrors = new Set();
125
- this._engineInstances = Object.create(null);
126
- this._engineInfoByRoute = Object.create(null);
127
- },
128
-
129
- /*
130
- Resets all pending query parameter changes.
131
- Called after transitioning to a new route
132
- based on query parameter changes.
133
- */
134
- _resetQueuedQueryParameterChanges() {
135
- this._queuedQPChanges = {};
136
- },
137
-
138
- /**
139
- Represents the current URL.
140
-
141
- @method url
142
- @return {String} The current URL.
143
- @private
144
- */
145
- url: computed(function() {
146
- return get(this, 'location').getURL();
147
- }),
148
-
149
- _hasModuleBasedResolver() {
150
- let owner = getOwner(this);
151
- if (!owner) {
152
- return false;
153
- }
154
-
155
- let resolver = get(owner, 'application.__registry__.resolver.moduleBasedResolver');
156
- return !!resolver;
157
- },
158
-
159
- /**
160
- Initializes the current router instance and sets up the change handling
161
- event listeners used by the instances `location` implementation.
162
-
163
- A property named `initialURL` will be used to determine the initial URL.
164
- If no value is found `/` will be used.
165
-
166
- @method startRouting
167
- @private
168
- */
169
- startRouting() {
170
- let initialURL = get(this, 'initialURL');
171
-
172
- if (this.setupRouter()) {
173
- if (initialURL === undefined) {
174
- initialURL = get(this, 'location').getURL();
175
- }
176
- let initialTransition = this.handleURL(initialURL);
177
- if (initialTransition && initialTransition.error) {
178
- throw initialTransition.error;
179
- }
180
- }
181
- },
182
-
183
- setupRouter() {
184
- this._initRouterJs();
185
- this._setupLocation();
186
-
187
- let location = get(this, 'location');
188
-
189
- // Allow the Location class to cancel the router setup while it refreshes
190
- // the page
191
- if (get(location, 'cancelRouterSetup')) {
192
- return false;
193
- }
194
-
195
- this._setupRouter(location);
196
-
197
- location.onUpdateURL(url => {
198
- this.handleURL(url);
199
- });
200
-
201
- return true;
202
- },
203
-
204
- /**
205
- Handles updating the paths and notifying any listeners of the URL
206
- change.
207
-
208
- Triggers the router level `didTransition` hook.
209
-
210
- For example, to notify google analytics when the route changes,
211
- you could use this hook. (Note: requires also including GA scripts, etc.)
212
-
213
- ```javascript
214
- import config from './config/environment';
215
- import EmberRouter from '@ember/routing/router';
216
-
217
- let Router = EmberRouter.extend({
218
- location: config.locationType,
219
-
220
- didTransition: function() {
221
- this._super(...arguments);
222
-
223
- return ga('send', 'pageview', {
224
- 'page': this.get('url'),
225
- 'title': this.get('url')
226
- });
227
- }
228
- });
229
- ```
230
-
231
- @method didTransition
232
- @public
233
- @since 1.2.0
234
- */
235
- didTransition(infos) {
236
- updatePaths(this);
237
-
238
- this._cancelSlowTransitionTimer();
239
-
240
- this.notifyPropertyChange('url');
241
- this.set('currentState', this.targetState);
242
-
243
- // Put this in the runloop so url will be accurate. Seems
244
- // less surprising than didTransition being out of sync.
245
- once(this, this.trigger, 'didTransition');
246
-
247
- if (DEBUG) {
248
- if (get(this, 'namespace').LOG_TRANSITIONS) {
249
- // eslint-disable-next-line no-console
250
- console.log(`Transitioned into '${EmberRouter._routePath(infos)}'`);
251
- }
252
- }
253
- },
254
-
255
- _setOutlets() {
256
- // This is triggered async during Route#willDestroy.
257
- // If the router is also being destroyed we do not want to
258
- // to create another this._toplevelView (and leak the renderer)
259
- if (this.isDestroying || this.isDestroyed) {
260
- return;
261
- }
262
-
263
- let handlerInfos = this._routerMicrolib.currentHandlerInfos;
264
- let route;
265
- let defaultParentState;
266
- let liveRoutes = null;
267
-
268
- if (!handlerInfos) {
269
- return;
270
- }
271
-
272
- for (let i = 0; i < handlerInfos.length; i++) {
273
- route = handlerInfos[i].handler;
274
- let connections = route.connections;
275
- let ownState;
276
- for (let j = 0; j < connections.length; j++) {
277
- let appended = appendLiveRoute(liveRoutes, defaultParentState, connections[j]);
278
- liveRoutes = appended.liveRoutes;
279
- if (
280
- appended.ownState.render.name === route.routeName ||
281
- appended.ownState.render.outlet === 'main'
282
- ) {
283
- ownState = appended.ownState;
284
- }
285
- }
286
- if (connections.length === 0) {
287
- ownState = representEmptyRoute(liveRoutes, defaultParentState, route);
288
- }
289
- defaultParentState = ownState;
290
- }
291
-
292
- // when a transitionTo happens after the validation phase
293
- // during the initial transition _setOutlets is called
294
- // when no routes are active. However, it will get called
295
- // again with the correct values during the next turn of
296
- // the runloop
297
- if (!liveRoutes) {
298
- return;
299
- }
300
-
301
- if (!this._toplevelView) {
302
- let owner = getOwner(this);
303
- let OutletView = owner.factoryFor('view:-outlet');
304
- this._toplevelView = OutletView.create();
305
- this._toplevelView.setOutletState(liveRoutes);
306
- let instance = owner.lookup('-application-instance:main');
307
- instance.didCreateRootView(this._toplevelView);
308
- } else {
309
- this._toplevelView.setOutletState(liveRoutes);
310
- }
311
- },
312
-
313
- /**
314
- Handles notifying any listeners of an impending URL
315
- change.
316
-
317
- Triggers the router level `willTransition` hook.
318
-
319
- @method willTransition
320
- @public
321
- @since 1.11.0
322
- */
323
- willTransition(oldInfos, newInfos, transition) {
324
- once(this, this.trigger, 'willTransition', transition);
325
-
326
- if (DEBUG) {
327
- if (get(this, 'namespace').LOG_TRANSITIONS) {
328
- // eslint-disable-next-line no-console
329
- console.log(
330
- `Preparing to transition from '${EmberRouter._routePath(
331
- oldInfos
332
- )}' to '${EmberRouter._routePath(newInfos)}'`
333
- );
334
- }
335
- }
336
- },
337
-
338
- handleURL(url) {
339
- // Until we have an ember-idiomatic way of accessing #hashes, we need to
340
- // remove it because router.js doesn't know how to handle it.
341
- let _url = url.split(/#(.+)?/)[0];
342
- return this._doURLTransition('handleURL', _url);
343
- },
344
-
345
- _doURLTransition(routerJsMethod, url) {
346
- let transition = this._routerMicrolib[routerJsMethod](url || '/');
347
- didBeginTransition(transition, this);
348
- return transition;
349
- },
350
-
351
- /**
352
- Transition the application into another route. The route may
353
- be either a single route or route path:
354
-
355
- See [transitionTo](/api/ember/release/classes/Route/methods/transitionTo?anchor=transitionTo) for more info.
356
-
357
- @method transitionTo
358
- @param {String} name the name of the route or a URL
359
- @param {...Object} models the model(s) or identifier(s) to be used while
360
- transitioning to the route.
361
- @param {Object} [options] optional hash with a queryParams property
362
- containing a mapping of query parameters
363
- @return {Transition} the transition object associated with this
364
- attempted transition
365
- @public
366
- */
367
- transitionTo(...args) {
368
- if (resemblesURL(args[0])) {
369
- assert(
370
- `A transition was attempted from '${this.currentRouteName}' to '${
371
- args[0]
372
- }' but the application instance has already been destroyed.`,
373
- !this.isDestroying && !this.isDestroyed
374
- );
375
- return this._doURLTransition('transitionTo', args[0]);
376
- }
377
- let { routeName, models, queryParams } = extractRouteArgs(args);
378
- assert(
379
- `A transition was attempted from '${
380
- this.currentRouteName
381
- }' to '${routeName}' but the application instance has already been destroyed.`,
382
- !this.isDestroying && !this.isDestroyed
383
- );
384
- return this._doTransition(routeName, models, queryParams);
385
- },
386
-
387
- intermediateTransitionTo() {
388
- this._routerMicrolib.intermediateTransitionTo(...arguments);
389
-
390
- updatePaths(this);
391
-
392
- if (DEBUG) {
393
- let infos = this._routerMicrolib.currentHandlerInfos;
394
- if (get(this, 'namespace').LOG_TRANSITIONS) {
395
- // eslint-disable-next-line no-console
396
- console.log(`Intermediate-transitioned into '${EmberRouter._routePath(infos)}'`);
397
- }
398
- }
399
- },
400
-
401
- replaceWith() {
402
- return this.transitionTo(...arguments).method('replace');
403
- },
404
-
405
- generate() {
406
- let url = this._routerMicrolib.generate(...arguments);
407
- return this.location.formatURL(url);
408
- },
409
-
410
- /**
411
- Determines if the supplied route is currently active.
412
-
413
- @method isActive
414
- @param routeName
415
- @return {Boolean}
416
- @private
417
- */
418
- isActive() {
419
- return this._routerMicrolib.isActive(...arguments);
420
- },
421
-
422
- /**
423
- An alternative form of `isActive` that doesn't require
424
- manual concatenation of the arguments into a single
425
- array.
426
-
427
- @method isActiveIntent
428
- @param routeName
429
- @param models
430
- @param queryParams
431
- @return {Boolean}
432
- @private
433
- @since 1.7.0
434
- */
435
- isActiveIntent(routeName, models, queryParams) {
436
- return this.currentState.isActiveIntent(routeName, models, queryParams);
437
- },
438
-
439
- send() {
440
- /*name, context*/
441
- this._routerMicrolib.trigger(...arguments);
442
- },
443
-
444
- /**
445
- Does this router instance have the given route.
446
-
447
- @method hasRoute
448
- @return {Boolean}
449
- @private
450
- */
451
- hasRoute(route) {
452
- return this._routerMicrolib.hasRoute(route);
453
- },
454
-
455
- /**
456
- Resets the state of the router by clearing the current route
457
- handlers and deactivating them.
458
-
459
- @private
460
- @method reset
461
- */
462
- reset() {
463
- if (this._routerMicrolib) {
464
- this._routerMicrolib.reset();
465
- }
466
- },
467
-
468
- willDestroy() {
469
- if (this._toplevelView) {
470
- this._toplevelView.destroy();
471
- this._toplevelView = null;
472
- }
473
-
474
- this._super(...arguments);
475
-
476
- this.reset();
477
-
478
- let instances = this._engineInstances;
479
- for (let name in instances) {
480
- for (let id in instances[name]) {
481
- run(instances[name][id], 'destroy');
482
- }
483
- }
484
- },
485
-
486
- /*
487
- Called when an active route's query parameter has changed.
488
- These changes are batched into a runloop run and trigger
489
- a single transition.
490
- */
491
- _activeQPChanged(queryParameterName, newValue) {
492
- this._queuedQPChanges[queryParameterName] = newValue;
493
- once(this, this._fireQueryParamTransition);
494
- },
495
-
496
- _updatingQPChanged(queryParameterName) {
497
- if (!this._qpUpdates) {
498
- this._qpUpdates = {};
499
- }
500
- this._qpUpdates[queryParameterName] = true;
501
- },
502
-
503
- /*
504
- Triggers a transition to a route based on query parameter changes.
505
- This is called once per runloop, to batch changes.
506
-
507
- e.g.
508
-
509
- if these methods are called in succession:
510
- this._activeQPChanged('foo', '10');
511
- // results in _queuedQPChanges = { foo: '10' }
512
- this._activeQPChanged('bar', false);
513
- // results in _queuedQPChanges = { foo: '10', bar: false }
514
-
515
-
516
- _queuedQPChanges will represent both of these changes
517
- and the transition using `transitionTo` will be triggered
518
- once.
519
- */
520
- _fireQueryParamTransition() {
521
- this.transitionTo({ queryParams: this._queuedQPChanges });
522
- this._resetQueuedQueryParameterChanges();
523
- },
524
-
525
- _setupLocation() {
526
- let location = get(this, 'location');
527
- let rootURL = get(this, 'rootURL');
528
- let owner = getOwner(this);
529
-
530
- if ('string' === typeof location && owner) {
531
- let resolvedLocation = owner.lookup(`location:${location}`);
532
-
533
- if (resolvedLocation !== undefined) {
534
- location = set(this, 'location', resolvedLocation);
535
- } else {
536
- // Allow for deprecated registration of custom location API's
537
- let options = {
538
- implementation: location,
539
- };
540
-
541
- location = set(this, 'location', EmberLocation.create(options));
542
- }
543
- }
544
-
545
- if (location !== null && typeof location === 'object') {
546
- if (rootURL) {
547
- set(location, 'rootURL', rootURL);
548
- }
549
-
550
- // Allow the location to do any feature detection, such as AutoLocation
551
- // detecting history support. This gives it a chance to set its
552
- // `cancelRouterSetup` property which aborts routing.
553
- if (typeof location.detect === 'function') {
554
- location.detect();
555
- }
556
-
557
- // ensure that initState is called AFTER the rootURL is set on
558
- // the location instance
559
- if (typeof location.initState === 'function') {
560
- location.initState();
561
- }
562
- }
563
- },
564
-
565
- _getHandlerFunction() {
566
- let seen = Object.create(null);
567
- let owner = getOwner(this);
568
-
569
- return name => {
570
- let routeName = name;
571
- let routeOwner = owner;
572
- let engineInfo = this._engineInfoByRoute[routeName];
573
-
574
- if (engineInfo) {
575
- let engineInstance = this._getEngineInstance(engineInfo);
576
-
577
- routeOwner = engineInstance;
578
- routeName = engineInfo.localFullName;
579
- }
580
-
581
- let fullRouteName = `route:${routeName}`;
582
-
583
- let handler = routeOwner.lookup(fullRouteName);
584
-
585
- if (seen[name]) {
586
- return handler;
587
- }
588
-
589
- seen[name] = true;
590
-
591
- if (!handler) {
592
- let DefaultRoute = routeOwner.factoryFor('route:basic').class;
593
- routeOwner.register(fullRouteName, DefaultRoute.extend());
594
- handler = routeOwner.lookup(fullRouteName);
595
-
596
- if (DEBUG) {
597
- if (get(this, 'namespace.LOG_ACTIVE_GENERATION')) {
598
- info(`generated -> ${fullRouteName}`, { fullName: fullRouteName });
599
- }
600
- }
601
- }
602
-
603
- handler._setRouteName(routeName);
604
-
605
- if (engineInfo && !hasDefaultSerialize(handler)) {
606
- throw new Error('Defining a custom serialize method on an Engine route is not supported.');
607
- }
608
-
609
- return handler;
610
- };
611
- },
612
-
613
- _getSerializerFunction() {
614
- return name => {
615
- let engineInfo = this._engineInfoByRoute[name];
616
-
617
- // If this is not an Engine route, we fall back to the handler for serialization
618
- if (!engineInfo) {
619
- return;
620
- }
621
-
622
- return engineInfo.serializeMethod || defaultSerialize;
623
- };
624
- },
625
-
626
- _setupRouter(location) {
627
- let lastURL;
628
- let routerMicrolib = this._routerMicrolib;
629
-
630
- routerMicrolib.getHandler = this._getHandlerFunction();
631
- routerMicrolib.getSerializer = this._getSerializerFunction();
632
-
633
- let doUpdateURL = () => {
634
- location.setURL(lastURL);
635
- set(this, 'currentURL', lastURL);
636
- };
637
-
638
- routerMicrolib.updateURL = path => {
639
- lastURL = path;
640
- once(doUpdateURL);
641
- };
642
-
643
- if (location.replaceURL) {
644
- let doReplaceURL = () => {
645
- location.replaceURL(lastURL);
646
- set(this, 'currentURL', lastURL);
647
- };
648
-
649
- routerMicrolib.replaceURL = path => {
650
- lastURL = path;
651
- once(doReplaceURL);
652
- };
653
- }
654
-
655
- routerMicrolib.didTransition = infos => {
656
- this.didTransition(infos);
657
- };
658
-
659
- routerMicrolib.willTransition = (oldInfos, newInfos, transition) => {
660
- this.willTransition(oldInfos, newInfos, transition);
661
- };
662
- },
663
-
664
- /**
665
- Serializes the given query params according to their QP meta information.
666
-
667
- @private
668
- @method _serializeQueryParams
669
- @param {Arrray<HandlerInfo>} handlerInfos
670
- @param {Object} queryParams
671
- @return {Void}
672
- */
673
- _serializeQueryParams(handlerInfos, queryParams) {
674
- forEachQueryParam(this, handlerInfos, queryParams, (key, value, qp) => {
675
- if (qp) {
676
- delete queryParams[key];
677
- queryParams[qp.urlKey] = qp.route.serializeQueryParam(value, qp.urlKey, qp.type);
678
- } else if (value === undefined) {
679
- return; // We don't serialize undefined values
680
- } else {
681
- queryParams[key] = this._serializeQueryParam(value, typeOf(value));
682
- }
683
- });
684
- },
685
-
686
- /**
687
- Serializes the value of a query parameter based on a type
688
-
689
- @private
690
- @method _serializeQueryParam
691
- @param {Object} value
692
- @param {String} type
693
- */
694
- _serializeQueryParam(value, type) {
695
- if (value === null || value === undefined) {
696
- return value;
697
- } else if (type === 'array') {
698
- return JSON.stringify(value);
699
- }
700
-
701
- return `${value}`;
702
- },
703
-
704
- /**
705
- Deserializes the given query params according to their QP meta information.
706
-
707
- @private
708
- @method _deserializeQueryParams
709
- @param {Array<HandlerInfo>} handlerInfos
710
- @param {Object} queryParams
711
- @return {Void}
712
- */
713
- _deserializeQueryParams(handlerInfos, queryParams) {
714
- forEachQueryParam(this, handlerInfos, queryParams, (key, value, qp) => {
715
- // If we don't have QP meta info for a given key, then we do nothing
716
- // because all values will be treated as strings
717
- if (qp) {
718
- delete queryParams[key];
719
- queryParams[qp.prop] = qp.route.deserializeQueryParam(value, qp.urlKey, qp.type);
720
- }
721
- });
722
- },
723
-
724
- /**
725
- Deserializes the value of a query parameter based on a default type
726
-
727
- @private
728
- @method _deserializeQueryParam
729
- @param {Object} value
730
- @param {String} defaultType
731
- */
732
- _deserializeQueryParam(value, defaultType) {
733
- if (value === null || value === undefined) {
734
- return value;
735
- } else if (defaultType === 'boolean') {
736
- return value === 'true';
737
- } else if (defaultType === 'number') {
738
- return Number(value).valueOf();
739
- } else if (defaultType === 'array') {
740
- return emberA(JSON.parse(value));
741
- }
742
- return value;
743
- },
744
-
745
- /**
746
- Removes (prunes) any query params with default values from the given QP
747
- object. Default values are determined from the QP meta information per key.
748
-
749
- @private
750
- @method _pruneDefaultQueryParamValues
751
- @param {Array<HandlerInfo>} handlerInfos
752
- @param {Object} queryParams
753
- @return {Void}
754
- */
755
- _pruneDefaultQueryParamValues(handlerInfos, queryParams) {
756
- let qps = this._queryParamsFor(handlerInfos);
757
- for (let key in queryParams) {
758
- let qp = qps.map[key];
759
- if (qp && qp.serializedDefaultValue === queryParams[key]) {
760
- delete queryParams[key];
761
- }
762
- }
763
- },
764
-
765
- _doTransition(_targetRouteName, models, _queryParams, _keepDefaultQueryParamValues) {
766
- let targetRouteName = _targetRouteName || getActiveTargetName(this._routerMicrolib);
767
- assert(
768
- `The route ${targetRouteName} was not found`,
769
- targetRouteName && this._routerMicrolib.hasRoute(targetRouteName)
770
- );
771
-
772
- let queryParams = {};
773
-
774
- this._processActiveTransitionQueryParams(targetRouteName, models, queryParams, _queryParams);
775
-
776
- assign(queryParams, _queryParams);
777
- this._prepareQueryParams(targetRouteName, models, queryParams, _keepDefaultQueryParamValues);
778
-
779
- let transition = this._routerMicrolib.transitionTo(targetRouteName, ...models, { queryParams });
780
-
781
- didBeginTransition(transition, this);
782
-
783
- return transition;
784
- },
785
-
786
- _processActiveTransitionQueryParams(targetRouteName, models, queryParams, _queryParams) {
787
- // merge in any queryParams from the active transition which could include
788
- // queryParams from the url on initial load.
789
- if (!this._routerMicrolib.activeTransition) {
790
- return;
791
- }
792
-
793
- let unchangedQPs = {};
794
- let qpUpdates = this._qpUpdates || {};
795
- let params = this._routerMicrolib.activeTransition.queryParams;
796
- for (let key in params) {
797
- if (!qpUpdates[key]) {
798
- unchangedQPs[key] = params[key];
799
- }
800
- }
801
-
802
- // We need to fully scope queryParams so that we can create one object
803
- // that represents both passed-in queryParams and ones that aren't changed
804
- // from the active transition.
805
- this._fullyScopeQueryParams(targetRouteName, models, _queryParams);
806
- this._fullyScopeQueryParams(targetRouteName, models, unchangedQPs);
807
- assign(queryParams, unchangedQPs);
808
- },
809
-
810
- /**
811
- Prepares the query params for a URL or Transition. Restores any undefined QP
812
- keys/values, serializes all values, and then prunes any default values.
813
-
814
- @private
815
- @method _prepareQueryParams
816
- @param {String} targetRouteName
817
- @param {Array<Object>} models
818
- @param {Object} queryParams
819
- @param {boolean} keepDefaultQueryParamValues
820
- @return {Void}
821
- */
822
- _prepareQueryParams(targetRouteName, models, queryParams, _fromRouterService) {
823
- let state = calculatePostTransitionState(this, targetRouteName, models);
824
- this._hydrateUnsuppliedQueryParams(state, queryParams, _fromRouterService);
825
- this._serializeQueryParams(state.handlerInfos, queryParams);
826
-
827
- if (!_fromRouterService) {
828
- this._pruneDefaultQueryParamValues(state.handlerInfos, queryParams);
829
- }
830
- },
831
-
832
- /**
833
- Returns the meta information for the query params of a given route. This
834
- will be overridden to allow support for lazy routes.
835
-
836
- @private
837
- @method _getQPMeta
838
- @param {HandlerInfo} handlerInfo
839
- @return {Object}
840
- */
841
- _getQPMeta(handlerInfo) {
842
- let route = handlerInfo.handler;
843
- return route && get(route, '_qp');
844
- },
845
-
846
- /**
847
- Returns a merged query params meta object for a given set of handlerInfos.
848
- Useful for knowing what query params are available for a given route hierarchy.
849
-
850
- @private
851
- @method _queryParamsFor
852
- @param {Array<HandlerInfo>} handlerInfos
853
- @return {Object}
854
- */
855
- _queryParamsFor(handlerInfos) {
856
- let handlerInfoLength = handlerInfos.length;
857
- let leafRouteName = handlerInfos[handlerInfoLength - 1].name;
858
- let cached = this._qpCache[leafRouteName];
859
- if (cached !== undefined) {
860
- return cached;
861
- }
862
-
863
- let shouldCache = true;
864
- let map = {};
865
- let qps = [];
866
- let qpsByUrlKey = DEBUG ? {} : null;
867
-
868
- for (let i = 0; i < handlerInfoLength; ++i) {
869
- let qpMeta = this._getQPMeta(handlerInfos[i]);
870
-
871
- if (!qpMeta) {
872
- shouldCache = false;
873
- continue;
874
- }
875
-
876
- // Loop over each QP to make sure we don't have any collisions by urlKey
877
- for (let i = 0; i < qpMeta.qps.length; i++) {
878
- let qp = qpMeta.qps[i];
879
-
880
- if (DEBUG) {
881
- let { urlKey } = qp;
882
- let qpOther = qpsByUrlKey[urlKey];
883
- if (qpOther && qpOther.controllerName !== qp.controllerName) {
884
- assert(
885
- `You're not allowed to have more than one controller property map to the same query param key, but both \`${
886
- qpOther.scopedPropertyName
887
- }\` and \`${
888
- qp.scopedPropertyName
889
- }\` map to \`${urlKey}\`. You can fix this by mapping one of the controller properties to a different query param key via the \`as\` config option, e.g. \`${
890
- qpOther.prop
891
- }: { as: \'other-${qpOther.prop}\' }\``,
892
- false
893
- );
894
- }
895
- qpsByUrlKey[urlKey] = qp;
896
- }
897
-
898
- qps.push(qp);
899
- }
900
-
901
- assign(map, qpMeta.map);
902
- }
903
-
904
- let finalQPMeta = { qps, map };
905
-
906
- if (shouldCache) {
907
- this._qpCache[leafRouteName] = finalQPMeta;
908
- }
909
-
910
- return finalQPMeta;
911
- },
912
-
913
- /**
914
- Maps all query param keys to their fully scoped property name of the form
915
- `controllerName:propName`.
916
-
917
- @private
918
- @method _fullyScopeQueryParams
919
- @param {String} leafRouteName
920
- @param {Array<Object>} contexts
921
- @param {Object} queryParams
922
- @return {Void}
923
- */
924
- _fullyScopeQueryParams(leafRouteName, contexts, queryParams) {
925
- let state = calculatePostTransitionState(this, leafRouteName, contexts);
926
- let handlerInfos = state.handlerInfos;
927
-
928
- for (let i = 0, len = handlerInfos.length; i < len; ++i) {
929
- let qpMeta = this._getQPMeta(handlerInfos[i]);
930
-
931
- if (!qpMeta) {
932
- continue;
933
- }
934
-
935
- for (let j = 0, qpLen = qpMeta.qps.length; j < qpLen; ++j) {
936
- let qp = qpMeta.qps[j];
937
-
938
- let presentProp =
939
- (qp.prop in queryParams && qp.prop) ||
940
- (qp.scopedPropertyName in queryParams && qp.scopedPropertyName) ||
941
- (qp.urlKey in queryParams && qp.urlKey);
942
-
943
- if (presentProp) {
944
- if (presentProp !== qp.scopedPropertyName) {
945
- queryParams[qp.scopedPropertyName] = queryParams[presentProp];
946
- delete queryParams[presentProp];
947
- }
948
- }
949
- }
950
- }
951
- },
952
-
953
- /**
954
- Hydrates (adds/restores) any query params that have pre-existing values into
955
- the given queryParams hash. This is what allows query params to be "sticky"
956
- and restore their last known values for their scope.
957
-
958
- @private
959
- @method _hydrateUnsuppliedQueryParams
960
- @param {TransitionState} state
961
- @param {Object} queryParams
962
- @return {Void}
963
- */
964
- _hydrateUnsuppliedQueryParams(state, queryParams, _fromRouterService) {
965
- let handlerInfos = state.handlerInfos;
966
- let appCache = this._bucketCache;
967
-
968
- for (let i = 0; i < handlerInfos.length; ++i) {
969
- let qpMeta = this._getQPMeta(handlerInfos[i]);
970
-
971
- if (!qpMeta) {
972
- continue;
973
- }
974
-
975
- for (let j = 0, qpLen = qpMeta.qps.length; j < qpLen; ++j) {
976
- var qp = qpMeta.qps[j];
977
-
978
- var presentProp =
979
- (qp.prop in queryParams && qp.prop) ||
980
- (qp.scopedPropertyName in queryParams && qp.scopedPropertyName) ||
981
- (qp.urlKey in queryParams && qp.urlKey);
982
-
983
- assert(
984
- `You passed the \`${presentProp}\` query parameter during a transition into ${
985
- qp.route.routeName
986
- }, please update to ${qp.urlKey}`,
987
- (function() {
988
- if (qp.urlKey === presentProp) {
989
- return true;
990
- }
991
-
992
- if (_fromRouterService && presentProp !== false) {
993
- return false;
994
- }
995
-
996
- return true;
997
- })()
998
- );
999
-
1000
- if (presentProp) {
1001
- if (presentProp !== qp.scopedPropertyName) {
1002
- queryParams[qp.scopedPropertyName] = queryParams[presentProp];
1003
- delete queryParams[presentProp];
1004
- }
1005
- } else {
1006
- let cacheKey = calculateCacheKey(qp.route.fullRouteName, qp.parts, state.params);
1007
- queryParams[qp.scopedPropertyName] = appCache.lookup(cacheKey, qp.prop, qp.defaultValue);
1008
- }
1009
- }
1010
- }
1011
- },
1012
-
1013
- _scheduleLoadingEvent(transition, originRoute) {
1014
- this._cancelSlowTransitionTimer();
1015
- this._slowTransitionTimer = scheduleOnce(
1016
- 'routerTransitions',
1017
- this,
1018
- '_handleSlowTransition',
1019
- transition,
1020
- originRoute
1021
- );
1022
- },
1023
-
1024
- currentState: null,
1025
- targetState: null,
1026
-
1027
- _handleSlowTransition(transition, originRoute) {
1028
- if (!this._routerMicrolib.activeTransition) {
1029
- // Don't fire an event if we've since moved on from
1030
- // the transition that put us in a loading state.
1031
- return;
1032
- }
1033
- let targetState = new RouterState(
1034
- this,
1035
- this._routerMicrolib,
1036
- this._routerMicrolib.activeTransition.state
1037
- );
1038
- this.set('targetState', targetState);
1039
-
1040
- transition.trigger(true, 'loading', transition, originRoute);
1041
- },
1042
-
1043
- _cancelSlowTransitionTimer() {
1044
- if (this._slowTransitionTimer) {
1045
- cancel(this._slowTransitionTimer);
1046
- }
1047
- this._slowTransitionTimer = null;
1048
- },
1049
-
1050
- // These three helper functions are used to ensure errors aren't
1051
- // re-raised if they're handled in a route's error action.
1052
- _markErrorAsHandled(error) {
1053
- this._handledErrors.add(error);
1054
- },
1055
-
1056
- _isErrorHandled(error) {
1057
- return this._handledErrors.has(error);
1058
- },
1059
-
1060
- _clearHandledError(error) {
1061
- this._handledErrors.delete(error);
1062
- },
1063
-
1064
- _getEngineInstance({ name, instanceId, mountPoint }) {
1065
- let engineInstances = this._engineInstances;
1066
-
1067
- if (!engineInstances[name]) {
1068
- engineInstances[name] = Object.create(null);
1069
- }
1070
-
1071
- let engineInstance = engineInstances[name][instanceId];
1072
-
1073
- if (!engineInstance) {
1074
- let owner = getOwner(this);
1075
-
1076
- assert(
1077
- `You attempted to mount the engine '${name}' in your router map, but the engine can not be found.`,
1078
- owner.hasRegistration(`engine:${name}`)
1079
- );
1080
-
1081
- engineInstance = owner.buildChildEngineInstance(name, {
1082
- routable: true,
1083
- mountPoint,
1084
- });
1085
-
1086
- engineInstance.boot();
1087
-
1088
- engineInstances[name][instanceId] = engineInstance;
1089
- }
1090
-
1091
- return engineInstance;
1092
- },
1093
- });
1094
-
1095
- /*
1096
- Helper function for iterating over routes in a set of handlerInfos that are
1097
- at or above the given origin route. Example: if `originRoute` === 'foo.bar'
1098
- and the handlerInfos given were for 'foo.bar.baz', then the given callback
1099
- will be invoked with the routes for 'foo.bar', 'foo', and 'application'
1100
- individually.
1101
-
1102
- If the callback returns anything other than `true`, then iteration will stop.
1103
-
1104
- @private
1105
- @param {Route} originRoute
1106
- @param {Array<HandlerInfo>} handlerInfos
1107
- @param {Function} callback
1108
- @return {Void}
1109
- */
1110
- function forEachRouteAbove(handlerInfos, callback) {
1111
- for (let i = handlerInfos.length - 1; i >= 0; --i) {
1112
- let handlerInfo = handlerInfos[i];
1113
- let route = handlerInfo.handler;
1114
-
1115
- // handlerInfo.handler being `undefined` generally means either:
1116
- //
1117
- // 1. an error occurred during creation of the route in question
1118
- // 2. the route is across an async boundary (e.g. within an engine)
1119
- //
1120
- // In both of these cases, we cannot invoke the callback on that specific
1121
- // route, because it just doesn't exist...
1122
- if (route === undefined) {
1123
- continue;
1124
- }
1125
-
1126
- if (callback(route, handlerInfo) !== true) {
1127
- return;
1128
- }
1129
- }
1130
- }
1131
-
1132
- // These get invoked when an action bubbles above ApplicationRoute
1133
- // and are not meant to be overridable.
1134
- let defaultActionHandlers = {
1135
- willResolveModel(handlerInfos, transition, originRoute) {
1136
- this._scheduleLoadingEvent(transition, originRoute);
1137
- },
1138
-
1139
- // Attempt to find an appropriate error route or substate to enter.
1140
- error(handlerInfos, error, transition) {
1141
- let router = this;
1142
-
1143
- let handlerInfoWithError = handlerInfos[handlerInfos.length - 1];
1144
-
1145
- forEachRouteAbove(handlerInfos, (route, handlerInfo) => {
1146
- // We don't check the leaf most handlerInfo since that would
1147
- // technically be below where we're at in the route hierarchy.
1148
- if (handlerInfo !== handlerInfoWithError) {
1149
- // Check for the existence of an 'error' route.
1150
- let errorRouteName = findRouteStateName(route, 'error');
1151
- if (errorRouteName) {
1152
- router._markErrorAsHandled(error);
1153
- router.intermediateTransitionTo(errorRouteName, error);
1154
- return false;
1155
- }
1156
- }
1157
-
1158
- // Check for an 'error' substate route
1159
- let errorSubstateName = findRouteSubstateName(route, 'error');
1160
- if (errorSubstateName) {
1161
- router._markErrorAsHandled(error);
1162
- router.intermediateTransitionTo(errorSubstateName, error);
1163
- return false;
1164
- }
1165
-
1166
- return true;
1167
- });
1168
-
1169
- logError(error, `Error while processing route: ${transition.targetName}`);
1170
- },
1171
-
1172
- // Attempt to find an appropriate loading route or substate to enter.
1173
- loading(handlerInfos, transition) {
1174
- let router = this;
1175
-
1176
- let handlerInfoWithSlowLoading = handlerInfos[handlerInfos.length - 1];
1177
-
1178
- forEachRouteAbove(handlerInfos, (route, handlerInfo) => {
1179
- // We don't check the leaf most handlerInfo since that would
1180
- // technically be below where we're at in the route hierarchy.
1181
- if (handlerInfo !== handlerInfoWithSlowLoading) {
1182
- // Check for the existence of a 'loading' route.
1183
- let loadingRouteName = findRouteStateName(route, 'loading');
1184
- if (loadingRouteName) {
1185
- router.intermediateTransitionTo(loadingRouteName);
1186
- return false;
1187
- }
1188
- }
1189
-
1190
- // Check for loading substate
1191
- let loadingSubstateName = findRouteSubstateName(route, 'loading');
1192
- if (loadingSubstateName) {
1193
- router.intermediateTransitionTo(loadingSubstateName);
1194
- return false;
1195
- }
1196
-
1197
- // Don't bubble above pivot route.
1198
- return transition.pivotHandler !== route;
1199
- });
1200
- },
1201
- };
1202
-
1203
- function logError(_error, initialMessage) {
1204
- let errorArgs = [];
1205
- let error;
1206
- if (_error && typeof _error === 'object' && typeof _error.errorThrown === 'object') {
1207
- error = _error.errorThrown;
1208
- } else {
1209
- error = _error;
1210
- }
1211
-
1212
- if (initialMessage) {
1213
- errorArgs.push(initialMessage);
1214
- }
1215
-
1216
- if (error) {
1217
- if (error.message) {
1218
- errorArgs.push(error.message);
1219
- }
1220
- if (error.stack) {
1221
- errorArgs.push(error.stack);
1222
- }
1223
-
1224
- if (typeof error === 'string') {
1225
- errorArgs.push(error);
1226
- }
1227
- }
1228
-
1229
- console.error(...errorArgs); //eslint-disable-line no-console
1230
- }
1231
-
1232
- /**
1233
- Finds the name of the substate route if it exists for the given route. A
1234
- substate route is of the form `route_state`, such as `foo_loading`.
1235
-
1236
- @private
1237
- @param {Route} route
1238
- @param {String} state
1239
- @return {String}
1240
- */
1241
- function findRouteSubstateName(route, state) {
1242
- let owner = getOwner(route);
1243
- let { routeName, fullRouteName, _router: router } = route;
1244
-
1245
- let substateName = `${routeName}_${state}`;
1246
- let substateNameFull = `${fullRouteName}_${state}`;
1247
-
1248
- return routeHasBeenDefined(owner, router, substateName, substateNameFull) ? substateNameFull : '';
1249
- }
1250
-
1251
- /**
1252
- Finds the name of the state route if it exists for the given route. A state
1253
- route is of the form `route.state`, such as `foo.loading`. Properly Handles
1254
- `application` named routes.
1255
-
1256
- @private
1257
- @param {Route} route
1258
- @param {String} state
1259
- @return {String}
1260
- */
1261
- function findRouteStateName(route, state) {
1262
- let owner = getOwner(route);
1263
- let { routeName, fullRouteName, _router: router } = route;
1264
-
1265
- let stateName = routeName === 'application' ? state : `${routeName}.${state}`;
1266
- let stateNameFull = fullRouteName === 'application' ? state : `${fullRouteName}.${state}`;
1267
-
1268
- return routeHasBeenDefined(owner, router, stateName, stateNameFull) ? stateNameFull : '';
1269
- }
1270
-
1271
- /**
1272
- Determines whether or not a route has been defined by checking that the route
1273
- is in the Router's map and the owner has a registration for that route.
1274
-
1275
- @private
1276
- @param {Owner} owner
1277
- @param {Router} router
1278
- @param {String} localName
1279
- @param {String} fullName
1280
- @return {Boolean}
1281
- */
1282
- function routeHasBeenDefined(owner, router, localName, fullName) {
1283
- let routerHasRoute = router.hasRoute(fullName);
1284
- let ownerHasRoute =
1285
- owner.hasRegistration(`template:${localName}`) || owner.hasRegistration(`route:${localName}`);
1286
- return routerHasRoute && ownerHasRoute;
1287
- }
1288
-
1289
- export function triggerEvent(handlerInfos, ignoreFailure, args) {
1290
- let name = args.shift();
1291
-
1292
- if (!handlerInfos) {
1293
- if (ignoreFailure) {
1294
- return;
1295
- }
1296
- throw new EmberError(
1297
- `Can't trigger action '${name}' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call \`.send()\` on the \`Transition\` object passed to the \`model/beforeModel/afterModel\` hooks.`
1298
- );
1299
- }
1300
-
1301
- let eventWasHandled = false;
1302
- let handlerInfo, handler, actionHandler;
1303
-
1304
- for (let i = handlerInfos.length - 1; i >= 0; i--) {
1305
- handlerInfo = handlerInfos[i];
1306
- handler = handlerInfo.handler;
1307
- actionHandler = handler && handler.actions && handler.actions[name];
1308
- if (actionHandler) {
1309
- if (actionHandler.apply(handler, args) === true) {
1310
- eventWasHandled = true;
1311
- } else {
1312
- // Should only hit here if a non-bubbling error action is triggered on a route.
1313
- if (name === 'error') {
1314
- handler._router._markErrorAsHandled(args[0]);
1315
- }
1316
- return;
1317
- }
1318
- }
1319
- }
1320
-
1321
- let defaultHandler = defaultActionHandlers[name];
1322
- if (defaultHandler) {
1323
- defaultHandler.apply(this, [handlerInfos, ...args]);
1324
- return;
1325
- }
1326
-
1327
- if (!eventWasHandled && !ignoreFailure) {
1328
- throw new EmberError(
1329
- `Nothing handled the action '${name}'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.`
1330
- );
1331
- }
1332
- }
1333
-
1334
- function calculatePostTransitionState(emberRouter, leafRouteName, contexts) {
1335
- let state = emberRouter._routerMicrolib.applyIntent(leafRouteName, contexts);
1336
- let { handlerInfos, params } = state;
1337
-
1338
- for (let i = 0; i < handlerInfos.length; ++i) {
1339
- let handlerInfo = handlerInfos[i];
1340
-
1341
- // If the handlerInfo is not resolved, we serialize the context into params
1342
- if (!handlerInfo.isResolved) {
1343
- params[handlerInfo.name] = handlerInfo.serialize(handlerInfo.context);
1344
- } else {
1345
- params[handlerInfo.name] = handlerInfo.params;
1346
- }
1347
- }
1348
- return state;
1349
- }
1350
-
1351
- function updatePaths(router) {
1352
- let infos = router._routerMicrolib.currentHandlerInfos;
1353
- if (infos.length === 0) {
1354
- return;
1355
- }
1356
-
1357
- let path = EmberRouter._routePath(infos);
1358
- let currentRouteName = infos[infos.length - 1].name;
1359
- let currentURL = router.get('location').getURL();
1360
-
1361
- set(router, 'currentPath', path);
1362
- set(router, 'currentRouteName', currentRouteName);
1363
- set(router, 'currentURL', currentURL);
1364
-
1365
- let appController = getOwner(router).lookup('controller:application');
1366
-
1367
- if (!appController) {
1368
- // appController might not exist when top-level loading/error
1369
- // substates have been entered since ApplicationRoute hasn't
1370
- // actually been entered at that point.
1371
- return;
1372
- }
1373
-
1374
- if (!('currentPath' in appController)) {
1375
- defineProperty(appController, 'currentPath');
1376
- }
1377
-
1378
- set(appController, 'currentPath', path);
1379
-
1380
- if (!('currentRouteName' in appController)) {
1381
- defineProperty(appController, 'currentRouteName');
1382
- }
1383
-
1384
- set(appController, 'currentRouteName', currentRouteName);
1385
- }
1386
-
1387
- EmberRouter.reopenClass({
1388
- /**
1389
- The `Router.map` function allows you to define mappings from URLs to routes
1390
- in your application. These mappings are defined within the
1391
- supplied callback function using `this.route`.
1392
-
1393
- The first parameter is the name of the route which is used by default as the
1394
- path name as well.
1395
-
1396
- The second parameter is the optional options hash. Available options are:
1397
-
1398
- * `path`: allows you to provide your own path as well as mark dynamic
1399
- segments.
1400
- * `resetNamespace`: false by default; when nesting routes, ember will
1401
- combine the route names to form the fully-qualified route name, which is
1402
- used with `{{link-to}}` or manually transitioning to routes. Setting
1403
- `resetNamespace: true` will cause the route not to inherit from its
1404
- parent route's names. This is handy for preventing extremely long route names.
1405
- Keep in mind that the actual URL path behavior is still retained.
1406
-
1407
- The third parameter is a function, which can be used to nest routes.
1408
- Nested routes, by default, will have the parent route tree's route name and
1409
- path prepended to it's own.
1410
-
1411
- ```app/router.js
1412
- Router.map(function(){
1413
- this.route('post', { path: '/post/:post_id' }, function() {
1414
- this.route('edit');
1415
- this.route('comments', { resetNamespace: true }, function() {
1416
- this.route('new');
1417
- });
1418
- });
1419
- });
1420
- ```
1421
-
1422
- For more detailed documentation and examples please see
1423
- [the guides](https://guides.emberjs.com/release/routing/defining-your-routes/).
1424
-
1425
- @method map
1426
- @param callback
1427
- @public
1428
- */
1429
- map(callback) {
1430
- if (!this.dslCallbacks) {
1431
- this.dslCallbacks = [];
1432
- this.reopenClass({ dslCallbacks: this.dslCallbacks });
1433
- }
1434
-
1435
- this.dslCallbacks.push(callback);
1436
-
1437
- return this;
1438
- },
1439
-
1440
- _routePath(handlerInfos) {
1441
- let path = [];
1442
-
1443
- // We have to handle coalescing resource names that
1444
- // are prefixed with their parent's names, e.g.
1445
- // ['foo', 'foo.bar.baz'] => 'foo.bar.baz', not 'foo.foo.bar.baz'
1446
-
1447
- function intersectionMatches(a1, a2) {
1448
- for (let i = 0; i < a1.length; ++i) {
1449
- if (a1[i] !== a2[i]) {
1450
- return false;
1451
- }
1452
- }
1453
- return true;
1454
- }
1455
-
1456
- let name, nameParts, oldNameParts;
1457
- for (let i = 1; i < handlerInfos.length; i++) {
1458
- name = handlerInfos[i].name;
1459
- nameParts = name.split('.');
1460
- oldNameParts = slice.call(path);
1461
-
1462
- while (oldNameParts.length) {
1463
- if (intersectionMatches(oldNameParts, nameParts)) {
1464
- break;
1465
- }
1466
- oldNameParts.shift();
1467
- }
1468
-
1469
- path.push(...nameParts.slice(oldNameParts.length));
1470
- }
1471
-
1472
- return path.join('.');
1473
- },
1474
- });
1475
-
1476
- function didBeginTransition(transition, router) {
1477
- let routerState = new RouterState(router, router._routerMicrolib, transition.state);
1478
-
1479
- if (!router.currentState) {
1480
- router.set('currentState', routerState);
1481
- }
1482
- router.set('targetState', routerState);
1483
-
1484
- transition.promise = transition.catch(error => {
1485
- if (router._isErrorHandled(error)) {
1486
- router._clearHandledError(error);
1487
- } else {
1488
- throw error;
1489
- }
1490
- });
1491
- }
1492
-
1493
- function forEachQueryParam(router, handlerInfos, queryParams, callback) {
1494
- let qpCache = router._queryParamsFor(handlerInfos);
1495
-
1496
- for (let key in queryParams) {
1497
- if (!queryParams.hasOwnProperty(key)) {
1498
- continue;
1499
- }
1500
- let value = queryParams[key];
1501
- let qp = qpCache.map[key];
1502
-
1503
- callback(key, value, qp);
1504
- }
1505
- }
1506
-
1507
- function findLiveRoute(liveRoutes, name) {
1508
- if (!liveRoutes) {
1509
- return;
1510
- }
1511
- let stack = [liveRoutes];
1512
- while (stack.length > 0) {
1513
- let test = stack.shift();
1514
- if (test.render.name === name) {
1515
- return test;
1516
- }
1517
- let outlets = test.outlets;
1518
- for (let outletName in outlets) {
1519
- stack.push(outlets[outletName]);
1520
- }
1521
- }
1522
- }
1523
-
1524
- function appendLiveRoute(liveRoutes, defaultParentState, renderOptions) {
1525
- let target;
1526
- let myState = {
1527
- render: renderOptions,
1528
- outlets: Object.create(null),
1529
- wasUsed: false,
1530
- };
1531
- if (renderOptions.into) {
1532
- target = findLiveRoute(liveRoutes, renderOptions.into);
1533
- } else {
1534
- target = defaultParentState;
1535
- }
1536
- if (target) {
1537
- set(target.outlets, renderOptions.outlet, myState);
1538
- } else {
1539
- if (ORPHAN_OUTLET_RENDER && renderOptions.into) {
1540
- deprecate(
1541
- `Rendering into a {{render}} helper that resolves to an {{outlet}} is deprecated.`,
1542
- false,
1543
- {
1544
- id: 'ember-routing.top-level-render-helper',
1545
- until: '3.0.0',
1546
- url:
1547
- 'https://emberjs.com/deprecations/v2.x/#toc_rendering-into-a-render-helper-that-resolves-to-an-outlet',
1548
- }
1549
- );
1550
-
1551
- // Megahax time. Post-3.0-breaking-changes, we will just assert
1552
- // right here that the user tried to target a nonexistent
1553
- // thing. But for now we still need to support the `render`
1554
- // helper, and people are allowed to target templates rendered
1555
- // by the render helper. So instead we defer doing anyting with
1556
- // these orphan renders until afterRender.
1557
- if (!liveRoutes.outlets.__ember_orphans__) {
1558
- liveRoutes.outlets.__ember_orphans__ = {
1559
- render: {
1560
- name: '__ember_orphans__',
1561
- },
1562
- outlets: Object.create(null),
1563
- };
1564
- }
1565
-
1566
- liveRoutes.outlets.__ember_orphans__.outlets[renderOptions.into] = myState;
1567
- schedule('afterRender', () => {
1568
- // `wasUsed` gets set by the render helper.
1569
- assert(
1570
- `You attempted to render into '${renderOptions.into}' but it was not found`,
1571
- liveRoutes.outlets.__ember_orphans__.outlets[renderOptions.into].wasUsed
1572
- );
1573
- });
1574
- } else {
1575
- liveRoutes = myState;
1576
- }
1577
- }
1578
- return {
1579
- liveRoutes,
1580
- ownState: myState,
1581
- };
1582
- }
1583
-
1584
- function representEmptyRoute(liveRoutes, defaultParentState, route) {
1585
- // the route didn't render anything
1586
- let alreadyAppended = findLiveRoute(liveRoutes, route.routeName);
1587
- if (alreadyAppended) {
1588
- // But some other route has already rendered our default
1589
- // template, so that becomes the default target for any
1590
- // children we may have.
1591
- return alreadyAppended;
1592
- } else {
1593
- // Create an entry to represent our default template name,
1594
- // just so other routes can target it and inherit its place
1595
- // in the outlet hierarchy.
1596
- defaultParentState.outlets.main = {
1597
- render: {
1598
- name: route.routeName,
1599
- outlet: 'main',
1600
- },
1601
- outlets: {},
1602
- };
1603
- return defaultParentState;
1604
- }
1605
- }
1606
-
1607
- export default EmberRouter;