discourse-ember-source 3.5.1.1 → 3.5.1.2

Sign up to get free protection for your applications and to get access to all the features.
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;