@angular-wave/angular.ts 0.9.4 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/index.d.ts +1 -84
- package/{src/index.ts → @types/namespace.d.ts} +4 -24
- package/@types/router/template-factory.d.ts +2 -2
- package/dist/angular-ts.esm.js +3 -3
- package/dist/angular-ts.umd.js +3 -3
- package/dist/angular-ts.umd.min.js +1 -1
- package/package.json +9 -2
- package/.github/workflows/ci.yml +0 -104
- package/.github/workflows/gh-pages.yml +0 -75
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -9
- package/CHANGELOG.md +0 -17667
- package/CODE_OF_CONDUCT.md +0 -3
- package/CONTRIBUTING.md +0 -247
- package/DEVELOPERS.md +0 -499
- package/Makefile +0 -60
- package/RELEASE.md +0 -86
- package/TRIAGING.md +0 -127
- package/docs/.cspell.yml +0 -8
- package/docs/.github/dependabot.yml +0 -14
- package/docs/.nvmrc +0 -1
- package/docs/CONTRIBUTING.md +0 -28
- package/docs/Dockerfile +0 -4
- package/docs/LICENSE +0 -201
- package/docs/README.md +0 -217
- package/docs/assets/icons/logo.svg +0 -1
- package/docs/assets/scss/_variables_project.scss +0 -12
- package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
- package/docs/assets/scss/index.scss +0 -48
- package/docs/config.yaml +0 -15
- package/docs/content/_index.md +0 -28
- package/docs/content/docs/_index.md +0 -61
- package/docs/content/docs/directive/_index.md +0 -4
- package/docs/content/docs/directive/app.md +0 -11
- package/docs/content/docs/directive/aria.md +0 -0
- package/docs/content/docs/directive/bind.md +0 -72
- package/docs/content/docs/directive/blur.md +0 -38
- package/docs/content/docs/directive/channel.md +0 -37
- package/docs/content/docs/directive/class-even.md +0 -47
- package/docs/content/docs/directive/class-odd.md +0 -48
- package/docs/content/docs/directive/class.md +0 -64
- package/docs/content/docs/directive/click.md +0 -41
- package/docs/content/docs/directive/cloak.md +0 -74
- package/docs/content/docs/directive/copy.md +0 -38
- package/docs/content/docs/directive/cut.md +0 -40
- package/docs/content/docs/directive/dblclick.md +0 -41
- package/docs/content/docs/directive/focus.md +0 -38
- package/docs/content/docs/directive/get.md +0 -203
- package/docs/content/docs/directive/include.md +0 -7
- package/docs/content/docs/directive/keydown.md +0 -38
- package/docs/content/docs/directive/keyup.md +0 -38
- package/docs/content/docs/directive/load.md +0 -43
- package/docs/content/docs/directive/mousedown.md +0 -38
- package/docs/content/docs/directive/mouseenter.md +0 -38
- package/docs/content/docs/directive/mouseleave.md +0 -38
- package/docs/content/docs/directive/mousemove.md +0 -38
- package/docs/content/docs/directive/mouseout.md +0 -38
- package/docs/content/docs/directive/mouseover.md +0 -38
- package/docs/content/docs/directive/mouseup.md +0 -38
- package/docs/content/docs/directive/non-bindable.md +0 -28
- package/docs/content/docs/filter/_index.md +0 -4
- package/docs/content/docs/filter/filter.md +0 -78
- package/docs/content/docs/filter/json.md +0 -19
- package/docs/content/docs/filter/limit-to.md +0 -30
- package/docs/content/docs/filter/order-by.md +0 -123
- package/docs/content/docs/provider/_index.md +0 -4
- package/docs/content/docs/provider/eventBusProvider.md +0 -35
- package/docs/content/docs/provider/locationProvider.md +0 -26
- package/docs/content/docs/provider/logProvider.md +0 -59
- package/docs/content/docs/provider/sceProvider.md +0 -194
- package/docs/content/docs/provider/templateCacheProvider.md +0 -100
- package/docs/content/docs/provider/templateRequestProvider.md +0 -5
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/compile.md +0 -5
- package/docs/content/docs/service/controller.md +0 -5
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/http.md +0 -161
- package/docs/content/docs/service/interpolation.md +0 -5
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/parse.md +0 -5
- package/docs/content/docs/service/rootElement.md +0 -5
- package/docs/content/docs/service/rootScope.md +0 -5
- package/docs/content/docs/service/sce.md +0 -194
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/templateRequest.md +0 -5
- package/docs/content/docs/service/url.md +0 -5
- package/docs/content/docs/values/_index.md +0 -4
- package/docs/content/docs/values/document.md +0 -29
- package/docs/content/docs/values/window.md +0 -29
- package/docs/docker-compose.yaml +0 -12
- package/docs/docsy.work +0 -5
- package/docs/docsy.work.sum +0 -0
- package/docs/go.mod +0 -5
- package/docs/go.sum +0 -6
- package/docs/hugo-disabled.toml +0 -220
- package/docs/hugo.yaml +0 -200
- package/docs/layouts/404.html +0 -13
- package/docs/layouts/_markup/render-heading.html +0 -1
- package/docs/layouts/partials/hooks/head-end.html +0 -3
- package/docs/layouts/shortcodes/showcss.html +0 -2
- package/docs/layouts/shortcodes/showhtml.html +0 -2
- package/docs/layouts/shortcodes/showjs.html +0 -2
- package/docs/layouts/shortcodes/showraw.html +0 -1
- package/docs/layouts/shortcodes/version.html +0 -1
- package/docs/package-lock.json +0 -2293
- package/docs/package.json +0 -53
- package/docs/static/examples/counter/counter-test.html +0 -13
- package/docs/static/examples/counter/counter.html +0 -5
- package/docs/static/examples/counter/counter.test.js +0 -28
- package/docs/static/examples/document/document.html +0 -3
- package/docs/static/examples/eventbus/eventbus-test.html +0 -15
- package/docs/static/examples/eventbus/eventbus.html +0 -13
- package/docs/static/examples/eventbus/eventbus.js +0 -15
- package/docs/static/examples/eventbus/eventbus.test.js +0 -19
- package/docs/static/examples/i18n/i18n.html +0 -77
- package/docs/static/examples/ng-bind/ng-bind.html +0 -9
- package/docs/static/examples/ng-blur/ng-blur.html +0 -9
- package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
- package/docs/static/examples/ng-channel/ng-channel.html +0 -24
- package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
- package/docs/static/examples/ng-class/ng-class.html +0 -71
- package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
- package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
- package/docs/static/examples/ng-click/ng-click.html +0 -6
- package/docs/static/examples/ng-copy/ng-copy.html +0 -6
- package/docs/static/examples/ng-cut/ng-cut.html +0 -6
- package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
- package/docs/static/examples/ng-focus/ng-focus.html +0 -9
- package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
- package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
- package/docs/static/examples/ng-load/ng-load.html +0 -8
- package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
- package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
- package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
- package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
- package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
- package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
- package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
- package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
- package/docs/static/examples/window/window.html +0 -4
- package/docs/static/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -29
- package/docs/static/typedoc/assets/icons.js +0 -18
- package/docs/static/typedoc/assets/icons.svg +0 -1
- package/docs/static/typedoc/assets/main.js +0 -60
- package/docs/static/typedoc/assets/navigation.js +0 -1
- package/docs/static/typedoc/assets/search.js +0 -1
- package/docs/static/typedoc/assets/style.css +0 -1633
- package/docs/static/typedoc/classes/Location.html +0 -55
- package/docs/static/typedoc/classes/LocationProvider.html +0 -20
- package/docs/static/typedoc/classes/LogProvider.html +0 -6
- package/docs/static/typedoc/classes/PubSub.html +0 -71
- package/docs/static/typedoc/classes/PubSubProvider.html +0 -4
- package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
- package/docs/static/typedoc/hierarchy.html +0 -1
- package/docs/static/typedoc/index.html +0 -1
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
- package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
- package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
- package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
- package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
- package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpService.html +0 -38
- package/docs/static/typedoc/interfaces/LogService.html +0 -12
- package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
- package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
- package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/HttpParamSerializer.html +0 -2
- package/docs/static/typedoc/types/HttpParams.html +0 -2
- package/docs/static/typedoc/types/HttpPromise.html +0 -1
- package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
- package/docs/static/typedoc/types/LogCall.html +0 -2
- package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/version.js +0 -13
- package/docs/test-results/.last-run.json +0 -4
- package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
- package/eslint.config.js +0 -26
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +0 -19
- package/index.html +0 -86
- package/legacy.d.ts +0 -1678
- package/playwright.config.ts +0 -81
- package/public/jasmine/boot0.js +0 -66
- package/public/jasmine/boot1.js +0 -134
- package/public/jasmine/jasmine-html.js +0 -970
- package/public/jasmine/jasmine.css +0 -323
- package/public/jasmine/jasmine.js +0 -11406
- package/public/public/README.md +0 -1
- package/public/public/circle.html +0 -1
- package/public/public/jasmine-helper.css +0 -9
- package/public/public/my_child_directive.html +0 -1
- package/public/public/my_directive.html +0 -1
- package/public/public/my_other_directive.html +0 -1
- package/public/public/test.html +0 -1
- package/rollup.config.js +0 -51
- package/src/angular.js +0 -286
- package/src/angular.spec.js +0 -1191
- package/src/animations/animate-cache.js +0 -80
- package/src/animations/animate-children-directive.js +0 -32
- package/src/animations/animate-children-directive.md +0 -80
- package/src/animations/animate-css-driver.js +0 -284
- package/src/animations/animate-css.html +0 -58
- package/src/animations/animate-css.js +0 -915
- package/src/animations/animate-css.md +0 -263
- package/src/animations/animate-js-driver.js +0 -60
- package/src/animations/animate-js.html +0 -47
- package/src/animations/animate-js.js +0 -371
- package/src/animations/animate-queue.js +0 -859
- package/src/animations/animate-runner.js +0 -193
- package/src/animations/animate-swap.js +0 -33
- package/src/animations/animate-swap.md +0 -88
- package/src/animations/animate.html +0 -19
- package/src/animations/animate.js +0 -546
- package/src/animations/animate.md +0 -933
- package/src/animations/animate.spec.js +0 -490
- package/src/animations/animation.js +0 -519
- package/src/animations/animations.test.js +0 -10
- package/src/animations/interface.ts +0 -19
- package/src/animations/raf-scheduler.html +0 -19
- package/src/animations/raf-scheduler.js +0 -92
- package/src/animations/raf-scheduler.spec.js +0 -98
- package/src/animations/shared.js +0 -341
- package/src/binding.html +0 -19
- package/src/binding.spec.js +0 -474
- package/src/binding.test.js +0 -10
- package/src/core/compile/attributes.js +0 -337
- package/src/core/compile/compile.html +0 -19
- package/src/core/compile/compile.js +0 -3271
- package/src/core/compile/compile.md +0 -1128
- package/src/core/compile/compile.spec.js +0 -15574
- package/src/core/compile/compile.test.js +0 -12
- package/src/core/controller/controller.html +0 -22
- package/src/core/controller/controller.js +0 -193
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- package/src/core/controller/interface.ts +0 -6
- package/src/core/core.html +0 -20
- package/src/core/core.test.js +0 -12
- package/src/core/di/injector.html +0 -19
- package/src/core/di/injector.js +0 -307
- package/src/core/di/injector.md +0 -740
- package/src/core/di/injector.spec.js +0 -2310
- package/src/core/di/injector.test.js +0 -12
- package/src/core/di/internal-injector.js +0 -286
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -229
- package/src/core/di/ng-module.spec.js +0 -263
- package/src/core/di/ng-module.test.js +0 -12
- package/src/core/filter/filter.html +0 -19
- package/src/core/filter/filter.js +0 -55
- package/src/core/filter/filter.md +0 -132
- package/src/core/filter/filter.spec.js +0 -149
- package/src/core/filter/filter.test.js +0 -12
- package/src/core/interpolate/interface.ts +0 -14
- package/src/core/interpolate/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -410
- package/src/core/interpolate/interpolate.spec.js +0 -601
- package/src/core/interpolate/interpolate.test.js +0 -12
- package/src/core/parse/ast/ast-node.ts +0 -81
- package/src/core/parse/ast/ast.html +0 -19
- package/src/core/parse/ast/ast.js +0 -574
- package/src/core/parse/ast/ast.spec.js +0 -1453
- package/src/core/parse/ast/ast.test.js +0 -10
- package/src/core/parse/ast-type.js +0 -23
- package/src/core/parse/interface.ts +0 -84
- package/src/core/parse/interpreter.js +0 -915
- package/src/core/parse/lexer/lexer.html +0 -19
- package/src/core/parse/lexer/lexer.js +0 -338
- package/src/core/parse/lexer/lexer.spec.js +0 -303
- package/src/core/parse/lexer/lexer.test.js +0 -10
- package/src/core/parse/lexer/token.ts +0 -22
- package/src/core/parse/parse.html +0 -19
- package/src/core/parse/parse.js +0 -337
- package/src/core/parse/parse.md +0 -57
- package/src/core/parse/parse.spec.js +0 -2107
- package/src/core/parse/parse.test.js +0 -10
- package/src/core/parse/parser/parser.html +0 -19
- package/src/core/parse/parser/parser.js +0 -64
- package/src/core/parse/parser/parser.spec.js +0 -8
- package/src/core/parse/parser/parser.test.js +0 -10
- package/src/core/prop.spec.js +0 -775
- package/src/core/root-element.spec.js +0 -14
- package/src/core/sanitize/interface.ts +0 -10
- package/src/core/sanitize/sanitize-uri.js +0 -75
- package/src/core/sanitize/sanitize-uri.spec.js +0 -249
- package/src/core/sanitize/sanitize-uri.test.js +0 -12
- package/src/core/sanitize/sanitize.html +0 -22
- package/src/core/scope/scope.html +0 -19
- package/src/core/scope/scope.js +0 -1252
- package/src/core/scope/scope.spec.js +0 -3000
- package/src/core/scope/scope.test.js +0 -12
- package/src/directive/aria/aria.html +0 -19
- package/src/directive/aria/aria.js +0 -382
- package/src/directive/aria/aria.md +0 -145
- package/src/directive/aria/aria.spec.js +0 -1241
- package/src/directive/aria/aria.test.js +0 -12
- package/src/directive/attrs/attrs.html +0 -19
- package/src/directive/attrs/attrs.js +0 -106
- package/src/directive/attrs/attrs.md +0 -224
- package/src/directive/attrs/attrs.spec.js +0 -71
- package/src/directive/attrs/attrs.test.js +0 -12
- package/src/directive/attrs/boolean.html +0 -19
- package/src/directive/attrs/boolean.spec.js +0 -137
- package/src/directive/attrs/boolean.test.js +0 -12
- package/src/directive/attrs/element-style.html +0 -22
- package/src/directive/attrs/element-style.spec.js +0 -85
- package/src/directive/attrs/element-style.test.js +0 -12
- package/src/directive/attrs/src.html +0 -19
- package/src/directive/attrs/src.spec.js +0 -163
- package/src/directive/attrs/src.test.js +0 -12
- package/src/directive/bind/bind-html.spec.js +0 -36
- package/src/directive/bind/bind.html +0 -20
- package/src/directive/bind/bind.js +0 -78
- package/src/directive/bind/bind.md +0 -142
- package/src/directive/bind/bind.spec.js +0 -314
- package/src/directive/bind/bind.test.js +0 -12
- package/src/directive/channel/channel.html +0 -19
- package/src/directive/channel/channel.js +0 -30
- package/src/directive/channel/channel.spec.js +0 -67
- package/src/directive/channel/channel.test.js +0 -10
- package/src/directive/class/class-test.html +0 -23
- package/src/directive/class/class.html +0 -19
- package/src/directive/class/class.js +0 -184
- package/src/directive/class/class.spec.js +0 -704
- package/src/directive/class/class.test.js +0 -12
- package/src/directive/cloak/cloak.html +0 -19
- package/src/directive/cloak/cloak.js +0 -11
- package/src/directive/cloak/cloak.spec.js +0 -44
- package/src/directive/cloak/cloak.test.js +0 -12
- package/src/directive/controller/controller.html +0 -22
- package/src/directive/controller/controller.js +0 -11
- package/src/directive/controller/controller.md +0 -46
- package/src/directive/controller/controller.spec.js +0 -175
- package/src/directive/controller/controller.test.js +0 -12
- package/src/directive/events/click.spec.js +0 -35
- package/src/directive/events/event.spec.js +0 -267
- package/src/directive/events/events-test.html +0 -36
- package/src/directive/events/events.html +0 -20
- package/src/directive/events/events.js +0 -65
- package/src/directive/events/events.md +0 -125
- package/src/directive/events/events.test.js +0 -12
- package/src/directive/form/form.html +0 -19
- package/src/directive/form/form.js +0 -669
- package/src/directive/form/form.spec.js +0 -1515
- package/src/directive/form/form.test.js +0 -12
- package/src/directive/http/delete.spec.js +0 -23
- package/src/directive/http/form-router-test.html +0 -44
- package/src/directive/http/form-test.html +0 -18
- package/src/directive/http/get.spec.js +0 -488
- package/src/directive/http/http.html +0 -22
- package/src/directive/http/http.js +0 -342
- package/src/directive/http/http.test.js +0 -12
- package/src/directive/http/interface.ts +0 -36
- package/src/directive/http/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -23
- package/src/directive/if/if-animate-css.html +0 -57
- package/src/directive/if/if-animate-svg.html +0 -25
- package/src/directive/if/if.html +0 -19
- package/src/directive/if/if.js +0 -72
- package/src/directive/if/if.md +0 -76
- package/src/directive/if/if.spec.js +0 -293
- package/src/directive/if/if.test.js +0 -114
- package/src/directive/include/include.html +0 -19
- package/src/directive/include/include.js +0 -151
- package/src/directive/include/include.md +0 -87
- package/src/directive/include/include.spec.js +0 -734
- package/src/directive/include/include.test.js +0 -12
- package/src/directive/init/init.html +0 -19
- package/src/directive/init/init.js +0 -22
- package/src/directive/init/init.md +0 -41
- package/src/directive/init/init.spec.js +0 -68
- package/src/directive/init/init.test.js +0 -12
- package/src/directive/inject/inject.html +0 -19
- package/src/directive/inject/inject.js +0 -35
- package/src/directive/inject/inject.spec.js +0 -108
- package/src/directive/inject/inject.test.js +0 -12
- package/src/directive/input/input-example.html +0 -15
- package/src/directive/input/input.html +0 -19
- package/src/directive/input/input.js +0 -1078
- package/src/directive/input/input.md +0 -706
- package/src/directive/input/input.spec.js +0 -3700
- package/src/directive/input/input.test.js +0 -12
- package/src/directive/messages/messages.html +0 -22
- package/src/directive/messages/messages.js +0 -349
- package/src/directive/messages/messages.md +0 -543
- package/src/directive/messages/messages.spec.js +0 -1083
- package/src/directive/messages/messages.test.js +0 -12
- package/src/directive/model/change.md +0 -25
- package/src/directive/model/model.html +0 -19
- package/src/directive/model/model.js +0 -1170
- package/src/directive/model/model.spec.js +0 -1976
- package/src/directive/model/model.test.js +0 -12
- package/src/directive/model-options/model-option.test.js +0 -12
- package/src/directive/model-options/model-options.html +0 -22
- package/src/directive/model-options/model-options.js +0 -142
- package/src/directive/model-options/model-options.md +0 -407
- package/src/directive/model-options/model-options.spec.js +0 -1022
- package/src/directive/non-bindable/non-bindable.html +0 -22
- package/src/directive/non-bindable/non-bindable.js +0 -9
- package/src/directive/non-bindable/non-bindable.spec.js +0 -59
- package/src/directive/non-bindable/non-bindable.test.js +0 -12
- package/src/directive/observe/observe-demo.html +0 -184
- package/src/directive/observe/observe.html +0 -19
- package/src/directive/observe/observe.js +0 -41
- package/src/directive/observe/observe.spec.js +0 -106
- package/src/directive/observe/observe.test.js +0 -10
- package/src/directive/on/on.html +0 -19
- package/src/directive/on/on.spec.js +0 -215
- package/src/directive/on/on.test.js +0 -12
- package/src/directive/options/options-example.html +0 -17
- package/src/directive/options/options.html +0 -22
- package/src/directive/options/options.js +0 -542
- package/src/directive/options/options.md +0 -179
- package/src/directive/options/options.spec.js +0 -3554
- package/src/directive/options/options.test.js +0 -12
- package/src/directive/ref/href.html +0 -19
- package/src/directive/ref/href.spec.js +0 -141
- package/src/directive/ref/href.test.js +0 -19
- package/src/directive/ref/ref.html +0 -19
- package/src/directive/ref/ref.js +0 -89
- package/src/directive/ref/ref.spec.js +0 -546
- package/src/directive/repeat/repeat.html +0 -19
- package/src/directive/repeat/repeat.js +0 -333
- package/src/directive/repeat/repeat.md +0 -330
- package/src/directive/repeat/repeat.spec.js +0 -1209
- package/src/directive/repeat/repeat.test.js +0 -12
- package/src/directive/script/script.html +0 -19
- package/src/directive/script/script.js +0 -17
- package/src/directive/script/script.md +0 -11
- package/src/directive/script/script.spec.js +0 -47
- package/src/directive/script/script.test.js +0 -12
- package/src/directive/select/select.html +0 -19
- package/src/directive/select/select.js +0 -594
- package/src/directive/select/select.md +0 -74
- package/src/directive/select/select.spec.js +0 -2566
- package/src/directive/select/select.test.js +0 -12
- package/src/directive/setter/setter.html +0 -19
- package/src/directive/setter/setter.js +0 -59
- package/src/directive/setter/setter.spec.js +0 -100
- package/src/directive/setter/setter.test.js +0 -12
- package/src/directive/show-hide/show-hide.html +0 -22
- package/src/directive/show-hide/show-hide.js +0 -65
- package/src/directive/show-hide/show-hide.md +0 -255
- package/src/directive/show-hide/show-hide.spec.js +0 -268
- package/src/directive/show-hide/show-hide.test.js +0 -12
- package/src/directive/style/style.html +0 -19
- package/src/directive/style/style.js +0 -27
- package/src/directive/style/style.md +0 -23
- package/src/directive/style/style.spec.js +0 -183
- package/src/directive/style/style.test.js +0 -12
- package/src/directive/switch/switch.html +0 -19
- package/src/directive/switch/switch.js +0 -133
- package/src/directive/switch/switch.md +0 -66
- package/src/directive/switch/switch.spec.js +0 -509
- package/src/directive/switch/switch.test.js +0 -12
- package/src/directive/transclude/transclude.js +0 -122
- package/src/directive/validators/validators.html +0 -22
- package/src/directive/validators/validators.js +0 -346
- package/src/directive/validators/validators.spec.js +0 -740
- package/src/directive/validators/validators.test.js +0 -12
- package/src/filters/filter.js +0 -213
- package/src/filters/filter.spec.js +0 -719
- package/src/filters/filters.html +0 -22
- package/src/filters/filters.js +0 -239
- package/src/filters/filters.spec.js +0 -36
- package/src/filters/filters.test.js +0 -12
- package/src/filters/interface.ts +0 -9
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.spec.js +0 -883
- package/src/index.js +0 -6
- package/src/index.spec.js +0 -11
- package/src/injection-tokens.js +0 -81
- package/src/interface.ts +0 -430
- package/src/ng.js +0 -291
- package/src/ng.spec.js +0 -45
- package/src/router/common/trace.js +0 -240
- package/src/router/directives/component-example.html +0 -37
- package/src/router/directives/state-directives.html +0 -22
- package/src/router/directives/state-directives.js +0 -393
- package/src/router/directives/state-directives.md +0 -435
- package/src/router/directives/state-directives.spec.js +0 -1091
- package/src/router/directives/state-directives.test.js +0 -10
- package/src/router/directives/view-directive.js +0 -489
- package/src/router/directives/view-directive.spec.js +0 -1921
- package/src/router/directives/view-directive.test.js +0 -10
- package/src/router/directives/view-directives.html +0 -22
- package/src/router/glob/glob.html +0 -19
- package/src/router/glob/glob.js +0 -102
- package/src/router/glob/glob.spec.js +0 -108
- package/src/router/glob/glob.test.js +0 -12
- package/src/router/hooks/core-resolvables.js +0 -38
- package/src/router/hooks/ignored-transition.js +0 -25
- package/src/router/hooks/invalid-transition.js +0 -14
- package/src/router/hooks/lazy-load.js +0 -104
- package/src/router/hooks/on-enter-exit-retain.js +0 -55
- package/src/router/hooks/redirect-to.js +0 -38
- package/src/router/hooks/resolve.js +0 -57
- package/src/router/hooks/update-globals.js +0 -34
- package/src/router/hooks/url.js +0 -34
- package/src/router/hooks/views.js +0 -41
- package/src/router/params/interface.ts +0 -626
- package/src/router/params/param-factory.js +0 -23
- package/src/router/params/param-type.js +0 -133
- package/src/router/params/param-types.js +0 -153
- package/src/router/params/param.js +0 -243
- package/src/router/params/state-params.js +0 -36
- package/src/router/path/path-node.js +0 -78
- package/src/router/path/path-utils.js +0 -207
- package/src/router/resolve/interface.ts +0 -208
- package/src/router/resolve/resolvable.js +0 -123
- package/src/router/resolve/resolve-context.js +0 -190
- package/src/router/router-test-hashbang.html +0 -45
- package/src/router/router-test.html +0 -41
- package/src/router/router.html +0 -22
- package/src/router/router.js +0 -54
- package/src/router/router.test.js +0 -12
- package/src/router/services.spec.js +0 -52
- package/src/router/state/interface.ts +0 -1007
- package/src/router/state/state-builder.js +0 -376
- package/src/router/state/state-builder.spec.js +0 -86
- package/src/router/state/state-matcher.js +0 -64
- package/src/router/state/state-object.js +0 -118
- package/src/router/state/state-queue-manager.js +0 -95
- package/src/router/state/state-registry.js +0 -262
- package/src/router/state/state-service.js +0 -687
- package/src/router/state/state.html +0 -23
- package/src/router/state/state.spec.js +0 -1002
- package/src/router/state/state.test.js +0 -12
- package/src/router/state/target-state.js +0 -162
- package/src/router/state/views.js +0 -195
- package/src/router/state-filter.spec.js +0 -139
- package/src/router/state-filters.js +0 -46
- package/src/router/template-factory.html +0 -19
- package/src/router/template-factory.js +0 -249
- package/src/router/template-factory.spec.js +0 -146
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -137
- package/src/router/transition/hook-registry.js +0 -181
- package/src/router/transition/interface.js +0 -18
- package/src/router/transition/interface.ts +0 -922
- package/src/router/transition/reject-factory.js +0 -122
- package/src/router/transition/transition-event-type.js +0 -26
- package/src/router/transition/transition-hook.js +0 -199
- package/src/router/transition/transition-service.js +0 -297
- package/src/router/transition/transition.js +0 -653
- package/src/router/url/url-config.js +0 -155
- package/src/router/url/url-matcher.js +0 -532
- package/src/router/url/url-rule.js +0 -231
- package/src/router/url/url-rules.js +0 -350
- package/src/router/url/url-service.js +0 -446
- package/src/router/url/url-service.spec.js +0 -1288
- package/src/router/url/url.html +0 -19
- package/src/router/url/url.test.js +0 -12
- package/src/router/view/interface.ts +0 -51
- package/src/router/view/view.html +0 -19
- package/src/router/view/view.js +0 -262
- package/src/router/view/view.spec.js +0 -100
- package/src/router/view/view.test.js +0 -12
- package/src/router/view-hook.spec.js +0 -215
- package/src/router/view-scroll.js +0 -33
- package/src/router/view-scroll.spec.js +0 -72
- package/src/services/anchor-scroll/anchor-scroll.html +0 -76
- package/src/services/anchor-scroll/anchor-scroll.js +0 -147
- package/src/services/exception/exception-handler.js +0 -75
- package/src/services/exception/interface.ts +0 -7
- package/src/services/http/http.html +0 -23
- package/src/services/http/http.js +0 -1109
- package/src/services/http/http.spec.js +0 -4320
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -256
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/location/interface.ts +0 -70
- package/src/services/location/location.html +0 -22
- package/src/services/location/location.js +0 -1006
- package/src/services/location/location.spec.js +0 -3792
- package/src/services/location/location.test.js +0 -12
- package/src/services/log/interface.ts +0 -39
- package/src/services/log/log.html +0 -19
- package/src/services/log/log.js +0 -74
- package/src/services/log/log.spec.js +0 -64
- package/src/services/log/log.test.js +0 -12
- package/src/services/pubsub/pubsub.html +0 -19
- package/src/services/pubsub/pubsub.js +0 -349
- package/src/services/pubsub/pubsub.spec.js +0 -400
- package/src/services/pubsub/pubsub.test.js +0 -12
- package/src/services/sce/sce.html +0 -19
- package/src/services/sce/sce.js +0 -852
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/template-cache.html +0 -22
- package/src/services/template-cache/template-cache.js +0 -15
- package/src/services/template-cache/template-cache.spec.js +0 -134
- package/src/services/template-cache/template-cache.test.js +0 -12
- package/src/services/template-request/interface.ts +0 -23
- package/src/services/template-request/template-request.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -365
- package/src/shared/common.spec.js +0 -294
- package/src/shared/constants.js +0 -21
- package/src/shared/dom.js +0 -716
- package/src/shared/hof.js +0 -157
- package/src/shared/hof.spec.js +0 -60
- package/src/shared/interface.ts +0 -21
- package/src/shared/min-err.spec.js +0 -178
- package/src/shared/noderef.js +0 -225
- package/src/shared/predicates.js +0 -34
- package/src/shared/queue.js +0 -105
- package/src/shared/queue.spec.js +0 -80
- package/src/shared/shared.html +0 -24
- package/src/shared/shared.test.js +0 -12
- package/src/shared/strings.js +0 -142
- package/src/shared/strings.spec.js +0 -40
- package/src/shared/test-utils.js +0 -47
- package/src/shared/url-utils/interface.ts +0 -54
- package/src/shared/url-utils/url-utils.html +0 -22
- package/src/shared/url-utils/url-utils.js +0 -122
- package/src/shared/url-utils/url-utils.spec.js +0 -148
- package/src/shared/url-utils/url-utils.test.js +0 -12
- package/src/shared/utils.js +0 -1255
- package/src/shared/utils.spec.js +0 -178
- package/src/src.html +0 -21
- package/src/src.test.js +0 -10
- package/tsconfig.json +0 -19
- package/tsconfig.types.json +0 -14
- package/typedoc.json +0 -8
- package/utils/express.js +0 -203
- package/utils/version.cjs +0 -23
- package/vite.config.js +0 -14
|
@@ -1,669 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertNotHasOwnProperty,
|
|
3
|
-
shallowCopy,
|
|
4
|
-
arrayRemove,
|
|
5
|
-
isBoolean,
|
|
6
|
-
snakeCase,
|
|
7
|
-
extend,
|
|
8
|
-
isUndefined,
|
|
9
|
-
isObjectEmpty,
|
|
10
|
-
isProxy,
|
|
11
|
-
} from "../../shared/utils.js";
|
|
12
|
-
import {
|
|
13
|
-
PRISTINE_CLASS,
|
|
14
|
-
DIRTY_CLASS,
|
|
15
|
-
VALID_CLASS,
|
|
16
|
-
INVALID_CLASS,
|
|
17
|
-
} from "../../shared/constants.js";
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @type {{
|
|
21
|
-
* $nonscope: boolean,
|
|
22
|
-
* $addControl: Function,
|
|
23
|
-
* $getControls: () => any[],
|
|
24
|
-
* $$renameControl: Function,
|
|
25
|
-
* $removeControl: Function,
|
|
26
|
-
* $setValidity: Function | ((key: any, isValid: boolean, control: any) => any),
|
|
27
|
-
* $setDirty: Function,
|
|
28
|
-
* $setPristine: Function,
|
|
29
|
-
* $setSubmitted: Function,
|
|
30
|
-
* $$setSubmitted: Function
|
|
31
|
-
* }}
|
|
32
|
-
*/
|
|
33
|
-
export const nullFormCtrl = {
|
|
34
|
-
$nonscope: true,
|
|
35
|
-
$addControl: () => {},
|
|
36
|
-
$getControls: () => [],
|
|
37
|
-
$$renameControl: (control, name) => {
|
|
38
|
-
control.$name = name;
|
|
39
|
-
},
|
|
40
|
-
$removeControl: () => {},
|
|
41
|
-
$setValidity: () => {},
|
|
42
|
-
$setDirty: () => {},
|
|
43
|
-
$setPristine: () => {},
|
|
44
|
-
$setSubmitted: () => {},
|
|
45
|
-
$$setSubmitted: () => {},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export const PENDING_CLASS = "ng-pending";
|
|
49
|
-
const SUBMITTED_CLASS = "ng-submitted";
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* @property {boolean} $dirty True if user has already interacted with the form.
|
|
53
|
-
* @property {boolean} $valid True if all of the containing forms and controls are valid.
|
|
54
|
-
* @property {boolean} $invalid True if at least one containing control or form is invalid.
|
|
55
|
-
* @property {boolean} $submitted True if user has submitted the form even if its invalid.
|
|
56
|
-
*
|
|
57
|
-
* @property {Object} $pending An object hash, containing references to controls or forms with
|
|
58
|
-
* pending validators, where:
|
|
59
|
-
*
|
|
60
|
-
* - keys are validations tokens (error names).
|
|
61
|
-
* - values are arrays of controls or forms that have a pending validator for the given error name.
|
|
62
|
-
*
|
|
63
|
-
* See {@link form.FormController#$error $error} for a list of built-in validation tokens.
|
|
64
|
-
*
|
|
65
|
-
* @property {Object} $error An object hash, containing references to controls or forms with failing
|
|
66
|
-
* validators, where:
|
|
67
|
-
*
|
|
68
|
-
* - keys are validation tokens (error names),
|
|
69
|
-
* - values are arrays of controls or forms that have a failing validator for the given error name.
|
|
70
|
-
*
|
|
71
|
-
* Built-in validation tokens:
|
|
72
|
-
* - `email`
|
|
73
|
-
* - `max`
|
|
74
|
-
* - `maxlength`
|
|
75
|
-
* - `min`
|
|
76
|
-
* - `minlength`
|
|
77
|
-
* - `number`
|
|
78
|
-
* - `pattern`
|
|
79
|
-
* - `required`
|
|
80
|
-
* - `url`
|
|
81
|
-
* - `date`
|
|
82
|
-
* - `datetimelocal`
|
|
83
|
-
* - `time`
|
|
84
|
-
* - `week`
|
|
85
|
-
* - `month`
|
|
86
|
-
*
|
|
87
|
-
* @description
|
|
88
|
-
* `FormController` keeps track of all its controls and nested forms as well as the state of them,
|
|
89
|
-
* such as being valid/invalid or dirty/pristine.
|
|
90
|
-
*
|
|
91
|
-
* Each {@link ng.directive:form form} directive creates an instance
|
|
92
|
-
* of `FormController`.
|
|
93
|
-
*
|
|
94
|
-
*/
|
|
95
|
-
// asks for $scope to fool the BC controller module
|
|
96
|
-
|
|
97
|
-
export class FormController {
|
|
98
|
-
static $nonscope = true;
|
|
99
|
-
/* @ignore */ static $inject = [
|
|
100
|
-
"$element",
|
|
101
|
-
"$attrs",
|
|
102
|
-
"$scope",
|
|
103
|
-
"$animate",
|
|
104
|
-
"$interpolate",
|
|
105
|
-
];
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* @param {Element} $element
|
|
109
|
-
* @param {import("../../core/compile/attributes.js").Attributes} $attrs
|
|
110
|
-
* @param {import("../../core/scope/scope.js").Scope} $scope
|
|
111
|
-
* @param {*} $animate
|
|
112
|
-
* @param {*} $interpolate
|
|
113
|
-
*/
|
|
114
|
-
constructor($element, $attrs, $scope, $animate, $interpolate) {
|
|
115
|
-
this.$$controls = [];
|
|
116
|
-
|
|
117
|
-
this.$name = $interpolate($attrs["name"] || $attrs["ngForm"] || "")($scope);
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @property {boolean} $dirty True if user has already interacted with the form.
|
|
121
|
-
*/
|
|
122
|
-
this.$dirty = false;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* @propertys {boolean} $pristine - True if user has not interacted with the form yet.s
|
|
126
|
-
*/
|
|
127
|
-
this.$pristine = true;
|
|
128
|
-
this.$valid = true;
|
|
129
|
-
this.$invalid = false;
|
|
130
|
-
this.$submitted = false;
|
|
131
|
-
/** @type {FormController|Object} */
|
|
132
|
-
this.$$parentForm = nullFormCtrl;
|
|
133
|
-
|
|
134
|
-
this.$$element = $element;
|
|
135
|
-
this.$$animate = $animate;
|
|
136
|
-
this.$error = {};
|
|
137
|
-
this.$$success = {};
|
|
138
|
-
this.$pending = undefined;
|
|
139
|
-
this.$$classCache = {};
|
|
140
|
-
const isValid = this.$$element.classList.contains(VALID_CLASS);
|
|
141
|
-
this.$$classCache[VALID_CLASS] = isValid;
|
|
142
|
-
this.$$classCache[INVALID_CLASS] = !isValid;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Rollback all form controls pending updates to the `$modelValue`.
|
|
147
|
-
*
|
|
148
|
-
* Updates may be pending by a debounced event or because the input is waiting for a some future
|
|
149
|
-
* event defined in `ng-model-options`. This method is typically needed by the reset button of
|
|
150
|
-
* a form that uses `ng-model-options` to pend updates.
|
|
151
|
-
*/
|
|
152
|
-
$rollbackViewValue() {
|
|
153
|
-
this.$$controls.forEach((control) => {
|
|
154
|
-
control.$rollbackViewValue();
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Commit all form controls pending updates to the `$modelValue`.
|
|
160
|
-
*
|
|
161
|
-
* Updates may be pending by a debounced event or because the input is waiting for a some future
|
|
162
|
-
* event defined in `ng-model-options`. This method is rarely needed as `NgModelController`
|
|
163
|
-
* usually handles calling this in response to input events.
|
|
164
|
-
*/
|
|
165
|
-
$commitViewValue() {
|
|
166
|
-
this.$$controls.forEach((control) => {
|
|
167
|
-
control.$commitViewValue();
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Register a control with the form. Input elements using ngModelController do this automatically
|
|
173
|
-
* when they are linked.
|
|
174
|
-
*
|
|
175
|
-
* Note that the current state of the control will not be reflected on the new parent form. This
|
|
176
|
-
* is not an issue with normal use, as freshly compiled and linked controls are in a `$pristine`
|
|
177
|
-
* state.
|
|
178
|
-
*
|
|
179
|
-
* However, if the method is used programmatically, for example by adding dynamically created controls,
|
|
180
|
-
* or controls that have been previously removed without destroying their corresponding DOM element,
|
|
181
|
-
* it's the developers responsibility to make sure the current state propagates to the parent form.
|
|
182
|
-
*
|
|
183
|
-
* For example, if an input control is added that is already `$dirty` and has `$error` properties,
|
|
184
|
-
* calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form.
|
|
185
|
-
*/
|
|
186
|
-
$addControl(control) {
|
|
187
|
-
// Breaking change - before, inputs whose name was "hasOwnProperty" were quietly ignored
|
|
188
|
-
// and not added to the scope. Now we throw an error.
|
|
189
|
-
assertNotHasOwnProperty(control.$name, "input");
|
|
190
|
-
this.$$controls.push(control);
|
|
191
|
-
|
|
192
|
-
if (control.$name) {
|
|
193
|
-
this[control.$name] = control;
|
|
194
|
-
}
|
|
195
|
-
control.$target.$$parentForm = this;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* This method returns a **shallow copy** of the controls that are currently part of this form.
|
|
200
|
-
* The controls can be instances of {@link form.FormController `FormController`}
|
|
201
|
-
* ({@link ngForm "child-forms"}) and of {@link ngModel.NgModelController `NgModelController`}.
|
|
202
|
-
* If you need access to the controls of child-forms, you have to call `$getControls()`
|
|
203
|
-
* recursively on them.
|
|
204
|
-
* This can be used for example to iterate over all controls to validate them.
|
|
205
|
-
*
|
|
206
|
-
* The controls can be accessed normally, but adding to, or removing controls from the array has
|
|
207
|
-
* no effect on the form. Instead, use {@link form.FormController#$addControl `$addControl()`} and
|
|
208
|
-
* {@link form.FormController#$removeControl `$removeControl()`} for this use-case.
|
|
209
|
-
* Likewise, adding a control to, or removing a control from the form is not reflected
|
|
210
|
-
* in the shallow copy. That means you should get a fresh copy from `$getControls()` every time
|
|
211
|
-
* you need access to the controls.
|
|
212
|
-
*/
|
|
213
|
-
$getControls() {
|
|
214
|
-
return shallowCopy(this.$$controls);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Private API: rename a form control
|
|
218
|
-
$$renameControl(control, newName) {
|
|
219
|
-
const oldName = control.$name;
|
|
220
|
-
|
|
221
|
-
if (this[oldName] === control) {
|
|
222
|
-
delete this[oldName];
|
|
223
|
-
}
|
|
224
|
-
this[newName] = control;
|
|
225
|
-
control.$name = newName;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Deregister a control from the form.
|
|
230
|
-
*
|
|
231
|
-
* Input elements using ngModelController do this automatically when they are destroyed.
|
|
232
|
-
*
|
|
233
|
-
* Note that only the removed control's validation state (`$errors`etc.) will be removed from the
|
|
234
|
-
* form. `$dirty`, `$submitted` states will not be changed, because the expected behavior can be
|
|
235
|
-
* different from case to case. For example, removing the only `$dirty` control from a form may or
|
|
236
|
-
* may not mean that the form is still `$dirty`.
|
|
237
|
-
*/
|
|
238
|
-
$removeControl(control) {
|
|
239
|
-
if (control.$name && this[control.$name] === control) {
|
|
240
|
-
delete this[control.$name];
|
|
241
|
-
}
|
|
242
|
-
this.$pending &&
|
|
243
|
-
Object.keys(this.$pending).forEach((name) => {
|
|
244
|
-
this.$setValidity(name, null, control);
|
|
245
|
-
});
|
|
246
|
-
this.$error &&
|
|
247
|
-
Object.keys(this.$error).forEach((name) => {
|
|
248
|
-
this.$setValidity(name, null, control);
|
|
249
|
-
});
|
|
250
|
-
this.$$success &&
|
|
251
|
-
Object.keys(this.$$success).forEach((name) => {
|
|
252
|
-
this.$setValidity(name, null, control);
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
arrayRemove(this.$$controls, control);
|
|
256
|
-
|
|
257
|
-
control.$target["$$parentForm"] = nullFormCtrl;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Sets the form to a dirty state.
|
|
262
|
-
*
|
|
263
|
-
* This method can be called to add the 'ng-dirty' class and set the form to a dirty
|
|
264
|
-
* state (ng-dirty class). This method will also propagate to parent forms.
|
|
265
|
-
*/
|
|
266
|
-
$setDirty() {
|
|
267
|
-
this.$$animate.removeClass(this.$$element, PRISTINE_CLASS);
|
|
268
|
-
this.$$animate.addClass(this.$$element, DIRTY_CLASS);
|
|
269
|
-
this.$dirty = true;
|
|
270
|
-
this.$pristine = false;
|
|
271
|
-
this.$$parentForm.$setDirty();
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Sets the form to its pristine state.
|
|
276
|
-
*
|
|
277
|
-
* This method sets the form's `$pristine` state to true, the `$dirty` state to false, removes
|
|
278
|
-
* the `ng-dirty` class and adds the `ng-pristine` class. Additionally, it sets the `$submitted`
|
|
279
|
-
* state to false.
|
|
280
|
-
*
|
|
281
|
-
* This method will also propagate to all the controls contained in this form.
|
|
282
|
-
*
|
|
283
|
-
* Setting a form back to a pristine state is often useful when we want to 'reuse' a form after
|
|
284
|
-
* saving or resetting it.
|
|
285
|
-
*/
|
|
286
|
-
$setPristine() {
|
|
287
|
-
this.$$animate.setClass(
|
|
288
|
-
this.$$element,
|
|
289
|
-
PRISTINE_CLASS,
|
|
290
|
-
`${DIRTY_CLASS} ${SUBMITTED_CLASS}`,
|
|
291
|
-
);
|
|
292
|
-
this.$dirty = false;
|
|
293
|
-
this.$pristine = true;
|
|
294
|
-
this.$submitted = false;
|
|
295
|
-
this.$$controls.forEach((control) => {
|
|
296
|
-
control.$setPristine();
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* Sets the form to its untouched state.
|
|
302
|
-
*
|
|
303
|
-
* This method can be called to remove the 'ng-touched' class and set the form controls to their
|
|
304
|
-
* untouched state (ng-untouched class).
|
|
305
|
-
*
|
|
306
|
-
* Setting a form controls back to their untouched state is often useful when setting the form
|
|
307
|
-
* back to its pristine state.
|
|
308
|
-
*/
|
|
309
|
-
$setUntouched() {
|
|
310
|
-
this.$$controls.forEach((control) => {
|
|
311
|
-
control.$setUntouched();
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Sets the form to its `$submitted` state. This will also set `$submitted` on all child and
|
|
317
|
-
* parent forms of the form.
|
|
318
|
-
*/
|
|
319
|
-
$setSubmitted() {
|
|
320
|
-
/** @type {FormController} */
|
|
321
|
-
let rootForm = this;
|
|
322
|
-
while (rootForm.$$parentForm && rootForm.$$parentForm !== nullFormCtrl) {
|
|
323
|
-
rootForm = rootForm.$$parentForm;
|
|
324
|
-
}
|
|
325
|
-
rootForm.$$setSubmitted();
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
$$setSubmitted() {
|
|
329
|
-
this.$$animate.addClass(this.$$element, SUBMITTED_CLASS);
|
|
330
|
-
this.$submitted = true;
|
|
331
|
-
this.$$controls.forEach((control) => {
|
|
332
|
-
if (control.$$setSubmitted) {
|
|
333
|
-
control.$$setSubmitted();
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
set(object, property, controller) {
|
|
339
|
-
const list = object[property];
|
|
340
|
-
if (!list) {
|
|
341
|
-
if (isProxy(object)) {
|
|
342
|
-
object = object.$target;
|
|
343
|
-
}
|
|
344
|
-
object[property] = [controller];
|
|
345
|
-
} else {
|
|
346
|
-
const index = list.indexOf(controller);
|
|
347
|
-
if (index === -1) {
|
|
348
|
-
list.push(controller);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
unset(object, property, controller) {
|
|
354
|
-
const list = object[property];
|
|
355
|
-
if (!list) {
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
const index = arrayRemove(list, controller);
|
|
359
|
-
if (index === -1) {
|
|
360
|
-
arrayRemove(list, controller.$target);
|
|
361
|
-
}
|
|
362
|
-
if (list.length === 0) {
|
|
363
|
-
delete object[property];
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
/**
|
|
368
|
-
* Change the validity state of the form, and notify the parent form (if any).
|
|
369
|
-
*
|
|
370
|
-
* Application developers will rarely need to call this method directly. It is used internally, by
|
|
371
|
-
* {@link ngModel.NgModelController#$setValidity NgModelController.$setValidity()}, to propagate a
|
|
372
|
-
* control's validity state to the parent `FormController`.
|
|
373
|
-
*
|
|
374
|
-
* @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be
|
|
375
|
-
* assigned to either `$error[validationErrorKey]` or `$pending[validationErrorKey]` (for
|
|
376
|
-
* unfulfilled `$asyncValidators`), so that it is available for data-binding. The
|
|
377
|
-
* `validationErrorKey` should be in camelCase and will get converted into dash-case for
|
|
378
|
-
* class name. Example: `myError` will result in `ng-valid-my-error` and
|
|
379
|
-
* `ng-invalid-my-error` classes and can be bound to as `{{ someForm.$error.myError }}`.
|
|
380
|
-
* @param {boolean} state Whether the current state is valid (true), invalid (false), pending
|
|
381
|
-
* (undefined), or skipped (null). Pending is used for unfulfilled `$asyncValidators`.
|
|
382
|
-
* Skipped is used by AngularTS when validators do not run because of parse errors and when
|
|
383
|
-
* `$asyncValidators` do not run because any of the `$validators` failed.
|
|
384
|
-
* @param {import("../model/model.js").NgModelController | FormController} controller - The controller whose validity state is
|
|
385
|
-
* triggering the change.
|
|
386
|
-
*/
|
|
387
|
-
$setValidity(validationErrorKey, state, controller) {
|
|
388
|
-
let that = this;
|
|
389
|
-
if (isUndefined(state)) {
|
|
390
|
-
createAndSet(this, "$pending", validationErrorKey, controller);
|
|
391
|
-
} else {
|
|
392
|
-
unsetAndCleanup(this, "$pending", validationErrorKey, controller);
|
|
393
|
-
}
|
|
394
|
-
if (!isBoolean(state)) {
|
|
395
|
-
this.unset(this.$error, validationErrorKey, controller);
|
|
396
|
-
this.unset(this.$$success, validationErrorKey, controller);
|
|
397
|
-
} else if (state) {
|
|
398
|
-
this.unset(this.$error, validationErrorKey, controller);
|
|
399
|
-
this.set(this.$$success, validationErrorKey, controller);
|
|
400
|
-
} else {
|
|
401
|
-
this.set(this.$error, validationErrorKey, controller);
|
|
402
|
-
this.unset(this.$$success, validationErrorKey, controller);
|
|
403
|
-
}
|
|
404
|
-
if (this.$pending) {
|
|
405
|
-
cachedToggleClass(this, PENDING_CLASS, true);
|
|
406
|
-
this.$valid = this.$invalid = undefined;
|
|
407
|
-
toggleValidationCss(this, "", null);
|
|
408
|
-
} else {
|
|
409
|
-
cachedToggleClass(this, PENDING_CLASS, false);
|
|
410
|
-
this.$valid = isObjectEmpty(this.$error);
|
|
411
|
-
this.$invalid = !this.$valid;
|
|
412
|
-
toggleValidationCss(this, "", this.$valid);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
// re-read the state as the set/unset methods could have
|
|
416
|
-
// combined state in this.$error[validationError] (used for forms),
|
|
417
|
-
// where setting/unsetting only increments/decrements the value,
|
|
418
|
-
// and does not replace it.
|
|
419
|
-
let combinedState;
|
|
420
|
-
if (this.$pending && this.$pending[validationErrorKey]) {
|
|
421
|
-
combinedState = undefined;
|
|
422
|
-
} else if (this.$error[validationErrorKey]) {
|
|
423
|
-
combinedState = false;
|
|
424
|
-
} else if (this.$$success[validationErrorKey]) {
|
|
425
|
-
combinedState = true;
|
|
426
|
-
} else {
|
|
427
|
-
combinedState = null;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
toggleValidationCss(this, validationErrorKey, combinedState);
|
|
431
|
-
this.$$parentForm.$setValidity(validationErrorKey, combinedState, this);
|
|
432
|
-
function createAndSet(ctrl, name, value, controller) {
|
|
433
|
-
if (!ctrl[name]) {
|
|
434
|
-
ctrl[name] = {};
|
|
435
|
-
}
|
|
436
|
-
that.set(ctrl[name], value, controller);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
function unsetAndCleanup(ctrl, name, value, controller) {
|
|
440
|
-
if (ctrl[name]) {
|
|
441
|
-
that.unset(ctrl[name], value, controller);
|
|
442
|
-
}
|
|
443
|
-
if (isObjectEmpty(ctrl[name])) {
|
|
444
|
-
ctrl[name] = undefined;
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
function cachedToggleClass(ctrl, className, switchValue) {
|
|
449
|
-
if (switchValue && !ctrl.$$classCache[className]) {
|
|
450
|
-
ctrl.$$animate.addClass(ctrl.$$element, className);
|
|
451
|
-
ctrl.$$classCache[className] = true;
|
|
452
|
-
} else if (!switchValue && ctrl.$$classCache[className]) {
|
|
453
|
-
ctrl.$$animate.removeClass(ctrl.$$element, className);
|
|
454
|
-
ctrl.$$classCache[className] = false;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
function toggleValidationCss(ctrl, validationErrorKey, isValid) {
|
|
459
|
-
validationErrorKey = validationErrorKey
|
|
460
|
-
? `-${snakeCase(validationErrorKey, "-")}`
|
|
461
|
-
: "";
|
|
462
|
-
|
|
463
|
-
cachedToggleClass(
|
|
464
|
-
ctrl,
|
|
465
|
-
VALID_CLASS + validationErrorKey,
|
|
466
|
-
isValid === true,
|
|
467
|
-
);
|
|
468
|
-
cachedToggleClass(
|
|
469
|
-
ctrl,
|
|
470
|
-
INVALID_CLASS + validationErrorKey,
|
|
471
|
-
isValid === false,
|
|
472
|
-
);
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
/**
|
|
478
|
-
* Helper directive that makes it possible to create control groups inside a
|
|
479
|
-
* {@link ng.directive:form `form`} directive.
|
|
480
|
-
* These "child forms" can be used, for example, to determine the validity of a sub-group of
|
|
481
|
-
* controls.
|
|
482
|
-
*
|
|
483
|
-
* <div class="alert alert-danger">
|
|
484
|
-
* **Note**: `ngForm` cannot be used as a replacement for `<form>`, because it lacks its
|
|
485
|
-
* [built-in HTML functionality](https://html.spec.whatwg.org/#the-form-element).
|
|
486
|
-
* Specifically, you cannot submit `ngForm` like a `<form>` tag. That means,
|
|
487
|
-
* you cannot send data to the server with `ngForm`, or integrate it with
|
|
488
|
-
* {@link ng.directive:ngSubmit `ngSubmit`}.
|
|
489
|
-
* </div>
|
|
490
|
-
*
|
|
491
|
-
* @param {string=} ngForm|name Name of the form. If specified, the form controller will
|
|
492
|
-
* be published into the related scope, under this name.
|
|
493
|
-
*
|
|
494
|
-
*/
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* Directive that instantiates
|
|
498
|
-
* {@link form.FormController FormController}.
|
|
499
|
-
*
|
|
500
|
-
* If the `name` attribute is specified, the form controller is published onto the current scope under
|
|
501
|
-
* this name.
|
|
502
|
-
*
|
|
503
|
-
* ## Alias: {@link ng.directive:ngForm `ngForm`}
|
|
504
|
-
*
|
|
505
|
-
* In AngularTS, forms can be nested. This means that the outer form is valid when all of the child
|
|
506
|
-
* forms are valid as well. However, browsers do not allow nesting of `<form>` elements, so
|
|
507
|
-
* AngularTS provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to
|
|
508
|
-
* `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group
|
|
509
|
-
* of controls needs to be determined.
|
|
510
|
-
*
|
|
511
|
-
* ## CSS classes
|
|
512
|
-
* - `ng-valid` is set if the form is valid.
|
|
513
|
-
* - `ng-invalid` is set if the form is invalid.
|
|
514
|
-
* - `ng-pending` is set if the form is pending.
|
|
515
|
-
* - `ng-pristine` is set if the form is pristine.
|
|
516
|
-
* - `ng-dirty` is set if the form is dirty.
|
|
517
|
-
* - `ng-submitted` is set if the form was submitted.
|
|
518
|
-
*
|
|
519
|
-
* Keep in mind that ngAnimate can detect each of these classes when added and removed.
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
* ## Submitting a form and preventing the default action
|
|
523
|
-
*
|
|
524
|
-
* Since the role of forms in client-side AngularTS applications is different than in classical
|
|
525
|
-
* roundtrip apps, it is desirable for the browser not to translate the form submission into a full
|
|
526
|
-
* page reload that sends the data to the server. Instead some javascript logic should be triggered
|
|
527
|
-
* to handle the form submission in an application-specific way.
|
|
528
|
-
*
|
|
529
|
-
* For this reason, AngularTS prevents the default action (form submission to the server) unless the
|
|
530
|
-
* `<form>` element has an `action` attribute specified.
|
|
531
|
-
*
|
|
532
|
-
* You can use one of the following two ways to specify what javascript method should be called when
|
|
533
|
-
* a form is submitted:
|
|
534
|
-
*
|
|
535
|
-
* - {@link ng.directive:ngSubmit ngSubmit} directive on the form element
|
|
536
|
-
* - {@link ng.directive:ngClick ngClick} directive on the first
|
|
537
|
-
* button or input field of type submit (input[type=submit])
|
|
538
|
-
*
|
|
539
|
-
* To prevent double execution of the handler, use only one of the {@link ng.directive:ngSubmit ngSubmit}
|
|
540
|
-
* or {@link ng.directive:ngClick ngClick} directives.
|
|
541
|
-
* This is because of the following form submission rules in the HTML specification:
|
|
542
|
-
*
|
|
543
|
-
* - If a form has only one input field then hitting enter in this field triggers form submit
|
|
544
|
-
* (`ngSubmit`)
|
|
545
|
-
* - if a form has 2+ input fields and no buttons or input[type=submit] then hitting enter
|
|
546
|
-
* doesn't trigger submit
|
|
547
|
-
* - if a form has one or more input fields and one or more buttons or input[type=submit] then
|
|
548
|
-
* hitting enter in any of the input fields will trigger the click handler on the *first* button or
|
|
549
|
-
* input[type=submit] (`ngClick`) *and* a submit handler on the enclosing form (`ngSubmit`)
|
|
550
|
-
*
|
|
551
|
-
* Any pending `ngModelOptions` changes will take place immediately when an enclosing form is
|
|
552
|
-
* submitted. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit`
|
|
553
|
-
* to have access to the updated model.
|
|
554
|
-
*
|
|
555
|
-
* @animations
|
|
556
|
-
* Animations in ngForm are triggered when any of the associated CSS classes are added and removed.
|
|
557
|
-
* These classes are: `.ng-pristine`, `.ng-dirty`, `.ng-invalid` and `.ng-valid` as well as any
|
|
558
|
-
* other validations that are performed within the form. Animations in ngForm are similar to how
|
|
559
|
-
* they work in ngClass and animations can be hooked into using CSS transitions, keyframes as well
|
|
560
|
-
* as JS animations.
|
|
561
|
-
*
|
|
562
|
-
* @param {string=} isNgForm Name of the form. If specified, the form controller will be published into
|
|
563
|
-
* related scope, under this name.
|
|
564
|
-
*/
|
|
565
|
-
const formDirectiveFactory = function (isNgForm) {
|
|
566
|
-
return [
|
|
567
|
-
"$parse",
|
|
568
|
-
function ($parse) {
|
|
569
|
-
return {
|
|
570
|
-
name: "form",
|
|
571
|
-
restrict: isNgForm ? "EA" : "E",
|
|
572
|
-
require: ["form", "^^?form"], // first is the form's own ctrl, second is an optional parent form
|
|
573
|
-
controller: FormController,
|
|
574
|
-
compile: function ngFormCompile(formElement, attr) {
|
|
575
|
-
// Setup initial state of the control
|
|
576
|
-
formElement.classList.add(PRISTINE_CLASS, VALID_CLASS);
|
|
577
|
-
|
|
578
|
-
const nameAttr = attr.name
|
|
579
|
-
? "name"
|
|
580
|
-
: isNgForm && attr.ngForm
|
|
581
|
-
? "ngForm"
|
|
582
|
-
: false;
|
|
583
|
-
|
|
584
|
-
return {
|
|
585
|
-
pre: function ngFormPreLink(scope, formElement, attr, ctrls) {
|
|
586
|
-
const controller = ctrls[0];
|
|
587
|
-
|
|
588
|
-
// if `action` attr is not present on the form, prevent the default action (submission)
|
|
589
|
-
if (!("action" in attr)) {
|
|
590
|
-
// we can't use jq events because if a form is destroyed during submission the default
|
|
591
|
-
// action is not prevented. see #1238
|
|
592
|
-
//
|
|
593
|
-
// IE 9 is not affected because it doesn't fire a submit event and try to do a full
|
|
594
|
-
// page reload if the form was destroyed by submission of the form via a click handler
|
|
595
|
-
// on a button in the form. Looks like an IE9 specific bug.
|
|
596
|
-
const handleFormSubmission = function (event) {
|
|
597
|
-
controller.$commitViewValue();
|
|
598
|
-
controller.$setSubmitted();
|
|
599
|
-
event.preventDefault();
|
|
600
|
-
};
|
|
601
|
-
|
|
602
|
-
formElement.addEventListener("submit", handleFormSubmission);
|
|
603
|
-
|
|
604
|
-
// unregister the preventDefault listener so that we don't not leak memory but in a
|
|
605
|
-
// way that will achieve the prevention of the default action.
|
|
606
|
-
formElement.addEventListener("$destroy", () => {
|
|
607
|
-
setTimeout(
|
|
608
|
-
() => {
|
|
609
|
-
formElement.removeEventListener(
|
|
610
|
-
"submit",
|
|
611
|
-
handleFormSubmission,
|
|
612
|
-
);
|
|
613
|
-
},
|
|
614
|
-
0,
|
|
615
|
-
false,
|
|
616
|
-
);
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
const parentFormCtrl = ctrls[1] || controller.$$parentForm;
|
|
621
|
-
parentFormCtrl.$addControl(controller);
|
|
622
|
-
|
|
623
|
-
let setter = nameAttr ? getSetter(controller.$name) : () => {};
|
|
624
|
-
|
|
625
|
-
if (nameAttr) {
|
|
626
|
-
setter(scope, controller);
|
|
627
|
-
attr.$observe(nameAttr, (newValue) => {
|
|
628
|
-
if (controller.$name === newValue) return;
|
|
629
|
-
scope.$target[controller.$name] = undefined;
|
|
630
|
-
controller.$$parentForm.$$renameControl(controller, newValue);
|
|
631
|
-
if (
|
|
632
|
-
scope.$target !== controller.$$parentForm &&
|
|
633
|
-
controller.$$parentForm !== nullFormCtrl
|
|
634
|
-
) {
|
|
635
|
-
// form moved
|
|
636
|
-
} else {
|
|
637
|
-
scope.$target[newValue] = controller;
|
|
638
|
-
}
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
formElement.addEventListener("$destroy", () => {
|
|
642
|
-
controller.$target.$$parentForm.$removeControl(controller);
|
|
643
|
-
setter(scope, undefined);
|
|
644
|
-
extend(controller, nullFormCtrl); // stop propagating child destruction handlers upwards
|
|
645
|
-
});
|
|
646
|
-
},
|
|
647
|
-
};
|
|
648
|
-
},
|
|
649
|
-
};
|
|
650
|
-
function getSetter(expression) {
|
|
651
|
-
if (expression === "") {
|
|
652
|
-
// create an assignable expression, so forms with an empty name can be renamed later
|
|
653
|
-
return $parse('this[""]').assign;
|
|
654
|
-
}
|
|
655
|
-
return $parse(expression).assign || (() => {});
|
|
656
|
-
}
|
|
657
|
-
},
|
|
658
|
-
];
|
|
659
|
-
};
|
|
660
|
-
|
|
661
|
-
export const formDirective = formDirectiveFactory();
|
|
662
|
-
export const ngFormDirective = formDirectiveFactory("ngForm");
|
|
663
|
-
|
|
664
|
-
// helper methods
|
|
665
|
-
export function setupValidity(instance) {
|
|
666
|
-
instance.$$classCache = {};
|
|
667
|
-
instance.$$classCache[INVALID_CLASS] = !(instance.$$classCache[VALID_CLASS] =
|
|
668
|
-
instance.$$element.classList.contains(VALID_CLASS));
|
|
669
|
-
}
|