ngx-wapp-components 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -925,10 +925,10 @@ class WTableComponent {
925
925
  }
926
926
  }
927
927
  WTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTableComponent, deps: [{ token: i1$2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
928
- WTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTableComponent, selector: "w-table", inputs: { elements: "elements", rowsPerPage: "rowsPerPage", loading: "loading", wappTableObject: "wappTableObject" }, outputs: { onElementSelect: "onElementSelect", onViewElementSelect: "onViewElementSelect", onCopyElementSelect: "onCopyElementSelect", onEditElementSelect: "onEditElementSelect", onCustomElementSelect: "onCustomElementSelect", onDeleteElementSelect: "onDeleteElementSelect", onNewElementSelect: "onNewElementSelect" }, providers: [ConfirmationService], viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "dataTable", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\" \r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"true\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [totalRecords]=\"totalRecords\" [showCurrentPageReport]=\"true\" \r\n [rows]=\"rowsPerPage\"\r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [globalFilterFields]=\"wappTableObject.globalFilterFields!\" responsiveLayout=\"scroll\"\r\n [rowHover]=\"true\" [tableStyle]=\"{'min-width': '70rem'}\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton [label]=\"wappTableObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"onGlobalFilter(table, $event)\" \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else hasNotSortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #hasNotSortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" [class]=\"wappTableObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableObject.sortableNames[i] != null\" [field]=\"wappTableObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [style]=\"\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template> </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n <!-- ToDo hacer componente badge -->\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton && !wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No elements.</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td colspan=\"8\">Loading elements.</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n <ng-template #loadingTable>\r\n <p-table class=\"wapp-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"true\" [rows]=\"rowsPerPage\" [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\" \r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords : 'Showing ' + rowsPerPage + ' of ' + totalRecords\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton label=\"Clear\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else selectAllCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #selectAllCheckbox><th></th></ng-template>\r\n <th *ngFor=\"let header of wappTableObject?.headers\">\r\n {{header}}\r\n </th>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n <tr height=\"70px\">\r\n <td *ngFor=\"let item of wappTableObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableObject.hasEditButton || wappTableObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i10.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i10.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i10.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i10.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }] });
928
+ WTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTableComponent, selector: "w-table", inputs: { elements: "elements", rowsPerPage: "rowsPerPage", loading: "loading", wappTableObject: "wappTableObject" }, outputs: { onElementSelect: "onElementSelect", onViewElementSelect: "onViewElementSelect", onCopyElementSelect: "onCopyElementSelect", onEditElementSelect: "onEditElementSelect", onCustomElementSelect: "onCustomElementSelect", onDeleteElementSelect: "onDeleteElementSelect", onNewElementSelect: "onNewElementSelect" }, providers: [ConfirmationService], viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "dataTable", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\" \r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"true\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [totalRecords]=\"totalRecords\" [showCurrentPageReport]=\"true\" \r\n [rows]=\"rowsPerPage\"\r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [globalFilterFields]=\"wappTableObject.globalFilterFields!\" responsiveLayout=\"scroll\"\r\n [rowHover]=\"true\" [tableStyle]=\"{'min-width': '70rem'}\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton [label]=\"wappTableObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"onGlobalFilter(table, $event)\" \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else hasNotSortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #hasNotSortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" [class]=\"wappTableObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableObject.sortableNames[i] != null\" [field]=\"wappTableObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [style]=\"\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template> </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n <!-- ToDo hacer componente badge -->\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton && !wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No elements.</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td colspan=\"8\">Loading elements.</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n <ng-template #loadingTable>\r\n <p-table class=\"wapp-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"true\" [rows]=\"rowsPerPage\" [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\" \r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords : 'Showing ' + rowsPerPage + ' of ' + totalRecords\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton label=\"Clear\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else selectAllCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #selectAllCheckbox><th></th></ng-template>\r\n <th *ngFor=\"let header of wappTableObject?.headers\">\r\n {{header}}\r\n </th>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n <tr height=\"70px\">\r\n <td *ngFor=\"let item of wappTableObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableObject.hasEditButton || wappTableObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i10.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i10.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i10.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i10.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }] });
929
929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTableComponent, decorators: [{
930
930
  type: Component,
931
- args: [{ selector: 'w-table', providers: [ConfirmationService], template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\" \r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"true\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [totalRecords]=\"totalRecords\" [showCurrentPageReport]=\"true\" \r\n [rows]=\"rowsPerPage\"\r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [globalFilterFields]=\"wappTableObject.globalFilterFields!\" responsiveLayout=\"scroll\"\r\n [rowHover]=\"true\" [tableStyle]=\"{'min-width': '70rem'}\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton [label]=\"wappTableObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"onGlobalFilter(table, $event)\" \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else hasNotSortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #hasNotSortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" [class]=\"wappTableObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableObject.sortableNames[i] != null\" [field]=\"wappTableObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [style]=\"\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template> </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n <!-- ToDo hacer componente badge -->\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton && !wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No elements.</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td colspan=\"8\">Loading elements.</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n <ng-template #loadingTable>\r\n <p-table class=\"wapp-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"true\" [rows]=\"rowsPerPage\" [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\" \r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords : 'Showing ' + rowsPerPage + ' of ' + totalRecords\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton label=\"Clear\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else selectAllCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #selectAllCheckbox><th></th></ng-template>\r\n <th *ngFor=\"let header of wappTableObject?.headers\">\r\n {{header}}\r\n </th>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n <tr height=\"70px\">\r\n <td *ngFor=\"let item of wappTableObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableObject.hasEditButton || wappTableObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
931
+ args: [{ selector: 'w-table', providers: [ConfirmationService], template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\" \r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"true\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [totalRecords]=\"totalRecords\" [showCurrentPageReport]=\"true\" \r\n [rows]=\"rowsPerPage\"\r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [globalFilterFields]=\"wappTableObject.globalFilterFields!\" responsiveLayout=\"scroll\"\r\n [rowHover]=\"true\" [tableStyle]=\"{'min-width': '70rem'}\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton [label]=\"wappTableObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"onGlobalFilter(table, $event)\" \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else hasNotSortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #hasNotSortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" [class]=\"wappTableObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableObject.sortableNames[i] != null\" [field]=\"wappTableObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [style]=\"\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template> </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\">\r\n <!-- ToDo hacer componente badge -->\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton && !wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"8\">No elements.</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td colspan=\"8\">Loading elements.</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n \r\n <ng-template #loadingTable>\r\n <p-table class=\"wapp-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"true\" [rows]=\"rowsPerPage\" [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\" \r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords : 'Showing ' + rowsPerPage + ' of ' + totalRecords\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableObject.hasClearButton\" pButton label=\"Clear\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter \r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox; else selectAllCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #selectAllCheckbox><th></th></ng-template>\r\n <th *ngFor=\"let header of wappTableObject?.headers\">\r\n {{header}}\r\n </th>\r\n <th *ngIf=\"wappTableObject.hasDeleteButton || wappTableObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n <tr height=\"70px\">\r\n <td *ngFor=\"let item of wappTableObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableObject.hasEditButton || wappTableObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
932
932
  }], ctorParameters: function () { return [{ type: i1$2.ConfirmationService }]; }, propDecorators: { elements: [{
933
933
  type: Input,
934
934
  args: ['elements']
@@ -1138,10 +1138,10 @@ class WTableLazyComponent {
1138
1138
  }
1139
1139
  }
1140
1140
  WTableLazyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTableLazyComponent, deps: [{ token: i1$2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
1141
- WTableLazyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTableLazyComponent, selector: "w-table-lazy", inputs: { loading: "loading", elements: "elements", rowsPerPage: "rowsPerPage", allElements: "allElements", totalRecords: "totalRecords", maxRowsPerPage: "maxRowsPerPage", wappTableLazyLoadingObject: "wappTableLazyLoadingObject" }, outputs: { queryElements: "queryElements", onElementSelect: "onElementSelect", onViewElementSelect: "onViewElementSelect", onCustomElementSelect: "onCustomElementSelect", onCopyElementSelect: "onCopyElementSelect", onEditElementSelect: "onEditElementSelect", onDeleteElementSelect: "onDeleteElementSelect", onAllElementSelect: "onAllElementSelect" }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\"\r\n #table [value]=\"elements\" [lazy]=\"true\" (onLazyLoad)=\"loadElements($event)\" dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [tableStyle]=\"{'min-width': '70rem'}\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\" \r\n [currentPageReportTemplate]=\"wappTableLazyLoadingObject.currentPageReportTemplate ? wappTableLazyLoadingObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject.hasClearButton || wappTableLazyLoadingObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableLazyLoadingObject.hasClearButton\" pButton [label]=\"wappTableLazyLoadingObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"maxRowsPerPage\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\"\r\n (ngModelChange)=\"reloadElements()\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input class=\"height-input wapp-input\" pInputText type=\"text\" (input)=\"table.filterGlobal($event, 'contains')\" placeholder=\"{{wappTableLazyLoadingObject.searchPlaceholder}}\" />\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableLazyLoadingObject.hasColumnFilters && wappTableLazyLoadingObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #something>\r\n <ng-template #something ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableLazyLoadingObject.sortableNames[i]\" [class]=\"wappTableLazyLoadingObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableLazyLoadingObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableLazyLoadingObject.sortableNames[i] != null\" [field]=\"wappTableLazyLoadingObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" style=\"text-align: center;\" ></th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\">\r\n <p-columnFilter [field]=\"wappTableLazyLoadingObject.filterNames[i]\" matchMode=\"in\" [showMenu]=\"false\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" appendTo=\"body\" [options]=\"wappTableLazyLoadingObject.selectFilterElements[i]\" placeholder=\"Any\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" [maxSelectedLabels]=\"1\" [selectedItemsLabel]=\"'{0} items'\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-1\">{{option.name}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.None\"></th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Boolean\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\">\r\n <p-columnFilter type=\"date\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableLazyLoadingObject.columnTypes\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableLazyLoadingObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" />\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n <p>ToDo wapp view badge</p>\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement($event)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr height=\"70px\" *ngFor=\"let n of [0,1,2,3,4]\">\r\n <td *ngFor=\"let item of wappTableLazyLoadingObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item == tableColumnTypes.Image\" width=\"6rem\" height=\"4rem\"></p-skeleton>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox && item != tableColumnTypes.Image\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0px;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.element-image-width{height:32px;width:auto}.image-header{text-align:center!important}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i8.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "label", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i10.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i10.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i10.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i10.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i10.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }] });
1141
+ WTableLazyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTableLazyComponent, selector: "w-table-lazy", inputs: { loading: "loading", elements: "elements", rowsPerPage: "rowsPerPage", allElements: "allElements", totalRecords: "totalRecords", maxRowsPerPage: "maxRowsPerPage", wappTableLazyLoadingObject: "wappTableLazyLoadingObject" }, outputs: { queryElements: "queryElements", onElementSelect: "onElementSelect", onViewElementSelect: "onViewElementSelect", onCustomElementSelect: "onCustomElementSelect", onCopyElementSelect: "onCopyElementSelect", onEditElementSelect: "onEditElementSelect", onDeleteElementSelect: "onDeleteElementSelect", onAllElementSelect: "onAllElementSelect" }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: ["table"], descendants: true }], ngImport: i0, template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\"\r\n #table [value]=\"elements\" [lazy]=\"true\" (onLazyLoad)=\"loadElements($event)\" dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [tableStyle]=\"{'min-width': '70rem'}\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\" \r\n [currentPageReportTemplate]=\"wappTableLazyLoadingObject.currentPageReportTemplate ? wappTableLazyLoadingObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject.hasClearButton || wappTableLazyLoadingObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableLazyLoadingObject.hasClearButton\" pButton [label]=\"wappTableLazyLoadingObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"maxRowsPerPage\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\"\r\n (ngModelChange)=\"reloadElements()\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input class=\"height-input wapp-input\" pInputText type=\"text\" (input)=\"table.filterGlobal($event, 'contains')\" placeholder=\"{{wappTableLazyLoadingObject.searchPlaceholder}}\" />\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableLazyLoadingObject.hasColumnFilters && wappTableLazyLoadingObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #something>\r\n <ng-template #something ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableLazyLoadingObject.sortableNames[i]\" [class]=\"wappTableLazyLoadingObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableLazyLoadingObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableLazyLoadingObject.sortableNames[i] != null\" [field]=\"wappTableLazyLoadingObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" style=\"text-align: center;\" ></th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\">\r\n <p-columnFilter [field]=\"wappTableLazyLoadingObject.filterNames[i]\" matchMode=\"in\" [showMenu]=\"false\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" appendTo=\"body\" [options]=\"wappTableLazyLoadingObject.selectFilterElements[i]\" placeholder=\"Any\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" [maxSelectedLabels]=\"1\" [selectedItemsLabel]=\"'{0} items'\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-1\">{{option.name}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.None\"></th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Boolean\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\">\r\n <p-columnFilter type=\"date\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableLazyLoadingObject.columnTypes\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableLazyLoadingObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" />\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n <p>ToDo wapp view badge</p>\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement($event)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr height=\"70px\" *ngFor=\"let n of [0,1,2,3,4]\">\r\n <td *ngFor=\"let item of wappTableLazyLoadingObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item == tableColumnTypes.Image\" width=\"6rem\" height=\"4rem\"></p-skeleton>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox && item != tableColumnTypes.Image\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0px;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.element-image-width{height:32px;width:auto}.image-header{text-align:center!important}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i8.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "label", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i10.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i10.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i10.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i10.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i10.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "pipe", type: i2$1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }] });
1142
1142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTableLazyComponent, decorators: [{
1143
1143
  type: Component,
1144
- args: [{ selector: 'w-table-lazy', template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\"\r\n #table [value]=\"elements\" [lazy]=\"true\" (onLazyLoad)=\"loadElements($event)\" dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [tableStyle]=\"{'min-width': '70rem'}\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\" \r\n [currentPageReportTemplate]=\"wappTableLazyLoadingObject.currentPageReportTemplate ? wappTableLazyLoadingObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject.hasClearButton || wappTableLazyLoadingObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableLazyLoadingObject.hasClearButton\" pButton [label]=\"wappTableLazyLoadingObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"maxRowsPerPage\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\"\r\n (ngModelChange)=\"reloadElements()\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input class=\"height-input wapp-input\" pInputText type=\"text\" (input)=\"table.filterGlobal($event, 'contains')\" placeholder=\"{{wappTableLazyLoadingObject.searchPlaceholder}}\" />\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableLazyLoadingObject.hasColumnFilters && wappTableLazyLoadingObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #something>\r\n <ng-template #something ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableLazyLoadingObject.sortableNames[i]\" [class]=\"wappTableLazyLoadingObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableLazyLoadingObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableLazyLoadingObject.sortableNames[i] != null\" [field]=\"wappTableLazyLoadingObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" style=\"text-align: center;\" ></th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\">\r\n <p-columnFilter [field]=\"wappTableLazyLoadingObject.filterNames[i]\" matchMode=\"in\" [showMenu]=\"false\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" appendTo=\"body\" [options]=\"wappTableLazyLoadingObject.selectFilterElements[i]\" placeholder=\"Any\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" [maxSelectedLabels]=\"1\" [selectedItemsLabel]=\"'{0} items'\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-1\">{{option.name}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.None\"></th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Boolean\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\">\r\n <p-columnFilter type=\"date\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableLazyLoadingObject.columnTypes\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableLazyLoadingObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" />\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n <p>ToDo wapp view badge</p>\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement($event)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr height=\"70px\" *ngFor=\"let n of [0,1,2,3,4]\">\r\n <td *ngFor=\"let item of wappTableLazyLoadingObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item == tableColumnTypes.Image\" width=\"6rem\" height=\"4rem\"></p-skeleton>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox && item != tableColumnTypes.Image\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0px;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.element-image-width{height:32px;width:auto}.image-header{text-align:center!important}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
1144
+ args: [{ selector: 'w-table-lazy', template: "<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"wapp-table-styles\"\r\n #table [value]=\"elements\" [lazy]=\"true\" (onLazyLoad)=\"loadElements($event)\" dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [tableStyle]=\"{'min-width': '70rem'}\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\" \r\n [currentPageReportTemplate]=\"wappTableLazyLoadingObject.currentPageReportTemplate ? wappTableLazyLoadingObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject.hasClearButton || wappTableLazyLoadingObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <!-- <button *ngIf=\"wappTableLazyLoadingObject.hasClearButton\" pButton [label]=\"wappTableLazyLoadingObject.clearPlaceholder!\" class=\"p-button-outlined\" icon=\"pi pi-filter-slash\" (click)=\"clear(table)\"></button> -->\r\n <span class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber \r\n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"maxRowsPerPage\"\r\n decrementButtonClass=\"p-button-outlined\" \r\n incrementButtonClass=\"p-button-outlined\" \r\n incrementButtonIcon=\"pi pi-plus\" \r\n decrementButtonIcon=\"pi pi-minus\" \r\n mode=\"decimal\"\r\n (ngModelChange)=\"reloadElements()\">\r\n </p-inputNumber>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input class=\"height-input wapp-input\" pInputText type=\"text\" (input)=\"table.filterGlobal($event, 'contains')\" placeholder=\"{{wappTableLazyLoadingObject.searchPlaceholder}}\" />\r\n </span>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableLazyLoadingObject.hasColumnFilters && wappTableLazyLoadingObject.hasCheckbox; else noCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #something>\r\n <ng-template #something ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableLazyLoadingObject.sortableNames[i]\" [class]=\"wappTableLazyLoadingObject.headers[i] == ('Imagen' || 'Image') ? 'image-header': ''\">\r\n {{wappTableLazyLoadingObject.headers[i]}} \r\n <p-sortIcon *ngIf=\"wappTableLazyLoadingObject.sortableNames[i] != null\" [field]=\"wappTableLazyLoadingObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" style=\"text-align: center;\" ></th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\">\r\n <p-columnFilter [field]=\"wappTableLazyLoadingObject.filterNames[i]\" matchMode=\"in\" [showMenu]=\"false\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" appendTo=\"body\" [options]=\"wappTableLazyLoadingObject.selectFilterElements[i]\" placeholder=\"Any\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" [maxSelectedLabels]=\"1\" [selectedItemsLabel]=\"'{0} items'\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-1\">{{option.name}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.None\"></th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Boolean\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\">\r\n <p-columnFilter type=\"date\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableLazyLoadingObject.columnTypes\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]+'; text-align: center;'\">\r\n <div *ngIf=\"wappTableLazyLoadingObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\"></p-tableCheckbox>\r\n </div>\r\n <ng-template #activeCheckbox>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" class=\"text-center\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\" \r\n class=\"shadow-4 element-image-width\" />\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | currency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\">\r\n <p>ToDo wapp view badge</p>\r\n <!-- <wapp-view-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i])\"\r\n [color]=\"'cyan'\">\r\n </wapp-view-badge> -->\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.elementObjectRoutes[i]) | date }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple (click)=\"customElement($event)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject.disableDeleteProperty\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr height=\"70px\" *ngFor=\"let n of [0,1,2,3,4]\">\r\n <td *ngFor=\"let item of wappTableLazyLoadingObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item == tableColumnTypes.Image\" width=\"6rem\" height=\"4rem\"></p-skeleton>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox && item != tableColumnTypes.Image\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasDeleteButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"!wappTableLazyLoadingObject?.disableDelete && wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .showing-per-page .p-button{border-radius:8px}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0px;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-datatable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-datatable.p-datatable-striped .p-datatable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-datatable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-datatable .p-datatable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-datatable .p-datatable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-datatable .p-datatable-thead>tr>th:hover{color:#000;background:#ffffff}.element-image-width{height:32px;width:auto}.image-header{text-align:center!important}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
1145
1145
  }], ctorParameters: function () { return [{ type: i1$2.ConfirmationService }]; }, propDecorators: { loading: [{
1146
1146
  type: Input,
1147
1147
  args: ['loading']
@@ -2448,6 +2448,14 @@ class WTreeTableComponent {
2448
2448
  get totalRecords() {
2449
2449
  return this._totalRecords;
2450
2450
  }
2451
+ set elements(value) {
2452
+ this._elements = value;
2453
+ this.initComponent();
2454
+ }
2455
+ ;
2456
+ get elements() {
2457
+ return this._elements;
2458
+ }
2451
2459
  ngOnChanges(changes) {
2452
2460
  if (changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {
2453
2461
  this.totalRecords = changes?.['elements']?.currentValue.length;
@@ -2526,10 +2534,10 @@ class WTreeTableComponent {
2526
2534
  }
2527
2535
  }
2528
2536
  WTreeTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTreeTableComponent, deps: [{ token: i1$2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
2529
- WTreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTreeTableComponent, selector: "w-tree-table", inputs: { elements: "elements", rowsPerPage: "rowsPerPage", loading: "loading", wappTreeTableObject: "wappTreeTableObject" }, outputs: { onActionButtonClick: "onActionButtonClick", onDeleteElementSelect: "onDeleteElementSelect", onCantDeleteElementWarn: "onCantDeleteElementWarn" }, providers: [TreeDragDropService, MessageService, ConfirmationService], viewQueries: [{ propertyName: "treeTable", first: true, predicate: ["treeTable"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\n <p-treeTable *ngIf=\"!loading; else loadingTable\"\n #treeTable [value]=\"treeNodeElements\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\n {{ rowData[col.field] }}\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n\n <ng-template #loadingTable>\n <p-treeTable\n #treeTable [value]=\"tableSkeletons\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-skeleton></p-skeleton>\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n </ng-template>\n</div>\n\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-up{border-radius:8px;border-top-left-radius:0!important;border-bottom-left-radius:0!important}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-down{border-radius:8px;border-top-right-radius:0!important;border-bottom-right-radius:0!important}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-treetable.p-treetable-striped .p-treetable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-treetable .p-treetable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-treetable .p-treetable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "component", type: i10$3.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "component", type: i10$3.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i10$3.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i10$3.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }] });
2537
+ WTreeTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WTreeTableComponent, selector: "w-tree-table", inputs: { elements: "elements", rowsPerPage: "rowsPerPage", loading: "loading", wappTreeTableObject: "wappTreeTableObject" }, outputs: { onActionButtonClick: "onActionButtonClick", onDeleteElementSelect: "onDeleteElementSelect", onCantDeleteElementWarn: "onCantDeleteElementWarn" }, providers: [TreeDragDropService, MessageService, ConfirmationService], viewQueries: [{ propertyName: "treeTable", first: true, predicate: ["treeTable"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\n <p-treeTable *ngIf=\"!loading; else loadingTable\"\n #treeTable [value]=\"treeNodeElements\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\n {{ rowData[col.field] }}\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n\n <ng-template #loadingTable>\n <p-treeTable\n #treeTable [value]=\"tableSkeletons\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-skeleton></p-skeleton>\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n </ng-template>\n</div>\n\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-up{border-radius:8px;border-top-left-radius:0!important;border-bottom-left-radius:0!important}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-down{border-radius:8px;border-top-right-radius:0!important;border-bottom-right-radius:0!important}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-treetable.p-treetable-striped .p-treetable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-treetable .p-treetable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-treetable .p-treetable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"], dependencies: [{ kind: "directive", type: i2.InputText, selector: "[pInputText]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i9.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: i10$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "component", type: i10$3.TreeTable, selector: "p-treeTable", inputs: ["columns", "style", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "virtualRowHeight", "value", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel"] }, { kind: "component", type: i10$3.TreeTableToggler, selector: "p-treeTableToggler", inputs: ["rowNode"] }, { kind: "directive", type: i10$3.TTSortableColumn, selector: "[ttSortableColumn]", inputs: ["ttSortableColumn", "ttSortableColumnDisabled"] }, { kind: "component", type: i10$3.TTSortIcon, selector: "p-treeTableSortIcon", inputs: ["field", "ariaLabelDesc", "ariaLabelAsc"] }] });
2530
2538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WTreeTableComponent, decorators: [{
2531
2539
  type: Component,
2532
- args: [{ selector: 'w-tree-table', providers: [TreeDragDropService, MessageService, ConfirmationService], template: "<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\n <p-treeTable *ngIf=\"!loading; else loadingTable\"\n #treeTable [value]=\"treeNodeElements\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\n {{ rowData[col.field] }}\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n\n <ng-template #loadingTable>\n <p-treeTable\n #treeTable [value]=\"tableSkeletons\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-skeleton></p-skeleton>\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n </ng-template>\n</div>\n\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:0 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-up{border-radius:8px;border-top-left-radius:0!important;border-bottom-left-radius:0!important}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-down{border-radius:8px;border-top-right-radius:0!important;border-bottom-right-radius:0!important}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-treetable.p-treetable-striped .p-treetable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-treetable .p-treetable-header{background:#ffffff;border-width:0px;padding:16px 0!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-treetable .p-treetable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
2540
+ args: [{ selector: 'w-tree-table', providers: [TreeDragDropService, MessageService, ConfirmationService], template: "<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\n <p-treeTable *ngIf=\"!loading; else loadingTable\"\n #treeTable [value]=\"treeNodeElements\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\n {{ rowData[col.field] }}\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n\n <ng-template #loadingTable>\n <p-treeTable\n #treeTable [value]=\"tableSkeletons\" \n class=\"wapp-table-styles\"\n [columns]=\"columns\" \n [scrollable]=\"true\"\n [tableStyle]=\"{'min-width':'50rem'}\"\n [loading]=\"loadingElements\"\n [showLoader]=\"false\"\n [paginator]=\"true\"\n [rows]=\"rowsPerPage\"\n [rowHover]=\"true\"\n [totalRecords]=\"totalRecords\"\n [showCurrentPageReport]=\"true\"\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\n scrollHeight=\"flex\"\n styleClass=\"p-treetable-striped\">\n\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\n <span class=\"flex align-items-center table-paginator p-0\">\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\n <p-inputNumber \n class=\"pl-2 showing-per-page\" [size]=\"1\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" \n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\n decrementButtonClass=\"p-button-outlined\" \n incrementButtonClass=\"p-button-outlined\" \n incrementButtonIcon=\"pi pi-plus\" \n decrementButtonIcon=\"pi pi-minus\" \n mode=\"decimal\"\n (ngModelChange)=\"updateShowingTableRows()\">\n </p-inputNumber>\n <span class=\"p-input-icon-left ml-auto\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\" \n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\n </span>\n </span>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\" \n class=\"{{col.field}}-field'\"\n [ttSortableColumn]=\"col.field\">\n <div class=\"flex\">\n <div class=\"flex\">\n {{ col.header }}\n </div>\n <div class=\"flex\">\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\n </div>\n </div>\n </th>\n <th class=\"buttons-field\">\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\n <tr>\n <td *ngFor=\"let col of columns; let i = index\" >\n <p-skeleton></p-skeleton>\n </td>\n <td class=\"buttons-field\">\n <div class=\"flex justify-content-end\">\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\n </span>\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\n </div>\n </td>\n </tr>\n </ng-template>\n \n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length\">\n {{wappTreeTableObject.noRecordsLabel}}\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n </ng-template>\n</div>\n\n<p-confirmPopup></p-confirmPopup>", styles: [".heading1{font-size:3.1428571429rem;line-height:3.4285714286rem;font-weight:700}.heading2{font-size:2.8571428571rem;line-height:3.1428571429rem;font-weight:700}.heading3{font-size:2.5714285714rem;line-height:2.8571428571rem;font-weight:700}.heading4{font-size:2.2857142857rem;line-height:2.5714285714rem;font-weight:700}.heading5{font-size:2rem;line-height:2.2857142857rem;font-weight:700}.heading6{font-size:1.7142857143rem;line-height:2rem;font-weight:700}.subtitle1{font-size:1.4285714286rem;line-height:1.7142857143rem;font-weight:700}.subtitle2{font-size:1.1428571429rem;line-height:1.4285714286rem;font-weight:700}.body,.input-generic-placeholder-small,.input-generic-small{font-size:1rem;line-height:1.1428571429rem;font-weight:600}.caption{font-size:.8571428571rem;line-height:1.1428571429rem;font-weight:600}.icon-small-size{font-size:8px}.icon-small-x-size{font-size:12px}.icon-medium-size{font-size:16px}.icon-large-size{font-size:24px}.spacingXXS{padding:4px}.spacingXSM{padding:6px}.spacingXS{padding:8px}.spacingS{padding:12px}.spacingM{padding:16px}.spacingL{padding:20px}.spacingXL{padding:24px}.spacingXXL{padding:28px}.spacingXXXL{padding:32px}.focus{box-shadow:0 0 8px #00a6e980}.hover{border-radius:8px;border:2px solid #0085c7}.button-large-typography{font-size:20px;line-height:24px;font-weight:700}.button-medium-typography{font-size:16px;line-height:16px;font-weight:700}.button-small-typography{font-size:12px;line-height:16px;font-weight:700}.button-text-typography,.input-generic-label{font-size:14px;line-height:16px;font-weight:700}.input-generic-placeholder,.input-generic{font-size:16px;line-height:24px;font-weight:600}.input-generic-placeholder-small{padding:8px 12px 12px}.input-generic-valid{border-radius:8px;border:2px solid #B3FFD3}.input-generic-valid-focus{border-radius:8px;border:2px solid #B3FFD3!important;box-shadow:0 0 2px 2px #b3ffd3!important;padding-left:16px}.input-generic-warning{border-radius:8px;border:2px solid #FFECB8!important}.input-generic-warning-focus{border-radius:8px;border:2px solid #FFECB8!important;box-shadow:0 0 2px 2px #ffecb8!important;padding-left:16px}.input-generic-error{border-radius:8px;border:2px solid #FFBDBD}.tag-generic{font-size:14px;line-height:16px;font-weight:700}.tag-generic-small{font-size:12px;line-height:16px;font-weight:700}.table-container{padding:16px 20px 20px;background-color:#fff;border-radius:8px;box-shadow:0 4px 8px #0000001a}.showing-per-page{color:#bdc1c6;font-weight:600}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-up{border-radius:8px;border-top-left-radius:0!important;border-bottom-left-radius:0!important}::ng-deep .wapp-table-styles .showing-per-page .p-button.p-inputnumber-button-down{border-radius:8px;border-top-right-radius:0!important;border-bottom-right-radius:0!important}::ng-deep .wapp-table-styles .p-paginator-bottom>span:first-child{margin-right:auto}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page{color:#bdc1c6;border-radius:8px;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator{border-width:0;padding:16px 20px 0}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page.p-highlight{background-color:#e0f5fc;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover{background:#f1f5f9;border-color:transparent;color:#2e3134;height:32px;width:32px;max-width:32px;min-width:32px}::ng-deep .wapp-table-styles .p-paginator .p-paginator-current{color:#bdc1c6;padding:0}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column .p-sortable-column-icon{color:#bdc1c6;margin-left:.5rem}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column.p-highlight:hover .p-sortable-column-icon{color:#000}::ng-deep .wapp-table-styles .p-treetable .p-sortable-column:focus{box-shadow:inset 0 0;outline:0 none}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th{color:#bdc1c6;background:#ffffff}::ng-deep .wapp-table-styles .p-treetable.p-treetable-striped .p-treetable-tbody>tr:nth-child(even){background:#f8f9fa}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom{justify-content:normal!important}::ng-deep .wapp-table-styles .p-treetable .p-paginator-bottom>button{color:#bdc1c6}::ng-deep .wapp-table-styles .p-treetable .p-treetable-header{background:#ffffff;border-width:0px;padding:0 0 16px!important;font-weight:600}::ng-deep .wapp-table-styles p-inputnumber,.p-inputnumber{height:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down{width:32px}::ng-deep .wapp-table-styles .p-inputnumber-buttons-horizontal .p-inputnumber-input{border-width:2px 0px 2px 0px;border-color:#e8eaed;color:#dadce0;text-align:center}::ng-deep .wapp-table-styles .p-button.p-button-outlined{color:#e8eaed;border-width:2px}::ng-deep .wapp-table-styles .p-treetable .p-treetable-tbody>tr>td{columns:#2E3134;font-weight:600;text-align:left;border:1px solid #e2e8f0;border-width:0 0 1px 0;padding:8px}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box{border:2px solid #e8eaed;width:16px;height:16px;color:#e8eaed;border-radius:4px;align-self:center}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box .p-checkbox-icon{font-size:8px;font-weight:bolder}::ng-deep .wapp-table-styles .p-checkbox .p-checkbox-box.p-highlight{border-color:#0085c7!important;background:#0085c7;color:#0085c7!important}::ng-deep .wapp-table-styles .p-inputtext:enabled:focus{outline:0 none;outline-offset:0;box-shadow:0 0 #000;background-color:#f1f3f4;border-color:#f1f3f4;color:#000}::ng-deep .wapp-table-styles .p-inputtext:enabled:hover{border-color:#e8eaed}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover{color:#e8eaed;border:2px solid;background-color:#f1f3f4}::ng-deep .wapp-table-styles .p-button.p-button-outlined:enabled:hover>.p-button-icon{color:#2e3134}::ng-deep .wapp-table-styles .p-button.p-button-outlined>.pi{font-size:.7rem;font-weight:bolder}::ng-deep .wapp-table-styles .p-treetable .p-treetable-thead>tr>th:hover{color:#000;background:#ffffff}.height-input{height:32px}.wapp-input{border-radius:8px;border-width:2px;border-color:#e8eaed;font-size:16px;line-height:5px;font-weight:100;gap:16px}::-webkit-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}::-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-ms-input-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}:-moz-placeholder{font-size:1rem;line-height:1.1428571429rem;font-weight:600;color:#bdc1c6}.wapp-input:hover{border:2px solid #0085c7!important}.wapp-input:focus{box-shadow:0 0 3px 3px #e0f5fc!important;background-color:transparent!important}.pi-search{left:.75rem;color:#bdc1c6!important}.image-header{text-align:center!important}::ng-deep .wapp-table-styles .p-avatar img{width:32px!important;height:32px!important}:host ::ng-deep .wapp-table-styles .p-avatar{border:1px solid #e8eaed}\n"] }]
2533
2541
  }], ctorParameters: function () { return [{ type: i1$2.ConfirmationService }]; }, propDecorators: { elements: [{
2534
2542
  type: Input,
2535
2543
  args: ['elements']