@lluc_llull/ui-lib 0.12.0 → 0.12.2

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.
Files changed (113) hide show
  1. package/esm2022/lib/components/core/footers/index.mjs +5 -0
  2. package/esm2022/lib/components/core/footers/legal-footer/index.mjs +3 -0
  3. package/esm2022/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.mjs +2 -2
  4. package/esm2022/lib/components/core/footers/legal-footer/legal-footer.interface.mjs +2 -0
  5. package/esm2022/lib/components/core/footers/links-footer/index.mjs +3 -0
  6. package/esm2022/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.mjs +3 -3
  7. package/esm2022/lib/components/core/footers/links-footer/links-footer.interface.mjs +2 -0
  8. package/esm2022/lib/components/core/footers/social-footer/index.mjs +3 -0
  9. package/esm2022/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.mjs +3 -3
  10. package/esm2022/lib/components/core/footers/social-footer/social-footer.interface.mjs +2 -0
  11. package/esm2022/lib/components/core/footers/visual-footer/index.mjs +3 -0
  12. package/esm2022/lib/components/core/footers/visual-footer/visual-footer.component.mjs +29 -0
  13. package/esm2022/lib/components/core/footers/visual-footer/visual-footer.interface.mjs +2 -0
  14. package/esm2022/lib/components/core/headers/header-clear/header-clear.component.mjs +59 -0
  15. package/esm2022/lib/components/core/headers/header-clear/header-clear.interface.mjs +2 -0
  16. package/esm2022/lib/components/core/headers/header-clear/index.mjs +3 -0
  17. package/esm2022/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.mjs +4 -5
  18. package/esm2022/lib/components/core/headers/header-mobile/header-mobile.interface.mjs +2 -0
  19. package/esm2022/lib/components/core/headers/header-mobile/index.mjs +3 -0
  20. package/esm2022/lib/components/core/headers/index.mjs +3 -0
  21. package/esm2022/lib/components/core/index.mjs +5 -11
  22. package/esm2022/lib/components/core/modals/index.mjs +3 -0
  23. package/esm2022/lib/components/core/modals/lang-modal/index.mjs +3 -0
  24. package/esm2022/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.mjs +2 -2
  25. package/esm2022/lib/components/core/modals/lang-modal/lang-modal.interface.mjs +2 -0
  26. package/esm2022/lib/components/core/modals/nav-modal/index.mjs +3 -0
  27. package/esm2022/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.mjs +2 -2
  28. package/esm2022/lib/components/core/modals/nav-modal/nav-modal.interface.mjs +2 -0
  29. package/esm2022/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.mjs +1 -1
  30. package/esm2022/lib/components/core/sections/category-progress/category-progress.interface.mjs +2 -0
  31. package/esm2022/lib/components/core/sections/category-progress/index.mjs +3 -0
  32. package/esm2022/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.mjs +2 -2
  33. package/esm2022/lib/components/core/sections/hero-section/hero-section.interface.mjs +2 -0
  34. package/esm2022/lib/components/core/sections/hero-section/hero-section.stories.mjs +25 -0
  35. package/esm2022/lib/components/core/sections/hero-section/index.mjs +4 -0
  36. package/esm2022/lib/components/core/sections/index.mjs +4 -0
  37. package/esm2022/lib/components/core/sections/section-intro/index.mjs +3 -0
  38. package/esm2022/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.mjs +2 -2
  39. package/esm2022/lib/components/core/sections/section-intro/section-intro.interface.mjs +2 -0
  40. package/esm2022/lib/components/effects/dynamic-background/dynamic-background.component.mjs +33 -31
  41. package/esm2022/lib/components/effects/dynamic-background/effects/dynamic-effect.interface.mjs +2 -0
  42. package/esm2022/lib/components/effects/dynamic-background/effects/effect-registry.mjs +7 -0
  43. package/esm2022/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.mjs +37 -0
  44. package/fesm2022/lluc_llull-ui-lib.mjs +245 -177
  45. package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
  46. package/lib/components/core/footers/index.d.ts +4 -0
  47. package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.d.ts +1 -1
  48. package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.interface.d.ts +1 -1
  49. package/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.d.ts +1 -1
  50. package/lib/components/core/{links-footer → footers/links-footer}/links-footer.interface.d.ts +1 -1
  51. package/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.d.ts +1 -1
  52. package/lib/components/core/{social-footer → footers/social-footer}/social-footer.interface.d.ts +1 -1
  53. package/lib/components/core/footers/visual-footer/index.d.ts +2 -0
  54. package/lib/components/core/footers/visual-footer/visual-footer.component.d.ts +14 -0
  55. package/lib/components/core/footers/visual-footer/visual-footer.interface.d.ts +11 -0
  56. package/lib/components/core/{header-clear → headers/header-clear}/header-clear.component.d.ts +2 -4
  57. package/lib/components/core/headers/header-clear/header-clear.interface.d.ts +9 -0
  58. package/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.d.ts +4 -4
  59. package/lib/components/core/headers/header-mobile/header-mobile.interface.d.ts +9 -0
  60. package/lib/components/core/headers/index.d.ts +2 -0
  61. package/lib/components/core/index.d.ts +4 -10
  62. package/lib/components/core/modals/index.d.ts +2 -0
  63. package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.d.ts +1 -1
  64. package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.d.ts +1 -1
  65. package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.interface.d.ts +1 -1
  66. package/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.d.ts +1 -1
  67. package/lib/components/core/{hero-section → sections/hero-section}/hero-section.interface.d.ts +1 -1
  68. package/lib/components/core/sections/index.d.ts +3 -0
  69. package/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.d.ts +1 -1
  70. package/lib/components/effects/dynamic-background/dynamic-background.component.d.ts +9 -3
  71. package/lib/components/effects/dynamic-background/effects/dynamic-effect.interface.d.ts +6 -0
  72. package/lib/components/effects/dynamic-background/effects/effect-registry.d.ts +3 -0
  73. package/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.d.ts +13 -0
  74. package/package.json +1 -1
  75. package/esm2022/lib/components/core/category-progress/category-progress.interface.mjs +0 -2
  76. package/esm2022/lib/components/core/category-progress/index.mjs +0 -3
  77. package/esm2022/lib/components/core/header-clear/header-clear.component.mjs +0 -60
  78. package/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +0 -2
  79. package/esm2022/lib/components/core/header-clear/index.mjs +0 -3
  80. package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +0 -2
  81. package/esm2022/lib/components/core/header-mobile/index.mjs +0 -3
  82. package/esm2022/lib/components/core/hero-section/hero-section.interface.mjs +0 -2
  83. package/esm2022/lib/components/core/hero-section/hero-section.stories.mjs +0 -25
  84. package/esm2022/lib/components/core/hero-section/index.mjs +0 -4
  85. package/esm2022/lib/components/core/lang-modal/index.mjs +0 -3
  86. package/esm2022/lib/components/core/lang-modal/lang-modal.interface.mjs +0 -2
  87. package/esm2022/lib/components/core/legal-footer/index.mjs +0 -3
  88. package/esm2022/lib/components/core/legal-footer/legal-footer.interface.mjs +0 -2
  89. package/esm2022/lib/components/core/links-footer/index.mjs +0 -3
  90. package/esm2022/lib/components/core/links-footer/links-footer.interface.mjs +0 -2
  91. package/esm2022/lib/components/core/nav-modal/index.mjs +0 -3
  92. package/esm2022/lib/components/core/nav-modal/nav-modal.interface.mjs +0 -2
  93. package/esm2022/lib/components/core/section-intro/index.mjs +0 -3
  94. package/esm2022/lib/components/core/section-intro/section-intro.interface.mjs +0 -2
  95. package/esm2022/lib/components/core/social-footer/index.mjs +0 -3
  96. package/esm2022/lib/components/core/social-footer/social-footer.interface.mjs +0 -2
  97. package/lib/components/core/header-clear/header-clear.interface.d.ts +0 -11
  98. package/lib/components/core/header-mobile/header-mobile.interface.d.ts +0 -11
  99. /package/lib/components/core/{legal-footer → footers/legal-footer}/index.d.ts +0 -0
  100. /package/lib/components/core/{links-footer → footers/links-footer}/index.d.ts +0 -0
  101. /package/lib/components/core/{social-footer → footers/social-footer}/index.d.ts +0 -0
  102. /package/lib/components/core/{header-clear → headers/header-clear}/index.d.ts +0 -0
  103. /package/lib/components/core/{header-mobile → headers/header-mobile}/index.d.ts +0 -0
  104. /package/lib/components/core/{lang-modal → modals/lang-modal}/index.d.ts +0 -0
  105. /package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.interface.d.ts +0 -0
  106. /package/lib/components/core/{nav-modal → modals/nav-modal}/index.d.ts +0 -0
  107. /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.d.ts +0 -0
  108. /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.interface.d.ts +0 -0
  109. /package/lib/components/core/{category-progress → sections/category-progress}/index.d.ts +0 -0
  110. /package/lib/components/core/{hero-section → sections/hero-section}/hero-section.stories.d.ts +0 -0
  111. /package/lib/components/core/{hero-section → sections/hero-section}/index.d.ts +0 -0
  112. /package/lib/components/core/{section-intro → sections/section-intro}/index.d.ts +0 -0
  113. /package/lib/components/core/{section-intro → sections/section-intro}/section-intro.interface.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ export * from './section-intro.component';
