ngx-wapp-components 1.26.13 → 1.26.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-wapp-components.mjs","sources":["../../../projects/wapp-components/src/lib/wapp-components.service.ts","../../../projects/wapp-components/src/lib/wapp-components.component.ts","../../../projects/wapp-components/src/lib/shared/enums/enum.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.html","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.ts","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.html","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.ts","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.html","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.ts","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.html","../../../projects/wapp-components/src/lib/logos/logos.ts","../../../projects/wapp-components/src/lib/logos/wapping-logos/w-logos.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.html","../../../projects/wapp-components/src/lib/shared/models/enums.model.ts","../../../projects/wapp-components/src/lib/shared/services/date-conversion.service.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.html","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.ts","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.html","../../../projects/wapp-components/src/lib/shared/services/session-storage.service.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-date.pipe.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-percentage.pipe.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-currency.pipe.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.html","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.ts","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.html","../../../projects/wapp-components/src/lib/layout/w-container/w-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.html","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.ts","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.html","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.ts","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.html","../../../projects/wapp-components/src/lib/shared/pipes/color-text.pipe.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.html","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.html","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.html","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.ts","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.html","../../../projects/wapp-components/src/lib/shared/models/filter-panel/query-results.model.ts","../../../projects/wapp-components/src/lib/shared/service/api/api.service.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.html","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.html","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.ts","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.html","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.ts","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.html","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.html","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.html","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.ts","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.html","../../../projects/wapp-components/src/lib/shared/services/modal.service.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.html","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.ts","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.html","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.html","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.ts","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.html","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.ts","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.html","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.html","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.html","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.ts","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.html","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.ts","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.html","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.ts","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.html","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.ts","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.html","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.html","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.html","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.ts","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.html","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.ts","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.html","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-summary.pipe.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.html","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.ts","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.html","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.ts","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.html","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.ts","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.html","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.ts","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.html","../../../projects/wapp-components/src/lib/wapp-components.module.ts","../../../projects/wapp-components/src/lib/shared/services/form-control.service.ts","../../../projects/wapp-components/src/lib/shared/services/tree.service.ts","../../../projects/wapp-components/src/public-api.ts","../../../projects/wapp-components/src/ngx-wapp-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WappComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-wapp-components',\r\n template: `\r\n <p>\r\n wapp-components works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class WappComponentsComponent {\r\n\r\n}\r\n","export enum SizeType {\r\n small = 0,\r\n medium = 1,\r\n large = 2\r\n}\r\n\r\nexport enum ButtonType{\r\n primary = 0,\r\n secondary = 1,\r\n tertiary = 2,\r\n text = 3,\r\n table = 4\r\n}\r\n\r\nexport enum IconType{\r\n pIcon = 0, \r\n urlIcon = 1, \r\n wIcon = 2\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-input-label',\r\n templateUrl: './w-input-label.component.html',\r\n styleUrls: ['./w-input-label.component.scss']\r\n})\r\nexport class WInputLabelComponent implements OnInit {\r\n @Input('label') label!: string; \r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false; \r\n @Input('tooltip') tooltip!: string; \r\n @Input('size') size: string = \"small\"; \r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"label != undefined && label.length > 0\" class=\"w-input-label flex\">\r\n <div class=\"flex\">\r\n <div [ngClass]=\"{'w-input-label-small-label': getSizeName(sizeType.small) == size && !disabled, \r\n 'w-input-label-small-label-disabled': getSizeName(sizeType.small) == size && disabled, \r\n 'w-input-label-medium-label': getSizeName(sizeType.medium) == size && !disabled, \r\n 'w-input-label-medium-label-disabled': getSizeName(sizeType.medium) == size && disabled}\">\r\n {{label}}\r\n <span *ngIf=\"required && !disabled \" class=\"required-symbol\">*</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tooltip\" [pTooltip]=\"tooltip\" tooltipPosition=\"right\" class=\"w-input-label-icon-help-container\">\r\n <svg class=\"w-input-label-icon-help\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path id=\"Vector\" d=\"M6 0C2.7 0 0 2.7 0 6C0 9.3 2.7 12 6 12C9.3 12 12 9.3 12 6C12 2.7 9.3 0 6 0ZM6 9.75C5.586 9.75 5.25 9.414 5.25 9C5.25 8.586 5.586 8.25 6 8.25C6.414 8.25 6.75 8.586 6.75 9C6.75 9.414 6.414 9.75 6 9.75ZM7.21725 6.069C6.8445 6.38925 6.75 6.49725 6.75 6.75C6.75 7.16475 6.414 7.5 6 7.5C5.586 7.5 5.25 7.16475 5.25 6.75C5.25 5.7795 5.84625 5.268 6.2415 4.92975C6.61425 4.611 6.70875 4.50225 6.70875 4.25025C6.70875 4.113 6.70875 3.75 6.00075 3.75C5.67375 3.768 5.325 3.918 5.05725 4.17075C4.7565 4.45425 4.281 4.44 3.99675 4.14C3.7125 3.8385 3.726 3.36375 4.0275 3.0795C4.554 2.58375 5.24025 2.289 5.96175 2.2515H5.964C7.323 2.2515 8.20875 3.05475 8.20875 4.251C8.20875 5.22075 7.6125 5.73225 7.218 6.06975L7.21725 6.069Z\" fill=\"#9AA0A6\"/>\r\n </svg> \r\n </div>\r\n</div>\r\n<div *ngIf=\"label != undefined && label == ''\" class=\"w-input-no-label-height\"></div>\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl, ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-input-text',\r\n templateUrl: './w-edit-input-text.component.html',\r\n styleUrls: ['./w-edit-input-text.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputTextComponent implements ControlValueAccessor {\r\n value: string = \"\";\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('pattern') pattern: string = \"\";\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"Pattern error\";\r\n\r\n @Input('minlength') minlength!: number;\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length error\";\r\n\r\n @Input('maxlength') maxlength!: number;\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length error\";\r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = 'small';\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onChangeForm(event: any){\r\n console.log(event);\r\n\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-input-text-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size;\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-medium-icon pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n [ngClass]=\"{'w-edit-input-text-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-text-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-text-medium-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n class=\"w-edit-input-text-medium-height w-edit-input-text-medium\" id=\"w-textarea\" [placeholder]=\"placeholder\" [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size;\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n [ngClass]=\"{'w-edit-input-text-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-text-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-text-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [formControl]=\"formControl\">\r\n </span>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\"\r\n class=\"w-alert-message-height w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('maxlength') && formControl.touched \"\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('minlength') && formControl.touched \"\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\"\r\n class=\"w-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-input-text-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-medium-icon pi {{inputIcon}}\"></i>\r\n <input pInputText minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" [required]=\"required\"\r\n class=\"w-edit-input-text-medium-height w-edit-input-text-medium\" id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (input)=\"onValueChanged()\" [disabled]=\"disabled\"\r\n [autofocus]=\"autofocus\">\r\n </span>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n <input pInputText minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" [required]=\"required\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [(ngModel)]=\"value\" (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\" [autofocus]=\"autofocus\">\r\n </span>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ButtonType, SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-button',\r\n templateUrl: './w-button.component.html',\r\n styleUrls: ['./w-button.component.scss']\r\n})\r\nexport class WButtonComponent implements OnInit{\r\n @Input('type') type: string = \"primary\";\r\n @Input('label') label!: string;\r\n @Input('size') size: string = \"small\";\r\n @Input('icon') icon: string = \"\";\r\n @Input('iconPos') iconPos: string = \"left\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('loading') loading: boolean = false;\r\n @Output('onClick') onClick: EventEmitter<MouseEvent> = new EventEmitter();\r\n @Input('buttonClass') buttonClass: string = \"\";\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n tooltipDelay: number = 250;\r\n\r\n ngOnInit(): void {}\r\n\r\n onButtonClick(event: MouseEvent){\r\n this.onClick.emit(event);\r\n }\r\n \r\n getIcon(): string{\r\n return this.icon ? \"pi \" + this.icon: \"\";\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n}\r\n","<ng-container *ngIf=\"type == getButtonTypeName(buttonType.primary); else buttonSecondary\">\r\n <p-button *ngIf=\"size == getSizeName(sizeType.small)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n styleClass=\"w-button-small border-none {{buttonClass}}\" \r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n</ng-container>\r\n<ng-template #buttonSecondary>\r\n <ng-container *ngIf=\"type == getButtonTypeName(buttonType.secondary) || type == getButtonTypeName(buttonType.tertiary); else buttonText\">\r\n <p-button *ngIf=\"size == getSizeName(sizeType.small)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-small-tertiary' : 'w-button-small p-button-outlined')\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n </ng-container>\r\n <ng-template #buttonText>\r\n <ng-container *ngIf=\"type == getButtonTypeName(buttonType.text); else iconTableButton\">\r\n <p-button \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n styleClass=\"p-button-text w-button-text-small {{buttonClass}}\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n </ng-container>\r\n <ng-template #iconTableButton>\r\n <p-button \r\n [icon]=\"getIcon()\" \r\n styleClass=\"w-table-button {{buttonClass}}\" \r\n [disabled]=\"disabled\" \r\n (onClick)=\"onButtonClick($event)\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n [showDelay]=\"tooltipDelay\"\r\n class=\"p-button-text\">\r\n </p-button>\r\n </ng-template>\r\n </ng-template>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\n\r\n@Component({\r\n selector: 'w-clipboard',\r\n templateUrl: './w-clipboard.component.html',\r\n styleUrls: ['./w-clipboard.component.css']\r\n})\r\nexport class WClipboardComponent {\r\n\r\n @Input('codeText') codeText!: string; \r\n @Input('languages') languages!: string[]; \r\n icon: string = 'pi pi-copy';\r\n\r\n constructor(private clipboard: Clipboard) {}\r\n\r\n copyToClipboard(){\r\n const successful = this.clipboard.copy(this.codeText);\r\n if(successful){\r\n this.icon = 'pi-check'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }else{\r\n this.icon = 'pi-times'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"card relative\">\r\n <div class=\"absolute top-0 right-0 pr-3 pt-3\">\r\n <w-button [icon]=\"icon\" type=\"secondary\"\r\n (onClick)=\"copyToClipboard()\">\r\n </w-button>\r\n </div>\r\n <pre id=\"text\" class=\"-mb-2 ml-3\">\r\n <code [highlight]=\"codeText\" [languages]=\"languages\"></code>\r\n </pre>\r\n</div>","import {Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'w-icons',\r\n templateUrl: './w-icons.component.html',\r\n styleUrls: ['./w-icons.component.scss']\r\n})\r\nexport class WIconsComponent {\r\n @Input('name') name!: string;\r\n @Input('width') width!: number;\r\n @Input('height') height!: number;\r\n @Input('color') color!: string;\r\n}\r\n","<span className=\"w-icon {{name}}\" [ngStyle]=\"{'font-size': height + 'px', 'height': height + 'px', 'width': width + 'px', 'background-color': color, 'color': color}\"></span>","export const wappingLogos: any = {\r\n wappingComplete: '<svg id=\"wappingComplete\" width=\"197\" height=\"64\" viewBox=\"0 0 197 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8839)\"><path id=\"path\" d=\"M40.9986 43.7251C40.9482 44.072 40.8726 44.4189 40.743 44.7479C40.4658 45.4416 39.9113 45.9173 39.202 46.1533C39.004 46.2176 38.7915 46.2713 38.6187 46.3929C38.5215 46.4608 38.5071 46.6539 38.3955 46.679C38.2155 46.7183 38.2443 46.5574 38.2083 46.4501C38.1435 46.257 37.8806 46.1211 37.7186 46.0281C37.0669 45.649 36.5989 45.0733 36.4692 44.3259C36.4152 44.0183 36.2532 42.6201 36.7285 42.6344C37.0885 42.6451 37.4558 42.7166 37.8158 42.7595C38.8023 42.874 39.7889 42.9884 40.7754 43.1064C41.1462 43.1493 41.0454 43.4462 41.0022 43.7323L40.9986 43.7251ZM36.2532 53.7632C33.3692 52.7047 31.9074 50.8737 32.7283 48.9641C33.3836 47.4371 33.9129 45.9065 33.9129 44.1793C33.9129 38.4539 29.2395 33.8121 23.4751 33.8121C17.7108 33.8121 13.0373 38.4539 13.0373 44.1793C13.0373 49.4361 16.7746 53.5415 21.7613 54.4069C22.1285 54.4713 23.9144 54.6215 24.332 54.6215H35.9436C36.48 54.7002 36.6925 54.01 36.2604 53.7597L36.2532 53.7632ZM43.7206 33.569C43.2993 35.2783 41.6647 35.8612 40.1093 36.2689C38.2191 36.766 36.2424 36.7445 34.5286 35.8469C33.4304 35.2712 31.641 34.0052 31.1729 31.1229C30.7985 28.8127 31.7346 27.2857 32.5915 26.0949C33.0308 25.4834 33.8553 24.8897 34.6186 24.4821C35.7455 23.8777 36.0264 23.9063 36.2532 25.1365C36.4368 26.1307 37.2073 26.921 38.1218 27.2929C39.5188 27.8615 40.8258 28.5946 41.8915 29.6889C42.9465 30.7724 44.1202 31.9633 43.7206 33.5725V33.569ZM39.7925 31.6164C39.7925 30.9119 39.2164 30.3362 38.5035 30.3362C37.7906 30.3362 37.2145 30.9083 37.2145 31.6164C37.2145 32.3245 37.7906 32.8966 38.5035 32.8966C39.2164 32.8966 39.7925 32.3245 39.7925 31.6164ZM16.1085 32.657C18.9997 30.472 21.8693 28.237 24.5985 25.8553C29.7868 21.3351 31.0829 13.6536 27.8209 7.63146C24.6489 1.77022 17.4875 -1.25517 10.9239 0.49355C4.13337 2.30306 -0.201604 8.18218 0.00722364 15.5704C0.489687 15.6133 1.07296 15.4274 1.53743 15.2521C4.65184 14.0684 7.68704 14.3402 10.283 16.7005C12.7097 18.9033 13.3758 21.9931 12.3136 25.3654C11.4531 28.1655 10.4234 30.9119 9.48367 33.6905C8.33872 37.0771 8.05068 40.4244 10.2902 44.5333C9.75011 38.7221 12.4253 35.4464 16.1121 32.6606L16.1085 32.657ZM40.509 40.9286C40.0805 40.6532 39.8249 40.4244 39.0328 40.3385C38.2731 40.2563 37.6934 40.4458 37.3225 40.6711C36.8401 40.9643 36.6313 41.1396 36.48 41.4543C36.3468 41.7296 36.4476 42.1087 36.7933 42.148C37.607 42.2446 38.4243 42.3376 39.238 42.4341C39.6881 42.4878 40.1417 42.5378 40.5918 42.5915C40.7106 42.6058 40.8294 42.6272 40.9482 42.6308C41.2975 42.6415 41.4199 42.0658 41.2831 41.8369C41.0562 41.4471 40.9014 41.1825 40.5054 40.9286H40.509Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M104.353 34.3879C103.982 34.3771 103.478 34.37 102.837 34.37H102.358C101.94 34.37 101.595 34.3843 101.325 34.4058C101.054 34.4308 100.82 34.5166 100.622 34.6632C100.129 34.5416 99.6863 34.4665 99.2903 34.4415C98.8978 34.4165 98.3541 34.4058 97.6664 34.4058C96.6547 34.4058 95.6934 34.5166 94.7825 34.7348C93.7491 35.003 92.7734 35.4392 91.8625 36.0365C90.9516 36.6372 90.145 37.356 89.443 38.2036C88.7409 39.0475 88.154 39.9952 87.6895 41.0466C87.2215 42.098 86.901 43.1994 86.7282 44.3509C86.433 46.4787 86.5842 48.3275 87.1891 49.8939C87.7939 51.4602 88.8345 52.5974 90.3107 53.3091C90.6059 53.4306 90.9408 53.5487 91.308 53.6595C91.6789 53.7704 92.1073 53.849 92.6006 53.8991H92.6366C92.759 53.9241 92.8994 53.9349 93.0614 53.9349H93.5979C94.9517 53.9349 96.1866 53.7275 97.292 53.3091C97.5872 53.234 97.9185 53.1016 98.2893 52.905C98.6818 53.47 99.4091 53.7847 100.468 53.8598C100.885 53.8848 101.292 53.8848 101.688 53.8598C102.081 53.8347 102.444 53.799 102.779 53.7489C103.11 53.6988 103.395 53.6452 103.629 53.5844C103.863 53.5236 104.018 53.4807 104.09 53.4557H104.054C104.399 53.3341 104.633 53.1946 104.756 53.0337C104.878 52.8763 104.965 52.6618 105.015 52.3936L105.238 50.888C105.289 50.5698 105.22 50.3015 105.033 50.0798C104.849 49.8581 104.583 49.7508 104.237 49.7508H103.463L105.31 36.6837C105.386 36.0722 105.422 35.6073 105.422 35.2891C105.422 34.9708 105.335 34.7455 105.163 34.6096C104.99 34.4773 104.72 34.4022 104.349 34.3915L104.353 34.3879ZM98.2173 48.281C98.0913 48.3311 97.9581 48.3848 97.8105 48.4455C97.6628 48.5063 97.4036 48.5993 97.0328 48.7209C96.3415 48.9176 95.7582 49.0392 95.2793 49.0892C94.8005 49.1393 94.4368 49.1393 94.1884 49.0892C93.6951 49.0177 93.3063 48.8568 93.0254 48.6136C92.741 48.3704 92.5394 48.0701 92.4169 47.716C92.2945 47.362 92.2261 46.965 92.2117 46.5216C92.1973 46.0817 92.2189 45.6276 92.2693 45.1627C92.3413 44.4296 92.471 43.7072 92.6582 42.9956C92.8418 42.2839 93.119 41.6509 93.4899 41.0859C93.8607 40.5245 94.3216 40.0703 94.8761 39.727C95.4305 39.3837 96.1146 39.212 96.9283 39.212C97.4216 39.212 97.8825 39.2299 98.3145 39.2657C98.7466 39.3014 99.1318 39.3444 99.4775 39.3944L98.2209 48.2775L98.2173 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M94.6276 15.3201C92.1325 14.3116 90.9264 15.9852 90.7319 16.3893L74.6414 48.0128L71.3218 32.2923C71.1633 31.5699 70.9725 31.037 70.7529 30.6937C70.5333 30.3504 69.1363 28.5159 66.688 29.2705C63.9804 30.1073 64.2756 32.1349 64.2144 32.6678C64.182 32.9181 64.2072 33.1934 64.2864 33.4903C64.3657 33.7907 64.4377 34.1089 64.4989 34.4558C64.4989 34.4558 68.3046 49.64 68.751 51.2635C69.0175 52.0574 69.1183 52.4043 69.2623 52.7154C69.4027 53.0301 69.5539 53.3126 69.7124 53.5629C70.1552 54.3783 70.9437 54.929 72.0815 55.2115C72.3335 55.2723 72.6107 55.3224 72.9096 55.351C73.2084 55.3832 73.4857 55.3975 73.7377 55.3975C74.4974 55.3975 75.2211 55.233 75.9196 54.904C76.6145 54.575 77.2626 54.128 77.8602 53.5629C78.2383 53.1875 78.5623 52.8084 78.8324 52.4329C79.0988 52.0574 79.3616 51.6497 79.6137 51.2099L96.2371 19.1966C96.3127 19.0464 97.5656 16.5038 94.624 15.3165L94.6276 15.3201Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M64.1207 44.4832C63.8039 45.1734 63.487 45.8493 63.1738 46.5073C62.857 47.1653 62.5581 47.7303 62.2737 48.2024L59.0512 32.3888C58.8928 31.8882 58.5472 31.3911 58.0107 30.9047C57.4742 30.4184 56.7289 30.1752 55.782 30.1752C54.9611 30.1752 53.7441 30.2825 52.8224 31.4304C51.447 33.1398 52.6568 36.5729 52.6568 36.5729C53.3841 39.6161 53.9674 42.0336 54.4102 43.8216C54.8531 45.6097 55.1987 47.0151 55.4508 48.0343C55.7028 49.0535 55.8936 49.783 56.0196 50.2229C56.1457 50.6627 56.2717 51.0525 56.3977 51.3994H56.3509C56.4445 51.7463 56.5705 52.1146 56.7289 52.5044C56.8874 52.8978 57.0602 53.2482 57.251 53.5629C57.8199 54.3783 58.6264 54.929 59.6669 55.2115C59.919 55.2723 60.189 55.3224 60.4734 55.351C60.7579 55.3832 61.0243 55.3975 61.2799 55.3975C62.0684 55.3975 62.8281 55.2401 63.5554 54.9254C64.2827 54.6107 64.9128 54.1423 65.4493 53.5129C65.6077 53.3555 65.7805 53.1588 65.9714 52.9264C66.1622 52.6904 66.335 52.4329 66.4934 52.1504L67.1019 51.1276L64.902 42.7702C64.6464 43.3317 64.3872 43.8967 64.1207 44.4796V44.4832Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M125.696 38.3323C125.091 36.791 124.051 35.6538 122.575 34.9171C122.254 34.7705 121.804 34.631 121.224 34.4952C120.645 34.3628 120.036 34.2949 119.395 34.2949H119.359C118.668 34.2949 118.009 34.345 117.383 34.4415C116.756 34.5416 116.169 34.699 115.626 34.9171L114.628 35.3212C114.409 35.053 114.092 34.8206 113.685 34.6239C113.278 34.4272 112.817 34.3307 112.306 34.3307C111.669 34.3307 111.107 34.4058 110.617 34.5524C110.128 34.699 109.699 34.8706 109.332 35.0673C108.893 35.289 108.511 35.5215 108.194 35.7647C108.144 35.8147 108.072 35.9363 107.975 36.133C107.877 36.3297 107.816 36.487 107.791 36.6086L107.568 38.1857C107.517 38.529 107.579 38.8044 107.751 39.0118C107.924 39.2192 108.18 39.3229 108.522 39.3229H109.364L106.272 61.273C106.196 61.8345 106.156 62.2708 106.142 62.5747C106.128 62.8787 106.196 63.1076 106.347 63.2542C106.495 63.4008 106.722 63.4866 107.031 63.5117C107.341 63.5367 107.777 63.5474 108.338 63.5474H108.742C109.303 63.5474 109.76 63.5331 110.117 63.5117C110.47 63.4866 110.747 63.4008 110.941 63.2542C111.136 63.1076 111.291 62.8823 111.402 62.5747C111.514 62.2672 111.604 61.8345 111.676 61.273L114.7 40.1311C115.021 39.9344 115.438 39.727 115.957 39.5089C116.573 39.2406 117.127 39.094 117.62 39.069C118.114 39.044 118.495 39.0583 118.765 39.1048C119.284 39.1799 119.676 39.3372 119.95 39.5804C120.22 39.8236 120.425 40.1311 120.558 40.4959C120.692 40.8642 120.76 41.2719 120.76 41.726C120.76 42.1802 120.735 42.6379 120.684 43.1028C120.634 43.6428 120.548 44.1936 120.425 44.755C120.303 45.32 120.13 45.8564 119.907 46.3714C119.683 46.8864 119.403 47.3513 119.057 47.7661C118.711 48.1845 118.294 48.4992 117.8 48.7209C117.53 48.9176 116.925 49.0141 115.989 49.0141C115.579 49.0141 115.197 48.9998 114.823 48.982L114.121 53.7847H115.251C115.77 53.7847 116.256 53.7668 116.709 53.731C117.167 53.6953 117.638 53.6166 118.132 53.4914C118.747 53.3448 119.493 53.0802 120.367 52.7011C121.242 52.322 122.074 51.6926 122.863 50.8093C123.651 49.9511 124.346 48.9247 124.951 47.7267C125.556 46.5288 125.955 45.2449 126.153 43.8717C126.449 41.7189 126.294 39.87 125.693 38.3287L125.696 38.3323Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M155.962 24.972C155.555 24.9469 154.993 24.9362 154.28 24.9362C153.639 24.9362 153.128 24.9505 152.746 24.972C152.365 24.997 152.062 25.0936 151.843 25.2652C151.619 25.4369 151.454 25.6944 151.342 26.0341C151.231 26.3774 151.137 26.878 151.065 27.5396L150.993 28.1619C150.917 28.8485 150.881 29.367 150.881 29.721C150.881 30.0751 150.975 30.3326 151.159 30.4935C151.342 30.6544 151.634 30.7367 152.026 30.751C152.419 30.7653 152.973 30.7688 153.69 30.7688C154.331 30.7688 154.849 30.7581 155.242 30.7331C155.634 30.7081 155.944 30.6115 156.163 30.4398C156.386 30.2682 156.552 30.0107 156.664 29.671C156.775 29.3277 156.869 28.827 156.941 28.1654L157.017 27.5432C157.089 26.8816 157.128 26.3738 157.128 26.0198C157.128 25.6657 157.035 25.4083 156.851 25.2473C156.667 25.09 156.372 24.997 155.965 24.972H155.962Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M196.74 34.6096C196.568 34.4773 196.298 34.4022 195.927 34.3914C195.556 34.3807 195.041 34.3736 194.375 34.3736H194.116C193.622 34.3736 193.223 34.3914 192.913 34.4272C192.604 34.463 192.351 34.5667 192.157 34.7383C192.207 34.8098 192.143 34.8098 191.973 34.7383C191.801 34.6632 191.653 34.606 191.531 34.5559C191.505 34.5559 191.48 34.5488 191.459 34.5381C191.433 34.5273 191.408 34.5202 191.383 34.5202C191.16 34.4701 190.861 34.4415 190.476 34.4272C190.094 34.4165 189.68 34.4093 189.237 34.4093C188.225 34.4093 187.278 34.5202 186.393 34.7383C185.777 34.8849 185.021 35.1675 184.121 35.5823C183.221 36.0007 182.403 36.6086 181.662 37.4168C180.873 38.2751 180.171 39.2943 179.555 40.4816C178.94 41.6688 178.533 42.9598 178.335 44.3545C178.04 46.4823 178.191 48.3311 178.796 49.8974C179.401 51.4638 180.441 52.601 181.917 53.3126C182.187 53.4342 182.508 53.5522 182.879 53.6631C183.249 53.7739 183.667 53.8526 184.135 53.9027C184.258 53.9277 184.405 53.9384 184.578 53.9384H185.133C186.465 53.9384 187.721 53.731 188.902 53.3126H188.866L189.086 53.2375L188.679 56.3952C188.603 57.0318 188.359 57.4967 187.941 57.7899C187.523 58.0831 186.994 58.2906 186.353 58.4157C186.133 58.4658 185.874 58.5016 185.579 58.5266C185.284 58.5516 184.974 58.5623 184.654 58.5623C183.988 58.5623 183.329 58.5194 182.677 58.4336C182.025 58.3478 181.55 58.2798 181.255 58.2333C180.96 58.1833 180.736 58.1404 180.589 58.1046C180.441 58.0688 180.268 58.051 180.07 58.051C179.505 58.051 179.055 58.2405 178.72 58.6196C178.389 58.9986 178.036 59.5815 177.669 60.3647C177.546 60.6329 177.442 60.8797 177.356 61.0978C177.269 61.3195 177.211 61.5126 177.19 61.6843C177.139 61.9525 177.165 62.1671 177.262 62.328C177.359 62.4889 177.539 62.6284 177.798 62.75C178.058 62.8716 178.407 62.9896 178.85 63.1004C179.293 63.2113 179.836 63.34 180.477 63.4866C180.92 63.5367 181.402 63.5832 181.917 63.6333C182.436 63.6833 183.001 63.7084 183.617 63.7084C183.937 63.7084 184.344 63.6833 184.837 63.6333C185.331 63.5832 185.842 63.5117 186.371 63.4151C186.9 63.315 187.422 63.2006 187.941 63.0647C188.459 62.9288 188.927 62.7643 189.345 62.5712C190.576 62.0061 191.624 61.2194 192.485 60.2038C193.349 59.1882 193.9 57.8364 194.148 56.1485L196.884 36.6945C196.957 36.0829 196.996 35.618 196.996 35.2998C196.996 34.9815 196.91 34.7562 196.737 34.6203L196.74 34.6096ZM189.792 48.281C189.619 48.3526 189.446 48.4241 189.273 48.4813C189.1 48.5421 188.877 48.6243 188.607 48.7209C187.966 48.9426 187.404 49.0678 186.926 49.1071C186.447 49.1429 186.069 49.1393 185.799 49.0892C185.28 49.0177 184.877 48.8639 184.578 48.6315C184.283 48.3991 184.074 48.0987 183.952 47.7339C183.829 47.3656 183.761 46.965 183.746 46.5216C183.732 46.0817 183.754 45.6276 183.804 45.1627C183.876 44.6012 183.97 44.0326 184.081 43.4569C184.193 42.8811 184.358 42.3447 184.578 41.8405C184.801 41.3398 185.079 40.8857 185.41 40.4816C185.741 40.0775 186.155 39.7663 186.648 39.5446C186.846 39.4481 187.109 39.3658 187.444 39.305C187.775 39.2442 188.128 39.212 188.495 39.212C188.863 39.212 189.197 39.2192 189.493 39.2299C189.788 39.2406 190.072 39.2728 190.342 39.3229C190.465 39.3479 190.584 39.3765 190.695 39.4159C190.807 39.4516 190.922 39.4838 191.048 39.5089L189.792 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M175.454 49.7115H174.677L176.045 40.0202C176.34 37.9425 175.94 36.4477 174.842 35.5429C173.744 34.6382 171.829 34.209 169.096 34.2591C168.455 34.2591 167.872 34.2841 167.343 34.3306C166.813 34.3807 166.363 34.4415 165.992 34.513C165.769 34.5631 165.506 34.6274 165.197 34.7133C164.887 34.7991 164.624 34.9028 164.401 35.0244C163.933 34.513 163.216 34.2555 162.259 34.2555C161.618 34.2555 161.045 34.3271 160.541 34.4737C160.037 34.6203 159.598 34.7919 159.231 34.9886C158.788 35.2104 158.406 35.4428 158.086 35.686C157.963 35.8076 157.87 35.9506 157.808 36.108C157.747 36.2689 157.704 36.3976 157.679 36.4942L157.456 38.0712C157.405 38.4145 157.474 38.6935 157.661 38.9152C157.844 39.1369 158.111 39.2442 158.457 39.2442H159.27L158.791 42.4377L157.499 51.3207C157.423 51.8106 157.387 52.2076 157.387 52.5116C157.387 52.8155 157.456 53.0587 157.592 53.2268C157.729 53.3984 157.931 53.5093 158.201 53.5558C158.471 53.6058 158.842 53.6273 159.31 53.6273H160.638C161.081 53.6273 161.445 53.5951 161.729 53.5343C162.01 53.4735 162.233 53.3555 162.395 53.1874C162.554 53.0158 162.676 52.7798 162.766 52.4722C162.853 52.1682 162.932 51.782 163.008 51.3171L164.671 39.5339C165.287 39.4373 165.92 39.3515 166.576 39.2764C167.227 39.2013 167.886 39.1906 168.552 39.2406C169.218 39.2907 169.715 39.4373 170.05 39.6805C170.381 39.9237 170.5 40.3528 170.403 40.9643L169.035 50.6198C169.01 50.7664 168.999 51.006 168.999 51.335C168.999 51.664 169.071 52.0037 169.222 52.3435C169.37 52.6868 169.622 52.9979 169.978 53.2804C170.335 53.5629 170.86 53.7382 171.548 53.8133C172.484 53.9098 173.258 53.8991 173.877 53.7775C174.493 53.6559 174.864 53.5701 174.986 53.52C175.307 53.3734 175.584 53.2196 175.818 53.0623C176.052 52.9049 176.192 52.6653 176.243 52.3471L176.463 50.8415C176.513 50.5232 176.445 50.255 176.261 50.0333C176.074 49.8116 175.811 49.7043 175.465 49.7043L175.454 49.7115Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M154.942 35.1031C154.723 34.8599 154.431 34.6561 154.075 34.4987C153.718 34.3414 153.293 34.2591 152.8 34.2591C152.159 34.2591 151.587 34.3306 151.083 34.4773C150.579 34.6239 150.139 34.7848 149.772 34.9529C149.329 35.1746 148.948 35.4071 148.627 35.6502C148.505 35.7218 148.4 35.8398 148.314 35.9971C148.228 36.158 148.17 36.3225 148.148 36.4906L147.929 38.0677C147.878 38.411 147.954 38.6899 148.148 38.9116C148.346 39.1334 148.606 39.2406 148.922 39.2406H149.772L148.037 51.3171C147.961 51.9036 147.918 52.3506 147.907 52.6582C147.893 52.9657 147.961 53.191 148.112 53.3376C148.26 53.4843 148.487 53.5701 148.796 53.5951C149.103 53.6202 149.542 53.6309 150.107 53.6309H150.514C151.079 53.6309 151.536 53.6202 151.882 53.5951C152.228 53.5701 152.505 53.4843 152.714 53.3376C152.923 53.191 153.081 52.9657 153.193 52.6582C153.304 52.3506 153.394 51.9072 153.47 51.3171L155.501 36.7803C155.526 36.5121 155.493 36.2224 155.407 35.9184C155.321 35.6109 155.166 35.3355 154.946 35.0924L154.942 35.1031Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M142.42 34.9207C142.1 34.7741 141.65 34.6346 141.07 34.4987C140.49 34.3664 139.882 34.2985 139.241 34.2985H139.205C138.514 34.2985 137.855 34.3485 137.228 34.4451C136.602 34.5452 136.015 34.7026 135.471 34.9207L134.474 35.3248C134.254 35.0566 133.938 34.8241 133.531 34.6275C133.124 34.4308 132.663 34.3342 132.152 34.3342C131.514 34.3342 130.953 34.4093 130.463 34.5559C129.973 34.7026 129.545 34.8742 129.178 35.0709C128.738 35.2926 128.357 35.5251 128.04 35.7682C127.99 35.8183 127.918 35.9399 127.82 36.1366C127.723 36.3333 127.662 36.4906 127.637 36.6122L127.414 38.1893C127.363 38.5326 127.424 38.8079 127.597 39.0153C127.77 39.2228 128.026 39.3265 128.368 39.3265H129.21L126.117 61.2766C126.042 61.8381 126.002 62.2743 125.988 62.5783C125.973 62.8823 126.042 63.1111 126.193 63.2578C126.341 63.4044 126.567 63.4902 126.877 63.5152C127.187 63.5403 127.622 63.551 128.184 63.551H128.587C129.149 63.551 129.606 63.5367 129.963 63.5152C130.315 63.4902 130.593 63.4044 130.787 63.2578C130.982 63.1111 131.136 62.8859 131.248 62.5783C131.36 62.2708 131.45 61.8381 131.522 61.2766L134.546 40.1347C134.866 39.938 135.284 39.7306 135.803 39.5124C136.418 39.2442 136.973 39.0976 137.466 39.0726C137.725 39.0583 137.948 39.0583 138.147 39.0654C138.399 39.0654 138.625 39.0797 138.795 39.1083C139.313 39.1834 139.706 39.3408 139.976 39.5839C140.246 39.8271 140.451 40.1347 140.584 40.4994C140.717 40.8678 140.786 41.2754 140.786 41.7296C140.786 42.1838 140.76 42.6415 140.714 43.1064C140.663 43.6464 140.577 44.1971 140.454 44.7586C140.332 45.3236 140.159 45.86 139.936 46.375C139.713 46.8899 139.432 47.3548 139.086 47.7697C138.741 48.1881 138.323 48.5028 137.83 48.7245C137.56 48.9212 136.955 49.0177 136.019 49.0177C135.986 49.0177 135.957 49.0177 135.921 49.0177C135.889 49.0177 135.867 49.0177 135.835 49.0177C135.425 49.0177 135.043 49.0034 134.668 48.9855L133.966 53.7882H135.097C135.615 53.7882 136.101 53.7704 136.555 53.7346C137.012 53.6988 137.484 53.6202 137.977 53.495C138.593 53.3484 139.338 53.0837 140.213 52.7047C141.088 52.3256 141.92 51.6962 142.708 50.8129C143.497 49.9547 144.192 48.9283 144.797 47.7303C145.401 46.5323 145.801 45.2485 145.999 43.8753C146.294 41.7225 146.14 39.8736 145.538 38.3323C144.933 36.791 143.893 35.6538 142.417 34.9171L142.42 34.9207Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8839\"><rect width=\"197\" height=\"64\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingNaming: '<svg id=\"wappingNaming\" width=\"145\" height=\"40\" viewBox=\"0 0 145 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8840)\"><path id=\"path\" d=\"M52.4312 20.1687C52.0606 20.1579 51.557 20.1507 50.9167 20.1507H50.4382C50.0209 20.1507 49.6756 20.1651 49.4058 20.1867C49.1359 20.2119 48.9021 20.2984 48.7042 20.4461C48.2114 20.3236 47.7689 20.2479 47.3732 20.2227C46.9811 20.1975 46.4379 20.1867 45.7508 20.1867C44.7399 20.1867 43.7794 20.2984 42.8692 20.5181C41.8368 20.7883 40.8619 21.2278 39.9517 21.8295C39.0416 22.4347 38.2358 23.1588 37.5343 24.0126C36.8328 24.8628 36.2464 25.8175 35.7823 26.8767C35.3147 27.9358 34.9945 29.0454 34.8218 30.2054C34.5268 32.349 34.6779 34.2115 35.2823 35.7894C35.8867 37.3674 36.9263 38.513 38.4013 39.2299C38.6962 39.3524 39.0308 39.4713 39.3977 39.5829C39.7683 39.6946 40.1964 39.7739 40.6892 39.8243H40.7252C40.8475 39.8495 40.9878 39.8603 41.1497 39.8603H41.6857C43.0383 39.8603 44.2722 39.6514 45.3766 39.2299C45.6716 39.1542 46.0026 39.0209 46.3731 38.8228C46.7652 39.392 47.4919 39.709 48.5496 39.7847C48.9669 39.8099 49.3734 39.8099 49.7691 39.7847C50.1612 39.7595 50.5245 39.7234 50.8591 39.673C51.1901 39.6226 51.4743 39.5685 51.7081 39.5073C51.9419 39.446 52.0966 39.4028 52.1686 39.3776H52.1326C52.4779 39.2551 52.7118 39.1146 52.8341 38.9525C52.9564 38.794 53.0427 38.5778 53.0931 38.3076L53.3161 36.791C53.3665 36.4703 53.2981 36.2001 53.1111 35.9768C52.9276 35.7534 52.6614 35.6453 52.3161 35.6453H51.5426L53.3881 22.4815C53.4636 21.8655 53.4996 21.3972 53.4996 21.0765C53.4996 20.7559 53.4133 20.5289 53.2406 20.392C53.0679 20.2587 52.7981 20.1831 52.4276 20.1723L52.4312 20.1687ZM46.3012 34.1647C46.1753 34.2151 46.0422 34.2692 45.8947 34.3304C45.7472 34.3916 45.4882 34.4853 45.1176 34.6078C44.4269 34.8059 43.8441 34.9284 43.3657 34.9789C42.8872 35.0293 42.5239 35.0293 42.2757 34.9789C41.7828 34.9068 41.3943 34.7447 41.1137 34.4997C40.8295 34.2547 40.628 33.9521 40.5057 33.5955C40.3834 33.2388 40.3151 32.8389 40.3007 32.3922C40.2863 31.9491 40.3079 31.4916 40.3582 31.0232C40.4302 30.2847 40.5597 29.557 40.7468 28.8401C40.9302 28.1232 41.2072 27.4855 41.5778 26.9163C41.9483 26.3507 42.4088 25.8932 42.9628 25.5473C43.5168 25.2015 44.2003 25.0286 45.0133 25.0286C45.5061 25.0286 45.9666 25.0466 46.3983 25.0826C46.83 25.1186 47.2149 25.1618 47.5603 25.2123L46.3048 34.1611L46.3012 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M42.7146 0.959747C40.2216 -0.0561787 39.0164 1.62983 38.8222 2.03692L22.7453 33.8945L19.4285 18.0576C19.2702 17.3298 19.0796 16.7931 18.8601 16.4472C18.6407 16.1014 17.2449 14.2532 14.7986 15.0134C12.0934 15.8564 12.3884 17.8991 12.3272 18.4358C12.2948 18.688 12.32 18.9654 12.3992 19.2644C12.4783 19.567 12.5503 19.8877 12.6114 20.2371C12.6114 20.2371 16.4139 35.5337 16.86 37.1692C17.1262 37.969 17.2269 38.3184 17.3708 38.6319C17.5111 38.9489 17.6622 39.2335 17.8205 39.4857C18.2629 40.3071 19.0508 40.8619 20.1876 41.1465C20.4394 41.2077 20.7164 41.2581 21.015 41.287C21.3136 41.3194 21.5906 41.3338 21.8424 41.3338C22.6014 41.3338 23.3245 41.1681 24.0224 40.8366C24.7167 40.5052 25.3642 40.0549 25.9614 39.4857C26.3391 39.1074 26.6629 38.7255 26.9327 38.3473C27.1989 37.969 27.4615 37.5583 27.7134 37.1152L44.3226 4.86494C44.3982 4.71363 45.6501 2.1522 42.711 0.956145L42.7146 0.959747Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.2336 30.3387C11.917 31.034 11.6005 31.7149 11.2875 32.3778C10.9709 33.0407 10.6723 33.6099 10.3881 34.0854L7.16844 18.1548C7.01015 17.6505 6.6648 17.1497 6.12878 16.6598C5.59277 16.1698 4.8481 15.9248 3.90198 15.9248C3.08177 15.9248 1.86585 16.0329 0.944913 17.1893C-0.429299 18.9114 0.77943 22.3698 0.77943 22.3698C1.50611 25.4356 2.08889 27.871 2.53137 29.6723C2.97385 31.4735 3.3192 32.8894 3.57102 33.9161C3.82284 34.9428 4.0135 35.6777 4.13941 36.1209C4.26532 36.564 4.39123 36.9567 4.51714 37.3061H4.47038C4.56391 37.6556 4.68982 38.0266 4.84811 38.4193C5.00639 38.8156 5.17907 39.1686 5.36973 39.4857C5.93812 40.3071 6.74394 40.8619 7.7836 41.1465C8.03542 41.2077 8.30522 41.2581 8.58942 41.287C8.87362 41.3194 9.13982 41.3338 9.39524 41.3338C10.1831 41.3338 10.9421 41.1753 11.6688 40.8582C12.3955 40.5412 13.025 40.0693 13.561 39.4352C13.7193 39.2767 13.892 39.0786 14.0827 38.8444C14.2733 38.6066 14.446 38.3473 14.6043 38.0627L15.2123 37.0323L13.0142 28.6131C12.7588 29.1787 12.4998 29.7479 12.2336 30.3351V30.3387Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M73.7567 24.1423C73.1524 22.5896 72.1127 21.444 70.6378 20.7019C70.3176 20.5542 69.8679 20.4137 69.2887 20.2768C68.7096 20.1435 68.1016 20.075 67.4612 20.075H67.4253C66.7346 20.075 66.0762 20.1254 65.4503 20.2227C64.8243 20.3236 64.238 20.4821 63.6948 20.7019L62.6983 21.1089C62.4788 20.8388 62.1623 20.6046 61.7557 20.4064C61.3492 20.2083 60.8888 20.111 60.3779 20.111C59.7412 20.111 59.18 20.1867 58.6908 20.3344C58.2015 20.4821 57.7734 20.655 57.4065 20.8532C56.9676 21.0765 56.5863 21.3107 56.2697 21.5557C56.2193 21.6061 56.1474 21.7286 56.0503 21.9267C55.9531 22.1249 55.892 22.2834 55.8668 22.4059L55.6437 23.9946C55.5934 24.3405 55.6545 24.6179 55.8272 24.8268C55.9999 25.0358 56.2553 25.1402 56.5971 25.1402H57.4389L54.3487 47.2528C54.2731 47.8184 54.2336 48.2579 54.2192 48.5642C54.2048 48.8704 54.2731 49.101 54.4242 49.2487C54.5717 49.3964 54.7983 49.4828 55.1077 49.508C55.4171 49.5333 55.8524 49.5441 56.4136 49.5441H56.8165C57.3777 49.5441 57.8346 49.5297 58.1907 49.508C58.5433 49.4828 58.8203 49.3964 59.0145 49.2487C59.2088 49.101 59.3635 48.874 59.475 48.5642C59.5865 48.2543 59.6764 47.8184 59.7484 47.2528L62.7702 25.9544C63.0904 25.7563 63.5077 25.5473 64.0257 25.3276C64.6409 25.0574 65.1949 24.9097 65.6877 24.8844C66.1806 24.8592 66.5619 24.8736 66.8317 24.9205C67.3497 24.9961 67.7418 25.1546 68.0152 25.3996C68.2851 25.6446 68.4901 25.9544 68.6232 26.3219C68.7563 26.6929 68.8247 27.1036 68.8247 27.5612C68.8247 28.0187 68.7995 28.4798 68.7491 28.9482C68.6988 29.4921 68.6124 30.0469 68.4901 30.6125C68.3678 31.1817 68.1951 31.7221 67.9721 32.2409C67.749 32.7597 67.4684 33.228 67.1231 33.6459C66.7777 34.0674 66.3604 34.3844 65.8676 34.6078C65.5978 34.8059 64.9934 34.9032 64.0581 34.9032C63.648 34.9032 63.2667 34.8888 62.8925 34.8708L62.191 39.709H63.3206C63.8387 39.709 64.3243 39.691 64.7776 39.655C65.2344 39.619 65.7057 39.5397 66.1986 39.4136C66.8137 39.2659 67.5584 38.9993 68.4326 38.6175C69.3067 38.2356 70.1377 37.6015 70.9256 36.7117C71.7134 35.8471 72.4077 34.8131 73.0121 33.6063C73.6164 32.3994 74.0157 31.1061 74.2136 29.7227C74.5086 27.554 74.3539 25.6914 73.7531 24.1387L73.7567 24.1423Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M103.996 10.6831C103.59 10.6579 103.029 10.6471 102.316 10.6471C101.676 10.6471 101.165 10.6615 100.784 10.6831C100.403 10.7083 100.1 10.8056 99.8809 10.9785C99.6579 11.1514 99.4924 11.4108 99.3809 11.7531C99.2694 12.0989 99.1758 12.6033 99.1039 13.2697L99.0319 13.8966C98.9564 14.5883 98.9204 15.1107 98.9204 15.4673C98.9204 15.824 99.0139 16.0833 99.1974 16.2455C99.3809 16.4076 99.6723 16.4904 100.064 16.5048C100.457 16.5193 101.011 16.5229 101.726 16.5229C102.367 16.5229 102.885 16.5121 103.277 16.4868C103.669 16.4616 103.978 16.3643 104.198 16.1914C104.421 16.0185 104.586 15.7591 104.698 15.4169C104.809 15.071 104.903 14.5667 104.975 13.9002L105.05 13.2733C105.122 12.6069 105.162 12.0953 105.162 11.7386C105.162 11.382 105.068 11.1226 104.885 10.9605C104.701 10.802 104.406 10.7083 104 10.6831H103.996Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M144.741 20.392C144.568 20.2587 144.298 20.1831 143.928 20.1723C143.557 20.1615 143.043 20.1543 142.377 20.1543H142.118C141.626 20.1543 141.226 20.1723 140.917 20.2083C140.607 20.2443 140.356 20.3488 140.161 20.5217C140.212 20.5938 140.147 20.5938 139.978 20.5217C139.805 20.4461 139.658 20.3884 139.535 20.338C139.51 20.338 139.485 20.3308 139.464 20.32C139.438 20.3092 139.413 20.302 139.388 20.302C139.165 20.2515 138.866 20.2227 138.481 20.2083C138.1 20.1975 137.686 20.1903 137.244 20.1903C136.233 20.1903 135.287 20.302 134.402 20.5217C133.787 20.6694 133.031 20.954 132.132 21.3719C131.233 21.7934 130.416 22.4059 129.675 23.2201C128.887 24.0847 128.186 25.1114 127.57 26.3075C126.955 27.5035 126.549 28.804 126.351 30.209C126.056 32.3526 126.207 34.2151 126.811 35.793C127.416 37.371 128.455 38.5166 129.93 39.2335C130.2 39.356 130.52 39.4749 130.891 39.5865C131.261 39.6982 131.679 39.7775 132.146 39.8279C132.269 39.8531 132.416 39.8639 132.589 39.8639H133.143C134.474 39.8639 135.729 39.655 136.909 39.2335H136.873L137.093 39.1578L136.686 42.3389C136.611 42.9802 136.366 43.4485 135.949 43.7439C135.532 44.0393 135.003 44.2483 134.362 44.3744C134.143 44.4248 133.884 44.4608 133.589 44.4861C133.294 44.5113 132.985 44.5221 132.664 44.5221C131.999 44.5221 131.341 44.4788 130.689 44.3924C130.038 44.3059 129.563 44.2375 129.268 44.1906C128.973 44.1402 128.75 44.097 128.603 44.0609C128.455 44.0249 128.283 44.0069 128.085 44.0069C127.52 44.0069 127.07 44.1978 126.736 44.5797C126.405 44.9616 126.052 45.5488 125.685 46.3378C125.563 46.608 125.459 46.8565 125.372 47.0763C125.286 47.2997 125.229 47.4942 125.207 47.6671C125.157 47.9373 125.182 48.1535 125.279 48.3156C125.376 48.4777 125.556 48.6182 125.815 48.7407C126.074 48.8632 126.423 48.9821 126.865 49.0937C127.308 49.2054 127.851 49.3351 128.491 49.4828C128.934 49.5333 129.416 49.5801 129.93 49.6305C130.448 49.681 131.013 49.7062 131.628 49.7062C131.949 49.7062 132.355 49.681 132.848 49.6305C133.341 49.5801 133.852 49.508 134.38 49.4108C134.909 49.3099 135.431 49.1946 135.949 49.0577C136.467 48.9208 136.935 48.7551 137.352 48.5606C138.582 47.9914 139.629 47.1988 140.489 46.1757C141.352 45.1525 141.903 43.7908 142.151 42.0903L144.885 22.4923C144.957 21.8763 144.996 21.408 144.996 21.0873C144.996 20.7667 144.91 20.5397 144.737 20.4028L144.741 20.392ZM137.798 34.1647C137.625 34.2367 137.453 34.3088 137.28 34.3664C137.107 34.4277 136.884 34.5105 136.614 34.6078C135.974 34.8312 135.413 34.9572 134.934 34.9969C134.456 35.0329 134.078 35.0293 133.808 34.9789C133.29 34.9068 132.887 34.7519 132.589 34.5177C132.294 34.2836 132.085 33.9809 131.963 33.6135C131.841 33.2424 131.772 32.8389 131.758 32.3922C131.743 31.9491 131.765 31.4916 131.815 31.0232C131.887 30.4576 131.981 29.8848 132.092 29.3048C132.204 28.7248 132.369 28.1844 132.589 27.6764C132.812 27.1721 133.089 26.7146 133.42 26.3075C133.751 25.9004 134.165 25.5869 134.657 25.3636C134.855 25.2663 135.118 25.1835 135.452 25.1222C135.783 25.061 136.136 25.0285 136.503 25.0285C136.87 25.0285 137.204 25.0358 137.499 25.0466C137.794 25.0574 138.079 25.0898 138.348 25.1402C138.471 25.1654 138.589 25.1943 138.701 25.2339C138.812 25.2699 138.927 25.3023 139.053 25.3276L137.798 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M123.473 35.6057H122.696L124.063 25.8427C124.358 23.7496 123.958 22.2438 122.861 21.3323C121.764 20.4209 119.85 19.9886 117.12 20.039C116.479 20.039 115.897 20.0642 115.368 20.111C114.839 20.1615 114.389 20.2227 114.019 20.2948C113.796 20.3452 113.533 20.4101 113.224 20.4965C112.914 20.583 112.652 20.6874 112.429 20.8099C111.961 20.2948 111.245 20.0354 110.288 20.0354C109.648 20.0354 109.076 20.1074 108.572 20.2551C108.069 20.4028 107.63 20.5758 107.263 20.7739C106.82 20.9973 106.439 21.2314 106.119 21.4764C105.996 21.5989 105.903 21.743 105.842 21.9015C105.781 22.0636 105.737 22.1933 105.712 22.2906L105.489 23.8793C105.439 24.2252 105.507 24.5062 105.694 24.7295C105.878 24.9529 106.144 25.061 106.489 25.061H107.302L106.824 28.2781L105.532 37.2269C105.457 37.7204 105.421 38.1203 105.421 38.4265C105.421 38.7327 105.489 38.9777 105.626 39.147C105.763 39.32 105.964 39.4316 106.234 39.4785C106.504 39.5289 106.874 39.5505 107.342 39.5505H108.669C109.112 39.5505 109.475 39.5181 109.759 39.4569C110.04 39.3956 110.263 39.2767 110.425 39.1074C110.583 38.9345 110.706 38.6967 110.795 38.3869C110.882 38.0807 110.961 37.6916 111.036 37.2233L112.698 25.3528C113.314 25.2555 113.947 25.1691 114.601 25.0934C115.253 25.0177 115.911 25.0069 116.576 25.0574C117.242 25.1078 117.738 25.2555 118.073 25.5005C118.404 25.7455 118.523 26.1778 118.426 26.7938L117.059 36.5208C117.033 36.6685 117.023 36.9098 117.023 37.2413C117.023 37.5727 117.095 37.915 117.246 38.2572C117.393 38.603 117.645 38.9165 118.001 39.2011C118.357 39.4857 118.882 39.6622 119.57 39.7379C120.505 39.8351 121.278 39.8243 121.897 39.7018C122.512 39.5793 122.883 39.4929 123.005 39.4424C123.325 39.2947 123.602 39.1398 123.836 38.9813C124.07 38.8228 124.21 38.5814 124.261 38.2608L124.48 36.7441C124.53 36.4235 124.462 36.1533 124.279 35.9299C124.091 35.7066 123.829 35.5985 123.484 35.5985L123.473 35.6057Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M102.978 20.8892C102.759 20.6442 102.468 20.4389 102.112 20.2803C101.755 20.1218 101.331 20.039 100.838 20.039C100.198 20.039 99.6257 20.111 99.1221 20.2587C98.6184 20.4064 98.1795 20.5685 97.8126 20.7379C97.3701 20.9612 96.9888 21.1954 96.6686 21.4404C96.5463 21.5124 96.442 21.6313 96.3557 21.7898C96.2693 21.9519 96.2118 22.1177 96.1902 22.287L95.9707 23.8757C95.9204 24.2216 95.9959 24.5026 96.1902 24.7259C96.388 24.9493 96.647 25.0574 96.9636 25.0574H97.8126L96.0787 37.2232C96.0031 37.8141 95.9599 38.2644 95.9491 38.5742C95.9348 38.884 96.0031 39.111 96.1542 39.2587C96.3017 39.4064 96.5283 39.4929 96.8377 39.5181C97.1435 39.5433 97.5824 39.5541 98.1472 39.5541H98.5537C99.1185 39.5541 99.5753 39.5433 99.9207 39.5181C100.266 39.4929 100.543 39.4064 100.752 39.2587C100.96 39.111 101.119 38.884 101.23 38.5742C101.342 38.2644 101.432 37.8177 101.507 37.2232L103.536 22.5788C103.561 22.3086 103.529 22.0168 103.443 21.7106C103.356 21.4007 103.202 21.1233 102.982 20.8784L102.978 20.8892Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M90.4664 20.7055C90.1462 20.5578 89.6965 20.4173 89.1173 20.2804C88.5382 20.1471 87.9302 20.0786 87.2899 20.0786H87.2539C86.5632 20.0786 85.9049 20.129 85.2789 20.2263C84.653 20.3272 84.0666 20.4857 83.5234 20.7055L82.5269 21.1126C82.3074 20.8424 81.9909 20.6082 81.5844 20.41C81.1778 20.2119 80.7174 20.1146 80.2066 20.1146C79.5698 20.1146 79.0086 20.1903 78.5194 20.338C78.0301 20.4857 77.602 20.6586 77.2351 20.8568C76.7962 21.0801 76.4149 21.3143 76.0983 21.5593C76.0479 21.6097 75.976 21.7322 75.8789 21.9303C75.7817 22.1285 75.7206 22.287 75.6954 22.4095L75.4723 23.9982C75.422 24.3441 75.4831 24.6215 75.6558 24.8304C75.8285 25.0394 76.0839 25.1438 76.4257 25.1438H77.2675L74.1773 47.2564C74.1017 47.822 74.0622 48.2615 74.0478 48.5678C74.0334 48.874 74.1017 49.1045 74.2528 49.2523C74.4003 49.4 74.627 49.4864 74.9363 49.5116C75.2457 49.5369 75.681 49.5477 76.2422 49.5477H76.6451C77.2063 49.5477 77.6632 49.5333 78.0193 49.5116C78.3719 49.4864 78.6489 49.4 78.8431 49.2523C79.0374 49.1045 79.1921 48.8776 79.3036 48.5678C79.4151 48.2579 79.5051 47.822 79.577 47.2564L82.5988 25.958C82.919 25.7599 83.3363 25.5509 83.8543 25.3312C84.4695 25.061 85.0235 24.9133 85.5163 24.888C85.7753 24.8736 85.9984 24.8736 86.1962 24.8808C86.4481 24.8808 86.6747 24.8953 86.8438 24.9241C87.3618 24.9997 87.7539 25.1582 88.0237 25.4032C88.2935 25.6482 88.4986 25.958 88.6317 26.3255C88.7648 26.6965 88.8331 27.1072 88.8331 27.5648C88.8331 28.0223 88.808 28.4834 88.7612 28.9518C88.7108 29.4957 88.6245 30.0505 88.5022 30.6161C88.3799 31.1853 88.2072 31.7257 87.9842 32.2445C87.7611 32.7633 87.4805 33.2316 87.1352 33.6495C86.7898 34.071 86.3725 34.388 85.8797 34.6114C85.6099 34.8095 85.0055 34.9068 84.0702 34.9068C84.0378 34.9068 84.009 34.9068 83.973 34.9068C83.9407 34.9068 83.9191 34.9068 83.8867 34.9068C83.4766 34.9068 83.0953 34.8924 82.7211 34.8744L82.0196 39.7126H83.1492C83.6673 39.7126 84.1529 39.6946 84.6062 39.6586C85.0631 39.6226 85.5343 39.5433 86.0272 39.4172C86.6423 39.2695 87.387 39.0029 88.2612 38.6211C89.1353 38.2392 89.9663 37.6051 90.7542 36.7153C91.542 35.8507 92.2363 34.8167 92.8407 33.6099C93.445 32.403 93.8444 31.1097 94.0422 29.7263C94.3372 27.5576 94.1825 25.695 93.5817 24.1423C92.9774 22.5896 91.9377 21.444 90.4628 20.7019L90.4664 20.7055Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8840\"><rect width=\"145\" height=\"50\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingIsotype: '<svg id=\"wappingIsotype\" width=\"45\" height=\"55\" viewBox=\"0 0 45 55\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8841)\"><path id=\"path\" d=\"M41.5017 43.839C41.4513 44.1867 41.3757 44.5345 41.2461 44.8644C40.9688 45.56 40.4143 46.0368 39.705 46.2735C39.5069 46.338 39.2945 46.3918 39.1216 46.5137C39.0244 46.5818 39.01 46.7754 38.8984 46.8005C38.7184 46.84 38.7472 46.6786 38.7112 46.5711C38.6463 46.3774 38.3835 46.2412 38.2215 46.148C37.5697 45.7679 37.1016 45.1907 36.972 44.4413C36.918 44.133 36.756 42.7311 37.2313 42.7454C37.5913 42.7562 37.9586 42.8279 38.3187 42.8709C39.3053 42.9856 40.2919 43.1004 41.2785 43.2187C41.6494 43.2617 41.5485 43.5593 41.5053 43.8461L41.5017 43.839ZM36.756 53.9032C33.8718 52.842 32.4099 51.0062 33.2308 49.0916C33.8862 47.5606 34.4155 46.0261 34.4155 44.2943C34.4155 38.5541 29.7417 33.9002 23.9769 33.9002C18.2121 33.9002 13.5383 38.5541 13.5383 44.2943C13.5383 49.5649 17.2759 53.6809 22.2629 54.5486C22.6302 54.6132 24.4162 54.7637 24.8339 54.7637H36.4463C36.9828 54.8426 37.1952 54.1506 36.7632 53.8997L36.756 53.9032ZM44.2239 33.6564C43.8026 35.3702 42.1679 35.9546 40.6124 36.3634C38.722 36.8617 36.7452 36.8402 35.0312 35.9403C33.933 35.363 32.1434 34.0938 31.6753 31.2039C31.3008 28.8878 32.237 27.3568 33.094 26.1628C33.5333 25.5497 34.3579 24.9546 35.1212 24.5458C36.2482 23.9399 36.5291 23.9686 36.756 25.202C36.9396 26.1987 37.7101 26.9911 38.6247 27.364C40.0218 27.934 41.3289 28.6691 42.3947 29.7662C43.4497 30.8526 44.6236 32.0465 44.2239 33.66V33.6564ZM40.2955 31.6987C40.2955 30.9924 39.7194 30.4152 39.0064 30.4152C38.2935 30.4152 37.7174 30.9888 37.7174 31.6987C37.7174 32.4086 38.2935 32.9823 39.0064 32.9823C39.7194 32.9823 40.2955 32.4086 40.2955 31.6987ZM16.6098 32.7421C19.5012 30.5514 22.371 28.3105 25.1003 25.9226C30.289 21.3907 31.5853 13.6892 28.323 7.65133C25.1507 1.77483 17.9889 -1.25844 11.4247 0.494834C4.63368 2.30906 0.298381 8.20348 0.507224 15.611C0.989724 15.654 1.57305 15.4675 2.03754 15.2919C5.15219 14.1051 8.18762 14.3776 10.7838 16.744C13.2107 18.9526 13.8768 22.0504 12.8146 25.4314C11.954 28.2388 10.9242 30.9924 9.98439 33.7783C8.83935 37.1737 8.5513 40.5296 10.791 44.6493C10.2508 38.823 12.9262 35.5387 16.6134 32.7457L16.6098 32.7421ZM41.012 41.0352C40.5835 40.7591 40.3279 40.5296 39.5357 40.4436C38.776 40.3611 38.1963 40.5511 37.8254 40.777C37.3429 41.071 37.134 41.2467 36.9828 41.5622C36.8496 41.8383 36.9504 42.2184 37.2961 42.2578C38.1098 42.3546 38.9272 42.4478 39.741 42.5446C40.1911 42.5984 40.6448 42.6486 41.0949 42.7024C41.2137 42.7167 41.3325 42.7382 41.4513 42.7418C41.8006 42.7526 41.923 42.1753 41.7862 41.9459C41.5594 41.555 41.4045 41.2897 41.0084 41.0352H41.012Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8841\"><rect width=\"44\" height=\"55\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>',\r\n wappingIsotype2: '<svg id=\"wappingIsotype2\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8842)\"><path id=\"path\" d=\"M42.3339 0.926238C39.9109 -0.0542108 38.7396 1.57292 38.5508 1.96579L22.9255 32.7109L19.7018 17.427C19.548 16.7247 19.3627 16.2066 19.1494 15.8729C18.9361 15.5391 17.5795 13.7555 15.202 14.4891C12.5727 15.3027 12.8594 17.274 12.8 17.792C12.7685 18.0354 12.793 18.3031 12.8699 18.5917C12.9468 18.8838 13.0167 19.1932 13.0762 19.5304C13.0762 19.5304 16.7719 34.2928 17.2054 35.8713C17.4641 36.6431 17.562 36.9803 17.7019 37.2828C17.8383 37.5888 17.9851 37.8634 18.1389 38.1068C18.569 38.8995 19.3347 39.4349 20.4396 39.7096C20.6843 39.7687 20.9535 39.8174 21.2437 39.8452C21.5339 39.8765 21.8031 39.8904 22.0479 39.8904C22.7856 39.8904 23.4884 39.7305 24.1667 39.4106C24.8415 39.0907 25.4708 38.6561 26.0512 38.1068C26.4184 37.7418 26.733 37.3732 26.9953 37.0082C27.254 36.6431 27.5092 36.2467 27.754 35.8191L43.8968 4.69506C43.9702 4.54903 45.1869 2.07705 42.3304 0.922762L42.3339 0.926238Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.7091 29.2793C12.4015 29.9503 12.0938 30.6074 11.7896 31.2472C11.4819 31.8869 11.1917 32.4362 10.9155 32.8951L7.78623 17.5209C7.63239 17.0341 7.29674 16.5508 6.77578 16.078C6.25482 15.6052 5.53107 15.3687 4.61152 15.3687C3.81434 15.3687 2.63257 15.473 1.7375 16.5891C0.401884 18.251 1.57667 21.5887 1.57667 21.5887C2.28293 24.5474 2.84935 26.8977 3.2794 28.6361C3.70945 30.3745 4.04511 31.7409 4.28985 32.7317C4.5346 33.7226 4.71991 34.4319 4.84228 34.8595C4.96465 35.2872 5.08703 35.6661 5.2094 36.0034H5.16395C5.25485 36.3406 5.37723 36.6987 5.53107 37.0777C5.68491 37.4601 5.85273 37.8009 6.03804 38.1068C6.59047 38.8995 7.37366 39.4349 8.38411 39.7096C8.62886 39.7687 8.89109 39.8174 9.1673 39.8452C9.44352 39.8765 9.70225 39.8904 9.95049 39.8904C10.7162 39.8904 11.4539 39.7374 12.1602 39.4315C12.8665 39.1255 13.4783 38.6701 13.9993 38.0581C14.1531 37.9052 14.321 37.7139 14.5063 37.488C14.6916 37.2585 14.8594 37.0082 15.0132 36.7335L15.6041 35.7391L13.4678 27.6139C13.2196 28.1598 12.9679 28.7091 12.7091 29.2758V29.2793Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8842\"><rect width=\"44\" height=\"40\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>', \r\n itx: '<svg width=\"164\" height=\"32\" viewBox=\"0 0 164 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_6798_515)\"><path d=\"M26.6038 4.78003C31.5538 4.78003 35.2138 7.57003 35.6938 12.1H31.9438C31.1938 9.25003 29.4238 7.84003 26.6038 7.84003C22.5237 7.84003 20.0938 11.23 20.0938 16C20.0938 20.74 22.4938 24.16 26.6038 24.16C29.6638 24.16 31.6738 22 32.0638 18.55H35.7238C35.3338 23.68 31.8838 27.22 26.6038 27.22C23.5738 27.22 21.1138 26.14 19.1937 24.04C17.3037 21.91 16.3438 19.21 16.3438 16C16.3438 9.88003 20.1537 4.78003 26.6038 4.78003Z\" fill=\"black\"/><path d=\"M40.3341 5.29003H44.0841V15.04L53.6241 5.29003H58.2441L49.6941 13.84L58.8441 26.71H54.1641L47.1441 16.48L44.0841 19.51V26.71H40.3341V5.29003Z\" fill=\"black\"/><path d=\"M62.0713 5.29003H71.6713C76.2613 5.29003 78.8113 7.81003 78.8113 11.92C78.8113 16.09 76.2013 18.49 71.6713 18.49H65.8213V26.71H62.0713V5.29003ZM65.8213 15.43H71.4013C73.3813 15.43 75.0613 14.23 75.0613 11.89C75.0613 9.49003 73.7713 8.35003 71.4913 8.35003H65.8213V15.43Z\" fill=\"black\"/></g><rect width=\"30\" height=\"1\" transform=\"matrix(0 -1 1 0 86.8115 31)\" fill=\"black\"/><g clip-path=\"url(#clip1_6798_515)\"><path d=\"M98.5075 3.02393C99.6275 3.02393 100.66 3.71193 100.804 4.87193H100.26C100.068 3.99993 99.3475 3.48793 98.5075 3.48793C97.0115 3.48793 96.3555 4.72793 96.3555 5.99993C96.3555 7.22393 96.9795 8.51193 98.5075 8.51193C99.4995 8.51193 100.228 7.76793 100.34 6.67993H100.884C100.732 8.11993 99.8115 8.97593 98.5075 8.97593C96.7315 8.97593 95.8115 7.59993 95.8115 5.99993C95.8115 4.44793 96.6915 3.02393 98.5075 3.02393Z\" fill=\"black\"/><path d=\"M101.98 3.14393H102.524V6.68793C102.524 7.83993 102.996 8.51193 104.196 8.51193C105.348 8.51193 105.876 7.91193 105.876 6.67993V3.14393H106.42V6.78393C106.42 8.11993 105.66 8.97593 104.196 8.97593C102.7 8.97593 101.98 8.07193 101.98 6.78393V3.14393Z\" fill=\"black\"/><path d=\"M109.689 3.02393C110.897 3.02393 111.809 3.67193 111.809 4.79993H111.265C111.225 3.95193 110.545 3.48793 109.697 3.48793C108.921 3.48793 108.273 3.80793 108.273 4.62393C108.273 5.21593 108.753 5.39993 109.073 5.47993L110.465 5.82393C111.569 6.09593 112.009 6.58393 112.009 7.34393C112.009 7.90393 111.705 8.97593 109.825 8.97593C108.417 8.97593 107.545 8.32793 107.545 7.11993V6.97593H108.089V7.02393C108.089 8.07193 108.801 8.51193 109.937 8.51193C110.585 8.51193 111.465 8.16793 111.465 7.35193C111.465 6.83193 111.065 6.51193 110.321 6.32793L109.017 6.00793C108.169 5.79993 107.729 5.39993 107.729 4.63193C107.729 3.98393 108.177 3.02393 109.689 3.02393Z\" fill=\"black\"/><path d=\"M112.576 3.14393H117.104V3.60793H115.112V8.85593H114.568V3.60793H112.576V3.14393Z\" fill=\"black\"/><path d=\"M120.349 3.02393C122.125 3.02393 123.037 4.41593 123.037 5.99993C123.037 7.54393 122.157 8.97593 120.349 8.97593C118.565 8.97593 117.653 7.59193 117.653 5.99993C117.653 4.42393 118.557 3.02393 120.349 3.02393ZM118.197 5.99993C118.197 7.25593 118.845 8.51193 120.349 8.51193C121.837 8.51193 122.493 7.26393 122.493 5.99993C122.493 4.75993 121.861 3.48793 120.341 3.48793C118.901 3.48793 118.197 4.67193 118.197 5.99993Z\" fill=\"black\"/><path d=\"M124.191 3.14393H124.991L126.967 8.15193L128.935 3.14393H129.735V8.85593H129.191V3.91993H129.175L127.223 8.85593H126.711L124.751 3.91993H124.735V8.85593H124.191V3.14393Z\" fill=\"black\"/><path d=\"M131.191 3.14393H135.135V3.60793H131.735V5.67193H134.919V6.13593H131.735V8.39193H135.175V8.85593H131.191V3.14393Z\" fill=\"black\"/><path d=\"M136.253 3.14393H138.853C139.877 3.14393 140.605 3.64793 140.605 4.63193C140.605 5.39193 140.197 5.94393 139.493 6.08793V6.10393C140.389 6.22393 140.477 6.93593 140.501 7.53593C140.517 7.92793 140.541 8.60793 140.757 8.85593H140.157C140.037 8.67193 140.021 8.19193 139.997 7.80793C139.965 7.24793 139.877 6.88793 139.685 6.63993C139.509 6.41593 139.245 6.31993 138.941 6.31993H136.797V8.85593H136.253V3.14393ZM136.797 5.85593H138.837C139.477 5.85593 140.061 5.44793 140.061 4.74393C140.061 4.00793 139.613 3.60793 138.837 3.60793H136.797V5.85593Z\" fill=\"black\"/><path d=\"M96.0835 13.1439H96.6275V16.2159L99.9475 13.1439H100.684L98.1315 15.5039L100.804 18.8559H100.1L97.7235 15.8799L96.6275 16.8959V18.8559H96.0835V13.1439Z\" fill=\"black\"/><path d=\"M101.583 13.1439H102.191L105.519 17.9759H105.535V13.1439H106.079V18.8559H105.471L102.143 14.0239H102.127V18.8559H101.583V13.1439Z\" fill=\"black\"/><path d=\"M109.936 13.0239C111.712 13.0239 112.624 14.4159 112.624 15.9999C112.624 17.5439 111.744 18.9759 109.936 18.9759C108.152 18.9759 107.24 17.5919 107.24 15.9999C107.24 14.4239 108.144 13.0239 109.936 13.0239ZM107.784 15.9999C107.784 17.2559 108.432 18.5119 109.936 18.5119C111.424 18.5119 112.08 17.2639 112.08 15.9999C112.08 14.7599 111.448 13.4879 109.928 13.4879C108.488 13.4879 107.784 14.6719 107.784 15.9999Z\" fill=\"black\"/><path d=\"M113.218 13.1439H113.802L115.098 18.1439H115.114L116.506 13.1439H117.186L118.586 18.1439H118.602L119.906 13.1439H120.45L118.874 18.8559H118.298L116.85 13.7439H116.834L115.394 18.8559H114.802L113.218 13.1439Z\" fill=\"black\"/><path d=\"M121.371 13.1439H121.915V18.3919H125.115V18.8559H121.371V13.1439Z\" fill=\"black\"/><path d=\"M125.988 13.1439H129.932V13.6079H126.532V15.6719H129.716V16.1359H126.532V18.3919H129.972V18.8559H125.988V13.1439Z\" fill=\"black\"/><path d=\"M131.05 13.1439H132.93C134.618 13.1439 135.65 13.9759 135.65 15.9999C135.65 17.8799 134.762 18.8559 132.922 18.8559H131.05V13.1439ZM131.594 18.3919H132.746C134.322 18.3919 135.106 17.7839 135.106 15.9999C135.106 14.2559 134.378 13.6079 132.73 13.6079H131.594V18.3919Z\" fill=\"black\"/><path d=\"M139.271 13.0239C140.495 13.0239 141.447 13.6959 141.655 14.9199H141.111C141.039 14.2159 140.303 13.4879 139.271 13.4879C137.759 13.4879 137.119 14.7519 137.119 15.9999C137.119 17.2639 137.767 18.5119 139.271 18.5119C140.447 18.5119 141.247 17.7359 141.247 16.4639V16.4159H139.303V15.9519H141.727V18.8559H141.335L141.263 17.8159H141.247C140.895 18.5679 140.175 18.9759 139.271 18.9759C137.503 18.9759 136.575 17.6079 136.575 15.9999C136.575 14.4319 137.471 13.0239 139.271 13.0239Z\" fill=\"black\"/><path d=\"M143.097 13.1439H147.041V13.6079H143.641V15.6719H146.825V16.1359H143.641V18.3919H147.081V18.8559H143.097V13.1439Z\" fill=\"black\"/><path d=\"M96.0835 23.1439H98.6275C99.6115 23.1439 100.316 23.7119 100.316 24.7759C100.316 25.8639 99.5795 26.4079 98.6275 26.4079H96.6275V28.8559H96.0835V23.1439ZM96.6275 25.9439H98.5075C99.2515 25.9439 99.7715 25.5759 99.7715 24.7759C99.7715 24.0639 99.3555 23.6079 98.4915 23.6079H96.6275V25.9439Z\" fill=\"black\"/><path d=\"M101.443 23.1439H101.987V28.3919H105.187V28.8559H101.443V23.1439Z\" fill=\"black\"/><path d=\"M107.731 23.1439H108.339L110.579 28.8559H109.995L109.299 27.0799H106.699L106.011 28.8559H105.427L107.731 23.1439ZM108.011 23.6879L106.867 26.6159H109.115L108.011 23.6879Z\" fill=\"black\"/><path d=\"M110.256 23.1439H114.784V23.6079H112.792V28.8559H112.248V23.6079H110.256V23.1439Z\" fill=\"black\"/><path d=\"M115.637 23.1439H119.261V23.6079H116.181V25.6719H118.917V26.1359H116.181V28.8559H115.637V23.1439Z\" fill=\"black\"/><path d=\"M122.646 23.0239C124.422 23.0239 125.334 24.4159 125.334 25.9999C125.334 27.5439 124.454 28.9759 122.646 28.9759C120.862 28.9759 119.95 27.5919 119.95 25.9999C119.95 24.4239 120.854 23.0239 122.646 23.0239ZM120.494 25.9999C120.494 27.2559 121.142 28.5119 122.646 28.5119C124.134 28.5119 124.79 27.2639 124.79 25.9999C124.79 24.7599 124.158 23.4879 122.638 23.4879C121.198 23.4879 120.494 24.6719 120.494 25.9999Z\" fill=\"black\"/><path d=\"M126.504 23.1439H129.104C130.128 23.1439 130.856 23.6479 130.856 24.6319C130.856 25.3919 130.448 25.9439 129.744 26.0879V26.1039C130.64 26.2239 130.728 26.9359 130.752 27.5359C130.768 27.9279 130.792 28.6079 131.008 28.8559H130.408C130.288 28.6719 130.272 28.1919 130.248 27.8079C130.216 27.2479 130.128 26.8879 129.936 26.6399C129.76 26.4159 129.496 26.3199 129.192 26.3199H127.048V28.8559H126.504V23.1439ZM127.048 25.8559H129.088C129.728 25.8559 130.312 25.4479 130.312 24.7439C130.312 24.0079 129.864 23.6079 129.088 23.6079H127.048V25.8559Z\" fill=\"black\"/><path d=\"M132.143 23.1439H132.943L134.919 28.1519L136.887 23.1439H137.687V28.8559H137.143V23.9199H137.127L135.175 28.8559H134.663L132.703 23.9199H132.687V28.8559H132.143V23.1439Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_6798_515\"><rect width=\"62.4675\" height=\"22.44\" fill=\"white\" transform=\"translate(16.3438 4.78003)\"/></clipPath><clipPath id=\"clip1_6798_515\"><rect width=\"51.2691\" height=\"25.952\" fill=\"white\" transform=\"translate(95.8115 3.02393)\"/></clipPath></defs></svg>'\r\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { wappingLogos } from '../logos';\r\n\r\n@Component({\r\n selector: 'w-logos',\r\n template: `\r\n <ng-content></ng-content>\r\n <div *ngIf=\"url != undefined && name == undefined\" [style]=\"'width: '+width+'px; height: '+height+'px;'\">\r\n <img [src]=\"url\" class=\"w-logo-img\">\r\n </div>\r\n `,\r\n styleUrls: ['./w-logos.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WLogosComponent implements OnInit, AfterViewInit{\r\n @Input('name') name!: string | undefined;\r\n @Input('width') width!: any;\r\n @Input('height') height!: any;\r\n @Input('color') color!: string;\r\n @Input('url') url!: string | undefined; \r\n\r\n constructor(private element: ElementRef) { }\r\n \r\n ngOnInit(): void {\r\n if(this.name != undefined){\r\n this.element.nativeElement.innerHTML = wappingLogos[this.name] || null; \r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if(this.name != undefined){\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if (svgElement) {\r\n if (this.width) {\r\n svgElement.setAttribute('width', this.width.toString());\r\n }\r\n\r\n if (this.height) {\r\n svgElement.setAttribute('height', this.height.toString());\r\n }\r\n }\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\r\n }\r\n }\r\n }\r\n \r\n private applyColorToPaths(fillColor: string) {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n if (svgElement) {\r\n const pathElements = svgElement.querySelectorAll('path');\r\n pathElements.forEach((path:any) => {\r\n path.setAttribute('fill', fillColor);\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n@Component({\r\n selector: 'w-edit-input-textarea',\r\n templateUrl: './w-edit-input-textarea.component.html',\r\n styleUrls: ['./w-edit-input-textarea.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextareaComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputTextareaComponent {\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('rows') rows: number = 4;\r\n @Input('minlength') minlength!: number;\r\n @Input('maxlength') maxlength!: number;\r\n @Input('autoResize') autoResize: boolean = true;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length warning\";\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length warning\";\r\n\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n value: string = '';\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\">\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <div class=\"flex flex-column w-edit-input-textarea-medium-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea \r\n [ngClass]=\"{'w-edit-input-textarea-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-textarea-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-textarea-medium-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n [autoResize]=\"autoResize\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-medium\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </textarea>\r\n </div>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-alert-message-height w-full w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <small *ngIf=\"formControl.invalid && formControl.hasError('maxlength')\" class=\"w-input-alert-message-height w-full w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</small>\r\n <small *ngIf=\"formControl.invalid && formControl.hasError('minlength')\" class=\"w-input-alert-message-height w-full w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</small>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.dirty\" class=\"w-input-alert-message-height w-full w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</small>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [ngClass]=\"{'w-edit-input-textarea-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-textarea-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-textarea-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n [autoResize]=\"autoResize\"\r\n [rows]=\"rows\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </textarea>\r\n </div>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-alert-message-height w-full w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('maxlength')\" class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('minlength')\" class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\" class=\"w-input-alert-message w-full w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <div class=\"flex flex-column w-edit-input-textarea-medium-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [disabled]=\"disabled\"\r\n minlength=\"{{minlength}}\"\r\n maxlength=\"{{maxlength}}\"\r\n [autoResize]=\"autoResize\"\r\n [required]=\"required\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-medium\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [(ngModel)]=\"value\" (input)=\"onValueChanged()\" [disabled]=\"disabled\">\r\n </textarea>\r\n </div>\r\n <!-- <div class=\"w-input-alert-message-height\"></div> -->\r\n </div>\r\n <ng-template #inputSmall>\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [disabled]=\"disabled\"\r\n minlength=\"{{minlength}}\"\r\n maxlength=\"{{maxlength}}\"\r\n [autoResize]=\"autoResize\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\">\r\n </textarea>\r\n </div>\r\n <!-- <div class=\"w-input-alert-message-height\"></div> -->\r\n </ng-template>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-select',\r\n templateUrl: './w-edit-select.component.html',\r\n styleUrls: ['./w-edit-select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WEditSelectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('filter') filter: boolean = false;\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n @Output('onClear') onClearEvent: EventEmitter<boolean> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n this.showClear = !this.required;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onClear() {\r\n this.onClearEvent.emit(true);\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-select-medium\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [showClear]=\"showClear\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n (onClear)=\"onClear()\"\r\n (onChange)=\"onOptionSelectForm($event)\">\r\n </p-dropdown>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-select-small\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [filter]=\"filter\"\r\n [placeholder]=\"placeholder\"\r\n [showClear]=\"showClear\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n (onClear)=\"onClear()\"\r\n (onChange)=\"onOptionSelectForm($event)\">\r\n </p-dropdown>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size && formControl.dirty && formControl.hasError('required')\"\r\n class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-select-medium\" \r\n [options]=\"options\" \r\n [optionLabel]=\"optionLabel\" \r\n [optionValue]=\"optionValue\" \r\n [filter]=\"filter\"\r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (onChange)=\"onOptionSelected()\" \r\n [showClear]=\"showClear\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-dropdown>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-select-small\"\r\n [options]=\"options\"\r\n [filter]=\"filter\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (onChange)=\"onOptionSelected()\"\r\n [showClear]=\"showClear\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-dropdown>\r\n </div>\r\n</ng-template>\r\n","export enum TableColumnFilterTypes {\r\n None = 0,\r\n Text = 1,\r\n Multiselect = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6\r\n}\r\n\r\nexport enum TableColumnTypes {\r\n None = 0,\r\n Text = 1,\r\n Badge = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6,\r\n Currency = 7,\r\n Number = 8,\r\n ShortDate = 9,\r\n LongDate = 10,\r\n GeneralDateTimeShortTime = 11,\r\n GeneralDateTimeLongTime = 12,\r\n ColoredBadge = 13,\r\n Week = 14,\r\n BuisinessDateTime = 15,\r\n SecondaryCheckbox = 16,\r\n Percentage = 17,\r\n DateRaw = 18\r\n}\r\n\r\nexport enum WappTableColumnAlignTypes {\r\n Right = 0,\r\n Left = 1,\r\n Center = 2,\r\n}\r\n\r\nexport enum QBDataTypeEnum{\r\n Boolean = 1,\r\n Datetime = 2,\r\n Decimal = 3,\r\n List = 4, \r\n Number = 5, \r\n Text = 6,\r\n Address = 7,\r\n StoreList = 8,\r\n ServiceList = 9,\r\n ProductList = 10,\r\n CategoryList = 11,\r\n ProductTagList = 12,\r\n SegmentList = 13,\r\n GroupList = 14,\r\n CustomerTagList = 15,\r\n TypeEventActivityList = 16,\r\n PaymentTypeList = 17,\r\n SaleChannelList = 18,\r\n CustomerChannelList = 19,\r\n OperationTypeList = 20,\r\n Multiselect = 21,\r\n NullableSelect = 22,\r\n BooleanSelect = 23,\r\n TranslatedSelect = 32\r\n}\r\n\r\nexport enum OperatorEnum{\r\n Equals = '=',\r\n NotEquals = '!=',\r\n LessThan = '<',\r\n LessThanEqual = '<=',\r\n GreaterThan = '>',\r\n GreaterThanEqual = '>=',\r\n In = 'in',\r\n NotIn = 'not in',\r\n IsNull = 'is null',\r\n IsNotNull = 'is not null',\r\n Nullable = 'nullable'\r\n}\r\n\r\nexport enum DataTypeEnum{\r\n Single = 1,\r\n Multi = 2,\r\n Nullable = 3\r\n}\r\n\r\nexport enum WDatePipeFormatType {\r\n d = 0,\r\n D = 1,\r\n g = 2,\r\n G = 3,\r\n Business = 4,\r\n}\r\n\r\nexport enum AddressEnum{\r\n Country = 1, \r\n Locality = 2, \r\n AreaLevel1 = 3, \r\n AreaLevel2 = 4, \r\n PostalCode = 5\r\n}\r\n\r\nexport enum CustomColor {\r\n darkBlue1 = 1,\r\n darkBlue2 = 2,\r\n darkBlue3 = 3,\r\n purple1 = 4,\r\n purple2 = 5,\r\n purple3 = 6,\r\n pink1 = 7,\r\n pink2 = 8,\r\n pink3 = 9,\r\n green1 = 10,\r\n green2 = 11,\r\n green3 = 12,\r\n error1 = 13, \r\n error2 = 14\r\n}\r\n\r\nexport enum WDatePipeReturnType {\r\n string = 0,\r\n date = 1\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateConversionService {\r\n\r\n constructor() { }\r\n\r\n formatUTCDate(date: string | Date): Date | null | any{\r\n const inputDate = typeof date === 'string' ? new Date(`${date}Z`) : date; \r\n\r\n if (isNaN(inputDate?.getTime())) { \r\n return null;\r\n }\r\n \r\n return new Date(inputDate.toISOString());\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-badge',\r\n templateUrl: './w-badge.component.html',\r\n styleUrls: ['./w-badge.component.scss']\r\n})\r\nexport class WBadgeComponent {\r\n @Input('label') label: string = \"\";\r\n @Input('color') color: string = \"default\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input('maxWidthOverflow') maxWidthOverflow!: string;\r\n}\r\n","<span [class]=\"'w-badge color-' + color\" [ngClass]=\"{'w-badge-overflow-text': maxWidthOverflow}\" [pTooltip]=\"tooltip\" [style.max-width]=\"maxWidthOverflow\">\r\n {{label}}\r\n</span>\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-button-week',\r\n templateUrl: './w-button-week.component.html',\r\n styleUrls: ['./w-button-week.component.scss'], \r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WButtonWeekComponent), \r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WButtonWeekComponent implements OnInit, ControlValueAccessor {\r\n @Input('value') value!: number[];\r\n @Input('translations') translations!: string[];\r\n @Input('defaultEsp') defaultEsp: boolean = false; \r\n @Output('onDayClick') onDayClick: EventEmitter<MouseEvent> = new EventEmitter(); \r\n \r\n weekDays: any[] = [\r\n { name: 'Mon', value: 1, disabled: true },\r\n { name: 'Tue', value: 2, disabled: true },\r\n { name: 'Wed', value: 3, disabled: true }, \r\n { name: 'Thu', value: 4, disabled: true },\r\n { name: 'Fri', value: 5, disabled: true },\r\n { name: 'Sat', value: 6, disabled: true }, \r\n { name: 'Sun', value: 0, disabled: true }\r\n ];\r\n\r\n weekDaysEsp: any[] = [\r\n { name: 'L', value: 1, disabled: true },\r\n { name: 'M', value: 2, disabled: true },\r\n { name: 'MX', value: 3, disabled: true }, \r\n { name: 'J', value: 4, disabled: true },\r\n { name: 'V', value: 5, disabled: true },\r\n { name: 'S', value: 6, disabled: true }, \r\n { name: 'D', value: 0, disabled: true }\r\n ];\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n ngOnInit(): void {\r\n if(this.translations){\r\n if(this.translations.length == 7){\r\n this.weekDays = this.weekDays.map((day:any, index) => {\r\n return {\r\n name: this.translations[index], \r\n value: day.value, \r\n disabled: day.disabled\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value; \r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n onValueChanged(){\r\n this.onChange(this.value); \r\n this.onTouch(); \r\n }\r\n\r\n onButtonOptionClick(event: any){\r\n this.onDayClick.emit(event.option); \r\n }\r\n}\r\n","<p-selectButton class=\"w-button-week-small\" \r\n [options]=\"defaultEsp ? weekDaysEsp : weekDays\" \r\n [(ngModel)]=\"value\" \r\n [multiple]=\"true\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n (onChange)=\"onValueChanged()\" \r\n (onOptionClick)=\"onButtonOptionClick($event)\" \r\n optionDisabled=\"disabled\">\r\n</p-selectButton>\r\n","import { Injectable } from '@angular/core';\r\nimport { StoredFilterPanelQuery } from '../models/stored-filter-panel-query.model';\r\nimport { ComponentsTenantStorage } from '../models/components-tenant-storage.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorageService {\r\n private businessData = \"businessData\";\r\n\r\n constructor() { }\r\n\r\n setComponentsTenantStorage(tenantId: string, tenantStorage: ComponentsTenantStorage) {\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n\r\n getComponentsTenantStorage(tenantId: string): ComponentsTenantStorage {\r\n return JSON.parse(sessionStorage.getItem(tenantId)!);\r\n }\r\n\r\n setLastFilterPanelQuery(tenantId: string, storedQuery: StoredFilterPanelQuery | null) {\r\n\r\n if(storedQuery != undefined) {\r\n let allFilters:ComponentsTenantStorage = this.getAllLastFilterPanelQueries(tenantId);\r\n if(allFilters) {\r\n allFilters[storedQuery.id] = storedQuery;\r\n sessionStorage.setItem(tenantId, JSON.stringify(allFilters));\r\n } else {\r\n let tenantStorage: ComponentsTenantStorage = {\r\n [storedQuery.id]: storedQuery\r\n }\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n }\r\n\r\n getAllLastFilterPanelQueries(tenantId: string): ComponentsTenantStorage {\r\n return this.getComponentsTenantStorage(tenantId);\r\n }\r\n\r\n getLastFilterPanelQuery(tenantId: string, filterId: string): StoredFilterPanelQuery {\r\n return this.getComponentsTenantStorage(tenantId)?.[filterId]!;\r\n }\r\n\r\n removeLastFilterPanelQuery(tenantId: string, filterId: string) {\r\n let tenantStorage: ComponentsTenantStorage = JSON.parse(sessionStorage.getItem(tenantId)!);\r\n tenantStorage[filterId] = null;\r\n this.setComponentsTenantStorage(tenantId, tenantStorage);\r\n }\r\n\r\n getBusinessData() {\r\n return JSON.parse(sessionStorage.getItem(this.businessData)!);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { WDatePipeReturnType, WDatePipeFormatType } from '../models/enums.model';\r\nimport { SessionStorageService } from '../services/session-storage.service';\r\n\r\n@Pipe({\r\n name: 'wappDate'\r\n})\r\nexport class WDatePipe implements PipeTransform {\r\n\r\n constructor(\r\n private sessionStorageService: SessionStorageService,\r\n ) {}\r\n \r\n transform(date: Date | number | string, format?: WDatePipeFormatType | \"\", locale?: any | \"\", returnType?: WDatePipeReturnType) {\r\n let wappDate: any;\r\n\r\n switch(format) { \r\n case WDatePipeFormatType.d: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.D: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'fullDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.g: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\")\r\n break; \r\n } \r\n case WDatePipeFormatType.G: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')! + ' '\r\n + new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'mediumTime')\r\n break; \r\n }\r\n case WDatePipeFormatType.Business: { \r\n wappDate = date;\r\n wappDate = this.getBusinessTime(wappDate);\r\n\r\n if(returnType == WDatePipeReturnType.date) return wappDate;\r\n\r\n wappDate = locale ?\r\n new DatePipe(locale).transform(wappDate, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(wappDate, 'short')?.replace(/,/g, \"\");\r\n break; \r\n }\r\n\r\n default: { \r\n wappDate = locale ?\r\n new DatePipe(locale).transform(date, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\");\r\n break; \r\n } \r\n } \r\n return wappDate;\r\n }\r\n\r\n getBusinessTime(date: Date | string) {\r\n let businessHourDifference: number = this.sessionStorageService.getBusinessData().diffHourFromUTC;\r\n \r\n if(typeof date == 'string') {\r\n let newDate = new Date(date);\r\n newDate.setHours(newDate.getHours() + businessHourDifference);\r\n return newDate;\r\n } else {\r\n console.log(\"WDatePipe for business format only accepts string dates\");\r\n return null;\r\n }\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'wappPercentage'\r\n})\r\nexport class WPercentagePipe implements PipeTransform {\r\n \r\n transform(number: number) {\r\n return number + '%';\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionStorageService } from '../services/session-storage.service';\r\n\r\n@Pipe({\r\n name: 'wappCurrency'\r\n})\r\nexport class WCurrencyPipe implements PipeTransform {\r\n\r\n constructor(\r\n private sessionStorageService: SessionStorageService\r\n ) {}\r\n \r\n transform(value: number, digits?: number): any {\r\n let businessCurrency = this.sessionStorageService.getBusinessData().currencySymbol;\r\n let valueWithDigits = value.toFixed(digits || 2);\r\n\r\n if(businessCurrency) {\r\n if(businessCurrency == '€') {\r\n return valueWithDigits + ' ' + businessCurrency;\r\n } else {\r\n return businessCurrency + ' ' + valueWithDigits;\r\n }\r\n } else {\r\n return '$ ' + valueWithDigits;\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { WappTable } from '../../shared/models/wapp-table.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-table',\r\n templateUrl: './w-table.component.html',\r\n styleUrls: ['./w-table.component.scss'],\r\n providers: [ConfirmationService]\r\n\r\n})\r\nexport class WTableComponent implements OnInit, OnChanges {\r\n translations: any;\r\n translateObjectName: string = \"object\"\r\n selectAll: boolean = false;\r\n tableMinWidth: number = 70;\r\n\r\n tableSkeletons: any = [{ name: '' }, { name: '' }, { name: '' }, { name: '' }];\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n }\r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n @Input('elements') elements!: any[];\r\n @Input('selectedElements') selectedElements: any[] = [];\r\n @Input('rowsPerPage') rowsPerPage: number = 0;\r\n originalRowsPerPage: number = 0; \r\n @Input('loading') loading: boolean = true;\r\n @Input('wappTableObject') wappTableObject!: WappTable;\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onNewElementSelect') onNewElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('filter') filter!: ElementRef;\r\n @ViewChild('table') dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['rowsPerPage'] && changes?.['rowsPerPage'].currentValue !== changes?.['rowsPerPage'].previousValue) {\r\n if (this.originalRowsPerPage === 0 && changes?.['rowsPerPage'].currentValue !== 0) {\r\n this.originalRowsPerPage = changes?.['rowsPerPage'].currentValue;\r\n }\r\n }\r\n\r\n if (changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n if (this.rowsPerPage === 0 && this.elements) {\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n } else if ((this.rowsPerPage > this.elements.length) || this.elements.length === 0) {\r\n this.rowsPerPage = Math.max(this.elements.length, 0);\r\n }else if(this.elements.length > this.rowsPerPage){\r\n if(this.originalRowsPerPage === 0){\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n }else if(this.rowsPerPage < this.originalRowsPerPage){\r\n this.rowsPerPage = this.elements.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.onNewElementSelect.emit(true);\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if (_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n confirmDeleteSelected(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(value = []) {\r\n this.selectAll = value.length === this.elements.length;\r\n this.selectedElements = value;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.selectedElements = this.wappTableObject.disableCheckbox ? this.getSelectableElements(this.elements) : this.elements;\r\n this.updateSelectedFilteredItems(this.dataTable.filteredValue.map(v => v[this.wappTableObject.identificator]));\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this.wappTableObject.disableCheckbox!));\r\n }\r\n\r\n updateSelectedFilteredItems(items: any[]) {\r\n this.selectedElements = this.selectedElements.filter(e => items.includes(e[this.wappTableObject.identificator]));\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n onGlobalFilter(table: Table, event: Event) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains');\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if (alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if (alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if (alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if (columnType == TableColumnTypes.Text) return 'text-left';\r\n if (columnType == TableColumnTypes.Currency) return 'text-left';\r\n if (columnType == TableColumnTypes.Date) return 'text-left';\r\n if (columnType == TableColumnTypes.Badge) return 'text-center';\r\n if (columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if (columnType == TableColumnTypes.Image) return 'text-center';\r\n if (columnType == TableColumnTypes.Number) return 'text-right';\r\n if (columnType == TableColumnTypes.SecondaryCheckbox) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this.wappTableObject.headers.length;\r\n this.wappTableObject.hasCheckbox ?\r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons(): boolean {\r\n return this.wappTableObject.hasCopyButton ||\r\n this.wappTableObject.hasEditButton ||\r\n this.wappTableObject.hasViewButton ||\r\n this.wappTableObject.hasDeleteButton ||\r\n this.wappTableObject.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n pageChange(element: any) {\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n\r\n isElementSelected(id: number) {\r\n return this.selectedElements.some(element => element[this.wappTableObject.identificator] == id);\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"w-table-styles\" [ngClass]=\"{'w-table-no-buttons' : !wappTableObject.hasEditButton && !wappTableObject.hasDeleteButton && !wappTableObject.hasCopyButton && !wappTableObject.customButtonConfig}\"\r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"wappTableObject.hasPaginator\"\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]=\"wappTableObject.hasViewButton!\" [tableStyle]=\"{'min-width': wappTableObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template pTemplate=\"caption\" *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch || wappTableObject.hasTotalPagingSelector\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span *ngIf=\"wappTableObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableObject.hasTotalPagingSelector\"\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 w-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.hasCheckbox\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[0]) : 'text-center'\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else sortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers; index as i\"\r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] == tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #sortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" \r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] === tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\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 || wappTableObject.hasViewButton || wappTableObject.hasCopyButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"{'row-hover': wappTableObject.hasViewButton}\" \r\n (click)=\"wappTableObject.hasClickableRow ? 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]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [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>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.columns[i])\" \r\n [src]=\"readProperty(element, wappTableObject.columns[i])\" \r\n class=\"element-image-width\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappPercentage }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappCurrency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"'info'\"></w-badge> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ColoredBadge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <div *ngFor=\"let badge of wappTableObject.coloredBadge; index as ind\">\r\n <w-badge *ngIf=\"badge.coloredBadgeProperty == readProperty(element, wappTableObject.columns[i])\"\r\n [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"badge.color\"></w-badge>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.columns[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.SecondaryCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableObject.columns[i]]\" [disabled]=\"!isElementSelected(element[wappTableObject.identificator])\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.BuisinessDateTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate : wappDateFormat.Business }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Week\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\" \r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableObject.columns[i])\" [translations]=\"wappTableObject.weekButtonTranslations ? wappTableObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n </ng-template>\r\n <td *ngIf=\"wappTableObject.hasCustomButton || wappTableObject?.hasEditButton || wappTableObject?.hasCopyButton || wappTableObject?.hasDeleteButton || wappTableObject?.hasViewButton\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableObject?.hasViewButton && !wappTableObject.disableViewProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\" \r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject.disableViewProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableViewProperty)\" \r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button *ngIf=\"!customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n type=\"table\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view' + getButtonCustomColorClass(customButtonConfig.color!) \">\r\n </w-button>\r\n <w-button *ngIf=\"customButtonConfig?.disableProperty\" \r\n type=\"table\" \r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\" \r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n type=\"table\" (onClick)=\"editElement(element)\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject.disableEditProperty\" \r\n type=\"table\" (onClick)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n type=\"table\" (onClick)=\"confirmCopy($event, element)\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <span *ngIf=\"wappTableObject?.hasDeleteButton\">\r\n <w-button *ngIf=\"wappTableObject.disableDeleteProperty; else noDisableDelete\" \r\n type=\"table\" (onClick)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n <ng-template #noDisableDelete>\r\n <w-button *ngIf=\"!wappTableObject?.disableDelete && !wappTableObject.disableDeleteProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"confirmDelete($event, element)\" \r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableObject.emptyMessage ? wappTableObject.emptyMessage : 'No matches.'}}</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=\"w-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"wappTableObject.hasPaginator\" [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 <span *ngIf=\"wappTableObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableObject.hasTotalPagingSelector\"\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 w-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 || wappTableObject?.hasViewButton\"></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 || wappTableObject.hasCopyButton || wappTableObject.hasViewButton\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableObject?.hasViewButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\" \r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableObject?.hasEditButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasDeleteButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-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>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, LazyLoadEvent } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { LazyElementQueryRequest } from '../../shared/models/lazy-element-query-request.model';\r\nimport { WappTableLazyLoading } from '../../shared/models/wapp-table-lazy-loading.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n\r\n@Component({\r\n selector: 'w-table-lazy',\r\n templateUrl: './w-table-lazy.component.html',\r\n styleUrls: ['./w-table-lazy.component.scss']\r\n})\r\nexport class WTableLazyComponent implements OnInit {\r\n selectedElements: any[] = [];\r\n translations: any;\r\n lastQuery!: LazyElementQueryRequest;\r\n\r\n selectAll: boolean = false;\r\n filterElementsIndex: number = 0;\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n @Input('loading') loading!: boolean;\r\n @Input('elements') elements!: any[];\r\n @Input('rowsPerPage') rowsPerPage: number = 10;\r\n @Input('allElements') allElements!: any[];\r\n @Input('totalRecords') totalRecords!: number;\r\n @Input('maxRowsPerPage') maxRowsPerPage: number = 50;\r\n @Input('wappTableLazyLoadingObject') wappTableLazyLoadingObject!: WappTableLazyLoading;\r\n\r\n @Output('queryElements') queryElements = new EventEmitter<LazyElementQueryRequest>();\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onAllElementSelect') onAllElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('table', { static: false }) dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n \r\n if(this.wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined){\r\n this.wappTableLazyLoadingObject.hasSelectAllCheckbox = true; \r\n }\r\n }\r\n\r\n loadElements(event: LazyLoadEvent) {\r\n this.loading = true;\r\n let adaptedQuery: LazyElementQueryRequest = {\r\n first: event.first!,\r\n rows: this.rowsPerPage!,\r\n sortOrder: event.sortOrder!,\r\n sortField: event.sortField!,\r\n filters: Object.keys(event.filters!).map((key) => {\r\n return {\r\n columnName: key!,\r\n value: event.filters![key].value,\r\n matchMode: event.filters![key].matchMode!\r\n }\r\n })\r\n }\r\n this.lastQuery = adaptedQuery;\r\n this.queryElements.emit(adaptedQuery);\r\n }\r\n\r\n reloadElements() {\r\n this.lastQuery.rows = this.rowsPerPage;\r\n this.queryElements.emit(this.lastQuery);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (prop === null) {\r\n return undefined;\r\n }\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n const properties = prop.split('.');\r\n let result = obj;\r\n\r\n for (const property of properties) {\r\n const match = property.match(/(.+?)\\[(\\d+)\\]/);\r\n if (match) {\r\n const arrayProp = match[1];\r\n const index = parseInt(match[2], 10);\r\n if (!Array.isArray(result[arrayProp]) || isNaN(index) || index < 0 || index >= result[arrayProp].length) {\r\n return undefined;\r\n }\r\n result = result[arrayProp][index];\r\n } else {\r\n if (typeof result[property] === 'undefined') {\r\n return undefined;\r\n }\r\n result = result[property];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n confirmDeleteSelection(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(value = []) {\r\n this.selectAll = value.length === this.totalRecords;\r\n this.selectedElements = value;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.onAllElementSelect.emit(true);\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.selectedElements = this.wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;\r\n this.selectAll = true;\r\n this.loading = false;\r\n }, 1000);\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n \r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this.wappTableLazyLoadingObject.disableCheckbox!));\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor) ?? '';\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if(columnType == TableColumnTypes.Text) return 'text-left';\r\n if(columnType == TableColumnTypes.Currency) return 'text-left';\r\n if(columnType == TableColumnTypes.Date) return 'text-left';\r\n if(columnType == TableColumnTypes.Badge) return 'text-center';\r\n if(columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if(columnType == TableColumnTypes.Image) return 'text-center';\r\n if(columnType == TableColumnTypes.Number) return 'text-right';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this.wappTableLazyLoadingObject.headers.length;\r\n this.wappTableLazyLoadingObject.hasCheckbox ? \r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons() : boolean {\r\n return this.wappTableLazyLoadingObject.hasCopyButton ||\r\n this.wappTableLazyLoadingObject.hasEditButton ||\r\n this.wappTableLazyLoadingObject.hasViewButton ||\r\n this.wappTableLazyLoadingObject.hasDeleteButton || \r\n this.wappTableLazyLoadingObject?.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n refreshPagination(first: number) {\r\n this.dataTable._first = first;\r\n }\r\n\r\n pageChange(element: any) {\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"w-table-styles\"\r\n [ngClass]=\"{'w-table-no-buttons' : !wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.hasCopyButton && !wappTableLazyLoadingObject.customButtonConfig && !wappTableLazyLoadingObject.hasViewButton}\"\r\n #table [value]=\"elements\" \r\n dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [lazy]=\"true\" \r\n [rowHover]=\"wappTableLazyLoadingObject.hasViewButton!\"\r\n (onLazyLoad)=\"loadElements($event)\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"wappTableLazyLoadingObject.hasPaginator! && totalRecords >= 10\"\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]=\"false\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n [tableStyle]=\"{'min-width': wappTableLazyLoadingObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\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 <span *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\"\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 w-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 [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-center'\">\r\n <p-tableHeaderCheckbox *ngIf=\"wappTableLazyLoadingObject.hasSelectAllCheckbox == true\"></p-tableHeaderCheckbox>\r\n </th>\r\n\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers; index as i\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n\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 [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\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 || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-left'\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0])\">\r\n </th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\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\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\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 || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\" [ngClass]=\"{'row-hover': wappTableLazyLoadingObject.hasViewButton}\" \r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? onElement(element) : ''\">\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]\" class=\"text-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\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n class=\"element-image-width\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappPercentage }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappCurrency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"'info'\"></w-badge> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ColoredBadge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <div *ngFor=\"let badge of wappTableLazyLoadingObject.coloredBadge; index as ind\">\r\n <w-badge *ngIf=\"badge.coloredBadgeProperty == readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"badge.color ? badge.color : 'info'\">\r\n </w-badge> \r\n </div> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.columns[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.SecondaryCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableLazyLoadingObject.columns[i]]\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.DateRaw\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.BuisinessDateTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate : wappDateFormat.Business }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Week\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [translations]=\"wappTableLazyLoadingObject.weekButtonTranslations ? wappTableLazyLoadingObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableLazyLoadingObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"w-table-buttons flex justify-content-end align-items-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n (onClick)=\"viewElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\" \r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button *ngIf=\"!customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\" \r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n <w-button *ngIf=\"customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\" \r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\" \r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n (onClick)=\"editElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && wappTableLazyLoadingObject.disableEditProperty\" \r\n (onClick)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n (onClick)=\"confirmCopy($event, element)\" \r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.disableDeleteProperty; else noDisableDelete\" \r\n (onClick)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n <ng-template #noDisableDelete>\r\n <w-button (onClick)=\"confirmDelete($event, element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </ng-template>\r\n </span>\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=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\" \r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableLazyLoadingObject.emptyMessage ? wappTableLazyLoadingObject.emptyMessage : 'No matches.'}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-container',\r\n template: `\r\n <div class=\"w-filter-panel-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styleUrls: ['./w-container.component.scss']\r\n})\r\nexport class WContainerComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\ninterface Breadcrumb {\r\n label: string;\r\n url?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'w-navbar',\r\n templateUrl: './w-navbar.component.html',\r\n styleUrls: ['./w-navbar.component.scss']\r\n})\r\nexport class WNavbarComponent {\r\n\r\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n\r\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\r\n constructor(private router: Router) {\r\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {\r\n const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: Breadcrumb[] = [];\r\n this.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n this._breadcrumbs$.next(breadcrumbs);\r\n });\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\r\n const breadcrumb = route.data['breadcrumb'];\r\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n breadcrumbs.push({\r\n label: route.data['breadcrumb'],\r\n url: '/' + routeUrl.join('/')\r\n });\r\n }\r\n\r\n if (route.firstChild) {\r\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n }\r\n }\r\n}\r\n","<w-container>\r\n <div class=\"flex wrap navbar-margins\">\r\n <div class=\"flex flex-column sm:flex-row align-items-center gap-4\">\r\n <nav class=\"layout-breadcrumb\">\r\n <ol>\r\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\r\n <li>{{item.label}}</li>\r\n <li *ngIf=\"!last\" class=\"layout-breadcrumb-chevron\"> | </li>\r\n </ng-template>\r\n </ol>\r\n </nav>\r\n </div>\r\n <div class=\"flex sm:ml-auto\">\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <w-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-secondary\" icon=\"pi pi-check\"></w-button>\r\n <p-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-seco ndary\" icon=\"pi pi-check\"></p-button>\r\n </div>\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <p-button label=\"Submit\"></p-button>\r\n <p-button label=\"Submit\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-container>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body',\r\n templateUrl: './w-body.component.html',\r\n styleUrls: ['./w-body.component.scss']\r\n})\r\nexport class WBodyComponent {\r\n @Input('showFooterSpace') showFooterSpace: boolean = false;\r\n}\r\n","<div class=\"w-body\" [ngClass]=\"{'w-body-with-footer-space' : showFooterSpace}\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-footer',\r\n templateUrl: './w-footer.component.html',\r\n styleUrls: ['./w-footer.component.scss']\r\n})\r\nexport class WFooterComponent implements OnInit{\r\n @Input('mainLabel') mainLabel!: string; \r\n @Input('supportLabel') supportLabel!: string;\r\n @Input('support') support: boolean = false; \r\n\r\n year!: any;\r\n\r\n ngOnInit(): void {\r\n this.year = new Date().getFullYear();\r\n }\r\n\r\n}\r\n","\r\n<div class=\"w-footer flex justify-content-between flex-wrap w-full\">\r\n <div class=\"w-info-footer flex align-items-center justify-content-center\">\r\n <w-logos [name]=\"'wappingIsotype'\" [width]=\"16\" [height]=\"20\"></w-logos>\r\n <div class=\"body textMainColor\">{{mainLabel}} {{year}} </div>\r\n </div>\r\n <div class=\"w-support-footer flex align-items-center justify-content-center\">\r\n <div class=\"subtitle2 textMainColor\">{{supportLabel}}</div>\r\n <w-icons *ngIf=\"support\" name=\"support\" pTooltip=\"support\" [width]=\"16\" [height]=\"16\"></w-icons>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'ColorTextPipe'\r\n})\r\nexport class ColorTextPipe implements PipeTransform {\r\n transform(value: any) {\r\n var mapObj: any = {\r\n \"string\": \"string\",\r\n \"number\": \"number\",\r\n \"boolean\": \"boolean\",\r\n \"any\": \"any\",\r\n \"null\": \"null\",\r\n \"Input\": \"Input\",\r\n \"Output\":\"Output\"\r\n };\r\n return value.replace(/\\b(?:string|number|boolean|number|any|null|Input|Output)\\b/gi, (matched: any) => mapObj[matched] != \"Input\" && mapObj[matched] != \"Output\" ? `<font color=\"#9900FF\">${mapObj[matched]}</font>`: `<font color='#ff7373'>${mapObj[matched]}</font>`)\r\n ;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-multiselect',\r\n templateUrl: './w-edit-multiselect.component.html',\r\n styleUrls: ['./w-edit-multiselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditMultiselectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WEditMultiselectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('filter') filter: boolean = true;\r\n @Input('filterPlaceholder') filterPlaceholder: string = 'Search';\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-multiselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-multiselect-medium\" \r\n [options]=\"options\" \r\n display=\"chip\" \r\n [optionLabel]=\"optionLabel\" \r\n [optionValue]=\"optionValue\" \r\n [placeholder]=\"placeholder\" \r\n [required]=\"required\" \r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n (onChange)=\"onOptionSelectedForm($event)\">\r\n </p-multiSelect>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-multiselect-small\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [filter]=\"filter\"\r\n [filterPlaceHolder]=\"filterPlaceholder\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n (onChange)=\"onOptionSelectedForm($event)\">\r\n </p-multiSelect>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size && formControl.dirty && formControl.hasError('required')\" class=\"w-full w-error-message\">{{errorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-multiselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-multiselect-medium\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\">\r\n </p-multiSelect>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-multiselect-small\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\">\r\n </p-multiSelect>\r\n </div>\r\n</ng-template>\r\n","import { EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-treeselect',\r\n templateUrl: './w-edit-treeselect.component.html',\r\n styleUrls: ['./w-edit-treeselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditTreeselectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditTreeselectComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string;\r\n @Input('placeholder') placeholder!: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('appendTo') appendTo!: string; \r\n @Input('showClear') showClear: boolean = true;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('filterBy') filterBy!: string;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n @Input('tooltip') tooltip!: string; \r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {}\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onTouch();\r\n this.onChangeEvent.emit(event.node);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-treeselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-treeselect-medium\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\" \r\n [required]=\"required\"\r\n [formControl]=\"formControl\" \r\n [appendTo]=\"appendTo\" \r\n (onNodeSelect)=\"onOptionSelectedForm($event)\">\r\n </p-treeSelect>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-treeselect-small\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\" \r\n [appendTo]=\"appendTo\" \r\n (onNodeSelect)=\"onOptionSelectedForm($event)\">\r\n </p-treeSelect>\r\n <small *ngIf=\"getSizeName(sizeType.medium) == size && formControl.dirty && formControl.hasError('required')\" \r\n class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</small> \r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-treeselect-field p-fluid field\">\r\n <w-input-label [required]=\"required\" [label]=\"label\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-treeselect-medium\" \r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onOptionSelected()\" \r\n [appendTo]=\"appendTo\">\r\n </p-treeSelect>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-treeselect-small\" \r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onOptionSelected()\" \r\n [appendTo]=\"appendTo\">\r\n </p-treeSelect>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-title',\r\n templateUrl: './w-panel-title.component.html',\r\n styleUrls: ['./w-panel-title.component.scss']\r\n})\r\nexport class WPanelTitleComponent {\r\n @Input('title') title!: string;\r\n @Input('activePaddingBottom') activePaddingBottom: boolean = true; \r\n}\r\n","<div class=\"w-panel-title w-panel-title-text\" [ngClass]=\"{'w-panel-title-bottom': activePaddingBottom == true}\">{{title}}</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-subtitle',\r\n templateUrl: './w-panel-subtitle.component.html',\r\n styleUrls: ['./w-panel-subtitle.component.scss']\r\n})\r\nexport class WPanelSubtitleComponent {\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activePaddingBottom') activePaddingBottom!: boolean\r\n}\r\n","<div class=\"w-panel-subtitle w-panel-subtitle-text\">{{subtitle}}</div>\r\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-panel',\r\n templateUrl: './w-panel.component.html',\r\n styleUrls: ['./w-panel.component.scss']\r\n})\r\nexport class WPanelComponent implements OnInit {\r\n @Input('width') width: any;\r\n @Input('title') title!: string;\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activeGrid') activeGrid: boolean = true;\r\n @Input('reduced') reduced: boolean = false;\r\n @Input('justifyContent') justifyContent: string = '';\r\n @Input('activeOverflow') activeOverflow: boolean = false;\r\n @Input('heightOverflow') heightOverflow!: string;\r\n @Input('maxHeightOverflow') maxHeightOverflow!: string;\r\n @Input('backgroundColor') backgroundColor: string = '#fff';\r\n @Input('activeMaxHeight') activeMaxHeight: boolean = false; \r\n\r\n @Input('activeMenu') activeMenu: boolean = false;\r\n @Input('menuOptions') menuOptions!: MenuItem[];\r\n\r\n @Input('wPanelStyleClass') wPanelStyleClass!: string; \r\n @Input('wPanelContentStyleClass') wPanelContentStyleClass!: string; \r\n\r\n spacing4XL: string = '36px'; \r\n \r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor);\r\n }\r\n \r\n getCombinedClasses() {\r\n let classes = [];\r\n \r\n if (this.activeGrid) {\r\n classes.push('w-panel-content grid');\r\n }\r\n \r\n if (this.justifyContent.length > 0) {\r\n classes.push('flex flex-wrap '+this.justifyContent);\r\n }\r\n\r\n if(this.activeOverflow){\r\n classes.push('w-panel-overflow');\r\n }\r\n \r\n return classes.join(' ');\r\n }\r\n}\r\n","<div [ngClass]=\"{ 'w-panel': !reduced, 'w-reduced-panel': reduced}\" class=\"w-full h-full {{wPanelStyleClass}}\">\r\n <div *ngIf=\"activeMenu == true\" class=\"flex flex-wrap\" [ngClass]=\"{'justify-content-between': title, 'justify-content-end': !title}\">\r\n <w-panel-title *ngIf=\"title\" class=\"flex\" [title]=\"title\"></w-panel-title>\r\n <div class=\"flex\">\r\n <p-button icon=\"pi pi-ellipsis-v\" styleClass=\"w-menu-button-x-small p-button-text\" (onClick)=\"menu.toggle($event)\"></p-button>\r\n <p-tieredMenu styleClass=\"w-panel-menu\" #menu [model]=\"menuOptions\" [popup]=\"true\"></p-tieredMenu>\r\n </div>\r\n </div>\r\n <w-panel-title *ngIf=\"title && activeMenu == false\" [title]=\"title\"></w-panel-title>\r\n <w-panel-subtitle *ngIf=\"subtitle\" [subtitle]=\"subtitle\"></w-panel-subtitle>\r\n <div class=\"w-panel-content {{wPanelContentStyleClass}}\" [ngClass]=\"getCombinedClasses()\" [style.height]=\"heightOverflow\" [style.max-height]=\"maxHeightOverflow\" [style.padding-bottom]=\"(activeMaxHeight == true && (title != undefined)) ? spacing4XL : ''\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-container',\r\n templateUrl: './w-body-container.component.html',\r\n styleUrls: ['./w-body-container.component.scss']\r\n})\r\nexport class WBodyContainerComponent {\r\n\r\n}\r\n","<div class=\"grid w-body-container\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-header-panel',\r\n templateUrl: './w-header-panel.component.html',\r\n styleUrls: ['./w-header-panel.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class WHeaderPanelComponent {\r\n @Input('label') label!: string;\r\n @Input(\"backToCustomRoute\") public backToCustomRoute!: string;\r\n @Input('requireConfirmation') requireConfirmation: boolean = false;\r\n @Input('contentConfirmation') contentConfirmation!: string;\r\n @Input('acceptLabel') acceptLabel!: string;\r\n @Input('rejectLabel') rejectLabel!: string;\r\n @Input('showButtonBack') showButtonBack: boolean = false;\r\n @Input('showInfo') showInfo: boolean = false;\r\n @Output('onClickButtonBack') onClickButtonBack: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private confirmationService: ConfirmationService,\r\n ){}\r\n\r\n onButtonBack(event: any){\r\n if(!this.requireConfirmation){\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }else{\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.contentConfirmation,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.acceptLabel,\r\n rejectLabel: this.rejectLabel,\r\n accept: () => {\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"w-header-panel flex flex-row-reverse flex-wrap\" [ngClass]=\"{'justify-content-between' : showButtonBack || showInfo}\">\r\n <div class=\"w-action-buttons flex flex-column lg:flex-row-reverse\">\r\n <ng-content select=\".main-actions\"></ng-content>\r\n <ng-content select=\".secondary-actions\"></ng-content>\r\n </div>\r\n <div class=\"w-left-actions flex\">\r\n <w-button *ngIf=\"showButtonBack\" class=\"flex align-items-center justify-content-center\" type=\"text\" icon=\"pi-arrow-left\" (onClick)=\"onButtonBack($event)\"></w-button>\r\n <ng-content *ngIf=\"showInfo\" select=\".info\"></ng-content>\r\n </div>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-input-number',\r\n templateUrl: './w-edit-input-number.component.html',\r\n styleUrls: ['./w-edit-input-number.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputNumberComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputNumberComponent implements ControlValueAccessor{\r\n value: number = 0;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('mode') mode: string = \"decimal\";\r\n @Input('minFractionDigits') minFractionDigits: number = 0;\r\n @Input('maxFractionDigits') maxFractionDigits: number = 0;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('pattern') pattern: string = \"\";\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"\";\r\n\r\n @Input('min') min!: number;\r\n @Input('minErrorDescription') minErrorDescription: string = \"Min error\";\r\n\r\n @Input('max') max!: number;\r\n @Input('maxErrorDescription') maxErrorDescription: string = \"Max error\";\r\n\r\n @Input('prefix') prefix!: string; \r\n @Input('suffix') suffix!: string; \r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: number) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void { \r\n if(value !== null && value !== undefined){\r\n this.value = +value;\r\n }else{\r\n this.value = value; \r\n } \r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged(){\r\n this.onChange(this.value !== null && this.value !== undefined ? +this.value : this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue: number = +(event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\" class=\"w-edit-input-number-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.medium) == size\"\r\n [ngClass]=\"{'w-edit-input-number-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-medium-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\" >\r\n </p-inputNumber>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.small) == size\"\r\n [ngClass]=\"{'w-edit-input-number-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-small-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\"></p-inputNumber>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-success-alert-text\">{{successMessage}}</small>-->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('max') && formControl.touched || formControl.touched && this.formControl.value > max && this.formControl.value != (null || '')\"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{maxErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('min') && formControl.touched || formControl.touched && this.formControl.value &lt; min && this.formControl.value != (null || '')\"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{minErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\"\r\n class=\"w-input-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-input-number-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.medium) == size\" [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged()\" [disabled]=\"disabled\"></p-inputNumber>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.small) == size\" [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged()\" [disabled]=\"disabled\"></p-inputNumber>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-input-search',\r\n templateUrl: './w-input-search.component.html',\r\n styleUrls: ['./w-input-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WInputSearchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WInputSearchComponent {\r\n @Input('label') label!: string;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('isDisabled') isDisabled: boolean = false;\r\n @Input('hasButton') hasButton: boolean = true;\r\n @Input('disabledButton') disabledButton: boolean = false;\r\n\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = \"small\";\r\n\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n \r\n @Output('getInputData') getInputData: EventEmitter<any> = new EventEmitter();\r\n\r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n onInputData(){\r\n if(this.formControl){\r\n this.getInputData.emit(this.formControl.value);\r\n }else{\r\n this.getInputData.emit(this.value);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\" class=\"w-input-search-field p-fluid field\">\r\n <div *ngIf=\"(label != undefined && label.length > 0)\" class=\"flex\" [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'w-input-search-medium-label': getSizeName(sizeType.medium) == size && !isDisabled,\r\n 'w-input-search-medium-label-disabled': getSizeName(sizeType.medium) == size && isDisabled, \r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n <div *ngIf=\"(label != undefined && label == '')\" class=\"w-input-no-label-height\"></div>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\" class=\"w-input-search\">\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-medium p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText [formControl]=\"formControl\"\r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div >\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text-wo-button flex flex-1 col-12\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [formControl]=\"formControl\"\r\n class=\"w-input-search-text\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-input-search-field\">\r\n <div *ngIf=\"(label != undefined && label.length > 0)\" [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'w-input-search-medium-label': getSizeName(sizeType.medium) == size && !isDisabled,\r\n 'w-input-search-medium-label-disabled': getSizeName(sizeType.medium) == size && isDisabled, \r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n <div *ngIf=\"(label != undefined && label == '')\" class=\"w-input-no-label-height\"></div>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\" >\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-medium p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-medium p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n class=\"w-input-search-text\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n\r\n </div>\r\n</ng-template>","import { RuleSet } from \"angular2-query-builder\";\r\nimport { LazyElementQueryRequest } from \"../lazy-element-query-request.model\";\r\n\r\nexport interface QueryResults {\r\n type: QueryResultType,\r\n basic?: RuleSet | null | undefined,\r\n advanced?: RuleSet | null | undefined,\r\n grouped: RuleSet | null | undefined,\r\n lazyRequest?: LazyElementQueryRequest\r\n}\r\n\r\nexport enum QueryResultType {\r\n NoFilters = 0,\r\n Basic = 1,\r\n Advanced = 2,\r\n Grouped = 3\r\n}","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, forkJoin, map, of, switchMap, tap } from \"rxjs\";\r\nimport { QbPanelFilter } from \"../../models/filter-panel/qb-panel-filter.model\";\r\nimport { QbPanelToFields } from \"../../models/filter-panel/qb-panel-to-fields.model\";\r\nimport { GMCountry } from \"../../models/filter-panel/gmcountry-model\";\r\nimport { MessageService } from \"primeng/api\";\r\nimport { GMLocality } from \"../../models/filter-panel/gmlocality.model\";\r\nimport { GMPostalCode } from \"../../models/filter-panel/gmpostalcode.model\";\r\nimport { GMAreaLevel2 } from \"../../models/filter-panel/gmarealevel2.model\";\r\nimport { GMAreaLevel1 } from \"../../models/filter-panel/gmarealevel1.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private messageService: MessageService, \r\n ) { }\r\n\r\n getFilterPanel(apiUrl: string, token: string, commonDataApiUrl: string, commonDataApiToken: string, filterId?: string): Observable<QbPanelFilter> {\r\n let url = filterId ? `${apiUrl}/${filterId}` : `${apiUrl}`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }); \r\n let fieldsModified: any; \r\n \r\n return this.http.get<any>(url, {headers: headers}).pipe(\r\n switchMap((filtersPanel: QbPanelFilter) => {\r\n const fields = filtersPanel.qbpanelToFields;\r\n return forkJoin(\r\n fields.map((field: QbPanelToFields) => {\r\n fieldsModified = field;\r\n if(field.qbfilterField.hasListOfValues) {\r\n return this.getFieldValues(commonDataApiUrl, commonDataApiToken, field.qbfilterFieldId).pipe(\r\n map(values => {\r\n const arrayOfValues = values.map((a: any) => ({\r\n name: a.value,\r\n value: +a.key\r\n })); \r\n field.qbfilterField.listOfValues = arrayOfValues;\r\n return field;\r\n })\r\n );\r\n } else {\r\n return of(field);\r\n }\r\n })).pipe(\r\n map(modifiedItems => {\r\n filtersPanel.qbpanelToFields = modifiedItems;\r\n return filtersPanel;\r\n })\r\n );\r\n }\r\n )\r\n );\r\n }\r\n\r\n getFieldValues(commonDataApiUrl: string, commonDataApiToken: string, filterFieldId: number): Observable<string[]> {\r\n let url = `${commonDataApiUrl}/fields/${filterFieldId}/values`; \r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${commonDataApiToken}` }); \r\n return this.http.get<string[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { })\r\n );\r\n }\r\n\r\n getCountries(segmentationApi: string, segmentationApiToken: string):Observable<GMCountry[]>{\r\n let url = `${segmentationApi}/countries`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n return this.http.get<GMCountry[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels1(countryIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel1[]>{\r\n let params = countryIds.map(id => id.toString()).join('&gmCountryIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels1?gmCountryIds=`+params;\r\n return this.http.get<GMAreaLevel1[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels2(areaLevel1Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel2[]>{\r\n let params = areaLevel1Ids.map(id => id.toString()).join('&gmAreaLevel1Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels2?gmAreaLevel1Ids=`+params;\r\n return this.http.get<GMAreaLevel2[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getLocalities(areaLevel2Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMLocality[]>{\r\n let params = areaLevel2Ids.map(id => id.toString()).join('&gmAreaLevel2Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/localities?gmAreaLevel2Ids=`+params;\r\n return this.http.get<GMLocality[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getPostalCodes(localityIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMPostalCode[]>{\r\n let params = localityIds.map(id => id.toString()).join('&gmLocalityIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/postalcodes?gmLocalityIds=`+params;\r\n return this.http.get<GMPostalCode[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { DataTypeEnum, OperatorEnum } from \"../../../shared/models/enums.model\";\r\n\r\n@Component({\r\n selector: 'w-list-field',\r\n templateUrl: './w-list-field.component.html',\r\n styleUrls: ['./w-list-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WListFieldComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WListFieldComponent implements OnInit, ControlValueAccessor, OnChanges{\r\n @Input('options') optionsReceived!: any;\r\n options!: any;\r\n optionSelected: any;\r\n @Input('operator') operator: any;\r\n @Input('placeholder') placeholder!: any;\r\n @Input('onlyDropdown') onlyDropdown: boolean = false;\r\n @Input('disabled') disabled: boolean = false; \r\n\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n this.options = this.optionsReceived;\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.onlyDropdown == true && (changes[this.optionsReceived] != undefined) && (changes[this.optionsReceived].currentValue[0] !== changes[this.optionsReceived].previousValue[0])){\r\n this.options = this.optionsReceived;\r\n }\r\n\r\n if(this.onlyDropdown == false){\r\n if(changes[this.operator]?.previousValue != undefined){\r\n this.optionSelected = null;\r\n }\r\n }\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.optionSelected);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.optionSelected = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n}\r\n","<!-- <div *ngIf=\"options.length == 0; else optionsDataReady\" class=\"mx-2 w-list-field-skeleton-container p-dropdown p-component\"><p-skeleton width=\"8rem\" height=\"9px\"></p-skeleton></div>\r\n<ng-template #optionsDataReady>\r\n <p-multiSelect *ngIf=\"getDataType() == dataType.Multi\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder ?? 'Select an option'\"\r\n (onChange)=\"onOptionSelected()\">\r\n </p-multiSelect>\r\n <p-dropdown *ngIf=\"options && getDataType() == dataType.Single\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder ?? 'Select an option'\" \r\n (onChange)=\"onOptionSelected()\">\r\n </p-dropdown>\r\n</ng-template> -->\r\n\r\n<div *ngIf=\"options.length == 0; else optionsDataReady\" class=\"wapp-list-field-skeleton-container\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n<ng-template #optionsDataReady>\r\n <w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi\"\r\n [showClear]=\"false\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder\"\r\n (onChange)=\"onOptionSelected()\" \r\n [disabled]=\"disabled\" \r\n [showLabel]=\"false\">\r\n </w-edit-multiselect>\r\n <w-edit-select *ngIf=\"options && getDataType() == dataType.Single\"\r\n [showClear]=\"false\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder\" \r\n (onChange)=\"onOptionSelected()\" \r\n [disabled]=\"disabled\" \r\n [required]=\"true\" \r\n [showLabel]=\"false\">\r\n </w-edit-select>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-card-title-text',\r\n templateUrl: './w-view-card-title-text.component.html',\r\n styleUrls: ['./w-view-card-title-text.component.scss']\r\n})\r\nexport class WViewCardTitleTextComponent implements OnInit {\r\n\r\n @Input('cardTitle') cardTitle!: string;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<span class=\"w-view-card-title-text-style\">{{cardTitle}}</span>\r\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType, ButtonType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-toggle-button',\r\n templateUrl: './w-toggle-button.component.html',\r\n styleUrls: ['./w-toggle-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WToggleButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WToggleButtonComponent implements OnInit, ControlValueAccessor {\r\n @Input('onLabel') onLabel: string = \"\";\r\n @Input('offLabel') offLabel: string = \"\";\r\n @Input('size') size: string = \"small\";\r\n @Input('onIcon') onIcon: string = \"\";\r\n @Input('offIcon') offIcon: string = \"\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n}\r\n","<ng-container *ngIf=\"formControl; else noNgControl\">\r\n <p-toggleButton \r\n [ngClass]=\"{'w-togglebutton-small' : size == getSizeName(sizeType.small),\r\n 'w-togglebutton-medium' : size == getSizeName(sizeType.medium),\r\n 'w-togglebutton-large' : size == getSizeName(sizeType.large)}\"\r\n [onLabel]=\"onLabel\" \r\n [offLabel]=\"offLabel\" \r\n iconPos=\"left\" \r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n [formControl]=\"formControl\" \r\n (onChange)=\"onButtonChangedForm($event)\">\r\n </p-toggleButton>\r\n</ng-container>\r\n<ng-template #noNgControl>\r\n <p-toggleButton \r\n [ngClass]=\"{'w-togglebutton-small' : size == getSizeName(sizeType.small),\r\n 'w-togglebutton-medium' : size == getSizeName(sizeType.medium),\r\n 'w-togglebutton-large' : size == getSizeName(sizeType.large)}\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onButtonChanged()\"\r\n [disabled]=\"disabled\" \r\n [onLabel]=\"onLabel\" \r\n [offLabel]=\"offLabel\" \r\n iconPos=\"left\" \r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\">\r\n </p-toggleButton>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { WSelectButtonState } from '../../shared/models/w-select-button-state.model';\r\n\r\n@Component({\r\n selector: 'w-select-button',\r\n templateUrl: './w-select-button.component.html',\r\n styleUrls: ['./w-select-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WSelectButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WSelectButtonComponent {\r\n @Input('stateOptions') stateOptions: WSelectButtonState[] = [{label: 'Off', value: 'off'}, {label: 'On', value: 'on'}];\r\n @Input('size') size: string = \"small\";\r\n \r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n ngModelValue: any;\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n}\r\n","<ng-container *ngIf=\"formControl; else noNgControl\">\r\n <p-selectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\" \r\n [formControl]=\"formControl\" \r\n [disabled]=\"disabled\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (onChange)=\"onButtonChangedForm($event)\">\r\n </p-selectButton>\r\n</ng-container>\r\n<ng-template #noNgControl>\r\n <p-selectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\" \r\n [(ngModel)]=\"ngModelValue\" \r\n [disabled]=\"disabled\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n (ngModelChange)=\"onButtonChanged()\">\r\n </p-selectButton>\r\n</ng-template>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormControl } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar',\r\n templateUrl: './w-edit-calendar.component.html',\r\n styleUrls: ['./w-edit-calendar.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCalendarComponent implements OnInit, ControlValueAccessor {\r\n\r\n private _minDate!: Date;\r\n \r\n @Input() set minDate(value: Date) {\r\n if(this.ngModelValue < value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value < value) { this.onValue(value) }\r\n this._minDate = value;\r\n }\r\n \r\n get minDate() {\r\n return this._minDate;\r\n }\r\n\r\n private _maxDate!: Date;\r\n\r\n @Input() set maxDate(value: Date) {\r\n if(this.ngModelValue > value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value > value) { this.onValue(value) }\r\n this._maxDate = value;\r\n }\r\n \r\n get maxDate() {\r\n return this._maxDate;\r\n }\r\n \r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('showTime') showTime: boolean = true;\r\n @Input('showSeconds') showSeconds: boolean = true;\r\n @Input('timeOnly') timeOnly: boolean = false;\r\n @Input('showIcon') showIcon: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('displayInlineBlock') displayInlineBlock: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('firstDayOfWeek') firstDayOfWeek: number = 1;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('monthMode') monthMode: boolean = false;\r\n @Input('readonlyInput') readonlyInput!: boolean; \r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n dateFormat: string = '';\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngModelValue: any;\r\n\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngOnInit(): void {\r\n if(this.monthMode) {\r\n this.showTime = false;\r\n this.timeOnly = false;\r\n this.dateFormat = 'dd/MM'\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" [ngClass]=\"{'w-edit-calendar-styles p-fluid field' : true,'disabled': disabled }\" >\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-calendar [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched,\r\n 'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium),\r\n 'w-edit-calendar-no-icon' : !showIcon,\r\n 'disabled': disabled }\"\r\n appendTo=\"body\"\r\n inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\r\n [timeOnly]=\"timeOnly\" \r\n [showSeconds]=\"showSeconds\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [dataType]=\"dataType\"\r\n [dateFormat]=\"dateFormat\" \r\n [readonlyInput]=\"readonlyInput\" \r\n (onSelect)=\"onValue($event)\"\r\n [inputStyleClass]=\"getSizeName(sizeType.small) ? 'w-edit-calendar-medium' : 'w-edit-calendar-small' \">\r\n </p-calendar>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-calendar-styles\" [ngClass]=\"{'displayInlineBlock' : displayInlineBlock, 'disabled' : disabled}\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-calendar [ngClass]=\"{'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium),\r\n 'w-edit-calendar-no-icon' : !showIcon,\r\n 'disabled': disabled }\"\r\n appendTo=\"body\"\r\n [(ngModel)]=\"ngModelValue\" inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\r\n [timeOnly]=\"timeOnly\"\r\n [showSeconds]=\"showSeconds\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [dataType]=\"dataType\"\r\n [dateFormat]=\"dateFormat\" \r\n [readonlyInput]=\"readonlyInput\" \r\n (onSelect)=\"onDateChanged()\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { GMCountry } from '../../models/filter-panel/gmcountry-model';\r\nimport { GMAreaLevel1 } from '../../models/filter-panel/gmarealevel1.model';\r\nimport { GMAreaLevel2 } from '../../models/filter-panel/gmarealevel2.model';\r\nimport { GMLocality } from '../../models/filter-panel/gmlocality.model';\r\nimport { GMPostalCode } from '../../models/filter-panel/gmpostalcode.model';\r\nimport { AddressEnum, DataTypeEnum, OperatorEnum } from '../../models/enums.model';\r\nimport { ApiService } from '../../service/api/api.service';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-address-field',\r\n templateUrl: './w-address-field.component.html',\r\n styleUrls: ['./w-address-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAddressFieldComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WAddressFieldComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n\r\n countries: GMCountry[] = [];\r\n countrySelected: any;\r\n countryId: number | null = null;\r\n areaLevels1: GMAreaLevel1[] = [];\r\n areaLevel1Selected!: any;\r\n areaLevel1Id: number | null = null;\r\n areaLevels2: GMAreaLevel2[] = [];\r\n areaLevel2Selected!: any;\r\n areaLevel2Id: number | null = null;\r\n localities: GMLocality[] = [];\r\n localitySelected: any;\r\n localityId: number | null = null;\r\n postalCodes: GMPostalCode[] = [];\r\n postalCodeSelected: any;\r\n addressValue: any;\r\n @Input('operator') operator!: any;\r\n @Input('selectPlaceholder') selectPlaceholder: string = 'Select an option';\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('segmentationApiToken') segmentationApiToken!: string;\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(private apiService: ApiService){}\r\n\r\n ngOnInit(): void {\r\n this.getCountries();\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if(changes.operator.previousValue !== undefined){\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.onChange(null);\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getCountries(){\r\n this.apiService.getCountries(this.segmentationApiUrl, this.segmentationApiToken).subscribe({ \r\n next: (countries: GMCountry[]) => {\r\n this.countries = countries ?? [];\r\n this.countrySelected = this.getAddressData(AddressEnum.Country, true, \"gMCountryId\");\r\n this.onCountrySelected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel1(countryId: number[]){\r\n this.apiService.getAreaLevels1(countryId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels1: GMAreaLevel1[]) => {\r\n this.areaLevels1 = areaLevels1 ?? [];\r\n this.areaLevel1Selected = this.getAddressData(AddressEnum.AreaLevel1, true, \"gMAreaLevel1Id\");\r\n this.onAreaLevel1Selected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel2(areaLevel1Id: number[]){\r\n this.apiService.getAreaLevels2(areaLevel1Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels2: GMAreaLevel2[]) => {\r\n this.areaLevels2 = areaLevels2 ?? [];\r\n this.areaLevel2Selected = this.getAddressData(AddressEnum.AreaLevel2, true, \"gMAreaLevel2Id\");\r\n this.onAreaLevel2Selected();\r\n }\r\n })\r\n }\r\n\r\n getLocalities(areaLevel2Id: number[]){\r\n this.apiService.getLocalities(areaLevel2Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (localities: GMLocality[]) => {\r\n this.localities = localities ?? [];\r\n this.localitySelected = this.getAddressData(AddressEnum.Locality, true, \"gMLocalityId\");\r\n this.onLocalitySelected();\r\n }\r\n })\r\n }\r\n\r\n getPostalCodes(localityId: number[]){\r\n this.apiService.getPostalCodes(localityId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (postalCodes: GMPostalCode[]) => {\r\n this.postalCodes = postalCodes ?? [];\r\n this.postalCodeSelected = this.getAddressData(AddressEnum.PostalCode, false);\r\n this.onPostalCodeSelected();\r\n }\r\n })\r\n }\r\n\r\n getAddressData(addressEnumType: number, isNotLastSelect: boolean, addressPropertyIdName?: string){\r\n let dataSelected: any;\r\n if(this.addressValue?.property){\r\n if(this.addressValue.property == addressEnumType){\r\n dataSelected = this.addressValue.data;\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[addressPropertyIdName];\r\n }\r\n }else if(Array.isArray(this.addressValue)){\r\n dataSelected = [];\r\n if(this.hasPropertyValueFirstElement(this.addressValue, \"property\", addressEnumType)){\r\n dataSelected = this.addressValue.map(a => a.data);\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[0][addressPropertyIdName];\r\n }\r\n }\r\n return dataSelected;\r\n }\r\n\r\n onCountrySelected(){\r\n this.areaLevel1Selected = null;\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.countryId = this.countrySelected;\r\n\r\n this.doOnChange(AddressEnum.Country, this.countrySelected);\r\n\r\n this.areaLevels1 = [];\r\n if(this.countrySelected?.length > 0){\r\n this.getAreaLevel1(this.countrySelected);\r\n } else if(!Array.isArray(this.countrySelected) && this.countrySelected){\r\n this.getAreaLevel1([this.countrySelected]);\r\n }\r\n }\r\n\r\n onAreaLevel1Selected(){\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel1Id = this.areaLevel1Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId);\r\n\r\n this.areaLevels2 = [];\r\n if(this.areaLevel1Selected?.length > 0){\r\n this.getAreaLevel2(this.areaLevel1Selected);\r\n } else if(!Array.isArray(this.areaLevel1Selected) && this.areaLevel1Selected){\r\n this.getAreaLevel2([this.areaLevel1Selected]);\r\n }\r\n }\r\n\r\n onAreaLevel2Selected(){\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel2Id = this.areaLevel2Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id);\r\n\r\n this.localities = [];\r\n if(this.areaLevel2Selected?.length > 0){\r\n this.getLocalities(this.areaLevel2Selected);\r\n } else if(!Array.isArray(this.areaLevel2Selected) && this.areaLevel2Selected){\r\n this.getLocalities([this.areaLevel2Selected]);\r\n }\r\n }\r\n\r\n onLocalitySelected(){\r\n this.postalCodeSelected = null;\r\n\r\n this.localityId = this.localitySelected;\r\n\r\n this.doOnChange(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id);\r\n\r\n this.postalCodes = [];\r\n if(this.localitySelected?.length > 0){\r\n this.getPostalCodes(this.localitySelected);\r\n } else if(!Array.isArray(this.localitySelected) && this.localitySelected){\r\n this.getPostalCodes([this.localitySelected]);\r\n }\r\n }\r\n\r\n onPostalCodeSelected(){\r\n this.doOnChange(AddressEnum.PostalCode, this.postalCodeSelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id, this.localityId)\r\n }\r\n\r\n onCountryCleared() {\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(null);\r\n }\r\n\r\n onAreaLevel1Cleared() {\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Country, this.countrySelected));\r\n }\r\n\r\n onAreaLevel2Cleared() {\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId));\r\n }\r\n\r\n onLocalityCleared() {\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id));\r\n }\r\n \r\n onPostalCodeCleared() {\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.postalCodeSelected = value;\r\n this.addressValue = value;\r\n\r\n if(value == undefined){\r\n this.countrySelected = null;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n createObjectAddressProperty(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n return {\r\n property: addressType, \r\n data: value,\r\n gMCountryId: countryId,\r\n gMAreaLevel1Id: areaLevel1Id,\r\n gMAreaLevel2Id: areaLevel2Id,\r\n gMLocalityId: localityId\r\n }\r\n }\r\n\r\n doOnChange(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n if(value){\r\n if(this.getDataType() == DataTypeEnum.Single){\r\n this.onChange(this.createObjectAddressProperty(addressType, value, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n }else if(this.getDataType() == DataTypeEnum.Multi){\r\n let addressProperties = value.map((v: any) => this.createObjectAddressProperty(addressType, v, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n this.onChange(addressProperties);\r\n }\r\n\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n\r\n hasPropertyValueFirstElement(arr: any[], property: string, value: any): boolean {\r\n const firstElement = arr[0];\r\n return firstElement && firstElement[property] === value;\r\n }\r\n}\r\n","<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && countries.length > 0\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && areaLevels1.length > 0 && countrySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && areaLevels2.length > 0 && areaLevel1Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && localities.length > 0 && areaLevel2Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && postalCodes.length > 0 && localitySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && countries.length > 0\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" (onClear)=\"onCountryCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && areaLevels1.length > 0 && countrySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" (onClear)=\"onAreaLevel1Cleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && areaLevels2.length > 0 && areaLevel1Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" (onClear)=\"onAreaLevel2Cleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && localities.length > 0 && areaLevel2Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" (onClear)=\"onLocalityCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && postalCodes.length > 0 && localitySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" (onClear)=\"onPostalCodeCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { OperatorEnum, QBDataTypeEnum } from '../../shared/models/enums.model';\r\nimport { QbPanelFilter } from '../../shared/models/filter-panel/qb-panel-filter.model';\r\nimport { Entity, EntityMap, Field, FieldMap, QueryBuilderConfig, Rule, RuleSet } from '../../shared/models/filter-panel/field.model';\r\nimport { FilterPanelTranslations } from '../../shared/models/filter-panel/filter-panel-translations.model';\r\nimport { QueryResultType, QueryResults } from '../../shared/models/filter-panel/query-results.model';\r\nimport { FilterField } from '../../shared/models/filter-panel/filter-field.models';\r\nimport { QbFilterEntity } from '../../shared/models/filter-panel/qb-filter-entity.model';\r\nimport { ApiService } from '../../shared/service/api/api.service';\r\nimport { StoredFilterPanelQuery } from '../../shared/models/stored-filter-panel-query.model';\r\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\r\nimport { NullableSelectOption } from '../../shared/models/filter-panel/nullable-select-option.model';\r\nimport { BooleanSelectOption } from '../../shared/models/filter-panel/boolean-select-option.model';\r\nimport { QueryBuilderComponent } from 'angular2-query-builder';\r\nimport { TranslatedSelectOption } from '../../shared/models/filter-panel/translated-select-optinon.model';\r\n\r\n@Component({\r\n selector: 'w-filter-panel',\r\n templateUrl: './w-filter-panel.component.html',\r\n styleUrls: ['./w-filter-panel.component.scss']\r\n})\r\nexport class WFilterPanelComponent implements OnInit {\r\n public queryCtrl!: FormControl;\r\n public advancedQueryCtrl!: FormControl;\r\n public groupedQueryCtrl!: FormControl;\r\n public persistValueOnFieldChange: boolean = false;\r\n \r\n queryConfigReady: boolean = false;\r\n isAdvancedSearch: boolean = false;\r\n qbDataTypeEnum = QBDataTypeEnum;\r\n qbDataEnums = Object.values(QBDataTypeEnum);\r\n basicQueryConfig!: any;\r\n advancedQueryConfig!: any;\r\n basicQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n groupedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n advancedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n filterPanelObject!: QbPanelFilter;\r\n entityConfigGrouped: QueryBuilderConfig = { fields: {} };\r\n entities: any[] = [];\r\n defaultValues: any[] = [];\r\n defaultOperators: any[] = [];\r\n storedQuery!: StoredFilterPanelQuery;\r\n parentRoute!: string;\r\n\r\n @Input('apiUrl') authorizationApiUrl!: string;\r\n @Input('commonDataApiUrl') commonDataApiUrl!: string;\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('token') token!: string;\r\n @Input('commonDataToken') commonDataToken!: string;\r\n @Input('segmentationToken') segmentationToken!: string;\r\n @Input('filterId') filterId!: string;\r\n @Input('dataIsLoadingSearchButton') dataIsLoadingSearchButton: boolean = false;\r\n @Input('tenantId') tenantId!: string;\r\n\r\n @Input('translationsObject') translationsObject: FilterPanelTranslations = {\r\n basicSearchTabLabel: 'Basic search',\r\n advancedSearchTabLabel: 'Advanced search',\r\n groupedFilterTitle: 'Grouped filter',\r\n advancedSearch: {\r\n andButtonLabel: 'And',\r\n orButtonLabel: 'Or',\r\n addRuleButtonLabel: 'Add filter',\r\n addRuleSetButtonLabel: 'Add filter set',\r\n removeRuleSetButtonLabel: 'Remove rule set'\r\n },\r\n noRulesLabel: 'Add filter or filter set to start',\r\n searchButtonLabel: 'Clear',\r\n clearButtonLabel: 'Clear',\r\n fieldsPlaceholders: {\r\n boolean: {\r\n true: 'True',\r\n false: 'False'\r\n },\r\n decimal: 'Insert decimal number',\r\n list: 'Select an option',\r\n number: 'Insert a number',\r\n text: 'Insert text',\r\n datetime: 'Select a date'\r\n },\r\n firstDayOfWeek: 0,\r\n operators: {\r\n contains:'contains'\r\n },\r\n fields: {\r\n IdleDeadline: 'Id',\r\n name: 'Name',\r\n code: 'Code',\r\n delete: 'Deleted',\r\n country: 'Country'\r\n },\r\n nullableSelectOptions: {\r\n customeroperation: {\r\n isNullOption: 'No customers',\r\n isNotNullOption: 'Customers'\r\n }\r\n },\r\n booleanSelectOptions: {\r\n voidedoperation: {\r\n isNullOption: 'No voided',\r\n isNotNullOption: 'Voided'\r\n }\r\n },\r\n translatedSelectOptions: {\r\n welcome: \"Bienvenida\",\r\n segmented: \"Segmentos de cliente\",\r\n lottery: \"Sorteo\",\r\n conditionalOnPurchase: \"Compra\",\r\n manual : \"Manual\"\r\n }\r\n };\r\n \r\n @Output('searchClicked') searchClicked = new EventEmitter<QueryResults>();\r\n @Output('clearClicked') clearClicked = new EventEmitter<boolean>();\r\n @Output('lastQuery') lastQuery = new EventEmitter<QueryResults>();\r\n \r\n stateOptions: any[] = [{ label: this.translationsObject.advancedSearch.andButtonLabel, value: 'and' }, { label: this.translationsObject.advancedSearch.orButtonLabel, value: 'or' }];\r\n \r\n @ViewChild('advancedQueryBuilder', { static: false }) queryBuilder!: QueryBuilderComponent;\r\n \r\n constructor(\r\n private formBuilder: FormBuilder, \r\n private apiService: ApiService,\r\n private sessionStorage: SessionStorageService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isAdvancedSearch = this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)?.advancedQueryValue ? true : false;\r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n this.storedQuery= this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)\r\n }\r\n this.getQueryBuilderFilterPanel();\r\n }\r\n\r\n initQueryBuilderControls() {\r\n this.queryCtrl = this.formBuilder.control(this.basicQuery);\r\n this.advancedQueryCtrl = this.formBuilder.control(this.advancedQuery);\r\n if(this.filterPanelObject.allowGrouped) {\r\n this.groupedQueryCtrl = this.formBuilder.control(this.groupedQuery);\r\n }\r\n \r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n let lastQuery: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.storedQuery?.basicQueryValue ? Object.assign({}, this.storedQuery?.basicQueryValue) : null,\r\n advanced: this.storedQuery?.advancedQueryValue ? Object.assign({}, this.storedQuery?.advancedQueryValue) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped && this.groupedQueryCtrl ? Object.assign({}, this.groupedQueryCtrl?.value) : null\r\n }\r\n\r\n this.setNoFiltersQueryType(lastQuery)\r\n .then((res) => {\r\n lastQuery = this.deleteFieldsWithoutValue(lastQuery);\r\n lastQuery = this.handleEmptyFieldsQuery(lastQuery);\r\n this.lastQuery.emit(lastQuery);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n }\r\n }\r\n\r\n nullableSelectPlaceholder(rule: Rule, options: NullableSelectOption[]) {\r\n if(rule.operator == 'is' && rule.value == 'null') {\r\n rule.value = 0;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNullOption;\r\n }\r\n if(rule.operator == 'is not' && rule.value == 'null') {\r\n rule.value = 1;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNotNullOption;\r\n }\r\n return this.translationsObject.fieldsPlaceholders.list;\r\n }\r\n \r\n setEmtpyArraysToNull(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.setEmtpyArraysToNull(rule);\r\n });\r\n } else {\r\n if (query.value instanceof Array && query.value.length == 0) {\r\n query.value = null;\r\n }\r\n }\r\n }\r\n\r\n updateSearchType() {\r\n this.isAdvancedSearch = !this.isAdvancedSearch;\r\n if(this.isAdvancedSearch) {\r\n setTimeout(() => {\r\n this.updateNullableElements(this.queryBuilder.config.fields)\r\n }, 3000);\r\n }\r\n }\r\n\r\n updateNullableElements(elements: { [key: string]: any }): void {\r\n for (const key in elements) {\r\n if (elements.hasOwnProperty(key)) {\r\n const element = elements[key];\r\n if (element.operators.includes('nullable') && element.defaultValue == null) {\r\n element.defaultValue = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSearchClicked() {\r\n let queries: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.isAdvancedSearch ? null : Object.assign({}, this.queryCtrl.value),\r\n advanced: this.isAdvancedSearch ? Object.assign({}, this.advancedQueryCtrl.value) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped ? Object.assign({}, this.groupedQueryCtrl.value) : null\r\n }\r\n \r\n this.setEntity(queries);\r\n\r\n queries = this.initializeOperators(queries);\r\n \r\n this.setNoFiltersQueryType(queries).then((resQueries:any) => {\r\n if(resQueries.type != 0){\r\n this.nullableFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);\r\n }\r\n }).then((resQueries:any) => {\r\n let storedQuery: StoredFilterPanelQuery = {\r\n id: this.filterId,\r\n basicQueryValue: queries.basic,\r\n advancedQueryValue: queries.advanced,\r\n groupedQueryValue: queries.grouped\r\n }\r\n this.setEmtpyArraysToNull(queries.basic ? queries.basic : queries.advanced);\r\n if(storedQuery.advancedQueryValue && storedQuery.advancedQueryValue.rules == 0) {\r\n //Do nothing\r\n } else {\r\n this.sessionStorage.setLastFilterPanelQuery(this.tenantId, storedQuery);\r\n }\r\n }).then((resQueries: any) => {\r\n queries = this.deleteFieldsWithoutValue(queries);\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n this.searchClicked.emit(queries);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n .catch((error) => {\r\n console.error(\"Error en la promesa:\", error);\r\n });\r\n }\r\n\r\n setNoFiltersQueryType(queries:any) {\r\n return new Promise((resolve, reject) => {\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n resolve(queries);\r\n });\r\n }\r\n\r\n onClearClicked() {\r\n this.resetBasicQueryValues();\r\n this.advancedQuery.rules = [];\r\n this.groupedQuery.rules = [];\r\n this.sessionStorage.removeLastFilterPanelQuery(this.tenantId, this.filterId);\r\n this.clearClicked.emit(true);\r\n }\r\n\r\n handleEmptyFieldsQuery(queries: QueryResults): QueryResults {\r\n if(queries.advanced != null && queries.advanced?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.basic != null && queries.basic?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.grouped != null && queries.grouped?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n return queries;\r\n }\r\n\r\n nullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.nullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if (query.operator === OperatorEnum.Nullable || ((query.operator == 'is' || query.operator == 'is not') && (query.value == 1 || query.value == 0))) {\r\n if(query.value == 1) {\r\n query.operator = 'is not';\r\n }\r\n if(query.value == 0) {\r\n query.operator = 'is';\r\n }\r\n query.value = 'null';\r\n }\r\n }\r\n }\r\n\r\n inverseNullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.inverseNullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if ((query.operator == 'is not' || query.operator == 'is') && query.value == 'null') {\r\n if(query.operator == 'is not') {\r\n query.value = 1;\r\n }\r\n if(query.operator == 'is') {\r\n query.value = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getQueryType(): QueryResultType {\r\n if(!this.isAdvancedSearch) {\r\n return QueryResultType.Basic;\r\n } else {\r\n if(this.isAdvancedSearch && this.groupedQueryCtrl?.value) {\r\n return QueryResultType.Grouped\r\n } else {\r\n return QueryResultType.Advanced;\r\n }\r\n }\r\n }\r\n\r\n setEntity(queries: QueryResults) {\r\n if(this.getQueryType() == QueryResultType.Basic) {\r\n queries.basic!.rules = queries.basic!.rules.map((r:any) => {\r\n return {\r\n field: r.field,\r\n operator: r.operator,\r\n value: r.value,\r\n entity: this.entities.find(e => e.fieldJsonName == r.field).entity\r\n }\r\n })\r\n }\r\n }\r\n\r\n getQueryBuilderFilterPanel() {\r\n this.apiService.getFilterPanel(this.authorizationApiUrl, this.token, this.commonDataApiUrl, this.commonDataToken, this.filterId)\r\n .subscribe((qbPanelFilter: QbPanelFilter) => {\r\n this.filterPanelObject = qbPanelFilter;\r\n let basicFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n let advancedFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => !panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n this.defaultValues = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId, \r\n basic: panelToField.basic, \r\n defaultValue: this.defaultValueAdapter(panelToField.defaultValue)\r\n }\r\n })\r\n this.defaultOperators = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId,\r\n qbdefaultOperator: panelToField.qbdefaultOperator\r\n }\r\n })\r\n let filterEntity: QbFilterEntity[] = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n id: panelToField.qbfilterField.qbfilterEntity.id, \r\n basic: panelToField.basic,\r\n name: panelToField.qbfilterField.qbfilterEntity.name, \r\n jsonName: panelToField.qbfilterField.qbfilterEntity.jsonName, \r\n fields: []\r\n }\r\n });\r\n\r\n let filterFields: FilterField[] = qbPanelFilter.qbpanelToFields.map(p => p.qbfilterField);\r\n filterEntity.forEach((entity: QbFilterEntity, index: number) => {\r\n let fields = filterFields.filter(e => e.qbfilterEntity.id == entity.id);\r\n filterEntity[index].fields = fields ;\r\n })\r\n \r\n this.basicQueryConfig = this.initQueryBuilder(filterEntity, true);\r\n this.basicQueryConfig = this.filterFieldsById(this.basicQueryConfig, basicFilterIds);\r\n this.basicQueryConfig.fields = this.translateFields(this.basicQueryConfig.fields);\r\n this.advancedQueryConfig = this.initQueryBuilder(filterEntity, false);\r\n this.advancedQueryConfig = this.filterFieldsById(this.advancedQueryConfig, advancedFilterIds);\r\n this.advancedQueryConfig.fields = this.translateFields(this.advancedQueryConfig.fields);\r\n let rules = Object.keys(this.basicQueryConfig.fields)\r\n .map(fieldKey => { \r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == this.basicQueryConfig.fields[fieldKey].id && operator.qbdefaultOperator != null);\r\n return {\r\n field: fieldKey, \r\n value: this.basicQueryConfig.fields[fieldKey].defaultValue!,\r\n operator: defaultOperator ? defaultOperator.qbdefaultOperator.symbol : null\r\n }\r\n });\r\n\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length != 0) {\r\n this.basicQuery = this.storedQuery.basicQueryValue;\r\n } else {\r\n this.basicQuery = {\r\n condition: 'and',\r\n rules: rules\r\n };\r\n }\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length != 0) {\r\n this.advancedQuery = this.storedQuery.advancedQueryValue;\r\n } else {\r\n this.advancedQuery = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n }\r\n\r\n this.queryConfigReady = true;\r\n this.initQueryBuilderControls();\r\n })\r\n }\r\n\r\n defaultValueAdapter(value: any) {\r\n if(value == 'QBFilterOptionsEnumNull') {\r\n return 0;\r\n }\r\n\r\n if(value == 'QBFilterOptionsEnumNotNull') {\r\n return 1;\r\n }\r\n \r\n if(value == '0') {\r\n return 0;\r\n }\r\n\r\n if(value == '1') {\r\n return 1;\r\n }\r\n return value;\r\n }\r\n\r\n initQueryBuilder(filterEntities: QbFilterEntity[], isBasic: boolean) {\r\n let entityConfigAux: QueryBuilderConfig = { fields: {} };\r\n let entitiesArray: EntityMap[] = [];\r\n \r\n filterEntities.map((e, index) => {\r\n let entity: Entity = { name: e.jsonName };\r\n return entitiesArray[index] = { [e.jsonName]: entity };\r\n });\r\n\r\n let entitiesMap: EntityMap = {};\r\n\r\n for (const entity of entitiesArray) {\r\n const keys = Object.keys(entity);\r\n\r\n keys.forEach(key => {\r\n if(this.translationsObject.entities) {\r\n let entitiesTranslationsKeys = Object.keys(this.translationsObject.entities);\r\n let translation = entitiesTranslationsKeys.find(translationKey => translationKey == key);\r\n if(translation) {\r\n entitiesMap[key] = { name: this.translationsObject.entities[key] }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n });\r\n\r\n entityConfigAux.entities = entitiesMap;\r\n }\r\n\r\n let fields: FieldMap[] = [];\r\n filterEntities.forEach((filterEntity) => {\r\n return filterEntity.fields.filter((filterField: FilterField) => {\r\n let index: number = fields.length ?? 0;\r\n let operatorsFlatArray = filterField.operators.map((o:any) => o.symbol);\r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == filterField.id);\r\n let field: Field = {\r\n id: filterField.id,\r\n name: filterField.name,\r\n operators: defaultOperator.qbdefaultOperator?.symbol ? this.moveElementToFirstPlace(operatorsFlatArray, defaultOperator.qbdefaultOperator?.symbol) : operatorsFlatArray,\r\n type: this.getDataType(filterField.dataType),\r\n defaultValue: this.formatDefaultValue(this.defaultValues.find(value => value.qbfilterFieldId == filterField.id && value.basic == isBasic)?.defaultValue, filterField.dataType),\r\n defaultOperator: defaultOperator.qbdefaultOperator?.symbol,\r\n entity: filterEntity.jsonName,\r\n options: filterField.listOfValues,\r\n validator: (rule: Rule, parent: RuleSet): any | null => {\r\n if (rule.operator !== \"is null\" && rule.operator !== \"is not null\") {\r\n if (rule.value === undefined || rule.value === null || rule.value === '' || rule.value.length == 0) {\r\n return { required: 'empty field' };\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n this.entities.push({fieldJsonName: filterField.jsonName, entity: field.entity});\r\n fields[index] = { [filterField.jsonName]: field };\r\n });\r\n });\r\n\r\n let fieldsMap: FieldMap = {};\r\n\r\n for (const field of fields) {\r\n const keys = Object.keys(field);\r\n keys.forEach(key => {\r\n fieldsMap[key] = field[key];\r\n });\r\n\r\n entityConfigAux.fields = fieldsMap;\r\n }\r\n return entityConfigAux;\r\n }\r\n\r\n filterFieldsById(fieldsObj: any, idArray: number[]): any {\r\n const filteredFields: any = {};\r\n \r\n for (const key in fieldsObj.fields) {\r\n const field = fieldsObj.fields[key];\r\n if (idArray.includes(field.id)) {\r\n filteredFields[key] = field;\r\n }\r\n }\r\n \r\n return {\r\n ...fieldsObj,\r\n fields: filteredFields,\r\n };\r\n }\r\n\r\n translateFields(fields: FieldMap) {\r\n for (const key in fields) {\r\n if (fields.hasOwnProperty(key)) {\r\n fields[key].field = key;\r\n fields[key].name = this.translationsObject.fields[key];\r\n }\r\n }\r\n return fields;\r\n }\r\n\r\n moveElementToFirstPlace(array: any[], elementToFirstPlace: string) {\r\n const index = array.indexOf(elementToFirstPlace);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n array.unshift(elementToFirstPlace); \r\n }\r\n return array;\r\n }\r\n\r\n formatDefaultValue(value: any, type: QBDataTypeEnum) {\r\n if(value) {\r\n if(type == QBDataTypeEnum.Boolean) {\r\n return value.toLowerCase() === 'true';\r\n }\r\n if(type == this.qbDataTypeEnum.Number || type == this.qbDataTypeEnum.Decimal || type == this.qbDataTypeEnum.List){\r\n return Number(value);\r\n }\r\n if(type == this.qbDataTypeEnum.NullableSelect) {\r\n return 1;\r\n }\r\n if(type == this.qbDataTypeEnum.BooleanSelect) {\r\n return 1;\r\n }\r\n } \r\n return value;\r\n }\r\n\r\n getDataType(id: number) {\r\n return this.qbDataEnums.find(value => value === id)?.toString() ?? \"\";\r\n }\r\n\r\n deleteFieldsWithoutValue(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != null);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != undefined);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value !== \"\");\r\n json.basic.rules = json.basic.rules.filter((rule: any) => { return !(rule.operator === \"nullable\" && rule.value === \"null\"); });\r\n }\r\n if(json.advanced && json.advanced.rules?.length != 0) {\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.rules?.length != 0);\r\n }\r\n if(json.grouped && json.grouped?.rules.length != 0) {\r\n json.grouped.rules = json.grouped.rules.filter((rule: any) => rule.rules?.length != 0);\r\n }\r\n if(json.grouped && json.grouped?.rules.length == 0) {\r\n json.grouped = null;\r\n }\r\n return json;\r\n }\r\n \r\n initializeOperators(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules.forEach((rule:any) => {\r\n if(!rule.operator) {\r\n rule.operator = \"=\";\r\n }\r\n });\r\n }\r\n return json;\r\n }\r\n\r\n resetBasicQueryValues() {\r\n this.basicQuery.rules.forEach((rule: Rule) => {\r\n if(rule.value || rule.value == 0){\r\n rule.value = null\r\n }\r\n });\r\n }\r\n\r\n getQueryFieldName(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fieldEntry && fields[fieldEntry].name ? fields[fieldEntry].name : fieldName;\r\n }\r\n\r\n getNullableSelectOptions(options: NullableSelectOption[]) {\r\n return options.map((option: NullableSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.nullableSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.nullableSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n \r\n getBooleanSelectOptions(options: BooleanSelectOption[]) {\r\n return options.map((option: BooleanSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.booleanSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.booleanSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n\r\n getTranslatedSelectOptions(options: TranslatedSelectOption[]) {\r\n return options.map((option: TranslatedSelectOption) => {\r\n return {\r\n name: this.translationsObject.translatedSelectOptions![option.name.charAt(0).toLowerCase() + option.name.slice(1)],\r\n value: option.value\r\n }\r\n })\r\n }\r\n\r\n fieldIsBoolean(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fields[fieldEntry!].type == QBDataTypeEnum.Boolean.toString() ? true : false;\r\n }\r\n\r\n isMultiselect(rule: Rule) {\r\n if(rule.operator == 'in' || rule.operator == 'not in' || rule.operator == 'is null' || rule.operator == 'is not null') {\r\n if(rule.value) {\r\n if(!Array.isArray(rule.value)) {\r\n rule.value = null;\r\n }\r\n }\r\n return true;\r\n } else {\r\n if(rule.value) {\r\n if(Array.isArray(rule.value))\r\n rule.value = null;\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\n","<!-- TODO: Intentar otra vez pasar los componentes a los de w- porque no se alinena y el w-edit-select no va bien en field. \r\n Ahora se conservan los de p-w con estilos. -->\r\n<p-blockUI styleClass=\"w-filter-panel-blockui\" [autoZIndex]=\"false\" [target]=\"filterPanel\" [blocked]=\"dataIsLoadingSearchButton\"></p-blockUI>\r\n\r\n<p-card styleClass=\"w-filter-panel-no-style-card\" #filterPanel>\r\n <div *ngIf=\"queryConfigReady\" class=\"w-filter-panel-styles\">\r\n <div *ngIf=\"!filterPanelObject.allowAdvancedSearch; else baiscAndAdvanced\">\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n <div class=\"w-filter-panel-buttons\">\r\n <w-button icon=\"w-icon closeCircle\" buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button icon=\"pi pi-filter-fill\" buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" size=\"small\" (onClick)=\"onSearchClicked()\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #baiscAndAdvanced>\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n <ng-container *ngIf=\"!isAdvancedSearch; else advancedView\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n </ng-container>\r\n <ng-template #advancedView>\r\n <ng-container *ngTemplateOutlet=\"advanced\"></ng-container>\r\n </ng-template>\r\n\r\n <div class=\"w-filter-panel-buttons\" [class.pt-3]=\"isAdvancedSearch\">\r\n <w-button buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" icon=\"w-icon closeCircle\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" icon=\"pi pi-filter-fill\" size=\"small\" (onClick)=\"onSearchClicked()\" [loading]=\"dataIsLoadingSearchButton\"></w-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</p-card>\r\n\r\n <ng-template #basic>\r\n <div *ngIf=\"filterPanelObject.allowAdvancedSearch\" class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" [label]=\"translationsObject.advancedSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <div *ngIf=\"basicQuery.rules.length > 0\" class=\"w-filter-panel-basic query-builder-style fadein animation-duration-500\">\r\n <query-builder [formControl]='queryCtrl' [config]='basicQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset;\">\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <p-dropdown [disabled]=\"true\" class=\" w-edit-select-small\" *ngIf=\"false\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields; let value=value; let name=name; let index=index\">\r\n <span appendTo=\"body\" class=\"w-filter-panel-input-text-label\" [class.w-filter-panel-boolean-label-width]=\"fieldIsBoolean(rule.field, getFields(rule.entity))\" optionLabel=\"name\" optionValue=\"value\">{{ getQueryFieldName(rule.field, getFields(rule.entity))}}</span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n <p-dropdown class=\" w-edit-select-small\" *ngIf=\"isAdvancedSearch\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n <w-toggle-button size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-calendar appendTo=\"body\" size=\"small\" [showIcon]=\"false\" [dataType]=\"'string'\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"w-edit-input-number-small\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"options\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"w-edit-input-number-small\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-input-text class=\"w-edit-input-text-small-height\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\" [showLabel]=\"false\"></w-edit-input-text>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-multiSelect class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getNullableSelectOptions(options)\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" \r\n [placeholder]=\"nullableSelectPlaceholder(rule, options)\">\r\n </p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getBooleanSelectOptions(options)\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\"></w-address-field>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getTranslatedSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n </query-builder>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!isAdvancedSearch && basicQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #advanced>\r\n <div [class.query-builder-style]=\"!filterPanelObject.allowRuleSet\" class=\"w-filter-panel-container fadein animation-duration-500\">\r\n <div *ngIf=\"filterPanelObject.allowRuleSet\" class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" class=\"mb-2\" [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <query-builder class=\"w-filter-panel-advanced query-builder-style\" #advancedQueryBuilder [formControl]='advancedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <div *ngIf=\"filterPanelObject.allowRuleSet; else noRuleSet\">\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <span class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </span>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #noRuleSet>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex justify-content-end flex-wrap\">\r\n <w-button [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <span class=\"advanced-query-button-group flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <div *ngIf=\"ruleset\" class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\">\r\n <w-select-button *ngIf=\"filterPanelObject.allowLogicalRule\" [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n <p-dropdown *ngIf=\"filterPanelObject.enityMode\" class=\"field-gap w-edit-select-small w-entity-dropdown\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field class=\"field-gap\" appendTo=\"body\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" [operator]=\"'='\" (ngModelChange)=\"onChange($event, rule)\" [onlyDropdown]=\"true\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n <p-dropdown *ngIf=\"!operators.includes('nullable')\" class=\"field-gap w-edit-select-small\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown *ngIf=\"!isMultiselect(rule)\" class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"options\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n <p-multiSelect *ngIf=\"isMultiselect(rule)\" class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display field-gap\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <input class=\"field-gap w-edit-input-text-small-height w-edit-input-text-small\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-multiSelect class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\" [selectPlaceholder]=\"translationsObject.fieldsPlaceholders.list\"></w-address-field>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display w-entity-nullable\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getNullableSelectOptions(options)\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getBooleanSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getTranslatedSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n </query-builder>\r\n\r\n <ng-container *ngIf=\"isAdvancedSearch && advancedQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n\r\n <!-- Grouped filter -->\r\n <div *ngIf=\"filterPanelObject.allowGrouped\">\r\n <div class=\"py-5\">\r\n <w-view-card-title-text [cardTitle]=\"translationsObject.groupedFilterTitle\"></w-view-card-title-text>\r\n </div>\r\n\r\n <query-builder *ngIf=\"groupedQuery.rules.length > 0\" class=\"w-filter-panel-grouped query-builder-style\" [formControl]='groupedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <div class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\" *ngIf=\"ruleset\">\r\n <w-select-button *ngIf=\"filterPanelObject.allowLogicalRule\" [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n <p-dropdown class=\"w-edit-select-small field-gap w-entity-dropdown\" *ngIf=\"filterPanelObject.enityMode\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber class=\"flex flex-1\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\">\r\n <input class=\"field-gap w-edit-input-text-small-height w-edit-input-text-small\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\r\n </span>\r\n </ng-container>\r\n\r\n </query-builder>\r\n\r\n <ng-container *ngIf=\"isAdvancedSearch && groupedQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #noQueryData>\r\n <div class=\"flex justify-content-center flex-wrap card-container surface-50\">\r\n <div class=\"flex align-items-center justify-content-center w-full h-4rem text-gray-900 border-round m-2\">\r\n {{translationsObject.noRulesLabel}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n","import { Component } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'w-preview-image',\r\n templateUrl: './w-preview-image.component.html',\r\n styleUrls: ['./w-preview-image.component.css']\r\n})\r\nexport class WPreviewImageComponent {\r\n imageCropped!: any;\r\n\r\n constructor(public dynamicDialogConfig: DynamicDialogConfig){}\r\n\r\n ngOnInit(): void {\r\n this.imageCropped = this.dynamicDialogConfig.data.imageEdited;\r\n }\r\n}\r\n","<div class=\"flex align-content-center align-items-center justify-content-center h-full w-full\">\r\n <p-image *ngIf=\"imageCropped\" \r\n class=\"flex align-content-center align-items-center\"\r\n [src]=\"imageCropped\" > </p-image>\r\n</div>\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nexport interface ModalSize {\r\n width: string;\r\n height?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n constructor(private dialogService: DialogService, private breakpointObserver: BreakpointObserver) { }\r\n\r\n dialogRef: any;\r\n smallDialogSubscription: any;\r\n dialogData: any;\r\n\r\n open(componentOrTemplateRef: Type<any>, modalConfig?: DynamicDialogConfig, modalSize?: ModalSize,): DynamicDialogRef {\r\n if (!modalConfig) {\r\n modalConfig = new DynamicDialogConfig;\r\n }\r\n\r\n if (modalConfig.data) {\r\n this.dialogData = modalConfig.data;\r\n }\r\n\r\n // TODO dejo esto comentado como guía para completarlo más adelante\r\n //modalConfig.maxWidth = '100vw';\r\n\r\n this.dialogRef = this.dialogService.open(componentOrTemplateRef, modalConfig);\r\n\r\n this.smallDialogSubscription = this.breakpointObserver.observe([Breakpoints.XSmall])\r\n .subscribe(size => {\r\n if (size.matches) {\r\n //this.dialogRef.updateSize('100%', '100%');\r\n //this.dialogRef.hasBackdrop = false;\r\n } else {\r\n if (!modalSize) {\r\n //this.dialogRef.updateSize('auto', 'auto');\r\n }\r\n else {\r\n //this.dialogRef.updateSize(modalSize.width, modalSize.height);\r\n }\r\n }\r\n });\r\n\r\n return this.dialogRef;\r\n }\r\n\r\n close(): void {\r\n this.smallDialogSubscription.unsubscribe();\r\n this.dialogRef.close();\r\n }\r\n \r\n getComponentInstance<T>() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef.instance as T;\r\n }\r\n\r\n getComponentRef() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ModalService } from '../../shared/services/modal.service';\r\nimport { WPreviewImageComponent } from '../w-preview-image/w-preview-image.component';\r\nimport { Dimensions, ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\n\r\n@Component({\r\n selector: 'w-image-cropper',\r\n templateUrl: './w-image-cropper.component.html',\r\n styleUrls: ['./w-image-cropper.component.scss']\r\n})\r\nexport class WImageCropperComponent {\r\n @Input() dimensionsInput!: WImageCropperData;\r\n @Input() translationsImageCropper: any;\r\n @Output() imageCroppedFinal = new EventEmitter<any>();\r\n @Output() imageB64 = new EventEmitter<any>();\r\n @Input() blob: any;\r\n\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\r\n canvasRotation = 0;\r\n rotation: number = 0;\r\n translateH = 0;\r\n translateV = 0;\r\n scale = 1;\r\n aspectRatio = 4 / 3;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {\r\n translateUnit: 'px'\r\n };\r\n imageURL?: string;\r\n loading = false;\r\n allowMoveImage = true;\r\n hidden = false;\r\n\r\n croppedImageFile: WFileB64 = {name: \"\", type: \"\", fileBase64: \"\", base64: \"\"};\r\n\r\n dimensions: any;\r\n maxFileSize!: number;\r\n roundedCropper!: boolean;\r\n fromModal: boolean = true;\r\n dialogPreview!: DynamicDialogRef;\r\n constructor(\r\n private ref: DynamicDialogRef,\r\n private dialogService: ModalService,\r\n public dynamicDialogConfig: DynamicDialogConfig){\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.dynamicDialogConfig.data == undefined){\r\n this.fromModal = false;\r\n this.aspectRatio = this.dimensionsInput.configuredAspectRatio;\r\n this.roundedCropper = this.dimensionsInput.roundedCropper;\r\n this.dimensions = {\r\n width: this.dimensionsInput.viewPortWidthPx,\r\n height: this.dimensionsInput.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.dimensions.maxFileSize;\r\n }else{\r\n this.aspectRatio = this.dynamicDialogConfig.data.dataModal.configuredAspectRatio;\r\n this.roundedCropper = this.dynamicDialogConfig.data.dataModal.roundedCropper;\r\n this.dimensions = {\r\n width: this.dynamicDialogConfig.data.dataModal.viewPortWidthPx,\r\n height: this.dynamicDialogConfig.data.dataModal.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.dynamicDialogConfig.data.dataModal.maxFileSize\r\n this.translationsImageCropper = this.dynamicDialogConfig.data.translations;\r\n this.blob = this.dynamicDialogConfig.data.blob;\r\n if(this.blob)\r\n this.setCroppeImageFileObject();\r\n }\r\n }\r\n\r\n myUploader(event: any) {\r\n this.resetImage()\r\n this.loading = true;\r\n this.blob = event.files[0];\r\n this.setCroppeImageFileObject();\r\n }\r\n\r\n setCroppeImageFileObject(){\r\n this.croppedImageFile.name = this.blob.name;\r\n this.croppedImageFile.type = this.blob.type;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.croppedImage = event.base64;\r\n }\r\n\r\n imageLoaded(event: any) {\r\n this.showCropper = true;\r\n }\r\n\r\n cropperReady(sourceImageDimensions: Dimensions) {\r\n this.loading = false;\r\n }\r\n\r\n loadImageFailed() {\r\n console.error('Load image failed');\r\n }\r\n\r\n rotateLeft() {\r\n this.loading = true;\r\n setTimeout(() => { // Use timeout because rotating image is a heavy operation and will block the ui thread\r\n this.canvasRotation--;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n rotateRight() {\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.canvasRotation++;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n moveLeft() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: ++this.translateH\r\n };\r\n }\r\n\r\n moveRight() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: --this.translateH\r\n };\r\n }\r\n\r\n moveTop() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: ++this.translateV\r\n };\r\n }\r\n\r\n moveBottom() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: --this.translateV\r\n };\r\n }\r\n\r\n flipHorizontal() {\r\n this.transform = {\r\n ...this.transform,\r\n flipH: !this.transform.flipH\r\n };\r\n }\r\n\r\n flipVertical() {\r\n this.transform = {\r\n ...this.transform,\r\n flipV: !this.transform.flipV\r\n };\r\n }\r\n\r\n resetImage() {\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.canvasRotation = 0;\r\n this.transform = {\r\n translateUnit: 'px'\r\n };\r\n }\r\n\r\n zoomOut() {\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n toggleContainWithinAspectRatio() {\r\n this.containWithinAspectRatio = !this.containWithinAspectRatio;\r\n }\r\n\r\n updateRotation() {\r\n this.transform = {\r\n ...this.transform,\r\n rotate: this.rotation\r\n };\r\n }\r\n\r\n toggleAspectRatio() {\r\n this.aspectRatio = this.aspectRatio === 4 / 3 ? 16 / 5 : 4 / 3;\r\n }\r\n \r\n toggleAspectRatio1() {\r\n this.aspectRatio = this.aspectRatio = 1;\r\n }\r\n\r\n viewCrop(){\r\n this.dialogPreview = this.dialogService.open(WPreviewImageComponent, {\r\n header: this.translationsImageCropper.modal.preview,\r\n width:'35rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"35rem\", \"padding-bottom\": \"8px\"},\r\n data: {imageEdited: this.croppedImage}\r\n })\r\n }\r\n\r\n deleteBlob(){\r\n this.blob = null\r\n this.croppedImage = null\r\n }\r\n\r\n cancelDialog(){\r\n this.blob = null\r\n this.croppedImage = null\r\n this.ref.close();\r\n }\r\n\r\n saveImageCropped(){\r\n this.croppedImageFile.fileBase64 = this.croppedImage;\r\n this.croppedImageFile.base64 = this.imageCroppedToBase64(this.croppedImage, this.croppedImageFile.name);\r\n\r\n if(this.fromModal){\r\n this.ref.close(this.croppedImageFile)\r\n }else{\r\n this.imageCroppedFinal.emit(this.croppedImageFile);\r\n }\r\n }\r\n\r\n private flipAfterRotate() {\r\n const flippedH = this.transform.flipH;\r\n const flippedV = this.transform.flipV;\r\n this.transform = {\r\n ...this.transform,\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n this.translateH = 0;\r\n this.translateV = 0;\r\n }\r\n\r\n imageCroppedToBase64(imageData: string, imageName: string){\r\n const base64Parts = imageData?.split(',');\r\n if (base64Parts.length === 2) {\r\n const base64Content = base64Parts[1];\r\n return base64Content;\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"flex flex-column align-content-center justify-content-center wapp-card-cropper\">\r\n <div class=\"flex flex-1\" ></div> \r\n <div class=\"flex justify-content-center align-content-center\" *ngIf=\"!blob; else imageCropper\">\r\n <span class=\"flex align-content-center surface-border justify-content-between flex-wrap\"> \r\n <p-fileUpload #fileUploader\r\n class=\"w-file-button bg-white\"\r\n chooseIcon=\"pi pi-image\"\r\n chooseLabel=\"Choose\"\r\n (onSelect)=\"myUploader($event)\"\r\n name=\"filesToUpload[]\" \r\n [auto]=\"true\"\r\n [multiple]=\"false\"\r\n accept=\"image/*\"\r\n mode=\"basic\"\r\n accept=\"image/*\" \r\n [maxFileSize]=\"maxFileSize\">\r\n </p-fileUpload>\r\n </span>\r\n </div>\r\n <ng-template #imageCropper>\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"flex flex-row align-content-center\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex align-content-center align-items-center justify-content-between wapp-image-cropper-wrapper flex-1\">\r\n <image-cropper\r\n [imageFile]=\"blob\"\r\n [imageURL]=\"imageURL\"\r\n [maintainAspectRatio]=\"true\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [resizeToWidth]= \"dimensions.width\"\r\n [resizeToHeight]=\"dimensions.height\"\r\n [cropperMinWidth]=\"128\"\r\n [onlyScaleDown]=\"true\"\r\n [roundCropper]=\"false\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [(transform)]=\"transform\"\r\n [alignImage]=\"'center'\"\r\n [style.display]=\"showCropper ? null : 'none'\"\r\n [allowMoveImage]=\"allowMoveImage\"\r\n [hidden]=\"hidden\"\r\n backgroundColor=\"white\"\r\n format=\"jpeg\"\r\n [roundCropper]=\"roundedCropper\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady($event)\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n ></image-cropper>\r\n </div>\r\n <div class=\"flex flex-column justify-content-center align-content-center align-items-center\">\r\n <w-button \r\n class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\" \r\n [pTooltip]=\"translationsImageCropper.zoomIn\"\r\n icon=\"pi pi-search-plus\" (click)=\"zoomIn()\"\r\n type=\"text\"></w-button>\r\n <w-button \r\n class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\" \r\n [pTooltip]=\"translationsImageCropper.zoomOut\"\r\n icon=\"pi pi-search-minus\" \r\n (click)=\"zoomOut()\"\r\n type=\"text\"></w-button> \r\n </div>\r\n <div class=\"flex flex-1\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex flex-1 flex-column wapp-image-cropper-tools py-4\">\r\n <p-slider [(ngModel)]=\"rotation\" [min]=\"-360\" [max]=\"360\" \r\n (ngModelChange)=\"updateRotation()\" class=\"w-full align-content-center\"\r\n [pTooltip]=\"translationsImageCropper.rotation\"></p-slider>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex flex-1 wapp-image-cropper-tools flex-row justify-content-center align-items-center align-content-center\">\r\n <w-button\r\n type=\"text\"\r\n icon=\"pi pi-replay\" \r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateLeft\"\r\n (click)=\"rotateLeft()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n icon=\"pi pi-refresh\"\r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateRight\"\r\n (click)=\"rotateRight()\"></w-button>\r\n <w-button\r\n type=\"text\"\r\n icon=\"pi pi-arrows-h\" \r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.flipHorizontal\"\r\n (click)=\"flipHorizontal()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.flipVertical\"\r\n icon=\"pi pi-arrows-v\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"flipVertical()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.restore\"\r\n icon=\"pi pi-history\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"resetImage()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.preview\"\r\n icon=\"pi pi-eye\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"viewCrop()\"></w-button>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n </div>\r\n \r\n </ng-template>\r\n <div class=\"flex flex-1\" ></div>\r\n <div class=\"wapp-image-cropper-dialog-buttons flex justify-content-end align-content-center align-items-center w-full h-2\">\r\n <w-button *ngIf=\"blob\"\r\n (onClick)=\"deleteBlob()\"\r\n class=\"flex align-content-center align-items-center \"\r\n icon=\"pi-trash\"\r\n [label]=\"translationsImageCropper.delete\"\r\n type=\"text\">\r\n </w-button>\r\n <w-button \r\n *ngIf=\"fromModal\"\r\n (onClick)=\"cancelDialog()\"\r\n class=\"flex align-content-center align-items-center \"\r\n icon=\"pi-times\"\r\n [label]=\"translationsImageCropper.cancel\"\r\n type=\"text\">\r\n </w-button>\r\n <w-button \r\n icon=\"pi-save\"\r\n (click)=\"saveImageCropped()\"\r\n [disabled]=\"!blob\"\r\n [label]=\"translationsImageCropper.save\"\r\n class=\"flex align-content-center align-items-center\"\r\n type=\"text\">\r\n </w-button>\r\n </div> \r\n</div>\r\n \r\n ","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { WImageFileUploaderConfig } from '../../shared/models/w-image-file-uploader-config.model';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ImageB64 } from '../../shared/models/image-b64.model';\r\nimport { WImageCropperComponent } from '../w-image-cropper/w-image-cropper.component';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\n\r\n@Component({\r\n selector: 'w-image-file-uploader',\r\n templateUrl: './w-image-file-uploader.component.html',\r\n styleUrls: ['./w-image-file-uploader.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class WImageFileUploaderComponent {\r\n @Input('allowMultipleImages') allowMultipleImages: boolean = false;\r\n @Input('activeImageUpload') activeImageUpload: boolean = false;\r\n @Input('imagesAlreadyUploaded') imagesAlreadyUploaded: any[] = [];\r\n @Input('imageSingleMode') imageSingleMode: any;\r\n @Input('uploadUrl') uploadUrl!: string;\r\n @Input('updateUrl') updateUrl!: string;\r\n @Input('deleteUrl') deleteUrl!: string;\r\n @Input('headers') headers!: HttpHeaders;\r\n @Input('activePositionProperty') activePositionProperty: boolean = false;\r\n @Input('viewSingleMode') viewSingleMode: boolean = false;\r\n @Input('viewMultiMode') viewMultiMode: boolean = false;\r\n @Input('identificatorImageName') identificatorName: string = \"id\";\r\n @Input('identificatorImagesCollectionValue') identificatorValue: any = 0;\r\n @Input('imageUploadConfig') imageUploadConfig: WImageFileUploaderConfig = {\r\n imagePropertyNames: [],\r\n acceptImageTypes: \"image/*\",\r\n maxImageSize: 1000000,\r\n allowAuto: false,\r\n uploadButtonLabel: \"\",\r\n chooseButtonLabel: \"\",\r\n cancelButtonLabel: \"\",\r\n contentHeaderLabel: \"\",\r\n contentSubheaderLabel: \"\",\r\n deleteImageButtonLabel: \"\",\r\n croppedDialogTranslations: \"\",\r\n croppedImageConfiguration: {\r\n roundedCropper: false,\r\n configuredAspectRatio: 4/3,\r\n viewPortWidthPx: 400,\r\n viewPortHeihtPx: 500\r\n },\r\n confirmDeleteMessageLabel: \"\",\r\n confirmDeleteButtonLabel: \"\",\r\n invalidFileSizeMessageSummary: \"\",\r\n invalidFileSizeMessageDetail: \"\",\r\n invalidFileTypeMessageSummary: \"\",\r\n invalidFileTypeMessageDetail: \"\"\r\n }\r\n @Input('activeFieldVersion') activeFieldVersion: boolean = false;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('required') required: boolean = false;\r\n @Input('customHeightImg') customHeightImg!: number;\r\n\r\n @Output('onUploadFinished') onUploadFinished: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onErrorHandler') onErrorHandler: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onReturnImagesB64') onReturnImagesB64: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onDeleteImage') onDeleteImage: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('fileUpload') fileUpload!: FileUpload;\r\n\r\n @ViewChildren('buttonRemoveOnlyImage') buttonRemoveOnlyImage!: QueryList<ElementRef>;\r\n @ViewChild('fileUploadOnlyImage') fileuploadOnlyImage!: FileUpload;\r\n\r\n activeIndexGallery: number = 0;\r\n cropperImages: any[] = [];\r\n defaultWidth: string = \"w-18rem\";\r\n defaultHeight: string = \"h-18rem\";\r\n disableMoveButtons: boolean = false;\r\n isUploadingMultiMode: boolean = false;\r\n isDeletingMultiMode: boolean = false;\r\n\r\n onlyImageSelected: any;\r\n onlyCroppedImageSelected: any = null;\r\n\r\n dimensionsInput!: WImageCropperData;\r\n carouselImagesResponsiveOptions: any[] = [\r\n {\r\n breakpoint: '1024px',\r\n numVisible: 4,\r\n numScroll: 4\r\n },\r\n {\r\n breakpoint: '850px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '560px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private http: HttpClient,\r\n private confirmationService: ConfirmationService\r\n ){}\r\n\r\n ngOnInit(): void {\r\n this.dimensionsInput = {\r\n roundedCropper: this.imageUploadConfig.croppedImageConfiguration.roundedCropper,\r\n configuredAspectRatio: this.imageUploadConfig.croppedImageConfiguration.configuredAspectRatio,\r\n viewPortWidthPx: this.imageUploadConfig.croppedImageConfiguration.viewPortWidthPx,\r\n viewPortHeihtPx: this.imageUploadConfig.croppedImageConfiguration.viewPortHeihtPx,\r\n maxFileSize: this.imageUploadConfig.maxImageSize\r\n }\r\n\r\n if(this.activeImageUpload == false && this.imagesAlreadyUploaded.length > 0){\r\n this.cropperImages.push(...this.imagesAlreadyUploaded);\r\n }\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n onCustomUploadSingleMode(event: any){\r\n this.onlyImageSelected = event.currentFiles[0];\r\n this.openModalCropper(this.onlyImageSelected, event.originalEvent);\r\n }\r\n\r\n onCustomizeUploadFunctionSingleMode(event: any){\r\n if(this.activeImageUpload == true){\r\n if(this.onlyCroppedImageSelected){\r\n let base64Images: ImageB64[] = [{base64: this.onlyCroppedImageSelected.base64, name: this.onlyCroppedImageSelected.name}];\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imageUploaded: any) => {\r\n this.fileuploadOnlyImage.clear();\r\n this.onUploadFinished.emit(imageUploaded);\r\n },\r\n error: (error) => {\r\n this.fileuploadOnlyImage.uploading = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n removeImageSingleMode(event: Event, file: any) {\r\n event.stopPropagation();\r\n this.fileuploadOnlyImage.clear();\r\n this.onlyImageSelected = null;\r\n this.onlyCroppedImageSelected = null;\r\n this.imageSingleMode = null;\r\n this.onReturnImagesB64.emit(null);\r\n }\r\n\r\n moveImageToLeft(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove > 0 && indexToMove < this.imagesAlreadyUploaded.length){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove - 1];\r\n this.imagesAlreadyUploaded[indexToMove - 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove - 1;\r\n\r\n if(this.uploadUrl != undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n moveImageToRight(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove >= 0 && indexToMove < this.imagesAlreadyUploaded.length -1){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove + 1];\r\n this.imagesAlreadyUploaded[indexToMove + 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove + 1;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n onCustomizeUploadFunctionMultiMode(event?: any){\r\n if(this.activeImageUpload == true){\r\n if(this.cropperImages.length > 0){\r\n let base64Images: ImageB64[] = this.mapToObjectB64(this.cropperImages);\r\n this.isUploadingMultiMode = true;\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imagesUploaded: any) => {\r\n this.imagesAlreadyUploaded.push(...imagesUploaded);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.cropperImages = [];\r\n this.fileUpload.clear();\r\n\r\n this.imagesAlreadyUploaded = this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n\r\n this.isUploadingMultiMode = false;\r\n },\r\n error: (error) => {\r\n this.isUploadingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n onCustomUploadMultiMode(event: any){\r\n if(this.allowMultipleImages == true){\r\n event.currentFiles.forEach((file: any, index: number) => {\r\n let foundIt = this.cropperImages.find(f => f.name == file.name);\r\n if(event.currentFiles.length == 0){\r\n this.openModalCropper(file, event.originalEvent);\r\n }else if(foundIt == undefined){\r\n this.openModalCropper(file, event.originalEvent);\r\n }\r\n });\r\n }else{\r\n this.openModalCropper(event.currentFiles[0], event.originalEvent);\r\n }\r\n }\r\n\r\n confirmDeleteImageMultiMode(event: any, image: any){\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.imageUploadConfig.confirmDeleteMessageLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.imageUploadConfig.deleteImageButtonLabel,\r\n accept: () => {\r\n this.onDeleteImageMultiMode(image);\r\n }\r\n })\r\n }\r\n\r\n onDeleteFileMultiMode(event: any, file: File, uploader: FileUpload){\r\n const index = uploader.files.indexOf(file);\r\n uploader.remove(event, index);\r\n this.cropperImages = this.cropperImages.filter(s => !file.name.includes(s.name));\r\n }\r\n\r\n onDeleteImageMultiMode(image: any){\r\n this.isDeletingMultiMode = true;\r\n if(this.activeImageUpload){\r\n let deleteUrlFinal = this.deleteUrl+\"/\"+image[this.identificatorName];\r\n this.http.delete(deleteUrlFinal, {headers: this.headers}).subscribe({\r\n next: () => {\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.isDeletingMultiMode = false;\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n },\r\n error: (error) => {\r\n this.isDeletingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n this.onDeleteImage.emit(null);\r\n }\r\n })\r\n }else{\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.cropperImages = this.cropperImages.filter(img => (img.fileBase64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n this.isDeletingMultiMode = false;\r\n }\r\n }\r\n\r\n getIndexToDelete(image: any){\r\n let imageIndex = this.imagesAlreadyUploaded.findIndex(img => {\r\n const fileBase64Matches = img.fileBase64 !== undefined && img.fileBase64 === image.fileBase64;\r\n const identificatorNameMatches = img[this.identificatorName] !== undefined && img[this.identificatorName] === image[this.identificatorName];\r\n return fileBase64Matches || identificatorNameMatches;\r\n });\r\n\r\n if(imageIndex > 0){\r\n this.activeIndexGallery = imageIndex-1; \r\n }else{\r\n this.activeIndexGallery = 0; \r\n }\r\n }\r\n\r\n updateImage(imagesToUpdate: any[]): any{\r\n let updateUrlFinal = this.updateUrl + \"/\" + this.identificatorValue;\r\n this.http.put(updateUrlFinal, imagesToUpdate, {headers: this.headers}).subscribe({\r\n next: (imagesUpdated: any) => {\r\n this.disableMoveButtons = false;\r\n this.imagesAlreadyUploaded = imagesUpdated;\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n });\r\n }\r\n\r\n openModalCropper(fileBlob: any, event?: any){\r\n const ref: DynamicDialogRef = this.dialogService.open(WImageCropperComponent, {\r\n header: this.imageUploadConfig.croppedDialogTranslations?.modal.header,\r\n width: '70rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"auto\", \"padding-bottom\": \"8px\"},\r\n data: {dataModal: this.dimensionsInput, translations: this.imageUploadConfig.croppedDialogTranslations, blob: fileBlob},\r\n resizable: true\r\n });\r\n\r\n ref.onClose.subscribe((imageCropped: WFileB64) => {\r\n if(imageCropped){\r\n if(this.allowMultipleImages == false){\r\n this.onlyCroppedImageSelected = imageCropped;\r\n this.onReturnImagesB64.emit(this.mapToObjectB64(this.onlyCroppedImageSelected));\r\n }else{\r\n this.cropperImages.push(imageCropped);\r\n\r\n this.cropperImages = (this.activePositionProperty && this.activeImageUpload == false ) ? this.addPositionProperty(this.cropperImages) : this.cropperImages;\r\n\r\n if(this.activeImageUpload == false){\r\n this.imagesAlreadyUploaded.push(imageCropped);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.cropperImages));\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.mapToObjectB64(this.cropperImages)));\r\n }\r\n }\r\n }else{\r\n if(this.allowMultipleImages){\r\n this.fileUpload._files = this.fileUpload._files.filter(f => !f.name.includes(fileBlob.name));\r\n let filesAux = this.fileUpload._files;\r\n this.fileUpload.clear();\r\n this.fileUpload._files = filesAux;\r\n }else{\r\n this.onlyImageSelected = null;\r\n this.fileuploadOnlyImage.clear();\r\n }\r\n }\r\n\r\n if((this.activeImageUpload == true) && (this.imageUploadConfig.allowAuto == true) && (this.cropperImages.length == this.fileUpload._files.length)){\r\n this.onCustomizeUploadFunctionMultiMode();\r\n }\r\n })\r\n }\r\n\r\n mapToObjectB64(images: any): ImageB64[]{\r\n if(Array.isArray(images) == false){\r\n return [{\r\n base64: images.base64,\r\n name: images.name,\r\n ...(images.position !== undefined && { position: images.position })\r\n }]\r\n }\r\n\r\n return images.map((img: any) => {\r\n return {\r\n base64: img.base64,\r\n name: img.name,\r\n ...(img.position !== undefined && { position: img.position })\r\n }\r\n });\r\n }\r\n\r\n getArraysToCreateAndToUpdate(images: any[]){\r\n return {\r\n toCreate:\r\n images.filter((img) => img[this.identificatorName] == undefined),\r\n toUpdated:\r\n images.filter((img) => img.base64 == undefined)\r\n }\r\n }\r\n\r\n addPositionProperty(imagesArray: any[]){\r\n imagesArray = imagesArray.map((img, index) => ({\r\n ...img,\r\n position: index\r\n }))\r\n\r\n return imagesArray;\r\n }\r\n\r\n onImageMouseOver(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'flex' : null;\r\n })\r\n }\r\n\r\n onImageMouseLeave(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'none' : null;\r\n })\r\n }\r\n\r\n findIndex(img: any){\r\n let i = this.imagesAlreadyUploaded.indexOf(img);\r\n return i != -1 ? i : 0;\r\n }\r\n\r\n openImageFileSelector(){\r\n this.fileUpload.choose();\r\n }\r\n\r\n openSingleImageFileSelector(){\r\n this.fileuploadOnlyImage.choose();\r\n }\r\n\r\n getGalleryClass(){\r\n if(this.activeFieldVersion == true){\r\n return 'w-image-file-uploader-gallery-field';\r\n }\r\n return 'w-image-file-uploader-gallery';\r\n }\r\n}\r\n","\r\n<w-input-label *ngIf=\"activeFieldVersion == true\" [label]=\"label\" [tooltip]=\"tooltip\" [required]=\"required\"></w-input-label>\r\n<div *ngIf=\"activeFieldVersion == true && (label != undefined && label.length > 0)\" class=\"input-label-gap-divider\"></div>\r\n<p-fileUpload *ngIf=\"allowMultipleImages == false; else withCarousel\" #fileUploadOnlyImage class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false,\r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined)}\"\r\n mode=\"advanced\"\r\n [accept]=\"imageUploadConfig.acceptImageTypes\"\r\n [multiple]=\"false\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' {0} bytes.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n (onSelect)=\"onCustomUploadSingleMode($event)\"\r\n [uploadLabel]=\"onlyCroppedImageSelected ? (onlyCroppedImageSelected.name.length>6)? (onlyCroppedImageSelected.name | slice:0:6)+'...':(onlyCroppedImageSelected.name) : ''\"\r\n [customUpload]=\"true\"\r\n (uploadHandler)=\"onCustomizeUploadFunctionSingleMode($event)\"\r\n [maxFileSize]=\"imageUploadConfig.maxImageSize\">\r\n <ng-template let-file let-i=\"index\" pTemplate='file'>\r\n <div *ngIf=\"activeImageUpload\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <p-progressBar *ngIf=\"false\"></p-progressBar>\r\n <div *ngIf=\"(onlyCroppedImageSelected != null || undefined) || (imageSingleMode != null || undefined)\" style=\"flex-grow: 1;\">\r\n <p-galleria\r\n [ngClass]=\"getGalleryClass()\"\r\n [value]=\"(onlyCroppedImageSelected !== null) ? [onlyCroppedImageSelected.fileBase64] : (imageUploadConfig.singleModeImageDefault ? [imageUploadConfig.singleModeImageDefault] : (imageSingleMode ? [imageSingleMode] : ['https://wappingstoragedev.blob.core.windows.net/wapping/appresources/ic_image_blue.png']))\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\"\r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\"\r\n [numVisible]=\"2\"\r\n [showItemNavigators]=\"false\"\r\n [showThumbnails]=\"false\" [showIndicators]=\"false\">\r\n <ng-template pTemplate=\"item\" let-image>\r\n <div *ngIf=\"(viewSingleMode == false && (imageSingleMode != null || undefined)) ||\r\n (viewSingleMode == false && onlyCroppedImageSelected != null)\" class=\"w-image-file-uploader-delete-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (click)=\"removeImageSingleMode($event, onlyImageSelected)\"></w-button>\r\n </div>\r\n <div class=\"flex flex-wrap align-content-center justify-content-center\" [ngClass]=\"{'w-image-file-uploader-field-img-container': activeFieldVersion}\" style=\"object-fit: contain;\" [ngStyle]=\"{'height': customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"image\" style=\"max-width:100%;\r\n max-height:100%;\r\n height: auto;\r\n width:auto;\" />\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n </div>\r\n <div *ngIf=\"viewSingleMode == false; else viewSingleModeMessage\" (click)=\"openSingleImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-row justify-content-center align-items-center\" style=\"cursor: pointer; gap: 6px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height' : (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined)}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-2\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n </div>\r\n <ng-template #viewSingleModeMessage>\r\n <div *ngIf=\"imageSingleMode == null || undefined\" class=\"textSoftColor flex justify-content-center align-items-center w-image-file-uploader-container-height\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</p-fileUpload>\r\n<ng-template #withCarousel>\r\n <p-fileUpload *ngIf=\"imageUploadConfig\" #fileUpload class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false,\r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined)}\"\r\n name=\"mediaImages[]\"\r\n [accept]=\"imageUploadConfig.acceptImageTypes\"\r\n mode=\"advanced\"\r\n [customUpload]=\"true\"\r\n (onSelect)=\"onCustomUploadMultiMode($event)\"\r\n (uploadHandler)=\"onCustomizeUploadFunctionMultiMode($event)\"\r\n [uploadLabel]=\"imageUploadConfig.uploadButtonLabel ?? ''\"\r\n [chooseLabel]=\"imageUploadConfig.chooseButtonLabel ?? ''\"\r\n [cancelLabel]=\"imageUploadConfig.cancelButtonLabel ?? ''\"\r\n [showUploadButton]=\"activeImageUpload\"\r\n [showCancelButton]=\"activeImageUpload\"\r\n [auto]=\"imageUploadConfig.allowAuto\"\r\n [multiple]=\"true\"\r\n [maxFileSize]=\"imageUploadConfig.maxImageSize\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' {0} bytes.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n [chooseStyleClass]=\"'p-button-icon p-button-icon-right'\">\r\n <ng-template let-file let-i=\"index\" pTemplate='file'>\r\n <div *ngIf=\"activeImageUpload && cropperImages.length > 0\" class=\"p-fileupload-row\">\r\n <div><img [src]=\"cropperImages[i]?.fileBase64\" width=\"50\"/></div>\r\n <div class=\"p-fileupload-filename\">{{file.name}}</div>\r\n <div> <w-button icon=\"pi pi-times\" (onClick)=\"onDeleteFileMultiMode($event, file, fileUpload)\"></w-button> </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <p-progressBar *ngIf=\"isUploadingMultiMode\" class=\"p-element ng-star-inserted\" [mode]=\"'indeterminate'\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuenow=\"0\" aria-valuemax=\"100\" data-pc-name=\"progressbar\" data-pc-section=\"root\" class=\"p-progressbar p-component p-progressbar-determinate\">\r\n <div class=\"p-progressbar-value p-progressbar-value-animate ng-star-inserted\" style=\"display: flex; width: 0%;\" data-pc-section=\"value\"></div>\r\n </div>\r\n </p-progressBar>\r\n <div *ngIf=\"imagesAlreadyUploaded.length > 0\" style=\"flex-grow: 1;\">\r\n <p-galleria\r\n [ngClass]=\"getGalleryClass()\"\r\n [value]=\"imagesAlreadyUploaded\"\r\n [(activeIndex)]=\"activeIndexGallery\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\"\r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\"\r\n [numVisible]=\"3\"\r\n [showItemNavigators]=\"true\"\r\n [showThumbnails]=\"false\">\r\n <ng-template pTemplate=\"item\" let-image>\r\n <div *ngIf=\"viewMultiMode == false\" class=\"w-image-file-uploader-delete-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (onClick)=\"confirmDeleteImageMultiMode($event, image)\" [loading]=\"isDeletingMultiMode\"></w-button>\r\n </div>\r\n <div class=\"flex flex-wrap align-content-center justify-content-center\" [ngClass]=\"{'w-image-file-uploader-field-img-container': activeFieldVersion}\" style=\"object-fit: contain;\" [ngStyle]=\"{'height': customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"readProperty(image, imageUploadConfig.imagePropertyNames[0]) ?? image.fileBase64\" style=\"max-width:100%;\r\n max-height:100%;\r\n height: auto;\r\n width:auto;\" />\r\n </div>\r\n <div class=\"w-image-file-uploader-move-buttons flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <div *ngIf=\"viewMultiMode == false && activePositionProperty == true\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-file-uploader-hide-move-button' : findIndex(image) == 0 || disableMoveButtons}\" (click)=\"moveImageToLeft(image)\">\r\n <w-icons name=\"doubleArrowLeft\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\" [color]=\"'white'\"></w-icons>\r\n </div>\r\n\r\n <div *ngIf=\"isDeletingMultiMode == false; else indexLoading\" class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\">\r\n {{ findIndex(image) + 1 }} / {{ imagesAlreadyUploaded.length }}\r\n </div>\r\n <ng-template #indexLoading>\r\n <div class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\"> - / - </div>\r\n </ng-template>\r\n\r\n <div *ngIf=\"viewMultiMode == false && activePositionProperty == true\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-file-uploader-hide-move-button' : (findIndex(image) == imagesAlreadyUploaded.length-1) || disableMoveButtons}\" (click)=\"moveImageToRight(image)\">\r\n <w-icons name=\"doubleArrowRight\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\" [color]=\"'white'\"></w-icons>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n </div>\r\n <div *ngIf=\"viewMultiMode == false; else viewMultiModeMessage\" (click)=\"openImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-row justify-content-center align-items-center\"\r\n style=\"cursor: pointer; gap: 6px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height' : (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined)}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-2\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n </div>\r\n <ng-template #viewMultiModeMessage>\r\n <div *ngIf=\"imagesAlreadyUploaded.length==0\" class=\"textSoftColor flex justify-content-center align-items-center w-image-file-uploader-container-height\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </p-fileUpload>\r\n</ng-template>\r\n\r\n<p-confirmPopup></p-confirmPopup>\r\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EmbedConfig } from '../../shared/models/embed-config.model';\r\nimport { Embed, IReportEmbedConfiguration, Report, models, service } from 'powerbi-client';\r\nimport { PowerBIReportEmbedComponent } from 'powerbi-client-angular';\r\n\r\n@Component({\r\n selector: 'w-powerbi-report',\r\n templateUrl: './w-powerbi-report.component.html',\r\n styleUrls: ['./w-powerbi-report.component.css']\r\n})\r\nexport class WPowerbiReportComponent implements OnInit {\r\n\r\n @Input('embedConfig') embedConfig!: EmbedConfig;\r\n @Input('reportTitle') reportTitle!: string;\r\n @Input('hasReportFilters') hasReportFilters: boolean = false;\r\n @Input('parameterReportFilters') parameterReportFilters!: string;\r\n @Input('showReportFilters') showReportFilters: boolean = false;\r\n @Input('filterPanelPosition') filterPanelPosition: string = \"bottom\";\r\n @Input('showPageNavigation') showPageNavigation: boolean = false;\r\n @Input('showPrintButton') showPrintButton: boolean = false;\r\n @Input('showFullScreenButton') showFullScreenButton: boolean = false;\r\n @Input('showVisualHeaders') showVisualHeaders: boolean = true;\r\n @Input('showRefreshButton') showRefreshButton: boolean = false;\r\n @Input('height') height: string = '810px';\r\n @Input('filters') filters!: models.IFilter[];\r\n @Input('isEmbedTokenType') isEmbedTokenType: boolean = false;\r\n // @Input('zoomRatio') zoomRatio: number = 0.00175;\r\n\r\n @Output('refreshNotAllowed') refreshNotAllowed = new EventEmitter<boolean>();\r\n\r\n powerbiReportWidth!: number;\r\n private _zoom!: number;\r\n\r\n @Input() set zoom(value: number) {\r\n this._zoom = value;\r\n this.setReportZoom(this._zoom);\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n reportClass = 'report-container';\r\n\r\n reportConfig: IReportEmbedConfiguration = {\r\n type: 'report',\r\n embedUrl: undefined,\r\n accessToken: undefined,\r\n filters: undefined,\r\n settings: {\r\n layoutType: models.LayoutType.Custom,\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n\r\n eventHandlersMap = new Map([\r\n ['loaded', () => {\r\n const report = this.reportObj.getReport();\r\n report.setComponentTitle('Embedded report');\r\n if (this.filters) {\r\n this.updateFilters(this.filters);\r\n } \r\n },\r\n ],\r\n ['rendered', () => {\r\n }],\r\n ['error', (event?: service.ICustomEvent<any>) => {\r\n if (event) {\r\n console.error(event.detail);\r\n }\r\n },\r\n ],\r\n ['visualClicked', () => { }],\r\n ['pageChanged', (event) => { }],\r\n ]) as Map<string, (event?: service.ICustomEvent<any>, embeddedEntity?: Embed) => void | null>;\r\n\r\n @ViewChild(PowerBIReportEmbedComponent) reportObj!: PowerBIReportEmbedComponent;\r\n\r\n // @HostListener('window:resize', ['$event'])\r\n // onResize(event: any) {\r\n // this.getReportDivWidth();\r\n // }\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.embedReport();\r\n this.elementRef.nativeElement.style.setProperty(\"--height\", this.height)\r\n }\r\n\r\n // getReportDivWidth() {\r\n // this.powerbiReportWidth = this.elementRef.nativeElement.querySelector('#powerbiContainer').offsetWidth;\r\n // this.setReportZoom(this.powerbiReportWidth * this.zoomRatio);\r\n // }\r\n\r\n async embedReport(): Promise<void> {\r\n try {\r\n this.reportConfig = {\r\n ...this.reportConfig,\r\n id: this.embedConfig!.id,\r\n embedUrl: this.embedConfig!.embedUrl,\r\n tokenType: this.isEmbedTokenType ? models.TokenType.Embed : models.TokenType.Aad,\r\n accessToken: this.embedConfig!.embedToken.token,\r\n filters: this.parameterReportFilters ? [JSON.parse(this.parameterReportFilters)] : undefined,\r\n settings: {\r\n panes: {\r\n filters: {\r\n visible: this.showReportFilters\r\n },\r\n pageNavigation: {\r\n visible: this.showPageNavigation\r\n },\r\n },\r\n visualSettings: {\r\n visualHeaders: [\r\n {\r\n settings: {\r\n visible: this.showVisualHeaders\r\n }\r\n }\r\n ]\r\n },\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n } catch (error: any) {\r\n console.log(`Failed to fetch config for report. Status: ${error.status} ${error.statusText}`);\r\n return;\r\n }\r\n }\r\n\r\n async refresh() {\r\n const report: Report = this.reportObj.getReport();\r\n try {\r\n await report.refresh();\r\n } catch (errors: any) {\r\n console.log(errors);\r\n if (errors.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n }\r\n }\r\n\r\n async updateFilters(filters: models.IFilter[]) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.removeFilters();\r\n await report.updateFilters(models.FiltersOperations.Add, filters);\r\n } catch (error: any) {\r\n console.error(error);\r\n if (error.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n return;\r\n }\r\n }\r\n\r\n async setReportZoom(zoom: number) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.setZoom(zoom);\r\n } catch (error) {\r\n console.log(\"Error setting report zoom: \" + error)\r\n }\r\n }\r\n\r\n print() {\r\n const report: Report = this.reportObj.getReport();\r\n report.print();\r\n }\r\n\r\n enterFullScreen() {\r\n const report: Report = this.reportObj.getReport();\r\n report.fullscreen();\r\n }\r\n\r\n onRefreshNotAllowed() {\r\n this.refreshNotAllowed.emit(true);\r\n }\r\n}\r\n","<div *ngIf=\"reportTitle || showPrintButton || showFullScreenButton\" class=\"flex justify-content-between flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <div class=\"text-right\">\r\n <p-button *ngIf=\"showRefreshButton\" icon=\"pi pi-refresh\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"refresh()\">\r\n </p-button>\r\n <p-button *ngIf=\"showPrintButton\" icon=\"pi pi-print\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"print()\">\r\n </p-button>\r\n <p-button *ngIf=\"showFullScreenButton\" icon=\"pi pi-arrows-alt\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"enterFullScreen()\">\r\n </p-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'right'\" class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-right\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'left'\" class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-left\"></ng-content>\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'bottom'\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-bottom\"></ng-content>\r\n</div>\r\n\r\n<ng-template #powerbiReport>\r\n <div id=\"powerbiContainer\">\r\n <powerbi-report [embedConfig]=\"reportConfig\" \r\n [cssClassName]=\"reportClass\" \r\n [eventHandlers]=\"eventHandlersMap\">\r\n </powerbi-report>\r\n </div>\r\n</ng-template>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-sidebar',\r\n templateUrl: './w-sidebar.component.html',\r\n styleUrls: ['./w-sidebar.component.scss']\r\n})\r\nexport class WSidebarComponent implements OnInit {\r\n @Input('headerTitle') headerTitle!: string;\r\n @Input('showCloseIcon') showCloseIcon: boolean = false; \r\n @Input('activeGrid') activeGrid: boolean = false;\r\n @Input('closeOnOverlay') closeOnOverlay: boolean = false;\r\n @Input('closeOnEscape') closeOnEscape: boolean = true;\r\n @Input('styleClass') styleClass: string = \"w-full md:w-4 lg:w-4\";\r\n @Input('size') size: string = \"medium\";\r\n @Input('icon') icon!: string ;\r\n @Input('iconWidth') iconWidth: number = 40; \r\n @Input('iconHeight') iconHeight: number = 40; \r\n\r\n iconType: typeof IconType = IconType;\r\n \r\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _visible: boolean = false;\r\n @Input()\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n set visible(value: boolean) {\r\n if (value !== this._visible) {\r\n this._visible = value;\r\n this.visibleChange.emit(this._visible);\r\n }\r\n }\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n if(this.size == 'big') {\r\n this.styleClass = this.styleClass + \" w-full md:w-6 lg:w-6\"\r\n }\r\n }\r\n\r\n onClose(){\r\n this.visible = false;\r\n }\r\n\r\n getIconType(){\r\n if(this.icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else if(this.isURL(this.icon)){\r\n return IconType.urlIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n\r\n private isURL(url: string) {\r\n const patronURL = /^(ftp|http|https):\\/\\/[^ \"]+$/;\r\n return patronURL.test(url);\r\n }\r\n}\r\n","<p-sidebar [(visible)]=\"visible\" position=\"right\" [showCloseIcon]=\"showCloseIcon\" [modal]=\"true\" [blockScroll]=\"true\" [dismissible]=\"closeOnOverlay\" [closeOnEscape]=\"closeOnEscape\" [styleClass]=\"styleClass\" class=\"wapp-sidebar\">\r\n <ng-template pTemplate=\"header\">\r\n <span *ngIf=\"icon && getIconType() == iconType.pIcon\" class=\"w-sidebar-icon icon-large-size textMainColor\" [ngClass]=\"icon\"></span>\r\n <w-icons *ngIf=\"icon && getIconType() == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"icon\" color=\"var(--text-color)\" [width]=\"24\" [height]=\"24\"></w-icons>\r\n <div *ngIf=\"icon && getIconType() == iconType.urlIcon\" class=\"flex align-content-start flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center w-sidebar-img-container\">\r\n <span class=\"w-sidebar-span-img-container w-sidebar-icon flex align-items-center justify-content-center\" [ngStyle]=\"{'width.px': iconWidth, 'height.px': iconHeight}\">\r\n <img class=\"w-sidebar-img-responsive\" [src]=\"icon\">\r\n </span>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </div>\r\n </div>\r\n \r\n <span *ngIf=\"icon == null || getIconType() != iconType.urlIcon\" class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"content\">\r\n <div [ngClass]=\"{'w-sidebar-content grid' : activeGrid}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"footer\"></ng-template>\r\n</p-sidebar>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-buttons-footer',\r\n templateUrl: './w-buttons-footer.component.html',\r\n styleUrls: ['./w-buttons-footer.component.scss']\r\n})\r\nexport class WButtonsFooterComponent {\r\n\r\n}\r\n","<div class=\"flex flex-row-reverse flex-wrap right-0 bottom-0 fixed wapp-button-footer\">\r\n <ng-content select=\".wapp-buttons-footer\"></ng-content>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, MessageService, TreeDragDropService, TreeNode } from 'primeng/api';\r\nimport { TreeTable } from 'primeng/treetable';\r\nimport { ActionButtonResponse, WTreeTable } from '../../shared/models/w-tree-table.model';\r\nimport { TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-tree-table',\r\n templateUrl: './w-tree-table.component.html',\r\n styleUrls: ['./w-tree-table.component.scss'],\r\n providers: [TreeDragDropService, MessageService, ConfirmationService]\r\n})\r\nexport class WTreeTableComponent implements OnInit, OnChanges {\r\n\r\n loadingElements: boolean = true;\r\n collapsedElementTree: boolean = true;\r\n columns: any;\r\n openSidebar: boolean = false;\r\n elementInfo!: any;\r\n tableSkeletons: any = [{name: ''}, {name: ''}, {name: ''}, {name: ''}];\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n } \r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n private _elements: any;\r\n \r\n @Input('elements') set elements(value: any) {\r\n this._elements = value;\r\n };\r\n get elements() {\r\n return this._elements;\r\n }\r\n @Input('rowsPerPage') rowsPerPage: number = 10;\r\n @Input('loading') loading: boolean = true;\r\n @Input('wappTreeTableObject') wappTreeTableObject!: WTreeTable;\r\n @Input() getChildFunction!: (element: any) => any[] | null;\r\n\r\n @Output('onActionButtonClick') onActionButtonClick = new EventEmitter<ActionButtonResponse>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any>();\r\n @Output('onCantDeleteElementWarn') onCantDeleteElementWarn = new EventEmitter<boolean>();\r\n \r\n @ViewChild('treeTable') treeTable!: TreeTable;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService \r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initComponent();\r\n }\r\n\r\n initComponent() {\r\n this.columns = this.wappTreeTableObject.columns;\r\n }\r\n\r\n filterGlobal(table: TreeTable, event: any) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains')\r\n }\r\n\r\n actionButtonClicked(id: number, element: any) {\r\n this.onActionButtonClick.emit({id: id, element: element})\r\n }\r\n\r\n confirmDeleteSelected(event: any, data: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTreeTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTreeTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteNode(data);\r\n }\r\n });\r\n }\r\n\r\n deleteNode(node: any) {\r\n const children = this.getChildFunction(node);\r\n if (!children || children.length === 0) {\r\n this.onDeleteElementSelect.emit(node);\r\n } else {\r\n this.onCantDeleteElementWarn.emit(true);\r\n }\r\n }\r\n \r\n\r\n updateShowingTableRows() {\r\n this.elements = [...this.elements];\r\n }\r\n\r\n private expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n if (node.children) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n }\r\n }\r\n\r\n private findTreeNode(listNode: TreeNode[], nodeId: number) {\r\n for (let node of listNode) {\r\n if (node.data.productCategoryId == nodeId) {\r\n return node;\r\n }\r\n\r\n if (node.children) {\r\n let newNodeFound: any = this.findTreeNode(node.children, nodeId);\r\n if (newNodeFound) {\r\n return newNodeFound;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignFlexClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'flex justify-content-end';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'flex justify-content-start';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'flex justify-content-center';\r\n return 'justify-content-start'\r\n }\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n \r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean){\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n}\r\n","<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\r\n <p-treeTable *ngIf=\"!loading && elements; else loadingTable\"\r\n #treeTable [value]=\"elements\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width': wappTreeTableObject.tableMinWidth!}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\" \r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n styleClass=\"p-treetable-striped\">\r\n\r\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.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 (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputNumber>\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns; index as i\"\r\n class=\"'{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\"\r\n [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'flex justify-content-start'\" >\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTreeTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <img *ngIf=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\"\r\n [src]=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\"\r\n class=\"element-image-width\"/>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'justify-content-start'\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) | wappPercentage }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) | wappCurrency }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <w-badge [label]=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\" [color]=\"'info'\"></w-badge>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(rowData, wappTreeTableObject.columns[i].field))\"></i>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.d }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.D }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.g }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.G }}\r\n </div>\r\n </div>\r\n </td>\r\n </ng-template>\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" type=\"table\" [buttonClass]=\"'w-table-button-add '+ button.styleClass!\"></w-button>\r\n </span>\r\n <w-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n\r\n <ng-template #loadingTable>\r\n <p-treeTable\r\n #treeTable [value]=\"tableSkeletons\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width':'50rem'}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n styleClass=\"p-treetable-striped\">\r\n\r\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.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 (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputNumber>\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns; index as i\"\r\n class=\"{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'flex justify-content-start'\">\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n <td *ngFor=\"let col of columns; let i = index\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <p-skeleton></p-skeleton>\r\n </td>\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [buttonClass]=\"'w-table-button-add ' + button.styleClass!\"></w-button>\r\n </span>\r\n <w-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\"type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n </ng-template>\r\n</div>\r\n\r\n<p-confirmPopup></p-confirmPopup>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-grid',\r\n templateUrl: './w-body-grid.component.html',\r\n styleUrls: ['./w-body-grid.component.scss']\r\n})\r\nexport class WBodyGridComponent {\r\n\r\n}\r\n","<div class=\"w-body-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-toggle',\r\n templateUrl: './w-edit-toggle.component.html',\r\n styleUrls: ['./w-edit-toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditToggleComponent {\r\n @Input('label') label: string = '';\r\n @Input('helpDescription') helpDescription: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string; \r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('toggleState')\r\n toggleState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n \r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n \r\n onInput(obj: any){\r\n this.value = obj;\r\n this.toggleState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","\r\n<div *ngIf=\"formControl; else noNgControl\" class=\"align-content-start\" \r\n [ngClass]=\"{'w-edit-toggle-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-toggle-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n\r\n <w-input-label [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n\r\n <p-inputSwitch id=\"toggle\"\r\n [ngClass]=\"{'w-edit-toggle-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small': getSize(sizeType.small) == size}\"\r\n class=\"flex align-items-center toggle-container\"\r\n [disabled]=\"isDisabled\"\r\n [formControl]=\"formControl\">\r\n </p-inputSwitch>\r\n</div>\r\n\r\n<ng-template #noNgControl>\r\n <div class=\"align-content-start\" \r\n [ngClass]=\"{'w-edit-toggle-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-toggle-medium-heigth': hasAlign && getSize(sizeType.medium) == size }\">\r\n <w-input-label [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-inputSwitch id=\"toggle\"\r\n [ngClass]=\"{'w-edit-toggle-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small': getSize(sizeType.small) == size}\"\r\n class=\"flex align-items-center toggle-container\"\r\n (ngModelChange)=\"onInput($event)\"\r\n [disabled]=\"isDisabled\"\r\n [(ngModel)]=\"value\">\r\n </p-inputSwitch>\r\n </div>\r\n</ng-template>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-grid',\r\n templateUrl: './w-panel-grid.component.html',\r\n styleUrls: ['./w-panel-grid.component.scss']\r\n})\r\nexport class WPanelGridComponent {\r\n\r\n}\r\n","<div class=\"w-panel-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-autocomplete-search',\r\n templateUrl: './w-autocomplete-search.component.html',\r\n styleUrls: ['./w-autocomplete-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAutocompleteSearchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WAutocompleteSearchComponent {\r\n @Input('label') label: string = \"Default Label\";\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('isDisabled') isDisabled: boolean = false;\r\n\r\n @Input('size') size: string = \"medium\";\r\n\r\n @Input('items') items: any[] = [\r\n {\"name\": \"Afghanistan\", \"code\": \"AF\"},\r\n {\"name\": \"México\", \"code\": \"MX\"},\r\n {\"name\": \"Turquía\", \"code\": \"TQ\"},\r\n {\"name\": \"Estados unidos\", \"code\": \"EU\"},\r\n ];\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n \r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n \r\n search(event: any) {\r\n\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n\r\n for(let i=0; i < (this.items as any[]).length; i++)\r\n {\r\n let item = (this.items as any[])[i];\r\n if(item.name.toLowerCase().indexOf(query.toLowerCase()) == 0)\r\n {\r\n filtered.push(item);\r\n }\r\n }\r\n this.suggestions = filtered;\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\">\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container-medium w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n [(ngModel)]=\"value\" \r\n (input)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-checkbox',\r\n templateUrl: './w-edit-checkbox.component.html',\r\n styleUrls: ['./w-edit-checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCheckboxComponent {\r\n @Input('label') label: string = '';\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('helpDescription') helpDescription: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('layout') layout: string = \"horizontal\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('checkboxState')\r\n checkboxState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onInput(obj: any){\r\n this.value = obj;\r\n this.checkboxState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-checkbox-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n <p-checkbox\r\n [binary]=\"true\" \r\n [ngClass]=\"{'w-edit-checkbox-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n [formControl]=\"formControl\" id=\"w-checkbox\">\r\n <ng-template pTemplate=\"icon\">\r\n <w-icons [name]=\"'checkSmallAlt'\"></w-icons>\r\n </ng-template>\r\n </p-checkbox>\r\n\r\n <w-input-label *ngIf=\"showLabel\" class=\"w-edit-checkbox-small-label\" [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-checkbox-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [ngClass]=\"{'w-edit-checkbox-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n (ngModelChange)=\"onInput($event)\"\r\n [(ngModel)]=\"value\" id=\"w-checkbox\">\r\n <ng-template pTemplate=\"icon\">\r\n <w-icons [name]=\"'checkSmallAlt'\"></w-icons>\r\n </ng-template>\r\n </p-checkbox>\r\n <w-input-label *ngIf=\"showLabel\" class=\"w-edit-checkbox-small-label\" [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n </div>\r\n</ng-template>\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { WAddress } from '../../shared/models/w-address.model';\r\nimport { WAddressMaps } from '../../shared/models/address-maps.model';\r\n\r\n@Component({\r\n selector: 'w-maps',\r\n templateUrl: './w-maps.component.html',\r\n styleUrls: ['./w-maps.component.scss'],\r\n})\r\nexport class WMapsComponent implements OnInit, AfterViewInit{\r\n @ViewChild('mapSearchField') searchField!: ElementRef;\r\n @ViewChild('divMap') divMap!: ElementRef;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('tooltip') tooltip!: string; \r\n @Input('isEdit') isEdit: boolean = false;\r\n @Input('mapHeight') mapHeight: number = 30;\r\n @Input('componentRestrictions') componentRestrictions: any;\r\n @Input('initialCoords') initialCoords: any;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('wAddress') wAddress!: string | WAddress;\r\n\r\n @Output('addressResponse') addressResponse = new EventEmitter<WAddressMaps>();\r\n\r\n map!: google.maps.Map\r\n variableMap!: google.maps.Map;\r\n marker!: google.maps.Marker;\r\n service!: google.maps.places.PlacesService;\r\n formMapas!: FormGroup;\r\n addressFinal: WAddressMaps = {} as WAddressMaps;\r\n readyAddress: boolean = false;\r\n viewAddress!: string;\r\n formatedAddress!: string;\r\n textareaAddress!: any;\r\n\r\n constructor(private render: Renderer2,private cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n if(this.componentRestrictions.country.length==0)\r\n this.componentRestrictions.country = ['ES']\r\n\r\n if(typeof this.wAddress !== \"string\"){\r\n this.viewAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n\r\n this.textareaAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n this.readyAddress = true;\r\n }\r\n }\r\n\r\n async ngAfterViewInit() {\r\n if(typeof this.wAddress !== \"string\"){\r\n this.formatedAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n\r\n this.textareaAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n this.readyAddress = true;\r\n this.cd.detectChanges();\r\n }\r\n\r\n if(this.isEdit)\r\n this.loadAutoComplete();\r\n\r\n if (this.initialCoords != undefined) {\r\n let position = {\r\n coords: {\r\n latitude: this.initialCoords.latitude,\r\n longitude: this.initialCoords.longitude,\r\n }\r\n }\r\n await this.loadMap(position)\r\n } else {\r\n let position = new google.maps.LatLng(19.0528136, -98.2071769)\r\n \r\n const opciones = {\r\n center: position,\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.variableMap = await new google.maps.Map(document.getElementById(\"variableMap\") as HTMLElement, opciones)\r\n\r\n const request = {\r\n query: this.formatedAddress,\r\n fields: [\"name\",\"geometry\"]\r\n };\r\n\r\n this.service = new google.maps.places.PlacesService(this.variableMap);\r\n this.service.findPlaceFromQuery(\r\n request, \r\n async (\r\n results: google.maps.places.PlaceResult[] | null,\r\n status: google.maps.places.PlacesServiceStatus\r\n ) => {\r\n if(status === google.maps.places.PlacesServiceStatus.OK && results) {\r\n let pos = {\r\n coords: {\r\n latitude: results[0].geometry?.location?.lat(),\r\n longitude: results[0].geometry?.location?.lng(),\r\n }\r\n }\r\n await this.loadMap(pos)\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n async loadMap(position: any) {\r\n const opciones = {\r\n center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.map = await new google.maps.Map(this.render.selectRootElement(this.divMap.nativeElement), opciones)\r\n\r\n const marker = new google.maps.Marker;\r\n marker.setMap(null);\r\n\r\n this.marker = new google.maps.Marker({\r\n position: this.map.getCenter(),\r\n });\r\n this.marker.setMap(this.map);\r\n }\r\n\r\n returnAddress(place: any) {\r\n let address_component: [] = place.address_components;\r\n address_component.forEach((field) => {\r\n this.addressFinal[field['types'][0]] = field['long_name']\r\n })\r\n this.addressFinal.latitude = place.geometry['location'].lat();\r\n this.addressFinal.longitude = place.geometry['location'].lng();\r\n this.addressFinal.streetAddress = place.formatted_address\r\n this.textareaAddress = this.cleanText( (this.addressFinal?.route ? this.addressFinal?.route+\" \": '') + (this.addressFinal?.street_number? this.addressFinal?.street_number+\" \": '') + \"\\n\\n\" +\r\n (this.addressFinal?.administrative_area_level_1? this.addressFinal?.administrative_area_level_1+\" \": '') + ( this.addressFinal?.administrative_area_level_2? this.addressFinal?.administrative_area_level_2+\" \": '' )+\r\n (this.addressFinal?.postal_code? \"(\"+this.addressFinal?.postal_code+\")\": '') + \"\\n\\n\" + (this.addressFinal?.locality? this.addressFinal?.locality+\", \": '')+(this.addressFinal?.country? this.addressFinal?.country+\" \": '') ) \r\n this.cd.detectChanges();\r\n this.addressResponse.emit(this.addressFinal);\r\n }\r\n\r\n cleanText(text: any){\r\n return text.trimStart();\r\n }\r\n\r\n private loadAutoComplete() {\r\n const autoComplete = new google.maps.places.Autocomplete(\r\n this.render.selectRootElement(this.searchField.nativeElement),\r\n {\r\n componentRestrictions: this.componentRestrictions,\r\n fields: [\"address_components\", \"geometry\", \"formatted_address\"],\r\n types: [\"address\"],\r\n }\r\n )\r\n google.maps.event.addListener(autoComplete, 'place_changed', () => {\r\n\r\n const place: any = autoComplete.getPlace();\r\n\r\n this.map.setCenter(place.geometry.location);\r\n this.marker.setMap(null);\r\n this.marker = new google.maps.Marker({\r\n position: place.geometry.location\r\n });\r\n \r\n this.marker.setMap(this.map);\r\n \r\n this.returnAddress(place);\r\n })\r\n }\r\n}\r\n","<div class=\"w-label-maps\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <div class=\"w-search-maps\">\r\n <div class=\"w-full w-label-input\" *ngIf=\"isEdit\">\r\n <div class=\"searchfield-container\">\r\n <input type=\"text\" #mapSearchField\r\n class=\"w-full w-searchfield-maps\"\r\n [(ngModel)]=\"formatedAddress\"\r\n pInputText/>\r\n </div>\r\n </div>\r\n \r\n <div class=\"w-full flex w-maps-text-container\">\r\n <div class=\"w-6 w-map\" [style]=\"'height:'+mapHeight+'rem'\" id=\"map\" #divMap></div>\r\n <span [style]=\"'height:'+mapHeight+'rem'\"\r\n class=\"w-6 w-textarea-address\">\r\n <p *ngIf=\"textareaAddress\">\r\n {{textareaAddress}}\r\n </p>\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n<div [hidden]=\"true\" id=\"variableMap\"></div>","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-radio-button',\r\n templateUrl: './w-radio-button.component.html',\r\n styleUrls: ['./w-radio-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WRadioButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WRadioButtonComponent implements OnInit, ControlValueAccessor {\r\n selectedOption: any;\r\n selectedIndex = 0;\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n @Input('radioGroupElements') radioGroupElements: any[] = [];\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Default required error description\";\r\n @Input('size') size: string = \"medium\";\r\n \r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n formControl: any;\r\n ngModelValue: any;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngOnInit(): void { }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onChangedForm(value: any){\r\n this.onChange(value);\r\n this.onTouch();\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\">\r\n <div *ngFor=\"let option of radioGroupElements\" class=\"field-checkbox\">\r\n <p-radioButton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\" \r\n [required]=\"required\" \r\n [disabled]=\"disabled\"\r\n [formControl]=\"formControl\"\r\n ngDefaultControl\r\n (onClick)=\"onChangedForm($event)\">\r\n </p-radioButton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small> \r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngFor=\"let option of radioGroupElements\" class=\"field-checkbox\">\r\n <p-radioButton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\" \r\n [(ngModel)]=\"ngModelValue\" \r\n [disabled]=\"disabled\"\r\n [value]=\"option\" \r\n ngDefaultControl\r\n (onClick)=\"onChanged()\">\r\n </p-radioButton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n</ng-template>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { MenuItem, MessageService } from 'primeng/api';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'w-wizard',\r\n templateUrl: './w-wizard.component.html',\r\n styleUrls: ['./w-wizard.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class WWizardComponent {\r\n items!: MenuItem[];\r\n private _activeIndex: number = 0;\r\n\r\n @Input() set activeIndex(value: number) {\r\n this._activeIndex = value;\r\n }\r\n\r\n get activeIndex() {\r\n return this._activeIndex;\r\n }\r\n\r\n @Input('stepsItems') stepsItems!: MenuItem[];\r\n @Input('stepsHeadings') stepsHeadings!: string[];\r\n @Input('stepsSubheadings') stepsSubheadings!: string[];\r\n @Input('nextBtnLabel') nextBtnLabel: string = \"Next\";\r\n @Input('previousBtnLabel') previousBtnLabel: string = \"Previous\";\r\n @Input('cancelBtnLabel') cancelBtnLabel: string = \"Cancel\";\r\n @Input('confirmButtonLabel') confirmButtonLabel!: string;\r\n @Input('confirmButtonIcon') confirmButtonIcon!: string;\r\n @Input('confirmButtonLoading') confirmButtonLoading: boolean = false;\r\n @Input('secondaryConfirmButtonLabel') secondaryConfirmButtonLabel!: string;\r\n @Input('secondaryConfirmButtonIcon') secondaryConfirmButtonIcon!: string;\r\n @Input('secondaryConfirmButtonLoading') secondaryConfirmButtonLoading: boolean = false;\r\n @Input('isReadOnly') isReadOnly: boolean = true;\r\n @Input('cancelCustomRoute') public cancelCustomRoute!: string;\r\n @Input('disableConfirmButton') disableConfirmButton: boolean = false;\r\n @Input('disableSecondaryConfirmButton') disableSecondaryConfirmButton: boolean = false;\r\n @Input('disableNextPageButton') disableNextPageButton: boolean = false;\r\n @Input('disablePreviousPageButton') disablePreviousPageButton: boolean = false;\r\n\r\n @Output('confirmButtonActivated') confirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('secondaryConfirmButtonActivated') secondaryConfirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('activeIndexParent') activeIndexParent = new EventEmitter<number>();\r\n\r\n constructor(\r\n public messageService: MessageService,\r\n private location: Location,\r\n private router: Router\r\n ) {}\r\n\r\n onActiveIndexChange(event:any) {\r\n this._activeIndex = event;\r\n }\r\n\r\n cancel(){\r\n if(this.cancelCustomRoute){\r\n this.router.navigate([this.cancelCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n\r\n nextPage() {\r\n this._activeIndex++;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n return;\r\n }\r\n \r\n previousPage() {\r\n this._activeIndex--;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n }\r\n \r\n confirm() {\r\n this.confirmButtonActivated.emit(true);\r\n }\r\n\r\n secondaryConfirm() {\r\n this.secondaryConfirmButtonActivated.emit(true);\r\n }\r\n}\r\n","<w-body-grid>\r\n <w-panel class=\"col-12 w-wizard-steps-panel\" [activeGrid]=\"false\">\r\n <p-steps [model]=\"stepsItems\" [activeIndex]=\"activeIndex\" (activeIndexChange)=\"onActiveIndexChange($event)\" [readonly]=\"isReadOnly\"></p-steps>\r\n </w-panel>\r\n\r\n <w-panel class=\"col-12 w-wizard-main-panel\" [activeGrid]=\"false\">\r\n \r\n <div class=\"flex flex-column align-items-center sm:align-items-start w-wizard-headings\">\r\n <span *ngIf=\"stepsHeadings && stepsHeadings[activeIndex]\" class=\"w-wizard-heading\">\r\n {{stepsHeadings[activeIndex]}}\r\n </span>\r\n <span *ngIf=\"stepsSubheadings && stepsSubheadings[activeIndex]\" class=\"w-wizard-subheading\">\r\n {{stepsSubheadings[activeIndex]}}\r\n </span>\r\n </div>\r\n\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".step-1\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".step-2\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".step-3\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".step-4\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".step-5\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".step-6\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".step-7\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".step-8\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".step-9\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".step-10\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 10\" select=\".step-11\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 11\" select=\".step-12\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 12\" select=\".step-13\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 13\" select=\".step-14\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 14\" select=\".step-15\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 15\" select=\".step-16\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 16\" select=\".step-17\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 17\" select=\".step-18\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 18\" select=\".step-19\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 19\" select=\".step-20\" class=\"w-wizard-body\"></ng-content>\r\n\r\n <div class=\"flex justify-content-between flex-wrap m-auto\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <w-button *ngIf=\"activeIndex == 0\" \r\n [icon]=\"'pi-times'\" \r\n type=\"secondary\" \r\n [label]=\"cancelBtnLabel\" \r\n (onClick)=\"cancel()\">\r\n </w-button>\r\n <w-button *ngIf=\"activeIndex != 0\" \r\n [icon]=\"'pi-arrow-left'\" \r\n type=\"secondary\" \r\n [label]=\"previousBtnLabel\" \r\n [disabled]=\"disablePreviousPageButton\"\r\n (onClick)=\"previousPage()\">\r\n </w-button>\r\n </div>\r\n <div *ngIf=\"!(stepsItems.length -1 == activeIndex); else confirmButtons\" class=\"flex align-items-center justify-content-center\">\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi-arrow-right'\" \r\n [iconPos]=\"'right'\"\r\n [label]=\"nextBtnLabel\" \r\n [disabled]=\"disableNextPageButton\"\r\n (onClick)=\"nextPage()\">\r\n </w-button>\r\n </div>\r\n <ng-template #confirmButtons >\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <w-button *ngIf=\"secondaryConfirmButtonLabel\"\r\n type=\"secondary\"\r\n class=\"w-wizard-button-gap\"\r\n [icon]=\"'pi '+secondaryConfirmButtonIcon\"\r\n [label]=\"secondaryConfirmButtonLabel\" \r\n [disabled]=\"disableSecondaryConfirmButton\"\r\n [loading]=\"secondaryConfirmButtonLoading\"\r\n (onClick)=\"secondaryConfirm()\">\r\n </w-button>\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi '+ confirmButtonIcon\"\r\n [label]=\"confirmButtonLabel\" \r\n [disabled]=\"disableConfirmButton\" \r\n [loading]=\"confirmButtonLoading\"\r\n (onClick)=\"confirm()\">\r\n </w-button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </w-panel>\r\n</w-body-grid>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TabView } from 'primeng/tabview';\r\n\r\n@Component({\r\n selector: 'w-tabview',\r\n templateUrl: './w-tabview.component.html',\r\n styleUrls: ['./w-tabview.component.scss']\r\n})\r\nexport class WTabviewComponent implements OnInit{\r\n\r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3'];\r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('requiredTabs') requiredTabs: boolean[] = [false, false, false];\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Input('type') type: string = \"regular\";\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n @ViewChild(TabView) tabView!: TabView;\r\n\r\n isScrollable: boolean = false;\r\n\r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.checkTabsOverflow();\r\n }, 0);\r\n\r\n window.addEventListener('resize', () => {\r\n this.checkTabsOverflow();\r\n });\r\n }\r\n\r\n activeIndexChange(index: any) {\r\n this.outActiveIndex.emit(index)\r\n }\r\n\r\n checkTabsOverflow(): void {\r\n if (!this.tabView) {\r\n return;\r\n }\r\n\r\n const container = this.tabView.el.nativeElement.querySelector('.p-tabview-nav');\r\n\r\n if (container) {\r\n const isOverflowing = container.scrollWidth > container.clientWidth;\r\n this.isScrollable = isOverflowing;\r\n }\r\n }\r\n\r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" [styleClass]=\"type == 'regular' ? 'w-tabview-regular' : 'w-tabview-secondary'\" (activeIndexChange)=\"activeIndexChange($event)\" [scrollable]=\"isScrollable\">\r\n <p-tabPanel *ngIf=\"headers.length > 0 \" [header]=\"headers[0]\" [disabled]=\"disabledTabs[0]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[0]\" [class]=\"'pi '+icons[0]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[0]\">{{headers[0]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[0] && !disabledTabs[0]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 1\" [header]=\"headers[1]\" [disabled]=\"disabledTabs[1]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[1]\" [class]=\"'pi '+icons[1]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[1]\">{{headers[1]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[1] && !disabledTabs[1]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 2 \" [header]=\"headers[2]\" [disabled]=\"disabledTabs[2]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[2]\" [class]=\"'pi '+icons[2]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[2]\">{{headers[2]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[2] && !disabledTabs[2]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 3\" [header]=\"headers[3]\" [disabled]=\"disabledTabs[3]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[3]\" [class]=\"'pi '+icons[3]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[3]\">{{headers[3]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[3] && !disabledTabs[3]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 4\" [header]=\"headers[4]\" [disabled]=\"disabledTabs[4]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[4]\" [class]=\"'pi '+icons[4]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[4]\">{{headers[4]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[4] && !disabledTabs[4]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 5\" [header]=\"headers[5]\" [disabled]=\"disabledTabs[5]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[5]\" [class]=\"'pi '+icons[5]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[5]\">{{headers[5]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[5] && !disabledTabs[5]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 6\" [header]=\"headers[6]\" [disabled]=\"disabledTabs[6]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[6]\" [class]=\"'pi '+icons[6]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[6]\">{{headers[6]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[6] && !disabledTabs[6]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 7\" [header]=\"headers[7]\" [disabled]=\"disabledTabs[7]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[7]\" [class]=\"'pi '+icons[7]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[7]\">{{headers[7]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[7] && !disabledTabs[7]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 8\" [header]=\"headers[8]\" [disabled]=\"disabledTabs[8]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[8]\" [class]=\"'pi '+icons[8]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[8]\">{{headers[8]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[8] && !disabledTabs[8]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 9\" [header]=\"headers[9]\" [disabled]=\"disabledTabs[9]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[9]\" [class]=\"'pi '+icons[9]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[9]\">{{headers[9]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[9] && !disabledTabs[9]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n</p-tabView>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-button-tabview',\r\n templateUrl: './w-button-tabview.component.html',\r\n styleUrls: ['./w-button-tabview.component.scss']\r\n})\r\nexport class WButtonTabviewComponent implements OnInit{\r\n \r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3']; \r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n \r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n\r\n activeIndexChange(index: any) {\r\n this.outActiveIndex.emit(index)\r\n }\r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" styleClass=\"w-button-tabview\" (activeIndexChange)=\"activeIndexChange($event)\">\r\n <p-tabPanel *ngIf=\"headers.length > 0 \" [header]=\"headers[0]\" [disabled]=\"disabledTabs[0]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[0]\" [class]=\"'pi '+icons[0]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[0]\">{{headers[0]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 1\" [header]=\"headers[1]\" [disabled]=\"disabledTabs[1]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[1]\" [class]=\"'pi '+icons[1]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[1]\">{{headers[1]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 2 \" [header]=\"headers[2]\" [disabled]=\"disabledTabs[2]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[2]\" [class]=\"'pi '+icons[2]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[2]\">{{headers[2]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 3\" [header]=\"headers[3]\" [disabled]=\"disabledTabs[3]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[3]\" [class]=\"'pi '+icons[3]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[3]\">{{headers[3]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 4\" [header]=\"headers[4]\" [disabled]=\"disabledTabs[4]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[4]\" [class]=\"'pi '+icons[4]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[4]\">{{headers[4]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 5\" [header]=\"headers[5]\" [disabled]=\"disabledTabs[5]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[5]\" [class]=\"'pi '+icons[5]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[5]\">{{headers[5]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 6\" [header]=\"headers[6]\" [disabled]=\"disabledTabs[6]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[6]\" [class]=\"'pi '+icons[6]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[6]\">{{headers[6]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 7\" [header]=\"headers[7]\" [disabled]=\"disabledTabs[7]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[7]\" [class]=\"'pi '+icons[7]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[7]\">{{headers[7]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 8\" [header]=\"headers[8]\" [disabled]=\"disabledTabs[8]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[8]\" [class]=\"'pi '+icons[8]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[8]\">{{headers[8]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 9\" [header]=\"headers[9]\" [disabled]=\"disabledTabs[9]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[9]\" [class]=\"'pi '+icons[9]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[9]\">{{headers[9]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n</p-tabView>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TreeDragDropService, TreeNode } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-tree',\r\n templateUrl: './w-tree.component.html',\r\n styleUrls: ['./w-tree.component.scss'],\r\n providers: [TreeDragDropService]\r\n})\r\nexport class WTreeComponent implements OnInit{\r\n @Input('nodes') nodes!: any;\r\n @Input('selection') selection!: any;\r\n @Input('selectionMode') selectionMode: string = \"checkbox\";\r\n @Input('activeToggleButton') activeToggleButton: boolean = false;\r\n @Input('collapsedNodes') collapsedNodes: boolean = true;\r\n @Input('collapseButtonLabel') collapseButtonLabel : string = \"Collapse\";\r\n @Input('expandButtonLabel') expandButtonLabel : string = \"Expand\";\r\n @Input('propagateSelectionDown') propagateSelectionDown: boolean = true;\r\n @Input('propagateSelectionUp') propagateSelectionUp: boolean = true;\r\n @Input('activeFilter') activeFilter: boolean = false;\r\n @Input('filterPlaceholder') filterPlaceholder!: string;\r\n @Input('filterBy') filterBy!: string; \r\n @Input('emptyMessage') emptyMessage: string = \"Empty records\";\r\n @Input('loading') loading: boolean = false; \r\n @Input('draggableNodes') draggableNodes: boolean = false;\r\n @Input('draggableScope') draggableScope!: string;\r\n @Input('droppableNodes') droppableNodes: boolean = false;\r\n @Input('droppableScope') droppableScope!: string ;\r\n @Input('scrollHeight') scrollHeight!: string;\r\n @Input('activeVirtualScroll') activeVirtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize!: number;\r\n @Input('nodeItemTemplateName') nodeItemTemplateName: string = \"nodeItemTemplateName\";\r\n \r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output('onFilter') onFilterEmit: EventEmitter<any> = new EventEmitter();\r\n @Output('onNodeDrope') onNodeDropeEmit: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n onSelectionChange(event: any){\r\n this.selectionChange.emit(event)\r\n }\r\n\r\n onFilter(event: any){\r\n this.onFilterEmit.emit(event);\r\n }\r\n\r\n onNodeDrope(event: any){\r\n this.onNodeDropeEmit.emit(event);\r\n }\r\n\r\n expandAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, true);\r\n } );\r\n this.collapsedNodes = false;\r\n }\r\n\r\n collapseAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, false);\r\n } );\r\n this.collapsedNodes = true;\r\n }\r\n\r\n private expandRecursive(node:TreeNode, isExpand:boolean){\r\n node.expanded = isExpand;\r\n if (node.children){\r\n node.children.forEach( childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n } );\r\n }\r\n }\r\n\r\n isPrimeIcon(icon: string){\r\n if(icon.includes('pi')) return true;\r\n return false;\r\n }\r\n\r\n getIcon(icon: string){\r\n return 'pi pi-fw ' + icon;\r\n }\r\n}\r\n","<div *ngIf=\"activeToggleButton\" class=\"w-tree-buttontoggle flex justify-content-end flex-wrap card-container green-container\">\r\n <div *ngIf=\"collapsedNodes else collapse\">\r\n <w-button \r\n size=\"small\" \r\n type=\"secondary\" \r\n icon=\"pi pi-plus\" \r\n [label]=\"expandButtonLabel\" \r\n (onClick)=\"expandAll()\">\r\n </w-button>\r\n </div>\r\n <ng-template #collapse>\r\n <w-button \r\n size=\"small\"\r\n type=\"secondary\"\r\n icon=\"pi pi-minus\"\r\n [label]=\"collapseButtonLabel\" \r\n (onClick)=\"collapseAll()\">\r\n </w-button>\r\n </ng-template>\r\n</div>\r\n\r\n<p-tree class=\"w-full w-tree\" #wTree\r\n [value]=\"nodes\" \r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\" \r\n [selectionMode]=\"selectionMode\" \r\n [loading]=\"loading\"\r\n [filter]=\"activeFilter\" \r\n [filterPlaceholder]=\"filterPlaceholder\" \r\n [propagateSelectionDown]=\"propagateSelectionDown\"\r\n [propagateSelectionUp]=\"propagateSelectionUp\" \r\n [emptyMessage]=\"emptyMessage\" \r\n [draggableNodes]=\"draggableNodes\" \r\n [draggableScope]=\"draggableScope\" \r\n [droppableNodes]=\"droppableNodes\" \r\n [droppableScope]=\"droppableScope\" \r\n (onNodeDrop)=\"onNodeDrope($event)\" \r\n [virtualScroll]=\"activeVirtualScroll\" \r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [scrollHeight]=\"scrollHeight\" \r\n (onFilter)=\"onFilter($event)\" \r\n styleClass=\"w-tree\">\r\n <ng-template let-node [pTemplate]=\"nodeItemTemplateName\">\r\n <div class=\"flex p-elemnt\">\r\n <span class=\"w-tree-icon flex align-items-center justify-content-center\" *ngIf=\"node.icon && isPrimeIcon(node.icon)\" [class]=\"getIcon(node.icon)\"></span>\r\n <w-icons class=\"w-tree-icon flex align-items-center\" *ngIf=\"node.icon && isPrimeIcon(node.icon) == false\" [name]=\"node.icon\" [height]=\"16\" [width]=\"18\" [color]=\"'#2e3134'\"></w-icons>\r\n <div class=\"flex align-items-center\">{{node.label}}</div>\r\n </div>\r\n </ng-template>\r\n</p-tree>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { WTimelineEventItem } from '../../shared/models/w-timeline-event-item.model';\r\nimport { ActionButtonResponse } from '../../shared/models/action-button-response.model';\r\n\r\n@Component({\r\n selector: 'w-timeline',\r\n templateUrl: './w-timeline.component.html',\r\n styleUrls: ['./w-timeline.component.scss']\r\n})\r\nexport class WTimelineComponent {\r\n\r\n @Input('events') events!: WTimelineEventItem[];\r\n @Input('header') header!: string;\r\n @Input('panel') panel: boolean = false;\r\n @Input('align') align: string = \"alternate\";\r\n @Input('reducedPanelMargin') reducedPanelMargin: boolean = false; \r\n @Input('reducedEventPanelMargin') reducedEventPanelMargin: boolean = false; \r\n\r\n @Output('buttonClick') buttonClick: EventEmitter<ActionButtonResponse> = new EventEmitter<ActionButtonResponse>(); \r\n\r\n constructor() {}\r\n\r\n onButtonClick(event: WTimelineEventItem) {\r\n if(event.button?.id) \r\n this.buttonClick.emit({id: event.button.id, element: event})\r\n }\r\n}\r\n","<div *ngIf=\"panel; else timeline\">\r\n <w-panel [title]=\"header\" [reduced]=\"reducedPanelMargin\">\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"timeline\"></ng-container>\r\n </div>\r\n </w-panel>\r\n</div>\r\n\r\n<ng-template #timeline>\r\n <p-timeline [value]=\"events\" [align]=\"align\" styleClass=\"customized-timeline\" \r\n [class.w-timeline-non-alternate]=\"align != 'alternate'\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <span *ngIf=\"event.color.includes('#'); else wappingColors\"\r\n class=\"flex w-2rem h-2rem align-items-center justify-content-center text-white border-circle z-1 shadow-1 shadow-2\"\r\n [style.backgroundColor]=\"event.color\">\r\n <i [ngClass]=\"'pi '+event.icon\"></i>\r\n </span>\r\n <ng-template #wappingColors>\r\n <span\r\n class=\"flex w-2rem h-2rem align-items-center justify-content-center text-white border-circle z-1 shadow-1 shadow-2\"\r\n [class]=\"'w-timeline-event color-'+event.color\">\r\n <i [ngClass]=\"'pi '+event.icon\" [class]=\"'w-timeline-event color-'+event.color\"></i>\r\n </span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [title]=\"event.status\" [subtitle]=\"event.date\" [reduced]=\"reducedEventPanelMargin\">\r\n <div class=\"col-12\">\r\n <img *ngIf=\"event.image\"\r\n [src]=\"event.image\"\r\n [alt]=\"event.name\" width=\"200\" class=\"shadow-2\" />\r\n <p> {{event.content}} </p>\r\n <div class=\"flex w-timeline-button\" [ngClass]=\"{'w-timeline-button-end':align == 'left', 'w-timeline-button-start':align == 'right'}\">\r\n <w-button *ngIf=\"event.button\" type=\"text\" \r\n [label]=\"event.button.label\" \r\n [icon]=\"event.button.icon!\"\r\n (onClick)=\"onButtonClick(event)\">\r\n </w-button>\r\n </div>\r\n </div>\r\n </w-panel>\r\n </ng-template>\r\n </p-timeline>\r\n</ng-template>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-text',\r\n templateUrl: './w-view-text.component.html',\r\n styleUrls: ['./w-view-text.component.scss']\r\n})\r\nexport class WViewTextComponent {\r\n @Input('label') label!: string;\r\n @Input('value') value!: any;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('layout') layout: string = 'horizontal';\r\n @Input('displayAsList') displayAsList: boolean = false; \r\n\r\n checkEmptyValue(value: any){\r\n if(value == null || value == \"\" || value == undefined){\r\n return '-'; \r\n }else{\r\n if(this.displayAsList == true){\r\n return this.transformValueToList(value); \r\n }\r\n\r\n return value; \r\n }\r\n }\r\n\r\n transformValueToList(value: any){\r\n let valueString = value;\r\n \r\n if(Array.isArray(value)){\r\n valueString = value.join(',');\r\n }\r\n \r\n const valueSplit = valueString.split(',');\r\n const formattedValueToList = valueSplit.map((val: any) => `- ${val.trim()}`);\r\n const valueAsList = formattedValueToList.join('\\n');\r\n return valueAsList; \r\n }\r\n}\r\n","<div *ngIf=\"layout == 'horizontal'; else vertical\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n </div>\r\n <div class=\"col-8 w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n</div>\r\n<ng-template #vertical>\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-timeline',\r\n templateUrl: './w-skeleton-timeline.component.html',\r\n styleUrls: ['./w-skeleton-timeline.component.css']\r\n})\r\nexport class WSkeletonTimelineComponent implements OnInit {\r\n @Input('eventsNumber') eventsNumber: number = 3;\r\n\r\n events: any[] = []\r\n\r\n ngOnInit(): void {\r\n this.events.length = this.eventsNumber;\r\n }\r\n}\r\n","<p-timeline [value]=\"events\" [align]=\"'alternate'\" styleClass=\"customized-timeline\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <p-skeleton shape=\"circle\" size=\"2rem\"></p-skeleton>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [reduced]=\"true\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"100px\"></p-skeleton>\r\n </w-panel>\r\n </ng-template>\r\n</p-timeline>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-sidebar',\r\n templateUrl: './w-skeleton-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-sidebar.component.scss']\r\n})\r\nexport class WSkeletonSidebarComponent implements OnInit {\r\n @Input('itemsNumber') items: any = 6;\r\n\r\n ngOnInit(): void {\r\n this.items = Array(this.items);\r\n }\r\n}\r\n","<div *ngFor=\"let item of items\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 body\">\r\n <p class=\"w-view-text-label-color\"> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n <div class=\"col-8 body\">\r\n <p> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-input-generic',\r\n templateUrl: './w-skeleton-input-generic.component.html',\r\n styleUrls: ['./w-skeleton-input-generic.component.css']\r\n})\r\nexport class WSkeletonInputGenericComponent {\r\n @Input('height') height: any = '32px';\r\n @Input('width') width: any = '100%';\r\n @Input('hasAlign') hasAlign: any = true;\r\n @Input('label') label: any;\r\n}\r\n","<div *ngIf=\"hasAlign\" class=\"flex align-items-center w-height-label\">\r\n <label *ngIf=\"label != undefined\" for=\"input-skeleton-generic\">\r\n <p-skeleton height=\"16px\" width=\"70px\"></p-skeleton>\r\n </label>\r\n</div>\r\n<p-skeleton id='input-skeleton-generic' [height]=\"height\" width=\"width\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-list',\r\n templateUrl: './w-skeleton-list.component.html',\r\n styleUrls: ['./w-skeleton-list.component.css']\r\n})\r\nexport class WSkeletonListComponent {\r\n\r\n @Input('headerPanel') headerPanel: boolean = true;\r\n @Input('contentReduced') contentReduced: boolean = false;\r\n \r\n}\r\n","<w-body-container>\r\n <w-header-panel *ngIf=\"headerPanel\" class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n <w-panel class=\"col-12\" [reduced]=\"contentReduced\">\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" height=\"300px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-iframe',\r\n templateUrl: './w-skeleton-iframe.component.html',\r\n styleUrls: ['./w-skeleton-iframe.component.css']\r\n})\r\nexport class WSkeletonIframeComponent {\r\n\r\n}\r\n","<p-skeleton width=\"100%\" height=\"4rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"30rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"4rem\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit',\r\n templateUrl: './w-skeleton-edit.component.html',\r\n styleUrls: ['./w-skeleton-edit.component.css']\r\n})\r\nexport class WSkeletonEditComponent {\r\n @Input('columnsNumber') columnsNumber: number = 3;\r\n columnsArray: any[] = new Array(this.columnsNumber);\r\n\r\n ngOnInit(): void{\r\n this.columnsArray.length = this.columnsNumber;\r\n }\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n <ng-container *ngFor=\"let item of columnsArray\">\r\n <w-panel *ngIf=\"columnsNumber == 1\" class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n <w-panel *ngIf=\"columnsNumber == 3\" class=\"col-4\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n <w-panel *ngIf=\"columnsNumber == 2\" class=\"col-6\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n </ng-container>\r\n <w-panel class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit-product',\r\n templateUrl: './w-skeleton-edit-product.component.html',\r\n styleUrls: ['./w-skeleton-edit-product.component.css']\r\n})\r\nexport class WSkeletonEditProductComponent {\r\n\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\" >\r\n <p-skeleton height=\"32px\" width=\"129px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n\r\n <w-panel class=\"col-12 xl:col-8\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-4\">\r\n <w-panel-grid class=\"col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel-grid>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-powerbi-report',\r\n templateUrl: './w-skeleton-powerbi-report.component.html',\r\n styleUrls: ['./w-skeleton-powerbi-report.component.css']\r\n})\r\nexport class WSkeletonPowerbiReportComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-between flex-wrap mb-3\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton width=\"15rem\" height=\"3rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n</div>\r\n<p-skeleton width=\"100%\" height=\"100vh\" styleClass=\"mb-2\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-query-builder',\r\n templateUrl: './w-skeleton-query-builder.component.html',\r\n styleUrls: ['./w-skeleton-query-builder.component.scss']\r\n})\r\nexport class WSkeletonQueryBuilderComponent {\r\n @Input('rule') rule: string = \"Rule\";\r\n @Input('ruleSet') ruleSet: string = \"Rule set\";\r\n\r\n stateOptions: any[] = [{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}];\r\n}\r\n","<w-panel-grid>\r\n <div class=\"col-12\">\r\n <div class=\"flex justify-content-between flex-wrap card-container\">\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-chevron-down\" class=\"p-button-rounded p-button-text\"></button>\r\n <w-select-button [stateOptions]=\"stateOptions\" optionLabel=\"label\" optionValue=\"value\"></w-select-button> \r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2 gap-3\">\r\n <w-button [label]=\"rule\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n <w-button [label]=\"ruleSet\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-panel-grid>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-tree',\r\n templateUrl: './w-skeleton-tree.component.html',\r\n styleUrls: ['./w-skeleton-tree.component.css']\r\n})\r\nexport class WSkeletonTreeComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 4;\r\n @Input('rowHeight') rowHeight: string = '24px';\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow-1;\r\n }\r\n}\r\n","<div class=\"border-round border-1 surface-border p-4 surface-card\">\r\n <ul class=\"m-0 p-0 list-none\">\r\n <li *ngFor=\"let row of rowsArray\">\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\" styleClass=\"mb-4\"></p-skeleton>\r\n </li>\r\n <li>\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\"></p-skeleton>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-profile-sidebar',\r\n templateUrl: './w-skeleton-profile-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-profile-sidebar.component.css']\r\n})\r\nexport class WSkeletonProfileSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton width=\"10rem\" styleClass=\"mb-3\"></p-skeleton>\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-5\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"5rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"4rem\"></p-skeleton>\r\n </div>\r\n ","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-user-profile-info-sidebar',\r\n templateUrl: './w-skeleton-user-profile-info-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-user-profile-info-sidebar.component.css']\r\n})\r\nexport class WSkeletonUserProfileInfoSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex mb-3\">\r\n <div class=\"mb-2 justify-content-center\">\r\n <div class=\"inline-block w-2rem h-8rem p-4 mx-5\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n <div class=\"inline-block w-25rem h-8rem p-4 ml-3\">\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"15rem\" styleClass=\"mb-4\"></p-skeleton>\r\n <p-skeleton width=\"10rem\"></p-skeleton>\r\n </div>\r\n <div class=\"px-5 pb-2\">\r\n <div class=\"grid\">\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n ","import { Pipe, PipeTransform } from '@angular/core';\r\n \r\n@Pipe({\r\n name: 'wappSummary'\r\n})\r\nexport class WSummaryPipe implements PipeTransform {\r\n \r\n transform(value: string, maxLength: number) {\r\n return !value || value.length < maxLength ? null : value.substring(0, maxLength) + ' ... ';\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-chip',\r\n templateUrl: './w-chip.component.html',\r\n styleUrls: ['./w-chip.component.scss']\r\n})\r\nexport class WChipComponent implements OnInit {\r\n\r\n @Input('image') image!: string;\r\n @Input('icon') icon!: string;\r\n\r\n @Input('iconColor') iconColor: string = \"#1e293b\";\r\n @Input('iconHeight') iconHeight: number = 12;\r\n @Input('iconWidth') iconWidth: number = 12;\r\n @Input('backgroundColor') backgroundColor: string = \"#e2e8f0\";\r\n @Input('labelColor') labelColor: string = \"#1e293b\";\r\n \r\n @Input('wappIcon') wappIcon!: string;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('tooltipPosition') tooltipPosition: string = 'bottom';\r\n \r\n @Output('click') click: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor)\r\n }\r\n\r\n chipClick() {\r\n this.click.emit(true);\r\n }\r\n}\r\n","<p-chip *ngIf=\"icon || image; else wappIconChip\" \r\n class=\"w-chip\"\r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (click)=\"chipClick()\">\r\n <i *ngIf=\"icon; else imageChip\" class=\"p-chip-icon\" [class]=\"'pi ' + icon\" [style]=\"'color: '+iconColor\"></i>\r\n <ng-template #imageChip> <img [src]=\"image\"> </ng-template>\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n</p-chip>\r\n\r\n<ng-template #wappIconChip>\r\n <p-chip class=\"w-chip\"\r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (click)=\"chipClick()\">\r\n <w-icons *ngIf=\"wappIcon\" \r\n [name]=\"wappIcon\" \r\n [color]=\"iconColor\" \r\n [height]=\"iconHeight\" \r\n [width]=\"iconWidth\" \r\n class=\"wapp-chip-icon\">\r\n </w-icons>\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n </p-chip>\r\n</ng-template>\r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-view-boolean',\r\n templateUrl: './w-view-boolean.component.html',\r\n styleUrls: ['./w-view-boolean.component.scss']\r\n})\r\nexport class WViewBooleanComponent implements OnInit {\r\n @Input('label') label!: string;\r\n @Input('value') value!: boolean | null;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('trueIcon') trueIcon: string = \"pi pi-circle-fill\";\r\n @Input('trueIconColor') trueIconColor: string = \"var(--w-success-main-color)\";\r\n @Input('falseIcon') falseIcon: string = \"pi pi-circle-fill\"; \r\n @Input('falseIconColor') falseIconColor: string = \"var(--w-error-main-color)\"; \r\n @Input('nullIcon') nullIcon: string = \"pi pi-minus-circle\"; \r\n @Input('nullIconColor') nullIconColor: string = \"var(--w-text-500)\"; \r\n @Input('layout') layout: string = 'horizontal';\r\n\r\n iconType: typeof IconType = IconType;\r\n\r\n ngOnInit(): void {}\r\n\r\n getIconType(icon: string){\r\n if(icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n}\r\n","<div *ngIf=\"layout == 'horizontal'; else vertical\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 w-view-text-label\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n </div>\r\n <div class=\"col-8 w-view-text-value\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vertical>\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value-vertical\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #icons>\r\n <span *ngIf=\"value == true && getIconType(trueIcon) == iconType.pIcon\" [class]=\"trueIcon\" [style.color]=\"trueIconColor\"></span>\r\n <span *ngIf=\"value == false && getIconType(falseIcon) == iconType.pIcon\" [class]=\"falseIcon\" [style.color]=\"falseIconColor\"></span>\r\n <span *ngIf=\"value == null && getIconType(nullIcon) == iconType.pIcon\" [class]=\"nullIcon\" [style.color]=\"nullIconColor\"></span>\r\n <w-icons *ngIf=\"value == true && getIconType(trueIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"trueIcon\" [color]=\"trueIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n <w-icons *ngIf=\"value == false && getIconType(falseIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"falseIcon\" [color]=\"falseIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n <w-icons *ngIf=\"value == null && getIconType(nullIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"nullIcon\" [color]=\"nullIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-form',\r\n templateUrl: './w-skeleton-form.component.html',\r\n styleUrls: ['./w-skeleton-form.component.css']\r\n})\r\nexport class WSkeletonFormComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 3;\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow;\r\n }\r\n}\r\n","<w-panel-grid>\r\n <w-skeleton-input-generic *ngFor=\"let row of rowsArray\" class=\"col-12\" [label]=\"'Label'\"></w-skeleton-input-generic>\r\n</w-panel-grid>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-generic',\r\n templateUrl: './w-skeleton-generic.component.html',\r\n styleUrls: ['./w-skeleton-generic.component.css']\r\n})\r\nexport class WSkeletonGenericComponent {\r\n @Input('height') height: string = \"300px\"; \r\n}\r\n","<w-panel-grid>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" [height]=\"height\"></w-skeleton-input-generic>\r\n</w-panel-grid>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-section-gap-divider',\r\n templateUrl: './w-panel-section-gap-divider.component.html',\r\n styleUrls: ['./w-panel-section-gap-divider.component.scss']\r\n})\r\nexport class WPanelSectionGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-panel-section-gap-divider-no-grid': inGrid == false, 'w-panel-section-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-input-vertical-gap-divider',\r\n templateUrl: './w-input-vertical-gap-divider.component.html',\r\n styleUrls: ['./w-input-vertical-gap-divider.component.scss']\r\n})\r\nexport class WInputVerticalGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-input-vertical-gap-divider-no-grid': inGrid == false, 'w-input-vertical-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-badge',\r\n templateUrl: './w-view-badge.component.html',\r\n styleUrls: ['./w-view-badge.component.scss']\r\n})\r\nexport class WViewBadgeComponent {\r\n @Input('label') label!: string; \r\n @Input('tooltip') tooltip!: string; \r\n @Input('badgeLabel') badgeLabel!: string; \r\n @Input('badgeColor') badgeColor: string = \"default\";\r\n @Input('badgeTooltip') badgeTooltip!: string;\r\n @Input('badgeMaxWidthOverflow') badgeMaxWidthOverflow!: string;\r\n}\r\n","<div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label>\r\n <div *ngIf=\"(label != undefined) || (label != '')\" class=\"flex w-view-badge-space\"></div>\r\n <div class=\"flex w-view-badge-badge align-items-center\">\r\n <w-badge [label]=\"badgeLabel\" [color]=\"badgeColor\" [tooltip]=\"badgeTooltip\" [maxWidthOverflow]=\"badgeMaxWidthOverflow\"></w-badge>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar-month',\r\n templateUrl: './w-edit-calendar-month.component.html',\r\n styleUrls: ['./w-edit-calendar-month.component.scss'], \r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarMonthComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCalendarMonthComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string; \r\n @Input('showLabel') showLabel: boolean = true; \r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('minDate') minDate!: Date;\r\n @Input('maxDate') maxDate!: Date;\r\n @Input('showIcon') showIcon: boolean = true;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter(); \r\n\r\n ngModelValue: any;\r\n\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n constructor(){} \r\n \r\n ngOnInit(): void {}\r\n\r\n writeValue(value: any) {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n}\r\n","<div class=\"w-edit-calendar-month-styles p-fluid field\">\r\n <w-input-label *ngIf=\"showLabel\" [label]=\"label\" [tooltip]=\"tooltip\" [required]=\"required\" [disabled]=\"disabled\"></w-input-label>\r\n <div *ngIf=\"formControl; else noNgControl\">\r\n <p-calendar class=\"w-edit-calendar-month\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched}\"\r\n [formControl]=\"formControl\" \r\n [required]=\"required\" \r\n [placeholder]=\"placeholder\"\r\n (onSelect)=\"onValue($event)\" \r\n dateFormat=\"dd/MM\" \r\n [dataType]=\"dataType\" \r\n [minDate]=\"minDate\" \r\n [maxDate]=\"maxDate\" \r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\" \r\n appendTo=\"body\">\r\n </p-calendar>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n </div>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-calendar-month-styles p-fluid field\">\r\n <p-calendar class=\"w-edit-calendar-month\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onDateChanged()\" \r\n [placeholder]=\"placeholder\"\r\n dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\" \r\n [minDate]=\"minDate\" \r\n [maxDate]=\"maxDate\" \r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\" \r\n appendTo=\"body\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ParameterSelector } from '../../shared/models/parameter-selector.model';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-parameter-selector',\r\n templateUrl: './w-parameter-selector.component.html',\r\n styleUrls: ['./w-parameter-selector.component.scss']\r\n})\r\nexport class WParameterSelectorComponent implements OnInit {\r\n @Input('parameters') parameters!: ParameterSelector; \r\n @Input('title') title!: string; \r\n @Input('subtitle') subtitle!: string;\r\n @Input('popupSummary') popupSummary!: string;\r\n @Input('popupDetail') popupDetail!: string;\r\n @Input('sortAlphabetically') sortAlphabetically: boolean = false;\r\n @Input('activeIndex') activeIndex!: any;\r\n @Input('multiple') multiple: boolean = false;\r\n\r\n constructor(private clipboard: Clipboard, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n if(!this.activeIndex && this.multiple) this.activeIndex = [0];\r\n if(!this.activeIndex && !this.multiple) this.activeIndex = 0;\r\n\r\n if (this.parameters && this.parameters.groups) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n return {\r\n ...param,\r\n icon: \"pi pi-copy\"\r\n };\r\n })\r\n };\r\n });\r\n \r\n if (this.sortAlphabetically == true) {\r\n this.sortParametersAlphabetically();\r\n }\r\n }\r\n }\r\n\r\n removeIndex(index:number) {\r\n this.activeIndex = this.activeIndex.filter((i:number) => i != index);\r\n }\r\n\r\n onParameterSelected(event: any) {\r\n const clipboardCopied = this.clipboard.copy(`{${event.option.value}}`);\r\n const originalParametersMapped = this.parameters.groups; \r\n\r\n this.messageService.add({\r\n severity: 'info', \r\n summary: this.popupSummary ?? 'Texto copiado', \r\n detail: this.popupDetail ?? 'Código del parámetro copiado al portapapeles'\r\n });\r\n\r\n if (clipboardCopied) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n if (param.value == event.option.value) {\r\n return { ...param, icon: \"pi pi-check\" };\r\n }\r\n return param;\r\n })\r\n };\r\n });\r\n\r\n setTimeout(() => {\r\n this.parameters.groups = originalParametersMapped; \r\n }, 1500);\r\n }\r\n }\r\n \r\n sortParametersAlphabetically() {\r\n this.parameters.groups.sort((a, b) => a.name.localeCompare(b.name));\r\n this.parameters.groups.forEach(group => {\r\n group.parameters.sort((a, b) => a.name.localeCompare(b.name));\r\n });\r\n }\r\n}\r\n\r\n\r\n","<w-panel-grid>\r\n <w-panel-title *ngIf=\"title\" class=\"col-12\" [title]=\"title\" [activePaddingBottom]=\"false\"></w-panel-title>\r\n <div *ngIf=\"subtitle\" class=\"col-12 subtitle2\">{{subtitle}}</div>\r\n <p-accordion class=\"col-12 w-param-selector\" \r\n [multiple]=\"multiple\" \r\n [activeIndex]=\"activeIndex\" \r\n (onOpen)=\"multiple ? activeIndex.push($event.index) : activeIndex = $event.index\"\r\n (onClose)=\"removeIndex($event.index)\">\r\n <p-accordionTab *ngFor=\"let group of parameters.groups\" [header]=\"group.name\">\r\n <p-listbox\r\n [options]=\"group.parameters\" \r\n [group]=\"false\" optionLabel=\"name\" optionValue=\"value\" optionGroupLabel=\"name\" optionGroupChildren=\"parameters\"\r\n (onClick)=\"onParameterSelected($event)\" \r\n styleClass=\"w-parameter-tags-listbox-container\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"w-parameter-tags-listbox-item flex align-items-center\">\r\n <span [class]=\"item.icon\"></span>\r\n <span>{{ item.name }}</span>\r\n </div>\r\n </ng-template>\r\n </p-listbox>\r\n </p-accordionTab>\r\n</p-accordion>\r\n</w-panel-grid>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, forwardRef } from '@angular/core';\r\nimport { ChartConfig } from '../../shared/models/w-chart-config.model';\r\nimport { UIChart } from 'primeng/chart'; \r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { Chart } from 'chart.js';\r\nChart.register(ChartDataLabels);\r\n\r\n@Component({\r\n selector: 'w-chart-bar',\r\n templateUrl: './w-chart-bar.component.html',\r\n styleUrls: ['./w-chart-bar.component.scss']\r\n})\r\nexport class WChartBarComponent implements OnInit, OnChanges{\r\n @Input('title') title!: string;\r\n private _chartConfig!: ChartConfig;\r\n @Input()\r\n set config(value: ChartConfig) {\r\n this._chartConfig = value;\r\n }\r\n\r\n get config(): ChartConfig {\r\n return this._chartConfig;\r\n }\r\n\r\n @Input('isHorizontal') isHorizontal: boolean = true; \r\n @Input('width') width!: string; \r\n @Input('height') height!: string; \r\n @Input('setAutoHeight') setAutoHeight: boolean = false; \r\n @Output('onDataSelected') onDataSelectedEvent: EventEmitter<any> = new EventEmitter(); \r\n @ViewChild('wChartBar') wChartBar!: UIChart; \r\n\r\n style: any; \r\n data: any;\r\n options: any;\r\n textColorTitle: any; \r\n textColorLegend: any; \r\n textColorAxis: any; \r\n gridColor: any; \r\n textInverseColor: any; \r\n font: any; \r\n widthBars = 14; \r\n baseHeight: number = 200; \r\n baseHeightPx: string = \"200px\";\r\n\r\n ngOnInit(): void {\r\n this.style = getComputedStyle(document.documentElement);\r\n this.textColorTitle = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorLegend = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorAxis = this.style.getPropertyValue('--w-text-main-color');\r\n this.gridColor = this.style.getPropertyValue('--w-text-softest-color');\r\n this.textInverseColor = this.style.getPropertyValue('--w-text-inverse-color'); \r\n\r\n this.font = {\r\n family: 'Segoe UI',\r\n size: 12,\r\n weight: 600,\r\n };\r\n\r\n this.data = {\r\n labels: this._chartConfig.labels, \r\n datasets: [],\r\n plugins: [ChartDataLabels]\r\n };\r\n\r\n this.fillData(); \r\n\r\n this.options = {\r\n indexAxis: this.isHorizontal ? 'y' : 'x',\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.6,\r\n layout: {\r\n padding: 12\r\n },\r\n plugins: {\r\n title: {\r\n display: true,\r\n color: this.textColorTitle, \r\n text: this.title,\r\n font: {...this.font, size: 14, weight: 700},\r\n padding: 24,\r\n },\r\n tooltips: {\r\n mode: 'index',\r\n intersect: false\r\n },\r\n legend: {\r\n padding: 24,\r\n labels: {\r\n color: this.textColorLegend,\r\n font: {...this.font, weight: 700},\r\n padding: 32\r\n }, \r\n position: 'bottom'\r\n },\r\n datalabels: {\r\n display: this._chartConfig.showDataLabels,\r\n color: this.textInverseColor,\r\n anchor: 'end', \r\n align: 'start', \r\n textStrokeColor: 'rgba(31, 34, 36, 0.6)',\r\n textStrokeWidth: 2, \r\n font: {\r\n size: 10\r\n },\r\n formatter: function (value:any, index:any, values:any) { return value || null; }\r\n }\r\n },\r\n scales: this.fillScales()\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['config']?.previousValue !== undefined){\r\n this.data.datasets = [];\r\n this.fillData();\r\n this.wChartBar.refresh(); \r\n }\r\n\r\n if(changes['title']?.previousValue !== undefined || changes['title']?.previousValue == undefined){\r\n if(this.options){\r\n this.options.plugins!.title.text = this.title; \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n\r\n if(changes['isHorizontal']?.previousValue !== undefined){\r\n if(this.options){\r\n this.options.indexAxis = this.isHorizontal ? 'y' : 'x'; \r\n this.options.scales = {}; \r\n this.options.scales = this.fillScales(); \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n }\r\n\r\n fillScales(){\r\n return {\r\n x: {\r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n font: this.font,\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? true : false,\r\n }\r\n },\r\n y: { \r\n position: 'left', \r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n align: 'start', \r\n crossAlign: 'center', \r\n font: this.font,\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? false : true,\r\n }\r\n }\r\n }\r\n }\r\n\r\n fillData(){\r\n let lengths : any[] = [];\r\n this._chartConfig.data.forEach((element, index) => {\r\n this.data.datasets.push(\r\n {\r\n type: 'bar',\r\n label: element.legend,\r\n backgroundColor: element.color || this.style.getPropertyValue( index == 0 ? '--w-primary-800' : '--w-primary-100'),\r\n data: element.data,\r\n borderRadius: 4,\r\n barThickness: this._chartConfig.widthBars ?? this.widthBars \r\n }); \r\n lengths.push(element.data.length); \r\n });\r\n\r\n if(this.setAutoHeight == true && this.isHorizontal == true){\r\n let barHeights = ((this._chartConfig.widthBars ?? this.widthBars) * 2.5) * this.getMaxNumber(lengths);\r\n this.baseHeight = this.baseHeight + barHeights;\r\n this.baseHeightPx = this.baseHeight + 'px'; \r\n }\r\n }\r\n\r\n onDataSelected(event: any){\r\n this.onDataSelectedEvent.emit(event); \r\n }\r\n\r\n getMaxNumber(numbers: number[]): number {\r\n if (numbers.length === 0) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n return Math.max(...numbers);\r\n }\r\n}\r\n","<p-chart #wChartBar type=\"bar\" [data]=\"data\" [options]=\"options\" [width]=\"width\" [height]=\"setAutoHeight == true ? baseHeightPx : height\" (onDataSelect)=\"onDataSelected($event)\"></p-chart>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// PRIMENG\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { TreeSelectModule } from 'primeng/treeselect';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { TableModule } from 'primeng/table';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { ChartModule } from 'primeng/chart'; \r\nimport { AccordionModule } from 'primeng/accordion';\r\n//EXTERNAL\r\nimport { QueryBuilderComponent, QueryBuilderModule } from 'angular2-query-builder';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { PowerBIEmbedModule } from 'powerbi-client-angular';\r\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\n\r\n// WAPPING\r\nimport { WappComponentsComponent } from './wapp-components.component';\r\nimport { WEditInputTextComponent } from './edit/w-edit-input-text/w-edit-input-text.component';\r\nimport { WClipboardComponent } from './w-clipboard/w-clipboard.component';\r\nimport { WIconsComponent } from './icons/wapping-icons/w-icons.component';\r\nimport { WLogosComponent } from './logos/wapping-logos/w-logos.component';\r\nimport { WEditInputTextareaComponent } from './edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nimport { WEditSelectComponent } from './edit/w-edit-select/w-edit-select.component';\r\nimport { WButtonComponent } from './button/w-button/w-button.component';\r\nimport { WTableComponent } from './tables/w-table/w-table.component';\r\nimport { WTableLazyComponent } from './tables/w-table-lazy/w-table-lazy.component';\r\nimport { WContainerComponent } from './layout/w-container/w-container.component';\r\nimport { WNavbarComponent } from './layout/w-navbar/w-navbar.component';\r\nimport { WBodyComponent } from './layout/w-body/w-body.component';\r\nimport { WFooterComponent } from './layout/w-footer/w-footer.component';\r\nimport { ColorTextPipe } from './shared/pipes/color-text.pipe';\r\nimport { WEditMultiselectComponent } from './edit/w-edit-multiselect/w-edit-multiselect.component';\r\nimport { WEditTreeselectComponent } from './edit/w-edit-treeselect/w-edit-treeselect.component';\r\nimport { WPanelComponent } from './layout/w-panel/w-panel.component';\r\nimport { WBodyContainerComponent } from './layout/w-body-container/w-body-container.component';\r\nimport { WHeaderPanelComponent } from './layout/w-header-panel/w-header-panel.component';\r\nimport { WPanelTitleComponent } from './layout/w-panel-title/w-panel-title.component';\r\nimport { WEditInputNumberComponent } from './edit/w-edit-input-number/w-edit-input-number.component';\r\nimport { WInputSearchComponent } from './search/w-input-search/w-input-search.component';\r\nimport { WFilterPanelComponent } from './misc/w-filter-panel/w-filter-panel.component';\r\nimport { WListFieldComponent } from './misc/w-filter-panel/w-list-field/w-list-field.component';\r\nimport { WImageFileUploaderComponent } from './file/w-image-file-uploader/w-image-file-uploader.component';\r\nimport { WImageCropperComponent } from './file/w-image-cropper/w-image-cropper.component';\r\nimport { WPreviewImageComponent } from './file/w-preview-image/w-preview-image.component';\r\nimport { WPowerbiReportComponent } from './report/w-powerbi-report/w-powerbi-report.component';\r\nimport { WSidebarComponent } from './sidebar/w-sidebar/w-sidebar.component';\r\nimport { WButtonsFooterComponent } from './button/w-buttons-footer/w-buttons-footer.component';\r\nimport { WTreeTableComponent } from './tables/w-tree-table/w-tree-table.component';\r\nimport { WBodyGridComponent } from './layout/w-body-grid/w-body-grid.component';\r\nimport { WEditToggleComponent } from './edit/w-edit-toggle/w-edit-toggle.component';\r\nimport { WPanelGridComponent } from './layout/w-panel-grid/w-panel-grid.component';\r\nimport { WViewCardTitleTextComponent } from './view/w-view-card-title-text/w-view-card-title-text.component';\r\nimport { WAutocompleteSearchComponent } from './search/w-autocomplete-search/w-autocomplete-search.component';\r\nimport { WToggleButtonComponent } from './button/w-toggle-button/w-toggle-button.component';\r\nimport { WEditCheckboxComponent } from './edit/w-edit-checkbox/w-edit-checkbox.component';\r\nimport { WSelectButtonComponent } from './button/w-select-button/w-select-button.component';\r\nimport { WMapsComponent } from './maps/w-maps/w-maps.component';\r\nimport { WEditCalendarComponent } from './edit/w-edit-calendar/w-edit-calendar.component';\r\nimport { WRadioButtonComponent } from './button/w-radio-button/w-radio-button.component';\r\nimport { WWizardComponent } from './misc/w-wizard/w-wizard.component';\r\nimport { WTabviewComponent } from './tabview/w-tabview/w-tabview.component';\r\nimport { WButtonTabviewComponent } from './tabview/w-button-tabview/w-button-tabview.component';\r\nimport { WTreeComponent } from './tree/w-tree/w-tree.component';\r\nimport { WBadgeComponent } from './misc/w-badge/w-badge.component';\r\nimport { WTimelineComponent } from './misc/w-timeline/w-timeline.component';\r\nimport { WPanelSubtitleComponent } from './layout/w-panel-subtitle/w-panel-subtitle.component';\r\nimport { WViewTextComponent } from './view/w-view-text/w-view-text.component';\r\nimport { WSkeletonTimelineComponent } from './shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component';\r\nimport { WSkeletonSidebarComponent } from './shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nimport { WSkeletonListComponent } from './shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nimport { WSkeletonInputGenericComponent } from './shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nimport { WSkeletonIframeComponent } from './shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nimport { WSkeletonEditComponent } from './shared/skeletons/w-skeleton-edit/w-skeleton-edit.component';\r\nimport { WSkeletonEditProductComponent } from './shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nimport { WSkeletonPowerbiReportComponent } from './shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nimport { WSkeletonQueryBuilderComponent } from './shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nimport { WSkeletonTreeComponent } from './shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nimport { WSkeletonProfileSidebarComponent } from './shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nimport { WSkeletonUserProfileInfoSidebarComponent } from './shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nimport { WDatePipe } from './shared/pipes/w-date.pipe';\r\nimport { WSummaryPipe } from './shared/pipes/w-summary.pipe';\r\nimport { WChipComponent } from './misc/w-chip/w-chip.component';\r\nimport { WViewBooleanComponent } from './view/w-view-boolean/w-view-boolean.component';\r\nimport { WSkeletonFormComponent } from './shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nimport { WAddressFieldComponent } from './shared/components/w-address-field/w-address-field.component';\r\nimport { WSkeletonGenericComponent } from './shared/skeletons/w-skeleton-generic/w-skeleton-generic.component';\r\nimport { WInputLabelComponent } from './view/w-input-label/w-input-label.component';\r\nimport { WPanelSectionGapDividerComponent } from './layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component';\r\nimport { WInputVerticalGapDividerComponent } from './layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component';\r\nimport { WButtonWeekComponent } from './button/w-button-week/w-button-week.component';\r\nimport { WViewBadgeComponent } from './view/w-view-badge/w-view-badge.component';\r\nimport { WEditCalendarMonthComponent } from './edit/w-edit-calendar-month/w-edit-calendar-month.component';\r\nimport { WParameterSelectorComponent } from './misc/w-parameter-selector/w-parameter-selector.component';\r\nimport { WChartBarComponent } from './chart/w-chart-bar/w-chart-bar.component';\r\nimport { WPercentagePipe } from './shared/pipes/w-percentage.pipe';\r\nimport { WCurrencyPipe } from './shared/pipes/w-currency.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent, \r\n WButtonComponent,\r\n WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent,\r\n WBodyContainerComponent, \r\n WTableComponent, \r\n WHeaderPanelComponent, \r\n WPanelTitleComponent,\r\n WInputSearchComponent,\r\n WFilterPanelComponent,\r\n WListFieldComponent,\r\n WViewCardTitleTextComponent,\r\n WImageFileUploaderComponent,\r\n WImageCropperComponent,\r\n WPreviewImageComponent,\r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent,\r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n WTreeComponent,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n WPanelSubtitleComponent,\r\n WViewTextComponent,\r\n WViewBooleanComponent, \r\n WChipComponent,\r\n WSkeletonTimelineComponent,\r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent, \r\n WSkeletonEditComponent,\r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent,\r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent,\r\n WAddressFieldComponent,\r\n WSkeletonGenericComponent,\r\n WInputLabelComponent, \r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent,\r\n WButtonWeekComponent,\r\n WViewBadgeComponent,\r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent\r\n ],\r\n imports: [\r\n InputTextModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n ButtonModule,\r\n HighlightModule,\r\n SidebarModule,\r\n BadgeModule,\r\n RadioButtonModule,\r\n InputSwitchModule,\r\n TooltipModule,\r\n RippleModule,\r\n SkeletonModule,\r\n DropdownModule,\r\n MultiSelectModule, \r\n AvatarModule,\r\n AvatarGroupModule,\r\n TreeSelectModule,\r\n InputNumberModule,\r\n InputTextareaModule,\r\n AutoCompleteModule,\r\n TableModule,\r\n MultiSelectModule,\r\n PaginatorModule,\r\n ConfirmPopupModule,\r\n CalendarModule,\r\n ToggleButtonModule,\r\n QueryBuilderModule,\r\n SelectButtonModule,\r\n ImageModule,\r\n FileUploadModule,\r\n ImageCropperModule,\r\n SliderModule,\r\n CarouselModule,\r\n DividerModule,\r\n PowerBIEmbedModule,\r\n TreeTableModule,\r\n MessagesModule,\r\n CheckboxModule,\r\n StepsModule,\r\n TabViewModule,\r\n TimelineModule,\r\n CardModule,\r\n ChipModule,\r\n TieredMenuModule, \r\n GalleriaModule,\r\n BlockUIModule, \r\n ListboxModule,\r\n ChartModule,\r\n AccordionModule\r\n ],\r\n exports: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n HighlightModule,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent, \r\n WButtonComponent,\r\n WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent, \r\n WBodyContainerComponent,\r\n WHeaderPanelComponent,\r\n WPanelTitleComponent,\r\n WPanelSubtitleComponent, \r\n WInputSearchComponent,\r\n QueryBuilderModule,\r\n QueryBuilderComponent,\r\n WFilterPanelComponent,\r\n ImageModule,\r\n FileUploadModule,\r\n SliderModule,\r\n WImageFileUploaderComponent, \r\n WImageCropperComponent, \r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent, \r\n ImageCropperModule,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent, \r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n SelectButtonModule,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n StepsModule,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n TabViewModule, \r\n WTreeComponent, \r\n TabViewModule,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n TimelineModule,\r\n CardModule,\r\n WViewTextComponent,\r\n WViewBooleanComponent, \r\n ChipModule,\r\n WChipComponent, \r\n WSkeletonTimelineComponent, \r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent,\r\n WSkeletonEditComponent, \r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent, \r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent, \r\n WAddressFieldComponent,\r\n TieredMenuModule, \r\n WSkeletonGenericComponent, \r\n GalleriaModule,\r\n BlockUIModule, \r\n WInputLabelComponent, \r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent, \r\n WButtonWeekComponent, \r\n WViewBadgeComponent, \r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent\r\n ],\r\n providers: [\r\n {\r\n provide: HIGHLIGHT_OPTIONS,\r\n useValue: {\r\n fullLibraryLoader: () => import('highlight.js')\r\n }\r\n }\r\n ]\r\n})\r\nexport class WappComponentsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormControlService {\r\n\r\n constructor() { }\r\n\r\n convertToFormControl(absCtrl: AbstractControl | null): FormControl {\r\n const ctrl = absCtrl as FormControl;\r\n return ctrl;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TreeNode } from \"primeng/api\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TreeService {\r\n\r\n constructor() { }\r\n\r\n elementToTreeNodeMap<T>(elements: T[], getChildFn: (element: T) => T[] | null, parent?: TreeNode): TreeNode[] {\r\n return elements.map((element:any) => {\r\n let treeNode: TreeNode = {\r\n label: element.name,\r\n data: element,\r\n children: [],\r\n expanded: false,\r\n parent: parent\r\n };\r\n\r\n const childElements = getChildFn(element);\r\n\r\n if (childElements) {\r\n treeNode.children = this.elementToTreeNodeMap(childElements, getChildFn, treeNode);\r\n }\r\n\r\n return treeNode;\r\n });\r\n }\r\n}","/*\r\n * Public API Surface of wapp-components\r\n */\r\n\r\nexport * from './lib/wapp-components.service';\r\nexport * from './lib/wapp-components.component';\r\nexport * from './lib/wapp-components.module';\r\n\r\n//Components\r\nexport * from './lib/edit/w-edit-input-text/w-edit-input-text.component';\r\nexport * from './lib/edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nexport * from './lib/edit/w-edit-input-number/w-edit-input-number.component';\r\nexport * from './lib/search/w-input-search/w-input-search.component';\r\nexport * from './lib/search/w-autocomplete-search/w-autocomplete-search.component';\r\nexport * from './lib/edit/w-edit-select/w-edit-select.component';\r\nexport * from './lib/edit/w-edit-multiselect/w-edit-multiselect.component';\r\nexport * from './lib/edit/w-edit-treeselect/w-edit-treeselect.component'\r\nexport * from './lib/edit/w-edit-toggle/w-edit-toggle.component';\r\nexport * from './lib/edit/w-edit-checkbox/w-edit-checkbox.component';\r\nexport * from './lib/edit/w-edit-calendar/w-edit-calendar.component';\r\nexport * from './lib/button/w-button/w-button.component';\r\nexport * from './lib/button/w-radio-button/w-radio-button.component';\r\nexport * from './lib/button/w-select-button/w-select-button.component';\r\nexport * from './lib/tables/w-table/w-table.component';\r\nexport * from './lib/tables/w-table-lazy/w-table-lazy.component';\r\nexport * from './lib/misc/w-filter-panel/w-filter-panel.component';\r\nexport * from './lib/w-clipboard/w-clipboard.component';\r\nexport * from './lib/icons/wapping-icons/w-icons.component';\r\nexport * from './lib/logos/wapping-logos/w-logos.component';\r\nexport * from './lib/layout/w-container/w-container.component';\r\nexport * from './lib/layout/w-navbar/w-navbar.component';\r\nexport * from './lib/layout/w-body/w-body.component';\r\nexport * from './lib/layout/w-footer/w-footer.component';\r\nexport * from './lib/layout/w-panel/w-panel.component';\r\nexport * from './lib/layout/w-body-container/w-body-container.component';\r\nexport * from './lib/layout/w-header-panel/w-header-panel.component';\r\nexport * from './lib/layout/w-panel-title/w-panel-title.component';\r\nexport * from './lib/layout/w-panel-subtitle/w-panel-subtitle.component';\r\nexport * from './lib/file/w-image-cropper/w-image-cropper.component';\r\nexport * from './lib/file/w-preview-image/w-preview-image.component';\r\nexport * from './lib/file/w-image-file-uploader/w-image-file-uploader.component';\r\nexport * from './lib/report/w-powerbi-report/w-powerbi-report.component';\r\nexport * from './lib/sidebar/w-sidebar/w-sidebar.component';\r\nexport * from './lib/button/w-buttons-footer/w-buttons-footer.component';\r\nexport * from './lib/tables/w-tree-table/w-tree-table.component';\r\nexport * from './lib/layout/w-body-grid/w-body-grid.component';\r\nexport * from './lib/layout/w-panel-grid/w-panel-grid.component';\r\nexport * from './lib/button/w-toggle-button/w-toggle-button.component';\r\nexport * from './lib/misc/w-wizard/w-wizard.component';\r\nexport * from './lib/maps/w-maps/w-maps.component';\r\nexport * from './lib/tabview/w-tabview/w-tabview.component';\r\nexport * from './lib/tabview/w-button-tabview/w-button-tabview.component';\r\nexport * from './lib/tree/w-tree/w-tree.component';\r\nexport * from './lib/misc/w-badge/w-badge.component';\r\nexport * from './lib/misc/w-timeline/w-timeline.component';\r\nexport * from './lib/misc/w-chip/w-chip.component';\r\nexport * from './lib/view/w-view-text/w-view-text.component';\r\nexport * from './lib/view/w-view-boolean/w-view-boolean.component';\r\nexport * from './lib/shared/components/w-address-field/w-address-field.component';\r\nexport * from './lib/view/w-input-label/w-input-label.component'; \r\nexport * from './lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component'; \r\nexport * from './lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component'; \r\nexport * from './lib/button/w-button-week/w-button-week.component'; \r\nexport * from './lib/view/w-view-badge/w-view-badge.component'; \r\nexport * from './lib/edit/w-edit-calendar-month/w-edit-calendar-month.component'; \r\nexport * from './lib/misc/w-parameter-selector/w-parameter-selector.component';\r\nexport * from './lib/chart/w-chart-bar/w-chart-bar.component'; \r\n\r\n//Skeletons \r\nexport * from './lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component'; \r\n\r\n//Pipes\r\nexport * from './lib/shared/pipes/color-text.pipe';\r\nexport * from './lib/shared/pipes/w-date.pipe';\r\nexport * from './lib/shared/pipes/w-summary.pipe';\r\nexport * from './lib/shared/pipes/w-percentage.pipe';\r\nexport * from './lib/shared/pipes/w-currency.pipe';\r\n\r\n//Services\r\nexport * from './lib/shared/services/form-control.service';\r\nexport * from './lib/shared/services/modal.service';\r\nexport * from './lib/shared/services/tree.service';\r\nexport * from './lib/shared/services/session-storage.service'; \r\nexport * from './lib/shared/services/date-conversion.service'; \r\n\r\n///models\r\nexport * from './lib/shared/models/enums.model';\r\nexport * from './lib/shared/models/filter.model';\r\nexport * from './lib/shared/models/lazy-element-query-request.model';\r\nexport * from './lib/shared/models/wapp-table-lazy-loading.model';\r\nexport * from './lib/shared/models/wapp-table.model';\r\nexport * from './lib/shared/models/filter-panel/filter-panel-translations.model';\r\nexport * from './lib/shared/models/image-b64.model';\r\nexport * from './lib/shared/models/w-file-b64.model';\r\nexport * from './lib/shared/models/w-image-file-uploader-config.model';\r\nexport * from './lib/shared/models/w-image-cropper-data.model';\r\nexport * from './lib/shared/models/w-address.model'\r\nexport * from './lib/shared/models/filter-panel/query-results.model';\r\nexport * from './lib/shared/models/parameter-selector.model'; \r\nexport * from './lib/shared/models/w-chart-config.model'; \r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.WInputLabelComponent","i3.WButtonComponent","i1.SessionStorageService","i2.DateConversionService","i4","i5","i6","i8","i9","i11.WButtonComponent","i12.WBadgeComponent","i13.WButtonWeekComponent","i14.WDatePipe","i15.WPercentagePipe","i16.WCurrencyPipe","i7","i10","i11","i12.WButtonComponent","i13.WBadgeComponent","i14.WButtonWeekComponent","i15.WDatePipe","i16.WPercentagePipe","i17.WCurrencyPipe","i4.WButtonComponent","i5.WContainerComponent","i3.WIconsComponent","i4.WLogosComponent","i4.WPanelTitleComponent","i5.WPanelSubtitleComponent","i5.WButtonComponent","i4.WEditSelectComponent","i5.WEditMultiselectComponent","i1.ApiService","i2.ApiService","i3.SessionStorageService","i14.WEditInputTextComponent","i15.WButtonComponent","i16.WListFieldComponent","i17.WViewCardTitleTextComponent","i18.WToggleButtonComponent","i19.WSelectButtonComponent","i20.WEditCalendarComponent","i21.WAddressFieldComponent","i2.ModalService","i9.WButtonComponent","i9.WIconsComponent","i10.WButtonComponent","i11.WInputLabelComponent","i4.WIconsComponent","i11.WBadgeComponent","i12.WDatePipe","i13.WPercentagePipe","i14.WCurrencyPipe","i5.WIconsComponent","i6.WInputLabelComponent","i6.WPanelComponent","i7.WBodyGridComponent","i5.WPanelComponent","i2.WInputLabelComponent","i4.WPanelComponent","i3.WPanelComponent","i4.WBodyContainerComponent","i5.WHeaderPanelComponent","i6.WSkeletonInputGenericComponent","i2.WPanelComponent","i3.WBodyContainerComponent","i4.WHeaderPanelComponent","i5.WPanelGridComponent","i6.WSelectButtonComponent","i2.WIconsComponent","i3.WInputLabelComponent","i2.WPanelGridComponent","i3.WSkeletonInputGenericComponent","i1.WPanelGridComponent","i2.WSkeletonInputGenericComponent","i2.WBadgeComponent","i6.WPanelTitleComponent","i7.WPanelGridComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-wapp-components.mjs","sources":["../../../projects/wapp-components/src/lib/wapp-components.service.ts","../../../projects/wapp-components/src/lib/wapp-components.component.ts","../../../projects/wapp-components/src/lib/shared/enums/enum.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.html","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.ts","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.html","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.ts","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.html","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.ts","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.html","../../../projects/wapp-components/src/lib/logos/logos.ts","../../../projects/wapp-components/src/lib/logos/wapping-logos/w-logos.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.html","../../../projects/wapp-components/src/lib/shared/models/enums.model.ts","../../../projects/wapp-components/src/lib/shared/services/date-conversion.service.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.html","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.ts","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.html","../../../projects/wapp-components/src/lib/shared/services/session-storage.service.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-date.pipe.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-percentage.pipe.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-currency.pipe.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.html","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.ts","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.html","../../../projects/wapp-components/src/lib/layout/w-container/w-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.html","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.ts","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.html","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.ts","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.html","../../../projects/wapp-components/src/lib/shared/pipes/color-text.pipe.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.html","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.html","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.html","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.ts","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.html","../../../projects/wapp-components/src/lib/shared/models/filter-panel/query-results.model.ts","../../../projects/wapp-components/src/lib/shared/service/api/api.service.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.html","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.html","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.ts","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.html","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.ts","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.html","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.html","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.html","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.ts","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.html","../../../projects/wapp-components/src/lib/shared/services/modal.service.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.html","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.ts","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.html","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.html","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.ts","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.html","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.ts","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.html","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.html","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.html","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.ts","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.html","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.ts","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.html","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.ts","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.html","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.ts","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.html","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.html","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.html","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.ts","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.html","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.ts","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.html","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-summary.pipe.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.html","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.ts","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.html","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.ts","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.html","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.ts","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.html","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.ts","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.html","../../../projects/wapp-components/src/lib/wapp-components.module.ts","../../../projects/wapp-components/src/lib/shared/services/form-control.service.ts","../../../projects/wapp-components/src/lib/shared/services/tree.service.ts","../../../projects/wapp-components/src/public-api.ts","../../../projects/wapp-components/src/ngx-wapp-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WappComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-wapp-components',\r\n template: `\r\n <p>\r\n wapp-components works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class WappComponentsComponent {\r\n\r\n}\r\n","export enum SizeType {\r\n small = 0,\r\n medium = 1,\r\n large = 2\r\n}\r\n\r\nexport enum ButtonType{\r\n primary = 0,\r\n secondary = 1,\r\n tertiary = 2,\r\n text = 3,\r\n table = 4\r\n}\r\n\r\nexport enum IconType{\r\n pIcon = 0, \r\n urlIcon = 1, \r\n wIcon = 2\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-input-label',\r\n templateUrl: './w-input-label.component.html',\r\n styleUrls: ['./w-input-label.component.scss']\r\n})\r\nexport class WInputLabelComponent implements OnInit {\r\n @Input('label') label!: string; \r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false; \r\n @Input('tooltip') tooltip!: string; \r\n @Input('size') size: string = \"small\"; \r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"label != undefined && label.length > 0\" class=\"w-input-label flex\">\r\n <div class=\"flex\">\r\n <div [ngClass]=\"{'w-input-label-small-label': getSizeName(sizeType.small) == size && !disabled, \r\n 'w-input-label-small-label-disabled': getSizeName(sizeType.small) == size && disabled, \r\n 'w-input-label-medium-label': getSizeName(sizeType.medium) == size && !disabled, \r\n 'w-input-label-medium-label-disabled': getSizeName(sizeType.medium) == size && disabled}\">\r\n {{label}}\r\n <span *ngIf=\"required && !disabled \" class=\"required-symbol\">*</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tooltip\" [pTooltip]=\"tooltip\" tooltipPosition=\"right\" class=\"w-input-label-icon-help-container\">\r\n <svg class=\"w-input-label-icon-help\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path id=\"Vector\" d=\"M6 0C2.7 0 0 2.7 0 6C0 9.3 2.7 12 6 12C9.3 12 12 9.3 12 6C12 2.7 9.3 0 6 0ZM6 9.75C5.586 9.75 5.25 9.414 5.25 9C5.25 8.586 5.586 8.25 6 8.25C6.414 8.25 6.75 8.586 6.75 9C6.75 9.414 6.414 9.75 6 9.75ZM7.21725 6.069C6.8445 6.38925 6.75 6.49725 6.75 6.75C6.75 7.16475 6.414 7.5 6 7.5C5.586 7.5 5.25 7.16475 5.25 6.75C5.25 5.7795 5.84625 5.268 6.2415 4.92975C6.61425 4.611 6.70875 4.50225 6.70875 4.25025C6.70875 4.113 6.70875 3.75 6.00075 3.75C5.67375 3.768 5.325 3.918 5.05725 4.17075C4.7565 4.45425 4.281 4.44 3.99675 4.14C3.7125 3.8385 3.726 3.36375 4.0275 3.0795C4.554 2.58375 5.24025 2.289 5.96175 2.2515H5.964C7.323 2.2515 8.20875 3.05475 8.20875 4.251C8.20875 5.22075 7.6125 5.73225 7.218 6.06975L7.21725 6.069Z\" fill=\"#9AA0A6\"/>\r\n </svg> \r\n </div>\r\n</div>\r\n<div *ngIf=\"label != undefined && label == ''\" class=\"w-input-no-label-height\"></div>\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl, ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-input-text',\r\n templateUrl: './w-edit-input-text.component.html',\r\n styleUrls: ['./w-edit-input-text.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputTextComponent implements ControlValueAccessor {\r\n value: string = \"\";\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('pattern') pattern: string = \"\";\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"Pattern error\";\r\n\r\n @Input('minlength') minlength!: number;\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length error\";\r\n\r\n @Input('maxlength') maxlength!: number;\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length error\";\r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = 'small';\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onChangeForm(event: any){\r\n console.log(event);\r\n\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-input-text-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size;\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-medium-icon pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n [ngClass]=\"{'w-edit-input-text-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-text-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-text-medium-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n class=\"w-edit-input-text-medium-height w-edit-input-text-medium\" id=\"w-textarea\" [placeholder]=\"placeholder\" [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size;\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n [ngClass]=\"{'w-edit-input-text-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-text-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-text-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [formControl]=\"formControl\">\r\n </span>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\"\r\n class=\"w-alert-message-height w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('maxlength') && formControl.touched \"\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('minlength') && formControl.touched \"\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\"\r\n class=\"w-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-input-text-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-medium-icon pi {{inputIcon}}\"></i>\r\n <input pInputText minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" [required]=\"required\"\r\n class=\"w-edit-input-text-medium-height w-edit-input-text-medium\" id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (input)=\"onValueChanged()\" [disabled]=\"disabled\"\r\n [autofocus]=\"autofocus\">\r\n </span>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size\" [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n <input pInputText minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" [required]=\"required\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [(ngModel)]=\"value\" (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\" [autofocus]=\"autofocus\">\r\n </span>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ButtonType, SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-button',\r\n templateUrl: './w-button.component.html',\r\n styleUrls: ['./w-button.component.scss']\r\n})\r\nexport class WButtonComponent implements OnInit{\r\n @Input('type') type: string = \"primary\";\r\n @Input('label') label!: string;\r\n @Input('size') size: string = \"small\";\r\n @Input('icon') icon: string = \"\";\r\n @Input('iconPos') iconPos: string = \"left\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('loading') loading: boolean = false;\r\n @Output('onClick') onClick: EventEmitter<MouseEvent> = new EventEmitter();\r\n @Input('buttonClass') buttonClass: string = \"\";\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n tooltipDelay: number = 250;\r\n\r\n ngOnInit(): void {}\r\n\r\n onButtonClick(event: MouseEvent){\r\n this.onClick.emit(event);\r\n }\r\n \r\n getIcon(): string{\r\n return this.icon ? \"pi \" + this.icon: \"\";\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n}\r\n","<ng-container *ngIf=\"type == getButtonTypeName(buttonType.primary); else buttonSecondary\">\r\n <p-button *ngIf=\"size == getSizeName(sizeType.small)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n styleClass=\"w-button-small border-none {{buttonClass}}\" \r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n</ng-container>\r\n<ng-template #buttonSecondary>\r\n <ng-container *ngIf=\"type == getButtonTypeName(buttonType.secondary) || type == getButtonTypeName(buttonType.tertiary); else buttonText\">\r\n <p-button *ngIf=\"size == getSizeName(sizeType.small)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-small-tertiary' : 'w-button-small p-button-outlined')\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n </ng-container>\r\n <ng-template #buttonText>\r\n <ng-container *ngIf=\"type == getButtonTypeName(buttonType.text); else iconTableButton\">\r\n <p-button \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\" \r\n styleClass=\"p-button-text w-button-text-small {{buttonClass}}\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n </ng-container>\r\n <ng-template #iconTableButton>\r\n <p-button \r\n [icon]=\"getIcon()\" \r\n styleClass=\"w-table-button {{buttonClass}}\" \r\n [disabled]=\"disabled\" \r\n (onClick)=\"onButtonClick($event)\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n [showDelay]=\"tooltipDelay\"\r\n class=\"p-button-text\">\r\n </p-button>\r\n </ng-template>\r\n </ng-template>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\n\r\n@Component({\r\n selector: 'w-clipboard',\r\n templateUrl: './w-clipboard.component.html',\r\n styleUrls: ['./w-clipboard.component.css']\r\n})\r\nexport class WClipboardComponent {\r\n\r\n @Input('codeText') codeText!: string; \r\n @Input('languages') languages!: string[]; \r\n icon: string = 'pi pi-copy';\r\n\r\n constructor(private clipboard: Clipboard) {}\r\n\r\n copyToClipboard(){\r\n const successful = this.clipboard.copy(this.codeText);\r\n if(successful){\r\n this.icon = 'pi-check'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }else{\r\n this.icon = 'pi-times'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"card relative\">\r\n <div class=\"absolute top-0 right-0 pr-3 pt-3\">\r\n <w-button [icon]=\"icon\" type=\"secondary\"\r\n (onClick)=\"copyToClipboard()\">\r\n </w-button>\r\n </div>\r\n <pre id=\"text\" class=\"-mb-2 ml-3\">\r\n <code [highlight]=\"codeText\" [languages]=\"languages\"></code>\r\n </pre>\r\n</div>","import {Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'w-icons',\r\n templateUrl: './w-icons.component.html',\r\n styleUrls: ['./w-icons.component.scss']\r\n})\r\nexport class WIconsComponent {\r\n @Input('name') name!: string;\r\n @Input('width') width!: number;\r\n @Input('height') height!: number;\r\n @Input('color') color!: string;\r\n}\r\n","<span className=\"w-icon {{name}}\" [ngStyle]=\"{'font-size': height + 'px', 'height': height + 'px', 'width': width + 'px', 'background-color': color, 'color': color}\"></span>","export const wappingLogos: any = {\r\n wappingComplete: '<svg id=\"wappingComplete\" width=\"197\" height=\"64\" viewBox=\"0 0 197 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8839)\"><path id=\"path\" d=\"M40.9986 43.7251C40.9482 44.072 40.8726 44.4189 40.743 44.7479C40.4658 45.4416 39.9113 45.9173 39.202 46.1533C39.004 46.2176 38.7915 46.2713 38.6187 46.3929C38.5215 46.4608 38.5071 46.6539 38.3955 46.679C38.2155 46.7183 38.2443 46.5574 38.2083 46.4501C38.1435 46.257 37.8806 46.1211 37.7186 46.0281C37.0669 45.649 36.5989 45.0733 36.4692 44.3259C36.4152 44.0183 36.2532 42.6201 36.7285 42.6344C37.0885 42.6451 37.4558 42.7166 37.8158 42.7595C38.8023 42.874 39.7889 42.9884 40.7754 43.1064C41.1462 43.1493 41.0454 43.4462 41.0022 43.7323L40.9986 43.7251ZM36.2532 53.7632C33.3692 52.7047 31.9074 50.8737 32.7283 48.9641C33.3836 47.4371 33.9129 45.9065 33.9129 44.1793C33.9129 38.4539 29.2395 33.8121 23.4751 33.8121C17.7108 33.8121 13.0373 38.4539 13.0373 44.1793C13.0373 49.4361 16.7746 53.5415 21.7613 54.4069C22.1285 54.4713 23.9144 54.6215 24.332 54.6215H35.9436C36.48 54.7002 36.6925 54.01 36.2604 53.7597L36.2532 53.7632ZM43.7206 33.569C43.2993 35.2783 41.6647 35.8612 40.1093 36.2689C38.2191 36.766 36.2424 36.7445 34.5286 35.8469C33.4304 35.2712 31.641 34.0052 31.1729 31.1229C30.7985 28.8127 31.7346 27.2857 32.5915 26.0949C33.0308 25.4834 33.8553 24.8897 34.6186 24.4821C35.7455 23.8777 36.0264 23.9063 36.2532 25.1365C36.4368 26.1307 37.2073 26.921 38.1218 27.2929C39.5188 27.8615 40.8258 28.5946 41.8915 29.6889C42.9465 30.7724 44.1202 31.9633 43.7206 33.5725V33.569ZM39.7925 31.6164C39.7925 30.9119 39.2164 30.3362 38.5035 30.3362C37.7906 30.3362 37.2145 30.9083 37.2145 31.6164C37.2145 32.3245 37.7906 32.8966 38.5035 32.8966C39.2164 32.8966 39.7925 32.3245 39.7925 31.6164ZM16.1085 32.657C18.9997 30.472 21.8693 28.237 24.5985 25.8553C29.7868 21.3351 31.0829 13.6536 27.8209 7.63146C24.6489 1.77022 17.4875 -1.25517 10.9239 0.49355C4.13337 2.30306 -0.201604 8.18218 0.00722364 15.5704C0.489687 15.6133 1.07296 15.4274 1.53743 15.2521C4.65184 14.0684 7.68704 14.3402 10.283 16.7005C12.7097 18.9033 13.3758 21.9931 12.3136 25.3654C11.4531 28.1655 10.4234 30.9119 9.48367 33.6905C8.33872 37.0771 8.05068 40.4244 10.2902 44.5333C9.75011 38.7221 12.4253 35.4464 16.1121 32.6606L16.1085 32.657ZM40.509 40.9286C40.0805 40.6532 39.8249 40.4244 39.0328 40.3385C38.2731 40.2563 37.6934 40.4458 37.3225 40.6711C36.8401 40.9643 36.6313 41.1396 36.48 41.4543C36.3468 41.7296 36.4476 42.1087 36.7933 42.148C37.607 42.2446 38.4243 42.3376 39.238 42.4341C39.6881 42.4878 40.1417 42.5378 40.5918 42.5915C40.7106 42.6058 40.8294 42.6272 40.9482 42.6308C41.2975 42.6415 41.4199 42.0658 41.2831 41.8369C41.0562 41.4471 40.9014 41.1825 40.5054 40.9286H40.509Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M104.353 34.3879C103.982 34.3771 103.478 34.37 102.837 34.37H102.358C101.94 34.37 101.595 34.3843 101.325 34.4058C101.054 34.4308 100.82 34.5166 100.622 34.6632C100.129 34.5416 99.6863 34.4665 99.2903 34.4415C98.8978 34.4165 98.3541 34.4058 97.6664 34.4058C96.6547 34.4058 95.6934 34.5166 94.7825 34.7348C93.7491 35.003 92.7734 35.4392 91.8625 36.0365C90.9516 36.6372 90.145 37.356 89.443 38.2036C88.7409 39.0475 88.154 39.9952 87.6895 41.0466C87.2215 42.098 86.901 43.1994 86.7282 44.3509C86.433 46.4787 86.5842 48.3275 87.1891 49.8939C87.7939 51.4602 88.8345 52.5974 90.3107 53.3091C90.6059 53.4306 90.9408 53.5487 91.308 53.6595C91.6789 53.7704 92.1073 53.849 92.6006 53.8991H92.6366C92.759 53.9241 92.8994 53.9349 93.0614 53.9349H93.5979C94.9517 53.9349 96.1866 53.7275 97.292 53.3091C97.5872 53.234 97.9185 53.1016 98.2893 52.905C98.6818 53.47 99.4091 53.7847 100.468 53.8598C100.885 53.8848 101.292 53.8848 101.688 53.8598C102.081 53.8347 102.444 53.799 102.779 53.7489C103.11 53.6988 103.395 53.6452 103.629 53.5844C103.863 53.5236 104.018 53.4807 104.09 53.4557H104.054C104.399 53.3341 104.633 53.1946 104.756 53.0337C104.878 52.8763 104.965 52.6618 105.015 52.3936L105.238 50.888C105.289 50.5698 105.22 50.3015 105.033 50.0798C104.849 49.8581 104.583 49.7508 104.237 49.7508H103.463L105.31 36.6837C105.386 36.0722 105.422 35.6073 105.422 35.2891C105.422 34.9708 105.335 34.7455 105.163 34.6096C104.99 34.4773 104.72 34.4022 104.349 34.3915L104.353 34.3879ZM98.2173 48.281C98.0913 48.3311 97.9581 48.3848 97.8105 48.4455C97.6628 48.5063 97.4036 48.5993 97.0328 48.7209C96.3415 48.9176 95.7582 49.0392 95.2793 49.0892C94.8005 49.1393 94.4368 49.1393 94.1884 49.0892C93.6951 49.0177 93.3063 48.8568 93.0254 48.6136C92.741 48.3704 92.5394 48.0701 92.4169 47.716C92.2945 47.362 92.2261 46.965 92.2117 46.5216C92.1973 46.0817 92.2189 45.6276 92.2693 45.1627C92.3413 44.4296 92.471 43.7072 92.6582 42.9956C92.8418 42.2839 93.119 41.6509 93.4899 41.0859C93.8607 40.5245 94.3216 40.0703 94.8761 39.727C95.4305 39.3837 96.1146 39.212 96.9283 39.212C97.4216 39.212 97.8825 39.2299 98.3145 39.2657C98.7466 39.3014 99.1318 39.3444 99.4775 39.3944L98.2209 48.2775L98.2173 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M94.6276 15.3201C92.1325 14.3116 90.9264 15.9852 90.7319 16.3893L74.6414 48.0128L71.3218 32.2923C71.1633 31.5699 70.9725 31.037 70.7529 30.6937C70.5333 30.3504 69.1363 28.5159 66.688 29.2705C63.9804 30.1073 64.2756 32.1349 64.2144 32.6678C64.182 32.9181 64.2072 33.1934 64.2864 33.4903C64.3657 33.7907 64.4377 34.1089 64.4989 34.4558C64.4989 34.4558 68.3046 49.64 68.751 51.2635C69.0175 52.0574 69.1183 52.4043 69.2623 52.7154C69.4027 53.0301 69.5539 53.3126 69.7124 53.5629C70.1552 54.3783 70.9437 54.929 72.0815 55.2115C72.3335 55.2723 72.6107 55.3224 72.9096 55.351C73.2084 55.3832 73.4857 55.3975 73.7377 55.3975C74.4974 55.3975 75.2211 55.233 75.9196 54.904C76.6145 54.575 77.2626 54.128 77.8602 53.5629C78.2383 53.1875 78.5623 52.8084 78.8324 52.4329C79.0988 52.0574 79.3616 51.6497 79.6137 51.2099L96.2371 19.1966C96.3127 19.0464 97.5656 16.5038 94.624 15.3165L94.6276 15.3201Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M64.1207 44.4832C63.8039 45.1734 63.487 45.8493 63.1738 46.5073C62.857 47.1653 62.5581 47.7303 62.2737 48.2024L59.0512 32.3888C58.8928 31.8882 58.5472 31.3911 58.0107 30.9047C57.4742 30.4184 56.7289 30.1752 55.782 30.1752C54.9611 30.1752 53.7441 30.2825 52.8224 31.4304C51.447 33.1398 52.6568 36.5729 52.6568 36.5729C53.3841 39.6161 53.9674 42.0336 54.4102 43.8216C54.8531 45.6097 55.1987 47.0151 55.4508 48.0343C55.7028 49.0535 55.8936 49.783 56.0196 50.2229C56.1457 50.6627 56.2717 51.0525 56.3977 51.3994H56.3509C56.4445 51.7463 56.5705 52.1146 56.7289 52.5044C56.8874 52.8978 57.0602 53.2482 57.251 53.5629C57.8199 54.3783 58.6264 54.929 59.6669 55.2115C59.919 55.2723 60.189 55.3224 60.4734 55.351C60.7579 55.3832 61.0243 55.3975 61.2799 55.3975C62.0684 55.3975 62.8281 55.2401 63.5554 54.9254C64.2827 54.6107 64.9128 54.1423 65.4493 53.5129C65.6077 53.3555 65.7805 53.1588 65.9714 52.9264C66.1622 52.6904 66.335 52.4329 66.4934 52.1504L67.1019 51.1276L64.902 42.7702C64.6464 43.3317 64.3872 43.8967 64.1207 44.4796V44.4832Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M125.696 38.3323C125.091 36.791 124.051 35.6538 122.575 34.9171C122.254 34.7705 121.804 34.631 121.224 34.4952C120.645 34.3628 120.036 34.2949 119.395 34.2949H119.359C118.668 34.2949 118.009 34.345 117.383 34.4415C116.756 34.5416 116.169 34.699 115.626 34.9171L114.628 35.3212C114.409 35.053 114.092 34.8206 113.685 34.6239C113.278 34.4272 112.817 34.3307 112.306 34.3307C111.669 34.3307 111.107 34.4058 110.617 34.5524C110.128 34.699 109.699 34.8706 109.332 35.0673C108.893 35.289 108.511 35.5215 108.194 35.7647C108.144 35.8147 108.072 35.9363 107.975 36.133C107.877 36.3297 107.816 36.487 107.791 36.6086L107.568 38.1857C107.517 38.529 107.579 38.8044 107.751 39.0118C107.924 39.2192 108.18 39.3229 108.522 39.3229H109.364L106.272 61.273C106.196 61.8345 106.156 62.2708 106.142 62.5747C106.128 62.8787 106.196 63.1076 106.347 63.2542C106.495 63.4008 106.722 63.4866 107.031 63.5117C107.341 63.5367 107.777 63.5474 108.338 63.5474H108.742C109.303 63.5474 109.76 63.5331 110.117 63.5117C110.47 63.4866 110.747 63.4008 110.941 63.2542C111.136 63.1076 111.291 62.8823 111.402 62.5747C111.514 62.2672 111.604 61.8345 111.676 61.273L114.7 40.1311C115.021 39.9344 115.438 39.727 115.957 39.5089C116.573 39.2406 117.127 39.094 117.62 39.069C118.114 39.044 118.495 39.0583 118.765 39.1048C119.284 39.1799 119.676 39.3372 119.95 39.5804C120.22 39.8236 120.425 40.1311 120.558 40.4959C120.692 40.8642 120.76 41.2719 120.76 41.726C120.76 42.1802 120.735 42.6379 120.684 43.1028C120.634 43.6428 120.548 44.1936 120.425 44.755C120.303 45.32 120.13 45.8564 119.907 46.3714C119.683 46.8864 119.403 47.3513 119.057 47.7661C118.711 48.1845 118.294 48.4992 117.8 48.7209C117.53 48.9176 116.925 49.0141 115.989 49.0141C115.579 49.0141 115.197 48.9998 114.823 48.982L114.121 53.7847H115.251C115.77 53.7847 116.256 53.7668 116.709 53.731C117.167 53.6953 117.638 53.6166 118.132 53.4914C118.747 53.3448 119.493 53.0802 120.367 52.7011C121.242 52.322 122.074 51.6926 122.863 50.8093C123.651 49.9511 124.346 48.9247 124.951 47.7267C125.556 46.5288 125.955 45.2449 126.153 43.8717C126.449 41.7189 126.294 39.87 125.693 38.3287L125.696 38.3323Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M155.962 24.972C155.555 24.9469 154.993 24.9362 154.28 24.9362C153.639 24.9362 153.128 24.9505 152.746 24.972C152.365 24.997 152.062 25.0936 151.843 25.2652C151.619 25.4369 151.454 25.6944 151.342 26.0341C151.231 26.3774 151.137 26.878 151.065 27.5396L150.993 28.1619C150.917 28.8485 150.881 29.367 150.881 29.721C150.881 30.0751 150.975 30.3326 151.159 30.4935C151.342 30.6544 151.634 30.7367 152.026 30.751C152.419 30.7653 152.973 30.7688 153.69 30.7688C154.331 30.7688 154.849 30.7581 155.242 30.7331C155.634 30.7081 155.944 30.6115 156.163 30.4398C156.386 30.2682 156.552 30.0107 156.664 29.671C156.775 29.3277 156.869 28.827 156.941 28.1654L157.017 27.5432C157.089 26.8816 157.128 26.3738 157.128 26.0198C157.128 25.6657 157.035 25.4083 156.851 25.2473C156.667 25.09 156.372 24.997 155.965 24.972H155.962Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M196.74 34.6096C196.568 34.4773 196.298 34.4022 195.927 34.3914C195.556 34.3807 195.041 34.3736 194.375 34.3736H194.116C193.622 34.3736 193.223 34.3914 192.913 34.4272C192.604 34.463 192.351 34.5667 192.157 34.7383C192.207 34.8098 192.143 34.8098 191.973 34.7383C191.801 34.6632 191.653 34.606 191.531 34.5559C191.505 34.5559 191.48 34.5488 191.459 34.5381C191.433 34.5273 191.408 34.5202 191.383 34.5202C191.16 34.4701 190.861 34.4415 190.476 34.4272C190.094 34.4165 189.68 34.4093 189.237 34.4093C188.225 34.4093 187.278 34.5202 186.393 34.7383C185.777 34.8849 185.021 35.1675 184.121 35.5823C183.221 36.0007 182.403 36.6086 181.662 37.4168C180.873 38.2751 180.171 39.2943 179.555 40.4816C178.94 41.6688 178.533 42.9598 178.335 44.3545C178.04 46.4823 178.191 48.3311 178.796 49.8974C179.401 51.4638 180.441 52.601 181.917 53.3126C182.187 53.4342 182.508 53.5522 182.879 53.6631C183.249 53.7739 183.667 53.8526 184.135 53.9027C184.258 53.9277 184.405 53.9384 184.578 53.9384H185.133C186.465 53.9384 187.721 53.731 188.902 53.3126H188.866L189.086 53.2375L188.679 56.3952C188.603 57.0318 188.359 57.4967 187.941 57.7899C187.523 58.0831 186.994 58.2906 186.353 58.4157C186.133 58.4658 185.874 58.5016 185.579 58.5266C185.284 58.5516 184.974 58.5623 184.654 58.5623C183.988 58.5623 183.329 58.5194 182.677 58.4336C182.025 58.3478 181.55 58.2798 181.255 58.2333C180.96 58.1833 180.736 58.1404 180.589 58.1046C180.441 58.0688 180.268 58.051 180.07 58.051C179.505 58.051 179.055 58.2405 178.72 58.6196C178.389 58.9986 178.036 59.5815 177.669 60.3647C177.546 60.6329 177.442 60.8797 177.356 61.0978C177.269 61.3195 177.211 61.5126 177.19 61.6843C177.139 61.9525 177.165 62.1671 177.262 62.328C177.359 62.4889 177.539 62.6284 177.798 62.75C178.058 62.8716 178.407 62.9896 178.85 63.1004C179.293 63.2113 179.836 63.34 180.477 63.4866C180.92 63.5367 181.402 63.5832 181.917 63.6333C182.436 63.6833 183.001 63.7084 183.617 63.7084C183.937 63.7084 184.344 63.6833 184.837 63.6333C185.331 63.5832 185.842 63.5117 186.371 63.4151C186.9 63.315 187.422 63.2006 187.941 63.0647C188.459 62.9288 188.927 62.7643 189.345 62.5712C190.576 62.0061 191.624 61.2194 192.485 60.2038C193.349 59.1882 193.9 57.8364 194.148 56.1485L196.884 36.6945C196.957 36.0829 196.996 35.618 196.996 35.2998C196.996 34.9815 196.91 34.7562 196.737 34.6203L196.74 34.6096ZM189.792 48.281C189.619 48.3526 189.446 48.4241 189.273 48.4813C189.1 48.5421 188.877 48.6243 188.607 48.7209C187.966 48.9426 187.404 49.0678 186.926 49.1071C186.447 49.1429 186.069 49.1393 185.799 49.0892C185.28 49.0177 184.877 48.8639 184.578 48.6315C184.283 48.3991 184.074 48.0987 183.952 47.7339C183.829 47.3656 183.761 46.965 183.746 46.5216C183.732 46.0817 183.754 45.6276 183.804 45.1627C183.876 44.6012 183.97 44.0326 184.081 43.4569C184.193 42.8811 184.358 42.3447 184.578 41.8405C184.801 41.3398 185.079 40.8857 185.41 40.4816C185.741 40.0775 186.155 39.7663 186.648 39.5446C186.846 39.4481 187.109 39.3658 187.444 39.305C187.775 39.2442 188.128 39.212 188.495 39.212C188.863 39.212 189.197 39.2192 189.493 39.2299C189.788 39.2406 190.072 39.2728 190.342 39.3229C190.465 39.3479 190.584 39.3765 190.695 39.4159C190.807 39.4516 190.922 39.4838 191.048 39.5089L189.792 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M175.454 49.7115H174.677L176.045 40.0202C176.34 37.9425 175.94 36.4477 174.842 35.5429C173.744 34.6382 171.829 34.209 169.096 34.2591C168.455 34.2591 167.872 34.2841 167.343 34.3306C166.813 34.3807 166.363 34.4415 165.992 34.513C165.769 34.5631 165.506 34.6274 165.197 34.7133C164.887 34.7991 164.624 34.9028 164.401 35.0244C163.933 34.513 163.216 34.2555 162.259 34.2555C161.618 34.2555 161.045 34.3271 160.541 34.4737C160.037 34.6203 159.598 34.7919 159.231 34.9886C158.788 35.2104 158.406 35.4428 158.086 35.686C157.963 35.8076 157.87 35.9506 157.808 36.108C157.747 36.2689 157.704 36.3976 157.679 36.4942L157.456 38.0712C157.405 38.4145 157.474 38.6935 157.661 38.9152C157.844 39.1369 158.111 39.2442 158.457 39.2442H159.27L158.791 42.4377L157.499 51.3207C157.423 51.8106 157.387 52.2076 157.387 52.5116C157.387 52.8155 157.456 53.0587 157.592 53.2268C157.729 53.3984 157.931 53.5093 158.201 53.5558C158.471 53.6058 158.842 53.6273 159.31 53.6273H160.638C161.081 53.6273 161.445 53.5951 161.729 53.5343C162.01 53.4735 162.233 53.3555 162.395 53.1874C162.554 53.0158 162.676 52.7798 162.766 52.4722C162.853 52.1682 162.932 51.782 163.008 51.3171L164.671 39.5339C165.287 39.4373 165.92 39.3515 166.576 39.2764C167.227 39.2013 167.886 39.1906 168.552 39.2406C169.218 39.2907 169.715 39.4373 170.05 39.6805C170.381 39.9237 170.5 40.3528 170.403 40.9643L169.035 50.6198C169.01 50.7664 168.999 51.006 168.999 51.335C168.999 51.664 169.071 52.0037 169.222 52.3435C169.37 52.6868 169.622 52.9979 169.978 53.2804C170.335 53.5629 170.86 53.7382 171.548 53.8133C172.484 53.9098 173.258 53.8991 173.877 53.7775C174.493 53.6559 174.864 53.5701 174.986 53.52C175.307 53.3734 175.584 53.2196 175.818 53.0623C176.052 52.9049 176.192 52.6653 176.243 52.3471L176.463 50.8415C176.513 50.5232 176.445 50.255 176.261 50.0333C176.074 49.8116 175.811 49.7043 175.465 49.7043L175.454 49.7115Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M154.942 35.1031C154.723 34.8599 154.431 34.6561 154.075 34.4987C153.718 34.3414 153.293 34.2591 152.8 34.2591C152.159 34.2591 151.587 34.3306 151.083 34.4773C150.579 34.6239 150.139 34.7848 149.772 34.9529C149.329 35.1746 148.948 35.4071 148.627 35.6502C148.505 35.7218 148.4 35.8398 148.314 35.9971C148.228 36.158 148.17 36.3225 148.148 36.4906L147.929 38.0677C147.878 38.411 147.954 38.6899 148.148 38.9116C148.346 39.1334 148.606 39.2406 148.922 39.2406H149.772L148.037 51.3171C147.961 51.9036 147.918 52.3506 147.907 52.6582C147.893 52.9657 147.961 53.191 148.112 53.3376C148.26 53.4843 148.487 53.5701 148.796 53.5951C149.103 53.6202 149.542 53.6309 150.107 53.6309H150.514C151.079 53.6309 151.536 53.6202 151.882 53.5951C152.228 53.5701 152.505 53.4843 152.714 53.3376C152.923 53.191 153.081 52.9657 153.193 52.6582C153.304 52.3506 153.394 51.9072 153.47 51.3171L155.501 36.7803C155.526 36.5121 155.493 36.2224 155.407 35.9184C155.321 35.6109 155.166 35.3355 154.946 35.0924L154.942 35.1031Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M142.42 34.9207C142.1 34.7741 141.65 34.6346 141.07 34.4987C140.49 34.3664 139.882 34.2985 139.241 34.2985H139.205C138.514 34.2985 137.855 34.3485 137.228 34.4451C136.602 34.5452 136.015 34.7026 135.471 34.9207L134.474 35.3248C134.254 35.0566 133.938 34.8241 133.531 34.6275C133.124 34.4308 132.663 34.3342 132.152 34.3342C131.514 34.3342 130.953 34.4093 130.463 34.5559C129.973 34.7026 129.545 34.8742 129.178 35.0709C128.738 35.2926 128.357 35.5251 128.04 35.7682C127.99 35.8183 127.918 35.9399 127.82 36.1366C127.723 36.3333 127.662 36.4906 127.637 36.6122L127.414 38.1893C127.363 38.5326 127.424 38.8079 127.597 39.0153C127.77 39.2228 128.026 39.3265 128.368 39.3265H129.21L126.117 61.2766C126.042 61.8381 126.002 62.2743 125.988 62.5783C125.973 62.8823 126.042 63.1111 126.193 63.2578C126.341 63.4044 126.567 63.4902 126.877 63.5152C127.187 63.5403 127.622 63.551 128.184 63.551H128.587C129.149 63.551 129.606 63.5367 129.963 63.5152C130.315 63.4902 130.593 63.4044 130.787 63.2578C130.982 63.1111 131.136 62.8859 131.248 62.5783C131.36 62.2708 131.45 61.8381 131.522 61.2766L134.546 40.1347C134.866 39.938 135.284 39.7306 135.803 39.5124C136.418 39.2442 136.973 39.0976 137.466 39.0726C137.725 39.0583 137.948 39.0583 138.147 39.0654C138.399 39.0654 138.625 39.0797 138.795 39.1083C139.313 39.1834 139.706 39.3408 139.976 39.5839C140.246 39.8271 140.451 40.1347 140.584 40.4994C140.717 40.8678 140.786 41.2754 140.786 41.7296C140.786 42.1838 140.76 42.6415 140.714 43.1064C140.663 43.6464 140.577 44.1971 140.454 44.7586C140.332 45.3236 140.159 45.86 139.936 46.375C139.713 46.8899 139.432 47.3548 139.086 47.7697C138.741 48.1881 138.323 48.5028 137.83 48.7245C137.56 48.9212 136.955 49.0177 136.019 49.0177C135.986 49.0177 135.957 49.0177 135.921 49.0177C135.889 49.0177 135.867 49.0177 135.835 49.0177C135.425 49.0177 135.043 49.0034 134.668 48.9855L133.966 53.7882H135.097C135.615 53.7882 136.101 53.7704 136.555 53.7346C137.012 53.6988 137.484 53.6202 137.977 53.495C138.593 53.3484 139.338 53.0837 140.213 52.7047C141.088 52.3256 141.92 51.6962 142.708 50.8129C143.497 49.9547 144.192 48.9283 144.797 47.7303C145.401 46.5323 145.801 45.2485 145.999 43.8753C146.294 41.7225 146.14 39.8736 145.538 38.3323C144.933 36.791 143.893 35.6538 142.417 34.9171L142.42 34.9207Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8839\"><rect width=\"197\" height=\"64\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingNaming: '<svg id=\"wappingNaming\" width=\"145\" height=\"40\" viewBox=\"0 0 145 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8840)\"><path id=\"path\" d=\"M52.4312 20.1687C52.0606 20.1579 51.557 20.1507 50.9167 20.1507H50.4382C50.0209 20.1507 49.6756 20.1651 49.4058 20.1867C49.1359 20.2119 48.9021 20.2984 48.7042 20.4461C48.2114 20.3236 47.7689 20.2479 47.3732 20.2227C46.9811 20.1975 46.4379 20.1867 45.7508 20.1867C44.7399 20.1867 43.7794 20.2984 42.8692 20.5181C41.8368 20.7883 40.8619 21.2278 39.9517 21.8295C39.0416 22.4347 38.2358 23.1588 37.5343 24.0126C36.8328 24.8628 36.2464 25.8175 35.7823 26.8767C35.3147 27.9358 34.9945 29.0454 34.8218 30.2054C34.5268 32.349 34.6779 34.2115 35.2823 35.7894C35.8867 37.3674 36.9263 38.513 38.4013 39.2299C38.6962 39.3524 39.0308 39.4713 39.3977 39.5829C39.7683 39.6946 40.1964 39.7739 40.6892 39.8243H40.7252C40.8475 39.8495 40.9878 39.8603 41.1497 39.8603H41.6857C43.0383 39.8603 44.2722 39.6514 45.3766 39.2299C45.6716 39.1542 46.0026 39.0209 46.3731 38.8228C46.7652 39.392 47.4919 39.709 48.5496 39.7847C48.9669 39.8099 49.3734 39.8099 49.7691 39.7847C50.1612 39.7595 50.5245 39.7234 50.8591 39.673C51.1901 39.6226 51.4743 39.5685 51.7081 39.5073C51.9419 39.446 52.0966 39.4028 52.1686 39.3776H52.1326C52.4779 39.2551 52.7118 39.1146 52.8341 38.9525C52.9564 38.794 53.0427 38.5778 53.0931 38.3076L53.3161 36.791C53.3665 36.4703 53.2981 36.2001 53.1111 35.9768C52.9276 35.7534 52.6614 35.6453 52.3161 35.6453H51.5426L53.3881 22.4815C53.4636 21.8655 53.4996 21.3972 53.4996 21.0765C53.4996 20.7559 53.4133 20.5289 53.2406 20.392C53.0679 20.2587 52.7981 20.1831 52.4276 20.1723L52.4312 20.1687ZM46.3012 34.1647C46.1753 34.2151 46.0422 34.2692 45.8947 34.3304C45.7472 34.3916 45.4882 34.4853 45.1176 34.6078C44.4269 34.8059 43.8441 34.9284 43.3657 34.9789C42.8872 35.0293 42.5239 35.0293 42.2757 34.9789C41.7828 34.9068 41.3943 34.7447 41.1137 34.4997C40.8295 34.2547 40.628 33.9521 40.5057 33.5955C40.3834 33.2388 40.3151 32.8389 40.3007 32.3922C40.2863 31.9491 40.3079 31.4916 40.3582 31.0232C40.4302 30.2847 40.5597 29.557 40.7468 28.8401C40.9302 28.1232 41.2072 27.4855 41.5778 26.9163C41.9483 26.3507 42.4088 25.8932 42.9628 25.5473C43.5168 25.2015 44.2003 25.0286 45.0133 25.0286C45.5061 25.0286 45.9666 25.0466 46.3983 25.0826C46.83 25.1186 47.2149 25.1618 47.5603 25.2123L46.3048 34.1611L46.3012 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M42.7146 0.959747C40.2216 -0.0561787 39.0164 1.62983 38.8222 2.03692L22.7453 33.8945L19.4285 18.0576C19.2702 17.3298 19.0796 16.7931 18.8601 16.4472C18.6407 16.1014 17.2449 14.2532 14.7986 15.0134C12.0934 15.8564 12.3884 17.8991 12.3272 18.4358C12.2948 18.688 12.32 18.9654 12.3992 19.2644C12.4783 19.567 12.5503 19.8877 12.6114 20.2371C12.6114 20.2371 16.4139 35.5337 16.86 37.1692C17.1262 37.969 17.2269 38.3184 17.3708 38.6319C17.5111 38.9489 17.6622 39.2335 17.8205 39.4857C18.2629 40.3071 19.0508 40.8619 20.1876 41.1465C20.4394 41.2077 20.7164 41.2581 21.015 41.287C21.3136 41.3194 21.5906 41.3338 21.8424 41.3338C22.6014 41.3338 23.3245 41.1681 24.0224 40.8366C24.7167 40.5052 25.3642 40.0549 25.9614 39.4857C26.3391 39.1074 26.6629 38.7255 26.9327 38.3473C27.1989 37.969 27.4615 37.5583 27.7134 37.1152L44.3226 4.86494C44.3982 4.71363 45.6501 2.1522 42.711 0.956145L42.7146 0.959747Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.2336 30.3387C11.917 31.034 11.6005 31.7149 11.2875 32.3778C10.9709 33.0407 10.6723 33.6099 10.3881 34.0854L7.16844 18.1548C7.01015 17.6505 6.6648 17.1497 6.12878 16.6598C5.59277 16.1698 4.8481 15.9248 3.90198 15.9248C3.08177 15.9248 1.86585 16.0329 0.944913 17.1893C-0.429299 18.9114 0.77943 22.3698 0.77943 22.3698C1.50611 25.4356 2.08889 27.871 2.53137 29.6723C2.97385 31.4735 3.3192 32.8894 3.57102 33.9161C3.82284 34.9428 4.0135 35.6777 4.13941 36.1209C4.26532 36.564 4.39123 36.9567 4.51714 37.3061H4.47038C4.56391 37.6556 4.68982 38.0266 4.84811 38.4193C5.00639 38.8156 5.17907 39.1686 5.36973 39.4857C5.93812 40.3071 6.74394 40.8619 7.7836 41.1465C8.03542 41.2077 8.30522 41.2581 8.58942 41.287C8.87362 41.3194 9.13982 41.3338 9.39524 41.3338C10.1831 41.3338 10.9421 41.1753 11.6688 40.8582C12.3955 40.5412 13.025 40.0693 13.561 39.4352C13.7193 39.2767 13.892 39.0786 14.0827 38.8444C14.2733 38.6066 14.446 38.3473 14.6043 38.0627L15.2123 37.0323L13.0142 28.6131C12.7588 29.1787 12.4998 29.7479 12.2336 30.3351V30.3387Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M73.7567 24.1423C73.1524 22.5896 72.1127 21.444 70.6378 20.7019C70.3176 20.5542 69.8679 20.4137 69.2887 20.2768C68.7096 20.1435 68.1016 20.075 67.4612 20.075H67.4253C66.7346 20.075 66.0762 20.1254 65.4503 20.2227C64.8243 20.3236 64.238 20.4821 63.6948 20.7019L62.6983 21.1089C62.4788 20.8388 62.1623 20.6046 61.7557 20.4064C61.3492 20.2083 60.8888 20.111 60.3779 20.111C59.7412 20.111 59.18 20.1867 58.6908 20.3344C58.2015 20.4821 57.7734 20.655 57.4065 20.8532C56.9676 21.0765 56.5863 21.3107 56.2697 21.5557C56.2193 21.6061 56.1474 21.7286 56.0503 21.9267C55.9531 22.1249 55.892 22.2834 55.8668 22.4059L55.6437 23.9946C55.5934 24.3405 55.6545 24.6179 55.8272 24.8268C55.9999 25.0358 56.2553 25.1402 56.5971 25.1402H57.4389L54.3487 47.2528C54.2731 47.8184 54.2336 48.2579 54.2192 48.5642C54.2048 48.8704 54.2731 49.101 54.4242 49.2487C54.5717 49.3964 54.7983 49.4828 55.1077 49.508C55.4171 49.5333 55.8524 49.5441 56.4136 49.5441H56.8165C57.3777 49.5441 57.8346 49.5297 58.1907 49.508C58.5433 49.4828 58.8203 49.3964 59.0145 49.2487C59.2088 49.101 59.3635 48.874 59.475 48.5642C59.5865 48.2543 59.6764 47.8184 59.7484 47.2528L62.7702 25.9544C63.0904 25.7563 63.5077 25.5473 64.0257 25.3276C64.6409 25.0574 65.1949 24.9097 65.6877 24.8844C66.1806 24.8592 66.5619 24.8736 66.8317 24.9205C67.3497 24.9961 67.7418 25.1546 68.0152 25.3996C68.2851 25.6446 68.4901 25.9544 68.6232 26.3219C68.7563 26.6929 68.8247 27.1036 68.8247 27.5612C68.8247 28.0187 68.7995 28.4798 68.7491 28.9482C68.6988 29.4921 68.6124 30.0469 68.4901 30.6125C68.3678 31.1817 68.1951 31.7221 67.9721 32.2409C67.749 32.7597 67.4684 33.228 67.1231 33.6459C66.7777 34.0674 66.3604 34.3844 65.8676 34.6078C65.5978 34.8059 64.9934 34.9032 64.0581 34.9032C63.648 34.9032 63.2667 34.8888 62.8925 34.8708L62.191 39.709H63.3206C63.8387 39.709 64.3243 39.691 64.7776 39.655C65.2344 39.619 65.7057 39.5397 66.1986 39.4136C66.8137 39.2659 67.5584 38.9993 68.4326 38.6175C69.3067 38.2356 70.1377 37.6015 70.9256 36.7117C71.7134 35.8471 72.4077 34.8131 73.0121 33.6063C73.6164 32.3994 74.0157 31.1061 74.2136 29.7227C74.5086 27.554 74.3539 25.6914 73.7531 24.1387L73.7567 24.1423Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M103.996 10.6831C103.59 10.6579 103.029 10.6471 102.316 10.6471C101.676 10.6471 101.165 10.6615 100.784 10.6831C100.403 10.7083 100.1 10.8056 99.8809 10.9785C99.6579 11.1514 99.4924 11.4108 99.3809 11.7531C99.2694 12.0989 99.1758 12.6033 99.1039 13.2697L99.0319 13.8966C98.9564 14.5883 98.9204 15.1107 98.9204 15.4673C98.9204 15.824 99.0139 16.0833 99.1974 16.2455C99.3809 16.4076 99.6723 16.4904 100.064 16.5048C100.457 16.5193 101.011 16.5229 101.726 16.5229C102.367 16.5229 102.885 16.5121 103.277 16.4868C103.669 16.4616 103.978 16.3643 104.198 16.1914C104.421 16.0185 104.586 15.7591 104.698 15.4169C104.809 15.071 104.903 14.5667 104.975 13.9002L105.05 13.2733C105.122 12.6069 105.162 12.0953 105.162 11.7386C105.162 11.382 105.068 11.1226 104.885 10.9605C104.701 10.802 104.406 10.7083 104 10.6831H103.996Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M144.741 20.392C144.568 20.2587 144.298 20.1831 143.928 20.1723C143.557 20.1615 143.043 20.1543 142.377 20.1543H142.118C141.626 20.1543 141.226 20.1723 140.917 20.2083C140.607 20.2443 140.356 20.3488 140.161 20.5217C140.212 20.5938 140.147 20.5938 139.978 20.5217C139.805 20.4461 139.658 20.3884 139.535 20.338C139.51 20.338 139.485 20.3308 139.464 20.32C139.438 20.3092 139.413 20.302 139.388 20.302C139.165 20.2515 138.866 20.2227 138.481 20.2083C138.1 20.1975 137.686 20.1903 137.244 20.1903C136.233 20.1903 135.287 20.302 134.402 20.5217C133.787 20.6694 133.031 20.954 132.132 21.3719C131.233 21.7934 130.416 22.4059 129.675 23.2201C128.887 24.0847 128.186 25.1114 127.57 26.3075C126.955 27.5035 126.549 28.804 126.351 30.209C126.056 32.3526 126.207 34.2151 126.811 35.793C127.416 37.371 128.455 38.5166 129.93 39.2335C130.2 39.356 130.52 39.4749 130.891 39.5865C131.261 39.6982 131.679 39.7775 132.146 39.8279C132.269 39.8531 132.416 39.8639 132.589 39.8639H133.143C134.474 39.8639 135.729 39.655 136.909 39.2335H136.873L137.093 39.1578L136.686 42.3389C136.611 42.9802 136.366 43.4485 135.949 43.7439C135.532 44.0393 135.003 44.2483 134.362 44.3744C134.143 44.4248 133.884 44.4608 133.589 44.4861C133.294 44.5113 132.985 44.5221 132.664 44.5221C131.999 44.5221 131.341 44.4788 130.689 44.3924C130.038 44.3059 129.563 44.2375 129.268 44.1906C128.973 44.1402 128.75 44.097 128.603 44.0609C128.455 44.0249 128.283 44.0069 128.085 44.0069C127.52 44.0069 127.07 44.1978 126.736 44.5797C126.405 44.9616 126.052 45.5488 125.685 46.3378C125.563 46.608 125.459 46.8565 125.372 47.0763C125.286 47.2997 125.229 47.4942 125.207 47.6671C125.157 47.9373 125.182 48.1535 125.279 48.3156C125.376 48.4777 125.556 48.6182 125.815 48.7407C126.074 48.8632 126.423 48.9821 126.865 49.0937C127.308 49.2054 127.851 49.3351 128.491 49.4828C128.934 49.5333 129.416 49.5801 129.93 49.6305C130.448 49.681 131.013 49.7062 131.628 49.7062C131.949 49.7062 132.355 49.681 132.848 49.6305C133.341 49.5801 133.852 49.508 134.38 49.4108C134.909 49.3099 135.431 49.1946 135.949 49.0577C136.467 48.9208 136.935 48.7551 137.352 48.5606C138.582 47.9914 139.629 47.1988 140.489 46.1757C141.352 45.1525 141.903 43.7908 142.151 42.0903L144.885 22.4923C144.957 21.8763 144.996 21.408 144.996 21.0873C144.996 20.7667 144.91 20.5397 144.737 20.4028L144.741 20.392ZM137.798 34.1647C137.625 34.2367 137.453 34.3088 137.28 34.3664C137.107 34.4277 136.884 34.5105 136.614 34.6078C135.974 34.8312 135.413 34.9572 134.934 34.9969C134.456 35.0329 134.078 35.0293 133.808 34.9789C133.29 34.9068 132.887 34.7519 132.589 34.5177C132.294 34.2836 132.085 33.9809 131.963 33.6135C131.841 33.2424 131.772 32.8389 131.758 32.3922C131.743 31.9491 131.765 31.4916 131.815 31.0232C131.887 30.4576 131.981 29.8848 132.092 29.3048C132.204 28.7248 132.369 28.1844 132.589 27.6764C132.812 27.1721 133.089 26.7146 133.42 26.3075C133.751 25.9004 134.165 25.5869 134.657 25.3636C134.855 25.2663 135.118 25.1835 135.452 25.1222C135.783 25.061 136.136 25.0285 136.503 25.0285C136.87 25.0285 137.204 25.0358 137.499 25.0466C137.794 25.0574 138.079 25.0898 138.348 25.1402C138.471 25.1654 138.589 25.1943 138.701 25.2339C138.812 25.2699 138.927 25.3023 139.053 25.3276L137.798 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M123.473 35.6057H122.696L124.063 25.8427C124.358 23.7496 123.958 22.2438 122.861 21.3323C121.764 20.4209 119.85 19.9886 117.12 20.039C116.479 20.039 115.897 20.0642 115.368 20.111C114.839 20.1615 114.389 20.2227 114.019 20.2948C113.796 20.3452 113.533 20.4101 113.224 20.4965C112.914 20.583 112.652 20.6874 112.429 20.8099C111.961 20.2948 111.245 20.0354 110.288 20.0354C109.648 20.0354 109.076 20.1074 108.572 20.2551C108.069 20.4028 107.63 20.5758 107.263 20.7739C106.82 20.9973 106.439 21.2314 106.119 21.4764C105.996 21.5989 105.903 21.743 105.842 21.9015C105.781 22.0636 105.737 22.1933 105.712 22.2906L105.489 23.8793C105.439 24.2252 105.507 24.5062 105.694 24.7295C105.878 24.9529 106.144 25.061 106.489 25.061H107.302L106.824 28.2781L105.532 37.2269C105.457 37.7204 105.421 38.1203 105.421 38.4265C105.421 38.7327 105.489 38.9777 105.626 39.147C105.763 39.32 105.964 39.4316 106.234 39.4785C106.504 39.5289 106.874 39.5505 107.342 39.5505H108.669C109.112 39.5505 109.475 39.5181 109.759 39.4569C110.04 39.3956 110.263 39.2767 110.425 39.1074C110.583 38.9345 110.706 38.6967 110.795 38.3869C110.882 38.0807 110.961 37.6916 111.036 37.2233L112.698 25.3528C113.314 25.2555 113.947 25.1691 114.601 25.0934C115.253 25.0177 115.911 25.0069 116.576 25.0574C117.242 25.1078 117.738 25.2555 118.073 25.5005C118.404 25.7455 118.523 26.1778 118.426 26.7938L117.059 36.5208C117.033 36.6685 117.023 36.9098 117.023 37.2413C117.023 37.5727 117.095 37.915 117.246 38.2572C117.393 38.603 117.645 38.9165 118.001 39.2011C118.357 39.4857 118.882 39.6622 119.57 39.7379C120.505 39.8351 121.278 39.8243 121.897 39.7018C122.512 39.5793 122.883 39.4929 123.005 39.4424C123.325 39.2947 123.602 39.1398 123.836 38.9813C124.07 38.8228 124.21 38.5814 124.261 38.2608L124.48 36.7441C124.53 36.4235 124.462 36.1533 124.279 35.9299C124.091 35.7066 123.829 35.5985 123.484 35.5985L123.473 35.6057Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M102.978 20.8892C102.759 20.6442 102.468 20.4389 102.112 20.2803C101.755 20.1218 101.331 20.039 100.838 20.039C100.198 20.039 99.6257 20.111 99.1221 20.2587C98.6184 20.4064 98.1795 20.5685 97.8126 20.7379C97.3701 20.9612 96.9888 21.1954 96.6686 21.4404C96.5463 21.5124 96.442 21.6313 96.3557 21.7898C96.2693 21.9519 96.2118 22.1177 96.1902 22.287L95.9707 23.8757C95.9204 24.2216 95.9959 24.5026 96.1902 24.7259C96.388 24.9493 96.647 25.0574 96.9636 25.0574H97.8126L96.0787 37.2232C96.0031 37.8141 95.9599 38.2644 95.9491 38.5742C95.9348 38.884 96.0031 39.111 96.1542 39.2587C96.3017 39.4064 96.5283 39.4929 96.8377 39.5181C97.1435 39.5433 97.5824 39.5541 98.1472 39.5541H98.5537C99.1185 39.5541 99.5753 39.5433 99.9207 39.5181C100.266 39.4929 100.543 39.4064 100.752 39.2587C100.96 39.111 101.119 38.884 101.23 38.5742C101.342 38.2644 101.432 37.8177 101.507 37.2232L103.536 22.5788C103.561 22.3086 103.529 22.0168 103.443 21.7106C103.356 21.4007 103.202 21.1233 102.982 20.8784L102.978 20.8892Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M90.4664 20.7055C90.1462 20.5578 89.6965 20.4173 89.1173 20.2804C88.5382 20.1471 87.9302 20.0786 87.2899 20.0786H87.2539C86.5632 20.0786 85.9049 20.129 85.2789 20.2263C84.653 20.3272 84.0666 20.4857 83.5234 20.7055L82.5269 21.1126C82.3074 20.8424 81.9909 20.6082 81.5844 20.41C81.1778 20.2119 80.7174 20.1146 80.2066 20.1146C79.5698 20.1146 79.0086 20.1903 78.5194 20.338C78.0301 20.4857 77.602 20.6586 77.2351 20.8568C76.7962 21.0801 76.4149 21.3143 76.0983 21.5593C76.0479 21.6097 75.976 21.7322 75.8789 21.9303C75.7817 22.1285 75.7206 22.287 75.6954 22.4095L75.4723 23.9982C75.422 24.3441 75.4831 24.6215 75.6558 24.8304C75.8285 25.0394 76.0839 25.1438 76.4257 25.1438H77.2675L74.1773 47.2564C74.1017 47.822 74.0622 48.2615 74.0478 48.5678C74.0334 48.874 74.1017 49.1045 74.2528 49.2523C74.4003 49.4 74.627 49.4864 74.9363 49.5116C75.2457 49.5369 75.681 49.5477 76.2422 49.5477H76.6451C77.2063 49.5477 77.6632 49.5333 78.0193 49.5116C78.3719 49.4864 78.6489 49.4 78.8431 49.2523C79.0374 49.1045 79.1921 48.8776 79.3036 48.5678C79.4151 48.2579 79.5051 47.822 79.577 47.2564L82.5988 25.958C82.919 25.7599 83.3363 25.5509 83.8543 25.3312C84.4695 25.061 85.0235 24.9133 85.5163 24.888C85.7753 24.8736 85.9984 24.8736 86.1962 24.8808C86.4481 24.8808 86.6747 24.8953 86.8438 24.9241C87.3618 24.9997 87.7539 25.1582 88.0237 25.4032C88.2935 25.6482 88.4986 25.958 88.6317 26.3255C88.7648 26.6965 88.8331 27.1072 88.8331 27.5648C88.8331 28.0223 88.808 28.4834 88.7612 28.9518C88.7108 29.4957 88.6245 30.0505 88.5022 30.6161C88.3799 31.1853 88.2072 31.7257 87.9842 32.2445C87.7611 32.7633 87.4805 33.2316 87.1352 33.6495C86.7898 34.071 86.3725 34.388 85.8797 34.6114C85.6099 34.8095 85.0055 34.9068 84.0702 34.9068C84.0378 34.9068 84.009 34.9068 83.973 34.9068C83.9407 34.9068 83.9191 34.9068 83.8867 34.9068C83.4766 34.9068 83.0953 34.8924 82.7211 34.8744L82.0196 39.7126H83.1492C83.6673 39.7126 84.1529 39.6946 84.6062 39.6586C85.0631 39.6226 85.5343 39.5433 86.0272 39.4172C86.6423 39.2695 87.387 39.0029 88.2612 38.6211C89.1353 38.2392 89.9663 37.6051 90.7542 36.7153C91.542 35.8507 92.2363 34.8167 92.8407 33.6099C93.445 32.403 93.8444 31.1097 94.0422 29.7263C94.3372 27.5576 94.1825 25.695 93.5817 24.1423C92.9774 22.5896 91.9377 21.444 90.4628 20.7019L90.4664 20.7055Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8840\"><rect width=\"145\" height=\"50\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingIsotype: '<svg id=\"wappingIsotype\" width=\"45\" height=\"55\" viewBox=\"0 0 45 55\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8841)\"><path id=\"path\" d=\"M41.5017 43.839C41.4513 44.1867 41.3757 44.5345 41.2461 44.8644C40.9688 45.56 40.4143 46.0368 39.705 46.2735C39.5069 46.338 39.2945 46.3918 39.1216 46.5137C39.0244 46.5818 39.01 46.7754 38.8984 46.8005C38.7184 46.84 38.7472 46.6786 38.7112 46.5711C38.6463 46.3774 38.3835 46.2412 38.2215 46.148C37.5697 45.7679 37.1016 45.1907 36.972 44.4413C36.918 44.133 36.756 42.7311 37.2313 42.7454C37.5913 42.7562 37.9586 42.8279 38.3187 42.8709C39.3053 42.9856 40.2919 43.1004 41.2785 43.2187C41.6494 43.2617 41.5485 43.5593 41.5053 43.8461L41.5017 43.839ZM36.756 53.9032C33.8718 52.842 32.4099 51.0062 33.2308 49.0916C33.8862 47.5606 34.4155 46.0261 34.4155 44.2943C34.4155 38.5541 29.7417 33.9002 23.9769 33.9002C18.2121 33.9002 13.5383 38.5541 13.5383 44.2943C13.5383 49.5649 17.2759 53.6809 22.2629 54.5486C22.6302 54.6132 24.4162 54.7637 24.8339 54.7637H36.4463C36.9828 54.8426 37.1952 54.1506 36.7632 53.8997L36.756 53.9032ZM44.2239 33.6564C43.8026 35.3702 42.1679 35.9546 40.6124 36.3634C38.722 36.8617 36.7452 36.8402 35.0312 35.9403C33.933 35.363 32.1434 34.0938 31.6753 31.2039C31.3008 28.8878 32.237 27.3568 33.094 26.1628C33.5333 25.5497 34.3579 24.9546 35.1212 24.5458C36.2482 23.9399 36.5291 23.9686 36.756 25.202C36.9396 26.1987 37.7101 26.9911 38.6247 27.364C40.0218 27.934 41.3289 28.6691 42.3947 29.7662C43.4497 30.8526 44.6236 32.0465 44.2239 33.66V33.6564ZM40.2955 31.6987C40.2955 30.9924 39.7194 30.4152 39.0064 30.4152C38.2935 30.4152 37.7174 30.9888 37.7174 31.6987C37.7174 32.4086 38.2935 32.9823 39.0064 32.9823C39.7194 32.9823 40.2955 32.4086 40.2955 31.6987ZM16.6098 32.7421C19.5012 30.5514 22.371 28.3105 25.1003 25.9226C30.289 21.3907 31.5853 13.6892 28.323 7.65133C25.1507 1.77483 17.9889 -1.25844 11.4247 0.494834C4.63368 2.30906 0.298381 8.20348 0.507224 15.611C0.989724 15.654 1.57305 15.4675 2.03754 15.2919C5.15219 14.1051 8.18762 14.3776 10.7838 16.744C13.2107 18.9526 13.8768 22.0504 12.8146 25.4314C11.954 28.2388 10.9242 30.9924 9.98439 33.7783C8.83935 37.1737 8.5513 40.5296 10.791 44.6493C10.2508 38.823 12.9262 35.5387 16.6134 32.7457L16.6098 32.7421ZM41.012 41.0352C40.5835 40.7591 40.3279 40.5296 39.5357 40.4436C38.776 40.3611 38.1963 40.5511 37.8254 40.777C37.3429 41.071 37.134 41.2467 36.9828 41.5622C36.8496 41.8383 36.9504 42.2184 37.2961 42.2578C38.1098 42.3546 38.9272 42.4478 39.741 42.5446C40.1911 42.5984 40.6448 42.6486 41.0949 42.7024C41.2137 42.7167 41.3325 42.7382 41.4513 42.7418C41.8006 42.7526 41.923 42.1753 41.7862 41.9459C41.5594 41.555 41.4045 41.2897 41.0084 41.0352H41.012Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8841\"><rect width=\"44\" height=\"55\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>',\r\n wappingIsotype2: '<svg id=\"wappingIsotype2\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8842)\"><path id=\"path\" d=\"M42.3339 0.926238C39.9109 -0.0542108 38.7396 1.57292 38.5508 1.96579L22.9255 32.7109L19.7018 17.427C19.548 16.7247 19.3627 16.2066 19.1494 15.8729C18.9361 15.5391 17.5795 13.7555 15.202 14.4891C12.5727 15.3027 12.8594 17.274 12.8 17.792C12.7685 18.0354 12.793 18.3031 12.8699 18.5917C12.9468 18.8838 13.0167 19.1932 13.0762 19.5304C13.0762 19.5304 16.7719 34.2928 17.2054 35.8713C17.4641 36.6431 17.562 36.9803 17.7019 37.2828C17.8383 37.5888 17.9851 37.8634 18.1389 38.1068C18.569 38.8995 19.3347 39.4349 20.4396 39.7096C20.6843 39.7687 20.9535 39.8174 21.2437 39.8452C21.5339 39.8765 21.8031 39.8904 22.0479 39.8904C22.7856 39.8904 23.4884 39.7305 24.1667 39.4106C24.8415 39.0907 25.4708 38.6561 26.0512 38.1068C26.4184 37.7418 26.733 37.3732 26.9953 37.0082C27.254 36.6431 27.5092 36.2467 27.754 35.8191L43.8968 4.69506C43.9702 4.54903 45.1869 2.07705 42.3304 0.922762L42.3339 0.926238Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.7091 29.2793C12.4015 29.9503 12.0938 30.6074 11.7896 31.2472C11.4819 31.8869 11.1917 32.4362 10.9155 32.8951L7.78623 17.5209C7.63239 17.0341 7.29674 16.5508 6.77578 16.078C6.25482 15.6052 5.53107 15.3687 4.61152 15.3687C3.81434 15.3687 2.63257 15.473 1.7375 16.5891C0.401884 18.251 1.57667 21.5887 1.57667 21.5887C2.28293 24.5474 2.84935 26.8977 3.2794 28.6361C3.70945 30.3745 4.04511 31.7409 4.28985 32.7317C4.5346 33.7226 4.71991 34.4319 4.84228 34.8595C4.96465 35.2872 5.08703 35.6661 5.2094 36.0034H5.16395C5.25485 36.3406 5.37723 36.6987 5.53107 37.0777C5.68491 37.4601 5.85273 37.8009 6.03804 38.1068C6.59047 38.8995 7.37366 39.4349 8.38411 39.7096C8.62886 39.7687 8.89109 39.8174 9.1673 39.8452C9.44352 39.8765 9.70225 39.8904 9.95049 39.8904C10.7162 39.8904 11.4539 39.7374 12.1602 39.4315C12.8665 39.1255 13.4783 38.6701 13.9993 38.0581C14.1531 37.9052 14.321 37.7139 14.5063 37.488C14.6916 37.2585 14.8594 37.0082 15.0132 36.7335L15.6041 35.7391L13.4678 27.6139C13.2196 28.1598 12.9679 28.7091 12.7091 29.2758V29.2793Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8842\"><rect width=\"44\" height=\"40\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>', \r\n itx: '<svg width=\"164\" height=\"32\" viewBox=\"0 0 164 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_6798_515)\"><path d=\"M26.6038 4.78003C31.5538 4.78003 35.2138 7.57003 35.6938 12.1H31.9438C31.1938 9.25003 29.4238 7.84003 26.6038 7.84003C22.5237 7.84003 20.0938 11.23 20.0938 16C20.0938 20.74 22.4938 24.16 26.6038 24.16C29.6638 24.16 31.6738 22 32.0638 18.55H35.7238C35.3338 23.68 31.8838 27.22 26.6038 27.22C23.5738 27.22 21.1138 26.14 19.1937 24.04C17.3037 21.91 16.3438 19.21 16.3438 16C16.3438 9.88003 20.1537 4.78003 26.6038 4.78003Z\" fill=\"black\"/><path d=\"M40.3341 5.29003H44.0841V15.04L53.6241 5.29003H58.2441L49.6941 13.84L58.8441 26.71H54.1641L47.1441 16.48L44.0841 19.51V26.71H40.3341V5.29003Z\" fill=\"black\"/><path d=\"M62.0713 5.29003H71.6713C76.2613 5.29003 78.8113 7.81003 78.8113 11.92C78.8113 16.09 76.2013 18.49 71.6713 18.49H65.8213V26.71H62.0713V5.29003ZM65.8213 15.43H71.4013C73.3813 15.43 75.0613 14.23 75.0613 11.89C75.0613 9.49003 73.7713 8.35003 71.4913 8.35003H65.8213V15.43Z\" fill=\"black\"/></g><rect width=\"30\" height=\"1\" transform=\"matrix(0 -1 1 0 86.8115 31)\" fill=\"black\"/><g clip-path=\"url(#clip1_6798_515)\"><path d=\"M98.5075 3.02393C99.6275 3.02393 100.66 3.71193 100.804 4.87193H100.26C100.068 3.99993 99.3475 3.48793 98.5075 3.48793C97.0115 3.48793 96.3555 4.72793 96.3555 5.99993C96.3555 7.22393 96.9795 8.51193 98.5075 8.51193C99.4995 8.51193 100.228 7.76793 100.34 6.67993H100.884C100.732 8.11993 99.8115 8.97593 98.5075 8.97593C96.7315 8.97593 95.8115 7.59993 95.8115 5.99993C95.8115 4.44793 96.6915 3.02393 98.5075 3.02393Z\" fill=\"black\"/><path d=\"M101.98 3.14393H102.524V6.68793C102.524 7.83993 102.996 8.51193 104.196 8.51193C105.348 8.51193 105.876 7.91193 105.876 6.67993V3.14393H106.42V6.78393C106.42 8.11993 105.66 8.97593 104.196 8.97593C102.7 8.97593 101.98 8.07193 101.98 6.78393V3.14393Z\" fill=\"black\"/><path d=\"M109.689 3.02393C110.897 3.02393 111.809 3.67193 111.809 4.79993H111.265C111.225 3.95193 110.545 3.48793 109.697 3.48793C108.921 3.48793 108.273 3.80793 108.273 4.62393C108.273 5.21593 108.753 5.39993 109.073 5.47993L110.465 5.82393C111.569 6.09593 112.009 6.58393 112.009 7.34393C112.009 7.90393 111.705 8.97593 109.825 8.97593C108.417 8.97593 107.545 8.32793 107.545 7.11993V6.97593H108.089V7.02393C108.089 8.07193 108.801 8.51193 109.937 8.51193C110.585 8.51193 111.465 8.16793 111.465 7.35193C111.465 6.83193 111.065 6.51193 110.321 6.32793L109.017 6.00793C108.169 5.79993 107.729 5.39993 107.729 4.63193C107.729 3.98393 108.177 3.02393 109.689 3.02393Z\" fill=\"black\"/><path d=\"M112.576 3.14393H117.104V3.60793H115.112V8.85593H114.568V3.60793H112.576V3.14393Z\" fill=\"black\"/><path d=\"M120.349 3.02393C122.125 3.02393 123.037 4.41593 123.037 5.99993C123.037 7.54393 122.157 8.97593 120.349 8.97593C118.565 8.97593 117.653 7.59193 117.653 5.99993C117.653 4.42393 118.557 3.02393 120.349 3.02393ZM118.197 5.99993C118.197 7.25593 118.845 8.51193 120.349 8.51193C121.837 8.51193 122.493 7.26393 122.493 5.99993C122.493 4.75993 121.861 3.48793 120.341 3.48793C118.901 3.48793 118.197 4.67193 118.197 5.99993Z\" fill=\"black\"/><path d=\"M124.191 3.14393H124.991L126.967 8.15193L128.935 3.14393H129.735V8.85593H129.191V3.91993H129.175L127.223 8.85593H126.711L124.751 3.91993H124.735V8.85593H124.191V3.14393Z\" fill=\"black\"/><path d=\"M131.191 3.14393H135.135V3.60793H131.735V5.67193H134.919V6.13593H131.735V8.39193H135.175V8.85593H131.191V3.14393Z\" fill=\"black\"/><path d=\"M136.253 3.14393H138.853C139.877 3.14393 140.605 3.64793 140.605 4.63193C140.605 5.39193 140.197 5.94393 139.493 6.08793V6.10393C140.389 6.22393 140.477 6.93593 140.501 7.53593C140.517 7.92793 140.541 8.60793 140.757 8.85593H140.157C140.037 8.67193 140.021 8.19193 139.997 7.80793C139.965 7.24793 139.877 6.88793 139.685 6.63993C139.509 6.41593 139.245 6.31993 138.941 6.31993H136.797V8.85593H136.253V3.14393ZM136.797 5.85593H138.837C139.477 5.85593 140.061 5.44793 140.061 4.74393C140.061 4.00793 139.613 3.60793 138.837 3.60793H136.797V5.85593Z\" fill=\"black\"/><path d=\"M96.0835 13.1439H96.6275V16.2159L99.9475 13.1439H100.684L98.1315 15.5039L100.804 18.8559H100.1L97.7235 15.8799L96.6275 16.8959V18.8559H96.0835V13.1439Z\" fill=\"black\"/><path d=\"M101.583 13.1439H102.191L105.519 17.9759H105.535V13.1439H106.079V18.8559H105.471L102.143 14.0239H102.127V18.8559H101.583V13.1439Z\" fill=\"black\"/><path d=\"M109.936 13.0239C111.712 13.0239 112.624 14.4159 112.624 15.9999C112.624 17.5439 111.744 18.9759 109.936 18.9759C108.152 18.9759 107.24 17.5919 107.24 15.9999C107.24 14.4239 108.144 13.0239 109.936 13.0239ZM107.784 15.9999C107.784 17.2559 108.432 18.5119 109.936 18.5119C111.424 18.5119 112.08 17.2639 112.08 15.9999C112.08 14.7599 111.448 13.4879 109.928 13.4879C108.488 13.4879 107.784 14.6719 107.784 15.9999Z\" fill=\"black\"/><path d=\"M113.218 13.1439H113.802L115.098 18.1439H115.114L116.506 13.1439H117.186L118.586 18.1439H118.602L119.906 13.1439H120.45L118.874 18.8559H118.298L116.85 13.7439H116.834L115.394 18.8559H114.802L113.218 13.1439Z\" fill=\"black\"/><path d=\"M121.371 13.1439H121.915V18.3919H125.115V18.8559H121.371V13.1439Z\" fill=\"black\"/><path d=\"M125.988 13.1439H129.932V13.6079H126.532V15.6719H129.716V16.1359H126.532V18.3919H129.972V18.8559H125.988V13.1439Z\" fill=\"black\"/><path d=\"M131.05 13.1439H132.93C134.618 13.1439 135.65 13.9759 135.65 15.9999C135.65 17.8799 134.762 18.8559 132.922 18.8559H131.05V13.1439ZM131.594 18.3919H132.746C134.322 18.3919 135.106 17.7839 135.106 15.9999C135.106 14.2559 134.378 13.6079 132.73 13.6079H131.594V18.3919Z\" fill=\"black\"/><path d=\"M139.271 13.0239C140.495 13.0239 141.447 13.6959 141.655 14.9199H141.111C141.039 14.2159 140.303 13.4879 139.271 13.4879C137.759 13.4879 137.119 14.7519 137.119 15.9999C137.119 17.2639 137.767 18.5119 139.271 18.5119C140.447 18.5119 141.247 17.7359 141.247 16.4639V16.4159H139.303V15.9519H141.727V18.8559H141.335L141.263 17.8159H141.247C140.895 18.5679 140.175 18.9759 139.271 18.9759C137.503 18.9759 136.575 17.6079 136.575 15.9999C136.575 14.4319 137.471 13.0239 139.271 13.0239Z\" fill=\"black\"/><path d=\"M143.097 13.1439H147.041V13.6079H143.641V15.6719H146.825V16.1359H143.641V18.3919H147.081V18.8559H143.097V13.1439Z\" fill=\"black\"/><path d=\"M96.0835 23.1439H98.6275C99.6115 23.1439 100.316 23.7119 100.316 24.7759C100.316 25.8639 99.5795 26.4079 98.6275 26.4079H96.6275V28.8559H96.0835V23.1439ZM96.6275 25.9439H98.5075C99.2515 25.9439 99.7715 25.5759 99.7715 24.7759C99.7715 24.0639 99.3555 23.6079 98.4915 23.6079H96.6275V25.9439Z\" fill=\"black\"/><path d=\"M101.443 23.1439H101.987V28.3919H105.187V28.8559H101.443V23.1439Z\" fill=\"black\"/><path d=\"M107.731 23.1439H108.339L110.579 28.8559H109.995L109.299 27.0799H106.699L106.011 28.8559H105.427L107.731 23.1439ZM108.011 23.6879L106.867 26.6159H109.115L108.011 23.6879Z\" fill=\"black\"/><path d=\"M110.256 23.1439H114.784V23.6079H112.792V28.8559H112.248V23.6079H110.256V23.1439Z\" fill=\"black\"/><path d=\"M115.637 23.1439H119.261V23.6079H116.181V25.6719H118.917V26.1359H116.181V28.8559H115.637V23.1439Z\" fill=\"black\"/><path d=\"M122.646 23.0239C124.422 23.0239 125.334 24.4159 125.334 25.9999C125.334 27.5439 124.454 28.9759 122.646 28.9759C120.862 28.9759 119.95 27.5919 119.95 25.9999C119.95 24.4239 120.854 23.0239 122.646 23.0239ZM120.494 25.9999C120.494 27.2559 121.142 28.5119 122.646 28.5119C124.134 28.5119 124.79 27.2639 124.79 25.9999C124.79 24.7599 124.158 23.4879 122.638 23.4879C121.198 23.4879 120.494 24.6719 120.494 25.9999Z\" fill=\"black\"/><path d=\"M126.504 23.1439H129.104C130.128 23.1439 130.856 23.6479 130.856 24.6319C130.856 25.3919 130.448 25.9439 129.744 26.0879V26.1039C130.64 26.2239 130.728 26.9359 130.752 27.5359C130.768 27.9279 130.792 28.6079 131.008 28.8559H130.408C130.288 28.6719 130.272 28.1919 130.248 27.8079C130.216 27.2479 130.128 26.8879 129.936 26.6399C129.76 26.4159 129.496 26.3199 129.192 26.3199H127.048V28.8559H126.504V23.1439ZM127.048 25.8559H129.088C129.728 25.8559 130.312 25.4479 130.312 24.7439C130.312 24.0079 129.864 23.6079 129.088 23.6079H127.048V25.8559Z\" fill=\"black\"/><path d=\"M132.143 23.1439H132.943L134.919 28.1519L136.887 23.1439H137.687V28.8559H137.143V23.9199H137.127L135.175 28.8559H134.663L132.703 23.9199H132.687V28.8559H132.143V23.1439Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_6798_515\"><rect width=\"62.4675\" height=\"22.44\" fill=\"white\" transform=\"translate(16.3438 4.78003)\"/></clipPath><clipPath id=\"clip1_6798_515\"><rect width=\"51.2691\" height=\"25.952\" fill=\"white\" transform=\"translate(95.8115 3.02393)\"/></clipPath></defs></svg>'\r\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { wappingLogos } from '../logos';\r\n\r\n@Component({\r\n selector: 'w-logos',\r\n template: `\r\n <ng-content></ng-content>\r\n <div *ngIf=\"url != undefined && name == undefined\" [style]=\"'width: '+width+'px; height: '+height+'px;'\">\r\n <img [src]=\"url\" class=\"w-logo-img\">\r\n </div>\r\n `,\r\n styleUrls: ['./w-logos.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WLogosComponent implements OnInit, AfterViewInit{\r\n @Input('name') name!: string | undefined;\r\n @Input('width') width!: any;\r\n @Input('height') height!: any;\r\n @Input('color') color!: string;\r\n @Input('url') url!: string | undefined; \r\n\r\n constructor(private element: ElementRef) { }\r\n \r\n ngOnInit(): void {\r\n if(this.name != undefined){\r\n this.element.nativeElement.innerHTML = wappingLogos[this.name] || null; \r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if(this.name != undefined){\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if (svgElement) {\r\n if (this.width) {\r\n svgElement.setAttribute('width', this.width.toString());\r\n }\r\n\r\n if (this.height) {\r\n svgElement.setAttribute('height', this.height.toString());\r\n }\r\n }\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\r\n }\r\n }\r\n }\r\n \r\n private applyColorToPaths(fillColor: string) {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n if (svgElement) {\r\n const pathElements = svgElement.querySelectorAll('path');\r\n pathElements.forEach((path:any) => {\r\n path.setAttribute('fill', fillColor);\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n@Component({\r\n selector: 'w-edit-input-textarea',\r\n templateUrl: './w-edit-input-textarea.component.html',\r\n styleUrls: ['./w-edit-input-textarea.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextareaComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputTextareaComponent {\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('rows') rows: number = 4;\r\n @Input('minlength') minlength!: number;\r\n @Input('maxlength') maxlength!: number;\r\n @Input('autoResize') autoResize: boolean = true;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length warning\";\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length warning\";\r\n\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n value: string = '';\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\">\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <div class=\"flex flex-column w-edit-input-textarea-medium-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea \r\n [ngClass]=\"{'w-edit-input-textarea-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-textarea-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-textarea-medium-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n [autoResize]=\"autoResize\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-medium\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </textarea>\r\n </div>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-alert-message-height w-full w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <small *ngIf=\"formControl.invalid && formControl.hasError('maxlength')\" class=\"w-input-alert-message-height w-full w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</small>\r\n <small *ngIf=\"formControl.invalid && formControl.hasError('minlength')\" class=\"w-input-alert-message-height w-full w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</small>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.dirty\" class=\"w-input-alert-message-height w-full w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</small>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [ngClass]=\"{'w-edit-input-textarea-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-textarea-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-textarea-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength'))}\"\r\n [autoResize]=\"autoResize\"\r\n [rows]=\"rows\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </textarea>\r\n </div>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-alert-message-height w-full w-input-success-alert-text p-error block\">{{successMessage}}</small> -->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('maxlength')\" class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('minlength')\" class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\" class=\"w-input-alert-message w-full w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <div class=\"flex flex-column w-edit-input-textarea-medium-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [disabled]=\"disabled\"\r\n minlength=\"{{minlength}}\"\r\n maxlength=\"{{maxlength}}\"\r\n [autoResize]=\"autoResize\"\r\n [required]=\"required\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-medium\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [(ngModel)]=\"value\" (input)=\"onValueChanged()\" [disabled]=\"disabled\">\r\n </textarea>\r\n </div>\r\n <!-- <div class=\"w-input-alert-message-height\"></div> -->\r\n </div>\r\n <ng-template #inputSmall>\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <textarea pInputTextarea\r\n [disabled]=\"disabled\"\r\n minlength=\"{{minlength}}\"\r\n maxlength=\"{{maxlength}}\"\r\n [autoResize]=\"autoResize\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\">\r\n </textarea>\r\n </div>\r\n <!-- <div class=\"w-input-alert-message-height\"></div> -->\r\n </ng-template>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-select',\r\n templateUrl: './w-edit-select.component.html',\r\n styleUrls: ['./w-edit-select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WEditSelectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('filter') filter: boolean = false;\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n @Output('onClear') onClearEvent: EventEmitter<boolean> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n this.showClear = !this.required;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onClear() {\r\n this.onClearEvent.emit(true);\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-select-medium\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [showClear]=\"showClear\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n (onClear)=\"onClear()\"\r\n (onChange)=\"onOptionSelectForm($event)\">\r\n </p-dropdown>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-select-small\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [filter]=\"filter\"\r\n [placeholder]=\"placeholder\"\r\n [showClear]=\"showClear\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n (onClear)=\"onClear()\"\r\n (onChange)=\"onOptionSelectForm($event)\">\r\n </p-dropdown>\r\n <span *ngIf=\"getSizeName(sizeType.medium) == size && formControl.dirty && formControl.hasError('required')\"\r\n class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-select-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-select-medium\" \r\n [options]=\"options\" \r\n [optionLabel]=\"optionLabel\" \r\n [optionValue]=\"optionValue\" \r\n [filter]=\"filter\"\r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (onChange)=\"onOptionSelected()\" \r\n [showClear]=\"showClear\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-dropdown>\r\n <p-dropdown *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-select-small\"\r\n [options]=\"options\"\r\n [filter]=\"filter\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (onChange)=\"onOptionSelected()\"\r\n [showClear]=\"showClear\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-dropdown>\r\n </div>\r\n</ng-template>\r\n","export enum TableColumnFilterTypes {\r\n None = 0,\r\n Text = 1,\r\n Multiselect = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6\r\n}\r\n\r\nexport enum TableColumnTypes {\r\n None = 0,\r\n Text = 1,\r\n Badge = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6,\r\n Currency = 7,\r\n Number = 8,\r\n ShortDate = 9,\r\n LongDate = 10,\r\n GeneralDateTimeShortTime = 11,\r\n GeneralDateTimeLongTime = 12,\r\n ColoredBadge = 13,\r\n Week = 14,\r\n BuisinessDateTime = 15,\r\n SecondaryCheckbox = 16,\r\n Percentage = 17,\r\n DateRaw = 18\r\n}\r\n\r\nexport enum WappTableColumnAlignTypes {\r\n Right = 0,\r\n Left = 1,\r\n Center = 2,\r\n}\r\n\r\nexport enum QBDataTypeEnum{\r\n Boolean = 1,\r\n Datetime = 2,\r\n Decimal = 3,\r\n List = 4, \r\n Number = 5, \r\n Text = 6,\r\n Address = 7,\r\n StoreList = 8,\r\n ServiceList = 9,\r\n ProductList = 10,\r\n CategoryList = 11,\r\n ProductTagList = 12,\r\n SegmentList = 13,\r\n GroupList = 14,\r\n CustomerTagList = 15,\r\n TypeEventActivityList = 16,\r\n PaymentTypeList = 17,\r\n SaleChannelList = 18,\r\n CustomerChannelList = 19,\r\n OperationTypeList = 20,\r\n Multiselect = 21,\r\n NullableSelect = 22,\r\n BooleanSelect = 23,\r\n TranslatedSelect = 32\r\n}\r\n\r\nexport enum OperatorEnum{\r\n Equals = '=',\r\n NotEquals = '!=',\r\n LessThan = '<',\r\n LessThanEqual = '<=',\r\n GreaterThan = '>',\r\n GreaterThanEqual = '>=',\r\n In = 'in',\r\n NotIn = 'not in',\r\n IsNull = 'is null',\r\n IsNotNull = 'is not null',\r\n Nullable = 'nullable'\r\n}\r\n\r\nexport enum DataTypeEnum{\r\n Single = 1,\r\n Multi = 2,\r\n Nullable = 3\r\n}\r\n\r\nexport enum WDatePipeFormatType {\r\n d = 0,\r\n D = 1,\r\n g = 2,\r\n G = 3,\r\n Business = 4,\r\n}\r\n\r\nexport enum AddressEnum{\r\n Country = 1, \r\n Locality = 2, \r\n AreaLevel1 = 3, \r\n AreaLevel2 = 4, \r\n PostalCode = 5\r\n}\r\n\r\nexport enum CustomColor {\r\n darkBlue1 = 1,\r\n darkBlue2 = 2,\r\n darkBlue3 = 3,\r\n purple1 = 4,\r\n purple2 = 5,\r\n purple3 = 6,\r\n pink1 = 7,\r\n pink2 = 8,\r\n pink3 = 9,\r\n green1 = 10,\r\n green2 = 11,\r\n green3 = 12,\r\n error1 = 13, \r\n error2 = 14\r\n}\r\n\r\nexport enum WDatePipeReturnType {\r\n string = 0,\r\n date = 1\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateConversionService {\r\n\r\n constructor() { }\r\n\r\n formatUTCDate(date: string | Date): Date | null | any{\r\n const inputDate = typeof date === 'string' ? new Date(`${date}Z`) : date; \r\n\r\n if (isNaN(inputDate?.getTime())) { \r\n return null;\r\n }\r\n \r\n return new Date(inputDate.toISOString());\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-badge',\r\n templateUrl: './w-badge.component.html',\r\n styleUrls: ['./w-badge.component.scss']\r\n})\r\nexport class WBadgeComponent {\r\n @Input('label') label: string = \"\";\r\n @Input('color') color: string = \"default\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input('maxWidthOverflow') maxWidthOverflow!: string;\r\n}\r\n","<span [class]=\"'w-badge color-' + color\" [ngClass]=\"{'w-badge-overflow-text': maxWidthOverflow}\" [pTooltip]=\"tooltip\" [style.max-width]=\"maxWidthOverflow\">\r\n {{label}}\r\n</span>\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-button-week',\r\n templateUrl: './w-button-week.component.html',\r\n styleUrls: ['./w-button-week.component.scss'], \r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WButtonWeekComponent), \r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WButtonWeekComponent implements OnInit, ControlValueAccessor {\r\n @Input('value') value!: number[];\r\n @Input('translations') translations!: string[];\r\n @Input('defaultEsp') defaultEsp: boolean = false; \r\n @Output('onDayClick') onDayClick: EventEmitter<MouseEvent> = new EventEmitter(); \r\n \r\n weekDays: any[] = [\r\n { name: 'Mon', value: 1, disabled: true },\r\n { name: 'Tue', value: 2, disabled: true },\r\n { name: 'Wed', value: 3, disabled: true }, \r\n { name: 'Thu', value: 4, disabled: true },\r\n { name: 'Fri', value: 5, disabled: true },\r\n { name: 'Sat', value: 6, disabled: true }, \r\n { name: 'Sun', value: 0, disabled: true }\r\n ];\r\n\r\n weekDaysEsp: any[] = [\r\n { name: 'L', value: 1, disabled: true },\r\n { name: 'M', value: 2, disabled: true },\r\n { name: 'MX', value: 3, disabled: true }, \r\n { name: 'J', value: 4, disabled: true },\r\n { name: 'V', value: 5, disabled: true },\r\n { name: 'S', value: 6, disabled: true }, \r\n { name: 'D', value: 0, disabled: true }\r\n ];\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n ngOnInit(): void {\r\n if(this.translations){\r\n if(this.translations.length == 7){\r\n this.weekDays = this.weekDays.map((day:any, index) => {\r\n return {\r\n name: this.translations[index], \r\n value: day.value, \r\n disabled: day.disabled\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value; \r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n onValueChanged(){\r\n this.onChange(this.value); \r\n this.onTouch(); \r\n }\r\n\r\n onButtonOptionClick(event: any){\r\n this.onDayClick.emit(event.option); \r\n }\r\n}\r\n","<p-selectButton class=\"w-button-week-small\" \r\n [options]=\"defaultEsp ? weekDaysEsp : weekDays\" \r\n [(ngModel)]=\"value\" \r\n [multiple]=\"true\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n (onChange)=\"onValueChanged()\" \r\n (onOptionClick)=\"onButtonOptionClick($event)\" \r\n optionDisabled=\"disabled\">\r\n</p-selectButton>\r\n","import { Injectable } from '@angular/core';\r\nimport { StoredFilterPanelQuery } from '../models/stored-filter-panel-query.model';\r\nimport { ComponentsTenantStorage } from '../models/components-tenant-storage.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorageService {\r\n private businessData = \"businessData\";\r\n\r\n constructor() { }\r\n\r\n setComponentsTenantStorage(tenantId: string, tenantStorage: ComponentsTenantStorage) {\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n\r\n getComponentsTenantStorage(tenantId: string): ComponentsTenantStorage {\r\n return JSON.parse(sessionStorage.getItem(tenantId)!);\r\n }\r\n\r\n setLastFilterPanelQuery(tenantId: string, storedQuery: StoredFilterPanelQuery | null) {\r\n\r\n if(storedQuery != undefined) {\r\n let allFilters:ComponentsTenantStorage = this.getAllLastFilterPanelQueries(tenantId);\r\n if(allFilters) {\r\n allFilters[storedQuery.id] = storedQuery;\r\n sessionStorage.setItem(tenantId, JSON.stringify(allFilters));\r\n } else {\r\n let tenantStorage: ComponentsTenantStorage = {\r\n [storedQuery.id]: storedQuery\r\n }\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n }\r\n\r\n getAllLastFilterPanelQueries(tenantId: string): ComponentsTenantStorage {\r\n return this.getComponentsTenantStorage(tenantId);\r\n }\r\n\r\n getLastFilterPanelQuery(tenantId: string, filterId: string): StoredFilterPanelQuery {\r\n return this.getComponentsTenantStorage(tenantId)?.[filterId]!;\r\n }\r\n\r\n removeLastFilterPanelQuery(tenantId: string, filterId: string) {\r\n let tenantStorage: ComponentsTenantStorage = JSON.parse(sessionStorage.getItem(tenantId)!);\r\n tenantStorage[filterId] = null;\r\n this.setComponentsTenantStorage(tenantId, tenantStorage);\r\n }\r\n\r\n getBusinessData() {\r\n return JSON.parse(sessionStorage.getItem(this.businessData)!);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { WDatePipeReturnType, WDatePipeFormatType } from '../models/enums.model';\r\nimport { SessionStorageService } from '../services/session-storage.service';\r\n\r\n@Pipe({\r\n name: 'wappDate'\r\n})\r\nexport class WDatePipe implements PipeTransform {\r\n\r\n constructor(\r\n private sessionStorageService: SessionStorageService,\r\n ) {}\r\n \r\n transform(date: Date | number | string, format?: WDatePipeFormatType | \"\", locale?: any | \"\", returnType?: WDatePipeReturnType) {\r\n let wappDate: any;\r\n\r\n switch(format) { \r\n case WDatePipeFormatType.d: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.D: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'fullDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.g: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\")\r\n break; \r\n } \r\n case WDatePipeFormatType.G: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')! + ' '\r\n + new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'mediumTime')\r\n break; \r\n }\r\n case WDatePipeFormatType.Business: { \r\n wappDate = date;\r\n wappDate = this.getBusinessTime(wappDate);\r\n\r\n if(returnType == WDatePipeReturnType.date) return wappDate;\r\n\r\n wappDate = locale ?\r\n new DatePipe(locale).transform(wappDate, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(wappDate, 'short')?.replace(/,/g, \"\");\r\n break; \r\n }\r\n\r\n default: { \r\n wappDate = locale ?\r\n new DatePipe(locale).transform(date, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\");\r\n break; \r\n } \r\n } \r\n return wappDate;\r\n }\r\n\r\n getBusinessTime(date: Date | string) {\r\n let businessHourDifference: number = this.sessionStorageService.getBusinessData().diffHourFromUTC;\r\n \r\n if(typeof date == 'string') {\r\n let newDate = new Date(date);\r\n newDate.setHours(newDate.getHours() + businessHourDifference);\r\n return newDate;\r\n } else {\r\n console.log(\"WDatePipe for business format only accepts string dates\");\r\n return null;\r\n }\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'wappPercentage'\r\n})\r\nexport class WPercentagePipe implements PipeTransform {\r\n \r\n transform(number: number) {\r\n return number + '%';\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionStorageService } from '../services/session-storage.service';\r\n\r\n@Pipe({\r\n name: 'wappCurrency'\r\n})\r\nexport class WCurrencyPipe implements PipeTransform {\r\n\r\n constructor(\r\n private sessionStorageService: SessionStorageService\r\n ) {}\r\n \r\n transform(value: number, digits?: number): any {\r\n let businessCurrency = this.sessionStorageService.getBusinessData().currencySymbol;\r\n let valueWithDigits = value.toFixed(digits || 2);\r\n\r\n if(businessCurrency) {\r\n if(businessCurrency == '€') {\r\n return valueWithDigits + ' ' + businessCurrency;\r\n } else {\r\n return businessCurrency + ' ' + valueWithDigits;\r\n }\r\n } else {\r\n return '$ ' + valueWithDigits;\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { WappTable } from '../../shared/models/wapp-table.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-table',\r\n templateUrl: './w-table.component.html',\r\n styleUrls: ['./w-table.component.scss'],\r\n providers: [ConfirmationService]\r\n\r\n})\r\nexport class WTableComponent implements OnInit, OnChanges {\r\n translations: any;\r\n translateObjectName: string = \"object\"\r\n selectAll: boolean = false;\r\n tableMinWidth: number = 70;\r\n\r\n tableSkeletons: any = [{ name: '' }, { name: '' }, { name: '' }, { name: '' }];\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n }\r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n @Input('elements') elements!: any[];\r\n @Input('selectedElements') selectedElements: any[] = [];\r\n @Input('rowsPerPage') rowsPerPage: number = 0;\r\n originalRowsPerPage: number = 0; \r\n @Input('loading') loading: boolean = true;\r\n @Input('wappTableObject') wappTableObject!: WappTable;\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onNewElementSelect') onNewElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('filter') filter!: ElementRef;\r\n @ViewChild('table') dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['rowsPerPage'] && changes?.['rowsPerPage'].currentValue !== changes?.['rowsPerPage'].previousValue) {\r\n if (this.originalRowsPerPage === 0 && changes?.['rowsPerPage'].currentValue !== 0) {\r\n this.originalRowsPerPage = changes?.['rowsPerPage'].currentValue;\r\n }\r\n }\r\n\r\n if (changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n if (this.rowsPerPage === 0 && this.elements) {\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n } else if ((this.rowsPerPage > this.elements.length) || this.elements.length === 0) {\r\n this.rowsPerPage = Math.max(this.elements.length, 0);\r\n }else if(this.elements.length > this.rowsPerPage){\r\n if(this.originalRowsPerPage === 0){\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n }else if(this.rowsPerPage < this.originalRowsPerPage){\r\n this.rowsPerPage = this.elements.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.onNewElementSelect.emit(true);\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if (_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n confirmDeleteSelected(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(value = []) {\r\n this.selectAll = value.length === this.elements.length;\r\n this.selectedElements = value;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.selectedElements = this.wappTableObject.disableCheckbox ? this.getSelectableElements(this.elements) : this.elements;\r\n this.updateSelectedFilteredItems(this.dataTable.filteredValue.map(v => v[this.wappTableObject.identificator]));\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this.wappTableObject.disableCheckbox!));\r\n }\r\n\r\n updateSelectedFilteredItems(items: any[]) {\r\n this.selectedElements = this.selectedElements.filter(e => items.includes(e[this.wappTableObject.identificator]));\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n onGlobalFilter(table: Table, event: Event) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains');\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if (alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if (alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if (alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if (columnType == TableColumnTypes.Text) return 'text-left';\r\n if (columnType == TableColumnTypes.Currency) return 'text-left';\r\n if (columnType == TableColumnTypes.Date) return 'text-left';\r\n if (columnType == TableColumnTypes.Badge) return 'text-center';\r\n if (columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if (columnType == TableColumnTypes.Image) return 'text-center';\r\n if (columnType == TableColumnTypes.Number) return 'text-right';\r\n if (columnType == TableColumnTypes.SecondaryCheckbox) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this.wappTableObject.headers.length;\r\n this.wappTableObject.hasCheckbox ?\r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons(): boolean {\r\n return this.wappTableObject.hasCopyButton ||\r\n this.wappTableObject.hasEditButton ||\r\n this.wappTableObject.hasViewButton ||\r\n this.wappTableObject.hasDeleteButton ||\r\n this.wappTableObject.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n pageChange(element: any) {\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n\r\n isElementSelected(id: number) {\r\n return this.selectedElements.some(element => element[this.wappTableObject.identificator] == id);\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableObject\" [class.table-container]=\"wappTableObject.tableContainer\">\r\n <p-table class=\"w-table-styles\" [ngClass]=\"{'w-table-no-buttons' : !wappTableObject.hasEditButton && !wappTableObject.hasDeleteButton && !wappTableObject.hasCopyButton && !wappTableObject.customButtonConfig}\"\r\n *ngIf=\"!loading; else loadingTable\" #table \r\n [value]=\"elements\" dataKey=\"{{wappTableObject.identificator}}\" \r\n [paginator]=\"wappTableObject.hasPaginator\"\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]=\"wappTableObject.hasViewButton!\" [tableStyle]=\"{'min-width': wappTableObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\r\n styleClass=\"p-datatable-striped\">\r\n <ng-template pTemplate=\"caption\" *ngIf=\"wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch || wappTableObject.hasTotalPagingSelector\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span *ngIf=\"wappTableObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableObject.hasTotalPagingSelector\"\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 w-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.hasCheckbox\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[0]) : 'text-center'\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <ng-container *ngIf=\"!wappTableObject.hasSortableColumns; else sortableColumns\">\r\n <th *ngFor=\"let header of wappTableObject?.headers; index as i\"\r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] == tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n <ng-template #sortableColumns>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableObject.headers\" let-i=\"index\"> \r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\" \r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] === tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\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 || wappTableObject.hasViewButton || wappTableObject.hasCopyButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element>\r\n <tr [ngClass]=\"{'row-hover': wappTableObject.hasViewButton}\" \r\n (click)=\"wappTableObject.hasClickableRow ? 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]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\">\r\n <div *ngIf=\"wappTableObject.disableCheckbox; else activeCheckbox\">\r\n <p-tableCheckbox [value]=\"element\" [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>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <img *ngIf=\"readProperty(element, wappTableObject.columns[i])\" \r\n [src]=\"readProperty(element, wappTableObject.columns[i])\" \r\n class=\"element-image-width\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappPercentage }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappCurrency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"'info'\"></w-badge> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ColoredBadge\" [style]=\"'width: '+wappTableObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <div *ngFor=\"let badge of wappTableObject.coloredBadge; index as ind\">\r\n <w-badge *ngIf=\"badge.coloredBadgeProperty == readProperty(element, wappTableObject.columns[i])\"\r\n [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"badge.color\"></w-badge>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.columns[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.SecondaryCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableObject.columns[i]]\" [disabled]=\"!isElementSelected(element[wappTableObject.identificator])\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.BuisinessDateTime\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate : wappDateFormat.Business }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Week\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\" \r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableObject.columns[i])\" [translations]=\"wappTableObject.weekButtonTranslations ? wappTableObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n </ng-template>\r\n <td *ngIf=\"wappTableObject.hasCustomButton || wappTableObject?.hasEditButton || wappTableObject?.hasCopyButton || wappTableObject?.hasDeleteButton || wappTableObject?.hasViewButton\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableObject?.hasViewButton && !wappTableObject.disableViewProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\" \r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject.disableViewProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableViewProperty)\" \r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button *ngIf=\"!customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n type=\"table\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view' + getButtonCustomColorClass(customButtonConfig.color!) \">\r\n </w-button>\r\n <w-button *ngIf=\"customButtonConfig?.disableProperty\" \r\n type=\"table\" \r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\" \r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n type=\"table\" (onClick)=\"editElement(element)\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject.disableEditProperty\" \r\n type=\"table\" (onClick)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n type=\"table\" (onClick)=\"confirmCopy($event, element)\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <span *ngIf=\"wappTableObject?.hasDeleteButton\">\r\n <w-button *ngIf=\"wappTableObject.disableDeleteProperty; else noDisableDelete\" \r\n type=\"table\" (onClick)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n <ng-template #noDisableDelete>\r\n <w-button *ngIf=\"!wappTableObject?.disableDelete && !wappTableObject.disableDeleteProperty\" \r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"confirmDelete($event, element)\" \r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableObject.emptyMessage ? wappTableObject.emptyMessage : 'No matches.'}}</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=\"w-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"wappTableObject.hasPaginator\" [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 <span *ngIf=\"wappTableObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableObject.hasTotalPagingSelector\"\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 w-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 || wappTableObject?.hasViewButton\"></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 || wappTableObject.hasCopyButton || wappTableObject.hasViewButton\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableObject?.hasViewButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\" \r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![i]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableObject?.hasEditButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableObject?.hasDeleteButton\" \r\n [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-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>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, LazyLoadEvent } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { LazyElementQueryRequest } from '../../shared/models/lazy-element-query-request.model';\r\nimport { WappTableLazyLoading } from '../../shared/models/wapp-table-lazy-loading.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n\r\n@Component({\r\n selector: 'w-table-lazy',\r\n templateUrl: './w-table-lazy.component.html',\r\n styleUrls: ['./w-table-lazy.component.scss']\r\n})\r\nexport class WTableLazyComponent implements OnInit {\r\n selectedElements: any[] = [];\r\n translations: any;\r\n lastQuery!: LazyElementQueryRequest;\r\n\r\n selectAll: boolean = false;\r\n filterElementsIndex: number = 0;\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n @Input('loading') loading!: boolean;\r\n @Input('elements') elements!: any[];\r\n @Input('rowsPerPage') rowsPerPage: number = 10;\r\n @Input('allElements') allElements!: any[];\r\n @Input('totalRecords') totalRecords!: number;\r\n @Input('maxRowsPerPage') maxRowsPerPage: number = 50;\r\n @Input('wappTableLazyLoadingObject') wappTableLazyLoadingObject!: WappTableLazyLoading;\r\n\r\n @Output('queryElements') queryElements = new EventEmitter<LazyElementQueryRequest>();\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onAllElementSelect') onAllElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('table', { static: false }) dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n \r\n if(this.wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined){\r\n this.wappTableLazyLoadingObject.hasSelectAllCheckbox = true; \r\n }\r\n }\r\n\r\n loadElements(event: LazyLoadEvent) {\r\n this.loading = true;\r\n let adaptedQuery: LazyElementQueryRequest = {\r\n first: event.first!,\r\n rows: this.rowsPerPage!,\r\n sortOrder: event.sortOrder!,\r\n sortField: event.sortField!,\r\n filters: Object.keys(event.filters!).map((key) => {\r\n return {\r\n columnName: key!,\r\n value: event.filters![key].value,\r\n matchMode: event.filters![key].matchMode!\r\n }\r\n })\r\n }\r\n this.lastQuery = adaptedQuery;\r\n this.queryElements.emit(adaptedQuery);\r\n }\r\n\r\n reloadElements() {\r\n this.lastQuery.rows = this.rowsPerPage;\r\n this.queryElements.emit(this.lastQuery);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (prop === null) {\r\n return undefined;\r\n }\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n const properties = prop.split('.');\r\n let result = obj;\r\n\r\n for (const property of properties) {\r\n const match = property.match(/(.+?)\\[(\\d+)\\]/);\r\n if (match) {\r\n const arrayProp = match[1];\r\n const index = parseInt(match[2], 10);\r\n if (!Array.isArray(result[arrayProp]) || isNaN(index) || index < 0 || index >= result[arrayProp].length) {\r\n return undefined;\r\n }\r\n result = result[arrayProp][index];\r\n } else {\r\n if (typeof result[property] === 'undefined') {\r\n return undefined;\r\n }\r\n result = result[property];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n confirmDeleteSelection(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableLazyLoadingObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableLazyLoadingObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(value = []) {\r\n this.selectAll = value.length === this.totalRecords;\r\n this.selectedElements = value;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.onAllElementSelect.emit(true);\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.selectedElements = this.wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;\r\n this.selectAll = true;\r\n this.loading = false;\r\n }, 1000);\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n \r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this.wappTableLazyLoadingObject.disableCheckbox!));\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor) ?? '';\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if(columnType == TableColumnTypes.Text) return 'text-left';\r\n if(columnType == TableColumnTypes.Currency) return 'text-left';\r\n if(columnType == TableColumnTypes.Date) return 'text-left';\r\n if(columnType == TableColumnTypes.Badge) return 'text-center';\r\n if(columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if(columnType == TableColumnTypes.Image) return 'text-center';\r\n if(columnType == TableColumnTypes.Number) return 'text-right';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this.wappTableLazyLoadingObject.headers.length;\r\n this.wappTableLazyLoadingObject.hasCheckbox ? \r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons() : boolean {\r\n return this.wappTableLazyLoadingObject.hasCopyButton ||\r\n this.wappTableLazyLoadingObject.hasEditButton ||\r\n this.wappTableLazyLoadingObject.hasViewButton ||\r\n this.wappTableLazyLoadingObject.hasDeleteButton || \r\n this.wappTableLazyLoadingObject?.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n refreshPagination(first: number) {\r\n this.dataTable._first = first;\r\n }\r\n\r\n pageChange(element: any) {\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"w-table-styles\"\r\n [ngClass]=\"{'w-table-no-buttons' : !wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.hasCopyButton && !wappTableLazyLoadingObject.customButtonConfig && !wappTableLazyLoadingObject.hasViewButton}\"\r\n #table [value]=\"elements\" \r\n dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [lazy]=\"true\" \r\n [rowHover]=\"wappTableLazyLoadingObject.hasViewButton!\"\r\n (onLazyLoad)=\"loadElements($event)\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"wappTableLazyLoadingObject.hasPaginator! && totalRecords >= 10\"\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]=\"false\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n [tableStyle]=\"{'min-width': wappTableLazyLoadingObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\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 <span *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputNumber *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\"\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 w-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 [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-center'\">\r\n <p-tableHeaderCheckbox *ngIf=\"wappTableLazyLoadingObject.hasSelectAllCheckbox == true\"></p-tableHeaderCheckbox>\r\n </th>\r\n\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers; index as i\" [class]=\"header == ('Imagen' || 'Image') ? 'image-header': ''\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n\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 [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\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 || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-left'\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0])\">\r\n </th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\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\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\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 || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\" [ngClass]=\"{'row-hover': wappTableLazyLoadingObject.hasViewButton}\" \r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? onElement(element) : ''\">\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]\" class=\"text-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\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n class=\"element-image-width\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappPercentage }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappCurrency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"'info'\"></w-badge> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ColoredBadge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <div *ngFor=\"let badge of wappTableLazyLoadingObject.coloredBadge; index as ind\">\r\n <w-badge *ngIf=\"badge.coloredBadgeProperty == readProperty(element, wappTableLazyLoadingObject.columns[i])\" \r\n [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"badge.color ? badge.color : 'info'\">\r\n </w-badge> \r\n </div> \r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.columns[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.SecondaryCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableLazyLoadingObject.columns[i]]\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.DateRaw\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.BuisinessDateTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate : wappDateFormat.Business }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Week\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" \r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [translations]=\"wappTableLazyLoadingObject.weekButtonTranslations ? wappTableLazyLoadingObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableLazyLoadingObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"w-table-buttons flex justify-content-end align-items-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n (onClick)=\"viewElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\" \r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button *ngIf=\"!customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\" \r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n <w-button *ngIf=\"customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\" \r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\" \r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n (onClick)=\"editElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && wappTableLazyLoadingObject.disableEditProperty\" \r\n (onClick)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n (onClick)=\"confirmCopy($event, element)\" \r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.disableDeleteProperty; else noDisableDelete\" \r\n (onClick)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n <ng-template #noDisableDelete>\r\n <w-button (onClick)=\"confirmDelete($event, element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </ng-template>\r\n </span>\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=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\"> \r\n <w-button\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\" \r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableLazyLoadingObject.emptyMessage ? wappTableLazyLoadingObject.emptyMessage : 'No matches.'}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-container',\r\n template: `\r\n <div class=\"w-filter-panel-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styleUrls: ['./w-container.component.scss']\r\n})\r\nexport class WContainerComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\ninterface Breadcrumb {\r\n label: string;\r\n url?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'w-navbar',\r\n templateUrl: './w-navbar.component.html',\r\n styleUrls: ['./w-navbar.component.scss']\r\n})\r\nexport class WNavbarComponent {\r\n\r\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n\r\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\r\n constructor(private router: Router) {\r\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {\r\n const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: Breadcrumb[] = [];\r\n this.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n this._breadcrumbs$.next(breadcrumbs);\r\n });\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\r\n const breadcrumb = route.data['breadcrumb'];\r\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n breadcrumbs.push({\r\n label: route.data['breadcrumb'],\r\n url: '/' + routeUrl.join('/')\r\n });\r\n }\r\n\r\n if (route.firstChild) {\r\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n }\r\n }\r\n}\r\n","<w-container>\r\n <div class=\"flex wrap navbar-margins\">\r\n <div class=\"flex flex-column sm:flex-row align-items-center gap-4\">\r\n <nav class=\"layout-breadcrumb\">\r\n <ol>\r\n <ng-template ngFor let-item let-last=\"last\" [ngForOf]=\"breadcrumbs$ | async\">\r\n <li>{{item.label}}</li>\r\n <li *ngIf=\"!last\" class=\"layout-breadcrumb-chevron\"> | </li>\r\n </ng-template>\r\n </ol>\r\n </nav>\r\n </div>\r\n <div class=\"flex sm:ml-auto\">\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <w-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-secondary\" icon=\"pi pi-check\"></w-button>\r\n <p-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-seco ndary\" icon=\"pi pi-check\"></p-button>\r\n </div>\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <p-button label=\"Submit\"></p-button>\r\n <p-button label=\"Submit\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-container>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body',\r\n templateUrl: './w-body.component.html',\r\n styleUrls: ['./w-body.component.scss']\r\n})\r\nexport class WBodyComponent {\r\n @Input('showFooterSpace') showFooterSpace: boolean = false;\r\n}\r\n","<div class=\"w-body\" [ngClass]=\"{'w-body-with-footer-space' : showFooterSpace}\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-footer',\r\n templateUrl: './w-footer.component.html',\r\n styleUrls: ['./w-footer.component.scss']\r\n})\r\nexport class WFooterComponent implements OnInit{\r\n @Input('mainLabel') mainLabel!: string; \r\n @Input('supportLabel') supportLabel!: string;\r\n @Input('support') support: boolean = false; \r\n\r\n year!: any;\r\n\r\n ngOnInit(): void {\r\n this.year = new Date().getFullYear();\r\n }\r\n\r\n}\r\n","\r\n<div class=\"w-footer flex justify-content-between flex-wrap w-full\">\r\n <div class=\"w-info-footer flex align-items-center justify-content-center\">\r\n <w-logos [name]=\"'wappingIsotype'\" [width]=\"16\" [height]=\"20\"></w-logos>\r\n <div class=\"body textMainColor\">{{mainLabel}} {{year}} </div>\r\n </div>\r\n <div class=\"w-support-footer flex align-items-center justify-content-center\">\r\n <div class=\"subtitle2 textMainColor\">{{supportLabel}}</div>\r\n <w-icons *ngIf=\"support\" name=\"support\" pTooltip=\"support\" [width]=\"16\" [height]=\"16\"></w-icons>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'ColorTextPipe'\r\n})\r\nexport class ColorTextPipe implements PipeTransform {\r\n transform(value: any) {\r\n var mapObj: any = {\r\n \"string\": \"string\",\r\n \"number\": \"number\",\r\n \"boolean\": \"boolean\",\r\n \"any\": \"any\",\r\n \"null\": \"null\",\r\n \"Input\": \"Input\",\r\n \"Output\":\"Output\"\r\n };\r\n return value.replace(/\\b(?:string|number|boolean|number|any|null|Input|Output)\\b/gi, (matched: any) => mapObj[matched] != \"Input\" && mapObj[matched] != \"Output\" ? `<font color=\"#9900FF\">${mapObj[matched]}</font>`: `<font color='#ff7373'>${mapObj[matched]}</font>`)\r\n ;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-multiselect',\r\n templateUrl: './w-edit-multiselect.component.html',\r\n styleUrls: ['./w-edit-multiselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditMultiselectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WEditMultiselectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('filter') filter: boolean = true;\r\n @Input('filterPlaceholder') filterPlaceholder: string = 'Search';\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-multiselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-multiselect-medium\" \r\n [options]=\"options\" \r\n display=\"chip\" \r\n [optionLabel]=\"optionLabel\" \r\n [optionValue]=\"optionValue\" \r\n [placeholder]=\"placeholder\" \r\n [required]=\"required\" \r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n (onChange)=\"onOptionSelectedForm($event)\">\r\n </p-multiSelect>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-multiselect-small\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [filter]=\"filter\"\r\n [filterPlaceHolder]=\"filterPlaceholder\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n (onChange)=\"onOptionSelectedForm($event)\">\r\n </p-multiSelect>\r\n <span *ngIf=\"getSizeName(sizeType.small) == size && formControl.dirty && formControl.hasError('required')\" class=\"w-full w-error-message\">{{errorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-multiselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-multiselect-medium\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\">\r\n </p-multiSelect>\r\n <p-multiSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-multiselect-small\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\">\r\n </p-multiSelect>\r\n </div>\r\n</ng-template>\r\n","import { EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-treeselect',\r\n templateUrl: './w-edit-treeselect.component.html',\r\n styleUrls: ['./w-edit-treeselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditTreeselectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditTreeselectComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string;\r\n @Input('placeholder') placeholder!: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('appendTo') appendTo!: string; \r\n @Input('showClear') showClear: boolean = true;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('filterBy') filterBy!: string;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n @Input('tooltip') tooltip!: string; \r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {}\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onTouch();\r\n this.onChangeEvent.emit(event.node);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}","<div *ngIf=\"formControl; else noNgControl\" class=\"w-edit-treeselect-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-treeselect-medium\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\" \r\n [required]=\"required\"\r\n [formControl]=\"formControl\" \r\n [appendTo]=\"appendTo\" \r\n (onNodeSelect)=\"onOptionSelectedForm($event)\">\r\n </p-treeSelect>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-treeselect-small\" \r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\" \r\n [appendTo]=\"appendTo\" \r\n (onNodeSelect)=\"onOptionSelectedForm($event)\">\r\n </p-treeSelect>\r\n <small *ngIf=\"getSizeName(sizeType.medium) == size && formControl.dirty && formControl.hasError('required')\" \r\n class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</small> \r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-treeselect-field p-fluid field\">\r\n <w-input-label [required]=\"required\" [label]=\"label\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.medium) == size\" class=\"w-edit-treeselect-medium\" \r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\" \r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onOptionSelected()\" \r\n [appendTo]=\"appendTo\">\r\n </p-treeSelect>\r\n <p-treeSelect *ngIf=\"getSizeName(sizeType.small) == size\" class=\"w-edit-treeselect-small\" \r\n [options]=\"options\" \r\n [placeholder]=\"placeholder\" \r\n [showClear]=\"showClear\" \r\n [disabled]=\"disabled\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onOptionSelected()\" \r\n [appendTo]=\"appendTo\">\r\n </p-treeSelect>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-title',\r\n templateUrl: './w-panel-title.component.html',\r\n styleUrls: ['./w-panel-title.component.scss']\r\n})\r\nexport class WPanelTitleComponent {\r\n @Input('title') title!: string;\r\n @Input('activePaddingBottom') activePaddingBottom: boolean = true; \r\n}\r\n","<div class=\"w-panel-title w-panel-title-text\" [ngClass]=\"{'w-panel-title-bottom': activePaddingBottom == true}\">{{title}}</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-subtitle',\r\n templateUrl: './w-panel-subtitle.component.html',\r\n styleUrls: ['./w-panel-subtitle.component.scss']\r\n})\r\nexport class WPanelSubtitleComponent {\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activePaddingBottom') activePaddingBottom!: boolean\r\n}\r\n","<div class=\"w-panel-subtitle w-panel-subtitle-text\">{{subtitle}}</div>\r\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-panel',\r\n templateUrl: './w-panel.component.html',\r\n styleUrls: ['./w-panel.component.scss']\r\n})\r\nexport class WPanelComponent implements OnInit {\r\n @Input('width') width: any;\r\n @Input('title') title!: string;\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activeGrid') activeGrid: boolean = true;\r\n @Input('reduced') reduced: boolean = false;\r\n @Input('justifyContent') justifyContent: string = '';\r\n @Input('activeOverflow') activeOverflow: boolean = false;\r\n @Input('heightOverflow') heightOverflow!: string;\r\n @Input('maxHeightOverflow') maxHeightOverflow!: string;\r\n @Input('backgroundColor') backgroundColor: string = '#fff';\r\n @Input('activeMaxHeight') activeMaxHeight: boolean = false; \r\n\r\n @Input('activeMenu') activeMenu: boolean = false;\r\n @Input('menuOptions') menuOptions!: MenuItem[];\r\n\r\n @Input('wPanelStyleClass') wPanelStyleClass!: string; \r\n @Input('wPanelContentStyleClass') wPanelContentStyleClass!: string; \r\n\r\n spacing4XL: string = '36px'; \r\n \r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor);\r\n }\r\n \r\n getCombinedClasses() {\r\n let classes = [];\r\n \r\n if (this.activeGrid) {\r\n classes.push('w-panel-content grid');\r\n }\r\n \r\n if (this.justifyContent.length > 0) {\r\n classes.push('flex flex-wrap '+this.justifyContent);\r\n }\r\n\r\n if(this.activeOverflow){\r\n classes.push('w-panel-overflow');\r\n }\r\n \r\n return classes.join(' ');\r\n }\r\n}\r\n","<div [ngClass]=\"{ 'w-panel': !reduced, 'w-reduced-panel': reduced}\" class=\"w-full h-full {{wPanelStyleClass}}\">\r\n <div *ngIf=\"activeMenu == true\" class=\"flex flex-wrap\" [ngClass]=\"{'justify-content-between': title, 'justify-content-end': !title}\">\r\n <w-panel-title *ngIf=\"title\" class=\"flex\" [title]=\"title\"></w-panel-title>\r\n <div class=\"flex\">\r\n <p-button icon=\"pi pi-ellipsis-v\" styleClass=\"w-menu-button-x-small p-button-text\" (onClick)=\"menu.toggle($event)\"></p-button>\r\n <p-tieredMenu styleClass=\"w-panel-menu\" #menu [model]=\"menuOptions\" [popup]=\"true\"></p-tieredMenu>\r\n </div>\r\n </div>\r\n <w-panel-title *ngIf=\"title && activeMenu == false\" [title]=\"title\"></w-panel-title>\r\n <w-panel-subtitle *ngIf=\"subtitle\" [subtitle]=\"subtitle\"></w-panel-subtitle>\r\n <div class=\"w-panel-content {{wPanelContentStyleClass}}\" [ngClass]=\"getCombinedClasses()\" [style.height]=\"heightOverflow\" [style.max-height]=\"maxHeightOverflow\" [style.padding-bottom]=\"(activeMaxHeight == true && (title != undefined)) ? spacing4XL : ''\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-container',\r\n templateUrl: './w-body-container.component.html',\r\n styleUrls: ['./w-body-container.component.scss']\r\n})\r\nexport class WBodyContainerComponent {\r\n\r\n}\r\n","<div class=\"grid w-body-container\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-header-panel',\r\n templateUrl: './w-header-panel.component.html',\r\n styleUrls: ['./w-header-panel.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class WHeaderPanelComponent {\r\n @Input('label') label!: string;\r\n @Input(\"backToCustomRoute\") public backToCustomRoute!: string;\r\n @Input('requireConfirmation') requireConfirmation: boolean = false;\r\n @Input('contentConfirmation') contentConfirmation!: string;\r\n @Input('acceptLabel') acceptLabel!: string;\r\n @Input('rejectLabel') rejectLabel!: string;\r\n @Input('showButtonBack') showButtonBack: boolean = false;\r\n @Input('showInfo') showInfo: boolean = false;\r\n @Output('onClickButtonBack') onClickButtonBack: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private confirmationService: ConfirmationService,\r\n ){}\r\n\r\n onButtonBack(event: any){\r\n if(!this.requireConfirmation){\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }else{\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.contentConfirmation,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.acceptLabel,\r\n rejectLabel: this.rejectLabel,\r\n accept: () => {\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"w-header-panel flex flex-row-reverse flex-wrap\" [ngClass]=\"{'justify-content-between' : showButtonBack || showInfo}\">\r\n <div class=\"w-action-buttons flex flex-column lg:flex-row-reverse\">\r\n <ng-content select=\".main-actions\"></ng-content>\r\n <ng-content select=\".secondary-actions\"></ng-content>\r\n </div>\r\n <div class=\"w-left-actions flex\">\r\n <w-button *ngIf=\"showButtonBack\" class=\"flex align-items-center justify-content-center\" type=\"text\" icon=\"pi-arrow-left\" (onClick)=\"onButtonBack($event)\"></w-button>\r\n <ng-content *ngIf=\"showInfo\" select=\".info\"></ng-content>\r\n </div>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-input-number',\r\n templateUrl: './w-edit-input-number.component.html',\r\n styleUrls: ['./w-edit-input-number.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputNumberComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditInputNumberComponent implements ControlValueAccessor{\r\n value: number = 0;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('mode') mode: string = \"decimal\";\r\n @Input('minFractionDigits') minFractionDigits: number = 0;\r\n @Input('maxFractionDigits') maxFractionDigits: number = 0;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('pattern') pattern: string = \"\";\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"\";\r\n\r\n @Input('min') min!: number;\r\n @Input('minErrorDescription') minErrorDescription: string = \"Min error\";\r\n\r\n @Input('max') max!: number;\r\n @Input('maxErrorDescription') maxErrorDescription: string = \"Max error\";\r\n\r\n @Input('prefix') prefix!: string; \r\n @Input('suffix') suffix!: string; \r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: number) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void { \r\n if(value !== null && value !== undefined){\r\n this.value = +value;\r\n }else{\r\n this.value = value; \r\n } \r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged(){\r\n this.onChange(this.value !== null && this.value !== undefined ? +this.value : this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue: number = +(event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\" class=\"w-edit-input-number-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.medium) == size\"\r\n [ngClass]=\"{'w-edit-input-number-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-medium-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\" >\r\n </p-inputNumber>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.small) == size\"\r\n [ngClass]=\"{'w-edit-input-number-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-small-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\"></p-inputNumber>\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-success-alert-text\">{{successMessage}}</small>-->\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('max') && formControl.touched || formControl.touched && this.formControl.value > max && this.formControl.value != (null || '')\"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{maxErrorDescription}}</span>\r\n <span *ngIf=\"formControl.invalid && formControl.hasError('min') && formControl.touched || formControl.touched && this.formControl.value &lt; min && this.formControl.value != (null || '')\"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{minErrorDescription}}</span>\r\n <span *ngIf=\"formControl.hasError('required') && formControl.dirty\"\r\n class=\"w-input-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-input-number-field p-fluid field\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.medium) == size\" [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged()\" [disabled]=\"disabled\"></p-inputNumber>\r\n <p-inputNumber *ngIf=\"getSizeName(sizeType.small) == size\" [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" \r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged()\" [disabled]=\"disabled\"></p-inputNumber>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-input-search',\r\n templateUrl: './w-input-search.component.html',\r\n styleUrls: ['./w-input-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WInputSearchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WInputSearchComponent {\r\n @Input('label') label!: string;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('isDisabled') isDisabled: boolean = false;\r\n @Input('hasButton') hasButton: boolean = true;\r\n @Input('disabledButton') disabledButton: boolean = false;\r\n\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = \"small\";\r\n\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n \r\n @Output('getInputData') getInputData: EventEmitter<any> = new EventEmitter();\r\n\r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n onInputData(){\r\n if(this.formControl){\r\n this.getInputData.emit(this.formControl.value);\r\n }else{\r\n this.getInputData.emit(this.value);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\" class=\"w-input-search-field p-fluid field\">\r\n <div *ngIf=\"(label != undefined && label.length > 0)\" class=\"flex\" [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'w-input-search-medium-label': getSizeName(sizeType.medium) == size && !isDisabled,\r\n 'w-input-search-medium-label-disabled': getSizeName(sizeType.medium) == size && isDisabled, \r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n <div *ngIf=\"(label != undefined && label == '')\" class=\"w-input-no-label-height\"></div>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\" class=\"w-input-search\">\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-medium p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText [formControl]=\"formControl\"\r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div >\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text-wo-button flex flex-1 col-12\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [formControl]=\"formControl\"\r\n class=\"w-input-search-text\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-input-search-field\">\r\n <div *ngIf=\"(label != undefined && label.length > 0)\" [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'w-input-search-medium-label': getSizeName(sizeType.medium) == size && !isDisabled,\r\n 'w-input-search-medium-label-disabled': getSizeName(sizeType.medium) == size && isDisabled, \r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n <div *ngIf=\"(label != undefined && label == '')\" class=\"w-input-no-label-height\"></div>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\" >\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-medium p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n class=\"w-input-search-text\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-medium p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <ng-template #inputSmall>\r\n <div *ngIf=\"hasButton; else withoutButton\">\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n class=\"w-input-search-text\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n\r\n </div>\r\n</ng-template>","import { RuleSet } from \"angular2-query-builder\";\r\nimport { LazyElementQueryRequest } from \"../lazy-element-query-request.model\";\r\n\r\nexport interface QueryResults {\r\n type: QueryResultType,\r\n basic?: RuleSet | null | undefined,\r\n advanced?: RuleSet | null | undefined,\r\n grouped: RuleSet | null | undefined,\r\n lazyRequest?: LazyElementQueryRequest\r\n}\r\n\r\nexport enum QueryResultType {\r\n NoFilters = 0,\r\n Basic = 1,\r\n Advanced = 2,\r\n Grouped = 3\r\n}","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, forkJoin, map, of, switchMap, tap } from \"rxjs\";\r\nimport { QbPanelFilter } from \"../../models/filter-panel/qb-panel-filter.model\";\r\nimport { QbPanelToFields } from \"../../models/filter-panel/qb-panel-to-fields.model\";\r\nimport { GMCountry } from \"../../models/filter-panel/gmcountry-model\";\r\nimport { MessageService } from \"primeng/api\";\r\nimport { GMLocality } from \"../../models/filter-panel/gmlocality.model\";\r\nimport { GMPostalCode } from \"../../models/filter-panel/gmpostalcode.model\";\r\nimport { GMAreaLevel2 } from \"../../models/filter-panel/gmarealevel2.model\";\r\nimport { GMAreaLevel1 } from \"../../models/filter-panel/gmarealevel1.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private messageService: MessageService, \r\n ) { }\r\n\r\n getFilterPanel(apiUrl: string, token: string, commonDataApiUrl: string, commonDataApiToken: string, filterId?: string): Observable<QbPanelFilter> {\r\n let url = filterId ? `${apiUrl}/${filterId}` : `${apiUrl}`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }); \r\n let fieldsModified: any; \r\n \r\n return this.http.get<any>(url, {headers: headers}).pipe(\r\n switchMap((filtersPanel: QbPanelFilter) => {\r\n const fields = filtersPanel.qbpanelToFields;\r\n return forkJoin(\r\n fields.map((field: QbPanelToFields) => {\r\n fieldsModified = field;\r\n if(field.qbfilterField.hasListOfValues) {\r\n return this.getFieldValues(commonDataApiUrl, commonDataApiToken, field.qbfilterFieldId).pipe(\r\n map(values => {\r\n const arrayOfValues = values.map((a: any) => ({\r\n name: a.value,\r\n value: +a.key\r\n })); \r\n field.qbfilterField.listOfValues = arrayOfValues;\r\n return field;\r\n })\r\n );\r\n } else {\r\n return of(field);\r\n }\r\n })).pipe(\r\n map(modifiedItems => {\r\n filtersPanel.qbpanelToFields = modifiedItems;\r\n return filtersPanel;\r\n })\r\n );\r\n }\r\n )\r\n );\r\n }\r\n\r\n getFieldValues(commonDataApiUrl: string, commonDataApiToken: string, filterFieldId: number): Observable<string[]> {\r\n let url = `${commonDataApiUrl}/fields/${filterFieldId}/values`; \r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${commonDataApiToken}` }); \r\n return this.http.get<string[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { })\r\n );\r\n }\r\n\r\n getCountries(segmentationApi: string, segmentationApiToken: string):Observable<GMCountry[]>{\r\n let url = `${segmentationApi}/countries`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n return this.http.get<GMCountry[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels1(countryIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel1[]>{\r\n let params = countryIds.map(id => id.toString()).join('&gmCountryIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels1?gmCountryIds=`+params;\r\n return this.http.get<GMAreaLevel1[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels2(areaLevel1Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel2[]>{\r\n let params = areaLevel1Ids.map(id => id.toString()).join('&gmAreaLevel1Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels2?gmAreaLevel1Ids=`+params;\r\n return this.http.get<GMAreaLevel2[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getLocalities(areaLevel2Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMLocality[]>{\r\n let params = areaLevel2Ids.map(id => id.toString()).join('&gmAreaLevel2Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/localities?gmAreaLevel2Ids=`+params;\r\n return this.http.get<GMLocality[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getPostalCodes(localityIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMPostalCode[]>{\r\n let params = localityIds.map(id => id.toString()).join('&gmLocalityIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/postalcodes?gmLocalityIds=`+params;\r\n return this.http.get<GMPostalCode[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { DataTypeEnum, OperatorEnum } from \"../../../shared/models/enums.model\";\r\n\r\n@Component({\r\n selector: 'w-list-field',\r\n templateUrl: './w-list-field.component.html',\r\n styleUrls: ['./w-list-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WListFieldComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WListFieldComponent implements OnInit, ControlValueAccessor, OnChanges{\r\n @Input('options') optionsReceived!: any;\r\n options!: any;\r\n optionSelected: any;\r\n @Input('operator') operator: any;\r\n @Input('placeholder') placeholder!: any;\r\n @Input('onlyDropdown') onlyDropdown: boolean = false;\r\n @Input('disabled') disabled: boolean = false; \r\n\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n this.options = this.optionsReceived;\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.onlyDropdown == true && (changes[this.optionsReceived] != undefined) && (changes[this.optionsReceived].currentValue[0] !== changes[this.optionsReceived].previousValue[0])){\r\n this.options = this.optionsReceived;\r\n }\r\n\r\n if(this.onlyDropdown == false){\r\n if(changes[this.operator]?.previousValue != undefined){\r\n this.optionSelected = null;\r\n }\r\n }\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.optionSelected);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.optionSelected = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n}\r\n","<!-- <div *ngIf=\"options.length == 0; else optionsDataReady\" class=\"mx-2 w-list-field-skeleton-container p-dropdown p-component\"><p-skeleton width=\"8rem\" height=\"9px\"></p-skeleton></div>\r\n<ng-template #optionsDataReady>\r\n <p-multiSelect *ngIf=\"getDataType() == dataType.Multi\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder ?? 'Select an option'\"\r\n (onChange)=\"onOptionSelected()\">\r\n </p-multiSelect>\r\n <p-dropdown *ngIf=\"options && getDataType() == dataType.Single\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder ?? 'Select an option'\" \r\n (onChange)=\"onOptionSelected()\">\r\n </p-dropdown>\r\n</ng-template> -->\r\n\r\n<div *ngIf=\"options.length == 0; else optionsDataReady\" class=\"wapp-list-field-skeleton-container\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n<ng-template #optionsDataReady>\r\n <w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi\"\r\n [showClear]=\"false\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder\"\r\n (onChange)=\"onOptionSelected()\" \r\n [disabled]=\"disabled\" \r\n [showLabel]=\"false\">\r\n </w-edit-multiselect>\r\n <w-edit-select *ngIf=\"options && getDataType() == dataType.Single\"\r\n [showClear]=\"false\"\r\n appendTo=\"body\" \r\n [options]=\"options\" \r\n [(ngModel)]=\"optionSelected\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n [placeholder]=\"placeholder\" \r\n (onChange)=\"onOptionSelected()\" \r\n [disabled]=\"disabled\" \r\n [required]=\"true\" \r\n [showLabel]=\"false\">\r\n </w-edit-select>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-card-title-text',\r\n templateUrl: './w-view-card-title-text.component.html',\r\n styleUrls: ['./w-view-card-title-text.component.scss']\r\n})\r\nexport class WViewCardTitleTextComponent implements OnInit {\r\n\r\n @Input('cardTitle') cardTitle!: string;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<span class=\"w-view-card-title-text-style\">{{cardTitle}}</span>\r\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType, ButtonType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-toggle-button',\r\n templateUrl: './w-toggle-button.component.html',\r\n styleUrls: ['./w-toggle-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WToggleButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WToggleButtonComponent implements OnInit, ControlValueAccessor {\r\n @Input('onLabel') onLabel: string = \"\";\r\n @Input('offLabel') offLabel: string = \"\";\r\n @Input('size') size: string = \"small\";\r\n @Input('onIcon') onIcon: string = \"\";\r\n @Input('offIcon') offIcon: string = \"\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n}\r\n","<ng-container *ngIf=\"formControl; else noNgControl\">\r\n <p-toggleButton \r\n [ngClass]=\"{'w-togglebutton-small' : size == getSizeName(sizeType.small),\r\n 'w-togglebutton-medium' : size == getSizeName(sizeType.medium),\r\n 'w-togglebutton-large' : size == getSizeName(sizeType.large)}\"\r\n [onLabel]=\"onLabel\" \r\n [offLabel]=\"offLabel\" \r\n iconPos=\"left\" \r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n [formControl]=\"formControl\" \r\n (onChange)=\"onButtonChangedForm($event)\">\r\n </p-toggleButton>\r\n</ng-container>\r\n<ng-template #noNgControl>\r\n <p-toggleButton \r\n [ngClass]=\"{'w-togglebutton-small' : size == getSizeName(sizeType.small),\r\n 'w-togglebutton-medium' : size == getSizeName(sizeType.medium),\r\n 'w-togglebutton-large' : size == getSizeName(sizeType.large)}\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onButtonChanged()\"\r\n [disabled]=\"disabled\" \r\n [onLabel]=\"onLabel\" \r\n [offLabel]=\"offLabel\" \r\n iconPos=\"left\" \r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\">\r\n </p-toggleButton>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { WSelectButtonState } from '../../shared/models/w-select-button-state.model';\r\n\r\n@Component({\r\n selector: 'w-select-button',\r\n templateUrl: './w-select-button.component.html',\r\n styleUrls: ['./w-select-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WSelectButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WSelectButtonComponent {\r\n @Input('stateOptions') stateOptions: WSelectButtonState[] = [{label: 'Off', value: 'off'}, {label: 'On', value: 'on'}];\r\n @Input('size') size: string = \"small\";\r\n \r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n ngModelValue: any;\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n}\r\n","<ng-container *ngIf=\"formControl; else noNgControl\">\r\n <p-selectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\" \r\n [formControl]=\"formControl\" \r\n [disabled]=\"disabled\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (onChange)=\"onButtonChangedForm($event)\">\r\n </p-selectButton>\r\n</ng-container>\r\n<ng-template #noNgControl>\r\n <p-selectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\" \r\n [(ngModel)]=\"ngModelValue\" \r\n [disabled]=\"disabled\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\" \r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\"\r\n (ngModelChange)=\"onButtonChanged()\">\r\n </p-selectButton>\r\n</ng-template>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormControl } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar',\r\n templateUrl: './w-edit-calendar.component.html',\r\n styleUrls: ['./w-edit-calendar.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCalendarComponent implements OnInit, ControlValueAccessor {\r\n\r\n private _minDate!: Date;\r\n \r\n @Input() set minDate(value: Date) {\r\n if(this.ngModelValue < value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value < value) { this.onValue(value) }\r\n this._minDate = value;\r\n }\r\n \r\n get minDate() {\r\n return this._minDate;\r\n }\r\n\r\n private _maxDate!: Date;\r\n\r\n @Input() set maxDate(value: Date) {\r\n if(this.ngModelValue > value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value > value) { this.onValue(value) }\r\n this._maxDate = value;\r\n }\r\n \r\n get maxDate() {\r\n return this._maxDate;\r\n }\r\n \r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('showTime') showTime: boolean = true;\r\n @Input('showSeconds') showSeconds: boolean = true;\r\n @Input('timeOnly') timeOnly: boolean = false;\r\n @Input('showIcon') showIcon: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('displayInlineBlock') displayInlineBlock: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('firstDayOfWeek') firstDayOfWeek: number = 1;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('monthMode') monthMode: boolean = false;\r\n @Input('readonlyInput') readonlyInput!: boolean; \r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n dateFormat: string = '';\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngModelValue: any;\r\n\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngOnInit(): void {\r\n if(this.monthMode) {\r\n this.showTime = false;\r\n this.timeOnly = false;\r\n this.dateFormat = 'dd/MM'\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" [ngClass]=\"{'w-edit-calendar-styles p-fluid field' : true,'disabled': disabled }\" >\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-calendar [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched,\r\n 'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium),\r\n 'w-edit-calendar-no-icon' : !showIcon,\r\n 'disabled': disabled }\"\r\n appendTo=\"body\"\r\n inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\r\n [timeOnly]=\"timeOnly\" \r\n [showSeconds]=\"showSeconds\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [dataType]=\"dataType\"\r\n [dateFormat]=\"dateFormat\" \r\n [readonlyInput]=\"readonlyInput\" \r\n (onSelect)=\"onValue($event)\"\r\n [inputStyleClass]=\"getSizeName(sizeType.small) ? 'w-edit-calendar-medium' : 'w-edit-calendar-small' \">\r\n </p-calendar>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-calendar-styles\" [ngClass]=\"{'displayInlineBlock' : displayInlineBlock, 'disabled' : disabled}\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <p-calendar [ngClass]=\"{'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium),\r\n 'w-edit-calendar-no-icon' : !showIcon,\r\n 'disabled': disabled }\"\r\n appendTo=\"body\"\r\n [(ngModel)]=\"ngModelValue\" inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\r\n [timeOnly]=\"timeOnly\"\r\n [showSeconds]=\"showSeconds\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [dataType]=\"dataType\"\r\n [dateFormat]=\"dateFormat\" \r\n [readonlyInput]=\"readonlyInput\" \r\n (onSelect)=\"onDateChanged()\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { GMCountry } from '../../models/filter-panel/gmcountry-model';\r\nimport { GMAreaLevel1 } from '../../models/filter-panel/gmarealevel1.model';\r\nimport { GMAreaLevel2 } from '../../models/filter-panel/gmarealevel2.model';\r\nimport { GMLocality } from '../../models/filter-panel/gmlocality.model';\r\nimport { GMPostalCode } from '../../models/filter-panel/gmpostalcode.model';\r\nimport { AddressEnum, DataTypeEnum, OperatorEnum } from '../../models/enums.model';\r\nimport { ApiService } from '../../service/api/api.service';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-address-field',\r\n templateUrl: './w-address-field.component.html',\r\n styleUrls: ['./w-address-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAddressFieldComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WAddressFieldComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n\r\n countries: GMCountry[] = [];\r\n countrySelected: any;\r\n countryId: number | null = null;\r\n areaLevels1: GMAreaLevel1[] = [];\r\n areaLevel1Selected!: any;\r\n areaLevel1Id: number | null = null;\r\n areaLevels2: GMAreaLevel2[] = [];\r\n areaLevel2Selected!: any;\r\n areaLevel2Id: number | null = null;\r\n localities: GMLocality[] = [];\r\n localitySelected: any;\r\n localityId: number | null = null;\r\n postalCodes: GMPostalCode[] = [];\r\n postalCodeSelected: any;\r\n addressValue: any;\r\n @Input('operator') operator!: any;\r\n @Input('selectPlaceholder') selectPlaceholder: string = 'Select an option';\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('segmentationApiToken') segmentationApiToken!: string;\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(private apiService: ApiService){}\r\n\r\n ngOnInit(): void {\r\n this.getCountries();\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if(changes.operator.previousValue !== undefined){\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.onChange(null);\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getCountries(){\r\n this.apiService.getCountries(this.segmentationApiUrl, this.segmentationApiToken).subscribe({ \r\n next: (countries: GMCountry[]) => {\r\n this.countries = countries ?? [];\r\n this.countrySelected = this.getAddressData(AddressEnum.Country, true, \"gMCountryId\");\r\n this.onCountrySelected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel1(countryId: number[]){\r\n this.apiService.getAreaLevels1(countryId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels1: GMAreaLevel1[]) => {\r\n this.areaLevels1 = areaLevels1 ?? [];\r\n this.areaLevel1Selected = this.getAddressData(AddressEnum.AreaLevel1, true, \"gMAreaLevel1Id\");\r\n this.onAreaLevel1Selected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel2(areaLevel1Id: number[]){\r\n this.apiService.getAreaLevels2(areaLevel1Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels2: GMAreaLevel2[]) => {\r\n this.areaLevels2 = areaLevels2 ?? [];\r\n this.areaLevel2Selected = this.getAddressData(AddressEnum.AreaLevel2, true, \"gMAreaLevel2Id\");\r\n this.onAreaLevel2Selected();\r\n }\r\n })\r\n }\r\n\r\n getLocalities(areaLevel2Id: number[]){\r\n this.apiService.getLocalities(areaLevel2Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (localities: GMLocality[]) => {\r\n this.localities = localities ?? [];\r\n this.localitySelected = this.getAddressData(AddressEnum.Locality, true, \"gMLocalityId\");\r\n this.onLocalitySelected();\r\n }\r\n })\r\n }\r\n\r\n getPostalCodes(localityId: number[]){\r\n this.apiService.getPostalCodes(localityId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (postalCodes: GMPostalCode[]) => {\r\n this.postalCodes = postalCodes ?? [];\r\n this.postalCodeSelected = this.getAddressData(AddressEnum.PostalCode, false);\r\n this.onPostalCodeSelected();\r\n }\r\n })\r\n }\r\n\r\n getAddressData(addressEnumType: number, isNotLastSelect: boolean, addressPropertyIdName?: string){\r\n let dataSelected: any;\r\n if(this.addressValue?.property){\r\n if(this.addressValue.property == addressEnumType){\r\n dataSelected = this.addressValue.data;\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[addressPropertyIdName];\r\n }\r\n }else if(Array.isArray(this.addressValue)){\r\n dataSelected = [];\r\n if(this.hasPropertyValueFirstElement(this.addressValue, \"property\", addressEnumType)){\r\n dataSelected = this.addressValue.map(a => a.data);\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[0][addressPropertyIdName];\r\n }\r\n }\r\n return dataSelected;\r\n }\r\n\r\n onCountrySelected(){\r\n this.areaLevel1Selected = null;\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.countryId = this.countrySelected;\r\n\r\n this.doOnChange(AddressEnum.Country, this.countrySelected);\r\n\r\n this.areaLevels1 = [];\r\n if(this.countrySelected?.length > 0){\r\n this.getAreaLevel1(this.countrySelected);\r\n } else if(!Array.isArray(this.countrySelected) && this.countrySelected){\r\n this.getAreaLevel1([this.countrySelected]);\r\n }\r\n }\r\n\r\n onAreaLevel1Selected(){\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel1Id = this.areaLevel1Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId);\r\n\r\n this.areaLevels2 = [];\r\n if(this.areaLevel1Selected?.length > 0){\r\n this.getAreaLevel2(this.areaLevel1Selected);\r\n } else if(!Array.isArray(this.areaLevel1Selected) && this.areaLevel1Selected){\r\n this.getAreaLevel2([this.areaLevel1Selected]);\r\n }\r\n }\r\n\r\n onAreaLevel2Selected(){\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel2Id = this.areaLevel2Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id);\r\n\r\n this.localities = [];\r\n if(this.areaLevel2Selected?.length > 0){\r\n this.getLocalities(this.areaLevel2Selected);\r\n } else if(!Array.isArray(this.areaLevel2Selected) && this.areaLevel2Selected){\r\n this.getLocalities([this.areaLevel2Selected]);\r\n }\r\n }\r\n\r\n onLocalitySelected(){\r\n this.postalCodeSelected = null;\r\n\r\n this.localityId = this.localitySelected;\r\n\r\n this.doOnChange(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id);\r\n\r\n this.postalCodes = [];\r\n if(this.localitySelected?.length > 0){\r\n this.getPostalCodes(this.localitySelected);\r\n } else if(!Array.isArray(this.localitySelected) && this.localitySelected){\r\n this.getPostalCodes([this.localitySelected]);\r\n }\r\n }\r\n\r\n onPostalCodeSelected(){\r\n this.doOnChange(AddressEnum.PostalCode, this.postalCodeSelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id, this.localityId)\r\n }\r\n\r\n onCountryCleared() {\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(null);\r\n }\r\n\r\n onAreaLevel1Cleared() {\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Country, this.countrySelected));\r\n }\r\n\r\n onAreaLevel2Cleared() {\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId));\r\n }\r\n\r\n onLocalityCleared() {\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id));\r\n }\r\n \r\n onPostalCodeCleared() {\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.postalCodeSelected = value;\r\n this.addressValue = value;\r\n\r\n if(value == undefined){\r\n this.countrySelected = null;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n createObjectAddressProperty(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n return {\r\n property: addressType, \r\n data: value,\r\n gMCountryId: countryId,\r\n gMAreaLevel1Id: areaLevel1Id,\r\n gMAreaLevel2Id: areaLevel2Id,\r\n gMLocalityId: localityId\r\n }\r\n }\r\n\r\n doOnChange(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n if(value){\r\n if(this.getDataType() == DataTypeEnum.Single){\r\n this.onChange(this.createObjectAddressProperty(addressType, value, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n }else if(this.getDataType() == DataTypeEnum.Multi){\r\n let addressProperties = value.map((v: any) => this.createObjectAddressProperty(addressType, v, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n this.onChange(addressProperties);\r\n }\r\n\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n\r\n hasPropertyValueFirstElement(arr: any[], property: string, value: any): boolean {\r\n const firstElement = arr[0];\r\n return firstElement && firstElement[property] === value;\r\n }\r\n}\r\n","<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && countries.length > 0\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && areaLevels1.length > 0 && countrySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && areaLevels2.length > 0 && areaLevel1Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && localities.length > 0 && areaLevel2Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n<w-edit-multiselect *ngIf=\"getDataType() == dataType.Multi && postalCodes.length > 0 && localitySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" [placeholder]=\"selectPlaceholder\"></w-edit-multiselect>\r\n\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && countries.length > 0\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" (onClear)=\"onCountryCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && areaLevels1.length > 0 && countrySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" (onClear)=\"onAreaLevel1Cleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && areaLevels2.length > 0 && areaLevel1Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" (onClear)=\"onAreaLevel2Cleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && localities.length > 0 && areaLevel2Selected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" (onClear)=\"onLocalityCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n<w-edit-select *ngIf=\"getDataType() == dataType.Single && postalCodes.length > 0 && localitySelected\" class=\"w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"body\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" (onClear)=\"onPostalCodeCleared()\" [placeholder]=\"selectPlaceholder\"></w-edit-select>\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { OperatorEnum, QBDataTypeEnum } from '../../shared/models/enums.model';\r\nimport { QbPanelFilter } from '../../shared/models/filter-panel/qb-panel-filter.model';\r\nimport { Entity, EntityMap, Field, FieldMap, QueryBuilderConfig, Rule, RuleSet } from '../../shared/models/filter-panel/field.model';\r\nimport { FilterPanelTranslations } from '../../shared/models/filter-panel/filter-panel-translations.model';\r\nimport { QueryResultType, QueryResults } from '../../shared/models/filter-panel/query-results.model';\r\nimport { FilterField } from '../../shared/models/filter-panel/filter-field.models';\r\nimport { QbFilterEntity } from '../../shared/models/filter-panel/qb-filter-entity.model';\r\nimport { ApiService } from '../../shared/service/api/api.service';\r\nimport { StoredFilterPanelQuery } from '../../shared/models/stored-filter-panel-query.model';\r\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\r\nimport { NullableSelectOption } from '../../shared/models/filter-panel/nullable-select-option.model';\r\nimport { BooleanSelectOption } from '../../shared/models/filter-panel/boolean-select-option.model';\r\nimport { QueryBuilderComponent } from 'angular2-query-builder';\r\nimport { TranslatedSelectOption } from '../../shared/models/filter-panel/translated-select-optinon.model';\r\n\r\n@Component({\r\n selector: 'w-filter-panel',\r\n templateUrl: './w-filter-panel.component.html',\r\n styleUrls: ['./w-filter-panel.component.scss']\r\n})\r\nexport class WFilterPanelComponent implements OnInit {\r\n public queryCtrl!: FormControl;\r\n public advancedQueryCtrl!: FormControl;\r\n public groupedQueryCtrl!: FormControl;\r\n public persistValueOnFieldChange: boolean = false;\r\n \r\n queryConfigReady: boolean = false;\r\n isAdvancedSearch: boolean = false;\r\n qbDataTypeEnum = QBDataTypeEnum;\r\n qbDataEnums = Object.values(QBDataTypeEnum);\r\n basicQueryConfig!: any;\r\n advancedQueryConfig!: any;\r\n basicQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n groupedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n advancedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n filterPanelObject!: QbPanelFilter;\r\n entityConfigGrouped: QueryBuilderConfig = { fields: {} };\r\n entities: any[] = [];\r\n defaultValues: any[] = [];\r\n defaultOperators: any[] = [];\r\n storedQuery!: StoredFilterPanelQuery;\r\n parentRoute!: string;\r\n\r\n @Input('apiUrl') authorizationApiUrl!: string;\r\n @Input('commonDataApiUrl') commonDataApiUrl!: string;\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('token') token!: string;\r\n @Input('commonDataToken') commonDataToken!: string;\r\n @Input('segmentationToken') segmentationToken!: string;\r\n @Input('filterId') filterId!: string;\r\n @Input('dataIsLoadingSearchButton') dataIsLoadingSearchButton: boolean = false;\r\n @Input('tenantId') tenantId!: string;\r\n\r\n @Input('translationsObject') translationsObject: FilterPanelTranslations = {\r\n basicSearchTabLabel: 'Basic search',\r\n advancedSearchTabLabel: 'Advanced search',\r\n groupedFilterTitle: 'Grouped filter',\r\n advancedSearch: {\r\n andButtonLabel: 'And',\r\n orButtonLabel: 'Or',\r\n addRuleButtonLabel: 'Add filter',\r\n addRuleSetButtonLabel: 'Add filter set',\r\n removeRuleSetButtonLabel: 'Remove rule set'\r\n },\r\n noRulesLabel: 'Add filter or filter set to start',\r\n searchButtonLabel: 'Clear',\r\n clearButtonLabel: 'Clear',\r\n fieldsPlaceholders: {\r\n boolean: {\r\n true: 'True',\r\n false: 'False'\r\n },\r\n decimal: 'Insert decimal number',\r\n list: 'Select an option',\r\n number: 'Insert a number',\r\n text: 'Insert text',\r\n datetime: 'Select a date'\r\n },\r\n firstDayOfWeek: 0,\r\n operators: {\r\n contains:'contains'\r\n },\r\n fields: {\r\n IdleDeadline: 'Id',\r\n name: 'Name',\r\n code: 'Code',\r\n delete: 'Deleted',\r\n country: 'Country'\r\n },\r\n nullableSelectOptions: {\r\n customeroperation: {\r\n isNullOption: 'No customers',\r\n isNotNullOption: 'Customers'\r\n }\r\n },\r\n booleanSelectOptions: {\r\n voidedoperation: {\r\n isNullOption: 'No voided',\r\n isNotNullOption: 'Voided'\r\n }\r\n },\r\n translatedSelectOptions: {\r\n welcome: \"Bienvenida\",\r\n segmented: \"Segmentos de cliente\",\r\n lottery: \"Sorteo\",\r\n conditionalOnPurchase: \"Compra\",\r\n manual : \"Manual\"\r\n }\r\n };\r\n \r\n @Output('searchClicked') searchClicked = new EventEmitter<QueryResults>();\r\n @Output('clearClicked') clearClicked = new EventEmitter<boolean>();\r\n @Output('lastQuery') lastQuery = new EventEmitter<QueryResults>();\r\n \r\n stateOptions: any[] = [{ label: this.translationsObject.advancedSearch.andButtonLabel, value: 'and' }, { label: this.translationsObject.advancedSearch.orButtonLabel, value: 'or' }];\r\n \r\n @ViewChild('advancedQueryBuilder', { static: false }) queryBuilder!: QueryBuilderComponent;\r\n \r\n constructor(\r\n private formBuilder: FormBuilder, \r\n private apiService: ApiService,\r\n private sessionStorage: SessionStorageService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isAdvancedSearch = this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)?.advancedQueryValue ? true : false;\r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n this.storedQuery= this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)\r\n }\r\n this.getQueryBuilderFilterPanel();\r\n }\r\n\r\n initQueryBuilderControls() {\r\n this.queryCtrl = this.formBuilder.control(this.basicQuery);\r\n this.advancedQueryCtrl = this.formBuilder.control(this.advancedQuery);\r\n if(this.filterPanelObject.allowGrouped) {\r\n this.groupedQueryCtrl = this.formBuilder.control(this.groupedQuery);\r\n }\r\n \r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n let lastQuery: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.storedQuery?.basicQueryValue ? Object.assign({}, this.storedQuery?.basicQueryValue) : null,\r\n advanced: this.storedQuery?.advancedQueryValue ? Object.assign({}, this.storedQuery?.advancedQueryValue) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped && this.groupedQueryCtrl ? Object.assign({}, this.groupedQueryCtrl?.value) : null\r\n }\r\n\r\n this.setNoFiltersQueryType(lastQuery)\r\n .then((res) => {\r\n lastQuery = this.deleteFieldsWithoutValue(lastQuery);\r\n lastQuery = this.handleEmptyFieldsQuery(lastQuery);\r\n this.lastQuery.emit(lastQuery);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n }\r\n }\r\n\r\n nullableSelectPlaceholder(rule: Rule, options: NullableSelectOption[]) {\r\n if(rule.operator == 'is' && rule.value == 'null') {\r\n rule.value = 0;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNullOption;\r\n }\r\n if(rule.operator == 'is not' && rule.value == 'null') {\r\n rule.value = 1;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNotNullOption;\r\n }\r\n return this.translationsObject.fieldsPlaceholders.list;\r\n }\r\n \r\n setEmtpyArraysToNull(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.setEmtpyArraysToNull(rule);\r\n });\r\n } else {\r\n if (query.value instanceof Array && query.value.length == 0) {\r\n query.value = null;\r\n }\r\n }\r\n }\r\n\r\n updateSearchType() {\r\n this.isAdvancedSearch = !this.isAdvancedSearch;\r\n if(this.isAdvancedSearch) {\r\n setTimeout(() => {\r\n this.updateNullableElements(this.queryBuilder.config.fields)\r\n }, 3000);\r\n }\r\n }\r\n\r\n updateNullableElements(elements: { [key: string]: any }): void {\r\n for (const key in elements) {\r\n if (elements.hasOwnProperty(key)) {\r\n const element = elements[key];\r\n if (element.operators.includes('nullable') && element.defaultValue == null) {\r\n element.defaultValue = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSearchClicked() {\r\n let queries: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.isAdvancedSearch ? null : Object.assign({}, this.queryCtrl.value),\r\n advanced: this.isAdvancedSearch ? Object.assign({}, this.advancedQueryCtrl.value) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped ? Object.assign({}, this.groupedQueryCtrl.value) : null\r\n }\r\n \r\n this.setEntity(queries);\r\n\r\n queries = this.initializeOperators(queries);\r\n \r\n this.setNoFiltersQueryType(queries).then((resQueries:any) => {\r\n if(resQueries.type != 0){\r\n this.nullableFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);\r\n }\r\n }).then((resQueries:any) => {\r\n let storedQuery: StoredFilterPanelQuery = {\r\n id: this.filterId,\r\n basicQueryValue: queries.basic,\r\n advancedQueryValue: queries.advanced,\r\n groupedQueryValue: queries.grouped\r\n }\r\n this.setEmtpyArraysToNull(queries.basic ? queries.basic : queries.advanced);\r\n if(storedQuery.advancedQueryValue && storedQuery.advancedQueryValue.rules == 0) {\r\n //Do nothing\r\n } else {\r\n this.sessionStorage.setLastFilterPanelQuery(this.tenantId, storedQuery);\r\n }\r\n }).then((resQueries: any) => {\r\n queries = this.deleteFieldsWithoutValue(queries);\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n this.searchClicked.emit(queries);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n .catch((error) => {\r\n console.error(\"Error en la promesa:\", error);\r\n });\r\n }\r\n\r\n setNoFiltersQueryType(queries:any) {\r\n return new Promise((resolve, reject) => {\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n resolve(queries);\r\n });\r\n }\r\n\r\n onClearClicked() {\r\n this.resetBasicQueryValues();\r\n this.advancedQuery.rules = [];\r\n this.groupedQuery.rules = [];\r\n this.sessionStorage.removeLastFilterPanelQuery(this.tenantId, this.filterId);\r\n this.clearClicked.emit(true);\r\n }\r\n\r\n handleEmptyFieldsQuery(queries: QueryResults): QueryResults {\r\n if(queries.advanced != null && queries.advanced?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.basic != null && queries.basic?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.grouped != null && queries.grouped?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n return queries;\r\n }\r\n\r\n nullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.nullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if (query.operator === OperatorEnum.Nullable || ((query.operator == 'is' || query.operator == 'is not') && (query.value == 1 || query.value == 0))) {\r\n if(query.value == 1) {\r\n query.operator = 'is not';\r\n }\r\n if(query.value == 0) {\r\n query.operator = 'is';\r\n }\r\n query.value = 'null';\r\n }\r\n }\r\n }\r\n\r\n inverseNullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.inverseNullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if ((query.operator == 'is not' || query.operator == 'is') && query.value == 'null') {\r\n if(query.operator == 'is not') {\r\n query.value = 1;\r\n }\r\n if(query.operator == 'is') {\r\n query.value = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getQueryType(): QueryResultType {\r\n if(!this.isAdvancedSearch) {\r\n return QueryResultType.Basic;\r\n } else {\r\n if(this.isAdvancedSearch && this.groupedQueryCtrl?.value) {\r\n return QueryResultType.Grouped\r\n } else {\r\n return QueryResultType.Advanced;\r\n }\r\n }\r\n }\r\n\r\n setEntity(queries: QueryResults) {\r\n if(this.getQueryType() == QueryResultType.Basic) {\r\n queries.basic!.rules = queries.basic!.rules.map((r:any) => {\r\n return {\r\n field: r.field,\r\n operator: r.operator,\r\n value: r.value,\r\n entity: this.entities.find(e => e.fieldJsonName == r.field).entity\r\n }\r\n })\r\n }\r\n }\r\n\r\n getQueryBuilderFilterPanel() {\r\n this.apiService.getFilterPanel(this.authorizationApiUrl, this.token, this.commonDataApiUrl, this.commonDataToken, this.filterId)\r\n .subscribe((qbPanelFilter: QbPanelFilter) => {\r\n this.filterPanelObject = qbPanelFilter;\r\n let basicFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n let advancedFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => !panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n this.defaultValues = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId, \r\n basic: panelToField.basic, \r\n defaultValue: this.defaultValueAdapter(panelToField.defaultValue)\r\n }\r\n })\r\n this.defaultOperators = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId,\r\n qbdefaultOperator: panelToField.qbdefaultOperator\r\n }\r\n })\r\n let filterEntity: QbFilterEntity[] = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n id: panelToField.qbfilterField.qbfilterEntity.id, \r\n basic: panelToField.basic,\r\n name: panelToField.qbfilterField.qbfilterEntity.name, \r\n jsonName: panelToField.qbfilterField.qbfilterEntity.jsonName, \r\n fields: []\r\n }\r\n });\r\n\r\n let filterFields: FilterField[] = qbPanelFilter.qbpanelToFields.map(p => p.qbfilterField);\r\n filterEntity.forEach((entity: QbFilterEntity, index: number) => {\r\n let fields = filterFields.filter(e => e.qbfilterEntity.id == entity.id);\r\n filterEntity[index].fields = fields ;\r\n })\r\n \r\n this.basicQueryConfig = this.initQueryBuilder(filterEntity, true);\r\n this.basicQueryConfig = this.filterFieldsById(this.basicQueryConfig, basicFilterIds);\r\n this.basicQueryConfig.fields = this.translateFields(this.basicQueryConfig.fields);\r\n this.advancedQueryConfig = this.initQueryBuilder(filterEntity, false);\r\n this.advancedQueryConfig = this.filterFieldsById(this.advancedQueryConfig, advancedFilterIds);\r\n this.advancedQueryConfig.fields = this.translateFields(this.advancedQueryConfig.fields);\r\n let rules = Object.keys(this.basicQueryConfig.fields)\r\n .map(fieldKey => { \r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == this.basicQueryConfig.fields[fieldKey].id && operator.qbdefaultOperator != null);\r\n return {\r\n field: fieldKey, \r\n value: this.basicQueryConfig.fields[fieldKey].defaultValue!,\r\n operator: defaultOperator ? defaultOperator.qbdefaultOperator.symbol : null\r\n }\r\n });\r\n\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length != 0) {\r\n this.basicQuery = this.storedQuery.basicQueryValue;\r\n } else {\r\n this.basicQuery = {\r\n condition: 'and',\r\n rules: rules\r\n };\r\n }\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length != 0) {\r\n this.advancedQuery = this.storedQuery.advancedQueryValue;\r\n } else {\r\n this.advancedQuery = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n }\r\n\r\n this.queryConfigReady = true;\r\n this.initQueryBuilderControls();\r\n })\r\n }\r\n\r\n defaultValueAdapter(value: any) {\r\n if(value == 'QBFilterOptionsEnumNull') {\r\n return 0;\r\n }\r\n\r\n if(value == 'QBFilterOptionsEnumNotNull') {\r\n return 1;\r\n }\r\n \r\n if(value == '0') {\r\n return 0;\r\n }\r\n\r\n if(value == '1') {\r\n return 1;\r\n }\r\n return value;\r\n }\r\n\r\n initQueryBuilder(filterEntities: QbFilterEntity[], isBasic: boolean) {\r\n let entityConfigAux: QueryBuilderConfig = { fields: {} };\r\n let entitiesArray: EntityMap[] = [];\r\n \r\n filterEntities.map((e, index) => {\r\n let entity: Entity = { name: e.jsonName };\r\n return entitiesArray[index] = { [e.jsonName]: entity };\r\n });\r\n\r\n let entitiesMap: EntityMap = {};\r\n\r\n for (const entity of entitiesArray) {\r\n const keys = Object.keys(entity);\r\n\r\n keys.forEach(key => {\r\n if(this.translationsObject.entities) {\r\n let entitiesTranslationsKeys = Object.keys(this.translationsObject.entities);\r\n let translation = entitiesTranslationsKeys.find(translationKey => translationKey == key);\r\n if(translation) {\r\n entitiesMap[key] = { name: this.translationsObject.entities[key] }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n });\r\n\r\n entityConfigAux.entities = entitiesMap;\r\n }\r\n\r\n let fields: FieldMap[] = [];\r\n filterEntities.forEach((filterEntity) => {\r\n return filterEntity.fields.filter((filterField: FilterField) => {\r\n let index: number = fields.length ?? 0;\r\n let operatorsFlatArray = filterField.operators.map((o:any) => o.symbol);\r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == filterField.id);\r\n let field: Field = {\r\n id: filterField.id,\r\n name: filterField.name,\r\n operators: defaultOperator.qbdefaultOperator?.symbol ? this.moveElementToFirstPlace(operatorsFlatArray, defaultOperator.qbdefaultOperator?.symbol) : operatorsFlatArray,\r\n type: this.getDataType(filterField.dataType),\r\n defaultValue: this.formatDefaultValue(this.defaultValues.find(value => value.qbfilterFieldId == filterField.id && value.basic == isBasic)?.defaultValue, filterField.dataType),\r\n defaultOperator: defaultOperator.qbdefaultOperator?.symbol,\r\n entity: filterEntity.jsonName,\r\n options: filterField.listOfValues,\r\n validator: (rule: Rule, parent: RuleSet): any | null => {\r\n if (rule.operator !== \"is null\" && rule.operator !== \"is not null\") {\r\n if (rule.value === undefined || rule.value === null || rule.value === '' || rule.value.length == 0) {\r\n return { required: 'empty field' };\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n this.entities.push({fieldJsonName: filterField.jsonName, entity: field.entity});\r\n fields[index] = { [filterField.jsonName]: field };\r\n });\r\n });\r\n\r\n let fieldsMap: FieldMap = {};\r\n\r\n for (const field of fields) {\r\n const keys = Object.keys(field);\r\n keys.forEach(key => {\r\n fieldsMap[key] = field[key];\r\n });\r\n\r\n entityConfigAux.fields = fieldsMap;\r\n }\r\n return entityConfigAux;\r\n }\r\n\r\n filterFieldsById(fieldsObj: any, idArray: number[]): any {\r\n const filteredFields: any = {};\r\n \r\n for (const key in fieldsObj.fields) {\r\n const field = fieldsObj.fields[key];\r\n if (idArray.includes(field.id)) {\r\n filteredFields[key] = field;\r\n }\r\n }\r\n \r\n return {\r\n ...fieldsObj,\r\n fields: filteredFields,\r\n };\r\n }\r\n\r\n translateFields(fields: FieldMap) {\r\n for (const key in fields) {\r\n if (fields.hasOwnProperty(key)) {\r\n fields[key].field = key;\r\n fields[key].name = this.translationsObject.fields[key];\r\n }\r\n }\r\n return fields;\r\n }\r\n\r\n moveElementToFirstPlace(array: any[], elementToFirstPlace: string) {\r\n const index = array.indexOf(elementToFirstPlace);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n array.unshift(elementToFirstPlace); \r\n }\r\n return array;\r\n }\r\n\r\n formatDefaultValue(value: any, type: QBDataTypeEnum) {\r\n if(value) {\r\n if(type == QBDataTypeEnum.Boolean) {\r\n return value.toLowerCase() === 'true';\r\n }\r\n if(type == this.qbDataTypeEnum.Number || type == this.qbDataTypeEnum.Decimal || type == this.qbDataTypeEnum.List){\r\n return Number(value);\r\n }\r\n if(type == this.qbDataTypeEnum.NullableSelect) {\r\n return 1;\r\n }\r\n if(type == this.qbDataTypeEnum.BooleanSelect) {\r\n return 1;\r\n }\r\n } \r\n return value;\r\n }\r\n\r\n getDataType(id: number) {\r\n return this.qbDataEnums.find(value => value === id)?.toString() ?? \"\";\r\n }\r\n\r\n deleteFieldsWithoutValue(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != null);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != undefined);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value !== \"\");\r\n json.basic.rules = json.basic.rules.filter((rule: any) => { return !(rule.operator === \"nullable\" && rule.value === \"null\"); });\r\n }\r\n if(json.advanced && json.advanced.rules?.length != 0) {\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.rules?.length != 0);\r\n }\r\n if(json.grouped && json.grouped?.rules.length != 0) {\r\n json.grouped.rules = json.grouped.rules.filter((rule: any) => rule.rules?.length != 0);\r\n }\r\n if(json.grouped && json.grouped?.rules.length == 0) {\r\n json.grouped = null;\r\n }\r\n return json;\r\n }\r\n \r\n initializeOperators(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules.forEach((rule:any) => {\r\n if(!rule.operator) {\r\n rule.operator = \"=\";\r\n }\r\n });\r\n }\r\n return json;\r\n }\r\n\r\n resetBasicQueryValues() {\r\n this.basicQuery.rules.forEach((rule: Rule) => {\r\n if(rule.value || rule.value == 0){\r\n rule.value = null\r\n }\r\n });\r\n }\r\n\r\n getQueryFieldName(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fieldEntry && fields[fieldEntry].name ? fields[fieldEntry].name : fieldName;\r\n }\r\n\r\n getNullableSelectOptions(options: NullableSelectOption[]) {\r\n return options.map((option: NullableSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.nullableSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.nullableSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n \r\n getBooleanSelectOptions(options: BooleanSelectOption[]) {\r\n return options.map((option: BooleanSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.booleanSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.booleanSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n\r\n getTranslatedSelectOptions(options: TranslatedSelectOption[]) {\r\n return options.map((option: TranslatedSelectOption) => {\r\n return {\r\n name: this.translationsObject.translatedSelectOptions![option.name.charAt(0).toLowerCase() + option.name.slice(1)],\r\n value: option.value\r\n }\r\n })\r\n }\r\n\r\n fieldIsBoolean(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fields[fieldEntry!].type == QBDataTypeEnum.Boolean.toString() ? true : false;\r\n }\r\n\r\n isMultiselect(rule: Rule) {\r\n if(rule.operator == 'in' || rule.operator == 'not in' || rule.operator == 'is null' || rule.operator == 'is not null') {\r\n if(rule.value) {\r\n if(!Array.isArray(rule.value)) {\r\n rule.value = null;\r\n }\r\n }\r\n return true;\r\n } else {\r\n if(rule.value) {\r\n if(Array.isArray(rule.value))\r\n rule.value = null;\r\n }\r\n return false;\r\n }\r\n }\r\n}\r\n","<!-- TODO: Intentar otra vez pasar los componentes a los de w- porque no se alinena y el w-edit-select no va bien en field. \r\n Ahora se conservan los de p-w con estilos. -->\r\n<p-blockUI styleClass=\"w-filter-panel-blockui\" [autoZIndex]=\"false\" [target]=\"filterPanel\" [blocked]=\"dataIsLoadingSearchButton\"></p-blockUI>\r\n\r\n<p-card styleClass=\"w-filter-panel-no-style-card\" #filterPanel>\r\n <div *ngIf=\"queryConfigReady\" class=\"w-filter-panel-styles\">\r\n <div *ngIf=\"!filterPanelObject.allowAdvancedSearch; else baiscAndAdvanced\">\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n <div class=\"w-filter-panel-buttons\">\r\n <w-button icon=\"w-icon closeCircle\" buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button icon=\"pi pi-filter-fill\" buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" size=\"small\" (onClick)=\"onSearchClicked()\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #baiscAndAdvanced>\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n <ng-container *ngIf=\"!isAdvancedSearch; else advancedView\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n </ng-container>\r\n <ng-template #advancedView>\r\n <ng-container *ngTemplateOutlet=\"advanced\"></ng-container>\r\n </ng-template>\r\n\r\n <div class=\"w-filter-panel-buttons\" [class.pt-3]=\"isAdvancedSearch\">\r\n <w-button buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" icon=\"w-icon closeCircle\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" icon=\"pi pi-filter-fill\" size=\"small\" (onClick)=\"onSearchClicked()\" [loading]=\"dataIsLoadingSearchButton\"></w-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</p-card>\r\n\r\n <ng-template #basic>\r\n <div *ngIf=\"filterPanelObject.allowAdvancedSearch\" class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" [label]=\"translationsObject.advancedSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <div *ngIf=\"basicQuery.rules.length > 0\" class=\"w-filter-panel-basic query-builder-style fadein animation-duration-500\">\r\n <query-builder [formControl]='queryCtrl' [config]='basicQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset;\">\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <p-dropdown [disabled]=\"true\" class=\" w-edit-select-small\" *ngIf=\"false\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields; let value=value; let name=name; let index=index\">\r\n <span appendTo=\"body\" class=\"w-filter-panel-input-text-label\" [class.w-filter-panel-boolean-label-width]=\"fieldIsBoolean(rule.field, getFields(rule.entity))\" optionLabel=\"name\" optionValue=\"value\">{{ getQueryFieldName(rule.field, getFields(rule.entity))}}</span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n <p-dropdown class=\" w-edit-select-small\" *ngIf=\"isAdvancedSearch\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n <w-toggle-button size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-calendar appendTo=\"body\" size=\"small\" [showIcon]=\"false\" [dataType]=\"'string'\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"w-edit-input-number-small\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"options\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"w-edit-input-number-small\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-input-text class=\"w-edit-input-text-small-height\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\" [showLabel]=\"false\"></w-edit-input-text>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-multiSelect class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getNullableSelectOptions(options)\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" \r\n [placeholder]=\"nullableSelectPlaceholder(rule, options)\">\r\n </p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getBooleanSelectOptions(options)\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\"></w-address-field>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getTranslatedSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n </query-builder>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!isAdvancedSearch && basicQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #advanced>\r\n <div [class.query-builder-style]=\"!filterPanelObject.allowRuleSet\" class=\"w-filter-panel-container fadein animation-duration-500\">\r\n <div *ngIf=\"filterPanelObject.allowRuleSet\" class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" class=\"mb-2\" [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <query-builder class=\"w-filter-panel-advanced query-builder-style\" #advancedQueryBuilder [formControl]='advancedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <div *ngIf=\"filterPanelObject.allowRuleSet; else noRuleSet\">\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <span class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </span>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #noRuleSet>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex justify-content-end flex-wrap\">\r\n <w-button [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <span class=\"advanced-query-button-group flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <div *ngIf=\"ruleset\" class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\">\r\n <w-select-button *ngIf=\"filterPanelObject.allowLogicalRule\" [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n <p-dropdown *ngIf=\"filterPanelObject.enityMode\" class=\"field-gap w-edit-select-small w-entity-dropdown\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field class=\"field-gap\" appendTo=\"body\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" [operator]=\"'='\" (ngModelChange)=\"onChange($event, rule)\" [onlyDropdown]=\"true\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n <p-dropdown *ngIf=\"!operators.includes('nullable')\" class=\"field-gap w-edit-select-small\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown *ngIf=\"!isMultiselect(rule)\" class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"options\" [filter]=\"true\" [showClear]=\"true\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n <p-multiSelect *ngIf=\"isMultiselect(rule)\" class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display field-gap\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <input class=\"field-gap w-edit-input-text-small-height w-edit-input-text-small\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-multiSelect class=\"w-edit-multiselect-small\" [appendTo]=\"'body'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" display=\"chip\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-multiSelect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\" [selectPlaceholder]=\"translationsObject.fieldsPlaceholders.list\"></w-address-field>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display w-entity-nullable\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getNullableSelectOptions(options)\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getBooleanSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"field-gap w-edit-select-small\" appendTo=\"body\" [options]=\"getTranslatedSelectOptions(options)\" [ngModelOptions]=\"{standalone: true}\" [filter]=\"true\" [showClear]=\"false\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n </query-builder>\r\n\r\n <ng-container *ngIf=\"isAdvancedSearch && advancedQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n\r\n <!-- Grouped filter -->\r\n <div *ngIf=\"filterPanelObject.allowGrouped\">\r\n <div class=\"py-5\">\r\n <w-view-card-title-text [cardTitle]=\"translationsObject.groupedFilterTitle\"></w-view-card-title-text>\r\n </div>\r\n\r\n <query-builder *ngIf=\"groupedQuery.rules.length > 0\" class=\"w-filter-panel-grouped query-builder-style\" [formControl]='groupedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <div class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\" *ngIf=\"ruleset\">\r\n <w-select-button *ngIf=\"filterPanelObject.allowLogicalRule\" [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n <p-dropdown class=\"w-edit-select-small field-gap w-entity-dropdown\" *ngIf=\"filterPanelObject.enityMode\" appendTo=\"body\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n <p-dropdown class=\"w-edit-select-small\" appendTo=\"body\" [(ngModel)]=\"rule.operator\" [options]=\"operators\" (ngModelChange)=\"onChange(rule)\"></p-dropdown>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber class=\"flex flex-1\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" [min]=\"0\" [max]=\"100\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" inputId=\"minmax\" inputId=\"minmax\" [min]=\"0\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\"> </p-inputNumber>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\">\r\n <input class=\"field-gap w-edit-input-text-small-height w-edit-input-text-small\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\r\n </span>\r\n </ng-container>\r\n\r\n </query-builder>\r\n\r\n <ng-container *ngIf=\"isAdvancedSearch && groupedQuery.rules.length==0\" >\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #noQueryData>\r\n <div class=\"flex justify-content-center flex-wrap card-container surface-50\">\r\n <div class=\"flex align-items-center justify-content-center w-full h-4rem text-gray-900 border-round m-2\">\r\n {{translationsObject.noRulesLabel}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n","import { Component } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'w-preview-image',\r\n templateUrl: './w-preview-image.component.html',\r\n styleUrls: ['./w-preview-image.component.css']\r\n})\r\nexport class WPreviewImageComponent {\r\n imageCropped!: any;\r\n\r\n constructor(public dynamicDialogConfig: DynamicDialogConfig){}\r\n\r\n ngOnInit(): void {\r\n this.imageCropped = this.dynamicDialogConfig.data.imageEdited;\r\n }\r\n}\r\n","<div class=\"flex align-content-center align-items-center justify-content-center h-full w-full\">\r\n <p-image *ngIf=\"imageCropped\" \r\n class=\"flex align-content-center align-items-center\"\r\n [src]=\"imageCropped\" > </p-image>\r\n</div>\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nexport interface ModalSize {\r\n width: string;\r\n height?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n constructor(private dialogService: DialogService, private breakpointObserver: BreakpointObserver) { }\r\n\r\n dialogRef: any;\r\n smallDialogSubscription: any;\r\n dialogData: any;\r\n\r\n open(componentOrTemplateRef: Type<any>, modalConfig?: DynamicDialogConfig, modalSize?: ModalSize,): DynamicDialogRef {\r\n if (!modalConfig) {\r\n modalConfig = new DynamicDialogConfig;\r\n }\r\n\r\n if (modalConfig.data) {\r\n this.dialogData = modalConfig.data;\r\n }\r\n\r\n // TODO dejo esto comentado como guía para completarlo más adelante\r\n //modalConfig.maxWidth = '100vw';\r\n\r\n this.dialogRef = this.dialogService.open(componentOrTemplateRef, modalConfig);\r\n\r\n this.smallDialogSubscription = this.breakpointObserver.observe([Breakpoints.XSmall])\r\n .subscribe(size => {\r\n if (size.matches) {\r\n //this.dialogRef.updateSize('100%', '100%');\r\n //this.dialogRef.hasBackdrop = false;\r\n } else {\r\n if (!modalSize) {\r\n //this.dialogRef.updateSize('auto', 'auto');\r\n }\r\n else {\r\n //this.dialogRef.updateSize(modalSize.width, modalSize.height);\r\n }\r\n }\r\n });\r\n\r\n return this.dialogRef;\r\n }\r\n\r\n close(): void {\r\n this.smallDialogSubscription.unsubscribe();\r\n this.dialogRef.close();\r\n }\r\n \r\n getComponentInstance<T>() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef.instance as T;\r\n }\r\n\r\n getComponentRef() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ModalService } from '../../shared/services/modal.service';\r\nimport { WPreviewImageComponent } from '../w-preview-image/w-preview-image.component';\r\nimport { Dimensions, ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\n\r\n@Component({\r\n selector: 'w-image-cropper',\r\n templateUrl: './w-image-cropper.component.html',\r\n styleUrls: ['./w-image-cropper.component.scss']\r\n})\r\nexport class WImageCropperComponent {\r\n @Input() dimensionsInput!: WImageCropperData;\r\n @Input() translationsImageCropper: any;\r\n @Output() imageCroppedFinal = new EventEmitter<any>();\r\n @Output() imageB64 = new EventEmitter<any>();\r\n @Input() blob: any;\r\n\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\r\n canvasRotation = 0;\r\n rotation: number = 0;\r\n translateH = 0;\r\n translateV = 0;\r\n scale = 1;\r\n aspectRatio = 4 / 3;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {\r\n translateUnit: 'px'\r\n };\r\n imageURL?: string;\r\n loading = false;\r\n allowMoveImage = true;\r\n hidden = false;\r\n\r\n croppedImageFile: WFileB64 = {name: \"\", type: \"\", fileBase64: \"\", base64: \"\"};\r\n\r\n dimensions: any;\r\n maxFileSize!: number;\r\n roundedCropper!: boolean;\r\n fromModal: boolean = true;\r\n dialogPreview!: DynamicDialogRef;\r\n constructor(\r\n private ref: DynamicDialogRef,\r\n private dialogService: ModalService,\r\n public dynamicDialogConfig: DynamicDialogConfig){\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.dynamicDialogConfig.data == undefined){\r\n this.fromModal = false;\r\n this.aspectRatio = this.dimensionsInput.configuredAspectRatio;\r\n this.roundedCropper = this.dimensionsInput.roundedCropper;\r\n this.dimensions = {\r\n width: this.dimensionsInput.viewPortWidthPx,\r\n height: this.dimensionsInput.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.dimensions.maxFileSize;\r\n }else{\r\n this.aspectRatio = this.dynamicDialogConfig.data.dataModal.configuredAspectRatio;\r\n this.roundedCropper = this.dynamicDialogConfig.data.dataModal.roundedCropper;\r\n this.dimensions = {\r\n width: this.dynamicDialogConfig.data.dataModal.viewPortWidthPx,\r\n height: this.dynamicDialogConfig.data.dataModal.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.dynamicDialogConfig.data.dataModal.maxFileSize\r\n this.translationsImageCropper = this.dynamicDialogConfig.data.translations;\r\n this.blob = this.dynamicDialogConfig.data.blob;\r\n if(this.blob)\r\n this.setCroppeImageFileObject();\r\n }\r\n }\r\n\r\n myUploader(event: any) {\r\n this.resetImage()\r\n this.loading = true;\r\n this.blob = event.files[0];\r\n this.setCroppeImageFileObject();\r\n }\r\n\r\n setCroppeImageFileObject(){\r\n this.croppedImageFile.name = this.blob.name;\r\n this.croppedImageFile.type = this.blob.type;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.croppedImage = event.base64;\r\n }\r\n\r\n imageLoaded(event: any) {\r\n this.showCropper = true;\r\n }\r\n\r\n cropperReady(sourceImageDimensions: Dimensions) {\r\n this.loading = false;\r\n }\r\n\r\n loadImageFailed() {\r\n console.error('Load image failed');\r\n }\r\n\r\n rotateLeft() {\r\n this.loading = true;\r\n setTimeout(() => { // Use timeout because rotating image is a heavy operation and will block the ui thread\r\n this.canvasRotation--;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n rotateRight() {\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.canvasRotation++;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n moveLeft() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: ++this.translateH\r\n };\r\n }\r\n\r\n moveRight() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: --this.translateH\r\n };\r\n }\r\n\r\n moveTop() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: ++this.translateV\r\n };\r\n }\r\n\r\n moveBottom() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: --this.translateV\r\n };\r\n }\r\n\r\n flipHorizontal() {\r\n this.transform = {\r\n ...this.transform,\r\n flipH: !this.transform.flipH\r\n };\r\n }\r\n\r\n flipVertical() {\r\n this.transform = {\r\n ...this.transform,\r\n flipV: !this.transform.flipV\r\n };\r\n }\r\n\r\n resetImage() {\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.canvasRotation = 0;\r\n this.transform = {\r\n translateUnit: 'px'\r\n };\r\n }\r\n\r\n zoomOut() {\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n toggleContainWithinAspectRatio() {\r\n this.containWithinAspectRatio = !this.containWithinAspectRatio;\r\n }\r\n\r\n updateRotation() {\r\n this.transform = {\r\n ...this.transform,\r\n rotate: this.rotation\r\n };\r\n }\r\n\r\n toggleAspectRatio() {\r\n this.aspectRatio = this.aspectRatio === 4 / 3 ? 16 / 5 : 4 / 3;\r\n }\r\n \r\n toggleAspectRatio1() {\r\n this.aspectRatio = this.aspectRatio = 1;\r\n }\r\n\r\n viewCrop(){\r\n this.dialogPreview = this.dialogService.open(WPreviewImageComponent, {\r\n header: this.translationsImageCropper.modal.preview,\r\n width:'35rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"35rem\", \"padding-bottom\": \"8px\"},\r\n data: {imageEdited: this.croppedImage}\r\n })\r\n }\r\n\r\n deleteBlob(){\r\n this.blob = null\r\n this.croppedImage = null\r\n }\r\n\r\n cancelDialog(){\r\n this.blob = null\r\n this.croppedImage = null\r\n this.ref.close();\r\n }\r\n\r\n saveImageCropped(){\r\n this.croppedImageFile.fileBase64 = this.croppedImage;\r\n this.croppedImageFile.base64 = this.imageCroppedToBase64(this.croppedImage, this.croppedImageFile.name);\r\n\r\n if(this.fromModal){\r\n this.ref.close(this.croppedImageFile)\r\n }else{\r\n this.imageCroppedFinal.emit(this.croppedImageFile);\r\n }\r\n }\r\n\r\n private flipAfterRotate() {\r\n const flippedH = this.transform.flipH;\r\n const flippedV = this.transform.flipV;\r\n this.transform = {\r\n ...this.transform,\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n this.translateH = 0;\r\n this.translateV = 0;\r\n }\r\n\r\n imageCroppedToBase64(imageData: string, imageName: string){\r\n const base64Parts = imageData?.split(',');\r\n if (base64Parts.length === 2) {\r\n const base64Content = base64Parts[1];\r\n return base64Content;\r\n }\r\n return '';\r\n }\r\n}\r\n","<div class=\"flex flex-column align-content-center justify-content-center wapp-card-cropper\">\r\n <div class=\"flex flex-1\" ></div> \r\n <div class=\"flex justify-content-center align-content-center\" *ngIf=\"!blob; else imageCropper\">\r\n <span class=\"flex align-content-center surface-border justify-content-between flex-wrap\"> \r\n <p-fileUpload #fileUploader\r\n class=\"w-file-button bg-white\"\r\n chooseIcon=\"pi pi-image\"\r\n chooseLabel=\"Choose\"\r\n (onSelect)=\"myUploader($event)\"\r\n name=\"filesToUpload[]\" \r\n [auto]=\"true\"\r\n [multiple]=\"false\"\r\n accept=\"image/*\"\r\n mode=\"basic\"\r\n accept=\"image/*\" \r\n [maxFileSize]=\"maxFileSize\">\r\n </p-fileUpload>\r\n </span>\r\n </div>\r\n <ng-template #imageCropper>\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"flex flex-row align-content-center\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex align-content-center align-items-center justify-content-between wapp-image-cropper-wrapper flex-1\">\r\n <image-cropper\r\n [imageFile]=\"blob\"\r\n [imageURL]=\"imageURL\"\r\n [maintainAspectRatio]=\"true\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [resizeToWidth]= \"dimensions.width\"\r\n [resizeToHeight]=\"dimensions.height\"\r\n [cropperMinWidth]=\"128\"\r\n [onlyScaleDown]=\"true\"\r\n [roundCropper]=\"false\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [(transform)]=\"transform\"\r\n [alignImage]=\"'center'\"\r\n [style.display]=\"showCropper ? null : 'none'\"\r\n [allowMoveImage]=\"allowMoveImage\"\r\n [hidden]=\"hidden\"\r\n backgroundColor=\"white\"\r\n format=\"jpeg\"\r\n [roundCropper]=\"roundedCropper\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady($event)\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n ></image-cropper>\r\n </div>\r\n <div class=\"flex flex-column justify-content-center align-content-center align-items-center\">\r\n <w-button \r\n class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\" \r\n [pTooltip]=\"translationsImageCropper.zoomIn\"\r\n icon=\"pi pi-search-plus\" (click)=\"zoomIn()\"\r\n type=\"text\"></w-button>\r\n <w-button \r\n class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\" \r\n [pTooltip]=\"translationsImageCropper.zoomOut\"\r\n icon=\"pi pi-search-minus\" \r\n (click)=\"zoomOut()\"\r\n type=\"text\"></w-button> \r\n </div>\r\n <div class=\"flex flex-1\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex flex-1 flex-column wapp-image-cropper-tools py-4\">\r\n <p-slider [(ngModel)]=\"rotation\" [min]=\"-360\" [max]=\"360\" \r\n (ngModelChange)=\"updateRotation()\" class=\"w-full align-content-center\"\r\n [pTooltip]=\"translationsImageCropper.rotation\"></p-slider>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n \r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex flex-1 wapp-image-cropper-tools flex-row justify-content-center align-items-center align-content-center\">\r\n <w-button\r\n type=\"text\"\r\n icon=\"pi pi-replay\" \r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateLeft\"\r\n (click)=\"rotateLeft()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n icon=\"pi pi-refresh\"\r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateRight\"\r\n (click)=\"rotateRight()\"></w-button>\r\n <w-button\r\n type=\"text\"\r\n icon=\"pi pi-arrows-h\" \r\n tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.flipHorizontal\"\r\n (click)=\"flipHorizontal()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.flipVertical\"\r\n icon=\"pi pi-arrows-v\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"flipVertical()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.restore\"\r\n icon=\"pi pi-history\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"resetImage()\"></w-button>\r\n <w-button \r\n type=\"text\"\r\n [pTooltip]=\"translationsImageCropper.preview\"\r\n icon=\"pi pi-eye\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"viewCrop()\"></w-button>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n </div>\r\n \r\n </ng-template>\r\n <div class=\"flex flex-1\" ></div>\r\n <div class=\"wapp-image-cropper-dialog-buttons flex justify-content-end align-content-center align-items-center w-full h-2\">\r\n <w-button *ngIf=\"blob\"\r\n (onClick)=\"deleteBlob()\"\r\n class=\"flex align-content-center align-items-center \"\r\n icon=\"pi-trash\"\r\n [label]=\"translationsImageCropper.delete\"\r\n type=\"text\">\r\n </w-button>\r\n <w-button \r\n *ngIf=\"fromModal\"\r\n (onClick)=\"cancelDialog()\"\r\n class=\"flex align-content-center align-items-center \"\r\n icon=\"pi-times\"\r\n [label]=\"translationsImageCropper.cancel\"\r\n type=\"text\">\r\n </w-button>\r\n <w-button \r\n icon=\"pi-save\"\r\n (click)=\"saveImageCropped()\"\r\n [disabled]=\"!blob\"\r\n [label]=\"translationsImageCropper.save\"\r\n class=\"flex align-content-center align-items-center\"\r\n type=\"text\">\r\n </w-button>\r\n </div> \r\n</div>\r\n \r\n ","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { WImageFileUploaderConfig } from '../../shared/models/w-image-file-uploader-config.model';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ImageB64 } from '../../shared/models/image-b64.model';\r\nimport { WImageCropperComponent } from '../w-image-cropper/w-image-cropper.component';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\n\r\n@Component({\r\n selector: 'w-image-file-uploader',\r\n templateUrl: './w-image-file-uploader.component.html',\r\n styleUrls: ['./w-image-file-uploader.component.scss'],\r\n providers: [ConfirmationService]\r\n})\r\nexport class WImageFileUploaderComponent {\r\n @Input('allowMultipleImages') allowMultipleImages: boolean = false;\r\n @Input('activeImageUpload') activeImageUpload: boolean = false;\r\n @Input('imagesAlreadyUploaded') imagesAlreadyUploaded: any[] = [];\r\n @Input('imageSingleMode') imageSingleMode: any;\r\n @Input('uploadUrl') uploadUrl!: string;\r\n @Input('updateUrl') updateUrl!: string;\r\n @Input('deleteUrl') deleteUrl!: string;\r\n @Input('headers') headers!: HttpHeaders;\r\n @Input('activePositionProperty') activePositionProperty: boolean = false;\r\n @Input('viewSingleMode') viewSingleMode: boolean = false;\r\n @Input('viewMultiMode') viewMultiMode: boolean = false;\r\n @Input('identificatorImageName') identificatorName: string = \"id\";\r\n @Input('identificatorImagesCollectionValue') identificatorValue: any = 0;\r\n @Input('imageUploadConfig') imageUploadConfig: WImageFileUploaderConfig = {\r\n imagePropertyNames: [],\r\n acceptImageTypes: \"image/*\",\r\n maxImageSize: 1000000,\r\n allowAuto: false,\r\n uploadButtonLabel: \"\",\r\n chooseButtonLabel: \"\",\r\n cancelButtonLabel: \"\",\r\n contentHeaderLabel: \"\",\r\n contentSubheaderLabel: \"\",\r\n deleteImageButtonLabel: \"\",\r\n croppedDialogTranslations: \"\",\r\n croppedImageConfiguration: {\r\n roundedCropper: false,\r\n configuredAspectRatio: 4/3,\r\n viewPortWidthPx: 400,\r\n viewPortHeihtPx: 500\r\n },\r\n confirmDeleteMessageLabel: \"\",\r\n confirmDeleteButtonLabel: \"\",\r\n invalidFileSizeMessageSummary: \"\",\r\n invalidFileSizeMessageDetail: \"\",\r\n invalidFileTypeMessageSummary: \"\",\r\n invalidFileTypeMessageDetail: \"\"\r\n }\r\n @Input('activeFieldVersion') activeFieldVersion: boolean = false;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('required') required: boolean = false;\r\n @Input('customHeightImg') customHeightImg!: number;\r\n\r\n @Output('onUploadFinished') onUploadFinished: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onErrorHandler') onErrorHandler: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onReturnImagesB64') onReturnImagesB64: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onDeleteImage') onDeleteImage: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('fileUpload') fileUpload!: FileUpload;\r\n\r\n @ViewChildren('buttonRemoveOnlyImage') buttonRemoveOnlyImage!: QueryList<ElementRef>;\r\n @ViewChild('fileUploadOnlyImage') fileuploadOnlyImage!: FileUpload;\r\n\r\n activeIndexGallery: number = 0;\r\n cropperImages: any[] = [];\r\n defaultWidth: string = \"w-18rem\";\r\n defaultHeight: string = \"h-18rem\";\r\n disableMoveButtons: boolean = false;\r\n isUploadingMultiMode: boolean = false;\r\n isDeletingMultiMode: boolean = false;\r\n\r\n onlyImageSelected: any;\r\n onlyCroppedImageSelected: any = null;\r\n\r\n dimensionsInput!: WImageCropperData;\r\n carouselImagesResponsiveOptions: any[] = [\r\n {\r\n breakpoint: '1024px',\r\n numVisible: 4,\r\n numScroll: 4\r\n },\r\n {\r\n breakpoint: '850px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '560px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private http: HttpClient,\r\n private confirmationService: ConfirmationService\r\n ){}\r\n\r\n ngOnInit(): void {\r\n this.dimensionsInput = {\r\n roundedCropper: this.imageUploadConfig.croppedImageConfiguration.roundedCropper,\r\n configuredAspectRatio: this.imageUploadConfig.croppedImageConfiguration.configuredAspectRatio,\r\n viewPortWidthPx: this.imageUploadConfig.croppedImageConfiguration.viewPortWidthPx,\r\n viewPortHeihtPx: this.imageUploadConfig.croppedImageConfiguration.viewPortHeihtPx,\r\n maxFileSize: this.imageUploadConfig.maxImageSize\r\n }\r\n\r\n if(this.activeImageUpload == false && this.imagesAlreadyUploaded.length > 0){\r\n this.cropperImages.push(...this.imagesAlreadyUploaded);\r\n }\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n onCustomUploadSingleMode(event: any){\r\n this.onlyImageSelected = event.currentFiles[0];\r\n this.openModalCropper(this.onlyImageSelected, event.originalEvent);\r\n }\r\n\r\n onCustomizeUploadFunctionSingleMode(event: any){\r\n if(this.activeImageUpload == true){\r\n if(this.onlyCroppedImageSelected){\r\n let base64Images: ImageB64[] = [{base64: this.onlyCroppedImageSelected.base64, name: this.onlyCroppedImageSelected.name}];\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imageUploaded: any) => {\r\n this.fileuploadOnlyImage.clear();\r\n this.onUploadFinished.emit(imageUploaded);\r\n },\r\n error: (error) => {\r\n this.fileuploadOnlyImage.uploading = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n removeImageSingleMode(event: Event, file: any) {\r\n event.stopPropagation();\r\n this.fileuploadOnlyImage.clear();\r\n this.onlyImageSelected = null;\r\n this.onlyCroppedImageSelected = null;\r\n this.imageSingleMode = null;\r\n this.onReturnImagesB64.emit(null);\r\n }\r\n\r\n moveImageToLeft(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove > 0 && indexToMove < this.imagesAlreadyUploaded.length){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove - 1];\r\n this.imagesAlreadyUploaded[indexToMove - 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove - 1;\r\n\r\n if(this.uploadUrl != undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n moveImageToRight(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove >= 0 && indexToMove < this.imagesAlreadyUploaded.length -1){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove + 1];\r\n this.imagesAlreadyUploaded[indexToMove + 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove + 1;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n onCustomizeUploadFunctionMultiMode(event?: any){\r\n if(this.activeImageUpload == true){\r\n if(this.cropperImages.length > 0){\r\n let base64Images: ImageB64[] = this.mapToObjectB64(this.cropperImages);\r\n this.isUploadingMultiMode = true;\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imagesUploaded: any) => {\r\n this.imagesAlreadyUploaded.push(...imagesUploaded);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.cropperImages = [];\r\n this.fileUpload.clear();\r\n\r\n this.imagesAlreadyUploaded = this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n\r\n this.isUploadingMultiMode = false;\r\n },\r\n error: (error) => {\r\n this.isUploadingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n onCustomUploadMultiMode(event: any){\r\n if(this.allowMultipleImages == true){\r\n event.currentFiles.forEach((file: any, index: number) => {\r\n let foundIt = this.cropperImages.find(f => f.name == file.name);\r\n if(event.currentFiles.length == 0){\r\n this.openModalCropper(file, event.originalEvent);\r\n }else if(foundIt == undefined){\r\n this.openModalCropper(file, event.originalEvent);\r\n }\r\n });\r\n }else{\r\n this.openModalCropper(event.currentFiles[0], event.originalEvent);\r\n }\r\n }\r\n\r\n confirmDeleteImageMultiMode(event: any, image: any){\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.imageUploadConfig.confirmDeleteMessageLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.imageUploadConfig.deleteImageButtonLabel,\r\n accept: () => {\r\n this.onDeleteImageMultiMode(image);\r\n }\r\n })\r\n }\r\n\r\n onDeleteFileMultiMode(event: any, file: File, uploader: FileUpload){\r\n const index = uploader.files.indexOf(file);\r\n uploader.remove(event, index);\r\n this.cropperImages = this.cropperImages.filter(s => !file.name.includes(s.name));\r\n }\r\n\r\n onDeleteImageMultiMode(image: any){\r\n this.isDeletingMultiMode = true;\r\n if(this.activeImageUpload){\r\n let deleteUrlFinal = this.deleteUrl+\"/\"+image[this.identificatorName];\r\n this.http.delete(deleteUrlFinal, {headers: this.headers}).subscribe({\r\n next: () => {\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.isDeletingMultiMode = false;\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n },\r\n error: (error) => {\r\n this.isDeletingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n this.onDeleteImage.emit(null);\r\n }\r\n })\r\n }else{\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.cropperImages = this.cropperImages.filter(img => (img.fileBase64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n this.isDeletingMultiMode = false;\r\n }\r\n }\r\n\r\n getIndexToDelete(image: any){\r\n let imageIndex = this.imagesAlreadyUploaded.findIndex(img => {\r\n const fileBase64Matches = img.fileBase64 !== undefined && img.fileBase64 === image.fileBase64;\r\n const identificatorNameMatches = img[this.identificatorName] !== undefined && img[this.identificatorName] === image[this.identificatorName];\r\n return fileBase64Matches || identificatorNameMatches;\r\n });\r\n\r\n if(imageIndex > 0){\r\n this.activeIndexGallery = imageIndex-1; \r\n }else{\r\n this.activeIndexGallery = 0; \r\n }\r\n }\r\n\r\n updateImage(imagesToUpdate: any[]): any{\r\n let updateUrlFinal = this.updateUrl + \"/\" + this.identificatorValue;\r\n this.http.put(updateUrlFinal, imagesToUpdate, {headers: this.headers}).subscribe({\r\n next: (imagesUpdated: any) => {\r\n this.disableMoveButtons = false;\r\n this.imagesAlreadyUploaded = imagesUpdated;\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n });\r\n }\r\n\r\n openModalCropper(fileBlob: any, event?: any){\r\n const ref: DynamicDialogRef = this.dialogService.open(WImageCropperComponent, {\r\n header: this.imageUploadConfig.croppedDialogTranslations?.modal.header,\r\n width: '70rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"auto\", \"padding-bottom\": \"8px\"},\r\n data: {dataModal: this.dimensionsInput, translations: this.imageUploadConfig.croppedDialogTranslations, blob: fileBlob},\r\n resizable: true\r\n });\r\n\r\n ref.onClose.subscribe((imageCropped: WFileB64) => {\r\n if(imageCropped){\r\n if(this.allowMultipleImages == false){\r\n this.onlyCroppedImageSelected = imageCropped;\r\n this.onReturnImagesB64.emit(this.mapToObjectB64(this.onlyCroppedImageSelected));\r\n }else{\r\n this.cropperImages.push(imageCropped);\r\n\r\n this.cropperImages = (this.activePositionProperty && this.activeImageUpload == false ) ? this.addPositionProperty(this.cropperImages) : this.cropperImages;\r\n\r\n if(this.activeImageUpload == false){\r\n this.imagesAlreadyUploaded.push(imageCropped);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.cropperImages));\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.mapToObjectB64(this.cropperImages)));\r\n }\r\n }\r\n }else{\r\n if(this.allowMultipleImages){\r\n this.fileUpload._files = this.fileUpload._files.filter(f => !f.name.includes(fileBlob.name));\r\n let filesAux = this.fileUpload._files;\r\n this.fileUpload.clear();\r\n this.fileUpload._files = filesAux;\r\n }else{\r\n this.onlyImageSelected = null;\r\n this.fileuploadOnlyImage.clear();\r\n }\r\n }\r\n\r\n if((this.activeImageUpload == true) && (this.imageUploadConfig.allowAuto == true) && (this.cropperImages.length == this.fileUpload._files.length)){\r\n this.onCustomizeUploadFunctionMultiMode();\r\n }\r\n })\r\n }\r\n\r\n mapToObjectB64(images: any): ImageB64[]{\r\n if(Array.isArray(images) == false){\r\n return [{\r\n base64: images.base64,\r\n name: images.name,\r\n ...(images.position !== undefined && { position: images.position })\r\n }]\r\n }\r\n\r\n return images.map((img: any) => {\r\n return {\r\n base64: img.base64,\r\n name: img.name,\r\n ...(img.position !== undefined && { position: img.position })\r\n }\r\n });\r\n }\r\n\r\n getArraysToCreateAndToUpdate(images: any[]){\r\n return {\r\n toCreate:\r\n images.filter((img) => img[this.identificatorName] == undefined),\r\n toUpdated:\r\n images.filter((img) => img.base64 == undefined)\r\n }\r\n }\r\n\r\n addPositionProperty(imagesArray: any[]){\r\n imagesArray = imagesArray.map((img, index) => ({\r\n ...img,\r\n position: index\r\n }))\r\n\r\n return imagesArray;\r\n }\r\n\r\n onImageMouseOver(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'flex' : null;\r\n })\r\n }\r\n\r\n onImageMouseLeave(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'none' : null;\r\n })\r\n }\r\n\r\n findIndex(img: any){\r\n let i = this.imagesAlreadyUploaded.indexOf(img);\r\n return i != -1 ? i : 0;\r\n }\r\n\r\n openImageFileSelector(){\r\n this.fileUpload.choose();\r\n }\r\n\r\n openSingleImageFileSelector(){\r\n this.fileuploadOnlyImage.choose();\r\n }\r\n\r\n getGalleryClass(){\r\n if(this.activeFieldVersion == true){\r\n return 'w-image-file-uploader-gallery-field';\r\n }\r\n return 'w-image-file-uploader-gallery';\r\n }\r\n}\r\n","\r\n<w-input-label *ngIf=\"activeFieldVersion == true\" [label]=\"label\" [tooltip]=\"tooltip\" [required]=\"required\"></w-input-label>\r\n<div *ngIf=\"activeFieldVersion == true && (label != undefined && label.length > 0)\" class=\"input-label-gap-divider\"></div>\r\n<p-fileUpload *ngIf=\"allowMultipleImages == false; else withCarousel\" #fileUploadOnlyImage class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false,\r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined)}\"\r\n mode=\"advanced\"\r\n [accept]=\"imageUploadConfig.acceptImageTypes\"\r\n [multiple]=\"false\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' {0} bytes.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n (onSelect)=\"onCustomUploadSingleMode($event)\"\r\n [uploadLabel]=\"onlyCroppedImageSelected ? (onlyCroppedImageSelected.name.length>6)? (onlyCroppedImageSelected.name | slice:0:6)+'...':(onlyCroppedImageSelected.name) : ''\"\r\n [customUpload]=\"true\"\r\n (uploadHandler)=\"onCustomizeUploadFunctionSingleMode($event)\"\r\n [maxFileSize]=\"imageUploadConfig.maxImageSize\">\r\n <ng-template let-file let-i=\"index\" pTemplate='file'>\r\n <div *ngIf=\"activeImageUpload\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <p-progressBar *ngIf=\"false\"></p-progressBar>\r\n <div *ngIf=\"(onlyCroppedImageSelected != null || undefined) || (imageSingleMode != null || undefined)\" style=\"flex-grow: 1;\">\r\n <p-galleria\r\n [ngClass]=\"getGalleryClass()\"\r\n [value]=\"(onlyCroppedImageSelected !== null) ? [onlyCroppedImageSelected.fileBase64] : (imageUploadConfig.singleModeImageDefault ? [imageUploadConfig.singleModeImageDefault] : (imageSingleMode ? [imageSingleMode] : ['https://wappingstoragedev.blob.core.windows.net/wapping/appresources/ic_image_blue.png']))\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\"\r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\"\r\n [numVisible]=\"2\"\r\n [showItemNavigators]=\"false\"\r\n [showThumbnails]=\"false\" [showIndicators]=\"false\">\r\n <ng-template pTemplate=\"item\" let-image>\r\n <div *ngIf=\"(viewSingleMode == false && (imageSingleMode != null || undefined)) ||\r\n (viewSingleMode == false && onlyCroppedImageSelected != null)\" class=\"w-image-file-uploader-delete-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (click)=\"removeImageSingleMode($event, onlyImageSelected)\"></w-button>\r\n </div>\r\n <div class=\"flex flex-wrap align-content-center justify-content-center\" [ngClass]=\"{'w-image-file-uploader-field-img-container': activeFieldVersion}\" style=\"object-fit: contain;\" [ngStyle]=\"{'height': customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"image\" style=\"max-width:100%;\r\n max-height:100%;\r\n height: auto;\r\n width:auto;\" />\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n </div>\r\n <div *ngIf=\"viewSingleMode == false; else viewSingleModeMessage\" (click)=\"openSingleImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-row justify-content-center align-items-center\" style=\"cursor: pointer; gap: 6px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height' : (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined)}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-2\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n </div>\r\n <ng-template #viewSingleModeMessage>\r\n <div *ngIf=\"imageSingleMode == null || undefined\" class=\"textSoftColor flex justify-content-center align-items-center w-image-file-uploader-container-height\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n</p-fileUpload>\r\n<ng-template #withCarousel>\r\n <p-fileUpload *ngIf=\"imageUploadConfig\" #fileUpload class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false,\r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined)}\"\r\n name=\"mediaImages[]\"\r\n [accept]=\"imageUploadConfig.acceptImageTypes\"\r\n mode=\"advanced\"\r\n [customUpload]=\"true\"\r\n (onSelect)=\"onCustomUploadMultiMode($event)\"\r\n (uploadHandler)=\"onCustomizeUploadFunctionMultiMode($event)\"\r\n [uploadLabel]=\"imageUploadConfig.uploadButtonLabel ?? ''\"\r\n [chooseLabel]=\"imageUploadConfig.chooseButtonLabel ?? ''\"\r\n [cancelLabel]=\"imageUploadConfig.cancelButtonLabel ?? ''\"\r\n [showUploadButton]=\"activeImageUpload\"\r\n [showCancelButton]=\"activeImageUpload\"\r\n [auto]=\"imageUploadConfig.allowAuto\"\r\n [multiple]=\"true\"\r\n [maxFileSize]=\"imageUploadConfig.maxImageSize\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' {0} bytes.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n [chooseStyleClass]=\"'p-button-icon p-button-icon-right'\">\r\n <ng-template let-file let-i=\"index\" pTemplate='file'>\r\n <div *ngIf=\"activeImageUpload && cropperImages.length > 0\" class=\"p-fileupload-row\">\r\n <div><img [src]=\"cropperImages[i]?.fileBase64\" width=\"50\"/></div>\r\n <div class=\"p-fileupload-filename\">{{file.name}}</div>\r\n <div> <w-button icon=\"pi pi-times\" (onClick)=\"onDeleteFileMultiMode($event, file, fileUpload)\"></w-button> </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <p-progressBar *ngIf=\"isUploadingMultiMode\" class=\"p-element ng-star-inserted\" [mode]=\"'indeterminate'\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuenow=\"0\" aria-valuemax=\"100\" data-pc-name=\"progressbar\" data-pc-section=\"root\" class=\"p-progressbar p-component p-progressbar-determinate\">\r\n <div class=\"p-progressbar-value p-progressbar-value-animate ng-star-inserted\" style=\"display: flex; width: 0%;\" data-pc-section=\"value\"></div>\r\n </div>\r\n </p-progressBar>\r\n <div *ngIf=\"imagesAlreadyUploaded.length > 0\" style=\"flex-grow: 1;\">\r\n <p-galleria\r\n [ngClass]=\"getGalleryClass()\"\r\n [value]=\"imagesAlreadyUploaded\"\r\n [(activeIndex)]=\"activeIndexGallery\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\"\r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\"\r\n [numVisible]=\"3\"\r\n [showItemNavigators]=\"true\"\r\n [showThumbnails]=\"false\">\r\n <ng-template pTemplate=\"item\" let-image>\r\n <div *ngIf=\"viewMultiMode == false\" class=\"w-image-file-uploader-delete-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (onClick)=\"confirmDeleteImageMultiMode($event, image)\" [loading]=\"isDeletingMultiMode\"></w-button>\r\n </div>\r\n <div class=\"flex flex-wrap align-content-center justify-content-center\" [ngClass]=\"{'w-image-file-uploader-field-img-container': activeFieldVersion}\" style=\"object-fit: contain;\" [ngStyle]=\"{'height': customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"readProperty(image, imageUploadConfig.imagePropertyNames[0]) ?? image.fileBase64\" style=\"max-width:100%;\r\n max-height:100%;\r\n height: auto;\r\n width:auto;\" />\r\n </div>\r\n <div class=\"w-image-file-uploader-move-buttons flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <div *ngIf=\"viewMultiMode == false && activePositionProperty == true\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-file-uploader-hide-move-button' : findIndex(image) == 0 || disableMoveButtons}\" (click)=\"moveImageToLeft(image)\">\r\n <w-icons name=\"doubleArrowLeft\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\" [color]=\"'white'\"></w-icons>\r\n </div>\r\n\r\n <div *ngIf=\"isDeletingMultiMode == false; else indexLoading\" class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\">\r\n {{ findIndex(image) + 1 }} / {{ imagesAlreadyUploaded.length }}\r\n </div>\r\n <ng-template #indexLoading>\r\n <div class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\"> - / - </div>\r\n </ng-template>\r\n\r\n <div *ngIf=\"viewMultiMode == false && activePositionProperty == true\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-file-uploader-hide-move-button' : (findIndex(image) == imagesAlreadyUploaded.length-1) || disableMoveButtons}\" (click)=\"moveImageToRight(image)\">\r\n <w-icons name=\"doubleArrowRight\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\" [color]=\"'white'\"></w-icons>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n </div>\r\n <div *ngIf=\"viewMultiMode == false; else viewMultiModeMessage\" (click)=\"openImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-row justify-content-center align-items-center\"\r\n style=\"cursor: pointer; gap: 6px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height' : (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined)}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-2\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n </div>\r\n <ng-template #viewMultiModeMessage>\r\n <div *ngIf=\"imagesAlreadyUploaded.length==0\" class=\"textSoftColor flex justify-content-center align-items-center w-image-file-uploader-container-height\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </p-fileUpload>\r\n</ng-template>\r\n\r\n<p-confirmPopup></p-confirmPopup>\r\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EmbedConfig } from '../../shared/models/embed-config.model';\r\nimport { Embed, IReportEmbedConfiguration, Report, models, service } from 'powerbi-client';\r\nimport { PowerBIReportEmbedComponent } from 'powerbi-client-angular';\r\n\r\n@Component({\r\n selector: 'w-powerbi-report',\r\n templateUrl: './w-powerbi-report.component.html',\r\n styleUrls: ['./w-powerbi-report.component.css']\r\n})\r\nexport class WPowerbiReportComponent implements OnInit {\r\n\r\n @Input('embedConfig') embedConfig!: EmbedConfig;\r\n @Input('reportTitle') reportTitle!: string;\r\n @Input('hasReportFilters') hasReportFilters: boolean = false;\r\n @Input('parameterReportFilters') parameterReportFilters!: string;\r\n @Input('showReportFilters') showReportFilters: boolean = false;\r\n @Input('filterPanelPosition') filterPanelPosition: string = \"bottom\";\r\n @Input('showPageNavigation') showPageNavigation: boolean = false;\r\n @Input('showPrintButton') showPrintButton: boolean = false;\r\n @Input('showFullScreenButton') showFullScreenButton: boolean = false;\r\n @Input('showVisualHeaders') showVisualHeaders: boolean = true;\r\n @Input('showRefreshButton') showRefreshButton: boolean = false;\r\n @Input('height') height: string = '810px';\r\n @Input('filters') filters!: models.IFilter[];\r\n @Input('isEmbedTokenType') isEmbedTokenType: boolean = false;\r\n // @Input('zoomRatio') zoomRatio: number = 0.00175;\r\n\r\n @Output('refreshNotAllowed') refreshNotAllowed = new EventEmitter<boolean>();\r\n\r\n powerbiReportWidth!: number;\r\n private _zoom!: number;\r\n\r\n @Input() set zoom(value: number) {\r\n this._zoom = value;\r\n this.setReportZoom(this._zoom);\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n reportClass = 'report-container';\r\n\r\n reportConfig: IReportEmbedConfiguration = {\r\n type: 'report',\r\n embedUrl: undefined,\r\n accessToken: undefined,\r\n filters: undefined,\r\n settings: {\r\n layoutType: models.LayoutType.Custom,\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n\r\n eventHandlersMap = new Map([\r\n ['loaded', () => {\r\n const report = this.reportObj.getReport();\r\n report.setComponentTitle('Embedded report');\r\n if (this.filters) {\r\n this.updateFilters(this.filters);\r\n } \r\n },\r\n ],\r\n ['rendered', () => {\r\n }],\r\n ['error', (event?: service.ICustomEvent<any>) => {\r\n if (event) {\r\n console.error(event.detail);\r\n }\r\n },\r\n ],\r\n ['visualClicked', () => { }],\r\n ['pageChanged', (event) => { }],\r\n ]) as Map<string, (event?: service.ICustomEvent<any>, embeddedEntity?: Embed) => void | null>;\r\n\r\n @ViewChild(PowerBIReportEmbedComponent) reportObj!: PowerBIReportEmbedComponent;\r\n\r\n // @HostListener('window:resize', ['$event'])\r\n // onResize(event: any) {\r\n // this.getReportDivWidth();\r\n // }\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.embedReport();\r\n this.elementRef.nativeElement.style.setProperty(\"--height\", this.height)\r\n }\r\n\r\n // getReportDivWidth() {\r\n // this.powerbiReportWidth = this.elementRef.nativeElement.querySelector('#powerbiContainer').offsetWidth;\r\n // this.setReportZoom(this.powerbiReportWidth * this.zoomRatio);\r\n // }\r\n\r\n async embedReport(): Promise<void> {\r\n try {\r\n this.reportConfig = {\r\n ...this.reportConfig,\r\n id: this.embedConfig!.id,\r\n embedUrl: this.embedConfig!.embedUrl,\r\n tokenType: this.isEmbedTokenType ? models.TokenType.Embed : models.TokenType.Aad,\r\n accessToken: this.embedConfig!.embedToken.token,\r\n filters: this.parameterReportFilters ? [JSON.parse(this.parameterReportFilters)] : undefined,\r\n settings: {\r\n panes: {\r\n filters: {\r\n visible: this.showReportFilters\r\n },\r\n pageNavigation: {\r\n visible: this.showPageNavigation\r\n },\r\n },\r\n visualSettings: {\r\n visualHeaders: [\r\n {\r\n settings: {\r\n visible: this.showVisualHeaders\r\n }\r\n }\r\n ]\r\n },\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n } catch (error: any) {\r\n console.log(`Failed to fetch config for report. Status: ${error.status} ${error.statusText}`);\r\n return;\r\n }\r\n }\r\n\r\n async refresh() {\r\n const report: Report = this.reportObj.getReport();\r\n try {\r\n await report.refresh();\r\n } catch (errors: any) {\r\n console.log(errors);\r\n if (errors.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n }\r\n }\r\n\r\n async updateFilters(filters: models.IFilter[]) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.removeFilters();\r\n await report.updateFilters(models.FiltersOperations.Add, filters);\r\n } catch (error: any) {\r\n console.error(error);\r\n if (error.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n return;\r\n }\r\n }\r\n\r\n async setReportZoom(zoom: number) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.setZoom(zoom);\r\n } catch (error) {\r\n console.log(\"Error setting report zoom: \" + error)\r\n }\r\n }\r\n\r\n print() {\r\n const report: Report = this.reportObj.getReport();\r\n report.print();\r\n }\r\n\r\n enterFullScreen() {\r\n const report: Report = this.reportObj.getReport();\r\n report.fullscreen();\r\n }\r\n\r\n onRefreshNotAllowed() {\r\n this.refreshNotAllowed.emit(true);\r\n }\r\n}\r\n","<div *ngIf=\"reportTitle || showPrintButton || showFullScreenButton\" class=\"flex justify-content-between flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <div class=\"text-right\">\r\n <p-button *ngIf=\"showRefreshButton\" icon=\"pi pi-refresh\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"refresh()\">\r\n </p-button>\r\n <p-button *ngIf=\"showPrintButton\" icon=\"pi pi-print\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"print()\">\r\n </p-button>\r\n <p-button *ngIf=\"showFullScreenButton\" icon=\"pi pi-arrows-alt\" \r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"enterFullScreen()\">\r\n </p-button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'right'\" class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-right\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'left'\" class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-left\"></ng-content>\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"filterPanelPosition == 'bottom'\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n <ng-content *ngIf=\"hasReportFilters\" select=\".report-filters-bottom\"></ng-content>\r\n</div>\r\n\r\n<ng-template #powerbiReport>\r\n <div id=\"powerbiContainer\">\r\n <powerbi-report [embedConfig]=\"reportConfig\" \r\n [cssClassName]=\"reportClass\" \r\n [eventHandlers]=\"eventHandlersMap\">\r\n </powerbi-report>\r\n </div>\r\n</ng-template>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-sidebar',\r\n templateUrl: './w-sidebar.component.html',\r\n styleUrls: ['./w-sidebar.component.scss']\r\n})\r\nexport class WSidebarComponent implements OnInit {\r\n @Input('headerTitle') headerTitle!: string;\r\n @Input('showCloseIcon') showCloseIcon: boolean = false; \r\n @Input('activeGrid') activeGrid: boolean = false;\r\n @Input('closeOnOverlay') closeOnOverlay: boolean = false;\r\n @Input('closeOnEscape') closeOnEscape: boolean = true;\r\n @Input('styleClass') styleClass: string = \"w-full md:w-4 lg:w-4\";\r\n @Input('size') size: string = \"medium\";\r\n @Input('icon') icon!: string ;\r\n @Input('iconWidth') iconWidth: number = 40; \r\n @Input('iconHeight') iconHeight: number = 40; \r\n\r\n iconType: typeof IconType = IconType;\r\n \r\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _visible: boolean = false;\r\n @Input()\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n set visible(value: boolean) {\r\n if (value !== this._visible) {\r\n this._visible = value;\r\n this.visibleChange.emit(this._visible);\r\n }\r\n }\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n if(this.size == 'big') {\r\n this.styleClass = this.styleClass + \" w-full md:w-6 lg:w-6\"\r\n }\r\n }\r\n\r\n onClose(){\r\n this.visible = false;\r\n }\r\n\r\n getIconType(){\r\n if(this.icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else if(this.isURL(this.icon)){\r\n return IconType.urlIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n\r\n private isURL(url: string) {\r\n const patronURL = /^(ftp|http|https):\\/\\/[^ \"]+$/;\r\n return patronURL.test(url);\r\n }\r\n}\r\n","<p-sidebar [(visible)]=\"visible\" position=\"right\" [showCloseIcon]=\"showCloseIcon\" [modal]=\"true\" [blockScroll]=\"true\" [dismissible]=\"closeOnOverlay\" [closeOnEscape]=\"closeOnEscape\" [styleClass]=\"styleClass\" class=\"wapp-sidebar\">\r\n <ng-template pTemplate=\"header\">\r\n <span *ngIf=\"icon && getIconType() == iconType.pIcon\" class=\"w-sidebar-icon icon-large-size textMainColor\" [ngClass]=\"icon\"></span>\r\n <w-icons *ngIf=\"icon && getIconType() == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"icon\" color=\"var(--text-color)\" [width]=\"24\" [height]=\"24\"></w-icons>\r\n <div *ngIf=\"icon && getIconType() == iconType.urlIcon\" class=\"flex align-content-start flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center w-sidebar-img-container\">\r\n <span class=\"w-sidebar-span-img-container w-sidebar-icon flex align-items-center justify-content-center\" [ngStyle]=\"{'width.px': iconWidth, 'height.px': iconHeight}\">\r\n <img class=\"w-sidebar-img-responsive\" [src]=\"icon\">\r\n </span>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </div>\r\n </div>\r\n \r\n <span *ngIf=\"icon == null || getIconType() != iconType.urlIcon\" class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </ng-template>\r\n \r\n <ng-template pTemplate=\"content\">\r\n <div [ngClass]=\"{'w-sidebar-content grid' : activeGrid}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"footer\"></ng-template>\r\n</p-sidebar>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-buttons-footer',\r\n templateUrl: './w-buttons-footer.component.html',\r\n styleUrls: ['./w-buttons-footer.component.scss']\r\n})\r\nexport class WButtonsFooterComponent {\r\n\r\n}\r\n","<div class=\"flex flex-row-reverse flex-wrap right-0 bottom-0 fixed wapp-button-footer\">\r\n <ng-content select=\".wapp-buttons-footer\"></ng-content>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, MessageService, TreeDragDropService, TreeNode } from 'primeng/api';\r\nimport { TreeTable } from 'primeng/treetable';\r\nimport { ActionButtonResponse, WTreeTable } from '../../shared/models/w-tree-table.model';\r\nimport { TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-tree-table',\r\n templateUrl: './w-tree-table.component.html',\r\n styleUrls: ['./w-tree-table.component.scss'],\r\n providers: [TreeDragDropService, MessageService, ConfirmationService]\r\n})\r\nexport class WTreeTableComponent implements OnInit, OnChanges {\r\n\r\n loadingElements: boolean = true;\r\n collapsedElementTree: boolean = true;\r\n columns: any;\r\n openSidebar: boolean = false;\r\n elementInfo!: any;\r\n tableSkeletons: any = [{name: ''}, {name: ''}, {name: ''}, {name: ''}];\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n } \r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n private _elements: any;\r\n \r\n @Input('elements') set elements(value: any) {\r\n this._elements = value;\r\n };\r\n get elements() {\r\n return this._elements;\r\n }\r\n @Input('rowsPerPage') rowsPerPage: number = 10;\r\n @Input('loading') loading: boolean = true;\r\n @Input('wappTreeTableObject') wappTreeTableObject!: WTreeTable;\r\n @Input() getChildFunction!: (element: any) => any[] | null;\r\n\r\n @Output('onActionButtonClick') onActionButtonClick = new EventEmitter<ActionButtonResponse>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any>();\r\n @Output('onCantDeleteElementWarn') onCantDeleteElementWarn = new EventEmitter<boolean>();\r\n \r\n @ViewChild('treeTable') treeTable!: TreeTable;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService \r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initComponent();\r\n }\r\n\r\n initComponent() {\r\n this.columns = this.wappTreeTableObject.columns;\r\n }\r\n\r\n filterGlobal(table: TreeTable, event: any) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains')\r\n }\r\n\r\n actionButtonClicked(id: number, element: any) {\r\n this.onActionButtonClick.emit({id: id, element: element})\r\n }\r\n\r\n confirmDeleteSelected(event: any, data: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTreeTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTreeTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteNode(data);\r\n }\r\n });\r\n }\r\n\r\n deleteNode(node: any) {\r\n const children = this.getChildFunction(node);\r\n if (!children || children.length === 0) {\r\n this.onDeleteElementSelect.emit(node);\r\n } else {\r\n this.onCantDeleteElementWarn.emit(true);\r\n }\r\n }\r\n \r\n\r\n updateShowingTableRows() {\r\n this.elements = [...this.elements];\r\n }\r\n\r\n private expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n if (node.children) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n }\r\n }\r\n\r\n private findTreeNode(listNode: TreeNode[], nodeId: number) {\r\n for (let node of listNode) {\r\n if (node.data.productCategoryId == nodeId) {\r\n return node;\r\n }\r\n\r\n if (node.children) {\r\n let newNodeFound: any = this.findTreeNode(node.children, nodeId);\r\n if (newNodeFound) {\r\n return newNodeFound;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignFlexClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'flex justify-content-end';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'flex justify-content-start';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'flex justify-content-center';\r\n return 'justify-content-start'\r\n }\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n \r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean){\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n}\r\n","<div *ngIf=\"wappTreeTableObject\" [class.table-container]=\"wappTreeTableObject.tableContainer\">\r\n <p-treeTable *ngIf=\"!loading && elements; else loadingTable\"\r\n #treeTable [value]=\"elements\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width': wappTreeTableObject.tableMinWidth!}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\" \r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n styleClass=\"p-treetable-striped\">\r\n\r\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.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 (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputNumber>\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns; index as i\"\r\n class=\"'{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\"\r\n [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'flex justify-content-start'\" >\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTreeTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <img *ngIf=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\"\r\n [src]=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\"\r\n class=\"element-image-width\"/>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'justify-content-start'\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) | wappPercentage }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-right'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[i].field) | wappCurrency }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTreeTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <w-badge [label]=\"readProperty(rowData, wappTreeTableObject.columns[i].field)\" [color]=\"'info'\"></w-badge>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-center'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(rowData, wappTreeTableObject.columns[i].field))\"></i>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.d }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.D }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.g }}\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <div [class.flex]=\"i === 0\" [class.justify-content-between]=\"i === 0\">\r\n <div [class.align-content-center]=\"i === 0\">\r\n <p-treeTableToggler [rowNode]=\"rowNode\" *ngIf=\"i === 0\"></p-treeTableToggler>\r\n </div>\r\n <div [class.my-auto]=\"i === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[i].field)) | wappDate : wappDateFormat.G }}\r\n </div>\r\n </div>\r\n </td>\r\n </ng-template>\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" type=\"table\" [buttonClass]=\"'w-table-button-add '+ button.styleClass!\"></w-button>\r\n </span>\r\n <w-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n\r\n <ng-template #loadingTable>\r\n <p-treeTable\r\n #treeTable [value]=\"tableSkeletons\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width':'50rem'}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n styleClass=\"p-treetable-striped\">\r\n\r\n <ng-template *ngIf=\"true\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.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 (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputNumber>\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input wapp-input\"/>\r\n </span>\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns; index as i\"\r\n class=\"{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[i]) : 'flex justify-content-start'\">\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n <td *ngFor=\"let col of columns; let i = index\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[i]) : 'text-left'\">\r\n <p-skeleton></p-skeleton>\r\n </td>\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [buttonClass]=\"'w-table-button-add ' + button.styleClass!\"></w-button>\r\n </span>\r\n <w-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\"type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n </ng-template>\r\n</div>\r\n\r\n<p-confirmPopup></p-confirmPopup>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-grid',\r\n templateUrl: './w-body-grid.component.html',\r\n styleUrls: ['./w-body-grid.component.scss']\r\n})\r\nexport class WBodyGridComponent {\r\n\r\n}\r\n","<div class=\"w-body-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-toggle',\r\n templateUrl: './w-edit-toggle.component.html',\r\n styleUrls: ['./w-edit-toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditToggleComponent {\r\n @Input('label') label: string = '';\r\n @Input('helpDescription') helpDescription: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string; \r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('toggleState')\r\n toggleState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n \r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n \r\n onInput(obj: any){\r\n this.value = obj;\r\n this.toggleState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","\r\n<div *ngIf=\"formControl; else noNgControl\" class=\"align-content-start\" \r\n [ngClass]=\"{'w-edit-toggle-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-toggle-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n\r\n <w-input-label [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n\r\n <p-inputSwitch id=\"toggle\"\r\n [ngClass]=\"{'w-edit-toggle-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small': getSize(sizeType.small) == size}\"\r\n class=\"flex align-items-center toggle-container\"\r\n [disabled]=\"isDisabled\"\r\n [formControl]=\"formControl\">\r\n </p-inputSwitch>\r\n</div>\r\n\r\n<ng-template #noNgControl>\r\n <div class=\"align-content-start\" \r\n [ngClass]=\"{'w-edit-toggle-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-toggle-medium-heigth': hasAlign && getSize(sizeType.medium) == size }\">\r\n <w-input-label [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n <p-inputSwitch id=\"toggle\"\r\n [ngClass]=\"{'w-edit-toggle-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-toggle-small': getSize(sizeType.small) == size}\"\r\n class=\"flex align-items-center toggle-container\"\r\n (ngModelChange)=\"onInput($event)\"\r\n [disabled]=\"isDisabled\"\r\n [(ngModel)]=\"value\">\r\n </p-inputSwitch>\r\n </div>\r\n</ng-template>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-grid',\r\n templateUrl: './w-panel-grid.component.html',\r\n styleUrls: ['./w-panel-grid.component.scss']\r\n})\r\nexport class WPanelGridComponent {\r\n\r\n}\r\n","<div class=\"w-panel-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-autocomplete-search',\r\n templateUrl: './w-autocomplete-search.component.html',\r\n styleUrls: ['./w-autocomplete-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAutocompleteSearchComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WAutocompleteSearchComponent {\r\n @Input('label') label: string = \"Default Label\";\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('isDisabled') isDisabled: boolean = false;\r\n\r\n @Input('size') size: string = \"medium\";\r\n\r\n @Input('items') items: any[] = [\r\n {\"name\": \"Afghanistan\", \"code\": \"AF\"},\r\n {\"name\": \"México\", \"code\": \"MX\"},\r\n {\"name\": \"Turquía\", \"code\": \"TQ\"},\r\n {\"name\": \"Estados unidos\", \"code\": \"EU\"},\r\n ];\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n \r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n \r\n search(event: any) {\r\n\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n\r\n for(let i=0; i < (this.items as any[]).length; i++)\r\n {\r\n let item = (this.items as any[])[i];\r\n if(item.name.toLowerCase().indexOf(query.toLowerCase()) == 0)\r\n {\r\n filtered.push(item);\r\n }\r\n }\r\n this.suggestions = filtered;\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\">\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container-medium w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n [(ngModel)]=\"value\" \r\n (input)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-checkbox',\r\n templateUrl: './w-edit-checkbox.component.html',\r\n styleUrls: ['./w-edit-checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCheckboxComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCheckboxComponent {\r\n @Input('label') label: string = '';\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('helpDescription') helpDescription: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('layout') layout: string = \"horizontal\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('checkboxState')\r\n checkboxState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onInput(obj: any){\r\n this.value = obj;\r\n this.checkboxState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\" class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-checkbox-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n <p-checkbox\r\n [binary]=\"true\" \r\n [ngClass]=\"{'w-edit-checkbox-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n [formControl]=\"formControl\" id=\"w-checkbox\">\r\n <ng-template pTemplate=\"icon\">\r\n <w-icons [name]=\"'checkSmallAlt'\"></w-icons>\r\n </ng-template>\r\n </p-checkbox>\r\n\r\n <w-input-label *ngIf=\"showLabel\" class=\"w-edit-checkbox-small-label\" [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-medium-field': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small-field': getSize(sizeType.small) == size,\r\n 'w-edit-checkbox-medium-heigth': hasAlign && getSize(sizeType.medium) == size}\">\r\n\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [ngClass]=\"{'w-edit-checkbox-medium': getSize(sizeType.medium) == size,\r\n 'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n (ngModelChange)=\"onInput($event)\"\r\n [(ngModel)]=\"value\" id=\"w-checkbox\">\r\n <ng-template pTemplate=\"icon\">\r\n <w-icons [name]=\"'checkSmallAlt'\"></w-icons>\r\n </ng-template>\r\n </p-checkbox>\r\n <w-input-label *ngIf=\"showLabel\" class=\"w-edit-checkbox-small-label\" [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\"></w-input-label>\r\n </div>\r\n</ng-template>\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { WAddress } from '../../shared/models/w-address.model';\r\nimport { WAddressMaps } from '../../shared/models/address-maps.model';\r\n\r\n@Component({\r\n selector: 'w-maps',\r\n templateUrl: './w-maps.component.html',\r\n styleUrls: ['./w-maps.component.scss'],\r\n})\r\nexport class WMapsComponent implements OnInit, AfterViewInit{\r\n @ViewChild('mapSearchField') searchField!: ElementRef;\r\n @ViewChild('divMap') divMap!: ElementRef;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('tooltip') tooltip!: string; \r\n @Input('isEdit') isEdit: boolean = false;\r\n @Input('mapHeight') mapHeight: number = 30;\r\n @Input('componentRestrictions') componentRestrictions: any;\r\n @Input('initialCoords') initialCoords: any;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('wAddress') wAddress!: string | WAddress;\r\n\r\n @Output('addressResponse') addressResponse = new EventEmitter<WAddressMaps>();\r\n\r\n map!: google.maps.Map\r\n variableMap!: google.maps.Map;\r\n marker!: google.maps.Marker;\r\n service!: google.maps.places.PlacesService;\r\n formMapas!: FormGroup;\r\n addressFinal: WAddressMaps = {} as WAddressMaps;\r\n readyAddress: boolean = false;\r\n viewAddress!: string;\r\n formatedAddress!: string;\r\n textareaAddress!: any;\r\n\r\n constructor(private render: Renderer2,private cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n if(this.componentRestrictions.country.length==0)\r\n this.componentRestrictions.country = ['ES']\r\n\r\n if(typeof this.wAddress !== \"string\"){\r\n this.viewAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n\r\n this.textareaAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n this.readyAddress = true;\r\n }\r\n }\r\n\r\n async ngAfterViewInit() {\r\n if(typeof this.wAddress !== \"string\"){\r\n this.formatedAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n\r\n this.textareaAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n this.readyAddress = true;\r\n this.cd.detectChanges();\r\n }\r\n\r\n if(this.isEdit)\r\n this.loadAutoComplete();\r\n\r\n if (this.initialCoords != undefined) {\r\n let position = {\r\n coords: {\r\n latitude: this.initialCoords.latitude,\r\n longitude: this.initialCoords.longitude,\r\n }\r\n }\r\n await this.loadMap(position)\r\n } else {\r\n let position = new google.maps.LatLng(19.0528136, -98.2071769)\r\n \r\n const opciones = {\r\n center: position,\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.variableMap = await new google.maps.Map(document.getElementById(\"variableMap\") as HTMLElement, opciones)\r\n\r\n const request = {\r\n query: this.formatedAddress,\r\n fields: [\"name\",\"geometry\"]\r\n };\r\n\r\n this.service = new google.maps.places.PlacesService(this.variableMap);\r\n this.service.findPlaceFromQuery(\r\n request, \r\n async (\r\n results: google.maps.places.PlaceResult[] | null,\r\n status: google.maps.places.PlacesServiceStatus\r\n ) => {\r\n if(status === google.maps.places.PlacesServiceStatus.OK && results) {\r\n let pos = {\r\n coords: {\r\n latitude: results[0].geometry?.location?.lat(),\r\n longitude: results[0].geometry?.location?.lng(),\r\n }\r\n }\r\n await this.loadMap(pos)\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n async loadMap(position: any) {\r\n const opciones = {\r\n center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.map = await new google.maps.Map(this.render.selectRootElement(this.divMap.nativeElement), opciones)\r\n\r\n const marker = new google.maps.Marker;\r\n marker.setMap(null);\r\n\r\n this.marker = new google.maps.Marker({\r\n position: this.map.getCenter(),\r\n });\r\n this.marker.setMap(this.map);\r\n }\r\n\r\n returnAddress(place: any) {\r\n let address_component: [] = place.address_components;\r\n address_component.forEach((field) => {\r\n this.addressFinal[field['types'][0]] = field['long_name']\r\n })\r\n this.addressFinal.latitude = place.geometry['location'].lat();\r\n this.addressFinal.longitude = place.geometry['location'].lng();\r\n this.addressFinal.streetAddress = place.formatted_address\r\n this.textareaAddress = this.cleanText( (this.addressFinal?.route ? this.addressFinal?.route+\" \": '') + (this.addressFinal?.street_number? this.addressFinal?.street_number+\" \": '') + \"\\n\\n\" +\r\n (this.addressFinal?.administrative_area_level_1? this.addressFinal?.administrative_area_level_1+\" \": '') + ( this.addressFinal?.administrative_area_level_2? this.addressFinal?.administrative_area_level_2+\" \": '' )+\r\n (this.addressFinal?.postal_code? \"(\"+this.addressFinal?.postal_code+\")\": '') + \"\\n\\n\" + (this.addressFinal?.locality? this.addressFinal?.locality+\", \": '')+(this.addressFinal?.country? this.addressFinal?.country+\" \": '') ) \r\n this.cd.detectChanges();\r\n this.addressResponse.emit(this.addressFinal);\r\n }\r\n\r\n cleanText(text: any){\r\n return text.trimStart();\r\n }\r\n\r\n private loadAutoComplete() {\r\n const autoComplete = new google.maps.places.Autocomplete(\r\n this.render.selectRootElement(this.searchField.nativeElement),\r\n {\r\n componentRestrictions: this.componentRestrictions,\r\n fields: [\"address_components\", \"geometry\", \"formatted_address\"],\r\n types: [\"address\"],\r\n }\r\n )\r\n google.maps.event.addListener(autoComplete, 'place_changed', () => {\r\n\r\n const place: any = autoComplete.getPlace();\r\n\r\n this.map.setCenter(place.geometry.location);\r\n this.marker.setMap(null);\r\n this.marker = new google.maps.Marker({\r\n position: place.geometry.location\r\n });\r\n \r\n this.marker.setMap(this.map);\r\n \r\n this.returnAddress(place);\r\n })\r\n }\r\n}\r\n","<div class=\"w-label-maps\">\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></w-input-label>\r\n <div class=\"w-search-maps\">\r\n <div class=\"w-full w-label-input\" *ngIf=\"isEdit\">\r\n <div class=\"searchfield-container\">\r\n <input type=\"text\" #mapSearchField\r\n class=\"w-full w-searchfield-maps\"\r\n [(ngModel)]=\"formatedAddress\"\r\n pInputText/>\r\n </div>\r\n </div>\r\n \r\n <div class=\"w-full flex w-maps-text-container\">\r\n <div class=\"w-6 w-map\" [style]=\"'height:'+mapHeight+'rem'\" id=\"map\" #divMap></div>\r\n <span [style]=\"'height:'+mapHeight+'rem'\"\r\n class=\"w-6 w-textarea-address\">\r\n <p *ngIf=\"textareaAddress\">\r\n {{textareaAddress}}\r\n </p>\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n<div [hidden]=\"true\" id=\"variableMap\"></div>","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-radio-button',\r\n templateUrl: './w-radio-button.component.html',\r\n styleUrls: ['./w-radio-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WRadioButtonComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WRadioButtonComponent implements OnInit, ControlValueAccessor {\r\n selectedOption: any;\r\n selectedIndex = 0;\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n @Input('radioGroupElements') radioGroupElements: any[] = [];\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Default required error description\";\r\n @Input('size') size: string = \"medium\";\r\n \r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n formControl: any;\r\n ngModelValue: any;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngOnInit(): void { }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onChangedForm(value: any){\r\n this.onChange(value);\r\n this.onTouch();\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}\r\n","<div *ngIf=\"formControl; else noNgControl\">\r\n <div *ngFor=\"let option of radioGroupElements\" class=\"field-checkbox\">\r\n <p-radioButton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\" \r\n [required]=\"required\" \r\n [disabled]=\"disabled\"\r\n [formControl]=\"formControl\"\r\n ngDefaultControl\r\n (onClick)=\"onChangedForm($event)\">\r\n </p-radioButton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small> \r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngFor=\"let option of radioGroupElements\" class=\"field-checkbox\">\r\n <p-radioButton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\" \r\n [(ngModel)]=\"ngModelValue\" \r\n [disabled]=\"disabled\"\r\n [value]=\"option\" \r\n ngDefaultControl\r\n (onClick)=\"onChanged()\">\r\n </p-radioButton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n</ng-template>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { MenuItem, MessageService } from 'primeng/api';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'w-wizard',\r\n templateUrl: './w-wizard.component.html',\r\n styleUrls: ['./w-wizard.component.scss'],\r\n providers: [MessageService]\r\n})\r\nexport class WWizardComponent {\r\n items!: MenuItem[];\r\n private _activeIndex: number = 0;\r\n\r\n @Input() set activeIndex(value: number) {\r\n this._activeIndex = value;\r\n }\r\n\r\n get activeIndex() {\r\n return this._activeIndex;\r\n }\r\n\r\n @Input('stepsItems') stepsItems!: MenuItem[];\r\n @Input('stepsHeadings') stepsHeadings!: string[];\r\n @Input('stepsSubheadings') stepsSubheadings!: string[];\r\n @Input('nextBtnLabel') nextBtnLabel: string = \"Next\";\r\n @Input('previousBtnLabel') previousBtnLabel: string = \"Previous\";\r\n @Input('cancelBtnLabel') cancelBtnLabel: string = \"Cancel\";\r\n @Input('confirmButtonLabel') confirmButtonLabel!: string;\r\n @Input('confirmButtonIcon') confirmButtonIcon!: string;\r\n @Input('confirmButtonLoading') confirmButtonLoading: boolean = false;\r\n @Input('secondaryConfirmButtonLabel') secondaryConfirmButtonLabel!: string;\r\n @Input('secondaryConfirmButtonIcon') secondaryConfirmButtonIcon!: string;\r\n @Input('secondaryConfirmButtonLoading') secondaryConfirmButtonLoading: boolean = false;\r\n @Input('isReadOnly') isReadOnly: boolean = true;\r\n @Input('cancelCustomRoute') public cancelCustomRoute!: string;\r\n @Input('disableConfirmButton') disableConfirmButton: boolean = false;\r\n @Input('disableSecondaryConfirmButton') disableSecondaryConfirmButton: boolean = false;\r\n @Input('disableNextPageButton') disableNextPageButton: boolean = false;\r\n @Input('disablePreviousPageButton') disablePreviousPageButton: boolean = false;\r\n\r\n @Output('confirmButtonActivated') confirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('secondaryConfirmButtonActivated') secondaryConfirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('activeIndexParent') activeIndexParent = new EventEmitter<number>();\r\n\r\n constructor(\r\n public messageService: MessageService,\r\n private location: Location,\r\n private router: Router\r\n ) {}\r\n\r\n onActiveIndexChange(event:any) {\r\n this._activeIndex = event;\r\n }\r\n\r\n cancel(){\r\n if(this.cancelCustomRoute){\r\n this.router.navigate([this.cancelCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n\r\n nextPage() {\r\n this._activeIndex++;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n return;\r\n }\r\n \r\n previousPage() {\r\n this._activeIndex--;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n }\r\n \r\n confirm() {\r\n this.confirmButtonActivated.emit(true);\r\n }\r\n\r\n secondaryConfirm() {\r\n this.secondaryConfirmButtonActivated.emit(true);\r\n }\r\n}\r\n","<w-body-grid>\r\n <w-panel class=\"col-12 w-wizard-steps-panel\" [activeGrid]=\"false\">\r\n <p-steps [model]=\"stepsItems\" [activeIndex]=\"activeIndex\" (activeIndexChange)=\"onActiveIndexChange($event)\" [readonly]=\"isReadOnly\"></p-steps>\r\n </w-panel>\r\n\r\n <w-panel class=\"col-12 w-wizard-main-panel\" [activeGrid]=\"false\">\r\n \r\n <div class=\"flex flex-column align-items-center sm:align-items-start w-wizard-headings\">\r\n <span *ngIf=\"stepsHeadings && stepsHeadings[activeIndex]\" class=\"w-wizard-heading\">\r\n {{stepsHeadings[activeIndex]}}\r\n </span>\r\n <span *ngIf=\"stepsSubheadings && stepsSubheadings[activeIndex]\" class=\"w-wizard-subheading\">\r\n {{stepsSubheadings[activeIndex]}}\r\n </span>\r\n </div>\r\n\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".step-1\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".step-2\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".step-3\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".step-4\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".step-5\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".step-6\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".step-7\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".step-8\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".step-9\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".step-10\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 10\" select=\".step-11\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 11\" select=\".step-12\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 12\" select=\".step-13\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 13\" select=\".step-14\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 14\" select=\".step-15\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 15\" select=\".step-16\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 16\" select=\".step-17\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 17\" select=\".step-18\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 18\" select=\".step-19\" class=\"w-wizard-body\"></ng-content>\r\n <ng-content *ngIf=\"activeIndex == 19\" select=\".step-20\" class=\"w-wizard-body\"></ng-content>\r\n\r\n <div class=\"flex justify-content-between flex-wrap m-auto\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <w-button *ngIf=\"activeIndex == 0\" \r\n [icon]=\"'pi-times'\" \r\n type=\"secondary\" \r\n [label]=\"cancelBtnLabel\" \r\n (onClick)=\"cancel()\">\r\n </w-button>\r\n <w-button *ngIf=\"activeIndex != 0\" \r\n [icon]=\"'pi-arrow-left'\" \r\n type=\"secondary\" \r\n [label]=\"previousBtnLabel\" \r\n [disabled]=\"disablePreviousPageButton\"\r\n (onClick)=\"previousPage()\">\r\n </w-button>\r\n </div>\r\n <div *ngIf=\"!(stepsItems.length -1 == activeIndex); else confirmButtons\" class=\"flex align-items-center justify-content-center\">\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi-arrow-right'\" \r\n [iconPos]=\"'right'\"\r\n [label]=\"nextBtnLabel\" \r\n [disabled]=\"disableNextPageButton\"\r\n (onClick)=\"nextPage()\">\r\n </w-button>\r\n </div>\r\n <ng-template #confirmButtons >\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <w-button *ngIf=\"secondaryConfirmButtonLabel\"\r\n type=\"secondary\"\r\n class=\"w-wizard-button-gap\"\r\n [icon]=\"'pi '+secondaryConfirmButtonIcon\"\r\n [label]=\"secondaryConfirmButtonLabel\" \r\n [disabled]=\"disableSecondaryConfirmButton\"\r\n [loading]=\"secondaryConfirmButtonLoading\"\r\n (onClick)=\"secondaryConfirm()\">\r\n </w-button>\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi '+ confirmButtonIcon\"\r\n [label]=\"confirmButtonLabel\" \r\n [disabled]=\"disableConfirmButton\" \r\n [loading]=\"confirmButtonLoading\"\r\n (onClick)=\"confirm()\">\r\n </w-button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </w-panel>\r\n</w-body-grid>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { TabView } from 'primeng/tabview';\r\n\r\n@Component({\r\n selector: 'w-tabview',\r\n templateUrl: './w-tabview.component.html',\r\n styleUrls: ['./w-tabview.component.scss']\r\n})\r\nexport class WTabviewComponent implements OnInit{\r\n\r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3'];\r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('requiredTabs') requiredTabs: boolean[] = [false, false, false];\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Input('type') type: string = \"regular\";\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n @ViewChild(TabView) tabView!: TabView;\r\n\r\n isScrollable: boolean = false;\r\n\r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.checkTabsOverflow();\r\n }, 0);\r\n\r\n window.addEventListener('resize', () => {\r\n this.checkTabsOverflow();\r\n });\r\n }\r\n\r\n activeIndexChange(index: any) {\r\n this.outActiveIndex.emit(index)\r\n }\r\n\r\n checkTabsOverflow(): void {\r\n if (!this.tabView) {\r\n return;\r\n }\r\n\r\n const container = this.tabView.el.nativeElement.querySelector('.p-tabview-nav');\r\n\r\n if (container) {\r\n const isOverflowing = container.scrollWidth > container.clientWidth;\r\n this.isScrollable = isOverflowing;\r\n }\r\n }\r\n\r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" [styleClass]=\"type == 'regular' ? 'w-tabview-regular' : 'w-tabview-secondary'\" (activeIndexChange)=\"activeIndexChange($event)\" [scrollable]=\"isScrollable\">\r\n <p-tabPanel *ngIf=\"headers.length > 0 \" [header]=\"headers[0]\" [disabled]=\"disabledTabs[0]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[0]\" [class]=\"'pi '+icons[0]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[0]\">{{headers[0]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[0] && !disabledTabs[0]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 1\" [header]=\"headers[1]\" [disabled]=\"disabledTabs[1]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[1]\" [class]=\"'pi '+icons[1]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[1]\">{{headers[1]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[1] && !disabledTabs[1]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 2 \" [header]=\"headers[2]\" [disabled]=\"disabledTabs[2]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[2]\" [class]=\"'pi '+icons[2]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[2]\">{{headers[2]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[2] && !disabledTabs[2]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 3\" [header]=\"headers[3]\" [disabled]=\"disabledTabs[3]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[3]\" [class]=\"'pi '+icons[3]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[3]\">{{headers[3]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[3] && !disabledTabs[3]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 4\" [header]=\"headers[4]\" [disabled]=\"disabledTabs[4]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[4]\" [class]=\"'pi '+icons[4]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[4]\">{{headers[4]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[4] && !disabledTabs[4]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 5\" [header]=\"headers[5]\" [disabled]=\"disabledTabs[5]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[5]\" [class]=\"'pi '+icons[5]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[5]\">{{headers[5]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[5] && !disabledTabs[5]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 6\" [header]=\"headers[6]\" [disabled]=\"disabledTabs[6]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[6]\" [class]=\"'pi '+icons[6]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[6]\">{{headers[6]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[6] && !disabledTabs[6]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 7\" [header]=\"headers[7]\" [disabled]=\"disabledTabs[7]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[7]\" [class]=\"'pi '+icons[7]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[7]\">{{headers[7]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[7] && !disabledTabs[7]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 8\" [header]=\"headers[8]\" [disabled]=\"disabledTabs[8]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[8]\" [class]=\"'pi '+icons[8]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[8]\">{{headers[8]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[8] && !disabledTabs[8]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 9\" [header]=\"headers[9]\" [disabled]=\"disabledTabs[9]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[9]\" [class]=\"'pi '+icons[9]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[9]\">{{headers[9]}}</span>\r\n <span class=\"p-tabview-asterisk\" *ngIf=\"requiredTabs[9] && !disabledTabs[9]\">*</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n</p-tabView>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-button-tabview',\r\n templateUrl: './w-button-tabview.component.html',\r\n styleUrls: ['./w-button-tabview.component.scss']\r\n})\r\nexport class WButtonTabviewComponent implements OnInit{\r\n \r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3']; \r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n \r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n\r\n activeIndexChange(index: any) {\r\n this.outActiveIndex.emit(index)\r\n }\r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" styleClass=\"w-button-tabview\" (activeIndexChange)=\"activeIndexChange($event)\">\r\n <p-tabPanel *ngIf=\"headers.length > 0 \" [header]=\"headers[0]\" [disabled]=\"disabledTabs[0]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[0]\" [class]=\"'pi '+icons[0]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[0]\">{{headers[0]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 1\" [header]=\"headers[1]\" [disabled]=\"disabledTabs[1]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[1]\" [class]=\"'pi '+icons[1]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[1]\">{{headers[1]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 2 \" [header]=\"headers[2]\" [disabled]=\"disabledTabs[2]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[2]\" [class]=\"'pi '+icons[2]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[2]\">{{headers[2]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 3\" [header]=\"headers[3]\" [disabled]=\"disabledTabs[3]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[3]\" [class]=\"'pi '+icons[3]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[3]\">{{headers[3]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 4\" [header]=\"headers[4]\" [disabled]=\"disabledTabs[4]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[4]\" [class]=\"'pi '+icons[4]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[4]\">{{headers[4]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 5\" [header]=\"headers[5]\" [disabled]=\"disabledTabs[5]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[5]\" [class]=\"'pi '+icons[5]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[5]\">{{headers[5]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 6\" [header]=\"headers[6]\" [disabled]=\"disabledTabs[6]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[6]\" [class]=\"'pi '+icons[6]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[6]\">{{headers[6]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 7\" [header]=\"headers[7]\" [disabled]=\"disabledTabs[7]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[7]\" [class]=\"'pi '+icons[7]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[7]\">{{headers[7]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 8\" [header]=\"headers[8]\" [disabled]=\"disabledTabs[8]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[8]\" [class]=\"'pi '+icons[8]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[8]\">{{headers[8]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n <p-tabPanel *ngIf=\"headers.length > 9\" [header]=\"headers[9]\" [disabled]=\"disabledTabs[9]\">\r\n <ng-template pTemplate=\"header\">\r\n <i *ngIf=\"icons && icons[9]\" [class]=\"'pi '+icons[9]\"></i>\r\n <span class=\"p-tabview-title\" *ngIf=\"headers[9]\">{{headers[9]}}</span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <ng-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\r\n </ng-template>\r\n </p-tabPanel>\r\n</p-tabView>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TreeDragDropService, TreeNode } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-tree',\r\n templateUrl: './w-tree.component.html',\r\n styleUrls: ['./w-tree.component.scss'],\r\n providers: [TreeDragDropService]\r\n})\r\nexport class WTreeComponent implements OnInit{\r\n @Input('nodes') nodes!: any;\r\n @Input('selection') selection!: any;\r\n @Input('selectionMode') selectionMode: string = \"checkbox\";\r\n @Input('activeToggleButton') activeToggleButton: boolean = false;\r\n @Input('collapsedNodes') collapsedNodes: boolean = true;\r\n @Input('collapseButtonLabel') collapseButtonLabel : string = \"Collapse\";\r\n @Input('expandButtonLabel') expandButtonLabel : string = \"Expand\";\r\n @Input('propagateSelectionDown') propagateSelectionDown: boolean = true;\r\n @Input('propagateSelectionUp') propagateSelectionUp: boolean = true;\r\n @Input('activeFilter') activeFilter: boolean = false;\r\n @Input('filterPlaceholder') filterPlaceholder!: string;\r\n @Input('filterBy') filterBy!: string; \r\n @Input('emptyMessage') emptyMessage: string = \"Empty records\";\r\n @Input('loading') loading: boolean = false; \r\n @Input('draggableNodes') draggableNodes: boolean = false;\r\n @Input('draggableScope') draggableScope!: string;\r\n @Input('droppableNodes') droppableNodes: boolean = false;\r\n @Input('droppableScope') droppableScope!: string ;\r\n @Input('scrollHeight') scrollHeight!: string;\r\n @Input('activeVirtualScroll') activeVirtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize!: number;\r\n @Input('nodeItemTemplateName') nodeItemTemplateName: string = \"nodeItemTemplateName\";\r\n \r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output('onFilter') onFilterEmit: EventEmitter<any> = new EventEmitter();\r\n @Output('onNodeDrope') onNodeDropeEmit: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n onSelectionChange(event: any){\r\n this.selectionChange.emit(event)\r\n }\r\n\r\n onFilter(event: any){\r\n this.onFilterEmit.emit(event);\r\n }\r\n\r\n onNodeDrope(event: any){\r\n this.onNodeDropeEmit.emit(event);\r\n }\r\n\r\n expandAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, true);\r\n } );\r\n this.collapsedNodes = false;\r\n }\r\n\r\n collapseAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, false);\r\n } );\r\n this.collapsedNodes = true;\r\n }\r\n\r\n private expandRecursive(node:TreeNode, isExpand:boolean){\r\n node.expanded = isExpand;\r\n if (node.children){\r\n node.children.forEach( childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n } );\r\n }\r\n }\r\n\r\n isPrimeIcon(icon: string){\r\n if(icon.includes('pi')) return true;\r\n return false;\r\n }\r\n\r\n getIcon(icon: string){\r\n return 'pi pi-fw ' + icon;\r\n }\r\n}\r\n","<div *ngIf=\"activeToggleButton\" class=\"w-tree-buttontoggle flex justify-content-end flex-wrap card-container green-container\">\r\n <div *ngIf=\"collapsedNodes else collapse\">\r\n <w-button \r\n size=\"small\" \r\n type=\"secondary\" \r\n icon=\"pi pi-plus\" \r\n [label]=\"expandButtonLabel\" \r\n (onClick)=\"expandAll()\">\r\n </w-button>\r\n </div>\r\n <ng-template #collapse>\r\n <w-button \r\n size=\"small\"\r\n type=\"secondary\"\r\n icon=\"pi pi-minus\"\r\n [label]=\"collapseButtonLabel\" \r\n (onClick)=\"collapseAll()\">\r\n </w-button>\r\n </ng-template>\r\n</div>\r\n\r\n<p-tree class=\"w-full w-tree\" #wTree\r\n [value]=\"nodes\" \r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\" \r\n [selectionMode]=\"selectionMode\" \r\n [loading]=\"loading\"\r\n [filter]=\"activeFilter\" \r\n [filterPlaceholder]=\"filterPlaceholder\" \r\n [propagateSelectionDown]=\"propagateSelectionDown\"\r\n [propagateSelectionUp]=\"propagateSelectionUp\" \r\n [emptyMessage]=\"emptyMessage\" \r\n [draggableNodes]=\"draggableNodes\" \r\n [draggableScope]=\"draggableScope\" \r\n [droppableNodes]=\"droppableNodes\" \r\n [droppableScope]=\"droppableScope\" \r\n (onNodeDrop)=\"onNodeDrope($event)\" \r\n [virtualScroll]=\"activeVirtualScroll\" \r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [scrollHeight]=\"scrollHeight\" \r\n (onFilter)=\"onFilter($event)\" \r\n styleClass=\"w-tree\">\r\n <ng-template let-node [pTemplate]=\"nodeItemTemplateName\">\r\n <div class=\"flex p-elemnt\">\r\n <span class=\"w-tree-icon flex align-items-center justify-content-center\" *ngIf=\"node.icon && isPrimeIcon(node.icon)\" [class]=\"getIcon(node.icon)\"></span>\r\n <w-icons class=\"w-tree-icon flex align-items-center\" *ngIf=\"node.icon && isPrimeIcon(node.icon) == false\" [name]=\"node.icon\" [height]=\"16\" [width]=\"18\" [color]=\"'#2e3134'\"></w-icons>\r\n <div class=\"flex align-items-center\">{{node.label}}</div>\r\n </div>\r\n </ng-template>\r\n</p-tree>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { WTimelineEventItem } from '../../shared/models/w-timeline-event-item.model';\r\nimport { ActionButtonResponse } from '../../shared/models/action-button-response.model';\r\n\r\n@Component({\r\n selector: 'w-timeline',\r\n templateUrl: './w-timeline.component.html',\r\n styleUrls: ['./w-timeline.component.scss']\r\n})\r\nexport class WTimelineComponent {\r\n\r\n @Input('events') events!: WTimelineEventItem[];\r\n @Input('header') header!: string;\r\n @Input('panel') panel: boolean = false;\r\n @Input('align') align: string = \"alternate\";\r\n @Input('reducedPanelMargin') reducedPanelMargin: boolean = false; \r\n @Input('reducedEventPanelMargin') reducedEventPanelMargin: boolean = false; \r\n\r\n @Output('buttonClick') buttonClick: EventEmitter<ActionButtonResponse> = new EventEmitter<ActionButtonResponse>(); \r\n\r\n constructor() {}\r\n\r\n onButtonClick(event: WTimelineEventItem) {\r\n if(event.button?.id) \r\n this.buttonClick.emit({id: event.button.id, element: event})\r\n }\r\n}\r\n","<div *ngIf=\"panel; else timeline\">\r\n <w-panel [title]=\"header\" [reduced]=\"reducedPanelMargin\">\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"timeline\"></ng-container>\r\n </div>\r\n </w-panel>\r\n</div>\r\n\r\n<ng-template #timeline>\r\n <p-timeline [value]=\"events\" [align]=\"align\" styleClass=\"customized-timeline\" \r\n [class.w-timeline-non-alternate]=\"align != 'alternate'\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <span *ngIf=\"event.color.includes('#'); else wappingColors\"\r\n class=\"flex w-2rem h-2rem align-items-center justify-content-center text-white border-circle z-1 shadow-1 shadow-2\"\r\n [style.backgroundColor]=\"event.color\">\r\n <i [ngClass]=\"'pi '+event.icon\"></i>\r\n </span>\r\n <ng-template #wappingColors>\r\n <span\r\n class=\"flex w-2rem h-2rem align-items-center justify-content-center text-white border-circle z-1 shadow-1 shadow-2\"\r\n [class]=\"'w-timeline-event color-'+event.color\">\r\n <i [ngClass]=\"'pi '+event.icon\" [class]=\"'w-timeline-event color-'+event.color\"></i>\r\n </span>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [title]=\"event.status\" [subtitle]=\"event.date\" [reduced]=\"reducedEventPanelMargin\">\r\n <div class=\"col-12\">\r\n <img *ngIf=\"event.image\"\r\n [src]=\"event.image\"\r\n [alt]=\"event.name\" width=\"200\" class=\"shadow-2\" />\r\n <p> {{event.content}} </p>\r\n <div class=\"flex w-timeline-button\" [ngClass]=\"{'w-timeline-button-end':align == 'left', 'w-timeline-button-start':align == 'right'}\">\r\n <w-button *ngIf=\"event.button\" type=\"text\" \r\n [label]=\"event.button.label\" \r\n [icon]=\"event.button.icon!\"\r\n (onClick)=\"onButtonClick(event)\">\r\n </w-button>\r\n </div>\r\n </div>\r\n </w-panel>\r\n </ng-template>\r\n </p-timeline>\r\n</ng-template>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-text',\r\n templateUrl: './w-view-text.component.html',\r\n styleUrls: ['./w-view-text.component.scss']\r\n})\r\nexport class WViewTextComponent {\r\n @Input('label') label!: string;\r\n @Input('value') value!: any;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('layout') layout: string = 'horizontal';\r\n @Input('displayAsList') displayAsList: boolean = false; \r\n\r\n checkEmptyValue(value: any){\r\n if(value == null || value == \"\" || value == undefined){\r\n return '-'; \r\n }else{\r\n if(this.displayAsList == true){\r\n return this.transformValueToList(value); \r\n }\r\n\r\n return value; \r\n }\r\n }\r\n\r\n transformValueToList(value: any){\r\n let valueString = value;\r\n \r\n if(Array.isArray(value)){\r\n valueString = value.join(',');\r\n }\r\n \r\n const valueSplit = valueString.split(',');\r\n const formattedValueToList = valueSplit.map((val: any) => `- ${val.trim()}`);\r\n const valueAsList = formattedValueToList.join('\\n');\r\n return valueAsList; \r\n }\r\n}\r\n","<div *ngIf=\"layout == 'horizontal'; else vertical\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n </div>\r\n <div class=\"col-8 w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n</div>\r\n<ng-template #vertical>\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-timeline',\r\n templateUrl: './w-skeleton-timeline.component.html',\r\n styleUrls: ['./w-skeleton-timeline.component.css']\r\n})\r\nexport class WSkeletonTimelineComponent implements OnInit {\r\n @Input('eventsNumber') eventsNumber: number = 3;\r\n\r\n events: any[] = []\r\n\r\n ngOnInit(): void {\r\n this.events.length = this.eventsNumber;\r\n }\r\n}\r\n","<p-timeline [value]=\"events\" [align]=\"'alternate'\" styleClass=\"customized-timeline\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <p-skeleton shape=\"circle\" size=\"2rem\"></p-skeleton>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [reduced]=\"true\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"100px\"></p-skeleton>\r\n </w-panel>\r\n </ng-template>\r\n</p-timeline>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-sidebar',\r\n templateUrl: './w-skeleton-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-sidebar.component.scss']\r\n})\r\nexport class WSkeletonSidebarComponent implements OnInit {\r\n @Input('itemsNumber') items: any = 6;\r\n\r\n ngOnInit(): void {\r\n this.items = Array(this.items);\r\n }\r\n}\r\n","<div *ngFor=\"let item of items\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 body\">\r\n <p class=\"w-view-text-label-color\"> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n <div class=\"col-8 body\">\r\n <p> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-input-generic',\r\n templateUrl: './w-skeleton-input-generic.component.html',\r\n styleUrls: ['./w-skeleton-input-generic.component.css']\r\n})\r\nexport class WSkeletonInputGenericComponent {\r\n @Input('height') height: any = '32px';\r\n @Input('width') width: any = '100%';\r\n @Input('hasAlign') hasAlign: any = true;\r\n @Input('label') label: any;\r\n}\r\n","<div *ngIf=\"hasAlign\" class=\"flex align-items-center w-height-label\">\r\n <label *ngIf=\"label != undefined\" for=\"input-skeleton-generic\">\r\n <p-skeleton height=\"16px\" width=\"70px\"></p-skeleton>\r\n </label>\r\n</div>\r\n<p-skeleton id='input-skeleton-generic' [height]=\"height\" width=\"width\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-list',\r\n templateUrl: './w-skeleton-list.component.html',\r\n styleUrls: ['./w-skeleton-list.component.css']\r\n})\r\nexport class WSkeletonListComponent {\r\n\r\n @Input('headerPanel') headerPanel: boolean = true;\r\n @Input('contentReduced') contentReduced: boolean = false;\r\n \r\n}\r\n","<w-body-container>\r\n <w-header-panel *ngIf=\"headerPanel\" class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n <w-panel class=\"col-12\" [reduced]=\"contentReduced\">\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" height=\"300px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-iframe',\r\n templateUrl: './w-skeleton-iframe.component.html',\r\n styleUrls: ['./w-skeleton-iframe.component.css']\r\n})\r\nexport class WSkeletonIframeComponent {\r\n\r\n}\r\n","<p-skeleton width=\"100%\" height=\"4rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"30rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"4rem\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit',\r\n templateUrl: './w-skeleton-edit.component.html',\r\n styleUrls: ['./w-skeleton-edit.component.css']\r\n})\r\nexport class WSkeletonEditComponent {\r\n @Input('columnsNumber') columnsNumber: number = 3;\r\n columnsArray: any[] = new Array(this.columnsNumber);\r\n\r\n ngOnInit(): void{\r\n this.columnsArray.length = this.columnsNumber;\r\n }\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n <ng-container *ngFor=\"let item of columnsArray\">\r\n <w-panel *ngIf=\"columnsNumber == 1\" class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n <w-panel *ngIf=\"columnsNumber == 3\" class=\"col-4\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n <w-panel *ngIf=\"columnsNumber == 2\" class=\"col-6\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n </ng-container>\r\n <w-panel class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit-product',\r\n templateUrl: './w-skeleton-edit-product.component.html',\r\n styleUrls: ['./w-skeleton-edit-product.component.css']\r\n})\r\nexport class WSkeletonEditProductComponent {\r\n\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\" >\r\n <p-skeleton height=\"32px\" width=\"129px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n\r\n <w-panel class=\"col-12 xl:col-8\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-4\">\r\n <w-panel-grid class=\"col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel-grid>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-powerbi-report',\r\n templateUrl: './w-skeleton-powerbi-report.component.html',\r\n styleUrls: ['./w-skeleton-powerbi-report.component.css']\r\n})\r\nexport class WSkeletonPowerbiReportComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-between flex-wrap mb-3\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton width=\"15rem\" height=\"3rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n</div>\r\n<p-skeleton width=\"100%\" height=\"100vh\" styleClass=\"mb-2\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-query-builder',\r\n templateUrl: './w-skeleton-query-builder.component.html',\r\n styleUrls: ['./w-skeleton-query-builder.component.scss']\r\n})\r\nexport class WSkeletonQueryBuilderComponent {\r\n @Input('rule') rule: string = \"Rule\";\r\n @Input('ruleSet') ruleSet: string = \"Rule set\";\r\n\r\n stateOptions: any[] = [{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}];\r\n}\r\n","<w-panel-grid>\r\n <div class=\"col-12\">\r\n <div class=\"flex justify-content-between flex-wrap card-container\">\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-chevron-down\" class=\"p-button-rounded p-button-text\"></button>\r\n <w-select-button [stateOptions]=\"stateOptions\" optionLabel=\"label\" optionValue=\"value\"></w-select-button> \r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2 gap-3\">\r\n <w-button [label]=\"rule\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n <w-button [label]=\"ruleSet\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-panel-grid>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-tree',\r\n templateUrl: './w-skeleton-tree.component.html',\r\n styleUrls: ['./w-skeleton-tree.component.css']\r\n})\r\nexport class WSkeletonTreeComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 4;\r\n @Input('rowHeight') rowHeight: string = '24px';\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow-1;\r\n }\r\n}\r\n","<div class=\"border-round border-1 surface-border p-4 surface-card\">\r\n <ul class=\"m-0 p-0 list-none\">\r\n <li *ngFor=\"let row of rowsArray\">\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\" styleClass=\"mb-4\"></p-skeleton>\r\n </li>\r\n <li>\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\"></p-skeleton>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-profile-sidebar',\r\n templateUrl: './w-skeleton-profile-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-profile-sidebar.component.css']\r\n})\r\nexport class WSkeletonProfileSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton width=\"10rem\" styleClass=\"mb-3\"></p-skeleton>\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-5\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"5rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"4rem\"></p-skeleton>\r\n </div>\r\n ","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-user-profile-info-sidebar',\r\n templateUrl: './w-skeleton-user-profile-info-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-user-profile-info-sidebar.component.css']\r\n})\r\nexport class WSkeletonUserProfileInfoSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex mb-3\">\r\n <div class=\"mb-2 justify-content-center\">\r\n <div class=\"inline-block w-2rem h-8rem p-4 mx-5\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n <div class=\"inline-block w-25rem h-8rem p-4 ml-3\">\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"15rem\" styleClass=\"mb-4\"></p-skeleton>\r\n <p-skeleton width=\"10rem\"></p-skeleton>\r\n </div>\r\n <div class=\"px-5 pb-2\">\r\n <div class=\"grid\">\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n ","import { Pipe, PipeTransform } from '@angular/core';\r\n \r\n@Pipe({\r\n name: 'wappSummary'\r\n})\r\nexport class WSummaryPipe implements PipeTransform {\r\n \r\n transform(value: string, maxLength: number) {\r\n return !value || value.length < maxLength ? null : value.substring(0, maxLength) + ' ... ';\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-chip',\r\n templateUrl: './w-chip.component.html',\r\n styleUrls: ['./w-chip.component.scss']\r\n})\r\nexport class WChipComponent implements OnInit {\r\n\r\n @Input('image') image!: string;\r\n @Input('icon') icon!: string;\r\n\r\n @Input('iconColor') iconColor: string = \"#1e293b\";\r\n @Input('iconHeight') iconHeight: number = 12;\r\n @Input('iconWidth') iconWidth: number = 12;\r\n @Input('backgroundColor') backgroundColor: string = \"#e2e8f0\";\r\n @Input('labelColor') labelColor: string = \"#1e293b\";\r\n \r\n @Input('wappIcon') wappIcon!: string;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('tooltipPosition') tooltipPosition: string = 'bottom';\r\n \r\n @Output('click') click: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor)\r\n }\r\n\r\n chipClick() {\r\n this.click.emit(true);\r\n }\r\n}\r\n","<p-chip *ngIf=\"icon || image; else wappIconChip\" \r\n class=\"w-chip\"\r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (click)=\"chipClick()\">\r\n <i *ngIf=\"icon; else imageChip\" class=\"p-chip-icon\" [class]=\"'pi ' + icon\" [style]=\"'color: '+iconColor\"></i>\r\n <ng-template #imageChip> <img [src]=\"image\"> </ng-template>\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n</p-chip>\r\n\r\n<ng-template #wappIconChip>\r\n <p-chip class=\"w-chip\"\r\n [pTooltip]=\"tooltip\" \r\n [tooltipPosition]=\"tooltipPosition\" \r\n (click)=\"chipClick()\">\r\n <w-icons *ngIf=\"wappIcon\" \r\n [name]=\"wappIcon\" \r\n [color]=\"iconColor\" \r\n [height]=\"iconHeight\" \r\n [width]=\"iconWidth\" \r\n class=\"wapp-chip-icon\">\r\n </w-icons>\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n </p-chip>\r\n</ng-template>\r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-view-boolean',\r\n templateUrl: './w-view-boolean.component.html',\r\n styleUrls: ['./w-view-boolean.component.scss']\r\n})\r\nexport class WViewBooleanComponent implements OnInit {\r\n @Input('label') label!: string;\r\n @Input('value') value!: boolean | null;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('trueIcon') trueIcon: string = \"pi pi-circle-fill\";\r\n @Input('trueIconColor') trueIconColor: string = \"var(--w-success-main-color)\";\r\n @Input('falseIcon') falseIcon: string = \"pi pi-circle-fill\"; \r\n @Input('falseIconColor') falseIconColor: string = \"var(--w-error-main-color)\"; \r\n @Input('nullIcon') nullIcon: string = \"pi pi-minus-circle\"; \r\n @Input('nullIconColor') nullIconColor: string = \"var(--w-text-500)\"; \r\n @Input('layout') layout: string = 'horizontal';\r\n\r\n iconType: typeof IconType = IconType;\r\n\r\n ngOnInit(): void {}\r\n\r\n getIconType(icon: string){\r\n if(icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n}\r\n","<div *ngIf=\"layout == 'horizontal'; else vertical\" class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 w-view-text-label\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n </div>\r\n <div class=\"col-8 w-view-text-value\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vertical>\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label> \r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value-vertical\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #icons>\r\n <span *ngIf=\"value == true && getIconType(trueIcon) == iconType.pIcon\" [class]=\"trueIcon\" [style.color]=\"trueIconColor\"></span>\r\n <span *ngIf=\"value == false && getIconType(falseIcon) == iconType.pIcon\" [class]=\"falseIcon\" [style.color]=\"falseIconColor\"></span>\r\n <span *ngIf=\"value == null && getIconType(nullIcon) == iconType.pIcon\" [class]=\"nullIcon\" [style.color]=\"nullIconColor\"></span>\r\n <w-icons *ngIf=\"value == true && getIconType(trueIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"trueIcon\" [color]=\"trueIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n <w-icons *ngIf=\"value == false && getIconType(falseIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"falseIcon\" [color]=\"falseIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n <w-icons *ngIf=\"value == null && getIconType(nullIcon) == iconType.wIcon\" class=\"w-sidebar-icon\" [name]=\"nullIcon\" [color]=\"nullIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-form',\r\n templateUrl: './w-skeleton-form.component.html',\r\n styleUrls: ['./w-skeleton-form.component.css']\r\n})\r\nexport class WSkeletonFormComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 3;\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow;\r\n }\r\n}\r\n","<w-panel-grid>\r\n <w-skeleton-input-generic *ngFor=\"let row of rowsArray\" class=\"col-12\" [label]=\"'Label'\"></w-skeleton-input-generic>\r\n</w-panel-grid>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-generic',\r\n templateUrl: './w-skeleton-generic.component.html',\r\n styleUrls: ['./w-skeleton-generic.component.css']\r\n})\r\nexport class WSkeletonGenericComponent {\r\n @Input('height') height: string = \"300px\"; \r\n}\r\n","<w-panel-grid>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" [height]=\"height\"></w-skeleton-input-generic>\r\n</w-panel-grid>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-section-gap-divider',\r\n templateUrl: './w-panel-section-gap-divider.component.html',\r\n styleUrls: ['./w-panel-section-gap-divider.component.scss']\r\n})\r\nexport class WPanelSectionGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-panel-section-gap-divider-no-grid': inGrid == false, 'w-panel-section-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-input-vertical-gap-divider',\r\n templateUrl: './w-input-vertical-gap-divider.component.html',\r\n styleUrls: ['./w-input-vertical-gap-divider.component.scss']\r\n})\r\nexport class WInputVerticalGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-input-vertical-gap-divider-no-grid': inGrid == false, 'w-input-vertical-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-badge',\r\n templateUrl: './w-view-badge.component.html',\r\n styleUrls: ['./w-view-badge.component.scss']\r\n})\r\nexport class WViewBadgeComponent {\r\n @Input('label') label!: string; \r\n @Input('tooltip') tooltip!: string; \r\n @Input('badgeLabel') badgeLabel!: string; \r\n @Input('badgeColor') badgeColor: string = \"default\";\r\n @Input('badgeTooltip') badgeTooltip!: string;\r\n @Input('badgeMaxWidthOverflow') badgeMaxWidthOverflow!: string;\r\n}\r\n","<div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\"></w-input-label>\r\n <div *ngIf=\"(label != undefined) || (label != '')\" class=\"flex w-view-badge-space\"></div>\r\n <div class=\"flex w-view-badge-badge align-items-center\">\r\n <w-badge [label]=\"badgeLabel\" [color]=\"badgeColor\" [tooltip]=\"badgeTooltip\" [maxWidthOverflow]=\"badgeMaxWidthOverflow\"></w-badge>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar-month',\r\n templateUrl: './w-edit-calendar-month.component.html',\r\n styleUrls: ['./w-edit-calendar-month.component.scss'], \r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarMonthComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class WEditCalendarMonthComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string; \r\n @Input('showLabel') showLabel: boolean = true; \r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('minDate') minDate!: Date;\r\n @Input('maxDate') maxDate!: Date;\r\n @Input('showIcon') showIcon: boolean = true;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter(); \r\n\r\n ngModelValue: any;\r\n\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n constructor(){} \r\n \r\n ngOnInit(): void {}\r\n\r\n writeValue(value: any) {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n}\r\n","<div class=\"w-edit-calendar-month-styles p-fluid field\">\r\n <w-input-label *ngIf=\"showLabel\" [label]=\"label\" [tooltip]=\"tooltip\" [required]=\"required\" [disabled]=\"disabled\"></w-input-label>\r\n <div *ngIf=\"formControl; else noNgControl\">\r\n <p-calendar class=\"w-edit-calendar-month\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched}\"\r\n [formControl]=\"formControl\" \r\n [required]=\"required\" \r\n [placeholder]=\"placeholder\"\r\n (onSelect)=\"onValue($event)\" \r\n dateFormat=\"dd/MM\" \r\n [dataType]=\"dataType\" \r\n [minDate]=\"minDate\" \r\n [maxDate]=\"maxDate\" \r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\" \r\n appendTo=\"body\">\r\n </p-calendar>\r\n <small *ngIf=\"formControl.hasError('required') && formControl.touched\" class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n </div>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div class=\"w-edit-calendar-month-styles p-fluid field\">\r\n <p-calendar class=\"w-edit-calendar-month\"\r\n [(ngModel)]=\"ngModelValue\" \r\n (ngModelChange)=\"onDateChanged()\" \r\n [placeholder]=\"placeholder\"\r\n dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\" \r\n [minDate]=\"minDate\" \r\n [maxDate]=\"maxDate\" \r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\" \r\n appendTo=\"body\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ParameterSelector } from '../../shared/models/parameter-selector.model';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-parameter-selector',\r\n templateUrl: './w-parameter-selector.component.html',\r\n styleUrls: ['./w-parameter-selector.component.scss']\r\n})\r\nexport class WParameterSelectorComponent implements OnInit {\r\n @Input('parameters') parameters!: ParameterSelector; \r\n @Input('title') title!: string; \r\n @Input('subtitle') subtitle!: string;\r\n @Input('popupSummary') popupSummary!: string;\r\n @Input('popupDetail') popupDetail!: string;\r\n @Input('sortAlphabetically') sortAlphabetically: boolean = false;\r\n @Input('activeIndex') activeIndex!: any;\r\n @Input('multiple') multiple: boolean = false;\r\n\r\n constructor(private clipboard: Clipboard, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n if(!this.activeIndex && this.multiple) this.activeIndex = [0];\r\n if(!this.activeIndex && !this.multiple) this.activeIndex = 0;\r\n\r\n if (this.parameters && this.parameters.groups) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n return {\r\n ...param,\r\n icon: \"pi pi-copy\"\r\n };\r\n })\r\n };\r\n });\r\n \r\n if (this.sortAlphabetically == true) {\r\n this.sortParametersAlphabetically();\r\n }\r\n }\r\n }\r\n\r\n removeIndex(index:number) {\r\n this.activeIndex = this.activeIndex.filter((i:number) => i != index);\r\n }\r\n\r\n onParameterSelected(event: any) {\r\n const clipboardCopied = this.clipboard.copy(`{${event.option.value}}`);\r\n const originalParametersMapped = this.parameters.groups; \r\n\r\n this.messageService.add({\r\n severity: 'info', \r\n summary: this.popupSummary ?? 'Texto copiado', \r\n detail: this.popupDetail ?? 'Código del parámetro copiado al portapapeles'\r\n });\r\n\r\n if (clipboardCopied) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n if (param.value == event.option.value) {\r\n return { ...param, icon: \"pi pi-check\" };\r\n }\r\n return param;\r\n })\r\n };\r\n });\r\n\r\n setTimeout(() => {\r\n this.parameters.groups = originalParametersMapped; \r\n }, 1500);\r\n }\r\n }\r\n \r\n sortParametersAlphabetically() {\r\n this.parameters.groups.sort((a, b) => a.name.localeCompare(b.name));\r\n this.parameters.groups.forEach(group => {\r\n group.parameters.sort((a, b) => a.name.localeCompare(b.name));\r\n });\r\n }\r\n}\r\n\r\n\r\n","<w-panel-grid>\r\n <w-panel-title *ngIf=\"title\" class=\"col-12\" [title]=\"title\" [activePaddingBottom]=\"false\"></w-panel-title>\r\n <div *ngIf=\"subtitle\" class=\"col-12 subtitle2\">{{subtitle}}</div>\r\n <p-accordion class=\"col-12 w-param-selector\" \r\n [multiple]=\"multiple\" \r\n [activeIndex]=\"activeIndex\" \r\n (onOpen)=\"multiple ? activeIndex.push($event.index) : activeIndex = $event.index\"\r\n (onClose)=\"removeIndex($event.index)\">\r\n <p-accordionTab *ngFor=\"let group of parameters.groups\" [header]=\"group.name\">\r\n <p-listbox\r\n [options]=\"group.parameters\" \r\n [group]=\"false\" optionLabel=\"name\" optionValue=\"value\" optionGroupLabel=\"name\" optionGroupChildren=\"parameters\"\r\n (onClick)=\"onParameterSelected($event)\" \r\n styleClass=\"w-parameter-tags-listbox-container\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"w-parameter-tags-listbox-item flex align-items-center\">\r\n <span [class]=\"item.icon\"></span>\r\n <span>{{ item.name }}</span>\r\n </div>\r\n </ng-template>\r\n </p-listbox>\r\n </p-accordionTab>\r\n</p-accordion>\r\n</w-panel-grid>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, forwardRef } from '@angular/core';\r\nimport { ChartConfig } from '../../shared/models/w-chart-config.model';\r\nimport { UIChart } from 'primeng/chart'; \r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { Chart } from 'chart.js';\r\nChart.register(ChartDataLabels);\r\n\r\n@Component({\r\n selector: 'w-chart-bar',\r\n templateUrl: './w-chart-bar.component.html',\r\n styleUrls: ['./w-chart-bar.component.scss']\r\n})\r\nexport class WChartBarComponent implements OnInit, OnChanges{\r\n @Input('title') title!: string;\r\n private _chartConfig!: ChartConfig;\r\n @Input()\r\n set config(value: ChartConfig) {\r\n this._chartConfig = value;\r\n }\r\n\r\n get config(): ChartConfig {\r\n return this._chartConfig;\r\n }\r\n\r\n @Input('isHorizontal') isHorizontal: boolean = true; \r\n @Input('width') width!: string; \r\n @Input('height') height!: string; \r\n @Input('setAutoHeight') setAutoHeight: boolean = false; \r\n @Output('onDataSelected') onDataSelectedEvent: EventEmitter<any> = new EventEmitter(); \r\n @ViewChild('wChartBar') wChartBar!: UIChart; \r\n\r\n style: any; \r\n data: any;\r\n options: any;\r\n textColorTitle: any; \r\n textColorLegend: any; \r\n textColorAxis: any; \r\n gridColor: any; \r\n textInverseColor: any; \r\n font: any; \r\n widthBars = 14; \r\n baseHeight: number = 200; \r\n baseHeightPx: string = \"200px\";\r\n\r\n ngOnInit(): void {\r\n this.style = getComputedStyle(document.documentElement);\r\n this.textColorTitle = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorLegend = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorAxis = this.style.getPropertyValue('--w-text-main-color');\r\n this.gridColor = this.style.getPropertyValue('--w-text-softest-color');\r\n this.textInverseColor = this.style.getPropertyValue('--w-text-inverse-color'); \r\n\r\n this.font = {\r\n family: 'Segoe UI',\r\n size: 12,\r\n weight: 600,\r\n };\r\n\r\n this.data = {\r\n labels: this._chartConfig.labels, \r\n datasets: [],\r\n plugins: [ChartDataLabels]\r\n };\r\n\r\n this.fillData(); \r\n\r\n this.options = {\r\n indexAxis: this.isHorizontal ? 'y' : 'x',\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.6,\r\n layout: {\r\n padding: 12\r\n },\r\n plugins: {\r\n title: {\r\n display: true,\r\n color: this.textColorTitle, \r\n text: this.title,\r\n font: {...this.font, size: 14, weight: 700},\r\n padding: 24,\r\n },\r\n tooltips: {\r\n mode: 'index',\r\n intersect: false\r\n },\r\n legend: {\r\n padding: 24,\r\n labels: {\r\n color: this.textColorLegend,\r\n font: {...this.font, weight: 700},\r\n padding: 32\r\n }, \r\n position: 'bottom'\r\n },\r\n datalabels: {\r\n display: this._chartConfig.showDataLabels,\r\n color: this.textInverseColor,\r\n anchor: 'end', \r\n align: 'start', \r\n textStrokeColor: 'rgba(31, 34, 36, 0.6)',\r\n textStrokeWidth: 2, \r\n font: {\r\n size: 10\r\n },\r\n formatter: function (value:any, index:any, values:any) { return value || null; }\r\n }\r\n },\r\n scales: this.fillScales()\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['config']?.previousValue !== undefined){\r\n this.data.datasets = [];\r\n this.fillData();\r\n this.wChartBar.refresh(); \r\n }\r\n\r\n if(changes['title']?.previousValue !== undefined || changes['title']?.previousValue == undefined){\r\n if(this.options){\r\n this.options.plugins!.title.text = this.title; \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n\r\n if(changes['isHorizontal']?.previousValue !== undefined){\r\n if(this.options){\r\n this.options.indexAxis = this.isHorizontal ? 'y' : 'x'; \r\n this.options.scales = {}; \r\n this.options.scales = this.fillScales(); \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n }\r\n\r\n fillScales(){\r\n return {\r\n x: {\r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n font: this.font,\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? true : false,\r\n }\r\n },\r\n y: { \r\n position: 'left', \r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n align: 'start', \r\n crossAlign: 'center', \r\n font: this.font,\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? false : true,\r\n }\r\n }\r\n }\r\n }\r\n\r\n fillData(){\r\n let lengths : any[] = [];\r\n this._chartConfig.data.forEach((element, index) => {\r\n this.data.datasets.push(\r\n {\r\n type: 'bar',\r\n label: element.legend,\r\n backgroundColor: element.color || this.style.getPropertyValue( index == 0 ? '--w-primary-800' : '--w-primary-100'),\r\n data: element.data,\r\n borderRadius: 4,\r\n barThickness: this._chartConfig.widthBars ?? this.widthBars \r\n }); \r\n lengths.push(element.data.length); \r\n });\r\n\r\n if(this.setAutoHeight == true && this.isHorizontal == true){\r\n let barHeights = ((this._chartConfig.widthBars ?? this.widthBars) * 2.5) * this.getMaxNumber(lengths);\r\n this.baseHeight = this.baseHeight + barHeights;\r\n this.baseHeightPx = this.baseHeight + 'px'; \r\n }\r\n }\r\n\r\n onDataSelected(event: any){\r\n this.onDataSelectedEvent.emit(event); \r\n }\r\n\r\n getMaxNumber(numbers: number[]): number {\r\n if (numbers.length === 0) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n return Math.max(...numbers);\r\n }\r\n}\r\n","<p-chart #wChartBar type=\"bar\" [data]=\"data\" [options]=\"options\" [width]=\"width\" [height]=\"setAutoHeight == true ? baseHeightPx : height\" (onDataSelect)=\"onDataSelected($event)\"></p-chart>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// PRIMENG\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { TreeSelectModule } from 'primeng/treeselect';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { TableModule } from 'primeng/table';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { ChartModule } from 'primeng/chart'; \r\nimport { AccordionModule } from 'primeng/accordion';\r\n//EXTERNAL\r\nimport { QueryBuilderComponent, QueryBuilderModule } from 'angular2-query-builder';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { PowerBIEmbedModule } from 'powerbi-client-angular';\r\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\n\r\n// WAPPING\r\nimport { WappComponentsComponent } from './wapp-components.component';\r\nimport { WEditInputTextComponent } from './edit/w-edit-input-text/w-edit-input-text.component';\r\nimport { WClipboardComponent } from './w-clipboard/w-clipboard.component';\r\nimport { WIconsComponent } from './icons/wapping-icons/w-icons.component';\r\nimport { WLogosComponent } from './logos/wapping-logos/w-logos.component';\r\nimport { WEditInputTextareaComponent } from './edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nimport { WEditSelectComponent } from './edit/w-edit-select/w-edit-select.component';\r\nimport { WButtonComponent } from './button/w-button/w-button.component';\r\nimport { WTableComponent } from './tables/w-table/w-table.component';\r\nimport { WTableLazyComponent } from './tables/w-table-lazy/w-table-lazy.component';\r\nimport { WContainerComponent } from './layout/w-container/w-container.component';\r\nimport { WNavbarComponent } from './layout/w-navbar/w-navbar.component';\r\nimport { WBodyComponent } from './layout/w-body/w-body.component';\r\nimport { WFooterComponent } from './layout/w-footer/w-footer.component';\r\nimport { ColorTextPipe } from './shared/pipes/color-text.pipe';\r\nimport { WEditMultiselectComponent } from './edit/w-edit-multiselect/w-edit-multiselect.component';\r\nimport { WEditTreeselectComponent } from './edit/w-edit-treeselect/w-edit-treeselect.component';\r\nimport { WPanelComponent } from './layout/w-panel/w-panel.component';\r\nimport { WBodyContainerComponent } from './layout/w-body-container/w-body-container.component';\r\nimport { WHeaderPanelComponent } from './layout/w-header-panel/w-header-panel.component';\r\nimport { WPanelTitleComponent } from './layout/w-panel-title/w-panel-title.component';\r\nimport { WEditInputNumberComponent } from './edit/w-edit-input-number/w-edit-input-number.component';\r\nimport { WInputSearchComponent } from './search/w-input-search/w-input-search.component';\r\nimport { WFilterPanelComponent } from './misc/w-filter-panel/w-filter-panel.component';\r\nimport { WListFieldComponent } from './misc/w-filter-panel/w-list-field/w-list-field.component';\r\nimport { WImageFileUploaderComponent } from './file/w-image-file-uploader/w-image-file-uploader.component';\r\nimport { WImageCropperComponent } from './file/w-image-cropper/w-image-cropper.component';\r\nimport { WPreviewImageComponent } from './file/w-preview-image/w-preview-image.component';\r\nimport { WPowerbiReportComponent } from './report/w-powerbi-report/w-powerbi-report.component';\r\nimport { WSidebarComponent } from './sidebar/w-sidebar/w-sidebar.component';\r\nimport { WButtonsFooterComponent } from './button/w-buttons-footer/w-buttons-footer.component';\r\nimport { WTreeTableComponent } from './tables/w-tree-table/w-tree-table.component';\r\nimport { WBodyGridComponent } from './layout/w-body-grid/w-body-grid.component';\r\nimport { WEditToggleComponent } from './edit/w-edit-toggle/w-edit-toggle.component';\r\nimport { WPanelGridComponent } from './layout/w-panel-grid/w-panel-grid.component';\r\nimport { WViewCardTitleTextComponent } from './view/w-view-card-title-text/w-view-card-title-text.component';\r\nimport { WAutocompleteSearchComponent } from './search/w-autocomplete-search/w-autocomplete-search.component';\r\nimport { WToggleButtonComponent } from './button/w-toggle-button/w-toggle-button.component';\r\nimport { WEditCheckboxComponent } from './edit/w-edit-checkbox/w-edit-checkbox.component';\r\nimport { WSelectButtonComponent } from './button/w-select-button/w-select-button.component';\r\nimport { WMapsComponent } from './maps/w-maps/w-maps.component';\r\nimport { WEditCalendarComponent } from './edit/w-edit-calendar/w-edit-calendar.component';\r\nimport { WRadioButtonComponent } from './button/w-radio-button/w-radio-button.component';\r\nimport { WWizardComponent } from './misc/w-wizard/w-wizard.component';\r\nimport { WTabviewComponent } from './tabview/w-tabview/w-tabview.component';\r\nimport { WButtonTabviewComponent } from './tabview/w-button-tabview/w-button-tabview.component';\r\nimport { WTreeComponent } from './tree/w-tree/w-tree.component';\r\nimport { WBadgeComponent } from './misc/w-badge/w-badge.component';\r\nimport { WTimelineComponent } from './misc/w-timeline/w-timeline.component';\r\nimport { WPanelSubtitleComponent } from './layout/w-panel-subtitle/w-panel-subtitle.component';\r\nimport { WViewTextComponent } from './view/w-view-text/w-view-text.component';\r\nimport { WSkeletonTimelineComponent } from './shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component';\r\nimport { WSkeletonSidebarComponent } from './shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nimport { WSkeletonListComponent } from './shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nimport { WSkeletonInputGenericComponent } from './shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nimport { WSkeletonIframeComponent } from './shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nimport { WSkeletonEditComponent } from './shared/skeletons/w-skeleton-edit/w-skeleton-edit.component';\r\nimport { WSkeletonEditProductComponent } from './shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nimport { WSkeletonPowerbiReportComponent } from './shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nimport { WSkeletonQueryBuilderComponent } from './shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nimport { WSkeletonTreeComponent } from './shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nimport { WSkeletonProfileSidebarComponent } from './shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nimport { WSkeletonUserProfileInfoSidebarComponent } from './shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nimport { WDatePipe } from './shared/pipes/w-date.pipe';\r\nimport { WSummaryPipe } from './shared/pipes/w-summary.pipe';\r\nimport { WChipComponent } from './misc/w-chip/w-chip.component';\r\nimport { WViewBooleanComponent } from './view/w-view-boolean/w-view-boolean.component';\r\nimport { WSkeletonFormComponent } from './shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nimport { WAddressFieldComponent } from './shared/components/w-address-field/w-address-field.component';\r\nimport { WSkeletonGenericComponent } from './shared/skeletons/w-skeleton-generic/w-skeleton-generic.component';\r\nimport { WInputLabelComponent } from './view/w-input-label/w-input-label.component';\r\nimport { WPanelSectionGapDividerComponent } from './layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component';\r\nimport { WInputVerticalGapDividerComponent } from './layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component';\r\nimport { WButtonWeekComponent } from './button/w-button-week/w-button-week.component';\r\nimport { WViewBadgeComponent } from './view/w-view-badge/w-view-badge.component';\r\nimport { WEditCalendarMonthComponent } from './edit/w-edit-calendar-month/w-edit-calendar-month.component';\r\nimport { WParameterSelectorComponent } from './misc/w-parameter-selector/w-parameter-selector.component';\r\nimport { WChartBarComponent } from './chart/w-chart-bar/w-chart-bar.component';\r\nimport { WPercentagePipe } from './shared/pipes/w-percentage.pipe';\r\nimport { WCurrencyPipe } from './shared/pipes/w-currency.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent, \r\n WButtonComponent,\r\n WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent,\r\n WBodyContainerComponent, \r\n WTableComponent, \r\n WHeaderPanelComponent, \r\n WPanelTitleComponent,\r\n WInputSearchComponent,\r\n WFilterPanelComponent,\r\n WListFieldComponent,\r\n WViewCardTitleTextComponent,\r\n WImageFileUploaderComponent,\r\n WImageCropperComponent,\r\n WPreviewImageComponent,\r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent,\r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n WTreeComponent,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n WPanelSubtitleComponent,\r\n WViewTextComponent,\r\n WViewBooleanComponent, \r\n WChipComponent,\r\n WSkeletonTimelineComponent,\r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent, \r\n WSkeletonEditComponent,\r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent,\r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent,\r\n WAddressFieldComponent,\r\n WSkeletonGenericComponent,\r\n WInputLabelComponent, \r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent,\r\n WButtonWeekComponent,\r\n WViewBadgeComponent,\r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent\r\n ],\r\n imports: [\r\n InputTextModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n ButtonModule,\r\n HighlightModule,\r\n SidebarModule,\r\n BadgeModule,\r\n RadioButtonModule,\r\n InputSwitchModule,\r\n TooltipModule,\r\n RippleModule,\r\n SkeletonModule,\r\n DropdownModule,\r\n MultiSelectModule, \r\n AvatarModule,\r\n AvatarGroupModule,\r\n TreeSelectModule,\r\n InputNumberModule,\r\n InputTextareaModule,\r\n AutoCompleteModule,\r\n TableModule,\r\n MultiSelectModule,\r\n PaginatorModule,\r\n ConfirmPopupModule,\r\n CalendarModule,\r\n ToggleButtonModule,\r\n QueryBuilderModule,\r\n SelectButtonModule,\r\n ImageModule,\r\n FileUploadModule,\r\n ImageCropperModule,\r\n SliderModule,\r\n CarouselModule,\r\n DividerModule,\r\n PowerBIEmbedModule,\r\n TreeTableModule,\r\n MessagesModule,\r\n CheckboxModule,\r\n StepsModule,\r\n TabViewModule,\r\n TimelineModule,\r\n CardModule,\r\n ChipModule,\r\n TieredMenuModule, \r\n GalleriaModule,\r\n BlockUIModule, \r\n ListboxModule,\r\n ChartModule,\r\n AccordionModule\r\n ],\r\n exports: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n HighlightModule,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent, \r\n WButtonComponent,\r\n WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent, \r\n WBodyContainerComponent,\r\n WHeaderPanelComponent,\r\n WPanelTitleComponent,\r\n WPanelSubtitleComponent, \r\n WInputSearchComponent,\r\n QueryBuilderModule,\r\n QueryBuilderComponent,\r\n WFilterPanelComponent,\r\n ImageModule,\r\n FileUploadModule,\r\n SliderModule,\r\n WImageFileUploaderComponent, \r\n WImageCropperComponent, \r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent, \r\n ImageCropperModule,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent, \r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n SelectButtonModule,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n StepsModule,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n TabViewModule, \r\n WTreeComponent, \r\n TabViewModule,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n TimelineModule,\r\n CardModule,\r\n WViewTextComponent,\r\n WViewBooleanComponent, \r\n ChipModule,\r\n WChipComponent, \r\n WSkeletonTimelineComponent, \r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent,\r\n WSkeletonEditComponent, \r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent, \r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent, \r\n WAddressFieldComponent,\r\n TieredMenuModule, \r\n WSkeletonGenericComponent, \r\n GalleriaModule,\r\n BlockUIModule, \r\n WInputLabelComponent, \r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent, \r\n WButtonWeekComponent, \r\n WViewBadgeComponent, \r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent\r\n ],\r\n providers: [\r\n {\r\n provide: HIGHLIGHT_OPTIONS,\r\n useValue: {\r\n fullLibraryLoader: () => import('highlight.js')\r\n }\r\n }\r\n ]\r\n})\r\nexport class WappComponentsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormControlService {\r\n\r\n constructor() { }\r\n\r\n convertToFormControl(absCtrl: AbstractControl | null): FormControl {\r\n const ctrl = absCtrl as FormControl;\r\n return ctrl;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TreeNode } from \"primeng/api\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TreeService {\r\n\r\n constructor() { }\r\n\r\n elementToTreeNodeMap<T>(elements: T[], getChildFn: (element: T) => T[] | null, parent?: TreeNode): TreeNode[] {\r\n return elements.map((element:any) => {\r\n let treeNode: TreeNode = {\r\n label: element.name,\r\n data: element,\r\n children: [],\r\n expanded: false,\r\n parent: parent\r\n };\r\n\r\n const childElements = getChildFn(element);\r\n\r\n if (childElements) {\r\n treeNode.children = this.elementToTreeNodeMap(childElements, getChildFn, treeNode);\r\n }\r\n\r\n return treeNode;\r\n });\r\n }\r\n}","/*\r\n * Public API Surface of wapp-components\r\n */\r\n\r\nexport * from './lib/wapp-components.service';\r\nexport * from './lib/wapp-components.component';\r\nexport * from './lib/wapp-components.module';\r\n\r\n//Components\r\nexport * from './lib/edit/w-edit-input-text/w-edit-input-text.component';\r\nexport * from './lib/edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nexport * from './lib/edit/w-edit-input-number/w-edit-input-number.component';\r\nexport * from './lib/search/w-input-search/w-input-search.component';\r\nexport * from './lib/search/w-autocomplete-search/w-autocomplete-search.component';\r\nexport * from './lib/edit/w-edit-select/w-edit-select.component';\r\nexport * from './lib/edit/w-edit-multiselect/w-edit-multiselect.component';\r\nexport * from './lib/edit/w-edit-treeselect/w-edit-treeselect.component'\r\nexport * from './lib/edit/w-edit-toggle/w-edit-toggle.component';\r\nexport * from './lib/edit/w-edit-checkbox/w-edit-checkbox.component';\r\nexport * from './lib/edit/w-edit-calendar/w-edit-calendar.component';\r\nexport * from './lib/button/w-button/w-button.component';\r\nexport * from './lib/button/w-radio-button/w-radio-button.component';\r\nexport * from './lib/button/w-select-button/w-select-button.component';\r\nexport * from './lib/tables/w-table/w-table.component';\r\nexport * from './lib/tables/w-table-lazy/w-table-lazy.component';\r\nexport * from './lib/misc/w-filter-panel/w-filter-panel.component';\r\nexport * from './lib/w-clipboard/w-clipboard.component';\r\nexport * from './lib/icons/wapping-icons/w-icons.component';\r\nexport * from './lib/logos/wapping-logos/w-logos.component';\r\nexport * from './lib/layout/w-container/w-container.component';\r\nexport * from './lib/layout/w-navbar/w-navbar.component';\r\nexport * from './lib/layout/w-body/w-body.component';\r\nexport * from './lib/layout/w-footer/w-footer.component';\r\nexport * from './lib/layout/w-panel/w-panel.component';\r\nexport * from './lib/layout/w-body-container/w-body-container.component';\r\nexport * from './lib/layout/w-header-panel/w-header-panel.component';\r\nexport * from './lib/layout/w-panel-title/w-panel-title.component';\r\nexport * from './lib/layout/w-panel-subtitle/w-panel-subtitle.component';\r\nexport * from './lib/file/w-image-cropper/w-image-cropper.component';\r\nexport * from './lib/file/w-preview-image/w-preview-image.component';\r\nexport * from './lib/file/w-image-file-uploader/w-image-file-uploader.component';\r\nexport * from './lib/report/w-powerbi-report/w-powerbi-report.component';\r\nexport * from './lib/sidebar/w-sidebar/w-sidebar.component';\r\nexport * from './lib/button/w-buttons-footer/w-buttons-footer.component';\r\nexport * from './lib/tables/w-tree-table/w-tree-table.component';\r\nexport * from './lib/layout/w-body-grid/w-body-grid.component';\r\nexport * from './lib/layout/w-panel-grid/w-panel-grid.component';\r\nexport * from './lib/button/w-toggle-button/w-toggle-button.component';\r\nexport * from './lib/misc/w-wizard/w-wizard.component';\r\nexport * from './lib/maps/w-maps/w-maps.component';\r\nexport * from './lib/tabview/w-tabview/w-tabview.component';\r\nexport * from './lib/tabview/w-button-tabview/w-button-tabview.component';\r\nexport * from './lib/tree/w-tree/w-tree.component';\r\nexport * from './lib/misc/w-badge/w-badge.component';\r\nexport * from './lib/misc/w-timeline/w-timeline.component';\r\nexport * from './lib/misc/w-chip/w-chip.component';\r\nexport * from './lib/view/w-view-text/w-view-text.component';\r\nexport * from './lib/view/w-view-boolean/w-view-boolean.component';\r\nexport * from './lib/shared/components/w-address-field/w-address-field.component';\r\nexport * from './lib/view/w-input-label/w-input-label.component'; \r\nexport * from './lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component'; \r\nexport * from './lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component'; \r\nexport * from './lib/button/w-button-week/w-button-week.component'; \r\nexport * from './lib/view/w-view-badge/w-view-badge.component'; \r\nexport * from './lib/edit/w-edit-calendar-month/w-edit-calendar-month.component'; \r\nexport * from './lib/misc/w-parameter-selector/w-parameter-selector.component';\r\nexport * from './lib/chart/w-chart-bar/w-chart-bar.component'; \r\n\r\n//Skeletons \r\nexport * from './lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component'; \r\n\r\n//Pipes\r\nexport * from './lib/shared/pipes/color-text.pipe';\r\nexport * from './lib/shared/pipes/w-date.pipe';\r\nexport * from './lib/shared/pipes/w-summary.pipe';\r\nexport * from './lib/shared/pipes/w-percentage.pipe';\r\nexport * from './lib/shared/pipes/w-currency.pipe';\r\n\r\n//Services\r\nexport * from './lib/shared/services/form-control.service';\r\nexport * from './lib/shared/services/modal.service';\r\nexport * from './lib/shared/services/tree.service';\r\nexport * from './lib/shared/services/session-storage.service'; \r\nexport * from './lib/shared/services/date-conversion.service'; \r\n\r\n///models\r\nexport * from './lib/shared/models/enums.model';\r\nexport * from './lib/shared/models/filter.model';\r\nexport * from './lib/shared/models/lazy-element-query-request.model';\r\nexport * from './lib/shared/models/wapp-table-lazy-loading.model';\r\nexport * from './lib/shared/models/wapp-table.model';\r\nexport * from './lib/shared/models/filter-panel/filter-panel-translations.model';\r\nexport * from './lib/shared/models/image-b64.model';\r\nexport * from './lib/shared/models/w-file-b64.model';\r\nexport * from './lib/shared/models/w-image-file-uploader-config.model';\r\nexport * from './lib/shared/models/w-image-cropper-data.model';\r\nexport * from './lib/shared/models/w-address.model'\r\nexport * from './lib/shared/models/filter-panel/query-results.model';\r\nexport * from './lib/shared/models/parameter-selector.model'; \r\nexport * from './lib/shared/models/w-chart-config.model'; \r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.WInputLabelComponent","i3.WButtonComponent","i1.SessionStorageService","i2.DateConversionService","i4","i5","i6","i8","i9","i11.WButtonComponent","i12.WBadgeComponent","i13.WButtonWeekComponent","i14.WDatePipe","i15.WPercentagePipe","i16.WCurrencyPipe","i7","i10","i11","i12.WButtonComponent","i13.WBadgeComponent","i14.WButtonWeekComponent","i15.WDatePipe","i16.WPercentagePipe","i17.WCurrencyPipe","i4.WButtonComponent","i5.WContainerComponent","i3.WIconsComponent","i4.WLogosComponent","i4.WPanelTitleComponent","i5.WPanelSubtitleComponent","i5.WButtonComponent","i4.WEditSelectComponent","i5.WEditMultiselectComponent","i1.ApiService","i2.ApiService","i3.SessionStorageService","i14.WEditInputTextComponent","i15.WButtonComponent","i16.WListFieldComponent","i17.WViewCardTitleTextComponent","i18.WToggleButtonComponent","i19.WSelectButtonComponent","i20.WEditCalendarComponent","i21.WAddressFieldComponent","i2.ModalService","i9.WButtonComponent","i9.WIconsComponent","i10.WButtonComponent","i11.WInputLabelComponent","i4.WIconsComponent","i11.WBadgeComponent","i12.WDatePipe","i13.WPercentagePipe","i14.WCurrencyPipe","i5.WIconsComponent","i6.WInputLabelComponent","i6.WPanelComponent","i7.WBodyGridComponent","i5.WPanelComponent","i2.WInputLabelComponent","i4.WPanelComponent","i3.WPanelComponent","i4.WBodyContainerComponent","i5.WHeaderPanelComponent","i6.WSkeletonInputGenericComponent","i2.WPanelComponent","i3.WBodyContainerComponent","i4.WHeaderPanelComponent","i5.WPanelGridComponent","i6.WSelectButtonComponent","i2.WIconsComponent","i3.WInputLabelComponent","i2.WPanelGridComponent","i3.WSkeletonInputGenericComponent","i1.WPanelGridComponent","i2.WSkeletonInputGenericComponent","i2.WBadgeComponent","i6.WPanelTitleComponent","i7.WPanelGridComponent"],"mappings":"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"}