@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,207 +0,0 @@
|
|
|
1
|
-
import { find, pick, omit, unnestR, arrayTuples } from "../../shared/common.js";
|
|
2
|
-
import { propEq } from "../../shared/hof.js";
|
|
3
|
-
import { TargetState } from "../state/target-state.js";
|
|
4
|
-
import { PathNode } from "./path-node.js";
|
|
5
|
-
/**
|
|
6
|
-
* This class contains functions which convert TargetStates, Nodes and paths from one type to another.
|
|
7
|
-
*/
|
|
8
|
-
export class PathUtils {
|
|
9
|
-
static buildPath(targetState) {
|
|
10
|
-
const toParams = targetState.params();
|
|
11
|
-
return targetState
|
|
12
|
-
.$state()
|
|
13
|
-
.path.map((state) => new PathNode(state).applyRawParams(toParams));
|
|
14
|
-
}
|
|
15
|
-
/** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */
|
|
16
|
-
static buildToPath(fromPath, targetState) {
|
|
17
|
-
const toPath = PathUtils.buildPath(targetState);
|
|
18
|
-
if (targetState.options().inherit) {
|
|
19
|
-
return PathUtils.inheritParams(
|
|
20
|
-
fromPath,
|
|
21
|
-
toPath,
|
|
22
|
-
Object.keys(targetState.params()),
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
return toPath;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Creates ViewConfig objects and adds to nodes.
|
|
29
|
-
*
|
|
30
|
-
* On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state
|
|
31
|
-
*/
|
|
32
|
-
static applyViewConfigs($view, path, states) {
|
|
33
|
-
// Only apply the viewConfigs to the nodes for the given states
|
|
34
|
-
path
|
|
35
|
-
.filter((node) => states.includes(node.state))
|
|
36
|
-
.forEach((node) => {
|
|
37
|
-
const viewDecls = Object.values(node.state.views || {});
|
|
38
|
-
const subPath = PathUtils.subPath(path, (n) => n === node);
|
|
39
|
-
const viewConfigs = viewDecls.map((view) => {
|
|
40
|
-
return $view.createViewConfig(subPath, view);
|
|
41
|
-
});
|
|
42
|
-
node.views = viewConfigs.reduce(unnestR, []);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath
|
|
47
|
-
*
|
|
48
|
-
* For a parameter in a node to be inherited from the from path:
|
|
49
|
-
* - The toPath's node must have a matching node in the fromPath (by state).
|
|
50
|
-
* - The parameter name must not be found in the toKeys parameter array.
|
|
51
|
-
*
|
|
52
|
-
* Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some
|
|
53
|
-
* caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,
|
|
54
|
-
* it is not inherited from the fromPath.
|
|
55
|
-
*/
|
|
56
|
-
static inheritParams(fromPath, toPath, toKeys = []) {
|
|
57
|
-
function nodeParamVals(path, state) {
|
|
58
|
-
/** @type {PathNode} */
|
|
59
|
-
const node = find(path, propEq("state", state));
|
|
60
|
-
return Object.assign({}, node && node.paramValues);
|
|
61
|
-
}
|
|
62
|
-
const noInherit = fromPath
|
|
63
|
-
.map((node) => node.paramSchema)
|
|
64
|
-
.reduce(unnestR, [])
|
|
65
|
-
.filter((param) => !param.inherit)
|
|
66
|
-
.map((x) => x.id);
|
|
67
|
-
/**
|
|
68
|
-
* Given an [[PathNode]] "toNode", return a new [[PathNode]] with param values inherited from the
|
|
69
|
-
* matching node in fromPath. Only inherit keys that aren't found in "toKeys" from the node in "fromPath""
|
|
70
|
-
*/
|
|
71
|
-
function makeInheritedParamsNode(toNode) {
|
|
72
|
-
// All param values for the node (may include default key/vals, when key was not found in toParams)
|
|
73
|
-
let toParamVals = Object.assign({}, toNode && toNode.paramValues);
|
|
74
|
-
// limited to only those keys found in toParams
|
|
75
|
-
const incomingParamVals = pick(toParamVals, toKeys);
|
|
76
|
-
toParamVals = omit(toParamVals, toKeys);
|
|
77
|
-
const fromParamVals = omit(
|
|
78
|
-
nodeParamVals(fromPath, toNode.state) || {},
|
|
79
|
-
noInherit,
|
|
80
|
-
);
|
|
81
|
-
// extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals
|
|
82
|
-
const ownParamVals = Object.assign(
|
|
83
|
-
toParamVals,
|
|
84
|
-
fromParamVals,
|
|
85
|
-
incomingParamVals,
|
|
86
|
-
);
|
|
87
|
-
return new PathNode(toNode.state).applyRawParams(ownParamVals);
|
|
88
|
-
}
|
|
89
|
-
// The param keys specified by the incoming toParams
|
|
90
|
-
return toPath.map(makeInheritedParamsNode);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Computes the tree changes (entering, exiting) between a fromPath and toPath.
|
|
95
|
-
* @param {PathNode[]} fromPath
|
|
96
|
-
* @param {PathNode[]} toPath
|
|
97
|
-
* @param {boolean} [reloadState]
|
|
98
|
-
* @returns {import("../transition/interface.js").TreeChanges}
|
|
99
|
-
*/
|
|
100
|
-
static treeChanges(fromPath, toPath, reloadState) {
|
|
101
|
-
const max = Math.min(fromPath.length, toPath.length);
|
|
102
|
-
let keep = 0;
|
|
103
|
-
const nodesMatch = (node1, node2) =>
|
|
104
|
-
node1.equals(node2, PathUtils.nonDynamicParams);
|
|
105
|
-
while (
|
|
106
|
-
keep < max &&
|
|
107
|
-
fromPath[keep].state !== reloadState &&
|
|
108
|
-
nodesMatch(fromPath[keep], toPath[keep])
|
|
109
|
-
) {
|
|
110
|
-
keep++;
|
|
111
|
-
}
|
|
112
|
-
/** Given a retained node, return a new node which uses the to node's param values */
|
|
113
|
-
function applyToParams(retainedNode, idx) {
|
|
114
|
-
const cloned = retainedNode.clone();
|
|
115
|
-
cloned.paramValues = toPath[idx].paramValues;
|
|
116
|
-
return cloned;
|
|
117
|
-
}
|
|
118
|
-
let from, retained, exiting, entering, to;
|
|
119
|
-
from = fromPath;
|
|
120
|
-
retained = from.slice(0, keep);
|
|
121
|
-
exiting = from.slice(keep);
|
|
122
|
-
// Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped
|
|
123
|
-
const retainedWithToParams = retained.map(applyToParams);
|
|
124
|
-
entering = toPath.slice(keep);
|
|
125
|
-
to = retainedWithToParams.concat(entering);
|
|
126
|
-
return { from, to, retained, retainedWithToParams, exiting, entering };
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Returns a new path which is: the subpath of the first path which matches the second path.
|
|
130
|
-
*
|
|
131
|
-
* The new path starts from root and contains any nodes that match the nodes in the second path.
|
|
132
|
-
* It stops before the first non-matching node.
|
|
133
|
-
*
|
|
134
|
-
* Nodes are compared using their state property and their parameter values.
|
|
135
|
-
* If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.
|
|
136
|
-
*
|
|
137
|
-
* @param pathA the first path
|
|
138
|
-
* @param pathB the second path
|
|
139
|
-
* @param paramsFn a function which returns the parameters to consider when comparing
|
|
140
|
-
*
|
|
141
|
-
* @returns an array of PathNodes from the first path which match the nodes in the second path
|
|
142
|
-
*/
|
|
143
|
-
static matching(pathA, pathB, paramsFn) {
|
|
144
|
-
let done = false;
|
|
145
|
-
const tuples = arrayTuples(pathA, pathB);
|
|
146
|
-
return tuples.reduce((matching, [nodeA, nodeB]) => {
|
|
147
|
-
done = done || !nodeA.equals(nodeB, paramsFn);
|
|
148
|
-
return done ? matching : matching.concat(nodeA);
|
|
149
|
-
}, []);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Returns true if two paths are identical.
|
|
153
|
-
*
|
|
154
|
-
* @param pathA
|
|
155
|
-
* @param pathB
|
|
156
|
-
* @param paramsFn a function which returns the parameters to consider when comparing
|
|
157
|
-
* @returns true if the the states and parameter values for both paths are identical
|
|
158
|
-
*/
|
|
159
|
-
static equals(pathA, pathB, paramsFn) {
|
|
160
|
-
return (
|
|
161
|
-
pathA.length === pathB.length &&
|
|
162
|
-
PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Return a subpath of a path, which stops at the first matching node
|
|
167
|
-
*
|
|
168
|
-
* Given an array of nodes, returns a subset of the array starting from the first node,
|
|
169
|
-
* stopping when the first node matches the predicate.
|
|
170
|
-
*
|
|
171
|
-
* @param path a path of [[PathNode]]s
|
|
172
|
-
* @param predicate a [[Predicate]] fn that matches [[PathNode]]s
|
|
173
|
-
* @returns a subpath up to the matching node, or undefined if no match is found
|
|
174
|
-
*/
|
|
175
|
-
static subPath(path, predicate) {
|
|
176
|
-
const node = find(path, predicate);
|
|
177
|
-
const elementIdx = path.indexOf(node);
|
|
178
|
-
return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
static nonDynamicParams(node) {
|
|
182
|
-
return node.state
|
|
183
|
-
.parameters({ inherit: false })
|
|
184
|
-
.filter((param) => !param.dynamic);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/** Gets the raw parameter values from a path */
|
|
188
|
-
static paramValues(path) {
|
|
189
|
-
return path.reduce((acc, node) => Object.assign(acc, node.paramValues), {});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/** Given a PathNode[], create an TargetState
|
|
194
|
-
* @param {import("../state/state-registry.js").StateRegistryProvider} registry
|
|
195
|
-
* @param {Array<PathNode>} path
|
|
196
|
-
* @returns
|
|
197
|
-
*/
|
|
198
|
-
export function makeTargetState(registry, path) {
|
|
199
|
-
return new TargetState(
|
|
200
|
-
registry,
|
|
201
|
-
path.at(-1).state,
|
|
202
|
-
path
|
|
203
|
-
.map((x) => x.paramValues)
|
|
204
|
-
.reduce((acc, obj) => ({ ...acc, ...obj }), {}),
|
|
205
|
-
{},
|
|
206
|
-
);
|
|
207
|
-
}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* # The Resolve subsystem
|
|
3
|
-
*
|
|
4
|
-
* This subsystem is an asynchronous, hierarchical Dependency Injection system.
|
|
5
|
-
*
|
|
6
|
-
* Typically, resolve is configured on a state using a [[StateDeclaration.resolve]] declaration.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* An interface which is similar to an Angular 2 `Provider`
|
|
12
|
-
*/
|
|
13
|
-
export interface ProviderLike {
|
|
14
|
-
provide: any;
|
|
15
|
-
useClass?: any;
|
|
16
|
-
useFactory?: Function;
|
|
17
|
-
useValue?: any;
|
|
18
|
-
useExisting?: any;
|
|
19
|
-
deps?: any[];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* A plain object used to describe a [[Resolvable]]
|
|
24
|
-
*
|
|
25
|
-
* These objects may be used in the [[StateDeclaration.resolve]] array to declare
|
|
26
|
-
* async data that the state or substates require.
|
|
27
|
-
*
|
|
28
|
-
* #### Example:
|
|
29
|
-
* ```js
|
|
30
|
-
*
|
|
31
|
-
* var state = {
|
|
32
|
-
* name: 'main',
|
|
33
|
-
* resolve: [
|
|
34
|
-
* { token: 'myData', deps: [MyDataApi], resolveFn: (myDataApi) => myDataApi.getData() },
|
|
35
|
-
* ],
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export interface ResolvableLiteral {
|
|
40
|
-
/**
|
|
41
|
-
* A Dependency Injection token
|
|
42
|
-
*
|
|
43
|
-
* This Resolvable's DI token.
|
|
44
|
-
* The Resolvable will be injectable elsewhere using the token.
|
|
45
|
-
*/
|
|
46
|
-
token: any;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* A function which fetches the Resolvable's data
|
|
50
|
-
*
|
|
51
|
-
* A function which returns one of:
|
|
52
|
-
*
|
|
53
|
-
* - The resolved value (synchronously)
|
|
54
|
-
* - A promise for the resolved value
|
|
55
|
-
* - An Observable of the resolved value(s)
|
|
56
|
-
*
|
|
57
|
-
* This function will be provided the dependencies listed in [[deps]] as its arguments.
|
|
58
|
-
* The resolve system will asynchronously fetch the dependencies before invoking this function.
|
|
59
|
-
*/
|
|
60
|
-
resolveFn: Function;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Defines the Resolve Policy
|
|
64
|
-
*
|
|
65
|
-
* A policy that defines when to invoke the resolve,
|
|
66
|
-
* and whether to wait for async and unwrap the data
|
|
67
|
-
*/
|
|
68
|
-
policy?: ResolvePolicy;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* The Dependency Injection tokens
|
|
72
|
-
*
|
|
73
|
-
* This is an array of Dependency Injection tokens for the dependencies of the [[resolveFn]].
|
|
74
|
-
*
|
|
75
|
-
* The DI tokens are references to other `Resolvables`, or to other
|
|
76
|
-
* services from the native DI system.
|
|
77
|
-
*/
|
|
78
|
-
deps?: any[];
|
|
79
|
-
|
|
80
|
-
/** Pre-resolved data. */
|
|
81
|
-
data?: any;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Defines how a resolve is processed during a transition
|
|
86
|
-
*
|
|
87
|
-
* This object is the [[StateDeclaration.resolvePolicy]] property.
|
|
88
|
-
*
|
|
89
|
-
* #### Example:
|
|
90
|
-
* ```js
|
|
91
|
-
* // Fetched when the resolve's state is being entered.
|
|
92
|
-
* // Wait for the promise to resolve.
|
|
93
|
-
* var policy1 = { when: "LAZY", async: "WAIT" }
|
|
94
|
-
*
|
|
95
|
-
* // Fetched when the Transition is starting.
|
|
96
|
-
* // Do not wait for the returned promise to resolve.
|
|
97
|
-
* // Inject the raw promise/value
|
|
98
|
-
* var policy2 = { when: "EAGER", async: "NOWAIT" }
|
|
99
|
-
* ```
|
|
100
|
-
*
|
|
101
|
-
* The policy for a given Resolvable is merged from three sources (highest priority first):
|
|
102
|
-
*
|
|
103
|
-
* - 1) Individual resolve definition
|
|
104
|
-
* - 2) State definition
|
|
105
|
-
* - 3) Global default
|
|
106
|
-
*
|
|
107
|
-
* #### Example:
|
|
108
|
-
* ```js
|
|
109
|
-
* // Wait for an Observable to emit one item.
|
|
110
|
-
* // Since `wait` is not specified, it uses the `wait`
|
|
111
|
-
* // policy defined on the state, or the global default
|
|
112
|
-
* // if no `wait` policy is defined on the state
|
|
113
|
-
* import { RXWAIT } from '@uirouter/rx';
|
|
114
|
-
*
|
|
115
|
-
* var myResolvablePolicy = { async: RXWAIT }
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
export interface ResolvePolicy {
|
|
119
|
-
/**
|
|
120
|
-
* Defines when a Resolvable is resolved (fetched) during a transition
|
|
121
|
-
*
|
|
122
|
-
* - `LAZY` (default)
|
|
123
|
-
* - Resolved as the resolve's state is being entered
|
|
124
|
-
* - `EAGER`
|
|
125
|
-
* - Resolved as the transition is starting
|
|
126
|
-
*
|
|
127
|
-
* #### Example:
|
|
128
|
-
* Resolves for `main` and `main.home` are fetched when each state is entered.
|
|
129
|
-
* All of `main` resolves are processed before fetching `main.home` resolves.
|
|
130
|
-
* ```js
|
|
131
|
-
* var state = {
|
|
132
|
-
* name: 'main',
|
|
133
|
-
* resolve: mainResolves, // defined elsewhere
|
|
134
|
-
* resolvePolicy: { when: 'LAZY' }, // default
|
|
135
|
-
* }
|
|
136
|
-
*
|
|
137
|
-
* var state = {
|
|
138
|
-
* name: 'main.home',
|
|
139
|
-
* resolve: homeResolves, // defined elsewhere
|
|
140
|
-
* resolvePolicy: { when: 'LAZY' }, // default
|
|
141
|
-
* }
|
|
142
|
-
* ```
|
|
143
|
-
*
|
|
144
|
-
* #### Example:
|
|
145
|
-
* Resolves for `main` and `main.home` are fetched at the same time when the transition starts.
|
|
146
|
-
* This happens earlier in the lifecycle than when states are entered.
|
|
147
|
-
* All of the `main` and `main.home` resolves are fetched as soon as possible.
|
|
148
|
-
* ```js
|
|
149
|
-
* var mainState = {
|
|
150
|
-
* name: 'main',
|
|
151
|
-
* resolve: mainResolves, // defined elsewhere
|
|
152
|
-
* resolvePolicy: { when: 'EAGER' },
|
|
153
|
-
* }
|
|
154
|
-
*
|
|
155
|
-
* var homeState = {
|
|
156
|
-
* name: 'main.home',
|
|
157
|
-
* resolve: homeResolves, // defined elsewhere
|
|
158
|
-
* resolvePolicy: { when: 'EAGER' },
|
|
159
|
-
* }
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
when?: PolicyWhen;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Determines the unwrapping behavior of asynchronous resolve values.
|
|
166
|
-
*
|
|
167
|
-
* - `WAIT` (default)
|
|
168
|
-
* - If a promise is returned from the resolveFn, wait for the promise before proceeding
|
|
169
|
-
* - The unwrapped value from the promise
|
|
170
|
-
* - `NOWAIT`
|
|
171
|
-
* - If a promise is returned from the resolve, do not wait for the promise.
|
|
172
|
-
* - Any other value returned is wrapped in a promise.
|
|
173
|
-
* - The promise will not be unwrapped.
|
|
174
|
-
* - The promise itself will be provided when the resolve is injected or bound elsewhere.
|
|
175
|
-
* - {@link CustomAsyncPolicy}
|
|
176
|
-
* - You can define a custom function that will be called with the resolveFn value.
|
|
177
|
-
* - This function must return a promise.
|
|
178
|
-
* - The transition will wait for this promise before proceeding
|
|
179
|
-
*
|
|
180
|
-
* NOTE: The previous `RXWAIT` policy has become a CustomAsyncPolicy function exported in `@uirouter/rx` package.
|
|
181
|
-
*
|
|
182
|
-
* #### Example:
|
|
183
|
-
* The `Transition` will not wait for the resolve promise(s) from `main` to settle before continuing.
|
|
184
|
-
* Resolves for `main` will be provided to components wrapped in a `Promise`.
|
|
185
|
-
*
|
|
186
|
-
* The `Transition` will wait for the `main.home` resolve promises.
|
|
187
|
-
* Resolved values will be unwrapped before being provided to components.
|
|
188
|
-
* ```js
|
|
189
|
-
* var mainState = {
|
|
190
|
-
* name: 'main',
|
|
191
|
-
* resolve: mainResolves, // defined elsewhere
|
|
192
|
-
* resolvePolicy: { async: 'NOWAIT' },
|
|
193
|
-
* }
|
|
194
|
-
* var homeState = {
|
|
195
|
-
* name: 'main.home',
|
|
196
|
-
* resolve: homeResolves, // defined elsewhere
|
|
197
|
-
* resolvePolicy: { async: 'WAIT' }, // default
|
|
198
|
-
* }
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
async?: PolicyAsync;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export type PolicyWhen = "LAZY" | "EAGER";
|
|
205
|
-
export type PolicyAsync = "WAIT" | "NOWAIT" | CustomAsyncPolicy;
|
|
206
|
-
export interface CustomAsyncPolicy {
|
|
207
|
-
(data: any): Promise<any>;
|
|
208
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assert,
|
|
3
|
-
isFunction,
|
|
4
|
-
isObject,
|
|
5
|
-
isNullOrUndefined,
|
|
6
|
-
hasOwn,
|
|
7
|
-
} from "../../shared/utils.js";
|
|
8
|
-
import { trace } from "../common/trace.js";
|
|
9
|
-
import { stringify } from "../../shared/strings.js";
|
|
10
|
-
|
|
11
|
-
// TODO: explicitly make this user configurable
|
|
12
|
-
export let defaultResolvePolicy = {
|
|
13
|
-
when: "LAZY",
|
|
14
|
-
async: "WAIT",
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* The basic building block for the resolve system.
|
|
18
|
-
*
|
|
19
|
-
* Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),
|
|
20
|
-
* and the unwrapped-when-complete (.data) result of the resolveFn.
|
|
21
|
-
*
|
|
22
|
-
* Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the
|
|
23
|
-
* resolveFn) and returns the resulting promise.
|
|
24
|
-
*
|
|
25
|
-
* Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first
|
|
26
|
-
* parameter to those fns.
|
|
27
|
-
*/
|
|
28
|
-
export class Resolvable {
|
|
29
|
-
constructor(arg1, resolveFn, deps, policy, data) {
|
|
30
|
-
this.resolved = false;
|
|
31
|
-
this.promise = undefined;
|
|
32
|
-
if (arg1 instanceof Resolvable) {
|
|
33
|
-
Object.assign(this, arg1);
|
|
34
|
-
} else if (isFunction(resolveFn)) {
|
|
35
|
-
assert(!isNullOrUndefined(arg1), "token argument is required");
|
|
36
|
-
this.token = arg1;
|
|
37
|
-
this.policy = policy;
|
|
38
|
-
this.resolveFn = resolveFn;
|
|
39
|
-
this.deps = deps || [];
|
|
40
|
-
this.data = data;
|
|
41
|
-
this.resolved = data !== undefined;
|
|
42
|
-
this.promise = this.resolved ? Promise.resolve(this.data) : undefined;
|
|
43
|
-
} else if (
|
|
44
|
-
isObject(arg1) &&
|
|
45
|
-
arg1.token &&
|
|
46
|
-
(hasOwn(arg1, "resolveFn") || hasOwn(arg1, "data"))
|
|
47
|
-
) {
|
|
48
|
-
this.token = arg1.token;
|
|
49
|
-
this.resolveFn = arg1.resolveFn;
|
|
50
|
-
this.deps = arg1.deps;
|
|
51
|
-
this.policy = arg1.policy;
|
|
52
|
-
this.data = arg1.data;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
getPolicy(state) {
|
|
57
|
-
const thisPolicy = this.policy || {};
|
|
58
|
-
const statePolicy = (state && state.resolvePolicy) || {};
|
|
59
|
-
return {
|
|
60
|
-
when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,
|
|
61
|
-
async:
|
|
62
|
-
thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Asynchronously resolve this Resolvable's data
|
|
68
|
-
*
|
|
69
|
-
* Given a ResolveContext that this Resolvable is found in:
|
|
70
|
-
* Wait for this Resolvable's dependencies, then invoke this Resolvable's function
|
|
71
|
-
* and update the Resolvable's state
|
|
72
|
-
*/
|
|
73
|
-
resolve(resolveContext, trans) {
|
|
74
|
-
// Gets all dependencies from ResolveContext and wait for them to be resolved
|
|
75
|
-
const getResolvableDependencies = () =>
|
|
76
|
-
Promise.all(
|
|
77
|
-
resolveContext
|
|
78
|
-
.getDependencies(this)
|
|
79
|
-
.map((resolvable) => resolvable.get(resolveContext, trans)),
|
|
80
|
-
);
|
|
81
|
-
// Invokes the resolve function passing the resolved dependencies as arguments
|
|
82
|
-
const invokeResolveFn = (resolvedDeps) =>
|
|
83
|
-
this.resolveFn.apply(null, resolvedDeps);
|
|
84
|
-
const node = resolveContext.findNode(this);
|
|
85
|
-
const state = node && node.state;
|
|
86
|
-
const asyncPolicy = this.getPolicy(state).async;
|
|
87
|
-
const customAsyncPolicy = isFunction(asyncPolicy) ? asyncPolicy : (x) => x;
|
|
88
|
-
// After the final value has been resolved, update the state of the Resolvable
|
|
89
|
-
const applyResolvedValue = (resolvedValue) => {
|
|
90
|
-
this.data = resolvedValue;
|
|
91
|
-
this.resolved = true;
|
|
92
|
-
this.resolveFn = null;
|
|
93
|
-
trace.traceResolvableResolved(this, trans);
|
|
94
|
-
return this.data;
|
|
95
|
-
};
|
|
96
|
-
// Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.
|
|
97
|
-
this.promise = Promise.resolve()
|
|
98
|
-
.then(getResolvableDependencies)
|
|
99
|
-
.then(invokeResolveFn)
|
|
100
|
-
.then(customAsyncPolicy)
|
|
101
|
-
.then(applyResolvedValue);
|
|
102
|
-
return this.promise;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Gets a promise for this Resolvable's data.
|
|
106
|
-
*
|
|
107
|
-
* Fetches the data and returns a promise.
|
|
108
|
-
* Returns the existing promise if it has already been fetched once.
|
|
109
|
-
*/
|
|
110
|
-
get(resolveContext, trans) {
|
|
111
|
-
return this.promise || this.resolve(resolveContext, trans);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
toString() {
|
|
115
|
-
return `Resolvable(token: ${stringify(this.token)}, requires: [${this.deps.map(stringify)}])`;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
clone() {
|
|
119
|
-
return new Resolvable(this);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
Resolvable.fromData = (token, data) =>
|
|
123
|
-
new Resolvable(token, () => data, null, null, data);
|