@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,594 +0,0 @@
|
|
|
1
|
-
import { getCacheData } from "../../shared/dom.js";
|
|
2
|
-
import {
|
|
3
|
-
assertNotHasOwnProperty,
|
|
4
|
-
equals,
|
|
5
|
-
hashKey,
|
|
6
|
-
includes,
|
|
7
|
-
isDefined,
|
|
8
|
-
isUndefined,
|
|
9
|
-
shallowCopy,
|
|
10
|
-
} from "../../shared/utils.js";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The controller for the {@link ng.select select} directive.
|
|
14
|
-
* The controller exposes a few utility methods that can be used to augment
|
|
15
|
-
* the behavior of a regular or an {@link ng.ngOptions ngOptions} select element.
|
|
16
|
-
*/
|
|
17
|
-
class SelectController {
|
|
18
|
-
static $nonscope = [
|
|
19
|
-
"ngModelCtrl",
|
|
20
|
-
"selectValueMap",
|
|
21
|
-
"emptyOption",
|
|
22
|
-
"optionsMap",
|
|
23
|
-
"$scope",
|
|
24
|
-
"$element",
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @type {Array<string>}
|
|
29
|
-
*/
|
|
30
|
-
/* @ignore */ static $inject = ["$element", "$scope"];
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @param {HTMLSelectElement} $element
|
|
34
|
-
* @param {import('../../core/scope/scope.js').Scope} $scope
|
|
35
|
-
*/
|
|
36
|
-
constructor($element, $scope) {
|
|
37
|
-
/** @type {HTMLSelectElement} */
|
|
38
|
-
this.$element = $element;
|
|
39
|
-
|
|
40
|
-
/** @type {import('../../core/scope/scope.js').Scope} */
|
|
41
|
-
this.$scope = $scope;
|
|
42
|
-
|
|
43
|
-
/** @type {Object<string, any>} */
|
|
44
|
-
this.selectValueMap = {};
|
|
45
|
-
|
|
46
|
-
/** @type {any} */
|
|
47
|
-
this.ngModelCtrl = {};
|
|
48
|
-
|
|
49
|
-
/** @type {boolean} */
|
|
50
|
-
this.multiple = false;
|
|
51
|
-
|
|
52
|
-
/** @type {HTMLOptionElement} */
|
|
53
|
-
this.unknownOption = document.createElement("option");
|
|
54
|
-
|
|
55
|
-
/** @type {boolean} */
|
|
56
|
-
this.hasEmptyOption = false;
|
|
57
|
-
|
|
58
|
-
/** @type {HTMLOptionElement|undefined} */
|
|
59
|
-
this.emptyOption = undefined;
|
|
60
|
-
|
|
61
|
-
/** @type {Map<any, number>} */
|
|
62
|
-
this.optionsMap = new Map();
|
|
63
|
-
|
|
64
|
-
/** @type {boolean} */
|
|
65
|
-
this.renderScheduled = false;
|
|
66
|
-
|
|
67
|
-
/** @type {boolean} */
|
|
68
|
-
this.updateScheduled = false;
|
|
69
|
-
|
|
70
|
-
$scope.$on("$destroy", () => {
|
|
71
|
-
// disable unknown option so that we don't do work when the whole select is being destroyed
|
|
72
|
-
this.renderUnknownOption = () => {};
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Render the unknown option when the viewValue doesn't match any options.
|
|
78
|
-
* @param {*} val
|
|
79
|
-
*/
|
|
80
|
-
renderUnknownOption(val) {
|
|
81
|
-
const unknownVal = this.generateUnknownOptionValue(val);
|
|
82
|
-
this.unknownOption.value = unknownVal;
|
|
83
|
-
this.$element.prepend(this.unknownOption);
|
|
84
|
-
this.unknownOption.selected = true;
|
|
85
|
-
this.unknownOption.setAttribute("selected", "selected");
|
|
86
|
-
this.$element.value = unknownVal;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Update the unknown option if it's already rendered.
|
|
91
|
-
* @param {*} val
|
|
92
|
-
*/
|
|
93
|
-
updateUnknownOption(val) {
|
|
94
|
-
const unknownVal = this.generateUnknownOptionValue(val);
|
|
95
|
-
this.unknownOption.value = unknownVal;
|
|
96
|
-
this.unknownOption.selected = true;
|
|
97
|
-
this.unknownOption.setAttribute("selected", "selected");
|
|
98
|
-
this.$element.value = unknownVal;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Generate a special value used for unknown options.
|
|
103
|
-
* @param {*} val
|
|
104
|
-
* @returns {string}
|
|
105
|
-
*/
|
|
106
|
-
generateUnknownOptionValue(val) {
|
|
107
|
-
if (isUndefined(val)) {
|
|
108
|
-
return `? undefined:undefined ?`;
|
|
109
|
-
}
|
|
110
|
-
return `? ${hashKey(val)} ?`;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Remove the unknown option from the select element if it exists.
|
|
115
|
-
*/
|
|
116
|
-
removeUnknownOption() {
|
|
117
|
-
if (this.unknownOption.parentElement) this.unknownOption.remove();
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Select the empty option (value="") if it exists.
|
|
122
|
-
*/
|
|
123
|
-
selectEmptyOption() {
|
|
124
|
-
if (this.emptyOption) {
|
|
125
|
-
this.$element.value = "";
|
|
126
|
-
this.emptyOption.selected = true;
|
|
127
|
-
this.emptyOption.setAttribute("selected", "selected");
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Unselect the empty option if present.
|
|
133
|
-
*/
|
|
134
|
-
unselectEmptyOption() {
|
|
135
|
-
if (this.hasEmptyOption) {
|
|
136
|
-
this.emptyOption.selected = false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Read the current value from the select element.
|
|
142
|
-
* @returns {*|null}
|
|
143
|
-
*/
|
|
144
|
-
readValue() {
|
|
145
|
-
const val = this.$element.value;
|
|
146
|
-
const realVal = val in this.selectValueMap ? this.selectValueMap[val] : val;
|
|
147
|
-
return this.hasOption(realVal) ? realVal : null;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Write a value to the select control.
|
|
152
|
-
* @param {*} value
|
|
153
|
-
*/
|
|
154
|
-
writeValue(value) {
|
|
155
|
-
const currentlySelectedOption =
|
|
156
|
-
this.$element.options[this.$element.selectedIndex];
|
|
157
|
-
if (currentlySelectedOption) currentlySelectedOption.selected = false;
|
|
158
|
-
|
|
159
|
-
if (this.hasOption(value)) {
|
|
160
|
-
this.removeUnknownOption();
|
|
161
|
-
|
|
162
|
-
const hashedVal = hashKey(value);
|
|
163
|
-
this.$element.value =
|
|
164
|
-
hashedVal in this.selectValueMap ? hashedVal : value;
|
|
165
|
-
const selectedOption = this.$element.options[this.$element.selectedIndex];
|
|
166
|
-
if (!selectedOption) {
|
|
167
|
-
this.selectUnknownOrEmptyOption(value);
|
|
168
|
-
} else {
|
|
169
|
-
selectedOption.selected = true;
|
|
170
|
-
}
|
|
171
|
-
} else {
|
|
172
|
-
this.selectUnknownOrEmptyOption(value);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Register a new option with the controller.
|
|
178
|
-
* @param {*} value
|
|
179
|
-
* @param {HTMLOptionElement} element
|
|
180
|
-
*/
|
|
181
|
-
addOption(value, element) {
|
|
182
|
-
if (element.nodeType === Node.COMMENT_NODE) return;
|
|
183
|
-
|
|
184
|
-
assertNotHasOwnProperty(value, '"option value"');
|
|
185
|
-
if (value === "") {
|
|
186
|
-
this.hasEmptyOption = true;
|
|
187
|
-
this.emptyOption = element;
|
|
188
|
-
}
|
|
189
|
-
const count = this.optionsMap.get(value) || 0;
|
|
190
|
-
this.optionsMap.set(value, count + 1);
|
|
191
|
-
this.scheduleRender();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Remove an option from the controller.
|
|
196
|
-
* @param {*} value
|
|
197
|
-
*/
|
|
198
|
-
removeOption(value) {
|
|
199
|
-
const count = this.optionsMap.get(value);
|
|
200
|
-
if (count) {
|
|
201
|
-
if (count === 1) {
|
|
202
|
-
this.optionsMap.delete(value);
|
|
203
|
-
if (value === "") {
|
|
204
|
-
this.hasEmptyOption = false;
|
|
205
|
-
this.emptyOption = undefined;
|
|
206
|
-
}
|
|
207
|
-
} else {
|
|
208
|
-
this.optionsMap.set(value, count - 1);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Check if an option exists for the given value.
|
|
215
|
-
* @param {*} value
|
|
216
|
-
* @returns {boolean}
|
|
217
|
-
*/
|
|
218
|
-
hasOption(value) {
|
|
219
|
-
return !!this.optionsMap.get(value);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* @returns {boolean} Whether the select element currently has an empty option.
|
|
224
|
-
*/
|
|
225
|
-
$hasEmptyOption() {
|
|
226
|
-
return this.hasEmptyOption;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* @returns {boolean} Whether the unknown option is currently selected.
|
|
231
|
-
*/
|
|
232
|
-
$isUnknownOptionSelected() {
|
|
233
|
-
return this.$element.options[0] === this.unknownOption;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* @returns {boolean} Whether the empty option is selected.
|
|
238
|
-
*/
|
|
239
|
-
$isEmptyOptionSelected() {
|
|
240
|
-
return (
|
|
241
|
-
this.hasEmptyOption &&
|
|
242
|
-
this.$element.options[this.$element.selectedIndex] === this.emptyOption
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Select unknown or empty option depending on the value.
|
|
248
|
-
* @param {*} value
|
|
249
|
-
*/
|
|
250
|
-
selectUnknownOrEmptyOption(value) {
|
|
251
|
-
if (value == null && this.emptyOption) {
|
|
252
|
-
this.removeUnknownOption();
|
|
253
|
-
this.selectEmptyOption();
|
|
254
|
-
} else if (this.unknownOption.parentElement) {
|
|
255
|
-
this.updateUnknownOption(value);
|
|
256
|
-
} else {
|
|
257
|
-
this.renderUnknownOption(value);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Schedule a render at the end of the digest cycle.
|
|
263
|
-
*/
|
|
264
|
-
scheduleRender() {
|
|
265
|
-
if (this.renderScheduled) return;
|
|
266
|
-
this.renderScheduled = true;
|
|
267
|
-
this.$scope.$postUpdate(() => {
|
|
268
|
-
this.renderScheduled = false;
|
|
269
|
-
this.ngModelCtrl.$render();
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Schedule a view value update at the end of the digest cycle.
|
|
275
|
-
* @param {boolean} [renderAfter=false]
|
|
276
|
-
*/
|
|
277
|
-
scheduleViewValueUpdate(renderAfter = false) {
|
|
278
|
-
if (this.updateScheduled) return;
|
|
279
|
-
|
|
280
|
-
this.updateScheduled = true;
|
|
281
|
-
|
|
282
|
-
this.$scope.$postUpdate(() => {
|
|
283
|
-
if (this.$scope.$$destroyed) return;
|
|
284
|
-
|
|
285
|
-
this.updateScheduled = false;
|
|
286
|
-
this.ngModelCtrl.$setViewValue(this.readValue());
|
|
287
|
-
if (renderAfter) this.ngModelCtrl.$render();
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
/**
|
|
292
|
-
* Register an option with interpolation or dynamic value/text.
|
|
293
|
-
* @param {any} optionScope
|
|
294
|
-
* @param {HTMLOptionElement} optionElement
|
|
295
|
-
* @param {any} optionAttrs
|
|
296
|
-
* @param {Function} [interpolateValueFn]
|
|
297
|
-
* @param {Function} [interpolateTextFn]
|
|
298
|
-
*/
|
|
299
|
-
registerOption(
|
|
300
|
-
optionScope,
|
|
301
|
-
optionElement,
|
|
302
|
-
optionAttrs,
|
|
303
|
-
interpolateValueFn,
|
|
304
|
-
interpolateTextFn,
|
|
305
|
-
) {
|
|
306
|
-
let oldVal;
|
|
307
|
-
let hashedVal;
|
|
308
|
-
if (optionAttrs.$attr.ngValue) {
|
|
309
|
-
optionAttrs.$observe("value", (newVal) => {
|
|
310
|
-
let removal;
|
|
311
|
-
const previouslySelected = optionElement.selected;
|
|
312
|
-
|
|
313
|
-
if (isDefined(hashedVal)) {
|
|
314
|
-
this.removeOption(oldVal);
|
|
315
|
-
delete this.selectValueMap[hashedVal];
|
|
316
|
-
removal = true;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
hashedVal = hashKey(newVal);
|
|
320
|
-
oldVal = newVal;
|
|
321
|
-
this.selectValueMap[hashedVal] = newVal;
|
|
322
|
-
this.addOption(newVal, optionElement);
|
|
323
|
-
optionElement.setAttribute("value", hashedVal);
|
|
324
|
-
|
|
325
|
-
if (removal && previouslySelected) {
|
|
326
|
-
this.scheduleViewValueUpdate();
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
} else if (interpolateValueFn) {
|
|
330
|
-
optionAttrs.$observe("value", (newVal) => {
|
|
331
|
-
this.readValue();
|
|
332
|
-
let removal;
|
|
333
|
-
const previouslySelected = optionElement.selected;
|
|
334
|
-
|
|
335
|
-
if (isDefined(oldVal)) {
|
|
336
|
-
this.removeOption(oldVal);
|
|
337
|
-
removal = true;
|
|
338
|
-
}
|
|
339
|
-
oldVal = newVal;
|
|
340
|
-
this.addOption(newVal, optionElement);
|
|
341
|
-
|
|
342
|
-
if (removal && previouslySelected) {
|
|
343
|
-
this.scheduleViewValueUpdate();
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
} else if (interpolateTextFn) {
|
|
347
|
-
optionScope.value = interpolateTextFn(optionScope);
|
|
348
|
-
if (!optionAttrs["value"]) {
|
|
349
|
-
optionAttrs.$set("value", optionScope.value);
|
|
350
|
-
this.addOption(optionScope.value, optionElement);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
let oldVal;
|
|
354
|
-
optionScope.$watch("value", () => {
|
|
355
|
-
let newVal = interpolateTextFn(optionScope);
|
|
356
|
-
if (!optionAttrs["value"]) {
|
|
357
|
-
optionAttrs.$set("value", newVal);
|
|
358
|
-
}
|
|
359
|
-
const previouslySelected = optionElement.selected;
|
|
360
|
-
if (oldVal !== newVal) {
|
|
361
|
-
this.removeOption(oldVal);
|
|
362
|
-
oldVal = newVal;
|
|
363
|
-
}
|
|
364
|
-
this.addOption(newVal, optionElement);
|
|
365
|
-
|
|
366
|
-
if (oldVal && previouslySelected) {
|
|
367
|
-
this.scheduleViewValueUpdate();
|
|
368
|
-
}
|
|
369
|
-
});
|
|
370
|
-
} else {
|
|
371
|
-
this.addOption(optionAttrs.value, optionElement);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
optionAttrs.$observe("disabled", (newVal) => {
|
|
375
|
-
if (newVal === "true" || (newVal && optionElement.selected)) {
|
|
376
|
-
if (this.multiple) {
|
|
377
|
-
this.scheduleViewValueUpdate(true);
|
|
378
|
-
} else {
|
|
379
|
-
this.ngModelCtrl.$setViewValue(null);
|
|
380
|
-
this.ngModelCtrl.$render();
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
});
|
|
384
|
-
|
|
385
|
-
optionElement.addEventListener("$destroy", () => {
|
|
386
|
-
const currentValue = this.readValue();
|
|
387
|
-
const removeValue = optionAttrs.value;
|
|
388
|
-
|
|
389
|
-
this.removeOption(removeValue);
|
|
390
|
-
this.scheduleRender();
|
|
391
|
-
|
|
392
|
-
if (
|
|
393
|
-
(this.multiple &&
|
|
394
|
-
currentValue &&
|
|
395
|
-
currentValue.indexOf(removeValue) !== -1) ||
|
|
396
|
-
currentValue === removeValue
|
|
397
|
-
) {
|
|
398
|
-
this.scheduleViewValueUpdate(true);
|
|
399
|
-
}
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* @returns {import('../../interface.ts').Directive}
|
|
406
|
-
*/
|
|
407
|
-
export function selectDirective() {
|
|
408
|
-
return {
|
|
409
|
-
restrict: "E",
|
|
410
|
-
require: ["select", "?ngModel"],
|
|
411
|
-
controller: SelectController,
|
|
412
|
-
priority: 1,
|
|
413
|
-
link: {
|
|
414
|
-
pre: selectPreLink,
|
|
415
|
-
post: selectPostLink,
|
|
416
|
-
},
|
|
417
|
-
};
|
|
418
|
-
|
|
419
|
-
function selectPreLink(_scope, element, attr, ctrls) {
|
|
420
|
-
/** @type {SelectController} */
|
|
421
|
-
const selectCtrl = ctrls[0];
|
|
422
|
-
/** @type {import("../model/model.js").NgModelController} */
|
|
423
|
-
const ngModelCtrl = ctrls[1];
|
|
424
|
-
|
|
425
|
-
// if ngModel is not defined, we don't need to do anything but set the registerOption
|
|
426
|
-
// function to noop, so options don't get added internally
|
|
427
|
-
if (!ngModelCtrl) {
|
|
428
|
-
selectCtrl.registerOption = () => {};
|
|
429
|
-
return;
|
|
430
|
-
}
|
|
431
|
-
selectCtrl["ngModelCtrl"] = ngModelCtrl;
|
|
432
|
-
|
|
433
|
-
// When the selected item(s) changes we delegate getting the value of the select control
|
|
434
|
-
// to the `readValue` method, which can be changed if the select can have multiple
|
|
435
|
-
// selected values or if the options are being generated by `ngOptions`
|
|
436
|
-
element.addEventListener("change", () => {
|
|
437
|
-
selectCtrl.removeUnknownOption();
|
|
438
|
-
const viewValue = selectCtrl.readValue();
|
|
439
|
-
ngModelCtrl.$setViewValue(viewValue);
|
|
440
|
-
});
|
|
441
|
-
|
|
442
|
-
// If the select allows multiple values then we need to modify how we read and write
|
|
443
|
-
// values from and to the control; also what it means for the value to be empty and
|
|
444
|
-
// we have to add an extra watch since ngModel doesn't work well with arrays - it
|
|
445
|
-
// doesn't trigger rendering if only an item in the array changes.
|
|
446
|
-
if (attr.multiple) {
|
|
447
|
-
selectCtrl.multiple = true;
|
|
448
|
-
|
|
449
|
-
// Read value now needs to check each option to see if it is selected
|
|
450
|
-
selectCtrl.readValue = function () {
|
|
451
|
-
const array = [];
|
|
452
|
-
/**
|
|
453
|
-
* @type {HTMLCollection}
|
|
454
|
-
*/
|
|
455
|
-
const options = element.getElementsByTagName("option");
|
|
456
|
-
Array.from(options).forEach(
|
|
457
|
-
/**
|
|
458
|
-
* @param {HTMLOptionElement} option
|
|
459
|
-
*/
|
|
460
|
-
(option) => {
|
|
461
|
-
if (option.selected && !option.disabled) {
|
|
462
|
-
const val = option.value;
|
|
463
|
-
array.push(
|
|
464
|
-
val in selectCtrl.selectValueMap
|
|
465
|
-
? selectCtrl.selectValueMap[val]
|
|
466
|
-
: val,
|
|
467
|
-
);
|
|
468
|
-
}
|
|
469
|
-
},
|
|
470
|
-
);
|
|
471
|
-
return array;
|
|
472
|
-
};
|
|
473
|
-
|
|
474
|
-
// Write value now needs to set the selected property of each matching option
|
|
475
|
-
selectCtrl.writeValue = function (value) {
|
|
476
|
-
/**
|
|
477
|
-
* @type {HTMLCollection}
|
|
478
|
-
*/
|
|
479
|
-
const options = element.getElementsByTagName("option");
|
|
480
|
-
Array.from(options).forEach(
|
|
481
|
-
/**
|
|
482
|
-
* @param {HTMLOptionElement} option
|
|
483
|
-
*/
|
|
484
|
-
(option) => {
|
|
485
|
-
const shouldBeSelected =
|
|
486
|
-
!!value &&
|
|
487
|
-
(includes(value, option.value) ||
|
|
488
|
-
includes(value, selectCtrl.selectValueMap[option.value]));
|
|
489
|
-
const currentlySelected = option.selected;
|
|
490
|
-
|
|
491
|
-
// Support: IE 9-11 only, Edge 12-15+
|
|
492
|
-
// In IE and Edge adding options to the selection via shift+click/UP/DOWN
|
|
493
|
-
// will de-select already selected options if "selected" on those options was set
|
|
494
|
-
// more than once (i.e. when the options were already selected)
|
|
495
|
-
// So we only modify the selected property if necessary.
|
|
496
|
-
// Note: this behavior cannot be replicated via unit tests because it only shows in the
|
|
497
|
-
// actual user interface.
|
|
498
|
-
if (shouldBeSelected !== currentlySelected) {
|
|
499
|
-
option.selected = shouldBeSelected;
|
|
500
|
-
}
|
|
501
|
-
},
|
|
502
|
-
);
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
// we have to do it on each watch since ngModel watches reference, but
|
|
506
|
-
// we need to work of an array, so we need to see if anything was inserted/removed
|
|
507
|
-
let lastView;
|
|
508
|
-
let lastViewRef = NaN;
|
|
509
|
-
if (
|
|
510
|
-
lastViewRef === ngModelCtrl.$viewValue &&
|
|
511
|
-
!equals(lastView, ngModelCtrl.$viewValue)
|
|
512
|
-
) {
|
|
513
|
-
lastView = shallowCopy(ngModelCtrl.$viewValue);
|
|
514
|
-
ngModelCtrl.$render();
|
|
515
|
-
}
|
|
516
|
-
lastViewRef = ngModelCtrl.$viewValue;
|
|
517
|
-
|
|
518
|
-
// If we are a multiple select then value is now a collection
|
|
519
|
-
// so the meaning of $isEmpty changes
|
|
520
|
-
ngModelCtrl.$isEmpty = function (value) {
|
|
521
|
-
return !value || value.length === 0;
|
|
522
|
-
};
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
function selectPostLink(_scope, _element, _attrs, ctrls) {
|
|
527
|
-
// if ngModel is not defined, we don't need to do anything
|
|
528
|
-
const ngModelCtrl = ctrls[1];
|
|
529
|
-
if (!ngModelCtrl) return;
|
|
530
|
-
|
|
531
|
-
const selectCtrl = ctrls[0];
|
|
532
|
-
|
|
533
|
-
// We delegate rendering to the `writeValue` method, which can be changed
|
|
534
|
-
// if the select can have multiple selected values or if the options are being
|
|
535
|
-
// generated by `ngOptions`.
|
|
536
|
-
// This must be done in the postLink fn to prevent $render to be called before
|
|
537
|
-
// all nodes have been linked correctly.
|
|
538
|
-
ngModelCtrl.$render = function () {
|
|
539
|
-
selectCtrl.writeValue(ngModelCtrl.$viewValue);
|
|
540
|
-
};
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
// The option directive is purely designed to communicate the existence (or lack of)
|
|
545
|
-
// of dynamically created (and destroyed) option elements to their containing select
|
|
546
|
-
// directive via its controller.
|
|
547
|
-
/**
|
|
548
|
-
* @returns {import('../../interface.ts').Directive}
|
|
549
|
-
*/
|
|
550
|
-
optionDirective.$inject = ["$interpolate"];
|
|
551
|
-
export function optionDirective($interpolate) {
|
|
552
|
-
return {
|
|
553
|
-
restrict: "E",
|
|
554
|
-
priority: 100,
|
|
555
|
-
compile(element, attr) {
|
|
556
|
-
let interpolateValueFn;
|
|
557
|
-
let interpolateTextFn;
|
|
558
|
-
|
|
559
|
-
if (isDefined(attr.ngValue)) {
|
|
560
|
-
// Will be handled by registerOption
|
|
561
|
-
} else if (isDefined(attr.value)) {
|
|
562
|
-
// If the value attribute is defined, check if it contains an interpolation
|
|
563
|
-
interpolateValueFn = $interpolate(attr.value, true);
|
|
564
|
-
} else {
|
|
565
|
-
// If the value attribute is not defined then we fall back to the
|
|
566
|
-
// text content of the option element, which may be interpolated
|
|
567
|
-
interpolateTextFn = $interpolate(element.textContent, true);
|
|
568
|
-
if (!interpolateTextFn) {
|
|
569
|
-
attr.$set("value", element.textContent);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
return function (scope, element, attr) {
|
|
574
|
-
// This is an optimization over using ^^ since we don't want to have to search
|
|
575
|
-
// all the way to the root of the DOM for every single option element
|
|
576
|
-
const selectCtrlName = "$selectController";
|
|
577
|
-
const parent = element.parentElement;
|
|
578
|
-
const selectCtrl =
|
|
579
|
-
getCacheData(parent, selectCtrlName) ||
|
|
580
|
-
getCacheData(parent.parentElement, selectCtrlName); // in case we are in optgroup
|
|
581
|
-
|
|
582
|
-
if (selectCtrl) {
|
|
583
|
-
selectCtrl.registerOption(
|
|
584
|
-
scope,
|
|
585
|
-
element,
|
|
586
|
-
attr,
|
|
587
|
-
interpolateValueFn,
|
|
588
|
-
interpolateTextFn,
|
|
589
|
-
);
|
|
590
|
-
}
|
|
591
|
-
};
|
|
592
|
-
},
|
|
593
|
-
};
|
|
594
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/\*\*
|
|
2
|
-
|
|
3
|
-
- @ngdoc directive
|
|
4
|
-
- @name select
|
|
5
|
-
- @restrict E
|
|
6
|
-
-
|
|
7
|
-
- @description
|
|
8
|
-
- HTML `select` element with AngularTS data-binding.
|
|
9
|
-
-
|
|
10
|
-
- The `select` directive is used together with {@link ngModel `ngModel`} to provide data-binding
|
|
11
|
-
- between the scope and the `<select>` control (including setting default values).
|
|
12
|
-
- It also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
|
|
13
|
-
- {@link ngOptions `ngOptions`} directives.
|
|
14
|
-
-
|
|
15
|
-
- When an item in the `<select>` menu is selected, the value of the selected option will be bound
|
|
16
|
-
- to the model identified by the `ngModel` directive. With static or repeated options, this is
|
|
17
|
-
- the content of the `value` attribute or the textContent of the `<option>`, if the value attribute is missing.
|
|
18
|
-
- Value and textContent can be interpolated.
|
|
19
|
-
-
|
|
20
|
-
- The {@link select.SelectController select controller} exposes utility functions that can be used
|
|
21
|
-
- to manipulate the select's behavior.
|
|
22
|
-
-
|
|
23
|
-
- ## Matching model and option values
|
|
24
|
-
-
|
|
25
|
-
- In general, the match between the model and an option is evaluated by strictly comparing the model
|
|
26
|
-
- value against the value of the available options.
|
|
27
|
-
-
|
|
28
|
-
- If you are setting the option value with the option's `value` attribute, or textContent, the
|
|
29
|
-
- value will always be a `string` which means that the model value must also be a string.
|
|
30
|
-
- Otherwise the `select` directive cannot match them correctly.
|
|
31
|
-
-
|
|
32
|
-
- To bind the model to a non-string value, you can use one of the following strategies:
|
|
33
|
-
- - the {@link ng.ngOptions `ngOptions`} directive
|
|
34
|
-
- ({@link ng.select#using-select-with-ngoptions-and-setting-a-default-value})
|
|
35
|
-
- - the {@link ng.ngValue `ngValue`} directive, which allows arbitrary expressions to be
|
|
36
|
-
- option values ({@link ng.select#using-ngvalue-to-bind-the-model-to-an-array-of-objects Example})
|
|
37
|
-
- - model $parsers / $formatters to convert the string value
|
|
38
|
-
- ({@link ng.select#binding-select-to-a-non-string-value-via-ngmodel-parsing-formatting Example})
|
|
39
|
-
-
|
|
40
|
-
- If the viewValue of `ngModel` does not match any of the options, then the control
|
|
41
|
-
- will automatically add an "unknown" option, which it then removes when the mismatch is resolved.
|
|
42
|
-
-
|
|
43
|
-
- Optionally, a single hard-coded `<option>` element, with the value set to an empty string, can
|
|
44
|
-
- be nested into the `<select>` element. This element will then represent the `null` or "not selected"
|
|
45
|
-
- option. See example below for demonstration.
|
|
46
|
-
-
|
|
47
|
-
- ## Choosing between `ngRepeat` and `ngOptions`
|
|
48
|
-
-
|
|
49
|
-
- In many cases, `ngRepeat` can be used on `<option>` elements instead of {@link ng.directive:ngOptions
|
|
50
|
-
- ngOptions} to achieve a similar result. However, `ngOptions` provides some beneits:
|
|
51
|
-
- - more flexibility in how the `<select>`'s model is assigned via the `select` **`as`** part of the
|
|
52
|
-
- comprehension expression
|
|
53
|
-
- - reduced memory consumption by not creating a new scope for each repeated instance
|
|
54
|
-
- - increased render speed by creating the options in a documentFragment instead of individually
|
|
55
|
-
-
|
|
56
|
-
- Specifically, select with repeated options slows down significantly starting at 2000 options in
|
|
57
|
-
- Chrome and Internet Explorer / Edge.
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
- @param {string} ngModel Assignable AngularTS expression to data-bind to.
|
|
61
|
-
- @param {string=} name Property name of the form under which the control is published.
|
|
62
|
-
- @param {string=} multiple Allows multiple options to be selected. The selected values will be
|
|
63
|
-
- bound to the model as an array.
|
|
64
|
-
- @param {string=} required Sets `required` validation error key if the value is not entered.
|
|
65
|
-
- @param {string=} ngRequired Adds required attribute and required validation constraint to
|
|
66
|
-
- the element when the ngRequired expression evaluates to true. Use ngRequired instead of required
|
|
67
|
-
- when you want to data-bind to the required attribute.
|
|
68
|
-
- @param {string=} ngChange AngularTS expression to be executed when selected option(s) changes due to user
|
|
69
|
-
- interaction with the select element.
|
|
70
|
-
- @param {string=} ngOptions sets the options that the select is populated with and defines what is
|
|
71
|
-
- set on the model on selection. See {@link ngOptions `ngOptions`}.
|
|
72
|
-
- @param {string=} ngAttrSize sets the size of the select element dynamically. Uses the
|
|
73
|
-
- {@link guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes ngAttr} directive.
|
|
74
|
-
- \*/
|