{"version":3,"sources":["node_modules/@angular/animations/fesm2022/animations.mjs","node_modules/ngx-spinner/fesm2022/ngx-spinner.mjs"],"sourcesContent":["/**\n * @license Angular v19.2.0\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injectable, ANIMATION_MODULE_TYPE, ViewEncapsulation, ɵRuntimeError, Inject } from '@angular/core';\n\n/**\n * @description Constants for the categories of parameters that can be defined for animations.\n *\n * A corresponding function defines a set of parameters for each category, and\n * collects them into a corresponding `AnimationMetadata` object.\n *\n * @publicApi\n */\nvar AnimationMetadataType = /*#__PURE__*/function (AnimationMetadataType) {\n /**\n * Associates a named animation state with a set of CSS styles.\n * See [`state()`](api/animations/state)\n */\n AnimationMetadataType[AnimationMetadataType[\"State\"] = 0] = \"State\";\n /**\n * Data for a transition from one animation state to another.\n * See `transition()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Transition\"] = 1] = \"Transition\";\n /**\n * Contains a set of animation steps.\n * See `sequence()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Sequence\"] = 2] = \"Sequence\";\n /**\n * Contains a set of animation steps.\n * See `{@link animations/group group()}`\n */\n AnimationMetadataType[AnimationMetadataType[\"Group\"] = 3] = \"Group\";\n /**\n * Contains an animation step.\n * See `animate()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Animate\"] = 4] = \"Animate\";\n /**\n * Contains a set of animation steps.\n * See `keyframes()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Keyframes\"] = 5] = \"Keyframes\";\n /**\n * Contains a set of CSS property-value pairs into a named style.\n * See `style()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Style\"] = 6] = \"Style\";\n /**\n * Associates an animation with an entry trigger that can be attached to an element.\n * See `trigger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Trigger\"] = 7] = \"Trigger\";\n /**\n * Contains a re-usable animation.\n * See `animation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Reference\"] = 8] = \"Reference\";\n /**\n * Contains data to use in executing child animations returned by a query.\n * See `animateChild()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateChild\"] = 9] = \"AnimateChild\";\n /**\n * Contains animation parameters for a re-usable animation.\n * See `useAnimation()`\n */\n AnimationMetadataType[AnimationMetadataType[\"AnimateRef\"] = 10] = \"AnimateRef\";\n /**\n * Contains child-animation query data.\n * See `query()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Query\"] = 11] = \"Query\";\n /**\n * Contains data for staggering an animation sequence.\n * See `stagger()`\n */\n AnimationMetadataType[AnimationMetadataType[\"Stagger\"] = 12] = \"Stagger\";\n return AnimationMetadataType;\n}(AnimationMetadataType || {});\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```ts\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```ts\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```angular-ts\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```ts\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return {\n type: AnimationMetadataType.Trigger,\n name,\n definitions,\n options: {}\n };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```ts\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```ts\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return {\n type: AnimationMetadataType.Animate,\n styles,\n timings\n };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```ts\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return {\n type: AnimationMetadataType.Group,\n steps,\n options\n };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```ts\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return {\n type: AnimationMetadataType.Sequence,\n steps,\n options\n };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```ts\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```ts\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return {\n type: AnimationMetadataType.Style,\n styles: tokens,\n offset: null\n };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return {\n type: AnimationMetadataType.State,\n name,\n styles,\n options\n };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```ts\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```ts\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return {\n type: AnimationMetadataType.Keyframes,\n steps\n };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```ts\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```ts\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```ts\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```ts\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```ts\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```html\n *
\n * ...\n *
\n * ```\n *\n * ```ts\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```html\n *
\n * ...\n *
\n * ```\n *\n * ```ts\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return {\n type: AnimationMetadataType.Transition,\n expr: stateChangeExpr,\n animation: steps,\n options\n };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```ts\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return {\n type: AnimationMetadataType.Reference,\n animation: steps,\n options\n };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return {\n type: AnimationMetadataType.AnimateChild,\n options\n };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation,\n options\n };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```ts\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```angular-ts\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return {\n type: AnimationMetadataType.Query,\n selector,\n animation,\n options\n };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```ts\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return {\n type: AnimationMetadataType.Stagger,\n timings,\n animation\n };\n}\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nlet AnimationBuilder = /*#__PURE__*/(() => {\n class AnimationBuilder {\n static ɵfac = function AnimationBuilder_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AnimationBuilder)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AnimationBuilder,\n factory: () => (() => inject(BrowserAnimationBuilder))(),\n providedIn: 'root'\n });\n }\n return AnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {}\nlet BrowserAnimationBuilder = /*#__PURE__*/(() => {\n class BrowserAnimationBuilder extends AnimationBuilder {\n animationModuleType = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n });\n _nextAnimationId = 0;\n _renderer;\n constructor(rootRenderer, doc) {\n super();\n const typeData = {\n id: '0',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {\n animation: []\n }\n };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) {\n // We only support AnimationRenderer & DynamicDelegationRenderer for this AnimationBuilder\n throw new ɵRuntimeError(3600 /* RuntimeErrorCode.BROWSER_ANIMATION_BUILDER_INJECTED_WITHOUT_ANIMATIONS */, (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.');\n }\n }\n build(animation) {\n const id = this._nextAnimationId;\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static ɵfac = function BrowserAnimationBuilder_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserAnimationBuilder)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(DOCUMENT));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BrowserAnimationBuilder,\n factory: BrowserAnimationBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n return BrowserAnimationBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass BrowserAnimationFactory extends AnimationFactory {\n _id;\n _renderer;\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n id;\n element;\n _renderer;\n parentPlayer = null;\n _started = false;\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0;\n }\n totalTime = 0;\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n/**\n * The following 2 methods cannot reference their correct types (AnimationRenderer &\n * DynamicDelegationRenderer) since this would introduce a import cycle.\n */\nfunction unwrapAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n if (type === 0 /* AnimationRendererType.Regular */) {\n return renderer;\n } else if (type === 1 /* AnimationRendererType.Delegated */) {\n return renderer.animationRenderer;\n }\n return null;\n}\nfunction isAnimationRenderer(renderer) {\n const type = renderer.ɵtype;\n return type === 0 /* AnimationRendererType.Regular */ || type === 1 /* AnimationRendererType.Delegated */;\n}\n\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see {@link animate}\n * @see {@link AnimationPlayer}\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n _onDoneFns = [];\n _onStartFns = [];\n _onDestroyFns = [];\n _originalOnDoneFns = [];\n _originalOnStartFns = [];\n _started = false;\n _destroyed = false;\n _finished = false;\n _position = 0;\n parentPlayer = null;\n totalTime;\n constructor(duration = 0, delay = 0) {\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() {}\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n queueMicrotask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() {}\n restart() {}\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see {@link AnimationPlayer}\n * @see {@link animations/group group}\n *\n */\nclass AnimationGroupPlayer {\n _onDoneFns = [];\n _onStartFns = [];\n _finished = false;\n _started = false;\n _destroyed = false;\n _onDestroyFns = [];\n parentPlayer = null;\n totalTime = 0;\n players;\n constructor(_players) {\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n queueMicrotask(() => this._onFinish());\n } else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, AnimationMetadataType, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, ɵPRE_STYLE };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Pipe, Component, ChangeDetectionStrategy, Optional, Inject, Input, ViewChild, NgModule, makeEnvironmentProviders } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i1 from '@angular/platform-browser';\nimport { NgIf, NgFor, CommonModule } from '@angular/common';\nconst _c0 = [\"overlay\"];\nconst _c1 = [\"*\"];\nfunction NgxSpinnerComponent_div_0_div_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\");\n }\n}\nfunction NgxSpinnerComponent_div_0_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, NgxSpinnerComponent_div_0_div_2_div_1_Template, 1, 0, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r0.spinner.class);\n i0.ɵɵstyleProp(\"color\", ctx_r0.spinner.color);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.spinner.divArray);\n }\n}\nfunction NgxSpinnerComponent_div_0_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n i0.ɵɵpipe(1, \"safeHtml\");\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind1(1, 1, ctx_r0.template), i0.ɵɵsanitizeHtml);\n }\n}\nfunction NgxSpinnerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵtemplate(2, NgxSpinnerComponent_div_0_div_2_Template, 2, 5, \"div\", 3)(3, NgxSpinnerComponent_div_0_div_3_Template, 2, 3, \"div\", 4);\n i0.ɵɵelementStart(4, \"div\", 5);\n i0.ɵɵprojection(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"background-color\", ctx_r0.spinner.bdColor)(\"z-index\", ctx_r0.spinner.zIndex)(\"position\", ctx_r0.spinner.fullScreen ? \"fixed\" : \"absolute\");\n i0.ɵɵproperty(\"@.disabled\", ctx_r0.disableAnimation)(\"@fadeIn\", \"in\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.template);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.template);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"z-index\", ctx_r0.spinner.zIndex);\n }\n}\nconst LOADERS = {\n \"ball-8bits\": 16,\n \"ball-atom\": 4,\n \"ball-beat\": 3,\n \"ball-circus\": 5,\n \"ball-climbing-dot\": 4,\n \"ball-clip-rotate\": 1,\n \"ball-clip-rotate-multiple\": 2,\n \"ball-clip-rotate-pulse\": 2,\n \"ball-elastic-dots\": 5,\n \"ball-fall\": 3,\n \"ball-fussion\": 4,\n \"ball-grid-beat\": 9,\n \"ball-grid-pulse\": 9,\n \"ball-newton-cradle\": 4,\n \"ball-pulse\": 3,\n \"ball-pulse-rise\": 5,\n \"ball-pulse-sync\": 3,\n \"ball-rotate\": 1,\n \"ball-running-dots\": 5,\n \"ball-scale\": 1,\n \"ball-scale-multiple\": 3,\n \"ball-scale-pulse\": 2,\n \"ball-scale-ripple\": 1,\n \"ball-scale-ripple-multiple\": 3,\n \"ball-spin\": 8,\n \"ball-spin-clockwise\": 8,\n \"ball-spin-clockwise-fade\": 8,\n \"ball-spin-clockwise-fade-rotating\": 8,\n \"ball-spin-fade\": 8,\n \"ball-spin-fade-rotating\": 8,\n \"ball-spin-rotate\": 2,\n \"ball-square-clockwise-spin\": 8,\n \"ball-square-spin\": 8,\n \"ball-triangle-path\": 3,\n \"ball-zig-zag\": 2,\n \"ball-zig-zag-deflect\": 2,\n cog: 1,\n \"cube-transition\": 2,\n fire: 3,\n \"line-scale\": 5,\n \"line-scale-party\": 5,\n \"line-scale-pulse-out\": 5,\n \"line-scale-pulse-out-rapid\": 5,\n \"line-spin-clockwise-fade\": 8,\n \"line-spin-clockwise-fade-rotating\": 8,\n \"line-spin-fade\": 8,\n \"line-spin-fade-rotating\": 8,\n pacman: 6,\n \"square-jelly-box\": 2,\n \"square-loader\": 1,\n \"square-spin\": 1,\n timer: 1,\n \"triangle-skew-spin\": 1\n};\nconst DEFAULTS = {\n BD_COLOR: \"rgba(51,51,51,0.8)\",\n SPINNER_COLOR: \"#fff\",\n Z_INDEX: 99999\n};\nconst PRIMARY_SPINNER = \"primary\";\nclass NgxSpinner {\n constructor(init) {\n Object.assign(this, init);\n }\n static create(init) {\n if (!init?.template && !init?.type) {\n console.warn(`[ngx-spinner]: Property \"type\" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file`);\n }\n return new NgxSpinner(init);\n }\n}\nlet NgxSpinnerService = /*#__PURE__*/(() => {\n class NgxSpinnerService {\n /**\n * Creates an instance of NgxSpinnerService.\n * @memberof NgxSpinnerService\n */\n constructor() {\n /**\n * Spinner observable\n *\n * @memberof NgxSpinnerService\n */\n // private spinnerObservable = new ReplaySubject(1);\n this.spinnerObservable = new BehaviorSubject(null);\n }\n /**\n * Get subscription of desired spinner\n * @memberof NgxSpinnerService\n **/\n getSpinner(name) {\n return this.spinnerObservable.asObservable().pipe(filter(x => x && x.name === name));\n }\n /**\n * To show spinner\n *\n * @memberof NgxSpinnerService\n */\n show(name = PRIMARY_SPINNER, spinner) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n if (spinner && Object.keys(spinner).length) {\n spinner[\"name\"] = name;\n this.spinnerObservable.next(new NgxSpinner({\n ...spinner,\n show: true\n }));\n resolve(true);\n } else {\n this.spinnerObservable.next(new NgxSpinner({\n name,\n show: true\n }));\n resolve(true);\n }\n }, 10);\n });\n }\n /**\n * To hide spinner\n *\n * @memberof NgxSpinnerService\n */\n hide(name = PRIMARY_SPINNER, debounce = 10) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n this.spinnerObservable.next(new NgxSpinner({\n name,\n show: false\n }));\n resolve(true);\n }, debounce);\n });\n }\n static {\n this.ɵfac = function NgxSpinnerService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxSpinnerService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgxSpinnerService,\n factory: NgxSpinnerService.ɵfac,\n providedIn: \"root\"\n });\n }\n }\n return NgxSpinnerService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst NGX_SPINNER_CONFIG = new InjectionToken(\"NGX_SPINNER_CONFIG\");\nlet SafeHtmlPipe = /*#__PURE__*/(() => {\n class SafeHtmlPipe {\n constructor(_sanitizer) {\n this._sanitizer = _sanitizer;\n }\n transform(v) {\n if (v) {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n }\n static {\n this.ɵfac = function SafeHtmlPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SafeHtmlPipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16));\n };\n }\n static {\n this.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"safeHtml\",\n type: SafeHtmlPipe,\n pure: true\n });\n }\n }\n return SafeHtmlPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxSpinnerComponent = /*#__PURE__*/(() => {\n class NgxSpinnerComponent {\n // TODO: https://github.com/Napster2210/ngx-spinner/issues/259\n // @HostListener(\"document:keydown\", [\"$event\"])\n // handleKeyboardEvent(event: KeyboardEvent) {\n // if (this.spinnerDOM && this.spinnerDOM.nativeElement) {\n // if (\n // this.fullScreen ||\n // (!this.fullScreen && this.isSpinnerZone(event.target))\n // ) {\n // event.returnValue = false;\n // event.preventDefault();\n // }\n // }\n // }\n /**\n * Creates an instance of NgxSpinnerComponent.\n *\n * @memberof NgxSpinnerComponent\n */\n constructor(spinnerService, changeDetector, elementRef, globalConfig) {\n this.spinnerService = spinnerService;\n this.changeDetector = changeDetector;\n this.elementRef = elementRef;\n this.globalConfig = globalConfig;\n /**\n * To enable/disable animation\n *\n * @type {boolean}\n * @memberof NgxSpinnerComponent\n */\n this.disableAnimation = false;\n /**\n * Spinner Object\n *\n * @memberof NgxSpinnerComponent\n */\n this.spinner = new NgxSpinner();\n /**\n * Unsubscribe from spinner's observable\n *\n * @memberof NgxSpinnerComponent\n **/\n this.ngUnsubscribe = new Subject();\n /**\n * To set default ngx-spinner options\n *\n * @memberof NgxSpinnerComponent\n */\n this.setDefaultOptions = () => {\n const {\n type\n } = this.globalConfig ?? {};\n this.spinner = NgxSpinner.create({\n name: this.name,\n bdColor: this.bdColor,\n size: this.size,\n color: this.color,\n type: this.type ?? type,\n fullScreen: this.fullScreen,\n divArray: this.divArray,\n divCount: this.divCount,\n show: this.show,\n zIndex: this.zIndex,\n template: this.template,\n showSpinner: this.showSpinner\n });\n };\n this.bdColor = DEFAULTS.BD_COLOR;\n this.zIndex = DEFAULTS.Z_INDEX;\n this.color = DEFAULTS.SPINNER_COLOR;\n this.size = \"large\";\n this.fullScreen = true;\n this.name = PRIMARY_SPINNER;\n this.template = null;\n this.showSpinner = false;\n this.divArray = [];\n this.divCount = 0;\n this.show = false;\n }\n initObservable() {\n this.spinnerService.getSpinner(this.name).pipe(takeUntil(this.ngUnsubscribe)).subscribe(spinner => {\n this.setDefaultOptions();\n Object.assign(this.spinner, spinner);\n if (spinner.show) {\n this.onInputChange();\n }\n this.changeDetector.detectChanges();\n });\n }\n /**\n * Initialization method\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnInit() {\n this.setDefaultOptions();\n this.initObservable();\n }\n /**\n * To check event triggers inside the Spinner Zone\n *\n * @param {*} element\n * @returns {boolean}\n * @memberof NgxSpinnerComponent\n */\n isSpinnerZone(element) {\n if (element === this.elementRef.nativeElement.parentElement) {\n return true;\n }\n return element.parentNode && this.isSpinnerZone(element.parentNode);\n }\n /**\n * On changes event for input variables\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnChanges(changes) {\n for (const propName in changes) {\n if (propName) {\n const changedProp = changes[propName];\n if (changedProp.isFirstChange()) {\n return;\n } else if (typeof changedProp.currentValue !== \"undefined\" && changedProp.currentValue !== changedProp.previousValue) {\n if (changedProp.currentValue !== \"\") {\n this.spinner[propName] = changedProp.currentValue;\n if (propName === \"showSpinner\") {\n if (changedProp.currentValue) {\n this.spinnerService.show(this.spinner.name, this.spinner);\n } else {\n this.spinnerService.hide(this.spinner.name);\n }\n }\n if (propName === \"name\") {\n this.initObservable();\n }\n }\n }\n }\n }\n }\n /**\n * To get class for spinner\n *\n * @memberof NgxSpinnerComponent\n */\n getClass(type, size) {\n this.spinner.divCount = LOADERS[type];\n this.spinner.divArray = Array(this.spinner.divCount).fill(0).map((_, i) => i);\n let sizeClass = \"\";\n switch (size.toLowerCase()) {\n case \"small\":\n sizeClass = \"la-sm\";\n break;\n case \"medium\":\n sizeClass = \"la-2x\";\n break;\n case \"large\":\n sizeClass = \"la-3x\";\n break;\n default:\n break;\n }\n return \"la-\" + type + \" \" + sizeClass;\n }\n /**\n * Check if input variables have changed\n *\n * @memberof NgxSpinnerComponent\n */\n onInputChange() {\n this.spinner.class = this.getClass(this.spinner.type, this.spinner.size);\n }\n /**\n * Component destroy event\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n static {\n this.ɵfac = function NgxSpinnerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxSpinnerComponent)(i0.ɵɵdirectiveInject(NgxSpinnerService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NGX_SPINNER_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxSpinnerComponent,\n selectors: [[\"ngx-spinner\"]],\n viewQuery: function NgxSpinnerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.spinnerDOM = _t.first);\n }\n },\n inputs: {\n bdColor: \"bdColor\",\n size: \"size\",\n color: \"color\",\n type: \"type\",\n fullScreen: \"fullScreen\",\n name: \"name\",\n zIndex: \"zIndex\",\n template: \"template\",\n showSpinner: \"showSpinner\",\n disableAnimation: \"disableAnimation\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c1,\n decls: 1,\n vars: 1,\n consts: [[\"overlay\", \"\"], [\"class\", \"ngx-spinner-overlay\", 3, \"background-color\", \"z-index\", \"position\", 4, \"ngIf\"], [1, \"ngx-spinner-overlay\"], [3, \"class\", \"color\", 4, \"ngIf\"], [3, \"innerHTML\", 4, \"ngIf\"], [1, \"loading-text\"], [4, \"ngFor\", \"ngForOf\"], [3, \"innerHTML\"]],\n template: function NgxSpinnerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NgxSpinnerComponent_div_0_Template, 6, 12, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.spinner.show);\n }\n },\n dependencies: [SafeHtmlPipe, NgIf, NgFor],\n styles: [\".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\"],\n data: {\n animation: [trigger(\"fadeIn\", [state(\"in\", style({\n opacity: 1\n })), transition(\":enter\", [style({\n opacity: 0\n }), animate(300)]), transition(\":leave\", animate(200, style({\n opacity: 0\n })))])]\n },\n changeDetection: 0\n });\n }\n }\n return NgxSpinnerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxSpinnerModule = /*#__PURE__*/(() => {\n class NgxSpinnerModule {\n static forRoot(config) {\n return {\n ngModule: NgxSpinnerModule,\n providers: [{\n provide: NGX_SPINNER_CONFIG,\n useValue: config\n }]\n };\n }\n static {\n this.ɵfac = function NgxSpinnerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return NgxSpinnerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst provideSpinnerConfig = config => {\n const providers = [{\n provide: NGX_SPINNER_CONFIG,\n useValue: config\n }];\n return makeEnvironmentProviders(providers);\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULTS, LOADERS, NgxSpinner, NgxSpinnerComponent, NgxSpinnerModule, NgxSpinnerService, PRIMARY_SPINNER, provideSpinnerConfig };\n"],"mappings":"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","names":["AnimationMetadataType","AUTO_STYLE","trigger","name","definitions","animate","timings","styles","sequence","steps","options","AnimationMetadataType","style","tokens","state","name","styles","transition","stateChangeExpr","steps","options","AnimationMetadataType","query","selector","animation","options","AnimationMetadataType","stagger","timings","NoopAnimationPlayer","duration","delay","fn","position","phaseName","methods","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","total","player","time","p","timeAtPosition","longestPlayer","longestSoFar","ɵPRE_STYLE","_c0","_c1","NgxSpinnerComponent_div_0_div_2_div_1_Template","rf","ctx","ɵɵelement","NgxSpinnerComponent_div_0_div_2_Template","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵclassMap","ɵɵstyleProp","ɵɵadvance","ɵɵproperty","NgxSpinnerComponent_div_0_div_3_Template","ɵɵpipe","ɵɵpipeBind1","ɵɵsanitizeHtml","NgxSpinnerComponent_div_0_Template","ɵɵprojection","LOADERS","DEFAULTS","PRIMARY_SPINNER","NgxSpinner","_NgxSpinner","init","NgxSpinnerService","BehaviorSubject","name","filter","x","spinner","resolve","_reject","__spreadProps","__spreadValues","debounce","__ngFactoryType__","ɵɵdefineInjectable","NGX_SPINNER_CONFIG","InjectionToken","SafeHtmlPipe","_sanitizer","v","ɵɵdirectiveInject","DomSanitizer","ɵɵdefinePipe","NgxSpinnerComponent","spinnerService","changeDetector","elementRef","globalConfig","Subject","type","takeUntil","element","changes","propName","changedProp","size","_","i","sizeClass","ChangeDetectorRef","ElementRef","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵNgOnChangesFeature","ɵɵprojectionDef","NgIf","NgForOf","trigger","state","style","transition","animate","NgxSpinnerModule","config","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule"],"x_google_ignoreList":[0,1]}