{"version":3,"file":"mm-m3-list.mjs","sources":["../../../projects/mm-m3-list/src/lib/mm-m3-list.service.ts","../../../projects/mm-m3-list/src/lib/mm-m3-list.component.ts","../../../projects/mm-m3-list/src/lib/mm-m3-list.module.ts","../../../projects/mm-m3-list/src/public-api.ts","../../../projects/mm-m3-list/src/mm-m3-list.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class MMM3ListService {\r\n\r\n  constructor() { }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, EventEmitter, Output } from '@angular/core';\r\nimport { IFormResponse, IBookmark, ISearchRequest, Panel } from '@infor-up/m3-odin';\r\nimport { FormService } from '@infor-up/m3-odin-angular';\r\nimport { SohoDataGridComponent, SohoMessageService } from 'ids-enterprise-ng';\r\nimport { Observable } from 'rxjs';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nclass ProgramInstance {\r\n  formService: FormService;\r\n  instanceId: string;\r\n  constructor(formService: FormService, instanceId: string) {\r\n    this.formService = formService;\r\n    this.instanceId = instanceId;\r\n  }\r\n\r\n  executeCommand(commandType: string, commandValue: string, params?: string): Observable<IFormResponse> {\r\n    const request = {\r\n      commandType,\r\n      commandValue,\r\n      params,\r\n      instanceId: this.instanceId\r\n    };\r\n\r\n    return this.formService.executeRequest(request);\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'mm-m3-list',\r\n  template: `\r\n  <div soho-busyindicator [activated]=\"isBusy\" [displayDelay]=\"0\">\r\n  <div soho-datagrid [gridOptions]=\"gridOptions\" [data]=\"data | async\"></div>\r\n  </div>`\r\n})\r\nexport class MMM3ListComponent implements OnInit {\r\n  /**\r\n   * Busy indicator\r\n   */\r\n  isBusy = false;\r\n\r\n  /**\r\n   * Instance id. Will be used to close the running instance of a bookmark list in the server\r\n   */\r\n  private instanceId: string;\r\n\r\n  /**\r\n   * Bookmark definition to open\r\n   */\r\n  @Input() bookmark: IBookmark;\r\n\r\n  /**\r\n   * Search definition to open\r\n   */\r\n  @Input() searchRequest: ISearchRequest;\r\n\r\n  /**\r\n   * Custom gridOptions. Column definitions will not be overrwitten\r\n   */\r\n  @Input() gridOptions: SohoDataGridOptions = undefined;\r\n\r\n  /**\r\n   * Additional columns\r\n   */\r\n  @Input() additionalColumns: SohoDataGridColumn[];\r\n\r\n  /**\r\n   * Columns to be ignored\r\n   */\r\n  @Input() ignoredColumns: string[] = [];\r\n\r\n  /**\r\n   * Key-value pair to overwrite the column heading. Key would be the column name and value will be the overriding column label\r\n   */\r\n  @Input() columnHeadings = {};\r\n\r\n  /**\r\n   * Flag if to add the default filterable column from bookmark\r\n   */\r\n  @Input() useDefaultFilter = true;\r\n\r\n  /**\r\n   * List of columns that will have a filter\r\n   */\r\n  @Input() filterables: string[] = [];\r\n\r\n  /**\r\n   * List of columns that are editable\r\n   */\r\n  @Input() editables: string[] = [];\r\n\r\n  /**\r\n   * Number of page down request for a bookmark. Default would load upto 99 rows\r\n   */\r\n  @Input() requestCount = 3;\r\n\r\n  /**\r\n   * If selection checkbox will be added as a column\r\n   */\r\n  @Input() enableCheckbox = false;\r\n\r\n  /**\r\n   * Emits when first set of data has been loaded\r\n   */\r\n  @Output() firstDataRetrieved = new EventEmitter();\r\n\r\n  /**\r\n   * Emits when data has been loaded\r\n   */\r\n  @Output() dataRetrieved = new EventEmitter();\r\n\r\n  /**\r\n   * Data grid instance\r\n   */\r\n  @ViewChild(SohoDataGridComponent) dataGrid: SohoDataGridComponent;\r\n\r\n  /**\r\n   * Subject and observable for shown records\r\n   */\r\n  private dataSubject$ = new BehaviorSubject([]);\r\n  data = this.dataSubject$.asObservable();\r\n\r\n  /**\r\n   * Will contain the complete data after all records has been loaded.\r\n   * Used for when the gridOption groupable is enabled\r\n   */\r\n  private allItems = [];\r\n\r\n  /**\r\n   * Default gridOptions\r\n   */\r\n  defaultOptions: SohoDataGridOptions = {\r\n    columns: [],      // Cannot be overwritten from here\r\n    selectable: 'mixed',\r\n    disableRowDeactivation: true,\r\n    filterable: false,\r\n    paging: false,\r\n    rowHeight: 'short'\r\n  };\r\n\r\n  constructor(private readonly formService: FormService, private messageService: SohoMessageService, private http: HttpClient) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.allItems = [];\r\n    if (!this.gridOptions) {\r\n      this.gridOptions = this.defaultOptions;\r\n    } else {\r\n      this.gridOptions = {...this.defaultOptions, ...this.gridOptions};\r\n    }\r\n  }\r\n\r\n  private onResponse(response: IFormResponse): void {\r\n    this.instanceId = response.instanceId;\r\n\r\n    if (response.result !== 0) {\r\n      this.onError(response);\r\n      return;\r\n    }\r\n\r\n    if (response.panel.list) {\r\n      const panel = response.panel;\r\n      const items = panel.list.items;\r\n\r\n      this.createColumns(panel);\r\n\r\n      this.allItems = [...this.allItems, ...items];\r\n\r\n      // Do not show initial data if groupable is used.\r\n      // All data needs to be retrieved before showing data.\r\n      if (!this.gridOptions.groupable) {\r\n        this.dataSubject$.next(items);\r\n      }\r\n\r\n      // Emit event that first set of records has been fetched\r\n      setTimeout(() => {\r\n        this.firstDataRetrieved.emit();\r\n      });\r\n\r\n      if (this.searchRequest) {\r\n        this.dataLoaded();\r\n        return;\r\n      }\r\n\r\n      if (this.bookmark && !this.searchRequest) {\r\n        if (items.length < 33) {\r\n          this.dataLoaded();\r\n          return;\r\n        }\r\n\r\n        const programInstance = new ProgramInstance(this.formService, this.instanceId);\r\n        this.loadAllRows(programInstance, 1);\r\n      }\r\n    } else {\r\n      this.dataLoaded();\r\n    }\r\n  }\r\n\r\n  private createColumns(panel: Panel) {\r\n    const columns: SohoDataGridColumn[] = [];\r\n    if (this.gridOptions.columns.length === 0) {\r\n      if (this.enableCheckbox) {\r\n        columns.push({\r\n          id: 'selectionCheckbox',\r\n          sortable: false,\r\n          resizable: false,\r\n          width: 50,\r\n          formatter: Soho.Formatters.SelectionCheckbox,\r\n          align: 'center'});\r\n      }\r\n\r\n      panel.list.columns.forEach((col: any) => {\r\n        if (this.ignoredColumns.indexOf(col.fullName) === -1) {\r\n          columns.push({\r\n            id: col.fullName,\r\n            field: col.fullName,\r\n            name: this.columnHeadings[col.fullName] ? this.columnHeadings[col.fullName] : col.header,\r\n            align: col.isRight ? 'right' : 'left',\r\n            filterType: col.positionField && this.useDefaultFilter || this.filterables.indexOf(col.fullName) > -1 ?\r\n                        col.isRight ? 'integer' : 'text' : null,\r\n            editor: this.editables.indexOf(col.fullName) > -1 ? Soho.Editors.Input : null\r\n          });\r\n        }\r\n      });\r\n      if (this.additionalColumns) {\r\n        this.additionalColumns.forEach((column: SohoDataGridColumn | any) => {\r\n          if (column.idx) {\r\n            columns.splice(column.idx, 0, column);\r\n          } else {\r\n            columns.push(column);\r\n          }\r\n        });\r\n      }\r\n      this.dataGrid.updateColumns(columns, null);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Recursive funciton to load all rows\r\n   */\r\n  private loadAllRows(programInstance: ProgramInstance, count: number) {\r\n    if (count > this.requestCount) {\r\n      this.dataLoaded();\r\n      return;\r\n    }\r\n\r\n    programInstance.executeCommand('PAGE', 'DOWN').subscribe(response => {\r\n      const panel = response.panel;\r\n      if (panel.list.items.length === 0) {\r\n\r\n        this.dataLoaded();\r\n        return;\r\n      }\r\n\r\n      // Add new data to existing\r\n      const newItems = [...this.allItems, ...panel.list.items];\r\n\r\n      this.allItems = [...newItems];\r\n      if (!this.gridOptions.groupable) {\r\n        this.dataSubject$.next(newItems);\r\n      }\r\n\r\n      this.loadAllRows(programInstance, ++count);\r\n    });\r\n  }\r\n\r\n  openBookmark() {\r\n    this.allItems = [];\r\n    const defaultBookmark: IBookmark = {\r\n      isStateless: false,\r\n      values: {}\r\n    };\r\n\r\n    this.isBusy = true;\r\n    this.formService\r\n      .executeBookmark({...defaultBookmark, ...this.bookmark})\r\n      .subscribe((r: IFormResponse) => this.onResponse(r),\r\n        (r) => this.onError(r),\r\n        () => {\r\n          if (!this.gridOptions.groupable) {\r\n            this.isBusy = false;\r\n          }\r\n      });\r\n  }\r\n\r\n  executeSearch() {\r\n    this.isBusy = true;\r\n    this.formService.executeSearch(this.searchRequest).subscribe((r: IFormResponse) => {\r\n      this.onResponse(r);\r\n    }, (r) => {\r\n      this.onError(r);\r\n    }, () => {\r\n      this.isBusy = false;\r\n    });\r\n  }\r\n\r\n  selectedRows() {\r\n    const selectedRows = [];\r\n    this.dataGrid.selectedRows().forEach(item => {\r\n      selectedRows.push(item.data);\r\n    });\r\n    return selectedRows;\r\n  }\r\n\r\n  getItems() {\r\n    return this.dataGrid.dataset;\r\n  }\r\n\r\n  updateItems(items: any) {\r\n    this.dataSubject$.next(items);\r\n  }\r\n\r\n  private dataLoaded() {\r\n    if (this.gridOptions.groupable) {\r\n      this.dataSubject$.next(this.allItems);\r\n    }\r\n\r\n    this.closeInstance();\r\n  }\r\n\r\n  private closeInstance() {\r\n    this.formService\r\n      .executeCommand('CLOSE', this.instanceId)\r\n      .pipe(\r\n        finalize(() => {\r\n          this.isBusy = false;\r\n          setTimeout(() => {\r\n            this.dataRetrieved.emit();\r\n          });\r\n        })\r\n      )\r\n      .subscribe();\r\n    return;\r\n  }\r\n\r\n  private onError(response: IFormResponse): void {\r\n    const message = response.message || 'Unable to open bookmark';\r\n    const buttons = [{ text: 'OK', click: (e: any, modal: any) => { modal.close(); } }];\r\n    this.messageService.error()\r\n    .title('Bookmark error')\r\n    .message(message)\r\n    .buttons(buttons)\r\n    .open();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { SohoComponentsModule } from 'ids-enterprise-ng';\r\nimport { MMM3ListComponent } from './mm-m3-list.component';\r\n\r\n@NgModule({\r\n  declarations: [MMM3ListComponent],\r\n  imports: [\r\n    CommonModule,\r\n    HttpClientModule,\r\n    SohoComponentsModule\r\n  ],\r\n  exports: [MMM3ListComponent]\r\n})\r\nexport class MMM3ListModule { }\r\n","/*\r\n * Public API Surface of mm-m3-list\r\n */\r\n\r\nexport * from './lib/mm-m3-list.service';\r\nexport * from './lib/mm-m3-list.component';\r\nexport * from './lib/mm-m3-list.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}