@obliczeniowo/elementary
Version:
Library made in Angular version 19
1 lines • 18.5 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-animations.mjs","sources":["../../../../projects/components/animations/animations.ts","../../../../projects/components/animations/components/fade-in-out/fade-in-out.component.ts","../../../../projects/components/animations/components/fade-in-out/fade-in-out.component.html","../../../../projects/components/animations/components/scroll-animation/scroll-animation.component.ts","../../../../projects/components/animations/components/scroll-animation/scroll-animation.component.html","../../../../projects/components/animations/components/type-text/type-text.component.ts","../../../../projects/components/animations/components/type-text/type-text.component.html","../../../../projects/components/animations/animations.module.ts","../../../../projects/components/animations/classes/source-to-target-animation.ts","../../../../projects/components/animations/obliczeniowo-elementary-animations.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport class Animations {\r\n /**\r\n * Rotate animation by 180 degreases\r\n *\r\n * in HTML use:\r\n * <div [@openClose]=\"isOpen ? 'open' : 'closed'\">\r\n * to provide animation\r\n */\r\n static rotate180deg = trigger('openClose', [\r\n state('open', style({\r\n transform: 'rotate(180deg)'\r\n })),\r\n state('closed', style({\r\n transform: 'rotate(0deg)'\r\n })),\r\n transition('open => closed', [\r\n animate('0.25s')\r\n ]),\r\n transition('closed => open', [\r\n animate('0.25s')\r\n ]),\r\n ]);\r\n\r\n /**\r\n * Fade in/out animation\r\n *\r\n * in HTML use:\r\n * <div [@fadeInOut]=\"show ? 'in' : 'out'\">\r\n */\r\n static fadeInOut(inSeconds: number = 0.5, outSeconds: number = 0.5) {\r\n return trigger('fadeInOut', [\r\n state('in', style({\r\n opacity: 1\r\n })),\r\n state('out', style({\r\n opacity: 0\r\n })),\r\n transition('in => out', [\r\n animate(`${outSeconds}s`)\r\n ]),\r\n transition('out => in', [\r\n animate(`${inSeconds}s`)\r\n ]),\r\n ]);\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { Animations } from '../../animations';\r\n\r\n@Component({\r\n selector: 'obl-fade-in-out',\r\n templateUrl: './fade-in-out.component.html',\r\n styleUrls: ['./fade-in-out.component.scss'],\r\n animations: [\r\n Animations.fadeInOut(1, 1)\r\n ],\r\n standalone: false\r\n})\r\nexport class FadeInOutComponent {\r\n state = input<boolean>(true);\r\n}\r\n","<div class=\"fade\" [@fadeInOut]=\"state() ? 'in' : 'out'\">\r\n <ng-content select=\"[in]\"></ng-content>\r\n</div>\r\n<div class=\"fade\" [@fadeInOut]=\"state() ? 'out' : 'in'\">\r\n <ng-content select=\"[out]\"></ng-content>\r\n</div>\r\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\r\nimport { Component, ElementRef, input, ViewChild } from '@angular/core';\r\n\r\nconst animations: {\r\n [key: string]: (\r\n root: HTMLElement,\r\n _: HTMLElement,\r\n intersectionRatio: number,\r\n entry: IntersectionObserverEntry\r\n ) => void\r\n} = {\r\n opacity: (\r\n root: HTMLElement,\r\n _: HTMLElement,\r\n intersectionRatio,\r\n entry: IntersectionObserverEntry\r\n ) => {\r\n root.style.opacity = intersectionRatio.toString();\r\n },\r\n scale: (\r\n _: HTMLElement,\r\n animationContainer: HTMLElement,\r\n intersectionRatio,\r\n entry: IntersectionObserverEntry\r\n ) => {\r\n animationContainer.style.transform = `scale(${\r\n 50 * intersectionRatio + 50\r\n }%)`;\r\n },\r\n slideLeft: (\r\n _: HTMLElement,\r\n animationContainer: HTMLElement,\r\n intersectionRatio,\r\n entry: IntersectionObserverEntry\r\n ) => {\r\n animationContainer.style.transform = `translate(${\r\n -100 + 100 * intersectionRatio\r\n }%)`;\r\n },\r\n slideRight: (\r\n _: HTMLElement,\r\n animationContainer: HTMLElement,\r\n intersectionRatio,\r\n entry: IntersectionObserverEntry\r\n ) => {\r\n animationContainer.style.transform = `translate(${\r\n 100 - 100 * intersectionRatio\r\n }%)`;\r\n },\r\n};\r\n\r\nconst threshold = new Array(100).fill(0).map((_, index) => index / 100);\r\n\r\n@Component({\r\n selector: 'obl-scroll-animation',\r\n templateUrl: './scroll-animation.component.html',\r\n styleUrl: './scroll-animation.component.scss',\r\n standalone: false\r\n})\r\nexport class ScrollAnimationComponent {\r\n protected options = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold,\r\n };\r\n\r\n animations = input<string[]>([]);\r\n\r\n @ViewChild('container') container!: ElementRef<HTMLDivElement>;\r\n\r\n protected observer!: IntersectionObserver;\r\n\r\n constructor(private readonly root: ElementRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n const root = this.root.nativeElement;\r\n this.observer = new IntersectionObserver(\r\n (entries: IntersectionObserverEntry[], _: IntersectionObserver) => {\r\n entries.forEach((entry) => {\r\n if (this.animations().length) {\r\n this.animations().forEach((animation: string) => {\r\n const cb = animations[animation];\r\n if (animations[animation]) {\r\n cb(\r\n root,\r\n this.container.nativeElement,\r\n entry.boundingClientRect.height < window.innerHeight\r\n ? entry.intersectionRatio\r\n : 1,\r\n entry\r\n );\r\n }\r\n });\r\n }\r\n });\r\n },\r\n this.options\r\n );\r\n this.observer.observe(root);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.observer.disconnect();\r\n }\r\n}\r\n","<div #container>\r\n <ng-content></ng-content>\r\n</div>","import { Component, effect, input, signal } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'obl-type-text',\r\n templateUrl: './type-text.component.html',\r\n styleUrl: './type-text.component.scss',\r\n standalone: false\r\n})\r\nexport class TypeTextComponent {\r\n text = input.required<string>();\r\n\r\n interval = input<number>(10);\r\n\r\n animText = signal<string>('');\r\n\r\n private time: any;\r\n\r\n constructor() {\r\n effect(() => {\r\n this.text();\r\n this.animText.set('');\r\n const clear = (clear = true) => {\r\n clearInterval(this.time);\r\n if (clear) { this.animText.set(''); }\r\n this.time = undefined;\r\n }\r\n\r\n if (this.time) {\r\n clear();\r\n }\r\n\r\n this.time = setInterval(() => {\r\n if (this.text().length > this.animText().length) {\r\n this.animText.set(this.text().substring(0, this.animText().length + 1));\r\n } else {\r\n clear(false);\r\n }\r\n }, this.interval());\r\n },\r\n {\r\n allowSignalWrites: true\r\n })\r\n }\r\n}\r\n","{{ animText() }}{{ animText().length !== text().length ? '_' : '' }}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FadeInOutComponent } from './components/fade-in-out/fade-in-out.component';\r\nimport { ScrollAnimationComponent } from './components/scroll-animation/scroll-animation.component';\r\nimport { TypeTextComponent } from './components/type-text/type-text.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n FadeInOutComponent,\r\n ScrollAnimationComponent,\r\n TypeTextComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n FadeInOutComponent,\r\n ScrollAnimationComponent,\r\n TypeTextComponent\r\n ]\r\n})\r\nexport class AnimationsModule { }\r\n","import { Point2D } from '@obliczeniowo/elementary/classes';\r\nimport { keysValues } from '@obliczeniowo/elementary/objects';\r\n\r\nexport class OblSourceToTargetAnimation {\r\n protected start!: Point2D;\r\n protected end!: Point2D;\r\n\r\n protected element: HTMLElement = document.createElement('div');\r\n\r\n protected timer: any;\r\n protected count = 0;\r\n protected interval = 10;\r\n protected maxRounds = 80;\r\n\r\n constructor(\r\n target: HTMLElement | any,\r\n destination: HTMLElement | any,\r\n message: string,\r\n options?: {\r\n interval?: number,\r\n maxRounds?: number,\r\n styles?: { [name: string]: string }\r\n }\r\n ) {\r\n const r = target.getBoundingClientRect();\r\n const r2 = destination.getBoundingClientRect();\r\n this.start = new Point2D(r.x, r.y);\r\n this.end = new Point2D(r2.x, r2.y);\r\n this.element.style.top = this.start.y + 'px';\r\n this.element.style.left = this.start.x + 'px';\r\n this.element.style.backgroundColor = 'white';\r\n this.element.style.padding = '5px';\r\n\r\n keysValues(options?.styles || {}).forEach(\r\n ([key, value]) => (this.element.style[key as any] = value)\r\n );\r\n\r\n this.element.style.position = 'absolute';\r\n this.element.innerText = message;\r\n this.interval = options?.interval || 10;\r\n this.maxRounds = options?.maxRounds || 80;\r\n }\r\n\r\n startAnim() {\r\n document.body.appendChild(this.element);\r\n const { maxRounds, interval } = this;\r\n this.timer = setInterval(() => {\r\n this.count++;\r\n if (this.count > maxRounds) {\r\n this.remove();\r\n } else {\r\n const pos = this.end\r\n .subtract(this.start)\r\n .multiply((1 / maxRounds) * this.count)\r\n .add(this.start);\r\n\r\n this.element.style.opacity =\r\n ((maxRounds - this.count) * 0.5) / maxRounds + 0.5 + '';\r\n\r\n this.element.style.top = pos.y + 'px';\r\n this.element.style.left = pos.x + 'px';\r\n }\r\n }, interval);\r\n }\r\n\r\n remove() {\r\n this.count = 0;\r\n clearInterval(this.timer);\r\n this.element.style.top = this.start.y + 'px';\r\n this.element.style.left = this.start.x + 'px';\r\n document.body.removeChild(this.element);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}