UNPKG

@obliczeniowo/elementary

Version:
1 lines 21 kB
{"version":3,"file":"obliczeniowo-elementary-marks-displayer.mjs","sources":["../../../../projects/components/marks-displayer/services/marks.service.ts","../../../../projects/components/marks-displayer/components/mark-displayer/mark-displayer.component.ts","../../../../projects/components/marks-displayer/components/mark-displayer/mark-displayer.component.html","../../../../projects/components/marks-displayer/components/marks-displayer/marks-displayer.component.ts","../../../../projects/components/marks-displayer/components/marks-displayer/marks-displayer.component.html","../../../../projects/components/marks-displayer/marks-displayer.module.ts","../../../../projects/components/marks-displayer/obliczeniowo-elementary-marks-displayer.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\ntype binary = 0 | 1;\ntype binaryRow = [binary, binary, binary, binary, binary];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MarksService {\n protected marks: { [key: string]: [number, number, number, number, number, number, number, number] } = {\n ' ': [0, 0, 0, 0, 0, 0, 0, 0],\n a: [0, 0, 22, 25, 17, 25, 22, 0],\n ą: [0, 22, 25, 17, 25, 22, 8, 16],\n b: [1, 1, 13, 19, 17, 19, 13, 0],\n c: [0, 0, 14, 17, 1, 17, 14, 0],\n ć: [6, 0, 14, 17, 1, 17, 14, 0],\n d: [16, 16, 30, 17, 17, 17, 30, 0],\n e: [0, 0, 14, 17, 31, 1, 14, 0],\n ę: [0, 0, 14, 17, 15, 1, 14, 24],\n f: [8, 4, 12, 6, 4, 4, 4, 0],\n g: [0, 0, 14, 17, 17, 14, 1, 30],\n h: [1, 1, 15, 17, 17, 17, 17, 0],\n i: [4, 0, 4, 4, 4, 4, 4, 0],\n j: [4, 0, 4, 4, 4, 4, 4, 2],\n k: [1, 1, 9, 5, 3, 5, 9, 0],\n l: [4, 4, 4, 4, 4, 4, 8, 0],\n ł: [4, 12, 6, 4, 4, 4, 8, 0],\n m: [0, 0, 15, 21, 21, 21, 21, 0],\n n: [0, 0, 14, 18, 18, 18, 18, 0],\n ń: [12, 0, 30, 17, 17, 17, 17, 0],\n o: [0, 0, 14, 17, 17, 17, 14, 0],\n ó: [12, 0, 14, 17, 17, 17, 14, 0],\n p: [0, 0, 15, 17, 17, 31, 1, 1],\n q: [0, 0, 30, 17, 17, 30, 16, 16],\n r: [0, 0, 13, 3, 1, 1, 0, 0],\n s: [0, 0, 14, 1, 14, 16, 14, 0],\n ś: [6, 0, 14, 17, 6, 8, 17, 14],\n t: [4, 4, 14, 4, 4, 4, 8, 0],\n u: [0, 0, 17, 17, 17, 17, 15, 0],\n v: [0, 0, 17, 17, 10, 10, 4, 0],\n w: [0, 0, 17, 17, 21, 21, 10, 0],\n x: [0, 0, 17, 10, 4, 10, 17, 0],\n y: [0, 0, 17, 17, 10, 4, 2, 1],\n z: [0, 0, 31, 8, 4, 2, 31, 0],\n ż: [4, 0, 30, 8, 4, 30, 0, 0],\n ź: [12, 0, 30, 8, 4, 30, 0, 0],\n ',': [0, 0, 0, 0, 4, 4, 2, 0],\n '.': [0, 0, 0, 0, 0, 0, 4, 0],\n '!': [4, 4, 4, 4, 4, 0, 4, 0],\n '?': [14, 17, 17, 8, 4, 0, 4, 0],\n \"'\": [2, 4, 0, 0, 0, 0, 0, 0],\n '\"': [10, 10, 0, 0, 0, 0, 0, 0],\n 0: [14, 17, 17, 17, 17, 14, 0, 0],\n 1: [4, 6, 4, 4, 4, 4, 0, 0],\n 2: [14, 17, 8, 4, 2, 31, 0, 0],\n 3: [14, 17, 8, 16, 17, 14, 0, 0],\n 4: [12, 10, 9, 31, 8, 8, 0, 0],\n 5: [31, 1, 15, 16, 17, 14, 0, 0],\n 6: [4, 2, 15, 17, 17, 14, 0, 0],\n 7: [30, 16, 8, 8, 4, 4, 0, 0],\n 8: [12, 18, 12, 18, 18, 12, 0, 0],\n 9: [12, 18, 18, 28, 16, 12, 0, 0],\n };\n\n constructor() {\n this.registerBinary(\n '<',\n [\n [0, 0, 0, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 1, 0, 0],\n [0, 1, 0, 0, 0],\n [0, 0, 1, 0, 0],\n [0, 0, 0, 1, 0],\n [0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0],\n ]\n )\n }\n\n /** register by using single number per row */\n register(mark: string, rows: [number, number, number, number, number, number, number, number]) {\n this.marks = { ...this.marks, [mark]: rows };\n }\n\n /** register by using rows tables 0/1 (on/off) */\n registerBinary(mark: string, table: [binaryRow, binaryRow, binaryRow, binaryRow, binaryRow, binaryRow, binaryRow, binaryRow]) {\n this.marks = { ...this.marks, [mark]: table.map(v => (v as any).reduce((p: number, c: number, index: number) => (p += c * (1 << index), p)), 0) as any };\n }\n\n /** get mark */\n get(mark: string) {\n return this.marks[mark] || this.marks[' '];\n }\n}\n","import { MarksService } from './../../services/marks.service';\nimport { Component, Input, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'obl-mark-displayer',\n templateUrl: './mark-displayer.component.html',\n styleUrls: ['./mark-displayer.component.scss'],\n standalone: false\n})\nexport class MarkDisplayerComponent {\n /** size of digit unit */\n @Input() size: number = 5;\n /** margin of digit unit */\n @Input() margin: number = 1;\n /** mark to display, if not find in table then ' ' is displayed */\n @Input() set mark(value: string) {\n this._mark = value;\n this.setMark(value);\n }\n\n public get mark(): string {\n return this._mark;\n }\n\n private _mark!: string;\n\n constructor(protected element: ElementRef, public marks: MarksService) {\n this.mark = ' ';\n }\n\n protected matrix: number[] = new Array(8).fill(0);\n\n protected setMark(mark: string) {\n this.matrix = this.marks.get(mark);\n }\n\n protected map(value: number, mask: number) {\n return (value & mask) !== 0;\n }\n}\n","@for (value of matrix; track value) {\n <div class=\"line\">\n @for ( mask of [1, 2, 4, 8, 16]; track mask) {\n <div\n [ngClass]=\"{ selected: map(value, mask), element: true }\"\n [ngStyle]=\"{\n margin: margin / 2 + 'px',\n width: size + 'px',\n height: size + 'px'\n }\"\n ></div>\n }\n </div>\n}","import { Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'obl-marks-displayer',\n templateUrl: './marks-displayer.component.html',\n styleUrls: ['./marks-displayer.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: MarksDisplayerComponent\n },\n ],\n standalone: false\n})\nexport class MarksDisplayerComponent implements ControlValueAccessor {\n /** number of marks per line */\n @Input() set marksPerLine(marksPerLine: number) {\n this._marksPerLine = new Array(marksPerLine).fill(0);\n };\n\n protected _marksPerLine: number[] = [];\n\n /** number of rows */\n @Input() set rows(rows: number) {\n this._rows = new Array(rows).fill(0);\n };\n\n protected _rows: number[] = [];\n\n /** size of basic mark unit displayer */\n @Input() size: number = 5;\n\n /** margin for basic units */\n @Input() margin: number = 1;\n\n /** text to displayed (will be split by new line mark to display per line) */\n @Input() set text(text: string) {\n this.lines = text.split('\\n');\n };\n\n protected lines: string[] = [];\n\n protected connectors = new Array(16).fill(0);\n\n onChange = (value: string) => { };\n\n onTouched = () => { };\n\n registerOnValidatorChange(fn: () => void): void { this.onChange = fn; }\n\n writeValue(set?: string): void {\n this.text = set || '';\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n getChar(line: number, index: number) {\n return this.lines[line].charAt(index);\n }\n\n constructor() {\n this.text = '';\n this.rows = 2;\n this.marksPerLine = 15;\n }\n}\n","<div class=\"circle gold\" style=\"top: 0; left: 0\">\n <div class=\"circle hole\"></div>\n</div>\n<div class=\"circle gold\" style=\"top: 0; right: 0\">\n <div class=\"circle hole\"></div>\n</div>\n<div class=\"circle gold\" style=\"bottom: 0; left: 0\">\n <div class=\"circle hole\"></div>\n</div>\n<div class=\"circle gold\" style=\"bottom: 0; right: 0\">\n <div class=\"circle hole\"></div>\n</div>\n<div class=\"number\">1616B</div>\n\n@for (i of connectors; track i) {\n <div class=\"connect\" [ngStyle]=\"{ left: (60 + $index * 25) + 'px', width: '15px', height: '30px' }\">\n <div>\n <div></div>\n </div>\n </div>\n}\n\n<div class=\"highlight\">\n <div class=\"triangle-bottom-left\"></div>\n <div class=\"center-square\"></div>\n <div class=\"triangle-top-left \"></div>\n</div>\n\n<div class=\"displayer-frame\">\n <div class=\"frame\"></div>\n <div class=\"screen-background\">\n @for (line of _rows; track $index; let lineIndex = $index) {\n <div class=\"text-line\">\n @for (sign of _marksPerLine; track $index; let signIndex = $index) {\n <obl-mark-displayer\n [mark]=\"lines[lineIndex] && lines[lineIndex].charAt(signIndex) || ' '\"\n [margin]=\"margin\"\n [size]=\"size\"\n [style.marginLeft.px] =\"margin\"\n [style.marginRight.px] =\"margin\"\n ></obl-mark-displayer>\n }\n </div>\n }\n </div>\n <div class=\"frame\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MarkDisplayerComponent } from './components/mark-displayer/mark-displayer.component';\nimport { MarksDisplayerComponent } from './components/marks-displayer/marks-displayer.component';\n\n@NgModule({\n declarations: [\n MarkDisplayerComponent,\n MarksDisplayerComponent,\n ],\n imports: [\n CommonModule\n ],\n exports: [\n MarkDisplayerComponent,\n MarksDisplayerComponent\n ]\n})\nexport class MarksDisplayerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MarksService","i1","i2.MarkDisplayerComponent"],"mappings":";;;;;;MAQa,YAAY,CAAA;AACb,IAAA,KAAK,GAAwF;AACrG,QAAA,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,QAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC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"}