UNPKG

ngx-chiptan

Version:

Angular component to renders chiptan flicker code.

55 lines 5.3 kB
import { Component, Input } from '@angular/core'; import { flickerCanvas, flickerCode } from './flicker'; import * as i0 from "@angular/core"; export class NgxChiptanComponent { ngOnInit() { if (!this.code) { return; } this.state = { canvas: new flickerCanvas(this.width, this.height, this.bgColor, this.barColor), code: new flickerCode(this.code), }; const { canvas, code } = this.state; document .getElementById('flickercontainer') .appendChild(canvas.getCanvas()); canvas.setCode(code); this.startFlicker(); } startFlicker() { this.interval = setInterval(this.step.bind(this), 50); } stopFlicker() { clearInterval(this.interval); } step() { this.state.canvas.step(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgxChiptanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: NgxChiptanComponent, selector: "ngx-chiptan", inputs: { code: "code", width: "width", height: "height", bgColor: "bgColor", barColor: "barColor" }, ngImport: i0, template: ` <div id='flickercontainer'> </div> `, isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgxChiptanComponent, decorators: [{ type: Component, args: [{ selector: 'ngx-chiptan', template: ` <div id='flickercontainer'> </div> `, }] }], propDecorators: { code: [{ type: Input }], width: [{ type: Input }], height: [{ type: Input }], bgColor: [{ type: Input }], barColor: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNoaXB0YW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoaXB0YW4vc3JjL2xpYi9uZ3gtY2hpcHRhbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBU3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFvQjlCLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUUzQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsTUFBTSxFQUFFLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDL0UsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQztRQUVGLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVwQyxRQUFRO2FBQ0wsY0FBYyxDQUFDLGtCQUFrQixDQUFDO2FBQ2xDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVuQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBakRVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHlKQUxwQjs7O0dBR1Q7OzJGQUVVLG1CQUFtQjtrQkFQL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7R0FHVDtpQkFDRjs4QkFJQyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmbGlja2VyQ2FudmFzLCBmbGlja2VyQ29kZSB9IGZyb20gJy4vZmxpY2tlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1jaGlwdGFuJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgaWQ9J2ZsaWNrZXJjb250YWluZXInPlxuICAgICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5neENoaXB0YW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICB3aWR0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGJnQ29sb3I6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBiYXJDb2xvcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgc3RhdGU6IGFueTtcbiAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5jb2RlKSB7IHJldHVybjsgfVxuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNhbnZhczogbmV3IGZsaWNrZXJDYW52YXModGhpcy53aWR0aCwgdGhpcy5oZWlnaHQsIHRoaXMuYmdDb2xvciwgdGhpcy5iYXJDb2xvciksXG4gICAgICBjb2RlOiBuZXcgZmxpY2tlckNvZGUodGhpcy5jb2RlKSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBjYW52YXMsIGNvZGUgfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBkb2N1bWVudFxuICAgICAgLmdldEVsZW1lbnRCeUlkKCdmbGlja2VyY29udGFpbmVyJylcbiAgICAgIC5hcHBlbmRDaGlsZChjYW52YXMuZ2V0Q2FudmFzKCkpO1xuXG4gICAgY2FudmFzLnNldENvZGUoY29kZSk7XG5cbiAgICB0aGlzLnN0YXJ0RmxpY2tlcigpO1xuICB9XG5cbiAgc3RhcnRGbGlja2VyKCkge1xuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLnN0ZXAuYmluZCh0aGlzKSwgNTApO1xuICB9XG5cbiAgc3RvcEZsaWNrZXIoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcbiAgfVxuXG4gIHN0ZXAoKSB7XG4gICAgdGhpcy5zdGF0ZS5jYW52YXMuc3RlcCgpO1xuICB9XG59XG4iXX0=