File

src/app/components/parsing/parsertab/pasertab.component.ts

Metadata

selector app-parser-tab
styleUrls parsertab.component.css
templateUrl parsertab.component.html

Inputs

data

Type: StyleSheetList

label

Type: string

Constructor

constructor(es: EventsService)

Methods

getRules
getRules(item: CSSStyleSheet)
Returns: void
getStyle
getStyle(item: string)
Returns: void
Private setdelayedInkBarWidth
setdelayedInkBarWidth(tabWidth: any)
Returns: void
Private setInkBarWidth
setInkBarWidth(tabWidth: any)
Returns: void
getcolumntemplate
getcolumntemplate(tabWidth: any)
Returns: void

Properties

displayedColumns
displayedColumns: ["href"]
import { Component, OnInit, Input, AfterViewInit } from "@angular/core";
import { EventsService } from "./../services/events.service";

@Component({
  selector: "app-parser-tab",
  templateUrl: "./parsertab.component.html",
  styleUrls: ["./parsertab.component.css"],
})
export class ParserTabComponent implements OnInit, AfterViewInit {
  //** The label on the tab at top of this page */
  @Input() label: string;
  //** The array of items to display */
  @Input("data") data: StyleSheetList;
  displayedColumns: ["href"];
  constructor(private es: EventsService) {}

  ngOnInit(): void {
    this.es.styleSheets.subscribe((data) => {
      setTimeout(() => {
        let temp: StyleSheetList = data;
        this.data = temp;
      }, 10);
    });
  }
  getRules(item: CSSStyleSheet) {
    try {
      let cssrulelist: CSSRuleList = item.rules;
      let list = Array.from(cssrulelist);
      let rules = list.map((rule) => {
        let temp: CSSRule = rule;
        return temp.cssText;
      });

      return list;
    } catch (error) {}
  }
  getStyle(item: string) {
    let firstchar = item[0];
    if (firstchar.includes(".")) {
      return "c1";
    }
    if (firstchar.includes("[")) {
      return "c2";
    }
    if (firstchar.includes("#")) {
      return "c3";
    }
    if (firstchar.includes("@")) {
      return "c4";
    }
    return "c5";
  }
  ngAfterViewInit() {
    let tabWidth = '3em';
    this.setdelayedInkBarWidth(tabWidth);
    let mtlabel = document.getElementsByClassName(
      "mat-tab-labels"
    )[0] as HTMLElement;
    mtlabel.style.display = "grid";
    mtlabel.style.gridTemplateColumns = this.getcolumntemplate(tabWidth);
    mtlabel.style.content="61:parseTab";
    mtlabel.addEventListener('click', (item)=>{
      this.setdelayedInkBarWidth(tabWidth);
    })
  }

  private setdelayedInkBarWidth(tabWidth) {
    setTimeout(() => {
      this.setInkBarWidth(tabWidth);
    }, 10);
  }

  private setInkBarWidth(tabWidth) {
    let inkbar = (document.getElementsByTagName('mat-ink-bar')[0]) as HTMLElement;
    inkbar.style.display='grid'
    inkbar.style.gridTemplateColumns=this.getcolumntemplate(tabWidth);
  }
  getcolumntemplate(tabWidth){
    return   `repeat(auto-fit, minmax(${tabWidth}, 1fr))`;
  }
}

results matching ""

    No results matching ""