ngx-dom-confetti 0.3.1 → 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.
- package/fesm2022/ngx-dom-confetti.mjs +63 -56
- package/fesm2022/ngx-dom-confetti.mjs.map +1 -1
- package/lib/confetti-component.d.ts +2 -2
- package/lib/confetti-directive.d.ts +2 -2
- package/lib/confetti-module.d.ts +4 -4
- package/lib/confetti-provider.d.ts +2 -0
- package/lib/confetti-service.d.ts +1 -1
- package/package.json +3 -5
- package/public-api.d.ts +1 -0
- package/esm2022/lib/confetti-component.mjs +0 -48
- package/esm2022/lib/confetti-directive.mjs +0 -45
- package/esm2022/lib/confetti-module.mjs +0 -68
- package/esm2022/lib/confetti-renderer.mjs +0 -104
- package/esm2022/lib/confetti-service.mjs +0 -29
- package/esm2022/lib/config.mjs +0 -18
- package/esm2022/ngx-dom-confetti.mjs +0 -5
- package/esm2022/public-api.mjs +0 -9
|
@@ -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,32 +82,40 @@ 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;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
88
|
+
let isActive = true;
|
|
89
|
+
const update = (time) => {
|
|
90
|
+
if (!isActive)
|
|
91
|
+
return;
|
|
92
|
+
if (!startTime)
|
|
93
|
+
startTime = time;
|
|
94
|
+
const elapsed = time - startTime;
|
|
95
|
+
const progress = startTime === time ? 0 : (time - startTime) / duration;
|
|
96
|
+
fettis.slice(0, Math.ceil(elapsed / stagger)).forEach(fetti => {
|
|
97
|
+
this.updateFetti(fetti, progress, dragFriction, decay);
|
|
98
|
+
});
|
|
99
|
+
if (time - startTime < duration) {
|
|
100
|
+
requestAnimationFrame(update);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
fettis.forEach((fetti) => {
|
|
104
|
+
if (fetti.element.parentNode === root) {
|
|
105
|
+
root.removeChild(fetti.element);
|
|
106
|
+
}
|
|
98
107
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
});
|
|
108
|
+
isActive = false;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
requestAnimationFrame(update);
|
|
112
|
+
return new Promise(resolve => {
|
|
113
|
+
const checkIfDone = setInterval(() => {
|
|
114
|
+
if (!isActive) {
|
|
115
|
+
clearInterval(checkIfDone);
|
|
108
116
|
resolve();
|
|
109
117
|
}
|
|
110
|
-
};
|
|
111
|
-
requestAnimationFrame(update);
|
|
118
|
+
}, 100);
|
|
112
119
|
});
|
|
113
120
|
}
|
|
114
121
|
launch(root, config) {
|
|
@@ -129,28 +136,29 @@ class NgxConfettiDirective {
|
|
|
129
136
|
this._elementRef = _elementRef;
|
|
130
137
|
this.ngZone = ngZone;
|
|
131
138
|
this.platform = platform;
|
|
132
|
-
this._globalConfig = (globalConfig ||
|
|
139
|
+
this._globalConfig = (globalConfig ||
|
|
140
|
+
defaultsConfettiConfig);
|
|
133
141
|
this._confettiRenderer = new ConfettiRenderer(document);
|
|
134
142
|
}
|
|
135
143
|
launch(config) {
|
|
136
144
|
if (!this.platform.isBrowser) {
|
|
137
145
|
return;
|
|
138
146
|
}
|
|
139
|
-
const element = coerceElement(this._elementRef);
|
|
147
|
+
// const element = coerceElement(this._elementRef);
|
|
140
148
|
this.ngZone.runOutsideAngular(() => {
|
|
141
149
|
this._confettiRenderer.launch(this._elementRef.nativeElement, config ?? this._globalConfig);
|
|
142
150
|
});
|
|
143
151
|
}
|
|
144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
145
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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 }); }
|
|
146
154
|
}
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxConfettiDirective, decorators: [{
|
|
148
156
|
type: Directive,
|
|
149
157
|
args: [{
|
|
150
158
|
selector: '[confetti], [ngxConfetti]',
|
|
151
159
|
exportAs: 'ngxConfetti',
|
|
152
160
|
}]
|
|
153
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.Platform }, { type:
|
|
161
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.Platform }, { type: Document, decorators: [{
|
|
154
162
|
type: Optional
|
|
155
163
|
}, {
|
|
156
164
|
type: Inject,
|
|
@@ -170,12 +178,12 @@ class NgxDomConfettiService {
|
|
|
170
178
|
open(el, config) {
|
|
171
179
|
this._confettiRenderer.launch(coerceElement(el), config ?? this._globalConfig);
|
|
172
180
|
}
|
|
173
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
174
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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 }); }
|
|
175
183
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiService, decorators: [{
|
|
177
185
|
type: Injectable
|
|
178
|
-
}], ctorParameters: () => [{ type:
|
|
186
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
179
187
|
type: Optional
|
|
180
188
|
}, {
|
|
181
189
|
type: Inject,
|
|
@@ -200,18 +208,18 @@ class NgxDomConfettiComponent {
|
|
|
200
208
|
constructor(el, document, globalConfig) {
|
|
201
209
|
this.el = el;
|
|
202
210
|
this._config = {
|
|
203
|
-
...globalConfig
|
|
211
|
+
...globalConfig,
|
|
204
212
|
};
|
|
205
213
|
this._confettiRenderer = new ConfettiRenderer(document);
|
|
206
214
|
this._active = false;
|
|
207
215
|
}
|
|
208
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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 }); }
|
|
210
218
|
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
|
|
212
220
|
type: Component,
|
|
213
221
|
args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
|
|
214
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type:
|
|
222
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: Document, decorators: [{
|
|
215
223
|
type: Optional
|
|
216
224
|
}, {
|
|
217
225
|
type: Inject,
|
|
@@ -252,11 +260,9 @@ class NgxDomConfettiModule {
|
|
|
252
260
|
],
|
|
253
261
|
};
|
|
254
262
|
}
|
|
255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
256
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
257
|
-
|
|
258
|
-
NgxConfettiDirective] }); }
|
|
259
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", 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: [
|
|
260
266
|
{
|
|
261
267
|
provide: NGX_CONFETTI_GLOBAL_CONFIG,
|
|
262
268
|
useValue: defaultsConfettiConfig,
|
|
@@ -264,16 +270,11 @@ class NgxDomConfettiModule {
|
|
|
264
270
|
NgxDomConfettiService,
|
|
265
271
|
], imports: [CommonModule] }); }
|
|
266
272
|
}
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
|
|
268
274
|
type: NgModule,
|
|
269
275
|
args: [{
|
|
270
|
-
declarations: [
|
|
271
|
-
|
|
272
|
-
NgxConfettiDirective,
|
|
273
|
-
],
|
|
274
|
-
imports: [
|
|
275
|
-
CommonModule,
|
|
276
|
-
],
|
|
276
|
+
declarations: [],
|
|
277
|
+
imports: [CommonModule, NgxDomConfettiComponent, NgxConfettiDirective],
|
|
277
278
|
providers: [
|
|
278
279
|
{
|
|
279
280
|
provide: NGX_CONFETTI_GLOBAL_CONFIG,
|
|
@@ -281,13 +282,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
281
282
|
},
|
|
282
283
|
NgxDomConfettiService,
|
|
283
284
|
],
|
|
284
|
-
exports: [
|
|
285
|
-
NgxDomConfettiComponent,
|
|
286
|
-
NgxConfettiDirective
|
|
287
|
-
]
|
|
285
|
+
exports: [NgxDomConfettiComponent, NgxConfettiDirective],
|
|
288
286
|
}]
|
|
289
287
|
}] });
|
|
290
288
|
|
|
289
|
+
function provideConfetti(config) {
|
|
290
|
+
return makeEnvironmentProviders([
|
|
291
|
+
{
|
|
292
|
+
provide: NGX_CONFETTI_GLOBAL_CONFIG,
|
|
293
|
+
useValue: config ?? defaultsConfettiConfig,
|
|
294
|
+
},
|
|
295
|
+
]);
|
|
296
|
+
}
|
|
297
|
+
|
|
291
298
|
/*
|
|
292
299
|
* Public API Surface of ngx-dom-confetti
|
|
293
300
|
*/
|
|
@@ -296,5 +303,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
296
303
|
* Generated bundle index. Do not edit.
|
|
297
304
|
*/
|
|
298
305
|
|
|
299
|
-
export { NGX_CONFETTI_GLOBAL_CONFIG, NgxConfettiDirective, NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, defaultsConfettiConfig };
|
|
306
|
+
export { NGX_CONFETTI_GLOBAL_CONFIG, NgxConfettiDirective, NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, defaultsConfettiConfig, provideConfetti };
|
|
300
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\n return new Promise<void>(resolve => {\n const update = (time: number) => {\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 resolve();\n }\n }\n\n requestAnimationFrame(update);\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:
|
|
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, ["*"],
|
|
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:
|
|
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,
|
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxConfettiDirective, "[confetti], [ngxConfetti]", ["ngxConfetti"], {}, {}, never, never, true, never>;
|
|
15
15
|
}
|
package/lib/confetti-module.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "
|
|
4
|
-
import * as i2 from "./confetti-
|
|
5
|
-
import * as i3 from "
|
|
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.
|
|
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
|
}
|
|
@@ -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:
|
|
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.
|
|
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",
|
|
20
|
-
"@angular/core": "^14.0.0|| ^15.0.0 || ^16.0.0 || ^17.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
|
@@ -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: "17.0.2", 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: "17.0.2", 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: "17.0.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZldHRpLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBT3RFLE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsSUFDVyxNQUFNLENBQUMsT0FBZ0M7UUFDaEQsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxJQUNXLE1BQU0sQ0FBQyxPQUFxQjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVELFlBQ1UsRUFBYyxFQUNRLFFBQWEsRUFDSyxZQUE2QjtRQUZyRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBR3RCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLFlBQVk7U0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7OEdBaENVLHVCQUF1Qiw0Q0F5QlosUUFBUSw2QkFDUiwwQkFBMEI7a0dBMUJyQyx1QkFBdUIsd0dBSHhCLDZCQUE2Qjs7MkZBRzVCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsNkJBQTZCOzswQkE0QnBDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCO3lDQWpCckMsTUFBTTtzQkFEaEIsS0FBSztnQkFRSyxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25mZXR0aVJlbmRlcmVyIH0gZnJvbSAnLi9jb25mZXR0aS1yZW5kZXJlcic7XG5pbXBvcnQgeyBDb25mZXR0aUNvbmZpZywgTkdYX0NPTkZFVFRJX0dMT0JBTF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1kb20tY29uZmV0dGknLFxuICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+IGAsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIE5neERvbUNvbmZldHRpQ29tcG9uZW50IHtcblxuICBwcml2YXRlIF9jb25mZXR0aVJlbmRlcmVyOiBDb25mZXR0aVJlbmRlcmVyO1xuXG4gIHByaXZhdGUgX2NvbmZpZzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz47XG5cbiAgcHJpdmF0ZSBfYWN0aXZlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKF9jb25maWc6IFBhcnRpYWw8Q29uZmV0dGlDb25maWc+KSB7XG4gICAgaWYgKF9jb25maWcpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IE9iamVjdC5hc3NpZ24odGhpcy5fY29uZmlnLCBfY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFjdGl2ZShfYWN0aXZlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9hY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoX2FjdGl2ZSk7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgdGhpcy5fY29uZmV0dGlSZW5kZXJlci5sYXVuY2goY29lcmNlRWxlbWVudCh0aGlzLmVsKSwgdGhpcy5fY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChOR1hfQ09ORkVUVElfR0xPQkFMX0NPTkZJRykgZ2xvYmFsQ29uZmlnPzogQ29uZmV0dGlDb25maWcpIHtcbiAgICB0aGlzLl9jb25maWcgPSB7XG4gICAgICAuLi5nbG9iYWxDb25maWdcbiAgICB9O1xuICAgIHRoaXMuX2NvbmZldHRpUmVuZGVyZXIgPSBuZXcgQ29uZmV0dGlSZW5kZXJlcihkb2N1bWVudCk7XG4gICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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: "17.0.2", 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: "17.0.2", type: NgxConfettiDirective, selector: "[confetti], [ngxConfetti]", exportAs: ["ngxConfetti"], ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL2NvbmZldHRpLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUlOLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQWtCLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFNOUYsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNVLFdBQW9DLEVBQ3BDLE1BQWMsRUFDZCxRQUFrQixFQUNJLFFBQWEsRUFDSyxZQUE2QjtRQUpyRSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFJMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFlBQVksSUFBSSxzQkFBc0IsQ0FBbUIsQ0FBQztRQUNoRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBR00sTUFBTSxDQUFDLE1BQWdDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QixPQUFPO1NBQ1I7UUFDRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RixDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7OEdBM0JVLG9CQUFvQiwwRkFVVCxRQUFRLDZCQUNSLDBCQUEwQjtrR0FYckMsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs7MEJBV0ksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmV0dGlSZW5kZXJlciB9IGZyb20gJy4vY29uZmV0dGktcmVuZGVyZXInO1xuaW1wb3J0IHsgQ29uZmV0dGlDb25maWcsIGRlZmF1bHRzQ29uZmV0dGlDb25maWcsIE5HWF9DT05GRVRUSV9HTE9CQUxfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY29uZmV0dGldLCBbbmd4Q29uZmV0dGldJyxcbiAgZXhwb3J0QXM6ICduZ3hDb25mZXR0aScsXG59KVxuZXhwb3J0IGNsYXNzIE5neENvbmZldHRpRGlyZWN0aXZlIHtcblxuICBwcml2YXRlIF9nbG9iYWxDb25maWc6IENvbmZldHRpQ29uZmlnO1xuXG4gIHByaXZhdGUgX2NvbmZldHRpUmVuZGVyZXI6IENvbmZldHRpUmVuZGVyZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX0NPTkZFVFRJX0dMT0JBTF9DT05GSUcpIGdsb2JhbENvbmZpZz86IENvbmZldHRpQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLl9nbG9iYWxDb25maWcgPSAoZ2xvYmFsQ29uZmlnIHx8IGRlZmF1bHRzQ29uZmV0dGlDb25maWcpIGFzIENvbmZldHRpQ29uZmlnO1xuICAgIHRoaXMuX2NvbmZldHRpUmVuZGVyZXIgPSBuZXcgQ29uZmV0dGlSZW5kZXJlcihkb2N1bWVudCk7XG4gIH1cblxuXG4gIHB1YmxpYyBsYXVuY2goY29uZmlnPzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pIHtcbiAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KHRoaXMuX2VsZW1lbnRSZWYpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX2NvbmZldHRpUmVuZGVyZXIubGF1bmNoKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY29uZmlnID8/IHRoaXMuX2dsb2JhbENvbmZpZyk7XG4gICAgfSlcblxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -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: "17.0.2", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
34
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", 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: "17.0.2", 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: "17.0.2", 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,104 +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
|
-
return new Promise(resolve => {
|
|
69
|
-
const update = (time) => {
|
|
70
|
-
if (!startTime)
|
|
71
|
-
startTime = time;
|
|
72
|
-
const elapsed = time - startTime;
|
|
73
|
-
const progress = startTime === time ? 0 : (time - startTime) / duration;
|
|
74
|
-
fettis.slice(0, Math.ceil(elapsed / stagger)).forEach(fetti => {
|
|
75
|
-
this.updateFetti(fetti, progress, dragFriction, decay);
|
|
76
|
-
});
|
|
77
|
-
if (time - startTime < duration) {
|
|
78
|
-
requestAnimationFrame(update);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
fettis.forEach((fetti) => {
|
|
82
|
-
if (fetti.element.parentNode === root) {
|
|
83
|
-
root.removeChild(fetti.element);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
resolve();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
requestAnimationFrame(update);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
launch(root, config) {
|
|
93
|
-
const { elementCount, colors, width, height, perspective, angle, spread, startVelocity, decay, dragFriction, duration, stagger, random, } = { ...defaultsConfettiConfig, ...config };
|
|
94
|
-
root.style.perspective = perspective;
|
|
95
|
-
const { fragment, elements } = this.createElements(elementCount ?? 50, colors, width, height);
|
|
96
|
-
root.appendChild(fragment);
|
|
97
|
-
const fettis = elements.map((element) => ({
|
|
98
|
-
element,
|
|
99
|
-
physics: this.randomPhysics(angle, spread, startVelocity, random),
|
|
100
|
-
}));
|
|
101
|
-
return this.animate(root, fettis, dragFriction, decay, duration, stagger);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGktcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvY29uZmV0dGktcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQW9CbEUsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFvQixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQUksQ0FBQztJQUVwQyxjQUFjLENBQ3BCLFlBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLEtBQWEsRUFDYixNQUFjO1FBS2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1lBQ2hELE9BQU8sQ0FBQyxLQUFLLENB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RyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLE9BQU87WUFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUM7U0FDbEUsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mZXR0aUNvbmZpZywgZGVmYXVsdHNDb25mZXR0aUNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcblxuaW50ZXJmYWNlIElQaHlzaWNzIHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbiAgd29iYmxlOiBudW1iZXI7XG4gIHdvYmJsZVNwZWVkOiBudW1iZXI7XG4gIHZlbG9jaXR5OiBudW1iZXI7XG4gIGFuZ2xlMkQ6IG51bWJlcjtcbiAgYW5nbGUzRDogbnVtYmVyO1xuICB0aWx0QW5nbGU6IG51bWJlcjtcbiAgdGlsdEFuZ2xlU3BlZWQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIElGZXR0aSB7XG4gIGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICBwaHlzaWNzOiBJUGh5c2ljc1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZmV0dGlSZW5kZXJlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50KSB7IH1cblxuICBwcml2YXRlIGNyZWF0ZUVsZW1lbnRzKFxuICAgIGVsZW1lbnRDb3VudDogbnVtYmVyLFxuICAgIGNvbG9yczogc3RyaW5nW10sXG4gICAgd2lkdGg6IHN0cmluZyxcbiAgICBoZWlnaHQ6IHN0cmluZ1xuICApOiB7XG4gICAgZnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQsXG4gICAgZWxlbWVudHM6IEhUTUxEaXZFbGVtZW50W11cbiAgfSB7XG4gICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlbGVtZW50Q291bnQgfSkubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvcnNbaW5kZXggJSBjb2xvcnMubGVuZ3RoXTtcbiAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY29sb3I7XG4gICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgZWxlbWVudC5zdHlsZS53aWxsQ2hhbmdlID0gJ3RyYW5zZm9ybSwgb3BhY2l0eSc7XG4gICAgICBlbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZnJhZ21lbnQsXG4gICAgICBlbGVtZW50cyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByYW5kb21QaHlzaWNzKFxuICAgIGFuZ2xlOiBudW1iZXIsXG4gICAgc3ByZWFkOiBudW1iZXIsXG4gICAgc3RhcnRWZWxvY2l0eTogbnVtYmVyLFxuICAgIHJhbmRvbTogKCkgPT4gbnVtYmVyXG4gICk6IElQaHlzaWNzIHtcbiAgICBjb25zdCByYWRBbmdsZSA9IGFuZ2xlICogKE1hdGguUEkgLyAxODApO1xuICAgIGNvbnN0IHJhZFNwcmVhZCA9IHNwcmVhZCAqIChNYXRoLlBJIC8gMTgwKTtcbiAgICByZXR1cm4ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDAsXG4gICAgICB6OiAwLFxuICAgICAgd29iYmxlOiByYW5kb20oKSAqIDEwLFxuICAgICAgd29iYmxlU3BlZWQ6IDAuMSArIHJhbmRvbSgpICogMC4xLFxuICAgICAgdmVsb2NpdHk6IHN0YXJ0VmVsb2NpdHkgKiAwLjUgKyByYW5kb20oKSAqIHN0YXJ0VmVsb2NpdHksXG4gICAgICBhbmdsZTJEOiAtcmFkQW5nbGUgKyAoMC41ICogcmFkU3ByZWFkIC0gcmFuZG9tKCkgKiByYWRTcHJlYWQpLFxuICAgICAgYW5nbGUzRDogLShNYXRoLlBJIC8gNCkgKyByYW5kb20oKSAqIChNYXRoLlBJIC8gMiksXG4gICAgICB0aWx0QW5nbGU6IHJhbmRvbSgpICogTWF0aC5QSSxcbiAgICAgIHRpbHRBbmdsZVNwZWVkOiAwLjEgKyByYW5kb20oKSAqIDAuMyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGZXR0aShmZXR0aTogSUZldHRpLCBwcm9ncmVzczogbnVtYmVyLCBkcmFnRnJpY3Rpb246IG51bWJlciwgZGVjYXk6IG51bWJlcikge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4gICAgZmV0dGkucGh5c2ljcy54ICs9IE1hdGguY29zKGZldHRpLnBoeXNpY3MuYW5nbGUyRCkgKiBmZXR0aS5waHlzaWNzLnZlbG9jaXR5O1xuICAgIGZldHRpLnBoeXNpY3MueSArPSBNYXRoLnNpbihmZXR0aS5waHlzaWNzLmFuZ2xlMkQpICogZmV0dGkucGh5c2ljcy52ZWxvY2l0eTtcbiAgICBmZXR0aS5waHlzaWNzLnogKz0gTWF0aC5zaW4oZmV0dGkucGh5c2ljcy5hbmdsZTNEKSAqIGZldHRpLnBoeXNpY3MudmVsb2NpdHk7XG4gICAgZmV0dGkucGh5c2ljcy53b2JibGUgKz0gZmV0dGkucGh5c2ljcy53b2JibGVTcGVlZDtcbiAgICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgaWYgKGRlY2F5KSB7XG4gICAgICBmZXR0aS5waHlzaWNzLnZlbG9jaXR5ICo9IGRlY2F5O1xuICAgIH0gZWxzZSB7XG4gICAgICBmZXR0aS5waHlzaWNzLnZlbG9jaXR5IC09IGZldHRpLnBoeXNpY3MudmVsb2NpdHkgKiBkcmFnRnJpY3Rpb247XG4gICAgfVxuICAgIGZldHRpLnBoeXNpY3MueSArPSAzO1xuICAgIGZldHRpLnBoeXNpY3MudGlsdEFuZ2xlICs9IGZldHRpLnBoeXNpY3MudGlsdEFuZ2xlU3BlZWQ7XG5cbiAgICBjb25zdCB7IHgsIHksIHosIHRpbHRBbmdsZSwgd29iYmxlIH0gPSBmZXR0aS5waHlzaWNzO1xuICAgIGNvbnN0IHdvYmJsZVggPSB4ICsgMTAgKiBNYXRoLmNvcyh3b2JibGUpO1xuICAgIGNvbnN0IHdvYmJsZVkgPSB5ICsgMTAgKiBNYXRoLnNpbih3b2JibGUpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke3dvYmJsZVh9cHgsICR7d29iYmxlWX1weCwgJHt6fXB4KSByb3RhdGUzZCgxLCAxLCAxLCAke3RpbHRBbmdsZX1yYWQpYDtcblxuICAgIGZldHRpLmVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwidmlzaWJsZVwiO1xuICAgIGZldHRpLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgIGZldHRpLmVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICgxIC0gcHJvZ3Jlc3MpLnRvU3RyaW5nKCk7O1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgfVxuXG4gIHByaXZhdGUgYW5pbWF0ZShyb290OiBIVE1MRWxlbWVudCwgZmV0dGlzOiBBcnJheTxJRmV0dGk+LCBkcmFnRnJpY3Rpb246IG51bWJlciwgZGVjYXk6IG51bWJlciwgZHVyYXRpb246IG51bWJlciwgc3RhZ2dlcjogbnVtYmVyKSB7XG4gICAgbGV0IHN0YXJ0VGltZTogbnVtYmVyO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlID0gKHRpbWU6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoIXN0YXJ0VGltZSkgc3RhcnRUaW1lID0gdGltZTtcbiAgICAgICAgY29uc3QgZWxhcHNlZCA9IHRpbWUgLSBzdGFydFRpbWU7XG4gICAgICAgIGNvbnN0IHByb2dyZXNzID0gc3RhcnRUaW1lID09PSB0aW1lID8gMCA6ICh0aW1lIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uO1xuICAgICAgICBmZXR0aXMuc2xpY2UoMCwgTWF0aC5jZWlsKGVsYXBzZWQgLyBzdGFnZ2VyKSkuZm9yRWFjaChmZXR0aSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGZXR0aShmZXR0aSwgcHJvZ3Jlc3MsIGRyYWdGcmljdGlvbiwgZGVjYXkpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGltZSAtIHN0YXJ0VGltZSA8IGR1cmF0aW9uKSB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVwZGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmV0dGlzLmZvckVhY2goKGZldHRpKSA9PiB7XG4gICAgICAgICAgICBpZiAoZmV0dGkuZWxlbWVudC5wYXJlbnROb2RlID09PSByb290KSB7XG4gICAgICAgICAgICAgIHJvb3QucmVtb3ZlQ2hpbGQoZmV0dGkuZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsYXVuY2gocm9vdDogSFRNTEVsZW1lbnQsIGNvbmZpZz86IFBhcnRpYWw8Q29uZmV0dGlDb25maWc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudENvdW50LFxuICAgICAgY29sb3JzLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBwZXJzcGVjdGl2ZSxcbiAgICAgIGFuZ2xlLFxuICAgICAgc3ByZWFkLFxuICAgICAgc3RhcnRWZWxvY2l0eSxcbiAgICAgIGRlY2F5LFxuICAgICAgZHJhZ0ZyaWN0aW9uLFxuICAgICAgZHVyYXRpb24sXG4gICAgICBzdGFnZ2VyLFxuICAgICAgcmFuZG9tLFxuICAgIH0gPSB7IC4uLmRlZmF1bHRzQ29uZmV0dGlDb25maWcsIC4uLmNvbmZpZyB9IGFzIENvbmZldHRpQ29uZmlnO1xuICAgIHJvb3Quc3R5bGUucGVyc3BlY3RpdmUgPSBwZXJzcGVjdGl2ZTtcbiAgICBjb25zdCB7IGZyYWdtZW50LCBlbGVtZW50cyB9ID0gdGhpcy5jcmVhdGVFbGVtZW50cyhcbiAgICAgIGVsZW1lbnRDb3VudCA/PyA1MCxcbiAgICAgIGNvbG9ycyxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0XG4gICAgKTtcbiAgICByb290LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgICBjb25zdCBmZXR0aXMgPSBlbGVtZW50cy5tYXAoKGVsZW1lbnQpID0+ICh7XG4gICAgICBlbGVtZW50LFxuICAgICAgcGh5c2ljczogdGhpcy5yYW5kb21QaHlzaWNzKGFuZ2xlLCBzcHJlYWQsIHN0YXJ0VmVsb2NpdHksIHJhbmRvbSksXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0ZShyb290LCBmZXR0aXMsIGRyYWdGcmljdGlvbiwgZGVjYXksIGR1cmF0aW9uLCBzdGFnZ2VyKTtcbiAgfVxufVxuIl19
|
|
@@ -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: "17.0.2", 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: "17.0.2", ngImport: i0, type: NgxDomConfettiService }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", 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=
|
package/esm2022/lib/config.mjs
DELETED
|
@@ -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==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -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==
|