{"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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"}