@angular-wave/angular.ts 0.9.3 → 0.9.5

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 (703) hide show
  1. package/@types/angular.d.ts +4 -19
  2. package/@types/animations/animate.d.ts +2 -2
  3. package/@types/animations/animation.d.ts +1 -1
  4. package/@types/core/compile/attributes.d.ts +1 -1
  5. package/@types/core/compile/compile.d.ts +2 -2
  6. package/@types/core/controller/controller.d.ts +1 -1
  7. package/@types/core/controller/interface.d.ts +6 -0
  8. package/@types/core/di/ng-module.d.ts +27 -26
  9. package/@types/core/filter/filter.d.ts +5 -5
  10. package/@types/core/interpolate/interface.d.ts +13 -0
  11. package/@types/core/interpolate/interpolate.d.ts +1 -13
  12. package/@types/core/scope/scope.d.ts +4 -1
  13. package/@types/directive/http/http.d.ts +16 -16
  14. package/@types/directive/http/interface.d.ts +27 -0
  15. package/@types/directive/include/include.d.ts +4 -4
  16. package/@types/directive/inject/inject.d.ts +12 -0
  17. package/@types/directive/model/model.d.ts +1 -1
  18. package/@types/directive/script/script.d.ts +2 -2
  19. package/@types/directive/setter/setter.d.ts +4 -4
  20. package/@types/filters/filter.d.ts +2 -2
  21. package/@types/filters/filters.d.ts +2 -2
  22. package/@types/filters/interface.d.ts +8 -0
  23. package/@types/filters/limit-to.d.ts +2 -2
  24. package/@types/filters/order-by.d.ts +2 -2
  25. package/@types/interface.d.ts +105 -82
  26. package/@types/namespace.d.ts +76 -0
  27. package/@types/router/state/interface.d.ts +8 -8
  28. package/@types/router/state-filters.d.ts +4 -4
  29. package/@types/router/template-factory.d.ts +8 -8
  30. package/@types/router/transition/hook-builder.d.ts +5 -2
  31. package/@types/router/transition/hook-registry.d.ts +11 -2
  32. package/@types/router/transition/transition-service.d.ts +6 -2
  33. package/@types/router/transition/transition.d.ts +2 -2
  34. package/@types/router/view/view.d.ts +1 -8
  35. package/@types/router/view-scroll.d.ts +4 -2
  36. package/@types/services/{anchor-scroll.d.ts → anchor-scroll/anchor-scroll.d.ts} +2 -2
  37. package/@types/services/exception/exception-handler.d.ts +2 -2
  38. package/@types/services/exception/interface.d.ts +1 -1
  39. package/@types/services/http/http.d.ts +40 -2
  40. package/@types/services/http/interface.d.ts +11 -0
  41. package/@types/services/location/location.d.ts +1 -4
  42. package/@types/services/sce/sce.d.ts +3 -4
  43. package/@types/services/template-cache/template-cache.d.ts +4 -4
  44. package/@types/services/template-request/interface.d.ts +22 -0
  45. package/@types/services/{template-request.d.ts → template-request/template-request.d.ts} +4 -7
  46. package/@types/shared/common.d.ts +8 -69
  47. package/@types/shared/hof.d.ts +7 -7
  48. package/dist/angular-ts.esm.js +510 -570
  49. package/dist/angular-ts.umd.js +510 -570
  50. package/dist/angular-ts.umd.min.js +1 -1
  51. package/package.json +8 -1
  52. package/.github/workflows/ci.yml +0 -104
  53. package/.github/workflows/gh-pages.yml +0 -75
  54. package/.husky/pre-commit +0 -5
  55. package/.prettierignore +0 -9
  56. package/@types/services/cookie-reader.d.ts +0 -4
  57. package/@types/services/http-backend/http-backend.d.ts +0 -58
  58. package/@types/services/template-cache/interface.d.ts +0 -10
  59. package/CHANGELOG.md +0 -17667
  60. package/CODE_OF_CONDUCT.md +0 -3
  61. package/CONTRIBUTING.md +0 -247
  62. package/DEVELOPERS.md +0 -499
  63. package/Makefile +0 -60
  64. package/RELEASE.md +0 -86
  65. package/TRIAGING.md +0 -127
  66. package/docs/.cspell.yml +0 -8
  67. package/docs/.github/dependabot.yml +0 -14
  68. package/docs/.nvmrc +0 -1
  69. package/docs/CONTRIBUTING.md +0 -28
  70. package/docs/Dockerfile +0 -4
  71. package/docs/LICENSE +0 -201
  72. package/docs/README.md +0 -217
  73. package/docs/assets/icons/logo.svg +0 -1
  74. package/docs/assets/scss/_variables_project.scss +0 -12
  75. package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
  76. package/docs/assets/scss/index.scss +0 -48
  77. package/docs/config.yaml +0 -15
  78. package/docs/content/_index.md +0 -28
  79. package/docs/content/docs/_index.md +0 -61
  80. package/docs/content/docs/directive/_index.md +0 -4
  81. package/docs/content/docs/directive/app.md +0 -11
  82. package/docs/content/docs/directive/aria.md +0 -0
  83. package/docs/content/docs/directive/bind.md +0 -72
  84. package/docs/content/docs/directive/blur.md +0 -38
  85. package/docs/content/docs/directive/channel.md +0 -37
  86. package/docs/content/docs/directive/class-even.md +0 -47
  87. package/docs/content/docs/directive/class-odd.md +0 -48
  88. package/docs/content/docs/directive/class.md +0 -64
  89. package/docs/content/docs/directive/click.md +0 -41
  90. package/docs/content/docs/directive/cloak.md +0 -74
  91. package/docs/content/docs/directive/copy.md +0 -38
  92. package/docs/content/docs/directive/cut.md +0 -40
  93. package/docs/content/docs/directive/dblclick.md +0 -41
  94. package/docs/content/docs/directive/focus.md +0 -38
  95. package/docs/content/docs/directive/get.md +0 -203
  96. package/docs/content/docs/directive/include.md +0 -7
  97. package/docs/content/docs/directive/keydown.md +0 -38
  98. package/docs/content/docs/directive/keyup.md +0 -38
  99. package/docs/content/docs/directive/load.md +0 -43
  100. package/docs/content/docs/directive/mousedown.md +0 -38
  101. package/docs/content/docs/directive/mouseenter.md +0 -38
  102. package/docs/content/docs/directive/mouseleave.md +0 -38
  103. package/docs/content/docs/directive/mousemove.md +0 -38
  104. package/docs/content/docs/directive/mouseout.md +0 -38
  105. package/docs/content/docs/directive/mouseover.md +0 -38
  106. package/docs/content/docs/directive/mouseup.md +0 -38
  107. package/docs/content/docs/directive/non-bindable.md +0 -28
  108. package/docs/content/docs/filter/_index.md +0 -4
  109. package/docs/content/docs/provider/_index.md +0 -4
  110. package/docs/content/docs/provider/eventBusProvider.md +0 -35
  111. package/docs/content/docs/provider/locationProvider.md +0 -26
  112. package/docs/content/docs/provider/logProvider.md +0 -59
  113. package/docs/content/docs/provider/templateCacheProvider.md +0 -100
  114. package/docs/content/docs/service/_index.md +0 -4
  115. package/docs/content/docs/service/eventBus.md +0 -56
  116. package/docs/content/docs/service/location.md +0 -57
  117. package/docs/content/docs/service/log.md +0 -113
  118. package/docs/content/docs/service/templateCache.md +0 -64
  119. package/docs/content/docs/service/url.md +0 -5
  120. package/docs/docker-compose.yaml +0 -12
  121. package/docs/docsy.work +0 -5
  122. package/docs/docsy.work.sum +0 -0
  123. package/docs/go.mod +0 -5
  124. package/docs/go.sum +0 -6
  125. package/docs/hugo-disabled.toml +0 -220
  126. package/docs/hugo.yaml +0 -200
  127. package/docs/layouts/404.html +0 -13
  128. package/docs/layouts/_markup/render-heading.html +0 -1
  129. package/docs/layouts/partials/hooks/head-end.html +0 -3
  130. package/docs/layouts/shortcodes/showcss.html +0 -2
  131. package/docs/layouts/shortcodes/showhtml.html +0 -2
  132. package/docs/layouts/shortcodes/showjs.html +0 -2
  133. package/docs/layouts/shortcodes/showraw.html +0 -1
  134. package/docs/layouts/shortcodes/version.html +0 -1
  135. package/docs/package-lock.json +0 -2293
  136. package/docs/package.json +0 -53
  137. package/docs/static/examples/counter/counter-test.html +0 -13
  138. package/docs/static/examples/counter/counter.html +0 -5
  139. package/docs/static/examples/counter/counter.test.js +0 -28
  140. package/docs/static/examples/eventbus/eventbus-test.html +0 -15
  141. package/docs/static/examples/eventbus/eventbus.html +0 -13
  142. package/docs/static/examples/eventbus/eventbus.js +0 -15
  143. package/docs/static/examples/eventbus/eventbus.test.js +0 -19
  144. package/docs/static/examples/ng-bind/ng-bind.html +0 -9
  145. package/docs/static/examples/ng-blur/ng-blur.html +0 -9
  146. package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
  147. package/docs/static/examples/ng-channel/ng-channel.html +0 -24
  148. package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
  149. package/docs/static/examples/ng-class/ng-class.html +0 -71
  150. package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
  151. package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
  152. package/docs/static/examples/ng-click/ng-click.html +0 -6
  153. package/docs/static/examples/ng-copy/ng-copy.html +0 -6
  154. package/docs/static/examples/ng-cut/ng-cut.html +0 -6
  155. package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
  156. package/docs/static/examples/ng-focus/ng-focus.html +0 -9
  157. package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
  158. package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
  159. package/docs/static/examples/ng-load/ng-load.html +0 -8
  160. package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
  161. package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
  162. package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
  163. package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
  164. package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
  165. package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
  166. package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
  167. package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
  168. package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
  169. package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
  170. package/docs/static/typedoc/.nojekyll +0 -1
  171. package/docs/static/typedoc/assets/hierarchy.js +0 -1
  172. package/docs/static/typedoc/assets/highlight.css +0 -78
  173. package/docs/static/typedoc/assets/icons.js +0 -18
  174. package/docs/static/typedoc/assets/icons.svg +0 -1
  175. package/docs/static/typedoc/assets/main.js +0 -60
  176. package/docs/static/typedoc/assets/navigation.js +0 -1
  177. package/docs/static/typedoc/assets/search.js +0 -1
  178. package/docs/static/typedoc/assets/style.css +0 -1633
  179. package/docs/static/typedoc/classes/Location.html +0 -55
  180. package/docs/static/typedoc/classes/LocationProvider.html +0 -20
  181. package/docs/static/typedoc/classes/LogProvider.html +0 -6
  182. package/docs/static/typedoc/classes/PubSub.html +0 -71
  183. package/docs/static/typedoc/classes/PubSubProvider.html +0 -3
  184. package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
  185. package/docs/static/typedoc/hierarchy.html +0 -1
  186. package/docs/static/typedoc/index.html +0 -1
  187. package/docs/static/typedoc/interfaces/ChangesObject.html +0 -6
  188. package/docs/static/typedoc/interfaces/ComponentOptions.html +0 -16
  189. package/docs/static/typedoc/interfaces/Controller.html +0 -12
  190. package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
  191. package/docs/static/typedoc/interfaces/Directive.html +0 -37
  192. package/docs/static/typedoc/interfaces/DirectivePrePost.html +0 -4
  193. package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
  194. package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
  195. package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
  196. package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
  197. package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
  198. package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
  199. package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
  200. package/docs/static/typedoc/interfaces/HttpService.html +0 -38
  201. package/docs/static/typedoc/interfaces/LogService.html +0 -12
  202. package/docs/static/typedoc/interfaces/NgModelController.html +0 -30
  203. package/docs/static/typedoc/interfaces/NgModelOptions.html +0 -16
  204. package/docs/static/typedoc/interfaces/Provider.html +0 -34
  205. package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
  206. package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
  207. package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
  208. package/docs/static/typedoc/interfaces/TemplateCache.html +0 -7
  209. package/docs/static/typedoc/interfaces/TranscludeFunctionObject.html +0 -8
  210. package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
  211. package/docs/static/typedoc/types/AnnotatedDirectiveFactory.html +0 -1
  212. package/docs/static/typedoc/types/AnnotatedFactory.html +0 -8
  213. package/docs/static/typedoc/types/CloneAttachFunction.html +0 -2
  214. package/docs/static/typedoc/types/ControllerConstructor.html +0 -2
  215. package/docs/static/typedoc/types/DirectiveCompileFn.html +0 -2
  216. package/docs/static/typedoc/types/DirectiveController.html +0 -2
  217. package/docs/static/typedoc/types/DirectiveFactory.html +0 -1
  218. package/docs/static/typedoc/types/DirectiveFactoryFn.html +0 -1
  219. package/docs/static/typedoc/types/DirectiveLinkFn.html +0 -2
  220. package/docs/static/typedoc/types/ExpandoStore.html +0 -2
  221. package/docs/static/typedoc/types/Expression.html +0 -6
  222. package/docs/static/typedoc/types/FilterFactory.html +0 -2
  223. package/docs/static/typedoc/types/FilterFn.html +0 -2
  224. package/docs/static/typedoc/types/HttpPromise.html +0 -1
  225. package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
  226. package/docs/static/typedoc/types/Injectable.html +0 -4
  227. package/docs/static/typedoc/types/InjectableClass.html +0 -1
  228. package/docs/static/typedoc/types/InjectableFactory.html +0 -1
  229. package/docs/static/typedoc/types/LogCall.html +0 -2
  230. package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
  231. package/docs/static/typedoc/types/OnChangesObject.html +0 -2
  232. package/docs/static/typedoc/types/SwapModeType.html +0 -2
  233. package/docs/static/typedoc/types/TController.html +0 -2
  234. package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
  235. package/docs/static/typedoc/variables/EventBus.html +0 -1
  236. package/docs/static/typedoc/variables/SwapMode.html +0 -11
  237. package/docs/static/version.js +0 -13
  238. package/docs/test-results/.last-run.json +0 -4
  239. package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
  240. package/eslint.config.js +0 -26
  241. package/images/android-chrome-192x192.png +0 -0
  242. package/images/android-chrome-512x512.png +0 -0
  243. package/images/apple-touch-icon.png +0 -0
  244. package/images/favicon-16x16.png +0 -0
  245. package/images/favicon-32x32.png +0 -0
  246. package/images/favicon.ico +0 -0
  247. package/images/site.webmanifest +0 -19
  248. package/index.html +0 -86
  249. package/legacy.d.ts +0 -2599
  250. package/playwright.config.ts +0 -81
  251. package/public/jasmine/boot0.js +0 -66
  252. package/public/jasmine/boot1.js +0 -134
  253. package/public/jasmine/jasmine-html.js +0 -970
  254. package/public/jasmine/jasmine.css +0 -323
  255. package/public/jasmine/jasmine.js +0 -11406
  256. package/public/public/README.md +0 -1
  257. package/public/public/circle.html +0 -1
  258. package/public/public/jasmine-helper.css +0 -9
  259. package/public/public/my_child_directive.html +0 -1
  260. package/public/public/my_directive.html +0 -1
  261. package/public/public/my_other_directive.html +0 -1
  262. package/public/public/test.html +0 -1
  263. package/rollup.config.js +0 -51
  264. package/src/angular.js +0 -293
  265. package/src/angular.spec.js +0 -1191
  266. package/src/animations/animate-cache.js +0 -80
  267. package/src/animations/animate-children-directive.js +0 -32
  268. package/src/animations/animate-children-directive.md +0 -80
  269. package/src/animations/animate-css-driver.js +0 -284
  270. package/src/animations/animate-css.html +0 -58
  271. package/src/animations/animate-css.js +0 -915
  272. package/src/animations/animate-css.md +0 -263
  273. package/src/animations/animate-js-driver.js +0 -60
  274. package/src/animations/animate-js.html +0 -47
  275. package/src/animations/animate-js.js +0 -371
  276. package/src/animations/animate-queue.js +0 -859
  277. package/src/animations/animate-runner.js +0 -193
  278. package/src/animations/animate-swap.js +0 -33
  279. package/src/animations/animate-swap.md +0 -88
  280. package/src/animations/animate.html +0 -19
  281. package/src/animations/animate.js +0 -546
  282. package/src/animations/animate.md +0 -933
  283. package/src/animations/animate.spec.js +0 -490
  284. package/src/animations/animation.js +0 -519
  285. package/src/animations/animations.test.js +0 -10
  286. package/src/animations/interface.ts +0 -19
  287. package/src/animations/raf-scheduler.html +0 -19
  288. package/src/animations/raf-scheduler.js +0 -92
  289. package/src/animations/raf-scheduler.spec.js +0 -98
  290. package/src/animations/shared.js +0 -341
  291. package/src/binding.html +0 -19
  292. package/src/binding.spec.js +0 -474
  293. package/src/binding.test.js +0 -10
  294. package/src/core/compile/attributes.js +0 -337
  295. package/src/core/compile/compile.html +0 -19
  296. package/src/core/compile/compile.js +0 -3270
  297. package/src/core/compile/compile.md +0 -1128
  298. package/src/core/compile/compile.spec.js +0 -15574
  299. package/src/core/compile/compile.test.js +0 -12
  300. package/src/core/controller/controller.html +0 -22
  301. package/src/core/controller/controller.js +0 -189
  302. package/src/core/controller/controller.spec.js +0 -334
  303. package/src/core/controller/controller.test.js +0 -12
  304. package/src/core/core.html +0 -20
  305. package/src/core/core.test.js +0 -12
  306. package/src/core/di/injector.html +0 -19
  307. package/src/core/di/injector.js +0 -307
  308. package/src/core/di/injector.md +0 -740
  309. package/src/core/di/injector.spec.js +0 -2310
  310. package/src/core/di/injector.test.js +0 -12
  311. package/src/core/di/internal-injector.js +0 -284
  312. package/src/core/di/ng-module.html +0 -19
  313. package/src/core/di/ng-module.js +0 -226
  314. package/src/core/di/ng-module.spec.js +0 -263
  315. package/src/core/di/ng-module.test.js +0 -12
  316. package/src/core/filter/filter.html +0 -19
  317. package/src/core/filter/filter.js +0 -55
  318. package/src/core/filter/filter.md +0 -132
  319. package/src/core/filter/filter.spec.js +0 -149
  320. package/src/core/filter/filter.test.js +0 -12
  321. package/src/core/interpolate/interpolate.html +0 -22
  322. package/src/core/interpolate/interpolate.js +0 -408
  323. package/src/core/interpolate/interpolate.spec.js +0 -601
  324. package/src/core/interpolate/interpolate.test.js +0 -12
  325. package/src/core/parse/ast/ast-node.ts +0 -81
  326. package/src/core/parse/ast/ast.html +0 -19
  327. package/src/core/parse/ast/ast.js +0 -574
  328. package/src/core/parse/ast/ast.spec.js +0 -1453
  329. package/src/core/parse/ast/ast.test.js +0 -10
  330. package/src/core/parse/ast-type.js +0 -23
  331. package/src/core/parse/interface.ts +0 -84
  332. package/src/core/parse/interpreter.js +0 -915
  333. package/src/core/parse/lexer/lexer.html +0 -19
  334. package/src/core/parse/lexer/lexer.js +0 -338
  335. package/src/core/parse/lexer/lexer.spec.js +0 -303
  336. package/src/core/parse/lexer/lexer.test.js +0 -10
  337. package/src/core/parse/lexer/token.ts +0 -22
  338. package/src/core/parse/parse.html +0 -19
  339. package/src/core/parse/parse.js +0 -337
  340. package/src/core/parse/parse.md +0 -57
  341. package/src/core/parse/parse.spec.js +0 -2107
  342. package/src/core/parse/parse.test.js +0 -10
  343. package/src/core/parse/parser/parser.html +0 -19
  344. package/src/core/parse/parser/parser.js +0 -64
  345. package/src/core/parse/parser/parser.spec.js +0 -8
  346. package/src/core/parse/parser/parser.test.js +0 -10
  347. package/src/core/prop.spec.js +0 -775
  348. package/src/core/root-element.spec.js +0 -14
  349. package/src/core/sanitize/interface.ts +0 -10
  350. package/src/core/sanitize/sanitize-uri.js +0 -75
  351. package/src/core/sanitize/sanitize-uri.spec.js +0 -249
  352. package/src/core/sanitize/sanitize-uri.test.js +0 -12
  353. package/src/core/sanitize/sanitize.html +0 -22
  354. package/src/core/scope/scope.html +0 -19
  355. package/src/core/scope/scope.js +0 -1249
  356. package/src/core/scope/scope.spec.js +0 -3000
  357. package/src/core/scope/scope.test.js +0 -12
  358. package/src/directive/aria/aria.html +0 -19
  359. package/src/directive/aria/aria.js +0 -382
  360. package/src/directive/aria/aria.md +0 -145
  361. package/src/directive/aria/aria.spec.js +0 -1241
  362. package/src/directive/aria/aria.test.js +0 -12
  363. package/src/directive/attrs/attrs.html +0 -19
  364. package/src/directive/attrs/attrs.js +0 -106
  365. package/src/directive/attrs/attrs.md +0 -224
  366. package/src/directive/attrs/attrs.spec.js +0 -71
  367. package/src/directive/attrs/attrs.test.js +0 -12
  368. package/src/directive/attrs/boolean.html +0 -19
  369. package/src/directive/attrs/boolean.spec.js +0 -137
  370. package/src/directive/attrs/boolean.test.js +0 -12
  371. package/src/directive/attrs/element-style.html +0 -22
  372. package/src/directive/attrs/element-style.spec.js +0 -85
  373. package/src/directive/attrs/element-style.test.js +0 -12
  374. package/src/directive/attrs/src.html +0 -19
  375. package/src/directive/attrs/src.spec.js +0 -163
  376. package/src/directive/attrs/src.test.js +0 -12
  377. package/src/directive/bind/bind-html.spec.js +0 -36
  378. package/src/directive/bind/bind.html +0 -20
  379. package/src/directive/bind/bind.js +0 -78
  380. package/src/directive/bind/bind.md +0 -142
  381. package/src/directive/bind/bind.spec.js +0 -314
  382. package/src/directive/bind/bind.test.js +0 -12
  383. package/src/directive/channel/channel.html +0 -19
  384. package/src/directive/channel/channel.js +0 -30
  385. package/src/directive/channel/channel.spec.js +0 -67
  386. package/src/directive/channel/channel.test.js +0 -10
  387. package/src/directive/class/class-test.html +0 -23
  388. package/src/directive/class/class.html +0 -19
  389. package/src/directive/class/class.js +0 -184
  390. package/src/directive/class/class.spec.js +0 -704
  391. package/src/directive/class/class.test.js +0 -12
  392. package/src/directive/cloak/cloak.html +0 -19
  393. package/src/directive/cloak/cloak.js +0 -11
  394. package/src/directive/cloak/cloak.spec.js +0 -44
  395. package/src/directive/cloak/cloak.test.js +0 -12
  396. package/src/directive/controller/controller.html +0 -22
  397. package/src/directive/controller/controller.js +0 -11
  398. package/src/directive/controller/controller.md +0 -46
  399. package/src/directive/controller/controller.spec.js +0 -175
  400. package/src/directive/controller/controller.test.js +0 -12
  401. package/src/directive/events/click.spec.js +0 -35
  402. package/src/directive/events/event.spec.js +0 -267
  403. package/src/directive/events/events-test.html +0 -36
  404. package/src/directive/events/events.html +0 -20
  405. package/src/directive/events/events.js +0 -65
  406. package/src/directive/events/events.md +0 -125
  407. package/src/directive/events/events.test.js +0 -12
  408. package/src/directive/form/form.html +0 -19
  409. package/src/directive/form/form.js +0 -669
  410. package/src/directive/form/form.spec.js +0 -1515
  411. package/src/directive/form/form.test.js +0 -12
  412. package/src/directive/http/delete.spec.js +0 -26
  413. package/src/directive/http/form-router-test.html +0 -44
  414. package/src/directive/http/form-test.html +0 -18
  415. package/src/directive/http/get.spec.js +0 -488
  416. package/src/directive/http/http.html +0 -22
  417. package/src/directive/http/http.js +0 -342
  418. package/src/directive/http/http.test.js +0 -12
  419. package/src/directive/http/post-example.html +0 -30
  420. package/src/directive/http/post.spec.js +0 -521
  421. package/src/directive/http/put.spec.js +0 -26
  422. package/src/directive/if/if-animate-css.html +0 -57
  423. package/src/directive/if/if-animate-svg.html +0 -25
  424. package/src/directive/if/if.html +0 -19
  425. package/src/directive/if/if.js +0 -72
  426. package/src/directive/if/if.md +0 -76
  427. package/src/directive/if/if.spec.js +0 -293
  428. package/src/directive/if/if.test.js +0 -114
  429. package/src/directive/include/include.html +0 -19
  430. package/src/directive/include/include.js +0 -151
  431. package/src/directive/include/include.md +0 -87
  432. package/src/directive/include/include.spec.js +0 -734
  433. package/src/directive/include/include.test.js +0 -12
  434. package/src/directive/init/init.html +0 -19
  435. package/src/directive/init/init.js +0 -22
  436. package/src/directive/init/init.md +0 -41
  437. package/src/directive/init/init.spec.js +0 -68
  438. package/src/directive/init/init.test.js +0 -12
  439. package/src/directive/input/input-example.html +0 -15
  440. package/src/directive/input/input.html +0 -19
  441. package/src/directive/input/input.js +0 -1078
  442. package/src/directive/input/input.md +0 -706
  443. package/src/directive/input/input.spec.js +0 -3700
  444. package/src/directive/input/input.test.js +0 -12
  445. package/src/directive/messages/messages.html +0 -22
  446. package/src/directive/messages/messages.js +0 -349
  447. package/src/directive/messages/messages.md +0 -543
  448. package/src/directive/messages/messages.spec.js +0 -1083
  449. package/src/directive/messages/messages.test.js +0 -12
  450. package/src/directive/model/change.md +0 -25
  451. package/src/directive/model/model.html +0 -19
  452. package/src/directive/model/model.js +0 -1170
  453. package/src/directive/model/model.spec.js +0 -1976
  454. package/src/directive/model/model.test.js +0 -12
  455. package/src/directive/model-options/model-option.test.js +0 -12
  456. package/src/directive/model-options/model-options.html +0 -22
  457. package/src/directive/model-options/model-options.js +0 -142
  458. package/src/directive/model-options/model-options.md +0 -407
  459. package/src/directive/model-options/model-options.spec.js +0 -1022
  460. package/src/directive/non-bindable/non-bindable.html +0 -22
  461. package/src/directive/non-bindable/non-bindable.js +0 -9
  462. package/src/directive/non-bindable/non-bindable.spec.js +0 -59
  463. package/src/directive/non-bindable/non-bindable.test.js +0 -12
  464. package/src/directive/observe/observe-demo.html +0 -184
  465. package/src/directive/observe/observe.html +0 -19
  466. package/src/directive/observe/observe.js +0 -41
  467. package/src/directive/observe/observe.spec.js +0 -106
  468. package/src/directive/observe/observe.test.js +0 -10
  469. package/src/directive/on/on.html +0 -19
  470. package/src/directive/on/on.spec.js +0 -215
  471. package/src/directive/on/on.test.js +0 -12
  472. package/src/directive/options/options-example.html +0 -17
  473. package/src/directive/options/options.html +0 -22
  474. package/src/directive/options/options.js +0 -542
  475. package/src/directive/options/options.md +0 -179
  476. package/src/directive/options/options.spec.js +0 -3554
  477. package/src/directive/options/options.test.js +0 -12
  478. package/src/directive/ref/href.html +0 -19
  479. package/src/directive/ref/href.spec.js +0 -141
  480. package/src/directive/ref/href.test.js +0 -19
  481. package/src/directive/ref/ref.html +0 -19
  482. package/src/directive/ref/ref.js +0 -89
  483. package/src/directive/ref/ref.spec.js +0 -546
  484. package/src/directive/repeat/repeat.html +0 -19
  485. package/src/directive/repeat/repeat.js +0 -333
  486. package/src/directive/repeat/repeat.md +0 -330
  487. package/src/directive/repeat/repeat.spec.js +0 -1209
  488. package/src/directive/repeat/repeat.test.js +0 -12
  489. package/src/directive/script/script.html +0 -19
  490. package/src/directive/script/script.js +0 -17
  491. package/src/directive/script/script.md +0 -11
  492. package/src/directive/script/script.spec.js +0 -47
  493. package/src/directive/script/script.test.js +0 -12
  494. package/src/directive/select/select.html +0 -19
  495. package/src/directive/select/select.js +0 -594
  496. package/src/directive/select/select.md +0 -74
  497. package/src/directive/select/select.spec.js +0 -2566
  498. package/src/directive/select/select.test.js +0 -12
  499. package/src/directive/setter/setter.html +0 -19
  500. package/src/directive/setter/setter.js +0 -59
  501. package/src/directive/setter/setter.spec.js +0 -100
  502. package/src/directive/setter/setter.test.js +0 -12
  503. package/src/directive/show-hide/show-hide.html +0 -22
  504. package/src/directive/show-hide/show-hide.js +0 -65
  505. package/src/directive/show-hide/show-hide.md +0 -255
  506. package/src/directive/show-hide/show-hide.spec.js +0 -268
  507. package/src/directive/show-hide/show-hide.test.js +0 -12
  508. package/src/directive/style/style.html +0 -19
  509. package/src/directive/style/style.js +0 -27
  510. package/src/directive/style/style.md +0 -23
  511. package/src/directive/style/style.spec.js +0 -183
  512. package/src/directive/style/style.test.js +0 -12
  513. package/src/directive/switch/switch.html +0 -19
  514. package/src/directive/switch/switch.js +0 -133
  515. package/src/directive/switch/switch.md +0 -66
  516. package/src/directive/switch/switch.spec.js +0 -509
  517. package/src/directive/switch/switch.test.js +0 -12
  518. package/src/directive/transclude/transclude.js +0 -122
  519. package/src/directive/validators/validators.html +0 -22
  520. package/src/directive/validators/validators.js +0 -346
  521. package/src/directive/validators/validators.spec.js +0 -740
  522. package/src/directive/validators/validators.test.js +0 -12
  523. package/src/filters/filter.js +0 -213
  524. package/src/filters/filter.md +0 -69
  525. package/src/filters/filter.spec.js +0 -719
  526. package/src/filters/filters.html +0 -22
  527. package/src/filters/filters.js +0 -239
  528. package/src/filters/filters.spec.js +0 -36
  529. package/src/filters/filters.test.js +0 -12
  530. package/src/filters/json.md +0 -16
  531. package/src/filters/limit-to.js +0 -55
  532. package/src/filters/limit-to.md +0 -19
  533. package/src/filters/limit-to.spec.js +0 -252
  534. package/src/filters/order-by.js +0 -181
  535. package/src/filters/order-by.md +0 -83
  536. package/src/filters/order-by.spec.js +0 -883
  537. package/src/index.js +0 -6
  538. package/src/index.spec.js +0 -11
  539. package/src/injection-tokens.js +0 -78
  540. package/src/interface.ts +0 -421
  541. package/src/ng.js +0 -289
  542. package/src/ng.spec.js +0 -33
  543. package/src/router/common/trace.js +0 -240
  544. package/src/router/directives/component-example.html +0 -37
  545. package/src/router/directives/state-directives.html +0 -22
  546. package/src/router/directives/state-directives.js +0 -393
  547. package/src/router/directives/state-directives.md +0 -435
  548. package/src/router/directives/state-directives.spec.js +0 -1091
  549. package/src/router/directives/state-directives.test.js +0 -10
  550. package/src/router/directives/view-directive.js +0 -489
  551. package/src/router/directives/view-directive.spec.js +0 -1937
  552. package/src/router/directives/view-directive.test.js +0 -10
  553. package/src/router/directives/view-directives.html +0 -22
  554. package/src/router/glob/glob.html +0 -19
  555. package/src/router/glob/glob.js +0 -102
  556. package/src/router/glob/glob.spec.js +0 -108
  557. package/src/router/glob/glob.test.js +0 -12
  558. package/src/router/hooks/core-resolvables.js +0 -38
  559. package/src/router/hooks/ignored-transition.js +0 -25
  560. package/src/router/hooks/invalid-transition.js +0 -14
  561. package/src/router/hooks/lazy-load.js +0 -104
  562. package/src/router/hooks/on-enter-exit-retain.js +0 -55
  563. package/src/router/hooks/redirect-to.js +0 -38
  564. package/src/router/hooks/resolve.js +0 -57
  565. package/src/router/hooks/update-globals.js +0 -34
  566. package/src/router/hooks/url.js +0 -34
  567. package/src/router/hooks/views.js +0 -41
  568. package/src/router/params/interface.ts +0 -626
  569. package/src/router/params/param-factory.js +0 -23
  570. package/src/router/params/param-type.js +0 -133
  571. package/src/router/params/param-types.js +0 -153
  572. package/src/router/params/param.js +0 -243
  573. package/src/router/params/state-params.js +0 -36
  574. package/src/router/path/path-node.js +0 -78
  575. package/src/router/path/path-utils.js +0 -207
  576. package/src/router/resolve/interface.ts +0 -208
  577. package/src/router/resolve/resolvable.js +0 -123
  578. package/src/router/resolve/resolve-context.js +0 -190
  579. package/src/router/router-test-hashbang.html +0 -45
  580. package/src/router/router-test.html +0 -41
  581. package/src/router/router.html +0 -22
  582. package/src/router/router.js +0 -54
  583. package/src/router/router.test.js +0 -12
  584. package/src/router/services.spec.js +0 -52
  585. package/src/router/state/README.md +0 -21
  586. package/src/router/state/interface.ts +0 -1007
  587. package/src/router/state/state-builder.js +0 -376
  588. package/src/router/state/state-builder.spec.js +0 -86
  589. package/src/router/state/state-matcher.js +0 -64
  590. package/src/router/state/state-object.js +0 -118
  591. package/src/router/state/state-queue-manager.js +0 -95
  592. package/src/router/state/state-registry.js +0 -257
  593. package/src/router/state/state-service.js +0 -699
  594. package/src/router/state/state.html +0 -23
  595. package/src/router/state/state.spec.js +0 -1002
  596. package/src/router/state/state.test.js +0 -12
  597. package/src/router/state/target-state.js +0 -162
  598. package/src/router/state/views.js +0 -195
  599. package/src/router/state-filter.spec.js +0 -139
  600. package/src/router/state-filters.js +0 -46
  601. package/src/router/template-factory.html +0 -19
  602. package/src/router/template-factory.js +0 -249
  603. package/src/router/template-factory.spec.js +0 -155
  604. package/src/router/template-factory.test.js +0 -12
  605. package/src/router/transition/hook-builder.js +0 -133
  606. package/src/router/transition/hook-registry.js +0 -172
  607. package/src/router/transition/interface.js +0 -18
  608. package/src/router/transition/interface.ts +0 -922
  609. package/src/router/transition/reject-factory.js +0 -122
  610. package/src/router/transition/transition-event-type.js +0 -26
  611. package/src/router/transition/transition-hook.js +0 -199
  612. package/src/router/transition/transition-service.js +0 -302
  613. package/src/router/transition/transition.js +0 -652
  614. package/src/router/url/url-config.js +0 -155
  615. package/src/router/url/url-matcher.js +0 -532
  616. package/src/router/url/url-rule.js +0 -231
  617. package/src/router/url/url-rules.js +0 -350
  618. package/src/router/url/url-service.js +0 -446
  619. package/src/router/url/url-service.spec.js +0 -1288
  620. package/src/router/url/url.html +0 -19
  621. package/src/router/url/url.test.js +0 -12
  622. package/src/router/view/interface.ts +0 -51
  623. package/src/router/view/view.html +0 -19
  624. package/src/router/view/view.js +0 -274
  625. package/src/router/view/view.spec.js +0 -100
  626. package/src/router/view/view.test.js +0 -12
  627. package/src/router/view-hook.spec.js +0 -215
  628. package/src/router/view-scroll.js +0 -33
  629. package/src/router/view-scroll.spec.js +0 -72
  630. package/src/services/anchor-scroll.html +0 -76
  631. package/src/services/anchor-scroll.js +0 -147
  632. package/src/services/cookie-reader.js +0 -48
  633. package/src/services/exception/exception-handler.js +0 -75
  634. package/src/services/exception/interface.ts +0 -7
  635. package/src/services/http/http.html +0 -23
  636. package/src/services/http/http.js +0 -922
  637. package/src/services/http/http.md +0 -413
  638. package/src/services/http/http.spec.js +0 -3941
  639. package/src/services/http/http.test.js +0 -11
  640. package/src/services/http/interface.ts +0 -243
  641. package/src/services/http/template-request.spec.js +0 -220
  642. package/src/services/http-backend/http-backend.html +0 -22
  643. package/src/services/http-backend/http-backend.js +0 -158
  644. package/src/services/http-backend/http-backend.spec.js +0 -389
  645. package/src/services/http-backend/http-backend.test.js +0 -12
  646. package/src/services/location/interface.ts +0 -70
  647. package/src/services/location/location.html +0 -22
  648. package/src/services/location/location.js +0 -1006
  649. package/src/services/location/location.spec.js +0 -3792
  650. package/src/services/location/location.test.js +0 -12
  651. package/src/services/log/interface.ts +0 -39
  652. package/src/services/log/log.html +0 -19
  653. package/src/services/log/log.js +0 -74
  654. package/src/services/log/log.spec.js +0 -64
  655. package/src/services/log/log.test.js +0 -12
  656. package/src/services/pubsub/pubsub.html +0 -19
  657. package/src/services/pubsub/pubsub.js +0 -349
  658. package/src/services/pubsub/pubsub.spec.js +0 -400
  659. package/src/services/pubsub/pubsub.test.js +0 -12
  660. package/src/services/sce/sce.html +0 -19
  661. package/src/services/sce/sce.js +0 -847
  662. package/src/services/sce/sce.md +0 -300
  663. package/src/services/sce/sce.spec.js +0 -617
  664. package/src/services/sce/sce.test.js +0 -12
  665. package/src/services/template-cache/interface.ts +0 -10
  666. package/src/services/template-cache/template-cache.html +0 -22
  667. package/src/services/template-cache/template-cache.js +0 -15
  668. package/src/services/template-cache/template-cache.spec.js +0 -134
  669. package/src/services/template-cache/template-cache.test.js +0 -12
  670. package/src/services/template-request.js +0 -142
  671. package/src/shared/cache.js +0 -7
  672. package/src/shared/common.js +0 -438
  673. package/src/shared/common.spec.js +0 -294
  674. package/src/shared/constants.js +0 -21
  675. package/src/shared/dom.js +0 -716
  676. package/src/shared/hof.js +0 -151
  677. package/src/shared/hof.spec.js +0 -60
  678. package/src/shared/interface.ts +0 -21
  679. package/src/shared/min-err.spec.js +0 -178
  680. package/src/shared/noderef.js +0 -225
  681. package/src/shared/predicates.js +0 -34
  682. package/src/shared/queue.js +0 -105
  683. package/src/shared/queue.spec.js +0 -80
  684. package/src/shared/shared.html +0 -24
  685. package/src/shared/shared.test.js +0 -12
  686. package/src/shared/strings.js +0 -142
  687. package/src/shared/strings.spec.js +0 -40
  688. package/src/shared/test-utils.js +0 -47
  689. package/src/shared/url-utils/interface.ts +0 -54
  690. package/src/shared/url-utils/url-utils.html +0 -22
  691. package/src/shared/url-utils/url-utils.js +0 -122
  692. package/src/shared/url-utils/url-utils.spec.js +0 -148
  693. package/src/shared/url-utils/url-utils.test.js +0 -12
  694. package/src/shared/utils.js +0 -1255
  695. package/src/shared/utils.spec.js +0 -178
  696. package/src/src.html +0 -21
  697. package/src/src.test.js +0 -10
  698. package/tsconfig.json +0 -19
  699. package/tsconfig.types.json +0 -14
  700. package/typedoc.json +0 -8
  701. package/utils/express.js +0 -203
  702. package/utils/version.cjs +0 -23
  703. package/vite.config.js +0 -14
