@angular-wave/angular.ts 0.9.3 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/angular.d.ts +4 -19
- package/@types/animations/animate.d.ts +2 -2
- package/@types/animations/animation.d.ts +1 -1
- package/@types/core/compile/attributes.d.ts +1 -1
- package/@types/core/compile/compile.d.ts +2 -2
- package/@types/core/controller/controller.d.ts +1 -1
- package/@types/core/controller/interface.d.ts +6 -0
- package/@types/core/di/ng-module.d.ts +27 -26
- package/@types/core/filter/filter.d.ts +5 -5
- package/@types/core/interpolate/interface.d.ts +13 -0
- package/@types/core/interpolate/interpolate.d.ts +1 -13
- package/@types/core/scope/scope.d.ts +4 -1
- package/@types/directive/http/http.d.ts +16 -16
- package/@types/directive/http/interface.d.ts +27 -0
- package/@types/directive/include/include.d.ts +4 -4
- package/@types/directive/inject/inject.d.ts +12 -0
- package/@types/directive/model/model.d.ts +1 -1
- package/@types/directive/script/script.d.ts +2 -2
- package/@types/directive/setter/setter.d.ts +4 -4
- package/@types/filters/filter.d.ts +2 -2
- package/@types/filters/filters.d.ts +2 -2
- package/@types/filters/interface.d.ts +8 -0
- package/@types/filters/limit-to.d.ts +2 -2
- package/@types/filters/order-by.d.ts +2 -2
- package/@types/interface.d.ts +105 -82
- package/@types/namespace.d.ts +76 -0
- package/@types/router/state/interface.d.ts +8 -8
- package/@types/router/state-filters.d.ts +4 -4
- package/@types/router/template-factory.d.ts +8 -8
- package/@types/router/transition/hook-builder.d.ts +5 -2
- package/@types/router/transition/hook-registry.d.ts +11 -2
- package/@types/router/transition/transition-service.d.ts +6 -2
- package/@types/router/transition/transition.d.ts +2 -2
- package/@types/router/view/view.d.ts +1 -8
- package/@types/router/view-scroll.d.ts +4 -2
- package/@types/services/{anchor-scroll.d.ts → anchor-scroll/anchor-scroll.d.ts} +2 -2
- package/@types/services/exception/exception-handler.d.ts +2 -2
- package/@types/services/exception/interface.d.ts +1 -1
- package/@types/services/http/http.d.ts +40 -2
- package/@types/services/http/interface.d.ts +11 -0
- package/@types/services/location/location.d.ts +1 -4
- package/@types/services/sce/sce.d.ts +3 -4
- package/@types/services/template-cache/template-cache.d.ts +4 -4
- package/@types/services/template-request/interface.d.ts +22 -0
- package/@types/services/{template-request.d.ts → template-request/template-request.d.ts} +4 -7
- package/@types/shared/common.d.ts +8 -69
- package/@types/shared/hof.d.ts +7 -7
- package/dist/angular-ts.esm.js +510 -570
- package/dist/angular-ts.umd.js +510 -570
- 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/@types/services/cookie-reader.d.ts +0 -4
- package/@types/services/http-backend/http-backend.d.ts +0 -58
- package/@types/services/template-cache/interface.d.ts +0 -10
- 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/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/templateCacheProvider.md +0 -100
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/url.md +0 -5
- 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/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/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/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -78
- 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 -3
- 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/ChangesObject.html +0 -6
- package/docs/static/typedoc/interfaces/ComponentOptions.html +0 -16
- package/docs/static/typedoc/interfaces/Controller.html +0 -12
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Directive.html +0 -37
- package/docs/static/typedoc/interfaces/DirectivePrePost.html +0 -4
- 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/NgModelController.html +0 -30
- package/docs/static/typedoc/interfaces/NgModelOptions.html +0 -16
- package/docs/static/typedoc/interfaces/Provider.html +0 -34
- 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/TemplateCache.html +0 -7
- package/docs/static/typedoc/interfaces/TranscludeFunctionObject.html +0 -8
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/AnnotatedDirectiveFactory.html +0 -1
- package/docs/static/typedoc/types/AnnotatedFactory.html +0 -8
- package/docs/static/typedoc/types/CloneAttachFunction.html +0 -2
- package/docs/static/typedoc/types/ControllerConstructor.html +0 -2
- package/docs/static/typedoc/types/DirectiveCompileFn.html +0 -2
- package/docs/static/typedoc/types/DirectiveController.html +0 -2
- package/docs/static/typedoc/types/DirectiveFactory.html +0 -1
- package/docs/static/typedoc/types/DirectiveFactoryFn.html +0 -1
- package/docs/static/typedoc/types/DirectiveLinkFn.html +0 -2
- package/docs/static/typedoc/types/ExpandoStore.html +0 -2
- package/docs/static/typedoc/types/Expression.html +0 -6
- package/docs/static/typedoc/types/FilterFactory.html +0 -2
- package/docs/static/typedoc/types/FilterFn.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/Injectable.html +0 -4
- package/docs/static/typedoc/types/InjectableClass.html +0 -1
- package/docs/static/typedoc/types/InjectableFactory.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/OnChangesObject.html +0 -2
- package/docs/static/typedoc/types/SwapModeType.html +0 -2
- package/docs/static/typedoc/types/TController.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/typedoc/variables/SwapMode.html +0 -11
- 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 -2599
- 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 -293
- 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 -3270
- 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 -189
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- 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 -284
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -226
- 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/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -408
- 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 -1249
- 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 -26
- 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/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -26
- 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/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.md +0 -69
- 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/json.md +0 -16
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.md +0 -19
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.md +0 -83
- 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 -78
- package/src/interface.ts +0 -421
- package/src/ng.js +0 -289
- package/src/ng.spec.js +0 -33
- 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 -1937
- 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/README.md +0 -21
- 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 -257
- package/src/router/state/state-service.js +0 -699
- 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 -155
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -133
- package/src/router/transition/hook-registry.js +0 -172
- 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 -302
- package/src/router/transition/transition.js +0 -652
- 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 -274
- 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.html +0 -76
- package/src/services/anchor-scroll.js +0 -147
- package/src/services/cookie-reader.js +0 -48
- 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 -922
- package/src/services/http/http.md +0 -413
- package/src/services/http/http.spec.js +0 -3941
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -243
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/http-backend/http-backend.html +0 -22
- package/src/services/http-backend/http-backend.js +0 -158
- package/src/services/http-backend/http-backend.spec.js +0 -389
- package/src/services/http-backend/http-backend.test.js +0 -12
- 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 -847
- package/src/services/sce/sce.md +0 -300
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/interface.ts +0 -10
- 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.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -438
- 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 -151
- 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,408 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
extend,
|
|
3
|
-
isDefined,
|
|
4
|
-
isUndefined,
|
|
5
|
-
minErr,
|
|
6
|
-
stringify,
|
|
7
|
-
} from "../../shared/utils.js";
|
|
8
|
-
import { constantWatchDelegate } from "../parse/parse.js";
|
|
9
|
-
|
|
10
|
-
const $interpolateMinErr = minErr("$interpolate");
|
|
11
|
-
function throwNoconcat(text) {
|
|
12
|
-
throw $interpolateMinErr(
|
|
13
|
-
"noconcat",
|
|
14
|
-
"Error while interpolating: {0}\nStrict Contextual Escaping disallows " +
|
|
15
|
-
"interpolations that concatenate multiple expressions when a trusted value is " +
|
|
16
|
-
"required. See http://docs.angularjs.org/api/ng.$sce",
|
|
17
|
-
text,
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function interr(text, err) {
|
|
22
|
-
throw $interpolateMinErr(
|
|
23
|
-
"interr",
|
|
24
|
-
"Can't interpolate: {0}\n{1}",
|
|
25
|
-
text,
|
|
26
|
-
err.toString(),
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* Used for configuring the interpolation markup. Defaults to `{{` and `}}`.
|
|
33
|
-
*
|
|
34
|
-
* <div class="alert alert-danger">
|
|
35
|
-
* This feature is sometimes used to mix different markup languages, e.g. to wrap an AngularTS
|
|
36
|
-
* template within a Python Jinja template (or any other template language). Mixing templating
|
|
37
|
-
* languages is **very dangerous**. The embedding template language will not safely escape AngularTS
|
|
38
|
-
* expressions, so any user-controlled values in the template will cause Cross Site Scripting (XSS)
|
|
39
|
-
* security bugs!
|
|
40
|
-
* </div>
|
|
41
|
-
*/
|
|
42
|
-
export class InterpolateProvider {
|
|
43
|
-
constructor() {
|
|
44
|
-
/**
|
|
45
|
-
* @type {string} Symbol to denote start of expression in the interpolated string. Defaults to `{{`.
|
|
46
|
-
*/
|
|
47
|
-
this.startSymbol = "{{";
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* @type {string} Symbol to denote the end of expression in the interpolated string. Defaults to `}}`.
|
|
51
|
-
*/
|
|
52
|
-
this.endSymbol = "}}";
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
$get = [
|
|
56
|
-
"$parse",
|
|
57
|
-
"$sce",
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* @param {import("../parse/interface.ts").ParseService} $parse
|
|
61
|
-
* @param {*} $sce
|
|
62
|
-
* @returns
|
|
63
|
-
*/
|
|
64
|
-
function ($parse, $sce) {
|
|
65
|
-
/** @type {InterpolateProvider} */
|
|
66
|
-
const provider = this;
|
|
67
|
-
const startSymbolLength = provider.startSymbol.length;
|
|
68
|
-
const endSymbolLength = provider.endSymbol.length;
|
|
69
|
-
|
|
70
|
-
const escapedStartRegexp = new RegExp(
|
|
71
|
-
provider.startSymbol.replace(/./g, escape),
|
|
72
|
-
"g",
|
|
73
|
-
);
|
|
74
|
-
const escapedEndRegexp = new RegExp(
|
|
75
|
-
provider.endSymbol.replace(/./g, escape),
|
|
76
|
-
"g",
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
function escape(ch) {
|
|
80
|
-
return `\\\\\\${ch}`;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function unescapeText(text) {
|
|
84
|
-
return text
|
|
85
|
-
.replace(escapedStartRegexp, provider.startSymbol)
|
|
86
|
-
.replace(escapedEndRegexp, provider.endSymbol);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
*
|
|
91
|
-
* Compiles a string with markup into an interpolation function. This service is used by the
|
|
92
|
-
* HTML {@link ng.$compile $compile} service for data binding. See
|
|
93
|
-
* {@link ng.$interpolateProvider $interpolateProvider} for configuring the
|
|
94
|
-
* interpolation markup.
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* ```js
|
|
98
|
-
* let $interpolate = ...; // injected
|
|
99
|
-
* let exp = $interpolate('Hello {{name | uppercase}}!');
|
|
100
|
-
* expect(exp({name:'AngularTS'})).toEqual('Hello ANGULARJS!');
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* `$interpolate` takes an optional fourth argument, `allOrNothing`. If `allOrNothing` is
|
|
104
|
-
* `true`, the interpolation function will return `undefined` unless all embedded expressions
|
|
105
|
-
* evaluate to a value other than `undefined`.
|
|
106
|
-
*
|
|
107
|
-
* ```js
|
|
108
|
-
* let $interpolate = ...; // injected
|
|
109
|
-
* let context = {greeting: 'Hello', name: undefined };
|
|
110
|
-
*
|
|
111
|
-
* // default "forgiving" mode
|
|
112
|
-
* let exp = $interpolate('{{greeting}} {{name}}!');
|
|
113
|
-
* expect(exp(context)).toEqual('Hello !');
|
|
114
|
-
*
|
|
115
|
-
* // "allOrNothing" mode
|
|
116
|
-
* exp = $interpolate('{{greeting}} {{name}}!', false, null, true);
|
|
117
|
-
* expect(exp(context)).toBeUndefined();
|
|
118
|
-
* context.name = 'AngularTS';
|
|
119
|
-
* expect(exp(context)).toEqual('Hello AngularTS!');
|
|
120
|
-
* ```
|
|
121
|
-
*
|
|
122
|
-
* `allOrNothing` is useful for interpolating URLs. `ngSrc` and `ngSrcset` use this behavior.
|
|
123
|
-
*
|
|
124
|
-
* #### Escaped Interpolation
|
|
125
|
-
* $interpolate provides a mechanism for escaping interpolation markers. Start and end markers
|
|
126
|
-
* can be escaped by preceding each of their characters with a REVERSE SOLIDUS U+005C (backslash).
|
|
127
|
-
* It will be rendered as a regular start/end marker, and will not be interpreted as an expression
|
|
128
|
-
* or binding.
|
|
129
|
-
*
|
|
130
|
-
* This enables web-servers to prevent script injection attacks and defacing attacks, to some
|
|
131
|
-
* degree, while also enabling code examples to work without relying on the
|
|
132
|
-
* {@link ng.directive:ngNonBindable ngNonBindable} directive.
|
|
133
|
-
*
|
|
134
|
-
* **For security purposes, it is strongly encouraged that web servers escape user-supplied data,
|
|
135
|
-
* replacing angle brackets (<, >) with &lt; and &gt; respectively, and replacing all
|
|
136
|
-
* interpolation start/end markers with their escaped counterparts.**
|
|
137
|
-
*
|
|
138
|
-
* Escaped interpolation markers are only replaced with the actual interpolation markers in rendered
|
|
139
|
-
* output when the $interpolate service processes the text. So, for HTML elements interpolated
|
|
140
|
-
* by {@link ng.$compile $compile}, or otherwise interpolated with the `mustHaveExpression` parameter
|
|
141
|
-
* set to `true`, the interpolated text must contain an unescaped interpolation expression. As such,
|
|
142
|
-
* this is typically useful only when user-data is used in rendering a template from the server, or
|
|
143
|
-
* when otherwise untrusted data is used by a directive.
|
|
144
|
-
*
|
|
145
|
-
* <example name="interpolation">
|
|
146
|
-
* <file name="index.html">
|
|
147
|
-
* <div ng-init="username='A user'">
|
|
148
|
-
* <p ng-init="apptitle='Escaping demo'">{{apptitle}}: \{\{ username = "defaced value"; \}\}
|
|
149
|
-
* </p>
|
|
150
|
-
* <p><strong>{{username}}</strong> attempts to inject code which will deface the
|
|
151
|
-
* application, but fails to accomplish their task, because the server has correctly
|
|
152
|
-
* escaped the interpolation start/end markers with REVERSE SOLIDUS U+005C (backslash)
|
|
153
|
-
* characters.</p>
|
|
154
|
-
* <p>Instead, the result of the attempted script injection is visible, and can be removed
|
|
155
|
-
* from the database by an administrator.</p>
|
|
156
|
-
* </div>
|
|
157
|
-
* </file>
|
|
158
|
-
* </example>
|
|
159
|
-
*
|
|
160
|
-
* @knownIssue
|
|
161
|
-
* It is currently not possible for an interpolated expression to contain the interpolation end
|
|
162
|
-
* symbol. For example, `{{ '}}' }}` will be incorrectly interpreted as `{{ ' }}` + `' }}`, i.e.
|
|
163
|
-
* an interpolated expression consisting of a single-quote (`'`) and the `' }}` string.
|
|
164
|
-
*
|
|
165
|
-
* @knownIssue
|
|
166
|
-
* All directives and components must use the standard `{{` `}}` interpolation symbols
|
|
167
|
-
* in their templates. If you change the application interpolation symbols the {@link $compile}
|
|
168
|
-
* service will attempt to denormalize the standard symbols to the custom symbols.
|
|
169
|
-
* The denormalization process is not clever enough to know not to replace instances of the standard
|
|
170
|
-
* symbols where they would not normally be treated as interpolation symbols. For example in the following
|
|
171
|
-
* code snippet the closing braces of the literal object will get incorrectly denormalized:
|
|
172
|
-
*
|
|
173
|
-
* ```
|
|
174
|
-
* <div data-context='{"context":{"id":3,"type":"page"}}">
|
|
175
|
-
* ```
|
|
176
|
-
*
|
|
177
|
-
* The workaround is to ensure that such instances are separated by whitespace:
|
|
178
|
-
* ```
|
|
179
|
-
* <div data-context='{"context":{"id":3,"type":"page"} }">
|
|
180
|
-
* ```
|
|
181
|
-
*
|
|
182
|
-
* See https://github.com/angular/angular.js/pull/14610#issuecomment-219401099 for more information.
|
|
183
|
-
*
|
|
184
|
-
* @param {string} text The text with markup to interpolate.
|
|
185
|
-
* @param {boolean=} mustHaveExpression if set to true then the interpolation string must have
|
|
186
|
-
* embedded expression in order to return an interpolation function. Strings with no
|
|
187
|
-
* embedded expression will return null for the interpolation function.
|
|
188
|
-
* @param {string=} trustedContext when provided, the returned function passes the interpolated
|
|
189
|
-
* result through {@link ng.$sce#getTrusted $sce.getTrusted(interpolatedResult,
|
|
190
|
-
* trustedContext)} before returning it. Refer to the {@link ng.$sce $sce} service that
|
|
191
|
-
* provides Strict Contextual Escaping for details.
|
|
192
|
-
* @param {boolean=} allOrNothing if `true`, then the returned function returns undefined
|
|
193
|
-
* unless all embedded expressions evaluate to a value other than `undefined`.
|
|
194
|
-
* @returns {Function} an interpolation function which is used to compute the
|
|
195
|
-
* interpolated string. The function has these parameters:
|
|
196
|
-
*
|
|
197
|
-
* - `context`: evaluation context for all expressions embedded in the interpolated text
|
|
198
|
-
*/
|
|
199
|
-
function $interpolate(
|
|
200
|
-
text,
|
|
201
|
-
mustHaveExpression,
|
|
202
|
-
trustedContext,
|
|
203
|
-
allOrNothing,
|
|
204
|
-
) {
|
|
205
|
-
const contextAllowsConcatenation =
|
|
206
|
-
trustedContext === $sce.URL || trustedContext === $sce.MEDIA_URL;
|
|
207
|
-
|
|
208
|
-
// Provide a quick exit and simplified result function for text with no interpolation
|
|
209
|
-
if (!text.length || text.indexOf(provider.startSymbol) === -1) {
|
|
210
|
-
if (mustHaveExpression) return;
|
|
211
|
-
|
|
212
|
-
let unescapedText = unescapeText(text);
|
|
213
|
-
if (contextAllowsConcatenation) {
|
|
214
|
-
unescapedText = $sce.getTrusted(trustedContext, unescapedText);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* @type {any}
|
|
219
|
-
*/
|
|
220
|
-
const constantInterp = () => unescapedText;
|
|
221
|
-
constantInterp.exp = text;
|
|
222
|
-
constantInterp.expressions = [];
|
|
223
|
-
constantInterp.$$watchDelegate = constantWatchDelegate;
|
|
224
|
-
|
|
225
|
-
return constantInterp;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
allOrNothing = !!allOrNothing;
|
|
229
|
-
let startIndex;
|
|
230
|
-
let endIndex;
|
|
231
|
-
let index = 0;
|
|
232
|
-
const expressions = [];
|
|
233
|
-
let parseFns;
|
|
234
|
-
const textLength = text.length;
|
|
235
|
-
let exp;
|
|
236
|
-
const concat = [];
|
|
237
|
-
const expressionPositions = [];
|
|
238
|
-
let singleExpression;
|
|
239
|
-
|
|
240
|
-
while (index < textLength) {
|
|
241
|
-
if (
|
|
242
|
-
(startIndex = text.indexOf(provider.startSymbol, index)) !== -1 &&
|
|
243
|
-
(endIndex = text.indexOf(
|
|
244
|
-
provider.endSymbol,
|
|
245
|
-
startIndex + startSymbolLength,
|
|
246
|
-
)) !== -1
|
|
247
|
-
) {
|
|
248
|
-
if (index !== startIndex) {
|
|
249
|
-
concat.push(unescapeText(text.substring(index, startIndex)));
|
|
250
|
-
}
|
|
251
|
-
exp = text.substring(startIndex + startSymbolLength, endIndex);
|
|
252
|
-
expressions.push(exp);
|
|
253
|
-
index = endIndex + endSymbolLength;
|
|
254
|
-
expressionPositions.push(concat.length);
|
|
255
|
-
concat.push(""); // Placeholder that will get replaced with the evaluated expression.
|
|
256
|
-
} else {
|
|
257
|
-
// we did not find an interpolation, so we have to add the remainder to the separators array
|
|
258
|
-
if (index !== textLength) {
|
|
259
|
-
concat.push(unescapeText(text.substring(index)));
|
|
260
|
-
}
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
singleExpression =
|
|
266
|
-
concat.length === 1 && expressionPositions.length === 1;
|
|
267
|
-
// Intercept expression if we need to stringify concatenated inputs, which may be SCE trusted
|
|
268
|
-
// objects rather than simple strings
|
|
269
|
-
// (we don't modify the expression if the input consists of only a single trusted input)
|
|
270
|
-
const interceptor =
|
|
271
|
-
contextAllowsConcatenation && singleExpression
|
|
272
|
-
? undefined
|
|
273
|
-
: parseStringifyInterceptor;
|
|
274
|
-
parseFns = expressions.map((exp) => $parse(exp, interceptor));
|
|
275
|
-
|
|
276
|
-
// Concatenating expressions makes it hard to reason about whether some combination of
|
|
277
|
-
// concatenated values are unsafe to use and could easily lead to XSS. By requiring that a
|
|
278
|
-
// single expression be used for some $sce-managed secure contexts (RESOURCE_URLs mostly),
|
|
279
|
-
// we ensure that the value that's used is assigned or constructed by some JS code somewhere
|
|
280
|
-
// that is more testable or make it obvious that you bound the value to some user controlled
|
|
281
|
-
// value. This helps reduce the load when auditing for XSS issues.
|
|
282
|
-
|
|
283
|
-
// Note that URL and MEDIA_URL $sce contexts do not need this, since `$sce` can sanitize the values
|
|
284
|
-
// passed to it. In that case, `$sce.getTrusted` will be called on either the single expression
|
|
285
|
-
// or on the overall concatenated string (losing trusted types used in the mix, by design).
|
|
286
|
-
// Both these methods will sanitize plain strings. Also, HTML could be included, but since it's
|
|
287
|
-
// only used in srcdoc attributes, this would not be very useful.
|
|
288
|
-
|
|
289
|
-
if (!mustHaveExpression || expressions.length) {
|
|
290
|
-
const compute = function (values) {
|
|
291
|
-
for (let i = 0, ii = expressions.length; i < ii; i++) {
|
|
292
|
-
if (allOrNothing && isUndefined(values[i])) return;
|
|
293
|
-
concat[expressionPositions[i]] = values[i];
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
if (contextAllowsConcatenation) {
|
|
297
|
-
// If `singleExpression` then `concat[0]` might be a "trusted" value or `null`, rather than a string
|
|
298
|
-
return $sce.getTrusted(
|
|
299
|
-
trustedContext,
|
|
300
|
-
singleExpression ? concat[0] : concat.join(""),
|
|
301
|
-
);
|
|
302
|
-
}
|
|
303
|
-
if (trustedContext && concat.length > 1) {
|
|
304
|
-
// This context does not allow more than one part, e.g. expr + string or exp + exp.
|
|
305
|
-
throwNoconcat(text);
|
|
306
|
-
}
|
|
307
|
-
// In an unprivileged context or only one part: just concatenate and return.
|
|
308
|
-
return concat.join("");
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
return extend(
|
|
312
|
-
(context, cb) => {
|
|
313
|
-
let i = 0;
|
|
314
|
-
const ii = expressions.length;
|
|
315
|
-
const values = new Array(ii);
|
|
316
|
-
try {
|
|
317
|
-
for (; i < ii; i++) {
|
|
318
|
-
if (cb) {
|
|
319
|
-
const watchProp = expressions[i].trim();
|
|
320
|
-
context.$watch(watchProp, () => {
|
|
321
|
-
let vals = new Array(ii);
|
|
322
|
-
let j = 0;
|
|
323
|
-
for (; j < ii; j++) {
|
|
324
|
-
let fn = parseFns[j];
|
|
325
|
-
vals[j] = fn(context);
|
|
326
|
-
}
|
|
327
|
-
cb(compute(vals));
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
values[i] = parseFns[i](context);
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
return compute(values);
|
|
335
|
-
} catch (err) {
|
|
336
|
-
interr(text, err);
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
// Most likely we would need to register watches during interpolation
|
|
341
|
-
// all of these properties are undocumented for now
|
|
342
|
-
exp: text, // just for compatibility with regular watchers created via $watch
|
|
343
|
-
expressions,
|
|
344
|
-
$$watchDelegate(scope, listener) {
|
|
345
|
-
let lastValue;
|
|
346
|
-
return scope.$watch(
|
|
347
|
-
parseFns,
|
|
348
|
-
function interpolateFnWatcher(values, oldValues) {
|
|
349
|
-
const currValue = compute(values);
|
|
350
|
-
listener.call(
|
|
351
|
-
this,
|
|
352
|
-
currValue,
|
|
353
|
-
values !== oldValues ? lastValue : currValue,
|
|
354
|
-
scope,
|
|
355
|
-
);
|
|
356
|
-
lastValue = currValue;
|
|
357
|
-
},
|
|
358
|
-
);
|
|
359
|
-
},
|
|
360
|
-
},
|
|
361
|
-
);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
function parseStringifyInterceptor(value) {
|
|
365
|
-
try {
|
|
366
|
-
// In concatenable contexts, getTrusted comes at the end, to avoid sanitizing individual
|
|
367
|
-
// parts of a full URL. We don't care about losing the trustedness here.
|
|
368
|
-
// In non-concatenable contexts, where there is only one expression, this interceptor is
|
|
369
|
-
// not applied to the expression.
|
|
370
|
-
value =
|
|
371
|
-
trustedContext && !contextAllowsConcatenation
|
|
372
|
-
? $sce.getTrusted(trustedContext, value)
|
|
373
|
-
: $sce.valueOf(value);
|
|
374
|
-
return allOrNothing && !isDefined(value) ? value : stringify(value);
|
|
375
|
-
} catch (err) {
|
|
376
|
-
interr(text, err);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* Symbol to denote the start of expression in the interpolated string. Defaults to `{{`.
|
|
383
|
-
*
|
|
384
|
-
* Use {@link ng.$interpolateProvider#startSymbol `$interpolateProvider.startSymbol`} to change
|
|
385
|
-
* the symbol.
|
|
386
|
-
*
|
|
387
|
-
* @returns {string} start symbol.
|
|
388
|
-
*/
|
|
389
|
-
$interpolate.startSymbol = function () {
|
|
390
|
-
return provider.startSymbol;
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Symbol to denote the end of expression in the interpolated string. Defaults to `}}`.
|
|
395
|
-
*
|
|
396
|
-
* Use {@link ng.$interpolateProvider#endSymbol `$interpolateProvider.endSymbol`} to change
|
|
397
|
-
* the symbol.
|
|
398
|
-
*
|
|
399
|
-
* @returns {string} end symbol.
|
|
400
|
-
*/
|
|
401
|
-
$interpolate.endSymbol = function () {
|
|
402
|
-
return provider.endSymbol;
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
return $interpolate;
|
|
406
|
-
},
|
|
407
|
-
];
|
|
408
|
-
}
|