UNPKG

bitfront-library

Version:

Angular CLI project with components and classes used by other Angular projects of the BIT foundation.

150 lines 7.18 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseTableViewComponent = void 0; var core_1 = require("@angular/core"); var table_1 = require("primeng/table"); var moment = require("moment"); var domain_cached_service_1 = require("../../shared/service/domain-cached.service"); var tableview_service_1 = require("../../shared/service/tableview.service"); var base_filter_1 = require("../shared/base.filter"); var i0 = require("@angular/core"); var i1 = require("../../shared/service/domain-cached.service"); var i2 = require("../../shared/service/tableview.service"); var _c0 = ["dataTable"]; /** * Clase base de los componentes TableView */ var BaseTableViewComponent = /** @class */ (function () { function BaseTableViewComponent(domainCachedService, tableViewService) { var _this = this; this.totalItems = 0; this.onPageChange = new core_1.EventEmitter(); this.csvSeparator = ","; this.RESULTADOS_PAGE = base_filter_1.BaseFilter.RESULTADOS_PAGE; // se hace visible esta variable a cualquier subclase de tableview que pudiera necesitarla this.domainCachedService = domainCachedService; this.tableViewService = tableViewService; this.subscriptionMessages = tableViewService.observableExport.subscribe(function (message) { _this.exportCSV(); }); } BaseTableViewComponent.prototype.exportCSV = function () { var dt = this.dataTable; if (dt == null) { alert("Exportació no disponible"); return; } dt.exportCSV(); }; BaseTableViewComponent.prototype.getDataTable = function () { return null; }; BaseTableViewComponent.prototype.getColumna = function (record, field) { return null; }; BaseTableViewComponent.prototype.getColumnaDominio = function (dominio, valor) { var domainMatch = dominio && dominio.find(function (obj) { return obj.value == valor; }); if (domainMatch) { return domainMatch.label; } else if (valor) { return String("??" + valor + "??"); } return ""; }; BaseTableViewComponent.prototype.ngOnDestroy = function () { this.subscriptionMessages.unsubscribe(); }; BaseTableViewComponent.prototype.pageChanged = function (event) { console.log("pageChanged(" + event + ")"); this.onPageChange.emit(event.page + 1); }; /** * Método de ordenación de campos de fecha. * @see Adaptación de: https://stackoverflow.com/questions/41181277/primeng-datatable-custom-sorting-or-filtering-angular-2 */ BaseTableViewComponent.prototype.dateSort = function (event, field) { var comparer = function (a, b) { var formatedA = a[field] ? moment(a[field], "DD/MM/YYYY").format("YYYY-MM-DD") : "-"; var formatedB = b[field] ? moment(b[field], "DD/MM/YYYY").format("YYYY-MM-DD") : "-"; // let result = -1; if (moment(formatedB).isBefore(formatedA, 'day')) { result = 1; } var result = formatedA.localeCompare(formatedB); return result * event.order; }; var strcmp = function (a, b) { if (a.toString() < b.toString()) { return -1; } if (a.toString() > b.toString()) { return 1; } return 0; }; this.items.sort(comparer); this.items = __spreadArrays(this.items); }; /**Función de ordenación de columnas de los p-table de prime */ BaseTableViewComponent.prototype.customColumnsSort = function (event, items) { var field = event.field; var vregexFecha = /^(0[1-9]|[1-2]\d|3[01])(\/)(0[1-9]|1[012])\2(\d{4})$/; var vregexFechaHora = /^(0[1-9]|[1-2]\d|3[01])(\/)(0[1-9]|1[012])\2(\d{4}) [012][0-9]:[0-6][0-9]$/; items.sort(function (a, b) { // comparamos DD/MM/YYYY if (vregexFecha.test(a[field]) && vregexFecha.test(b[field])) { var fechaA = a[field].substring(6) + a[field].substring(3, 5) + a[field].substring(0, 2); var fechaB = b[field].substring(6) + b[field].substring(3, 5) + b[field].substring(0, 2); var sortDesc = fechaA < fechaB ? (event.order === 1 ? 1 : -1) : 0; return fechaA > fechaB ? (event.order === 1 ? -1 : 1) : sortDesc; } // comparamos DD/MM/YYYY HH:MM else if (vregexFechaHora.test(a[field]) && vregexFechaHora.test(b[field])) { var fechaHoraA = a[field].substring(6, 10) + a[field].substring(3, 5) + a[field].substring(0, 2) + a[field].substring(11, 13) + a[field].substring(14); var fechaHoraB = b[field].substring(6, 10) + b[field].substring(3, 5) + b[field].substring(0, 2) + b[field].substring(11, 13) + b[field].substring(14); var sortDesc = fechaHoraA < fechaHoraB ? (event.order === 1 ? 1 : -1) : 0; return fechaHoraA > fechaHoraB ? (event.order === 1 ? -1 : 1) : sortDesc; } else { var sortDesc = a[field] < b[field] ? (event.order === 1 ? 1 : -1) : 0; return a[field] > b[field] ? (event.order === 1 ? -1 : 1) : sortDesc; } }); return __spreadArrays(items); }; BaseTableViewComponent.ɵfac = function BaseTableViewComponent_Factory(t) { return new (t || BaseTableViewComponent)(i0.ɵɵdirectiveInject(i1.DomainCachedService), i0.ɵɵdirectiveInject(i2.TableViewService)); }; BaseTableViewComponent.ɵdir = i0.ɵɵdefineDirective({ type: BaseTableViewComponent, viewQuery: function BaseTableViewComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 1); } if (rf & 2) { var _t = void 0; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dataTable = _t.first); } }, inputs: { totalItems: "totalItems" }, outputs: { onPageChange: "onPageChange" } }); return BaseTableViewComponent; }()); exports.BaseTableViewComponent = BaseTableViewComponent; (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseTableViewComponent, [{ type: core_1.Directive }], function () { return [{ type: i1.DomainCachedService }, { type: i2.TableViewService }]; }, { dataTable: [{ type: core_1.ViewChild, args: ["dataTable"] }], totalItems: [{ type: core_1.Input }], onPageChange: [{ type: core_1.Output }] }); })(); //# sourceMappingURL=base-tableview.component.js.map