UNPKG

@obliczeniowo/elementary

Version:
1 lines 8.82 kB
{"version":3,"file":"obliczeniowo-elementary-loading.mjs","sources":["../../../../projects/components/loading/components/spinner/spinner.component.ts","../../../../projects/components/loading/components/spinner/spinner.component.html","../../../../projects/components/loading/components/loading-state/loading-state.component.ts","../../../../projects/components/loading/components/loading-state/loading-state.component.html","../../../../projects/components/loading/loading.module.ts","../../../../projects/components/loading/obliczeniowo-elementary-loading.ts"],"sourcesContent":["import { DrawingSvgInterface } from '@obliczeniowo/elementary/drawing';\nimport { Component, ElementRef, ViewChild, AfterViewInit, OnDestroy, Renderer2 } from '@angular/core';\nimport { Point2D } from '@obliczeniowo/elementary/classes';\n@Component({\n selector: 'obl-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: false\n})\nexport class SpinnerComponent implements AfterViewInit, OnDestroy {\n protected dc!: DrawingSvgInterface;\n protected time: any;\n\n @ViewChild('svg') svg!: ElementRef<SVGSVGElement>;\n\n constructor(protected renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.dc = new DrawingSvgInterface(this.svg.nativeElement, this.renderer);\n this.time = setInterval(() => { this.draw(new Date().getTime() / 100); }, 100);\n }\n\n draw(dt: number): void {\n this.dc.clear();\n this.dc.drawArch(\n new Point2D(5, 5),\n 4,\n 4,\n 0,\n Math.sin(dt * 4 / 180 * Math.PI) * Math.PI * 0.6 + Math.PI * 1.3,\n 1.2,\n 'var(--obl-spinner-color, gold)');\n }\n\n ngOnDestroy(): void {\n clearInterval(this.time);\n }\n}\n","<svg viewBox=\"0 0 10 10\" #svg></svg>","import { Component, Input, OnInit, SimpleChanges, OnChanges, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'obl-loading-state',\n templateUrl: './loading-state.component.html',\n styleUrls: ['./loading-state.component.scss'],\n standalone: false\n})\nexport class LoadingStateComponent implements OnInit, OnDestroy, OnChanges {\n @Input() status: 'waiting' | 'failure' | 'progress' | 'done' = 'progress';\n\n protected highlighted: number[] = [];\n\n protected offset = 0;\n\n readonly ray = 6;\n readonly positions = [[0, 2], [0, 1], [0, 0], [1, 0], [1, 1], [1, 2]].map(v => {\n return { x: this.ray + this.ray * 3 * (v[0] % 2), y: this.ray + v[1] * 3 * this.ray };\n });\n\n protected time: any;\n\n ngOnInit(): void {\n this.setTime();\n }\n\n ngOnDestroy(): void {\n if (this.time) {\n clearInterval(this.time);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.status) {\n switch (changes.status.currentValue) {\n case 'done':\n case 'failure':\n case 'waiting': {\n if (this.time) {\n clearInterval(this.time);\n this.time = undefined;\n }\n break;\n }\n case 'progress': {\n if (!this.time) {\n this.setTime();\n }\n }\n }\n }\n }\n\n protected setTime(): void {\n if (!this.time) {\n this.time = setInterval(() => {\n this.offset = (this.offset + 1) % 6;\n this.highlighted = [this.offset, (this.offset + 1) % 6, (this.offset + 2) % 6];\n }, 100);\n }\n }\n}\n","@if (status === 'progress' || status === 'waiting') {\n <svg width=\"10\" viewBox=\"0 0 30 48\">\n @for (position of positions; track $index) {\n <circle\n [attr.cx]=\"position.x\"\n [attr.cy]=\"position.y\"\n [attr.r]=\"ray\"\n [class]=\"\n status === 'progress'\n ? highlighted.includes($index) && 'highlighted' || ''\n : ''\n \"\n ></circle>\n }\n </svg>\n} @else {\n @if (status === 'failure') {\n <obl-icon [name]=\"'cancel'\" class=\"cancel\" [width]=\"10\"></obl-icon>\n } @else if (status === 'done') {\n <obl-icon [name]=\"'ok'\" class=\"done\" [width]=\"15\"></obl-icon>\n }\n}\n","import { IconsModule } from '@obliczeniowo/elementary/icons';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\nimport { LoadingStateComponent } from './components/loading-state/loading-state.component';\n\n@NgModule({\n declarations: [\n SpinnerComponent,\n LoadingStateComponent\n ],\n imports: [\n CommonModule,\n IconsModule\n ],\n exports: [\n SpinnerComponent,\n LoadingStateComponent\n ],\n})\nexport class LoadingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}