{"version":3,"file":"formioangular-colfuturo-grid.mjs","sources":["../../../projects/angular-formio/grid/src/types/grid-footer-positions.ts","../../../projects/angular-formio/grid/src/GridHeaderComponent.ts","../../../projects/angular-formio/grid/src/types/grid-header.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.ts","../../../projects/angular-formio/grid/src/form/FormGridHeader.component.html","../../../projects/angular-formio/grid/src/grid.service.ts","../../../projects/angular-formio/grid/src/GridBodyComponent.ts","../../../projects/angular-formio/grid/src/form/time-since.pipe.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.ts","../../../projects/angular-formio/grid/src/form/FormGridBody.component.html","../../../projects/angular-formio/grid/src/GridFooterComponent.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.ts","../../../projects/angular-formio/grid/src/form/FormGridFooter.component.html","../../../projects/angular-formio/grid/src/form/index.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridHeader.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridBody.component.html","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.ts","../../../projects/angular-formio/grid/src/submission/SubmissionGridFooter.component.html","../../../projects/angular-formio/grid/src/submission/index.ts","../../../projects/angular-formio/grid/src/grid.component.ts","../../../projects/angular-formio/grid/src/grid.component.html","../../../projects/angular-formio/grid/src/grid.module.ts","../../../projects/angular-formio/grid/src/formioangular-colfuturo-grid.ts"],"sourcesContent":["export enum GridFooterPositions {\r\n  bottom,\r\n  top,\r\n  both\r\n}\r\n","import {\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n  TemplateRef,\r\n  Input,\r\n  Component,\r\n} from \"@angular/core\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\nimport { GridHeader } from \"./types/grid-header\";\r\n\r\n@Component({\r\n  template: \"\",\r\n})\r\nexport class GridHeaderComponent {\r\n  @Input() actionAllowed: any;\r\n  @Output() sort: EventEmitter<GridHeader>;\r\n  @ViewChild(TemplateRef, { static: true }) template: TemplateRef<any>;\r\n  public headers: Array<GridHeader>;\r\n  constructor() {\r\n    this.headers = [];\r\n    this.sort = new EventEmitter();\r\n  }\r\n\r\n  get numHeaders() {\r\n    return this.headers.length;\r\n  }\r\n\r\n  load(\r\n    formio: FormioPromiseService,\r\n    query?: any,\r\n    columns?: Array<any>\r\n  ): Promise<any> {\r\n    return Promise.resolve([]);\r\n  }\r\n}\r\n","import { ComponentInstance } from \"formioangular-colfuturo\";\r\n\r\nexport interface GridHeader {\r\n  component?: ComponentInstance;\r\n  key: string;\r\n  sort?: SortType;\r\n  label: string;\r\n  renderCell?(cellValue: any, component?: ComponentInstance): string;\r\n}\r\n\r\nexport enum SortType {\r\n  ASC = \"asc\",\r\n  DESC = \"desc\",\r\n}\r\n","import {Component} from '@angular/core';\r\nimport {GridHeaderComponent} from '../GridHeaderComponent';\r\nimport {GridHeader, SortType} from '../types/grid-header';\r\n\r\n@Component({\r\n  selector: 'form-grid-header',\r\n  templateUrl: './FormGridHeader.component.html'\r\n})\r\nexport class FormGridHeaderComponent extends GridHeaderComponent {\r\n  public header: GridHeader;\r\n  load(formio?: any) {\r\n    this.header = {\r\n      label: 'Title',\r\n      key: 'title',\r\n      sort: SortType.ASC\r\n    };\r\n    this.headers = [this.header];\r\n    return Promise.resolve(this.headers);\r\n  }\r\n\r\n  get numHeaders() {\r\n    return 2;\r\n  }\r\n}\r\n","<ng-template>\r\n  <thead>\r\n    <tr>\r\n      <th>\r\n        <div class=\"row\">\r\n          <div class=\"col-sm-9\">\r\n            <a (click)=\"sort.emit(header)\" style=\"cursor: pointer\">\r\n              {{ header.label }}&nbsp;<span [ngClass]=\"{'fa-caret-up bi-caret-up': (header.sort === 'asc'), 'fa-caret-down bi-caret-down': (header.sort === 'desc')}\" class=\"fa bi\" *ngIf=\"header.sort\"></span>\r\n            </a>\r\n          </div>\r\n          <div class=\"col-sm-3 d-flex justify-content-end\">\r\n            Operations\r\n          </div>\r\n        </div>\r\n      </th>\r\n    </tr>\r\n  </thead>\r\n</ng-template>\r\n","import { Injectable } from '@angular/core';\r\nimport _intersection from 'lodash/intersection';\r\n\r\n@Injectable()\r\nexport class GridService {\r\n  public rows: Array<any>;\r\n  constructor() {}\r\n\r\n  setRows(rows) {\r\n    this.rows = rows;\r\n  }\r\n\r\n  getFormsPerPage() {\r\n    return this.rows?.length;\r\n  }\r\n}\r\n","import {\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n  TemplateRef,\r\n  Component,\r\n} from \"@angular/core\";\r\nimport { each, clone } from \"lodash\";\r\nimport { GridHeaderComponent } from \"./GridHeaderComponent\";\r\nimport { GridService } from \"./grid.service\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\n\r\n@Component({\r\n  template: \"\",\r\n})\r\nexport class GridBodyComponent {\r\n  @Input() header: GridHeaderComponent;\r\n  @Input() actionAllowed: any;\r\n  @Output() rowSelect: EventEmitter<any>;\r\n  @Output() rowAction: EventEmitter<any>;\r\n  @ViewChild(TemplateRef, { static: true }) template: TemplateRef<any>;\r\n  public rows: Array<any>;\r\n  public loading: Boolean;\r\n  public firstItem = 0;\r\n  public lastItem = 0;\r\n  public skip = 0;\r\n  public limit = 0;\r\n  public total = 0;\r\n  constructor(public service: GridService) {\r\n    this.rowSelect = new EventEmitter();\r\n    this.rowAction = new EventEmitter();\r\n    this.loading = true;\r\n  }\r\n\r\n  load(formio: FormioPromiseService, query?: any): Promise<any> {\r\n    return formio.loadForm(query);\r\n  }\r\n\r\n  onRowSelect(event, row) {\r\n    event.preventDefault();\r\n    this.rowSelect.emit(row);\r\n  }\r\n\r\n  onRowAction(event, row, action) {\r\n    event.preventDefault();\r\n    this.rowAction.emit({ row, action });\r\n  }\r\n\r\n  /**\r\n   * Set the rows for this Grid body.\r\n   *\r\n   * @param query\r\n   * @param items\r\n   * @return any\r\n   */\r\n  setRows(query: any, items: any) {\r\n    this.rows = [];\r\n\r\n    if (typeof items !== \"object\") {\r\n      this.firstItem = 0;\r\n      this.lastItem = 0;\r\n      this.total = 0;\r\n      this.skip = 0;\r\n      this.loading = false;\r\n      this.service.setRows(this.rows);\r\n\r\n      return this.rows;\r\n    }\r\n\r\n    this.firstItem = query.skip + 1;\r\n    this.lastItem = this.firstItem + items.length - 1;\r\n    if (this.lastItem === 0) {\r\n      this.firstItem = 0;\r\n    }\r\n    this.total = items.serverCount;\r\n    this.limit = query.limit;\r\n    this.skip = Math.floor(items.skip / query.limit) + 1;\r\n    this.loading = false;\r\n    each(items, (item: any) => {\r\n      this.rows.push(clone(item));\r\n    });\r\n    this.service.setRows(this.rows);\r\n\r\n    return this.rows;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'timeSince'\r\n})\r\nexport class TimeSince implements PipeTransform {\r\n  transform(date: Date): string {\r\n    const elapsed = (new Date().getTime() - new Date(date).getTime()) / 1000;\r\n    let interval;\r\n    if (interval >= 1) {\r\n      return interval + ' year' + (interval > 1 ? 's' : '');\r\n    }\r\n    interval = Math.floor(elapsed / 2592000);\r\n    if (interval >= 1){\r\n      return interval + ' month' + (interval > 1 ? 's' : '');\r\n    }\r\n    interval = Math.floor(elapsed / 86400);\r\n    if (interval >= 1) {\r\n      return interval + ' day' + (interval > 1 ? 's' : '');\r\n    }\r\n    interval = Math.floor(elapsed / 3600);\r\n    if (interval >= 1) {\r\n      return interval + ' hour' + (interval > 1 ? 's' : '');\r\n    }\r\n    interval = Math.floor(elapsed / 60);\r\n    if (interval >= 1) {\r\n      return interval + ' minute' + (interval > 1 ? 's' : '');\r\n    }\r\n    return Math.floor(elapsed) + ' second' + (elapsed > 1 ? 's' : '');\r\n  }\r\n}","import {\r\n  Component,\r\n  ElementRef,\r\n  OnDestroy,\r\n  ViewChild,\r\n  ViewChildren,\r\n} from \"@angular/core\";\r\nimport { GridBodyComponent } from \"../GridBodyComponent\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\nimport { Tooltip } from \"bootstrap\";\r\n@Component({\r\n  selector: \"form-grid-body\",\r\n  styleUrls: [\"./FormGridBody.component.scss\"],\r\n  templateUrl: \"./FormGridBody.component.html\",\r\n})\r\nexport class FormGridBodyComponent\r\n  extends GridBodyComponent\r\n  implements OnDestroy\r\n{\r\n  @ViewChildren(\"create\") createBtns: ElementRef[];\r\n  @ViewChildren(\"view\") viewBtns: ElementRef[];\r\n  @ViewChildren(\"edit\") editBtns: ElementRef[];\r\n  @ViewChildren(\"permissions\") permissionsBtns: ElementRef[];\r\n  @ViewChildren(\"delete\") deleteBtns: ElementRef[];\r\n  public tooltips: Array<Tooltip> = [];\r\n\r\n  load(formio: FormioPromiseService, query?: any) {\r\n    query = query || {};\r\n    return formio\r\n      .loadForms({ params: query })\r\n      .then((forms: any) => this.setRows(query, forms))\r\n      .then(() => this.attachTooltips());\r\n  }\r\n\r\n  attachTooltips() {\r\n    this.createBtns.forEach((el: ElementRef) => {\r\n      this.tooltips.push(new Tooltip(el.nativeElement, { title: \"Create\" }));\r\n    });\r\n    this.editBtns.forEach((el: ElementRef) => {\r\n      this.tooltips.push(new Tooltip(el.nativeElement, { title: \"Edit\" }));\r\n    });\r\n    this.viewBtns.forEach((el: ElementRef) => {\r\n      this.tooltips.push(new Tooltip(el.nativeElement, { title: \"View\" }));\r\n    });\r\n    this.permissionsBtns.forEach((el: ElementRef) => {\r\n      this.tooltips.push(\r\n        new Tooltip(el.nativeElement, { title: \"Permissions\" })\r\n      );\r\n    });\r\n    this.deleteBtns.forEach((el: ElementRef) => {\r\n      this.tooltips.push(new Tooltip(el.nativeElement, { title: \"Delete\" }));\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.tooltips.forEach((tootip: Tooltip) => tootip.dispose());\r\n  }\r\n}\r\n","<ng-template>\r\n  <tbody *ngIf=\"rows\">\r\n    <tr *ngFor=\"let form of rows\">\r\n      <td>\r\n        <div class=\"row\">\r\n          <div class=\"col-sm-9\">\r\n            <a routerLink=\"{{form._id}}/view\" (click)=\"onRowSelect($event, form)\" class=\"text-decoration-none\"><h5>{{ form.title }}</h5></a>\r\n            <div class=\"form-updated small text-muted\">\r\n              Updated {{ form.modified | timeSince }} ago\r\n            </div>\r\n          </div>\r\n          <div class=\"col-sm-3 d-flex justify-content-end align-items-center\">\r\n            <button #create *ngIf=\"actionAllowed('formView')\" class=\"btn btn-outline-secondary btn-sm form-btn form-btn-use\" (click)=\"onRowAction($event, form, 'view')\"><span class=\"fa fa-pencil bi bi-pencil\"></span></button>&nbsp;\r\n            <button #view *ngIf=\"actionAllowed('formSubmission')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'submission')\"><span class=\"fa fa-list-alt bi bi-table\"></span></button>&nbsp;\r\n            <button #edit *ngIf=\"actionAllowed('formEdit')\" class=\"btn btn-outline-secondary btn-sm form-btn\" (click)=\"onRowAction($event, form, 'edit')\"><span class=\"fa fa-edit bi bi-pencil-square\"></span></button>&nbsp;\r\n            <button #delete *ngIf=\"actionAllowed('formDelete')\" class=\"btn btn-secondary btn-sm form-btn form-btn-delete\" (click)=\"onRowAction($event, form, 'delete')\" title=\"Delete form\"><span class=\"fa fa-trash bi bi-trash\"></span></button>\r\n          </div>\r\n        </div>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</ng-template>\r\n","import { GridFooterPositions } from './types/grid-footer-positions';\r\nimport { Input, Output, ViewChild, TemplateRef, EventEmitter, Component } from '@angular/core';\r\nimport { GridHeaderComponent } from './GridHeaderComponent';\r\nimport { GridBodyComponent } from './GridBodyComponent';\r\n\r\n@Component({\r\n  template: ''\r\n})\r\nexport class GridFooterComponent {\r\n  @Input() header: GridHeaderComponent;\r\n  @Input() body: GridBodyComponent;\r\n  @Input() createText: String;\r\n  @Input() size: number;\r\n  @Input() actionAllowed: any;\r\n  @Output() pageChanged: EventEmitter<any>;\r\n  @Output() createItem: EventEmitter<any>;\r\n  @ViewChild(TemplateRef, {static: true}) template: TemplateRef<any>;\r\n\r\n  public footerPositions = GridFooterPositions;\r\n\r\n  constructor() {\r\n    this.pageChanged = new EventEmitter();\r\n    this.createItem = new EventEmitter();\r\n  }\r\n}\r\n","import {Component, ViewEncapsulation, OnInit } from '@angular/core';\r\nimport { GridFooterComponent } from '../GridFooterComponent';\r\n\r\n@Component({\r\n  templateUrl: './FormGridFooter.component.html',\r\n  styleUrls: ['../grid.footer.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FormGridFooterComponent extends GridFooterComponent implements OnInit {\r\n\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.createText) {\r\n      this.createText = 'Create Form';\r\n    }\r\n    if (!this.size) {\r\n      this.size = 7;\r\n    }\r\n  }\r\n}\r\n","<ng-template #footer let-position=\"position\" let-label=\"label\">\r\n  <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\r\n    <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\r\n  </thead>\r\n  <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\r\n    <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\" [ngTemplateOutletContext]=\"{ label: label }\"></ng-container>\r\n  </tfoot>\r\n</ng-template>\r\n\r\n<ng-template let-label=\"label\" #defaultFooterTemplate>\r\n  <tr>\r\n    <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\r\n      <button *ngIf=\"actionAllowed('formCreate')\" class=\"btn btn-primary form-btn-use float-start\" (click)=\"createItem.emit('form')\"><em class=\"fa fa-plus bi bi-plus-lg\"></em> {{ createText }}</button>\r\n      <span class=\"pull-right item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\r\n      <span [attr.aria-label]=\"label\" role=\"navigation\">\r\n        <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\">\r\n        </pagination>\r\n      </span>\r\n    </td>\r\n  </tr>\r\n</ng-template>\r\n","import { FormGridHeaderComponent } from './FormGridHeader.component';\r\nimport { FormGridBodyComponent } from './FormGridBody.component';\r\nimport { FormGridFooterComponent } from './FormGridFooter.component';\r\nexport default {\r\n  header: FormGridHeaderComponent,\r\n  body: FormGridBodyComponent,\r\n  footer: FormGridFooterComponent\r\n};\r\n","import { Component } from \"@angular/core\";\r\nimport { Utils, Components } from \"formiojs-colfuturo\";\r\nimport { ExtendedComponentSchema } from \"@formio/deprecated-types\";\r\nimport { GridHeaderComponent } from \"../GridHeaderComponent\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\nimport { ComponentInstance, FormioForm } from \"formioangular-colfuturo\";\r\nimport { GridColumn } from \"../types/grid-column\";\r\nimport { GridHeader, SortType } from \"../types/grid-header\";\r\n\r\n@Component({\r\n  templateUrl: \"./SubmissionGridHeader.component.html\",\r\n})\r\nexport class SubmissionGridHeaderComponent extends GridHeaderComponent {\r\n  // Map structure where the key is the path and the value is the component\r\n  formComponents: Map<string, ExtendedComponentSchema>;\r\n\r\n  load(formio: FormioPromiseService, query?: any, columns?: Array<GridColumn>) {\r\n    query = query || {};\r\n    return formio.loadForm({ params: query }).then((form: FormioForm) => {\r\n      this.headers = [];\r\n      this.formComponents = new Map<string, ExtendedComponentSchema>();\r\n      this.setComponents(form.components);\r\n      columns\r\n        ? columns.forEach((column) => {\r\n            this.setHeader(\r\n              this.getHeaderForColumn(\r\n                column,\r\n                this.formComponents.get(column.path)\r\n              )\r\n            );\r\n          })\r\n        : this.setComponentsHeaders(this.formComponents);\r\n\r\n      return this.headers;\r\n    });\r\n  }\r\n\r\n  setHeader(header: GridHeader) {\r\n    this.headers.push(header);\r\n  }\r\n\r\n  getHeaderForColumn(\r\n    column: GridColumn,\r\n    component?: ExtendedComponentSchema,\r\n    sort?: SortType\r\n  ) {\r\n    return {\r\n      label: column.label,\r\n      key: column.path,\r\n      sort: sort,\r\n      component: component\r\n        ? (Components.create(component, null, null) as ComponentInstance)\r\n        : undefined,\r\n      renderCell: column ? column.renderCell : undefined,\r\n    };\r\n  }\r\n\r\n  getHeaderForComponent(\r\n    component: ExtendedComponentSchema,\r\n    path: string,\r\n    sort?: SortType\r\n  ) {\r\n    return {\r\n      label: component.label,\r\n      key: path,\r\n      sort: sort,\r\n      component: component\r\n        ? (Components.create(component, null, null) as ComponentInstance)\r\n        : undefined,\r\n    };\r\n  }\r\n  // Set headers from components in case if columns are not provided\r\n  setComponentsHeaders(\r\n    components: Map<string, ExtendedComponentSchema>,\r\n    sort?: SortType\r\n  ) {\r\n    components.forEach((component, path) => {\r\n      if (\r\n        component.input &&\r\n        (!component.hasOwnProperty(\"tableView\") || component.tableView)\r\n      ) {\r\n        this.setHeader(this.getHeaderForComponent(component, path, sort));\r\n      }\r\n    });\r\n  }\r\n\r\n  // Map components\r\n  setComponents(components) {\r\n    Utils.eachComponent(\r\n      components,\r\n      (component: ExtendedComponentSchema, newPath: string) => {\r\n        this.formComponents.set(`data.${newPath}`, component);\r\n      }\r\n    );\r\n  }\r\n}\r\n","<ng-template>\r\n  <thead>\r\n    <tr>\r\n      <th *ngFor=\"let header of headers\">\r\n        <a (click)=\"sort.emit(header)\">\r\n          {{ header.label }}&nbsp;<span [ngClass]=\"{'fa-caret-up bi-caret-up': (header.sort === 'asc'), 'fa-caret-down bi-caret-down': (header.sort === 'desc')}\" class=\"fa bi\" *ngIf=\"header.sort\"></span>\r\n        </a>\r\n      </th>\r\n    </tr>\r\n  </thead>\r\n</ng-template>\r\n","import { Component } from \"@angular/core\";\r\nimport { each, get } from \"lodash\";\r\nimport { GridBodyComponent } from \"../GridBodyComponent\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\nimport { GridHeader } from \"../types/grid-header\";\r\nimport { FormioSubmission } from \"formioangular-colfuturo\";\r\n@Component({\r\n  templateUrl: \"./SubmissionGridBody.component.html\",\r\n})\r\nexport class SubmissionGridBodyComponent extends GridBodyComponent {\r\n  load(formio: FormioPromiseService, query?: any) {\r\n    query = query || {};\r\n    return formio\r\n      .loadSubmissions({ params: query })\r\n      .then((submissions: any) => this.setRows(query, submissions));\r\n  }\r\n\r\n  /**\r\n   * Render the cell data.\r\n   *\r\n   * @param submission\r\n   * @param header\r\n   * @return any\r\n   */\r\n  view(submission: FormioSubmission, header: GridHeader): string {\r\n    const cellValue: any = get(submission, header.key);\r\n    if (header.renderCell) {\r\n      return header.renderCell(cellValue, header.component);\r\n    } else {\r\n      if (header.component) {\r\n        if (header.component.getView) {\r\n          return header.component.getView(cellValue);\r\n        }\r\n        return header.component.asString(cellValue);\r\n      } else {\r\n        return cellValue.toString();\r\n      }\r\n    }\r\n  }\r\n}\r\n","<ng-template>\r\n  <tbody>\r\n    <tr *ngFor=\"let row of rows\" (click)=\"onRowSelect($event, row)\">\r\n      <td *ngFor=\"let rowHeader of header.headers\" [innerHTML]=\"view(row, rowHeader)\"></td>\r\n    </tr>\r\n  </tbody>\r\n</ng-template>\r\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport { GridFooterComponent } from '../GridFooterComponent';\r\n\r\n@Component({\r\n  templateUrl: './SubmissionGridFooter.component.html',\r\n  styleUrls: ['../grid.footer.scss'],\r\n  encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SubmissionGridFooterComponent extends GridFooterComponent implements OnInit {\r\n\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (!this.size) {\r\n      this.size = 7;\r\n    }\r\n  }\r\n}\r\n","<ng-template #footer let-position=\"position\">\r\n  <thead class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.top\">\r\n    <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\r\n  </thead>\r\n  <tfoot class=\"formio-grid-footer\" *ngIf=\"position === footerPositions.bottom\">\r\n    <ng-container [ngTemplateOutlet]=\"defaultFooterTemplate\"></ng-container>\r\n  </tfoot>\r\n</ng-template>\r\n\r\n<ng-template #defaultFooterTemplate>\r\n  <tr>\r\n    <td *ngIf=\"header\" [colSpan]=\"header.numHeaders\">\r\n      <button *ngIf=\"actionAllowed('submissionCreate') && createText\" class=\"btn btn-primary float-start\" (click)=\"createItem.emit('form')\"><em class=\"fa fa-plus bi bi-plus\"></em> {{ createText }}</button>\r\n      <span class=\"float-end item-counter\"><span class=\"page-num\">{{ body.firstItem }} - {{ body.lastItem }}</span> / {{ body.total }} total</span>\r\n      <pagination [totalItems]=\"body.total\" [itemsPerPage]=\"body.limit\" [(ngModel)]=\"body.skip\" (pageChanged)=\"pageChanged.emit($event)\" [maxSize]=\"size\" class=\"justify-content-center pagination-sm\"></pagination>\r\n    </td>\r\n  </tr>\r\n</ng-template>\r\n","import { SubmissionGridHeaderComponent } from './SubmissionGridHeader.component';\r\nimport { SubmissionGridBodyComponent } from './SubmissionGridBody.component';\r\nimport { SubmissionGridFooterComponent } from './SubmissionGridFooter.component';\r\nexport default {\r\n  header: SubmissionGridHeaderComponent,\r\n  body: SubmissionGridBodyComponent,\r\n  footer: SubmissionGridFooterComponent\r\n};\r\n","import { GridFooterPositions } from \"./types/grid-footer-positions\";\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ComponentFactoryResolver,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { FormioAlerts } from \"formioangular-colfuturo\";\r\nimport { each } from \"lodash\";\r\nimport { FormioCore as Formio } from \"formiojs-colfuturo\";\r\nimport { GridHeaderComponent } from \"./GridHeaderComponent\";\r\nimport { GridBodyComponent } from \"./GridBodyComponent\";\r\nimport { GridFooterComponent } from \"./GridFooterComponent\";\r\nimport FormComponents from \"./form/index\";\r\nimport SubmissionComponents from \"./submission/index\";\r\nimport { FormioPromiseService } from \"formioangular-colfuturo\";\r\nimport { GridColumn } from \"./types/grid-column\";\r\nimport { GridHeader, SortType } from \"./types/grid-header\";\r\n\r\n@Component({\r\n  selector: \"formio-grid\",\r\n  styleUrls: [\"./grid.component.scss\"],\r\n  templateUrl: \"./grid.component.html\",\r\n})\r\nexport class FormioGridComponent implements OnChanges, OnInit, AfterViewInit {\r\n  @Input() footerPosition = GridFooterPositions.bottom;\r\n  @Input() src?: string;\r\n  @Input() items?: Array<any>;\r\n  @Input() onForm?: Promise<any>;\r\n  @Input() query?: any;\r\n  @Input() refresh?: EventEmitter<object>;\r\n  @Input() columns?: Array<GridColumn>;\r\n  @Input() gridType?: string;\r\n  @Input() size?: number;\r\n  @Input() components?: any;\r\n  @Input() formio?: FormioPromiseService;\r\n  @Input() label?: string;\r\n  @Input() createText: String;\r\n  @Input() isActionAllowed: any;\r\n  @Output() select: EventEmitter<object>;\r\n  @Output() rowSelect: EventEmitter<object>;\r\n  @Output() rowAction: EventEmitter<object>;\r\n  @Output() createItem: EventEmitter<any>;\r\n  @Output() error: EventEmitter<any>;\r\n  @ViewChild(\"headerTemplate\", { read: ViewContainerRef, static: true })\r\n  headerElement: ViewContainerRef;\r\n  @ViewChild(\"bodyTemplate\", { read: ViewContainerRef, static: true })\r\n  bodyElement: ViewContainerRef;\r\n  @ViewChild(\"footerTemplate\", { read: ViewContainerRef, static: true })\r\n  footerElement: ViewContainerRef;\r\n\r\n  public page = 0;\r\n  public isLoading = false;\r\n  public initialized = false;\r\n  public header: GridHeaderComponent;\r\n  public body: GridBodyComponent;\r\n  public footer: GridFooterComponent;\r\n  public footerPositions = GridFooterPositions;\r\n\r\n  constructor(\r\n    public alerts: FormioAlerts,\r\n    private resolver: ComponentFactoryResolver,\r\n    private ref: ChangeDetectorRef\r\n  ) {\r\n    this.select = this.rowSelect = new EventEmitter();\r\n    this.rowAction = new EventEmitter();\r\n    this.createItem = new EventEmitter();\r\n    this.error = new EventEmitter();\r\n    this.isLoading = true;\r\n  }\r\n\r\n  createComponent(property, component) {\r\n    const factory = this.resolver.resolveComponentFactory(component);\r\n    const componentRef = property.createComponent(factory);\r\n    return componentRef.instance;\r\n  }\r\n\r\n  loadGrid(src?: string) {\r\n    // If no source is provided, then skip.\r\n    if (!src && !this.formio) {\r\n      return;\r\n    }\r\n    // Do not double load.\r\n    if (this.formio && this.src && src === this.src) {\r\n      return;\r\n    }\r\n\r\n    if (src) {\r\n      this.src = src;\r\n      this.formio = new FormioPromiseService(this.src, { formOnly: true });\r\n    }\r\n\r\n    // Load the header.\r\n    this.header\r\n      .load(this.formio, {}, this.columns)\r\n      .then(() => this.setPage(0))\r\n      .catch((error) => this.onError(error));\r\n  }\r\n\r\n  ngOnInit() {\r\n    // Create our components.\r\n    const comps =\r\n      this.components ||\r\n      (this.gridType === \"form\" ? FormComponents : SubmissionComponents);\r\n\r\n    this.header = this.createComponent(this.headerElement, comps.header);\r\n    this.header.actionAllowed = this.actionAllowed.bind(this);\r\n    this.header.sort.subscribe((header) => this.sortColumn(header));\r\n\r\n    this.body = this.createComponent(this.bodyElement, comps.body);\r\n    this.body.header = this.header;\r\n    this.body.actionAllowed = this.actionAllowed.bind(this);\r\n    this.body.rowSelect.subscribe((row) => this.rowSelect.emit(row));\r\n    this.body.rowAction.subscribe((action) => this.rowAction.emit(action));\r\n\r\n    this.footer = this.createComponent(this.footerElement, comps.footer);\r\n    this.footer.header = this.header;\r\n    this.footer.body = this.body;\r\n    this.footer.actionAllowed = this.actionAllowed.bind(this);\r\n    this.footer.createText = this.createText;\r\n    this.footer.size = this.size;\r\n    this.footer.pageChanged.subscribe((page) => this.pageChanged(page));\r\n    this.footer.createItem.subscribe((item) => this.createItem.emit(item));\r\n  }\r\n\r\n  ngOnChanges(changes: any) {\r\n    if (this.initialized) {\r\n      if (\r\n        (changes.src && changes.src.currentValue) ||\r\n        (changes.formio && changes.formio.currentValue)\r\n      ) {\r\n        this.loadGrid(changes.src.currentValue);\r\n      }\r\n\r\n      if (changes.items && changes.items.currentValue) {\r\n        this.refreshGrid();\r\n      }\r\n    }\r\n\r\n    if (this.footer && changes.createText && changes.createText.currentValue) {\r\n      this.footer.createText = changes.createText.currentValue;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.alerts.setAlerts([]);\r\n    this.query = this.query || {};\r\n    if (this.refresh) {\r\n      this.refresh.subscribe((query: object) => this.refreshGrid(query));\r\n    }\r\n    this.loadGrid(this.src);\r\n    this.initialized = true;\r\n    this.ref.detectChanges();\r\n  }\r\n\r\n  actionAllowed(action) {\r\n    if (this.isActionAllowed) {\r\n      return this.isActionAllowed(action);\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n\r\n  onError(error: any) {\r\n    this.isLoading = false;\r\n    this.error.emit(error);\r\n    if (typeof error === \"string\" || error.message) {\r\n      this.alerts.setAlert({\r\n        type: \"danger\",\r\n        message: error.message || error,\r\n      });\r\n    }\r\n  }\r\n\r\n  refreshGrid(query?: any) {\r\n    this.alerts.setAlerts([]);\r\n    this.query = query || this.query;\r\n    if (!this.query.hasOwnProperty(\"limit\")) {\r\n      this.query.limit = 10;\r\n    }\r\n    if (!this.query.hasOwnProperty(\"skip\")) {\r\n      this.query.skip = 0;\r\n    }\r\n    this.isLoading = true;\r\n    this.ref.detectChanges();\r\n    Formio.cache = {};\r\n    let loader = null;\r\n    if (this.items) {\r\n      loader = Promise.resolve(this.body.setRows(this.query, this.items));\r\n    } else {\r\n      loader = this.body.load(this.formio, this.query);\r\n    }\r\n\r\n    return loader\r\n      .then((info) => {\r\n        this.isLoading = false;\r\n        this.initialized = true;\r\n        this.ref.detectChanges();\r\n      })\r\n      .catch((error) => this.onError(error));\r\n  }\r\n\r\n  setPage(num = -1) {\r\n    this.page = num !== -1 ? num : this.page;\r\n    if (!this.query.hasOwnProperty(\"limit\")) {\r\n      this.query.limit = 10;\r\n    }\r\n    if (!this.query.hasOwnProperty(\"skip\")) {\r\n      this.query.skip = 0;\r\n    }\r\n    this.query.skip = this.page * this.query.limit;\r\n    this.refreshGrid();\r\n  }\r\n\r\n  sortColumn(header: GridHeader) {\r\n    // Reset all other column sorts.\r\n    each(this.header.headers, (col: any) => {\r\n      if (col.key !== header.key) {\r\n        col.sort = \"\";\r\n      }\r\n    });\r\n    switch (header.sort) {\r\n      case \"asc\":\r\n        header.sort = SortType.DESC;\r\n        this.query.sort = \"-\" + header.key;\r\n        break;\r\n      case \"desc\":\r\n        header.sort = undefined;\r\n        delete this.query.sort;\r\n        break;\r\n      case undefined:\r\n        header.sort = SortType.ASC;\r\n        this.query.sort = header.key;\r\n        break;\r\n    }\r\n    this.refreshGrid();\r\n  }\r\n\r\n  pageChanged(page: any) {\r\n    this.setPage(page.page - 1);\r\n  }\r\n}\r\n","<ng-template #headerTemplate></ng-template>\r\n<ng-template #bodyTemplate></ng-template>\r\n<ng-template #footerTemplate></ng-template>\r\n<div class=\"formio-grid\">\r\n  <formio-alerts [alerts]=\"alerts\"></formio-alerts>\r\n  <table class=\"table table-bordered table-striped table-hover\">\r\n    <ng-container *ngIf=\"initialized && [footerPositions.top, footerPositions.both].indexOf(footerPosition) !== -1\"\r\n      [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.top, label: label }\">\r\n    </ng-container>\r\n    <ng-container *ngIf=\"initialized\"\r\n      [ngTemplateOutlet]=\"header.template\"></ng-container>\r\n    <formio-loader [isLoading]=\"isLoading\"></formio-loader>\r\n    <ng-container *ngIf=\"initialized\" [ngTemplateOutlet]=\"body.template\"></ng-container>\r\n    <ng-container *ngIf=\"initialized && [footerPositions.bottom, footerPositions.both].indexOf(footerPosition) !== -1\"\r\n      [ngTemplateOutlet]=\"footer.template\" [ngTemplateOutletContext]=\"{ position: footerPositions.bottom, label: label }\">\r\n    </ng-container>\r\n  </table>\r\n</div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { FormioModule } from \"formioangular-colfuturo\";\r\nimport { FormioAlerts } from \"formioangular-colfuturo\";\r\nimport { FormioGridComponent } from \"./grid.component\";\r\nimport { PaginationModule } from \"ngx-bootstrap/pagination\";\r\nimport { FormGridHeaderComponent } from \"./form/FormGridHeader.component\";\r\nimport { FormGridBodyComponent } from \"./form/FormGridBody.component\";\r\nimport { FormGridFooterComponent } from \"./form/FormGridFooter.component\";\r\nimport { SubmissionGridHeaderComponent } from \"./submission/SubmissionGridHeader.component\";\r\nimport { SubmissionGridBodyComponent } from \"./submission/SubmissionGridBody.component\";\r\nimport { SubmissionGridFooterComponent } from \"./submission/SubmissionGridFooter.component\";\r\nimport { GridHeaderComponent } from \"./GridHeaderComponent\";\r\nimport { GridBodyComponent } from \"./GridBodyComponent\";\r\nimport { GridFooterComponent } from \"./GridFooterComponent\";\r\nimport { GridService } from \"./grid.service\";\r\nimport { TimeSince } from \"./form/time-since.pipe\";\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    FormioModule,\r\n    RouterModule,\r\n    PaginationModule.forRoot(),\r\n  ],\r\n  declarations: [\r\n    FormioGridComponent,\r\n    FormGridHeaderComponent,\r\n    FormGridBodyComponent,\r\n    FormGridFooterComponent,\r\n    SubmissionGridHeaderComponent,\r\n    SubmissionGridBodyComponent,\r\n    SubmissionGridFooterComponent,\r\n    GridHeaderComponent,\r\n    GridBodyComponent,\r\n    GridFooterComponent,\r\n    TimeSince,\r\n  ],\r\n  exports: [FormioGridComponent],\r\n  providers: [FormioAlerts, GridService],\r\n})\r\nexport class FormioGrid {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GridService","i3.TimeSince","i2","Formio","i1"],"mappings":"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"}