{"version":3,"file":"obliczeniowo-elementary-chemical-text.mjs","sources":["../../../../projects/components/chemical-text/chemical-text/chemical-text.component.ts","../../../../projects/components/chemical-text/chemical-text/chemical-text.component.html","../../../../projects/components/chemical-text/chemical-text.module.ts","../../../../projects/components/chemical-text/obliczeniowo-elementary-chemical-text.ts"],"sourcesContent":["import { Component, effect, input } from '@angular/core';\n\nimport { symbols as chemicalSymbols } from '@obliczeniowo/elementary/utils';\n\n@Component({\n    selector: 'obl-chemical-text',\n    templateUrl: './chemical-text.component.html',\n    styleUrl: './chemical-text.component.scss',\n    standalone: false\n})\nexport class ChemicalTextComponent {\n  text = input<string>();\n\n  fontSize = input<string>();\n\n  type = input<'background' | 'color'>('color');\n\n  protected prepared: string[] = [];\n\n  constructor() {\n    effect(() => {\n      const text = this.text();\n      if (text) {\n        const convert = text.split(' ');\n        convert.forEach((toConvert, i) => {\n          let symbols = [...chemicalSymbols];\n          let index = -1;\n          let s = '';\n          symbols.forEach(symbol => {\n            const found = toConvert.toLowerCase().search(symbol.toLowerCase());\n            if ((index > -1 && found <= index && s.length <= symbol.length && found !== -1) || (index === -1 && found !== -1)) {\n              index = found;\n              s = symbol;\n            }\n          });\n\n          if (index !== -1) {\n            convert[i] = toConvert.replace(new RegExp(s, 'i'), `<span class=\"${this.type()}\">${s}</span>`);\n          }\n\n          symbols = symbols.filter(symbol => symbol !== s);\n        });\n        this.prepared = convert.join(' ').split('\\n');\n      }\n    })\n  }\n}\n","@for (line of prepared; track line) {\n  <div [innerHtml]=\"line | safe : 'html'\" [style.fontSize]=\"fontSize()\"></div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonDefTableModule } from '@obliczeniowo/elementary/json-def-table';\n\nimport { ChemicalTextComponent } from './chemical-text/chemical-text.component';\n\n@NgModule({\n  declarations: [\n    ChemicalTextComponent\n  ],\n  imports: [\n    CommonModule,\n    JsonDefTableModule\n  ],\n  exports: [\n    ChemicalTextComponent\n  ]\n})\nexport class ChemicalTextModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["symbols","chemicalSymbols"],"mappings":"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"}