@obliczeniowo/elementary
Version:
Library made in Angular version 20
1 lines • 7.11 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-image.mjs","sources":["../../../../projects/components/image/functions/load-image.ts","../../../../projects/components/image/components/preview/preview.component.ts","../../../../projects/components/image/components/preview/preview.component.html","../../../../projects/components/image/image.module.ts","../../../../projects/components/image/obliczeniowo-elementary-image.ts"],"sourcesContent":["export const loadImage = async (src: string) => {\n return new Promise<HTMLImageElement>((res, rej) => {\n const image = document.createElement('img');\n image.onload = () => {\n res(image);\n };\n image.src = src;\n });\n};\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport {\n Component,\n effect,\n input,\n model,\n} from '@angular/core';\nimport { loadImage } from '../../functions/load-image';\n\n@Component({\n selector: 'obl-preview',\n templateUrl: './preview.component.html',\n styleUrl: './preview.component.scss',\n standalone: false\n})\nexport class PreviewComponent {\n src = input.required<string>();\n\n width = input<number>(320);\n\n height = input<number>(240);\n\n columns = input<number>(5);\n rows = input<number>(2);\n\n current = model<number>(1);\n\n starting = input<number>(1);\n\n protected image?: HTMLImageElement;\n\n protected timeout: any;\n\n constructor() {\n effect(() => {\n this.image = undefined;\n loadImage(this.src()).then((image) => (this.image = image));\n });\n }\n\n imgCropWidth() {\n const { image, columns, width } = this;\n return image ? image.width / (columns() || 1) : width();\n }\n\n imgCropHeight() {\n const { image, rows, height } = this;\n return image ? image.height / (rows() || 1) : height();\n }\n\n scale() {\n const cw = this.imgCropWidth();\n const ch = this.imgCropHeight();\n\n const xs = this.width() / cw;\n const ys = this.height() / ch;\n\n return Math.abs(xs) < Math.abs(ys) ? xs : ys;\n }\n\n y() {\n if (this.image) {\n return (\n -this.imgCropHeight() *\n this.scale() *\n Math.floor(this.current() / this.columns())\n );\n }\n return 0;\n }\n\n over(over: boolean) {\n if (over && !this.timeout) {\n const anim = () => {\n this.current.set((this.current() + 1) % (this.columns() * this.rows()));\n if (over) {\n this.timeout = setTimeout(anim, 500);\n } else {\n this.timeout = undefined;\n }\n };\n anim();\n } else {\n clearTimeout(this.timeout);\n this.timeout = undefined;\n this.current.set(this.starting());\n }\n }\n}\n","<div [ngStyle]=\"{ 'width.px': width(), 'height.px': height() }\">\n @if (image) {\n <div\n class=\"crop\"\n [ngStyle]=\"{\n 'height.px': imgCropHeight() * scale(),\n 'width.px': imgCropWidth() * scale()\n }\"\n (mouseover)=\"over(true)\"\n (mouseleave)=\"over(false)\"\n >\n <img\n draggable=\"false\"\n [src]=\"src()\"\n [ngStyle]=\"{\n 'width.px': scale() * image.width,\n 'top.px': y(),\n 'left.px': -imgCropWidth() * scale() * (current() % columns())\n }\"\n />\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PreviewComponent } from './components/preview/preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule],\n exports: [PreviewComponent],\n})\nexport class ImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}