@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
package/src/shared/dom.js
DELETED
|
@@ -1,716 +0,0 @@
|
|
|
1
|
-
import { concat, hasOwn, isDefined, isObject } from "./utils.js";
|
|
2
|
-
import { Cache } from "./cache.js";
|
|
3
|
-
|
|
4
|
-
/** @type {number} */
|
|
5
|
-
let jqId = 1;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Key for storing isolate scope data, attached to an element
|
|
9
|
-
*/
|
|
10
|
-
const ISOLATE_SCOPE_KEY = "$isolateScope";
|
|
11
|
-
const EXPANDO = "ng";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Key for storing scope data, attached to an element
|
|
15
|
-
*/
|
|
16
|
-
const SCOPE_KEY = "$scope";
|
|
17
|
-
|
|
18
|
-
const DASH_LOWERCASE_REGEXP = /-([a-z])/g;
|
|
19
|
-
const UNDERSCORE_LOWERCASE_REGEXP = /_([a-z])/g;
|
|
20
|
-
const SINGLE_TAG_REGEXP = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/;
|
|
21
|
-
const TAG_NAME_REGEXP = /<([\w:-]+)/;
|
|
22
|
-
|
|
23
|
-
// Table parts need to be wrapped with `<table>` or they're
|
|
24
|
-
// stripped to their contents when put in a div.
|
|
25
|
-
// XHTML parsers do not magically insert elements in the
|
|
26
|
-
// same way that tag soup parsers do, so we cannot shorten
|
|
27
|
-
// this by omitting <tbody> or other required elements.
|
|
28
|
-
const wrapMap = {
|
|
29
|
-
thead: ["table"],
|
|
30
|
-
col: ["colgroup", "table"],
|
|
31
|
-
tr: ["tbody", "table"],
|
|
32
|
-
td: ["tr", "tbody", "table"],
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
wrapMap.tbody =
|
|
36
|
-
wrapMap.tfoot =
|
|
37
|
-
wrapMap.colgroup =
|
|
38
|
-
wrapMap.caption =
|
|
39
|
-
wrapMap.thead;
|
|
40
|
-
wrapMap.th = wrapMap.td;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* A list of boolean attributes in HTML.
|
|
44
|
-
* @type {string[]}
|
|
45
|
-
*/
|
|
46
|
-
export const BOOLEAN_ATTR = [
|
|
47
|
-
"multiple",
|
|
48
|
-
"selected",
|
|
49
|
-
"checked",
|
|
50
|
-
"disabled",
|
|
51
|
-
"readonly",
|
|
52
|
-
"required",
|
|
53
|
-
"open",
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* A list of boolean attributes in HTML
|
|
58
|
-
* @type {string[]}
|
|
59
|
-
*/
|
|
60
|
-
const BOOLEAN_ELEMENTS = [
|
|
61
|
-
"INPUT",
|
|
62
|
-
"SELECT",
|
|
63
|
-
"OPTION",
|
|
64
|
-
"TEXTAREA",
|
|
65
|
-
"BUTTON",
|
|
66
|
-
"FORM",
|
|
67
|
-
"DETAILS",
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
///////////////////////////////////////////////////////////////////
|
|
71
|
-
//////////// HELPER FUNCTIONS /////////////////////////
|
|
72
|
-
///////////////////////////////////////////////////////////////////
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
* @returns {number} Next unique JQInstance id
|
|
77
|
-
*/
|
|
78
|
-
function jqNextId() {
|
|
79
|
-
return ++jqId;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @param {string} _all
|
|
84
|
-
* @param {string} letter
|
|
85
|
-
* @returns {string}
|
|
86
|
-
*/
|
|
87
|
-
function fnCamelCaseReplace(_all, letter) {
|
|
88
|
-
return letter.toUpperCase();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Converts kebab-case to camelCase.
|
|
93
|
-
* @param {string} name Name to normalize
|
|
94
|
-
* @returns {string}
|
|
95
|
-
*/
|
|
96
|
-
export function kebabToCamel(name) {
|
|
97
|
-
return name.replace(DASH_LOWERCASE_REGEXP, fnCamelCaseReplace);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Converts sname to camelCase.
|
|
102
|
-
* @param {string} name
|
|
103
|
-
* @returns {string}
|
|
104
|
-
*/
|
|
105
|
-
export function snakeToCamel(name) {
|
|
106
|
-
return name.replace(UNDERSCORE_LOWERCASE_REGEXP, fnCamelCaseReplace);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Removes expando data from this element. If key is provided, only
|
|
111
|
-
* its field is removed. If data is empty, also removes `ExpandoStore`
|
|
112
|
-
* from cache.
|
|
113
|
-
* @param {Element} element
|
|
114
|
-
* @param {string} [name] - key of field to remove
|
|
115
|
-
*/
|
|
116
|
-
export function removeElementData(element, name) {
|
|
117
|
-
const expandoId = element[EXPANDO];
|
|
118
|
-
const expandoStore = expandoId && Cache.get(expandoId);
|
|
119
|
-
|
|
120
|
-
if (expandoStore) {
|
|
121
|
-
if (name) {
|
|
122
|
-
delete expandoStore.data[name];
|
|
123
|
-
} else {
|
|
124
|
-
expandoStore.data = {};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
removeIfEmptyData(element);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Stores data associated with an element inside the expando property of the DOM element.
|
|
133
|
-
*
|
|
134
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Expando MDN Glossary: Expando}
|
|
135
|
-
*
|
|
136
|
-
* @param {Element} element
|
|
137
|
-
* @param {boolean} [createIfNecessary=false]
|
|
138
|
-
* @returns {import("../interface.ts").ExpandoStore}
|
|
139
|
-
*/
|
|
140
|
-
export function getExpando(element, createIfNecessary = false) {
|
|
141
|
-
let expandoId = element[EXPANDO];
|
|
142
|
-
let expandoStore = expandoId && Cache.get(expandoId);
|
|
143
|
-
|
|
144
|
-
if (createIfNecessary && !expandoStore) {
|
|
145
|
-
element[EXPANDO] = expandoId = jqNextId();
|
|
146
|
-
expandoStore = {
|
|
147
|
-
data: {},
|
|
148
|
-
};
|
|
149
|
-
Cache.set(expandoId, expandoStore);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return expandoStore;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Checks if the string contains HTML tags or entities.
|
|
157
|
-
* @param {string} html
|
|
158
|
-
* @returns {boolean} True if the string is plain text, false if it contains HTML tags or entities.
|
|
159
|
-
*/
|
|
160
|
-
export function isTextNode(html) {
|
|
161
|
-
return !/<|&#?\w+;/.test(html);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Check if element can accept expando data
|
|
166
|
-
* @param {Element|Node} node
|
|
167
|
-
* @returns {boolean}
|
|
168
|
-
*/
|
|
169
|
-
function elementAcceptsData(node) {
|
|
170
|
-
// The window object can accept data but has no nodeType
|
|
171
|
-
// Otherwise we are only interested in elements (1) and documents (9)
|
|
172
|
-
switch (node.nodeType) {
|
|
173
|
-
case Node.ELEMENT_NODE:
|
|
174
|
-
case Node.DOCUMENT_NODE:
|
|
175
|
-
case Node.COMMENT_NODE:
|
|
176
|
-
case undefined: // window.object
|
|
177
|
-
return true;
|
|
178
|
-
default:
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* @param {string} html
|
|
185
|
-
* @returns {DocumentFragment}
|
|
186
|
-
*/
|
|
187
|
-
export function buildFragment(html) {
|
|
188
|
-
/** @type {HTMLDivElement} */
|
|
189
|
-
let tmp;
|
|
190
|
-
let tag;
|
|
191
|
-
let wrap;
|
|
192
|
-
let tempFragment = document.createDocumentFragment();
|
|
193
|
-
let nodes = [];
|
|
194
|
-
let i;
|
|
195
|
-
|
|
196
|
-
if (isTextNode(html)) {
|
|
197
|
-
// Convert non-html into a text node
|
|
198
|
-
nodes.push(document.createTextNode(html));
|
|
199
|
-
} else {
|
|
200
|
-
// Convert html into DOM nodes
|
|
201
|
-
|
|
202
|
-
tmp = tempFragment.appendChild(document.createElement("div"));
|
|
203
|
-
tag = (TAG_NAME_REGEXP.exec(html) || ["", ""])[1].toLowerCase();
|
|
204
|
-
|
|
205
|
-
wrap = wrapMap[tag] || [];
|
|
206
|
-
|
|
207
|
-
// Create wrappers & descend into them
|
|
208
|
-
i = wrap.length;
|
|
209
|
-
while (--i > -1) {
|
|
210
|
-
tmp.appendChild(document.createElement(wrap[i]));
|
|
211
|
-
tmp = /** @type {HTMLDivElement} */ (tmp.firstChild);
|
|
212
|
-
}
|
|
213
|
-
tmp.innerHTML = html;
|
|
214
|
-
|
|
215
|
-
nodes = concat(nodes, tmp.childNodes);
|
|
216
|
-
|
|
217
|
-
tmp = /** @type {HTMLDivElement} */ (tempFragment.firstChild);
|
|
218
|
-
tmp.textContent = "";
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
let fragment = document.createDocumentFragment();
|
|
222
|
-
fragment.append(...nodes);
|
|
223
|
-
return fragment;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* @param {string} html
|
|
228
|
-
* @returns {NodeListOf<ChildNode> | HTMLElement[]}
|
|
229
|
-
*/
|
|
230
|
-
export function parseHtml(html) {
|
|
231
|
-
let regEx = SINGLE_TAG_REGEXP.exec(html);
|
|
232
|
-
if (regEx) {
|
|
233
|
-
return [document.createElement(regEx[1])];
|
|
234
|
-
}
|
|
235
|
-
let fragment = buildFragment(html);
|
|
236
|
-
if (fragment) {
|
|
237
|
-
return fragment.childNodes;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
return [];
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* @param {Element} element
|
|
245
|
-
* @param {boolean} [onlyDescendants]
|
|
246
|
-
* @returns {void}
|
|
247
|
-
*/
|
|
248
|
-
export function dealoc(element, onlyDescendants) {
|
|
249
|
-
if (!element) return;
|
|
250
|
-
if (Array.isArray(element)) {
|
|
251
|
-
element.forEach((x) => dealoc(x, onlyDescendants));
|
|
252
|
-
} else {
|
|
253
|
-
if (!onlyDescendants && elementAcceptsData(element)) {
|
|
254
|
-
cleanElementData([element]);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
if (elementAcceptsData(element)) {
|
|
258
|
-
cleanElementData(element.querySelectorAll("*"));
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
delete element[EXPANDO];
|
|
262
|
-
element.innerHTML = "";
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* If expando store data is empty, then delete it and set its expando id.
|
|
267
|
-
* to undefined.
|
|
268
|
-
* @param {Element} element
|
|
269
|
-
*/
|
|
270
|
-
function removeIfEmptyData(element) {
|
|
271
|
-
const expandoId = element[EXPANDO];
|
|
272
|
-
const { data } = Cache.get(expandoId);
|
|
273
|
-
|
|
274
|
-
if (!data || !Object.keys(data).length) {
|
|
275
|
-
Cache.delete(expandoId);
|
|
276
|
-
element[EXPANDO] = undefined; // don't delete DOM expandos. Chrome don't like it
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Gets or sets cache data for a given element.
|
|
282
|
-
*
|
|
283
|
-
* @param {Element} element - The DOM element to get or set data on.
|
|
284
|
-
* @param {string|Object} key - The key (as a string) to get/set or an object for mass-setting.
|
|
285
|
-
* @param {*} [value] - The value to set. If not provided, the function acts as a getter.
|
|
286
|
-
* @returns {*} - The retrieved data if acting as a getter. Otherwise, returns undefined.
|
|
287
|
-
*/
|
|
288
|
-
export function getOrSetCacheData(element, key, value) {
|
|
289
|
-
if (elementAcceptsData(element)) {
|
|
290
|
-
let prop;
|
|
291
|
-
|
|
292
|
-
const isSimpleSetter = isDefined(value);
|
|
293
|
-
const isSimpleGetter = !isSimpleSetter && key && !isObject(key);
|
|
294
|
-
const massGetter = !key;
|
|
295
|
-
const expandoStore = getExpando(element, !isSimpleGetter);
|
|
296
|
-
const data = expandoStore && expandoStore.data;
|
|
297
|
-
|
|
298
|
-
if (isSimpleSetter) {
|
|
299
|
-
data[kebabToCamel(key)] = value;
|
|
300
|
-
} else {
|
|
301
|
-
if (massGetter) {
|
|
302
|
-
return data;
|
|
303
|
-
}
|
|
304
|
-
if (isSimpleGetter) {
|
|
305
|
-
// don't force creation of expandoStore if it doesn't exist yet
|
|
306
|
-
return data && data[kebabToCamel(key)];
|
|
307
|
-
}
|
|
308
|
-
// mass-setter: data({key1: val1, key2: val2})
|
|
309
|
-
for (prop in key) {
|
|
310
|
-
data[kebabToCamel(prop)] = key[prop];
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
} else {
|
|
314
|
-
// TODO: check should occur perhaps prior at compilation level that this is a valid element
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Sets cache data for a given element.
|
|
320
|
-
*
|
|
321
|
-
* @param {Element|Node} element - The DOM element to get or set data on.
|
|
322
|
-
* @param {string} key - The key (as a string) to get/set or an object for mass-setting.
|
|
323
|
-
* @param {*} [value] - The value to set. If not provided, the function acts as a getter.
|
|
324
|
-
* @returns
|
|
325
|
-
*/
|
|
326
|
-
export function setCacheData(element, key, value) {
|
|
327
|
-
if (elementAcceptsData(element)) {
|
|
328
|
-
const expandoStore = getExpando(/** @type {Element} */ (element), true);
|
|
329
|
-
const data = expandoStore && expandoStore.data;
|
|
330
|
-
data[kebabToCamel(key)] = value;
|
|
331
|
-
} else {
|
|
332
|
-
if (element.parentElement) {
|
|
333
|
-
// TODO: check should occur perhaps prior at compilation level that this is a valid element
|
|
334
|
-
setCacheData(element.parentElement, key, value);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* Gets cache data for a given element.
|
|
341
|
-
*
|
|
342
|
-
* @param {Element} element - The DOM element to get data from.
|
|
343
|
-
* @param {string} [key] - The key (as a string) to retrieve. If not provided, returns all data.
|
|
344
|
-
* @returns {*} - The retrieved data for the given key or all data if no key is provided.
|
|
345
|
-
*/
|
|
346
|
-
export function getCacheData(element, key) {
|
|
347
|
-
if (elementAcceptsData(element)) {
|
|
348
|
-
const expandoStore = getExpando(element, false); // Don't create if it doesn't exist
|
|
349
|
-
const data = expandoStore && expandoStore.data;
|
|
350
|
-
if (!key) {
|
|
351
|
-
return undefined;
|
|
352
|
-
}
|
|
353
|
-
return data && data[kebabToCamel(key)];
|
|
354
|
-
}
|
|
355
|
-
return undefined;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Deletes cache data for a given element for a particular key.
|
|
360
|
-
*
|
|
361
|
-
* @param {Element} element - The DOM element to delete data from.
|
|
362
|
-
* @param {string} key - The key (as a string) to delete.
|
|
363
|
-
* @returns void
|
|
364
|
-
*/
|
|
365
|
-
export function deleteCacheData(element, key) {
|
|
366
|
-
if (!key) return;
|
|
367
|
-
|
|
368
|
-
if (elementAcceptsData(element)) {
|
|
369
|
-
const expandoStore = getExpando(element, false); // Don't create if it doesn't exist
|
|
370
|
-
const data = expandoStore?.data;
|
|
371
|
-
|
|
372
|
-
if (data && hasOwn(data, kebabToCamel(key))) {
|
|
373
|
-
delete data[kebabToCamel(key)];
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Gets scope for a given element.
|
|
379
|
-
*
|
|
380
|
-
* @param {Element} element - The DOM element to get data from.
|
|
381
|
-
* @returns {*} - The retrieved data for the given key or all data if no key is provided.
|
|
382
|
-
*/
|
|
383
|
-
export function getScope(element) {
|
|
384
|
-
return getCacheData(element, SCOPE_KEY);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
/**
|
|
388
|
-
* Set scope for a given element.
|
|
389
|
-
*
|
|
390
|
-
* @param {Element|Node|ChildNode} element - The DOM element to set data on.
|
|
391
|
-
* @param {import("../core/scope/scope.js").Scope} scope - The Scope attached to this element
|
|
392
|
-
*/
|
|
393
|
-
export function setScope(element, scope) {
|
|
394
|
-
return setCacheData(element, SCOPE_KEY, scope);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Gets isolate scope for a given element.
|
|
399
|
-
*
|
|
400
|
-
* @param {Element} element - The DOM element to get data from.
|
|
401
|
-
* @returns {*} - The retrieved data for the given key or all data if no key is provided.
|
|
402
|
-
*/
|
|
403
|
-
export function getIsolateScope(element) {
|
|
404
|
-
return getCacheData(element, ISOLATE_SCOPE_KEY);
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* Set isolate scope for a given element.
|
|
409
|
-
*
|
|
410
|
-
* @param {Element} element - The DOM element to set data on.
|
|
411
|
-
* @param {import("../core/scope/scope.js").Scope} scope - The Scope attached to this element
|
|
412
|
-
*/
|
|
413
|
-
export function setIsolateScope(element, scope) {
|
|
414
|
-
return setCacheData(element, ISOLATE_SCOPE_KEY, scope);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* Gets the controller instance for a given element, if exists. Defaults to "ngControllerController"
|
|
419
|
-
*
|
|
420
|
-
* @param {Element} element - The DOM element to get data from.
|
|
421
|
-
* @param {string} [name] - The DOM element to get data from.
|
|
422
|
-
* @returns {import("../core/scope/scope.js").Scope|undefined} - The retrieved data
|
|
423
|
-
*/
|
|
424
|
-
export function getController(element, name) {
|
|
425
|
-
return getInheritedData(element, `$${name || "ngController"}Controller`);
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
/**
|
|
429
|
-
*
|
|
430
|
-
* @param {Node} element
|
|
431
|
-
* @param {string} name
|
|
432
|
-
* @returns
|
|
433
|
-
*/
|
|
434
|
-
export function getInheritedData(element, name) {
|
|
435
|
-
// if element is the document object work with the html element instead
|
|
436
|
-
// this makes $(document).scope() possible
|
|
437
|
-
if (element.nodeType === Node.DOCUMENT_NODE) {
|
|
438
|
-
element = /** @type {Document} */ (element).documentElement;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
let value;
|
|
442
|
-
while (element) {
|
|
443
|
-
if (
|
|
444
|
-
isDefined((value = getCacheData(/** @type {Element} */ (element), name)))
|
|
445
|
-
)
|
|
446
|
-
return value;
|
|
447
|
-
|
|
448
|
-
// If dealing with a document fragment node with a host element, and no parent, use the host
|
|
449
|
-
// element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM
|
|
450
|
-
// to lookup parent controllers.
|
|
451
|
-
element =
|
|
452
|
-
element.parentNode ||
|
|
453
|
-
(element.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&
|
|
454
|
-
/** @type {ShadowRoot} */ (element).host);
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
*
|
|
460
|
-
* @param {Node} element
|
|
461
|
-
* @param {string|string[]} name
|
|
462
|
-
* @param {any} [value]
|
|
463
|
-
* @returns
|
|
464
|
-
*/
|
|
465
|
-
export function setInheritedData(element, name, value) {
|
|
466
|
-
// if element is the document object work with the html element instead
|
|
467
|
-
// this makes $(document).scope() possible
|
|
468
|
-
if (element.nodeType === Node.DOCUMENT_NODE) {
|
|
469
|
-
element = /** @type {Document} */ (element).documentElement;
|
|
470
|
-
}
|
|
471
|
-
const names = Array.isArray(name) ? name : [name];
|
|
472
|
-
|
|
473
|
-
while (element) {
|
|
474
|
-
for (let i = 0, ii = names.length; i < ii; i++) {
|
|
475
|
-
if (
|
|
476
|
-
isDefined(
|
|
477
|
-
(value = setCacheData(/** @type {Element} */ (element), names[i])),
|
|
478
|
-
)
|
|
479
|
-
)
|
|
480
|
-
return value;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
// If dealing with a document fragment node with a host element, and no parent, use the host
|
|
484
|
-
// element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM
|
|
485
|
-
// to lookup parent controllers.
|
|
486
|
-
element =
|
|
487
|
-
element.parentNode ||
|
|
488
|
-
(element.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&
|
|
489
|
-
/** @type {ShadowRoot} */ (element).host);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
/**
|
|
494
|
-
*
|
|
495
|
-
* @param {Element} element
|
|
496
|
-
* @param {boolean} keepData
|
|
497
|
-
*/
|
|
498
|
-
export function removeElement(element, keepData = false) {
|
|
499
|
-
if (!keepData) {
|
|
500
|
-
dealoc(element);
|
|
501
|
-
}
|
|
502
|
-
const parent = element.parentNode;
|
|
503
|
-
if (parent) parent.removeChild(element);
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* Extracts the starting tag from an HTML string or DOM element.
|
|
508
|
-
*
|
|
509
|
-
* @param {string|Element|Node} elementOrStr - The HTML string or DOM element to process.
|
|
510
|
-
* @returns {string} The starting tag or processed result.
|
|
511
|
-
*/
|
|
512
|
-
export function startingTag(elementOrStr) {
|
|
513
|
-
let clone;
|
|
514
|
-
|
|
515
|
-
if (typeof elementOrStr === "string") {
|
|
516
|
-
const parser = new DOMParser();
|
|
517
|
-
const doc = parser.parseFromString(elementOrStr, "text/html");
|
|
518
|
-
clone = doc.body.firstChild.cloneNode(true);
|
|
519
|
-
} else if (elementOrStr instanceof Element || elementOrStr instanceof Node) {
|
|
520
|
-
clone = elementOrStr.cloneNode(true);
|
|
521
|
-
} else {
|
|
522
|
-
throw new Error("Input must be an HTML string or a DOM element.");
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
while (clone.firstChild) {
|
|
526
|
-
clone.removeChild(clone.firstChild);
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
const divWrapper = document.createElement("div");
|
|
530
|
-
divWrapper.appendChild(clone);
|
|
531
|
-
const elemHtml = divWrapper.innerHTML;
|
|
532
|
-
|
|
533
|
-
try {
|
|
534
|
-
if (clone.nodeType === Node.TEXT_NODE) {
|
|
535
|
-
return elemHtml.toLowerCase();
|
|
536
|
-
} else if (clone.nodeType === Node.COMMENT_NODE) {
|
|
537
|
-
return `<!--${/** @type {Comment} **/ (clone).data.trim()}-->`;
|
|
538
|
-
} else {
|
|
539
|
-
const match = elemHtml.match(/^(<[^>]+>)/);
|
|
540
|
-
if (match) {
|
|
541
|
-
return match[1].replace(/^<([\w-]+)/, (_match, nodeName) => {
|
|
542
|
-
return "<" + nodeName.toLowerCase();
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
} catch {
|
|
547
|
-
return elemHtml.toLowerCase();
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
return elemHtml.toLowerCase();
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
/**
|
|
554
|
-
* Return the DOM siblings between the first and last node in the given array.
|
|
555
|
-
* @param {Array<Node>} nodes An array-like object
|
|
556
|
-
* @returns {Element} the inputted object or a JQLite collection containing the nodes
|
|
557
|
-
*/
|
|
558
|
-
export function getBlockNodes(nodes) {
|
|
559
|
-
// TODO(perf): update `nodes` instead of creating a new object?
|
|
560
|
-
let node = nodes[0];
|
|
561
|
-
const endNode = nodes[nodes.length - 1];
|
|
562
|
-
let blockNodes;
|
|
563
|
-
|
|
564
|
-
for (let i = 1; node !== endNode && (node = node.nextSibling); i++) {
|
|
565
|
-
if (blockNodes || nodes[i] !== node) {
|
|
566
|
-
if (!blockNodes) {
|
|
567
|
-
// use element to avoid circular dependency
|
|
568
|
-
blockNodes = Array.prototype.slice.call(nodes, 0, i);
|
|
569
|
-
}
|
|
570
|
-
blockNodes.push(node);
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
return blockNodes || nodes;
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* Gets the name of a boolean attribute if it exists on a given element.
|
|
579
|
-
*
|
|
580
|
-
* @param {Element} element - The DOM element to check.
|
|
581
|
-
* @param {string} name - The name of the attribute.
|
|
582
|
-
* @returns {string|false} - The attribute name if valid, otherwise false.
|
|
583
|
-
*/
|
|
584
|
-
export function getBooleanAttrName(element, name) {
|
|
585
|
-
const normalizedName = name.toLowerCase();
|
|
586
|
-
const isBooleanAttr = BOOLEAN_ATTR.includes(normalizedName);
|
|
587
|
-
return isBooleanAttr && BOOLEAN_ELEMENTS.includes(element.nodeName)
|
|
588
|
-
? normalizedName
|
|
589
|
-
: false;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
/**
|
|
593
|
-
* Takes an array of elements, calls any `$destroy` event handlers, removes any data in cache, and finally removes any
|
|
594
|
-
* listeners.
|
|
595
|
-
* @param {NodeListOf<Element>|Element[]} nodes
|
|
596
|
-
*/
|
|
597
|
-
export function cleanElementData(nodes) {
|
|
598
|
-
for (let i = 0, ii = nodes.length; i < ii; i++) {
|
|
599
|
-
removeElementData(nodes[i]);
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
/**
|
|
604
|
-
* Return instance of InjectorService attached to element
|
|
605
|
-
* @param {Element} element
|
|
606
|
-
* @returns {import('../core/di/internal-injector.js').InjectorService}
|
|
607
|
-
*/
|
|
608
|
-
export function getInjector(element) {
|
|
609
|
-
return getInheritedData(element, "$injector");
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
/**
|
|
613
|
-
* Creates a DOM element from an HTML string.
|
|
614
|
-
* @param {string} htmlString - A string representing the HTML to parse. Must have only one root element.
|
|
615
|
-
* @returns {Element} - The parsed DOM element.
|
|
616
|
-
*/
|
|
617
|
-
export function createElementFromHTML(htmlString) {
|
|
618
|
-
const template = document.createElement("template");
|
|
619
|
-
template.innerHTML = htmlString.trim();
|
|
620
|
-
return /** @type {Element} */ (template.content.firstChild);
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
/**
|
|
624
|
-
* Creates a DOM element from an HTML string.
|
|
625
|
-
* @param {string} htmlString - A string representing the HTML to parse.
|
|
626
|
-
* @returns {NodeList} - The parsed DOM element.
|
|
627
|
-
*/
|
|
628
|
-
export function createNodelistFromHTML(htmlString) {
|
|
629
|
-
const template = document.createElement("template");
|
|
630
|
-
template.innerHTML = htmlString.trim();
|
|
631
|
-
return template.content.childNodes;
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
/**
|
|
635
|
-
* Appends nodes or an HTML string to a given DOM element.
|
|
636
|
-
* @param {Element} element - The element to append nodes to.
|
|
637
|
-
* @param {Node | Node[] | string} nodes - Nodes or HTML string to append.
|
|
638
|
-
*/
|
|
639
|
-
export function appendNodesToElement(element, nodes) {
|
|
640
|
-
if (typeof nodes === "string") {
|
|
641
|
-
const template = document.createElement("template");
|
|
642
|
-
template.innerHTML = nodes.trim();
|
|
643
|
-
nodes = Array.from(template.content.childNodes);
|
|
644
|
-
} else if (nodes instanceof Node) {
|
|
645
|
-
nodes = [nodes];
|
|
646
|
-
} else if (!Array.isArray(nodes)) {
|
|
647
|
-
throw new TypeError("Expected a Node, Node[], or HTML string");
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
nodes.forEach((node) => element.appendChild(node));
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
/**
|
|
654
|
-
* Remove element from the DOM and clear Cache data, associated with the node.
|
|
655
|
-
* @param {Element} element
|
|
656
|
-
*/
|
|
657
|
-
export function emptyElement(element) {
|
|
658
|
-
dealoc(element, true);
|
|
659
|
-
switch (element.nodeType) {
|
|
660
|
-
case Node.ELEMENT_NODE:
|
|
661
|
-
case Node.DOCUMENT_NODE:
|
|
662
|
-
case Node.DOCUMENT_FRAGMENT_NODE:
|
|
663
|
-
element.replaceChildren();
|
|
664
|
-
break;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
/**
|
|
669
|
-
* Checks if the element is root
|
|
670
|
-
* @param {Element} element
|
|
671
|
-
* @returns {boolean}
|
|
672
|
-
*/
|
|
673
|
-
export function isRoot(element) {
|
|
674
|
-
return !!getCacheData(element, "$injector");
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
export function domInsert(element, parentElement, afterElement) {
|
|
678
|
-
// if for some reason the previous element was removed
|
|
679
|
-
// from the dom sometime before this code runs then let's
|
|
680
|
-
// just stick to using the parent element as the anchor
|
|
681
|
-
if (afterElement) {
|
|
682
|
-
const afterNode = extractElementNode(afterElement);
|
|
683
|
-
if (
|
|
684
|
-
afterNode &&
|
|
685
|
-
!afterNode.parentNode &&
|
|
686
|
-
!afterNode.previousElementSibling
|
|
687
|
-
) {
|
|
688
|
-
afterElement = null;
|
|
689
|
-
}
|
|
690
|
-
}
|
|
691
|
-
if (afterElement) {
|
|
692
|
-
afterElement.after(element);
|
|
693
|
-
} else {
|
|
694
|
-
parentElement.prepend(element);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
function extractElementNode(element) {
|
|
699
|
-
const { length } = element;
|
|
700
|
-
for (let i = 0; i < length; i++) {
|
|
701
|
-
const elm = element[i];
|
|
702
|
-
if (elm.nodeType === Node.ELEMENT_NODE) {
|
|
703
|
-
return elm;
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
/**
|
|
709
|
-
* Returns the base href of the document.
|
|
710
|
-
*
|
|
711
|
-
* @returns {string} The base href.
|
|
712
|
-
*/
|
|
713
|
-
export function getBaseHref() {
|
|
714
|
-
const href = document.querySelector("base")?.getAttribute("href");
|
|
715
|
-
return href ? href.replace(/^(https?:)?\/\/[^/]*/, "") : "";
|
|
716
|
-
}
|