@@ -1,231 +0,0 @@
1
- import { UrlMatcher } from "./url-matcher.js";
2
- import {
3
- isString,
4
- isFunction,
5
- isDefined,
6
- isUndefined,
7
- assert,
8
- } from "../../shared/utils.js";
9
- import { is, pattern } from "../../shared/hof.js";
10
- import { StateObject } from "../state/state-object.js";
11
- /**
12
- * Creates a [[UrlRule]]
13
- *
14
- * Creates a [[UrlRule]] from a:
15
- *
16
- * - `string`
17
- * - [[UrlMatcher]]
18
- * - `RegExp`
19
- * - [[StateObject]]
20
- */
21
- export class UrlRuleFactory {
22
- /**
23
- * @param {import('../url/url-service.js').UrlService} urlService
24
- * @param {import('../state/state-service.js').StateProvider} stateService
25
- * @param {import('../router.js').Router} routerGlobals
26
- */
27
- constructor(urlService, stateService, routerGlobals) {
28
- this.urlService = urlService;
29
- this.stateService = stateService;
30
- this.routerGlobals = routerGlobals;
31
- }
32
-
33
- /**
34
- *
35
- * @param {*} what
36
- * @param {*} handler
37
- * @returns {BaseUrlRule}
38
- */
39
- create(what, handler) {
40
- const { isState, isStateDeclaration } = StateObject;
41
- const makeRule = pattern([
42
- [isString, (_what) => makeRule(this.urlService.compile(_what))],
43
- [is(UrlMatcher), (_what) => this.fromUrlMatcher(_what, handler)],
44
- [
45
- (...args) => isState(...args) || isStateDeclaration(...args),
46
- (_what) => this.fromState(_what, this.stateService, this.routerGlobals),
47
- ],
48
- [is(RegExp), (_what) => this.fromRegExp(_what, handler)],
49
- [isFunction, (_what) => new BaseUrlRule(_what, handler)],
50
- ]);
51
- const rule = makeRule(what);
52
- if (!rule) throw new Error("invalid 'what' in when()");
53
- return rule;
54
- }
55
- /**
56
- * A UrlRule which matches based on a UrlMatcher
57
- *
58
- * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]
59
- *
60
- * ## Handler as a function
61
- *
62
- * If `handler` is a function, the function is invoked with:
63
- *
64
- * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])
65
- * - url: the current Url ([[UrlParts]])
66
- * - router: the router object ([[UIRouter]])
67
- *
68
- * #### Example:
69
- * ```js
70
- * var urlMatcher = $umf.compile("/foo/:fooId/:barId");
71
- * var rule = factory.fromUrlMatcher(urlMatcher, match => "/home/" + match.fooId + "/" + match.barId);
72
- * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
73
- * var result = rule.handler(match); // '/home/123/456'
74
- * ```
75
- *
76
- * ## Handler as UrlMatcher
77
- *
78
- * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.
79
- * The `handler` UrlMatcher is formatted using the matched param from the first matcher.
80
- * The url is replaced with the result.
81
- *
82
- * #### Example:
83
- * ```js
84
- * var urlMatcher = $umf.compile("/foo/:fooId/:barId");
85
- * var handler = $umf.compile("/home/:fooId/:barId");
86
- * var rule = factory.fromUrlMatcher(urlMatcher, handler);
87
- * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
88
- * var result = rule.handler(match); // '/home/123/456'
89
- * ```
90
- */
91
- fromUrlMatcher(urlMatcher, handler) {
92
- let _handler = handler;
93
- if (isString(handler)) handler = this.urlService.compile(handler);
94
- if (is(UrlMatcher)(handler)) _handler = (match) => handler.format(match);
95
- function matchUrlParamters(url) {
96
- const params = urlMatcher.exec(url.path, url.search, url.hash);
97
- return urlMatcher.validates(params) && params;
98
- }
99
- // Prioritize URLs, lowest to highest:
100
- // - Some optional URL parameters, but none matched
101
- // - No optional parameters in URL
102
- // - Some optional parameters, some matched
103
- // - Some optional parameters, all matched
104
- function matchPriority(params) {
105
- const optional = urlMatcher
106
- .parameters()
107
- .filter((param) => param.isOptional);
108
- if (!optional.length) return 0.000001;
109
- const matched = optional.filter((param) => params[param.id]);
110
- return matched.length / optional.length;
111
- }
112
- const details = { urlMatcher, matchPriority, type: "URLMATCHER" };
113
- return Object.assign(new BaseUrlRule(matchUrlParamters, _handler), details);
114
- }
115
- /**
116
- * A UrlRule which matches a state by its url
117
- *
118
- * #### Example:
119
- * ```js
120
- * var rule = factory.fromState($state.get('foo'), router);
121
- * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }
122
- * var result = rule.handler(match);
123
- * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }
124
- * ```
125
- */
126
- fromState(stateOrDecl, stateService, globals) {
127
- const state = StateObject.isStateDeclaration(stateOrDecl)
128
- ? stateOrDecl.$$state()
129
- : stateOrDecl;
130
- /**
131
- * Handles match by transitioning to matched state
132
- *
133
- * First checks if the router should start a new transition.
134
- * A new transition is not required if the current state's URL
135
- * and the new URL are already identical
136
- */
137
- const handler = (match) => {
138
- const $state = stateService;
139
- if (
140
- $state.href(state, match) !==
141
- $state.href(globals.current, globals.params)
142
- ) {
143
- $state.transitionTo(state, match, { inherit: true, source: "url" });
144
- }
145
- };
146
- const details = { state, type: "STATE" };
147
- return Object.assign(this.fromUrlMatcher(state.url, handler), details);
148
- }
149
- /**
150
- * A UrlRule which matches based on a regular expression
151
- *
152
- * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.
153
- *
154
- * ## Handler as a function
155
- *
156
- * If `handler` is a function, the function is invoked with:
157
- *
158
- * - regexp match array (from `regexp`)
159
- * - url: the current Url ([[UrlParts]])
160
- * - router: the router object ([[UIRouter]])
161
- *
162
- * #### Example:
163
- * ```js
164
- * var rule = factory.fromRegExp(/^\/foo\/(bar|baz)$/, match => "/home/" + match[1])
165
- * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]
166
- * var result = rule.handler(match); // '/home/bar'
167
- * ```
168
- *
169
- * ## Handler as string
170
- *
171
- * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.
172
- * The string is first interpolated using `string.replace()` style pattern.
173
- *
174
- * #### Example:
175
- * ```js
176
- * var rule = factory.fromRegExp(/^\/foo\/(bar|baz)$/, "/home/$1")
177
- * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]
178
- * var result = rule.handler(match); // '/home/bar'
179
- * ```
180
- */
181
- fromRegExp(regexp, handler) {
182
- if (regexp.global || regexp.sticky)
183
- throw new Error("Rule RegExp must not be global or sticky");
184
- /**
185
- * If handler is a string, the url will be replaced by the string.
186
- * If the string has any String.replace() style variables in it (like `$2`),
187
- * they will be replaced by the captures from [[match]]
188
- */
189
- const redirectUrlTo = (match) =>
190
- // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern
191
- handler.replace(
192
- /\$(\$|\d{1,2})/,
193
- (m, what) => match[what === "$" ? 0 : Number(what)],
194
- );
195
- const _handler = isString(handler) ? redirectUrlTo : handler;
196
- const matchParamsFromRegexp = (url) => regexp.exec(url.path);
197
- const details = { regexp, type: "REGEXP" };
198
- return Object.assign(
199
- new BaseUrlRule(matchParamsFromRegexp, _handler),
200
- details,
201
- );
202
- }
203
- }
204
- UrlRuleFactory.isUrlRule = (obj) =>
205
- obj && ["type", "match", "handler"].every((key) => isDefined(obj[key]));
206
-
207
- /**
208
- * A base rule which calls `match`
209
- *
210
- * The value from the `match` function is passed through to the `handler`.
211
- */
212
- export class BaseUrlRule {
213
- constructor(match, handler) {
214
- this.match = match;
215
- this.type = "RAW";
216
- this.$id = -1;
217
- this._group = undefined;
218
- this.handler = handler || ((x) => x);
219
- this.priority = undefined;
220
- }
221
-
222
- /**
223
- * This function should be overridden
224
- * @param {*} [params]
225
- * @returns {number}
226
- */
227
- matchPriority(params) {
228
- assert(isUndefined(params));
229
- return 0 - this.$id;
230
- }
231
- }
@@ -1,350 +0,0 @@
1
- import { TargetState } from "../state/target-state.js";
2
- import { UrlMatcher } from "./url-matcher.js";
3
- import { is, val } from "../../shared/hof.js";
4
- import { isDefined, isFunction, isString } from "../../shared/utils.js";
5
- import { removeFrom } from "../../shared/common.js";
6
- import { UrlRuleFactory } from "./url-rule.js";
7
-
8
- function prioritySort(a, b) {
9
- return (b.priority || 0) - (a.priority || 0);
10
- }
11
-
12
- const typeSort = (a, b) => {
13
- const weights = { STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1 };
14
- return (weights[a.type] || 0) - (weights[b.type] || 0);
15
- };
16
-
17
- const urlMatcherSort = (a, b) =>
18
- !a.urlMatcher || !b.urlMatcher
19
- ? 0
20
- : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);
21
-
22
- const idSort = (a, b) => {
23
- // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL
24
- const useMatchPriority = { STATE: true, URLMATCHER: true };
25
- const equal = useMatchPriority[a.type] && useMatchPriority[b.type];
26
- return equal ? 0 : (a.$id || 0) - (b.$id || 0);
27
- };
28
-
29
- /**
30
- * Default rule priority sorting function.
31
- *
32
- * Sorts rules by:
33
- *
34
- * - Explicit priority (set rule priority using [[UrlRules.when]])
35
- * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)
36
- * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.
37
- * - Rule registration order (for rule types other than STATE and URLMATCHER)
38
- * - Equally sorted State and UrlMatcher rules will each match the URL.
39
- * Then, the *best* match is chosen based on how many parameter values were matched.
40
- */
41
- function defaultRuleSortFn(a, b) {
42
- let cmp = prioritySort(a, b);
43
- if (cmp !== 0) return cmp;
44
- cmp = typeSort(a, b);
45
- if (cmp !== 0) return cmp;
46
- cmp = urlMatcherSort(a, b);
47
- if (cmp !== 0) return cmp;
48
- return idSort(a, b);
49
- }
50
-
51
- function getHandlerFn(handler) {
52
- if (
53
- !isFunction(handler) &&
54
- !isString(handler) &&
55
- !is(TargetState)(handler) &&
56
- !TargetState.isDef(handler)
57
- ) {
58
- throw new Error(
59
- "'handler' must be a string, function, TargetState, or have a state: 'newtarget' property",
60
- );
61
- }
62
- return isFunction(handler) ? handler : val(handler);
63
- }
64
- /**
65
- * API for managing URL rules
66
- *
67
- * This API is used to create and manage URL rules.
68
- * URL rules are a mechanism to respond to specific URL patterns.
69
- *
70
- * The most commonly used methods are [[otherwise]] and [[when]].
71
- *
72
- * This API is found at `$url.rules` (see: [[UIRouter.urlService]], [[URLService.rules]])
73
- */
74
- export class UrlRules {
75
- /** @param {UrlRuleFactory} urlRuleFactory */
76
- constructor(urlRuleFactory) {
77
- this._sortFn = defaultRuleSortFn;
78
- this._rules = [];
79
- this._id = 0;
80
- this.urlRuleFactory = urlRuleFactory;
81
- }
82
-
83
- /**
84
- * Defines the initial state, path, or behavior to use when the app starts.
85
- *
86
- * This rule defines the initial/starting state for the application.
87
- *
88
- * This rule is triggered the first time the URL is checked (when the app initially loads).
89
- * The rule is triggered only when the url matches either `""` or `"/"`.
90
- *
91
- * Note: The rule is intended to be used when the root of the application is directly linked to.
92
- * When the URL is *not* `""` or `"/"` and doesn't match other rules, the [[otherwise]] rule is triggered.
93
- * This allows 404-like behavior when an unknown URL is deep-linked.
94
- *
95
- * #### Example:
96
- * Start app at `home` state.
97
- * ```js
98
- * .initial({ state: 'home' });
99
- * ```
100
- *
101
- * #### Example:
102
- * Start app at `/home` (by url)
103
- * ```js
104
- * .initial('/home');
105
- * ```
106
- *
107
- * #### Example:
108
- * When no other url rule matches, go to `home` state
109
- * ```js
110
- * .initial((matchValue, url, router) => {
111
- * console.log('initial state');
112
- * return { state: 'home' };
113
- * })
114
- * ```
115
- *
116
- * @param handler The initial state or url path, or a function which returns the state or url path (or performs custom logic).
117
- */
118
- initial(handler) {
119
- const handlerFn = getHandlerFn(handler);
120
- const matchFn = (urlParts, router) =>
121
- router.globals.transitionHistory.size() === 0 &&
122
- !!/^\/?$/.exec(urlParts.path);
123
- this.rule(this.urlRuleFactory.create(matchFn, handlerFn));
124
- }
125
- /**
126
- * Defines the state, url, or behavior to use when no other rule matches the URL.
127
- *
128
- * This rule is matched when *no other rule* matches.
129
- * It is generally used to handle unknown URLs (similar to "404" behavior, but on the client side).
130
- *
131
- * - If `handler` a string, it is treated as a url redirect
132
- *
133
- * #### Example:
134
- * When no other url rule matches, redirect to `/index`
135
- * ```js
136
- * .otherwise('/index');
137
- * ```
138
- *
139
- * - If `handler` is an object with a `state` property, the state is activated.
140
- *
141
- * #### Example:
142
- * When no other url rule matches, redirect to `home` and provide a `dashboard` parameter value.
143
- * ```js
144
- * .otherwise({ state: 'home', params: { dashboard: 'default' } });
145
- * ```
146
- *
147
- * - If `handler` is a function, the function receives the current url ([[UrlParts]]) and the [[UIRouter]] object.
148
- * The function can perform actions, and/or return a value.
149
- *
150
- * #### Example:
151
- * When no other url rule matches, manually trigger a transition to the `home` state
152
- * ```js
153
- * .otherwise((matchValue, urlParts, router) => {
154
- * router.stateService.go('home');
155
- * });
156
- * ```
157
- *
158
- * #### Example:
159
- * When no other url rule matches, go to `home` state
160
- * ```js
161
- * .otherwise((matchValue, urlParts, router) => {
162
- * return { state: 'home' };
163
- * });
164
- * ```
165
- *
166
- * @param handler The url path to redirect to, or a function which returns the url path (or performs custom logic).
167
- */
168
- otherwise(handler) {
169
- const handlerFn = getHandlerFn(handler);
170
- this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);
171
- this._sorted = false;
172
- }
173
- /**
174
- * Remove a rule previously registered
175
- *
176
- * @param rule the matcher rule that was previously registered using [[rule]]
177
- */
178
- removeRule(rule) {
179
- removeFrom(this._rules, rule);
180
- }
181
- /**
182
- * Manually adds a URL Rule.
183
- *
184
- * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].
185
- * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).
186
- * Rules can be created using [[urlRuleFactory]], or created manually as simple objects.
187
- *
188
- * A rule should have a `match` function which returns truthy if the rule matched.
189
- * It should also have a `handler` function which is invoked if the rule is the best match.
190
- *
191
- * @return a function that deregisters the rule
192
- */
193
- rule(rule) {
194
- if (!UrlRuleFactory.isUrlRule(rule)) throw new Error("invalid rule");
195
- rule.$id = this._id++;
196
- rule.priority = rule.priority || 0;
197
- this._rules.push(rule);
198
- this._sorted = false;
199
- return () => this.removeRule(rule);
200
- }
201
- /**
202
- * Gets all registered rules
203
- *
204
- * @returns an array of all the registered rules
205
- */
206
- rules() {
207
- this.ensureSorted();
208
- return this._rules.concat(this._otherwiseFn ? [this._otherwiseFn] : []);
209
- }
210
- /**
211
- * Defines URL Rule priorities
212
- *
213
- * More than one rule ([[UrlRule]]) might match a given URL.
214
- * This `compareFn` is used to sort the rules by priority.
215
- * Higher priority rules should sort earlier.
216
- *
217
- * The [[defaultRuleSortFn]] is used by default.
218
- *
219
- * You only need to call this function once.
220
- * The `compareFn` will be used to sort the rules as each is registered.
221
- *
222
- * If called without any parameter, it will re-sort the rules.
223
- *
224
- * ---
225
- *
226
- * Url rules may come from multiple sources: states's urls ([[StateDeclaration.url]]), [[when]], and [[rule]].
227
- * Each rule has a (user-provided) [[UrlRule.priority]], a [[UrlRule.type]], and a [[UrlRule.$id]]
228
- * The `$id` is is the order in which the rule was registered.
229
- *
230
- * The sort function should use these data, or data found on a specific type
231
- * of [[UrlRule]] (such as [[StateRule.state]]), to order the rules as desired.
232
- *
233
- * #### Example:
234
- * This compare function prioritizes rules by the order in which the rules were registered.
235
- * A rule registered earlier has higher priority.
236
- *
237
- * ```js
238
- * function compareFn(a, b) {
239
- * return a.$id - b.$id;
240
- * }
241
- * ```
242
- *
243
- * @param compareFn a function that compares to [[UrlRule]] objects.
244
- * The `compareFn` should abide by the `Array.sort` compare function rules.
245
- * Given two rules, `a` and `b`, return a negative number if `a` should be higher priority.
246
- * Return a positive number if `b` should be higher priority.
247
- * Return `0` if the rules are identical.
248
- *
249
- * See the [mozilla reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Description)
250
- * for details.
251
- */
252
- sort(compareFn) {
253
- const sorted = this.stableSort(
254
- this._rules,
255
- (this._sortFn = compareFn || this._sortFn),
256
- );
257
- // precompute _sortGroup values and apply to each rule
258
- let group = 0;
259
- for (let i = 0; i < sorted.length; i++) {
260
- sorted[i]._group = group;
261
- if (
262
- i < sorted.length - 1 &&
263
- this._sortFn(sorted[i], sorted[i + 1]) !== 0
264
- ) {
265
- group++;
266
- }
267
- }
268
- this._rules = sorted;
269
- this._sorted = true;
270
- }
271
-
272
- ensureSorted() {
273
- this._sorted || this.sort();
274
- }
275
-
276
- stableSort(arr, compareFn) {
277
- const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));
278
- arrOfWrapper.sort((wrapperA, wrapperB) => {
279
- const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);
280
- return cmpDiff === 0 ? wrapperA.idx - wrapperB.idx : cmpDiff;
281
- });
282
- return arrOfWrapper.map((wrapper) => wrapper.elem);
283
- }
284
- /**
285
- * Registers a `matcher` and `handler` for custom URLs handling.
286
- *
287
- * The `matcher` can be:
288
- *
289
- * - a [[UrlMatcher]]: See: [[UrlMatcherFactory.compile]]
290
- * - a `string`: The string is compiled to a [[UrlMatcher]]
291
- * - a `RegExp`: The regexp is used to match the url.
292
- *
293
- * The `handler` can be:
294
- *
295
- * - a string: The url is redirected to the value of the string.
296
- * - a function: The url is redirected to the return value of the function.
297
- *
298
- * ---
299
- *
300
- * When the `handler` is a `string` and the `matcher` is a `UrlMatcher` (or string), the redirect
301
- * string is interpolated with parameter values.
302
- *
303
- * #### Example:
304
- * When the URL is `/foo/123` the rule will redirect to `/bar/123`.
305
- * ```js
306
- * .when("/foo/:param1", "/bar/:param1")
307
- * ```
308
- *
309
- * ---
310
- *
311
- * When the `handler` is a string and the `matcher` is a `RegExp`, the redirect string is
312
- * interpolated with capture groups from the RegExp.
313
- *
314
- * #### Example:
315
- * When the URL is `/foo/123` the rule will redirect to `/bar/123`.
316
- * ```js
317
- * .when(new RegExp("^/foo/(.*)$"), "/bar/$1");
318
- * ```
319
- *
320
- * ---
321
- *
322
- * When the handler is a function, it receives the matched value, the current URL, and the `UIRouter` object (See [[UrlRuleHandlerFn]]).
323
- * The "matched value" differs based on the `matcher`.
324
- * For [[UrlMatcher]]s, it will be the matched state params.
325
- * For `RegExp`, it will be the match array from `regexp.exec()`.
326
- *
327
- * If the handler returns a string, the URL is redirected to the string.
328
- *
329
- * #### Example:
330
- * When the URL is `/foo/123` the rule will redirect to `/bar/123`.
331
- * ```js
332
- * .when(new RegExp("^/foo/(.*)$"), match => "/bar/" + match[1]);
333
- * ```
334
- *
335
- * Note: the `handler` may also invoke arbitrary code, such as `$state.go()`
336
- *
337
- * @param matcher A pattern `string` to match, compiled as a [[UrlMatcher]], or a `RegExp`.
338
- * @param handler The path to redirect to, or a function that returns the path.
339
- * @param options `{ priority: number }`
340
- *
341
- * @return the registered [[UrlRule]]
342
- */
343
- when(matcher, handler, options) {
344
- const rule = this.urlRuleFactory.create(matcher, handler);
345
- if (isDefined(options && options.priority))
346
- rule.priority = options.priority;
347
- this.rule(rule);
348
- return rule;
349
- }
350
- }