{"version":3,"file":"sebgroup-green-angular-src-lib-cell-table.mjs","sources":["../../../../libs/angular/src/lib/cell-table/cell-underline.directive.ts","../../../../libs/angular/src/lib/cell-table/cell-table-item.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.ts","../../../../libs/angular/src/lib/cell-table/cell-table.component.html","../../../../libs/angular/src/lib/cell-table/cell-table.module.ts","../../../../libs/angular/src/lib/cell-table/cell-table.types.ts","../../../../libs/angular/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.ts"],"sourcesContent":["import {\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core'\n\n@Directive({\n    selector: '[nggSlidingUnderline]',\n    standalone: false\n})\nexport class SlidingUnderlineDirective implements OnInit, OnChanges {\n  constructor(private element: ElementRef<HTMLElement>) {}\n\n  @Input() public nggSlidingUnderline: any\n  @Input() public key?: any\n  @Input() public disabled?: boolean\n\n  ngOnInit(): void {\n    if (this.element?.nativeElement) {\n      this.element.nativeElement.classList.add('slider')\n\n      this.element.nativeElement.addEventListener('animationend', () => {\n        this.element.nativeElement.classList.remove(\n          'left',\n          'slider-positive',\n          'slider-negative',\n        )\n      })\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.disabled) {\n      if (\n        changes.slidingUnderline &&\n        changes.key &&\n        !changes.slidingUnderline.isFirstChange() &&\n        !changes?.key?.isFirstChange()\n      ) {\n        if (changes.key.currentValue === changes.key.previousValue) {\n          this.addAnimation(\n            changes.slidingUnderline.currentValue,\n            changes.slidingUnderline.previousValue,\n          )\n        }\n      } else {\n        if (\n          changes.slidingUnderline &&\n          !changes.slidingUnderline.isFirstChange()\n        ) {\n          this.addAnimation(\n            changes.slidingUnderline.currentValue,\n            changes.slidingUnderline.previousValue,\n          )\n        }\n      }\n    }\n  }\n\n  addAnimation(current: any, previous: any) {\n    if (current > previous)\n      this.element.nativeElement.classList.add('slider-positive')\n    else this.element.nativeElement.classList.add('slider-negative')\n    this.element.nativeElement.classList.add('left')\n  }\n}\n","import { Component, Input } from '@angular/core'\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\n\nimport { TableHeaderListValueType } from './cell-table.types'\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: '[nggCellTableItem]',\n    template: `\n    <ng-container [ngSwitch]=\"valueType\">\n      <span *ngSwitchCase=\"'string'\">{{ row || '–' }}</span>\n      <span *ngSwitchCase=\"'number'\">{{ (row | number) || '–' }}</span>\n      <span *ngSwitchCase=\"'datetime'\">{{\n        (row | date: 'HH:mm:ss') || '–'\n      }}</span>\n      <span *ngSwitchCase=\"'date'\">{{\n        (row | date: 'YYYY-MM-dd') || '–'\n      }}</span>\n      <span\n        *ngSwitchCase=\"'custom-html'\"\n        [innerHtml]=\"transformHTML(row) || '–'\"\n      ></span>\n      <span *ngSwitchCase=\"'sign'\" [ngClass]=\"getSignColor(row)\">{{\n        row || '–'\n      }}</span>\n      <span *ngSwitchCase=\"'pct'\">{{ row || '–' }}</span>\n      <span *ngSwitchCase=\"'streamSign'\" [nggSlidingUnderline]=\"row\">{{\n        row || '–'\n      }}</span>\n      <span *ngSwitchDefault>–</span>\n    </ng-container>\n  `,\n    standalone: false\n})\nexport class CellTableItemComponent {\n  @Input() row: any\n  @Input() valueType: TableHeaderListValueType = 'string'\n  @Input() id = ''\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  getSignColor = (value: string | number) => {\n    if (/[−-]/.test(String(value))) return 'text-danger'\n    else if (/[1-9]/.test(String(value))) return 'text-success'\n    return ''\n  }\n\n  transformHTML(value: string): SafeHtml {\n    if (value && value.length) {\n      return this.sanitizer.bypassSecurityTrustHtml(value)\n    } else {\n      return ''\n    }\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n  ViewChildren,\n} from '@angular/core'\n\nimport {\n  TableHeaderListItem,\n  TableHeaderListValueType,\n  TableRow,\n} from './cell-table.types'\n\n@Component({\n    selector: 'ngg-cell-table',\n    templateUrl: './cell-table.component.html',\n    styleUrls: ['./cell-table.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class NggCellTableComponent {\n  @ViewChildren('items') items: QueryList<ElementRef> =\n    new QueryList<ElementRef>()\n\n  /** Cell min-width to force same width on small screens */\n  @Input() minWidth?: number\n\n  /** Make the most left element wrap */\n  @Input() overflowReverse = false\n\n  /** Element class name */\n  @Input() className?: string\n\n  /** List of table headers */\n  @Input() headerList: TableHeaderListItem[] = []\n\n  /** List of data */\n  @Input() rows: TableRow[] = []\n\n  /** Make rows clickable and add arrow to the right */\n  @Input() clickableRows = false\n\n  /** Label for the chevron of clickable rows */\n  @Input() clickLabel = 'View details'\n\n  /** Callback when a row is clicked */\n  @Output() rowClicked: EventEmitter<TableRow> = new EventEmitter()\n\n  // ------------- EVENTS ------------------\n  /**\n   * handles the logic for when a row is clicked\n   * @param {TableRowClickedEvent} value the TableRowClickedEvent\n   */\n  handleClickRow = (value: TableRow): void => {\n    if (this.clickableRows) this.rowClicked.emit(value)\n  }\n\n  getValueTypeFromMain = (): TableHeaderListValueType => {\n    const getMain = this.headerList.find((x) => x.main)\n    if (getMain) return getMain.valueType || ''\n    return ''\n  }\n\n  getTableHeaderListValueFromNonMain = (\n    header: TableHeaderListItem,\n  ): TableHeaderListValueType => {\n    if (header.valueType) return header.valueType || ''\n    return ''\n  }\n\n  mainHeader = (row: TableRow) => {\n    const getMain = this.headerList.find((x) => x.main)\n    if (row && getMain) {\n      return {\n        value: row[getMain.tableKeySelector],\n        valueType: getMain.valueType || 'string',\n        tableKeySelector: getMain.tableKeySelector,\n      }\n    }\n    return {\n      value: '-',\n      valueType: 'string',\n      tableKeySelector: '-',\n    }\n  }\n\n  headerNoneMain = (headers: TableHeaderListItem[]) => {\n    if (this.overflowReverse) return headers.filter((x) => !x.main).reverse()\n    return headers.filter((x) => !x.main)\n  }\n\n  getTableKeySelector = (row: TableRow) => {\n    return this.mainHeader(row).tableKeySelector + row.rowId\n  }\n\n  // ------- TRACKBY FOR STREAM ------------\n  trackByRowId(_: any, b: TableRow) {\n    return b.rowId\n  }\n  KeySelector(_: any, b: TableHeaderListItem) {\n    return b.tableKeySelector\n  }\n}\n","<div\n  #targetElement\n  role=\"table\"\n  [ngClass]=\"'gds-cell-table-table ' + className\"\n>\n  <div class=\"cell-table-table d-flex flex-column\">\n    <div\n      *ngFor=\"let row of rows; trackBy: trackByRowId\"\n      (click)=\"handleClickRow(row)\"\n      class=\"cell-table--row-wrapper\"\n      role=\"rowgroup\"\n      [class.is-clickable]=\"clickableRows\"\n    >\n      <div>\n        <div #items [class.overflow-reverse]=\"overflowReverse\">\n          <!-- Main header -->\n          <div role=\"row\">\n            <div\n              nggCellTableItem\n              [row]=\"mainHeader(row).value\"\n              [valueType]=\"getValueTypeFromMain()\"\n              [attr.valueType]=\"getValueTypeFromMain()\"\n              [attr.id]=\"getTableKeySelector(row)\"\n              role=\"rowheader\"\n              aria-rowspan=\"3\"\n              aria-colspan=\"3\"\n            ></div>\n          </div>\n          <div role=\"row\">\n            <div class=\"d-flex\">\n              <!-- Sub Header -->\n              <div\n                nggCellTableItem\n                class=\"sub-header py-0 fw-bold\"\n                [row]=\"header.label\"\n                [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n                role=\"columnheader\"\n                *ngFor=\"\n                  let header of headerNoneMain(headerList);\n                  trackBy: KeySelector\n                \"\n              ></div>\n            </div>\n          </div>\n\n          <div role=\"row\">\n            <!-- Sub Values -->\n            <div class=\"d-flex\">\n              <div\n                nggCellTableItem\n                class=\"sub-value py-0\"\n                [row]=\"row[header.tableKeySelector]\"\n                [valueType]=\"getTableHeaderListValueFromNonMain(header)\"\n                [attr.valueType]=\"header.valueType\"\n                role=\"cell\"\n                *ngFor=\"\n                  let header of headerNoneMain(headerList);\n                  trackBy: KeySelector\n                \"\n              ></div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div\n        *ngIf=\"clickableRows\"\n        role=\"row\"\n        class=\"d-grid align-items-center ms-4 me-4 cell-table--arrow-container\"\n      >\n        <div role=\"cell\">\n          <div\n            role=\"button\"\n            [attr.aria-label]=\"clickLabel\"\n            tabindex=\"0\"\n            [attr.aria-describedby]=\"getTableKeySelector(row)\"\n            (keydown.enter)=\"handleClickRow(row)\"\n          >\n            <svg\n              data-prefix=\"far\"\n              data-icon=\"chevron-right\"\n              class=\"svg-inline--fa fa-chevron-right fa-w-10\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              viewBox=\"0 0 320 512\"\n            >\n              <path\n                fill=\"currentColor\"\n                d=\"M113.3 47.41l183.1 191.1c4.469 4.625 6.688 10.62 6.688 16.59s-2.219 11.97-6.688 16.59l-183.1 191.1c-9.152 9.594-24.34 9.906-33.9 .7187c-9.625-9.125-9.938-24.38-.7187-33.91l168-175.4L78.71 80.6c-9.219-9.5-8.906-24.78 .7187-33.91C88.99 37.5 104.2 37.82 113.3 47.41z\"\n              ></path>\n            </svg>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { CellTableItemComponent } from './cell-table-item.component'\nimport { NggCellTableComponent } from './cell-table.component'\nimport { SlidingUnderlineDirective } from './cell-underline.directive'\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [NggCellTableComponent],\n  declarations: [\n    NggCellTableComponent,\n    CellTableItemComponent,\n    SlidingUnderlineDirective,\n  ],\n})\nexport class NggCellTableModule {}\n","export default class Table {\n  constructor(table: { data: TableRow[]; header: TableHeaderListItem[] }) {\n    this.data = table.data\n    this.header = table.header\n  }\n  data: TableRow[]\n  header: TableHeaderListItem[]\n}\n\n/** The type of a data the values in a column represent  */\nexport type TableHeaderListValueType =\n  | 'number'\n  | 'string'\n  | 'date'\n  | 'datetime'\n  | 'bool'\n  | 'custom-html'\n  | 'sign'\n  | 'streamSign'\n  | ''\n\n/** Table Header List Item Interface */\nexport interface TableHeaderListItem<\n  T extends Record<string, unknown> = Record<string, unknown>,\n> {\n  /** The label displayed */\n  label: string\n  /** the key selector corresponding to to the TableList Item which this column is targeting */\n  // tableKeySelector: keyof T;\n  tableKeySelector: string\n  /** the type of value: string, date or number */\n  valueType?: TableHeaderListValueType\n\n  /** the main field for stacked table */\n  main?: boolean\n}\n\nexport interface TableRow {\n  [prop: string]: any\n  rowId: string | number\n}\n\n/** The information on the currently selected sort: column name, type and asc/desc  */\nexport interface SortInfo<\n  T extends Record<string, unknown> = { [k: string]: any },\n> {\n  /** column name */\n  column: keyof T\n  /** is ascending (false for descending) */\n  isAscending: boolean\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.SlidingUnderlineDirective","i1","i2.CellTableItemComponent"],"mappings":"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"}