@angular-wave/angular.ts 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/README.md +5 -3
  2. package/dist/angular-ts.esm.js +1 -1
  3. package/dist/angular-ts.umd.js +1 -1
  4. package/index.html +66 -57
  5. package/package.json +1 -1
  6. package/rollup.config.js +2 -6
  7. package/src/animations/animate-children-directive.js +1 -1
  8. package/src/animations/animate-css-driver.js +1 -1
  9. package/src/animations/animate-css.js +220 -15
  10. package/src/animations/animate-js-driver.js +1 -1
  11. package/src/animations/animate-js.js +2 -2
  12. package/src/animations/animate-queue.js +3 -4
  13. package/src/animations/animation.js +1 -1
  14. package/src/animations/module.js +750 -0
  15. package/src/animations/shared.js +15 -4
  16. package/src/core/animate-runner.js +1 -1
  17. package/src/core/animate.js +4 -5
  18. package/src/core/compile.js +6 -7
  19. package/src/core/controller.js +4 -3
  20. package/src/core/filter.js +1 -1
  21. package/src/core/interpolate.js +1 -1
  22. package/src/core/interval-factory.js +1 -1
  23. package/src/core/interval.js +1 -1
  24. package/src/core/location.js +1 -1
  25. package/src/core/parser/parse.js +1 -1
  26. package/src/core/q.js +2 -3
  27. package/src/core/root-scope.js +1 -1
  28. package/src/core/sanitize-uri.js +1 -1
  29. package/src/core/sce.js +1 -1
  30. package/src/core/task-tracker-factory.js +1 -1
  31. package/src/core/timeout.js +1 -1
  32. package/src/core/urlUtils.js +1 -1
  33. package/src/directive/attrs.js +1 -1
  34. package/src/directive/bind.js +1 -1
  35. package/src/directive/class.js +2 -2
  36. package/src/directive/events.js +1 -1
  37. package/src/directive/form.js +1 -1
  38. package/src/directive/include.js +1 -1
  39. package/src/directive/input.js +1 -1
  40. package/src/directive/list.js +2 -2
  41. package/src/directive/model-options.js +1 -1
  42. package/src/directive/model.js +1 -1
  43. package/src/directive/options.js +2 -3
  44. package/src/directive/ref.js +1 -1
  45. package/src/directive/repeat.js +1 -1
  46. package/src/directive/select.js +1 -1
  47. package/src/directive/switch.js +1 -1
  48. package/src/directive/transclude.js +1 -1
  49. package/src/directive/validators.js +1 -1
  50. package/src/exts/aria.js +1 -1
  51. package/src/exts/messages.js +3 -3
  52. package/src/exts/messages.md +28 -31
  53. package/src/filters/filter.js +2 -3
  54. package/src/filters/filters.js +1 -1
  55. package/src/filters/limit-to.js +1 -1
  56. package/src/filters/order-by.js +2 -3
  57. package/src/injector.js +8 -9
  58. package/src/jqLite.js +3 -4
  59. package/src/loader.js +1 -3
  60. package/src/public.js +1 -1
  61. package/src/router/common/coreservices.js +5 -0
  62. package/src/router/{core/common → common}/queue.js +1 -1
  63. package/src/router/{core/common → common}/trace.js +21 -19
  64. package/src/router/{adapter/directives → directives}/stateDirectives.js +24 -28
  65. package/src/router/{adapter/directives → directives}/viewDirective.js +10 -9
  66. package/src/router/{core/globals.js → globals.js} +13 -3
  67. package/src/router/{core/hooks → hooks}/coreResolvables.js +6 -4
  68. package/src/router/{core/hooks → hooks}/lazyLoad.js +5 -2
  69. package/src/router/{core/hooks → hooks}/redirectTo.js +1 -1
  70. package/src/router/{core/hooks → hooks}/resolve.js +5 -4
  71. package/src/router/{core/hooks → hooks}/updateGlobals.js +1 -1
  72. package/src/router/{core/hooks → hooks}/views.js +2 -3
  73. package/src/router/index.js +60 -0
  74. package/src/router/{adapter/injectables.js → injectables.js} +9 -9
  75. package/src/router/{adapter/locationServices.js → locationServices.js} +19 -12
  76. package/src/router/{core/params → params}/param.js +5 -10
  77. package/src/router/{core/params → params}/paramType.js +4 -4
  78. package/src/router/{core/params → params}/paramTypes.js +4 -3
  79. package/src/router/{core/params → params}/stateParams.js +1 -1
  80. package/src/router/{core/path → path}/pathNode.js +2 -2
  81. package/src/router/{core/path → path}/pathUtils.js +13 -7
  82. package/src/router/{core/resolve → resolve}/resolvable.js +5 -5
  83. package/src/router/{core/resolve → resolve}/resolveContext.js +16 -6
  84. package/src/router/router.js +171 -72
  85. package/src/router/{adapter/services.js → services.js} +47 -27
  86. package/src/router/{core/state → state}/stateBuilder.js +14 -10
  87. package/src/router/{core/state → state}/stateMatcher.js +2 -3
  88. package/src/router/{core/state → state}/stateObject.js +8 -6
  89. package/src/router/{core/state → state}/stateQueueManager.js +3 -3
  90. package/src/router/{core/state → state}/stateRegistry.js +6 -7
  91. package/src/router/{core/state → state}/stateService.js +12 -15
  92. package/src/router/{core/state → state}/targetState.js +2 -2
  93. package/src/router/{adapter/statebuilders → state}/views.js +17 -15
  94. package/src/router/{adapter/stateProvider.js → stateProvider.js} +52 -9
  95. package/src/router/{adapter/templateFactory.js → templateFactory.js} +10 -19
  96. package/src/router/{core/transition → transition}/hookBuilder.js +4 -3
  97. package/src/router/{core/transition → transition}/hookRegistry.js +3 -6
  98. package/src/router/{core/transition → transition}/rejectFactory.js +4 -5
  99. package/src/router/{core/transition → transition}/transition.js +10 -12
  100. package/src/router/{core/transition → transition}/transitionHook.js +4 -4
  101. package/src/router/{core/transition → transition}/transitionService.js +13 -13
  102. package/src/router/{core/url → url}/urlConfig.js +28 -19
  103. package/src/router/{core/url → url}/urlMatcher.js +14 -16
  104. package/src/router/{core/url → url}/urlMatcherFactory.js +7 -6
  105. package/src/router/{core/url → url}/urlRouter.js +6 -30
  106. package/src/router/{core/url → url}/urlRule.js +3 -3
  107. package/src/router/{core/url → url}/urlRules.js +10 -11
  108. package/src/router/{core/url → url}/urlService.js +12 -6
  109. package/src/router/{core/view → view}/view.js +32 -27
  110. package/src/router/{adapter/viewScroll.js → viewScroll.js} +3 -0
  111. package/src/services/anchor-scroll.js +1 -1
  112. package/src/services/browser.js +1 -1
  113. package/src/services/cache-factory.js +7 -1
  114. package/src/services/cookie-reader.js +1 -1
  115. package/src/services/http-backend.js +6 -1
  116. package/src/services/http.js +4 -5
  117. package/src/services/log.js +1 -1
  118. package/src/services/template-request.js +2 -2
  119. package/src/{router/core/common → shared}/common.js +35 -16
  120. package/src/{router/core/common → shared}/predicates.js +2 -12
  121. package/src/{router/core/common → shared}/strings.js +5 -13
  122. package/src/{core → shared}/utils.js +13 -29
  123. package/test/angular.spec.js +1 -31
  124. package/test/{ng → core}/animate.spec.js +1 -1
  125. package/test/{ng → core}/compile.spec.js +2 -3
  126. package/test/{ng → core}/http.spec.js +2 -2
  127. package/test/{ng → core}/on.spec.js +1 -1
  128. package/test/{ng → core}/parse.spec.js +1 -1
  129. package/test/{ng → core}/prop.spec.js +1 -1
  130. package/test/{ng → core}/scope.spec.js +1 -1
  131. package/test/{ng/directive → directive}/a.spec.js +4 -4
  132. package/test/{ng/directive → directive}/bind.spec.js +3 -3
  133. package/test/{ng/directive → directive}/boolean.spec.js +2 -2
  134. package/test/{ng/directive → directive}/change.spec.js +3 -3
  135. package/test/{ng/directive → directive}/class.spec.js +4 -4
  136. package/test/{ng/directive → directive}/click.spec.js +3 -3
  137. package/test/{ng/directive → directive}/cloak.spec.js +4 -4
  138. package/test/{ng/directive → directive}/constoller.spec.js +5 -5
  139. package/test/{ng/directive → directive}/element-style.spec.js +3 -3
  140. package/test/{ng/directive → directive}/event.spec.js +4 -4
  141. package/test/{ng/directive → directive}/form.spec.js +5 -5
  142. package/test/{ng/directive → directive}/href.spec.js +4 -4
  143. package/test/{ng/directive → directive}/if.spec.js +5 -5
  144. package/test/{ng/directive → directive}/include.spec.js +5 -5
  145. package/test/{ng/directive → directive}/init.spec.js +4 -4
  146. package/test/{ng/directive → directive}/input.spec.js +5 -5
  147. package/test/{ng/directive → directive}/list.spec.js +3 -3
  148. package/test/{ng/directive → directive}/model-options.spec.js +6 -6
  149. package/test/{ng/directive → directive}/model.spec.js +8 -8
  150. package/test/{ng/directive → directive}/non-bindable.spec.js +3 -3
  151. package/test/{ng/directive → directive}/options.spec.js +5 -5
  152. package/test/{ng/directive → directive}/ref.spec.js +2 -2
  153. package/test/{ng/directive → directive}/repeat.spec.js +5 -5
  154. package/test/{ng/directive → directive}/script.spec.js +3 -3
  155. package/test/{ng/directive → directive}/scrset.spec.js +3 -3
  156. package/test/{ng/directive → directive}/select.spec.js +5 -5
  157. package/test/{ng/directive → directive}/show-hide.spec.js +3 -3
  158. package/test/{ng/directive → directive}/src.spec.js +3 -3
  159. package/test/{ng/directive → directive}/style.spec.js +3 -3
  160. package/test/{ng/directive → directive}/switch.spec.js +3 -3
  161. package/test/{ng/directive → directive}/validators.spec.js +3 -3
  162. package/test/{ng/filter → filter}/filter.spec.js +4 -4
  163. package/test/{ng/filter → filter}/filters.spec.js +3 -3
  164. package/test/{ng/filter → filter}/limit-to.spec.js +3 -3
  165. package/test/{ng/filter → filter}/order-by.spec.js +2 -2
  166. package/test/injector.spec.js +1 -1
  167. package/test/jqlite.spec.js +1 -1
  168. package/test/messages/messages.spec.js +1 -1
  169. package/test/min-err.spec.js +1 -1
  170. package/test/original-test.html +4 -4
  171. package/test/router/glob.spec.js +78 -0
  172. package/test/router/state.spec.js +931 -0
  173. package/test/sanitize/bing-html.spec.js +1 -1
  174. package/test/shared/common.spec.js +283 -0
  175. package/test/shared/hof.spec.js +60 -0
  176. package/test/shared/strings.spec.js +40 -0
  177. package/test/{ng → shared}/utils.spec.js +1 -1
  178. package/types/router/angular.d.ts +1 -0
  179. package/types/router/core/common/common.d.ts +370 -0
  180. package/types/router/core/common/coreservices.d.ts +80 -0
  181. package/types/router/core/common/glob.d.ts +60 -0
  182. package/types/router/core/common/hof.d.ts +160 -0
  183. package/types/router/core/common/index.d.ts +8 -0
  184. package/types/router/core/common/predicates.d.ts +25 -0
  185. package/types/router/core/common/queue.d.ts +15 -0
  186. package/types/router/core/common/safeConsole.d.ts +5 -0
  187. package/types/router/core/common/strings.d.ts +64 -0
  188. package/types/router/core/common/trace.d.ts +114 -0
  189. package/types/router/core/globals.d.ts +45 -0
  190. package/types/router/core/hooks/coreResolvables.d.ts +4 -0
  191. package/types/router/core/hooks/ignoredTransition.d.ts +2 -0
  192. package/types/router/core/hooks/invalidTransition.d.ts +2 -0
  193. package/types/router/core/hooks/lazyLoad.d.ts +12 -0
  194. package/types/router/core/hooks/onEnterExitRetain.d.ts +4 -0
  195. package/types/router/core/hooks/redirectTo.d.ts +2 -0
  196. package/types/router/core/hooks/resolve.d.ts +5 -0
  197. package/types/router/core/hooks/updateGlobals.d.ts +2 -0
  198. package/types/router/core/hooks/url.d.ts +2 -0
  199. package/types/router/core/hooks/views.d.ts +3 -0
  200. package/types/router/core/index.d.ts +12 -0
  201. package/types/router/core/interface.d.ts +102 -0
  202. package/types/router/core/params/index.d.ts +12 -0
  203. package/types/router/core/params/interface.d.ts +606 -0
  204. package/types/router/core/params/param.d.ts +65 -0
  205. package/types/router/core/params/paramType.d.ts +65 -0
  206. package/types/router/core/params/paramTypes.d.ts +190 -0
  207. package/types/router/core/params/stateParams.d.ts +15 -0
  208. package/types/router/core/path/index.d.ts +2 -0
  209. package/types/router/core/path/pathNode.d.ts +60 -0
  210. package/types/router/core/path/pathUtils.d.ts +79 -0
  211. package/types/router/core/resolve/index.d.ts +3 -0
  212. package/types/router/core/resolve/interface.d.ts +210 -0
  213. package/types/router/core/resolve/resolvable.d.ts +69 -0
  214. package/types/router/core/resolve/resolveContext.d.ts +92 -0
  215. package/types/router/core/router.d.ts +95 -0
  216. package/types/router/core/state/index.d.ts +28 -0
  217. package/types/router/core/state/interface.d.ts +708 -0
  218. package/types/router/core/state/stateBuilder.d.ts +104 -0
  219. package/types/router/core/state/stateMatcher.d.ts +11 -0
  220. package/types/router/core/state/stateObject.d.ts +155 -0
  221. package/types/router/core/state/stateQueueManager.d.ts +24 -0
  222. package/types/router/core/state/stateRegistry.d.ts +136 -0
  223. package/types/router/core/state/stateService.d.ts +350 -0
  224. package/types/router/core/state/targetState.d.ts +100 -0
  225. package/types/router/core/transition/hookBuilder.d.ts +45 -0
  226. package/types/router/core/transition/hookRegistry.d.ts +93 -0
  227. package/types/router/core/transition/index.d.ts +20 -0
  228. package/types/router/core/transition/interface.d.ts +819 -0
  229. package/types/router/core/transition/rejectFactory.d.ts +103 -0
  230. package/types/router/core/transition/transition.d.ts +527 -0
  231. package/types/router/core/transition/transitionEventType.d.ts +17 -0
  232. package/types/router/core/transition/transitionHook.d.ts +88 -0
  233. package/types/router/core/transition/transitionService.d.ts +187 -0
  234. package/types/router/core/url/index.d.ts +8 -0
  235. package/types/router/core/url/interface.d.ts +156 -0
  236. package/types/router/core/url/urlConfig.d.ts +141 -0
  237. package/types/router/core/url/urlMatcher.d.ts +180 -0
  238. package/types/router/core/url/urlMatcherFactory.d.ts +52 -0
  239. package/types/router/core/url/urlRouter.d.ts +85 -0
  240. package/types/router/core/url/urlRule.d.ts +120 -0
  241. package/types/router/core/url/urlRules.d.ts +244 -0
  242. package/types/router/core/url/urlService.d.ts +206 -0
  243. package/types/router/core/vanilla.d.ts +1 -0
  244. package/types/router/core/view/index.d.ts +2 -0
  245. package/types/router/core/view/interface.d.ts +46 -0
  246. package/types/router/core/view/view.d.ts +167 -0
  247. package/types/router/directives/stateDirectives.d.ts +3 -0
  248. package/types/router/directives/viewDirective.d.ts +143 -0
  249. package/types/router/index.d.ts +19 -0
  250. package/types/router/interface.d.ts +491 -0
  251. package/types/router/legacy/resolveService.d.ts +44 -0
  252. package/types/router/legacy/stateEvents.d.ts +123 -0
  253. package/types/router/locationServices.d.ts +43 -0
  254. package/types/router/services.d.ts +15 -0
  255. package/types/router/stateFilters.d.ts +11 -0
  256. package/types/router/stateProvider.d.ts +254 -0
  257. package/types/router/statebuilders/onEnterExitRetain.d.ts +12 -0
  258. package/types/router/statebuilders/views.d.ts +41 -0
  259. package/types/router/templateFactory.d.ts +84 -0
  260. package/types/router/viewScroll.d.ts +9 -0
  261. package/src/animations/animate.css.md +0 -263
  262. package/src/animations/animate.md +0 -933
  263. package/src/router/adapter/statebuilders/onEnterExitRetain.js +0 -29
  264. package/src/router/core/common/coreservices.js +0 -15
  265. package/src/router/core/common/safeConsole.js +0 -37
  266. package/src/router/core/interface.js +0 -3
  267. package/src/router/core/resolve/interface.js +0 -10
  268. package/src/router/core/router.js +0 -203
  269. package/src/router/core/url/interface.js +0 -1
  270. package/src/router/core/view/interface.js +0 -1
  271. /package/src/router/{core/common → common}/glob.js +0 -0
  272. /package/src/router/{core/hooks → hooks}/ignoredTransition.js +0 -0
  273. /package/src/router/{core/hooks → hooks}/invalidTransition.js +0 -0
  274. /package/src/router/{core/hooks → hooks}/onEnterExitRetain.js +0 -0
  275. /package/src/router/{core/hooks → hooks}/url.js +0 -0
  276. /package/src/router/{core/params → params}/README.md +0 -0
  277. /package/src/router/{core/state → state}/README.md +0 -0
  278. /package/src/router/{adapter/stateFilters.js → stateFilters.js} +0 -0
  279. /package/src/router/{core/transition → transition}/interface.js +0 -0
  280. /package/src/router/{core/transition → transition}/transitionEventType.js +0 -0
  281. /package/src/{router/core/common → shared}/hof.js +0 -0
  282. /package/test/{ng → core}/cache-factor.spec.js +0 -0
  283. /package/test/{ng → core}/controller-provider.spec.js +0 -0
  284. /package/test/{ng → core}/cookie-reader.spec.js +0 -0
  285. /package/test/{ng → core}/document.spec.js +0 -0
  286. /package/test/{ng → core}/filter.spec.js +0 -0
  287. /package/test/{ng → core}/http-backend.spec.js +0 -0
  288. /package/test/{ng → core}/interpolate.spec.js +0 -0
  289. /package/test/{ng → core}/interval.spec.js +0 -0
  290. /package/test/{ng → core}/location.spec.js +0 -0
  291. /package/test/{ng → core}/q.spec.js +0 -0
  292. /package/test/{ng → core}/root-element.spec.js +0 -0
  293. /package/test/{ng → core}/sanitize-uri.spec.js +0 -0
  294. /package/test/{ng → core}/sce.spec.js +0 -0
  295. /package/test/{ng → core}/template-request.spec.js +0 -0
  296. /package/test/{ng → core}/timeout.spec.js +0 -0
  297. /package/test/{ng → core}/url-utils.spec.js +0 -0
  298. /package/{src/router/adapter/interface.js → types/router/injectables.d.ts} +0 -0
