{"version":3,"file":"axulus-uikit-dataview.mjs","sources":["../../src/app/components/dataview/dataview.ts","../../src/app/components/dataview/axulus-uikit-dataview.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgModule,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { BlockableUI, FilterService, Footer, Header, PrimeNGConfig, PrimeTemplate, SharedModule, TranslationKeys } from '@axulus/uikit/api';\nimport { PaginatorModule } from '@axulus/uikit/paginator';\nimport { ObjectUtils } from '@axulus/uikit/utils';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'p-dataView',\n  template: `\n    <div\n      [ngClass]=\"{\n        'p-dataview p-component': true,\n        'p-dataview-list': layout === 'list',\n        'p-dataview-grid': layout === 'grid'\n      }\"\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n    >\n      <div class=\"p-dataview-loading\" *ngIf=\"loading\">\n        <div class=\"p-dataview-loading-overlay p-component-overlay\">\n          <i [class]=\"'p-dataview-loading-icon pi-spin ' + loadingIcon\"></i>\n        </div>\n      </div>\n      <div class=\"p-dataview-header\" *ngIf=\"header || headerTemplate\">\n        <ng-content select=\"p-header\"></ng-content>\n        <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n      </div>\n      <p-paginator\n        [rows]=\"rows\"\n        [first]=\"first\"\n        [totalRecords]=\"totalRecords\"\n        [pageLinkSize]=\"pageLinks\"\n        [alwaysShow]=\"alwaysShowPaginator\"\n        (onPageChange)=\"paginate($event)\"\n        styleClass=\"p-paginator-top\"\n        [rowsPerPageOptions]=\"rowsPerPageOptions\"\n        *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')\"\n        [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n        [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n        [templateLeft]=\"paginatorLeftTemplate\"\n        [templateRight]=\"paginatorRightTemplate\"\n        [currentPageReportTemplate]=\"currentPageReportTemplate\"\n        [showFirstLastIcon]=\"showFirstLastIcon\"\n        [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n        [showCurrentPageReport]=\"showCurrentPageReport\"\n        [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n        [showPageLinks]=\"showPageLinks\"\n      ></p-paginator>\n      <div class=\"p-dataview-content\">\n        <div class=\"p-grid p-nogutter grid grid-nogutter\">\n          <ng-template\n            ngFor\n            let-rowData\n            let-rowIndex=\"index\"\n            [ngForOf]=\"paginator ? (filteredValue || value | slice: (lazy ? 0 : first):(lazy ? 0 : first) + rows) : filteredValue || value\"\n            [ngForTrackBy]=\"trackBy\"\n          >\n            <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: rowData, rowIndex: rowIndex }\"></ng-container>\n          </ng-template>\n          <div *ngIf=\"isEmpty()\" class=\"p-col col\">\n            <div class=\"p-dataview-emptymessage\">\n              <ng-container *ngIf=\"!emptyMessageTemplate; else emptyFilter\">\n                {{ emptyMessageLabel }}\n              </ng-container>\n              <ng-container #emptyFilter *ngTemplateOutlet=\"emptyMessageTemplate\"></ng-container>\n            </div>\n          </div>\n        </div>\n      </div>\n      <p-paginator\n        [rows]=\"rows\"\n        [first]=\"first\"\n        [totalRecords]=\"totalRecords\"\n        [pageLinkSize]=\"pageLinks\"\n        [alwaysShow]=\"alwaysShowPaginator\"\n        (onPageChange)=\"paginate($event)\"\n        styleClass=\"p-paginator-bottom\"\n        [rowsPerPageOptions]=\"rowsPerPageOptions\"\n        *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')\"\n        [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n        [dropdownScrollHeight]=\"paginatorDropdownScrollHeight\"\n        [templateLeft]=\"paginatorLeftTemplate\"\n        [templateRight]=\"paginatorRightTemplate\"\n        [currentPageReportTemplate]=\"currentPageReportTemplate\"\n        [showFirstLastIcon]=\"showFirstLastIcon\"\n        [dropdownItemTemplate]=\"paginatorDropdownItemTemplate\"\n        [showCurrentPageReport]=\"showCurrentPageReport\"\n        [showJumpToPageDropdown]=\"showJumpToPageDropdown\"\n        [showPageLinks]=\"showPageLinks\"\n      ></p-paginator>\n      <div class=\"p-dataview-footer\" *ngIf=\"footer || footerTemplate\">\n        <ng-content select=\"p-footer\"></ng-content>\n        <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n      </div>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./dataview.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class DataView implements OnInit, AfterContentInit, OnDestroy, BlockableUI, OnChanges {\n  @Input() paginator: boolean;\n\n  @Input() rows: number;\n\n  @Input() totalRecords: number;\n\n  @Input() pageLinks: number = 5;\n\n  @Input() rowsPerPageOptions: any[];\n\n  @Input() paginatorPosition: string = 'bottom';\n\n  @Input() alwaysShowPaginator: boolean = true;\n\n  @Input() paginatorDropdownAppendTo: any;\n\n  @Input() paginatorDropdownScrollHeight: string = '200px';\n\n  @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n\n  @Input() showCurrentPageReport: boolean;\n\n  @Input() showJumpToPageDropdown: boolean;\n\n  @Input() showFirstLastIcon: boolean = true;\n\n  @Input() showPageLinks: boolean = true;\n\n  @Input() lazy: boolean;\n\n  @Input() emptyMessage: string = '';\n\n  @Output() onLazyLoad: EventEmitter<any> = new EventEmitter();\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() trackBy: Function = (index: number, item: any) => item;\n\n  @Input() filterBy: string;\n\n  @Input() filterLocale: string;\n\n  @Input() loading: boolean;\n\n  @Input() loadingIcon: string = 'pi pi-spinner';\n\n  @Input() first: number = 0;\n\n  @Input() sortField: string;\n\n  @Input() sortOrder: number;\n\n  @Input() value: any[];\n\n  @Output() onPage: EventEmitter<any> = new EventEmitter();\n\n  @Output() onSort: EventEmitter<any> = new EventEmitter();\n\n  @Output() onChangeLayout: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild(Header) header;\n\n  @ContentChild(Footer) footer;\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n  _value: any[];\n\n  listItemTemplate: TemplateRef<any>;\n\n  gridItemTemplate: TemplateRef<any>;\n\n  itemTemplate: TemplateRef<any>;\n\n  headerTemplate: TemplateRef<any>;\n\n  emptyMessageTemplate: TemplateRef<any>;\n\n  footerTemplate: TemplateRef<any>;\n\n  paginatorLeftTemplate: TemplateRef<any>;\n\n  paginatorRightTemplate: TemplateRef<any>;\n\n  paginatorDropdownItemTemplate: TemplateRef<any>;\n\n  filteredValue: any[];\n\n  filterValue: string;\n\n  initialized: boolean;\n\n  _layout: string = 'list';\n\n  translationSubscription: Subscription;\n\n  @Input() get layout(): string {\n    return this._layout;\n  }\n\n  set layout(layout: string) {\n    this._layout = layout;\n\n    if (this.initialized) {\n      this.changeLayout(layout);\n    }\n  }\n\n  constructor(public el: ElementRef, public cd: ChangeDetectorRef, public filterService: FilterService, public config: PrimeNGConfig) {}\n\n  ngOnInit() {\n    if (this.lazy) {\n      this.onLazyLoad.emit(this.createLazyLoadMetadata());\n    }\n\n    this.translationSubscription = this.config.translationObserver.subscribe(() => {\n      this.cd.markForCheck();\n    });\n    this.initialized = true;\n  }\n\n  ngOnChanges(simpleChanges: SimpleChanges) {\n    if (simpleChanges.value) {\n      this._value = simpleChanges.value.currentValue;\n      this.updateTotalRecords();\n\n      if (!this.lazy && this.hasFilter()) {\n        this.filter(this.filterValue);\n      }\n    }\n\n    if (simpleChanges.sortField || simpleChanges.sortOrder) {\n      //avoid triggering lazy load prior to lazy initialization at onInit\n      if (!this.lazy || this.initialized) {\n        this.sort();\n      }\n    }\n  }\n\n  ngAfterContentInit() {\n    this.templates.forEach((item) => {\n      switch (item.getType()) {\n        case 'listItem':\n          this.listItemTemplate = item.template;\n          break;\n\n        case 'gridItem':\n          this.gridItemTemplate = item.template;\n          break;\n\n        case 'paginatorleft':\n          this.paginatorLeftTemplate = item.template;\n          break;\n\n        case 'paginatorright':\n          this.paginatorRightTemplate = item.template;\n          break;\n\n        case 'paginatordropdownitem':\n          this.paginatorDropdownItemTemplate = item.template;\n          break;\n\n        case 'empty':\n          this.emptyMessageTemplate = item.template;\n          break;\n\n        case 'header':\n          this.headerTemplate = item.template;\n          break;\n\n        case 'footer':\n          this.footerTemplate = item.template;\n          break;\n      }\n    });\n\n    this.updateItemTemplate();\n  }\n\n  updateItemTemplate() {\n    switch (this.layout) {\n      case 'list':\n        this.itemTemplate = this.listItemTemplate;\n        break;\n\n      case 'grid':\n        this.itemTemplate = this.gridItemTemplate;\n        break;\n    }\n  }\n\n  changeLayout(layout: string) {\n    this._layout = layout;\n    this.onChangeLayout.emit({\n      layout: this.layout\n    });\n    this.updateItemTemplate();\n\n    this.cd.markForCheck();\n  }\n\n  updateTotalRecords() {\n    this.totalRecords = this.lazy ? this.totalRecords : this._value ? this._value.length : 0;\n  }\n\n  paginate(event) {\n    this.first = event.first;\n    this.rows = event.rows;\n\n    if (this.lazy) {\n      this.onLazyLoad.emit(this.createLazyLoadMetadata());\n    }\n\n    this.onPage.emit({\n      first: this.first,\n      rows: this.rows\n    });\n  }\n\n  sort() {\n    this.first = 0;\n\n    if (this.lazy) {\n      this.onLazyLoad.emit(this.createLazyLoadMetadata());\n    } else if (this.value) {\n      this.value.sort((data1, data2) => {\n        let value1 = ObjectUtils.resolveFieldData(data1, this.sortField);\n        let value2 = ObjectUtils.resolveFieldData(data2, this.sortField);\n        let result = null;\n\n        if (value1 == null && value2 != null) result = -1;\n        else if (value1 != null && value2 == null) result = 1;\n        else if (value1 == null && value2 == null) result = 0;\n        else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2);\n        else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n        return this.sortOrder * result;\n      });\n\n      if (this.hasFilter()) {\n        this.filter(this.filterValue);\n      }\n    }\n\n    this.onSort.emit({\n      sortField: this.sortField,\n      sortOrder: this.sortOrder\n    });\n  }\n\n  isEmpty() {\n    let data = this.filteredValue || this.value;\n    return data == null || data.length == 0;\n  }\n\n  createLazyLoadMetadata(): any {\n    return {\n      first: this.first,\n      rows: this.rows,\n      sortField: this.sortField,\n      sortOrder: this.sortOrder\n    };\n  }\n\n  getBlockableElement(): HTMLElement {\n    return this.el.nativeElement.children[0];\n  }\n\n  get emptyMessageLabel(): string {\n    return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);\n  }\n\n  filter(filter: string, filterMatchMode: string = 'contains') {\n    this.filterValue = filter;\n\n    if (this.value && this.value.length) {\n      let searchFields = this.filterBy.split(',');\n      this.filteredValue = this.filterService.filter(this.value, searchFields, filter, filterMatchMode, this.filterLocale);\n\n      if (this.filteredValue.length === this.value.length) {\n        this.filteredValue = null;\n      }\n\n      if (this.paginator) {\n        this.first = 0;\n        this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n      }\n\n      this.cd.markForCheck();\n    }\n  }\n\n  hasFilter() {\n    return this.filterValue && this.filterValue.trim().length > 0;\n  }\n\n  ngOnDestroy() {\n    if (this.translationSubscription) {\n      this.translationSubscription.unsubscribe();\n    }\n  }\n}\n\n@Component({\n  selector: 'p-dataViewLayoutOptions',\n  template: `\n    <div [ngClass]=\"'p-dataview-layout-options p-selectbutton p-buttonset'\" [ngStyle]=\"style\" [class]=\"styleClass\">\n      <button\n        type=\"button\"\n        class=\"p-button p-button-icon-only\"\n        [ngClass]=\"{ 'p-highlight': dv.layout === 'list' }\"\n        (click)=\"changeLayout($event, 'list')\"\n        (keydown.enter)=\"changeLayout($event, 'list')\"\n      >\n        <i class=\"pi pi-bars\"></i></button\n      ><button\n        type=\"button\"\n        class=\"p-button p-button-icon-only\"\n        [ngClass]=\"{ 'p-highlight': dv.layout === 'grid' }\"\n        (click)=\"changeLayout($event, 'grid')\"\n        (keydown.enter)=\"changeLayout($event, 'grid')\"\n      >\n        <i class=\"pi pi-th-large\"></i>\n      </button>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'p-element'\n  }\n})\nexport class DataViewLayoutOptions {\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  constructor(public dv: DataView) {}\n\n  changeLayout(event: Event, layout: string) {\n    this.dv.changeLayout(layout);\n    event.preventDefault();\n  }\n}\n@NgModule({\n  imports: [CommonModule, SharedModule, PaginatorModule],\n  exports: [DataView, DataViewLayoutOptions],\n  declarations: [DataView, DataViewLayoutOptions]\n})\nexport class DataViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}