2
+ export * from './section-intro.interface';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlY3Rpb24taW50cm8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbi1pbnRyby5pbnRlcmZhY2UnOyJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
- import { LinkTypeDirective } from '../../../directives/link-type.directive';
3
+ import { LinkTypeDirective } from '../../../../directives/link-type.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SectionIntroComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionIntroComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
20
20
  }], button: [{
21
21
  type: Input
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zZWN0aW9uLWludHJvL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVU1RSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxTENibEMsK2NBdUJBLHFiRGZZLFlBQVksK0JBQUUsaUJBQWlCOzs0RkFLOUIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWludHJvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1pbnRyby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zZWN0aW9uLWludHJvLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25JbnRyb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbj86IFVpTGliQnV0dG9uSTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uLWludHJvXCI+XG4gIEBpZihwcmV0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwicHJldGl0bGVcIj57e3ByZXRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0aXRsZSl7XG4gICAgPGgxIGNsYXNzPVwidGl0bGVcIj57e3RpdGxlfX08L2gxPlxuICB9XG4gIEBpZihzdWJ0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwic3VidGl0bGVcIj57e3N1YnRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0ZXh0KXtcbiAgICA8cCBjbGFzcz1cInRleHRcIj57e3RleHR9fTwvcD5cbiAgfVxuICBAaWYoYnV0dG9uKXtcbiAgICA8YVxuICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICA+XG4gICAgICB7e2J1dHRvbi5sYWJlbH19ICBcbiAgICA8L2E+XG4gIH1cbjwvZGl2PlxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zZWN0aW9ucy9zZWN0aW9uLWludHJvL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQVUvRSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxTENibEMsK2NBdUJBLHFiRGZZLFlBQVksK0JBQUUsaUJBQWlCOzs0RkFLOUIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWludHJvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1pbnRyby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zZWN0aW9uLWludHJvLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25JbnRyb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbj86IFVpTGliQnV0dG9uSTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uLWludHJvXCI+XG4gIEBpZihwcmV0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwicHJldGl0bGVcIj57e3ByZXRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0aXRsZSl7XG4gICAgPGgxIGNsYXNzPVwidGl0bGVcIj57e3RpdGxlfX08L2gxPlxuICB9XG4gIEBpZihzdWJ0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwic3VidGl0bGVcIj57e3N1YnRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0ZXh0KXtcbiAgICA8cCBjbGFzcz1cInRleHRcIj57e3RleHR9fTwvcD5cbiAgfVxuICBAaWYoYnV0dG9uKXtcbiAgICA8YVxuICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICA+XG4gICAgICB7e2J1dHRvbi5sYWJlbH19ICBcbiAgICA8L2E+XG4gIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbnMvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uSW50cm9JIHtcbiAgXG59Il19
@@ -1,28 +1,19 @@
1
1
  import { CommonModule, isPlatformBrowser } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, inject, PLATFORM_ID, ViewChild, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, inject, Input, PLATFORM_ID, ViewChild, } from '@angular/core';
3
3
  import * as THREE from 'three';
4
+ import { EFFECT_REGISTRY } from './effects/effect-registry';
4
5
  import * as i0 from "@angular/core";
5
6
  export class DynamicBackgroundComponent {
6
7
  constructor() {
8
+ this.effect = 'sphere-deform';
9
+ this.rotationSpeed = 0.01;
10
+ this.size = 2;
11
+ this.backgroundColor = '#000000';
7
12
  this.platformId = inject(PLATFORM_ID);
8
13
  this.isBrowser = isPlatformBrowser(this.platformId);
9
- this.time = 0;
10
14
  this.animate = () => {
11
15
  this.animationId = requestAnimationFrame(this.animate);
12
- this.time += 0.02;
13
- // deformamos vértices
14
- const positionAttr = this.sphere.geometry.attributes['position'];
15
- const vertex = new THREE.Vector3();
16
- for (let i = 0; i < positionAttr.count; i++) {
17
- vertex.fromBufferAttribute(positionAttr, i);
18
- // Distorsión progresiva
19
- const offset = Math.sin(vertex.x * 3 + this.time) * 0.2 +
20
- Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;
21
- vertex.normalize().multiplyScalar(2 + offset);
22
- positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);
23
- }
24
- positionAttr.needsUpdate = true;
25
- this.sphere.geometry.computeVertexNormals();
16
+ this.currentEffect.animate();
26
17
  this.renderer.render(this.scene, this.camera);
27
18
  };
28
19
  this.onResize = () => {
@@ -36,16 +27,16 @@ export class DynamicBackgroundComponent {
36
27
  ngOnInit() {
37
28
  if (this.isBrowser) {
38
29
  this.initScene();
30
+ this.loadEffect();
39
31
  this.animate();
40
32
  window.addEventListener('resize', this.onResize);
41
33
  }
42
34
  }
43
35
  ngOnDestroy() {
44
- if (isPlatformBrowser(this.platformId)) {
36
+ if (this.isBrowser) {
45
37
  cancelAnimationFrame(this.animationId);
46
- if (this.renderer) {
47
- this.renderer.dispose();
48
- }
38
+ this.renderer?.dispose();
39
+ this.currentEffect?.dispose();
49
40
  window.removeEventListener('resize', this.onResize);
50
41
  }
51
42
  }
@@ -53,33 +44,44 @@ export class DynamicBackgroundComponent {
53
44
  const width = window.innerWidth;
54
45
  const height = window.innerHeight;
55
46
  this.scene = new THREE.Scene();
47
+ this.scene.background = new THREE.Color(this.backgroundColor);
56
48
  this.camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);
57
49
  this.camera.position.z = 5;
58
50
  this.renderer = new THREE.WebGLRenderer({
59
51
  canvas: this.canvasRef.nativeElement,
60
- alpha: true,
61
52
  antialias: true,
62
53
  });
63
54
  this.renderer.setSize(width, height);
64
- // Luz para dar volumen
65
55
  const light = new THREE.DirectionalLight(0xffffff, 1);
66
56
  light.position.set(5, 5, 5).normalize();
67
57
  this.scene.add(light);
68
- // Geometría de esfera con muchos segmentos
69
- const geometry = new THREE.SphereGeometry(2, 128, 128);
70
- // Material con shading visible
71
- const material = new THREE.MeshNormalMaterial({ flatShading: true });
72
- this.sphere = new THREE.Mesh(geometry, material);
73
- this.scene.add(this.sphere);
58
+ }
59
+ loadEffect() {
60
+ const EffectClass = EFFECT_REGISTRY[this.effect];
61
+ if (!EffectClass) {
62
+ throw new Error(`Efecto "${this.effect}" no está registrado en EFFECT_REGISTRY`);
63
+ }
64
+ this.currentEffect = new EffectClass(this.size, this.rotationSpeed, this.elementColor);
65
+ this.currentEffect.init(this.scene, {});
74
66
  }
75
67
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicBackgroundComponent, isStandalone: true, selector: "lib-dynamic-background", viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["bgCanvas"], descendants: true, static: true }], ngImport: i0, template: "<canvas #bgCanvas class=\"dynamic-bg\"></canvas>", styles: [".dynamic-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DynamicBackgroundComponent, isStandalone: true, selector: "lib-dynamic-background", inputs: { effect: "effect", rotationSpeed: "rotationSpeed", size: "size", backgroundColor: "backgroundColor", elementColor: "elementColor" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["bgCanvas"], descendants: true, static: true }], ngImport: i0, template: "<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\n", styles: [".dynamic-bg-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
69
  }
78
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DynamicBackgroundComponent, decorators: [{
79
71
  type: Component,
80
- args: [{ selector: 'lib-dynamic-background', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas #bgCanvas class=\"dynamic-bg\"></canvas>", styles: [".dynamic-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}\n"] }]
72
+ args: [{ selector: 'lib-dynamic-background', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\n", styles: [".dynamic-bg-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}\n"] }]
81
73
  }], propDecorators: { canvasRef: [{
82
74
  type: ViewChild,
83
75
  args: ['bgCanvas', { static: true }]
76
+ }], effect: [{
77
+ type: Input
78
+ }], rotationSpeed: [{
79
+ type: Input
80
+ }], size: [{
81
+ type: Input
82
+ }], backgroundColor: [{
83
+ type: Input
84
+ }], elementColor: [{
85
+ type: Input
84
86
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxNQUFNLEVBR04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFVL0IsTUFBTSxPQUFPLDBCQUEwQjtJQVJ2QztRQVdtQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFReEQsU0FBSSxHQUFHLENBQUMsQ0FBQztRQWtEVCxZQUFPLEdBQUcsR0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXZELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1lBRWxCLHNCQUFzQjtZQUN0QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUEwQixDQUFDO1lBQzFGLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRW5DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRTVDLHdCQUF3QjtnQkFDeEIsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRztvQkFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFFakQsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBRTlDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsQ0FBQztZQUVELFlBQVksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDO1FBRU0sYUFBUSxHQUFHLEdBQVMsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztLQUNIO0lBbkZDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUVsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtZQUNwQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVyQyx1QkFBdUI7UUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEIsMkNBQTJDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZELCtCQUErQjtRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0E1RFUsMEJBQTBCO21HQUExQiwwQkFBMEIsdU1DckJ2QyxrREFBOEMsd0lEZ0JsQyxZQUFZOzs0RkFLWCwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdOLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUExBVEZPUk1fSUQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1keW5hbWljLWJhY2tncm91bmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtYmFja2dyb3VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9keW5hbWljLWJhY2tncm91bmQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0JhY2tncm91bmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2JnQ2FudmFzJywgeyBzdGF0aWM6IHRydWUgfSkgY2FudmFzUmVmITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuXG4gIHByaXZhdGUgc2NlbmUhOiBUSFJFRS5TY2VuZTtcbiAgcHJpdmF0ZSBjYW1lcmEhOiBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYTtcbiAgcHJpdmF0ZSByZW5kZXJlciE6IFRIUkVFLldlYkdMUmVuZGVyZXI7XG4gIHByaXZhdGUgYW5pbWF0aW9uSWQhOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBzcGhlcmUhOiBUSFJFRS5NZXNoO1xuICBwcml2YXRlIHRpbWUgPSAwO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgdGhpcy5pbml0U2NlbmUoKTtcbiAgICAgIHRoaXMuYW5pbWF0ZSgpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbklkKTtcbiAgICAgIGlmICh0aGlzLnJlbmRlcmVyKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuZGlzcG9zZSgpO1xuICAgICAgfVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIH1cbiAgfSAgXG5cbiAgcHJpdmF0ZSBpbml0U2NlbmUoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICB0aGlzLnNjZW5lID0gbmV3IFRIUkVFLlNjZW5lKCk7XG4gICAgdGhpcy5jYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoNzUsIHdpZHRoIC8gaGVpZ2h0LCAwLjEsIDEwMDApO1xuICAgIHRoaXMuY2FtZXJhLnBvc2l0aW9uLnogPSA1O1xuXG4gICAgdGhpcy5yZW5kZXJlciA9IG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHtcbiAgICAgIGNhbnZhczogdGhpcy5jYW52YXNSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIGFscGhhOiB0cnVlLFxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblxuICAgIC8vIEx1eiBwYXJhIGRhciB2b2x1bWVuXG4gICAgY29uc3QgbGlnaHQgPSBuZXcgVEhSRUUuRGlyZWN0aW9uYWxMaWdodCgweGZmZmZmZiwgMSk7XG4gICAgbGlnaHQucG9zaXRpb24uc2V0KDUsIDUsIDUpLm5vcm1hbGl6ZSgpO1xuICAgIHRoaXMuc2NlbmUuYWRkKGxpZ2h0KTtcblxuICAgIC8vIEdlb21ldHLDrWEgZGUgZXNmZXJhIGNvbiBtdWNob3Mgc2VnbWVudG9zXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMiwgMTI4LCAxMjgpO1xuXG4gICAgLy8gTWF0ZXJpYWwgY29uIHNoYWRpbmcgdmlzaWJsZVxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hOb3JtYWxNYXRlcmlhbCh7IGZsYXRTaGFkaW5nOiB0cnVlIH0pO1xuXG4gICAgdGhpcy5zcGhlcmUgPSBuZXcgVEhSRUUuTWVzaChnZW9tZXRyeSwgbWF0ZXJpYWwpO1xuICAgIHRoaXMuc2NlbmUuYWRkKHRoaXMuc3BoZXJlKTtcbiAgfVxuXG4gIHByaXZhdGUgYW5pbWF0ZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLmFuaW1hdGlvbklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0ZSk7XG5cbiAgICB0aGlzLnRpbWUgKz0gMC4wMjtcblxuICAgIC8vIGRlZm9ybWFtb3MgdsOpcnRpY2VzXG4gICAgY29uc3QgcG9zaXRpb25BdHRyID0gdGhpcy5zcGhlcmUuZ2VvbWV0cnkuYXR0cmlidXRlc1sncG9zaXRpb24nXSBhcyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGU7XG4gICAgY29uc3QgdmVydGV4ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zaXRpb25BdHRyLmNvdW50OyBpKyspIHtcbiAgICAgIHZlcnRleC5mcm9tQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9uQXR0ciwgaSk7XG5cbiAgICAgIC8vIERpc3RvcnNpw7NuIHByb2dyZXNpdmFcbiAgICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICAgIE1hdGguc2luKHZlcnRleC54ICogMyArIHRoaXMudGltZSkgKiAwLjIgK1xuICAgICAgICBNYXRoLmNvcyh2ZXJ0ZXgueSAqIDUgKyB0aGlzLnRpbWUgKiAwLjcpICogMC4yO1xuXG4gICAgICB2ZXJ0ZXgubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIoMiArIG9mZnNldCk7XG5cbiAgICAgIHBvc2l0aW9uQXR0ci5zZXRYWVooaSwgdmVydGV4LngsIHZlcnRleC55LCB2ZXJ0ZXgueik7XG4gICAgfVxuXG4gICAgcG9zaXRpb25BdHRyLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICB0aGlzLnNwaGVyZS5nZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5jYW1lcmEpO1xuICB9O1xuXG4gIHByaXZhdGUgb25SZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcbiAgfTtcbn1cbiIsIjxjYW52YXMgI2JnQ2FudmFzIGNsYXNzPVwiZHluYW1pYy1iZ1wiPjwvY2FudmFzPiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWZmZWN0cy9keW5hbWljLWJhY2tncm91bmQvZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLGVBQWUsRUFBYSxNQUFNLDJCQUEyQixDQUFDOztBQVV2RSxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBV1csV0FBTSxHQUFjLGVBQWUsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1Qsb0JBQWUsR0FBRyxTQUFTLENBQUM7UUFHcEIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBeUR4RCxZQUFPLEdBQUcsR0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FB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QU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQWpFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixxVkN4QnZDLDJEQUNBLGtKRGtCWSxZQUFZOzs0RkFLWCwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUdOLFNBQVM7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFBMQVRGT1JNX0lELFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRHluYW1pY0VmZmVjdCB9IGZyb20gJy4vZWZmZWN0cy9keW5hbWljLWVmZmVjdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRUZGRUNUX1JFR0lTVFJZLCBFZmZlY3RLZXkgfSBmcm9tICcuL2VmZmVjdHMvZWZmZWN0LXJlZ2lzdHJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWR5bmFtaWMtYmFja2dyb3VuZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1iYWNrZ3JvdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2R5bmFtaWMtYmFja2dyb3VuZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQmFja2dyb3VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnYmdDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjYW52YXNSZWYhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICBASW5wdXQoKSBlZmZlY3Q6IEVmZmVjdEtleSA9ICdzcGhlcmUtZGVmb3JtJztcbiAgQElucHV0KCkgcm90YXRpb25TcGVlZCA9IDAuMDE7XG4gIEBJbnB1dCgpIHNpemUgPSAyO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3IgPSAnIzAwMDAwMCc7XG4gIEBJbnB1dCgpIGVsZW1lbnRDb2xvcj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG5cbiAgcHJpdmF0ZSBzY2VuZSE6IFRIUkVFLlNjZW5lO1xuICBwcml2YXRlIGNhbWVyYSE6IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhO1xuICBwcml2YXRlIHJlbmRlcmVyITogVEhSRUUuV2ViR0xSZW5kZXJlcjtcbiAgcHJpdmF0ZSBhbmltYXRpb25JZCE6IG51bWJlcjtcblxuICBwcml2YXRlIGN1cnJlbnRFZmZlY3QhOiBEeW5hbWljRWZmZWN0O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgdGhpcy5pbml0U2NlbmUoKTtcbiAgICAgIHRoaXMubG9hZEVmZmVjdCgpO1xuICAgICAgdGhpcy5hbmltYXRlKCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbklkKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY3VycmVudEVmZmVjdD8uZGlzcG9zZSgpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjZW5lKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3QgaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgdGhpcy5zY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpO1xuICAgIHRoaXMuc2NlbmUuYmFja2dyb3VuZCA9IG5ldyBUSFJFRS5Db2xvcih0aGlzLmJhY2tncm91bmRDb2xvcik7XG5cbiAgICB0aGlzLmNhbWVyYSA9IG5ldyBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSg3NSwgd2lkdGggLyBoZWlnaHQsIDAuMSwgMTAwMCk7XG4gICAgdGhpcy5jYW1lcmEucG9zaXRpb24ueiA9IDU7XG5cbiAgICB0aGlzLnJlbmRlcmVyID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyZXIoe1xuICAgICAgY2FudmFzOiB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblxuICAgIGNvbnN0IGxpZ2h0ID0gbmV3IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQoMHhmZmZmZmYsIDEpO1xuICAgIGxpZ2h0LnBvc2l0aW9uLnNldCg1LCA1LCA1KS5ub3JtYWxpemUoKTtcbiAgICB0aGlzLnNjZW5lLmFkZChsaWdodCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRFZmZlY3QoKTogdm9pZCB7XG4gICAgY29uc3QgRWZmZWN0Q2xhc3MgPSBFRkZFQ1RfUkVHSVNUUllbdGhpcy5lZmZlY3RdO1xuICAgIGlmICghRWZmZWN0Q2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRWZlY3RvIFwiJHt0aGlzLmVmZmVjdH1cIiBubyBlc3TDoSByZWdpc3RyYWRvIGVuIEVGRkVDVF9SRUdJU1RSWWApO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRFZmZlY3QgPSBuZXcgRWZmZWN0Q2xhc3ModGhpcy5zaXplLCB0aGlzLnJvdGF0aW9uU3BlZWQsIHRoaXMuZWxlbWVudENvbG9yKTtcbiAgICB0aGlzLmN1cnJlbnRFZmZlY3QuaW5pdCh0aGlzLnNjZW5lLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5hbmltYXRpb25JZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGUpO1xuICAgIHRoaXMuY3VycmVudEVmZmVjdC5hbmltYXRlKCk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5jYW1lcmEpO1xuICB9O1xuXG4gIHByaXZhdGUgb25SZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgdGhpcy5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcbiAgfTtcbn1cbiIsIjxjYW52YXMgI2JnQ2FudmFzIGNsYXNzPVwiZHluYW1pYy1iZy1jYW52YXNcIj48L2NhbnZhcz5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lZmZlY3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9lZmZlY3RzL2R5bmFtaWMtYmFja2dyb3VuZC9lZmZlY3RzL2R5bmFtaWMtZWZmZWN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNFZmZlY3Qge1xuICBpbml0KHNjZW5lOiBUSFJFRS5TY2VuZSwgb3B0aW9uczogYW55KTogdm9pZDtcbiAgYW5pbWF0ZSgpOiB2b2lkO1xuICBkaXNwb3NlKCk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { SphereDeformEffect } from './sphere-deform/sphere-deform.effect';
2
+ export const EFFECT_REGISTRY = {
3
+ 'sphere-deform': SphereDeformEffect,
4
+ // 'ring-transform': RingTransformEffect,
5
+ // 'particles': ParticlesEffect,
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9lZmZlY3RzL2R5bmFtaWMtYmFja2dyb3VuZC9lZmZlY3RzL2VmZmVjdC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU0xRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXNFO0lBQ2hHLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMseUNBQXlDO0lBQ3pDLGdDQUFnQztDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0VmZmVjdCB9IGZyb20gJy4vZHluYW1pYy1lZmZlY3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwaGVyZURlZm9ybUVmZmVjdCB9IGZyb20gJy4vc3BoZXJlLWRlZm9ybS9zcGhlcmUtZGVmb3JtLmVmZmVjdCc7XG4vLyBpbXBvcnQgeyBSaW5nVHJhbnNmb3JtRWZmZWN0IH0gZnJvbSAnLi9yaW5nLXRyYW5zZm9ybS9yaW5nLXRyYW5zZm9ybS5lZmZlY3QnO1xuLy8gaW1wb3J0IHsgUGFydGljbGVzRWZmZWN0IH0gZnJvbSAnLi9wYXJ0aWNsZXMvcGFydGljbGVzLmVmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIEVmZmVjdEtleSA9ICdzcGhlcmUtZGVmb3JtJyB8ICdyaW5nLXRyYW5zZm9ybScgfCAncGFydGljbGVzJztcblxuZXhwb3J0IGNvbnN0IEVGRkVDVF9SRUdJU1RSWTogUGFydGlhbDxSZWNvcmQ8RWZmZWN0S2V5LCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBEeW5hbWljRWZmZWN0Pj4gPSB7XG4gICdzcGhlcmUtZGVmb3JtJzogU3BoZXJlRGVmb3JtRWZmZWN0LFxuICAvLyAncmluZy10cmFuc2Zvcm0nOiBSaW5nVHJhbnNmb3JtRWZmZWN0LFxuICAvLyAncGFydGljbGVzJzogUGFydGljbGVzRWZmZWN0LFxufTtcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import * as THREE from 'three';
2
+ export class SphereDeformEffect {
3
+ constructor(size, rotationSpeed, color) {
4
+ this.size = size;
5
+ this.rotationSpeed = rotationSpeed;
6
+ this.color = color;
7
+ this.time = 0;
8
+ }
9
+ init(scene, _options) {
10
+ const geometry = new THREE.SphereGeometry(this.size, 128, 128);
11
+ const material = this.color
12
+ ? new THREE.MeshStandardMaterial({ color: this.color, flatShading: true })
13
+ : new THREE.MeshNormalMaterial({ flatShading: true });
14
+ this.mesh = new THREE.Mesh(geometry, material);
15
+ scene.add(this.mesh);
16
+ }
17
+ animate() {
18
+ this.time += 0.02;
19
+ const positionAttr = this.mesh.geometry.attributes['position'];
20
+ const vertex = new THREE.Vector3();
21
+ for (let i = 0; i < positionAttr.count; i++) {
22
+ vertex.fromBufferAttribute(positionAttr, i);
23
+ const offset = Math.sin(vertex.x * 3 + this.time) * 0.2 +
24
+ Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;
25
+ vertex.normalize().multiplyScalar(this.size + offset);
26
+ positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);
27
+ }
28
+ positionAttr.needsUpdate = true;
29
+ this.mesh.geometry.computeVertexNormals();
30
+ this.mesh.rotation.y += this.rotationSpeed;
31
+ }
32
+ dispose() {
33
+ this.mesh?.geometry.dispose();
34
+ this.mesh?.material?.dispose();
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BoZXJlLWRlZm9ybS5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VmZmVjdHMvZHluYW1pYy1iYWNrZ3JvdW5kL2VmZmVjdHMvc3BoZXJlLWRlZm9ybS9zcGhlcmUtZGVmb3JtLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUcvQixNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQ1UsSUFBWSxFQUNaLGFBQXFCLEVBQ3JCLEtBQWM7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUxoQixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBTWQsQ0FBQztJQUVKLElBQUksQ0FBQyxLQUFrQixFQUFFLFFBQWE7UUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNsQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUEwQixDQUFDO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRW5DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHO2dCQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBRWpELE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQztZQUV0RCxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxRQUEyQixFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IER5bmFtaWNFZmZlY3QgfSBmcm9tICcuLi9keW5hbWljLWVmZmVjdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgU3BoZXJlRGVmb3JtRWZmZWN0IGltcGxlbWVudHMgRHluYW1pY0VmZmVjdCB7XG4gIHByaXZhdGUgbWVzaCE6IFRIUkVFLk1lc2g7XG4gIHByaXZhdGUgdGltZSA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaXplOiBudW1iZXIsXG4gICAgcHJpdmF0ZSByb3RhdGlvblNwZWVkOiBudW1iZXIsXG4gICAgcHJpdmF0ZSBjb2xvcj86IHN0cmluZyxcbiAgKSB7fVxuXG4gIGluaXQoc2NlbmU6IFRIUkVFLlNjZW5lLCBfb3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkodGhpcy5zaXplLCAxMjgsIDEyOCk7XG5cbiAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMuY29sb3JcbiAgICAgID8gbmV3IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsKHsgY29sb3I6IHRoaXMuY29sb3IsIGZsYXRTaGFkaW5nOiB0cnVlIH0pXG4gICAgICA6IG5ldyBUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWwoeyBmbGF0U2hhZGluZzogdHJ1ZSB9KTtcblxuICAgIHRoaXMubWVzaCA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG4gICAgc2NlbmUuYWRkKHRoaXMubWVzaCk7XG4gIH1cblxuICBhbmltYXRlKCk6IHZvaWQge1xuICAgIHRoaXMudGltZSArPSAwLjAyO1xuICAgIGNvbnN0IHBvc2l0aW9uQXR0ciA9IHRoaXMubWVzaC5nZW9tZXRyeS5hdHRyaWJ1dGVzWydwb3NpdGlvbiddIGFzIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZTtcbiAgICBjb25zdCB2ZXJ0ZXggPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbkF0dHIuY291bnQ7IGkrKykge1xuICAgICAgdmVydGV4LmZyb21CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25BdHRyLCBpKTtcblxuICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgTWF0aC5zaW4odmVydGV4LnggKiAzICsgdGhpcy50aW1lKSAqIDAuMiArXG4gICAgICAgIE1hdGguY29zKHZlcnRleC55ICogNSArIHRoaXMudGltZSAqIDAuNykgKiAwLjI7XG5cbiAgICAgIHZlcnRleC5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcih0aGlzLnNpemUgKyBvZmZzZXQpO1xuXG4gICAgICBwb3NpdGlvbkF0dHIuc2V0WFlaKGksIHZlcnRleC54LCB2ZXJ0ZXgueSwgdmVydGV4LnopO1xuICAgIH1cblxuICAgIHBvc2l0aW9uQXR0ci5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgdGhpcy5tZXNoLmdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XG5cbiAgICB0aGlzLm1lc2gucm90YXRpb24ueSArPSB0aGlzLnJvdGF0aW9uU3BlZWQ7XG4gIH1cblxuICBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubWVzaD8uZ2VvbWV0cnkuZGlzcG9zZSgpO1xuICAgICh0aGlzLm1lc2g/Lm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKT8uZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=