ngx-dom-confetti 0.0.2 → 0.1.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.
@@ -2,7 +2,7 @@
2
2
  * License MIT, copyright Daniel Lundin 2019
3
3
  */
4
4
  const defaultColors = ["#a864fd", "#29cdff", "#78ff44", "#ff718d", "#fdff6a"];
5
- const defaultsConfettiConfig = {
5
+ export const defaultsConfettiConfig = {
6
6
  angle: 90,
7
7
  spread: 45,
8
8
  startVelocity: 45,
@@ -17,7 +17,8 @@ const defaultsConfettiConfig = {
17
17
  random: Math.random
18
18
  };
19
19
  function createElements(root, elementCount, colors, width, height) {
20
- return Array.from({ length: elementCount }).map((_, index) => {
20
+ const fragment = document.createDocumentFragment();
21
+ const element = Array.from({ length: elementCount }).map((_, index) => {
21
22
  const element = document.createElement("div");
22
23
  const color = colors[index % colors.length];
23
24
  element.style.backgroundColor = color;
@@ -26,9 +27,11 @@ function createElements(root, elementCount, colors, width, height) {
26
27
  element.style.position = "absolute";
27
28
  element.style.willChange = "transform, opacity";
28
29
  element.style.visibility = "hidden";
29
- root.appendChild(element);
30
+ fragment.appendChild(element);
30
31
  return element;
31
32
  });
33
+ root.appendChild(fragment);
34
+ return element;
32
35
  }
33
36
  function randomPhysics(angle, spread, startVelocity, random) {
34
37
  const radAngle = angle * (Math.PI / 180);
@@ -106,4 +109,4 @@ export function confetti(root, config) {
106
109
  }));
107
110
  return animate(root, fettis, dragFriction, decay, duration, stagger);
108
111
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvY29uZmV0dGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFrQkgsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFOUUsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0lBQ1YsYUFBYSxFQUFFLEVBQUU7SUFDakIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsS0FBSyxFQUFFLE1BQU07SUFDYixNQUFNLEVBQUUsTUFBTTtJQUNkLFdBQVcsRUFBRSxFQUFFO0lBQ2YsTUFBTSxFQUFFLGFBQWE7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNWLFlBQVksRUFBRSxHQUFHO0lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtDQUN0QixDQUFBO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBaUIsRUFBRSxZQUFvQixFQUFFLE1BQWdCLEVBQUUsS0FBYSxFQUFFLE1BQWM7SUFDNUcsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3pELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxH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WUFBWSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU87UUFDUCxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztLQUMvRCxDQUFDLENBQUMsQ0FBQztJQUVKLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGljZW5zZSBNSVQsIGNvcHlyaWdodCBEYW5pZWwgTHVuZGluIDIwMTlcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZldHRpQ29uZmlnIHtcbiAgICBhbmdsZTogbnVtYmVyO1xuICAgIHNwcmVhZDogbnVtYmVyO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgaGVpZ2h0OiBzdHJpbmc7XG4gICAgcGVyc3BlY3RpdmU6IHN0cmluZztcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIGRyYWdGcmljdGlvbjogbnVtYmVyO1xuICAgIHN0YWdnZXI6IG51bWJlcjtcbiAgICBzdGFydFZlbG9jaXR5OiBudW1iZXI7XG4gICAgZWxlbWVudENvdW50OiBudW1iZXI7XG4gICAgZGVjYXk6IG51bWJlcjtcbiAgICBjb2xvcnM6IHN0cmluZ1tdO1xuICAgIHJhbmRvbTogKCkgPT4gbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0Q29sb3JzID0gW1wiI2E4NjRmZFwiLCBcIiMyOWNkZmZcIiwgXCIjNzhmZjQ0XCIsIFwiI2ZmNzE4ZFwiLCBcIiNmZGZmNmFcIl07XG5cbmNvbnN0IGRlZmF1bHRzQ29uZmV0dGlDb25maWcgPSB7XG4gICAgYW5nbGU6IDkwLFxuICAgIHNwcmVhZDogNDUsXG4gICAgc3RhcnRWZWxvY2l0eTogNDUsXG4gICAgZWxlbWVudENvdW50OiA1MCxcbiAgICB3aWR0aDogXCIxMHB4XCIsXG4gICAgaGVpZ2h0OiBcIjEwcHhcIixcbiAgICBwZXJzcGVjdGl2ZTogXCJcIixcbiAgICBjb2xvcnM6IGRlZmF1bHRDb2xvcnMsXG4gICAgZHVyYXRpb246IDMwMDAsXG4gICAgc3RhZ2dlcjogMCxcbiAgICBkcmFnRnJpY3Rpb246IDAuMSxcbiAgICByYW5kb206IE1hdGgucmFuZG9tXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRzKHJvb3Q6IEhUTUxFbGVtZW50LCBlbGVtZW50Q291bnQ6IG51bWJlciwgY29sb3JzOiBzdHJpbmdbXSwgd2lkdGg6IHN0cmluZywgaGVpZ2h0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogZWxlbWVudENvdW50IH0pLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JzW2luZGV4ICUgY29sb3JzLmxlbmd0aF07XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY29sb3I7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUud2lsbENoYW5nZSA9IFwidHJhbnNmb3JtLCBvcGFjaXR5XCI7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgICAgIHJvb3QuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0pO1xufVxuXG5pbnRlcmZhY2UgSVBoeXNpY3Mge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgejogbnVtYmVyO1xuICAgIHdvYmJsZTogbnVtYmVyO1xuICAgIHdvYmJsZVNwZWVkOiBudW1iZXI7XG4gICAgdmVsb2NpdHk6IG51bWJlcjtcbiAgICBhbmdsZTJEOiBudW1iZXI7XG4gICAgYW5nbGUzRDogbnVtYmVyO1xuICAgIHRpbHRBbmdsZTogbnVtYmVyO1xuICAgIHRpbHRBbmdsZVNwZWVkOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJRmV0dGkge1xuICAgIGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LCBcbiAgICBwaHlzaWNzOiBJUGh5c2ljc1xufVxuXG5mdW5jdGlvbiByYW5kb21QaHlzaWNzKGFuZ2xlOiBudW1iZXIsIHNwcmVhZDogbnVtYmVyLCBzdGFydFZlbG9jaXR5OiBudW1iZXIsIHJhbmRvbTogKCkgPT4gbnVtYmVyKTogSVBoeXNpY3Mge1xuICAgIGNvbnN0IHJhZEFuZ2xlID0gYW5nbGUgKiAoTWF0aC5QSSAvIDE4MCk7XG4gICAgY29uc3QgcmFkU3ByZWFkID0gc3ByZWFkICogKE1hdGguUEkgLyAxODApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDAsXG4gICAgICAgIHo6IDAsXG4gICAgICAgIHdvYmJsZTogcmFuZG9tKCkgKiAxMCxcbiAgICAgICAgd29iYmxlU3BlZWQ6IDAuMSArIHJhbmRvbSgpICogMC4xLFxuICAgICAgICB2ZWxvY2l0eTogc3RhcnRWZWxvY2l0eSAqIDAuNSArIHJhbmRvbSgpICogc3RhcnRWZWxvY2l0eSxcbiAgICAgICAgYW5nbGUyRDogLXJhZEFuZ2xlICsgKDAuNSAqIHJhZFNwcmVhZCAtIHJhbmRvbSgpICogcmFkU3ByZWFkKSxcbiAgICAgICAgYW5nbGUzRDogLShNYXRoLlBJIC8gNCkgKyByYW5kb20oKSAqIChNYXRoLlBJIC8gMiksXG4gICAgICAgIHRpbHRBbmdsZTogcmFuZG9tKCkgKiBNYXRoLlBJLFxuICAgICAgICB0aWx0QW5nbGVTcGVlZDogMC4xICsgcmFuZG9tKCkgKiAwLjNcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBhbmltYXRlKHJvb3Q6IEhUTUxFbGVtZW50LCBmZXR0aXM6IEFycmF5PElGZXR0aT4sIGRyYWdGcmljdGlvbjogbnVtYmVyLCBkZWNheTogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyLCBzdGFnZ2VyOiBudW1iZXIpIHtcbiAgICBsZXQgc3RhcnRUaW1lOiBudW1iZXI7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZSh0aW1lOiBudW1iZXIpIHtcbiAgICAgICAgICAgIGlmICghc3RhcnRUaW1lKSBzdGFydFRpbWUgPSB0aW1lO1xuICAgICAgICAgICAgY29uc3QgZWxhcHNlZCA9IHRpbWUgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IHN0YXJ0VGltZSA9PT0gdGltZSA/IDAgOiAodGltZSAtIHN0YXJ0VGltZSkgLyBkdXJhdGlvbjtcbiAgICAgICAgICAgIGZldHRpcy5zbGljZSgwLCBNYXRoLmNlaWwoZWxhcHNlZCAvIHN0YWdnZXIpKS5mb3JFYWNoKGZldHRpID0+IHtcbiAgICAgICAgICAgICAgICB1cGRhdGVGZXR0aShmZXR0aSwgcHJvZ3Jlc3MsIGRyYWdGcmljdGlvbiwgZGVjYXkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aW1lIC0gc3RhcnRUaW1lIDwgZHVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmV0dGkgPSBmZXR0aXMuZmluZCgoZmV0dGkpID0+IGZldHRpLmVsZW1lbnQucGFyZW50Tm9kZSA9PT0gcm9vdCk7XG4gICAgICAgICAgICAgICAgaWYgKGZldHRpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3QucmVtb3ZlQ2hpbGQoZmV0dGkuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGZXR0aShmZXR0aTogSUZldHRpLCBwcm9ncmVzczogbnVtYmVyLCBkcmFnRnJpY3Rpb246IG51bWJlciwgZGVjYXk6IG51bWJlcikge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG4gICAgZmV0dGkucGh5c2ljcy54ICs9IE1hdGguY29zKGZldHRpLnBoeXNpY3MuYW5nbGUyRCkgKiBmZXR0aS5waHlzaWNzLnZlbG9jaXR5O1xuICAgIGZldHRpLnBoeXNpY3MueSArPSBNYXRoLnNpbihmZXR0aS5waHlzaWNzLmFuZ2xlMkQpICogZmV0dGkucGh5c2ljcy52ZWxvY2l0eTtcbiAgICBmZXR0aS5waHlzaWNzLnogKz0gTWF0aC5zaW4oZmV0dGkucGh5c2ljcy5hbmdsZTNEKSAqIGZldHRpLnBoeXNpY3MudmVsb2NpdHk7XG4gICAgZmV0dGkucGh5c2ljcy53b2JibGUgKz0gZmV0dGkucGh5c2ljcy53b2JibGVTcGVlZDtcbiAgICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgaWYgKGRlY2F5KSB7XG4gICAgICBmZXR0aS5waHlzaWNzLnZlbG9jaXR5ICo9IGRlY2F5O1xuICAgIH0gZWxzZSB7XG4gICAgICBmZXR0aS5waHlzaWNzLnZlbG9jaXR5IC09IGZldHRpLnBoeXNpY3MudmVsb2NpdHkgKiBkcmFnRnJpY3Rpb247XG4gICAgfVxuICAgIGZldHRpLnBoeXNpY3MueSArPSAzO1xuICAgIGZldHRpLnBoeXNpY3MudGlsdEFuZ2xlICs9IGZldHRpLnBoeXNpY3MudGlsdEFuZ2xlU3BlZWQ7XG4gIFxuICAgIGNvbnN0IHsgeCwgeSwgeiwgdGlsdEFuZ2xlLCB3b2JibGUgfSA9IGZldHRpLnBoeXNpY3M7XG4gICAgY29uc3Qgd29iYmxlWCA9IHggKyAxMCAqIE1hdGguY29zKHdvYmJsZSk7XG4gICAgY29uc3Qgd29iYmxlWSA9IHkgKyAxMCAqIE1hdGguc2luKHdvYmJsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7d29iYmxlWH1weCwgJHt3b2JibGVZfXB4LCAke3p9cHgpIHJvdGF0ZTNkKDEsIDEsIDEsICR7dGlsdEFuZ2xlfXJhZClgO1xuICBcbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSBcInZpc2libGVcIjtcbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICBmZXR0aS5lbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAoMSAtIHByb2dyZXNzKS50b1N0cmluZygpOztcbiAgXG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25mZXR0aShyb290OiBIVE1MRWxlbWVudCwgY29uZmlnPzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGVsZW1lbnRDb3VudCxcbiAgICAgICAgY29sb3JzLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBwZXJzcGVjdGl2ZSxcbiAgICAgICAgYW5nbGUsXG4gICAgICAgIHNwcmVhZCxcbiAgICAgICAgc3RhcnRWZWxvY2l0eSxcbiAgICAgICAgZGVjYXksXG4gICAgICAgIGRyYWdGcmljdGlvbixcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIHN0YWdnZXIsXG4gICAgICAgIHJhbmRvbVxuICAgIH0gPSB7IC4uLmRlZmF1bHRzQ29uZmV0dGlDb25maWcsIC4uLmNvbmZpZyB9IGFzIENvbmZldHRpQ29uZmlnO1xuICAgIHJvb3Quc3R5bGUucGVyc3BlY3RpdmUgPSBwZXJzcGVjdGl2ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGNyZWF0ZUVsZW1lbnRzKHJvb3QsIGVsZW1lbnRDb3VudCA/PyA1MCwgY29sb3JzLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICBjb25zdCBmZXR0aXMgPSBlbGVtZW50cy5tYXAoZWxlbWVudCA9PiAoe1xuICAgICAgICBlbGVtZW50LFxuICAgICAgICBwaHlzaWNzOiByYW5kb21QaHlzaWNzKGFuZ2xlLCBzcHJlYWQsIHN0YXJ0VmVsb2NpdHksIHJhbmRvbSlcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gYW5pbWF0ZShyb290LCBmZXR0aXMsIGRyYWdGcmljdGlvbiwgZGVjYXksIGR1cmF0aW9uLCBzdGFnZ2VyKTtcbn0iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmV0dGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvY29uZmV0dGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFrQkgsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDbEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtJQUNWLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxNQUFNO0lBQ2IsTUFBTSxFQUFFLE1BQU07SUFDZCxXQUFXLEVBQUUsRUFBRTtJQUNmLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLENBQUM7SUFDVixZQUFZLEVBQUUsR0FBRztJQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Q0FDdEIsQ0FBQTtBQUVELFNBQVMsY0FBYyxDQUFDLElBQWlCLEVBQUUsWUFBb0IsRUFBRSxNQUFnQixFQUFFLEtBQWEsRUFBRSxNQUFjO0lBQzVHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ25ELE1BQU0sT0FBTyxHQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbkUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFP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RUFBRSxHQUFHLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxFQUFvQixDQUFDO0lBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxPQUFPO1FBQ1AsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUM7S0FDL0QsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExpY2Vuc2UgTUlULCBjb3B5cmlnaHQgRGFuaWVsIEx1bmRpbiAyMDE5XG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBDb25mZXR0aUNvbmZpZyB7XG4gICAgYW5nbGU6IG51bWJlcjtcbiAgICBzcHJlYWQ6IG51bWJlcjtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIGhlaWdodDogc3RyaW5nO1xuICAgIHBlcnNwZWN0aXZlOiBzdHJpbmc7XG4gICAgZHVyYXRpb246IG51bWJlcjtcbiAgICBkcmFnRnJpY3Rpb246IG51bWJlcjtcbiAgICBzdGFnZ2VyOiBudW1iZXI7XG4gICAgc3RhcnRWZWxvY2l0eTogbnVtYmVyO1xuICAgIGVsZW1lbnRDb3VudDogbnVtYmVyO1xuICAgIGRlY2F5OiBudW1iZXI7XG4gICAgY29sb3JzOiBzdHJpbmdbXTtcbiAgICByYW5kb206ICgpID0+IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdENvbG9ycyA9IFtcIiNhODY0ZmRcIiwgXCIjMjljZGZmXCIsIFwiIzc4ZmY0NFwiLCBcIiNmZjcxOGRcIiwgXCIjZmRmZjZhXCJdO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdHNDb25mZXR0aUNvbmZpZyA9IHtcbiAgICBhbmdsZTogOTAsXG4gICAgc3ByZWFkOiA0NSxcbiAgICBzdGFydFZlbG9jaXR5OiA0NSxcbiAgICBlbGVtZW50Q291bnQ6IDUwLFxuICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICBoZWlnaHQ6IFwiMTBweFwiLFxuICAgIHBlcnNwZWN0aXZlOiBcIlwiLFxuICAgIGNvbG9yczogZGVmYXVsdENvbG9ycyxcbiAgICBkdXJhdGlvbjogMzAwMCxcbiAgICBzdGFnZ2VyOiAwLFxuICAgIGRyYWdGcmljdGlvbjogMC4xLFxuICAgIHJhbmRvbTogTWF0aC5yYW5kb21cbn1cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudHMocm9vdDogSFRNTEVsZW1lbnQsIGVsZW1lbnRDb3VudDogbnVtYmVyLCBjb2xvcnM6IHN0cmluZ1tdLCB3aWR0aDogc3RyaW5nLCBoZWlnaHQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSAgQXJyYXkuZnJvbSh7IGxlbmd0aDogZWxlbWVudENvdW50IH0pLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JzW2luZGV4ICUgY29sb3JzLmxlbmd0aF07XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY29sb3I7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUud2lsbENoYW5nZSA9IFwidHJhbnNmb3JtLCBvcGFjaXR5XCI7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgICByb290LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcblxuICAgIHJldHVybiBlbGVtZW50O1xufVxuXG5pbnRlcmZhY2UgSVBoeXNpY3Mge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgejogbnVtYmVyO1xuICAgIHdvYmJsZTogbnVtYmVyO1xuICAgIHdvYmJsZVNwZWVkOiBudW1iZXI7XG4gICAgdmVsb2NpdHk6IG51bWJlcjtcbiAgICBhbmdsZTJEOiBudW1iZXI7XG4gICAgYW5nbGUzRDogbnVtYmVyO1xuICAgIHRpbHRBbmdsZTogbnVtYmVyO1xuICAgIHRpbHRBbmdsZVNwZWVkOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBJRmV0dGkge1xuICAgIGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIHBoeXNpY3M6IElQaHlzaWNzXG59XG5cbmZ1bmN0aW9uIHJhbmRvbVBoeXNpY3MoYW5nbGU6IG51bWJlciwgc3ByZWFkOiBudW1iZXIsIHN0YXJ0VmVsb2NpdHk6IG51bWJlciwgcmFuZG9tOiAoKSA9PiBudW1iZXIpOiBJUGh5c2ljcyB7XG4gICAgY29uc3QgcmFkQW5nbGUgPSBhbmdsZSAqIChNYXRoLlBJIC8gMTgwKTtcbiAgICBjb25zdCByYWRTcHJlYWQgPSBzcHJlYWQgKiAoTWF0aC5QSSAvIDE4MCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogMCxcbiAgICAgICAgeTogMCxcbiAgICAgICAgejogMCxcbiAgICAgICAgd29iYmxlOiByYW5kb20oKSAqIDEwLFxuICAgICAgICB3b2JibGVTcGVlZDogMC4xICsgcmFuZG9tKCkgKiAwLjEsXG4gICAgICAgIHZlbG9jaXR5OiBzdGFydFZlbG9jaXR5ICogMC41ICsgcmFuZG9tKCkgKiBzdGFydFZlbG9jaXR5LFxuICAgICAgICBhbmdsZTJEOiAtcmFkQW5nbGUgKyAoMC41ICogcmFkU3ByZWFkIC0gcmFuZG9tKCkgKiByYWRTcHJlYWQpLFxuICAgICAgICBhbmdsZTNEOiAtKE1hdGguUEkgLyA0KSArIHJhbmRvbSgpICogKE1hdGguUEkgLyAyKSxcbiAgICAgICAgdGlsdEFuZ2xlOiByYW5kb20oKSAqIE1hdGguUEksXG4gICAgICAgIHRpbHRBbmdsZVNwZWVkOiAwLjEgKyByYW5kb20oKSAqIDAuM1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGFuaW1hdGUocm9vdDogSFRNTEVsZW1lbnQsIGZldHRpczogQXJyYXk8SUZldHRpPiwgZHJhZ0ZyaWN0aW9uOiBudW1iZXIsIGRlY2F5OiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIsIHN0YWdnZXI6IG51bWJlcikge1xuICAgIGxldCBzdGFydFRpbWU6IG51bWJlcjtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlKHRpbWU6IG51bWJlcikge1xuICAgICAgICAgICAgaWYgKCFzdGFydFRpbWUpIHN0YXJ0VGltZSA9IHRpbWU7XG4gICAgICAgICAgICBjb25zdCBlbGFwc2VkID0gdGltZSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIGNvbnN0IHByb2dyZXNzID0gc3RhcnRUaW1lID09PSB0aW1lID8gMCA6ICh0aW1lIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uO1xuICAgICAgICAgICAgZmV0dGlzLnNsaWNlKDAsIE1hdGguY2VpbChlbGFwc2VkIC8gc3RhZ2dlcikpLmZvckVhY2goZmV0dGkgPT4ge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUZldHRpKGZldHRpLCBwcm9ncmVzcywgZHJhZ0ZyaWN0aW9uLCBkZWNheSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRpbWUgLSBzdGFydFRpbWUgPCBkdXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXR0aSA9IGZldHRpcy5maW5kKChmZXR0aSkgPT4gZmV0dGkuZWxlbWVudC5wYXJlbnROb2RlID09PSByb290KTtcbiAgICAgICAgICAgICAgICBpZiAoZmV0dGkpIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5yZW1vdmVDaGlsZChmZXR0aS5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVwZGF0ZSk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZldHRpKGZldHRpOiBJRmV0dGksIHByb2dyZXNzOiBudW1iZXIsIGRyYWdGcmljdGlvbjogbnVtYmVyLCBkZWNheTogbnVtYmVyKSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgICBmZXR0aS5waHlzaWNzLnggKz0gTWF0aC5jb3MoZmV0dGkucGh5c2ljcy5hbmdsZTJEKSAqIGZldHRpLnBoeXNpY3MudmVsb2NpdHk7XG4gICAgZmV0dGkucGh5c2ljcy55ICs9IE1hdGguc2luKGZldHRpLnBoeXNpY3MuYW5nbGUyRCkgKiBmZXR0aS5waHlzaWNzLnZlbG9jaXR5O1xuICAgIGZldHRpLnBoeXNpY3MueiArPSBNYXRoLnNpbihmZXR0aS5waHlzaWNzLmFuZ2xlM0QpICogZmV0dGkucGh5c2ljcy52ZWxvY2l0eTtcbiAgICBmZXR0aS5waHlzaWNzLndvYmJsZSArPSBmZXR0aS5waHlzaWNzLndvYmJsZVNwZWVkO1xuICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICBpZiAoZGVjYXkpIHtcbiAgICAgIGZldHRpLnBoeXNpY3MudmVsb2NpdHkgKj0gZGVjYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZldHRpLnBoeXNpY3MudmVsb2NpdHkgLT0gZmV0dGkucGh5c2ljcy52ZWxvY2l0eSAqIGRyYWdGcmljdGlvbjtcbiAgICB9XG4gICAgZmV0dGkucGh5c2ljcy55ICs9IDM7XG4gICAgZmV0dGkucGh5c2ljcy50aWx0QW5nbGUgKz0gZmV0dGkucGh5c2ljcy50aWx0QW5nbGVTcGVlZDtcblxuICAgIGNvbnN0IHsgeCwgeSwgeiwgdGlsdEFuZ2xlLCB3b2JibGUgfSA9IGZldHRpLnBoeXNpY3M7XG4gICAgY29uc3Qgd29iYmxlWCA9IHggKyAxMCAqIE1hdGguY29zKHdvYmJsZSk7XG4gICAgY29uc3Qgd29iYmxlWSA9IHkgKyAxMCAqIE1hdGguc2luKHdvYmJsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7d29iYmxlWH1weCwgJHt3b2JibGVZfXB4LCAke3p9cHgpIHJvdGF0ZTNkKDEsIDEsIDEsICR7dGlsdEFuZ2xlfXJhZClgO1xuXG4gICAgZmV0dGkuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCI7XG4gICAgZmV0dGkuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgZmV0dGkuZWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gKDEgLSBwcm9ncmVzcykudG9TdHJpbmcoKTs7XG5cbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gIH1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZldHRpKHJvb3Q6IEhUTUxFbGVtZW50LCBjb25maWc/OiBQYXJ0aWFsPENvbmZldHRpQ29uZmlnPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgZWxlbWVudENvdW50LFxuICAgICAgICBjb2xvcnMsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHBlcnNwZWN0aXZlLFxuICAgICAgICBhbmdsZSxcbiAgICAgICAgc3ByZWFkLFxuICAgICAgICBzdGFydFZlbG9jaXR5LFxuICAgICAgICBkZWNheSxcbiAgICAgICAgZHJhZ0ZyaWN0aW9uLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgc3RhZ2dlcixcbiAgICAgICAgcmFuZG9tXG4gICAgfSA9IHsgLi4uZGVmYXVsdHNDb25mZXR0aUNvbmZpZywgLi4uY29uZmlnIH0gYXMgQ29uZmV0dGlDb25maWc7XG4gICAgcm9vdC5zdHlsZS5wZXJzcGVjdGl2ZSA9IHBlcnNwZWN0aXZlO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gY3JlYXRlRWxlbWVudHMocm9vdCwgZWxlbWVudENvdW50ID8/IDUwLCBjb2xvcnMsIHdpZHRoLCBoZWlnaHQpO1xuICAgIGNvbnN0IGZldHRpcyA9IGVsZW1lbnRzLm1hcChlbGVtZW50ID0+ICh7XG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIHBoeXNpY3M6IHJhbmRvbVBoeXNpY3MoYW5nbGUsIHNwcmVhZCwgc3RhcnRWZWxvY2l0eSwgcmFuZG9tKVxuICAgIH0pKTtcblxuICAgIHJldHVybiBhbmltYXRlKHJvb3QsIGZldHRpcywgZHJhZ0ZyaWN0aW9uLCBkZWNheSwgZHVyYXRpb24sIHN0YWdnZXIpO1xufVxuIl19
@@ -25,13 +25,14 @@ export class NgxDomConfettiComponent {
25
25
  }
26
26
  }
27
27
  onClick() {
28
+ console.log(this._config);
28
29
  confetti(this.el.nativeElement, this._config);
29
30
  }
30
31
  ngOnInit() { }
31
32
  }
32
- NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
33
- NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
33
+ NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
34
+ NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
35
36
  type: Component,
36
37
  args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
37
38
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
40
41
  type: HostListener,
41
42
  args: ['click']
42
43
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRvbS1jb25mZXR0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvbmd4LWRvbS1jb25mZXR0aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxRQUFRLEVBQWtCLE1BQU0sWUFBWSxDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBWWxDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUk7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFdBQVcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztZQUMvRCxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxFQUFFLEdBQUc7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUE7SUFDRCxDQUFDO0lBdkJELElBQ1csTUFBTSxDQUFDLE9BQWdDO1FBQ2hELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckQ7SUFFSCxDQUFDO0lBb0JELE9BQU87UUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQzs7b0hBbENSLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHFJQUh4Qiw2QkFBNkI7MkZBRzVCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsNkJBQTZCO2lHQVE1QixNQUFNO3NCQURoQixLQUFLO2dCQTBCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbmZldHRpLCBDb25mZXR0aUNvbmZpZyB9IGZyb20gJy4vY29uZmV0dGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZG9tLWNvbmZldHRpJyxcbiAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hEb21Db25mZXR0aUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiAgUGFydGlhbDxDb25mZXR0aUNvbmZpZz47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb25maWcoX2NvbmZpZzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pIHtcbiAgICBpZiAoX2NvbmZpZykge1xuICAgICAgdGhpcy5fY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLl9jb25maWcsIF9jb25maWcpO1xuICAgIH1cblxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICAgIHRoaXMuX2NvbmZpZyA9ICB7XG4gICAgICBhbmdsZTogOTAsXG4gICAgICBzcHJlYWQ6IDQ1LFxuICAgICAgc3RhcnRWZWxvY2l0eTogNDUsXG4gICAgICBlbGVtZW50Q291bnQ6IDUwLFxuICAgICAgd2lkdGg6IFwiMTBweFwiLFxuICAgICAgaGVpZ2h0OiBcIjEwcHhcIixcbiAgICAgIHBlcnNwZWN0aXZlOiBcIlwiLFxuICAgICAgY29sb3JzOiBbXCIjYTg2NGZkXCIsIFwiIzI5Y2RmZlwiLCBcIiM3OGZmNDRcIiwgXCIjZmY3MThkXCIsIFwiI2ZkZmY2YVwiXSxcbiAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgc3RhZ2dlcjogMCxcbiAgICAgIGRyYWdGcmljdGlvbjogMC4xLFxuICAgICAgcmFuZG9tOiBNYXRoLnJhbmRvbVxuICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgY29uZmV0dGkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl9jb25maWcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRvbS1jb25mZXR0aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtZG9tLWNvbmZldHRpL3NyYy9saWIvbmd4LWRvbS1jb25mZXR0aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSxRQUFRLEVBQWtCLE1BQU0sWUFBWSxDQUFDOztBQU90RCxNQUFNLE9BQU8sdUJBQXVCO0lBWWxDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUk7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFdBQVcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztZQUMvRCxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxFQUFFLEdBQUc7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUE7SUFDRCxDQUFDO0lBdkJELElBQ1csTUFBTSxDQUFDLE9BQWdDO1FBQ2hELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckQ7SUFFSCxDQUFDO0lBb0JELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQzs7b0hBbkNSLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHFJQUh4Qiw2QkFBNkI7MkZBRzVCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsNkJBQTZCO2lHQVE1QixNQUFNO3NCQURoQixLQUFLO2dCQTBCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbmZldHRpLCBDb25mZXR0aUNvbmZpZyB9IGZyb20gJy4vY29uZmV0dGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZG9tLWNvbmZldHRpJyxcbiAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hEb21Db25mZXR0aUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiAgUGFydGlhbDxDb25mZXR0aUNvbmZpZz47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb25maWcoX2NvbmZpZzogUGFydGlhbDxDb25mZXR0aUNvbmZpZz4pIHtcbiAgICBpZiAoX2NvbmZpZykge1xuICAgICAgdGhpcy5fY29uZmlnID0gT2JqZWN0LmFzc2lnbih0aGlzLl9jb25maWcsIF9jb25maWcpO1xuICAgIH1cblxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICAgIHRoaXMuX2NvbmZpZyA9ICB7XG4gICAgICBhbmdsZTogOTAsXG4gICAgICBzcHJlYWQ6IDQ1LFxuICAgICAgc3RhcnRWZWxvY2l0eTogNDUsXG4gICAgICBlbGVtZW50Q291bnQ6IDUwLFxuICAgICAgd2lkdGg6IFwiMTBweFwiLFxuICAgICAgaGVpZ2h0OiBcIjEwcHhcIixcbiAgICAgIHBlcnNwZWN0aXZlOiBcIlwiLFxuICAgICAgY29sb3JzOiBbXCIjYTg2NGZkXCIsIFwiIzI5Y2RmZlwiLCBcIiM3OGZmNDRcIiwgXCIjZmY3MThkXCIsIFwiI2ZkZmY2YVwiXSxcbiAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgc3RhZ2dlcjogMCxcbiAgICAgIGRyYWdGcmljdGlvbjogMC4xLFxuICAgICAgcmFuZG9tOiBNYXRoLnJhbmRvbVxuICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5fY29uZmlnKTtcbiAgICBjb25mZXR0aSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2NvbmZpZyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iXX0=
@@ -3,10 +3,10 @@ import { NgxDomConfettiComponent } from './ngx-dom-confetti.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgxDomConfettiModule {
5
5
  }
6
- NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
8
- NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
6
+ NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
8
+ NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  declarations: [
@@ -1,14 +1,19 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { confetti, defaultsConfettiConfig } from './confetti';
2
3
  import * as i0 from "@angular/core";
3
4
  export class NgxDomConfettiService {
4
- constructor() { }
5
+ constructor() {
6
+ }
7
+ open(el, config) {
8
+ confetti(el, Object.assign(defaultsConfettiConfig, config));
9
+ }
5
10
  }
6
- NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
- NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, decorators: [{
11
+ NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
+ NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, decorators: [{
9
14
  type: Injectable,
10
15
  args: [{
11
16
  providedIn: 'root'
12
17
  }]
13
18
  }], ctorParameters: function () { return []; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRvbS1jb25mZXR0aS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL25neC1kb20tY29uZmV0dGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDOztrSEFGTixxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neERvbUNvbmZldHRpU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRvbS1jb25mZXR0aS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmd4LWRvbS1jb25mZXR0aS9zcmMvbGliL25neC1kb20tY29uZmV0dGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWtCLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUs5RSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDO0lBQ0EsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFlLEVBQUUsTUFBZ0M7UUFDM0QsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7a0hBUFUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29uZmV0dGksIENvbmZldHRpQ29uZmlnLCBkZWZhdWx0c0NvbmZldHRpQ29uZmlnIH0gZnJvbSAnLi9jb25mZXR0aSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neERvbUNvbmZldHRpU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgb3BlbihlbDogSFRNTEVsZW1lbnQsIGNvbmZpZz86IFBhcnRpYWw8Q29uZmV0dGlDb25maWc+KSB7XG4gICAgY29uZmV0dGkoZWwsIE9iamVjdC5hc3NpZ24oZGVmYXVsdHNDb25mZXR0aUNvbmZpZywgY29uZmlnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -20,7 +20,8 @@ const defaultsConfettiConfig = {
20
20
  random: Math.random
21
21
  };
22
22
  function createElements(root, elementCount, colors, width, height) {
23
- return Array.from({ length: elementCount }).map((_, index) => {
23
+ const fragment = document.createDocumentFragment();
24
+ const element = Array.from({ length: elementCount }).map((_, index) => {
24
25
  const element = document.createElement("div");
25
26
  const color = colors[index % colors.length];
26
27
  element.style.backgroundColor = color;
@@ -29,9 +30,11 @@ function createElements(root, elementCount, colors, width, height) {
29
30
  element.style.position = "absolute";
30
31
  element.style.willChange = "transform, opacity";
31
32
  element.style.visibility = "hidden";
32
- root.appendChild(element);
33
+ fragment.appendChild(element);
33
34
  return element;
34
35
  });
36
+ root.appendChild(fragment);
37
+ return element;
35
38
  }
36
39
  function randomPhysics(angle, spread, startVelocity, random) {
37
40
  const radAngle = angle * (Math.PI / 180);
@@ -111,11 +114,15 @@ function confetti(root, config) {
111
114
  }
112
115
 
113
116
  class NgxDomConfettiService {
114
- constructor() { }
117
+ constructor() {
118
+ }
119
+ open(el, config) {
120
+ confetti(el, Object.assign(defaultsConfettiConfig, config));
121
+ }
115
122
  }
116
- NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
117
- NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, decorators: [{
123
+ NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
124
+ NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, decorators: [{
119
126
  type: Injectable,
120
127
  args: [{
121
128
  providedIn: 'root'
@@ -146,13 +153,14 @@ class NgxDomConfettiComponent {
146
153
  }
147
154
  }
148
155
  onClick() {
156
+ console.log(this._config);
149
157
  confetti(this.el.nativeElement, this._config);
150
158
  }
151
159
  ngOnInit() { }
152
160
  }
153
- NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
154
- NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
161
+ NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
162
+ NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
156
164
  type: Component,
157
165
  args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
158
166
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -164,10 +172,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
164
172
 
165
173
  class NgxDomConfettiModule {
166
174
  }
167
- NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
168
- NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
169
- NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule });
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
175
+ NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
176
+ NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
177
+ NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
171
179
  type: NgModule,
172
180
  args: [{
173
181
  declarations: [
@@ -188,5 +196,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
188
196
  * Generated bundle index. Do not edit.
189
197
  */
190
198
 
191
- export { NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, confetti };
199
+ export { NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, confetti, defaultsConfettiConfig };
200
+ //# sourceMappingURL=ngx-dom-confetti.mjs.map
192
201
  //# sourceMappingURL=ngx-dom-confetti.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-dom-confetti.mjs","sources":["../../../packages/ngx-dom-confetti/src/lib/confetti.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.service.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.component.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.module.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["/**\n * License MIT, copyright Daniel Lundin 2019\n */\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\nconst defaultColors = [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"];\n\nconst 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\nfunction createElements(root: HTMLElement, elementCount: number, colors: string[], width: string, height: string) {\n return Array.from({ length: elementCount }).map((_, index) => {\n const element = 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 root.appendChild(element);\n return element;\n });\n}\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\nfunction randomPhysics(angle: number, spread: number, startVelocity: number, random: () => number): 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\nfunction 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 function 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 updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n const fetti = fettis.find((fetti) => fetti.element.parentNode === root);\n if (fetti) {\n root.removeChild(fetti.element);\n }\n resolve();\n }\n }\n\n requestAnimationFrame(update);\n });\n}\n\nfunction 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 \n /* eslint-enable */\n }\n\nexport function confetti(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 elements = createElements(root, elementCount ?? 50, colors, width, height);\n const fettis = elements.map(element => ({\n element,\n physics: randomPhysics(angle, spread, startVelocity, random)\n }));\n\n return animate(root, fettis, dragFriction, decay, duration, stagger);\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxDomConfettiService {\n\n constructor() { }\n}\n","import { Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\n\nimport { confetti, ConfettiConfig } from './confetti';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent implements OnInit {\n\n private _config: Partial<ConfettiConfig>;\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\n constructor(private el: ElementRef) {\n this._config = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n }\n }\n\n @HostListener('click')\n onClick() {\n confetti(this.el.nativeElement, this._config);\n }\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { NgxDomConfettiComponent } from './ngx-dom-confetti.component';\n\n\n@NgModule({\n declarations: [\n NgxDomConfettiComponent\n ],\n imports: [\n ],\n exports: [\n NgxDomConfettiComponent\n ]\n})\nexport class NgxDomConfettiModule { }\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti';\nexport * from './lib/ngx-dom-confetti.service';\nexport * from './lib/ngx-dom-confetti.component';\nexport * from './lib/ngx-dom-confetti.module';\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/confetti.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.service.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.component.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.module.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["/**\n * License MIT, copyright Daniel Lundin 2019\n */\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\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\nfunction createElements(root: HTMLElement, elementCount: number, colors: string[], width: string, height: string) {\n const fragment = document.createDocumentFragment();\n const element = Array.from({ length: elementCount }).map((_, index) => {\n const element = 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 root.appendChild(fragment);\n\n return element;\n}\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\nfunction randomPhysics(angle: number, spread: number, startVelocity: number, random: () => number): 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\nfunction 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 function 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 updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n const fetti = fettis.find((fetti) => fetti.element.parentNode === root);\n if (fetti) {\n root.removeChild(fetti.element);\n }\n resolve();\n }\n }\n\n requestAnimationFrame(update);\n });\n}\n\nfunction 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\n /* eslint-enable */\n }\n\nexport function confetti(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 elements = createElements(root, elementCount ?? 50, colors, width, height);\n const fettis = elements.map(element => ({\n element,\n physics: randomPhysics(angle, spread, startVelocity, random)\n }));\n\n return animate(root, fettis, dragFriction, decay, duration, stagger);\n}\n","import { Injectable } from '@angular/core';\nimport { confetti, ConfettiConfig, defaultsConfettiConfig } from './confetti';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxDomConfettiService {\n\n constructor() {\n }\n\n public open(el: HTMLElement, config?: Partial<ConfettiConfig>) {\n confetti(el, Object.assign(defaultsConfettiConfig, config));\n }\n}\n","import { Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\n\nimport { confetti, ConfettiConfig } from './confetti';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent implements OnInit {\n\n private _config: Partial<ConfettiConfig>;\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\n constructor(private el: ElementRef) {\n this._config = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n }\n }\n\n @HostListener('click')\n onClick() {\n console.log(this._config);\n confetti(this.el.nativeElement, this._config);\n }\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { NgxDomConfettiComponent } from './ngx-dom-confetti.component';\n\n\n@NgModule({\n declarations: [\n NgxDomConfettiComponent\n ],\n imports: [\n ],\n exports: [\n NgxDomConfettiComponent\n ]\n})\nexport class NgxDomConfettiModule { }\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti';\nexport * from './lib/ngx-dom-confetti.service';\nexport * from './lib/ngx-dom-confetti.component';\nexport * from './lib/ngx-dom-confetti.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ const defaultsConfettiConfig = {
20
20
  random: Math.random
21
21
  };
22
22
  function createElements(root, elementCount, colors, width, height) {
23
- return Array.from({ length: elementCount }).map((_, index) => {
23
+ const fragment = document.createDocumentFragment();
24
+ const element = Array.from({ length: elementCount }).map((_, index) => {
24
25
  const element = document.createElement("div");
25
26
  const color = colors[index % colors.length];
26
27
  element.style.backgroundColor = color;
@@ -29,9 +30,11 @@ function createElements(root, elementCount, colors, width, height) {
29
30
  element.style.position = "absolute";
30
31
  element.style.willChange = "transform, opacity";
31
32
  element.style.visibility = "hidden";
32
- root.appendChild(element);
33
+ fragment.appendChild(element);
33
34
  return element;
34
35
  });
36
+ root.appendChild(fragment);
37
+ return element;
35
38
  }
36
39
  function randomPhysics(angle, spread, startVelocity, random) {
37
40
  const radAngle = angle * (Math.PI / 180);
@@ -111,11 +114,15 @@ function confetti(root, config) {
111
114
  }
112
115
 
113
116
  class NgxDomConfettiService {
114
- constructor() { }
117
+ constructor() {
118
+ }
119
+ open(el, config) {
120
+ confetti(el, Object.assign(defaultsConfettiConfig, config));
121
+ }
115
122
  }
116
- NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
117
- NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiService, decorators: [{
123
+ NgxDomConfettiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
124
+ NgxDomConfettiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, providedIn: 'root' });
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiService, decorators: [{
119
126
  type: Injectable,
120
127
  args: [{
121
128
  providedIn: 'root'
@@ -146,13 +153,14 @@ class NgxDomConfettiComponent {
146
153
  }
147
154
  }
148
155
  onClick() {
156
+ console.log(this._config);
149
157
  confetti(this.el.nativeElement, this._config);
150
158
  }
151
159
  ngOnInit() { }
152
160
  }
153
- NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
154
- NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
161
+ NgxDomConfettiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
162
+ NgxDomConfettiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: NgxDomConfettiComponent, selector: "ngx-dom-confetti", inputs: { config: "config" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiComponent, decorators: [{
156
164
  type: Component,
157
165
  args: [{ selector: 'ngx-dom-confetti', template: ` <ng-content></ng-content> ` }]
158
166
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { config: [{
@@ -164,10 +172,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
164
172
 
165
173
  class NgxDomConfettiModule {
166
174
  }
167
- NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
168
- NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
169
- NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule });
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
175
+ NgxDomConfettiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
176
+ NgxDomConfettiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, declarations: [NgxDomConfettiComponent], exports: [NgxDomConfettiComponent] });
177
+ NgxDomConfettiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgxDomConfettiModule, decorators: [{
171
179
  type: NgModule,
172
180
  args: [{
173
181
  declarations: [
@@ -188,5 +196,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
188
196
  * Generated bundle index. Do not edit.
189
197
  */
190
198
 
191
- export { NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, confetti };
199
+ export { NgxDomConfettiComponent, NgxDomConfettiModule, NgxDomConfettiService, confetti, defaultsConfettiConfig };
200
+ //# sourceMappingURL=ngx-dom-confetti.mjs.map
192
201
  //# sourceMappingURL=ngx-dom-confetti.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-dom-confetti.mjs","sources":["../../../packages/ngx-dom-confetti/src/lib/confetti.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.service.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.component.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.module.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["/**\n * License MIT, copyright Daniel Lundin 2019\n */\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\nconst defaultColors = [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"];\n\nconst 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\nfunction createElements(root: HTMLElement, elementCount: number, colors: string[], width: string, height: string) {\n return Array.from({ length: elementCount }).map((_, index) => {\n const element = 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 root.appendChild(element);\n return element;\n });\n}\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\nfunction randomPhysics(angle: number, spread: number, startVelocity: number, random: () => number): 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\nfunction 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 function 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 updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n const fetti = fettis.find((fetti) => fetti.element.parentNode === root);\n if (fetti) {\n root.removeChild(fetti.element);\n }\n resolve();\n }\n }\n\n requestAnimationFrame(update);\n });\n}\n\nfunction 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 \n /* eslint-enable */\n }\n\nexport function confetti(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 elements = createElements(root, elementCount ?? 50, colors, width, height);\n const fettis = elements.map(element => ({\n element,\n physics: randomPhysics(angle, spread, startVelocity, random)\n }));\n\n return animate(root, fettis, dragFriction, decay, duration, stagger);\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxDomConfettiService {\n\n constructor() { }\n}\n","import { Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\n\nimport { confetti, ConfettiConfig } from './confetti';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent implements OnInit {\n\n private _config: Partial<ConfettiConfig>;\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\n constructor(private el: ElementRef) {\n this._config = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n }\n }\n\n @HostListener('click')\n onClick() {\n confetti(this.el.nativeElement, this._config);\n }\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { NgxDomConfettiComponent } from './ngx-dom-confetti.component';\n\n\n@NgModule({\n declarations: [\n NgxDomConfettiComponent\n ],\n imports: [\n ],\n exports: [\n NgxDomConfettiComponent\n ]\n})\nexport class NgxDomConfettiModule { }\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti';\nexport * from './lib/ngx-dom-confetti.service';\nexport * from './lib/ngx-dom-confetti.component';\nexport * from './lib/ngx-dom-confetti.module';\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/confetti.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.service.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.component.ts","../../../packages/ngx-dom-confetti/src/lib/ngx-dom-confetti.module.ts","../../../packages/ngx-dom-confetti/src/public-api.ts","../../../packages/ngx-dom-confetti/src/ngx-dom-confetti.ts"],"sourcesContent":["/**\n * License MIT, copyright Daniel Lundin 2019\n */\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\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\nfunction createElements(root: HTMLElement, elementCount: number, colors: string[], width: string, height: string) {\n const fragment = document.createDocumentFragment();\n const element = Array.from({ length: elementCount }).map((_, index) => {\n const element = 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 root.appendChild(fragment);\n\n return element;\n}\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\nfunction randomPhysics(angle: number, spread: number, startVelocity: number, random: () => number): 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\nfunction 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 function 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 updateFetti(fetti, progress, dragFriction, decay);\n });\n\n if (time - startTime < duration) {\n requestAnimationFrame(update);\n } else {\n const fetti = fettis.find((fetti) => fetti.element.parentNode === root);\n if (fetti) {\n root.removeChild(fetti.element);\n }\n resolve();\n }\n }\n\n requestAnimationFrame(update);\n });\n}\n\nfunction 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\n /* eslint-enable */\n }\n\nexport function confetti(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 elements = createElements(root, elementCount ?? 50, colors, width, height);\n const fettis = elements.map(element => ({\n element,\n physics: randomPhysics(angle, spread, startVelocity, random)\n }));\n\n return animate(root, fettis, dragFriction, decay, duration, stagger);\n}\n","import { Injectable } from '@angular/core';\nimport { confetti, ConfettiConfig, defaultsConfettiConfig } from './confetti';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxDomConfettiService {\n\n constructor() {\n }\n\n public open(el: HTMLElement, config?: Partial<ConfettiConfig>) {\n confetti(el, Object.assign(defaultsConfettiConfig, config));\n }\n}\n","import { Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\n\nimport { confetti, ConfettiConfig } from './confetti';\n\n@Component({\n selector: 'ngx-dom-confetti',\n template: ` <ng-content></ng-content> `,\n styles: [],\n})\nexport class NgxDomConfettiComponent implements OnInit {\n\n private _config: Partial<ConfettiConfig>;\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\n constructor(private el: ElementRef) {\n this._config = {\n angle: 90,\n spread: 45,\n startVelocity: 45,\n elementCount: 50,\n width: \"10px\",\n height: \"10px\",\n perspective: \"\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n duration: 3000,\n stagger: 0,\n dragFriction: 0.1,\n random: Math.random\n }\n }\n\n @HostListener('click')\n onClick() {\n console.log(this._config);\n confetti(this.el.nativeElement, this._config);\n }\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { NgxDomConfettiComponent } from './ngx-dom-confetti.component';\n\n\n@NgModule({\n declarations: [\n NgxDomConfettiComponent\n ],\n imports: [\n ],\n exports: [\n NgxDomConfettiComponent\n ]\n})\nexport class NgxDomConfettiModule { }\n","/*\n * Public API Surface of ngx-dom-confetti\n */\nexport * from './lib/confetti';\nexport * from './lib/ngx-dom-confetti.service';\nexport * from './lib/ngx-dom-confetti.component';\nexport * from './lib/ngx-dom-confetti.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/lib/confetti.d.ts CHANGED
@@ -16,4 +16,18 @@ export interface ConfettiConfig {
16
16
  colors: string[];
17
17
  random: () => number;
18
18
  }
19
+ export declare const defaultsConfettiConfig: {
20
+ angle: number;
21
+ spread: number;
22
+ startVelocity: number;
23
+ elementCount: number;
24
+ width: string;
25
+ height: string;
26
+ perspective: string;
27
+ colors: string[];
28
+ duration: number;
29
+ stagger: number;
30
+ dragFriction: number;
31
+ random: () => number;
32
+ };
19
33
  export declare function confetti(root: HTMLElement, config?: Partial<ConfettiConfig>): Promise<void>;
@@ -9,5 +9,5 @@ export declare class NgxDomConfettiComponent implements OnInit {
9
9
  onClick(): void;
10
10
  ngOnInit(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxDomConfettiComponent, "ngx-dom-confetti", never, { "config": "config"; }, {}, never, ["*"], false>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxDomConfettiComponent, "ngx-dom-confetti", never, { "config": "config"; }, {}, never, ["*"], false, never>;
13
13
  }
@@ -1,6 +1,8 @@
1
+ import { ConfettiConfig } from './confetti';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class NgxDomConfettiService {
3
4
  constructor();
5
+ open(el: HTMLElement, config?: Partial<ConfettiConfig>): void;
4
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDomConfettiService, never>;
5
7
  static ɵprov: i0.ɵɵInjectableDeclaration<NgxDomConfettiService>;
6
8
  }
package/package.json CHANGED
@@ -1,10 +1,23 @@
1
1
  {
2
2
  "name": "ngx-dom-confetti",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "license": "MIT",
5
+ "keywords": [
6
+ "dom-confetti",
7
+ "angular",
8
+ "angular2+"
9
+ ],
10
+ "author": {
11
+ "name": "arthur ming",
12
+ "email": "minguobin@live.com"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/damingerdai/ngx-dom-confetti/issues"
16
+ },
17
+ "homepage": "https://github.com/damingerdai/ngx-dom-confetti",
5
18
  "peerDependencies": {
6
- "@angular/common": "^13.2.0",
7
- "@angular/core": "^13.2.0"
19
+ "@angular/common": "^14.0.0 || ^15.0.0",
20
+ "@angular/core": "^14.0.0|| ^15.0.0"
8
21
  },
9
22
  "dependencies": {
10
23
  "tslib": "^2.3.0"