ngx-dom-confetti 0.4.0 → 0.5.0

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.
@@ -1,8 +1,8 @@
1
- import { coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';
2
1
  import { DOCUMENT, CommonModule } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Directive, Optional, Inject, Injectable, Component, Input, NgModule } from '@angular/core';
3
+ import { InjectionToken, Directive, Optional, Inject, Injectable, Component, Input, NgModule, makeEnvironmentProviders } from '@angular/core';
5
4
  import * as i1 from '@angular/cdk/platform';
5
+ import { coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';
6
6
 
7
7
  const NGX_CONFETTI_GLOBAL_CONFIG = new InjectionToken('ngx-confetti-global-config');
8
8
  const defaultColors = ["#a864fd", "#29cdff", "#78ff44", "#ff718d", "#fdff6a"];
@@ -61,7 +61,6 @@ class ConfettiRenderer {
61
61
  };
62
62
  }
63
63
  updateFetti(fetti, progress, dragFriction, decay) {
64
- /* eslint-disable no-param-reassign */
65
64
  fetti.physics.x += Math.cos(fetti.physics.angle2D) * fetti.physics.velocity;
66
65
  fetti.physics.y += Math.sin(fetti.physics.angle2D) * fetti.physics.velocity;
67
66
  fetti.physics.z += Math.sin(fetti.physics.angle3D) * fetti.physics.velocity;
@@ -83,7 +82,6 @@ class ConfettiRenderer {
83
82
  fetti.element.style.transform = transform;
84
83
  fetti.element.style.opacity = (1 - progress).toString();
85
84
  ;
86
- /* eslint-enable */
87
85
  }
88
86
  animate(root, fettis, dragFriction, decay, duration, stagger) {
89
87
  let startTime;
@@ -138,28 +136,29 @@ class NgxConfettiDirective {
138
136
  this._elementRef = _elementRef;
139
137
  this.ngZone = ngZone;
140
138
  this.platform = platform;
141
- this._globalConfig = (globalConfig || defaultsConfettiConfig);
139
+ this._globalConfig = (globalConfig ||
140
+ defaultsConfettiConfig);
142
141
  this._confettiRenderer = new ConfettiRenderer(document);
143
142
  }
144
143
  launch(config) {
145
144
  if (!this.platform.isBrowser) {
146
145
  return;
147
146
  }
148
- const element = coerceElement(this._elementRef);
147
+ // const element = coerceElement(this._elementRef);
149
148
  this.ngZone.runOutsideAngular(() => {
150
149
  this._confettiRenderer.launch(this._elementRef.nativeElement, config ?? this._globalConfig);
151
150
  });
152
151
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxConfettiDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: NgxConfettiDirective, selector: "[confetti], [ngxConfetti]", exportAs: ["ngxConfetti"], ngImport: i0 }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxConfettiDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
153
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: NgxConfettiDirective, isStandalone: true, selector: "[confetti], [ngxConfetti]", exportAs: ["ngxConfetti"], ngImport: i0 }); }
155
154
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxConfettiDirective, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxConfettiDirective, decorators: [{
157
156
  type: Directive,
158
157
  args: [{
159
158
  selector: '[confetti], [ngxConfetti]',
160
159
  exportAs: 'ngxConfetti',
161
160
  }]
162
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{
161
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.Platform }, { type: Document, decorators: [{
163
162
  type: Optional
164
163
  }, {
165
164
  type: Inject,
@@ -179,12 +178,12 @@ class NgxDomConfettiService {
179
178
  open(el, config) {
180
179
  this._confettiRenderer.launch(coerceElement(el), config ?? this._globalConfig);
181
180
  }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService, deps: [{ token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
183
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService }); }
181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiService, deps: [{ token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
182
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiService }); }
184
183
  }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService, decorators: [{
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiService, decorators: [{
186
185
  type: Injectable
187
- }], ctorParameters: () => [{ type: undefined, decorators: [{
186
+ }], ctorParameters: () => [{ type: Document, decorators: [{
188
187
  type: Optional
189
188
  }, {
190
189
  type: Inject,
@@ -209,18 +208,18 @@ class NgxDomConfettiComponent {
209
208
  constructor(el, document, globalConfig) {
210
209
  this.el = el;
211
210
  this._config = {
212
- ...globalConfig
211
+ ...globalConfig,
213
212
  };
214
213
  this._confettiRenderer = new ConfettiRenderer(document);
215
214
  this._active = false;
216
215
  }
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config", active: "active" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
217
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: NgxDomConfettiComponent, isStandalone: true, selector: "ngx-dom-confetti", inputs: { config: "config", active: "active" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
219
218
  }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
221
220
  type: Component,
222
221
  args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
223
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
222
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: Document, decorators: [{
224
223
  type: Optional
225
224
  }, {
226
225
  type: Inject,
@@ -261,11 +260,9 @@ class NgxDomConfettiModule {
261
260
  ],
262
261
  };
263
262
  }
264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
265
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent,
266
- NgxConfettiDirective], imports: [CommonModule], exports: [NgxDomConfettiComponent,
267
- NgxConfettiDirective] }); }
268
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, providers: [
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
264
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiModule, imports: [CommonModule, NgxDomConfettiComponent, NgxConfettiDirective], exports: [NgxDomConfettiComponent, NgxConfettiDirective] }); }
265
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiModule, providers: [
269
266
  {
270
267
  provide: NGX_CONFETTI_GLOBAL_CONFIG,
271
268
  useValue: defaultsConfettiConfig,
@@ -273,16 +270,11 @@ class NgxDomConfettiModule {
273
270
  NgxDomConfettiService,
274
271
  ], imports: [CommonModule] }); }
275
272
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
277
274
  type: NgModule,
278
275
  args: [{
279
- declarations: [
280
- NgxDomConfettiComponent,
281
- NgxConfettiDirective,
282
- ],
283
- imports: [
284
- CommonModule,
285
- ],
276
+ declarations: [],
277
+ imports: [CommonModule, NgxDomConfettiComponent, NgxConfettiDirective],
286
278
  providers: [
287
279
  {
288
280
  provide: NGX_CONFETTI_GLOBAL_CONFIG,
@@ -290,13 +282,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
290
282
  },
291
283
  NgxDomConfettiService,
292
284
  ],
293
- exports: [
294
- NgxDomConfettiComponent,
295
- NgxConfettiDirective
296
- ]
285
+ exports: [NgxDomConfettiComponent, NgxConfettiDirective],
297
286
  }]
298
287
  }] });
299
288
 
289
+ function provideConfetti(config) {
290
+ return makeEnvironmentProviders([
291
+ {
292
+ provide: NGX_CONFETTI_GLOBAL_CONFIG,
293
+ useValue: config ?? defaultsConfettiConfig,
294
+ },
295
+ ]);
296
+ }
297
+
300
298
  /*
301
299
  * Public API Surface of ngx-dom-confetti
302
300
  */
@@ -305,5 +303,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
305
303
  * Generated bundle index. Do not edit.
306
304
  */
307
305
 
308
- export { NGX_CONFETTI_GLOBAL_CONFIG, NgxConfettiDirective, NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, defaultsConfettiConfig };
306
+ export { NGX_CONFETTI_GLOBAL_CONFIG, NgxConfettiDirective, NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, defaultsConfettiConfig, provideConfetti };
309
307
  //# sourceMappingURL=ngx-dom-confetti.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-dom-confetti.mjs","sources":["../../../packages/ngx-dom-confetti/src/lib/config.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-renderer.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-directive.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-service.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-component.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-module.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface ConfettiConfig {\n angle: number;\n spread: number;\n width: string;\n height: string;\n perspective: string;\n duration: number;\n dragFriction: number;\n stagger: number;\n startVelocity: number;\n elementCount: number;\n decay: number;\n colors: string[];\n random: () => number;\n}\n\nexport const NGX_CONFETTI_GLOBAL_CONFIG = new InjectionToken<ConfettiConfig>(\n 'ngx-confetti-global-config',\n);\n\nconst defaultColors = [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"];\n\nexport const defaultsConfettiConfig = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: defaultColors,\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n}\n","import { ConfettiConfig, defaultsConfettiConfig } from './config';\n\ninterface IPhysics {\n x: number;\n y: number;\n z: number;\n wobble: number;\n wobbleSpeed: number;\n velocity: number;\n angle2D: number;\n angle3D: number;\n tiltAngle: number;\n tiltAngleSpeed: number;\n}\n\ninterface IFetti {\n element: HTMLDivElement,\n physics: IPhysics\n}\n\nexport class ConfettiRenderer {\n\n constructor(private _document: Document) { }\n\n private createElements(\n elementCount: number,\n colors: string[],\n width: string,\n height: string\n ): {\n fragment: DocumentFragment,\n elements: HTMLDivElement[]\n } {\n const fragment = this._document.createDocumentFragment();\n const elements = Array.from({ length: elementCount }).map((_, index) => {\n const element = this._document.createElement('div');\n const color = colors[index % colors.length];\n element.style.backgroundColor = color;\n element.style.width = width;\n element.style.height = height;\n element.style.position = 'absolute';\n element.style.willChange = 'transform, opacity';\n element.style.visibility = 'hidden';\n fragment.appendChild(element);\n return element;\n });\n\n return {\n fragment,\n elements,\n };\n }\n\n private randomPhysics(\n angle: number,\n spread: number,\n startVelocity: number,\n random: () => number\n ): IPhysics {\n const radAngle = angle * (Math.PI / 180);\n const radSpread = spread * (Math.PI / 180);\n return {\n x: 0,\n y: 0,\n z: 0,\n wobble: random() * 10,\n wobbleSpeed: 0.1 + random() * 0.1,\n velocity: startVelocity * 0.5 + random() * startVelocity,\n angle2D: -radAngle + (0.5 * radSpread - random() * radSpread),\n angle3D: -(Math.PI / 4) + random() * (Math.PI / 2),\n tiltAngle: random() * Math.PI,\n tiltAngleSpeed: 0.1 + random() * 0.3,\n };\n }\n\n private updateFetti(fetti: IFetti, progress: number, dragFriction: number, decay: number) {\n /* eslint-disable no-param-reassign */\n fetti.physics.x += Math.cos(fetti.physics.angle2D) * fetti.physics.velocity;\n fetti.physics.y += Math.sin(fetti.physics.angle2D) * fetti.physics.velocity;\n fetti.physics.z += Math.sin(fetti.physics.angle3D) * fetti.physics.velocity;\n fetti.physics.wobble += fetti.physics.wobbleSpeed;\n // Backward compatibility\n if (decay) {\n fetti.physics.velocity *= decay;\n } else {\n fetti.physics.velocity -= fetti.physics.velocity * dragFriction;\n }\n fetti.physics.y += 3;\n fetti.physics.tiltAngle += fetti.physics.tiltAngleSpeed;\n\n const { x, y, z, tiltAngle, wobble } = fetti.physics;\n const wobbleX = x + 10 * Math.cos(wobble);\n const wobbleY = y + 10 * Math.sin(wobble);\n const transform = `translate3d(${wobbleX}px, ${wobbleY}px, ${z}px) rotate3d(1, 1, 1, ${tiltAngle}rad)`;\n\n fetti.element.style.visibility = \"visible\";\n fetti.element.style.transform = transform;\n fetti.element.style.opacity = (1 - progress).toString();;\n /* eslint-enable */\n }\n\n private animate(root: HTMLElement, fettis: Array<IFetti>, dragFriction: number, decay: number, duration: number, stagger: number) {\n let startTime: number;\n let isActive = true;\n\n const update = (time: number) => {\n if (!isActive) return;\n\n if (!startTime) startTime = time;\n const elapsed = time - startTime;\n const progress = startTime === time ? 0 : (time - startTime) / duration;\n fettis.slice(0, Math.ceil(elapsed / stagger)).forEach(fetti => {\n this.updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n fettis.forEach((fetti) => {\n if (fetti.element.parentNode === root) {\n root.removeChild(fetti.element);\n }\n })\n\n isActive = false;\n }\n }\n\n requestAnimationFrame(update);\n\n return new Promise<void>(resolve => {\n const checkIfDone = setInterval(() => {\n if (!isActive) {\n clearInterval(checkIfDone);\n resolve();\n }\n }, 100);\n });\n }\n\n public launch(root: HTMLElement, config?: Partial<ConfettiConfig>): Promise<void> {\n const {\n elementCount,\n colors,\n width,\n height,\n perspective,\n angle,\n spread,\n startVelocity,\n decay,\n dragFriction,\n duration,\n stagger,\n random,\n } = { ...defaultsConfettiConfig, ...config } as ConfettiConfig;\n root.style.perspective = perspective;\n const { fragment, elements } = this.createElements(\n elementCount ?? 50,\n colors,\n width,\n height\n );\n root.appendChild(fragment);\n const fettis = elements.map((element) => ({\n element,\n physics: this.randomPhysics(angle, spread, startVelocity, random),\n }));\n\n return this.animate(root, fettis, dragFriction, decay, duration, stagger);\n }\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport {Platform} from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { ConfettiRenderer } from './confetti-renderer';\nimport { ConfettiConfig, defaultsConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@Directive({\n selector: '[confetti], [ngxConfetti]',\n exportAs: 'ngxConfetti',\n})\nexport class NgxConfettiDirective {\n\n private _globalConfig: ConfettiConfig;\n\n private _confettiRenderer: ConfettiRenderer;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private ngZone: NgZone,\n private platform: Platform,\n @Optional() @Inject(DOCUMENT) document: any,\n @Optional() @Inject(NGX_CONFETTI_GLOBAL_CONFIG) globalConfig?: ConfettiConfig,\n ) {\n this._globalConfig = (globalConfig || defaultsConfettiConfig) as ConfettiConfig;\n this._confettiRenderer = new ConfettiRenderer(document);\n }\n\n\n public launch(config?: Partial<ConfettiConfig>) {\n if (!this.platform.isBrowser) {\n return;\n }\n const element = coerceElement(this._elementRef);\n this.ngZone.runOutsideAngular(() => {\n this._confettiRenderer.launch(this._elementRef.nativeElement, config ?? this._globalConfig);\n })\n\n }\n\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Optional } from '@angular/core';\nimport { ConfettiRenderer } from './confetti-renderer';\nimport { ConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@Injectable()\nexport class NgxDomConfettiService {\n\n private _confettiRenderer: ConfettiRenderer;\n\n private _globalConfig: ConfettiConfig;\n\n constructor(\n @Optional() @Inject(DOCUMENT) document: any,\n @Inject(NGX_CONFETTI_GLOBAL_CONFIG) globalConfig: ConfettiConfig,\n ) {\n this._confettiRenderer = new ConfettiRenderer(document);\n this._globalConfig = globalConfig;\n }\n\n public open(el: HTMLElement | ElementRef, config?: Partial<ConfettiConfig>) {\n this._confettiRenderer.launch(\n coerceElement(el),\n config ?? this._globalConfig\n );\n }\n}\n","import { BooleanInput, coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, Inject, Input, Optional } from '@angular/core';\n\nimport { ConfettiRenderer } from './confetti-renderer';\nimport { ConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent {\n\n private _confettiRenderer: ConfettiRenderer;\n\n private _config: Partial<ConfettiConfig>;\n\n private _active: boolean;\n\n @Input()\n public set config(_config: Partial<ConfettiConfig>) {\n if (_config) {\n this._config = Object.assign(this._config, _config);\n }\n }\n\n @Input()\n public set active(_active: BooleanInput) {\n this._active = coerceBooleanProperty(_active);\n if (this._active) {\n this._confettiRenderer.launch(coerceElement(this.el), this._config);\n }\n }\n\n constructor(\n private el: ElementRef,\n @Optional() @Inject(DOCUMENT) document: any,\n @Optional() @Inject(NGX_CONFETTI_GLOBAL_CONFIG) globalConfig?: ConfettiConfig) {\n this._config = {\n ...globalConfig\n };\n this._confettiRenderer = new ConfettiRenderer(document);\n this._active = false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgxConfettiDirective } from './confetti-directive';\nimport { NgxDomConfettiComponent } from './confetti-component';\nimport { NgxDomConfettiService } from './confetti-service';\nimport { defaultsConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n\n@NgModule({\n declarations: [\n NgxDomConfettiComponent,\n NgxConfettiDirective,\n\n ],\n imports: [\n CommonModule,\n ],\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n exports: [\n NgxDomConfettiComponent,\n NgxConfettiDirective\n ]\n})\nexport class NgxDomConfettiModule {\n\n static forRoot(): ModuleWithProviders<NgxDomConfettiModule> {\n return {\n ngModule: NgxDomConfettiModule,\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n };\n }\n\n static forChild(): ModuleWithProviders<NgxDomConfettiModule> {\n return {\n ngModule: NgxDomConfettiModule,\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n };\n }\n }\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti-directive';\nexport * from './lib/confetti-service';\nexport * from './lib/confetti-component';\nexport * from './lib/confetti-module';\nexport * from './lib/config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-dom-confetti.mjs","sources":["../../../packages/ngx-dom-confetti/src/lib/config.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-renderer.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-directive.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-service.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-component.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-module.ts","../../../packages/ngx-dom-confetti/src/lib/confetti-provider.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface ConfettiConfig {\n angle: number;\n spread: number;\n width: string;\n height: string;\n perspective: string;\n duration: number;\n dragFriction: number;\n stagger: number;\n startVelocity: number;\n elementCount: number;\n decay: number;\n colors: string[];\n random: () => number;\n}\n\nexport const NGX_CONFETTI_GLOBAL_CONFIG = new InjectionToken<ConfettiConfig>(\n 'ngx-confetti-global-config',\n);\n\nconst defaultColors = [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"];\n\nexport const defaultsConfettiConfig = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: defaultColors,\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n}\n","import { ConfettiConfig, defaultsConfettiConfig } from './config';\n\ninterface IPhysics {\n x: number;\n y: number;\n z: number;\n wobble: number;\n wobbleSpeed: number;\n velocity: number;\n angle2D: number;\n angle3D: number;\n tiltAngle: number;\n tiltAngleSpeed: number;\n}\n\ninterface IFetti {\n element: HTMLDivElement,\n physics: IPhysics\n}\n\nexport class ConfettiRenderer {\n\n constructor(private _document: Document) { }\n\n private createElements(\n elementCount: number,\n colors: string[],\n width: string,\n height: string\n ): {\n fragment: DocumentFragment,\n elements: HTMLDivElement[]\n } {\n const fragment = this._document.createDocumentFragment();\n const elements = Array.from({ length: elementCount }).map((_, index) => {\n const element = this._document.createElement('div');\n const color = colors[index % colors.length];\n element.style.backgroundColor = color;\n element.style.width = width;\n element.style.height = height;\n element.style.position = 'absolute';\n element.style.willChange = 'transform, opacity';\n element.style.visibility = 'hidden';\n fragment.appendChild(element);\n return element;\n });\n\n return {\n fragment,\n elements,\n };\n }\n\n private randomPhysics(\n angle: number,\n spread: number,\n startVelocity: number,\n random: () => number\n ): IPhysics {\n const radAngle = angle * (Math.PI / 180);\n const radSpread = spread * (Math.PI / 180);\n return {\n x: 0,\n y: 0,\n z: 0,\n wobble: random() * 10,\n wobbleSpeed: 0.1 + random() * 0.1,\n velocity: startVelocity * 0.5 + random() * startVelocity,\n angle2D: -radAngle + (0.5 * radSpread - random() * radSpread),\n angle3D: -(Math.PI / 4) + random() * (Math.PI / 2),\n tiltAngle: random() * Math.PI,\n tiltAngleSpeed: 0.1 + random() * 0.3,\n };\n }\n\n private updateFetti(fetti: IFetti, progress: number, dragFriction: number, decay: number) {\n \n fetti.physics.x += Math.cos(fetti.physics.angle2D) * fetti.physics.velocity;\n fetti.physics.y += Math.sin(fetti.physics.angle2D) * fetti.physics.velocity;\n fetti.physics.z += Math.sin(fetti.physics.angle3D) * fetti.physics.velocity;\n fetti.physics.wobble += fetti.physics.wobbleSpeed;\n // Backward compatibility\n if (decay) {\n fetti.physics.velocity *= decay;\n } else {\n fetti.physics.velocity -= fetti.physics.velocity * dragFriction;\n }\n fetti.physics.y += 3;\n fetti.physics.tiltAngle += fetti.physics.tiltAngleSpeed;\n\n const { x, y, z, tiltAngle, wobble } = fetti.physics;\n const wobbleX = x + 10 * Math.cos(wobble);\n const wobbleY = y + 10 * Math.sin(wobble);\n const transform = `translate3d(${wobbleX}px, ${wobbleY}px, ${z}px) rotate3d(1, 1, 1, ${tiltAngle}rad)`;\n\n fetti.element.style.visibility = \"visible\";\n fetti.element.style.transform = transform;\n fetti.element.style.opacity = (1 - progress).toString();;\n \n }\n\n private animate(root: HTMLElement, fettis: IFetti[], dragFriction: number, decay: number, duration: number, stagger: number) {\n let startTime: number;\n let isActive = true;\n\n const update = (time: number) => {\n if (!isActive) return;\n\n if (!startTime) startTime = time;\n const elapsed = time - startTime;\n const progress = startTime === time ? 0 : (time - startTime) / duration;\n fettis.slice(0, Math.ceil(elapsed / stagger)).forEach(fetti => {\n this.updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n fettis.forEach((fetti) => {\n if (fetti.element.parentNode === root) {\n root.removeChild(fetti.element);\n }\n })\n\n isActive = false;\n }\n }\n\n requestAnimationFrame(update);\n\n return new Promise<void>(resolve => {\n const checkIfDone = setInterval(() => {\n if (!isActive) {\n clearInterval(checkIfDone);\n resolve();\n }\n }, 100);\n });\n }\n\n public launch(root: HTMLElement, config?: Partial<ConfettiConfig>): Promise<void> {\n const {\n elementCount,\n colors,\n width,\n height,\n perspective,\n angle,\n spread,\n startVelocity,\n decay,\n dragFriction,\n duration,\n stagger,\n random,\n } = { ...defaultsConfettiConfig, ...config } as ConfettiConfig;\n root.style.perspective = perspective;\n const { fragment, elements } = this.createElements(\n elementCount ?? 50,\n colors,\n width,\n height\n );\n root.appendChild(fragment);\n const fettis = elements.map((element) => ({\n element,\n physics: this.randomPhysics(angle, spread, startVelocity, random),\n }));\n\n return this.animate(root, fettis, dragFriction, decay, duration, stagger);\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, NgZone, Optional } from '@angular/core';\nimport { ConfettiRenderer } from './confetti-renderer';\nimport {\n ConfettiConfig,\n defaultsConfettiConfig,\n NGX_CONFETTI_GLOBAL_CONFIG,\n} from './config';\n\n@Directive({\n selector: '[confetti], [ngxConfetti]',\n exportAs: 'ngxConfetti',\n})\nexport class NgxConfettiDirective {\n private _globalConfig: ConfettiConfig;\n\n private _confettiRenderer: ConfettiRenderer;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private ngZone: NgZone,\n private platform: Platform,\n @Optional() @Inject(DOCUMENT) document: Document,\n @Optional()\n @Inject(NGX_CONFETTI_GLOBAL_CONFIG)\n globalConfig?: ConfettiConfig,\n ) {\n this._globalConfig = (globalConfig ||\n defaultsConfettiConfig) as ConfettiConfig;\n this._confettiRenderer = new ConfettiRenderer(document);\n }\n public launch(config?: Partial<ConfettiConfig>) {\n if (!this.platform.isBrowser) {\n return;\n }\n // const element = coerceElement(this._elementRef);\n this.ngZone.runOutsideAngular(() => {\n this._confettiRenderer.launch(\n this._elementRef.nativeElement,\n config ?? this._globalConfig,\n );\n });\n }\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Optional } from '@angular/core';\nimport { ConfettiRenderer } from './confetti-renderer';\nimport { ConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@Injectable()\nexport class NgxDomConfettiService {\n private _confettiRenderer: ConfettiRenderer;\n\n private _globalConfig: ConfettiConfig;\n\n constructor(\n @Optional() @Inject(DOCUMENT) document: Document,\n @Inject(NGX_CONFETTI_GLOBAL_CONFIG) globalConfig: ConfettiConfig,\n ) {\n this._confettiRenderer = new ConfettiRenderer(document);\n this._globalConfig = globalConfig;\n }\n\n public open(el: HTMLElement | ElementRef, config?: Partial<ConfettiConfig>) {\n this._confettiRenderer.launch(\n coerceElement(el),\n config ?? this._globalConfig,\n );\n }\n}\n","import {\n BooleanInput,\n coerceBooleanProperty,\n coerceElement,\n} from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, Inject, Input, Optional } from '@angular/core';\n\nimport { ConfettiRenderer } from './confetti-renderer';\nimport { ConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent {\n private _confettiRenderer: ConfettiRenderer;\n\n private _config: Partial<ConfettiConfig>;\n\n private _active: boolean;\n\n @Input()\n public set config(_config: Partial<ConfettiConfig>) {\n if (_config) {\n this._config = Object.assign(this._config, _config);\n }\n }\n\n @Input()\n public set active(_active: BooleanInput) {\n this._active = coerceBooleanProperty(_active);\n if (this._active) {\n this._confettiRenderer.launch(coerceElement(this.el), this._config);\n }\n }\n\n constructor(\n private el: ElementRef,\n @Optional() @Inject(DOCUMENT) document: Document,\n @Optional()\n @Inject(NGX_CONFETTI_GLOBAL_CONFIG)\n globalConfig?: ConfettiConfig,\n ) {\n this._config = {\n ...globalConfig,\n };\n this._confettiRenderer = new ConfettiRenderer(document);\n this._active = false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgxConfettiDirective } from './confetti-directive';\nimport { NgxDomConfettiComponent } from './confetti-component';\nimport { NgxDomConfettiService } from './confetti-service';\nimport { defaultsConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, NgxDomConfettiComponent, NgxConfettiDirective],\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n exports: [NgxDomConfettiComponent, NgxConfettiDirective],\n})\nexport class NgxDomConfettiModule {\n static forRoot(): ModuleWithProviders<NgxDomConfettiModule> {\n return {\n ngModule: NgxDomConfettiModule,\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n };\n }\n\n static forChild(): ModuleWithProviders<NgxDomConfettiModule> {\n return {\n ngModule: NgxDomConfettiModule,\n providers: [\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: defaultsConfettiConfig,\n },\n NgxDomConfettiService,\n ],\n };\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport {\n ConfettiConfig,\n defaultsConfettiConfig,\n NGX_CONFETTI_GLOBAL_CONFIG,\n} from './config';\n\nexport function provideConfetti(config?: ConfettiConfig) {\n return makeEnvironmentProviders([\n {\n provide: NGX_CONFETTI_GLOBAL_CONFIG,\n useValue: config ?? defaultsConfettiConfig,\n },\n ]);\n}\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti-directive';\nexport * from './lib/confetti-service';\nexport * from './lib/confetti-component';\nexport * from './lib/confetti-module';\nexport * from './lib/confetti-provider';\nexport * from './lib/config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare class NgxDomConfettiComponent {
9
9
  private _active;
10
10
  set config(_config: Partial<ConfettiConfig>);
11
11
  set active(_active: BooleanInput);
12
- constructor(el: ElementRef, document: any, globalConfig?: ConfettiConfig);
12
+ constructor(el: ElementRef, document: Document, globalConfig?: ConfettiConfig);
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiComponent, [null, { optional: true; }, { optional: true; }]>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxDomConfettiComponent, "ngx-dom-confetti", never, { "config": { "alias": "config"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, never, ["*"], false, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxDomConfettiComponent, "ngx-dom-confetti", never, { "config": { "alias": "config"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, never, ["*"], true, never>;
15
15
  }
@@ -8,8 +8,8 @@ export declare class NgxConfettiDirective {
8
8
  private platform;
9
9
  private _globalConfig;
10
10
  private _confettiRenderer;
11
- constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, document: any, globalConfig?: ConfettiConfig);
11
+ constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, document: Document, globalConfig?: ConfettiConfig);
12
12
  launch(config?: Partial<ConfettiConfig>): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxConfettiDirective, [null, null, null, { optional: true; }, { optional: true; }]>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxConfettiDirective, "[confetti], [ngxConfetti]", ["ngxConfetti"], {}, {}, never, never, false, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxConfettiDirective, "[confetti], [ngxConfetti]", ["ngxConfetti"], {}, {}, never, never, true, never>;
15
15
  }
@@ -1,12 +1,12 @@
1
1
  import { ModuleWithProviders } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "./confetti-component";
4
- import * as i2 from "./confetti-directive";
5
- import * as i3 from "@angular/common";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "./confetti-component";
5
+ import * as i3 from "./confetti-directive";
6
6
  export declare class NgxDomConfettiModule {
7
7
  static forRoot(): ModuleWithProviders<NgxDomConfettiModule>;
8
8
  static forChild(): ModuleWithProviders<NgxDomConfettiModule>;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDomConfettiModule, [typeof i1.NgxDomConfettiComponent, typeof i2.NgxConfettiDirective], [typeof i3.CommonModule], [typeof i1.NgxDomConfettiComponent, typeof i2.NgxConfettiDirective]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDomConfettiModule, never, [typeof i1.CommonModule, typeof i2.NgxDomConfettiComponent, typeof i3.NgxConfettiDirective], [typeof i2.NgxDomConfettiComponent, typeof i3.NgxConfettiDirective]>;
11
11
  static ɵinj: i0.ɵɵInjectorDeclaration<NgxDomConfettiModule>;
12
12
  }
@@ -0,0 +1,2 @@
1
+ import { ConfettiConfig } from './config';
2
+ export declare function provideConfetti(config?: ConfettiConfig): import("@angular/core").EnvironmentProviders;
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class NgxDomConfettiService {
5
5
  private _confettiRenderer;
6
6
  private _globalConfig;
7
- constructor(document: any, globalConfig: ConfettiConfig);
7
+ constructor(document: Document, globalConfig: ConfettiConfig);
8
8
  open(el: HTMLElement | ElementRef, config?: Partial<ConfettiConfig>): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiService, [{ optional: true; }, null]>;
10
10
  static ɵprov: i0.ɵɵInjectableDeclaration<NgxDomConfettiService>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-dom-confetti",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "license": "MIT",
5
5
  "keywords": [
6
6
  "dom-confetti",
@@ -16,8 +16,8 @@
16
16
  },
17
17
  "homepage": "https://github.com/damingerdai/ngx-dom-confetti",
18
18
  "peerDependencies": {
19
- "@angular/common": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
20
- "@angular/core": "^14.0.0|| ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
19
+ "@angular/common": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
20
+ "@angular/core": "^14.0.0|| ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
21
21
  },
22
22
  "dependencies": {
23
23
  "tslib": "^2.3.0"
@@ -30,8 +30,6 @@
30
30
  },
31
31
  ".": {
32
32
  "types": "./index.d.ts",
33
- "esm2022": "./esm2022/ngx-dom-confetti.mjs",
34
- "esm": "./esm2022/ngx-dom-confetti.mjs",
35
33
  "default": "./fesm2022/ngx-dom-confetti.mjs"
36
34
  }
37
35
  },
package/public-api.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './lib/confetti-directive';
2
2
  export * from './lib/confetti-service';
3
3
  export * from './lib/confetti-component';
4
4
  export * from './lib/confetti-module';
5
+ export * from './lib/confetti-provider';
5
6
  export * from './lib/config';
@@ -1,48 +0,0 @@
1
- import { coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Component, Inject, Input, Optional } from '@angular/core';
4
- import { ConfettiRenderer } from './confetti-renderer';
5
- import { NGX_CONFETTI_GLOBAL_CONFIG } from './config';
6
- import * as i0 from "@angular/core";
7
- export class NgxDomConfettiComponent {
8
- set config(_config) {
9
- if (_config) {
10
- this._config = Object.assign(this._config, _config);
11
- }
12
- }
13
- set active(_active) {
14
- this._active = coerceBooleanProperty(_active);
15
- if (this._active) {
16
- this._confettiRenderer.launch(coerceElement(this.el), this._config);
17
- }
18
- }
19
- constructor(el, document, globalConfig) {
20
- this.el = el;
21
- this._config = {
22
- ...globalConfig
23
- };
24
- this._confettiRenderer = new ConfettiRenderer(document);
25
- this._active = false;
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config", active: "active" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
33
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
34
- type: Optional
35
- }, {
36
- type: Inject,
37
- args: [DOCUMENT]
38
- }] }, { type: undefined, decorators: [{
39
- type: Optional
40
- }, {
41
- type: Inject,
42
- args: [NGX_CONFETTI_GLOBAL_CONFIG]
43
- }] }], propDecorators: { config: [{
44
- type: Input
45
- }], active: [{
46
- type: Input
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZldHRpLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBT3RFLE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsSUFDVyxNQUFNLENBQUMsT0FBZ0M7UUFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFDVyxNQUFNLENBQUMsT0FBcUI7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFDVSxFQUFjLEVBQ1EsUUFBYSxFQUNLLFlBQTZCO1FBRnJFLE9BQUUsR0FBRixFQUFFLENBQVk7UUFHdEIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsWUFBWTtTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzs4R0FoQ1UsdUJBQXVCLDRDQXlCWixRQUFRLDZCQUNSLDBCQUEwQjtrR0ExQnJDLHVCQUF1Qix3R0FIeEIsNkJBQTZCOzsyRkFHNUIsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQiw2QkFBNkI7OzBCQTRCcEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEI7eUNBakJyQyxNQUFNO3NCQURoQixLQUFLO2dCQVFLLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZldHRpUmVuZGVyZXIgfSBmcm9tICcuL2NvbmZldHRpLXJlbmRlcmVyJztcbmltcG9ydCB7IENvbmZldHRpQ29uZmlnLCBOR1hfQ09ORkVUVElfR0xPQkFMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRvbS1jb25mZXR0aScsXG4gIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4RG9tQ29uZmV0dGlDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX2NvbmZldHRpUmVuZGVyZXI6IENvbmZldHRpUmVuZGVyZXI7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBQYXJ0aWFsPENvbmZldHRpQ29uZmlnPjtcblxuICBwcml2YXRlIF9hY3RpdmU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb25maWcoX2NvbmZpZzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pIHtcbiAgICBpZiAoX2NvbmZpZykge1xuICAgICAgdGhpcy5fY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLl9jb25maWcsIF9jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlKF9hY3RpdmU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2FjdGl2ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShfYWN0aXZlKTtcbiAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9jb25mZXR0aVJlbmRlcmVyLmxhdW5jaChjb2VyY2VFbGVtZW50KHRoaXMuZWwpLCB0aGlzLl9jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHKSBnbG9iYWxDb25maWc/OiBDb25mZXR0aUNvbmZpZykge1xuICAgIHRoaXMuX2NvbmZpZyA9IHtcbiAgICAgIC4uLmdsb2JhbENvbmZpZ1xuICAgIH07XG4gICAgdGhpcy5fY29uZmV0dGlSZW5kZXJlciA9IG5ldyBDb25mZXR0aVJlbmRlcmVyKGRvY3VtZW50KTtcbiAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgfVxufVxuIl19
@@ -1,45 +0,0 @@
1
- import { coerceElement } from '@angular/cdk/coercion';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Directive, Inject, Optional, } from '@angular/core';
4
- import { ConfettiRenderer } from './confetti-renderer';
5
- import { defaultsConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/platform";
8
- export class NgxConfettiDirective {
9
- constructor(_elementRef, ngZone, platform, document, globalConfig) {
10
- this._elementRef = _elementRef;
11
- this.ngZone = ngZone;
12
- this.platform = platform;
13
- this._globalConfig = (globalConfig || defaultsConfettiConfig);
14
- this._confettiRenderer = new ConfettiRenderer(document);
15
- }
16
- launch(config) {
17
- if (!this.platform.isBrowser) {
18
- return;
19
- }
20
- const element = coerceElement(this._elementRef);
21
- this.ngZone.runOutsideAngular(() => {
22
- this._confettiRenderer.launch(this._elementRef.nativeElement, config ?? this._globalConfig);
23
- });
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxConfettiDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: NgxConfettiDirective, selector: "[confetti], [ngxConfetti]", exportAs: ["ngxConfetti"], ngImport: i0 }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxConfettiDirective, decorators: [{
29
- type: Directive,
30
- args: [{
31
- selector: '[confetti], [ngxConfetti]',
32
- exportAs: 'ngxConfetti',
33
- }]
34
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{
35
- type: Optional
36
- }, {
37
- type: Inject,
38
- args: [DOCUMENT]
39
- }] }, { type: undefined, decorators: [{
40
- type: Optional
41
- }, {
42
- type: Inject,
43
- args: [NGX_CONFETTI_GLOBAL_CONFIG]
44
- }] }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZldHRpLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUlOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQWtCLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFNOUYsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNVLFdBQW9DLEVBQ3BDLE1BQWMsRUFDZCxRQUFrQixFQUNJLFFBQWEsRUFDSyxZQUE2QjtRQUpyRSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFJMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFlBQVksSUFBSSxzQkFBc0IsQ0FBbUIsQ0FBQztRQUNoRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBR00sTUFBTSxDQUFDLE1BQWdDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUYsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDOzhHQTNCVSxvQkFBb0IsMEZBVVQsUUFBUSw2QkFDUiwwQkFBMEI7a0dBWHJDLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7OzBCQVdJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZldHRpUmVuZGVyZXIgfSBmcm9tICcuL2NvbmZldHRpLXJlbmRlcmVyJztcbmltcG9ydCB7IENvbmZldHRpQ29uZmlnLCBkZWZhdWx0c0NvbmZldHRpQ29uZmlnLCBOR1hfQ09ORkVUVElfR0xPQkFMX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NvbmZldHRpXSwgW25neENvbmZldHRpXScsXG4gIGV4cG9ydEFzOiAnbmd4Q29uZmV0dGknLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hDb25mZXR0aURpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBfZ2xvYmFsQ29uZmlnOiBDb25mZXR0aUNvbmZpZztcblxuICBwcml2YXRlIF9jb25mZXR0aVJlbmRlcmVyOiBDb25mZXR0aVJlbmRlcmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHKSBnbG9iYWxDb25maWc/OiBDb25mZXR0aUNvbmZpZyxcbiAgKSB7XG4gICAgdGhpcy5fZ2xvYmFsQ29uZmlnID0gKGdsb2JhbENvbmZpZyB8fCBkZWZhdWx0c0NvbmZldHRpQ29uZmlnKSBhcyBDb25mZXR0aUNvbmZpZztcbiAgICB0aGlzLl9jb25mZXR0aVJlbmRlcmVyID0gbmV3IENvbmZldHRpUmVuZGVyZXIoZG9jdW1lbnQpO1xuICB9XG5cblxuICBwdWJsaWMgbGF1bmNoKGNvbmZpZz86IFBhcnRpYWw8Q29uZmV0dGlDb25maWc+KSB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50ID0gY29lcmNlRWxlbWVudCh0aGlzLl9lbGVtZW50UmVmKTtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9jb25mZXR0aVJlbmRlcmVyLmxhdW5jaCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyA/PyB0aGlzLl9nbG9iYWxDb25maWcpO1xuICAgIH0pXG5cbiAgfVxuXG59XG4iXX0=
@@ -1,68 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { NgxConfettiDirective } from './confetti-directive';
4
- import { NgxDomConfettiComponent } from './confetti-component';
5
- import { NgxDomConfettiService } from './confetti-service';
6
- import { defaultsConfettiConfig, NGX_CONFETTI_GLOBAL_CONFIG } from './config';
7
- import * as i0 from "@angular/core";
8
- export class NgxDomConfettiModule {
9
- static forRoot() {
10
- return {
11
- ngModule: NgxDomConfettiModule,
12
- providers: [
13
- {
14
- provide: NGX_CONFETTI_GLOBAL_CONFIG,
15
- useValue: defaultsConfettiConfig,
16
- },
17
- NgxDomConfettiService,
18
- ],
19
- };
20
- }
21
- static forChild() {
22
- return {
23
- ngModule: NgxDomConfettiModule,
24
- providers: [
25
- {
26
- provide: NGX_CONFETTI_GLOBAL_CONFIG,
27
- useValue: defaultsConfettiConfig,
28
- },
29
- NgxDomConfettiService,
30
- ],
31
- };
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
34
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent,
35
- NgxConfettiDirective], imports: [CommonModule], exports: [NgxDomConfettiComponent,
36
- NgxConfettiDirective] }); }
37
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, providers: [
38
- {
39
- provide: NGX_CONFETTI_GLOBAL_CONFIG,
40
- useValue: defaultsConfettiConfig,
41
- },
42
- NgxDomConfettiService,
43
- ], imports: [CommonModule] }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
46
- type: NgModule,
47
- args: [{
48
- declarations: [
49
- NgxDomConfettiComponent,
50
- NgxConfettiDirective,
51
- ],
52
- imports: [
53
- CommonModule,
54
- ],
55
- providers: [
56
- {
57
- provide: NGX_CONFETTI_GLOBAL_CONFIG,
58
- useValue: defaultsConfettiConfig,
59
- },
60
- NgxDomConfettiService,
61
- ],
62
- exports: [
63
- NgxDomConfettiComponent,
64
- NgxConfettiDirective
65
- ]
66
- }]
67
- }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZldHRpLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQXdCOUUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsMEJBQTBCO29CQUNuQyxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQztnQkFDRCxxQkFBcUI7YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRO1FBQ2IsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO2dCQUNELHFCQUFxQjthQUN0QjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTFCVSxvQkFBb0I7K0dBQXBCLG9CQUFvQixpQkFuQjdCLHVCQUF1QjtZQUN2QixvQkFBb0IsYUFJcEIsWUFBWSxhQVVaLHVCQUF1QjtZQUN2QixvQkFBb0I7K0dBR1gsb0JBQW9CLGFBWnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtnQkFDbkMsUUFBUSxFQUFFLHNCQUFzQjthQUNqQztZQUNELHFCQUFxQjtTQUN0QixZQVJDLFlBQVk7OzJGQWNILG9CQUFvQjtrQkFyQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3FCQUVyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsUUFBUSxFQUFFLHNCQUFzQjt5QkFDakM7d0JBQ0QscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QixvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hDb25mZXR0aURpcmVjdGl2ZSB9IGZyb20gJy4vY29uZmV0dGktZGlyZWN0aXZlJztcbmltcG9ydCB7IE5neERvbUNvbmZldHRpQ29tcG9uZW50IH0gZnJvbSAnLi9jb25mZXR0aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4RG9tQ29uZmV0dGlTZXJ2aWNlIH0gZnJvbSAnLi9jb25mZXR0aS1zZXJ2aWNlJztcbmltcG9ydCB7IGRlZmF1bHRzQ29uZmV0dGlDb25maWcsIE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5neERvbUNvbmZldHRpQ29tcG9uZW50LFxuICAgIE5neENvbmZldHRpRGlyZWN0aXZlLFxuXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHLFxuICAgICAgdXNlVmFsdWU6IGRlZmF1bHRzQ29uZmV0dGlDb25maWcsXG4gICAgfSxcbiAgICBOZ3hEb21Db25mZXR0aVNlcnZpY2UsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOZ3hEb21Db25mZXR0aUNvbXBvbmVudCxcbiAgICBOZ3hDb25mZXR0aURpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neERvbUNvbmZldHRpTW9kdWxlIHtcblxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neERvbUNvbmZldHRpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hEb21Db25mZXR0aU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYX0NPTkZFVFRJX0dMT0JBTF9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGRlZmF1bHRzQ29uZmV0dGlDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIE5neERvbUNvbmZldHRpU2VydmljZSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neERvbUNvbmZldHRpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hEb21Db25mZXR0aU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYX0NPTkZFVFRJX0dMT0JBTF9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGRlZmF1bHRzQ29uZmV0dGlDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIE5neERvbUNvbmZldHRpU2VydmljZSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuIH1cbiJdfQ==
@@ -1,113 +0,0 @@
1
- import { defaultsConfettiConfig } from './config';
2
- export class ConfettiRenderer {
3
- constructor(_document) {
4
- this._document = _document;
5
- }
6
- createElements(elementCount, colors, width, height) {
7
- const fragment = this._document.createDocumentFragment();
8
- const elements = Array.from({ length: elementCount }).map((_, index) => {
9
- const element = this._document.createElement('div');
10
- const color = colors[index % colors.length];
11
- element.style.backgroundColor = color;
12
- element.style.width = width;
13
- element.style.height = height;
14
- element.style.position = 'absolute';
15
- element.style.willChange = 'transform, opacity';
16
- element.style.visibility = 'hidden';
17
- fragment.appendChild(element);
18
- return element;
19
- });
20
- return {
21
- fragment,
22
- elements,
23
- };
24
- }
25
- randomPhysics(angle, spread, startVelocity, random) {
26
- const radAngle = angle * (Math.PI / 180);
27
- const radSpread = spread * (Math.PI / 180);
28
- return {
29
- x: 0,
30
- y: 0,
31
- z: 0,
32
- wobble: random() * 10,
33
- wobbleSpeed: 0.1 + random() * 0.1,
34
- velocity: startVelocity * 0.5 + random() * startVelocity,
35
- angle2D: -radAngle + (0.5 * radSpread - random() * radSpread),
36
- angle3D: -(Math.PI / 4) + random() * (Math.PI / 2),
37
- tiltAngle: random() * Math.PI,
38
- tiltAngleSpeed: 0.1 + random() * 0.3,
39
- };
40
- }
41
- updateFetti(fetti, progress, dragFriction, decay) {
42
- /* eslint-disable no-param-reassign */
43
- fetti.physics.x += Math.cos(fetti.physics.angle2D) * fetti.physics.velocity;
44
- fetti.physics.y += Math.sin(fetti.physics.angle2D) * fetti.physics.velocity;
45
- fetti.physics.z += Math.sin(fetti.physics.angle3D) * fetti.physics.velocity;
46
- fetti.physics.wobble += fetti.physics.wobbleSpeed;
47
- // Backward compatibility
48
- if (decay) {
49
- fetti.physics.velocity *= decay;
50
- }
51
- else {
52
- fetti.physics.velocity -= fetti.physics.velocity * dragFriction;
53
- }
54
- fetti.physics.y += 3;
55
- fetti.physics.tiltAngle += fetti.physics.tiltAngleSpeed;
56
- const { x, y, z, tiltAngle, wobble } = fetti.physics;
57
- const wobbleX = x + 10 * Math.cos(wobble);
58
- const wobbleY = y + 10 * Math.sin(wobble);
59
- const transform = `translate3d(${wobbleX}px, ${wobbleY}px, ${z}px) rotate3d(1, 1, 1, ${tiltAngle}rad)`;
60
- fetti.element.style.visibility = "visible";
61
- fetti.element.style.transform = transform;
62
- fetti.element.style.opacity = (1 - progress).toString();
63
- ;
64
- /* eslint-enable */
65
- }
66
- animate(root, fettis, dragFriction, decay, duration, stagger) {
67
- let startTime;
68
- let isActive = true;
69
- const update = (time) => {
70
- if (!isActive)
71
- return;
72
- if (!startTime)
73
- startTime = time;
74
- const elapsed = time - startTime;
75
- const progress = startTime === time ? 0 : (time - startTime) / duration;
76
- fettis.slice(0, Math.ceil(elapsed / stagger)).forEach(fetti => {
77
- this.updateFetti(fetti, progress, dragFriction, decay);
78
- });
79
- if (time - startTime < duration) {
80
- requestAnimationFrame(update);
81
- }
82
- else {
83
- fettis.forEach((fetti) => {
84
- if (fetti.element.parentNode === root) {
85
- root.removeChild(fetti.element);
86
- }
87
- });
88
- isActive = false;
89
- }
90
- };
91
- requestAnimationFrame(update);
92
- return new Promise(resolve => {
93
- const checkIfDone = setInterval(() => {
94
- if (!isActive) {
95
- clearInterval(checkIfDone);
96
- resolve();
97
- }
98
- }, 100);
99
- });
100
- }
101
- launch(root, config) {
102
- const { elementCount, colors, width, height, perspective, angle, spread, startVelocity, decay, dragFriction, duration, stagger, random, } = { ...defaultsConfettiConfig, ...config };
103
- root.style.perspective = perspective;
104
- const { fragment, elements } = this.createElements(elementCount ?? 50, colors, width, height);
105
- root.appendChild(fragment);
106
- const fettis = elements.map((element) => ({
107
- element,
108
- physics: this.randomPhysics(angle, spread, startVelocity, random),
109
- }));
110
- return this.animate(root, fettis, dragFriction, decay, duration, stagger);
111
- }
112
- }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvY29uZmV0dGktcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQW9CbEUsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFvQixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQUksQ0FBQztJQUVwQyxjQUFjLENBQ3BCLFlBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLEtBQWEsRUFDYixNQUFjO1FBS2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1lBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUNwQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLFFBQVE7WUFDUixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhLENBQ25CLEtBQWEsRUFDYixNQUFjLEVBQ2QsYUFBcUIsRUFDckIsTUFBb0I7UUFFcEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU87WUFDTCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNyQixXQUFXLEVBQUUsR0FBRyxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUc7WUFDakMsUUFBUSxFQUFFLGFBQWEsR0FBRyxHQUFHLEdBQUcsTUFBTSxFQUFFLEdBQUcsYUFBYTtZQUN4RCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUM3RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRCxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDN0IsY0FBYyxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsR0FBRyxHQUFHO1NBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWEsRUFBRSxRQUFnQixFQUFFLFlBQW9CLEVBQUUsS0FBYTtRQUN0RixzQ0FBc0M7UUFDdEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUM1RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDNUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDbEQseUJBQXlCO1FBQ3pCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDbEUsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUV4RCxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBRyxlQUFlLE9BQU8sT0FBTyxPQUFPLE9BQU8sQ0FBQyx5QkFBeUIsU0FBUyxNQUFNLENBQUM7UUFFdkcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUFBLENBQUM7UUFDekQsbUJBQW1CO0lBQ3JCLENBQUM7SUFFTyxPQUFPLENBQUMsSUFBaUIsRUFBRSxNQUFxQixFQUFFLFlBQW9CLEVBQUUsS0FBYSxFQUFFLFFBQWdCLEVBQUUsT0FBZTtRQUM5SCxJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixJQUFJLENBQUMsU0FBUztnQkFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUM7WUFDakMsTUFBTSxRQUFRLEdBQUcsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDeEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksR0FBRyxTQUFTLEdBQUcsUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7d0JBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNsQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVGLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQTtRQUVELHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7WUFDakMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFpQixFQUFFLE1BQWdDO1FBQy9ELE1BQU0sRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sYUFBYSxFQUNiLEtBQUssRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLE9BQU8sRUFDUCxNQUFNLEdBQ1AsR0FBRyxFQUFFLEdBQUcsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDaEQsWUFBWSxJQUFJLEVBQUUsRUFDbEIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLENBQ1AsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxPQUFPO1lBQ1AsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1NBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmV0dGlDb25maWcsIGRlZmF1bHRzQ29uZmV0dGlDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbmludGVyZmFjZSBJUGh5c2ljcyB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB6OiBudW1iZXI7XG4gIHdvYmJsZTogbnVtYmVyO1xuICB3b2JibGVTcGVlZDogbnVtYmVyO1xuICB2ZWxvY2l0eTogbnVtYmVyO1xuICBhbmdsZTJEOiBudW1iZXI7XG4gIGFuZ2xlM0Q6IG51bWJlcjtcbiAgdGlsdEFuZ2xlOiBudW1iZXI7XG4gIHRpbHRBbmdsZVNwZWVkOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJRmV0dGkge1xuICBlbGVtZW50OiBIVE1MRGl2RWxlbWVudCxcbiAgcGh5c2ljczogSVBoeXNpY3Ncbn1cblxuZXhwb3J0IGNsYXNzIENvbmZldHRpUmVuZGVyZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCkgeyB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbGVtZW50cyhcbiAgICBlbGVtZW50Q291bnQ6IG51bWJlcixcbiAgICBjb2xvcnM6IHN0cmluZ1tdLFxuICAgIHdpZHRoOiBzdHJpbmcsXG4gICAgaGVpZ2h0OiBzdHJpbmdcbiAgKToge1xuICAgIGZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LFxuICAgIGVsZW1lbnRzOiBIVE1MRGl2RWxlbWVudFtdXG4gIH0ge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogZWxlbWVudENvdW50IH0pLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JzW2luZGV4ICUgY29sb3JzLmxlbmd0aF07XG4gICAgICBlbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoO1xuICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIGVsZW1lbnQuc3R5bGUud2lsbENoYW5nZSA9ICd0cmFuc2Zvcm0sIG9wYWNpdHknO1xuICAgICAgZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZyYWdtZW50LFxuICAgICAgZWxlbWVudHMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmFuZG9tUGh5c2ljcyhcbiAgICBhbmdsZTogbnVtYmVyLFxuICAgIHNwcmVhZDogbnVtYmVyLFxuICAgIHN0YXJ0VmVsb2NpdHk6IG51bWJlcixcbiAgICByYW5kb206ICgpID0+IG51bWJlclxuICApOiBJUGh5c2ljcyB7XG4gICAgY29uc3QgcmFkQW5nbGUgPSBhbmdsZSAqIChNYXRoLlBJIC8gMTgwKTtcbiAgICBjb25zdCByYWRTcHJlYWQgPSBzcHJlYWQgKiAoTWF0aC5QSSAvIDE4MCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwLFxuICAgICAgejogMCxcbiAgICAgIHdvYmJsZTogcmFuZG9tKCkgKiAxMCxcbiAgICAgIHdvYmJsZVNwZWVkOiAwLjEgKyByYW5kb20oKSAqIDAuMSxcbiAgICAgIHZlbG9jaXR5OiBzdGFydFZlbG9jaXR5ICogMC41ICsgcmFuZG9tKCkgKiBzdGFydFZlbG9jaXR5LFxuICAgICAgYW5nbGUyRDogLXJhZEFuZ2xlICsgKDAuNSAqIHJhZFNwcmVhZCAtIHJhbmRvbSgpICogcmFkU3ByZWFkKSxcbiAgICAgIGFuZ2xlM0Q6IC0oTWF0aC5QSSAvIDQpICsgcmFuZG9tKCkgKiAoTWF0aC5QSSAvIDIpLFxuICAgICAgdGlsdEFuZ2xlOiByYW5kb20oKSAqIE1hdGguUEksXG4gICAgICB0aWx0QW5nbGVTcGVlZDogMC4xICsgcmFuZG9tKCkgKiAwLjMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRmV0dGkoZmV0dGk6IElGZXR0aSwgcHJvZ3Jlc3M6IG51bWJlciwgZHJhZ0ZyaWN0aW9uOiBudW1iZXIsIGRlY2F5OiBudW1iZXIpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuICAgIGZldHRpLnBoeXNpY3MueCArPSBNYXRoLmNvcyhmZXR0aS5waHlzaWNzLmFuZ2xlMkQpICogZmV0dGkucGh5c2ljcy52ZWxvY2l0eTtcbiAgICBmZXR0aS5waHlzaWNzLnkgKz0gTWF0aC5zaW4oZmV0dGkucGh5c2ljcy5hbmdsZTJEKSAqIGZldHRpLnBoeXNpY3MudmVsb2NpdHk7XG4gICAgZmV0dGkucGh5c2ljcy56ICs9IE1hdGguc2luKGZldHRpLnBoeXNpY3MuYW5nbGUzRCkgKiBmZXR0aS5waHlzaWNzLnZlbG9jaXR5O1xuICAgIGZldHRpLnBoeXNpY3Mud29iYmxlICs9IGZldHRpLnBoeXNpY3Mud29iYmxlU3BlZWQ7XG4gICAgLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgIGlmIChkZWNheSkge1xuICAgICAgZmV0dGkucGh5c2ljcy52ZWxvY2l0eSAqPSBkZWNheTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmV0dGkucGh5c2ljcy52ZWxvY2l0eSAtPSBmZXR0aS5waHlzaWNzLnZlbG9jaXR5ICogZHJhZ0ZyaWN0aW9uO1xuICAgIH1cbiAgICBmZXR0aS5waHlzaWNzLnkgKz0gMztcbiAgICBmZXR0aS5waHlzaWNzLnRpbHRBbmdsZSArPSBmZXR0aS5waHlzaWNzLnRpbHRBbmdsZVNwZWVkO1xuXG4gICAgY29uc3QgeyB4LCB5LCB6LCB0aWx0QW5nbGUsIHdvYmJsZSB9ID0gZmV0dGkucGh5c2ljcztcbiAgICBjb25zdCB3b2JibGVYID0geCArIDEwICogTWF0aC5jb3Mod29iYmxlKTtcbiAgICBjb25zdCB3b2JibGVZID0geSArIDEwICogTWF0aC5zaW4od29iYmxlKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt3b2JibGVYfXB4LCAke3dvYmJsZVl9cHgsICR7en1weCkgcm90YXRlM2QoMSwgMSwgMSwgJHt0aWx0QW5nbGV9cmFkKWA7XG5cbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIjtcbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAoMSAtIHByb2dyZXNzKS50b1N0cmluZygpOztcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGUocm9vdDogSFRNTEVsZW1lbnQsIGZldHRpczogQXJyYXk8SUZldHRpPiwgZHJhZ0ZyaWN0aW9uOiBudW1iZXIsIGRlY2F5OiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIsIHN0YWdnZXI6IG51bWJlcikge1xuICAgIGxldCBzdGFydFRpbWU6IG51bWJlcjtcbiAgICBsZXQgaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgY29uc3QgdXBkYXRlID0gKHRpbWU6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKCFpc0FjdGl2ZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoIXN0YXJ0VGltZSkgc3RhcnRUaW1lID0gdGltZTtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSB0aW1lIC0gc3RhcnRUaW1lO1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBzdGFydFRpbWUgPT09IHRpbWUgPyAwIDogKHRpbWUgLSBzdGFydFRpbWUpIC8gZHVyYXRpb247XG4gICAgICBmZXR0aXMuc2xpY2UoMCwgTWF0aC5jZWlsKGVsYXBzZWQgLyBzdGFnZ2VyKSkuZm9yRWFjaChmZXR0aSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlRmV0dGkoZmV0dGksIHByb2dyZXNzLCBkcmFnRnJpY3Rpb24sIGRlY2F5KTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGltZSAtIHN0YXJ0VGltZSA8IGR1cmF0aW9uKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmV0dGlzLmZvckVhY2goKGZldHRpKSA9PiB7XG4gICAgICAgICAgaWYgKGZldHRpLmVsZW1lbnQucGFyZW50Tm9kZSA9PT0gcm9vdCkge1xuICAgICAgICAgICAgcm9vdC5yZW1vdmVDaGlsZChmZXR0aS5lbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIGNvbnN0IGNoZWNrSWZEb25lID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja0lmRG9uZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxhdW5jaChyb290OiBIVE1MRWxlbWVudCwgY29uZmlnPzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBlbGVtZW50Q291bnQsXG4gICAgICBjb2xvcnMsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHBlcnNwZWN0aXZlLFxuICAgICAgYW5nbGUsXG4gICAgICBzcHJlYWQsXG4gICAgICBzdGFydFZlbG9jaXR5LFxuICAgICAgZGVjYXksXG4gICAgICBkcmFnRnJpY3Rpb24sXG4gICAgICBkdXJhdGlvbixcbiAgICAgIHN0YWdnZXIsXG4gICAgICByYW5kb20sXG4gICAgfSA9IHsgLi4uZGVmYXVsdHNDb25mZXR0aUNvbmZpZywgLi4uY29uZmlnIH0gYXMgQ29uZmV0dGlDb25maWc7XG4gICAgcm9vdC5zdHlsZS5wZXJzcGVjdGl2ZSA9IHBlcnNwZWN0aXZlO1xuICAgIGNvbnN0IHsgZnJhZ21lbnQsIGVsZW1lbnRzIH0gPSB0aGlzLmNyZWF0ZUVsZW1lbnRzKFxuICAgICAgZWxlbWVudENvdW50ID8/IDUwLFxuICAgICAgY29sb3JzLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICApO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICAgIGNvbnN0IGZldHRpcyA9IGVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gKHtcbiAgICAgIGVsZW1lbnQsXG4gICAgICBwaHlzaWNzOiB0aGlzLnJhbmRvbVBoeXNpY3MoYW5nbGUsIHNwcmVhZCwgc3RhcnRWZWxvY2l0eSwgcmFuZG9tKSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gdGhpcy5hbmltYXRlKHJvb3QsIGZldHRpcywgZHJhZ0ZyaWN0aW9uLCBkZWNheSwgZHVyYXRpb24sIHN0YWdnZXIpO1xuICB9XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { coerceElement } from '@angular/cdk/coercion';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Inject, Injectable, Optional } from '@angular/core';
4
- import { ConfettiRenderer } from './confetti-renderer';
5
- import { NGX_CONFETTI_GLOBAL_CONFIG } from './config';
6
- import * as i0 from "@angular/core";
7
- export class NgxDomConfettiService {
8
- constructor(document, globalConfig) {
9
- this._confettiRenderer = new ConfettiRenderer(document);
10
- this._globalConfig = globalConfig;
11
- }
12
- open(el, config) {
13
- this._confettiRenderer.launch(coerceElement(el), config ?? this._globalConfig);
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService, deps: [{ token: DOCUMENT, optional: true }, { token: NGX_CONFETTI_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgxDomConfettiService, decorators: [{
19
- type: Injectable
20
- }], ctorParameters: () => [{ type: undefined, decorators: [{
21
- type: Optional
22
- }, {
23
- type: Inject,
24
- args: [DOCUMENT]
25
- }] }, { type: undefined, decorators: [{
26
- type: Inject,
27
- args: [NGX_CONFETTI_GLOBAL_CONFIG]
28
- }] }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25neC1kb20tY29uZmV0dGkvc3JjL2xpYi9jb25mZXR0aS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFjLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3RFLE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDZ0MsUUFBYSxFQUNQLFlBQTRCO1FBRWhFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxJQUFJLENBQUMsRUFBNEIsRUFBRSxNQUFnQztRQUN4RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUMzQixhQUFhLENBQUMsRUFBRSxDQUFDLEVBQ2pCLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs4R0FuQlUscUJBQXFCLGtCQU9WLFFBQVEsNkJBQ3BCLDBCQUEwQjtrSEFSekIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFRTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmV0dGlSZW5kZXJlciB9IGZyb20gJy4vY29uZmV0dGktcmVuZGVyZXInO1xuaW1wb3J0IHsgQ29uZmV0dGlDb25maWcsIE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4RG9tQ29uZmV0dGlTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9jb25mZXR0aVJlbmRlcmVyOiBDb25mZXR0aVJlbmRlcmVyO1xuXG4gIHByaXZhdGUgX2dsb2JhbENvbmZpZzogQ29uZmV0dGlDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgICBASW5qZWN0KE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHKSBnbG9iYWxDb25maWc6IENvbmZldHRpQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLl9jb25mZXR0aVJlbmRlcmVyID0gbmV3IENvbmZldHRpUmVuZGVyZXIoZG9jdW1lbnQpO1xuICAgIHRoaXMuX2dsb2JhbENvbmZpZyA9IGdsb2JhbENvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKGVsOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYsIGNvbmZpZz86IFBhcnRpYWw8Q29uZmV0dGlDb25maWc+KSB7XG4gICAgdGhpcy5fY29uZmV0dGlSZW5kZXJlci5sYXVuY2goXG4gICAgICBjb2VyY2VFbGVtZW50KGVsKSxcbiAgICAgIGNvbmZpZyA/PyB0aGlzLl9nbG9iYWxDb25maWdcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export const NGX_CONFETTI_GLOBAL_CONFIG = new InjectionToken('ngx-confetti-global-config');
3
- const defaultColors = ["#a864fd", "#29cdff", "#78ff44", "#ff718d", "#fdff6a"];
4
- export const defaultsConfettiConfig = {
5
- angle: 90,
6
- spread: 45,
7
- startVelocity: 45,
8
- elementCount: 50,
9
- width: "10px",
10
- height: "10px",
11
- perspective: "",
12
- colors: defaultColors,
13
- duration: 3000,
14
- stagger: 0,
15
- dragFriction: 0.1,
16
- random: Math.random
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IvQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDMUQsNEJBQTRCLENBQzdCLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNwQyxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0lBQ1YsYUFBYSxFQUFFLEVBQUU7SUFDakIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsS0FBSyxFQUFFLE1BQU07SUFDYixNQUFNLEVBQUUsTUFBTTtJQUNkLFdBQVcsRUFBRSxFQUFFO0lBQ2YsTUFBTSxFQUFFLGFBQWE7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNWLFlBQVksRUFBRSxHQUFHO0lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtDQUNwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZldHRpQ29uZmlnIHtcbiAgYW5nbGU6IG51bWJlcjtcbiAgc3ByZWFkOiBudW1iZXI7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xuICBwZXJzcGVjdGl2ZTogc3RyaW5nO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICBkcmFnRnJpY3Rpb246IG51bWJlcjtcbiAgc3RhZ2dlcjogbnVtYmVyO1xuICBzdGFydFZlbG9jaXR5OiBudW1iZXI7XG4gIGVsZW1lbnRDb3VudDogbnVtYmVyO1xuICBkZWNheTogbnVtYmVyO1xuICBjb2xvcnM6IHN0cmluZ1tdO1xuICByYW5kb206ICgpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPENvbmZldHRpQ29uZmlnPihcbiAgJ25neC1jb25mZXR0aS1nbG9iYWwtY29uZmlnJyxcbik7XG5cbmNvbnN0IGRlZmF1bHRDb2xvcnMgPSBbXCIjYTg2NGZkXCIsIFwiIzI5Y2RmZlwiLCBcIiM3OGZmNDRcIiwgXCIjZmY3MThkXCIsIFwiI2ZkZmY2YVwiXTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzQ29uZmV0dGlDb25maWcgPSB7XG4gIGFuZ2xlOiA5MCxcbiAgc3ByZWFkOiA0NSxcbiAgc3RhcnRWZWxvY2l0eTogNDUsXG4gIGVsZW1lbnRDb3VudDogNTAsXG4gIHdpZHRoOiBcIjEwcHhcIixcbiAgaGVpZ2h0OiBcIjEwcHhcIixcbiAgcGVyc3BlY3RpdmU6IFwiXCIsXG4gIGNvbG9yczogZGVmYXVsdENvbG9ycyxcbiAgZHVyYXRpb246IDMwMDAsXG4gIHN0YWdnZXI6IDAsXG4gIGRyYWdGcmljdGlvbjogMC4xLFxuICByYW5kb206IE1hdGgucmFuZG9tXG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRvbS1jb25mZXR0aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL25neC1kb20tY29uZmV0dGkvc3JjL25neC1kb20tY29uZmV0dGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,9 +0,0 @@
1
- /*
2
- * Public API Surface of ngx-dom-confetti
3
- */
4
- export * from './lib/confetti-directive';
5
- export * from './lib/confetti-service';
6
- export * from './lib/confetti-component';
7
- export * from './lib/confetti-module';
8
- export * from './lib/config';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL25neC1kb20tY29uZmV0dGkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtZG9tLWNvbmZldHRpXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZldHRpLWRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25mZXR0aS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZldHRpLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25mZXR0aS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnJztcbiJdfQ==