{"version":3,"file":"acpaas-ui-ngx-table.mjs","sources":["../../src/lib/directives/table-bar-search/table-bar-search.directive.ts","../../src/lib/directives/table-bar-item/table-bar-item.directive.ts","../../src/lib/services/table-helper.service.ts","../../src/lib/components/column-selector/column-selector.component.html","../../src/lib/components/column-selector/column-selector.component.ts","../../src/lib/components/table.messages.ts","../../src/lib/components/table-cell/table-cell.helpers.ts","../../src/lib/components/table-cell/table-cell.component.html","../../src/lib/components/table-cell/table-cell.component.ts","../../src/lib/components/table-header/table-header.component.html","../../src/lib/components/table-header/table-header.component.ts","../../src/lib/components/table/table.component.html","../../src/lib/components/table/table.component.ts","../../src/lib/components/table-bar/table-bar.component.html","../../src/lib/components/table-bar/table-bar.component.ts","../../src/lib/table.module.ts","../../src/lib/classes/table.class.ts","../../src/acpaas-ui-ngx-table.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[auiTableBarSearch]',\n})\nexport class TableBarSearchDirective {\n  @HostBinding('class.a-table-bar__search') setClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n  selector: '[auiTableBarItem]',\n})\nexport class TableBarItemDirective {\n  @HostBinding('class.a-table-bar__item') setClass = true;\n}\n","import { Injectable } from '@angular/core';\nimport { TableColumn } from '../types/table.types';\n\n@Injectable()\nexport class TableHelperService {\n  public getLabel(key: (TableColumn | string)): string {\n    return key.hasOwnProperty('label') ? (key as TableColumn).label : key as string;\n  }\n\n  public getValue(key: (TableColumn | string)): string {\n    return key.hasOwnProperty('value') ? (key as TableColumn).value : key as string;\n  }\n\n  public getClass(key: (TableColumn | string)): string {\n    return key.hasOwnProperty('classList') ? (key as TableColumn).classList.join(' ') : key as string;\n  }\n\n  public formatValue(item, key, index): any {\n    const value = item[this.getValue(key)];\n    return key.format ? key.format(value, key, item, index) : value;\n  }\n\n  public getColumnClass(item, key, index): any {\n    const value = item[this.getValue(key)];\n    return key.columnClass ? key.columnClass(value, key, item) : '';\n  }\n}\n","<ul class=\"a-list a-list--lined a-table-column-selector\">\n  <li *ngFor=\"let column of columns; let i = index; let isLast = last; let isFirst = first;\" [ngClass]=\"{show: i === currentTarget}\"\n      class=\"animated\">\n    <div class=\"a-input__checkbox a-input__checkbox--small\">\n      <input (change)=\"updateDisplay($event, i)\" [checked]=\"!column.hidden\"\n             [disabled]=\"column.disabled\" id=\"checkbox-{{ id }}-{{ i }}-{{ tableHelper.getValue(column) }}\"\n             name=\"checkbox-{{ tableHelper.getValue(column) }}\" type=\"checkbox\">\n      <label\n        for=\"checkbox-{{ id }}-{{ i }}-{{ tableHelper.getValue(column) }}\">{{ tableHelper.getLabel(column) }}</label>\n    </div>\n    <div class=\"a-table-column-selector__actions\">\n      <button (click)=\"move(column, -1)\" [disabled]=\"isFirst\" class=\"a-button a-button--text a-button--s has-icon\"\n              type=\"button\">\n        <aui-icon name=\"ai-arrow-up-1\" ariaLabel=\"Verplaats naar voor\"></aui-icon>\n      </button>\n      <button (click)=\"move(column, 1)\" [disabled]=\"isLast\" class=\"a-button a-button--text a-button--s has-icon\"\n              type=\"button\">\n        <aui-icon name=\"ai-arrow-down-1\" ariaLabel=\"Verplaats naar achter\"></aui-icon>\n      </button>\n    </div>\n  </li>\n  <ul>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { TableHelperService } from '../../services/table-helper.service';\n\n@Component({\n  selector: 'aui-column-selector',\n  templateUrl: './column-selector.component.html',\n})\nexport class ColumnSelectorComponent {\n  @Input() columns;\n  @Output() update = new EventEmitter();\n\n  public id: string = Math.random().toString(36).substr(2, 9);\n  public currentTarget;\n\n  constructor(public tableHelper: TableHelperService) { }\n\n  public updateDisplay(e, index) {\n    if (e.target.checked) {\n      this.columns[index].hidden = false;\n      this.enableChildren(this.columns[index]);\n    } else {\n      this.columns[index].hidden = true;\n      this.disableChildren(this.columns[index]);\n    }\n\n    this.emitColumns();\n  }\n\n  public enableChildren(parent) {\n    this.columns = this.columns.map((o) => {\n      if (o.parent && o.disabled && o.parent.indexOf(parent.value) !== -1) {\n        o.disabled = false;\n        this.enableChildren(o);\n      }\n\n      return o;\n    });\n  }\n\n  public disableChildren(parent) {\n    this.columns = this.columns.map((o) => {\n      if (o.parent && !o.disabled && o.parent.indexOf(parent.value) !== -1) {\n        o.disabled = true;\n        o.hidden = true;\n        this.disableChildren(o);\n      }\n\n      return o;\n    });\n  }\n\n  public move(key, i) {\n    const index = this.columns.findIndex((o) => {\n      return this.tableHelper.getValue(o) === this.tableHelper.getValue(key);\n    });\n    const target = index + i;\n\n    if (target < 0 || target > this.columns.length - 1) {\n      return;\n    }\n\n    this.columns.splice(index, 1); // Delete previous key position\n    this.columns.splice(target, 0, key); // Add new position\n\n    // Use timeout to fix re-rendering issue\n    setTimeout(() => {\n      this.currentTarget = target;\n    });\n\n    this.emitColumns();\n  }\n\n  public emitColumns() {\n    this.update.emit(this.columns);\n  }\n}\n","export const LOAD_DATA = 'Loading data...';\nexport const NO_DATA = 'No data available.';\nexport const NO_COLUMNS = 'No columns available.';\n","import { ConstructableCell } from '../../types/table.types';\n\nexport function hasMetadata(component: ConstructableCell) {\n  return !!Object.keys(component).find(k => k === 'metadata');\n}\n","<ng-template *ngIf=\"hasComponent()\"></ng-template>\n<span *ngIf=\"!hasComponent() && !columnClass\">{{ value }}</span>\n<span *ngIf=\"!hasComponent() && columnClass\"\n      [ngClass]=\"columnClass\">{{ value }}</span>\n","import {\n  ChangeDetectorRef,\n  Component,\n  ComponentFactory,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  Type,\n  ViewContainerRef\n} from '@angular/core';\nimport { Cell, CellWithMetadata, ConstructableCell } from '../../types/table.types';\nimport { TableHelperService } from '../../services/table-helper.service';\nimport { hasMetadata } from './table-cell.helpers';\n\n@Component({\n  selector: 'aui-table-cell',\n  templateUrl: './table-cell.component.html',\n})\nexport class TableCellComponent implements OnChanges {\n  @Input() component: ConstructableCell;\n  @Input() columnClass: () => string;\n  @Input() value: string;\n\n  constructor(\n    public tableHelper: TableHelperService,\n    public viewContainerRef: ViewContainerRef,\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private changeDetectionRef: ChangeDetectorRef\n  ) {\n  }\n\n  public ngOnChanges(changes: SimpleChanges) {\n    if (!changes.component) {\n      return;\n    }\n\n    if (changes.component.currentValue !== changes.component.previousValue) {\n      this.loadComponent(this.component);\n      this.changeDetectionRef.detectChanges();\n    }\n  }\n\n  public hasComponent() {\n    return !!this.component;\n  }\n\n  public loadComponent(component: ConstructableCell): ComponentRef<Cell> {\n    const componentFactory: ComponentFactory<Cell> = hasMetadata(component) ?\n      this.componentFactoryResolver.resolveComponentFactory((component as CellWithMetadata).instance)\n      : this.componentFactoryResolver.resolveComponentFactory((component) as Type<Cell>);\n\n    this.viewContainerRef.clear();\n    const componentRef = this.viewContainerRef.createComponent(componentFactory);\n    componentRef.instance.data = this.value;\n    if (hasMetadata(component)) {\n      componentRef.instance.metadata = (component as CellWithMetadata).metadata;\n    }\n    return componentRef;\n  }\n}\n","<ng-template *ngIf=\"hasComponent()\"></ng-template>\n<span *ngIf=\"!hasComponent()\">{{ label }}</span>\n","import { ChangeDetectorRef, Component, ComponentFactoryResolver, Input, OnChanges, Type, ViewContainerRef } from '@angular/core';\nimport { Cell } from '../../types/table.types';\n\n@Component({\n  selector: 'aui-table-header',\n  templateUrl: './table-header.component.html',\n})\nexport class TableHeaderComponent implements OnChanges {\n  @Input() component: Type<any>;\n  @Input() label: string;\n  @Input() value: any;\n\n  constructor(\n    public viewContainerRef: ViewContainerRef,\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private changeDetectionRef: ChangeDetectorRef\n  ) {\n  }\n\n  public ngOnChanges() {\n    if (this.component) {\n      this.loadComponent();\n    }\n  }\n\n  public hasComponent() {\n    return !!this.component;\n  }\n\n  public loadComponent() {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.component);\n    const viewContainerRef = this.viewContainerRef;\n    viewContainerRef.clear();\n\n    const componentRef = viewContainerRef.createComponent(componentFactory);\n    (componentRef.instance as Cell).data = this.value;\n    this.changeDetectionRef.detectChanges();\n  }\n}\n","<div\n  [ngClass]=\"{\n    'a-table-responsive-wrapper': responsive,\n    'has-first-column-fixed': fixedColumnLeft,\n    'has-last-column-fixed': fixedColumnRight\n  }\"\n>\n  <table\n    [ngClass]=\"{\n      'a-table': true,\n      'aui-table': true,\n      'a-table--striped': striped,\n      'a-table--open': open\n    }\"\n  >\n    <thead *ngIf=\"columns.length > 0\">\n      <tr>\n        <th *ngFor=\"let column of columns\" [ngClass]=\"tableHelper.getClass(column)\">\n          <ng-container *ngIf=\"column.headerComponent\">\n            <aui-table-header\n              [component]=\"column.headerComponent\"\n              [label]=\"tableHelper.getLabel(column)\"\n              [value]=\"tableHelper.getValue(column)\"\n            ></aui-table-header>\n          </ng-container>\n          <ng-container *ngIf=\"!column.headerComponent\">\n            <ng-container *ngIf=\"activeSorting\">\n              <button\n                (click)=\"sort(column, 'asc')\"\n                *ngIf=\"!column.disableSorting && tableHelper.getValue(column) !== activeSorting?.key\"\n                class=\"a-table__sort-button a-table__sort-button--unsorted\"\n                type=\"button\"\n              >\n                {{ tableHelper.getLabel(column) }}\n              </button>\n              <button\n                (click)=\"sort(column, 'asc')\"\n                *ngIf=\"\n                  !column.disableSorting &&\n                  tableHelper.getValue(column) === activeSorting?.key &&\n                  activeSorting?.order === 'desc'\n                \"\n                class=\"a-table__sort-button a-table__sort-button--sorted-desc\"\n                type=\"button\"\n              >\n                {{ tableHelper.getLabel(column) }}\n              </button>\n              <button\n                (click)=\"sort(column, 'desc')\"\n                *ngIf=\"\n                  !column.disableSorting &&\n                  tableHelper.getValue(column) === activeSorting?.key &&\n                  activeSorting?.order === 'asc'\n                \"\n                class=\"a-table__sort-button a-table__sort-button--sorted-asc\"\n                type=\"button\"\n              >\n                {{ tableHelper.getLabel(column) }}\n              </button>\n              <ng-container *ngIf=\"column.disableSorting\">\n                {{ tableHelper.getLabel(column) }}\n              </ng-container>\n            </ng-container>\n            <ng-container *ngIf=\"!activeSorting\">\n              {{ tableHelper.getLabel(column) }}\n            </ng-container>\n          </ng-container>\n        </th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngIf=\"loading\">\n        <td [colSpan]=\"columns.length\">\n          <div class=\"table-loading u-text-center u-margin-top-3xl u-margin-bottom-3xl\">\n            <div class=\"a-spinner u-margin-bottom-xs\" role=\"alert\">\n              <span class=\"a-spinner__circle\"></span>\n            </div>\n            <div>\n              {{ loadDataMessage }}\n            </div>\n          </div>\n        </td>\n      </tr>\n      <tr *ngIf=\"!loading && columns.length === 0\">\n        <td>{{ noColumnsMessage }}</td>\n      </tr>\n      <tr *ngIf=\"!loading && (!rows || rows.length === 0)\">\n        <td [colSpan]=\"columns.length\">{{ noDataMessage }}</td>\n      </tr>\n      <ng-container *ngIf=\"!loading && columns.length > 0\">\n        <tr\n          (click)=\"clickRow(row)\"\n          *ngFor=\"let row of rows; let rowIndex = index\"\n          [ngClass]=\"{ 'is-clickable': hasClickAction }\"\n        >\n          <td *ngFor=\"let column of columns\" [ngClass]=\"tableHelper.getClass(column)\">\n            <aui-table-cell\n              [component]=\"column.component\"\n              [columnClass]=\"tableHelper.getColumnClass(row, column, rowIndex)\"\n              [value]=\"tableHelper.formatValue(row, column, rowIndex)\"\n            ></aui-table-cell>\n          </td>\n        </tr>\n      </ng-container>\n    </tbody>\n  </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TableHelperService } from '../../services/table-helper.service';\nimport { OrderBy, TableColumn } from '../../types/table.types';\nimport * as DEFAULT_MESSAGES from '../table.messages';\n\n@Component({\n  selector: 'aui-table',\n  templateUrl: './table.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableComponent {\n  @Input() rows: any[] = [];\n  @Input() columns: (TableColumn | string)[] = [];\n  @Input() loading = false;\n  @Input() striped = false;\n  @Input() open = false;\n  @Input() responsive = true;\n  @Input() fixedColumnLeft = false;\n  @Input() fixedColumnRight = false;\n  @Input() hasClickAction = false;\n  @Input() activeSorting: OrderBy; // Just a property to use in the template, not functional\n  @Input() noDataMessage = DEFAULT_MESSAGES.NO_DATA;\n  @Input() loadDataMessage = DEFAULT_MESSAGES.LOAD_DATA;\n  @Input() noColumnsMessage = DEFAULT_MESSAGES.NO_COLUMNS;\n\n  @Output() orderBy: EventEmitter<any> = new EventEmitter();\n  @Output() rowClicked: EventEmitter<any> = new EventEmitter();\n\n  constructor(public tableHelper: TableHelperService) {}\n\n  public sort(key, order): void {\n    const prop = this.tableHelper.getValue(key);\n    this.activeSorting = { key: prop, order };\n    this.orderBy.emit({ key: prop, order });\n  }\n\n  public clickRow(rowData: any): void {\n    if (this.hasClickAction) {\n      this.rowClicked.emit(rowData);\n    }\n  }\n}\n","<div class=\"a-table-bar\">\n  <div #ref [ngClass]=\"{'a-table-bar__filters--open': open}\" class=\"a-table-bar__filters\">\n    <ng-content select=\"[auiTableBarItem]\"></ng-content>\n    <div *ngIf=\"open\" class=\"a-table-bar__item\">\n      <button (click)=\"toggle()\" class=\"a-button a-button--transparent\" type=\"button\">Show less...</button>\n    </div>\n  </div>\n  <div *ngIf=\"!open && invisibleItems\" class=\"a-table-bar__filters-show-more\">\n    <button (click)=\"toggle()\" class=\"a-button a-button--transparent\" type=\"button\">Show more...</button>\n  </div>\n\n  <ng-content select=\"[auiTableBarSearch]\"></ng-content>\n</div>\n","import { Component, DoCheck, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Filter } from '@acpaas-ui/ngx-utils';\n\n@Component({\n  selector: 'aui-table-bar',\n  templateUrl: './table-bar.component.html',\n})\nexport class TableBarComponent implements DoCheck {\n  @Input() filters: Filter[] = [];\n  @Input() testFilter: Filter;\n  @Output() filter = new EventEmitter();\n  public open = false;\n  public invisibleItems = false;\n\n  @ViewChild('ref', {static: true}) ref;\n\n  public ngDoCheck() {\n    this.countInvisibleItems();\n  }\n\n  public isInVisible(rectContainer, rectChild) {\n    return rectContainer.bottom < rectChild.top;\n  }\n\n  public countInvisibleItems() {\n    const rectContainer = this.ref.nativeElement.getBoundingClientRect();\n    const childNodes = this.ref.nativeElement.childNodes;\n\n    for (let i = childNodes.length - 1; i >= 0; i--) {\n      const o = childNodes[i];\n      if (o.nodeName === 'AUI-TABLE-BAR-ITEM' && o.getBoundingClientRect) {\n        const rectChild = o.getBoundingClientRect();\n        if (this.isInVisible(rectContainer, rectChild)) {\n          this.invisibleItems = true;\n          break;\n        }\n      }\n\n      if (i === 0) {\n        this.invisibleItems = false;\n      }\n    }\n  }\n\n  public toggle() {\n    this.open = !this.open;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport { TableHelperService } from './services/table-helper.service';\nimport { ColumnSelectorComponent } from './components/column-selector/column-selector.component';\nimport { TableComponent } from './components/table/table.component';\nimport { TableBarComponent } from './components/table-bar/table-bar.component';\nimport { TableCellComponent } from './components/table-cell/table-cell.component';\nimport { TableHeaderComponent } from './components/table-header/table-header.component';\nimport { TableBarItemDirective } from './directives/table-bar-item/table-bar-item.directive';\nimport { TableBarSearchDirective } from './directives/table-bar-search/table-bar-search.directive';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    IconModule,\n    FormsModule,\n  ],\n  providers: [\n    TableHelperService,\n  ],\n  declarations: [\n    ColumnSelectorComponent,\n    TableComponent,\n    TableBarComponent,\n    TableCellComponent,\n    TableHeaderComponent,\n    TableBarItemDirective,\n    TableBarSearchDirective,\n  ],\n  exports: [\n    ColumnSelectorComponent,\n    TableComponent,\n    TableBarComponent,\n    TableCellComponent,\n    TableHeaderComponent,\n    TableBarItemDirective,\n    TableBarSearchDirective,\n  ],\n})\nexport class TableModule {\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { Filter } from '@acpaas-ui/ngx-utils';\n\nimport { OrderBy, TableColumn, TableRecord } from '../types/table.types';\n\nexport class Table {\n  // Array of filters\n  public filters: Filter[] = [];\n  // Pagination\n  public page;\n  public limit;\n  public lastPage;\n  // Sorting\n  public orderBy: OrderBy;\n  public filteredData: BehaviorSubject<any[]> = new BehaviorSubject([]);\n  public rows: BehaviorSubject<any[]> = new BehaviorSubject([]);\n  public columns: BehaviorSubject<any[]> = new BehaviorSubject([]);\n  // Original data (json array from the server)\n  private rawData: TableRecord[] = [];\n  // Original columns config (from the app)\n  private rawColumns: (TableColumn | string)[];\n\n  // Init stuff...\n  constructor() {\n  }\n\n  // ---------- GETTERS | SETTERS ---------- //\n\n  public setRawData(data: any[]) {\n    this.rawData = data;\n    this.updateFilteredData();\n    this.setLastPage();\n    this.updateRows();\n  }\n\n  public setRawColumns(columns) {\n    this.rawColumns = columns;\n    this.updateColumns();\n  }\n\n  public setFilters(filters: Filter[]) {\n    this.filters = filters;\n    this.updateFilteredData();\n    this.setLastPage();\n    this.updateRows();\n  }\n\n  public addFilter(filter: Filter) {\n    this.filters.push(filter);\n    this.updateFilteredData();\n    this.setLastPage();\n    this.updateRows();\n  }\n\n  public setPage(i) {\n    this.page = Number(i); // something weird number >< string\n    this.updateRows();\n  }\n\n  public setLimit(i: number) {\n    this.limit = Number(i); // something weird number >< string\n    this.setLastPage();\n    if (this.lastPage && this.page > this.lastPage) {\n      this.page = this.lastPage;\n    }\n    this.updateRows();\n  }\n\n  public setOrderBy(o) {\n    this.orderBy = o;\n    this.updateFilteredData();\n    this.setLastPage();\n    this.updateRows();\n  }\n\n  // ---------- VIRTUAL PROPS ---------- //\n\n  public getOffset() {\n    return (this.page * this.limit) - this.limit;\n  }\n\n  // ---------- PROPERTY HELPERS ---------- //\n\n  public setLastPage() {\n    const d = this.filteredData.getValue();\n    this.lastPage = Math.ceil(d ? d.length / this.limit : 0);\n  }\n\n  public updateRows() {\n    let d = this.filteredData.getValue();\n\n    if (this.orderBy) {\n      d = this.sortData(d, this.orderBy.key, this.orderBy.order);\n    }\n\n    d = this.selectData(d, this.limit, this.getOffset());\n\n    this.rows.next(d);\n  }\n\n  public updateColumns() {\n    const c = this.filterHiddenColumns(this.rawColumns);\n    this.columns.next(c);\n  }\n\n  public updateFilteredData() {\n    this.filteredData.next(this.filterData(this.rawData, this.filters));\n  }\n\n  // ---------- ABSTRACT HELPERS ---------- //\n\n  public filterData(data, filters: Filter[]) {\n    let d = data.slice();\n\n    filters.forEach((filter) => {\n      d = filter.parseData(d);\n    });\n\n    return d;\n  }\n\n  public sortData(data, key, order = 'asc') {\n    if (!data || !data.sort || !key) {\n      return;\n    }\n\n    const d = data.slice();\n    d.sort((a, b) => {\n      if (a[key] < b[key]) {\n        return order === 'asc' ? -1 : 1;\n      }\n\n      if (a[key] > b[key]) {\n        return order === 'asc' ? 1 : -1;\n      }\n      return 0;\n    });\n\n    return d;\n  }\n\n  public selectData(data, limit, offset) {\n    if (data && limit >= 0 && offset >= 0) {\n      return data.slice(offset, offset + limit);\n    }\n    return data;\n  }\n\n  public filterHiddenColumns(columns) {\n    return columns.filter((o) => {\n      return !o.hidden;\n    });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1.TableHelperService","DEFAULT_MESSAGES.NO_DATA","DEFAULT_MESSAGES.LOAD_DATA","DEFAULT_MESSAGES.NO_COLUMNS","_c1","_c2"],"mappings":"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"}