import { demoFunc } from './dees-dataview-codebox.demo.js';
import {
  DeesElement,
  html,
  customElement,
  type TemplateResult,
  property,
  state,
  cssManager,
} from '@design.estate/dees-element';
import { cssGeistFontFamily, cssMonoFontFamily } from './00fonts.js';
import hlight from 'highlight.js';
import * as smartstring from '@push.rocks/smartstring';
import * as domtools from '@design.estate/dees-domtools';
import { DeesContextmenu } from './dees-contextmenu.js';
declare global {
  interface HTMLElementTagNameMap {
    'dees-dataview-codebox': DeesDataviewCodebox;
  }
}
@customElement('dees-dataview-codebox')
export class DeesDataviewCodebox extends DeesElement {
  public static demo = demoFunc;
  @property()
  public progLang: string = 'typescript';
  @property({
    type: String,
    reflect: true,
  })
  public codeToDisplay: string = '';
  constructor() {
    super();
  }
  render(): TemplateResult {
    return html`
      ${domtools.elementBasic.styles}
      
      
 {
          DeesContextmenu.openContextMenuWithOptions(eventArg, [
            {
              name: 'About',
              iconName: 'circleInfo',
              action: async () => {
                return null;
              },
            },
          ]);
        }}"
      >
        
        
          
            ${(() => {
              let lineCounter = 0;
              return this.codeToDisplay.split('\n').map((lineArg) => {
                lineCounter++;
                return html`
${lineCounter}
`;
              });
            })()}
          
         
        
          Spaces: 2
          ${this.progLang}