@angular-wave/angular.ts 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/index.d.ts +1 -84
- package/{src/index.ts → @types/namespace.d.ts} +4 -24
- package/@types/router/template-factory.d.ts +2 -2
- package/dist/angular-ts.esm.js +3 -3
- package/dist/angular-ts.umd.js +3 -3
- package/dist/angular-ts.umd.min.js +1 -1
- package/package.json +8 -1
- package/.github/workflows/ci.yml +0 -104
- package/.github/workflows/gh-pages.yml +0 -75
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -9
- package/CHANGELOG.md +0 -17667
- package/CODE_OF_CONDUCT.md +0 -3
- package/CONTRIBUTING.md +0 -247
- package/DEVELOPERS.md +0 -499
- package/Makefile +0 -60
- package/RELEASE.md +0 -86
- package/TRIAGING.md +0 -127
- package/docs/.cspell.yml +0 -8
- package/docs/.github/dependabot.yml +0 -14
- package/docs/.nvmrc +0 -1
- package/docs/CONTRIBUTING.md +0 -28
- package/docs/Dockerfile +0 -4
- package/docs/LICENSE +0 -201
- package/docs/README.md +0 -217
- package/docs/assets/icons/logo.svg +0 -1
- package/docs/assets/scss/_variables_project.scss +0 -12
- package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
- package/docs/assets/scss/index.scss +0 -48
- package/docs/config.yaml +0 -15
- package/docs/content/_index.md +0 -28
- package/docs/content/docs/_index.md +0 -61
- package/docs/content/docs/directive/_index.md +0 -4
- package/docs/content/docs/directive/app.md +0 -11
- package/docs/content/docs/directive/aria.md +0 -0
- package/docs/content/docs/directive/bind.md +0 -72
- package/docs/content/docs/directive/blur.md +0 -38
- package/docs/content/docs/directive/channel.md +0 -37
- package/docs/content/docs/directive/class-even.md +0 -47
- package/docs/content/docs/directive/class-odd.md +0 -48
- package/docs/content/docs/directive/class.md +0 -64
- package/docs/content/docs/directive/click.md +0 -41
- package/docs/content/docs/directive/cloak.md +0 -74
- package/docs/content/docs/directive/copy.md +0 -38
- package/docs/content/docs/directive/cut.md +0 -40
- package/docs/content/docs/directive/dblclick.md +0 -41
- package/docs/content/docs/directive/focus.md +0 -38
- package/docs/content/docs/directive/get.md +0 -203
- package/docs/content/docs/directive/include.md +0 -7
- package/docs/content/docs/directive/keydown.md +0 -38
- package/docs/content/docs/directive/keyup.md +0 -38
- package/docs/content/docs/directive/load.md +0 -43
- package/docs/content/docs/directive/mousedown.md +0 -38
- package/docs/content/docs/directive/mouseenter.md +0 -38
- package/docs/content/docs/directive/mouseleave.md +0 -38
- package/docs/content/docs/directive/mousemove.md +0 -38
- package/docs/content/docs/directive/mouseout.md +0 -38
- package/docs/content/docs/directive/mouseover.md +0 -38
- package/docs/content/docs/directive/mouseup.md +0 -38
- package/docs/content/docs/directive/non-bindable.md +0 -28
- package/docs/content/docs/filter/_index.md +0 -4
- package/docs/content/docs/filter/filter.md +0 -78
- package/docs/content/docs/filter/json.md +0 -19
- package/docs/content/docs/filter/limit-to.md +0 -30
- package/docs/content/docs/filter/order-by.md +0 -123
- package/docs/content/docs/provider/_index.md +0 -4
- package/docs/content/docs/provider/eventBusProvider.md +0 -35
- package/docs/content/docs/provider/locationProvider.md +0 -26
- package/docs/content/docs/provider/logProvider.md +0 -59
- package/docs/content/docs/provider/sceProvider.md +0 -194
- package/docs/content/docs/provider/templateCacheProvider.md +0 -100
- package/docs/content/docs/provider/templateRequestProvider.md +0 -5
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/compile.md +0 -5
- package/docs/content/docs/service/controller.md +0 -5
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/http.md +0 -161
- package/docs/content/docs/service/interpolation.md +0 -5
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/parse.md +0 -5
- package/docs/content/docs/service/rootElement.md +0 -5
- package/docs/content/docs/service/rootScope.md +0 -5
- package/docs/content/docs/service/sce.md +0 -194
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/templateRequest.md +0 -5
- package/docs/content/docs/service/url.md +0 -5
- package/docs/content/docs/values/_index.md +0 -4
- package/docs/content/docs/values/document.md +0 -29
- package/docs/content/docs/values/window.md +0 -29
- package/docs/docker-compose.yaml +0 -12
- package/docs/docsy.work +0 -5
- package/docs/docsy.work.sum +0 -0
- package/docs/go.mod +0 -5
- package/docs/go.sum +0 -6
- package/docs/hugo-disabled.toml +0 -220
- package/docs/hugo.yaml +0 -200
- package/docs/layouts/404.html +0 -13
- package/docs/layouts/_markup/render-heading.html +0 -1
- package/docs/layouts/partials/hooks/head-end.html +0 -3
- package/docs/layouts/shortcodes/showcss.html +0 -2
- package/docs/layouts/shortcodes/showhtml.html +0 -2
- package/docs/layouts/shortcodes/showjs.html +0 -2
- package/docs/layouts/shortcodes/showraw.html +0 -1
- package/docs/layouts/shortcodes/version.html +0 -1
- package/docs/package-lock.json +0 -2293
- package/docs/package.json +0 -53
- package/docs/static/examples/counter/counter-test.html +0 -13
- package/docs/static/examples/counter/counter.html +0 -5
- package/docs/static/examples/counter/counter.test.js +0 -28
- package/docs/static/examples/document/document.html +0 -3
- package/docs/static/examples/eventbus/eventbus-test.html +0 -15
- package/docs/static/examples/eventbus/eventbus.html +0 -13
- package/docs/static/examples/eventbus/eventbus.js +0 -15
- package/docs/static/examples/eventbus/eventbus.test.js +0 -19
- package/docs/static/examples/i18n/i18n.html +0 -77
- package/docs/static/examples/ng-bind/ng-bind.html +0 -9
- package/docs/static/examples/ng-blur/ng-blur.html +0 -9
- package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
- package/docs/static/examples/ng-channel/ng-channel.html +0 -24
- package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
- package/docs/static/examples/ng-class/ng-class.html +0 -71
- package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
- package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
- package/docs/static/examples/ng-click/ng-click.html +0 -6
- package/docs/static/examples/ng-copy/ng-copy.html +0 -6
- package/docs/static/examples/ng-cut/ng-cut.html +0 -6
- package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
- package/docs/static/examples/ng-focus/ng-focus.html +0 -9
- package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
- package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
- package/docs/static/examples/ng-load/ng-load.html +0 -8
- package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
- package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
- package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
- package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
- package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
- package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
- package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
- package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
- package/docs/static/examples/window/window.html +0 -4
- package/docs/static/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -29
- package/docs/static/typedoc/assets/icons.js +0 -18
- package/docs/static/typedoc/assets/icons.svg +0 -1
- package/docs/static/typedoc/assets/main.js +0 -60
- package/docs/static/typedoc/assets/navigation.js +0 -1
- package/docs/static/typedoc/assets/search.js +0 -1
- package/docs/static/typedoc/assets/style.css +0 -1633
- package/docs/static/typedoc/classes/Location.html +0 -55
- package/docs/static/typedoc/classes/LocationProvider.html +0 -20
- package/docs/static/typedoc/classes/LogProvider.html +0 -6
- package/docs/static/typedoc/classes/PubSub.html +0 -71
- package/docs/static/typedoc/classes/PubSubProvider.html +0 -4
- package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
- package/docs/static/typedoc/hierarchy.html +0 -1
- package/docs/static/typedoc/index.html +0 -1
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
- package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
- package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
- package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
- package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
- package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpService.html +0 -38
- package/docs/static/typedoc/interfaces/LogService.html +0 -12
- package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
- package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
- package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/HttpParamSerializer.html +0 -2
- package/docs/static/typedoc/types/HttpParams.html +0 -2
- package/docs/static/typedoc/types/HttpPromise.html +0 -1
- package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
- package/docs/static/typedoc/types/LogCall.html +0 -2
- package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/version.js +0 -13
- package/docs/test-results/.last-run.json +0 -4
- package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
- package/eslint.config.js +0 -26
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +0 -19
- package/index.html +0 -86
- package/legacy.d.ts +0 -1678
- package/playwright.config.ts +0 -81
- package/public/jasmine/boot0.js +0 -66
- package/public/jasmine/boot1.js +0 -134
- package/public/jasmine/jasmine-html.js +0 -970
- package/public/jasmine/jasmine.css +0 -323
- package/public/jasmine/jasmine.js +0 -11406
- package/public/public/README.md +0 -1
- package/public/public/circle.html +0 -1
- package/public/public/jasmine-helper.css +0 -9
- package/public/public/my_child_directive.html +0 -1
- package/public/public/my_directive.html +0 -1
- package/public/public/my_other_directive.html +0 -1
- package/public/public/test.html +0 -1
- package/rollup.config.js +0 -51
- package/src/angular.js +0 -286
- package/src/angular.spec.js +0 -1191
- package/src/animations/animate-cache.js +0 -80
- package/src/animations/animate-children-directive.js +0 -32
- package/src/animations/animate-children-directive.md +0 -80
- package/src/animations/animate-css-driver.js +0 -284
- package/src/animations/animate-css.html +0 -58
- package/src/animations/animate-css.js +0 -915
- package/src/animations/animate-css.md +0 -263
- package/src/animations/animate-js-driver.js +0 -60
- package/src/animations/animate-js.html +0 -47
- package/src/animations/animate-js.js +0 -371
- package/src/animations/animate-queue.js +0 -859
- package/src/animations/animate-runner.js +0 -193
- package/src/animations/animate-swap.js +0 -33
- package/src/animations/animate-swap.md +0 -88
- package/src/animations/animate.html +0 -19
- package/src/animations/animate.js +0 -546
- package/src/animations/animate.md +0 -933
- package/src/animations/animate.spec.js +0 -490
- package/src/animations/animation.js +0 -519
- package/src/animations/animations.test.js +0 -10
- package/src/animations/interface.ts +0 -19
- package/src/animations/raf-scheduler.html +0 -19
- package/src/animations/raf-scheduler.js +0 -92
- package/src/animations/raf-scheduler.spec.js +0 -98
- package/src/animations/shared.js +0 -341
- package/src/binding.html +0 -19
- package/src/binding.spec.js +0 -474
- package/src/binding.test.js +0 -10
- package/src/core/compile/attributes.js +0 -337
- package/src/core/compile/compile.html +0 -19
- package/src/core/compile/compile.js +0 -3271
- package/src/core/compile/compile.md +0 -1128
- package/src/core/compile/compile.spec.js +0 -15574
- package/src/core/compile/compile.test.js +0 -12
- package/src/core/controller/controller.html +0 -22
- package/src/core/controller/controller.js +0 -193
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- package/src/core/controller/interface.ts +0 -6
- package/src/core/core.html +0 -20
- package/src/core/core.test.js +0 -12
- package/src/core/di/injector.html +0 -19
- package/src/core/di/injector.js +0 -307
- package/src/core/di/injector.md +0 -740
- package/src/core/di/injector.spec.js +0 -2310
- package/src/core/di/injector.test.js +0 -12
- package/src/core/di/internal-injector.js +0 -286
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -229
- package/src/core/di/ng-module.spec.js +0 -263
- package/src/core/di/ng-module.test.js +0 -12
- package/src/core/filter/filter.html +0 -19
- package/src/core/filter/filter.js +0 -55
- package/src/core/filter/filter.md +0 -132
- package/src/core/filter/filter.spec.js +0 -149
- package/src/core/filter/filter.test.js +0 -12
- package/src/core/interpolate/interface.ts +0 -14
- package/src/core/interpolate/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -410
- package/src/core/interpolate/interpolate.spec.js +0 -601
- package/src/core/interpolate/interpolate.test.js +0 -12
- package/src/core/parse/ast/ast-node.ts +0 -81
- package/src/core/parse/ast/ast.html +0 -19
- package/src/core/parse/ast/ast.js +0 -574
- package/src/core/parse/ast/ast.spec.js +0 -1453
- package/src/core/parse/ast/ast.test.js +0 -10
- package/src/core/parse/ast-type.js +0 -23
- package/src/core/parse/interface.ts +0 -84
- package/src/core/parse/interpreter.js +0 -915
- package/src/core/parse/lexer/lexer.html +0 -19
- package/src/core/parse/lexer/lexer.js +0 -338
- package/src/core/parse/lexer/lexer.spec.js +0 -303
- package/src/core/parse/lexer/lexer.test.js +0 -10
- package/src/core/parse/lexer/token.ts +0 -22
- package/src/core/parse/parse.html +0 -19
- package/src/core/parse/parse.js +0 -337
- package/src/core/parse/parse.md +0 -57
- package/src/core/parse/parse.spec.js +0 -2107
- package/src/core/parse/parse.test.js +0 -10
- package/src/core/parse/parser/parser.html +0 -19
- package/src/core/parse/parser/parser.js +0 -64
- package/src/core/parse/parser/parser.spec.js +0 -8
- package/src/core/parse/parser/parser.test.js +0 -10
- package/src/core/prop.spec.js +0 -775
- package/src/core/root-element.spec.js +0 -14
- package/src/core/sanitize/interface.ts +0 -10
- package/src/core/sanitize/sanitize-uri.js +0 -75
- package/src/core/sanitize/sanitize-uri.spec.js +0 -249
- package/src/core/sanitize/sanitize-uri.test.js +0 -12
- package/src/core/sanitize/sanitize.html +0 -22
- package/src/core/scope/scope.html +0 -19
- package/src/core/scope/scope.js +0 -1252
- package/src/core/scope/scope.spec.js +0 -3000
- package/src/core/scope/scope.test.js +0 -12
- package/src/directive/aria/aria.html +0 -19
- package/src/directive/aria/aria.js +0 -382
- package/src/directive/aria/aria.md +0 -145
- package/src/directive/aria/aria.spec.js +0 -1241
- package/src/directive/aria/aria.test.js +0 -12
- package/src/directive/attrs/attrs.html +0 -19
- package/src/directive/attrs/attrs.js +0 -106
- package/src/directive/attrs/attrs.md +0 -224
- package/src/directive/attrs/attrs.spec.js +0 -71
- package/src/directive/attrs/attrs.test.js +0 -12
- package/src/directive/attrs/boolean.html +0 -19
- package/src/directive/attrs/boolean.spec.js +0 -137
- package/src/directive/attrs/boolean.test.js +0 -12
- package/src/directive/attrs/element-style.html +0 -22
- package/src/directive/attrs/element-style.spec.js +0 -85
- package/src/directive/attrs/element-style.test.js +0 -12
- package/src/directive/attrs/src.html +0 -19
- package/src/directive/attrs/src.spec.js +0 -163
- package/src/directive/attrs/src.test.js +0 -12
- package/src/directive/bind/bind-html.spec.js +0 -36
- package/src/directive/bind/bind.html +0 -20
- package/src/directive/bind/bind.js +0 -78
- package/src/directive/bind/bind.md +0 -142
- package/src/directive/bind/bind.spec.js +0 -314
- package/src/directive/bind/bind.test.js +0 -12
- package/src/directive/channel/channel.html +0 -19
- package/src/directive/channel/channel.js +0 -30
- package/src/directive/channel/channel.spec.js +0 -67
- package/src/directive/channel/channel.test.js +0 -10
- package/src/directive/class/class-test.html +0 -23
- package/src/directive/class/class.html +0 -19
- package/src/directive/class/class.js +0 -184
- package/src/directive/class/class.spec.js +0 -704
- package/src/directive/class/class.test.js +0 -12
- package/src/directive/cloak/cloak.html +0 -19
- package/src/directive/cloak/cloak.js +0 -11
- package/src/directive/cloak/cloak.spec.js +0 -44
- package/src/directive/cloak/cloak.test.js +0 -12
- package/src/directive/controller/controller.html +0 -22
- package/src/directive/controller/controller.js +0 -11
- package/src/directive/controller/controller.md +0 -46
- package/src/directive/controller/controller.spec.js +0 -175
- package/src/directive/controller/controller.test.js +0 -12
- package/src/directive/events/click.spec.js +0 -35
- package/src/directive/events/event.spec.js +0 -267
- package/src/directive/events/events-test.html +0 -36
- package/src/directive/events/events.html +0 -20
- package/src/directive/events/events.js +0 -65
- package/src/directive/events/events.md +0 -125
- package/src/directive/events/events.test.js +0 -12
- package/src/directive/form/form.html +0 -19
- package/src/directive/form/form.js +0 -669
- package/src/directive/form/form.spec.js +0 -1515
- package/src/directive/form/form.test.js +0 -12
- package/src/directive/http/delete.spec.js +0 -23
- package/src/directive/http/form-router-test.html +0 -44
- package/src/directive/http/form-test.html +0 -18
- package/src/directive/http/get.spec.js +0 -488
- package/src/directive/http/http.html +0 -22
- package/src/directive/http/http.js +0 -342
- package/src/directive/http/http.test.js +0 -12
- package/src/directive/http/interface.ts +0 -36
- package/src/directive/http/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -23
- package/src/directive/if/if-animate-css.html +0 -57
- package/src/directive/if/if-animate-svg.html +0 -25
- package/src/directive/if/if.html +0 -19
- package/src/directive/if/if.js +0 -72
- package/src/directive/if/if.md +0 -76
- package/src/directive/if/if.spec.js +0 -293
- package/src/directive/if/if.test.js +0 -114
- package/src/directive/include/include.html +0 -19
- package/src/directive/include/include.js +0 -151
- package/src/directive/include/include.md +0 -87
- package/src/directive/include/include.spec.js +0 -734
- package/src/directive/include/include.test.js +0 -12
- package/src/directive/init/init.html +0 -19
- package/src/directive/init/init.js +0 -22
- package/src/directive/init/init.md +0 -41
- package/src/directive/init/init.spec.js +0 -68
- package/src/directive/init/init.test.js +0 -12
- package/src/directive/inject/inject.html +0 -19
- package/src/directive/inject/inject.js +0 -35
- package/src/directive/inject/inject.spec.js +0 -108
- package/src/directive/inject/inject.test.js +0 -12
- package/src/directive/input/input-example.html +0 -15
- package/src/directive/input/input.html +0 -19
- package/src/directive/input/input.js +0 -1078
- package/src/directive/input/input.md +0 -706
- package/src/directive/input/input.spec.js +0 -3700
- package/src/directive/input/input.test.js +0 -12
- package/src/directive/messages/messages.html +0 -22
- package/src/directive/messages/messages.js +0 -349
- package/src/directive/messages/messages.md +0 -543
- package/src/directive/messages/messages.spec.js +0 -1083
- package/src/directive/messages/messages.test.js +0 -12
- package/src/directive/model/change.md +0 -25
- package/src/directive/model/model.html +0 -19
- package/src/directive/model/model.js +0 -1170
- package/src/directive/model/model.spec.js +0 -1976
- package/src/directive/model/model.test.js +0 -12
- package/src/directive/model-options/model-option.test.js +0 -12
- package/src/directive/model-options/model-options.html +0 -22
- package/src/directive/model-options/model-options.js +0 -142
- package/src/directive/model-options/model-options.md +0 -407
- package/src/directive/model-options/model-options.spec.js +0 -1022
- package/src/directive/non-bindable/non-bindable.html +0 -22
- package/src/directive/non-bindable/non-bindable.js +0 -9
- package/src/directive/non-bindable/non-bindable.spec.js +0 -59
- package/src/directive/non-bindable/non-bindable.test.js +0 -12
- package/src/directive/observe/observe-demo.html +0 -184
- package/src/directive/observe/observe.html +0 -19
- package/src/directive/observe/observe.js +0 -41
- package/src/directive/observe/observe.spec.js +0 -106
- package/src/directive/observe/observe.test.js +0 -10
- package/src/directive/on/on.html +0 -19
- package/src/directive/on/on.spec.js +0 -215
- package/src/directive/on/on.test.js +0 -12
- package/src/directive/options/options-example.html +0 -17
- package/src/directive/options/options.html +0 -22
- package/src/directive/options/options.js +0 -542
- package/src/directive/options/options.md +0 -179
- package/src/directive/options/options.spec.js +0 -3554
- package/src/directive/options/options.test.js +0 -12
- package/src/directive/ref/href.html +0 -19
- package/src/directive/ref/href.spec.js +0 -141
- package/src/directive/ref/href.test.js +0 -19
- package/src/directive/ref/ref.html +0 -19
- package/src/directive/ref/ref.js +0 -89
- package/src/directive/ref/ref.spec.js +0 -546
- package/src/directive/repeat/repeat.html +0 -19
- package/src/directive/repeat/repeat.js +0 -333
- package/src/directive/repeat/repeat.md +0 -330
- package/src/directive/repeat/repeat.spec.js +0 -1209
- package/src/directive/repeat/repeat.test.js +0 -12
- package/src/directive/script/script.html +0 -19
- package/src/directive/script/script.js +0 -17
- package/src/directive/script/script.md +0 -11
- package/src/directive/script/script.spec.js +0 -47
- package/src/directive/script/script.test.js +0 -12
- package/src/directive/select/select.html +0 -19
- package/src/directive/select/select.js +0 -594
- package/src/directive/select/select.md +0 -74
- package/src/directive/select/select.spec.js +0 -2566
- package/src/directive/select/select.test.js +0 -12
- package/src/directive/setter/setter.html +0 -19
- package/src/directive/setter/setter.js +0 -59
- package/src/directive/setter/setter.spec.js +0 -100
- package/src/directive/setter/setter.test.js +0 -12
- package/src/directive/show-hide/show-hide.html +0 -22
- package/src/directive/show-hide/show-hide.js +0 -65
- package/src/directive/show-hide/show-hide.md +0 -255
- package/src/directive/show-hide/show-hide.spec.js +0 -268
- package/src/directive/show-hide/show-hide.test.js +0 -12
- package/src/directive/style/style.html +0 -19
- package/src/directive/style/style.js +0 -27
- package/src/directive/style/style.md +0 -23
- package/src/directive/style/style.spec.js +0 -183
- package/src/directive/style/style.test.js +0 -12
- package/src/directive/switch/switch.html +0 -19
- package/src/directive/switch/switch.js +0 -133
- package/src/directive/switch/switch.md +0 -66
- package/src/directive/switch/switch.spec.js +0 -509
- package/src/directive/switch/switch.test.js +0 -12
- package/src/directive/transclude/transclude.js +0 -122
- package/src/directive/validators/validators.html +0 -22
- package/src/directive/validators/validators.js +0 -346
- package/src/directive/validators/validators.spec.js +0 -740
- package/src/directive/validators/validators.test.js +0 -12
- package/src/filters/filter.js +0 -213
- package/src/filters/filter.spec.js +0 -719
- package/src/filters/filters.html +0 -22
- package/src/filters/filters.js +0 -239
- package/src/filters/filters.spec.js +0 -36
- package/src/filters/filters.test.js +0 -12
- package/src/filters/interface.ts +0 -9
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.spec.js +0 -883
- package/src/index.js +0 -6
- package/src/index.spec.js +0 -11
- package/src/injection-tokens.js +0 -81
- package/src/interface.ts +0 -430
- package/src/ng.js +0 -291
- package/src/ng.spec.js +0 -45
- package/src/router/common/trace.js +0 -240
- package/src/router/directives/component-example.html +0 -37
- package/src/router/directives/state-directives.html +0 -22
- package/src/router/directives/state-directives.js +0 -393
- package/src/router/directives/state-directives.md +0 -435
- package/src/router/directives/state-directives.spec.js +0 -1091
- package/src/router/directives/state-directives.test.js +0 -10
- package/src/router/directives/view-directive.js +0 -489
- package/src/router/directives/view-directive.spec.js +0 -1921
- package/src/router/directives/view-directive.test.js +0 -10
- package/src/router/directives/view-directives.html +0 -22
- package/src/router/glob/glob.html +0 -19
- package/src/router/glob/glob.js +0 -102
- package/src/router/glob/glob.spec.js +0 -108
- package/src/router/glob/glob.test.js +0 -12
- package/src/router/hooks/core-resolvables.js +0 -38
- package/src/router/hooks/ignored-transition.js +0 -25
- package/src/router/hooks/invalid-transition.js +0 -14
- package/src/router/hooks/lazy-load.js +0 -104
- package/src/router/hooks/on-enter-exit-retain.js +0 -55
- package/src/router/hooks/redirect-to.js +0 -38
- package/src/router/hooks/resolve.js +0 -57
- package/src/router/hooks/update-globals.js +0 -34
- package/src/router/hooks/url.js +0 -34
- package/src/router/hooks/views.js +0 -41
- package/src/router/params/interface.ts +0 -626
- package/src/router/params/param-factory.js +0 -23
- package/src/router/params/param-type.js +0 -133
- package/src/router/params/param-types.js +0 -153
- package/src/router/params/param.js +0 -243
- package/src/router/params/state-params.js +0 -36
- package/src/router/path/path-node.js +0 -78
- package/src/router/path/path-utils.js +0 -207
- package/src/router/resolve/interface.ts +0 -208
- package/src/router/resolve/resolvable.js +0 -123
- package/src/router/resolve/resolve-context.js +0 -190
- package/src/router/router-test-hashbang.html +0 -45
- package/src/router/router-test.html +0 -41
- package/src/router/router.html +0 -22
- package/src/router/router.js +0 -54
- package/src/router/router.test.js +0 -12
- package/src/router/services.spec.js +0 -52
- package/src/router/state/interface.ts +0 -1007
- package/src/router/state/state-builder.js +0 -376
- package/src/router/state/state-builder.spec.js +0 -86
- package/src/router/state/state-matcher.js +0 -64
- package/src/router/state/state-object.js +0 -118
- package/src/router/state/state-queue-manager.js +0 -95
- package/src/router/state/state-registry.js +0 -262
- package/src/router/state/state-service.js +0 -687
- package/src/router/state/state.html +0 -23
- package/src/router/state/state.spec.js +0 -1002
- package/src/router/state/state.test.js +0 -12
- package/src/router/state/target-state.js +0 -162
- package/src/router/state/views.js +0 -195
- package/src/router/state-filter.spec.js +0 -139
- package/src/router/state-filters.js +0 -46
- package/src/router/template-factory.html +0 -19
- package/src/router/template-factory.js +0 -249
- package/src/router/template-factory.spec.js +0 -146
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -137
- package/src/router/transition/hook-registry.js +0 -181
- package/src/router/transition/interface.js +0 -18
- package/src/router/transition/interface.ts +0 -922
- package/src/router/transition/reject-factory.js +0 -122
- package/src/router/transition/transition-event-type.js +0 -26
- package/src/router/transition/transition-hook.js +0 -199
- package/src/router/transition/transition-service.js +0 -297
- package/src/router/transition/transition.js +0 -653
- package/src/router/url/url-config.js +0 -155
- package/src/router/url/url-matcher.js +0 -532
- package/src/router/url/url-rule.js +0 -231
- package/src/router/url/url-rules.js +0 -350
- package/src/router/url/url-service.js +0 -446
- package/src/router/url/url-service.spec.js +0 -1288
- package/src/router/url/url.html +0 -19
- package/src/router/url/url.test.js +0 -12
- package/src/router/view/interface.ts +0 -51
- package/src/router/view/view.html +0 -19
- package/src/router/view/view.js +0 -262
- package/src/router/view/view.spec.js +0 -100
- package/src/router/view/view.test.js +0 -12
- package/src/router/view-hook.spec.js +0 -215
- package/src/router/view-scroll.js +0 -33
- package/src/router/view-scroll.spec.js +0 -72
- package/src/services/anchor-scroll/anchor-scroll.html +0 -76
- package/src/services/anchor-scroll/anchor-scroll.js +0 -147
- package/src/services/exception/exception-handler.js +0 -75
- package/src/services/exception/interface.ts +0 -7
- package/src/services/http/http.html +0 -23
- package/src/services/http/http.js +0 -1109
- package/src/services/http/http.spec.js +0 -4320
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -256
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/location/interface.ts +0 -70
- package/src/services/location/location.html +0 -22
- package/src/services/location/location.js +0 -1006
- package/src/services/location/location.spec.js +0 -3792
- package/src/services/location/location.test.js +0 -12
- package/src/services/log/interface.ts +0 -39
- package/src/services/log/log.html +0 -19
- package/src/services/log/log.js +0 -74
- package/src/services/log/log.spec.js +0 -64
- package/src/services/log/log.test.js +0 -12
- package/src/services/pubsub/pubsub.html +0 -19
- package/src/services/pubsub/pubsub.js +0 -349
- package/src/services/pubsub/pubsub.spec.js +0 -400
- package/src/services/pubsub/pubsub.test.js +0 -12
- package/src/services/sce/sce.html +0 -19
- package/src/services/sce/sce.js +0 -852
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/template-cache.html +0 -22
- package/src/services/template-cache/template-cache.js +0 -15
- package/src/services/template-cache/template-cache.spec.js +0 -134
- package/src/services/template-cache/template-cache.test.js +0 -12
- package/src/services/template-request/interface.ts +0 -23
- package/src/services/template-request/template-request.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -365
- package/src/shared/common.spec.js +0 -294
- package/src/shared/constants.js +0 -21
- package/src/shared/dom.js +0 -716
- package/src/shared/hof.js +0 -157
- package/src/shared/hof.spec.js +0 -60
- package/src/shared/interface.ts +0 -21
- package/src/shared/min-err.spec.js +0 -178
- package/src/shared/noderef.js +0 -225
- package/src/shared/predicates.js +0 -34
- package/src/shared/queue.js +0 -105
- package/src/shared/queue.spec.js +0 -80
- package/src/shared/shared.html +0 -24
- package/src/shared/shared.test.js +0 -12
- package/src/shared/strings.js +0 -142
- package/src/shared/strings.spec.js +0 -40
- package/src/shared/test-utils.js +0 -47
- package/src/shared/url-utils/interface.ts +0 -54
- package/src/shared/url-utils/url-utils.html +0 -22
- package/src/shared/url-utils/url-utils.js +0 -122
- package/src/shared/url-utils/url-utils.spec.js +0 -148
- package/src/shared/url-utils/url-utils.test.js +0 -12
- package/src/shared/utils.js +0 -1255
- package/src/shared/utils.spec.js +0 -178
- package/src/src.html +0 -21
- package/src/src.test.js +0 -10
- package/tsconfig.json +0 -19
- package/tsconfig.types.json +0 -14
- package/typedoc.json +0 -8
- package/utils/express.js +0 -203
- package/utils/version.cjs +0 -23
- package/vite.config.js +0 -14
|
@@ -1,915 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getCacheData,
|
|
3
|
-
removeElementData,
|
|
4
|
-
setCacheData,
|
|
5
|
-
} from "../shared/dom.js";
|
|
6
|
-
import { isDefined } from "../shared/utils.js";
|
|
7
|
-
import {
|
|
8
|
-
ACTIVE_CLASS_SUFFIX,
|
|
9
|
-
ADD_CLASS_SUFFIX,
|
|
10
|
-
ANIMATION_DELAY_PROP,
|
|
11
|
-
ANIMATION_DURATION_PROP,
|
|
12
|
-
ANIMATION_ITERATION_COUNT_KEY,
|
|
13
|
-
ANIMATION_PROP,
|
|
14
|
-
ANIMATIONEND_EVENT,
|
|
15
|
-
applyAnimationClassesFactory,
|
|
16
|
-
applyAnimationFromStyles,
|
|
17
|
-
applyAnimationStyles,
|
|
18
|
-
applyAnimationToStyles,
|
|
19
|
-
applyInlineStyle,
|
|
20
|
-
blockKeyframeAnimations,
|
|
21
|
-
DURATION_KEY,
|
|
22
|
-
EVENT_CLASS_PREFIX,
|
|
23
|
-
packageStyles,
|
|
24
|
-
pendClasses,
|
|
25
|
-
prepareAnimationOptions,
|
|
26
|
-
PROPERTY_KEY,
|
|
27
|
-
REMOVE_CLASS_SUFFIX,
|
|
28
|
-
removeFromArray,
|
|
29
|
-
SAFE_FAST_FORWARD_DURATION_VALUE,
|
|
30
|
-
TIMING_KEY,
|
|
31
|
-
TRANSITION_DELAY_PROP,
|
|
32
|
-
TRANSITION_DURATION_PROP,
|
|
33
|
-
TRANSITION_PROP,
|
|
34
|
-
TRANSITIONEND_EVENT,
|
|
35
|
-
} from "./shared.js";
|
|
36
|
-
|
|
37
|
-
const ANIMATE_TIMER_KEY = "$$animateCss";
|
|
38
|
-
|
|
39
|
-
const ONE_SECOND = 1000;
|
|
40
|
-
|
|
41
|
-
const ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;
|
|
42
|
-
const CLOSING_TIME_BUFFER = 1.5;
|
|
43
|
-
|
|
44
|
-
const DETECT_CSS_PROPERTIES = {
|
|
45
|
-
transitionDuration: TRANSITION_DURATION_PROP,
|
|
46
|
-
transitionDelay: TRANSITION_DELAY_PROP,
|
|
47
|
-
transitionProperty: TRANSITION_PROP + PROPERTY_KEY,
|
|
48
|
-
animationDuration: ANIMATION_DURATION_PROP,
|
|
49
|
-
animationDelay: ANIMATION_DELAY_PROP,
|
|
50
|
-
animationIterationCount: ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY,
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
const DETECT_STAGGER_CSS_PROPERTIES = {
|
|
54
|
-
transitionDuration: TRANSITION_DURATION_PROP,
|
|
55
|
-
transitionDelay: TRANSITION_DELAY_PROP,
|
|
56
|
-
animationDuration: ANIMATION_DURATION_PROP,
|
|
57
|
-
animationDelay: ANIMATION_DELAY_PROP,
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
function getCssKeyframeDurationStyle(duration) {
|
|
61
|
-
return [ANIMATION_DURATION_PROP, `${duration}s`];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function getCssDelayStyle(delay, isKeyframeAnimation) {
|
|
65
|
-
const prop = isKeyframeAnimation
|
|
66
|
-
? ANIMATION_DELAY_PROP
|
|
67
|
-
: TRANSITION_DELAY_PROP;
|
|
68
|
-
return [prop, `${delay}s`];
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function computeCssStyles(element, properties) {
|
|
72
|
-
const styles = Object.create(null);
|
|
73
|
-
const detectedStyles = window.getComputedStyle(element) || {};
|
|
74
|
-
Object.entries(properties).forEach(([actualStyleName, formalStyleName]) => {
|
|
75
|
-
let val = detectedStyles[formalStyleName];
|
|
76
|
-
if (val) {
|
|
77
|
-
const c = val.charAt(0);
|
|
78
|
-
|
|
79
|
-
// only numerical-based values have a negative sign or digit as the first value
|
|
80
|
-
if (c === "-" || c === "+" || c >= 0) {
|
|
81
|
-
val = parseMaxTime(val);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// by setting this to null in the event that the delay is not set or is set directly as 0
|
|
85
|
-
// then we can still allow for negative values to be used later on and not mistake this
|
|
86
|
-
// value for being greater than any other negative value.
|
|
87
|
-
if (val === 0) {
|
|
88
|
-
val = null;
|
|
89
|
-
}
|
|
90
|
-
styles[actualStyleName] = val;
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
return styles;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function parseMaxTime(str) {
|
|
98
|
-
let maxValue = 0;
|
|
99
|
-
str.split(/\s*,\s*/).forEach((value) => {
|
|
100
|
-
// it's always safe to consider only second values and omit `ms` values since
|
|
101
|
-
// getComputedStyle will always handle the conversion for us
|
|
102
|
-
if (value.charAt(value.length - 1) === "s") {
|
|
103
|
-
value = value.substring(0, value.length - 1);
|
|
104
|
-
}
|
|
105
|
-
value = parseFloat(value) || 0;
|
|
106
|
-
maxValue = maxValue ? Math.max(value, maxValue) : value;
|
|
107
|
-
});
|
|
108
|
-
return maxValue;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function truthyTimingValue(val) {
|
|
112
|
-
return val === 0 || val != null;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function getCssTransitionDurationStyle(duration, applyOnlyDuration) {
|
|
116
|
-
let style = TRANSITION_PROP;
|
|
117
|
-
let value = `${duration}s`;
|
|
118
|
-
if (applyOnlyDuration) {
|
|
119
|
-
style += DURATION_KEY;
|
|
120
|
-
} else {
|
|
121
|
-
value += " linear all";
|
|
122
|
-
}
|
|
123
|
-
return [style, value];
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// we do not reassign an already present style value since
|
|
127
|
-
// if we detect the style property value again we may be
|
|
128
|
-
// detecting styles that were added via the `from` styles.
|
|
129
|
-
// We make use of `isDefined` here since an empty string
|
|
130
|
-
// or null value (which is what getPropertyValue will return
|
|
131
|
-
// for a non-existing style) will still be marked as a valid
|
|
132
|
-
// value for the style (a falsy value implies that the style
|
|
133
|
-
// is to be removed at the end of the animation). If we had a simple
|
|
134
|
-
// "OR" statement then it would not be enough to catch that.
|
|
135
|
-
function registerRestorableStyles(backup, node, properties) {
|
|
136
|
-
properties.forEach((prop) => {
|
|
137
|
-
backup[prop] = isDefined(backup[prop])
|
|
138
|
-
? backup[prop]
|
|
139
|
-
: node.style.getPropertyValue(prop);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export function AnimateCssProvider() {
|
|
144
|
-
this.$get = [
|
|
145
|
-
"$$AnimateRunner",
|
|
146
|
-
"$$animateCache",
|
|
147
|
-
"$$rAFScheduler",
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
*
|
|
151
|
-
* @param {*} $$AnimateRunner
|
|
152
|
-
* @param {*} $$animateCache
|
|
153
|
-
* @param {import("./raf-scheduler").RafScheduler} $$rAFScheduler
|
|
154
|
-
* @returns
|
|
155
|
-
*/
|
|
156
|
-
function ($$AnimateRunner, $$animateCache, $$rAFScheduler) {
|
|
157
|
-
const applyAnimationClasses = applyAnimationClassesFactory();
|
|
158
|
-
|
|
159
|
-
function computeCachedCssStyles(
|
|
160
|
-
node,
|
|
161
|
-
cacheKey,
|
|
162
|
-
allowNoDuration,
|
|
163
|
-
properties,
|
|
164
|
-
) {
|
|
165
|
-
let timings = $$animateCache.get(cacheKey);
|
|
166
|
-
|
|
167
|
-
if (!timings) {
|
|
168
|
-
timings = computeCssStyles(node, properties);
|
|
169
|
-
if (timings.animationIterationCount === "infinite") {
|
|
170
|
-
timings.animationIterationCount = 1;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// if a css animation has no duration we
|
|
175
|
-
// should mark that so that repeated addClass/removeClass calls are skipped
|
|
176
|
-
const hasDuration =
|
|
177
|
-
allowNoDuration ||
|
|
178
|
-
timings.transitionDuration > 0 ||
|
|
179
|
-
timings.animationDuration > 0;
|
|
180
|
-
|
|
181
|
-
// we keep putting this in multiple times even though the value and the cacheKey are the same
|
|
182
|
-
// because we're keeping an internal tally of how many duplicate animations are detected.
|
|
183
|
-
$$animateCache.put(cacheKey, timings, hasDuration);
|
|
184
|
-
|
|
185
|
-
return timings;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
function computeCachedCssStaggerStyles(
|
|
189
|
-
node,
|
|
190
|
-
className,
|
|
191
|
-
cacheKey,
|
|
192
|
-
properties,
|
|
193
|
-
) {
|
|
194
|
-
let stagger;
|
|
195
|
-
const staggerCacheKey = `stagger-${cacheKey}`;
|
|
196
|
-
|
|
197
|
-
// if we have one or more existing matches of matching elements
|
|
198
|
-
// containing the same parent + CSS styles (which is how cacheKey works)
|
|
199
|
-
// then staggering is possible
|
|
200
|
-
if ($$animateCache.count(cacheKey) > 0) {
|
|
201
|
-
stagger = $$animateCache.get(staggerCacheKey);
|
|
202
|
-
|
|
203
|
-
if (!stagger) {
|
|
204
|
-
const staggerClassName = pendClasses(className, "-stagger");
|
|
205
|
-
|
|
206
|
-
node.className += ` ${staggerClassName}`;
|
|
207
|
-
stagger = computeCssStyles(node, properties);
|
|
208
|
-
|
|
209
|
-
// force the conversion of a null value to zero incase not set
|
|
210
|
-
stagger.animationDuration = Math.max(stagger.animationDuration, 0);
|
|
211
|
-
stagger.transitionDuration = Math.max(
|
|
212
|
-
stagger.transitionDuration,
|
|
213
|
-
0,
|
|
214
|
-
);
|
|
215
|
-
|
|
216
|
-
node.classList.remove(staggerClassName);
|
|
217
|
-
|
|
218
|
-
$$animateCache.put(staggerCacheKey, stagger, true);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return stagger || {};
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
const rafWaitQueue = [];
|
|
226
|
-
function waitUntilQuiet(callback) {
|
|
227
|
-
rafWaitQueue.push(callback);
|
|
228
|
-
$$rAFScheduler.waitUntilQuiet(() => {
|
|
229
|
-
$$animateCache.flush();
|
|
230
|
-
|
|
231
|
-
// DO NOT REMOVE THIS LINE OR REFACTOR OUT THE `pageWidth` variable.
|
|
232
|
-
// the line below will force the browser to perform a repaint so
|
|
233
|
-
// that all the animated elements within the animation frame will
|
|
234
|
-
// be properly updated and drawn on screen. This is required to
|
|
235
|
-
// ensure that the preparation animation is properly flushed so that
|
|
236
|
-
// the active state picks up from there. DO NOT REMOVE THIS LINE.
|
|
237
|
-
// DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH
|
|
238
|
-
// WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND
|
|
239
|
-
// WILL TAKE YEARS AWAY FROM YOUR LIFE.
|
|
240
|
-
|
|
241
|
-
const pageWidth = document.body.offsetWidth + 1;
|
|
242
|
-
|
|
243
|
-
// we use a for loop to ensure that if the queue is changed
|
|
244
|
-
// during this looping then it will consider new requests
|
|
245
|
-
for (let i = 0; i < rafWaitQueue.length; i++) {
|
|
246
|
-
rafWaitQueue[i](pageWidth);
|
|
247
|
-
}
|
|
248
|
-
rafWaitQueue.length = 0;
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
function computeTimings(node, cacheKey, allowNoDuration) {
|
|
253
|
-
const timings = computeCachedCssStyles(
|
|
254
|
-
node,
|
|
255
|
-
cacheKey,
|
|
256
|
-
allowNoDuration,
|
|
257
|
-
DETECT_CSS_PROPERTIES,
|
|
258
|
-
);
|
|
259
|
-
const aD = timings.animationDelay;
|
|
260
|
-
const tD = timings.transitionDelay;
|
|
261
|
-
timings.maxDelay = aD && tD ? Math.max(aD, tD) : aD || tD;
|
|
262
|
-
timings.maxDuration = Math.max(
|
|
263
|
-
timings.animationDuration * timings.animationIterationCount,
|
|
264
|
-
timings.transitionDuration,
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
return timings;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
return function init(element, initialOptions) {
|
|
271
|
-
// all of the animation functions should create
|
|
272
|
-
// a copy of the options data, however, if a
|
|
273
|
-
// parent service has already created a copy then
|
|
274
|
-
let delayStyle;
|
|
275
|
-
// we should stick to using that
|
|
276
|
-
let options = initialOptions || {};
|
|
277
|
-
if (!options.$$prepared) {
|
|
278
|
-
options = prepareAnimationOptions(structuredClone(options));
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
const restoreStyles = {};
|
|
282
|
-
const node = /** @type {HTMLElement} */ (element);
|
|
283
|
-
// Note: this had an additional !$$animateQueue.enabled() check
|
|
284
|
-
if (!node || !node.parentNode) {
|
|
285
|
-
return closeAndReturnNoopAnimator();
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
const temporaryStyles = [];
|
|
289
|
-
const styles = packageStyles(options);
|
|
290
|
-
let animationClosed;
|
|
291
|
-
let animationPaused;
|
|
292
|
-
let animationCompleted;
|
|
293
|
-
let runner;
|
|
294
|
-
let runnerHost;
|
|
295
|
-
let maxDelay;
|
|
296
|
-
let maxDelayTime;
|
|
297
|
-
let maxDuration;
|
|
298
|
-
let maxDurationTime;
|
|
299
|
-
let startTime;
|
|
300
|
-
const events = [];
|
|
301
|
-
|
|
302
|
-
if (options.duration === 0) {
|
|
303
|
-
return closeAndReturnNoopAnimator();
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
const method =
|
|
307
|
-
options.event && Array.isArray(options.event)
|
|
308
|
-
? options.event.join(" ")
|
|
309
|
-
: options.event;
|
|
310
|
-
|
|
311
|
-
const isStructural = method && options.structural;
|
|
312
|
-
let structuralClassName = "";
|
|
313
|
-
let addRemoveClassName = "";
|
|
314
|
-
|
|
315
|
-
if (isStructural) {
|
|
316
|
-
structuralClassName = pendClasses(method, EVENT_CLASS_PREFIX, true);
|
|
317
|
-
} else if (method) {
|
|
318
|
-
structuralClassName = method;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
if (options.addClass) {
|
|
322
|
-
addRemoveClassName += pendClasses(options.addClass, ADD_CLASS_SUFFIX);
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
if (options.removeClass) {
|
|
326
|
-
if (addRemoveClassName.length) {
|
|
327
|
-
addRemoveClassName += " ";
|
|
328
|
-
}
|
|
329
|
-
addRemoveClassName += pendClasses(
|
|
330
|
-
options.removeClass,
|
|
331
|
-
REMOVE_CLASS_SUFFIX,
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// there may be a situation where a structural animation is combined together
|
|
336
|
-
// with CSS classes that need to resolve before the animation is computed.
|
|
337
|
-
// However this means that there is no explicit CSS code to block the animation
|
|
338
|
-
// from happening (by setting 0s none in the class name). If this is the case
|
|
339
|
-
// we need to apply the classes before the first rAF so we know to continue if
|
|
340
|
-
// there actually is a detected transition or keyframe animation
|
|
341
|
-
if (options.applyClassesEarly && addRemoveClassName.length) {
|
|
342
|
-
applyAnimationClasses(element, options);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
let preparationClasses = [structuralClassName, addRemoveClassName]
|
|
346
|
-
.join(" ")
|
|
347
|
-
.trim();
|
|
348
|
-
const hasToStyles = styles.to && Object.keys(styles.to).length > 0;
|
|
349
|
-
const containsKeyframeAnimation =
|
|
350
|
-
(options.keyframeStyle || "").length > 0;
|
|
351
|
-
|
|
352
|
-
// there is no way we can trigger an animation if no styles and
|
|
353
|
-
// no classes are being applied which would then trigger a transition,
|
|
354
|
-
// unless there a is raw keyframe value that is applied to the element.
|
|
355
|
-
if (!containsKeyframeAnimation && !hasToStyles && !preparationClasses) {
|
|
356
|
-
return closeAndReturnNoopAnimator();
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
let stagger;
|
|
360
|
-
let cacheKey = $$animateCache.cacheKey(
|
|
361
|
-
node,
|
|
362
|
-
method,
|
|
363
|
-
options.addClass,
|
|
364
|
-
options.removeClass,
|
|
365
|
-
);
|
|
366
|
-
if ($$animateCache.containsCachedAnimationWithoutDuration(cacheKey)) {
|
|
367
|
-
preparationClasses = null;
|
|
368
|
-
return closeAndReturnNoopAnimator();
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
if (options.stagger > 0) {
|
|
372
|
-
const staggerVal = parseFloat(options.stagger);
|
|
373
|
-
stagger = {
|
|
374
|
-
transitionDelay: staggerVal,
|
|
375
|
-
animationDelay: staggerVal,
|
|
376
|
-
transitionDuration: 0,
|
|
377
|
-
animationDuration: 0,
|
|
378
|
-
};
|
|
379
|
-
} else {
|
|
380
|
-
stagger = computeCachedCssStaggerStyles(
|
|
381
|
-
node,
|
|
382
|
-
preparationClasses,
|
|
383
|
-
cacheKey,
|
|
384
|
-
DETECT_STAGGER_CSS_PROPERTIES,
|
|
385
|
-
);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
if (!options.$$skipPreparationClasses) {
|
|
389
|
-
element.classList.add(
|
|
390
|
-
...preparationClasses.split(" ").filter((x) => x !== ""),
|
|
391
|
-
);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
let applyOnlyDuration;
|
|
395
|
-
|
|
396
|
-
if (options.transitionStyle) {
|
|
397
|
-
const transitionStyle = [TRANSITION_PROP, options.transitionStyle];
|
|
398
|
-
applyInlineStyle(node, transitionStyle);
|
|
399
|
-
temporaryStyles.push(transitionStyle);
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
if (options.duration >= 0) {
|
|
403
|
-
applyOnlyDuration = node.style[TRANSITION_PROP].length > 0;
|
|
404
|
-
const durationStyle = getCssTransitionDurationStyle(
|
|
405
|
-
options.duration,
|
|
406
|
-
applyOnlyDuration,
|
|
407
|
-
);
|
|
408
|
-
|
|
409
|
-
// we set the duration so that it will be picked up by getComputedStyle later
|
|
410
|
-
applyInlineStyle(node, durationStyle);
|
|
411
|
-
|
|
412
|
-
temporaryStyles.push(durationStyle);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
if (options.keyframeStyle) {
|
|
416
|
-
const keyframeStyle = [ANIMATION_PROP, options.keyframeStyle];
|
|
417
|
-
applyInlineStyle(node, keyframeStyle);
|
|
418
|
-
temporaryStyles.push(keyframeStyle);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
const itemIndex = stagger
|
|
422
|
-
? options.staggerIndex >= 0
|
|
423
|
-
? options.staggerIndex
|
|
424
|
-
: $$animateCache.count(cacheKey)
|
|
425
|
-
: 0;
|
|
426
|
-
|
|
427
|
-
const isFirst = itemIndex === 0;
|
|
428
|
-
|
|
429
|
-
// this is a pre-emptive way of forcing the setup classes to be added and applied INSTANTLY
|
|
430
|
-
// without causing any combination of transitions to kick in. By adding a negative delay value
|
|
431
|
-
// it forces the setup class' transition to end immediately. We later then remove the negative
|
|
432
|
-
// transition delay to allow for the transition to naturally do it's thing. The beauty here is
|
|
433
|
-
// that if there is no transition defined then nothing will happen and this will also allow
|
|
434
|
-
// other transitions to be stacked on top of each other without any chopping them out.
|
|
435
|
-
if (isFirst && !options.skipBlocking) {
|
|
436
|
-
blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
let timings = computeTimings(node, cacheKey, !isStructural);
|
|
440
|
-
let relativeDelay = timings.maxDelay;
|
|
441
|
-
maxDelay = Math.max(relativeDelay, 0);
|
|
442
|
-
maxDuration = timings.maxDuration;
|
|
443
|
-
|
|
444
|
-
const flags = {};
|
|
445
|
-
flags.hasTransitions = timings.transitionDuration > 0;
|
|
446
|
-
flags.hasAnimations = timings.animationDuration > 0;
|
|
447
|
-
flags.hasTransitionAll =
|
|
448
|
-
flags.hasTransitions && timings.transitionProperty === "all";
|
|
449
|
-
flags.applyTransitionDuration =
|
|
450
|
-
hasToStyles &&
|
|
451
|
-
((flags.hasTransitions && !flags.hasTransitionAll) ||
|
|
452
|
-
(flags.hasAnimations && !flags.hasTransitions));
|
|
453
|
-
flags.applyAnimationDuration = options.duration && flags.hasAnimations;
|
|
454
|
-
flags.applyTransitionDelay =
|
|
455
|
-
truthyTimingValue(options.delay) &&
|
|
456
|
-
(flags.applyTransitionDuration || flags.hasTransitions);
|
|
457
|
-
flags.applyAnimationDelay =
|
|
458
|
-
truthyTimingValue(options.delay) && flags.hasAnimations;
|
|
459
|
-
flags.recalculateTimingStyles = addRemoveClassName.length > 0;
|
|
460
|
-
|
|
461
|
-
if (flags.applyTransitionDuration || flags.applyAnimationDuration) {
|
|
462
|
-
maxDuration = options.duration
|
|
463
|
-
? parseFloat(options.duration)
|
|
464
|
-
: maxDuration;
|
|
465
|
-
|
|
466
|
-
if (flags.applyTransitionDuration) {
|
|
467
|
-
flags.hasTransitions = true;
|
|
468
|
-
timings.transitionDuration = maxDuration;
|
|
469
|
-
applyOnlyDuration =
|
|
470
|
-
node.style[TRANSITION_PROP + PROPERTY_KEY].length > 0;
|
|
471
|
-
temporaryStyles.push(
|
|
472
|
-
getCssTransitionDurationStyle(maxDuration, applyOnlyDuration),
|
|
473
|
-
);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
if (flags.applyAnimationDuration) {
|
|
477
|
-
flags.hasAnimations = true;
|
|
478
|
-
timings.animationDuration = maxDuration;
|
|
479
|
-
temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration));
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
if (maxDuration === 0 && !flags.recalculateTimingStyles) {
|
|
484
|
-
return closeAndReturnNoopAnimator();
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
let activeClasses = pendClasses(
|
|
488
|
-
preparationClasses,
|
|
489
|
-
ACTIVE_CLASS_SUFFIX,
|
|
490
|
-
);
|
|
491
|
-
|
|
492
|
-
if (options.delay != null) {
|
|
493
|
-
if (typeof options.delay !== "boolean") {
|
|
494
|
-
delayStyle = parseFloat(options.delay);
|
|
495
|
-
// number in options.delay means we have to recalculate the delay for the closing timeout
|
|
496
|
-
maxDelay = Math.max(delayStyle, 0);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
if (flags.applyTransitionDelay) {
|
|
500
|
-
temporaryStyles.push(getCssDelayStyle(delayStyle));
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
if (flags.applyAnimationDelay) {
|
|
504
|
-
temporaryStyles.push(getCssDelayStyle(delayStyle, true));
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
// we need to recalculate the delay value since we used a pre-emptive negative
|
|
509
|
-
// delay value and the delay value is required for the final event checking. This
|
|
510
|
-
// property will ensure that this will happen after the RAF phase has passed.
|
|
511
|
-
if (options.duration == null && timings.transitionDuration > 0) {
|
|
512
|
-
flags.recalculateTimingStyles =
|
|
513
|
-
flags.recalculateTimingStyles || isFirst;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
maxDelayTime = maxDelay * ONE_SECOND;
|
|
517
|
-
maxDurationTime = maxDuration * ONE_SECOND;
|
|
518
|
-
if (!options.skipBlocking) {
|
|
519
|
-
flags.blockTransition = timings.transitionDuration > 0;
|
|
520
|
-
flags.blockKeyframeAnimation =
|
|
521
|
-
timings.animationDuration > 0 &&
|
|
522
|
-
stagger.animationDelay > 0 &&
|
|
523
|
-
stagger.animationDuration === 0;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
if (options.from) {
|
|
527
|
-
if (options.cleanupStyles) {
|
|
528
|
-
registerRestorableStyles(
|
|
529
|
-
restoreStyles,
|
|
530
|
-
node,
|
|
531
|
-
Object.keys(options.from),
|
|
532
|
-
);
|
|
533
|
-
}
|
|
534
|
-
applyAnimationFromStyles(element, options);
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
if (flags.blockTransition || flags.blockKeyframeAnimation) {
|
|
538
|
-
applyBlocking(maxDuration);
|
|
539
|
-
} else if (!options.skipBlocking) {
|
|
540
|
-
blockTransitions(node, false);
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
// TODO(matsko): for 1.5 change this code to have an animator object for better debugging
|
|
544
|
-
return {
|
|
545
|
-
$$willAnimate: true,
|
|
546
|
-
end: endFn,
|
|
547
|
-
start() {
|
|
548
|
-
if (animationClosed) return;
|
|
549
|
-
|
|
550
|
-
runnerHost = {
|
|
551
|
-
end: endFn,
|
|
552
|
-
cancel: cancelFn,
|
|
553
|
-
resume: null, // this will be set during the start() phase
|
|
554
|
-
pause: null,
|
|
555
|
-
};
|
|
556
|
-
|
|
557
|
-
runner = new $$AnimateRunner(runnerHost);
|
|
558
|
-
|
|
559
|
-
waitUntilQuiet(start);
|
|
560
|
-
|
|
561
|
-
// we don't have access to pause/resume the animation
|
|
562
|
-
// since it hasn't run yet. AnimateRunner will therefore
|
|
563
|
-
// set noop functions for resume and pause and they will
|
|
564
|
-
// later be overridden once the animation is triggered
|
|
565
|
-
return runner;
|
|
566
|
-
},
|
|
567
|
-
};
|
|
568
|
-
|
|
569
|
-
function endFn() {
|
|
570
|
-
close();
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
function cancelFn() {
|
|
574
|
-
close(true);
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
function close(rejected) {
|
|
578
|
-
// if the promise has been called already then we shouldn't close
|
|
579
|
-
// the animation again
|
|
580
|
-
if (animationClosed || (animationCompleted && animationPaused))
|
|
581
|
-
return;
|
|
582
|
-
animationClosed = true;
|
|
583
|
-
animationPaused = false;
|
|
584
|
-
|
|
585
|
-
if (preparationClasses && !options.$$skipPreparationClasses) {
|
|
586
|
-
element.classList.remove(...preparationClasses.split(" "));
|
|
587
|
-
}
|
|
588
|
-
activeClasses = pendClasses(preparationClasses, ACTIVE_CLASS_SUFFIX);
|
|
589
|
-
if (activeClasses) {
|
|
590
|
-
element.classList.remove(...activeClasses.split(" "));
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
blockKeyframeAnimations(node, false);
|
|
594
|
-
blockTransitions(node, false);
|
|
595
|
-
|
|
596
|
-
temporaryStyles.forEach((entry) => {
|
|
597
|
-
// There is only one way to remove inline style properties entirely from elements.
|
|
598
|
-
// By using `removeProperty` this works, but we need to convert camel-cased CSS
|
|
599
|
-
// styles down to hyphenated values.
|
|
600
|
-
node.style[entry[0]] = "";
|
|
601
|
-
});
|
|
602
|
-
|
|
603
|
-
applyAnimationClasses(element, options);
|
|
604
|
-
applyAnimationStyles(element, options);
|
|
605
|
-
|
|
606
|
-
if (Object.keys(restoreStyles).length) {
|
|
607
|
-
Object.entries(restoreStyles).forEach(([prop, value]) => {
|
|
608
|
-
if (value) {
|
|
609
|
-
node.style.setProperty(prop, value);
|
|
610
|
-
} else {
|
|
611
|
-
node.style.removeProperty(prop);
|
|
612
|
-
}
|
|
613
|
-
});
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
// the reason why we have this option is to allow a synchronous closing callback
|
|
617
|
-
// that is fired as SOON as the animation ends (when the CSS is removed) or if
|
|
618
|
-
// the animation never takes off at all. A good example is a leave animation since
|
|
619
|
-
// the element must be removed just after the animation is over or else the element
|
|
620
|
-
// will appear on screen for one animation frame causing an overbearing flicker.
|
|
621
|
-
if (options.onDone) {
|
|
622
|
-
options.onDone();
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
if (events && events.length) {
|
|
626
|
-
// Remove the transitionend / animationend listener(s)
|
|
627
|
-
element.off(events.join(" "), onAnimationProgress);
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
// Cancel the fallback closing timeout and remove the timer data
|
|
631
|
-
const animationTimerData = getCacheData(element, ANIMATE_TIMER_KEY);
|
|
632
|
-
if (animationTimerData) {
|
|
633
|
-
clearTimeout(animationTimerData[0].timer);
|
|
634
|
-
removeElementData(element, ANIMATE_TIMER_KEY);
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
// if the preparation function fails then the promise is not setup
|
|
638
|
-
if (runner) {
|
|
639
|
-
runner.complete(!rejected);
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
function applyBlocking(duration) {
|
|
644
|
-
if (flags.blockTransition) {
|
|
645
|
-
blockTransitions(node, duration);
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
if (flags.blockKeyframeAnimation) {
|
|
649
|
-
blockKeyframeAnimations(node, !!duration);
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
function closeAndReturnNoopAnimator() {
|
|
654
|
-
runner = new $$AnimateRunner({
|
|
655
|
-
end: endFn,
|
|
656
|
-
cancel: cancelFn,
|
|
657
|
-
});
|
|
658
|
-
|
|
659
|
-
// should flush the cache animation
|
|
660
|
-
waitUntilQuiet(() => {});
|
|
661
|
-
close();
|
|
662
|
-
|
|
663
|
-
return {
|
|
664
|
-
$$willAnimate: false,
|
|
665
|
-
start() {
|
|
666
|
-
return runner;
|
|
667
|
-
},
|
|
668
|
-
end: endFn,
|
|
669
|
-
};
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
function onAnimationProgress(event) {
|
|
673
|
-
event.stopPropagation();
|
|
674
|
-
const ev = event.originalEvent || event;
|
|
675
|
-
|
|
676
|
-
if (ev.target !== node) {
|
|
677
|
-
// Since TransitionEvent / AnimationEvent bubble up,
|
|
678
|
-
// we have to ignore events by finished child animations
|
|
679
|
-
return;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
// we now always use `Date.now()` due to the recent changes with
|
|
683
|
-
// event.timeStamp in Firefox, Webkit and Chrome (see #13494 for more info)
|
|
684
|
-
const timeStamp = ev.$manualTimeStamp || Date.now();
|
|
685
|
-
|
|
686
|
-
/* Firefox (or possibly just Gecko) likes to not round values up
|
|
687
|
-
* when a ms measurement is used for the animation */
|
|
688
|
-
const elapsedTime = parseFloat(
|
|
689
|
-
ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES),
|
|
690
|
-
);
|
|
691
|
-
|
|
692
|
-
/* $manualTimeStamp is a mocked timeStamp value which is set
|
|
693
|
-
* within browserTrigger(). This is only here so that tests can
|
|
694
|
-
* mock animations properly. Real events fallback to event.timeStamp,
|
|
695
|
-
* or, if they don't, then a timeStamp is automatically created for them.
|
|
696
|
-
* We're checking to see if the timeStamp surpasses the expected delay,
|
|
697
|
-
* but we're using elapsedTime instead of the timeStamp on the 2nd
|
|
698
|
-
* pre-condition since animationPauseds sometimes close off early */
|
|
699
|
-
if (
|
|
700
|
-
Math.max(timeStamp - startTime, 0) >= maxDelayTime &&
|
|
701
|
-
elapsedTime >= maxDuration
|
|
702
|
-
) {
|
|
703
|
-
// we set this flag to ensure that if the transition is paused then, when resumed,
|
|
704
|
-
// the animation will automatically close itself since transitions cannot be paused.
|
|
705
|
-
animationCompleted = true;
|
|
706
|
-
close();
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
function start() {
|
|
711
|
-
if (animationClosed) return;
|
|
712
|
-
if (!node.parentNode) {
|
|
713
|
-
close();
|
|
714
|
-
return;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
// even though we only pause keyframe animations here the pause flag
|
|
718
|
-
// will still happen when transitions are used. Only the transition will
|
|
719
|
-
// not be paused since that is not possible. If the animation ends when
|
|
720
|
-
// paused then it will not complete until unpaused or cancelled.
|
|
721
|
-
const playPause = function (playAnimation) {
|
|
722
|
-
if (!animationCompleted) {
|
|
723
|
-
animationPaused = !playAnimation;
|
|
724
|
-
if (timings.animationDuration) {
|
|
725
|
-
const value = blockKeyframeAnimations(node, animationPaused);
|
|
726
|
-
if (animationPaused) {
|
|
727
|
-
temporaryStyles.push(value);
|
|
728
|
-
} else {
|
|
729
|
-
removeFromArray(temporaryStyles, value);
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
} else if (animationPaused && playAnimation) {
|
|
733
|
-
animationPaused = false;
|
|
734
|
-
close();
|
|
735
|
-
}
|
|
736
|
-
};
|
|
737
|
-
|
|
738
|
-
// checking the stagger duration prevents an accidentally cascade of the CSS delay style
|
|
739
|
-
// being inherited from the parent. If the transition duration is zero then we can safely
|
|
740
|
-
// rely that the delay value is an intentional stagger delay style.
|
|
741
|
-
const maxStagger =
|
|
742
|
-
itemIndex > 0 &&
|
|
743
|
-
((timings.transitionDuration && stagger.transitionDuration === 0) ||
|
|
744
|
-
(timings.animationDuration && stagger.animationDuration === 0)) &&
|
|
745
|
-
Math.max(stagger.animationDelay, stagger.transitionDelay);
|
|
746
|
-
if (maxStagger) {
|
|
747
|
-
setTimeout(
|
|
748
|
-
triggerAnimationStart,
|
|
749
|
-
Math.floor(maxStagger * itemIndex * ONE_SECOND),
|
|
750
|
-
false,
|
|
751
|
-
);
|
|
752
|
-
} else {
|
|
753
|
-
triggerAnimationStart();
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
// this will decorate the existing promise runner with pause/resume methods
|
|
757
|
-
runnerHost.resume = function () {
|
|
758
|
-
playPause(true);
|
|
759
|
-
};
|
|
760
|
-
|
|
761
|
-
runnerHost.pause = function () {
|
|
762
|
-
playPause(false);
|
|
763
|
-
};
|
|
764
|
-
|
|
765
|
-
function triggerAnimationStart() {
|
|
766
|
-
// just incase a stagger animation kicks in when the animation
|
|
767
|
-
// itself was cancelled entirely
|
|
768
|
-
if (animationClosed) return;
|
|
769
|
-
|
|
770
|
-
applyBlocking(false);
|
|
771
|
-
|
|
772
|
-
temporaryStyles.forEach((entry) => {
|
|
773
|
-
const key = entry[0];
|
|
774
|
-
node.style[key] = entry[1];
|
|
775
|
-
});
|
|
776
|
-
|
|
777
|
-
applyAnimationClasses(element, options);
|
|
778
|
-
element.classList.add(
|
|
779
|
-
...activeClasses.split(" ").filter((x) => x !== ""),
|
|
780
|
-
);
|
|
781
|
-
if (flags.recalculateTimingStyles) {
|
|
782
|
-
cacheKey = $$animateCache.cacheKey(
|
|
783
|
-
node,
|
|
784
|
-
method,
|
|
785
|
-
options.addClass,
|
|
786
|
-
options.removeClass,
|
|
787
|
-
);
|
|
788
|
-
|
|
789
|
-
timings = computeTimings(node, cacheKey, false);
|
|
790
|
-
relativeDelay = timings.maxDelay;
|
|
791
|
-
maxDelay = Math.max(relativeDelay, 0);
|
|
792
|
-
maxDuration = timings.maxDuration;
|
|
793
|
-
|
|
794
|
-
if (maxDuration === 0) {
|
|
795
|
-
close();
|
|
796
|
-
return;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
flags.hasTransitions = timings.transitionDuration > 0;
|
|
800
|
-
flags.hasAnimations = timings.animationDuration > 0;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
if (flags.applyAnimationDelay) {
|
|
804
|
-
relativeDelay =
|
|
805
|
-
typeof options.delay !== "boolean" &&
|
|
806
|
-
truthyTimingValue(options.delay)
|
|
807
|
-
? parseFloat(options.delay)
|
|
808
|
-
: relativeDelay;
|
|
809
|
-
|
|
810
|
-
maxDelay = Math.max(relativeDelay, 0);
|
|
811
|
-
timings.animationDelay = relativeDelay;
|
|
812
|
-
delayStyle = getCssDelayStyle(relativeDelay, true);
|
|
813
|
-
temporaryStyles.push(delayStyle);
|
|
814
|
-
node.style[delayStyle[0]] = delayStyle[1];
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
maxDelayTime = maxDelay * ONE_SECOND;
|
|
818
|
-
maxDurationTime = maxDuration * ONE_SECOND;
|
|
819
|
-
|
|
820
|
-
if (options.easing) {
|
|
821
|
-
let easeProp;
|
|
822
|
-
const easeVal = options.easing;
|
|
823
|
-
if (flags.hasTransitions) {
|
|
824
|
-
easeProp = TRANSITION_PROP + TIMING_KEY;
|
|
825
|
-
temporaryStyles.push([easeProp, easeVal]);
|
|
826
|
-
node.style[easeProp] = easeVal;
|
|
827
|
-
}
|
|
828
|
-
if (flags.hasAnimations) {
|
|
829
|
-
easeProp = ANIMATION_PROP + TIMING_KEY;
|
|
830
|
-
temporaryStyles.push([easeProp, easeVal]);
|
|
831
|
-
node.style[easeProp] = easeVal;
|
|
832
|
-
}
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
if (timings.transitionDuration) {
|
|
836
|
-
events.push(TRANSITIONEND_EVENT);
|
|
837
|
-
}
|
|
838
|
-
|
|
839
|
-
if (timings.animationDuration) {
|
|
840
|
-
events.push(ANIMATIONEND_EVENT);
|
|
841
|
-
}
|
|
842
|
-
|
|
843
|
-
startTime = Date.now();
|
|
844
|
-
const timerTime =
|
|
845
|
-
maxDelayTime + CLOSING_TIME_BUFFER * maxDurationTime;
|
|
846
|
-
const endTime = startTime + timerTime;
|
|
847
|
-
|
|
848
|
-
const animationsData =
|
|
849
|
-
getCacheData(element, ANIMATE_TIMER_KEY) || [];
|
|
850
|
-
let setupFallbackTimer = true;
|
|
851
|
-
if (animationsData.length) {
|
|
852
|
-
const currentTimerData = animationsData[0];
|
|
853
|
-
setupFallbackTimer = endTime > currentTimerData.expectedEndTime;
|
|
854
|
-
if (setupFallbackTimer) {
|
|
855
|
-
clearTimeout(currentTimerData.timer);
|
|
856
|
-
} else {
|
|
857
|
-
animationsData.push(close);
|
|
858
|
-
}
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
if (setupFallbackTimer) {
|
|
862
|
-
const timer = setTimeout(onAnimationExpired, timerTime, false);
|
|
863
|
-
animationsData[0] = {
|
|
864
|
-
timer,
|
|
865
|
-
expectedEndTime: endTime,
|
|
866
|
-
};
|
|
867
|
-
animationsData.push(close);
|
|
868
|
-
setCacheData(element, ANIMATE_TIMER_KEY, animationsData);
|
|
869
|
-
}
|
|
870
|
-
|
|
871
|
-
if (events.length) {
|
|
872
|
-
events.forEach((x) => {
|
|
873
|
-
element.addEventListener(x, onAnimationProgress);
|
|
874
|
-
});
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
if (options.to) {
|
|
878
|
-
if (options.cleanupStyles) {
|
|
879
|
-
registerRestorableStyles(
|
|
880
|
-
restoreStyles,
|
|
881
|
-
node,
|
|
882
|
-
Object.keys(options.to),
|
|
883
|
-
);
|
|
884
|
-
}
|
|
885
|
-
applyAnimationToStyles(element, options);
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
function onAnimationExpired() {
|
|
890
|
-
const animationsData = getCacheData(element, ANIMATE_TIMER_KEY);
|
|
891
|
-
|
|
892
|
-
// this will be false in the event that the element was
|
|
893
|
-
// removed from the DOM (via a leave animation or something
|
|
894
|
-
// similar)
|
|
895
|
-
if (animationsData) {
|
|
896
|
-
for (let i = 1; i < animationsData.length; i++) {
|
|
897
|
-
animationsData[i]();
|
|
898
|
-
}
|
|
899
|
-
removeElementData(element, ANIMATE_TIMER_KEY);
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
}
|
|
903
|
-
};
|
|
904
|
-
},
|
|
905
|
-
];
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
function blockTransitions(node, duration) {
|
|
909
|
-
// we use a negative delay value since it performs blocking
|
|
910
|
-
// yet it doesn't kill any existing transitions running on the
|
|
911
|
-
// same element which makes this safe for class-based animations
|
|
912
|
-
const value = duration ? `-${duration}s` : "";
|
|
913
|
-
applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);
|
|
914
|
-
return [TRANSITION_DELAY_PROP, value];
|
|
915
|
-
}
|