@@ -0,0 +1,104 @@
1
+ import { StateObject } from './stateObject';
2
+ import { StateMatcher } from './stateMatcher';
3
+ import { UrlMatcherFactory } from '../url/urlMatcherFactory';
4
+ import { Resolvable } from '../resolve/resolvable';
5
+ /**
6
+ * A function that builds the final value for a specific field on a [[StateObject]].
7
+ *
8
+ * A series of builder functions for a given field are chained together.
9
+ * The final value returned from the chain of builders is applied to the built [[StateObject]].
10
+ * Builder functions should call the [[parent]] function either first or last depending on the desired composition behavior.
11
+ *
12
+ * @param state the _partially built_ [[StateObject]]. The [[StateDeclaration]] can be inspected via [[StateObject.self]]
13
+ * @param parent the previous builder function in the series.
14
+ */
15
+ export declare type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;
16
+ /**
17
+ * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].
18
+ *
19
+ * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder
20
+ * validates the `resolve` property and converts it to a [[Resolvable]] array.
21
+ *
22
+ * resolve: input value can be:
23
+ *
24
+ * {
25
+ * // analyzed but not injected
26
+ * myFooResolve: function() { return "myFooData"; },
27
+ *
28
+ * // function.toString() parsed, "DependencyName" dep as string (not min-safe)
29
+ * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },
30
+ *
31
+ * // Array split; "DependencyName" dep as string
32
+ * myBazResolve: [ "DependencyName", function(dep) { return dep.fetchSomethingAsPromise() },
33
+ *
34
+ * // Array split; DependencyType dep as token (compared using ===)
35
+ * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },
36
+ *
37
+ * // val.$inject used as deps
38
+ * // where:
39
+ * // corgeResolve.$inject = ["DependencyName"];
40
+ * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }
41
+ * // then "DependencyName" dep as string
42
+ * myCorgeResolve: corgeResolve,
43
+ *
44
+ * // inject service by name
45
+ * // When a string is found, desugar creating a resolve that injects the named service
46
+ * myGraultResolve: "SomeService"
47
+ * }
48
+ *
49
+ * or:
50
+ *
51
+ * [
52
+ * new Resolvable("myFooResolve", function() { return "myFooData" }),
53
+ * new Resolvable("myBarResolve", function(dep) { return dep.fetchSomethingAsPromise() }, [ "DependencyName" ]),
54
+ * { provide: "myBazResolve", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ "DependencyName" ] }
55
+ * ]
56
+ */
57
+ export declare function resolvablesBuilder(state: StateObject): Resolvable[];
58
+ /**
59
+ * A internal global service
60
+ *
61
+ * StateBuilder is a factory for the internal [[StateObject]] objects.
62
+ *
63
+ * When you register a state with the [[StateRegistry]], you register a plain old javascript object which
64
+ * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding
65
+ * [[StateObject]] object, which has an API and is used internally.
66
+ *
67
+ * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function
68
+ * using the [[builder]] method.
69
+ */
70
+ export declare class StateBuilder {
71
+ private matcher;
72
+ /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */
73
+ private builders;
74
+ constructor(matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory);
75
+ /**
76
+ * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).
77
+ * More than one BuilderFunction can be registered for a given property.
78
+ *
79
+ * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.
80
+ *
81
+ * @param property The name of the State property being registered for.
82
+ * @param fn The BuilderFunction which will be used to build the State property
83
+ * @returns a function which deregisters the BuilderFunction
84
+ */
85
+ builder(property: string, fn: BuilderFunction): Function;
86
+ /**
87
+ * Gets the registered builder functions for a given property of [[StateObject]].
88
+ *
89
+ * @param property The name of the State property being registered for.
90
+ * @returns the registered builder(s).
91
+ * note: for backwards compatibility, this may be a single builder or an array of builders
92
+ */
93
+ builder(property: string): BuilderFunction | BuilderFunction[];
94
+ /**
95
+ * Builds all of the properties on an essentially blank State object, returning a State object which has all its
96
+ * properties and API built.
97
+ *
98
+ * @param state an uninitialized State object
99
+ * @returns the built State object
100
+ */
101
+ build(state: StateObject): StateObject;
102
+ parentName(state: StateObject): string;
103
+ name(state: StateObject): string;
104
+ }
@@ -0,0 +1,11 @@
1
+ import { StateOrName } from './interface';
2
+ import { StateObject } from './stateObject';
3
+ export declare class StateMatcher {
4
+ private _states;
5
+ constructor(_states: {
6
+ [key: string]: StateObject;
7
+ });
8
+ isRelative(stateName: string): boolean;
9
+ find(stateOrName: StateOrName, base?: StateOrName, matchGlob?: boolean): StateObject;
10
+ resolvePath(name: string, base: StateOrName): string;
11
+ }
@@ -0,0 +1,155 @@
1
+ import { StateDeclaration, _ViewDeclaration, _StateDeclaration, LazyLoadResult } from './interface';
2
+ import { Param } from '../params/param';
3
+ import { UrlMatcher } from '../url/urlMatcher';
4
+ import { Resolvable } from '../resolve/resolvable';
5
+ import { TransitionStateHookFn } from '../transition/interface';
6
+ import { TargetState } from './targetState';
7
+ import { Transition } from '../transition/transition';
8
+ import { Glob } from '../common/glob';
9
+ /**
10
+ * Internal representation of a UI-Router state.
11
+ *
12
+ * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].
13
+ *
14
+ * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.
15
+ *
16
+ * This class prototypally inherits from the corresponding [[StateDeclaration]].
17
+ * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].
18
+ */
19
+ export declare class StateObject {
20
+ /** The parent [[StateObject]] */
21
+ parent: StateObject;
22
+ /** The name used to register the state */
23
+ name: string;
24
+ /** Prototypally inherits from [[StateDeclaration.abstract]] */
25
+ abstract: boolean;
26
+ /** Prototypally inherits from [[StateDeclaration.resolve]] */
27
+ resolve: {
28
+ [key: string]: string | any[] | Function;
29
+ } | any[];
30
+ /** A list of [[Resolvable]] objects. The internal representation of [[resolve]]. */
31
+ resolvables: Resolvable[];
32
+ /** Prototypally inherits from [[StateDeclaration.resolvePolicy]] */
33
+ resolvePolicy: any;
34
+ /** A compiled URLMatcher which detects when the state's URL is matched */
35
+ url: UrlMatcher;
36
+ /** The parameters for the state, built from the URL and [[StateDeclaration.params]] */
37
+ params: {
38
+ [key: string]: Param;
39
+ };
40
+ /**
41
+ * The views for the state.
42
+ * Note: `@uirouter/core` does not register a builder for views.
43
+ * The framework specific code should register a `views` builder.
44
+ */
45
+ views: {
46
+ [key: string]: _ViewDeclaration;
47
+ };
48
+ /**
49
+ * The original [[StateDeclaration]] used to build this [[StateObject]].
50
+ * Note: `this` object also prototypally inherits from the `self` declaration object.
51
+ */
52
+ self: StateDeclaration;
53
+ /** The nearest parent [[StateObject]] which has a URL */
54
+ navigable: StateObject;
55
+ /** The parent [[StateObject]] objects from this state up to the root */
56
+ path: StateObject[];
57
+ /**
58
+ * Prototypally inherits from [[StateDeclaration.data]]
59
+ * Note: This is the only field on the [[StateDeclaration]] which is mutated.
60
+ * The definition object's `data` field is replaced with a new object
61
+ * which prototypally inherits from the parent state definition's `data` field.
62
+ */
63
+ data: any;
64
+ /**
65
+ * An object containing the parent States' names as keys and
66
+ * true as their values.
67
+ */
68
+ includes: {
69
+ [name: string]: boolean;
70
+ };
71
+ /** Prototypally inherits from [[StateDeclaration.onExit]] */
72
+ onExit: TransitionStateHookFn;
73
+ /** Prototypally inherits from [[StateDeclaration.onRetain]] */
74
+ onRetain: TransitionStateHookFn;
75
+ /** Prototypally inherits from [[StateDeclaration.onEnter]] */
76
+ onEnter: TransitionStateHookFn;
77
+ /** Prototypally inherits from [[StateDeclaration.lazyLoad]] */
78
+ lazyLoad: (transition: Transition, state: StateDeclaration) => Promise<LazyLoadResult>;
79
+ /** Prototypally inherits from [[StateDeclaration.redirectTo]] */
80
+ redirectTo: string | (($transition$: Transition) => TargetState) | {
81
+ state: string | StateDeclaration;
82
+ params: {
83
+ [key: string]: any;
84
+ };
85
+ };
86
+ /** @internal */
87
+ __stateObjectCache: {
88
+ /** Might be null */
89
+ nameGlob?: Glob;
90
+ };
91
+ /**
92
+ * Create a state object to put the private/internal implementation details onto.
93
+ * The object's prototype chain looks like:
94
+ * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)
95
+ *
96
+ * @param stateDecl the user-supplied State Declaration
97
+ * @returns {StateObject} an internal State object
98
+ */
99
+ static create(stateDecl: _StateDeclaration): StateObject;
100
+ /** Predicate which returns true if the object is an class with @State() decorator */
101
+ static isStateClass: (stateDecl: _StateDeclaration) => stateDecl is new () => StateDeclaration;
102
+ /** Predicate which returns true if the object is a [[StateDeclaration]] object */
103
+ static isStateDeclaration: (obj: any) => obj is StateDeclaration;
104
+ /** Predicate which returns true if the object is an internal [[StateObject]] object */
105
+ static isState: (obj: any) => obj is StateObject;
106
+ /** @deprecated use State.create() */
107
+ constructor(config?: StateDeclaration);
108
+ /**
109
+ * Returns true if the provided parameter is the same state.
110
+ *
111
+ * Compares the identity of the state against the passed value, which is either an object
112
+ * reference to the actual `State` instance, the original definition object passed to
113
+ * `$stateProvider.state()`, or the fully-qualified name.
114
+ *
115
+ * @param ref Can be one of (a) a `State` instance, (b) an object that was passed
116
+ * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.
117
+ * @returns Returns `true` if `ref` matches the current `State` instance.
118
+ */
119
+ is(ref: StateObject | StateDeclaration | string): boolean;
120
+ /**
121
+ * @deprecated this does not properly handle dot notation
122
+ * @returns Returns a dot-separated name of the state.
123
+ */
124
+ fqn(): string;
125
+ /**
126
+ * Returns the root node of this state's tree.
127
+ *
128
+ * @returns The root of this state's tree.
129
+ */
130
+ root(): StateObject;
131
+ /**
132
+ * Gets the state's `Param` objects
133
+ *
134
+ * Gets the list of [[Param]] objects owned by the state.
135
+ * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.
136
+ * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object
137
+ *
138
+ * @param opts options
139
+ */
140
+ parameters(opts?: {
141
+ inherit?: boolean;
142
+ matchingKeys?: any;
143
+ }): Param[];
144
+ /**
145
+ * Returns a single [[Param]] that is owned by the state
146
+ *
147
+ * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.
148
+ * @param id the name of the [[Param]] to return
149
+ * @param opts options
150
+ */
151
+ parameter(id: string, opts?: {
152
+ inherit?: boolean;
153
+ }): Param;
154
+ toString(): string;
155
+ }
@@ -0,0 +1,24 @@
1
+ import { _StateDeclaration } from './interface';
2
+ import { StateObject } from './stateObject';
3
+ import { StateBuilder } from './stateBuilder';
4
+ import { StateRegistryListener } from './stateRegistry';
5
+ import { Disposable } from '../interface';
6
+ import { UIRouter } from '../router';
7
+ export declare class StateQueueManager implements Disposable {
8
+ private router;
9
+ states: {
10
+ [key: string]: StateObject;
11
+ };
12
+ builder: StateBuilder;
13
+ listeners: StateRegistryListener[];
14
+ queue: StateObject[];
15
+ constructor(router: UIRouter, states: {
16
+ [key: string]: StateObject;
17
+ }, builder: StateBuilder, listeners: StateRegistryListener[]);
18
+ dispose(): void;
19
+ register(stateDecl: _StateDeclaration): StateObject;
20
+ flush(): {
21
+ [key: string]: StateObject;
22
+ };
23
+ attachRoute(state: StateObject): void;
24
+ }
@@ -0,0 +1,136 @@
1
+ import { StateObject } from './stateObject';
2
+ import { StateMatcher } from './stateMatcher';
3
+ import { StateQueueManager } from './stateQueueManager';
4
+ import { StateDeclaration, _StateDeclaration } from './interface';
5
+ import { BuilderFunction } from './stateBuilder';
6
+ import { StateOrName } from './interface';
7
+ import { UIRouter } from '../router';
8
+ /**
9
+ * The signature for the callback function provided to [[StateRegistry.onStatesChanged]].
10
+ *
11
+ * This callback receives two parameters:
12
+ *
13
+ * @param event a string; either "registered" or "deregistered"
14
+ * @param states the list of [[StateDeclaration]]s that were registered (or deregistered).
15
+ */
16
+ export declare type StateRegistryListener = (event: 'registered' | 'deregistered', states: StateDeclaration[]) => void;
17
+ /**
18
+ * A registry for all of the application's [[StateDeclaration]]s
19
+ *
20
+ * This API is found at `router.stateRegistry` ([[UIRouter.stateRegistry]])
21
+ */
22
+ export declare class StateRegistry {
23
+ private router;
24
+ private _root;
25
+ private states;
26
+ /** @internal */
27
+ matcher: StateMatcher;
28
+ private builder;
29
+ /** @internal */
30
+ stateQueue: StateQueueManager;
31
+ /** @internal */
32
+ listeners: StateRegistryListener[];
33
+ /** @internal */
34
+ constructor(router: UIRouter);
35
+ /** @internal */
36
+ private _registerRoot;
37
+ /** @internal */
38
+ dispose(): void;
39
+ /**
40
+ * Listen for a State Registry events
41
+ *
42
+ * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.
43
+ *
44
+ * #### Example:
45
+ * ```js
46
+ * let allStates = registry.get();
47
+ *
48
+ * // Later, invoke deregisterFn() to remove the listener
49
+ * let deregisterFn = registry.onStatesChanged((event, states) => {
50
+ * switch(event) {
51
+ * case: 'registered':
52
+ * states.forEach(state => allStates.push(state));
53
+ * break;
54
+ * case: 'deregistered':
55
+ * states.forEach(state => {
56
+ * let idx = allStates.indexOf(state);
57
+ * if (idx !== -1) allStates.splice(idx, 1);
58
+ * });
59
+ * break;
60
+ * }
61
+ * });
62
+ * ```
63
+ *
64
+ * @param listener a callback function invoked when the registered states changes.
65
+ * The function receives two parameters, `event` and `state`.
66
+ * See [[StateRegistryListener]]
67
+ * @return a function that deregisters the listener
68
+ */
69
+ onStatesChanged(listener: StateRegistryListener): () => void;
70
+ /**
71
+ * Gets the implicit root state
72
+ *
73
+ * Gets the root of the state tree.
74
+ * The root state is implicitly created by UI-Router.
75
+ * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]
76
+ *
77
+ * @return the root [[StateObject]]
78
+ */
79
+ root(): StateObject;
80
+ /**
81
+ * Adds a state to the registry
82
+ *
83
+ * Registers a [[StateDeclaration]] or queues it for registration.
84
+ *
85
+ * Note: a state will be queued if the state's parent isn't yet registered.
86
+ *
87
+ * @param stateDefinition the definition of the state to register.
88
+ * @returns the internal [[StateObject]] object.
89
+ * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).
90
+ * If the state was only queued, then the object is not fully built.
91
+ */
92
+ register(stateDefinition: _StateDeclaration): StateObject;
93
+ /** @internal */
94
+ private _deregisterTree;
95
+ /**
96
+ * Removes a state from the registry
97
+ *
98
+ * This removes a state from the registry.
99
+ * If the state has children, they are are also removed from the registry.
100
+ *
101
+ * @param stateOrName the state's name or object representation
102
+ * @returns {StateObject[]} a list of removed states
103
+ */
104
+ deregister(stateOrName: StateOrName): StateObject[];
105
+ /**
106
+ * Gets all registered states
107
+ *
108
+ * Calling this method with no arguments will return a list of all the states that are currently registered.
109
+ * Note: this does not return states that are *queued* but not yet registered.
110
+ *
111
+ * @return a list of [[StateDeclaration]]s
112
+ */
113
+ get(): StateDeclaration[];
114
+ /**
115
+ * Gets a registered state
116
+ *
117
+ * Given a state or a name, finds and returns the [[StateDeclaration]] from the registry.
118
+ * Note: this does not return states that are *queued* but not yet registered.
119
+ *
120
+ * @param stateOrName either the name of a state, or a state object.
121
+ * @param base the base state to use when stateOrName is relative.
122
+ * @return a registered [[StateDeclaration]] that matched the `stateOrName`, or null if the state isn't registered.
123
+ */
124
+ get(stateOrName: StateOrName, base?: StateOrName): StateDeclaration;
125
+ /**
126
+ * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).
127
+ * More than one BuilderFunction can be registered for a given property.
128
+ *
129
+ * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.
130
+ *
131
+ * @param property The name of the State property being registered for.
132
+ * @param builderFunction The BuilderFunction which will be used to build the State property
133
+ * @returns a function which deregisters the BuilderFunction
134
+ */
135
+ decorator(property: string, builderFunction: BuilderFunction): Function;
136
+ }