import { Component, OnInit, Input } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Injector } from '@angular/core';

import { <%-SchemaName%>ListComponent } from './<%-schemaName%>-list.component';
import { <%-SchemaName%>Service } from '../<%-schemaName%>.service';

@Component({
  <%- include(`/widgets/list/component.template.custom.ts`)%>
})
export class <%-SchemaName%><%-ComponentClassName%>Component extends <%-SchemaName%>ListComponent
implements OnInit {
  <%_
  let clickItemAction = 'select';
  let cardHasLink = false;
  let cardHasSelect = false;
  let canArchive = false;
  let canCheck = true;
  let includeSubDetail = false;
  let itemMultiSelect = true;
  %>
  public override clickItemAction: string = '<%-clickItemAction%>';
  public override cardHasLink: boolean = <%-cardHasLink%>;
  public override cardHasSelect: boolean = <%-cardHasSelect%>;
  public override includeSubDetail: boolean = <%-includeSubDetail%>;
  public override canUpdate: boolean = <%-listViewObj.canUpdate%>;
  public override canDelete: boolean = <%-listViewObj.canDelete%>;
  public override canArchive: boolean = <%-canArchive%>;
  public override canCheck: boolean = <%-canCheck%>;
  public override itemMultiSelect: boolean = <%-itemMultiSelect%>;
  public override majorUi: boolean = <%-listViewObj.majorUi%>;

  constructor(
      public override <%-schemaName%>Service: <%-SchemaName%>Service,
      public override injector: Injector,
      public override route: ActivatedRoute
  ) {
    super(<%-schemaName%>Service, injector, route);

        this.listViews = [ <%for (let widget of widgetDef.views) {%>'<%-widget%>', <%}%>];
        this.listViewFilter = '<%-widgetDef.views[0]%>';
    
        this.actionType = 'selection';
  }

  override ngOnInit() {
    this.queryOnNgInit = false; // don't do query on the super class.
    super.ngOnInit();

    this.inputData = this.inputData || {}
    this.selectedId = this.inputData.preSelectedId;
    this.listCategory1 = {}; // no do query based on category;
    this.listCategory2 = {}; // no do query based on category;
    this.searchList();
  }

  public override onEdit(id: string) {
    this.onEmbeddedEdit(id);
  }
}
