@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,542 +0,0 @@
|
|
|
1
|
-
import { emptyElement, removeElement, startingTag } from "../../shared/dom.js";
|
|
2
|
-
import {
|
|
3
|
-
assertArg,
|
|
4
|
-
equals,
|
|
5
|
-
hashKey,
|
|
6
|
-
hasOwn,
|
|
7
|
-
includes,
|
|
8
|
-
isArrayLike,
|
|
9
|
-
isDefined,
|
|
10
|
-
minErr,
|
|
11
|
-
} from "../../shared/utils.js";
|
|
12
|
-
|
|
13
|
-
const ngOptionsMinErr = minErr("ngOptions");
|
|
14
|
-
|
|
15
|
-
/** @type {HTMLOptionElement} */
|
|
16
|
-
const optionTemplate = document.createElement("option");
|
|
17
|
-
|
|
18
|
-
/** @type {HTMLOptGroupElement} */
|
|
19
|
-
const optGroupTemplate = document.createElement("optgroup");
|
|
20
|
-
|
|
21
|
-
const NG_OPTIONS_REGEXP =
|
|
22
|
-
/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/;
|
|
23
|
-
|
|
24
|
-
// 1: value expression (valueFn)
|
|
25
|
-
// 2: label expression (displayFn)
|
|
26
|
-
// 3: group by expression (groupByFn)
|
|
27
|
-
// 4: disable when expression (disableWhenFn)
|
|
28
|
-
// 5: array item variable name
|
|
29
|
-
// 6: object item key variable name
|
|
30
|
-
// 7: object item value variable name
|
|
31
|
-
// 8: collection expression
|
|
32
|
-
// 9: track by expression
|
|
33
|
-
|
|
34
|
-
ngOptionsDirective.$inject = ["$compile", "$parse"];
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
* @param {import("../../core/compile/compile.js").CompileFn} $compile
|
|
38
|
-
* @param {import("../../core/parse/interface.ts").ParseService} $parse
|
|
39
|
-
* @returns {import("../../interface.ts").Directive}
|
|
40
|
-
*/
|
|
41
|
-
export function ngOptionsDirective($compile, $parse) {
|
|
42
|
-
/**
|
|
43
|
-
* @param {import('../../interface.ts').Expression} optionsExp
|
|
44
|
-
* @param {HTMLSelectElement} selectElement
|
|
45
|
-
* @param {import('../../core/scope/scope.js').Scope} scope
|
|
46
|
-
* @returns
|
|
47
|
-
*/
|
|
48
|
-
function parseOptionsExpression(optionsExp, selectElement, scope) {
|
|
49
|
-
const match = optionsExp.match(NG_OPTIONS_REGEXP);
|
|
50
|
-
if (!match) {
|
|
51
|
-
throw ngOptionsMinErr(
|
|
52
|
-
"iexp",
|
|
53
|
-
"Expected expression in form of " +
|
|
54
|
-
"'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'" +
|
|
55
|
-
" but got '{0}'. Element: {1}",
|
|
56
|
-
optionsExp,
|
|
57
|
-
startingTag(selectElement),
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
// Extract the parts from the ngOptions expression
|
|
61
|
-
|
|
62
|
-
// The variable name for the value of the item in the collection
|
|
63
|
-
const valueName = match[5] || match[7];
|
|
64
|
-
// The variable name for the key of the item in the collection
|
|
65
|
-
const keyName = match[6];
|
|
66
|
-
|
|
67
|
-
// An expression that generates the viewValue for an option if there is a label expression
|
|
68
|
-
const selectAs = / as /.test(match[0]) && match[1];
|
|
69
|
-
// An expression that is used to track the id of each object in the options collection
|
|
70
|
-
const trackBy = match[9];
|
|
71
|
-
// An expression that generates the viewValue for an option if there is no label expression
|
|
72
|
-
const valueFn = $parse(match[2] ? match[1] : valueName);
|
|
73
|
-
const selectAsFn = selectAs && $parse(selectAs);
|
|
74
|
-
const viewValueFn = selectAsFn || valueFn;
|
|
75
|
-
const trackByFn = trackBy && $parse(trackBy);
|
|
76
|
-
|
|
77
|
-
// Get the value by which we are going to track the option
|
|
78
|
-
// if we have a trackFn then use that (passing scope and locals)
|
|
79
|
-
// otherwise just hash the given viewValue
|
|
80
|
-
const getTrackByValueFn = trackBy
|
|
81
|
-
? function (value, locals) {
|
|
82
|
-
return trackByFn(scope, locals);
|
|
83
|
-
}
|
|
84
|
-
: function getHashOfValue(value) {
|
|
85
|
-
return hashKey(value);
|
|
86
|
-
};
|
|
87
|
-
const getTrackByValue = function (value, key) {
|
|
88
|
-
return getTrackByValueFn(value, getLocals(value, key));
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
const displayFn = $parse(match[2] || match[1]);
|
|
92
|
-
const groupByFn = $parse(match[3] || "");
|
|
93
|
-
const disableWhenFn = $parse(match[4] || "");
|
|
94
|
-
const valuesFn = $parse(match[8]);
|
|
95
|
-
|
|
96
|
-
const locals = {};
|
|
97
|
-
let getLocals = keyName
|
|
98
|
-
? function (value, key) {
|
|
99
|
-
locals[keyName] = key;
|
|
100
|
-
locals[valueName] = value;
|
|
101
|
-
return locals;
|
|
102
|
-
}
|
|
103
|
-
: function (value) {
|
|
104
|
-
locals[valueName] = value;
|
|
105
|
-
return locals;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
class Option {
|
|
109
|
-
constructor(selectValue, viewValue, label, group, disabled) {
|
|
110
|
-
this.selectValue = selectValue;
|
|
111
|
-
this.viewValue = viewValue;
|
|
112
|
-
this.label = label;
|
|
113
|
-
this.group = group;
|
|
114
|
-
this.disabled = disabled;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function getOptionValuesKeys(optionValues) {
|
|
119
|
-
let optionValuesKeys;
|
|
120
|
-
|
|
121
|
-
if (!keyName && isArrayLike(optionValues)) {
|
|
122
|
-
optionValuesKeys = optionValues;
|
|
123
|
-
} else {
|
|
124
|
-
// if object, extract keys, in enumeration order, unsorted
|
|
125
|
-
optionValuesKeys = [];
|
|
126
|
-
for (const itemKey in optionValues) {
|
|
127
|
-
if (hasOwn(optionValues, itemKey) && itemKey.charAt(0) !== "$") {
|
|
128
|
-
optionValuesKeys.push(itemKey);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return optionValuesKeys;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return {
|
|
136
|
-
trackBy,
|
|
137
|
-
getTrackByValue,
|
|
138
|
-
getWatchables: $parse(valuesFn, (optionValues) => {
|
|
139
|
-
// Create a collection of things that we would like to watch (watchedArray)
|
|
140
|
-
// so that they can all be watched using a single $watchCollection
|
|
141
|
-
// that only runs the handler once if anything changes
|
|
142
|
-
const watchedArray = [];
|
|
143
|
-
optionValues = optionValues || [];
|
|
144
|
-
|
|
145
|
-
const optionValuesKeys = getOptionValuesKeys(optionValues);
|
|
146
|
-
const optionValuesLength = optionValuesKeys.length;
|
|
147
|
-
for (let index = 0; index < optionValuesLength; index++) {
|
|
148
|
-
const key =
|
|
149
|
-
optionValues === optionValuesKeys ? index : optionValuesKeys[index];
|
|
150
|
-
const value = optionValues[key];
|
|
151
|
-
|
|
152
|
-
const locals = getLocals(value, key);
|
|
153
|
-
const selectValue = getTrackByValueFn(value, locals);
|
|
154
|
-
watchedArray.push(selectValue);
|
|
155
|
-
|
|
156
|
-
// Only need to watch the displayFn if there is a specific label expression
|
|
157
|
-
if (match[2] || match[1]) {
|
|
158
|
-
const label = displayFn(scope, locals);
|
|
159
|
-
watchedArray.push(label);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// Only need to watch the disableWhenFn if there is a specific disable expression
|
|
163
|
-
if (match[4]) {
|
|
164
|
-
const disableWhen = disableWhenFn(scope, locals);
|
|
165
|
-
watchedArray.push(disableWhen);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return watchedArray;
|
|
169
|
-
}),
|
|
170
|
-
|
|
171
|
-
getOptions() {
|
|
172
|
-
/** @type {Option[]} */
|
|
173
|
-
const optionItems = [];
|
|
174
|
-
/** @type {Object.<string, Option>} */
|
|
175
|
-
const selectValueMap = {};
|
|
176
|
-
|
|
177
|
-
// The option values were already computed in the `getWatchables` fn,
|
|
178
|
-
// which must have been called to trigger `getOptions`
|
|
179
|
-
const optionValues = valuesFn(scope) || [];
|
|
180
|
-
const optionValuesKeys = getOptionValuesKeys(optionValues);
|
|
181
|
-
const optionValuesLength = optionValuesKeys.length;
|
|
182
|
-
|
|
183
|
-
for (let index = 0; index < optionValuesLength; index++) {
|
|
184
|
-
const key =
|
|
185
|
-
optionValues === optionValuesKeys ? index : optionValuesKeys[index];
|
|
186
|
-
const value = optionValues[key];
|
|
187
|
-
const locals = getLocals(value, key);
|
|
188
|
-
const viewValue = viewValueFn(scope, locals);
|
|
189
|
-
const selectValue = getTrackByValueFn(viewValue, locals);
|
|
190
|
-
const label = displayFn(scope, locals);
|
|
191
|
-
const group = groupByFn(scope, locals);
|
|
192
|
-
const disabled = disableWhenFn(scope, locals);
|
|
193
|
-
const optionItem = new Option(
|
|
194
|
-
selectValue,
|
|
195
|
-
viewValue,
|
|
196
|
-
label,
|
|
197
|
-
group,
|
|
198
|
-
disabled,
|
|
199
|
-
);
|
|
200
|
-
|
|
201
|
-
optionItems.push(optionItem);
|
|
202
|
-
selectValueMap[selectValue] = optionItem;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return {
|
|
206
|
-
items: optionItems,
|
|
207
|
-
selectValueMap,
|
|
208
|
-
getOptionFromViewValue(value) {
|
|
209
|
-
return selectValueMap[getTrackByValue(value)];
|
|
210
|
-
},
|
|
211
|
-
getViewValueFromOption(option) {
|
|
212
|
-
// If the viewValue could be an object that may be mutated by the application,
|
|
213
|
-
// we need to make a copy and not return the reference to the value on the option.
|
|
214
|
-
return trackBy
|
|
215
|
-
? structuredClone(option.viewValue)
|
|
216
|
-
: option.viewValue;
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
},
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
*
|
|
225
|
-
* @param {import("../../core/scope/scope.js").Scope} scope
|
|
226
|
-
* @param {HTMLSelectElement} selectElement
|
|
227
|
-
* @param {import("../../core/compile/attributes.js").Attributes} attr
|
|
228
|
-
* @param {*} ctrls
|
|
229
|
-
*/
|
|
230
|
-
function ngOptionsPostLink(scope, selectElement, attr, ctrls) {
|
|
231
|
-
const selectCtrl = ctrls[0];
|
|
232
|
-
const ngModelCtrl = ctrls[1];
|
|
233
|
-
const multiple = attr["multiple"];
|
|
234
|
-
|
|
235
|
-
// The emptyOption allows the application developer to provide their own custom "empty"
|
|
236
|
-
// option when the viewValue does not match any of the option values.
|
|
237
|
-
for (
|
|
238
|
-
let i = 0, children = selectElement.childNodes, ii = children.length;
|
|
239
|
-
i < ii;
|
|
240
|
-
i++
|
|
241
|
-
) {
|
|
242
|
-
if (/** @type {HTMLOptionElement} */ (children[i]).value === "") {
|
|
243
|
-
selectCtrl.hasEmptyOption = true;
|
|
244
|
-
selectCtrl.emptyOption = children[i];
|
|
245
|
-
break;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
// The empty option will be compiled and rendered before we first generate the options
|
|
250
|
-
emptyElement(selectElement);
|
|
251
|
-
|
|
252
|
-
const providedEmptyOption = !!selectCtrl.emptyOption;
|
|
253
|
-
|
|
254
|
-
const unknownOption = optionTemplate.cloneNode(false);
|
|
255
|
-
// TODO double check
|
|
256
|
-
unknownOption.nodeValue = "?";
|
|
257
|
-
|
|
258
|
-
let options;
|
|
259
|
-
const ngOptions = parseOptionsExpression(
|
|
260
|
-
attr["ngOptions"],
|
|
261
|
-
selectElement,
|
|
262
|
-
scope,
|
|
263
|
-
);
|
|
264
|
-
// This stores the newly created options before they are appended to the select.
|
|
265
|
-
// Since the contents are removed from the fragment when it is appended,
|
|
266
|
-
// we only need to create it once.
|
|
267
|
-
const listFragment = document.createDocumentFragment();
|
|
268
|
-
|
|
269
|
-
// Overwrite the implementation. ngOptions doesn't use hashes
|
|
270
|
-
selectCtrl.generateUnknownOptionValue = () => "?";
|
|
271
|
-
|
|
272
|
-
// Update the controller methods for multiple selectable options
|
|
273
|
-
if (!multiple) {
|
|
274
|
-
selectCtrl.writeValue = function writeNgOptionsValue(value) {
|
|
275
|
-
// The options might not be defined yet when ngModel tries to render
|
|
276
|
-
if (!options) return;
|
|
277
|
-
|
|
278
|
-
const selectedOption =
|
|
279
|
-
selectElement.options[selectElement.selectedIndex];
|
|
280
|
-
const option = options.getOptionFromViewValue(value);
|
|
281
|
-
|
|
282
|
-
// Make sure to remove the selected attribute from the previously selected option
|
|
283
|
-
// Otherwise, screen readers might get confused
|
|
284
|
-
if (selectedOption) selectedOption.removeAttribute("selected");
|
|
285
|
-
|
|
286
|
-
if (option) {
|
|
287
|
-
// Don't update the option when it is already selected.
|
|
288
|
-
// For example, the browser will select the first option by default. In that case,
|
|
289
|
-
// most properties are set automatically - except the `selected` attribute, which we
|
|
290
|
-
// set always
|
|
291
|
-
|
|
292
|
-
if (selectElement.value !== option.selectValue) {
|
|
293
|
-
selectCtrl.removeUnknownOption();
|
|
294
|
-
|
|
295
|
-
selectElement.value = option.selectValue;
|
|
296
|
-
option.element.selected = true;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
option.element.setAttribute("selected", "selected");
|
|
300
|
-
} else {
|
|
301
|
-
selectCtrl.selectUnknownOrEmptyOption(value);
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
selectCtrl.readValue = function readNgOptionsValue() {
|
|
306
|
-
const selectedOption = options.selectValueMap[selectElement.value];
|
|
307
|
-
|
|
308
|
-
if (selectedOption && !selectedOption.disabled) {
|
|
309
|
-
selectCtrl.unselectEmptyOption();
|
|
310
|
-
selectCtrl.removeUnknownOption();
|
|
311
|
-
return options.getViewValueFromOption(selectedOption);
|
|
312
|
-
}
|
|
313
|
-
return null;
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
// If we are using `track by` then we must watch the tracked value on the model
|
|
317
|
-
// since ngModel only watches for object identity change
|
|
318
|
-
// FIXME: When a user selects an option, this watch will fire needlessly
|
|
319
|
-
if (ngOptions.trackBy) {
|
|
320
|
-
scope.$watch(ngOptions.getTrackByValue(ngModelCtrl.$viewValue), () => {
|
|
321
|
-
ngModelCtrl.$render();
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
} else {
|
|
325
|
-
selectCtrl.writeValue = function writeNgOptionsMultiple(values) {
|
|
326
|
-
// The options might not be defined yet when ngModel tries to render
|
|
327
|
-
if (!options) return;
|
|
328
|
-
|
|
329
|
-
// Only set `<option>.selected` if necessary, in order to prevent some browsers from
|
|
330
|
-
// scrolling to `<option>` elements that are outside the `<select>` element's viewport.
|
|
331
|
-
const selectedOptions =
|
|
332
|
-
(values && values.map(getAndUpdateSelectedOption)) || [];
|
|
333
|
-
|
|
334
|
-
options.items.forEach((option) => {
|
|
335
|
-
if (option.element.selected && !includes(selectedOptions, option)) {
|
|
336
|
-
option.element.selected = false;
|
|
337
|
-
}
|
|
338
|
-
});
|
|
339
|
-
};
|
|
340
|
-
|
|
341
|
-
selectCtrl.readValue = function readNgOptionsMultiple() {
|
|
342
|
-
const selectedValues = selectElement.value || [];
|
|
343
|
-
const selections = [];
|
|
344
|
-
// @ts-ignore
|
|
345
|
-
selectedValues.forEach((value) => {
|
|
346
|
-
const option = options.selectValueMap[value];
|
|
347
|
-
if (option && !option.disabled)
|
|
348
|
-
selections.push(options.getViewValueFromOption(option));
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
return selections;
|
|
352
|
-
};
|
|
353
|
-
|
|
354
|
-
// If we are using `track by` then we must watch these tracked values on the model
|
|
355
|
-
// since ngModel only watches for object identity change
|
|
356
|
-
// if (ngOptions.trackBy) {
|
|
357
|
-
// scope.$watchCollection(
|
|
358
|
-
// () => {
|
|
359
|
-
// if (Array.isArray(ngModelCtrl.$viewValue)) {
|
|
360
|
-
// return ngModelCtrl.$viewValue.map((value) =>
|
|
361
|
-
// ngOptions.getTrackByValue(value),
|
|
362
|
-
// );
|
|
363
|
-
// }
|
|
364
|
-
// },
|
|
365
|
-
// () => {
|
|
366
|
-
// ngModelCtrl.$render();
|
|
367
|
-
// },
|
|
368
|
-
// );
|
|
369
|
-
// }
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
if (providedEmptyOption) {
|
|
373
|
-
// compile the element since there might be bindings in it
|
|
374
|
-
const linkFn = $compile(selectCtrl.emptyOption);
|
|
375
|
-
assertArg(linkFn, "LinkFn required");
|
|
376
|
-
selectElement.prepend(selectCtrl.emptyOption);
|
|
377
|
-
linkFn(scope);
|
|
378
|
-
|
|
379
|
-
if (selectCtrl.emptyOption.nodeType === Node.COMMENT_NODE) {
|
|
380
|
-
// This means the empty option has currently no actual DOM node, probably because
|
|
381
|
-
// it has been modified by a transclusion directive.
|
|
382
|
-
selectCtrl.hasEmptyOption = false;
|
|
383
|
-
|
|
384
|
-
// Redefine the registerOption function, which will catch
|
|
385
|
-
// options that are added by ngIf etc. (rendering of the node is async because of
|
|
386
|
-
// lazy transclusion)
|
|
387
|
-
selectCtrl.registerOption = function (optionScope, optionEl) {
|
|
388
|
-
if (optionEl.value === "") {
|
|
389
|
-
selectCtrl.hasEmptyOption = true;
|
|
390
|
-
selectCtrl.emptyOption = optionEl;
|
|
391
|
-
// This ensures the new empty option is selected if previously no option was selected
|
|
392
|
-
ngModelCtrl.$render();
|
|
393
|
-
|
|
394
|
-
optionEl.addEventListener("$destroy", () => {
|
|
395
|
-
const needsRerender = selectCtrl.$isEmptyOptionSelected();
|
|
396
|
-
|
|
397
|
-
selectCtrl.hasEmptyOption = false;
|
|
398
|
-
selectCtrl.emptyOption = undefined;
|
|
399
|
-
|
|
400
|
-
if (needsRerender) ngModelCtrl.$render();
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
};
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
// We will re-render the option elements if the option values or labels change
|
|
408
|
-
|
|
409
|
-
// let watchables = ngOptions.getWatchables();
|
|
410
|
-
// watchables.forEach((i) => {
|
|
411
|
-
// scope.$watch(i, updateOptions);
|
|
412
|
-
// });
|
|
413
|
-
scope.$watch(
|
|
414
|
-
ngOptions.getWatchables.decoratedNode.body[0].expression.name,
|
|
415
|
-
updateOptions,
|
|
416
|
-
);
|
|
417
|
-
|
|
418
|
-
// ------------------------------------------------------------------ //
|
|
419
|
-
|
|
420
|
-
function addOptionElement(option, parent) {
|
|
421
|
-
/**
|
|
422
|
-
* @type {HTMLOptionElement}
|
|
423
|
-
*/
|
|
424
|
-
const optionElement = /** @type {HTMLOptionElement} */ (
|
|
425
|
-
optionTemplate.cloneNode(false)
|
|
426
|
-
);
|
|
427
|
-
parent.appendChild(optionElement);
|
|
428
|
-
updateOptionElement(option, optionElement);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
function getAndUpdateSelectedOption(viewValue) {
|
|
432
|
-
const option = options.getOptionFromViewValue(viewValue);
|
|
433
|
-
const element = option && option.element;
|
|
434
|
-
|
|
435
|
-
if (element && !element.selected) element.selected = true;
|
|
436
|
-
|
|
437
|
-
return option;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
function updateOptionElement(option, element) {
|
|
441
|
-
option.element = element;
|
|
442
|
-
element.disabled = option.disabled;
|
|
443
|
-
// Support: IE 11 only, Edge 12-13 only
|
|
444
|
-
// NOTE: The label must be set before the value, otherwise IE 11 & Edge create unresponsive
|
|
445
|
-
// selects in certain circumstances when multiple selects are next to each other and display
|
|
446
|
-
// the option list in listbox style, i.e. the select is [multiple], or specifies a [size].
|
|
447
|
-
// See https://github.com/angular/angular.js/issues/11314 for more info.
|
|
448
|
-
// This is unfortunately untestable with unit / e2e tests
|
|
449
|
-
if (option.label !== element.label) {
|
|
450
|
-
element.label = option.label;
|
|
451
|
-
element.textContent = option.label;
|
|
452
|
-
}
|
|
453
|
-
element.value = option.selectValue;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
function updateOptions() {
|
|
457
|
-
const previousValue = options && selectCtrl.readValue();
|
|
458
|
-
|
|
459
|
-
// We must remove all current options, but cannot simply set innerHTML = null
|
|
460
|
-
// since the providedEmptyOption might have an ngIf on it that inserts comments which we
|
|
461
|
-
// must preserve.
|
|
462
|
-
// Instead, iterate over the current option elements and remove them or their optgroup
|
|
463
|
-
// parents
|
|
464
|
-
if (options) {
|
|
465
|
-
for (let i = options.items.length - 1; i >= 0; i--) {
|
|
466
|
-
const option = options.items[i];
|
|
467
|
-
if (isDefined(option.group)) {
|
|
468
|
-
removeElement(option.element.parentNode);
|
|
469
|
-
} else {
|
|
470
|
-
removeElement(option.element);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
options = ngOptions.getOptions();
|
|
476
|
-
|
|
477
|
-
const groupElementMap = {};
|
|
478
|
-
|
|
479
|
-
options.items.forEach((option) => {
|
|
480
|
-
let groupElement;
|
|
481
|
-
|
|
482
|
-
if (isDefined(option.group)) {
|
|
483
|
-
// This option is to live in a group
|
|
484
|
-
// See if we have already created this group
|
|
485
|
-
groupElement = groupElementMap[option.group];
|
|
486
|
-
|
|
487
|
-
if (!groupElement) {
|
|
488
|
-
groupElement = optGroupTemplate.cloneNode(false);
|
|
489
|
-
listFragment.appendChild(groupElement);
|
|
490
|
-
|
|
491
|
-
// Update the label on the group element
|
|
492
|
-
// "null" is special cased because of Safari
|
|
493
|
-
/** @type {HTMLOptGroupElement} */
|
|
494
|
-
(groupElement).label =
|
|
495
|
-
option.group === null ? "null" : option.group;
|
|
496
|
-
|
|
497
|
-
// Store it for use later
|
|
498
|
-
groupElementMap[option.group] = groupElement;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
addOptionElement(option, groupElement);
|
|
502
|
-
} else {
|
|
503
|
-
// This option is not in a group
|
|
504
|
-
addOptionElement(option, listFragment);
|
|
505
|
-
}
|
|
506
|
-
});
|
|
507
|
-
|
|
508
|
-
selectElement.appendChild(listFragment);
|
|
509
|
-
|
|
510
|
-
ngModelCtrl.$render();
|
|
511
|
-
|
|
512
|
-
// Check to see if the value has changed due to the update to the options
|
|
513
|
-
if (!ngModelCtrl.$isEmpty(previousValue)) {
|
|
514
|
-
const nextValue = selectCtrl.readValue();
|
|
515
|
-
const isNotPrimitive = ngOptions.trackBy || multiple;
|
|
516
|
-
if (
|
|
517
|
-
isNotPrimitive
|
|
518
|
-
? !equals(previousValue, nextValue)
|
|
519
|
-
: previousValue !== nextValue
|
|
520
|
-
) {
|
|
521
|
-
ngModelCtrl.$setViewValue(nextValue);
|
|
522
|
-
ngModelCtrl.$render();
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
return {
|
|
529
|
-
restrict: "A",
|
|
530
|
-
terminal: true,
|
|
531
|
-
require: ["select", "ngModel"],
|
|
532
|
-
link: {
|
|
533
|
-
pre: function ngOptionsPreLink(scope, selectElement, attr, ctrls) {
|
|
534
|
-
// Deactivate the SelectController.register method to prevent
|
|
535
|
-
// option directives from accidentally registering themselves
|
|
536
|
-
// (and unwanted $destroy handlers etc.)
|
|
537
|
-
ctrls[0].registerOption = () => {};
|
|
538
|
-
},
|
|
539
|
-
post: ngOptionsPostLink,
|
|
540
|
-
},
|
|
541
|
-
};
|
|
542
|
-
}
|