@angular-wave/angular.ts 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +8 -1
- 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,12 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@playwright/test";
|
|
2
|
-
|
|
3
|
-
const TEST_URL = "src/services/location/location.html?random=false";
|
|
4
|
-
|
|
5
|
-
test("unit tests contain no errors", async ({ page }) => {
|
|
6
|
-
await page.goto(TEST_URL);
|
|
7
|
-
await page.content();
|
|
8
|
-
await page.waitForTimeout(1000);
|
|
9
|
-
await expect(page.locator(".jasmine-overall-result")).toHaveText(
|
|
10
|
-
/ 0 failures/,
|
|
11
|
-
);
|
|
12
|
-
});
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A function that logs messages. Accepts any number of arguments.
|
|
3
|
-
*/
|
|
4
|
-
export type LogCall = (...args: any[]) => void;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* A function that returns a LogService implementation.
|
|
8
|
-
*/
|
|
9
|
-
export type LogServiceFactory = (...args: any[]) => LogService;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Service for logging messages at various levels.
|
|
13
|
-
*/
|
|
14
|
-
export interface LogService {
|
|
15
|
-
/**
|
|
16
|
-
* Log a debug message.
|
|
17
|
-
*/
|
|
18
|
-
debug: LogCall;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Log an error message.
|
|
22
|
-
*/
|
|
23
|
-
error: LogCall;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Log an info message.
|
|
27
|
-
*/
|
|
28
|
-
info: LogCall;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Log a general message.
|
|
32
|
-
*/
|
|
33
|
-
log: LogCall;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Log a warning message.
|
|
37
|
-
*/
|
|
38
|
-
warn: LogCall;
|
|
39
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<title>AngularTS Test Runner</title>
|
|
6
|
-
|
|
7
|
-
<link rel="shortcut icon" type="image/png" href="/images/favicon.ico" />
|
|
8
|
-
<link rel="stylesheet" href="/jasmine/jasmine.css" />
|
|
9
|
-
<link rel="stylesheet" href="/public/jasmine-helper.css" />
|
|
10
|
-
<script src="/jasmine/jasmine.js"></script>
|
|
11
|
-
<script src="/jasmine/jasmine-html.js"></script>
|
|
12
|
-
<script src="/jasmine/boot0.js"></script>
|
|
13
|
-
<script src="/jasmine/boot1.js"></script>
|
|
14
|
-
<script type="module" src="/src/services/log/log.spec.js"></script>
|
|
15
|
-
</head>
|
|
16
|
-
<body>
|
|
17
|
-
<div id="app"></div>
|
|
18
|
-
</body>
|
|
19
|
-
</html>
|
package/src/services/log/log.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { isError } from "../../shared/utils.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Configuration provider for `$log` service
|
|
5
|
-
*/
|
|
6
|
-
export class LogProvider {
|
|
7
|
-
/** @private */
|
|
8
|
-
constructor() {
|
|
9
|
-
/** @type {boolean} */
|
|
10
|
-
this.debug = false;
|
|
11
|
-
/** @private @type {import("./interface.ts").LogServiceFactory | null} */
|
|
12
|
-
this._override = null;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Override the default {@link LogService} implemenation
|
|
17
|
-
* @param {import("./interface.ts").LogServiceFactory} fn
|
|
18
|
-
*/
|
|
19
|
-
setLogger(fn) {
|
|
20
|
-
this._override = fn;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/** @private */
|
|
24
|
-
formatError(arg) {
|
|
25
|
-
if (isError(arg)) {
|
|
26
|
-
if (arg.stack) {
|
|
27
|
-
arg =
|
|
28
|
-
arg.message && arg.stack.indexOf(arg.message) === -1
|
|
29
|
-
? `Error: ${arg.message}\n${arg.stack}`
|
|
30
|
-
: arg.stack;
|
|
31
|
-
} else if (arg.sourceURL) {
|
|
32
|
-
arg = `${arg.message}\n${arg.sourceURL}:${arg.line}`;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return arg;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* @private
|
|
40
|
-
* @param {string} type
|
|
41
|
-
*/
|
|
42
|
-
consoleLog(type) {
|
|
43
|
-
const console = window.console || {};
|
|
44
|
-
const logFn = console[type] || console.log || (() => {});
|
|
45
|
-
|
|
46
|
-
return (...args) => {
|
|
47
|
-
const formattedArgs = args.map((arg) => this.formatError(arg));
|
|
48
|
-
return logFn.apply(console, formattedArgs);
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* @returns {import("./interface.ts").LogService}
|
|
54
|
-
*/
|
|
55
|
-
$get() {
|
|
56
|
-
if (this._override) {
|
|
57
|
-
return this._override();
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
log: this.consoleLog("log"),
|
|
61
|
-
info: this.consoleLog("info"),
|
|
62
|
-
warn: this.consoleLog("warn"),
|
|
63
|
-
error: this.consoleLog("error"),
|
|
64
|
-
debug: (() => {
|
|
65
|
-
const fn = this.consoleLog("debug");
|
|
66
|
-
return (...args) => {
|
|
67
|
-
if (this.debug) {
|
|
68
|
-
fn.apply(this, args);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
})(),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { createInjector } from "../../core/di/injector.js";
|
|
2
|
-
import { Angular } from "../../angular.js";
|
|
3
|
-
import { dealoc } from "../../shared/dom.js";
|
|
4
|
-
|
|
5
|
-
describe("$logService", () => {
|
|
6
|
-
let $logService,
|
|
7
|
-
logProvider,
|
|
8
|
-
el,
|
|
9
|
-
log = [];
|
|
10
|
-
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
el = document.getElementById("app");
|
|
13
|
-
el.innerHTML = "";
|
|
14
|
-
let angular = new Angular();
|
|
15
|
-
angular.module("default", []).config(($logProvider) => {
|
|
16
|
-
logProvider = $logProvider;
|
|
17
|
-
});
|
|
18
|
-
angular.bootstrap(el, ["default"]).invoke((_$log_) => {
|
|
19
|
-
$logService = _$log_;
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
window.console["error"] = (msg) => {
|
|
23
|
-
log.push(msg);
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
afterEach(() => {
|
|
28
|
-
dealoc(el);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("should be available as a provider", () => {
|
|
32
|
-
expect(logProvider).toBeDefined();
|
|
33
|
-
expect(logProvider.debug).toBeFalse();
|
|
34
|
-
expect(typeof logProvider.$get).toBe("function");
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it("should be injectable", () => {
|
|
38
|
-
expect($logService).toBeDefined();
|
|
39
|
-
expect(typeof $logService.debug).toBe("function");
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it("should call console.error by default when $log.error is called", () => {
|
|
43
|
-
$logService.error("error message");
|
|
44
|
-
expect(log[0]).toEqual("error message");
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it("can be overriden", () => {
|
|
48
|
-
let called = false;
|
|
49
|
-
angular.module("default2", []).config(($logProvider) => {
|
|
50
|
-
$logProvider.setLogger(() => ({
|
|
51
|
-
log: () => (called = true),
|
|
52
|
-
info: () => {},
|
|
53
|
-
warn: () => {},
|
|
54
|
-
error: () => {},
|
|
55
|
-
debug: () => {},
|
|
56
|
-
}));
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
let $injector = createInjector(["ng", "default2"]);
|
|
60
|
-
expect($injector).toBeDefined();
|
|
61
|
-
$injector.get("$log").log();
|
|
62
|
-
expect(called).toBeTrue();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@playwright/test";
|
|
2
|
-
|
|
3
|
-
const TEST_URL = "src/services/log/log.html?random=false";
|
|
4
|
-
|
|
5
|
-
test("unit tests contain no errors", async ({ page }) => {
|
|
6
|
-
await page.goto(TEST_URL);
|
|
7
|
-
await page.content();
|
|
8
|
-
await page.waitForTimeout(1000);
|
|
9
|
-
await expect(page.locator(".jasmine-overall-result")).toHaveText(
|
|
10
|
-
/ 0 failures/,
|
|
11
|
-
);
|
|
12
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<title>AngularTS Test Runner</title>
|
|
6
|
-
|
|
7
|
-
<link rel="shortcut icon" type="image/png" href="/images/favicon.ico" />
|
|
8
|
-
<link rel="stylesheet" href="/jasmine/jasmine.css" />
|
|
9
|
-
<link rel="stylesheet" href="/public/jasmine-helper.css" />
|
|
10
|
-
<script src="/jasmine/jasmine.js"></script>
|
|
11
|
-
<script src="/jasmine/jasmine-html.js"></script>
|
|
12
|
-
<script src="/jasmine/boot0.js"></script>
|
|
13
|
-
<script src="/jasmine/boot1.js"></script>
|
|
14
|
-
<script type="module" src="/src/services/pubsub/pubsub.spec.js"></script>
|
|
15
|
-
</head>
|
|
16
|
-
<body>
|
|
17
|
-
<div id="app"></div>
|
|
18
|
-
</body>
|
|
19
|
-
</html>
|
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
/** @typedef {import('../../interface.js').ServiceProvider} ServiceProvider
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Configurable provider for an injectable event bus
|
|
5
|
-
* @extends {ServiceProvider}
|
|
6
|
-
*/
|
|
7
|
-
export class PubSubProvider {
|
|
8
|
-
constructor() {
|
|
9
|
-
/**
|
|
10
|
-
* @type {PubSub}
|
|
11
|
-
*/
|
|
12
|
-
this.eventBus = EventBus;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @returns {PubSub}
|
|
17
|
-
*/
|
|
18
|
-
$get = () => this.eventBus;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export class PubSub {
|
|
22
|
-
/**
|
|
23
|
-
* Topic-based publish/subscribe channel. Maintains a map of topics to
|
|
24
|
-
* subscriptions. When a message is published to a topic, all functions
|
|
25
|
-
* subscribed to that topic are invoked in the order they were added.
|
|
26
|
-
* Uncaught errors abort publishing.
|
|
27
|
-
*
|
|
28
|
-
* Topics may be identified by any nonempty string, <strong>except</strong>
|
|
29
|
-
* strings corresponding to native Object properties, e.g. "constructor",
|
|
30
|
-
* "toString", "hasOwnProperty", etc.
|
|
31
|
-
*
|
|
32
|
-
* @param {boolean=} async Enable asynchronous behavior. Recommended for
|
|
33
|
-
* new code. See notes on the publish() method.
|
|
34
|
-
*/
|
|
35
|
-
constructor(async = false) {
|
|
36
|
-
this.disposed = false;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The next available subscription key. Internally, this is an index into the
|
|
40
|
-
* sparse array of subscriptions.
|
|
41
|
-
*
|
|
42
|
-
* @private {number}
|
|
43
|
-
*/
|
|
44
|
-
this.key = 1;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Array of subscription keys pending removal once publishing is done.
|
|
48
|
-
*
|
|
49
|
-
* @private {!Array<number>}
|
|
50
|
-
* @const
|
|
51
|
-
*/
|
|
52
|
-
this.pendingKeys = [];
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Lock to prevent the removal of subscriptions during publishing. Incremented
|
|
56
|
-
* at the beginning of {@link #publish}, and decremented at the end.
|
|
57
|
-
*
|
|
58
|
-
* @private {number}
|
|
59
|
-
*/
|
|
60
|
-
this.publishDepth = 0;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Sparse array of subscriptions. Each subscription is represented by a tuple
|
|
64
|
-
* comprising a topic identifier, a function, and an optional context object.
|
|
65
|
-
* Each tuple occupies three consecutive positions in the array, with the
|
|
66
|
-
* topic identifier at index n, the function at index (n + 1), the context
|
|
67
|
-
* object at index (n + 2), the next topic at index (n + 3), etc. (This
|
|
68
|
-
* representation minimizes the number of object allocations and has been
|
|
69
|
-
* shown to be faster than an array of objects with three key-value pairs or
|
|
70
|
-
* three parallel arrays, especially on IE.) Once a subscription is removed
|
|
71
|
-
* via {@link unsubscribe} or {@link unsubscribeByKey}, the three
|
|
72
|
-
* corresponding array elements are deleted, and never reused. This means the
|
|
73
|
-
* total number of subscriptions during the lifetime of the pubsub channel is
|
|
74
|
-
* limited by the maximum length of a JavaScript array to (2^32 - 1) / 3 =
|
|
75
|
-
* 1,431,655,765 subscriptions, which should suffice for most applications.
|
|
76
|
-
*
|
|
77
|
-
* @private {!Array<?>}
|
|
78
|
-
* @const
|
|
79
|
-
*/
|
|
80
|
-
this.subscriptions = [];
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Map of topics to arrays of subscription keys.
|
|
84
|
-
*
|
|
85
|
-
* @private {!Object<!Array<number>>}
|
|
86
|
-
*/
|
|
87
|
-
this.topics = {};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* @private @const {boolean}
|
|
91
|
-
*/
|
|
92
|
-
this.async_ = Boolean(async);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Subscribes a function to a topic. The function is invoked as a method on
|
|
97
|
-
* the given `opt_context` object, or in the global scope if no context
|
|
98
|
-
* is specified. Subscribing the same function to the same topic multiple
|
|
99
|
-
* times will result in multiple function invocations while publishing.
|
|
100
|
-
* Returns a subscription key that can be used to unsubscribe the function from
|
|
101
|
-
* the topic via {@link unsubscribeByKey}.
|
|
102
|
-
*
|
|
103
|
-
* @param {string} topic Topic to subscribe to.
|
|
104
|
-
* @param {Function} fn Function to be invoked when a message is published to
|
|
105
|
-
* the given topic.
|
|
106
|
-
* @param {Object=} opt_context Object in whose context the function is to be
|
|
107
|
-
* called (the global scope if none).
|
|
108
|
-
* @return {number} Subscription key.
|
|
109
|
-
*/
|
|
110
|
-
subscribe(topic, fn, opt_context = null) {
|
|
111
|
-
let keys = this.topics[topic];
|
|
112
|
-
if (!keys) {
|
|
113
|
-
// First subscription to this topic; initialize subscription key array.
|
|
114
|
-
keys = this.topics[topic] = [];
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Push the tuple representing the subscription onto the subscription array.
|
|
118
|
-
const key = this.key;
|
|
119
|
-
this.subscriptions[key] = topic;
|
|
120
|
-
this.subscriptions[key + 1] = fn;
|
|
121
|
-
this.subscriptions[key + 2] = opt_context;
|
|
122
|
-
this.key = key + 3;
|
|
123
|
-
|
|
124
|
-
// Push the subscription key onto the list of subscriptions for the topic.
|
|
125
|
-
keys.push(key);
|
|
126
|
-
|
|
127
|
-
// Return the subscription key.
|
|
128
|
-
return key;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Subscribes a single-use function to a topic. The function is invoked as a
|
|
133
|
-
* method on the given `opt_context` object, or in the global scope if
|
|
134
|
-
* no context is specified, and is then unsubscribed. Returns a subscription
|
|
135
|
-
* key that can be used to unsubscribe the function from the topic via
|
|
136
|
-
* {@link unsubscribeByKey}.
|
|
137
|
-
*
|
|
138
|
-
* @param {string} topic Topic to subscribe to.
|
|
139
|
-
* @param {Function} fn Function to be invoked once and then unsubscribed when
|
|
140
|
-
* a message is published to the given topic.
|
|
141
|
-
* @param {Object=} opt_context Object in whose context the function is to be
|
|
142
|
-
* called (the global scope if none).
|
|
143
|
-
* @return {number} Subscription key.
|
|
144
|
-
*/
|
|
145
|
-
subscribeOnce(topic, fn, opt_context = null) {
|
|
146
|
-
let called = false;
|
|
147
|
-
|
|
148
|
-
// Behold the power of lexical closures!
|
|
149
|
-
const key = this.subscribe(
|
|
150
|
-
topic,
|
|
151
|
-
(...args) => {
|
|
152
|
-
if (!called) {
|
|
153
|
-
called = true;
|
|
154
|
-
|
|
155
|
-
// Unsubscribe before calling function so the function is unsubscribed
|
|
156
|
-
// even if it throws an exception.
|
|
157
|
-
this.unsubscribeByKey(key);
|
|
158
|
-
|
|
159
|
-
fn.apply(opt_context, args);
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
this,
|
|
163
|
-
);
|
|
164
|
-
return key;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Runs a function asynchronously.
|
|
169
|
-
*
|
|
170
|
-
* @private
|
|
171
|
-
* @param {Function} fn Function to run.
|
|
172
|
-
* @param {Object} context Context in which to run the function.
|
|
173
|
-
* @param {Array} args Arguments to pass to the function.
|
|
174
|
-
*/
|
|
175
|
-
static runAsync_(fn, context, args) {
|
|
176
|
-
Promise.resolve().then(() => {
|
|
177
|
-
fn.apply(context, args);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Unsubscribes a function from a topic. Only deletes the first match found.
|
|
183
|
-
* Returns a Boolean indicating whether a subscription was removed.
|
|
184
|
-
*
|
|
185
|
-
* @param {string} topic Topic to unsubscribe from.
|
|
186
|
-
* @param {Function} fn Function to unsubscribe.
|
|
187
|
-
* @param {Object=} opt_context Object in whose context the function was to be
|
|
188
|
-
* called (the global scope if none).
|
|
189
|
-
* @return {boolean} Whether a matching subscription was removed.
|
|
190
|
-
*/
|
|
191
|
-
unsubscribe(topic, fn, opt_context = null) {
|
|
192
|
-
const keys = this.topics[topic];
|
|
193
|
-
if (keys) {
|
|
194
|
-
const subscriptions = this.subscriptions;
|
|
195
|
-
const key = keys.find(
|
|
196
|
-
(k) =>
|
|
197
|
-
subscriptions[k + 1] === fn && subscriptions[k + 2] === opt_context,
|
|
198
|
-
);
|
|
199
|
-
|
|
200
|
-
if (key !== undefined) {
|
|
201
|
-
return this.unsubscribeByKey(key);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return false;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Removes a subscription based on the key returned by {@link subscribe}.
|
|
210
|
-
* No-op if no matching subscription is found. Returns a Boolean indicating
|
|
211
|
-
* whether a subscription was removed.
|
|
212
|
-
*
|
|
213
|
-
* @param {number} key Subscription key.
|
|
214
|
-
* @return {boolean} Whether a matching subscription was removed.
|
|
215
|
-
*/
|
|
216
|
-
unsubscribeByKey(key) {
|
|
217
|
-
const topic = this.subscriptions[key];
|
|
218
|
-
if (topic) {
|
|
219
|
-
let keys = this.topics[topic];
|
|
220
|
-
|
|
221
|
-
if (this.publishDepth !== 0) {
|
|
222
|
-
// Defer removal until after publishing is complete, but replace the
|
|
223
|
-
// function with a no-op so it isn't called.
|
|
224
|
-
this.pendingKeys.push(key);
|
|
225
|
-
this.subscriptions[key + 1] = () => {};
|
|
226
|
-
} else {
|
|
227
|
-
if (keys) {
|
|
228
|
-
this.topics[topic] = keys.filter((k) => k !== key);
|
|
229
|
-
}
|
|
230
|
-
delete this.subscriptions[key];
|
|
231
|
-
delete this.subscriptions[key + 1];
|
|
232
|
-
delete this.subscriptions[key + 2];
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
return !!topic;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Publishes a message to a topic. Calls functions subscribed to the topic in
|
|
241
|
-
* the order in which they were added, passing all arguments along.
|
|
242
|
-
*
|
|
243
|
-
* If this object was created with async=true, subscribed functions are called
|
|
244
|
-
* via Promise.resolve(). Otherwise, the functions are called directly, and if
|
|
245
|
-
* any of them throw an uncaught error, publishing is aborted.
|
|
246
|
-
*
|
|
247
|
-
* @param {string} topic Topic to publish to.
|
|
248
|
-
* @param {...*} var_args Arguments that are applied to each subscription
|
|
249
|
-
* function.
|
|
250
|
-
* @return {boolean} Whether any subscriptions were called.
|
|
251
|
-
*/
|
|
252
|
-
publish(topic, ...var_args) {
|
|
253
|
-
const keys = this.topics[topic];
|
|
254
|
-
if (keys) {
|
|
255
|
-
const args = var_args;
|
|
256
|
-
|
|
257
|
-
if (this.async_) {
|
|
258
|
-
// For each key in the list of subscription keys for the topic, schedule
|
|
259
|
-
// the function to be applied to the arguments in the appropriate context.
|
|
260
|
-
for (let i = 0; i < keys.length; i++) {
|
|
261
|
-
const key = keys[i];
|
|
262
|
-
PubSub.runAsync_(
|
|
263
|
-
this.subscriptions[key + 1],
|
|
264
|
-
this.subscriptions[key + 2],
|
|
265
|
-
args,
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
} else {
|
|
269
|
-
this.publishDepth++;
|
|
270
|
-
|
|
271
|
-
try {
|
|
272
|
-
for (
|
|
273
|
-
let i = 0, len = keys.length;
|
|
274
|
-
i < len && !this.isDisposed();
|
|
275
|
-
i++
|
|
276
|
-
) {
|
|
277
|
-
const key = keys[i];
|
|
278
|
-
this.subscriptions[key + 1].apply(
|
|
279
|
-
this.subscriptions[key + 2],
|
|
280
|
-
args,
|
|
281
|
-
);
|
|
282
|
-
}
|
|
283
|
-
} finally {
|
|
284
|
-
this.publishDepth--;
|
|
285
|
-
|
|
286
|
-
if (this.pendingKeys.length > 0 && this.publishDepth === 0) {
|
|
287
|
-
let pendingKey;
|
|
288
|
-
while ((pendingKey = this.pendingKeys.pop())) {
|
|
289
|
-
this.unsubscribeByKey(pendingKey);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
return true;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
return false;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
* Clears the subscription list for a topic, or all topics if unspecified.
|
|
303
|
-
* @param {string=} opt_topic Topic to clear (all topics if unspecified).
|
|
304
|
-
*/
|
|
305
|
-
clear(opt_topic) {
|
|
306
|
-
if (opt_topic) {
|
|
307
|
-
const keys = this.topics[opt_topic];
|
|
308
|
-
if (keys) {
|
|
309
|
-
keys.forEach(this.unsubscribeByKey, this);
|
|
310
|
-
delete this.topics[opt_topic];
|
|
311
|
-
}
|
|
312
|
-
} else {
|
|
313
|
-
this.subscriptions.length = 0;
|
|
314
|
-
this.topics = {};
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Returns the number of subscriptions to the given topic (or all topics if
|
|
320
|
-
* unspecified). This number will not change while publishing any messages.
|
|
321
|
-
* @param {string=} opt_topic The topic (all topics if unspecified).
|
|
322
|
-
* @return {number} Number of subscriptions to the topic.
|
|
323
|
-
*/
|
|
324
|
-
getCount(opt_topic) {
|
|
325
|
-
if (opt_topic) {
|
|
326
|
-
const keys = this.topics[opt_topic];
|
|
327
|
-
return keys ? keys.length : 0;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
let count = 0;
|
|
331
|
-
for (const topic in this.topics) {
|
|
332
|
-
count += this.getCount(topic);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
return count;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
isDisposed() {
|
|
339
|
-
return this.disposed;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
dispose() {
|
|
343
|
-
this.clear();
|
|
344
|
-
this.pendingKeys.length = 0;
|
|
345
|
-
this.disposed = true;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
export const EventBus = new PubSub(true);
|