{"version":3,"file":"cty-mobile-ui-circle.mjs","sources":["../../../packages/components/circle/circle.ts","../../../packages/components/circle/circle.html","../../../packages/components/circle/module.ts","../../../packages/components/circle/cty-mobile-ui-circle.ts"],"sourcesContent":["import {\r\n  Component,\r\n  OnInit,\r\n  AfterViewInit,\r\n  Input,\r\n  ViewChild,\r\n  ViewChildren,\r\n  QueryList,\r\n  ElementRef,\r\n  Renderer2,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'cty-circle',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './circle.html',\r\n  styleUrl: './circle.scss',\r\n})\r\nexport class CtyCircle implements OnInit, AfterViewInit {\r\n    @Input() rate: number = 0;\r\n    @Input() width: number | string = 40;\r\n    @Input() color: string | {[key: string]: string} = 'var(--cty-color-primary)';\r\n    @Input() text: string = '';\r\n    @Input() clockwise: boolean = true;\r\n    @Input() zeroTransparent: boolean = true;\r\n    @Input() rad: number = 500;\r\n    @ViewChild('svgRef') svgEl!: ElementRef;\r\n    @ViewChild('layerRef') layerEl!: ElementRef;\r\n    @ViewChild('hoverRef') hoverEl!: ElementRef;\r\n    @ViewChildren('stopsRef') stopsList!: QueryList<any>;\r\n    _needDefs: boolean = false;\r\n    _id: string = '';\r\n    _colors: { offset: string; color: string }[] = [];\r\n    _perimeter = 0;\r\n\r\n    constructor(private renderer: Renderer2) {\r\n        this._id = 'cty-circle-' + Math.random().toFixed(12).slice(2);\r\n    }\r\n\r\n    ngOnInit() {\r\n      this._perimeter = 2 * 3.14 * this.rad;\r\n    }\r\n    ngOnChanges(changes: SimpleChanges) {\r\n        for (const propName in changes) {\r\n            if (propName === 'color') {\r\n                this._needDefs = this.color instanceof Object;\r\n                if (this._needDefs) {\r\n                    this._colors = Object.keys(this.color)\r\n                    .sort((a, b) => parseFloat(a) - parseFloat(b))\r\n                    .map((key) => ({\r\n                        offset: key.toString(),\r\n                        color: (this.color as {[key: string]: string})[key]\r\n                    }));\r\n                }\r\n            }\r\n            if(propName === 'rad'){\r\n              this._perimeter = 2 * 3.14 * this.rad;\r\n            }\r\n        }\r\n    }\r\n    ngAfterViewInit() {\r\n        this.renderer.setAttribute(this.svgEl?.nativeElement, 'viewBox', `0 0 ${+this.width + this.rad * 2} ${+this.width + this.rad * 2}`);\r\n        this.renderer.setAttribute(this.layerEl?.nativeElement, 'd', this._getPath());\r\n        this.renderer.setAttribute(this.hoverEl?.nativeElement, 'd', this._getPath());\r\n        this.stopsList?.forEach((stopEL: ElementRef, index: number) => {\r\n            this.renderer.setAttribute(stopEL.nativeElement, 'key', index.toString());\r\n            this.renderer.setAttribute(stopEL.nativeElement, 'offset', this._colors[index].offset);\r\n            this.renderer.setAttribute(stopEL.nativeElement, 'stop-color', this._colors[index].color);\r\n        });\r\n    }\r\n\r\n    _getPath() {\r\n        const viewBoxSize = +this.width + this.rad * 2;\r\n        const sweepFlag = this.clockwise ? 1 : 0;\r\n        return `M ${viewBoxSize / 2} ${\r\n          viewBoxSize / 2\r\n        } m 0, -500 a 500, 500 0 1, ${sweepFlag} 0, 1000 a 500, 500 0 1, ${sweepFlag} 0, -1000`;\r\n    }\r\n\r\n    toNumber(value: any) {\r\n        return Number(value) || 0;\r\n    }\r\n}\r\n","<div class=\"cty-circle\">\r\n    <svg #svgRef>\r\n        <defs *ngIf=\"_needDefs\">\r\n            <linearGradient [id]=\"_id\" x1=\"100%\" y1=\"0%\" x2=\"0%\" y2=\"0%\">\r\n                <stop #stopsRef *ngFor=\"let item of _colors\"></stop>\r\n            </linearGradient>\r\n        </defs>\r\n        <path\r\n            #layerRef\r\n            class=\"cty-circle__layer\"\r\n            [ngStyle]=\"{'stroke-width':width+'px'}\"\r\n        ></path>\r\n        <path\r\n            #hoverRef\r\n            class=\"cty-circle__hover\"\r\n            [ngStyle]=\"{\r\n                'stroke':rate<=0&&zeroTransparent?'transparent':_needDefs?'url(#'+_id+')':color,\r\n                'stroke-width': toNumber(width)+1+'px',\r\n                'strokeDasharray':(rate/100 * _perimeter)+'px '+ _perimeter+'px'\r\n            }\"\r\n        >\r\n        </path>\r\n    </svg>\r\n    <div class=\"cty-circle__text\" *ngIf=\"text!==''\">{{text}}</div>\r\n    <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CtyCircle } from './circle';\r\n@NgModule({\r\n  imports: [CommonModule, CtyCircle],\r\n  exports: [CtyCircle],\r\n})\r\nexport class CtyCircleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}