You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
523 lines
12 KiB
523 lines
12 KiB
import {
|
|
DOCUMENT
|
|
} from "./chunk-OSQBUYO6.js";
|
|
import {
|
|
ANIMATION_MODULE_TYPE,
|
|
Inject,
|
|
Injectable,
|
|
RendererFactory2,
|
|
RuntimeError,
|
|
ViewEncapsulation$1,
|
|
inject,
|
|
setClassMetadata,
|
|
ɵɵdefineInjectable,
|
|
ɵɵinject
|
|
} from "./chunk-FGESKT7O.js";
|
|
|
|
// node_modules/@angular/animations/fesm2022/animations.mjs
|
|
var AUTO_STYLE = "*";
|
|
function trigger(name, definitions) {
|
|
return {
|
|
type: 7,
|
|
name,
|
|
definitions,
|
|
options: {}
|
|
};
|
|
}
|
|
function animate(timings, styles = null) {
|
|
return {
|
|
type: 4,
|
|
styles,
|
|
timings
|
|
};
|
|
}
|
|
function group(steps, options = null) {
|
|
return {
|
|
type: 3,
|
|
steps,
|
|
options
|
|
};
|
|
}
|
|
function sequence(steps, options = null) {
|
|
return {
|
|
type: 2,
|
|
steps,
|
|
options
|
|
};
|
|
}
|
|
function style(tokens) {
|
|
return {
|
|
type: 6,
|
|
styles: tokens,
|
|
offset: null
|
|
};
|
|
}
|
|
function state(name, styles, options) {
|
|
return {
|
|
type: 0,
|
|
name,
|
|
styles,
|
|
options
|
|
};
|
|
}
|
|
function keyframes(steps) {
|
|
return {
|
|
type: 5,
|
|
steps
|
|
};
|
|
}
|
|
function transition(stateChangeExpr, steps, options = null) {
|
|
return {
|
|
type: 1,
|
|
expr: stateChangeExpr,
|
|
animation: steps,
|
|
options
|
|
};
|
|
}
|
|
function animation(steps, options = null) {
|
|
return {
|
|
type: 8,
|
|
animation: steps,
|
|
options
|
|
};
|
|
}
|
|
function animateChild(options = null) {
|
|
return {
|
|
type: 9,
|
|
options
|
|
};
|
|
}
|
|
function useAnimation(animation2, options = null) {
|
|
return {
|
|
type: 10,
|
|
animation: animation2,
|
|
options
|
|
};
|
|
}
|
|
function query(selector, animation2, options = null) {
|
|
return {
|
|
type: 11,
|
|
selector,
|
|
animation: animation2,
|
|
options
|
|
};
|
|
}
|
|
function stagger(timings, animation2) {
|
|
return {
|
|
type: 12,
|
|
timings,
|
|
animation: animation2
|
|
};
|
|
}
|
|
var _AnimationBuilder = class _AnimationBuilder {
|
|
};
|
|
_AnimationBuilder.ɵfac = function AnimationBuilder_Factory(t) {
|
|
return new (t || _AnimationBuilder)();
|
|
};
|
|
_AnimationBuilder.ɵprov = ɵɵdefineInjectable({
|
|
token: _AnimationBuilder,
|
|
factory: () => (() => inject(BrowserAnimationBuilder))(),
|
|
providedIn: "root"
|
|
});
|
|
var AnimationBuilder = _AnimationBuilder;
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AnimationBuilder, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root",
|
|
useFactory: () => inject(BrowserAnimationBuilder)
|
|
}]
|
|
}], null, null);
|
|
})();
|
|
var AnimationFactory = class {
|
|
};
|
|
var _BrowserAnimationBuilder = class _BrowserAnimationBuilder extends AnimationBuilder {
|
|
constructor(rootRenderer, doc) {
|
|
super();
|
|
this.animationModuleType = inject(ANIMATION_MODULE_TYPE, {
|
|
optional: true
|
|
});
|
|
this._nextAnimationId = 0;
|
|
const typeData = {
|
|
id: "0",
|
|
encapsulation: ViewEncapsulation$1.None,
|
|
styles: [],
|
|
data: {
|
|
animation: []
|
|
}
|
|
};
|
|
this._renderer = rootRenderer.createRenderer(doc.body, typeData);
|
|
if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {
|
|
throw new RuntimeError(3600, (typeof ngDevMode === "undefined" || ngDevMode) && "Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function.");
|
|
}
|
|
}
|
|
build(animation2) {
|
|
const id = this._nextAnimationId;
|
|
this._nextAnimationId++;
|
|
const entry = Array.isArray(animation2) ? sequence(animation2) : animation2;
|
|
issueAnimationCommand(this._renderer, null, id, "register", [entry]);
|
|
return new BrowserAnimationFactory(id, this._renderer);
|
|
}
|
|
};
|
|
_BrowserAnimationBuilder.ɵfac = function BrowserAnimationBuilder_Factory(t) {
|
|
return new (t || _BrowserAnimationBuilder)(ɵɵinject(RendererFactory2), ɵɵinject(DOCUMENT));
|
|
};
|
|
_BrowserAnimationBuilder.ɵprov = ɵɵdefineInjectable({
|
|
token: _BrowserAnimationBuilder,
|
|
factory: _BrowserAnimationBuilder.ɵfac,
|
|
providedIn: "root"
|
|
});
|
|
var BrowserAnimationBuilder = _BrowserAnimationBuilder;
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BrowserAnimationBuilder, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root"
|
|
}]
|
|
}], () => [{
|
|
type: RendererFactory2
|
|
}, {
|
|
type: Document,
|
|
decorators: [{
|
|
type: Inject,
|
|
args: [DOCUMENT]
|
|
}]
|
|
}], null);
|
|
})();
|
|
var BrowserAnimationFactory = class extends AnimationFactory {
|
|
constructor(_id, _renderer) {
|
|
super();
|
|
this._id = _id;
|
|
this._renderer = _renderer;
|
|
}
|
|
create(element, options) {
|
|
return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);
|
|
}
|
|
};
|
|
var RendererAnimationPlayer = class {
|
|
constructor(id, element, options, _renderer) {
|
|
this.id = id;
|
|
this.element = element;
|
|
this._renderer = _renderer;
|
|
this.parentPlayer = null;
|
|
this._started = false;
|
|
this.totalTime = 0;
|
|
this._command("create", options);
|
|
}
|
|
_listen(eventName, callback) {
|
|
return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);
|
|
}
|
|
_command(command, ...args) {
|
|
issueAnimationCommand(this._renderer, this.element, this.id, command, args);
|
|
}
|
|
onDone(fn) {
|
|
this._listen("done", fn);
|
|
}
|
|
onStart(fn) {
|
|
this._listen("start", fn);
|
|
}
|
|
onDestroy(fn) {
|
|
this._listen("destroy", fn);
|
|
}
|
|
init() {
|
|
this._command("init");
|
|
}
|
|
hasStarted() {
|
|
return this._started;
|
|
}
|
|
play() {
|
|
this._command("play");
|
|
this._started = true;
|
|
}
|
|
pause() {
|
|
this._command("pause");
|
|
}
|
|
restart() {
|
|
this._command("restart");
|
|
}
|
|
finish() {
|
|
this._command("finish");
|
|
}
|
|
destroy() {
|
|
this._command("destroy");
|
|
}
|
|
reset() {
|
|
this._command("reset");
|
|
this._started = false;
|
|
}
|
|
setPosition(p) {
|
|
this._command("setPosition", p);
|
|
}
|
|
getPosition() {
|
|
return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;
|
|
}
|
|
};
|
|
function issueAnimationCommand(renderer, element, id, command, args) {
|
|
renderer.setProperty(element, `@@${id}:${command}`, args);
|
|
}
|
|
function unwrapAnimationRenderer(renderer) {
|
|
const type = renderer.ɵtype;
|
|
if (type === 0) {
|
|
return renderer;
|
|
} else if (type === 1) {
|
|
return renderer.animationRenderer;
|
|
}
|
|
return null;
|
|
}
|
|
function isAnimationRenderer(renderer) {
|
|
const type = renderer.ɵtype;
|
|
return type === 0 || type === 1;
|
|
}
|
|
var NoopAnimationPlayer = class {
|
|
constructor(duration = 0, delay = 0) {
|
|
this._onDoneFns = [];
|
|
this._onStartFns = [];
|
|
this._onDestroyFns = [];
|
|
this._originalOnDoneFns = [];
|
|
this._originalOnStartFns = [];
|
|
this._started = false;
|
|
this._destroyed = false;
|
|
this._finished = false;
|
|
this._position = 0;
|
|
this.parentPlayer = null;
|
|
this.totalTime = duration + delay;
|
|
}
|
|
_onFinish() {
|
|
if (!this._finished) {
|
|
this._finished = true;
|
|
this._onDoneFns.forEach((fn) => fn());
|
|
this._onDoneFns = [];
|
|
}
|
|
}
|
|
onStart(fn) {
|
|
this._originalOnStartFns.push(fn);
|
|
this._onStartFns.push(fn);
|
|
}
|
|
onDone(fn) {
|
|
this._originalOnDoneFns.push(fn);
|
|
this._onDoneFns.push(fn);
|
|
}
|
|
onDestroy(fn) {
|
|
this._onDestroyFns.push(fn);
|
|
}
|
|
hasStarted() {
|
|
return this._started;
|
|
}
|
|
init() {
|
|
}
|
|
play() {
|
|
if (!this.hasStarted()) {
|
|
this._onStart();
|
|
this.triggerMicrotask();
|
|
}
|
|
this._started = true;
|
|
}
|
|
/** @internal */
|
|
triggerMicrotask() {
|
|
queueMicrotask(() => this._onFinish());
|
|
}
|
|
_onStart() {
|
|
this._onStartFns.forEach((fn) => fn());
|
|
this._onStartFns = [];
|
|
}
|
|
pause() {
|
|
}
|
|
restart() {
|
|
}
|
|
finish() {
|
|
this._onFinish();
|
|
}
|
|
destroy() {
|
|
if (!this._destroyed) {
|
|
this._destroyed = true;
|
|
if (!this.hasStarted()) {
|
|
this._onStart();
|
|
}
|
|
this.finish();
|
|
this._onDestroyFns.forEach((fn) => fn());
|
|
this._onDestroyFns = [];
|
|
}
|
|
}
|
|
reset() {
|
|
this._started = false;
|
|
this._finished = false;
|
|
this._onStartFns = this._originalOnStartFns;
|
|
this._onDoneFns = this._originalOnDoneFns;
|
|
}
|
|
setPosition(position) {
|
|
this._position = this.totalTime ? position * this.totalTime : 1;
|
|
}
|
|
getPosition() {
|
|
return this.totalTime ? this._position / this.totalTime : 1;
|
|
}
|
|
/** @internal */
|
|
triggerCallback(phaseName) {
|
|
const methods = phaseName == "start" ? this._onStartFns : this._onDoneFns;
|
|
methods.forEach((fn) => fn());
|
|
methods.length = 0;
|
|
}
|
|
};
|
|
var AnimationGroupPlayer = class {
|
|
constructor(_players) {
|
|
this._onDoneFns = [];
|
|
this._onStartFns = [];
|
|
this._finished = false;
|
|
this._started = false;
|
|
this._destroyed = false;
|
|
this._onDestroyFns = [];
|
|
this.parentPlayer = null;
|
|
this.totalTime = 0;
|
|
this.players = _players;
|
|
let doneCount = 0;
|
|
let destroyCount = 0;
|
|
let startCount = 0;
|
|
const total = this.players.length;
|
|
if (total == 0) {
|
|
queueMicrotask(() => this._onFinish());
|
|
} else {
|
|
this.players.forEach((player) => {
|
|
player.onDone(() => {
|
|
if (++doneCount == total) {
|
|
this._onFinish();
|
|
}
|
|
});
|
|
player.onDestroy(() => {
|
|
if (++destroyCount == total) {
|
|
this._onDestroy();
|
|
}
|
|
});
|
|
player.onStart(() => {
|
|
if (++startCount == total) {
|
|
this._onStart();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);
|
|
}
|
|
_onFinish() {
|
|
if (!this._finished) {
|
|
this._finished = true;
|
|
this._onDoneFns.forEach((fn) => fn());
|
|
this._onDoneFns = [];
|
|
}
|
|
}
|
|
init() {
|
|
this.players.forEach((player) => player.init());
|
|
}
|
|
onStart(fn) {
|
|
this._onStartFns.push(fn);
|
|
}
|
|
_onStart() {
|
|
if (!this.hasStarted()) {
|
|
this._started = true;
|
|
this._onStartFns.forEach((fn) => fn());
|
|
this._onStartFns = [];
|
|
}
|
|
}
|
|
onDone(fn) {
|
|
this._onDoneFns.push(fn);
|
|
}
|
|
onDestroy(fn) {
|
|
this._onDestroyFns.push(fn);
|
|
}
|
|
hasStarted() {
|
|
return this._started;
|
|
}
|
|
play() {
|
|
if (!this.parentPlayer) {
|
|
this.init();
|
|
}
|
|
this._onStart();
|
|
this.players.forEach((player) => player.play());
|
|
}
|
|
pause() {
|
|
this.players.forEach((player) => player.pause());
|
|
}
|
|
restart() {
|
|
this.players.forEach((player) => player.restart());
|
|
}
|
|
finish() {
|
|
this._onFinish();
|
|
this.players.forEach((player) => player.finish());
|
|
}
|
|
destroy() {
|
|
this._onDestroy();
|
|
}
|
|
_onDestroy() {
|
|
if (!this._destroyed) {
|
|
this._destroyed = true;
|
|
this._onFinish();
|
|
this.players.forEach((player) => player.destroy());
|
|
this._onDestroyFns.forEach((fn) => fn());
|
|
this._onDestroyFns = [];
|
|
}
|
|
}
|
|
reset() {
|
|
this.players.forEach((player) => player.reset());
|
|
this._destroyed = false;
|
|
this._finished = false;
|
|
this._started = false;
|
|
}
|
|
setPosition(p) {
|
|
const timeAtPosition = p * this.totalTime;
|
|
this.players.forEach((player) => {
|
|
const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;
|
|
player.setPosition(position);
|
|
});
|
|
}
|
|
getPosition() {
|
|
const longestPlayer = this.players.reduce((longestSoFar, player) => {
|
|
const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;
|
|
return newPlayerIsLongest ? player : longestSoFar;
|
|
}, null);
|
|
return longestPlayer != null ? longestPlayer.getPosition() : 0;
|
|
}
|
|
beforeDestroy() {
|
|
this.players.forEach((player) => {
|
|
if (player.beforeDestroy) {
|
|
player.beforeDestroy();
|
|
}
|
|
});
|
|
}
|
|
/** @internal */
|
|
triggerCallback(phaseName) {
|
|
const methods = phaseName == "start" ? this._onStartFns : this._onDoneFns;
|
|
methods.forEach((fn) => fn());
|
|
methods.length = 0;
|
|
}
|
|
};
|
|
var ɵPRE_STYLE = "!";
|
|
|
|
export {
|
|
AUTO_STYLE,
|
|
trigger,
|
|
animate,
|
|
group,
|
|
sequence,
|
|
style,
|
|
state,
|
|
keyframes,
|
|
transition,
|
|
animation,
|
|
animateChild,
|
|
useAnimation,
|
|
query,
|
|
stagger,
|
|
AnimationBuilder,
|
|
AnimationFactory,
|
|
BrowserAnimationBuilder,
|
|
NoopAnimationPlayer,
|
|
AnimationGroupPlayer,
|
|
ɵPRE_STYLE
|
|
};
|
|
/*! Bundled license information:
|
|
|
|
@angular/animations/fesm2022/animations.mjs:
|
|
(**
|
|
* @license Angular v17.0.7
|
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
* License: MIT
|
|
*)
|
|
*/
|
|
//# sourceMappingURL=chunk-KI2JSLP6.js.map
|
|
|