ngx-dom-confetti 0.5.0 → 0.6.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.
- package/fesm2022/ngx-dom-confetti.mjs +36 -54
- package/fesm2022/ngx-dom-confetti.mjs.map +1 -1
- package/index.d.ts +81 -5
- package/package.json +3 -3
- package/lib/confetti-component.d.ts +0 -15
- package/lib/confetti-directive.d.ts +0 -15
- package/lib/confetti-module.d.ts +0 -12
- package/lib/confetti-provider.d.ts +0 -2
- package/lib/confetti-renderer.d.ts +0 -10
- package/lib/confetti-service.d.ts +0 -11
- package/lib/config.d.ts +0 -31
- package/public-api.d.ts +0 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Platform } from '@angular/cdk/platform';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken,
|
|
4
|
-
import * as i1 from '@angular/cdk/platform';
|
|
3
|
+
import { InjectionToken, inject, ElementRef, NgZone, DOCUMENT, Directive, Injectable, Component, Input, NgModule, makeEnvironmentProviders } from '@angular/core';
|
|
5
4
|
import { coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
6
|
|
|
7
7
|
const NGX_CONFETTI_GLOBAL_CONFIG = new InjectionToken('ngx-confetti-global-config');
|
|
8
8
|
const defaultColors = ["#a864fd", "#29cdff", "#78ff44", "#ff718d", "#fdff6a"];
|
|
@@ -132,10 +132,14 @@ class ConfettiRenderer {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
class NgxConfettiDirective {
|
|
135
|
-
constructor(
|
|
136
|
-
this._elementRef =
|
|
137
|
-
this.ngZone =
|
|
138
|
-
this.platform =
|
|
135
|
+
constructor() {
|
|
136
|
+
this._elementRef = inject(ElementRef);
|
|
137
|
+
this.ngZone = inject(NgZone);
|
|
138
|
+
this.platform = inject(Platform);
|
|
139
|
+
const document = inject(DOCUMENT, { optional: true });
|
|
140
|
+
const globalConfig = inject(NGX_CONFETTI_GLOBAL_CONFIG, {
|
|
141
|
+
optional: true,
|
|
142
|
+
});
|
|
139
143
|
this._globalConfig = (globalConfig ||
|
|
140
144
|
defaultsConfettiConfig);
|
|
141
145
|
this._confettiRenderer = new ConfettiRenderer(document);
|
|
@@ -149,49 +153,33 @@ class NgxConfettiDirective {
|
|
|
149
153
|
this._confettiRenderer.launch(this._elementRef.nativeElement, config ?? this._globalConfig);
|
|
150
154
|
});
|
|
151
155
|
}
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
153
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
156
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxConfettiDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
157
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: NgxConfettiDirective, isStandalone: true, selector: "[confetti], [ngxConfetti]", exportAs: ["ngxConfetti"], ngImport: i0 }); }
|
|
154
158
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxConfettiDirective, decorators: [{
|
|
156
160
|
type: Directive,
|
|
157
161
|
args: [{
|
|
158
162
|
selector: '[confetti], [ngxConfetti]',
|
|
159
163
|
exportAs: 'ngxConfetti',
|
|
160
164
|
}]
|
|
161
|
-
}], ctorParameters: () => [
|
|
162
|
-
type: Optional
|
|
163
|
-
}, {
|
|
164
|
-
type: Inject,
|
|
165
|
-
args: [DOCUMENT]
|
|
166
|
-
}] }, { type: undefined, decorators: [{
|
|
167
|
-
type: Optional
|
|
168
|
-
}, {
|
|
169
|
-
type: Inject,
|
|
170
|
-
args: [NGX_CONFETTI_GLOBAL_CONFIG]
|
|
171
|
-
}] }] });
|
|
165
|
+
}], ctorParameters: () => [] });
|
|
172
166
|
|
|
173
167
|
class NgxDomConfettiService {
|
|
174
|
-
constructor(
|
|
168
|
+
constructor() {
|
|
169
|
+
const document = inject(DOCUMENT, { optional: true });
|
|
170
|
+
const globalConfig = inject(NGX_CONFETTI_GLOBAL_CONFIG);
|
|
175
171
|
this._confettiRenderer = new ConfettiRenderer(document);
|
|
176
172
|
this._globalConfig = globalConfig;
|
|
177
173
|
}
|
|
178
174
|
open(el, config) {
|
|
179
175
|
this._confettiRenderer.launch(coerceElement(el), config ?? this._globalConfig);
|
|
180
176
|
}
|
|
181
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
182
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
178
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiService }); }
|
|
183
179
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiService, decorators: [{
|
|
185
181
|
type: Injectable
|
|
186
|
-
}], ctorParameters: () => [
|
|
187
|
-
type: Optional
|
|
188
|
-
}, {
|
|
189
|
-
type: Inject,
|
|
190
|
-
args: [DOCUMENT]
|
|
191
|
-
}] }, { type: undefined, decorators: [{
|
|
192
|
-
type: Inject,
|
|
193
|
-
args: [NGX_CONFETTI_GLOBAL_CONFIG]
|
|
194
|
-
}] }] });
|
|
182
|
+
}], ctorParameters: () => [] });
|
|
195
183
|
|
|
196
184
|
class NgxDomConfettiComponent {
|
|
197
185
|
set config(_config) {
|
|
@@ -205,31 +193,25 @@ class NgxDomConfettiComponent {
|
|
|
205
193
|
this._confettiRenderer.launch(coerceElement(this.el), this._config);
|
|
206
194
|
}
|
|
207
195
|
}
|
|
208
|
-
constructor(
|
|
209
|
-
this.el =
|
|
196
|
+
constructor() {
|
|
197
|
+
this.el = inject(ElementRef);
|
|
198
|
+
const document = inject(DOCUMENT, { optional: true });
|
|
199
|
+
const globalConfig = inject(NGX_CONFETTI_GLOBAL_CONFIG, {
|
|
200
|
+
optional: true,
|
|
201
|
+
});
|
|
210
202
|
this._config = {
|
|
211
203
|
...globalConfig,
|
|
212
204
|
};
|
|
213
205
|
this._confettiRenderer = new ConfettiRenderer(document);
|
|
214
206
|
this._active = false;
|
|
215
207
|
}
|
|
216
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
217
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: NgxDomConfettiComponent, isStandalone: true, selector: "ngx-dom-confetti", inputs: { config: "config", active: "active" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
|
|
218
210
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
|
|
220
212
|
type: Component,
|
|
221
213
|
args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
|
|
222
|
-
}], ctorParameters: () => [
|
|
223
|
-
type: Optional
|
|
224
|
-
}, {
|
|
225
|
-
type: Inject,
|
|
226
|
-
args: [DOCUMENT]
|
|
227
|
-
}] }, { type: undefined, decorators: [{
|
|
228
|
-
type: Optional
|
|
229
|
-
}, {
|
|
230
|
-
type: Inject,
|
|
231
|
-
args: [NGX_CONFETTI_GLOBAL_CONFIG]
|
|
232
|
-
}] }], propDecorators: { config: [{
|
|
214
|
+
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
233
215
|
type: Input
|
|
234
216
|
}], active: [{
|
|
235
217
|
type: Input
|
|
@@ -260,9 +242,9 @@ class NgxDomConfettiModule {
|
|
|
260
242
|
],
|
|
261
243
|
};
|
|
262
244
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
264
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
265
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
246
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiModule, imports: [CommonModule, NgxDomConfettiComponent, NgxConfettiDirective], exports: [NgxDomConfettiComponent, NgxConfettiDirective] }); }
|
|
247
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiModule, providers: [
|
|
266
248
|
{
|
|
267
249
|
provide: NGX_CONFETTI_GLOBAL_CONFIG,
|
|
268
250
|
useValue: defaultsConfettiConfig,
|
|
@@ -270,7 +252,7 @@ class NgxDomConfettiModule {
|
|
|
270
252
|
NgxDomConfettiService,
|
|
271
253
|
], imports: [CommonModule] }); }
|
|
272
254
|
}
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
|
|
274
256
|
type: NgModule,
|
|
275
257
|
args: [{
|
|
276
258
|
declarations: [],
|
|
@@ -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/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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"}
|
|
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';\n\nimport { Directive, ElementRef, NgZone, DOCUMENT, inject } 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 _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n private platform = inject(Platform);\n\n private _globalConfig: ConfettiConfig;\n\n private _confettiRenderer: ConfettiRenderer;\n\n constructor() {\n const document = inject<Document>(DOCUMENT, { optional: true })!;\n const globalConfig = inject<ConfettiConfig>(NGX_CONFETTI_GLOBAL_CONFIG, {\n optional: true,\n });\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';\n\nimport { ElementRef, Injectable, DOCUMENT, inject } 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 const document = inject<Document>(DOCUMENT, { optional: true })!;\n const globalConfig = inject<ConfettiConfig>(NGX_CONFETTI_GLOBAL_CONFIG);\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';\n\nimport { Component, ElementRef, Input, DOCUMENT, inject } 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 el = inject(ElementRef);\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 const document = inject<Document>(DOCUMENT, { optional: true })!;\n const globalConfig = inject<ConfettiConfig>(NGX_CONFETTI_GLOBAL_CONFIG, {\n optional: true,\n });\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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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, ElementRef, ModuleWithProviders } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
4
|
+
import * as i1 from '@angular/common';
|
|
5
|
+
|
|
6
|
+
interface ConfettiConfig {
|
|
7
|
+
angle: number;
|
|
8
|
+
spread: number;
|
|
9
|
+
width: string;
|
|
10
|
+
height: string;
|
|
11
|
+
perspective: string;
|
|
12
|
+
duration: number;
|
|
13
|
+
dragFriction: number;
|
|
14
|
+
stagger: number;
|
|
15
|
+
startVelocity: number;
|
|
16
|
+
elementCount: number;
|
|
17
|
+
decay: number;
|
|
18
|
+
colors: string[];
|
|
19
|
+
random: () => number;
|
|
20
|
+
}
|
|
21
|
+
declare const NGX_CONFETTI_GLOBAL_CONFIG: InjectionToken<ConfettiConfig>;
|
|
22
|
+
declare const defaultsConfettiConfig: {
|
|
23
|
+
angle: number;
|
|
24
|
+
spread: number;
|
|
25
|
+
startVelocity: number;
|
|
26
|
+
elementCount: number;
|
|
27
|
+
width: string;
|
|
28
|
+
height: string;
|
|
29
|
+
perspective: string;
|
|
30
|
+
colors: string[];
|
|
31
|
+
duration: number;
|
|
32
|
+
stagger: number;
|
|
33
|
+
dragFriction: number;
|
|
34
|
+
random: () => number;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
declare class NgxConfettiDirective {
|
|
38
|
+
private _elementRef;
|
|
39
|
+
private ngZone;
|
|
40
|
+
private platform;
|
|
41
|
+
private _globalConfig;
|
|
42
|
+
private _confettiRenderer;
|
|
43
|
+
constructor();
|
|
44
|
+
launch(config?: Partial<ConfettiConfig>): void;
|
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxConfettiDirective, never>;
|
|
46
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxConfettiDirective, "[confetti], [ngxConfetti]", ["ngxConfetti"], {}, {}, never, never, true, never>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare class NgxDomConfettiService {
|
|
50
|
+
private _confettiRenderer;
|
|
51
|
+
private _globalConfig;
|
|
52
|
+
constructor();
|
|
53
|
+
open(el: HTMLElement | ElementRef, config?: Partial<ConfettiConfig>): void;
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiService, never>;
|
|
55
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgxDomConfettiService>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare class NgxDomConfettiComponent {
|
|
59
|
+
private el;
|
|
60
|
+
private _confettiRenderer;
|
|
61
|
+
private _config;
|
|
62
|
+
private _active;
|
|
63
|
+
set config(_config: Partial<ConfettiConfig>);
|
|
64
|
+
set active(_active: BooleanInput);
|
|
65
|
+
constructor();
|
|
66
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiComponent, never>;
|
|
67
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxDomConfettiComponent, "ngx-dom-confetti", never, { "config": { "alias": "config"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
declare class NgxDomConfettiModule {
|
|
71
|
+
static forRoot(): ModuleWithProviders<NgxDomConfettiModule>;
|
|
72
|
+
static forChild(): ModuleWithProviders<NgxDomConfettiModule>;
|
|
73
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiModule, never>;
|
|
74
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDomConfettiModule, never, [typeof i1.CommonModule, typeof NgxDomConfettiComponent, typeof NgxConfettiDirective], [typeof NgxDomConfettiComponent, typeof NgxConfettiDirective]>;
|
|
75
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxDomConfettiModule>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
declare function provideConfetti(config?: ConfettiConfig): i0.EnvironmentProviders;
|
|
79
|
+
|
|
80
|
+
export { NGX_CONFETTI_GLOBAL_CONFIG, NgxConfettiDirective, NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, defaultsConfettiConfig, provideConfetti };
|
|
81
|
+
export type { ConfettiConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-dom-confetti",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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 || ^19.0.0",
|
|
20
|
-
"@angular/core": "^14.0.0|| ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
19
|
+
"@angular/common": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
|
|
20
|
+
"@angular/core": "^14.0.0|| ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"tslib": "^2.3.0"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BooleanInput } from '@angular/cdk/coercion';
|
|
2
|
-
import { ElementRef } from '@angular/core';
|
|
3
|
-
import { ConfettiConfig } from './config';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NgxDomConfettiComponent {
|
|
6
|
-
private el;
|
|
7
|
-
private _confettiRenderer;
|
|
8
|
-
private _config;
|
|
9
|
-
private _active;
|
|
10
|
-
set config(_config: Partial<ConfettiConfig>);
|
|
11
|
-
set active(_active: BooleanInput);
|
|
12
|
-
constructor(el: ElementRef, document: Document, globalConfig?: ConfettiConfig);
|
|
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, ["*"], true, never>;
|
|
15
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Platform } from '@angular/cdk/platform';
|
|
2
|
-
import { ElementRef, NgZone } from '@angular/core';
|
|
3
|
-
import { ConfettiConfig } from './config';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NgxConfettiDirective {
|
|
6
|
-
private _elementRef;
|
|
7
|
-
private ngZone;
|
|
8
|
-
private platform;
|
|
9
|
-
private _globalConfig;
|
|
10
|
-
private _confettiRenderer;
|
|
11
|
-
constructor(_elementRef: ElementRef<HTMLElement>, ngZone: NgZone, platform: Platform, document: Document, globalConfig?: ConfettiConfig);
|
|
12
|
-
launch(config?: Partial<ConfettiConfig>): void;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxConfettiDirective, [null, null, null, { optional: true; }, { optional: true; }]>;
|
|
14
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxConfettiDirective, "[confetti], [ngxConfetti]", ["ngxConfetti"], {}, {}, never, never, true, never>;
|
|
15
|
-
}
|
package/lib/confetti-module.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "./confetti-component";
|
|
5
|
-
import * as i3 from "./confetti-directive";
|
|
6
|
-
export declare class NgxDomConfettiModule {
|
|
7
|
-
static forRoot(): ModuleWithProviders<NgxDomConfettiModule>;
|
|
8
|
-
static forChild(): ModuleWithProviders<NgxDomConfettiModule>;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDomConfettiModule, never, [typeof i1.CommonModule, typeof i2.NgxDomConfettiComponent, typeof i3.NgxConfettiDirective], [typeof i2.NgxDomConfettiComponent, typeof i3.NgxConfettiDirective]>;
|
|
11
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<NgxDomConfettiModule>;
|
|
12
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ConfettiConfig } from './config';
|
|
2
|
-
export declare class ConfettiRenderer {
|
|
3
|
-
private _document;
|
|
4
|
-
constructor(_document: Document);
|
|
5
|
-
private createElements;
|
|
6
|
-
private randomPhysics;
|
|
7
|
-
private updateFetti;
|
|
8
|
-
private animate;
|
|
9
|
-
launch(root: HTMLElement, config?: Partial<ConfettiConfig>): Promise<void>;
|
|
10
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
2
|
-
import { ConfettiConfig } from './config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class NgxDomConfettiService {
|
|
5
|
-
private _confettiRenderer;
|
|
6
|
-
private _globalConfig;
|
|
7
|
-
constructor(document: Document, globalConfig: ConfettiConfig);
|
|
8
|
-
open(el: HTMLElement | ElementRef, config?: Partial<ConfettiConfig>): void;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiService, [{ optional: true; }, null]>;
|
|
10
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NgxDomConfettiService>;
|
|
11
|
-
}
|
package/lib/config.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export interface ConfettiConfig {
|
|
3
|
-
angle: number;
|
|
4
|
-
spread: number;
|
|
5
|
-
width: string;
|
|
6
|
-
height: string;
|
|
7
|
-
perspective: string;
|
|
8
|
-
duration: number;
|
|
9
|
-
dragFriction: number;
|
|
10
|
-
stagger: number;
|
|
11
|
-
startVelocity: number;
|
|
12
|
-
elementCount: number;
|
|
13
|
-
decay: number;
|
|
14
|
-
colors: string[];
|
|
15
|
-
random: () => number;
|
|
16
|
-
}
|
|
17
|
-
export declare const NGX_CONFETTI_GLOBAL_CONFIG: InjectionToken<ConfettiConfig>;
|
|
18
|
-
export declare const defaultsConfettiConfig: {
|
|
19
|
-
angle: number;
|
|
20
|
-
spread: number;
|
|
21
|
-
startVelocity: number;
|
|
22
|
-
elementCount: number;
|
|
23
|
-
width: string;
|
|
24
|
-
height: string;
|
|
25
|
-
perspective: string;
|
|
26
|
-
colors: string[];
|
|
27
|
-
duration: number;
|
|
28
|
-
stagger: number;
|
|
29
|
-
dragFriction: number;
|
|
30
|
-
random: () => number;
|
|
31
|
-
};
|
package/public-api.d.ts
DELETED