@angular-wave/angular.ts 0.9.4 → 0.9.6
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.
- package/@types/index.d.ts +1 -84
- package/{src/index.ts → @types/namespace.d.ts} +4 -24
- package/@types/router/template-factory.d.ts +2 -2
- package/dist/angular-ts.esm.js +3 -3
- package/dist/angular-ts.umd.js +3 -3
- package/dist/angular-ts.umd.min.js +1 -1
- package/package.json +9 -2
- package/.github/workflows/ci.yml +0 -104
- package/.github/workflows/gh-pages.yml +0 -75
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -9
- package/CHANGELOG.md +0 -17667
- package/CODE_OF_CONDUCT.md +0 -3
- package/CONTRIBUTING.md +0 -247
- package/DEVELOPERS.md +0 -499
- package/Makefile +0 -60
- package/RELEASE.md +0 -86
- package/TRIAGING.md +0 -127
- package/docs/.cspell.yml +0 -8
- package/docs/.github/dependabot.yml +0 -14
- package/docs/.nvmrc +0 -1
- package/docs/CONTRIBUTING.md +0 -28
- package/docs/Dockerfile +0 -4
- package/docs/LICENSE +0 -201
- package/docs/README.md +0 -217
- package/docs/assets/icons/logo.svg +0 -1
- package/docs/assets/scss/_variables_project.scss +0 -12
- package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
- package/docs/assets/scss/index.scss +0 -48
- package/docs/config.yaml +0 -15
- package/docs/content/_index.md +0 -28
- package/docs/content/docs/_index.md +0 -61
- package/docs/content/docs/directive/_index.md +0 -4
- package/docs/content/docs/directive/app.md +0 -11
- package/docs/content/docs/directive/aria.md +0 -0
- package/docs/content/docs/directive/bind.md +0 -72
- package/docs/content/docs/directive/blur.md +0 -38
- package/docs/content/docs/directive/channel.md +0 -37
- package/docs/content/docs/directive/class-even.md +0 -47
- package/docs/content/docs/directive/class-odd.md +0 -48
- package/docs/content/docs/directive/class.md +0 -64
- package/docs/content/docs/directive/click.md +0 -41
- package/docs/content/docs/directive/cloak.md +0 -74
- package/docs/content/docs/directive/copy.md +0 -38
- package/docs/content/docs/directive/cut.md +0 -40
- package/docs/content/docs/directive/dblclick.md +0 -41
- package/docs/content/docs/directive/focus.md +0 -38
- package/docs/content/docs/directive/get.md +0 -203
- package/docs/content/docs/directive/include.md +0 -7
- package/docs/content/docs/directive/keydown.md +0 -38
- package/docs/content/docs/directive/keyup.md +0 -38
- package/docs/content/docs/directive/load.md +0 -43
- package/docs/content/docs/directive/mousedown.md +0 -38
- package/docs/content/docs/directive/mouseenter.md +0 -38
- package/docs/content/docs/directive/mouseleave.md +0 -38
- package/docs/content/docs/directive/mousemove.md +0 -38
- package/docs/content/docs/directive/mouseout.md +0 -38
- package/docs/content/docs/directive/mouseover.md +0 -38
- package/docs/content/docs/directive/mouseup.md +0 -38
- package/docs/content/docs/directive/non-bindable.md +0 -28
- package/docs/content/docs/filter/_index.md +0 -4
- package/docs/content/docs/filter/filter.md +0 -78
- package/docs/content/docs/filter/json.md +0 -19
- package/docs/content/docs/filter/limit-to.md +0 -30
- package/docs/content/docs/filter/order-by.md +0 -123
- package/docs/content/docs/provider/_index.md +0 -4
- package/docs/content/docs/provider/eventBusProvider.md +0 -35
- package/docs/content/docs/provider/locationProvider.md +0 -26
- package/docs/content/docs/provider/logProvider.md +0 -59
- package/docs/content/docs/provider/sceProvider.md +0 -194
- package/docs/content/docs/provider/templateCacheProvider.md +0 -100
- package/docs/content/docs/provider/templateRequestProvider.md +0 -5
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/compile.md +0 -5
- package/docs/content/docs/service/controller.md +0 -5
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/http.md +0 -161
- package/docs/content/docs/service/interpolation.md +0 -5
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/parse.md +0 -5
- package/docs/content/docs/service/rootElement.md +0 -5
- package/docs/content/docs/service/rootScope.md +0 -5
- package/docs/content/docs/service/sce.md +0 -194
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/templateRequest.md +0 -5
- package/docs/content/docs/service/url.md +0 -5
- package/docs/content/docs/values/_index.md +0 -4
- package/docs/content/docs/values/document.md +0 -29
- package/docs/content/docs/values/window.md +0 -29
- package/docs/docker-compose.yaml +0 -12
- package/docs/docsy.work +0 -5
- package/docs/docsy.work.sum +0 -0
- package/docs/go.mod +0 -5
- package/docs/go.sum +0 -6
- package/docs/hugo-disabled.toml +0 -220
- package/docs/hugo.yaml +0 -200
- package/docs/layouts/404.html +0 -13
- package/docs/layouts/_markup/render-heading.html +0 -1
- package/docs/layouts/partials/hooks/head-end.html +0 -3
- package/docs/layouts/shortcodes/showcss.html +0 -2
- package/docs/layouts/shortcodes/showhtml.html +0 -2
- package/docs/layouts/shortcodes/showjs.html +0 -2
- package/docs/layouts/shortcodes/showraw.html +0 -1
- package/docs/layouts/shortcodes/version.html +0 -1
- package/docs/package-lock.json +0 -2293
- package/docs/package.json +0 -53
- package/docs/static/examples/counter/counter-test.html +0 -13
- package/docs/static/examples/counter/counter.html +0 -5
- package/docs/static/examples/counter/counter.test.js +0 -28
- package/docs/static/examples/document/document.html +0 -3
- package/docs/static/examples/eventbus/eventbus-test.html +0 -15
- package/docs/static/examples/eventbus/eventbus.html +0 -13
- package/docs/static/examples/eventbus/eventbus.js +0 -15
- package/docs/static/examples/eventbus/eventbus.test.js +0 -19
- package/docs/static/examples/i18n/i18n.html +0 -77
- package/docs/static/examples/ng-bind/ng-bind.html +0 -9
- package/docs/static/examples/ng-blur/ng-blur.html +0 -9
- package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
- package/docs/static/examples/ng-channel/ng-channel.html +0 -24
- package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
- package/docs/static/examples/ng-class/ng-class.html +0 -71
- package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
- package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
- package/docs/static/examples/ng-click/ng-click.html +0 -6
- package/docs/static/examples/ng-copy/ng-copy.html +0 -6
- package/docs/static/examples/ng-cut/ng-cut.html +0 -6
- package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
- package/docs/static/examples/ng-focus/ng-focus.html +0 -9
- package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
- package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
- package/docs/static/examples/ng-load/ng-load.html +0 -8
- package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
- package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
- package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
- package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
- package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
- package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
- package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
- package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
- package/docs/static/examples/window/window.html +0 -4
- package/docs/static/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -29
- package/docs/static/typedoc/assets/icons.js +0 -18
- package/docs/static/typedoc/assets/icons.svg +0 -1
- package/docs/static/typedoc/assets/main.js +0 -60
- package/docs/static/typedoc/assets/navigation.js +0 -1
- package/docs/static/typedoc/assets/search.js +0 -1
- package/docs/static/typedoc/assets/style.css +0 -1633
- package/docs/static/typedoc/classes/Location.html +0 -55
- package/docs/static/typedoc/classes/LocationProvider.html +0 -20
- package/docs/static/typedoc/classes/LogProvider.html +0 -6
- package/docs/static/typedoc/classes/PubSub.html +0 -71
- package/docs/static/typedoc/classes/PubSubProvider.html +0 -4
- package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
- package/docs/static/typedoc/hierarchy.html +0 -1
- package/docs/static/typedoc/index.html +0 -1
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
- package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
- package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
- package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
- package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
- package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpService.html +0 -38
- package/docs/static/typedoc/interfaces/LogService.html +0 -12
- package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
- package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
- package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/HttpParamSerializer.html +0 -2
- package/docs/static/typedoc/types/HttpParams.html +0 -2
- package/docs/static/typedoc/types/HttpPromise.html +0 -1
- package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
- package/docs/static/typedoc/types/LogCall.html +0 -2
- package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/version.js +0 -13
- package/docs/test-results/.last-run.json +0 -4
- package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
- package/eslint.config.js +0 -26
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +0 -19
- package/index.html +0 -86
- package/legacy.d.ts +0 -1678
- package/playwright.config.ts +0 -81
- package/public/jasmine/boot0.js +0 -66
- package/public/jasmine/boot1.js +0 -134
- package/public/jasmine/jasmine-html.js +0 -970
- package/public/jasmine/jasmine.css +0 -323
- package/public/jasmine/jasmine.js +0 -11406
- package/public/public/README.md +0 -1
- package/public/public/circle.html +0 -1
- package/public/public/jasmine-helper.css +0 -9
- package/public/public/my_child_directive.html +0 -1
- package/public/public/my_directive.html +0 -1
- package/public/public/my_other_directive.html +0 -1
- package/public/public/test.html +0 -1
- package/rollup.config.js +0 -51
- package/src/angular.js +0 -286
- package/src/angular.spec.js +0 -1191
- package/src/animations/animate-cache.js +0 -80
- package/src/animations/animate-children-directive.js +0 -32
- package/src/animations/animate-children-directive.md +0 -80
- package/src/animations/animate-css-driver.js +0 -284
- package/src/animations/animate-css.html +0 -58
- package/src/animations/animate-css.js +0 -915
- package/src/animations/animate-css.md +0 -263
- package/src/animations/animate-js-driver.js +0 -60
- package/src/animations/animate-js.html +0 -47
- package/src/animations/animate-js.js +0 -371
- package/src/animations/animate-queue.js +0 -859
- package/src/animations/animate-runner.js +0 -193
- package/src/animations/animate-swap.js +0 -33
- package/src/animations/animate-swap.md +0 -88
- package/src/animations/animate.html +0 -19
- package/src/animations/animate.js +0 -546
- package/src/animations/animate.md +0 -933
- package/src/animations/animate.spec.js +0 -490
- package/src/animations/animation.js +0 -519
- package/src/animations/animations.test.js +0 -10
- package/src/animations/interface.ts +0 -19
- package/src/animations/raf-scheduler.html +0 -19
- package/src/animations/raf-scheduler.js +0 -92
- package/src/animations/raf-scheduler.spec.js +0 -98
- package/src/animations/shared.js +0 -341
- package/src/binding.html +0 -19
- package/src/binding.spec.js +0 -474
- package/src/binding.test.js +0 -10
- package/src/core/compile/attributes.js +0 -337
- package/src/core/compile/compile.html +0 -19
- package/src/core/compile/compile.js +0 -3271
- package/src/core/compile/compile.md +0 -1128
- package/src/core/compile/compile.spec.js +0 -15574
- package/src/core/compile/compile.test.js +0 -12
- package/src/core/controller/controller.html +0 -22
- package/src/core/controller/controller.js +0 -193
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- package/src/core/controller/interface.ts +0 -6
- package/src/core/core.html +0 -20
- package/src/core/core.test.js +0 -12
- package/src/core/di/injector.html +0 -19
- package/src/core/di/injector.js +0 -307
- package/src/core/di/injector.md +0 -740
- package/src/core/di/injector.spec.js +0 -2310
- package/src/core/di/injector.test.js +0 -12
- package/src/core/di/internal-injector.js +0 -286
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -229
- package/src/core/di/ng-module.spec.js +0 -263
- package/src/core/di/ng-module.test.js +0 -12
- package/src/core/filter/filter.html +0 -19
- package/src/core/filter/filter.js +0 -55
- package/src/core/filter/filter.md +0 -132
- package/src/core/filter/filter.spec.js +0 -149
- package/src/core/filter/filter.test.js +0 -12
- package/src/core/interpolate/interface.ts +0 -14
- package/src/core/interpolate/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -410
- package/src/core/interpolate/interpolate.spec.js +0 -601
- package/src/core/interpolate/interpolate.test.js +0 -12
- package/src/core/parse/ast/ast-node.ts +0 -81
- package/src/core/parse/ast/ast.html +0 -19
- package/src/core/parse/ast/ast.js +0 -574
- package/src/core/parse/ast/ast.spec.js +0 -1453
- package/src/core/parse/ast/ast.test.js +0 -10
- package/src/core/parse/ast-type.js +0 -23
- package/src/core/parse/interface.ts +0 -84
- package/src/core/parse/interpreter.js +0 -915
- package/src/core/parse/lexer/lexer.html +0 -19
- package/src/core/parse/lexer/lexer.js +0 -338
- package/src/core/parse/lexer/lexer.spec.js +0 -303
- package/src/core/parse/lexer/lexer.test.js +0 -10
- package/src/core/parse/lexer/token.ts +0 -22
- package/src/core/parse/parse.html +0 -19
- package/src/core/parse/parse.js +0 -337
- package/src/core/parse/parse.md +0 -57
- package/src/core/parse/parse.spec.js +0 -2107
- package/src/core/parse/parse.test.js +0 -10
- package/src/core/parse/parser/parser.html +0 -19
- package/src/core/parse/parser/parser.js +0 -64
- package/src/core/parse/parser/parser.spec.js +0 -8
- package/src/core/parse/parser/parser.test.js +0 -10
- package/src/core/prop.spec.js +0 -775
- package/src/core/root-element.spec.js +0 -14
- package/src/core/sanitize/interface.ts +0 -10
- package/src/core/sanitize/sanitize-uri.js +0 -75
- package/src/core/sanitize/sanitize-uri.spec.js +0 -249
- package/src/core/sanitize/sanitize-uri.test.js +0 -12
- package/src/core/sanitize/sanitize.html +0 -22
- package/src/core/scope/scope.html +0 -19
- package/src/core/scope/scope.js +0 -1252
- package/src/core/scope/scope.spec.js +0 -3000
- package/src/core/scope/scope.test.js +0 -12
- package/src/directive/aria/aria.html +0 -19
- package/src/directive/aria/aria.js +0 -382
- package/src/directive/aria/aria.md +0 -145
- package/src/directive/aria/aria.spec.js +0 -1241
- package/src/directive/aria/aria.test.js +0 -12
- package/src/directive/attrs/attrs.html +0 -19
- package/src/directive/attrs/attrs.js +0 -106
- package/src/directive/attrs/attrs.md +0 -224
- package/src/directive/attrs/attrs.spec.js +0 -71
- package/src/directive/attrs/attrs.test.js +0 -12
- package/src/directive/attrs/boolean.html +0 -19
- package/src/directive/attrs/boolean.spec.js +0 -137
- package/src/directive/attrs/boolean.test.js +0 -12
- package/src/directive/attrs/element-style.html +0 -22
- package/src/directive/attrs/element-style.spec.js +0 -85
- package/src/directive/attrs/element-style.test.js +0 -12
- package/src/directive/attrs/src.html +0 -19
- package/src/directive/attrs/src.spec.js +0 -163
- package/src/directive/attrs/src.test.js +0 -12
- package/src/directive/bind/bind-html.spec.js +0 -36
- package/src/directive/bind/bind.html +0 -20
- package/src/directive/bind/bind.js +0 -78
- package/src/directive/bind/bind.md +0 -142
- package/src/directive/bind/bind.spec.js +0 -314
- package/src/directive/bind/bind.test.js +0 -12
- package/src/directive/channel/channel.html +0 -19
- package/src/directive/channel/channel.js +0 -30
- package/src/directive/channel/channel.spec.js +0 -67
- package/src/directive/channel/channel.test.js +0 -10
- package/src/directive/class/class-test.html +0 -23
- package/src/directive/class/class.html +0 -19
- package/src/directive/class/class.js +0 -184
- package/src/directive/class/class.spec.js +0 -704
- package/src/directive/class/class.test.js +0 -12
- package/src/directive/cloak/cloak.html +0 -19
- package/src/directive/cloak/cloak.js +0 -11
- package/src/directive/cloak/cloak.spec.js +0 -44
- package/src/directive/cloak/cloak.test.js +0 -12
- package/src/directive/controller/controller.html +0 -22
- package/src/directive/controller/controller.js +0 -11
- package/src/directive/controller/controller.md +0 -46
- package/src/directive/controller/controller.spec.js +0 -175
- package/src/directive/controller/controller.test.js +0 -12
- package/src/directive/events/click.spec.js +0 -35
- package/src/directive/events/event.spec.js +0 -267
- package/src/directive/events/events-test.html +0 -36
- package/src/directive/events/events.html +0 -20
- package/src/directive/events/events.js +0 -65
- package/src/directive/events/events.md +0 -125
- package/src/directive/events/events.test.js +0 -12
- package/src/directive/form/form.html +0 -19
- package/src/directive/form/form.js +0 -669
- package/src/directive/form/form.spec.js +0 -1515
- package/src/directive/form/form.test.js +0 -12
- package/src/directive/http/delete.spec.js +0 -23
- package/src/directive/http/form-router-test.html +0 -44
- package/src/directive/http/form-test.html +0 -18
- package/src/directive/http/get.spec.js +0 -488
- package/src/directive/http/http.html +0 -22
- package/src/directive/http/http.js +0 -342
- package/src/directive/http/http.test.js +0 -12
- package/src/directive/http/interface.ts +0 -36
- package/src/directive/http/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -23
- package/src/directive/if/if-animate-css.html +0 -57
- package/src/directive/if/if-animate-svg.html +0 -25
- package/src/directive/if/if.html +0 -19
- package/src/directive/if/if.js +0 -72
- package/src/directive/if/if.md +0 -76
- package/src/directive/if/if.spec.js +0 -293
- package/src/directive/if/if.test.js +0 -114
- package/src/directive/include/include.html +0 -19
- package/src/directive/include/include.js +0 -151
- package/src/directive/include/include.md +0 -87
- package/src/directive/include/include.spec.js +0 -734
- package/src/directive/include/include.test.js +0 -12
- package/src/directive/init/init.html +0 -19
- package/src/directive/init/init.js +0 -22
- package/src/directive/init/init.md +0 -41
- package/src/directive/init/init.spec.js +0 -68
- package/src/directive/init/init.test.js +0 -12
- package/src/directive/inject/inject.html +0 -19
- package/src/directive/inject/inject.js +0 -35
- package/src/directive/inject/inject.spec.js +0 -108
- package/src/directive/inject/inject.test.js +0 -12
- package/src/directive/input/input-example.html +0 -15
- package/src/directive/input/input.html +0 -19
- package/src/directive/input/input.js +0 -1078
- package/src/directive/input/input.md +0 -706
- package/src/directive/input/input.spec.js +0 -3700
- package/src/directive/input/input.test.js +0 -12
- package/src/directive/messages/messages.html +0 -22
- package/src/directive/messages/messages.js +0 -349
- package/src/directive/messages/messages.md +0 -543
- package/src/directive/messages/messages.spec.js +0 -1083
- package/src/directive/messages/messages.test.js +0 -12
- package/src/directive/model/change.md +0 -25
- package/src/directive/model/model.html +0 -19
- package/src/directive/model/model.js +0 -1170
- package/src/directive/model/model.spec.js +0 -1976
- package/src/directive/model/model.test.js +0 -12
- package/src/directive/model-options/model-option.test.js +0 -12
- package/src/directive/model-options/model-options.html +0 -22
- package/src/directive/model-options/model-options.js +0 -142
- package/src/directive/model-options/model-options.md +0 -407
- package/src/directive/model-options/model-options.spec.js +0 -1022
- package/src/directive/non-bindable/non-bindable.html +0 -22
- package/src/directive/non-bindable/non-bindable.js +0 -9
- package/src/directive/non-bindable/non-bindable.spec.js +0 -59
- package/src/directive/non-bindable/non-bindable.test.js +0 -12
- package/src/directive/observe/observe-demo.html +0 -184
- package/src/directive/observe/observe.html +0 -19
- package/src/directive/observe/observe.js +0 -41
- package/src/directive/observe/observe.spec.js +0 -106
- package/src/directive/observe/observe.test.js +0 -10
- package/src/directive/on/on.html +0 -19
- package/src/directive/on/on.spec.js +0 -215
- package/src/directive/on/on.test.js +0 -12
- package/src/directive/options/options-example.html +0 -17
- package/src/directive/options/options.html +0 -22
- package/src/directive/options/options.js +0 -542
- package/src/directive/options/options.md +0 -179
- package/src/directive/options/options.spec.js +0 -3554
- package/src/directive/options/options.test.js +0 -12
- package/src/directive/ref/href.html +0 -19
- package/src/directive/ref/href.spec.js +0 -141
- package/src/directive/ref/href.test.js +0 -19
- package/src/directive/ref/ref.html +0 -19
- package/src/directive/ref/ref.js +0 -89
- package/src/directive/ref/ref.spec.js +0 -546
- package/src/directive/repeat/repeat.html +0 -19
- package/src/directive/repeat/repeat.js +0 -333
- package/src/directive/repeat/repeat.md +0 -330
- package/src/directive/repeat/repeat.spec.js +0 -1209
- package/src/directive/repeat/repeat.test.js +0 -12
- package/src/directive/script/script.html +0 -19
- package/src/directive/script/script.js +0 -17
- package/src/directive/script/script.md +0 -11
- package/src/directive/script/script.spec.js +0 -47
- package/src/directive/script/script.test.js +0 -12
- package/src/directive/select/select.html +0 -19
- package/src/directive/select/select.js +0 -594
- package/src/directive/select/select.md +0 -74
- package/src/directive/select/select.spec.js +0 -2566
- package/src/directive/select/select.test.js +0 -12
- package/src/directive/setter/setter.html +0 -19
- package/src/directive/setter/setter.js +0 -59
- package/src/directive/setter/setter.spec.js +0 -100
- package/src/directive/setter/setter.test.js +0 -12
- package/src/directive/show-hide/show-hide.html +0 -22
- package/src/directive/show-hide/show-hide.js +0 -65
- package/src/directive/show-hide/show-hide.md +0 -255
- package/src/directive/show-hide/show-hide.spec.js +0 -268
- package/src/directive/show-hide/show-hide.test.js +0 -12
- package/src/directive/style/style.html +0 -19
- package/src/directive/style/style.js +0 -27
- package/src/directive/style/style.md +0 -23
- package/src/directive/style/style.spec.js +0 -183
- package/src/directive/style/style.test.js +0 -12
- package/src/directive/switch/switch.html +0 -19
- package/src/directive/switch/switch.js +0 -133
- package/src/directive/switch/switch.md +0 -66
- package/src/directive/switch/switch.spec.js +0 -509
- package/src/directive/switch/switch.test.js +0 -12
- package/src/directive/transclude/transclude.js +0 -122
- package/src/directive/validators/validators.html +0 -22
- package/src/directive/validators/validators.js +0 -346
- package/src/directive/validators/validators.spec.js +0 -740
- package/src/directive/validators/validators.test.js +0 -12
- package/src/filters/filter.js +0 -213
- package/src/filters/filter.spec.js +0 -719
- package/src/filters/filters.html +0 -22
- package/src/filters/filters.js +0 -239
- package/src/filters/filters.spec.js +0 -36
- package/src/filters/filters.test.js +0 -12
- package/src/filters/interface.ts +0 -9
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.spec.js +0 -883
- package/src/index.js +0 -6
- package/src/index.spec.js +0 -11
- package/src/injection-tokens.js +0 -81
- package/src/interface.ts +0 -430
- package/src/ng.js +0 -291
- package/src/ng.spec.js +0 -45
- package/src/router/common/trace.js +0 -240
- package/src/router/directives/component-example.html +0 -37
- package/src/router/directives/state-directives.html +0 -22
- package/src/router/directives/state-directives.js +0 -393
- package/src/router/directives/state-directives.md +0 -435
- package/src/router/directives/state-directives.spec.js +0 -1091
- package/src/router/directives/state-directives.test.js +0 -10
- package/src/router/directives/view-directive.js +0 -489
- package/src/router/directives/view-directive.spec.js +0 -1921
- package/src/router/directives/view-directive.test.js +0 -10
- package/src/router/directives/view-directives.html +0 -22
- package/src/router/glob/glob.html +0 -19
- package/src/router/glob/glob.js +0 -102
- package/src/router/glob/glob.spec.js +0 -108
- package/src/router/glob/glob.test.js +0 -12
- package/src/router/hooks/core-resolvables.js +0 -38
- package/src/router/hooks/ignored-transition.js +0 -25
- package/src/router/hooks/invalid-transition.js +0 -14
- package/src/router/hooks/lazy-load.js +0 -104
- package/src/router/hooks/on-enter-exit-retain.js +0 -55
- package/src/router/hooks/redirect-to.js +0 -38
- package/src/router/hooks/resolve.js +0 -57
- package/src/router/hooks/update-globals.js +0 -34
- package/src/router/hooks/url.js +0 -34
- package/src/router/hooks/views.js +0 -41
- package/src/router/params/interface.ts +0 -626
- package/src/router/params/param-factory.js +0 -23
- package/src/router/params/param-type.js +0 -133
- package/src/router/params/param-types.js +0 -153
- package/src/router/params/param.js +0 -243
- package/src/router/params/state-params.js +0 -36
- package/src/router/path/path-node.js +0 -78
- package/src/router/path/path-utils.js +0 -207
- package/src/router/resolve/interface.ts +0 -208
- package/src/router/resolve/resolvable.js +0 -123
- package/src/router/resolve/resolve-context.js +0 -190
- package/src/router/router-test-hashbang.html +0 -45
- package/src/router/router-test.html +0 -41
- package/src/router/router.html +0 -22
- package/src/router/router.js +0 -54
- package/src/router/router.test.js +0 -12
- package/src/router/services.spec.js +0 -52
- package/src/router/state/interface.ts +0 -1007
- package/src/router/state/state-builder.js +0 -376
- package/src/router/state/state-builder.spec.js +0 -86
- package/src/router/state/state-matcher.js +0 -64
- package/src/router/state/state-object.js +0 -118
- package/src/router/state/state-queue-manager.js +0 -95
- package/src/router/state/state-registry.js +0 -262
- package/src/router/state/state-service.js +0 -687
- package/src/router/state/state.html +0 -23
- package/src/router/state/state.spec.js +0 -1002
- package/src/router/state/state.test.js +0 -12
- package/src/router/state/target-state.js +0 -162
- package/src/router/state/views.js +0 -195
- package/src/router/state-filter.spec.js +0 -139
- package/src/router/state-filters.js +0 -46
- package/src/router/template-factory.html +0 -19
- package/src/router/template-factory.js +0 -249
- package/src/router/template-factory.spec.js +0 -146
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -137
- package/src/router/transition/hook-registry.js +0 -181
- package/src/router/transition/interface.js +0 -18
- package/src/router/transition/interface.ts +0 -922
- package/src/router/transition/reject-factory.js +0 -122
- package/src/router/transition/transition-event-type.js +0 -26
- package/src/router/transition/transition-hook.js +0 -199
- package/src/router/transition/transition-service.js +0 -297
- package/src/router/transition/transition.js +0 -653
- package/src/router/url/url-config.js +0 -155
- package/src/router/url/url-matcher.js +0 -532
- package/src/router/url/url-rule.js +0 -231
- package/src/router/url/url-rules.js +0 -350
- package/src/router/url/url-service.js +0 -446
- package/src/router/url/url-service.spec.js +0 -1288
- package/src/router/url/url.html +0 -19
- package/src/router/url/url.test.js +0 -12
- package/src/router/view/interface.ts +0 -51
- package/src/router/view/view.html +0 -19
- package/src/router/view/view.js +0 -262
- package/src/router/view/view.spec.js +0 -100
- package/src/router/view/view.test.js +0 -12
- package/src/router/view-hook.spec.js +0 -215
- package/src/router/view-scroll.js +0 -33
- package/src/router/view-scroll.spec.js +0 -72
- package/src/services/anchor-scroll/anchor-scroll.html +0 -76
- package/src/services/anchor-scroll/anchor-scroll.js +0 -147
- package/src/services/exception/exception-handler.js +0 -75
- package/src/services/exception/interface.ts +0 -7
- package/src/services/http/http.html +0 -23
- package/src/services/http/http.js +0 -1109
- package/src/services/http/http.spec.js +0 -4320
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -256
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/location/interface.ts +0 -70
- package/src/services/location/location.html +0 -22
- package/src/services/location/location.js +0 -1006
- package/src/services/location/location.spec.js +0 -3792
- package/src/services/location/location.test.js +0 -12
- package/src/services/log/interface.ts +0 -39
- package/src/services/log/log.html +0 -19
- package/src/services/log/log.js +0 -74
- package/src/services/log/log.spec.js +0 -64
- package/src/services/log/log.test.js +0 -12
- package/src/services/pubsub/pubsub.html +0 -19
- package/src/services/pubsub/pubsub.js +0 -349
- package/src/services/pubsub/pubsub.spec.js +0 -400
- package/src/services/pubsub/pubsub.test.js +0 -12
- package/src/services/sce/sce.html +0 -19
- package/src/services/sce/sce.js +0 -852
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/template-cache.html +0 -22
- package/src/services/template-cache/template-cache.js +0 -15
- package/src/services/template-cache/template-cache.spec.js +0 -134
- package/src/services/template-cache/template-cache.test.js +0 -12
- package/src/services/template-request/interface.ts +0 -23
- package/src/services/template-request/template-request.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -365
- package/src/shared/common.spec.js +0 -294
- package/src/shared/constants.js +0 -21
- package/src/shared/dom.js +0 -716
- package/src/shared/hof.js +0 -157
- package/src/shared/hof.spec.js +0 -60
- package/src/shared/interface.ts +0 -21
- package/src/shared/min-err.spec.js +0 -178
- package/src/shared/noderef.js +0 -225
- package/src/shared/predicates.js +0 -34
- package/src/shared/queue.js +0 -105
- package/src/shared/queue.spec.js +0 -80
- package/src/shared/shared.html +0 -24
- package/src/shared/shared.test.js +0 -12
- package/src/shared/strings.js +0 -142
- package/src/shared/strings.spec.js +0 -40
- package/src/shared/test-utils.js +0 -47
- package/src/shared/url-utils/interface.ts +0 -54
- package/src/shared/url-utils/url-utils.html +0 -22
- package/src/shared/url-utils/url-utils.js +0 -122
- package/src/shared/url-utils/url-utils.spec.js +0 -148
- package/src/shared/url-utils/url-utils.test.js +0 -12
- package/src/shared/utils.js +0 -1255
- package/src/shared/utils.spec.js +0 -178
- package/src/src.html +0 -21
- package/src/src.test.js +0 -10
- package/tsconfig.json +0 -19
- package/tsconfig.types.json +0 -14
- package/typedoc.json +0 -8
- package/utils/express.js +0 -203
- package/utils/version.cjs +0 -23
- package/vite.config.js +0 -14
|
@@ -1,653 +0,0 @@
|
|
|
1
|
-
import { trace } from "../common/trace.js";
|
|
2
|
-
import { stringify } from "../../shared/strings.js";
|
|
3
|
-
import {
|
|
4
|
-
map,
|
|
5
|
-
find,
|
|
6
|
-
tail,
|
|
7
|
-
omit,
|
|
8
|
-
arrayTuples,
|
|
9
|
-
unnestR,
|
|
10
|
-
anyTrueR,
|
|
11
|
-
} from "../../shared/common.js";
|
|
12
|
-
import { isUndefined, isObject, assert } from "../../shared/utils.js";
|
|
13
|
-
import { propEq, val, is } from "../../shared/hof.js";
|
|
14
|
-
import { TransitionHookPhase } from "./interface.js"; // has or is using
|
|
15
|
-
import { TransitionHook } from "./transition-hook.js";
|
|
16
|
-
import { matchState, makeEvent } from "./hook-registry.js";
|
|
17
|
-
import { HookBuilder } from "./hook-builder.js";
|
|
18
|
-
import { PathUtils } from "../path/path-utils.js";
|
|
19
|
-
import { Param } from "../params/param.js";
|
|
20
|
-
import { Resolvable } from "../resolve/resolvable.js";
|
|
21
|
-
import { ResolveContext } from "../resolve/resolve-context.js";
|
|
22
|
-
import { Rejection } from "./reject-factory.js";
|
|
23
|
-
|
|
24
|
-
/** @typedef {import('./interface.ts').IHookRegistry} IHookRegistry */
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Represents a transition between two states.
|
|
28
|
-
*
|
|
29
|
-
* When navigating to a state, we are transitioning **from** the current state **to** the new state.
|
|
30
|
-
*
|
|
31
|
-
* This object contains all contextual information about the to/from states, parameters, resolves.
|
|
32
|
-
* It has information about all states being entered and exited as a result of the transition.
|
|
33
|
-
* @implements {IHookRegistry}
|
|
34
|
-
*/
|
|
35
|
-
export class Transition {
|
|
36
|
-
/**
|
|
37
|
-
* Creates a new Transition object.
|
|
38
|
-
*
|
|
39
|
-
* If the target state is not valid, an error is thrown.
|
|
40
|
-
*
|
|
41
|
-
* @param {Array<import('../path/path-node.js').PathNode>} fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`
|
|
42
|
-
* encapsulates the "from state".
|
|
43
|
-
* @param {import('../state/target-state.js').TargetState} targetState The target state and parameters being transitioned to (also, the transition options)
|
|
44
|
-
* @param {import('../transition/transition-service.js').TransitionProvider} transitionService The [[TransitionService]] instance
|
|
45
|
-
* @param {import('../router.js').Router} globals
|
|
46
|
-
*/
|
|
47
|
-
constructor(fromPath, targetState, transitionService, globals) {
|
|
48
|
-
/**
|
|
49
|
-
* @type {import('../router.js').Router}
|
|
50
|
-
*/
|
|
51
|
-
this.globals = globals;
|
|
52
|
-
this.transitionService = transitionService;
|
|
53
|
-
this._deferred = Promise.withResolvers();
|
|
54
|
-
/**
|
|
55
|
-
* This promise is resolved or rejected based on the outcome of the Transition.
|
|
56
|
-
*
|
|
57
|
-
* When the transition is successful, the promise is resolved
|
|
58
|
-
* When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error
|
|
59
|
-
*/
|
|
60
|
-
this.promise = this._deferred.promise;
|
|
61
|
-
/** @internal Holds the hook registration functions such as those passed to Transition.onStart() */
|
|
62
|
-
this._registeredHooks = {};
|
|
63
|
-
|
|
64
|
-
this._hookBuilder = new HookBuilder(this);
|
|
65
|
-
/** Checks if this transition is currently active/running. */
|
|
66
|
-
this.isActive = () => this.globals.transition === this;
|
|
67
|
-
this._targetState = targetState;
|
|
68
|
-
if (!targetState.valid()) {
|
|
69
|
-
throw new Error(targetState.error());
|
|
70
|
-
}
|
|
71
|
-
// current() is assumed to come from targetState.options, but provide a naive implementation otherwise.
|
|
72
|
-
this._options = Object.assign(
|
|
73
|
-
{ current: val(this) },
|
|
74
|
-
targetState.options(),
|
|
75
|
-
);
|
|
76
|
-
this.$id = transitionService._transitionCount++;
|
|
77
|
-
const toPath = PathUtils.buildToPath(fromPath, targetState);
|
|
78
|
-
this._treeChanges = PathUtils.treeChanges(
|
|
79
|
-
fromPath,
|
|
80
|
-
toPath,
|
|
81
|
-
this._options.reloadState,
|
|
82
|
-
);
|
|
83
|
-
this.createTransitionHookRegFns();
|
|
84
|
-
const onCreateHooks = this._hookBuilder.buildHooksForPhase(
|
|
85
|
-
TransitionHookPhase.CREATE,
|
|
86
|
-
);
|
|
87
|
-
TransitionHook.invokeHooks(onCreateHooks, () => null);
|
|
88
|
-
this.applyViewConfigs();
|
|
89
|
-
this.onStart = undefined;
|
|
90
|
-
this.onBefore = undefined;
|
|
91
|
-
this.onSuccess = undefined;
|
|
92
|
-
this.onEnter = undefined;
|
|
93
|
-
this.onRetain = undefined;
|
|
94
|
-
this.onExit = undefined;
|
|
95
|
-
this.onFinish = undefined;
|
|
96
|
-
this.onError = undefined;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Creates the transition-level hook registration functions
|
|
101
|
-
* (which can then be used to register hooks)
|
|
102
|
-
*/
|
|
103
|
-
createTransitionHookRegFns() {
|
|
104
|
-
this.transitionService
|
|
105
|
-
._getEvents()
|
|
106
|
-
.filter((type) => type.hookPhase !== TransitionHookPhase.CREATE)
|
|
107
|
-
.forEach((type) => makeEvent(this, this.transitionService, type));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getHooks(hookName) {
|
|
111
|
-
return this._registeredHooks[hookName];
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
applyViewConfigs() {
|
|
115
|
-
const enteringStates = this._treeChanges.entering.map((node) => node.state);
|
|
116
|
-
PathUtils.applyViewConfigs(
|
|
117
|
-
this.transitionService.$view,
|
|
118
|
-
this._treeChanges.to,
|
|
119
|
-
enteringStates,
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* @returns {import('../state/state-object.js').StateObject} the internal from [State] object
|
|
124
|
-
*/
|
|
125
|
-
$from() {
|
|
126
|
-
return tail(this._treeChanges.from).state;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* @returns {import('../state/state-object.js').StateObject} the internal to [State] object
|
|
130
|
-
*/
|
|
131
|
-
$to() {
|
|
132
|
-
return tail(this._treeChanges.to).state;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Returns the "from state"
|
|
136
|
-
*
|
|
137
|
-
* Returns the state that the transition is coming *from*.
|
|
138
|
-
*
|
|
139
|
-
* @returns The state declaration object for the Transition's ("from state").
|
|
140
|
-
*/
|
|
141
|
-
from() {
|
|
142
|
-
return this.$from().self;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Returns the "to state"
|
|
146
|
-
*
|
|
147
|
-
* Returns the state that the transition is going *to*.
|
|
148
|
-
*
|
|
149
|
-
* @returns The state declaration object for the Transition's target state ("to state").
|
|
150
|
-
*/
|
|
151
|
-
to() {
|
|
152
|
-
return this.$to().self;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Gets the Target State
|
|
156
|
-
*
|
|
157
|
-
* A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.
|
|
158
|
-
*
|
|
159
|
-
* @returns the [[TargetState]] of this Transition
|
|
160
|
-
*/
|
|
161
|
-
targetState() {
|
|
162
|
-
return this._targetState;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Determines whether two transitions are equivalent.
|
|
166
|
-
* @deprecated
|
|
167
|
-
*/
|
|
168
|
-
is(compare) {
|
|
169
|
-
if (compare instanceof Transition) {
|
|
170
|
-
// TODO: Also compare parameters
|
|
171
|
-
return this.is({ to: compare.$to().name, from: compare.$from().name });
|
|
172
|
-
}
|
|
173
|
-
return !(
|
|
174
|
-
(compare.to && !matchState(this.$to(), compare.to, this)) ||
|
|
175
|
-
(compare.from && !matchState(this.$from(), compare.from, this))
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
params(pathname = "to") {
|
|
179
|
-
return Object.freeze(
|
|
180
|
-
this._treeChanges[pathname]
|
|
181
|
-
.map((x) => x.paramValues)
|
|
182
|
-
.reduce((acc, obj) => ({ ...acc, ...obj }), {}),
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Gets all available resolve tokens (keys)
|
|
188
|
-
*
|
|
189
|
-
* This method can be used in conjunction with [[injector]] to inspect the resolve values
|
|
190
|
-
* available to the Transition.
|
|
191
|
-
*
|
|
192
|
-
* This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states
|
|
193
|
-
* in the Transition's [[TreeChanges.to]] path.
|
|
194
|
-
*
|
|
195
|
-
* #### Example:
|
|
196
|
-
* This example logs all resolve values
|
|
197
|
-
* ```js
|
|
198
|
-
* let tokens = trans.getResolveTokens();
|
|
199
|
-
* tokens.forEach(token => console.log(token + " = " + trans.injector().get(token)));
|
|
200
|
-
* ```
|
|
201
|
-
*
|
|
202
|
-
* #### Example:
|
|
203
|
-
* This example creates promises for each resolve value.
|
|
204
|
-
* This triggers fetches of resolves (if any have not yet been fetched).
|
|
205
|
-
* When all promises have all settled, it logs the resolve values.
|
|
206
|
-
* ```js
|
|
207
|
-
* let tokens = trans.getResolveTokens();
|
|
208
|
-
* let promise = tokens.map(token => trans.injector().getAsync(token));
|
|
209
|
-
* Promise.all(promises).then(values => console.log("Resolved values: " + values));
|
|
210
|
-
* ```
|
|
211
|
-
*
|
|
212
|
-
* Note: Angular 1 users whould use `$q.all()`
|
|
213
|
-
*
|
|
214
|
-
* @param pathname resolve context's path name (e.g., `to` or `from`)
|
|
215
|
-
*
|
|
216
|
-
* @returns an array of resolve tokens (keys)
|
|
217
|
-
*/
|
|
218
|
-
getResolveTokens(pathname = "to") {
|
|
219
|
-
return new ResolveContext(this._treeChanges[pathname]).getTokens();
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.
|
|
224
|
-
*
|
|
225
|
-
* Allows a transition hook to dynamically add a Resolvable to this Transition.
|
|
226
|
-
*
|
|
227
|
-
* Use the [[Transition.injector]] to retrieve the resolved data in subsequent hooks ([[UIInjector.get]]).
|
|
228
|
-
*
|
|
229
|
-
* If a `state` argument is provided, the Resolvable is processed when that state is being entered.
|
|
230
|
-
* If no `state` is provided then the root state is used.
|
|
231
|
-
* If the given `state` has already been entered, the Resolvable is processed when any child state is entered.
|
|
232
|
-
* If no child states will be entered, the Resolvable is processed during the `onFinish` phase of the Transition.
|
|
233
|
-
*
|
|
234
|
-
* The `state` argument also scopes the resolved data.
|
|
235
|
-
* The resolved data is available from the injector for that `state` and any children states.
|
|
236
|
-
*
|
|
237
|
-
* #### Example:
|
|
238
|
-
* ```js
|
|
239
|
-
* transitionService.onBefore({}, transition => {
|
|
240
|
-
* transition.addResolvable({
|
|
241
|
-
* token: 'myResolve',
|
|
242
|
-
* deps: ['MyService'],
|
|
243
|
-
* resolveFn: myService => myService.getData()
|
|
244
|
-
* });
|
|
245
|
-
* });
|
|
246
|
-
* ```
|
|
247
|
-
*
|
|
248
|
-
* @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])
|
|
249
|
-
* @param state the state in the "to path" which should receive the new resolve (otherwise, the root state)
|
|
250
|
-
*/
|
|
251
|
-
addResolvable(resolvable, state) {
|
|
252
|
-
if (state === void 0) {
|
|
253
|
-
state = "";
|
|
254
|
-
}
|
|
255
|
-
resolvable = is(Resolvable)(resolvable)
|
|
256
|
-
? resolvable
|
|
257
|
-
: new Resolvable(resolvable);
|
|
258
|
-
const stateName = typeof state === "string" ? state : state.name;
|
|
259
|
-
const topath = this._treeChanges.to;
|
|
260
|
-
const targetNode = find(topath, (node) => {
|
|
261
|
-
return node.state.name === stateName;
|
|
262
|
-
});
|
|
263
|
-
assert(!!targetNode, `targetNode not found ${stateName}`);
|
|
264
|
-
const resolveContext = new ResolveContext(topath);
|
|
265
|
-
resolveContext.addResolvables(
|
|
266
|
-
[resolvable],
|
|
267
|
-
/** @type {import("../path/path-node.js").PathNode} */ (targetNode).state,
|
|
268
|
-
);
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Gets the transition from which this transition was redirected.
|
|
272
|
-
*
|
|
273
|
-
* If the current transition is a redirect, this method returns the transition that was redirected.
|
|
274
|
-
*
|
|
275
|
-
* #### Example:
|
|
276
|
-
* ```js
|
|
277
|
-
* let transitionA = $state.go('A').transition
|
|
278
|
-
* transitionA.onStart({}, () => $state.target('B'));
|
|
279
|
-
* $transitions.onSuccess({ to: 'B' }, (trans) => {
|
|
280
|
-
* trans.to().name === 'B'; // true
|
|
281
|
-
* trans.redirectedFrom() === transitionA; // true
|
|
282
|
-
* });
|
|
283
|
-
* ```
|
|
284
|
-
*
|
|
285
|
-
* @returns The previous Transition, or null if this Transition is not the result of a redirection
|
|
286
|
-
*/
|
|
287
|
-
redirectedFrom() {
|
|
288
|
-
return this._options.redirectedFrom || null;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Gets the original transition in a redirect chain
|
|
292
|
-
*
|
|
293
|
-
* A transition might belong to a long chain of multiple redirects.
|
|
294
|
-
* This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.
|
|
295
|
-
*
|
|
296
|
-
* #### Example:
|
|
297
|
-
* ```js
|
|
298
|
-
* // states
|
|
299
|
-
* registry.register({ name: 'A', redirectTo: 'B' });
|
|
300
|
-
* registry.register({ name: 'B', redirectTo: 'C' });
|
|
301
|
-
* registry.register({ name: 'C', redirectTo: 'D' });
|
|
302
|
-
* registry.register({ name: 'D' });
|
|
303
|
-
*
|
|
304
|
-
* let transitionA = $state.go('A').transition
|
|
305
|
-
*
|
|
306
|
-
* $transitions.onSuccess({ to: 'D' }, (trans) => {
|
|
307
|
-
* trans.to().name === 'D'; // true
|
|
308
|
-
* trans.redirectedFrom().to().name === 'C'; // true
|
|
309
|
-
* trans.originalTransition() === transitionA; // true
|
|
310
|
-
* trans.originalTransition().to().name === 'A'; // true
|
|
311
|
-
* });
|
|
312
|
-
* ```
|
|
313
|
-
*
|
|
314
|
-
* @returns The original Transition that started a redirect chain
|
|
315
|
-
*/
|
|
316
|
-
originalTransition() {
|
|
317
|
-
const rf = this.redirectedFrom();
|
|
318
|
-
return (rf && rf.originalTransition()) || this;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Get the transition options
|
|
322
|
-
*
|
|
323
|
-
* @returns the options for this Transition.
|
|
324
|
-
*/
|
|
325
|
-
options() {
|
|
326
|
-
return this._options;
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Gets the states being entered.
|
|
330
|
-
*
|
|
331
|
-
* @returns an array of states that will be entered during this transition.
|
|
332
|
-
*/
|
|
333
|
-
entering() {
|
|
334
|
-
return map(this._treeChanges.entering, (x) => x.state).map((x) => x.self);
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Gets the states being exited.
|
|
338
|
-
*
|
|
339
|
-
* @returns an array of states that will be exited during this transition.
|
|
340
|
-
*/
|
|
341
|
-
exiting() {
|
|
342
|
-
return map(this._treeChanges.exiting, (x) => x.state)
|
|
343
|
-
.map((x) => x.self)
|
|
344
|
-
.reverse();
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Gets the states being retained.
|
|
348
|
-
*
|
|
349
|
-
* @returns an array of states that are already entered from a previous Transition, that will not be
|
|
350
|
-
* exited during this Transition
|
|
351
|
-
*/
|
|
352
|
-
retained() {
|
|
353
|
-
return map(this._treeChanges.retained, (x) => x.state).map((x) => x.self);
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Get the [[ViewConfig]]s associated with this Transition
|
|
357
|
-
*
|
|
358
|
-
* Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.
|
|
359
|
-
* This method fetches the `ViewConfigs` for a given path in the Transition (e.g., "to" or "entering").
|
|
360
|
-
*
|
|
361
|
-
* @param pathname the name of the path to fetch views for:
|
|
362
|
-
* (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)
|
|
363
|
-
* @param state If provided, only returns the `ViewConfig`s for a single state in the path
|
|
364
|
-
*
|
|
365
|
-
* @returns a list of ViewConfig objects for the given path.
|
|
366
|
-
*/
|
|
367
|
-
views(pathname = "entering", state) {
|
|
368
|
-
let path = this._treeChanges[pathname];
|
|
369
|
-
path = !state ? path : path.filter(propEq("state", state));
|
|
370
|
-
return path.map((x) => x.views).reduce(unnestR, []);
|
|
371
|
-
}
|
|
372
|
-
treeChanges(pathname) {
|
|
373
|
-
return pathname ? this._treeChanges[pathname] : this._treeChanges;
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Creates a new transition that is a redirection of the current one.
|
|
377
|
-
*
|
|
378
|
-
* This transition can be returned from a [[TransitionService]] hook to
|
|
379
|
-
* redirect a transition to a new state and/or set of parameters.
|
|
380
|
-
*
|
|
381
|
-
* @internal
|
|
382
|
-
*
|
|
383
|
-
* @returns Returns a new [[Transition]] instance.
|
|
384
|
-
*/
|
|
385
|
-
redirect(targetState) {
|
|
386
|
-
let redirects = 1,
|
|
387
|
-
trans = this;
|
|
388
|
-
while ((trans = trans.redirectedFrom()) != null) {
|
|
389
|
-
if (++redirects > 20)
|
|
390
|
-
throw new Error(`Too many consecutive Transition redirects (20+)`);
|
|
391
|
-
}
|
|
392
|
-
const redirectOpts = { redirectedFrom: this, source: "redirect" };
|
|
393
|
-
// If the original transition was caused by URL sync, then use { location: 'replace' }
|
|
394
|
-
// on the new transition (unless the target state explicitly specifies location: false).
|
|
395
|
-
// This causes the original url to be replaced with the url for the redirect target
|
|
396
|
-
// so the original url disappears from the browser history.
|
|
397
|
-
if (
|
|
398
|
-
this.options().source === "url" &&
|
|
399
|
-
targetState.options().location !== false
|
|
400
|
-
) {
|
|
401
|
-
redirectOpts.location = "replace";
|
|
402
|
-
}
|
|
403
|
-
const newOptions = Object.assign(
|
|
404
|
-
{},
|
|
405
|
-
this.options(),
|
|
406
|
-
targetState.options(),
|
|
407
|
-
redirectOpts,
|
|
408
|
-
);
|
|
409
|
-
targetState = targetState.withOptions(newOptions, true);
|
|
410
|
-
const newTransition = this.transitionService.create(
|
|
411
|
-
this._treeChanges.from,
|
|
412
|
-
targetState,
|
|
413
|
-
);
|
|
414
|
-
const originalEnteringNodes = this._treeChanges.entering;
|
|
415
|
-
const redirectEnteringNodes = newTransition._treeChanges.entering;
|
|
416
|
-
// --- Re-use resolve data from original transition ---
|
|
417
|
-
// When redirecting from a parent state to a child state where the parent parameter values haven't changed
|
|
418
|
-
// (because of the redirect), the resolves fetched by the original transition are still valid in the
|
|
419
|
-
// redirected transition.
|
|
420
|
-
//
|
|
421
|
-
// This allows you to define a redirect on a parent state which depends on an async resolve value.
|
|
422
|
-
// You can wait for the resolve, then redirect to a child state based on the result.
|
|
423
|
-
// The redirected transition does not have to re-fetch the resolve.
|
|
424
|
-
// ---------------------------------------------------------
|
|
425
|
-
const nodeIsReloading = (reloadState) => (node) => {
|
|
426
|
-
return reloadState && node.state.includes[reloadState.name];
|
|
427
|
-
};
|
|
428
|
-
// Find any "entering" nodes in the redirect path that match the original path and aren't being reloaded
|
|
429
|
-
const matchingEnteringNodes = PathUtils.matching(
|
|
430
|
-
redirectEnteringNodes,
|
|
431
|
-
originalEnteringNodes,
|
|
432
|
-
PathUtils.nonDynamicParams,
|
|
433
|
-
).filter((x) => !nodeIsReloading(targetState.options().reloadState)(x));
|
|
434
|
-
// Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.
|
|
435
|
-
matchingEnteringNodes.forEach((node, idx) => {
|
|
436
|
-
node.resolvables = originalEnteringNodes[idx].resolvables;
|
|
437
|
-
});
|
|
438
|
-
return newTransition;
|
|
439
|
-
}
|
|
440
|
-
/** @internal If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */
|
|
441
|
-
_changedParams() {
|
|
442
|
-
const tc = this._treeChanges;
|
|
443
|
-
/** Return undefined if it's not a "dynamic" transition, for the following reasons */
|
|
444
|
-
// If user explicitly wants a reload
|
|
445
|
-
if (this._options.reload) return undefined;
|
|
446
|
-
// If any states are exiting or entering
|
|
447
|
-
if (tc.exiting.length || tc.entering.length) return undefined;
|
|
448
|
-
// If to/from path lengths differ
|
|
449
|
-
if (tc.to.length !== tc.from.length) return undefined;
|
|
450
|
-
// If the to/from paths are different
|
|
451
|
-
const pathsDiffer = arrayTuples(tc.to, tc.from)
|
|
452
|
-
.map((tuple) => tuple[0].state !== tuple[1].state)
|
|
453
|
-
.reduce(anyTrueR, false);
|
|
454
|
-
if (pathsDiffer) return undefined;
|
|
455
|
-
// Find any parameter values that differ
|
|
456
|
-
const nodeSchemas = tc.to.map((node) => node.paramSchema);
|
|
457
|
-
const [toValues, fromValues] = [tc.to, tc.from].map((path) =>
|
|
458
|
-
path.map((x) => x.paramValues),
|
|
459
|
-
);
|
|
460
|
-
const tuples = arrayTuples(nodeSchemas, toValues, fromValues);
|
|
461
|
-
return tuples
|
|
462
|
-
.map(([schema, toVals, fromVals]) =>
|
|
463
|
-
Param.changed(schema, toVals, fromVals),
|
|
464
|
-
)
|
|
465
|
-
.reduce(unnestR, []);
|
|
466
|
-
}
|
|
467
|
-
/**
|
|
468
|
-
* Returns true if the transition is dynamic.
|
|
469
|
-
*
|
|
470
|
-
* A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.
|
|
471
|
-
*
|
|
472
|
-
* @returns true if the Transition is dynamic
|
|
473
|
-
*/
|
|
474
|
-
dynamic() {
|
|
475
|
-
const changes = this._changedParams();
|
|
476
|
-
return !changes
|
|
477
|
-
? false
|
|
478
|
-
: changes.map((x) => x.dynamic).reduce(anyTrueR, false);
|
|
479
|
-
}
|
|
480
|
-
/**
|
|
481
|
-
* Returns true if the transition is ignored.
|
|
482
|
-
*
|
|
483
|
-
* A transition is ignored if no states are entered nor exited, and no parameter values have changed.
|
|
484
|
-
*
|
|
485
|
-
* @returns true if the Transition is ignored.
|
|
486
|
-
*/
|
|
487
|
-
ignored() {
|
|
488
|
-
return !!this._ignoredReason();
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
_ignoredReason() {
|
|
492
|
-
const pending = this.globals.transition;
|
|
493
|
-
const reloadState = this._options.reloadState;
|
|
494
|
-
const same = (pathA, pathB) => {
|
|
495
|
-
if (pathA.length !== pathB.length) return false;
|
|
496
|
-
const matching = PathUtils.matching(pathA, pathB);
|
|
497
|
-
return (
|
|
498
|
-
pathA.length ===
|
|
499
|
-
matching.filter(
|
|
500
|
-
(node) => !reloadState || !node.state.includes[reloadState.name],
|
|
501
|
-
).length
|
|
502
|
-
);
|
|
503
|
-
};
|
|
504
|
-
const newTC = this._treeChanges;
|
|
505
|
-
const pendTC = pending && pending._treeChanges;
|
|
506
|
-
if (
|
|
507
|
-
pendTC &&
|
|
508
|
-
same(pendTC.to, newTC.to) &&
|
|
509
|
-
same(pendTC.exiting, newTC.exiting)
|
|
510
|
-
)
|
|
511
|
-
return "SameAsPending";
|
|
512
|
-
if (
|
|
513
|
-
newTC.exiting.length === 0 &&
|
|
514
|
-
newTC.entering.length === 0 &&
|
|
515
|
-
same(newTC.from, newTC.to)
|
|
516
|
-
)
|
|
517
|
-
return "SameAsCurrent";
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
/**
|
|
521
|
-
* Runs the transition
|
|
522
|
-
*
|
|
523
|
-
* This method is generally called from the [[StateService.transitionTo]]
|
|
524
|
-
*
|
|
525
|
-
* @internal
|
|
526
|
-
*
|
|
527
|
-
* @returns {Promise} a promise for a successful transition.
|
|
528
|
-
*/
|
|
529
|
-
run() {
|
|
530
|
-
// Gets transition hooks array for the given phase
|
|
531
|
-
const getHooksFor = (phase) => this._hookBuilder.buildHooksForPhase(phase);
|
|
532
|
-
// When the chain is complete, then resolve or reject the deferred
|
|
533
|
-
const transitionSuccess = () => {
|
|
534
|
-
trace.traceSuccess(this.$to(), this);
|
|
535
|
-
this.success = true;
|
|
536
|
-
this._deferred.resolve(this.to());
|
|
537
|
-
const hooks = this._hookBuilder.buildHooksForPhase(
|
|
538
|
-
TransitionHookPhase.SUCCESS,
|
|
539
|
-
);
|
|
540
|
-
hooks.forEach((hook) => {
|
|
541
|
-
hook.invokeHook();
|
|
542
|
-
});
|
|
543
|
-
};
|
|
544
|
-
|
|
545
|
-
const transitionError = (reason) => {
|
|
546
|
-
trace.traceError(reason, this);
|
|
547
|
-
this.success = false;
|
|
548
|
-
this._deferred.reject(reason);
|
|
549
|
-
this._error = reason;
|
|
550
|
-
const hooks = getHooksFor(TransitionHookPhase.ERROR);
|
|
551
|
-
hooks.forEach((hook) => hook.invokeHook());
|
|
552
|
-
};
|
|
553
|
-
|
|
554
|
-
const runTransition = () => {
|
|
555
|
-
// Wait to build the RUN hook chain until the BEFORE hooks are done
|
|
556
|
-
// This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.
|
|
557
|
-
const allRunHooks = getHooksFor(TransitionHookPhase.RUN);
|
|
558
|
-
const resolved = Promise.resolve();
|
|
559
|
-
return TransitionHook.invokeHooks(allRunHooks, () => resolved);
|
|
560
|
-
};
|
|
561
|
-
const startTransition = () => {
|
|
562
|
-
const globals = this.globals;
|
|
563
|
-
globals.lastStartedTransitionId = this.$id;
|
|
564
|
-
globals.transition = this;
|
|
565
|
-
globals.transitionHistory.enqueue(this);
|
|
566
|
-
trace.traceTransitionStart(this);
|
|
567
|
-
return Promise.resolve();
|
|
568
|
-
};
|
|
569
|
-
const allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);
|
|
570
|
-
TransitionHook.invokeHooks(allBeforeHooks, startTransition)
|
|
571
|
-
.then(runTransition)
|
|
572
|
-
.then(transitionSuccess, transitionError);
|
|
573
|
-
return this.promise;
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Checks if the Transition is valid
|
|
577
|
-
*
|
|
578
|
-
* @returns true if the Transition is valid
|
|
579
|
-
*/
|
|
580
|
-
valid() {
|
|
581
|
-
return !this.error() || this.success !== undefined;
|
|
582
|
-
}
|
|
583
|
-
/**
|
|
584
|
-
* Aborts this transition
|
|
585
|
-
*
|
|
586
|
-
* Imperative API to abort a Transition.
|
|
587
|
-
* This only applies to Transitions that are not yet complete.
|
|
588
|
-
*/
|
|
589
|
-
abort() {
|
|
590
|
-
// Do not set flag if the transition is already complete
|
|
591
|
-
if (isUndefined(this.success)) {
|
|
592
|
-
this._aborted = true;
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
/**
|
|
596
|
-
* The Transition error reason.
|
|
597
|
-
*
|
|
598
|
-
* If the transition is invalid (and could not be run), returns the reason the transition is invalid.
|
|
599
|
-
* If the transition was valid and ran, but was not successful, returns the reason the transition failed.
|
|
600
|
-
*
|
|
601
|
-
* @returns a transition rejection explaining why the transition is invalid, or the reason the transition failed.
|
|
602
|
-
*/
|
|
603
|
-
error() {
|
|
604
|
-
const state = this.$to();
|
|
605
|
-
if (state.self.abstract) {
|
|
606
|
-
return Rejection.invalid(
|
|
607
|
-
`Cannot transition to abstract state '${state.name}'`,
|
|
608
|
-
);
|
|
609
|
-
}
|
|
610
|
-
const paramDefs = state.parameters();
|
|
611
|
-
const values = this.params();
|
|
612
|
-
const invalidParams = paramDefs.filter(
|
|
613
|
-
(param) => !param.validates(values[param.id]),
|
|
614
|
-
);
|
|
615
|
-
if (invalidParams.length) {
|
|
616
|
-
const invalidValues = invalidParams
|
|
617
|
-
.map((param) => `[${param.id}:${stringify(values[param.id])}]`)
|
|
618
|
-
.join(", ");
|
|
619
|
-
const detail = `The following parameter values are not valid for state '${state.name}': ${invalidValues}`;
|
|
620
|
-
return Rejection.invalid(detail);
|
|
621
|
-
}
|
|
622
|
-
if (this.success === false) return this._error;
|
|
623
|
-
}
|
|
624
|
-
/**
|
|
625
|
-
* A string representation of the Transition
|
|
626
|
-
*
|
|
627
|
-
* @returns A string representation of the Transition
|
|
628
|
-
*/
|
|
629
|
-
toString() {
|
|
630
|
-
const fromStateOrName = this.from();
|
|
631
|
-
const toStateOrName = this.to();
|
|
632
|
-
const avoidEmptyHash = (params) =>
|
|
633
|
-
params["#"] !== null && params["#"] !== undefined
|
|
634
|
-
? params
|
|
635
|
-
: omit(params, ["#"]);
|
|
636
|
-
// (X) means the to state is invalid.
|
|
637
|
-
const id = this.$id,
|
|
638
|
-
from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,
|
|
639
|
-
fromParams = stringify(
|
|
640
|
-
avoidEmptyHash(
|
|
641
|
-
this._treeChanges.from
|
|
642
|
-
.map((x) => x.paramValues)
|
|
643
|
-
.reduce((acc, obj) => ({ ...acc, ...obj }), {}),
|
|
644
|
-
),
|
|
645
|
-
),
|
|
646
|
-
toValid = this.valid() ? "" : "(X) ",
|
|
647
|
-
to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,
|
|
648
|
-
toParams = stringify(avoidEmptyHash(this.params()));
|
|
649
|
-
return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
Transition.diToken = Transition;
|