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