@obliczeniowo/elementary
Version:
Library made in Angular version 20
1 lines • 10.9 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-html-line.mjs","sources":["../../../../projects/components/html-line/components/html-line/html-line.component.ts","../../../../projects/components/html-line/components/html-line/html-line.component.html","../../../../projects/components/html-line/components/html-lines/html-lines.component.ts","../../../../projects/components/html-line/components/html-lines/html-lines.component.html","../../../../projects/components/html-line/html-line.module.ts","../../../../projects/components/html-line/obliczeniowo-elementary-html-line.ts"],"sourcesContent":["import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'obl-html-line',\n templateUrl: './html-line.component.html',\n styleUrls: ['./html-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class HtmlLineComponent {\n /** coordinates as table [x1, y1, x2, y2] */\n @Input() set coords(coords: [number, number, number, number]) {\n this._coords = coords;\n\n this.recalc();\n }\n\n private _coords!: [number, number, number, number];\n\n protected recalc() {\n const thickness = this.thickness;\n const coords = this._coords;\n\n if (!coords) {\n return;\n }\n\n this.width = Math.abs(Math.sqrt((coords[0] - coords[2]) * (coords[0] - coords[2]) + (coords[1] - coords[3]) * (coords[1] - coords[3]))) + thickness;\n const angle = Math.atan2(coords[1] - coords[3], coords[0] - coords[2]);\n const translateTo0 = `translate(${-this.width / 2 - ((this.width - thickness) / 2) * Math.cos(angle)}px, ${-thickness / 2 - ((this.width - thickness) / 2) * Math.sin(angle)}px)`;\n const translate = `translate(${coords[0]}px, ${coords[1]}px)`;\n\n const rotate = `rotate(${angle}rad)`;\n\n this.transform = `${translateTo0} ${translate} ${rotate}`;\n\n this.radius = this.thickness / 2;\n }\n\n /** line (div) height */\n\n @HostBinding('style.height.px')\n private _thickness = 2;\n\n public get thickness(): number {\n return this._thickness;\n }\n\n @Input() set thickness(value: number) {\n this._thickness = value;\n this.radius = value / 2;\n this.recalc();\n }\n\n /** */\n @Input()\n @HostBinding('style.background-color') background: string = 'black';\n\n @HostBinding('style.transform') protected transform!: string;\n\n @HostBinding('style.width.px') protected width!: number;\n\n @HostBinding('style.border-radius.px') radius: number = 10;\n}\n","","import { LinesSetDef } from './../../models/lines-def';\nimport { ChangeDetectionStrategy, Component, computed, input, Input } from '@angular/core';\n\n@Component({\n selector: 'obl-html-lines',\n templateUrl: './html-lines.component.html',\n styleUrls: ['./html-lines.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class HtmlLinesComponent {\n protected minMax = computed<[[number, number], [number, number]] | undefined>(() => {\n let minMax: [[number, number], [number, number]] | undefined;\n\n this.lines().forEach(points =>\n points.points.forEach((c, index) => {\n if (minMax) {\n minMax = [\n [Math.min(minMax[0][0], c[0]), Math.max(minMax[0][1], c[0])],\n [Math.min(minMax[1][0], c[1]), Math.max(minMax[1][1], c[1])],\n ];\n } else {\n minMax = [\n [c[0], c[0]],\n [c[1], c[1]],\n ];\n }\n }),\n );\n\n return minMax;\n });\n\n lines = input<LinesSetDef[]>([]);\n\n /** line thickness in px */\n @Input() thickness = 2;\n /** color as any css color style */\n @Input() color = 'black';\n\n style = computed<any>(() => {\n const { thickness } = this;\n const minMax = this.minMax();\n\n if (!minMax) {\n return {};\n }\n const width = minMax[0][1] - minMax[0][0] + thickness;\n const height = minMax[1][1] - minMax[1][0] + thickness;\n return { width: `${width}px`, height: `${height}px`, transform: `translate(${-minMax[0][0] + thickness / 2}px, ${-minMax[1][0] + thickness / 2}px)` }\n }\n );\n\n coords(fp: number[], sp: number[]) {\n return [...fp, ...sp] as [number, number, number, number];\n }\n}\n","<div [ngStyle]=\"style\">\n @for (lineSet of lines(); track $index) {\n @for (line of lineSet.points; track $index) {\n @if ($index) {\n <obl-html-line\n [thickness]=\"lineSet.thickness || this.thickness\"\n [background]=\"lineSet.color || color\"\n [coords]=\"coords(lineSet.points[$index - 1], line)\"\n >\n </obl-html-line>\n }\n }\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HtmlLineComponent } from './components/html-line/html-line.component';\nimport { HtmlLinesComponent } from './components/html-lines/html-lines.component';\n\n@NgModule({\n declarations: [\n HtmlLineComponent,\n HtmlLinesComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n HtmlLineComponent,\n HtmlLinesComponent\n ]\n})\nexport class HtmlLineModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.HtmlLineComponent"],"mappings":"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"}