{"version":3,"file":"guiexpert-angular-table.mjs","sources":["../../../projects/angular-table/src/lib/service/dom-service.ts","../../../projects/angular-table/src/lib/table.component.ts","../../../projects/angular-table/src/lib/service/renderer-wrapper.ts","../../../projects/angular-table/src/lib/service/render-wrapper-factory.ts","../../../projects/angular-table/src/public-api.ts","../../../projects/angular-table/src/guiexpert-angular-table.ts"],"sourcesContent":["import {Injectable, Renderer2} from \"@angular/core\";\nimport {DomServiceIf} from \"@guiexpert/table\";\n\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class DomService implements DomServiceIf {\n\n  constructor(\n    readonly renderer: Renderer2,\n  ) {\n  }\n\n  setStyle(el: any, style: string, value: any): any {\n    this.renderer.setStyle(el, style, value);\n    return el;\n  };\n\n\n  appendText(parent: HTMLDivElement, text: string): HTMLDivElement {\n    const div = this.renderer.createText(text);\n    this.renderer.appendChild(parent, div);\n    return div;\n  }\n\n\n  addClass(div: HTMLDivElement, clazz: string) {\n    if (clazz.includes(' ')) {\n      clazz.split(' ').forEach(c => this.renderer.addClass(div, c))\n    } else {\n      this.renderer.addClass(div, clazz);\n    }\n    return div;\n  }\n\n  removeClass(div: HTMLDivElement, clazz: string) {\n    if (clazz.includes(\" \")) {\n      clazz.split(\" \").forEach(c => div.classList.remove(c));\n    } else {\n      div.classList.remove(clazz);\n    }\n    return div;\n  }\n\n  appendChild(parent: HTMLElement, child: HTMLElement): void {\n    this.renderer.appendChild(parent, child);\n  }\n\n  createElement<T>(name: string): T {\n    return this.renderer.createElement(name);\n  }\n\n  createText(text: string): HTMLElement {\n    return this.renderer.createText(text);\n  }\n\n  setAttribute(ele: HTMLElement, key: string, value: string): void {\n    this.renderer.setAttribute(ele, key, value);\n  }\n\n\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  ViewEncapsulation\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { debounceTime, Subject, takeWhile } from \"rxjs\";\nimport {\n  EventListenerIf, FocusModelIf,\n  GeModelChangeEvent, GeScrollEvent,\n  GeMouseEvent, SelectionModelIf,\n  TableApi,\n  TableModelIf,\n  TableOptions,\n  TableOptionsIf,\n  TableScope\n} from '@guiexpert/table';\nimport { DomService } from \"./service/dom-service\";\n\n\n@Component({\n  selector: \"guiexpert-table\",\n  standalone: true,\n  imports: [CommonModule],\n  providers: [DomService],\n  template: \"\",\n  styleUrls: [\n    \"./table.component.css\"\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableComponent implements OnInit, OnDestroy, EventListenerIf {\n\n  @Output()\n  tableReady = new Subject<TableApi>();\n\n  @Output()\n  scroll: Subject<GeScrollEvent> = new Subject<GeScrollEvent>();\n\n  @Output()\n  mouseMoved: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  @Output()\n  mouseDragging: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  @Output()\n  mouseDraggingEnded: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  @Output()\n  contextmenu: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  @Output()\n  mouseClicked: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  @Output()\n  modelChanged: Subject<GeModelChangeEvent> = new Subject<GeModelChangeEvent>();\n\n  @Output()\n  selectionChanged: Subject<SelectionModelIf> = new Subject<SelectionModelIf>();\n\n  @Output()\n  focusChanged: Subject<FocusModelIf> = new Subject<FocusModelIf>();\n\n  @Output()\n  checkboxChanged: Subject<any[]> = new Subject<any[]>();\n\n  @Input()\n  tableModel?: TableModelIf;\n\n  @Input()\n  tableOptions: TableOptionsIf = new TableOptions();\n\n  @Input()\n  debounceMouseClickDelay: number = 150;\n\n  private debounceMouseClick: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();\n\n  private tableScope?: TableScope;\n  private alive = true;\n\n\n  constructor(\n    private readonly renderer: Renderer2,\n    private readonly elementRef: ElementRef,\n    private readonly zone: NgZone,\n    private readonly domService: DomService\n  ) {\n  }\n\n  onSelectionChanged(model: SelectionModelIf): void {\n    this.selectionChanged.next(model);\n  }\n\n  onFocusChanged(model: FocusModelIf): void {\n    this.focusChanged.next(model);\n  }\n\n  onContextmenu(evt: GeMouseEvent): void {\n    this.contextmenu.next(evt);\n  }\n\n  onScroll(evt: GeScrollEvent): void {\n    this.scroll.next(evt);\n  }\n\n  onMouseMoved(evt: GeMouseEvent): void {\n    this.mouseMoved.next(evt);\n  }\n\n  // will be called by table-scope:\n  onMouseClicked(evt: GeMouseEvent): void {\n    this.debounceMouseClick.next(evt);\n  }\n\n  onCheckboxChanged(arr: any[]): void {\n    this.checkboxChanged.next(arr);\n  }\n\n  onModelChanged(evt: GeModelChangeEvent): void {\n    this.modelChanged.next(evt);\n  }\n\n  ngOnInit(): void {\n    this.initModel();\n    this.debounceMouseClick\n      .pipe(\n        debounceTime(this.debounceMouseClickDelay),\n        takeWhile(() => this.alive)\n      )\n      .subscribe((value) => {\n        this.zone.run(() => {\n          this.mouseClicked.next(value);\n        });\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.alive = false;\n  }\n\n\n  onMouseDragging(evt: GeMouseEvent): void {\n    this.mouseDragging.next(evt);\n  }\n\n  onMouseDraggingEnd(evt: GeMouseEvent): void {\n    this.mouseDraggingEnded.next(evt);\n  }\n\n\n  private initModel() {\n    this.zone.runOutsideAngular(this.init.bind(this));\n  }\n\n  private init() {\n    if (this.tableModel) {\n      this.tableScope = new TableScope(\n        this.elementRef.nativeElement, this.tableModel, this.domService, this.tableOptions, this\n      );\n      this.tableScope.firstInit();\n      this.tableReady.next(this.tableScope.getApi());\n    }\n  }\n\n\n}\n","import {AreaIdent, AreaModelIf, CellRendererIf, DomServiceIf, RendererCleanupFnType} from \"@guiexpert/table\";\nimport {\n  ApplicationRef,\n  ChangeDetectorRef,\n  createComponent,\n  EnvironmentInjector,\n  EventEmitter,\n  NgZone,\n  Type\n} from \"@angular/core\";\nimport {ComponentRendererIf} from \"../component-renderer.if\";\nimport {Subject, takeUntil} from \"rxjs\";\nimport {Observable} from \"rxjs/internal/Observable\";\n\n\nfunction isObservable(value: any): value is Observable<any> {\n  return value instanceof Observable || value instanceof EventEmitter;\n}\n\nexport class RendererWrapper<T extends ComponentRendererIf<T>>\n  implements CellRendererIf {\n\n  public readonly event$ = new EventEmitter<any>();\n  private readonly closed$ = new Subject<number>();\n\n  constructor(\n    private componentType: Type<ComponentRendererIf<T>>,\n    private appRef: ApplicationRef,\n    private injector: EnvironmentInjector,\n    private cdr: ChangeDetectorRef,\n    private readonly zone: NgZone\n  ) {\n  }\n\n  render(\n    cellDiv: HTMLDivElement,\n    rowIndex: number,\n    columnIndex: number,\n    areaIdent: AreaIdent,\n    areaModel: AreaModelIf,\n    cellValue: any,\n    domService: DomServiceIf): RendererCleanupFnType | undefined {\n\n    const componentRef = createComponent(this.componentType, {\n      environmentInjector: this.injector\n    });\n    componentRef.instance.setData(\n      rowIndex,\n      columnIndex,\n      areaIdent,\n      areaModel,\n      cellValue);\n\n\n    const emmiterNames = Object.keys(componentRef.instance)\n      .filter(key => {\n        const value = (componentRef.instance as any)[key];\n        return value && isObservable(value);\n      });\n\n    const observables: (Observable<any>|EventEmitter<any>)[] = (emmiterNames.map(key => ((componentRef.instance as any)[key] as Observable<any>)));\n    observables.forEach(obs => obs\n      .pipe(\n        takeUntil(this.closed$)\n      )\n      .subscribe((event: any) => {\n        this.event$.next(event);\n      })\n    );\n\n    if (cellDiv) cellDiv.appendChild(componentRef.location.nativeElement);\n\n    this.appRef.attachView(componentRef.hostView);\n\n    this.zone.run(() => {\n      this.cdr.detectChanges();\n    });\n\n    return () => {\n      // clean up:\n      this.appRef.detachView(componentRef.hostView);\n      this.closed$.next(Date.now());\n    };\n  }\n\n\n}\n","import {ApplicationRef, ChangeDetectorRef, EnvironmentInjector, Injectable, NgZone, Type} from \"@angular/core\";\nimport {ComponentRendererIf} from \"../component-renderer.if\";\nimport {RendererWrapper} from \"./renderer-wrapper\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class RenderWrapperFactory {\n\n  constructor(\n    private readonly appRef: ApplicationRef,\n    private readonly injector: EnvironmentInjector,\n    private readonly zone: NgZone\n  ) {\n  }\n\n  create<T>(\n    componentType: Type<ComponentRendererIf<T>>,\n    cdr: ChangeDetectorRef\n  ) {\n    return new RendererWrapper(componentType, this.appRef, this.injector, cdr, this.zone);\n  }\n\n}\n","/*\n * Public API Surface of angular-table\n */\n\nexport * from './lib/table.component';\nexport * from './lib/component-renderer.if';\nexport * from './lib/service/dom-service';\nexport * from './lib/service/renderer-wrapper';\nexport * from './lib/service/render-wrapper-factory';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DomService"],"mappings":"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"}