{"version":3,"file":"ngpq-table.mjs","sources":["../../../projects/ngpq-table/src/lib/models/action.model.ts","../../../projects/ngpq-table/src/lib/models/action-event.model.ts","../../../projects/ngpq-table/src/lib/models/cell-click-event.model.ts","../../../projects/ngpq-table/src/lib/models/row-click-event.model.ts","../../../projects/ngpq-table/src/lib/models/filter.model.ts","../../../projects/ngpq-table/src/lib/models/select-action.model.ts","../../../projects/ngpq-table/src/lib/models/select-action-event.model.ts","../../../projects/ngpq-table/src/lib/models/settings.model.ts","../../../projects/ngpq-table/src/lib/helpers/table.util.ts","../../../projects/ngpq-table/src/lib/helpers/initialize.ts","../../../projects/ngpq-table/src/lib/helpers/sort.ts","../../../projects/ngpq-table/src/lib/models/sort.model.ts","../../../projects/ngpq-table/src/lib/shared/services/loader.service.ts","../../../projects/ngpq-table/src/lib/shared/services/select-data.service.ts","../../../projects/ngpq-table/src/lib/shared/services/filter.service.ts","../../../projects/ngpq-table/src/lib/shared/icon/icon.component.ts","../../../projects/ngpq-table/src/lib/shared/icon/icon.component.svg","../../../projects/ngpq-table/src/lib/pipes/safe/safe.pipe.ts","../../../projects/ngpq-table/src/lib/shared/dropdown/dropdown.component.ts","../../../projects/ngpq-table/src/lib/shared/dropdown/dropdown.component.html","../../../projects/ngpq-table/src/lib/components/thead/table-header-cell-class.pipe.ts","../../../projects/ngpq-table/src/lib/components/thead/thead.component.ts","../../../projects/ngpq-table/src/lib/components/thead/thead.component.html","../../../projects/ngpq-table/src/lib/components/tbody/form/form.component.ts","../../../projects/ngpq-table/src/lib/components/tbody/form/form.component.html","../../../projects/ngpq-table/src/lib/components/tbody/custom-view/custom-view.component.ts","../../../projects/ngpq-table/src/lib/pipes/backlight/backlight.pipe.ts","../../../projects/ngpq-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ngpq-table/src/lib/components/tbody/tbody.component.html","../../../projects/ngpq-table/src/lib/components/filter/category-filter/category-filter.component.ts","../../../projects/ngpq-table/src/lib/components/filter/category-filter/category-filter.component.html","../../../projects/ngpq-table/src/lib/components/filter/usual-filter/usual-filter.component.ts","../../../projects/ngpq-table/src/lib/components/filter/usual-filter/usual-filter.component.html","../../../projects/ngpq-table/src/lib/components/filter/filter.component.ts","../../../projects/ngpq-table/src/lib/components/filter/filter.component.html","../../../projects/ngpq-table/src/lib/ngpq-table.component.ts","../../../projects/ngpq-table/src/lib/ngpq-table.component.html","../../../projects/ngpq-table/src/lib/shared/shared.module.ts","../../../projects/ngpq-table/src/lib/components/filter/filter.module.ts","../../../projects/ngpq-table/src/assets/icons/icons.ts","../../../projects/ngpq-table/src/lib/components/tbody/tbody.module.ts","../../../projects/ngpq-table/src/lib/components/thead/thead.module.ts","../../../projects/ngpq-table/src/lib/ngpq-table.module.ts","../../../projects/ngpq-table/src/ngpq-table.ts"],"sourcesContent":["export class Action {\r\n    constructor(\r\n        public template: string,\r\n        public key?: string,\r\n        public className?: string,\r\n        public isCreate?: boolean,\r\n        public isUpdate?: boolean\r\n    ) { }\r\n}\r\n","export class ActionEvent {\r\n  constructor(\r\n    public action: string,\r\n    public row: any\r\n  ) { }\r\n}\r\n","export class CellData {\r\n  constructor(\r\n    public row: any,\r\n    public settingsKey: string,\r\n    public index: number,\r\n    public value: any,\r\n    public event: MouseEvent\r\n  ) { }\r\n}\r\n","export class RowData {\r\n  constructor(\r\n    public row: any,\r\n    public index: number,\r\n    public event: MouseEvent\r\n  ) { }\r\n}","export class FilterOption {\r\n  constructor(\r\n    public byCategory?: boolean,\r\n    public pure?: boolean,\r\n    public typeaheadTime?: number,\r\n    public backlight?: boolean,\r\n  ) {}\r\n}\r\n\r\nexport class FilterDetail {\r\n  constructor(public key: string, public title: string, public value?: any) {}\r\n}\r\n\r\nexport class FilterData {\r\n  constructor(public data: any[], public value: string) {}\r\n}\r\n","export class SelectAction {\r\n    constructor(\r\n        public key: string,\r\n        public title: string\r\n    ) { }\r\n}\r\n","import { SelectAction } from \"./select-action.model\";\r\n\r\nexport class SelectActionEvent {\r\n  constructor(\r\n    public method: SelectAction,\r\n    public rows: any[]\r\n  ) { }\r\n}","import { Validators } from \"@angular/forms\";\r\n\r\ntype INPUT_TYPE =\r\n    'select'\r\n    | 'text'\r\n    | 'number'\r\n    | 'email'\r\n    | 'password'\r\n    | 'textarea'\r\n    | 'checkbox'\r\n    | 'radio'\r\n    | 'range'\r\n    | 'date'\r\n    | 'datetime-local'\r\n    | 'time'\r\n    | 'week'\r\n    | 'month'\r\n    | 'color'\r\n    | 'reset'\r\n    | 'tel'\r\n    | 'url';\r\n\r\nclass SettingsForm {\r\n    constructor(\r\n        public control?: Array<any | Array<Validators>>,\r\n        public type?: INPUT_TYPE | string,\r\n        public disabled?: boolean,\r\n        public placeholder?: string,\r\n        public errorMessage?: any\r\n    ) { }\r\n}\r\n\r\nexport class Settings {\r\n    constructor(\r\n        public title: string,\r\n        public width?: string,\r\n        public className?: string,\r\n        public disableSort?: boolean,\r\n        public disableFilter?: boolean,\r\n        public renderComponent?: any,\r\n        public form?: SettingsForm\r\n    ) { }\r\n}\r\n","export const createModes = (dataLength) => {\r\n  let i = 0;\r\n  let tmp = dataLength.toString().length + 1;\r\n  const result: number[] = [];\r\n  let mode;\r\n  let length = dataLength;\r\n\r\n  while (tmp !== 0) {\r\n    while (i !== tmp) {\r\n      mode = length / 2;\r\n      length = mode;\r\n      i++;\r\n    }\r\n\r\n    i = 0;\r\n    tmp--;\r\n\r\n    const toInteger = () => mode % 10;\r\n    const intMode = Math.ceil((mode - toInteger()) !== 0 ? mode - toInteger() : toInteger());\r\n    if (!(result.find(m => m === intMode))) {\r\n      result.push(intMode);\r\n    }\r\n\r\n    length = dataLength;\r\n\r\n    if (tmp === 0) {\r\n      const lastItem = result[0] - ((result.reduce((a, b) => (a) + (b))) + (result[0]) - length);\r\n      result[result.length - 1] = Math.ceil(result[result.length - 1] + lastItem);\r\n    }\r\n  }\r\n\r\n  result.push(dataLength);\r\n  return result;\r\n};\r\n\r\nexport const cloneDeep = (data: any[] | any) => {\r\n  if (typeof (data) != \"object\") {\r\n    return data;\r\n  }\r\n\r\n  if (!data) {\r\n    return data;\r\n  }\r\n\r\n  const v: any | any[] = (data instanceof Array) ? [] : {};\r\n\r\n  for (const i in data) {\r\n    if (data.hasOwnProperty(i)) {\r\n      v[i] = cloneDeep(data[i]);\r\n    }\r\n  }\r\n  return v;\r\n};\r\n","import { Action } from \"../models/action.model\";\r\nimport { SelectAction } from \"../models/select-action.model\";\r\nimport { TableHeader } from \"../models/table-header.model\";\r\n\r\ninterface InitActions {\r\n  actions: Action[],\r\n  createAction: Action | null\r\n}\r\n\r\nexport const createActions = (actions: Action[]): InitActions => {\r\n  let createAction;\r\n\r\n  if (\r\n    actions?.filter(a => a.isCreate && a.isUpdate).length\r\n    || actions?.filter(a => a.isCreate).length > 1\r\n    || actions?.filter(a => a.isUpdate).length > 1\r\n  ) {\r\n    throw new Error(`Should be applied only one parameter isUpdate or isCreate`);\r\n  }\r\n\r\n  if (actions?.find(a => a.isCreate) && !createAction) {\r\n    createAction = actions?.find(a => a.isCreate) as Action;\r\n    actions = actions?.filter(a => !a.isCreate);\r\n  } else {\r\n    createAction = null;\r\n  }\r\n\r\n  return { actions, createAction };\r\n};\r\n\r\nexport const modifiedTableHeaders =\r\n  (selectActions: SelectAction[], tableHeaders: TableHeader[]): TableHeader[] => {\r\n    if (selectActions?.length) {\r\n      const selectHeader = {\r\n        key: 'select',\r\n        title: '',\r\n        width: '55px',\r\n        className: 'select-actions-td',\r\n        isStatic: true,\r\n        disableFilter: true,\r\n        disableSort: true\r\n      };\r\n\r\n      tableHeaders = [selectHeader, ...tableHeaders];\r\n    } else if (tableHeaders[0].isStatic) {\r\n      tableHeaders = tableHeaders.filter((v, i) => i !== 0);\r\n    }\r\n\r\n    return tableHeaders;\r\n  };","import { SortEvent } from \"../models/sort.model\";\r\n\r\nexport const isTemplate = (value: { value: any, template: string } | string | number) => typeof value === 'object' && 'template' in value && 'value' in value;\r\n\r\nexport const isSame = (column: string, data) => {\r\n  if (isTemplate(data[0][column])) {\r\n    return !(data.filter(v => v[column].value === data[0][column].value).length === data.length);\r\n  } else {\r\n    return !(data.filter(v => v.value === data[0][column]).length === data.length);\r\n  }\r\n};\r\n\r\nexport const doSort = (data: any[], { column, direction }: SortEvent) => {\r\n  const compare = (v1: string, v2: string) => v1.toString().localeCompare(v2.toString());\r\n  data.sort((a, b) => {\r\n    let result;\r\n\r\n    if (isTemplate(a[column]) && isTemplate(b[column])) {\r\n      result = compare(a[column].value, b[column].value);\r\n    } else {\r\n      result = compare(a[column], b[column]);\r\n    }\r\n\r\n    return direction === 'asc' ? result : -result;\r\n  });\r\n};\r\n","export type SortDirection = 'asc' | 'desc' | '';\r\n\r\nexport class SortEvent {\r\n    constructor(\r\n        public column: string,\r\n        public direction: SortDirection\r\n    ) { }\r\n}\r\n","import { Subject } from \"rxjs\";\r\n\r\nexport class LoaderService {\r\n  public loadData$ = new Subject();\r\n\r\n  show() {\r\n    this.loadData$.next(true);\r\n  }\r\n\r\n  hide() {\r\n    this.loadData$.next(false);\r\n  }\r\n}\r\n","import { Subject } from \"rxjs\";\r\n\r\nexport class SelectDataService {\r\n    public selectAllData$: Subject<boolean> = new Subject();\r\n}\r\n","import { FilterDetail } from '../../models/filter.model';\r\n\r\nexport class FilterService {\r\n  activeFilter: string | FilterDetail[];\r\n\r\n  fiterData(\r\n    data: any[],\r\n    isPure: boolean | undefined,\r\n    filterDetails: FilterDetail[],\r\n  ): any[] {\r\n    if (Array.isArray(this.activeFilter)) {\r\n      (this.activeFilter as FilterDetail[]).forEach(af => {\r\n        data = this.doCategoryFilter(data, af.key, af.value, isPure);\r\n      });\r\n    } else {\r\n      data = this.doUsualFilter(data, filterDetails, isPure);\r\n    }\r\n\r\n    return data;\r\n  }\r\n\r\n  doCategoryFilter(\r\n    data: any[],\r\n    key: string,\r\n    comparativeValue: string,\r\n    isPure: boolean | undefined,\r\n  ): any[] {\r\n    return data.filter(item =>\r\n      isPure\r\n        ? this.toLowerCase(item[key]) === this.toLowerCase(comparativeValue)\r\n        : this.toLowerCase(item[key]).indexOf(this.toLowerCase(comparativeValue)) !== -1,\r\n    );\r\n  }\r\n\r\n  doUsualFilter(data, filterDetails, isPure): any[] {\r\n    const filteredData: any = [];\r\n\r\n    data.forEach((item: any) => {\r\n      for (const i in item) {\r\n        if (item[i] && filterDetails.find(fo => fo.key === i)) {\r\n          const inPure =\r\n            this.toLowerCase(this.activeFilter) === this.toLowerCase(item[i]);\r\n          const pure =\r\n            this.toLowerCase(item[i]).indexOf(this.toLowerCase(this.activeFilter)) !== -1;\r\n\r\n          if (isPure && inPure) {\r\n            filteredData.push(item);\r\n          } else if (pure) {\r\n            filteredData.push(item);\r\n            return;\r\n          }\r\n        }\r\n      }\r\n    });\r\n\r\n    return filteredData;\r\n  }\r\n\r\n  toLowerCase(value) {\r\n    return value.toString().toLowerCase();\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Injector,\r\n  Input,\r\n  OnInit,\r\n} from '@angular/core';\r\nimport { IconModel, Icons, SVGModel } from '../../models/icon.model';\r\n\r\n@Component({\r\n  selector: 'ngpq-icon',\r\n  templateUrl: './icon.component.svg',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent implements OnInit {\r\n  @Input('icon') iconName: Icons;\r\n  icon: SVGModel;\r\n\r\n  constructor(private injector: Injector) {}\r\n\r\n  ngOnInit() {\r\n    const icons: IconModel = this.injector.get('Icons');\r\n    this.icon = icons[this.iconName];\r\n  }\r\n}\r\n","<svg role=\"img\" class=\"ngpq-icon\" aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" [attr.viewBox]=\"icon.viewBox\"><path fill=\"currentColor\" [attr.d]=\"icon.d\"></path></svg>","import { DomSanitizer, SafeHtml, SafeStyle } from '@angular/platform-browser';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'safe',\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n  constructor(protected sanitizer: DomSanitizer) {}\r\n\r\n  public transform(value: any, type: string): SafeHtml | SafeStyle | void {\r\n    if (type && value) {\r\n      switch (type) {\r\n        case 'html':\r\n          return this.sanitizer.bypassSecurityTrustHtml(value);\r\n        case 'style':\r\n          return this.sanitizer.bypassSecurityTrustStyle(value);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'ngpq-dropdown',\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DropdownComponent {\r\n  @Input() items: any[] = [];\r\n  @Input() defaultItem: string | number;\r\n  @Input() displayName: string;\r\n\r\n  @Output() dropdownValue = new EventEmitter();\r\n\r\n  isShow: boolean;\r\n\r\n  constructor() {}\r\n\r\n  toggle() {\r\n    this.isShow = !this.isShow;\r\n  }\r\n\r\n  emit(item: any, e: MouseEvent) {\r\n    e.stopPropagation();\r\n    this.dropdownValue.emit(item);\r\n    this.toggle();\r\n  }\r\n}\r\n","<div class=\"dropdown-container\" (click)=\"toggle()\">\r\n  <span *ngIf=\"defaultItem\" class=\"default-item\">{{ defaultItem }}</span>\r\n  <span class=\"icon\">\r\n    <ngpq-icon icon=\"arrow\"></ngpq-icon>\r\n  </span>\r\n\r\n  <ul *ngIf=\"isShow\" class=\"dropdown-list-group\">\r\n    <li\r\n      *ngFor=\"let item of items\"\r\n      [class.active]=\"item === defaultItem\"\r\n      class=\"dropdown-list-item\"\r\n      (click)=\"emit(item, $event)\"\r\n      [innerHTML]=\"(displayName ? item[displayName] : item) | safe: 'html'\"></li>\r\n  </ul>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TableHeader } from './../../models/table-header.model';\r\n\r\n@Pipe({\r\n  name: 'headerCell',\r\n})\r\nexport class HeaderCellClassPipe implements PipeTransform {\r\n  transform(header: TableHeader): string {\r\n    const classNames: string[] = [];\r\n    if (header.className && !header.isStatic) {\r\n      classNames.push(`${header.className}-th`);\r\n    }\r\n\r\n    if (header.isStatic) {\r\n      classNames.push(`select-actions-th`);\r\n    }\r\n\r\n    return classNames.join(' ');\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SortDirection, SortEvent } from '../../models/sort.model';\r\nimport { Action } from '../../models/action.model';\r\nimport { SelectAction } from '../../models/select-action.model';\r\nimport { SelectDataService } from '../../shared/services/select-data.service';\r\nimport { TableHeader } from '../../models/table-header.model';\r\n\r\n@Component({\r\n  selector: '[ngpq-thead]',\r\n  templateUrl: './thead.component.html',\r\n  styleUrls: ['./thead.component.scss'],\r\n})\r\nexport class TheadComponent {\r\n  @Input() tableHeaders: TableHeader[];\r\n  @Input() disableSort: boolean;\r\n  @Input() actions: Action[];\r\n  @Input() selectActions: SelectAction[];\r\n  @Input() isSelectAll: boolean;\r\n\r\n  @Output() sort = new EventEmitter<SortEvent>();\r\n  @Output() selectedAction = new EventEmitter<SelectAction>();\r\n\r\n  direction: SortDirection = '';\r\n  rotate: { [key: string]: SortDirection } = { asc: 'desc', desc: '', '': 'asc' };\r\n  selectedIndex: number | null = null;\r\n  selectedColumn: string;\r\n\r\n  constructor(public selectDataService: SelectDataService) {}\r\n\r\n  emitSelectedActions(event: SelectAction) {\r\n    this.selectedAction.emit(event);\r\n  }\r\n\r\n  sortData(header: TableHeader, index: number) {\r\n    if (this.disableSort || header.disableSort) {\r\n      return;\r\n    }\r\n\r\n    this.selectedColumn = header.key;\r\n    if (this.selectedIndex !== index) {\r\n      this.direction = '';\r\n    }\r\n\r\n    this.selectedColumn = header.key;\r\n    this.selectedIndex = index;\r\n    this.direction = this.rotate[this.direction];\r\n    const sortEvent = new SortEvent(header.key, this.direction);\r\n    this.sort.emit(sortEvent);\r\n  }\r\n}\r\n","<tr class=\"thead-tr\">\r\n  <th\r\n    *ngFor=\"let header of tableHeaders; let i = index\"\r\n    [class]=\"header | headerCell\"\r\n    [attr.th-index]=\"i\"\r\n    [style.width]=\"header?.width | safe: 'style'\">\r\n    <ng-container *ngIf=\"!header.isStatic; else staticTpl\">\r\n      <div class=\"th-container\">\r\n        <div\r\n          [class.sorting_asc]=\"direction === 'asc' && selectedIndex === i\"\r\n          [class.sorting_desc]=\"direction === 'desc' && selectedIndex === i\"\r\n          [class.sort]=\"!header.disableSort\"\r\n          (click)=\"sortData(header, i)\"\r\n          class=\"th-box\">\r\n          <div class=\"th-content\">\r\n            {{ header.title }}\r\n          </div>\r\n          <ng-container *ngIf=\"!header.disableSort && !disableSort\">\r\n            <div class=\"icon asc\">\r\n              <ngpq-icon icon=\"arrow\"></ngpq-icon>\r\n            </div>\r\n            <div class=\"icon desc\">\r\n              <ngpq-icon icon=\"arrow\"></ngpq-icon>\r\n            </div>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <ng-template #staticTpl>\r\n      <div class=\"select-actions-container select-actions-all-container\">\r\n        <input\r\n          type=\"checkbox\"\r\n          class=\"select-actions\"\r\n          [(ngModel)]=\"isSelectAll\"\r\n          (ngModelChange)=\"selectDataService.selectAllData$.next(isSelectAll)\" />\r\n        <div class=\"select-actions-dropdown\">\r\n          <ngpq-dropdown\r\n            class=\"disabled-hover\"\r\n            [items]=\"selectActions\"\r\n            displayName=\"title\"\r\n            (dropdownValue)=\"emitSelectedActions($event)\">\r\n          </ngpq-dropdown>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n  </th>\r\n  <ng-container *ngIf=\"actions && actions.length\">\r\n    <th class=\"actions-th\">Actions</th>\r\n  </ng-container>\r\n</tr>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { TableHeader } from '../../../models/table-header.model';\r\n\r\n@Component({\r\n  selector: '[ngpq-form]',\r\n  templateUrl: './form.component.html',\r\n  styleUrls: ['./form.component.scss'],\r\n})\r\nexport class FormComponent implements OnInit {\r\n  @Input() tableHeaders: TableHeader[];\r\n  @Input() row: any;\r\n\r\n  @Output() formResult = new EventEmitter();\r\n  @Output() cancel = new EventEmitter();\r\n\r\n  form: FormGroup;\r\n  selectedHeaderIndex: number | null;\r\n  selectItems = {};\r\n\r\n  constructor(private fb: FormBuilder) {}\r\n\r\n  ngOnInit() {\r\n    this.createForm();\r\n\r\n    if (this.tableHeaders.find(header => header?.form?.type)) {\r\n      this.tableHeaders.forEach((header: TableHeader) => {\r\n        if (\r\n          (header?.form?.type === 'select' || header?.form?.type === 'radio') &&\r\n          header.form.control\r\n        ) {\r\n          this.selectItems[header.key] = header.form.control[0];\r\n          if (Array.isArray(this.form.value[header.key])) {\r\n            this.patchFormValue(this.form.value[header.key][0], header);\r\n          }\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  createForm() {\r\n    const group = {};\r\n\r\n    this.tableHeaders.forEach((v: TableHeader) => {\r\n      if (v.form) {\r\n        const key = Object.keys(this.row).find(r => r === v.key)\r\n          ? Object.keys(this.row).find(r => r === v.key)\r\n          : null;\r\n\r\n        if (!v.isStatic && key) {\r\n          let value = this.row[v.key]?.template\r\n            ? this.row[v.key]?.value\r\n            : this.row[v.key];\r\n\r\n          if (\r\n            !value &&\r\n            'control' in v.form &&\r\n            v.form.control?.length &&\r\n            v.form.control[0]\r\n          ) {\r\n            value = v.form.control[0];\r\n          }\r\n\r\n          if (\r\n            v.form.control &&\r\n            v.form.control.length >= 1 &&\r\n            v.form.control.length[0] !== false\r\n          ) {\r\n            group[key] = [value, ...v.form.control.filter((fm, i) => i !== 0)];\r\n          } else if (v.form.disabled) {\r\n            group[key] =\r\n              typeof this.row[key] === 'object' ? this.row[key].value : this.row[key];\r\n          } else {\r\n            group[key] = v.form.control;\r\n          }\r\n        } else {\r\n          console.warn(`\"${v.key}\" Not found`);\r\n        }\r\n      }\r\n    });\r\n\r\n    this.form = this.fb.group(group);\r\n  }\r\n\r\n  patchFormValue(value: any, header: TableHeader) {\r\n    this.form.get(header.key)?.patchValue(value);\r\n    this.selectedHeaderIndex = null;\r\n  }\r\n\r\n  save() {\r\n    if (this.form.value) {\r\n      this.formResult.emit(this.form.value);\r\n    } else {\r\n      console.warn(`Form is invalid`);\r\n\r\n      Object.keys(this.form.value).forEach(key => {\r\n        if (this.form.get(key)?.errors) {\r\n          console.error(`${key} is INVALID`, this.form.get(key)?.errors);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  close() {\r\n    this.cancel.emit();\r\n  }\r\n}\r\n","<ng-container [formGroup]=\"form\">\r\n  <td\r\n    *ngFor=\"let header of tableHeaders; let headerIndex = index\"\r\n    [class]=\"header.className + ' form-td'\"\r\n    [style.overflow]=\"\r\n      (selectedHeaderIndex === headerIndex ? { overflow: 'visible' } : '') | safe: 'style'\r\n    \"\r\n    [style]=\"\r\n      (selectedHeaderIndex === headerIndex ? { overflow: 'visible' } : '') | safe: 'style'\r\n    \">\r\n    <ng-container\r\n      *ngIf=\"\r\n        !header.isStatic && form.get(header.key) && header.form?.type !== 'select';\r\n        else itemsDp\r\n      \">\r\n      <ng-container\r\n        *ngIf=\"\r\n          header?.form?.type !== 'checkbox' &&\r\n          header?.form?.type !== 'textarea' &&\r\n          header?.form?.type !== 'radio'\r\n        \">\r\n        <input\r\n          [id]=\"header.key\"\r\n          [type]=\"header?.form?.type ? header?.form?.type : 'text'\"\r\n          [formControlName]=\"header.key\"\r\n          [attr.disabled]=\"header?.form?.disabled ? header?.form?.disabled : null\"\r\n          [placeholder]=\"header?.form?.placeholder ? header?.form?.placeholder : ''\" />\r\n      </ng-container>\r\n\r\n      <ng-container *ngIf=\"header?.form?.type === 'textarea'\">\r\n        <textarea\r\n          [id]=\"header.key\"\r\n          [formControlName]=\"header.key\"\r\n          [attr.disabled]=\"header?.form?.disabled ? header?.form?.disabled : null\"\r\n          [placeholder]=\"header?.form?.placeholder ? header?.form?.placeholder : ''\">\r\n        </textarea>\r\n      </ng-container>\r\n\r\n      <ng-container *ngIf=\"header?.form?.type === 'checkbox'\">\r\n        <input\r\n          [id]=\"header.key\"\r\n          type=\"checkbox\"\r\n          [formControlName]=\"header.key\"\r\n          [attr.disabled]=\"header?.form?.disabled ? header?.form?.disabled : null\" />\r\n      </ng-container>\r\n\r\n      <ng-container *ngIf=\"header?.form?.type === 'radio'\">\r\n        <div\r\n          class=\"radio-content\"\r\n          *ngFor=\"let control of selectItems[header.key]; let i = index\">\r\n          <label [for]=\"header.key + i\" class=\"radio-label\"> {{ control }} </label>\r\n          <input\r\n            [id]=\"header.key + i\"\r\n            type=\"radio\"\r\n            [value]=\"control\"\r\n            [checked]=\"form.get(header.key)?.value === control\"\r\n            [formControlName]=\"header.key\"\r\n            [attr.disabled]=\"header?.form?.disabled ? header?.form?.disabled : null\" />\r\n        </div>\r\n      </ng-container>\r\n      <div class=\"error-message\" *ngIf=\"form.invalid && form.get(header.key)?.errors\">\r\n        {{ header?.form?.errorMessage }}\r\n      </div>\r\n    </ng-container>\r\n\r\n    <ng-template #itemsDp>\r\n      <div\r\n        *ngIf=\"header.form && header.form.type === 'select'\"\r\n        (click)=\"selectedHeaderIndex = headerIndex\"\r\n        class=\"form-dropdown-container\">\r\n        <ngpq-dropdown\r\n          class=\"form-dropdown\"\r\n          [defaultItem]=\"\r\n            form.get(header.key)?.value\r\n              ? form.get(header.key)?.value\r\n              : header.form.placeholder\r\n              ? header.form.placeholder\r\n              : '   '\r\n          \"\r\n          [items]=\"selectItems[header.key] ? selectItems[header.key] : []\"\r\n          (dropdownValue)=\"patchFormValue($event, header)\">\r\n        </ngpq-dropdown>\r\n      </div>\r\n    </ng-template>\r\n  </td>\r\n\r\n  <td class=\"actions-td form\">\r\n    <div (click)=\"save()\" class=\"check\" [class.disabled]=\"form.invalid\">\r\n      <ngpq-icon class=\"action-icon\" icon=\"check\"> </ngpq-icon>\r\n    </div>\r\n    <div (click)=\"close()\" class=\"close\">\r\n      <ngpq-icon class=\"action-icon\" icon=\"times\"> </ngpq-icon>\r\n    </div>\r\n  </td>\r\n</ng-container>\r\n","import {\r\n  Component,\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { TableHeader } from '../../../models/table-header.model';\r\nimport { ViewData } from '../../../models/custom-view.model';\r\n\r\n@Component({\r\n  selector: 'custom-view-component',\r\n  template: ` <ng-container #viewContainer></ng-container> `,\r\n})\r\nexport class CustomViewComponent implements OnInit, OnDestroy {\r\n  @Input() header: TableHeader;\r\n  @Input() data: any;\r\n\r\n  private component: ComponentRef<any>;\r\n\r\n  @ViewChild('viewContainer', { read: ViewContainerRef, static: true })\r\n  viewContainer: ViewContainerRef;\r\n\r\n  constructor(private cfr: ComponentFactoryResolver) {}\r\n\r\n  ngOnInit() {\r\n    const renderComponent = this.header.renderComponent;\r\n    const componentFactory = this.cfr.resolveComponentFactory(renderComponent);\r\n    this.component = this.viewContainer.createComponent(componentFactory);\r\n\r\n    Object.assign(this.component.instance, this.patchViewData());\r\n  }\r\n\r\n  patchViewData(): ViewData {\r\n    return {\r\n      value: this.data[this.header.key],\r\n      rowData: this.data,\r\n    };\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.component) {\r\n      this.component.destroy();\r\n    }\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'backlight',\r\n})\r\nexport class BacklightPipe implements PipeTransform {\r\n  transform(cellValue: string | number, backlightValue: string): string | number {\r\n    if (!backlightValue) {\r\n      return cellValue;\r\n    } else {\r\n      cellValue = cellValue.toString();\r\n      const char = cellValue.toLowerCase().indexOf(backlightValue);\r\n      if (char !== -1) {\r\n        const substitute = cellValue.slice(char, char + backlightValue.length);\r\n        const result = cellValue.replaceAll(\r\n          substitute,\r\n          `<span class=\"backlight\">${substitute}</span>`,\r\n        );\r\n        return result;\r\n      } else {\r\n        return cellValue;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewChildren,\r\n} from '@angular/core';\r\nimport { Action } from '../../models/action.model';\r\nimport { CellData } from '../../models/cell-click-event.model';\r\nimport { LoaderService } from '../../shared/services/loader.service';\r\nimport { RowData } from '../../models/row-click-event.model';\r\nimport { SelectDataService } from '../../shared/services/select-data.service';\r\nimport { TableHeader } from '../../models/table-header.model';\r\n\r\n@Component({\r\n  selector: '[ngpq-tbody]',\r\n  templateUrl: './tbody.component.html',\r\n  styleUrls: ['./tbody.component.scss'],\r\n})\r\nexport class TbodyComponent implements OnChanges, OnInit, AfterViewInit {\r\n  @ViewChildren('displayedDataList') displayedDataList: QueryList<HTMLTableCellElement>;\r\n\r\n  @Input() displayData: any[];\r\n  @Input() tableHeaders: TableHeader[];\r\n  @Input() detailsTemplate: TemplateRef<any>;\r\n  @Input() actions: Action[];\r\n  @Input() createAction: Action | null;\r\n  @Input() isCreate: boolean;\r\n  @Input() backlightValue: string;\r\n  @Input() selectAll = false;\r\n\r\n  @Output() cellClickEvent = new EventEmitter<CellData>();\r\n  @Output() rowClickEvent = new EventEmitter<RowData>();\r\n\r\n  @Output() selectedActionEvent = new EventEmitter<number[]>();\r\n  @Output() actionEvent = new EventEmitter<any>();\r\n\r\n  @Output() tableInit = new EventEmitter();\r\n\r\n  selectedRowIndex: number | null = null;\r\n  selectedHeaderIndex: number | null = null;\r\n  details: any;\r\n  selectedRows = {};\r\n  showForm: boolean;\r\n  showDetails: boolean;\r\n  isSelectAll = false;\r\n  formValue: any;\r\n\r\n  constructor(\r\n    private selectDataService: SelectDataService,\r\n    public loaderService: LoaderService,\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if ('isCreate' in changes && this.isCreate && this.createAction) {\r\n      this.getActionEvent(this.displayData[0], this.createAction, 0);\r\n      this.tableInit.emit();\r\n    }\r\n\r\n    if (\r\n      'displayData' in changes &&\r\n      this.displayData.length &&\r\n      changes.displayData.isFirstChange()\r\n    ) {\r\n      setTimeout(() => {\r\n        this.tableInit.emit();\r\n        this.loaderService.hide();\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.selectDataService.selectAllData$.subscribe((isSelectAll: boolean) => {\r\n      this.isSelectAll = isSelectAll;\r\n      this.displayData.forEach((data, i) => {\r\n        this.selectedRows[i] = this.isSelectAll;\r\n      });\r\n      this.emitSelected();\r\n      this.selectAll = !this.selectAll;\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.displayedDataList.changes.subscribe(() => {\r\n      this.tableInit.emit();\r\n      setTimeout(() => {\r\n        this.loaderService.hide();\r\n      }, 0);\r\n    });\r\n  }\r\n\r\n  getSelectedRows(): number[] {\r\n    const selectedRows: number[] = [];\r\n    for (const i in this.selectedRows) {\r\n      if (this.selectedRows[i]) {\r\n        selectedRows.push(+i as number);\r\n      }\r\n    }\r\n\r\n    return selectedRows;\r\n  }\r\n\r\n  emitSelected() {\r\n    this.selectedActionEvent.emit(this.getSelectedRows());\r\n  }\r\n\r\n  getRowData(row: any, index: number, event: MouseEvent) {\r\n    if (!this.detailsTemplate) {\r\n      this.rowClickEvent.emit(new RowData(row, index, event));\r\n    } else if (!this.showForm) {\r\n      this.viewDetails(row, index, event);\r\n    }\r\n  }\r\n\r\n  getCellData(row: any, header: TableHeader, index: number, event: MouseEvent) {\r\n    if (!this.detailsTemplate) {\r\n      this.stopEventPropogation(event);\r\n    }\r\n\r\n    this.cellClickEvent.emit(\r\n      new CellData(row, header.key, index, row[header.key], event),\r\n    );\r\n  }\r\n\r\n  viewDetails(row: any, index: number, event?: MouseEvent) {\r\n    if (event) {\r\n      this.stopEventPropogation(event);\r\n    }\r\n\r\n    if (this.detailsTemplate) {\r\n      if (this.selectedRowIndex === index) {\r\n        this.selectedRowIndex = null;\r\n        return;\r\n      }\r\n\r\n      this.details = row;\r\n      this.selectedRowIndex = index;\r\n      this.showDetails = true;\r\n    }\r\n  }\r\n\r\n  getActionEvent(row: any, action: Action, rowIndex: number, event?: MouseEvent) {\r\n    if (event) {\r\n      this.stopEventPropogation(event);\r\n    }\r\n\r\n    if (this.showDetails) {\r\n      this.showDetails = false;\r\n    }\r\n\r\n    if (action.isUpdate || this.isCreate) {\r\n      this.showForm = true;\r\n      this.selectedRowIndex = rowIndex;\r\n      this.formValue = row;\r\n    } else {\r\n      this.actionEvent.emit({ row, action });\r\n    }\r\n  }\r\n\r\n  save(value: any) {\r\n    const action = this.isCreate ? this.createAction : this.actions.find(v => v.isUpdate);\r\n    const row = { ...this.displayData[this.selectedRowIndex as number], ...value };\r\n\r\n    this.actionEvent.emit({ row, action, isCreate: this.isCreate });\r\n    this.selectedRowIndex = null;\r\n    this.showForm = false;\r\n  }\r\n\r\n  closeForm() {\r\n    if (this.isCreate) {\r\n      this.actionEvent.emit({ close: true });\r\n    }\r\n\r\n    this.selectedRowIndex = null;\r\n    this.showForm = false;\r\n  }\r\n\r\n  stopEventPropogation(event: MouseEvent) {\r\n    event.stopPropagation();\r\n  }\r\n}\r\n","<ng-template ngFor let-row [ngForOf]=\"displayData\" let-rowIndex=\"index\">\r\n  <tr\r\n    class=\"tbody-tr\"\r\n    *ngIf=\"!(showForm && selectedRowIndex === rowIndex)\"\r\n    #displayedDataList\r\n    (click)=\"getRowData(row, rowIndex, $event)\">\r\n    <td\r\n      *ngFor=\"let header of tableHeaders; let headerIndex = index\"\r\n      [class]=\"header.className\">\r\n      <!-- Content -->\r\n      <ng-container\r\n        *ngIf=\"\r\n          (!header.isStatic && selectedRowIndex !== rowIndex) ||\r\n          (showDetails && !header.isStatic)\r\n        \">\r\n        <div\r\n          class=\"td-content\"\r\n          *ngIf=\"row[header.key]; else noData\"\r\n          (click)=\"getCellData(row, header, rowIndex, $event)\">\r\n          <!-- Custom View Component -->\r\n          <ng-container *ngIf=\"header.renderComponent; else view\">\r\n            <custom-view-component [header]=\"header\" [data]=\"row\"></custom-view-component>\r\n          </ng-container>\r\n          <!-- Custom View Component -->\r\n\r\n          <ng-template #view>\r\n            <div\r\n              class=\"content\"\r\n              [class.template-content]=\"row[header.key]?.template\"\r\n              [innerHTML]=\"\r\n                row[header.key]?.template ?? row[header.key]\r\n                  | backlight: backlightValue\r\n                  | safe: 'html'\r\n              \"></div>\r\n          </ng-template>\r\n        </div>\r\n      </ng-container>\r\n      <!-- Content -->\r\n\r\n      <!-- Select Actions -->\r\n\r\n      <ng-container *ngIf=\"header.isStatic\">\r\n        <div class=\"select-actions-container\">\r\n          <input\r\n            type=\"checkbox\"\r\n            class=\"select-actions\"\r\n            [id]=\"'selectCb-' + rowIndex\"\r\n            [(ngModel)]=\"selectedRows[rowIndex]\"\r\n            (ngModelChange)=\"emitSelected()\"\r\n            (click)=\"stopEventPropogation($event)\" />\r\n        </div>\r\n      </ng-container>\r\n\r\n      <!-- Select Actions -->\r\n    </td>\r\n\r\n    <!-- Actions -->\r\n    <ng-container *ngIf=\"actions && actions.length\">\r\n      <td class=\"actions-td\">\r\n        <div class=\"actions-container\">\r\n          <div\r\n            *ngFor=\"let action of actions\"\r\n            [innerHTML]=\"action.template | safe: 'html'\"\r\n            [class]=\"action.className\"\r\n            (click)=\"getActionEvent(row, action, rowIndex, $event)\"></div>\r\n        </div>\r\n      </td>\r\n    </ng-container>\r\n    <!-- Actions -->\r\n  </tr>\r\n\r\n  <!-- Form -->\r\n  <tr\r\n    *ngIf=\"showForm && selectedRowIndex === rowIndex\"\r\n    ngpq-form\r\n    class=\"form-tr\"\r\n    [row]=\"formValue\"\r\n    [tableHeaders]=\"tableHeaders\"\r\n    (formResult)=\"save($event)\"\r\n    (cancel)=\"closeForm()\"></tr>\r\n  <!-- Form -->\r\n\r\n  <!-- Details -->\r\n  <tr class=\"details-tr\" *ngIf=\"showDetails && rowIndex === selectedRowIndex\">\r\n    <td\r\n      [attr.colspan]=\"\r\n        actions && actions.length ? tableHeaders.length + 1 : tableHeaders.length\r\n      \"\r\n      class=\"details-container\">\r\n      <ng-template\r\n        [ngTemplateOutlet]=\"detailsTemplate\"\r\n        [ngTemplateOutletContext]=\"{ row: row }\">\r\n      </ng-template>\r\n    </td>\r\n  </tr>\r\n  <!-- Details -->\r\n</ng-template>\r\n\r\n<!-- No Data Template -->\r\n<ng-template #noData> - </ng-template>\r\n<!-- No Data Template -->\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n} from '@angular/core';\r\nimport { FilterDetail, FilterOption } from '../../../models/filter.model';\r\nimport { FilterService } from '../../../shared/services/filter.service';\r\n// needs to change\r\n\r\n@Component({\r\n  selector: 'ngpq-category-filter',\r\n  templateUrl: './category-filter.component.html',\r\n  styleUrls: ['./../filter.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CategoryFilterComponent implements OnInit {\r\n  @Input() data: any[];\r\n  @Input() mainData: any[];\r\n  @Input() filterOptions: FilterOption;\r\n  @Input() filterDetails: FilterDetail[] = [];\r\n\r\n  filteredData: any[];\r\n  activeFilters: FilterDetail[] = [];\r\n  activeCategory: FilterDetail;\r\n\r\n  @Output() emitFilteredData = new EventEmitter();\r\n\r\n  constructor(private filterService: FilterService) {}\r\n\r\n  ngOnInit() {\r\n    if (this.filterService.activeFilter?.length) {\r\n      (this.filterService?.activeFilter as FilterDetail[]).forEach((af, i) => {\r\n        const { key, title, value } = af;\r\n        this.activeFilters[i] = new FilterDetail(key, title, value);\r\n      });\r\n    }\r\n\r\n    const index = this.activeFilters?.length ? this.activeFilters.length - 1 : 0;\r\n    const { key, title } = this.activeFilters?.length\r\n      ? this.activeFilters[index]\r\n      : this.filterDetails[index];\r\n    this.activeCategory = new FilterDetail(key, title);\r\n  }\r\n\r\n  isSame(value) {\r\n    return this.activeFilters.find(af =>\r\n      af.key === this.activeCategory.key\r\n        ? this.filterOptions.pure\r\n          ? af.value.toLowerCase().indexOf(value.toLowerCase()) !== 1\r\n          : af.value.toLowerCase() === value.toLowerCase()\r\n        : null,\r\n    );\r\n  }\r\n\r\n  getFilterDetails(category) {\r\n    this.activeCategory = { ...category };\r\n  }\r\n\r\n  setValue(el: HTMLInputElement) {\r\n    if (el.value.trim().length && !this.isSame(el.value.toString())) {\r\n      this.filterData(el.value.trim());\r\n    }\r\n\r\n    el.value = '';\r\n  }\r\n\r\n  filterData(value: string) {\r\n    this.filterDetails.forEach(detail => {\r\n      const { key, title } = this.activeCategory;\r\n\r\n      if (detail.key === key && value.length !== 0) {\r\n        this.filteredData =\r\n          !this.data.length || this.activeFilters.filter(v => v.key === key).length\r\n            ? this.mainData\r\n            : this.data;\r\n\r\n        this.activeFilters = [\r\n          ...this.activeFilters.filter(v => v.key !== key),\r\n          new FilterDetail(key, title, value),\r\n        ];\r\n\r\n        this.data = this.filterService.doCategoryFilter(\r\n          this.filteredData,\r\n          key,\r\n          value,\r\n          this.filterOptions.pure,\r\n        );\r\n\r\n        if (\r\n          this.activeFilters.length > 1 &&\r\n          this.filteredData.length === this.mainData.length\r\n        ) {\r\n          this.activeFilters\r\n            .filter(filter => filter.key !== key)\r\n            .forEach(f => {\r\n              this.data = this.filterService.doCategoryFilter(\r\n                this.data,\r\n                f.key,\r\n                f.value,\r\n                this.filterOptions.pure,\r\n              );\r\n            });\r\n        }\r\n\r\n        this.emit(this.data);\r\n      }\r\n    });\r\n  }\r\n\r\n  resetFilter(activeFilter?: string) {\r\n    this.activeFilters = this.activeFilters.filter(af => af.key !== activeFilter);\r\n    if (activeFilter?.length && this.activeFilters?.length) {\r\n      const lastFilter = this.activeFilters[this.activeFilters.length - 1];\r\n      this.activeCategory = new FilterDetail(lastFilter.key, lastFilter.title);\r\n      this.filterData(lastFilter.value);\r\n    } else {\r\n      this.reset();\r\n    }\r\n  }\r\n\r\n  reset() {\r\n    this.activeFilters = [];\r\n    this.data = [];\r\n    this.emit(this.mainData);\r\n  }\r\n\r\n  emit(data: any[]) {\r\n    this.filterService.activeFilter = this.activeFilters;\r\n    this.emitFilteredData.emit(data);\r\n  }\r\n}\r\n","<div class=\"d-flex\">\r\n  <div class=\"d-flex\">\r\n    <div class=\"dropdown-container\">\r\n      <ngpq-dropdown\r\n        [defaultItem]=\"activeCategory.title\"\r\n        [items]=\"filterDetails\"\r\n        displayName=\"title\"\r\n        (dropdownValue)=\"getFilterDetails($event)\">\r\n      </ngpq-dropdown>\r\n    </div>\r\n\r\n    <div class=\"filter-container\" *ngIf=\"filterDetails\">\r\n      <input\r\n        #filterEl\r\n        [placeholder]=\"activeCategory && activeCategory.title ? activeCategory.title : ''\"\r\n        (keyup.enter)=\"setValue(filterEl)\"\r\n        type=\"text\"\r\n        class=\"form-control rounded-right\" />\r\n\r\n      <div class=\"search\">\r\n        <ngpq-icon icon=\"search\"></ngpq-icon>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <div *ngIf=\"activeFilters.length\" class=\"active-filter-options-container\">\r\n    <div *ngFor=\"let filter of activeFilters; let i = index\">\r\n      <div class=\"active-filters\">\r\n        <div class=\"filter-option\">{{ filter.title }}</div>\r\n        <div class=\"filter-value\">{{ filter.value }}</div>\r\n      </div>\r\n      <div (click)=\"resetFilter(filter.key)\" class=\"chips\">&times;</div>\r\n    </div>\r\n\r\n    <div *ngIf=\"activeFilters.length > 1\">\r\n      <div class=\"reset\">Reset Filters</div>\r\n      <div class=\"chips\" (click)=\"resetFilter()\">&times;</div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { FilterDetail, FilterOption } from '../../../models/filter.model';\r\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { FilterService } from '../../../shared/services/filter.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n// needs to change\r\n@Component({\r\n  selector: 'ngpq-usual-filter',\r\n  templateUrl: './usual-filter.component.html',\r\n  styleUrls: ['./../filter.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UsualFilterComponent implements OnInit, OnDestroy {\r\n  @ViewChild('filterEl') filterEl: ElementRef<HTMLInputElement>;\r\n\r\n  @Input() data: any[];\r\n  @Input() filterOptions: FilterOption;\r\n  @Input() filterDetails: FilterDetail[] = [];\r\n  activeFilterValue: string;\r\n\r\n  private search$: Subject<string> = new Subject();\r\n  private filteredData: any[] = [];\r\n\r\n  @Output() activeFilterEmit = new EventEmitter();\r\n  @Output() emitFilteredData = new EventEmitter();\r\n\r\n  constructor(private cdr: ChangeDetectorRef, private filterService: FilterService) {}\r\n\r\n  ngOnInit() {\r\n    if (this.filterService.activeFilter?.length) {\r\n      this.activeFilterValue = this.filterService.activeFilter as string;\r\n    }\r\n\r\n    const ms =\r\n      this.filterOptions.typeaheadTime && this.filterOptions.typeaheadTime > 2000\r\n        ? this.filterOptions.typeaheadTime\r\n        : 2000;\r\n    this.search$\r\n      .pipe(distinctUntilChanged(), debounceTime(ms))\r\n      .subscribe((value: string) => {\r\n        if (value.length !== 0) {\r\n          this.filterData(value.toString().trim());\r\n        }\r\n      });\r\n  }\r\n\r\n  next() {\r\n    this.search$.next(this.filterEl.nativeElement.value);\r\n  }\r\n\r\n  filterData(value: string) {\r\n    this.filterService.activeFilter = value;\r\n    this.filteredData = this.filterService.doUsualFilter(\r\n      this.data,\r\n      this.filterDetails,\r\n      this.filterOptions?.pure,\r\n    );\r\n\r\n    this.activeFilterValue = value;\r\n    if (this.filterOptions.backlight) {\r\n      this.emit(this.filteredData, value);\r\n    } else {\r\n      this.emit(this.filteredData);\r\n    }\r\n\r\n    this.filterEl.nativeElement.value = '';\r\n  }\r\n\r\n  reset() {\r\n    this.activeFilterValue = this.filterService.activeFilter = '';\r\n    this.filteredData = [];\r\n    this.emit();\r\n  }\r\n\r\n  emit(data: any[] = this.data, value?: string) {\r\n    if (this.filterOptions.backlight) {\r\n      this.emitFilteredData.emit({ data, value });\r\n    } else {\r\n      this.emitFilteredData.emit(data);\r\n    }\r\n\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.search$.complete();\r\n  }\r\n}\r\n","<div class=\"d-flex\">\r\n  <div class=\"filter-container\" *ngIf=\"filterDetails\">\r\n    <input \r\n        #filterEl\r\n        (keyup)=\"next();\"\r\n        type=\"text\" \r\n        class=\"form-control rounded-right\">\r\n      <div class=\"search\">\r\n          <ngpq-icon icon=\"search\"></ngpq-icon>\r\n      </div>\r\n  </div>\r\n\r\n  <div *ngIf=\"activeFilterValue\" class=\"active-filter-options-container\">\r\n    <div>\r\n      <div class=\"active-filters\">\r\n        <div class=\"usual filter-option\">\r\n          <div class=\"search\">\r\n            <ngpq-icon icon=\"search\"></ngpq-icon>\r\n          </div>\r\n        </div>\r\n        <div class=\"filter-value\">{{activeFilterValue}}</div>\r\n      </div>\r\n      <div class=\"chips\" (click)=\"reset();\">&times;</div>\r\n    </div>\r\n  </div>\r\n</div>","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ComponentFactory,\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  SimpleChanges,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { FilterData, FilterDetail, FilterOption } from '../../models/filter.model';\r\nimport { CategoryFilterComponent } from './category-filter/category-filter.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { UsualFilterComponent } from './usual-filter/usual-filter.component';\r\n\r\n// needs to change\r\n@Component({\r\n  selector: 'ngpq-filter',\r\n  templateUrl: './filter.component.html',\r\n  styleUrls: ['filter.component.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FilterComponent implements OnInit, OnChanges, OnDestroy {\r\n  @ViewChild('filterContainer', { read: ViewContainerRef, static: true })\r\n  filterContainer: ViewContainerRef;\r\n\r\n  @Input() data: any[];\r\n  @Input() mainData: any[];\r\n  @Input() filterDetails: FilterDetail[];\r\n\r\n  @Input() filterOptions: FilterOption = new FilterOption(true, false, 2000, false);\r\n\r\n  componentRef: ComponentRef<CategoryFilterComponent | UsualFilterComponent>;\r\n  instanceSub: Subscription;\r\n\r\n  @Output() emitFilteredData = new EventEmitter();\r\n\r\n  constructor(private cfr: ComponentFactoryResolver) {}\r\n\r\n  ngOnInit() {\r\n    this.create();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (\r\n      'mainData' in changes &&\r\n      this.mainData.length &&\r\n      !changes.mainData.isFirstChange()\r\n    ) {\r\n      this.componentRef.instance.data = this.data;\r\n      if (this.filterOptions.byCategory) {\r\n        (this.componentRef as ComponentRef<CategoryFilterComponent>).instance.mainData =\r\n          this.mainData;\r\n      }\r\n    }\r\n\r\n    if ('filterDetails' in changes && !changes.filterDetails.isFirstChange()) {\r\n      this.componentRef.instance.filterDetails = this.filterDetails;\r\n    }\r\n  }\r\n\r\n  create() {\r\n    this.filterContainer.clear();\r\n    let componentFactory: ComponentFactory<\r\n      CategoryFilterComponent | UsualFilterComponent\r\n    >;\r\n\r\n    if (this.filterOptions.byCategory) {\r\n      componentFactory = this.cfr.resolveComponentFactory(CategoryFilterComponent);\r\n    } else {\r\n      componentFactory = this.cfr.resolveComponentFactory(UsualFilterComponent);\r\n    }\r\n\r\n    this.componentRef = this.filterContainer.createComponent(componentFactory);\r\n    this.createComponentInstance(this.componentRef.instance);\r\n\r\n    this.instanceSub = this.componentRef.instance.emitFilteredData.subscribe(\r\n      (data: any[] | FilterData) => this.emitFilteredData.emit(data),\r\n    );\r\n  }\r\n\r\n  createComponentInstance(instance: CategoryFilterComponent | UsualFilterComponent) {\r\n    instance.data = this.mainData;\r\n    instance.filterDetails = this.filterDetails;\r\n    instance.filterOptions = this.filterOptions;\r\n\r\n    if (this.filterOptions.byCategory) {\r\n      (instance as CategoryFilterComponent).mainData = this.mainData;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.instanceSub) {\r\n      this.instanceSub.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","<div class=\"d-flex\">\r\n    <ng-container #filterContainer></ng-container>\r\n</div>","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n} from '@angular/core';\r\nimport { FilterData, FilterDetail, FilterOption } from './models/filter.model';\r\nimport { cloneDeep, createModes } from './helpers/table.util';\r\nimport { createActions, modifiedTableHeaders } from './helpers/initialize';\r\nimport { doSort, isSame, isTemplate } from './helpers/sort';\r\nimport { Action } from './models/action.model';\r\nimport { ActionEvent } from './models/action-event.model';\r\nimport { CellData } from './models/cell-click-event.model';\r\nimport { FilterService } from './shared/services/filter.service';\r\nimport { LoaderService } from './shared/services/loader.service';\r\nimport { RowData } from './models/row-click-event.model';\r\nimport { SelectAction } from './models/select-action.model';\r\nimport { SelectActionEvent } from './models/select-action-event.model';\r\nimport { SelectDataService } from './shared/services/select-data.service';\r\nimport { Settings } from './models/settings.model';\r\nimport { SortEvent } from './models/sort.model';\r\nimport { TableHeader } from './models/table-header.model';\r\n\r\n@Component({\r\n  selector: 'ngpq-table',\r\n  templateUrl: './ngpq-table.component.html',\r\n  styleUrls: ['ngpq-table.component.scss'],\r\n})\r\nexport class NgPqTableComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() data: any[];\r\n  @Input() settings: { [key: string]: Settings };\r\n\r\n  @Input('pageSizeOptions') modes: number[];\r\n  @Input() directionLinks: boolean;\r\n\r\n  @Input() filterOptions: FilterOption;\r\n\r\n  @Input() actions: Action[];\r\n\r\n  @Input() detailsTemplate: TemplateRef<HTMLTemplateElement>;\r\n\r\n  warning: HTMLElement | string = 'Data is empty';\r\n\r\n  @Input() set noDataWarning(warning: HTMLElement | string) {\r\n    if (warning instanceof HTMLElement) {\r\n      const node = document.createElement('div');\r\n      node.appendChild(warning);\r\n      this.warning = node.innerHTML;\r\n    } else {\r\n      this.warning = warning;\r\n    }\r\n  }\r\n\r\n  @Input() disableResize: boolean;\r\n  @Input() disablePaginate: boolean;\r\n  @Input() disableSort: boolean;\r\n  @Input() paginatorSize: number = 6;\r\n\r\n  @Input() selectActions: SelectAction[];\r\n\r\n  @Input('scrollToTop') isScrollToTop: boolean;\r\n\r\n  @Output() actionEvent = new EventEmitter<ActionEvent>();\r\n\r\n  @Output() selectedActionEvent = new EventEmitter<SelectActionEvent>();\r\n  @Output() detectSelected = new EventEmitter<any[]>();\r\n\r\n  @Output() rowClick = new EventEmitter<RowData>();\r\n  @Output() cellClick = new EventEmitter<CellData>();\r\n\r\n  @Output() tableInit = new EventEmitter<undefined>();\r\n\r\n  @Output() mouseOver = new EventEmitter<MouseEvent>();\r\n\r\n  mainData: any[];\r\n  private filteredData: any[];\r\n  displayData: any[] = [];\r\n  tableHeaders: TableHeader[];\r\n\r\n  private _modes: number[];\r\n  pageNumber = 1;\r\n  pageSize: number;\r\n\r\n  createAction: Action | null;\r\n  isCreate: boolean;\r\n\r\n  isSelectAll: boolean;\r\n  private selectedValues: number[];\r\n\r\n  filterDetails: FilterDetail[] = [];\r\n  backlightValue: string;\r\n\r\n  activeSort: SortEvent;\r\n\r\n  constructor(\r\n    public loaderService: LoaderService,\r\n    private selectDataService: SelectDataService,\r\n    private filterService: FilterService,\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    if (!this.settings) {\r\n      throw new Error(`'settings' property is required`);\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if ('data' in changes && this.data?.length) {\r\n      this.checkDataChanges();\r\n    }\r\n\r\n    if ('actions' in changes) {\r\n      this.initActions();\r\n    }\r\n\r\n    if ('settings' in changes && this.settings) {\r\n      this.createTableHeaders();\r\n      this.createfilterDetails();\r\n    }\r\n\r\n    if ('selectActions' in changes) {\r\n      this.initSelectTableHeader();\r\n    }\r\n  }\r\n\r\n  checkDataChanges() {\r\n    if (!this.disablePaginate) {\r\n      if (this.modes?.length) {\r\n        this.modes.sort((a, b) => a - b);\r\n      } else if (this.data.length.toString().length > 1) {\r\n        this.modes = createModes(this.data.length);\r\n      } else {\r\n        this.disablePaginate = true;\r\n        this.modes = [this.data.length];\r\n      }\r\n    } else {\r\n      this.modes = [this.data.length];\r\n    }\r\n\r\n    if (this.modes.length !== 1) {\r\n      this._modes = [...this.modes] = [\r\n        ...this.modes.filter(mode => mode < this.data.length),\r\n        this.data.length,\r\n      ];\r\n    }\r\n\r\n    this.pageSize = this.modes[0];\r\n    this.createTableData();\r\n  }\r\n\r\n  createTableData() {\r\n    if (Array.isArray(this.data)) {\r\n      this.mainData = cloneDeep(this.data);\r\n\r\n      if (this.filterService.activeFilter?.length) {\r\n        this.data = this.filterService.fiterData(\r\n          this.data,\r\n          this.filterOptions?.pure,\r\n          this.filterDetails,\r\n        );\r\n      }\r\n\r\n      if (this.activeSort?.direction?.length) {\r\n        this.sortData();\r\n      }\r\n\r\n      this.filteredData = cloneDeep(this.data);\r\n      this.updateDisplayData();\r\n    } else {\r\n      throw new Error('Invalid data for ngpq-table');\r\n    }\r\n  }\r\n\r\n  initActions() {\r\n    const { actions, createAction } = createActions(this.actions);\r\n    this.actions = actions;\r\n    this.createAction = createAction;\r\n  }\r\n\r\n  initSelectTableHeader() {\r\n    this.tableHeaders = modifiedTableHeaders(this.selectActions, this.tableHeaders);\r\n  }\r\n\r\n  setDisplayData() {\r\n    if (this.pageSize >= this.data?.length) {\r\n      this.displayData = this.data;\r\n    } else {\r\n      this.displayData = this.data.slice(\r\n        (this.pageNumber - 1) * this.pageSize,\r\n        (this.pageNumber - 1) * this.pageSize + this.pageSize,\r\n      );\r\n    }\r\n  }\r\n\r\n  updateDisplayData(pageNumber = 1) {\r\n    this.pageNumber = pageNumber;\r\n    this.setDisplayData();\r\n  }\r\n\r\n  emitCellData(event: CellData) {\r\n    this.cellClick.emit(event);\r\n  }\r\n\r\n  emitRowData(event: RowData) {\r\n    this.rowClick.emit(event);\r\n  }\r\n\r\n  emitTableInit() {\r\n    this.tableInit.emit();\r\n  }\r\n\r\n  sortData() {\r\n    const { column, direction } = { ...this.activeSort };\r\n\r\n    if (direction === '' || column === '') {\r\n      this.loaderService.show();\r\n      this.data = cloneDeep(this.filteredData);\r\n    } else {\r\n      doSort(this.data, { column, direction });\r\n    }\r\n\r\n    if (\r\n      (isTemplate(this.data[0][column]) ||\r\n        this.filteredData[0][column] !== this.data[0][column]) &&\r\n      isSame(column, this.data)\r\n    ) {\r\n      this.loaderService.show();\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.setDisplayData();\r\n    }, 0);\r\n  }\r\n\r\n  setSort({ column, direction }: SortEvent) {\r\n    this.activeSort = new SortEvent(column, direction);\r\n    if (this.displayData.length > 1) {\r\n      this.sortData();\r\n    }\r\n  }\r\n\r\n  getCreateActionEvent() {\r\n    if (this.isCreate) {\r\n      return;\r\n    }\r\n\r\n    const row: any = {};\r\n    this.tableHeaders\r\n      .filter(t => !t.isStatic)\r\n      .map(t => t.key)\r\n      .forEach(v => {\r\n        row[v] = '';\r\n      });\r\n\r\n    this.displayData = [{ ...row }, ...this.displayData];\r\n    this.isCreate = true;\r\n  }\r\n\r\n  getActionEvent({ row, action, isCreate, close }) {\r\n    if (!close) {\r\n      if (isCreate) {\r\n        this.displayData = this.displayData.filter((v, i) => i !== 0);\r\n        this.isCreate = false;\r\n      }\r\n      this.actionEvent.emit(new ActionEvent(action.key, row));\r\n    } else {\r\n      this.isCreate = false;\r\n      this.displayData = this.displayData.filter((v, i) => i !== 0);\r\n    }\r\n  }\r\n\r\n  getSelectedAction(selectedRows: number[]) {\r\n    this.selectedValues = selectedRows;\r\n    this.isSelectAll = this.displayData.length === selectedRows.length;\r\n    if (this.selectedValues?.length) {\r\n      this.detectSelected.emit(this.createSelectedRows());\r\n    }\r\n  }\r\n\r\n  emitSelectedActions(method: SelectAction) {\r\n    if (this.createSelectedRows().length) {\r\n      this.selectedActionEvent.emit(\r\n        new SelectActionEvent(method, this.createSelectedRows()),\r\n      );\r\n    }\r\n\r\n    this.selectDataService.selectAllData$.next(false);\r\n  }\r\n\r\n  createSelectedRows(): any[] {\r\n    const selectedRows: any[] = [];\r\n    this.selectedValues.forEach(value => {\r\n      if (this.displayData[value]) {\r\n        selectedRows.push(this.displayData[value]);\r\n      }\r\n    });\r\n\r\n    return selectedRows;\r\n  }\r\n\r\n  pageChange(pageNumber: number) {\r\n    if (this.displayData.length > 24) {\r\n      this.loaderService.show();\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.updateDisplayData(pageNumber);\r\n    }, 0);\r\n  }\r\n\r\n  createfilterDetails() {\r\n    this.filterDetails = [];\r\n    this.tableHeaders.forEach((header, index) => {\r\n      if (!header.disableFilter) {\r\n        this.filterDetails[index] = new FilterDetail(header.key, header.title);\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * should be a data type or a data type with an active filter `value`\r\n   * @param data\r\n   */\r\n  getFilteredData(data: any[] | FilterData) {\r\n    if (!this.filterOptions?.byCategory && this.filterOptions?.backlight) {\r\n      this.data = (data as FilterData).data;\r\n      this.backlightValue = (data as any).value;\r\n    } else {\r\n      this.data = data as any[];\r\n    }\r\n\r\n    if (this.data.length && this.filteredData.length !== this.data.length) {\r\n      this.loaderService.show();\r\n    }\r\n\r\n    if (!this.disablePaginate) {\r\n      this.modes = [\r\n        ...this._modes.filter(mode => mode < this.data.length),\r\n        this.data.length,\r\n      ];\r\n    }\r\n\r\n    this.pageSize = this.modes[0];\r\n    this.filteredData = cloneDeep(this.data);\r\n\r\n    if (this.activeSort?.direction?.length && this.data?.length > 1) {\r\n      this.sortData();\r\n    }\r\n\r\n    this.updateDisplayData();\r\n  }\r\n\r\n  createTableHeaders() {\r\n    this.tableHeaders = Object.keys(this.settings).map((key: string) => {\r\n      if (\r\n        this.settings[key].renderComponent &&\r\n        !(this.settings[key].renderComponent instanceof Function)\r\n      ) {\r\n        console.error(`${this.settings[key].renderComponent} is not a \"Class\"`);\r\n        this.settings[key].renderComponent = null;\r\n      }\r\n\r\n      const {\r\n        title,\r\n        className,\r\n        disableFilter,\r\n        disableSort,\r\n        width,\r\n        form,\r\n        renderComponent,\r\n      } = this.settings[key];\r\n\r\n      return {\r\n        key,\r\n        title,\r\n        className,\r\n        disableFilter,\r\n        disableSort,\r\n        width,\r\n        form,\r\n        renderComponent,\r\n      };\r\n    });\r\n  }\r\n\r\n  setMode(mode: number) {\r\n    if (this.pageSize !== mode) {\r\n      this.loaderService.show();\r\n    }\r\n\r\n    this.pageSize = mode;\r\n    setTimeout(() => {\r\n      this.updateDisplayData();\r\n    }, 0);\r\n  }\r\n\r\n  scrollToTop(tableContainer: HTMLDivElement) {\r\n    if (this.isScrollToTop) {\r\n      tableContainer.scrollIntoView();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.loaderService.loadData$.complete();\r\n    this.selectDataService.selectAllData$.complete();\r\n    this.filterService.activeFilter = '';\r\n  }\r\n}\r\n","<div\r\n  class=\"ngpq-container\"\r\n  [class.empty-table]=\"!displayData.length || !displayData.length\"\r\n  #tableContainer>\r\n  <!-- Header -->\r\n  <div\r\n    class=\"table-header-container\"\r\n    [class.ngpq-hidden]=\"!(mainData && mainData.length)\"\r\n    *ngIf=\"filterOptions || createAction\">\r\n    <!-- Filteraction -->\r\n    <div *ngIf=\"filterOptions && mainData?.length\" class=\"filteration-container\">\r\n      <ngpq-filter\r\n        [mainData]=\"mainData\"\r\n        [data]=\"data\"\r\n        [filterDetails]=\"filterDetails\"\r\n        [filterOptions]=\"filterOptions\"\r\n        (emitFilteredData)=\"getFilteredData($event)\">\r\n      </ngpq-filter>\r\n    </div>\r\n    <!-- Filteraction -->\r\n\r\n    <!-- Top Action -->\r\n    <div\r\n      *ngIf=\"createAction\"\r\n      class=\"create-action\"\r\n      [class.text-right]=\"!filterOptions\"\r\n      [class.disabled-create]=\"isCreate\">\r\n      <div\r\n        [innerHTML]=\"createAction.template | safe: 'html'\"\r\n        [class]=\"createAction.className\"\r\n        (click)=\"getCreateActionEvent()\"></div>\r\n    </div>\r\n    <!-- Top Action -->\r\n  </div>\r\n\r\n  <!-- Header -->\r\n  <div\r\n    *ngIf=\"tableHeaders?.length\"\r\n    class=\"table-container\"\r\n    [class.load-data]=\"loaderService.loadData$ | async\">\r\n    <table tableResize [disabled]=\"disableResize\" (mouseover)=\"mouseOver.emit($event)\">\r\n      <!-- Thead -->\r\n      <thead\r\n        ngpq-thead\r\n        [disableSort]=\"disableSort\"\r\n        [tableHeaders]=\"tableHeaders\"\r\n        [isSelectAll]=\"isSelectAll\"\r\n        [actions]=\"actions\"\r\n        [selectActions]=\"selectActions\"\r\n        (sort)=\"setSort($event)\"\r\n        (selectedAction)=\"emitSelectedActions($event)\"></thead>\r\n      <!-- Thead -->\r\n\r\n      <!-- Loader -->\r\n      <div\r\n        *ngIf=\"(loaderService.loadData$ | async) && data && data?.length\"\r\n        class=\"loader-container text-center\">\r\n        <div class=\"loader\"></div>\r\n        <div class=\"loader\"></div>\r\n        <div class=\"loader\"></div>\r\n      </div>\r\n      <!-- Loader -->\r\n\r\n      <div class=\"backdrop\"></div>\r\n\r\n      <!-- Tbody -->\r\n      <ng-container *ngIf=\"data && data?.length; else emptyData\">\r\n        <tbody\r\n          ngpq-tbody\r\n          [displayData]=\"displayData\"\r\n          [detailsTemplate]=\"detailsTemplate\"\r\n          [tableHeaders]=\"tableHeaders\"\r\n          [backlightValue]=\"backlightValue\"\r\n          [isCreate]=\"isCreate\"\r\n          [createAction]=\"createAction\"\r\n          [actions]=\"actions\"\r\n          (actionEvent)=\"getActionEvent($event)\"\r\n          (tableInit)=\"emitTableInit()\"\r\n          (cellClickEvent)=\"emitCellData($event)\"\r\n          (rowClickEvent)=\"emitRowData($event)\"\r\n          (selectedActionEvent)=\"getSelectedAction($event)\"></tbody>\r\n      </ng-container>\r\n      <!-- Tbody -->\r\n    </table>\r\n\r\n    <!-- Pagination -->\r\n\r\n    <div *ngIf=\"data?.length && !disablePaginate\" class=\"d-flex table-footer\">\r\n      <div class=\"items-count\">\r\n        Showing {{ pageSize !== data.length ? displayData.length : pageSize }} of\r\n        {{ data.length }} Entries\r\n      </div>\r\n      <div class=\"select-mode-container dropdown-container\" *ngIf=\"modes.length > 1\">\r\n        <ngpq-dropdown\r\n          [defaultItem]=\"pageSize\"\r\n          [items]=\"modes\"\r\n          (dropdownValue)=\"scrollToTop(tableContainer); setMode($event)\">\r\n        </ngpq-dropdown>\r\n      </div>\r\n\r\n      <div *ngIf=\"data.length > pageSize\" class=\"paginator\">\r\n        <ngpq-pagination\r\n          [pageSize]=\"pageSize\"\r\n          [maxSize]=\"paginatorSize\"\r\n          [page]=\"pageNumber\"\r\n          [directionLinks]=\"directionLinks\"\r\n          [totalElements]=\"data.length\"\r\n          (pageChange)=\"scrollToTop(tableContainer); pageChange($event)\">\r\n        </ngpq-pagination>\r\n      </div>\r\n    </div>\r\n\r\n    <!-- Pagination -->\r\n\r\n    <!-- Warning -->\r\n    <ng-template #emptyData>\r\n      <div class=\"empty-data-container\" [innerHTML]=\"warning | safe: 'html'\"></div>\r\n    </ng-template>\r\n    <!-- Warning -->\r\n  </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { DropdownComponent } from './dropdown/dropdown.component';\r\nimport { IconComponent } from './icon/icon.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { SafePipe } from '../pipes/safe/safe.pipe';\r\n\r\n@NgModule({\r\n  declarations: [DropdownComponent, IconComponent, SafePipe],\r\n  imports: [CommonModule],\r\n  exports: [DropdownComponent, IconComponent, SafePipe, CommonModule],\r\n})\r\nexport class SharedModule {}\r\n","import { CategoryFilterComponent } from \"./category-filter/category-filter.component\";\r\nimport { FilterComponent } from \"./filter.component\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { SharedModule } from \"../../shared/shared.module\";\r\nimport { UsualFilterComponent } from \"./usual-filter/usual-filter.component\";\r\n\r\n@NgModule({\r\n    imports: [\r\n        SharedModule\r\n    ],\r\n    declarations: [\r\n        FilterComponent,\r\n        UsualFilterComponent,\r\n        CategoryFilterComponent\r\n    ],\r\n    exports: [\r\n        FilterComponent,\r\n        UsualFilterComponent,\r\n        CategoryFilterComponent\r\n    ],\r\n    entryComponents: [\r\n        UsualFilterComponent,\r\n        CategoryFilterComponent\r\n    ]\r\n})\r\nexport class FilterModule {\r\n\r\n}","import { IconModel } from '../../lib/models/icon.model';\r\n\r\nconst ICONS: IconModel = {\r\n  check: {\r\n    viewBox: '0 0 512 512',\r\n    d: 'M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z',\r\n  },\r\n  arrow: {\r\n    viewBox: '0 -90 320 512',\r\n    d: 'M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z',\r\n  },\r\n  times: {\r\n    viewBox: '0 0 512 512',\r\n    d: 'M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z',\r\n  },\r\n  search: {\r\n    viewBox: '0 0 512 512',\r\n    d: 'M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z',\r\n  },\r\n};\r\n\r\nexport default ICONS;\r\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BacklightPipe } from '../../pipes/backlight/backlight.pipe';\r\nimport { CustomViewComponent } from './custom-view/custom-view.component';\r\nimport { FormComponent } from './form/form.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { TbodyComponent } from './tbody.component';\r\n\r\n@NgModule({\r\n  declarations: [TbodyComponent, FormComponent, CustomViewComponent, BacklightPipe],\r\n  imports: [SharedModule, FormsModule, ReactiveFormsModule],\r\n  exports: [TbodyComponent],\r\n})\r\nexport class TbodyModule {}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HeaderCellClassPipe } from './table-header-cell-class.pipe';\r\nimport { NgModule } from '@angular/core';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { TheadComponent } from './thead.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    TheadComponent,\r\n    HeaderCellClassPipe\r\n  ],\r\n  imports: [\r\n    SharedModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    TheadComponent\r\n  ]\r\n})\r\nexport class TheadModule { }\r\n","import { FilterComponent } from './components/filter/filter.component';\r\nimport { FilterModule } from './components/filter/filter.module';\r\nimport { FilterService } from './shared/services/filter.service';\r\nimport ICONS from '../assets/icons/icons';\r\nimport { LoaderService } from './shared/services/loader.service';\r\nimport { NgModule } from '@angular/core';\r\nimport { NgPqPaginationModule } from 'ngpq-pagination';\r\nimport { NgPqTableComponent } from './ngpq-table.component';\r\nimport { ResizeModule } from 'ngpq-table-resize';\r\nimport { SelectDataService } from './shared/services/select-data.service';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { TbodyModule } from './components/tbody/tbody.module';\r\nimport { TheadModule } from './components/thead/thead.module';\r\n\r\n@NgModule({\r\n  declarations: [NgPqTableComponent],\r\n  imports: [\r\n    SharedModule,\r\n    TheadModule,\r\n    TbodyModule,\r\n    FilterModule,\r\n    NgPqPaginationModule,\r\n    ResizeModule,\r\n  ],\r\n  exports: [NgPqTableComponent],\r\n  entryComponents: [FilterComponent],\r\n  providers: [\r\n    { provide: 'Icons', useValue: ICONS },\r\n    SelectDataService,\r\n    LoaderService,\r\n    FilterService,\r\n  ],\r\n})\r\nexport class NgPqTableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.IconComponent","i3.SafePipe","i1.SelectDataService","i2.DropdownComponent","i3.IconComponent","i5","i6.SafePipe","i7.HeaderCellClassPipe","i5.SafePipe","i2.LoaderService","i3","i4","i5.FormComponent","i6.CustomViewComponent","i7.SafePipe","i8.BacklightPipe","i1.FilterService","i1.LoaderService","i2.SelectDataService","i3.FilterService","i4.DropdownComponent","i6.TheadComponent","i7.TbodyComponent","i8.FilterComponent","i11.SafePipe"],"mappings":"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"}