{"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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"}