ngx-wapp-components 1.14.20 → 1.14.21

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/icons.ts","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.ts","../../../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/misc/w-badge/w-badge.component.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-date.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/shared/services/session-storage.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/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/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/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/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}\r\n\r\nexport enum IconType{\r\n pIcon = 0, \r\n urlIcon = 1, \r\n wIcon = 2\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\" 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('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\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=\"right\" \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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.medium)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n styleClass=\"w-button-medium 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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.large)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n styleClass=\"w-button-large 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 </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=\"right\" \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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.medium)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-medium-tertiary' : 'w-button-medium 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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.large)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-large-tertiary' : 'w-button-large 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 </p-button>\r\n </ng-container>\r\n <ng-template #buttonText>\r\n <p-button \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \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 </p-button>\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>","export const wappingIcons: any = {\r\n //General\r\n translation: '<svg id=\"translation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 6V2.773C13 2.30277 12.8132 1.8518 12.4807 1.5193C12.1482 1.1868 11.6972 1 11.227 1H2.773C2.30277 1 1.8518 1.1868 1.5193 1.5193C1.1868 1.8518 1 2.30277 1 2.773V10.227C1 10.6972 1.1868 11.1482 1.5193 11.4807C1.8518 11.8132 2.30277 12 2.773 12H3V14L6 12H8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.2859 9H12.7139C12.2438 9.01644 11.7994 9.21862 11.4781 9.56223C11.1568 9.90583 10.9848 10.3628 10.9999 10.833V18.167C10.9848 18.6372 11.1568 19.0942 11.4781 19.4378C11.7994 19.7814 12.2438 19.9836 12.7139 20H17.9999L20.9999 22V20H21.2859C21.7561 19.9836 22.2005 19.7814 22.5218 19.4378C22.8431 19.0942 23.0151 18.6372 22.9999 18.167V10.833C23.0151 10.3628 22.8431 9.90583 22.5218 9.56223C22.2005 9.21862 21.7561 9.01644 21.2859 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10.2871 5.11299C9.97914 5.08499 9.70614 5.07099 9.28714 5.07099C9.18785 5.54042 9.02784 5.99491 8.81114 6.42299C8.60386 6.83394 8.34254 7.21532 8.03414 7.55699C8.77304 7.98948 9.58755 8.27728 10.4341 8.40499C10.1343 8.79359 9.90024 9.22869 9.74114 9.69299C8.78725 9.42381 7.88678 8.99252 7.07914 8.41799C6.23098 9.00461 5.28823 9.44097 4.29214 9.70799C4.1418 9.25859 3.91404 8.83894 3.61914 8.46799C4.49496 8.30917 5.33629 7.99849 6.10514 7.54999C5.75159 7.16324 5.44912 6.73273 5.20514 6.26899C5.00264 5.88698 4.84075 5.48478 4.72214 5.06899C4.30914 5.06899 4.07014 5.08299 3.72214 5.11099V3.84499C4.05955 3.88126 4.39881 3.89762 4.73814 3.89399H6.28014V3.47399C6.28156 3.32825 6.26748 3.18276 6.23814 3.03999H7.64614C7.61797 3.18058 7.6039 3.32362 7.60414 3.46699V3.89399H9.27114C9.61048 3.89778 9.94974 3.88141 10.2871 3.84499V5.11299ZM6.06314 5.07099C6.24411 5.71024 6.58123 6.29444 7.04414 6.77099C7.47028 6.2843 7.7707 5.70062 7.91914 5.07099H6.06314Z\" fill=\"#5F6368\"/><path d=\"M18.3689 17.451L18.0519 16.251H15.9649L15.6399 17.451H13.7329L15.8289 11H18.1449L20.2669 17.451H18.3689ZM17.6919 14.823L17.4149 13.769C17.3482 13.5343 17.2699 13.231 17.1799 12.859C17.0899 12.487 17.0292 12.2203 16.9979 12.059C16.9709 12.208 16.9189 12.459 16.8419 12.797C16.7649 13.135 16.5919 13.815 16.3249 14.823H17.6919Z\" fill=\"#5F6368\"/></svg>',\r\n globe: '<svg id=\"globe\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_270_10781)\"><path d=\"M12 1V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C15.0376 23 17.5 18.0751 17.5 12C17.5 5.92487 15.0376 1 12 1C8.96243 1 6.5 5.92487 6.5 12C6.5 18.0751 8.96243 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_270_10781\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n edit: '<svg id=\"edit\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 5H4C2.895 5 2 5.895 2 7V20C2 21.105 2.895 22 4 22H17C18.105 22 19 21.105 19 20V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 5L19 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 16L7 17L8 13L18.293 2.70701C18.684 2.31601 19.317 2.31601 19.707 2.70701L21.293 4.29301C21.684 4.68401 21.684 5.31701 21.293 5.70701L11 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n calendar: '<svg id=\"calendar\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 12H11V13H13V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 17H5V18H7V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 17H11V18H13V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 12H17V13H19V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" fill=\"#5F6368\"/><path d=\"M13 12H11V13H13V12Z\" fill=\"#5F6368\"/><path d=\"M7 17H5V18H7V17Z\" fill=\"#5F6368\"/><path d=\"M13 17H11V18H13V17Z\" fill=\"#5F6368\"/><path d=\"M19 12H17V13H19V12Z\" fill=\"#5F6368\"/><path d=\"M1 8H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 4H3C1.89543 4 1 4.89543 1 6V20C1 21.1046 1.89543 22 3 22H21C22.1046 22 23 21.1046 23 20V6C23 4.89543 22.1046 4 21 4Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n info: '<svg id=\"info\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_252_9300)\"><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 11V17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_252_9300\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n connection: '<svg id=\"connection\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9076)\"><path d=\"M8.6001 10.2L15.4001 6.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.6001 13.7L15.4001 17.1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 16C7.20914 16 9 14.2091 9 12C9 9.79086 7.20914 8 5 8C2.79086 8 1 9.79086 1 12C1 14.2091 2.79086 16 5 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 9C21.2091 9 23 7.20914 23 5C23 2.79086 21.2091 1 19 1C16.7909 1 15 2.79086 15 5C15 7.20914 16.7909 9 19 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 23C21.2091 23 23 21.2091 23 19C23 16.7909 21.2091 15 19 15C16.7909 15 15 16.7909 15 19C15 21.2091 16.7909 23 19 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9076\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n filter: '<svg id=\"filter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9076)\"><path d=\"M8.6001 10.2L15.4001 6.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.6001 13.7L15.4001 17.1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 16C7.20914 16 9 14.2091 9 12C9 9.79086 7.20914 8 5 8C2.79086 8 1 9.79086 1 12C1 14.2091 2.79086 16 5 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 9C21.2091 9 23 7.20914 23 5C23 2.79086 21.2091 1 19 1C16.7909 1 15 2.79086 15 5C15 7.20914 16.7909 9 19 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 23C21.2091 23 23 21.2091 23 19C23 16.7909 21.2091 15 19 15C16.7909 15 15 16.7909 15 19C15 21.2091 16.7909 23 19 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9076\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n support: '<svg id=\"support\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9074)\"><path d=\"M19.7776 4.222L15.5356 8.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.7776 19.778L15.5356 15.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.22168 19.778L8.46368 15.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.22168 4.222L8.46368 8.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.7777 19.7781C24.0734 15.4824 24.0734 8.51763 19.7777 4.2219C15.4819 -0.0738257 8.51719 -0.0738257 4.22146 4.2219C-0.0742669 8.51763 -0.0742669 15.4824 4.22146 19.7781C8.51719 24.0738 15.4819 24.0738 19.7777 19.7781Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.5352 15.5355C17.4878 13.5829 17.4878 10.4171 15.5352 8.4645C13.5826 6.5119 10.4168 6.5119 8.46421 8.4645C6.51161 10.4171 6.51161 13.5829 8.46421 15.5355C10.4168 17.4881 13.5826 17.4881 15.5352 15.5355Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9074\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n delete: '<svg id=\"delete\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9073)\"><path d=\"M20 9V21C20 21.5304 19.7893 22.0391 19.4142 22.4142C19.0391 22.7893 18.5304 23 18 23H6C5.46957 23 4.96086 22.7893 4.58579 22.4142C4.21071 22.0391 4 21.5304 4 21V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 5V1H16V5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9073\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n searchContent: '<svg id=\"searchContent\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23.0001 19L18.8281 14.828\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 15H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 21H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 3H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 16C18.2091 16 20 14.2091 20 12C20 9.79086 18.2091 8 16 8C13.7909 8 12 9.79086 12 12C12 14.2091 13.7909 16 16 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n addNotification: '<svg id=\"addNotification\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 14V20C19 21.105 18.105 22 17 22H4C2.895 22 2 21.105 2 20V7C2 5.895 2.895 5 4 5H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n launch: '<svg id=\"launch\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 13L22 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 2H22V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4H4C3.46957 4 2.96086 4.21071 2.58579 4.58579C2.21071 4.96086 2 5.46957 2 6V20C2 20.5304 2.21071 21.0391 2.58579 21.4142C2.96086 21.7893 3.46957 22 4 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n swapVertical: '<svg id=\"swapVertical\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 17V2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 6L7 2L11 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 6V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 18L17 22L21 18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n picture: '<path d=\"M3 23L7 15L11 18L17 10L23 23H3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 9C10.6569 9 12 7.65685 12 6C12 4.34315 10.6569 3 9 3C7.34315 3 6 4.34315 6 6C6 7.65685 7.34315 9 9 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n account: '<svg id=\"account\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9067)\"><path d=\"M1 23C1 17.477 5.477 13 11 13H13C18.523 13 23 17.477 23 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13C15.3137 13 18 10.3137 18 7C18 3.68629 15.3137 1 12 1C8.68629 1 6 3.68629 6 7C6 10.3137 8.68629 13 12 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9067\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n comment: '<svg id=\"comment\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.4 16.8C22 15.2 23 13.2 23 11C23 6 18.1 2 12 2C5.9 2 1 6 1 11C1 16 5.9 20 12 20C13.1 20 14.1 19.9 15.1 19.6L21 22L20.4 16.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 13H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n bell: '<svg id=\"bell\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 11V8C19 6.14348 18.2625 4.36301 16.9497 3.05025C15.637 1.7375 13.8565 1 12 1C10.1435 1 8.36301 1.7375 7.05025 3.05025C5.7375 4.36301 5 6.14348 5 8V11C5 14.3 2 15.1 2 17C2 18.7 5.9 20 12 20C18.1 20 22 18.7 22 17C22 15.1 19 14.3 19 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 22C10.989 22 10.039 21.966 9.14502 21.9C9.33561 22.508 9.71532 23.0392 10.2288 23.4164C10.7424 23.7936 11.3629 23.997 12 23.997C12.6372 23.997 13.2577 23.7936 13.7712 23.4164C14.2847 23.0392 14.6644 22.508 14.855 21.9C13.961 21.966 13.011 22 12 22Z\" fill=\"#5F6368\"/></svg>', \r\n timesSmall: '<svg id=\"timesSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 8L8 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 16L8 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n minusSmall: '<svg id=\"minusSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n checkSmall: '<svg id=\"checkSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12L10 16L18 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n checkSmallAlt: '<svg id=\"checkSmallAlt\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.66666 5.99998L5 8.99998L9.33333 3.33331\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',\r\n plusSmall: '<svg id=\"plusSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 7V17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n viewOff: '<svg id=\"viewOff\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.47276 13.294C0.841762 12.547 0.841762 11.453 1.47276 10.706C3.18276 8.683 6.98476 5 11.9998 5C17.0148 5 20.8168 8.683 22.5268 10.706C23.1578 11.453 23.1578 12.547 22.5268 13.294C20.8168 15.317 17.0148 19 11.9998 19C6.98476 19 3.18276 15.317 1.47276 13.294Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C14.7614 15 17 12.7614 17 10C17 7.23858 14.7614 5 12 5C9.23858 5 7 7.23858 7 10C7 12.7614 9.23858 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 20L20 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n view: '<svg id=\"view\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.47276 13.294C0.841762 12.547 0.841762 11.453 1.47276 10.706C3.18276 8.683 6.98476 5 11.9998 5C17.0148 5 20.8168 8.683 22.5268 10.706C23.1578 11.453 23.1578 12.547 22.5268 13.294C20.8168 15.317 17.0148 19 11.9998 19C6.98476 19 3.18276 15.317 1.47276 13.294Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C14.7614 15 17 12.7614 17 10C17 7.23858 14.7614 5 12 5C9.23858 5 7 7.23858 7 10C7 12.7614 9.23858 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n minus: '<svg id=\"minus\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n times: '<svg id=\"times\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 5L5 19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19L5 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n check: '<svg id=\"check\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12L9 19L22 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n plus: '<svg id=\"plus\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M12 2V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n clock: '<svg id=\"clock\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9054)\"><path d=\"M12 6V12H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.96582 22.87L2.23682 17.073L7.92882 18.659\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.237 17.073C3.47619 19.4602 5.54709 21.3107 8.05815 22.2745C10.5692 23.2384 13.3464 23.2488 15.8646 22.3039C18.3828 21.3589 20.4676 19.524 21.7247 17.1462C22.9817 14.7683 23.3241 12.0123 22.6869 9.39919C22.0497 6.78607 20.4772 4.49695 18.2666 2.96466C16.0561 1.43236 13.3608 0.763068 10.6902 1.08334C8.01965 1.4036 5.55899 2.69123 3.77345 4.70276C1.98791 6.71429 1.00124 9.31031 1 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9054\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n search: '<svg id=\"search\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22.0002 22L15.6562 15.656\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 14.4183 5.58172 18 10 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n\r\n //Navbar\r\n folderImage: '<svg id=\"folderImage\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V2H9L12 6H23V20C23 20.5304 22.7893 21.0391 22.4142 21.4142C22.0391 21.7893 21.5304 22 21 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 19L8 14L11 17L15 11L19 19H5Z\" fill=\"#5F6368\"/><path d=\"M9.5 12C10.3284 12 11 11.3284 11 10.5C11 9.67157 10.3284 9 9.5 9C8.67157 9 8 9.67157 8 10.5C8 11.3284 8.67157 12 9.5 12Z\" fill=\"#5F6368\"/></svg>',\r\n folderSettings: '<svg id=\"folderSettings\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V2H9L12 6H23V20C23 20.5304 22.7893 21.0391 22.4142 21.4142C22.0391 21.7893 21.5304 22 21 22H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 19C13.6569 19 15 17.6569 15 16C15 14.3431 13.6569 13 12 13C10.3431 13 9 14.3431 9 16C9 17.6569 10.3431 19 12 19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.1211 13.879L15.5361 12.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 16H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.1211 18.121L15.5361 19.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 19V21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.87887 18.121L8.46387 19.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 16H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.87887 13.879L8.46387 12.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n document: '<svg id=\"document\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 17H15V23L21 17Z\" fill=\"#5F6368\"/><path d=\"M21 17H15V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 17V1H3V23H15L21 17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 17H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 7H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n wallet: '<svg id=\"wallet\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8204)\"><path d=\"M21 12V5H3C1.895 5 1 4.105 1 3V20C1 21.657 2.343 23 4 23H21V16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 2V1H3C1.895 1 1 1.895 1 3C1 4.105 1.895 5 3 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 16H18C16.895 16 16 15.105 16 14C16 12.895 16.895 12 18 12H23V16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8204\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n peopleNetwork: '<svg id=\"peopleNetwork\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8222)\"><path d=\"M12 16C13.3807 16 14.5 14.8807 14.5 13.5C14.5 12.1193 13.3807 11 12 11C10.6193 11 9.5 12.1193 9.5 13.5C9.5 14.8807 10.6193 16 12 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6C13.3807 6 14.5 4.88071 14.5 3.5C14.5 2.11929 13.3807 1 12 1C10.6193 1 9.5 2.11929 9.5 3.5C9.5 4.88071 10.6193 6 12 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.5 11C4.88071 11 6 9.88071 6 8.5C6 7.11929 4.88071 6 3.5 6C2.11929 6 1 7.11929 1 8.5C1 9.88071 2.11929 11 3.5 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.5 11C21.8807 11 23 9.88071 23 8.5C23 7.11929 21.8807 6 20.5 6C19.1193 6 18 7.11929 18 8.5C18 9.88071 19.1193 11 20.5 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.34082 23C7.16482 20.67 9.38682 19 11.9998 19C14.6128 19 16.8348 20.67 17.6588 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8222\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n licenseKey: '<svg id=\"licenseKey\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6501 12C11.3095 11.282 10.7347 10.7013 10.0203 10.3533C9.30586 10.0054 8.49428 9.91093 7.71902 10.0855C6.94376 10.26 6.25098 10.6932 5.7546 11.3138C5.25822 11.9343 4.98779 12.7053 4.98779 13.5C4.98779 14.2947 5.25822 15.0657 5.7546 15.6862C6.25098 16.3068 6.94376 16.74 7.71902 16.9145C8.49428 17.0891 9.30586 16.9946 10.0203 16.6467C10.7347 16.2987 11.3095 15.718 11.6501 15H14.0001L15.5001 16L17.0001 15H19.0001L20.0001 12H11.6501Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.5 14.501C9.05228 14.501 9.5 14.0533 9.5 13.501C9.5 12.9487 9.05228 12.501 8.5 12.501C7.94772 12.501 7.5 12.9487 7.5 13.501C7.5 14.0533 7.94772 14.501 8.5 14.501Z\" fill=\"#5F6368\"/><path d=\"M23 2H1V22H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 6C4.55228 6 5 5.55228 5 5C5 4.44772 4.55228 4 4 4C3.44772 4 3 4.44772 3 5C3 5.55228 3.44772 6 4 6Z\" fill=\"#5F6368\"/><path d=\"M7 6C7.55228 6 8 5.55228 8 5C8 4.44772 7.55228 4 7 4C6.44772 4 6 4.44772 6 5C6 5.55228 6.44772 6 7 6Z\" fill=\"#5F6368\"/></svg>',\r\n settingsWheel: '<svg id=\"settingsWheel\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8216)\"><path d=\"M7.5 4.205L12 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 19.795L12 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 12H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.5 2.474L7.5 4.205\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.47412 6.5L4.20612 7.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.47412 17.5L4.20612 16.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.5 21.526L7.5 19.795\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23V21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.5 21.526L16.5 19.794\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.5259 17.5L19.7939 16.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 12H21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.5259 6.5L19.7939 7.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.5 2.474L16.5 4.206\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8216\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n image: '<svg id=\"image\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 20L6 14L10 18L17 10L23 17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 3H1V21H23V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 10C10.1046 10 11 9.10457 11 8C11 6.89543 10.1046 6 9 6C7.89543 6 7 6.89543 7 8C7 9.10457 7.89543 10 9 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n pSettings: '<svg id=\"pSettings\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8212)\"><path d=\"M10 23H3C2.46957 23 1.96086 22.7893 1.58579 22.4142C1.21071 22.0391 1 21.5304 1 21V3C1 2.46957 1.21071 1.96086 1.58579 1.58579C1.96086 1.21071 2.46957 1 3 1H15C15.5304 1 16.0391 1.21071 16.4142 1.58579C16.7893 1.96086 17 2.46957 17 3V8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21C19.6569 21 21 19.6569 21 18C21 16.3431 19.6569 15 18 15C16.3431 15 15 16.3431 15 18C15 19.6569 16.3431 21 18 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 15V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 15.879L21.5361 14.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 18H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 20.121L21.5361 21.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 20.121L14.4639 21.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 18H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 15.879L14.4639 14.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8212\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n contactList: '<svg id=\"contactList\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 10C10.2091 10 12 8.20914 12 6C12 3.79086 10.2091 2 8 2C5.79086 2 4 3.79086 4 6C4 8.20914 5.79086 10 8 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 5H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 15H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 14C4.134 14 1 17.134 1 21V22H15V21C15 17.134 11.866 14 8 14Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n empty: '<svg id=\"empty\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 2L2 22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n folderShared: '<svg id=\"folderShared\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 22H3C1.895 22 1 21.105 1 20V2H9L12 6H23V20C23 21.105 22.105 22 21 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 15C10.1046 15 11 14.1046 11 13C11 11.8954 10.1046 11 9 11C7.89543 11 7 11.8954 7 13C7 14.1046 7.89543 15 9 15Z\" fill=\"#5F6368\"/><path d=\"M15 12C16.1046 12 17 11.1046 17 10C17 8.89543 16.1046 8 15 8C13.8954 8 13 8.89543 13 10C13 11.1046 13.8954 12 15 12Z\" fill=\"#5F6368\"/><path d=\"M14.1879 17H17.8289C18.4959 17 19.0049 16.35 18.7919 15.717C18.2609 14.14 16.7709 13.003 15.0139 13C13.7199 12.998 12.5059 13.622 11.7549 14.676C12.7699 15.204 13.6139 16.01 14.1879 17Z\" fill=\"#5F6368\"/><path d=\"M9.00005 16C10.76 16 12.254 17.136 12.789 18.715C13.003 19.348 12.495 20 11.827 20H6.17305C5.50505 20 4.99605 19.348 5.21105 18.715C5.74605 17.136 7.24005 16 9.00005 16Z\" fill=\"#5F6368\"/></svg>',\r\n users: '<svg id=\"users\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8186)\"><path d=\"M8 13C9.65685 13 11 11.6569 11 10C11 8.34315 9.65685 7 8 7C6.34315 7 5 8.34315 5 10C5 11.6569 6.34315 13 8 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 16C4.134 16 1 19.134 1 23H15C15 19.134 11.866 16 8 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 7C17.6569 7 19 5.65685 19 4C19 2.34315 17.6569 1 16 1C14.3431 1 13 2.34315 13 4C13 5.65685 14.3431 7 16 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 17H23C23 13.134 19.866 10 16 10C15.66 10 15.327 10.024 15 10.071\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8186\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n handshake: '<svg id=\"handshake\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 8L11.828 10.172C11.0779 10.9219 10.0607 11.3431 9 11.3431C7.93934 11.3431 6.92211 10.9219 6.172 10.172L6 10L10.929 5.071C12.2552 3.74514 14.0537 3.00032 15.929 3.00032C17.8043 3.00032 19.6028 3.74514 20.929 5.071C22.0427 6.1848 22.7528 7.63843 22.9468 9.20152C23.1408 10.7646 22.8076 12.3477 22 13.7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.2662 11.266L18.8792 14.879C19.4416 15.4416 19.7575 16.2045 19.7575 17C19.7575 17.7955 19.4416 18.5584 18.8792 19.121L17.2432 20.757C16.686 21.3143 16.0245 21.7563 15.2965 22.0579C14.5685 22.3595 13.7882 22.5147 13.0002 22.5147C12.2122 22.5147 11.4319 22.3595 10.7038 22.0579C9.97581 21.7563 9.31433 21.3143 8.75717 20.757L3.07117 15.071C1.74532 13.7448 1.00049 11.9463 1.00049 10.071C1.00049 8.19571 1.74532 6.3972 3.07117 5.071C4.37841 3.76011 6.14894 3.01619 8.00017 3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.391 19.609L14.5 15.719\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.5133 21.965L11.8833 18.335\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n layers: '<svg id=\"layers\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">a<path d=\"M5 7H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M5 1V19H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M19 11H13V3H17L19 5V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M19 23H13V15H17L19 17V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a</svg>',\r\n filterOrganization: '<svg id=\"filterOrganization\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 13H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 5H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 1V21H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 3H10V7H21V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 19H10V23H21V19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 11H10V15H21V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n timeline: '<svg id=\"timeline\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8225)\"><path d=\"M12 1V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 2H17V8H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 5H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 16H17V22H23V16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 19H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 15H7L7 9H1L1 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 12H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8225\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n bag: '<svg id=\"bag\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 23H3V6H21V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9V5C8 2.8 9.8 1 12 1C14.2 1 16 2.8 16 5V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n barcodeScan: '<svg id=\"barcodeScan\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8213)\"><path d=\"M1 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 13V18H16V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 9V1H19V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 13V18H5V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 9V1H8V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 23V13H23V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8213\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n messaging: '<svg id=\"messaging\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 3V1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 3.879L21.5361 2.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 6H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 8.121L21.5361 9.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 8.121L14.4639 9.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 6H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 3.879L14.4639 2.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.86 2.18C4.8 2.988 1 6.6 1 11C1 16 5.9 20 12 20C13.0475 20.0213 14.0923 19.8865 15.1 19.6L21 22L20.4 16.8C21.2506 15.9575 21.9272 14.9558 22.391 13.852\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9C19.6569 9 21 7.65685 21 6C21 4.34315 19.6569 3 18 3C16.3431 3 15 4.34315 15 6C15 7.65685 16.3431 9 18 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n mobileCard: '<svg id=\"mobileCard\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8210)\"><path d=\"M7.5 20C8.32843 20 9 19.3284 9 18.5C9 17.6716 8.32843 17 7.5 17C6.67157 17 6 17.6716 6 18.5C6 19.3284 6.67157 20 7.5 20Z\" fill=\"#5F6368\"/><path d=\"M14 17V21C14 22.1 13.1 23 12 23H3C1.9 23 1 22.1 1 21V5C1 3.9 1.9 3 3 3H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 13H18H7V1H23V13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 9H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8210\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n dropCap: '<svg id=\"dropCap\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 15H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 20H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 15L7 4H6L2 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.09082 12H9.90882\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n news: '<svg id=\"news\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8208)\"><path d=\"M9 14H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 18H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 6H9V10H19V6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 23C2.47005 22.9984 1.96227 22.7872 1.58753 22.4125C1.2128 22.0377 1.00158 21.5299 1 21V13H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 1V21C4.99842 21.5299 4.7872 22.0377 4.41247 22.4125C4.03773 22.7872 3.52995 22.9984 3 23H21C21.5299 22.9984 22.0377 22.7872 22.4125 22.4125C22.7872 22.0377 22.9984 21.5299 23 21V1H5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8208\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n loan: '<svg id=\"loan\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 11C17.7614 11 20 8.76142 20 6C20 3.23858 17.7614 1 15 1C12.2386 1 10 3.23858 10 6C10 8.76142 12.2386 11 15 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 16H18.838C19.4676 16 20.0812 16.1981 20.592 16.5662C21.1028 16.9343 21.4848 17.4537 21.684 18.051L22 19L10.532 22.529C9.5488 22.8313 8.48694 22.7432 7.567 22.283L1 19V12H2C3.105 12 5.906 12.438 7 14H10C11.0609 14 12.0783 14.4214 12.8284 15.1716C13.5786 15.9217 14 16.9391 14 18H8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5V7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n shopLocation: '<svg id=\"shopLocation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8206)\"><path d=\"M13.374 11.997C12.052 11.931 11 10.839 11 9.5C11 10.881 9.881 12 8.5 12C7.119 12 6 10.881 6 9.5C6 10.881 4.881 12 3.5 12C2.119 12 1 10.958 1 9L5 1H17L21 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 12V21H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 14C23 17.1 18 22.1 18 22.1C18 22.1 13 17.1 13 14C13 10.8 15.6 9 18 9C20.4 9 23 10.8 23 14Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 15C18.5523 15 19 14.5523 19 14C19 13.4477 18.5523 13 18 13C17.4477 13 17 13.4477 17 14C17 14.5523 17.4477 15 18 15Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8206\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n usersWm: '<svg id=\"usersWm\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 21H23V16.677C22.9999 16.4772 22.9399 16.282 22.8278 16.1166C22.7157 15.9512 22.5566 15.8231 22.371 15.749L18.629 14.249C18.4438 14.175 18.2849 14.0473 18.1728 13.8823C18.0607 13.7172 18.0005 13.5225 18 13.323V12.445C18.6065 12.0969 19.1107 11.5953 19.4617 10.9906C19.8128 10.3858 19.9985 9.69927 20 9V7C20.0002 6.29778 19.8154 5.60789 19.4644 4.99969C19.1134 4.39148 18.6085 3.8864 18.0004 3.53522C17.3923 3.18404 16.7024 2.99914 16.0002 2.9991C15.298 2.99906 14.6081 3.18389 14 3.535\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.371 16.749L10.629 15.249C10.4438 15.175 10.2849 15.0473 10.1728 14.8823C10.0607 14.7172 10.0005 14.5225 10 14.323V13.872C13.27 13.435 14 12 14 12C14 12 12 10 12 8C12 6.93913 11.5786 5.92172 10.8284 5.17157C10.0783 4.42143 9.06087 4 8 4C6.93913 4 5.92172 4.42143 5.17157 5.17157C4.42143 5.92172 4 6.93913 4 8C4 10 2 12 2 12C2 12 2.73 13.435 6 13.872V14.323C5.99987 14.5228 5.93989 14.718 5.82777 14.8834C5.71566 15.0488 5.55656 15.1769 5.371 15.251L1.629 16.751C1.44375 16.825 1.28488 16.9527 1.17279 17.1177C1.0607 17.2828 1.00053 17.4775 1 17.677V21H15V17.677C14.9999 17.4772 14.9399 17.282 14.8278 17.1166C14.7157 16.9512 14.5566 16.8231 14.371 16.749Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n shop: '<svg id=\"shop\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 13V22H20V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.00001 2L1.00001 7C0.998497 7.67436 1.22485 8.32946 1.64235 8.85905C2.05985 9.38864 2.64402 9.76166 3.3001 9.9176C3.95619 10.0735 4.64572 10.0033 5.25686 9.71819C5.86801 9.43311 6.36492 8.94992 6.66701 8.347C6.91349 8.84349 7.29369 9.26131 7.76479 9.5534C8.2359 9.84549 8.7792 10.0003 9.33351 10.0003C9.88782 10.0003 10.4311 9.84549 10.9022 9.5534C11.3733 9.26131 11.7535 8.84349 12 8.347C12.2465 8.84349 12.6267 9.26131 13.0978 9.5534C13.5689 9.84549 14.1122 10.0003 14.6665 10.0003C15.2208 10.0003 15.7641 9.84549 16.2352 9.5534C16.7063 9.26131 17.0865 8.84349 17.333 8.347C17.6351 8.94992 18.132 9.43311 18.7432 9.71819C19.3543 10.0033 20.0438 10.0735 20.6999 9.9176C21.356 9.76166 21.9402 9.38864 22.3577 8.85905C22.7752 8.32946 23.0015 7.67436 23 7L20 2H4.00001Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 22V16H14V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n newConstruction: '<svg id=\"newConstruction\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 23H1V13H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 16H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 19H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 13H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 6V2L23 5V23H5V9H15V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cardFavorite: '<svg id=\"cardFavorite\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10V3C23 1.9 22.1 1 21 1H16H3C1.9 1 1 1.9 1 3V16C1 17.1 1.9 18 3 18H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22.2012 13.812C20.9852 12.576 18.9552 12.778 18.0002 14.24C17.0442 12.776 15.0142 12.577 13.7992 13.812C12.7342 14.894 12.7342 16.649 13.7992 17.731L18.0002 22L22.2022 17.731C23.2662 16.649 23.2662 14.894 22.2012 13.812Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cardUpdate: '<svg id=\"cardUpdate\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8190)\"><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10V3C23 1.9 22.1 1 21 1H16H3C1.9 1 1 1.9 1 3V16C1 17.1 1.9 18 3 18H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.126 17C14.57 15.275 16.136 14 18 14C19.48 14 20.772 14.804 21.464 15.999\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23.22 13.649L22.792 18L18.522 17.061L23.22 13.649Z\" fill=\"#5F6368\"/><path d=\"M21.8741 20C21.4301 21.725 19.8641 23 18.0001 23C16.5201 23 15.2281 22.196 14.5361 21.001\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.7798 23.351L13.2078 19L17.4778 19.939L12.7798 23.351Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8190\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n present: '<svg id=\"present\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8192)\"><path d=\"M4 3.5C4.02271 2.81501 4.31631 2.16702 4.81634 1.6983C5.31637 1.22957 5.98197 0.97843 6.667 1C10.611 1 12 6 12 6H6.667C5.98197 6.02157 5.31637 5.77043 4.81634 5.30171C4.31631 4.83298 4.02271 4.18499 4 3.5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.333 6H12C12 6 13.389 1 17.333 1C18.018 0.97843 18.6836 1.22957 19.1837 1.6983C19.6837 2.16702 19.9773 2.81501 20 3.5C19.9773 4.18499 19.6837 4.83298 19.1837 5.30171C18.6836 5.77043 18.018 6.02157 17.333 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 13V21C21 21.5304 20.7893 22.0391 20.4142 22.4142C20.0391 22.7893 19.5304 23 19 23H5C4.46957 23 3.96086 22.7893 3.58579 22.4142C3.21071 22.0391 3 21.5304 3 21V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 6H1V10H23V6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8192\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n boardGame: '<svg id=\"boardGame\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8191)\"><path d=\"M21 5H7C5.89543 5 5 5.89543 5 7V21C5 22.1046 5.89543 23 7 23H21C22.1046 23 23 22.1046 23 21V7C23 5.89543 22.1046 5 21 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 5V3C19 2.46957 18.7893 1.96086 18.4142 1.58579C18.0391 1.21071 17.5304 1 17 1H3C2.46957 1 1.96086 1.21071 1.58579 1.58579C1.21071 1.96086 1 2.46957 1 3V17C1 17.5304 1.21071 18.0391 1.58579 18.4142C1.96086 18.7893 2.46957 19 3 19H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 11C10.3284 11 11 10.3284 11 9.5C11 8.67157 10.3284 8 9.5 8C8.67157 8 8 8.67157 8 9.5C8 10.3284 8.67157 11 9.5 11Z\" fill=\"#5F6368\"/><path d=\"M18.5 11C19.3284 11 20 10.3284 20 9.5C20 8.67157 19.3284 8 18.5 8C17.6716 8 17 8.67157 17 9.5C17 10.3284 17.6716 11 18.5 11Z\" fill=\"#5F6368\"/><path d=\"M9.5 20C10.3284 20 11 19.3284 11 18.5C11 17.6716 10.3284 17 9.5 17C8.67157 17 8 17.6716 8 18.5C8 19.3284 8.67157 20 9.5 20Z\" fill=\"#5F6368\"/><path d=\"M18.5 20C19.3284 20 20 19.3284 20 18.5C20 17.6716 19.3284 17 18.5 17C17.6716 17 17 17.6716 17 18.5C17 19.3284 17.6716 20 18.5 20Z\" fill=\"#5F6368\"/><path d=\"M14 15.5C14.8284 15.5 15.5 14.8284 15.5 14C15.5 13.1716 14.8284 12.5 14 12.5C13.1716 12.5 12.5 13.1716 12.5 14C12.5 14.8284 13.1716 15.5 14 15.5Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8191\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n migration: '<svg id=\"migration\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8194)\"><path d=\"M12 23V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 14L12 10L16 14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.9999 18.777C17.6144 18.4092 19.0961 17.603 20.282 16.4473C21.4679 15.2916 22.3119 13.8311 22.7213 12.2266C23.1306 10.6221 23.0893 8.93579 22.602 7.35323C22.1147 5.77067 21.2002 4.35323 19.9592 3.25691C18.7182 2.16059 17.1988 1.4279 15.5682 1.13946C13.9377 0.851028 12.2591 1.01804 10.7173 1.62211C9.17557 2.22618 7.83033 3.2439 6.82969 4.56325C5.82905 5.8826 5.21179 7.45244 5.04586 9.1C3.83442 9.34579 2.75697 10.0316 2.02146 11.0251C1.28595 12.0186 0.944536 13.2493 1.0631 14.4798C1.18167 15.7102 1.75182 16.8531 2.6635 17.6878C3.57519 18.5226 4.76377 18.9901 5.99986 19H7.99986\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8194\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n cockade: '<svg id=\"cockade\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.8731 11.81L22.0001 20L18.0001 19L16.0001 22L12.7251 14.963\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.127 11.81L2 20L6 19L8 22L11.275 14.963\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C15.866 15 19 11.866 19 8C19 4.13401 15.866 1 12 1C8.13401 1 5 4.13401 5 8C5 11.866 8.13401 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 10C13.1046 10 14 9.10457 14 8C14 6.89543 13.1046 6 12 6C10.8954 6 10 6.89543 10 8C10 9.10457 10.8954 10 12 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n percentage: '<svg id=\"percentage\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8195)\"><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 18C17.1046 18 18 17.1046 18 16C18 14.8954 17.1046 14 16 14C14.8954 14 14 14.8954 14 16C14 17.1046 14.8954 18 16 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 16L16 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8195\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n refund: '<svg id=\"refund\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8196)\"><path d=\"M15.6002 13.868C15.6124 14.2163 15.5443 14.5628 15.4013 14.8807C15.2582 15.1985 15.044 15.4792 14.7751 15.701C14.1079 16.2067 13.3017 16.496 12.4651 16.53V18H11.4831V16.558C10.429 16.5579 9.38546 16.3482 8.41315 15.941V14.048C8.89455 14.2773 9.39686 14.4598 9.91315 14.593C10.4252 14.7381 10.9505 14.8319 11.4811 14.873V12.649L11.0001 12.463C10.2477 12.2116 9.56051 11.7963 8.98815 11.247C8.59128 10.8006 8.38081 10.219 8.40015 9.622C8.39406 9.29339 8.46443 8.96786 8.60569 8.6711C8.74696 8.37434 8.95526 8.11447 9.21415 7.912C9.87359 7.42229 10.6637 7.13966 11.4842 7.1V6H12.4661V7.069C13.4889 7.10005 14.4965 7.32398 15.4361 7.729L14.7621 9.407C14.0285 9.10427 13.2529 8.91575 12.4621 8.848V10.964C13.1553 11.2074 13.8223 11.5197 14.4531 11.896C14.8044 12.1156 15.1009 12.4125 15.3201 12.764C15.5114 13.1 15.6081 13.4815 15.6002 13.868ZM10.5581 9.622C10.5552 9.71932 10.5732 9.81613 10.611 9.90586C10.6488 9.99559 10.7055 10.0761 10.7772 10.142C10.9887 10.3191 11.2275 10.4609 11.4842 10.562V8.876C10.8675 8.96733 10.5588 9.216 10.5581 9.622ZM13.4422 13.976C13.4427 13.8782 13.421 13.7816 13.3787 13.6934C13.3364 13.6053 13.2747 13.5278 13.1981 13.467C12.9746 13.2912 12.7284 13.1462 12.4661 13.036V14.822C13.1161 14.712 13.4415 14.43 13.4422 13.976Z\" fill=\"#5F6368\"/><path d=\"M2.96582 1.13L2.23682 6.927L7.92882 5.341\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.237 6.927C3.47619 4.53978 5.54709 2.68931 8.05815 1.72546C10.5692 0.761614 13.3464 0.751185 15.8646 1.69615C18.3828 2.64111 20.4676 4.47597 21.7247 6.85382C22.9817 9.23166 23.3241 11.9877 22.6869 14.6008C22.0497 17.2139 20.4772 19.503 18.2666 21.0353C16.0561 22.5676 13.3608 23.2369 10.6902 22.9167C8.01965 22.5964 5.55899 21.3088 3.77345 19.2972C1.98791 17.2857 1.00124 14.6897 1 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8196\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n goldCoin: '<svg id=\"goldCoin\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8229)\"><path d=\"M12 6.767L13.545 9.898L17 10.4L14.5 12.837L15.09 16.278L12 14.653L8.91 16.278L9.5 12.837L7 10.4L10.455 9.898L12 6.767Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z\" fill=\"#5F6368\"/><path d=\"M18.6572 15.163C19.2095 15.163 19.6572 14.7153 19.6572 14.163C19.6572 13.6107 19.2095 13.163 18.6572 13.163C18.1049 13.163 17.6572 13.6107 17.6572 14.163C17.6572 14.7153 18.1049 15.163 18.6572 15.163Z\" fill=\"#5F6368\"/><path d=\"M16.1138 7.337C16.6661 7.337 17.1138 6.88928 17.1138 6.337C17.1138 5.78472 16.6661 5.337 16.1138 5.337C15.5615 5.337 15.1138 5.78472 15.1138 6.337C15.1138 6.88928 15.5615 7.337 16.1138 7.337Z\" fill=\"#5F6368\"/><path d=\"M7.88623 7.337C8.43852 7.337 8.88623 6.88928 8.88623 6.337C8.88623 5.78472 8.43852 5.337 7.88623 5.337C7.33395 5.337 6.88623 5.78472 6.88623 6.337C6.88623 6.88928 7.33395 7.337 7.88623 7.337Z\" fill=\"#5F6368\"/><path d=\"M5.34277 15.163C5.89506 15.163 6.34277 14.7153 6.34277 14.163C6.34277 13.6107 5.89506 13.163 5.34277 13.163C4.79049 13.163 4.34277 13.6107 4.34277 14.163C4.34277 14.7153 4.79049 15.163 5.34277 15.163Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8229\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n calendarDate: '<svg id=\"calendarDate\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 12H11V13H13V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 17H5V18H7V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 17H11V18H13V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 12H17V13H19V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" fill=\"#5F6368\"/><path d=\"M13 12H11V13H13V12Z\" fill=\"#5F6368\"/><path d=\"M7 17H5V18H7V17Z\" fill=\"#5F6368\"/><path d=\"M13 17H11V18H13V17Z\" fill=\"#5F6368\"/><path d=\"M19 12H17V13H19V12Z\" fill=\"#5F6368\"/><path d=\"M1 8H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 4H3C1.89543 4 1 4.89543 1 6V20C1 21.1046 1.89543 22 3 22H21C22.1046 22 23 21.1046 23 20V6C23 4.89543 22.1046 4 21 4Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n windowParagraph: '<svg id=\"windowParagraph\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23 2H1V22H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 6H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 11H5V17H11V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 11H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 15H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 2V6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n notification: '<svg id=\"notification\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8197)\"><path d=\"M10.4932 14.389L12.8552 20.252C13.0527 20.7437 13.0469 21.2937 12.8391 21.7812C12.6314 22.2687 12.2387 22.6538 11.7472 22.852C11.2555 23.0494 10.7055 23.0436 10.218 22.8359C9.73053 22.6281 9.34541 22.2354 9.14723 21.744L5.51123 12.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.3091 1.119L3.00008 6C2.36887 6.18783 1.8233 6.59066 1.458 7.13861C1.09269 7.68657 0.930687 8.3451 1.00008 9C0.930687 9.6549 1.09269 10.3134 1.458 10.8614C1.8233 11.4093 2.36887 11.8122 3.00008 12L18.3091 16.881\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 17C21.2091 17 23 13.4183 23 9C23 4.58172 21.2091 1 19 1C16.7909 1 15 4.58172 15 9C15 13.4183 16.7909 17 19 17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.0001 9C19.9988 8.26544 19.7271 7.55708 19.2368 7.01004C18.7466 6.463 18.0721 6.11556 17.3421 6.034C17.1105 7.00554 16.9957 8.00125 17.0001 9C16.9957 9.99875 17.1105 10.9945 17.3421 11.966C18.0721 11.8844 18.7466 11.537 19.2368 10.99C19.7271 10.4429 19.9988 9.73456 20.0001 9Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8197\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n mobileChat: '<svg id=\"mobileChat\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 11H13L9 13V3C9 2.46957 9.21071 1.96086 9.58579 1.58579C9.96086 1.21071 10.4696 1 11 1H21C21.5304 1 22.0391 1.21071 22.4142 1.58579C22.7893 1.96086 23 2.46957 23 3V9C23 9.53043 22.7893 10.0391 22.4142 10.4142C22.0391 10.7893 21.5304 11 21 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5V21C2 21.5304 2.21071 22.0391 2.58579 22.4142C2.96086 22.7893 3.46957 23 4 23H15C15.5304 23 16.0391 22.7893 16.4142 22.4142C16.7893 22.0391 17 21.5304 17 21V14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n compass: '<svg id=\"compass\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8201)\"><path d=\"M12 1V4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 12H20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23V20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 7L14 14L7 17L10 10L17 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8201\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n feedback: '<svg id=\"feedback\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.4 16.8C21.1969 16.0544 21.8373 15.1575 22.2837 14.1616C22.7301 13.1658 22.9736 12.091 23 11C23 6 18.1 2 12 2C5.9 2 1 6 1 11C1 16 5.9 20 12 20C13.0475 20.0213 14.0923 19.8865 15.1 19.6L21 22L20.4 16.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6V12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17Z\" fill=\"#5F6368\"/></svg>',\r\n receiptList: '<svg id=\"receiptList\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 1H21V22L18 20L15 22L12 20L9 22L6 20L3 22V1Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 7H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 7H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 11H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 11H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 15H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 15H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n fileCopies: '<svg id=\"fileCopies\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 9H2V23H14V9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5H18V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1H22V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n exchange: '<svg id=\"exchange\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8177)\"><path d=\"M5 5C6.10457 5 7 4.10457 7 3C7 1.89543 6.10457 1 5 1C3.89543 1 3 1.89543 3 3C3 4.10457 3.89543 5 5 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 8C2.791 8 1 9.791 1 12H9C9 9.791 7.209 8 5 8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 16C20.1046 16 21 15.1046 21 14C21 12.8954 20.1046 12 19 12C17.8954 12 17 12.8954 17 14C17 15.1046 17.8954 16 19 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19C16.791 19 15 20.791 15 23H23C23 20.791 21.209 19 19 19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 16V18C4 18.552 4.448 19 5 19H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 22L12 19L9 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 8V6C20 5.448 19.552 5 19 5H12H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 2L12 5L15 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8177\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n copy: '<svg id=\"copy\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 9H3V23H21V9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 5H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 1H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n usersHeart: '<svg id=\"usersHeart\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8175)\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.361 1.631C14.388 0.670001 12.764 0.827001 12 1.964C11.235 0.826001 9.611 0.671001 8.639 1.631C7.787 2.473 7.787 3.838 8.639 4.679L12 8L15.361 4.679C16.213 3.838 16.213 2.473 15.361 1.631Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8175\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n usersCheck: '<svg id=\"usersCheck\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 5L11 7L16 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n team: '<svg id=\"team\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8176)\"><path d=\"M4 7C2.895 7 2 6.105 2 5C2 3.895 2.895 3 4 3C5.105 3 6 3.895 6 5C6 6.105 5.105 7 4 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 21H3V17H1V12C1 10.895 1.895 10 3 10H4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 7C21.105 7 22 6.105 22 5C22 3.895 21.105 3 20 3C18.895 3 18 3.895 18 5C18 6.105 18.895 7 20 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21H21V17H23V12C23 10.895 22.105 10 21 10H20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6C10.619 6 9.5 4.881 9.5 3.5C9.5 2.119 10.619 1 12 1C13.381 1 14.5 2.119 14.5 3.5C14.5 4.881 13.381 6 12 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 23H9V17H7V11C7 9.895 7.895 9 9 9H15C16.105 9 17 9.895 17 11V17H15V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8176\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n coupon: '<svg id=\"coupon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 12C20 10.3 21.3 9 23 9V4H1V9C2.7 9 4 10.3 4 12C4 13.7 2.7 15 1 15V20H23V15C21.3 15 20 13.7 20 12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 9L9 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 10C10.3284 10 11 9.32843 11 8.5C11 7.67157 10.3284 7 9.5 7C8.67157 7 8 7.67157 8 8.5C8 9.32843 8.67157 10 9.5 10Z\" fill=\"#5F6368\"/><path d=\"M14.5 17C15.3284 17 16 16.3284 16 15.5C16 14.6716 15.3284 14 14.5 14C13.6716 14 13 14.6716 13 15.5C13 16.3284 13.6716 17 14.5 17Z\" fill=\"#5F6368\"/></svg>',\r\n userLocation: '<svg id=\"userLocation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18.999 17.857C20.851 18.402 22 19.161 22 20C22 21.657 17.523 23 12 23C6.477 23 2 21.657 2 20C2 19.161 3.149 18.402 5 17.858\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 20H10V15H8V10C8 8.895 8.895 8 10 8H14C15.105 8 16 8.895 16 10V15H14V20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 5C10.895 5 10 4.105 10 3C10 1.895 10.895 1 12 1C13.105 1 14 1.895 14 3C14 4.105 13.105 5 12 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n discount: '<svg id=\"discount\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 15L22 12L19 9V5H15L12 2L9 5H5V9L2 12L5 15V19H9L12 22L15 19H19V15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 9L9 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 11C10.3284 11 11 10.3284 11 9.5C11 8.67157 10.3284 8 9.5 8C8.67157 8 8 8.67157 8 9.5C8 10.3284 8.67157 11 9.5 11Z\" fill=\"#5F6368\"/><path d=\"M14.5 16C15.3284 16 16 15.3284 16 14.5C16 13.6716 15.3284 13 14.5 13C13.6716 13 13 13.6716 13 14.5C13 15.3284 13.6716 16 14.5 16Z\" fill=\"#5F6368\"/></svg>',\r\n usersMeeting: '<svg id=\"usersMeeting\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8179)\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 1H13C12.448 1 12 1.448 12 2V10L16 6H22C22.552 6 23 5.552 23 5V2C23 1.448 22.552 1 22 1Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8179\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n statistics: '<svg id=\"statistics\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 10L9 3L15 9L22 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 22V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 12V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 22V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 12V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n transactions: '<svg id=\"transactions\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8178)\"><path d=\"M12 5C13.1046 5 14 4.10457 14 3C14 1.89543 13.1046 1 12 1C10.8954 1 10 1.89543 10 3C10 4.10457 10.8954 5 12 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.33984 20C4.44441 20 5.33984 19.1046 5.33984 18C5.33984 16.8954 4.44441 16 3.33984 16C2.23527 16 1.33984 16.8954 1.33984 18C1.33984 19.1046 2.23527 20 3.33984 20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.6597 20C21.7642 20 22.6597 19.1046 22.6597 18C22.6597 16.8954 21.7642 16 20.6597 16C19.5551 16 18.6597 16.8954 18.6597 18C18.6597 19.1046 19.5551 20 20.6597 20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.27891 4.806C4.50421 6.03911 3.17846 7.81571 2.50152 9.868C1.82458 11.9203 1.83314 14.137 2.52591 16.184\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.4897 19.61C18.062 21.2375 16.1426 22.3553 14.0224 22.7938C11.9023 23.2323 9.69695 22.9676 7.74072 22.04\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.963 12.155C21.7798 9.99978 20.9028 7.96204 19.4635 6.34746C18.0241 4.73288 16.1001 3.62851 13.98 3.2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8178\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n currencyExchange: '<svg id=\"currencyExchange\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8187)\"><path d=\"M15.6002 13.873C15.6124 14.2213 15.5443 14.5678 15.4013 14.8857C15.2582 15.2035 15.044 15.4842 14.7751 15.706C14.1079 16.2117 13.3017 16.501 12.4651 16.535V18.005H11.4831V16.563C10.429 16.5629 9.38546 16.3532 8.41315 15.946V14.053C8.89455 14.2823 9.39686 14.4648 9.91315 14.598C10.4252 14.7431 10.9505 14.8369 11.4811 14.878V12.654L11.0001 12.468C10.2477 12.2166 9.56051 11.8013 8.98815 11.252C8.59128 10.8056 8.38081 10.224 8.40015 9.627C8.39422 9.29842 8.46465 8.97294 8.60591 8.6762C8.74716 8.37947 8.95537 8.11958 9.21415 7.917C9.87359 7.42729 10.6637 7.14466 11.4842 7.105V6.005H12.4661V7.074C13.4889 7.10505 14.4965 7.32898 15.4361 7.734L14.7621 9.412C14.0285 9.10927 13.2529 8.92075 12.4621 8.853V10.969C13.1551 11.2129 13.822 11.5251 14.4531 11.901C14.8042 12.1209 15.1007 12.4177 15.3201 12.769C15.5112 13.1051 15.608 13.4865 15.6002 13.873ZM10.5581 9.627C10.5552 9.72432 10.5732 9.82114 10.611 9.91086C10.6488 10.0006 10.7055 10.0811 10.7772 10.147C10.9887 10.3241 11.2275 10.4659 11.4842 10.567V8.881C10.8675 8.97167 10.5588 9.22033 10.5581 9.627ZM13.4422 13.981C13.4427 13.8832 13.421 13.7866 13.3787 13.6984C13.3364 13.6103 13.2747 13.5328 13.1981 13.472C12.9746 13.2962 12.7284 13.1512 12.4661 13.041V14.827C13.1161 14.717 13.4415 14.435 13.4422 13.981Z\" fill=\"#5F6368\"/><path d=\"M5.34577 7.929L6.93177 2.237L1.13477 2.966\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.7889 23C9.34308 22.9539 6.98237 22.0939 5.08008 20.5558C3.17778 19.0178 1.84246 16.8895 1.28525 14.5075C0.728047 12.1255 0.98075 9.62575 2.00341 7.40347C3.02606 5.1812 4.76031 3.36322 6.93194 2.237\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.6539 16.071L17.0679 21.763L22.8649 21.034\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.2109 1C14.6568 1.04607 17.0175 1.90613 18.9198 3.44418C20.8221 4.98224 22.1574 7.11052 22.7146 9.49251C23.2718 11.8745 23.0191 14.3743 21.9965 16.5965C20.9738 18.8188 19.2396 20.6368 17.0679 21.763\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8187\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n selfie: '<svg id=\"selfie\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 1H2V4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 11V14H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 14H22V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 4V1H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13C9.239 13 7 10.761 7 8V7C7 4.239 9.239 2 12 2C14.761 2 17 4.239 17 7V8C17 10.761 14.761 13 12 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 21.805C22 20 20.795 18.426 19.055 17.945C17.316 17.464 14.89 17 12 17C9.11 17 6.684 17.464 4.945 17.945C3.205 18.427 2 20 2 21.805V23H22V21.805Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cartRefresh: '<svg id=\"cartRefresh\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8181)\"><path d=\"M1 1H4V16H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 23C7.10457 23 8 22.1046 8 21C8 19.8954 7.10457 19 6 19C4.89543 19 4 19.8954 4 21C4 22.1046 4.89543 23 6 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 23C22.1046 23 23 22.1046 23 21C23 19.8954 22.1046 19 21 19C19.8954 19 19 19.8954 19 21C19 22.1046 19.8954 23 21 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 4H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.126 4C14.57 2.275 16.136 1 18 1C19.48 1 20.772 1.804 21.464 2.999\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23.22 0.648998L22.792 5L18.522 4.061L23.22 0.648998Z\" fill=\"#5F6368\"/><path d=\"M21.8741 7C21.4301 8.725 19.8641 10 18.0001 10C16.5201 10 15.2281 9.196 14.5361 8.001\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.7798 10.351L13.2078 6L17.4778 6.939L12.7798 10.351Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8181\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n chart: '<svg id=\"chart\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16.6 18.5C15.2 20.6 12.7 22 10 22C5.6 22 2 18.4 2 14C2 9.6 5.6 6 10 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.9 20.8C21.2 18.9 22 16.5 22 14C22 7.4 16.6 2 10 2V14L19.9 20.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n tag:'<svg id=\"tag\" width=\"24\" height=\"24\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g id=\"Group\"><path id=\"Vector\" d=\"M13.242 20.414L20.414 13.242C20.5998 13.0563 20.7472 12.8358 20.8478 12.5931C20.9483 12.3503 21.0001 12.0902 21.0001 11.8275C21.0001 11.5648 20.9483 11.3046 20.8478 11.0619C20.7472 10.8192 20.5998 10.5987 20.414 10.413L11 1H1V11L10.413 20.415C10.5988 20.6007 10.8194 20.7481 11.0621 20.8485C11.3048 20.949 11.565 21.0007 11.8277 21.0006C12.0904 21.0005 12.3505 20.9486 12.5932 20.848C12.8359 20.7473 13.0563 20.5999 13.242 20.414Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M7 9C8.10457 9 9 8.10457 9 7C9 5.89543 8.10457 5 7 5C5.89543 5 5 5.89543 5 7C5 8.10457 5.89543 9 7 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n fork: '<svg id=\"fork\" width=\"24\" height=\"24\" viewBox=\"0 0 22 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M11 22V1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M4 9V15.681C4.00004 16.0723 4.1149 16.4551 4.33033 16.7818C4.54576 17.1085 4.85231 17.3648 5.212 17.519L8 18.714\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_3\" d=\"M18 6V13.681C18 14.0723 17.8851 14.4551 17.6697 14.7818C17.4542 15.1085 17.1477 15.3648 16.788 15.519L14 16.714\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_4\" d=\"M8 4L11 1L14 4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_5\" d=\"M1 12L4 9L7 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_6\" d=\"M15 9L18 6L21 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n addToCart: '<svg id=\"assToCart\" width=\"24\" height=\"24\" viewBox=\"0 0 23 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M6 22C6.55228 22 7 21.5523 7 21C7 20.4477 6.55228 20 6 20C5.44772 20 5 20.4477 5 21C5 21.5523 5.44772 22 6 22Z\" fill=\"#5F6368\"/><path id=\"Vector_2\" d=\"M20 22C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20C19.4477 20 19 20.4477 19 21C19 21.5523 19.4477 22 20 22Z\" fill=\"#5F6368\"/><path id=\"Vector_3\" d=\"M6 22C6.55228 22 7 21.5523 7 21C7 20.4477 6.55228 20 6 20C5.44772 20 5 20.4477 5 21C5 21.5523 5.44772 22 6 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_4\" d=\"M20 22C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20C19.4477 20 19 20.4477 19 21C19 21.5523 19.4477 22 20 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_5\" d=\"M17 6H22L20.322 14.392C20.135 15.327 19.314 16 18.361 16H7.751C6.749 16 5.901 15.258 5.769 14.264L4 1H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_6\" d=\"M4.80005 6H9.00005\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_7\" d=\"M13 2V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_8\" d=\"M16.462 9.309C16.385 9.122 16.202 9 16 9H10C9.79802 9 9.61502 9.122 9.53802 9.309C9.46102 9.496 9.50402 9.711 9.64602 9.854L12.646 12.854C12.744 12.952 12.872 13 13 13C13.128 13 13.256 12.951 13.354 12.854L16.354 9.854C16.497 9.711 16.54 9.496 16.462 9.309Z\" fill=\"#5F6368\"/></g></svg>',\r\n crown: '<svg id=\"crown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M1 14H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M23 3L18 7L12 1L6 7L1 3V16C1 16.5304 1.21071 17.0391 1.58579 17.4142C1.96086 17.7893 2.46957 18 3 18H21C21.5304 18 22.0391 17.7893 22.4142 17.4142C22.7893 17.0391 23 16.5304 23 16V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n logoWhatsapp: '<svg id=\"logoWhatsapp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path stroke-width=\"0\" d=\"M0.0537109 24L1.74142 17.8373C0.700401 16.0338 0.152611 13.9878 0.153461 11.8918C0.156091 5.33464 5.49279 0 12.0499 0C15.2323 0.00127 18.2192 1.23986 20.4652 3.48773C22.7113 5.73561 23.9476 8.7236 23.9463 11.9013C23.9437 18.4585 18.6065 23.7938 12.0501 23.7938H12.0452C10.0541 23.793 8.09776 23.2937 6.36018 22.3463L0.0537109 24ZM6.65235 20.1932L7.01342 20.4074C8.53152 21.3081 10.2718 21.7845 12.046 21.7852H12.05C17.4999 21.7852 21.9355 17.351 21.9377 11.9005C21.9388 9.25935 20.9112 6.77584 19.0444 4.90748C17.1776 3.03912 14.6949 2.00959 12.0539 2.00858C6.59989 2.00858 2.16421 6.44251 2.16203 11.8926C2.16127 13.7602 2.68404 15.5792 3.67381 17.153L3.90894 17.527L2.91003 21.1746L6.65235 20.1932Z\" fill=\"#5F6368\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.07685 6.92043C8.83559 6.34098 8.59052 6.41938 8.40806 6.4103C8.23488 6.40168 8.03652 6.39986 7.83836 6.39986C7.6402 6.39986 7.31818 6.47422 7.0457 6.77169C6.77324 7.06918 6.00537 7.7881 6.00537 9.25069C6.00537 10.7133 7.07048 12.1263 7.21911 12.3246C7.36772 12.523 9.31513 15.5244 12.297 16.8116C13.0061 17.1177 13.5598 17.3005 13.9915 17.4375C14.7036 17.6637 15.3516 17.6318 15.8638 17.5553C16.4349 17.47 17.6224 16.8364 17.8701 16.1423C18.1178 15.4481 18.1178 14.8532 18.0435 14.7292C17.9692 14.6053 17.7711 14.5309 17.4738 14.3822C17.1766 14.2334 15.7152 13.5145 15.4427 13.4154C15.1702 13.3162 14.9721 13.2666 14.7739 13.5641C14.5758 13.8616 14.0061 14.5309 13.8327 14.7292C13.6593 14.9276 13.4859 14.9524 13.1887 14.8036C12.8914 14.6549 11.9337 14.3411 10.7983 13.3287C9.91467 12.5408 9.31806 11.5676 9.14467 11.2702C8.97128 10.9727 9.12623 10.8118 9.27503 10.6637C9.40873 10.5306 9.57226 10.3166 9.72089 10.1431C9.8695 9.96958 9.91905 9.84563 10.0181 9.64733C10.1172 9.449 10.0677 9.27547 9.99335 9.12673C9.91903 8.978 9.32457 7.51538 9.07685 6.92043Z\" fill=\"#5F6368\"/></svg>',\r\n tagLoyalty: '<svg id=\"tagLoyalty\" width=\"24\" height=\"24\" viewBox=\"0 0 20 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M9 22H1V8L8 1L15 8V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M8 11C9.10457 11 10 10.1046 10 9C10 7.89543 9.10457 7 8 7C6.89543 7 6 7.89543 6 9C6 10.1046 6.89543 11 8 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_3\" d=\"M18.361 14.631C17.388 13.67 15.764 13.827 15 14.964C14.235 13.826 12.611 13.671 11.639 14.631C10.787 15.473 10.787 16.838 11.639 17.679L15 21L18.361 17.679C19.213 16.838 19.213 15.473 18.361 14.631Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n\r\n //Navigation\r\n slideRight: '<svg id=\"slideRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12H21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 20H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 4H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 17L22 12L17 7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n slideLeft: '<svg id=\"slideLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 4H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 20H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 7L2 12L7 17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmLeft: '<svg id=\"arrowSmLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 16L10 12L14 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmRight: '<svg id=\"arrowSmRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 8L14 12L10 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmDown: '<svg id=\"arrowSmDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 10L12 14L8 10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n caretSmUp: '<svg id=\"caretSmUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 14L12 10L16 14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlDown: '<svg id=\"ctrlDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 8L12 16L23 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlUp: '<svg id=\"ctrlUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23 16L12 8L1 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlRight: '<svg id=\"ctrlRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 1L16 12L8 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlLeft: '<svg id=\"ctrlLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 1L8 12L16 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowDown: '<svg id=\"arrowDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 2V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 15L12 22L5 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowUp: '<svg id=\"arrowUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 22V2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 9L12 2L19 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowRight: '<svg id=\"arrowRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12H22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5L22 12L15 19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowLeft: '<svg id=\"arrowLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 19L2 12L9 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>', \r\n doubleArrowLeft: '<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.389 9.389a0.55 0.55 0 0 0 0 -0.778L1.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.389 9.389a0.55 0.55 0 0 0 0 -0.778L5.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"\"/></svg>', \r\n doubleArrowRight: '<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" transform=\"matrix(-1,0,0,1,0,0)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.389 9.389a0.55 0.55 0 0 0 0 -0.778L1.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.389 9.389a0.55 0.55 0 0 0 0 -0.778L5.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"></path></svg>'\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { wappingIcons } from '../icons';\r\n\r\n@Component({\r\n selector: 'w-icons',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WIconsComponent implements OnInit, AfterViewInit{\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 constructor(private element: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.element.nativeElement.innerHTML = wappingIcons[this.name] || null;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if(this.width)\r\n svgElement.setAttribute('width', this.width.toString()); \r\n\r\n if(this.height)\r\n svgElement.setAttribute('height', this.height.toString());\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\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('stroke', fillColor);\r\n\r\n const fillAttribute = path.getAttribute('fill');\r\n if (fillAttribute) {\r\n path.setAttribute('fill', fillColor);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","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\"><rect width=\"163.424\" height=\"32\" fill=\"white\"/><g clip-path=\"url(#clip0_6230_1938)\"><path d=\"M26.26 4.78003C30.85 4.78003 34.84 7.21003 35.44 12.1H31.78C31.36 9.25003 28.81 7.84003 26.26 7.84003C21.7 7.84003 19.75 11.98 19.75 16C19.75 20.2 21.67 24.16 26.38 24.16C30.1 24.16 32.17 21.94 32.26 18.28H26.56V15.43H35.68V26.71H33.28L32.71 24.19C30.88 26.29 29.05 27.22 26.26 27.22C19.87 27.22 16 22.09 16 16C16 9.91003 19.87 4.78003 26.26 4.78003Z\" fill=\"black\"/><path d=\"M50.0737 4.78003C55.0237 4.78003 58.6837 7.57003 59.1637 12.1H55.4137C54.6637 9.25003 52.8937 7.84003 50.0737 7.84003C45.9937 7.84003 43.5637 11.23 43.5637 16C43.5637 20.74 45.9637 24.16 50.0737 24.16C53.1337 24.16 55.1437 22 55.5337 18.55H59.1937C58.8037 23.68 55.3537 27.22 50.0737 27.22C47.0437 27.22 44.5837 26.14 42.6637 24.04C40.7737 21.91 39.8137 19.21 39.8137 16C39.8137 9.88003 43.6237 4.78003 50.0737 4.78003Z\" fill=\"black\"/><path d=\"M61.9441 5.29003H66.4141L71.2741 12.85L76.3441 5.29003H80.5441L73.4641 15.61L81.0541 26.71H76.4941L71.1541 18.52L65.7241 26.71H61.4341L69.0241 15.61L61.9441 5.29003Z\" fill=\"black\"/></g><rect width=\"30\" height=\"1\" transform=\"matrix(0 -1 1 0 89.0542 31)\" fill=\"black\"/><g clip-path=\"url(#clip1_6230_1938)\"><path d=\"M100.75 3.02393C101.974 3.02393 102.926 3.69593 103.134 4.91993H102.59C102.518 4.21593 101.782 3.48793 100.75 3.48793C99.2382 3.48793 98.5982 4.75193 98.5982 5.99993C98.5982 7.26393 99.2462 8.51193 100.75 8.51193C101.926 8.51193 102.726 7.73593 102.726 6.46393V6.41593H100.782V5.95193H103.206V8.85593H102.814L102.742 7.81593H102.726C102.374 8.56793 101.654 8.97593 100.75 8.97593C98.9822 8.97593 98.0542 7.60793 98.0542 5.99993C98.0542 4.43193 98.9502 3.02393 100.75 3.02393Z\" fill=\"black\"/><path d=\"M104.576 3.14393H105.12V8.39193H108.32V8.85593H104.576V3.14393Z\" fill=\"black\"/><path d=\"M111.585 3.02393C113.361 3.02393 114.273 4.41593 114.273 5.99993C114.273 7.54393 113.393 8.97593 111.585 8.97593C109.801 8.97593 108.889 7.59193 108.889 5.99993C108.889 4.42393 109.793 3.02393 111.585 3.02393ZM109.433 5.99993C109.433 7.25593 110.081 8.51193 111.585 8.51193C113.073 8.51193 113.729 7.26393 113.729 5.99993C113.729 4.75993 113.097 3.48793 111.577 3.48793C110.137 3.48793 109.433 4.67193 109.433 5.99993Z\" fill=\"black\"/><path d=\"M115.442 3.14393H117.858C118.946 3.14393 119.69 3.56793 119.69 4.53593C119.69 5.12793 119.322 5.67993 118.698 5.82393V5.83993C119.434 5.93593 119.906 6.48793 119.906 7.23193C119.906 8.28793 119.186 8.85593 117.866 8.85593H115.442V3.14393ZM115.986 5.64793H117.866C118.658 5.64793 119.146 5.26393 119.146 4.67993C119.146 3.95993 118.706 3.60793 117.85 3.60793H115.986V5.64793ZM115.986 8.39193H117.866C118.826 8.39193 119.362 8.03193 119.362 7.21593C119.362 6.48793 118.826 6.11193 117.858 6.11193H115.986V8.39193Z\" fill=\"black\"/><path d=\"M122.77 3.14393H123.378L125.618 8.85593H125.034L124.338 7.07993H121.738L121.05 8.85593H120.466L122.77 3.14393ZM123.05 3.68793L121.906 6.61593H124.154L123.05 3.68793Z\" fill=\"black\"/><path d=\"M126.457 3.14393H127.001V8.39193H130.201V8.85593H126.457V3.14393Z\" fill=\"black\"/><path d=\"M100.75 13.0239C101.87 13.0239 102.902 13.7119 103.046 14.8719H102.502C102.31 13.9999 101.59 13.4879 100.75 13.4879C99.2542 13.4879 98.5982 14.7279 98.5982 15.9999C98.5982 17.2239 99.2222 18.5119 100.75 18.5119C101.742 18.5119 102.47 17.7679 102.582 16.6799H103.126C102.974 18.1199 102.054 18.9759 100.75 18.9759C98.9742 18.9759 98.0542 17.5999 98.0542 15.9999C98.0542 14.4479 98.9342 13.0239 100.75 13.0239Z\" fill=\"black\"/><path d=\"M104.223 13.1439H104.767V16.6879C104.767 17.8399 105.239 18.5119 106.439 18.5119C107.591 18.5119 108.119 17.9119 108.119 16.6799V13.1439H108.663V16.7839C108.663 18.1199 107.903 18.9759 106.439 18.9759C104.943 18.9759 104.223 18.0719 104.223 16.7839V13.1439Z\" fill=\"black\"/><path d=\"M111.932 13.0239C113.14 13.0239 114.052 13.6719 114.052 14.7999H113.508C113.468 13.9519 112.788 13.4879 111.94 13.4879C111.164 13.4879 110.516 13.8079 110.516 14.6239C110.516 15.2159 110.996 15.3999 111.316 15.4799L112.708 15.8239C113.812 16.0959 114.252 16.5839 114.252 17.3439C114.252 17.9039 113.948 18.9759 112.068 18.9759C110.66 18.9759 109.788 18.3279 109.788 17.1199V16.9759H110.332V17.0239C110.332 18.0719 111.044 18.5119 112.18 18.5119C112.828 18.5119 113.708 18.1679 113.708 17.3519C113.708 16.8319 113.308 16.5119 112.564 16.3279L111.26 16.0079C110.412 15.7999 109.972 15.3999 109.972 14.6319C109.972 13.9839 110.42 13.0239 111.932 13.0239Z\" fill=\"black\"/><path d=\"M114.819 13.1439H119.347V13.6079H117.355V18.8559H116.811V13.6079H114.819V13.1439Z\" fill=\"black\"/><path d=\"M122.592 13.0239C124.368 13.0239 125.28 14.4159 125.28 15.9999C125.28 17.5439 124.4 18.9759 122.592 18.9759C120.808 18.9759 119.896 17.5919 119.896 15.9999C119.896 14.4239 120.8 13.0239 122.592 13.0239ZM120.44 15.9999C120.44 17.2559 121.088 18.5119 122.592 18.5119C124.08 18.5119 124.736 17.2639 124.736 15.9999C124.736 14.7599 124.104 13.4879 122.584 13.4879C121.144 13.4879 120.44 14.6719 120.44 15.9999Z\" fill=\"black\"/><path d=\"M126.434 13.1439H127.234L129.21 18.1519L131.178 13.1439H131.978V18.8559H131.434V13.9199H131.418L129.466 18.8559H128.954L126.994 13.9199H126.978V18.8559H126.434V13.1439Z\" fill=\"black\"/><path d=\"M133.434 13.1439H137.378V13.6079H133.978V15.6719H137.162V16.1359H133.978V18.3919H137.418V18.8559H133.434V13.1439Z\" fill=\"black\"/><path d=\"M138.496 13.1439H141.096C142.12 13.1439 142.848 13.6479 142.848 14.6319C142.848 15.3919 142.44 15.9439 141.736 16.0879V16.1039C142.632 16.2239 142.72 16.9359 142.744 17.5359C142.76 17.9279 142.784 18.6079 143 18.8559H142.4C142.28 18.6719 142.264 18.1919 142.24 17.8079C142.208 17.2479 142.12 16.8879 141.928 16.6399C141.752 16.4159 141.488 16.3199 141.184 16.3199H139.04V18.8559H138.496V13.1439ZM139.04 15.8559H141.08C141.72 15.8559 142.304 15.4479 142.304 14.7439C142.304 14.0079 141.856 13.6079 141.08 13.6079H139.04V15.8559Z\" fill=\"black\"/><path d=\"M98.3262 23.1439H102.27V23.6079H98.8702V25.6719H102.054V26.1359H98.8702V28.3919H102.31V28.8559H98.3262V23.1439Z\" fill=\"black\"/><path d=\"M102.836 23.1439H103.476L105.092 25.5359L106.764 23.1439H107.372L105.42 25.9279L107.484 28.8559H106.828L105.092 26.3359L103.332 28.8559H102.716L104.772 25.9119L102.836 23.1439Z\" fill=\"black\"/><path d=\"M108.302 23.1439H110.846C111.83 23.1439 112.534 23.7119 112.534 24.7759C112.534 25.8639 111.798 26.4079 110.846 26.4079H108.846V28.8559H108.302V23.1439ZM108.846 25.9439H110.726C111.47 25.9439 111.99 25.5759 111.99 24.7759C111.99 24.0639 111.574 23.6079 110.71 23.6079H108.846V25.9439Z\" fill=\"black\"/><path d=\"M113.661 23.1439H117.605V23.6079H114.205V25.6719H117.389V26.1359H114.205V28.3919H117.645V28.8559H113.661V23.1439Z\" fill=\"black\"/><path d=\"M118.723 23.1439H121.323C122.347 23.1439 123.075 23.6479 123.075 24.6319C123.075 25.3919 122.667 25.9439 121.963 26.0879V26.1039C122.859 26.2239 122.947 26.9359 122.971 27.5359C122.987 27.9279 123.011 28.6079 123.227 28.8559H122.627C122.507 28.6719 122.491 28.1919 122.467 27.8079C122.435 27.2479 122.347 26.8879 122.155 26.6399C121.979 26.4159 121.715 26.3199 121.411 26.3199H119.267V28.8559H118.723V23.1439ZM119.267 25.8559H121.307C121.947 25.8559 122.531 25.4479 122.531 24.7439C122.531 24.0079 122.083 23.6079 121.307 23.6079H119.267V25.8559Z\" fill=\"black\"/><path d=\"M124.419 23.1439H124.963V28.8559H124.419V23.1439Z\" fill=\"black\"/><path d=\"M126.473 23.1439H130.417V23.6079H127.017V25.6719H130.201V26.1359H127.017V28.3919H130.457V28.8559H126.473V23.1439Z\" fill=\"black\"/><path d=\"M131.527 23.1439H132.135L135.463 27.9759H135.479V23.1439H136.023V28.8559H135.415L132.087 24.0239H132.071V28.8559H131.527V23.1439Z\" fill=\"black\"/><path d=\"M139.912 23.0239C141.032 23.0239 142.064 23.7119 142.208 24.8719H141.664C141.472 23.9999 140.752 23.4879 139.912 23.4879C138.416 23.4879 137.76 24.7279 137.76 25.9999C137.76 27.2239 138.384 28.5119 139.912 28.5119C140.904 28.5119 141.632 27.7679 141.744 26.6799H142.288C142.136 28.1199 141.216 28.9759 139.912 28.9759C138.136 28.9759 137.216 27.5999 137.216 25.9999C137.216 24.4479 138.096 23.0239 139.912 23.0239Z\" fill=\"black\"/><path d=\"M143.441 23.1439H147.385V23.6079H143.985V25.6719H147.169V26.1359H143.985V28.3919H147.425V28.8559H143.441V23.1439Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_6230_1938\"><rect width=\"65.0541\" height=\"22.44\" fill=\"white\" transform=\"translate(16 4.78003)\"/></clipPath><clipPath id=\"clip1_6230_1938\"><rect width=\"49.3704\" height=\"25.952\" fill=\"white\" transform=\"translate(98.0542 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 `,\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WLogosComponent implements OnInit, AfterViewInit{\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 constructor(private element: ElementRef) { }\r\n \r\n ngOnInit(): void {\r\n this.element.nativeElement.innerHTML = wappingLogos[this.name] || null; \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if(this.width)\r\n svgElement.setAttribute('width', this.width.toString()); \r\n\r\n if(this.height)\r\n svgElement.setAttribute('height', this.height.toString());\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\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 = true;\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 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","<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 (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 (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 [disabled]=\"disabled\" [(ngModel)]=\"ngModelValue\" (onChange)=\"onOptionSelected()\" [showClear]=\"showClear\"\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 [disabled]=\"disabled\" [(ngModel)]=\"ngModelValue\" (onChange)=\"onOptionSelected()\" [showClear]=\"showClear\"\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}\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}\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}\r\n\r\nexport enum AddressEnum{\r\n Country = 1,\r\n AreaLevel1 = 2,\r\n AreaLevel2 = 3,\r\n Locality = 4,\r\n PostalCode = 5\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 { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { WDatePipeFormatType } from '../models/enums.model';\r\n\r\n@Pipe({\r\n name: 'wappDate'\r\n})\r\nexport class WDatePipe implements PipeTransform {\r\n\r\n transform(date: Date | number | string, format?: WDatePipeFormatType | \"\", locale?: any) {\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\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}","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 { TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\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 selectedElements: any[] = [];\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('rowsPerPage') rowsPerPage: 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\r\n @ViewChild('filter') filter!: ElementRef;\r\n @ViewChild('table') dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n ) { }\r\n\r\n ngOnInit(): void { }\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 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 }\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.selectAll = true;\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\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 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 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.customButtonConfig?.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","<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]=\"true\" [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]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]\"\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | currency }}\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)=\"viewElement(element)\" class=\"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.Boolean\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"viewElement(element)\" class=\"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.Date\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate : wappDateFormat.G }}\r\n </td>\r\n </ng-template>\r\n <td *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton || wappTableObject?.hasEditButton || wappTableObject?.hasCopyButton || wappTableObject?.hasDeleteButton || wappTableObject?.hasViewButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton && !wappTableObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.disableProperty\" \r\n pButton pRipple (click)=\"customElement(element)\" [disabled]=\"readProperty(element, wappTableObject.customButtonConfig?.disableProperty!)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <span *ngIf=\"wappTableObject?.hasDeleteButton\">\r\n <button *ngIf=\"wappTableObject.disableDeleteProperty; else noDisableDelete\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <ng-template #noDisableDelete>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && !wappTableObject.disableDeleteProperty\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </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=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","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 { TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\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\r\n @ViewChild('table', { static: false }) dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\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 }\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\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 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.customButtonConfig?.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","<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 (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]=\"true\"\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></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.customButtonConfig?.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.customButtonConfig?.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\">\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | currency }}\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n <w-badge *ngIf=\"!coloredBadge || (coloredBadge && !readProperty(element, wappTableLazyLoadingObject.coloredBadge?.coloredBadgeProperty!)); else coloredBadge\" \r\n [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"'info'\">\r\n </w-badge> \r\n <ng-template #coloredBadge>\r\n <w-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"wappTableLazyLoadingObject.coloredBadge?.color!\"></w-badge> \r\n </ng-template>\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)=\"viewElement(element)\" class=\"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.Date\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate : wappDateFormat.G }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton && !wappTableLazyLoadingObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton && wappTableLazyLoadingObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.customButtonConfig?.disableProperty!)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\">\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableDeleteProperty; else noDisableDelete\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <ng-template #noDisableDelete>\r\n <button pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </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=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <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 \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\">Wapping Networks S.L. © {{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 = true;\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 \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\" [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\r\n}\r\n","<div class=\"w-panel-title w-panel-title-text\">{{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 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\">\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\" [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\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})\r\nexport class WHeaderPanelComponent {\r\n @Input('showButtonBack') showButtonBack: boolean = false;\r\n @Input(\"backToCustomRoute\") public backToCustomRoute!: string;\r\n @Output('onClickButtonBack') onClcikButtonBack: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router\r\n ){}\r\n\r\n onButtonBack(event: any){\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","<div class=\"w-header-panel flex flex-row-reverse flex-wrap\" [ngClass]=\"{'justify-content-between' : showButtonBack}\">\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 *ngIf=\"showButtonBack\" class=\"flex\">\r\n <w-button class=\"flex align-items-center justify-content-center\" type=\"text\" icon=\"pi-arrow-left\" (onClick)=\"onButtonBack($event)\"></w-button>\r\n </div>\r\n</div>\r\n","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('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 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 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 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 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 \"\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 \"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{maxErrorDescription}}</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 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 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.qbfilterField.sqlGetListValues).pipe(\r\n map(values => {\r\n const arrayOfValues = Object.keys(values).map((key: any) => ({\r\n name: values[key],\r\n value: +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, sqlValueList: string): Observable<string[]> {\r\n let url = `${commonDataApiUrl}/fields/${sqlValueList}/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 { 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\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","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 \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>","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=\"right\" \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=\"right\" \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 @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('minDate') minDate!: Date;\r\n @Input('maxDate') maxDate!: Date;\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\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\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\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\" class=\"w-edit-calendar-styles 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-calendar [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched}\"\r\n [ngClass]=\"{'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium)}\"\r\n appendTo=\"body\"\r\n inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\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 (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]=\"{'w-edit-calendar-medium-display-block' : displayInlineBlock}\">\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 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 (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 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()\" [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()\" [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()\" [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()\" [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()\" [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\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 };\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')) {\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 defaultValue: 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);\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);\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 initQueryBuilder(filterEntities: QbFilterEntity[]) {\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).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 0;\r\n }\r\n if(type == this.qbDataTypeEnum.BooleanSelect) {\r\n return 0;\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 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}\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=\"flex justify-content-end button-gap\">\r\n <w-button [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-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 <div *ngIf=\"!isAdvancedSearch; else advancedView\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n </div>\r\n <ng-template #advancedView>\r\n <ng-container *ngTemplateOutlet=\"advanced\"></ng-container>\r\n </ng-template>\r\n\r\n <div class=\"flex justify-content-end button-gap\" [class.pt-3]=\"isAdvancedSearch\">\r\n <w-button [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button [label]=\"translationsObject.searchButtonLabel\" 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 [label]=\"translationsObject.advancedSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <div 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-4 text-left 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-edit-calendar\" style=\"width: 100%;\">\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\" [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-basic-query-builder-input-width\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\" w-filter-panel-basic-query-builder-input-width 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-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 <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\" w-filter-panel-basic-query-builder-input-width 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 </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <input class=\" w-filter-panel-basic-query-builder-input-width 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 </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 </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 class=\"mb-2\" [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <query-builder #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 <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\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 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\">\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 <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 </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"query-builder-field-width\">\r\n <p-dropdown class=\"field-gap 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 <!-- <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=\"query-builder-operator-width\">\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=\"query-builder-input-width\">\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\"></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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\r\n <p-dropdown 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 </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=\"query-builder-input-width 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=\"query-builder-input-width\">\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 <input class=\"field-gap query-builder-input-width 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 </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=\"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.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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\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 </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 [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 mb-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 *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 <p-dropdown class=\"mr-3 w-edit-select-small\" *ngIf=\"filterPanelObject.enityMode\" 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\">\r\n <span class=\"query-builder-field-width\">\r\n <p-dropdown class=\"mr-3 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=\"query-builder-operator-width\">\r\n <p-dropdown class=\"mr-3 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=\"mr-3\" 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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\r\n <p-inputNumber class=\"mr-3\" [(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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\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 <input class=\"mr-3 query-builder-input-width w-edit-input-text-small-height wapp-input\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\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 mb-3\">\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() {\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=\"png\"\r\n [roundCropper]=\"roundedCropper\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded()\"\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 { AfterViewInit, 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\nimport { WIconsComponent } from '../../icons/wapping-icons/w-icons.component';\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 }\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\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 \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\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true; \r\n this.updateImage(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.isDeletingMultiMode = false;\r\n this.onDeleteImage.emit(image);\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.onDeleteImage.emit(image);\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 if((img.base64 != undefined)){\r\n if(img.base64 == image.base64){\r\n return img.index; \r\n }\r\n }else if(img[this.identificatorName] !== image[this.identificatorName]){\r\n return img.index; \r\n }\r\n return -1; \r\n });\r\n\r\n if(imageIndex+1 == this.imagesAlreadyUploaded.length){\r\n this.activeIndexGallery = imageIndex-1; \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 return this.imagesAlreadyUploaded.indexOf(img);\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 (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; /* width: 300px; height: 300px; */\">\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-column justify-content-center align-items-center\" style=\"cursor: pointer;\"\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 <span class=\"textSoftColor text-center\">\r\n {{imageUploadConfig.contentSubheaderLabel}}\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 [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;\">\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\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-gile-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\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-gile-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-column justify-content-center align-items-center\" \r\n style=\"cursor: pointer;\" \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 <span class=\"textSoftColor text-center\">\r\n {{imageUploadConfig.contentSubheaderLabel}}\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('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 tokenType: models.TokenType.Aad,\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 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('styleClass') styleClass: string = \"w-full md:w-4 lg:w-4\";\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\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\" [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\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\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]=\"true\"\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\" [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.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.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) | currency }}\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 {{ 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 {{ 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 {{ 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 {{ 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 {{ 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=\"flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\r\n </span>\r\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\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]=\"true\"\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=\"flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\r\n </span>\r\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\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>","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 [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 [(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\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","\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\r\n <p-checkbox\r\n [binary]=\"true\"\r\n class=\"flex align-items-center\"\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 class=\"w-edit-checkbox-small-label\" [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></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 class=\"w-edit-checkbox-small-label\" [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></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 { AddressMaps } from 'wapping-components';\r\nimport { WAddress } from '../../shared/models/w-address.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<AddressMaps>();\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: AddressMaps = {} as AddressMaps;\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(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 { MenuItem, MessageService } from 'primeng/api';\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 activeIndex: number = 0;\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('confirmButtonLabel') confirmButtonLabel!: string;\r\n @Input('confirmButtonIcon') confirmButtonIcon!: string;\r\n @Input('secondaryConfirmButtonLabel') secondaryConfirmButtonLabel!: string;\r\n @Input('secondaryConfirmButtonIcon') secondaryConfirmButtonIcon!: string;\r\n @Input('isReadOnly') isReadOnly: boolean = true;\r\n @Input('formGroup') formGroup!: FormGroup;\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(public messageService: MessageService) {}\r\n\r\n onActiveIndexChange(event:any) {\r\n this.activeIndex = event;\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\" [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\" [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-arrow-left'\" \r\n type=\"secondary\" \r\n [label]=\"previousBtnLabel\" \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 [label]=\"nextBtnLabel\" \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]=\"formGroup && !formGroup.valid\" \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]=\"formGroup && !formGroup.valid\" \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 { Component, Input } from '@angular/core';\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 {\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 \r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" styleClass=\"tabview-custom\">\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-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\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-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\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-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\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-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\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-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\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-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\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-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\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-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\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-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\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-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\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\r\n checkEmptyValue(value: any){\r\n if(value == null || value == \"\" || value == undefined){\r\n return '-'; \r\n }else{\r\n return value; \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\">\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 <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\">\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.css']\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","<div class=\"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 m-2\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-chevron-down\" class=\"p-button-rounded p-button-text\"></button>\r\n <p-selectButton [options]=\"stateOptions\" optionLabel=\"label\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2 gap-3\">\r\n <p-button [label]=\"rule\" styleClass=\"p-button-outlined\" icon=\"pi pi-plus\"></p-button>\r\n <p-button [label]=\"ruleSet\" styleClass=\"p-button-outlined\" icon=\"pi pi-plus\"></p-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=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"4rem\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2\">\r\n <p-button styleClass=\"p-button-outlined p-button-danger\" icon=\"pi pi-times\"></p-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=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"4rem\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2\">\r\n <p-button styleClass=\"p-button-outlined p-button-danger\" icon=\"pi pi-times\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\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 { 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 value!: number[];\r\n @Input('translations') translations!: string[];\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: 7, 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]=\"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 { 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('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\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 (onSelect)=\"onValue($event)\" \r\n dateFormat=\"dd/MM\" \r\n [dataType]=\"dataType\">\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 dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","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\n\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\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 { 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\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 WSummaryPipe,\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 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 ],\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 ],\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 WSummaryPipe,\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 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 ],\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/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\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\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\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.WInputLabelComponent","i3.WButtonComponent","i4","i5","i6","i8","i9","i10","i11","i12.WBadgeComponent","i13.WDatePipe","i12","i13.WBadgeComponent","i14.WDatePipe","i4.WButtonComponent","i5.WContainerComponent","i3.WIconsComponent","i4.WLogosComponent","i4.WPanelTitleComponent","i5.WPanelSubtitleComponent","i1.ApiService","i4.WEditSelectComponent","i5.WEditMultiselectComponent","i2.ApiService","i3.SessionStorageService","i14.WButtonComponent","i15.WListFieldComponent","i16.WViewCardTitleTextComponent","i17.WToggleButtonComponent","i18.WSelectButtonComponent","i19.WEditCalendarComponent","i20.WAddressFieldComponent","i2.ModalService","i7","i9.WButtonComponent","i9.WIconsComponent","i10.WButtonComponent","i11.WInputLabelComponent","i4.WIconsComponent","i11.WBadgeComponent","i12.WDatePipe","i5.WIconsComponent","i6.WInputLabelComponent","i5.WPanelComponent","i6.WBodyGridComponent","i5.WButtonComponent","i2.WInputLabelComponent","i4.WPanelComponent","i3.WPanelComponent","i4.WBodyContainerComponent","i5.WHeaderPanelComponent","i6.WSkeletonInputGenericComponent","i2.WPanelComponent","i3.WBodyContainerComponent","i4.WHeaderPanelComponent","i5.WPanelGridComponent","i2.WIconsComponent","i3.WInputLabelComponent","i2.WPanelGridComponent","i3.WSkeletonInputGenericComponent","i1.WPanelGridComponent","i2.WSkeletonInputGenericComponent","i2.WBadgeComponent"],"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/icons.ts","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.ts","../../../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/misc/w-badge/w-badge.component.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-date.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/shared/services/session-storage.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/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/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/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/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}\r\n\r\nexport enum IconType{\r\n pIcon = 0, \r\n urlIcon = 1, \r\n wIcon = 2\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\" 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('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\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=\"right\" \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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.medium)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n styleClass=\"w-button-medium 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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.large)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n styleClass=\"w-button-large 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 </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=\"right\" \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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.medium)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-medium-tertiary' : 'w-button-medium 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 </p-button>\r\n <p-button *ngIf=\"size == getSizeName(sizeType.large)\" \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-large-tertiary' : 'w-button-large 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 </p-button>\r\n </ng-container>\r\n <ng-template #buttonText>\r\n <p-button \r\n label=\"{{label}}\" \r\n [icon]=\"getIcon()\" \r\n iconPos=\"right\" \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 </p-button>\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>","export const wappingIcons: any = {\r\n //General\r\n translation: '<svg id=\"translation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 6V2.773C13 2.30277 12.8132 1.8518 12.4807 1.5193C12.1482 1.1868 11.6972 1 11.227 1H2.773C2.30277 1 1.8518 1.1868 1.5193 1.5193C1.1868 1.8518 1 2.30277 1 2.773V10.227C1 10.6972 1.1868 11.1482 1.5193 11.4807C1.8518 11.8132 2.30277 12 2.773 12H3V14L6 12H8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.2859 9H12.7139C12.2438 9.01644 11.7994 9.21862 11.4781 9.56223C11.1568 9.90583 10.9848 10.3628 10.9999 10.833V18.167C10.9848 18.6372 11.1568 19.0942 11.4781 19.4378C11.7994 19.7814 12.2438 19.9836 12.7139 20H17.9999L20.9999 22V20H21.2859C21.7561 19.9836 22.2005 19.7814 22.5218 19.4378C22.8431 19.0942 23.0151 18.6372 22.9999 18.167V10.833C23.0151 10.3628 22.8431 9.90583 22.5218 9.56223C22.2005 9.21862 21.7561 9.01644 21.2859 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10.2871 5.11299C9.97914 5.08499 9.70614 5.07099 9.28714 5.07099C9.18785 5.54042 9.02784 5.99491 8.81114 6.42299C8.60386 6.83394 8.34254 7.21532 8.03414 7.55699C8.77304 7.98948 9.58755 8.27728 10.4341 8.40499C10.1343 8.79359 9.90024 9.22869 9.74114 9.69299C8.78725 9.42381 7.88678 8.99252 7.07914 8.41799C6.23098 9.00461 5.28823 9.44097 4.29214 9.70799C4.1418 9.25859 3.91404 8.83894 3.61914 8.46799C4.49496 8.30917 5.33629 7.99849 6.10514 7.54999C5.75159 7.16324 5.44912 6.73273 5.20514 6.26899C5.00264 5.88698 4.84075 5.48478 4.72214 5.06899C4.30914 5.06899 4.07014 5.08299 3.72214 5.11099V3.84499C4.05955 3.88126 4.39881 3.89762 4.73814 3.89399H6.28014V3.47399C6.28156 3.32825 6.26748 3.18276 6.23814 3.03999H7.64614C7.61797 3.18058 7.6039 3.32362 7.60414 3.46699V3.89399H9.27114C9.61048 3.89778 9.94974 3.88141 10.2871 3.84499V5.11299ZM6.06314 5.07099C6.24411 5.71024 6.58123 6.29444 7.04414 6.77099C7.47028 6.2843 7.7707 5.70062 7.91914 5.07099H6.06314Z\" fill=\"#5F6368\"/><path d=\"M18.3689 17.451L18.0519 16.251H15.9649L15.6399 17.451H13.7329L15.8289 11H18.1449L20.2669 17.451H18.3689ZM17.6919 14.823L17.4149 13.769C17.3482 13.5343 17.2699 13.231 17.1799 12.859C17.0899 12.487 17.0292 12.2203 16.9979 12.059C16.9709 12.208 16.9189 12.459 16.8419 12.797C16.7649 13.135 16.5919 13.815 16.3249 14.823H17.6919Z\" fill=\"#5F6368\"/></svg>',\r\n globe: '<svg id=\"globe\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_270_10781)\"><path d=\"M12 1V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C15.0376 23 17.5 18.0751 17.5 12C17.5 5.92487 15.0376 1 12 1C8.96243 1 6.5 5.92487 6.5 12C6.5 18.0751 8.96243 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_270_10781\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n edit: '<svg id=\"edit\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9 5H4C2.895 5 2 5.895 2 7V20C2 21.105 2.895 22 4 22H17C18.105 22 19 21.105 19 20V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 5L19 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 16L7 17L8 13L18.293 2.70701C18.684 2.31601 19.317 2.31601 19.707 2.70701L21.293 4.29301C21.684 4.68401 21.684 5.31701 21.293 5.70701L11 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n calendar: '<svg id=\"calendar\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 12H11V13H13V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 17H5V18H7V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 17H11V18H13V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 12H17V13H19V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" fill=\"#5F6368\"/><path d=\"M13 12H11V13H13V12Z\" fill=\"#5F6368\"/><path d=\"M7 17H5V18H7V17Z\" fill=\"#5F6368\"/><path d=\"M13 17H11V18H13V17Z\" fill=\"#5F6368\"/><path d=\"M19 12H17V13H19V12Z\" fill=\"#5F6368\"/><path d=\"M1 8H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 4H3C1.89543 4 1 4.89543 1 6V20C1 21.1046 1.89543 22 3 22H21C22.1046 22 23 21.1046 23 20V6C23 4.89543 22.1046 4 21 4Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n info: '<svg id=\"info\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_252_9300)\"><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 11V17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 8C12.5523 8 13 7.55228 13 7C13 6.44772 12.5523 6 12 6C11.4477 6 11 6.44772 11 7C11 7.55228 11.4477 8 12 8Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_252_9300\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n connection: '<svg id=\"connection\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9076)\"><path d=\"M8.6001 10.2L15.4001 6.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.6001 13.7L15.4001 17.1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 16C7.20914 16 9 14.2091 9 12C9 9.79086 7.20914 8 5 8C2.79086 8 1 9.79086 1 12C1 14.2091 2.79086 16 5 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 9C21.2091 9 23 7.20914 23 5C23 2.79086 21.2091 1 19 1C16.7909 1 15 2.79086 15 5C15 7.20914 16.7909 9 19 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 23C21.2091 23 23 21.2091 23 19C23 16.7909 21.2091 15 19 15C16.7909 15 15 16.7909 15 19C15 21.2091 16.7909 23 19 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9076\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n filter: '<svg id=\"filter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9076)\"><path d=\"M8.6001 10.2L15.4001 6.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.6001 13.7L15.4001 17.1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 16C7.20914 16 9 14.2091 9 12C9 9.79086 7.20914 8 5 8C2.79086 8 1 9.79086 1 12C1 14.2091 2.79086 16 5 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 9C21.2091 9 23 7.20914 23 5C23 2.79086 21.2091 1 19 1C16.7909 1 15 2.79086 15 5C15 7.20914 16.7909 9 19 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 23C21.2091 23 23 21.2091 23 19C23 16.7909 21.2091 15 19 15C16.7909 15 15 16.7909 15 19C15 21.2091 16.7909 23 19 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9076\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n support: '<svg id=\"support\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9074)\"><path d=\"M19.7776 4.222L15.5356 8.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.7776 19.778L15.5356 15.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.22168 19.778L8.46368 15.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.22168 4.222L8.46368 8.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.7777 19.7781C24.0734 15.4824 24.0734 8.51763 19.7777 4.2219C15.4819 -0.0738257 8.51719 -0.0738257 4.22146 4.2219C-0.0742669 8.51763 -0.0742669 15.4824 4.22146 19.7781C8.51719 24.0738 15.4819 24.0738 19.7777 19.7781Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.5352 15.5355C17.4878 13.5829 17.4878 10.4171 15.5352 8.4645C13.5826 6.5119 10.4168 6.5119 8.46421 8.4645C6.51161 10.4171 6.51161 13.5829 8.46421 15.5355C10.4168 17.4881 13.5826 17.4881 15.5352 15.5355Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9074\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n delete: '<svg id=\"delete\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9073)\"><path d=\"M20 9V21C20 21.5304 19.7893 22.0391 19.4142 22.4142C19.0391 22.7893 18.5304 23 18 23H6C5.46957 23 4.96086 22.7893 4.58579 22.4142C4.21071 22.0391 4 21.5304 4 21V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 12V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 5V1H16V5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9073\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n searchContent: '<svg id=\"searchContent\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23.0001 19L18.8281 14.828\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 15H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 21H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 3H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 16C18.2091 16 20 14.2091 20 12C20 9.79086 18.2091 8 16 8C13.7909 8 12 9.79086 12 12C12 14.2091 13.7909 16 16 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n addNotification: '<svg id=\"addNotification\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 14V20C19 21.105 18.105 22 17 22H4C2.895 22 2 21.105 2 20V7C2 5.895 2.895 5 4 5H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n launch: '<svg id=\"launch\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11 13L22 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 2H22V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4H4C3.46957 4 2.96086 4.21071 2.58579 4.58579C2.21071 4.96086 2 5.46957 2 6V20C2 20.5304 2.21071 21.0391 2.58579 21.4142C2.96086 21.7893 3.46957 22 4 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n swapVertical: '<svg id=\"swapVertical\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 17V2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 6L7 2L11 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 6V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 18L17 22L21 18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n picture: '<path d=\"M3 23L7 15L11 18L17 10L23 23H3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 9C10.6569 9 12 7.65685 12 6C12 4.34315 10.6569 3 9 3C7.34315 3 6 4.34315 6 6C6 7.65685 7.34315 9 9 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n account: '<svg id=\"account\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9067)\"><path d=\"M1 23C1 17.477 5.477 13 11 13H13C18.523 13 23 17.477 23 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13C15.3137 13 18 10.3137 18 7C18 3.68629 15.3137 1 12 1C8.68629 1 6 3.68629 6 7C6 10.3137 8.68629 13 12 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9067\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n comment: '<svg id=\"comment\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.4 16.8C22 15.2 23 13.2 23 11C23 6 18.1 2 12 2C5.9 2 1 6 1 11C1 16 5.9 20 12 20C13.1 20 14.1 19.9 15.1 19.6L21 22L20.4 16.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 13H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n bell: '<svg id=\"bell\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 11V8C19 6.14348 18.2625 4.36301 16.9497 3.05025C15.637 1.7375 13.8565 1 12 1C10.1435 1 8.36301 1.7375 7.05025 3.05025C5.7375 4.36301 5 6.14348 5 8V11C5 14.3 2 15.1 2 17C2 18.7 5.9 20 12 20C18.1 20 22 18.7 22 17C22 15.1 19 14.3 19 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 22C10.989 22 10.039 21.966 9.14502 21.9C9.33561 22.508 9.71532 23.0392 10.2288 23.4164C10.7424 23.7936 11.3629 23.997 12 23.997C12.6372 23.997 13.2577 23.7936 13.7712 23.4164C14.2847 23.0392 14.6644 22.508 14.855 21.9C13.961 21.966 13.011 22 12 22Z\" fill=\"#5F6368\"/></svg>', \r\n timesSmall: '<svg id=\"timesSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 8L8 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 16L8 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n minusSmall: '<svg id=\"minusSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n checkSmall: '<svg id=\"checkSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 12L10 16L18 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n checkSmallAlt: '<svg id=\"checkSmallAlt\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.66666 5.99998L5 8.99998L9.33333 3.33331\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',\r\n plusSmall: '<svg id=\"plusSmall\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 7V17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n viewOff: '<svg id=\"viewOff\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.47276 13.294C0.841762 12.547 0.841762 11.453 1.47276 10.706C3.18276 8.683 6.98476 5 11.9998 5C17.0148 5 20.8168 8.683 22.5268 10.706C23.1578 11.453 23.1578 12.547 22.5268 13.294C20.8168 15.317 17.0148 19 11.9998 19C6.98476 19 3.18276 15.317 1.47276 13.294Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C14.7614 15 17 12.7614 17 10C17 7.23858 14.7614 5 12 5C9.23858 5 7 7.23858 7 10C7 12.7614 9.23858 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 20L20 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n view: '<svg id=\"view\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.47276 13.294C0.841762 12.547 0.841762 11.453 1.47276 10.706C3.18276 8.683 6.98476 5 11.9998 5C17.0148 5 20.8168 8.683 22.5268 10.706C23.1578 11.453 23.1578 12.547 22.5268 13.294C20.8168 15.317 17.0148 19 11.9998 19C6.98476 19 3.18276 15.317 1.47276 13.294Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C14.7614 15 17 12.7614 17 10C17 7.23858 14.7614 5 12 5C9.23858 5 7 7.23858 7 10C7 12.7614 9.23858 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n minus: '<svg id=\"minus\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n times: '<svg id=\"times\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 5L5 19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19L5 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n check: '<svg id=\"check\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12L9 19L22 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n plus: '<svg id=\"plus\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M12 2V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n clock: '<svg id=\"clock\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_54_9054)\"><path d=\"M12 6V12H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.96582 22.87L2.23682 17.073L7.92882 18.659\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.237 17.073C3.47619 19.4602 5.54709 21.3107 8.05815 22.2745C10.5692 23.2384 13.3464 23.2488 15.8646 22.3039C18.3828 21.3589 20.4676 19.524 21.7247 17.1462C22.9817 14.7683 23.3241 12.0123 22.6869 9.39919C22.0497 6.78607 20.4772 4.49695 18.2666 2.96466C16.0561 1.43236 13.3608 0.763068 10.6902 1.08334C8.01965 1.4036 5.55899 2.69123 3.77345 4.70276C1.98791 6.71429 1.00124 9.31031 1 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_54_9054\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n search: '<svg id=\"search\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22.0002 22L15.6562 15.656\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 14.4183 5.58172 18 10 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n\r\n //Navbar\r\n folderImage: '<svg id=\"folderImage\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V2H9L12 6H23V20C23 20.5304 22.7893 21.0391 22.4142 21.4142C22.0391 21.7893 21.5304 22 21 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 19L8 14L11 17L15 11L19 19H5Z\" fill=\"#5F6368\"/><path d=\"M9.5 12C10.3284 12 11 11.3284 11 10.5C11 9.67157 10.3284 9 9.5 9C8.67157 9 8 9.67157 8 10.5C8 11.3284 8.67157 12 9.5 12Z\" fill=\"#5F6368\"/></svg>',\r\n folderSettings: '<svg id=\"folderSettings\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 22H3C2.46957 22 1.96086 21.7893 1.58579 21.4142C1.21071 21.0391 1 20.5304 1 20V2H9L12 6H23V20C23 20.5304 22.7893 21.0391 22.4142 21.4142C22.0391 21.7893 21.5304 22 21 22H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 19C13.6569 19 15 17.6569 15 16C15 14.3431 13.6569 13 12 13C10.3431 13 9 14.3431 9 16C9 17.6569 10.3431 19 12 19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.1211 13.879L15.5361 12.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 16H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.1211 18.121L15.5361 19.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 19V21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.87887 18.121L8.46387 19.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 16H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.87887 13.879L8.46387 12.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n document: '<svg id=\"document\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 17H15V23L21 17Z\" fill=\"#5F6368\"/><path d=\"M21 17H15V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 17V1H3V23H15L21 17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 17H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 12H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 7H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n wallet: '<svg id=\"wallet\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8204)\"><path d=\"M21 12V5H3C1.895 5 1 4.105 1 3V20C1 21.657 2.343 23 4 23H21V16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 2V1H3C1.895 1 1 1.895 1 3C1 4.105 1.895 5 3 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 16H18C16.895 16 16 15.105 16 14C16 12.895 16.895 12 18 12H23V16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8204\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n peopleNetwork: '<svg id=\"peopleNetwork\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8222)\"><path d=\"M12 16C13.3807 16 14.5 14.8807 14.5 13.5C14.5 12.1193 13.3807 11 12 11C10.6193 11 9.5 12.1193 9.5 13.5C9.5 14.8807 10.6193 16 12 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6C13.3807 6 14.5 4.88071 14.5 3.5C14.5 2.11929 13.3807 1 12 1C10.6193 1 9.5 2.11929 9.5 3.5C9.5 4.88071 10.6193 6 12 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.5 11C4.88071 11 6 9.88071 6 8.5C6 7.11929 4.88071 6 3.5 6C2.11929 6 1 7.11929 1 8.5C1 9.88071 2.11929 11 3.5 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.5 11C21.8807 11 23 9.88071 23 8.5C23 7.11929 21.8807 6 20.5 6C19.1193 6 18 7.11929 18 8.5C18 9.88071 19.1193 11 20.5 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.34082 23C7.16482 20.67 9.38682 19 11.9998 19C14.6128 19 16.8348 20.67 17.6588 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8222\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n licenseKey: '<svg id=\"licenseKey\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.6501 12C11.3095 11.282 10.7347 10.7013 10.0203 10.3533C9.30586 10.0054 8.49428 9.91093 7.71902 10.0855C6.94376 10.26 6.25098 10.6932 5.7546 11.3138C5.25822 11.9343 4.98779 12.7053 4.98779 13.5C4.98779 14.2947 5.25822 15.0657 5.7546 15.6862C6.25098 16.3068 6.94376 16.74 7.71902 16.9145C8.49428 17.0891 9.30586 16.9946 10.0203 16.6467C10.7347 16.2987 11.3095 15.718 11.6501 15H14.0001L15.5001 16L17.0001 15H19.0001L20.0001 12H11.6501Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.5 14.501C9.05228 14.501 9.5 14.0533 9.5 13.501C9.5 12.9487 9.05228 12.501 8.5 12.501C7.94772 12.501 7.5 12.9487 7.5 13.501C7.5 14.0533 7.94772 14.501 8.5 14.501Z\" fill=\"#5F6368\"/><path d=\"M23 2H1V22H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 6C4.55228 6 5 5.55228 5 5C5 4.44772 4.55228 4 4 4C3.44772 4 3 4.44772 3 5C3 5.55228 3.44772 6 4 6Z\" fill=\"#5F6368\"/><path d=\"M7 6C7.55228 6 8 5.55228 8 5C8 4.44772 7.55228 4 7 4C6.44772 4 6 4.44772 6 5C6 5.55228 6.44772 6 7 6Z\" fill=\"#5F6368\"/></svg>',\r\n settingsWheel: '<svg id=\"settingsWheel\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8216)\"><path d=\"M7.5 4.205L12 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 19.795L12 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 12H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.5 2.474L7.5 4.205\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.47412 6.5L4.20612 7.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.47412 17.5L4.20612 16.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.5 21.526L7.5 19.795\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23V21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.5 21.526L16.5 19.794\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.5259 17.5L19.7939 16.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 12H21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.5259 6.5L19.7939 7.5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.5 2.474L16.5 4.206\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8216\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n image: '<svg id=\"image\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 20L6 14L10 18L17 10L23 17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 3H1V21H23V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 10C10.1046 10 11 9.10457 11 8C11 6.89543 10.1046 6 9 6C7.89543 6 7 6.89543 7 8C7 9.10457 7.89543 10 9 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n pSettings: '<svg id=\"pSettings\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8212)\"><path d=\"M10 23H3C2.46957 23 1.96086 22.7893 1.58579 22.4142C1.21071 22.0391 1 21.5304 1 21V3C1 2.46957 1.21071 1.96086 1.58579 1.58579C1.96086 1.21071 2.46957 1 3 1H15C15.5304 1 16.0391 1.21071 16.4142 1.58579C16.7893 1.96086 17 2.46957 17 3V8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21C19.6569 21 21 19.6569 21 18C21 16.3431 19.6569 15 18 15C16.3431 15 15 16.3431 15 18C15 19.6569 16.3431 21 18 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 15V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 15.879L21.5361 14.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 18H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 20.121L21.5361 21.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 20.121L14.4639 21.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 18H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 15.879L14.4639 14.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8212\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n contactList: '<svg id=\"contactList\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 10C10.2091 10 12 8.20914 12 6C12 3.79086 10.2091 2 8 2C5.79086 2 4 3.79086 4 6C4 8.20914 5.79086 10 8 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 5H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 15H18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 14C4.134 14 1 17.134 1 21V22H15V21C15 17.134 11.866 14 8 14Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n empty: '<svg id=\"empty\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 2L2 22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n folderShared: '<svg id=\"folderShared\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 22H3C1.895 22 1 21.105 1 20V2H9L12 6H23V20C23 21.105 22.105 22 21 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 15C10.1046 15 11 14.1046 11 13C11 11.8954 10.1046 11 9 11C7.89543 11 7 11.8954 7 13C7 14.1046 7.89543 15 9 15Z\" fill=\"#5F6368\"/><path d=\"M15 12C16.1046 12 17 11.1046 17 10C17 8.89543 16.1046 8 15 8C13.8954 8 13 8.89543 13 10C13 11.1046 13.8954 12 15 12Z\" fill=\"#5F6368\"/><path d=\"M14.1879 17H17.8289C18.4959 17 19.0049 16.35 18.7919 15.717C18.2609 14.14 16.7709 13.003 15.0139 13C13.7199 12.998 12.5059 13.622 11.7549 14.676C12.7699 15.204 13.6139 16.01 14.1879 17Z\" fill=\"#5F6368\"/><path d=\"M9.00005 16C10.76 16 12.254 17.136 12.789 18.715C13.003 19.348 12.495 20 11.827 20H6.17305C5.50505 20 4.99605 19.348 5.21105 18.715C5.74605 17.136 7.24005 16 9.00005 16Z\" fill=\"#5F6368\"/></svg>',\r\n users: '<svg id=\"users\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8186)\"><path d=\"M8 13C9.65685 13 11 11.6569 11 10C11 8.34315 9.65685 7 8 7C6.34315 7 5 8.34315 5 10C5 11.6569 6.34315 13 8 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 16C4.134 16 1 19.134 1 23H15C15 19.134 11.866 16 8 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 7C17.6569 7 19 5.65685 19 4C19 2.34315 17.6569 1 16 1C14.3431 1 13 2.34315 13 4C13 5.65685 14.3431 7 16 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 17H23C23 13.134 19.866 10 16 10C15.66 10 15.327 10.024 15 10.071\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8186\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n handshake: '<svg id=\"handshake\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 8L11.828 10.172C11.0779 10.9219 10.0607 11.3431 9 11.3431C7.93934 11.3431 6.92211 10.9219 6.172 10.172L6 10L10.929 5.071C12.2552 3.74514 14.0537 3.00032 15.929 3.00032C17.8043 3.00032 19.6028 3.74514 20.929 5.071C22.0427 6.1848 22.7528 7.63843 22.9468 9.20152C23.1408 10.7646 22.8076 12.3477 22 13.7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.2662 11.266L18.8792 14.879C19.4416 15.4416 19.7575 16.2045 19.7575 17C19.7575 17.7955 19.4416 18.5584 18.8792 19.121L17.2432 20.757C16.686 21.3143 16.0245 21.7563 15.2965 22.0579C14.5685 22.3595 13.7882 22.5147 13.0002 22.5147C12.2122 22.5147 11.4319 22.3595 10.7038 22.0579C9.97581 21.7563 9.31433 21.3143 8.75717 20.757L3.07117 15.071C1.74532 13.7448 1.00049 11.9463 1.00049 10.071C1.00049 8.19571 1.74532 6.3972 3.07117 5.071C4.37841 3.76011 6.14894 3.01619 8.00017 3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.391 19.609L14.5 15.719\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.5133 21.965L11.8833 18.335\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n layers: '<svg id=\"layers\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">a<path d=\"M5 7H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M5 1V19H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M19 11H13V3H17L19 5V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a<path d=\"M19 23H13V15H17L19 17V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>a</svg>',\r\n filterOrganization: '<svg id=\"filterOrganization\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 13H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 5H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 1V21H10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 3H10V7H21V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 19H10V23H21V19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 11H10V15H21V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n timeline: '<svg id=\"timeline\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8225)\"><path d=\"M12 1V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 2H17V8H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 5H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 16H17V22H23V16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 19H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 15H7L7 9H1L1 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 12H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8225\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n bag: '<svg id=\"bag\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 23H3V6H21V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 9V5C8 2.8 9.8 1 12 1C14.2 1 16 2.8 16 5V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n barcodeScan: '<svg id=\"barcodeScan\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8213)\"><path d=\"M1 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13V18\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 1V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 13V18H16V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 9V1H19V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 13V18H5V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 9V1H8V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 23V13H23V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8213\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n messaging: '<svg id=\"messaging\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 3V1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 3.879L21.5361 2.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 6H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.1211 8.121L21.5361 9.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 8.121L14.4639 9.536\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 6H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.8789 3.879L14.4639 2.464\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.86 2.18C4.8 2.988 1 6.6 1 11C1 16 5.9 20 12 20C13.0475 20.0213 14.0923 19.8865 15.1 19.6L21 22L20.4 16.8C21.2506 15.9575 21.9272 14.9558 22.391 13.852\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9C19.6569 9 21 7.65685 21 6C21 4.34315 19.6569 3 18 3C16.3431 3 15 4.34315 15 6C15 7.65685 16.3431 9 18 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n mobileCard: '<svg id=\"mobileCard\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8210)\"><path d=\"M7.5 20C8.32843 20 9 19.3284 9 18.5C9 17.6716 8.32843 17 7.5 17C6.67157 17 6 17.6716 6 18.5C6 19.3284 6.67157 20 7.5 20Z\" fill=\"#5F6368\"/><path d=\"M14 17V21C14 22.1 13.1 23 12 23H3C1.9 23 1 22.1 1 21V5C1 3.9 1.9 3 3 3H7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 13H18H7V1H23V13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 9H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8210\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n dropCap: '<svg id=\"dropCap\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 15H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 20H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 15L7 4H6L2 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.09082 12H9.90882\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n news: '<svg id=\"news\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8208)\"><path d=\"M9 14H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 18H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 6H9V10H19V6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 23C2.47005 22.9984 1.96227 22.7872 1.58753 22.4125C1.2128 22.0377 1.00158 21.5299 1 21V13H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 1V21C4.99842 21.5299 4.7872 22.0377 4.41247 22.4125C4.03773 22.7872 3.52995 22.9984 3 23H21C21.5299 22.9984 22.0377 22.7872 22.4125 22.4125C22.7872 22.0377 22.9984 21.5299 23 21V1H5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8208\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n loan: '<svg id=\"loan\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 11C17.7614 11 20 8.76142 20 6C20 3.23858 17.7614 1 15 1C12.2386 1 10 3.23858 10 6C10 8.76142 12.2386 11 15 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 16H18.838C19.4676 16 20.0812 16.1981 20.592 16.5662C21.1028 16.9343 21.4848 17.4537 21.684 18.051L22 19L10.532 22.529C9.5488 22.8313 8.48694 22.7432 7.567 22.283L1 19V12H2C3.105 12 5.906 12.438 7 14H10C11.0609 14 12.0783 14.4214 12.8284 15.1716C13.5786 15.9217 14 16.9391 14 18H8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5V7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n shopLocation: '<svg id=\"shopLocation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8206)\"><path d=\"M13.374 11.997C12.052 11.931 11 10.839 11 9.5C11 10.881 9.881 12 8.5 12C7.119 12 6 10.881 6 9.5C6 10.881 4.881 12 3.5 12C2.119 12 1 10.958 1 9L5 1H17L21 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 12V21H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 14C23 17.1 18 22.1 18 22.1C18 22.1 13 17.1 13 14C13 10.8 15.6 9 18 9C20.4 9 23 10.8 23 14Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 15C18.5523 15 19 14.5523 19 14C19 13.4477 18.5523 13 18 13C17.4477 13 17 13.4477 17 14C17 14.5523 17.4477 15 18 15Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8206\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n usersWm: '<svg id=\"usersWm\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 21H23V16.677C22.9999 16.4772 22.9399 16.282 22.8278 16.1166C22.7157 15.9512 22.5566 15.8231 22.371 15.749L18.629 14.249C18.4438 14.175 18.2849 14.0473 18.1728 13.8823C18.0607 13.7172 18.0005 13.5225 18 13.323V12.445C18.6065 12.0969 19.1107 11.5953 19.4617 10.9906C19.8128 10.3858 19.9985 9.69927 20 9V7C20.0002 6.29778 19.8154 5.60789 19.4644 4.99969C19.1134 4.39148 18.6085 3.8864 18.0004 3.53522C17.3923 3.18404 16.7024 2.99914 16.0002 2.9991C15.298 2.99906 14.6081 3.18389 14 3.535\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.371 16.749L10.629 15.249C10.4438 15.175 10.2849 15.0473 10.1728 14.8823C10.0607 14.7172 10.0005 14.5225 10 14.323V13.872C13.27 13.435 14 12 14 12C14 12 12 10 12 8C12 6.93913 11.5786 5.92172 10.8284 5.17157C10.0783 4.42143 9.06087 4 8 4C6.93913 4 5.92172 4.42143 5.17157 5.17157C4.42143 5.92172 4 6.93913 4 8C4 10 2 12 2 12C2 12 2.73 13.435 6 13.872V14.323C5.99987 14.5228 5.93989 14.718 5.82777 14.8834C5.71566 15.0488 5.55656 15.1769 5.371 15.251L1.629 16.751C1.44375 16.825 1.28488 16.9527 1.17279 17.1177C1.0607 17.2828 1.00053 17.4775 1 17.677V21H15V17.677C14.9999 17.4772 14.9399 17.282 14.8278 17.1166C14.7157 16.9512 14.5566 16.8231 14.371 16.749Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n shop: '<svg id=\"shop\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 13V22H20V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.00001 2L1.00001 7C0.998497 7.67436 1.22485 8.32946 1.64235 8.85905C2.05985 9.38864 2.64402 9.76166 3.3001 9.9176C3.95619 10.0735 4.64572 10.0033 5.25686 9.71819C5.86801 9.43311 6.36492 8.94992 6.66701 8.347C6.91349 8.84349 7.29369 9.26131 7.76479 9.5534C8.2359 9.84549 8.7792 10.0003 9.33351 10.0003C9.88782 10.0003 10.4311 9.84549 10.9022 9.5534C11.3733 9.26131 11.7535 8.84349 12 8.347C12.2465 8.84349 12.6267 9.26131 13.0978 9.5534C13.5689 9.84549 14.1122 10.0003 14.6665 10.0003C15.2208 10.0003 15.7641 9.84549 16.2352 9.5534C16.7063 9.26131 17.0865 8.84349 17.333 8.347C17.6351 8.94992 18.132 9.43311 18.7432 9.71819C19.3543 10.0033 20.0438 10.0735 20.6999 9.9176C21.356 9.76166 21.9402 9.38864 22.3577 8.85905C22.7752 8.32946 23.0015 7.67436 23 7L20 2H4.00001Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 22V16H14V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n newConstruction: '<svg id=\"newConstruction\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 23H1V13H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 16H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 19H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 13H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 6V2L23 5V23H5V9H15V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19V9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cardFavorite: '<svg id=\"cardFavorite\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10V3C23 1.9 22.1 1 21 1H16H3C1.9 1 1 1.9 1 3V16C1 17.1 1.9 18 3 18H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22.2012 13.812C20.9852 12.576 18.9552 12.778 18.0002 14.24C17.0442 12.776 15.0142 12.577 13.7992 13.812C12.7342 14.894 12.7342 16.649 13.7992 17.731L18.0002 22L22.2022 17.731C23.2662 16.649 23.2662 14.894 22.2012 13.812Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cardUpdate: '<svg id=\"cardUpdate\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8190)\"><path d=\"M1 5H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 10H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 10V3C23 1.9 22.1 1 21 1H16H3C1.9 1 1 1.9 1 3V16C1 17.1 1.9 18 3 18H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.126 17C14.57 15.275 16.136 14 18 14C19.48 14 20.772 14.804 21.464 15.999\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23.22 13.649L22.792 18L18.522 17.061L23.22 13.649Z\" fill=\"#5F6368\"/><path d=\"M21.8741 20C21.4301 21.725 19.8641 23 18.0001 23C16.5201 23 15.2281 22.196 14.5361 21.001\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.7798 23.351L13.2078 19L17.4778 19.939L12.7798 23.351Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8190\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n present: '<svg id=\"present\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8192)\"><path d=\"M4 3.5C4.02271 2.81501 4.31631 2.16702 4.81634 1.6983C5.31637 1.22957 5.98197 0.97843 6.667 1C10.611 1 12 6 12 6H6.667C5.98197 6.02157 5.31637 5.77043 4.81634 5.30171C4.31631 4.83298 4.02271 4.18499 4 3.5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17.333 6H12C12 6 13.389 1 17.333 1C18.018 0.97843 18.6836 1.22957 19.1837 1.6983C19.6837 2.16702 19.9773 2.81501 20 3.5C19.9773 4.18499 19.6837 4.83298 19.1837 5.30171C18.6836 5.77043 18.018 6.02157 17.333 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 13V21C21 21.5304 20.7893 22.0391 20.4142 22.4142C20.0391 22.7893 19.5304 23 19 23H5C4.46957 23 3.96086 22.7893 3.58579 22.4142C3.21071 22.0391 3 21.5304 3 21V13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 6H1V10H23V6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6V23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8192\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n boardGame: '<svg id=\"boardGame\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8191)\"><path d=\"M21 5H7C5.89543 5 5 5.89543 5 7V21C5 22.1046 5.89543 23 7 23H21C22.1046 23 23 22.1046 23 21V7C23 5.89543 22.1046 5 21 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 5V3C19 2.46957 18.7893 1.96086 18.4142 1.58579C18.0391 1.21071 17.5304 1 17 1H3C2.46957 1 1.96086 1.21071 1.58579 1.58579C1.21071 1.96086 1 2.46957 1 3V17C1 17.5304 1.21071 18.0391 1.58579 18.4142C1.96086 18.7893 2.46957 19 3 19H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 11C10.3284 11 11 10.3284 11 9.5C11 8.67157 10.3284 8 9.5 8C8.67157 8 8 8.67157 8 9.5C8 10.3284 8.67157 11 9.5 11Z\" fill=\"#5F6368\"/><path d=\"M18.5 11C19.3284 11 20 10.3284 20 9.5C20 8.67157 19.3284 8 18.5 8C17.6716 8 17 8.67157 17 9.5C17 10.3284 17.6716 11 18.5 11Z\" fill=\"#5F6368\"/><path d=\"M9.5 20C10.3284 20 11 19.3284 11 18.5C11 17.6716 10.3284 17 9.5 17C8.67157 17 8 17.6716 8 18.5C8 19.3284 8.67157 20 9.5 20Z\" fill=\"#5F6368\"/><path d=\"M18.5 20C19.3284 20 20 19.3284 20 18.5C20 17.6716 19.3284 17 18.5 17C17.6716 17 17 17.6716 17 18.5C17 19.3284 17.6716 20 18.5 20Z\" fill=\"#5F6368\"/><path d=\"M14 15.5C14.8284 15.5 15.5 14.8284 15.5 14C15.5 13.1716 14.8284 12.5 14 12.5C13.1716 12.5 12.5 13.1716 12.5 14C12.5 14.8284 13.1716 15.5 14 15.5Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8191\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n migration: '<svg id=\"migration\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8194)\"><path d=\"M12 23V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 14L12 10L16 14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.9999 18.777C17.6144 18.4092 19.0961 17.603 20.282 16.4473C21.4679 15.2916 22.3119 13.8311 22.7213 12.2266C23.1306 10.6221 23.0893 8.93579 22.602 7.35323C22.1147 5.77067 21.2002 4.35323 19.9592 3.25691C18.7182 2.16059 17.1988 1.4279 15.5682 1.13946C13.9377 0.851028 12.2591 1.01804 10.7173 1.62211C9.17557 2.22618 7.83033 3.2439 6.82969 4.56325C5.82905 5.8826 5.21179 7.45244 5.04586 9.1C3.83442 9.34579 2.75697 10.0316 2.02146 11.0251C1.28595 12.0186 0.944536 13.2493 1.0631 14.4798C1.18167 15.7102 1.75182 16.8531 2.6635 17.6878C3.57519 18.5226 4.76377 18.9901 5.99986 19H7.99986\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8194\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n cockade: '<svg id=\"cockade\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.8731 11.81L22.0001 20L18.0001 19L16.0001 22L12.7251 14.963\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.127 11.81L2 20L6 19L8 22L11.275 14.963\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15C15.866 15 19 11.866 19 8C19 4.13401 15.866 1 12 1C8.13401 1 5 4.13401 5 8C5 11.866 8.13401 15 12 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 10C13.1046 10 14 9.10457 14 8C14 6.89543 13.1046 6 12 6C10.8954 6 10 6.89543 10 8C10 9.10457 10.8954 10 12 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n percentage: '<svg id=\"percentage\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8195)\"><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 18C17.1046 18 18 17.1046 18 16C18 14.8954 17.1046 14 16 14C14.8954 14 14 14.8954 14 16C14 17.1046 14.8954 18 16 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 16L16 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8195\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n refund: '<svg id=\"refund\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8196)\"><path d=\"M15.6002 13.868C15.6124 14.2163 15.5443 14.5628 15.4013 14.8807C15.2582 15.1985 15.044 15.4792 14.7751 15.701C14.1079 16.2067 13.3017 16.496 12.4651 16.53V18H11.4831V16.558C10.429 16.5579 9.38546 16.3482 8.41315 15.941V14.048C8.89455 14.2773 9.39686 14.4598 9.91315 14.593C10.4252 14.7381 10.9505 14.8319 11.4811 14.873V12.649L11.0001 12.463C10.2477 12.2116 9.56051 11.7963 8.98815 11.247C8.59128 10.8006 8.38081 10.219 8.40015 9.622C8.39406 9.29339 8.46443 8.96786 8.60569 8.6711C8.74696 8.37434 8.95526 8.11447 9.21415 7.912C9.87359 7.42229 10.6637 7.13966 11.4842 7.1V6H12.4661V7.069C13.4889 7.10005 14.4965 7.32398 15.4361 7.729L14.7621 9.407C14.0285 9.10427 13.2529 8.91575 12.4621 8.848V10.964C13.1553 11.2074 13.8223 11.5197 14.4531 11.896C14.8044 12.1156 15.1009 12.4125 15.3201 12.764C15.5114 13.1 15.6081 13.4815 15.6002 13.868ZM10.5581 9.622C10.5552 9.71932 10.5732 9.81613 10.611 9.90586C10.6488 9.99559 10.7055 10.0761 10.7772 10.142C10.9887 10.3191 11.2275 10.4609 11.4842 10.562V8.876C10.8675 8.96733 10.5588 9.216 10.5581 9.622ZM13.4422 13.976C13.4427 13.8782 13.421 13.7816 13.3787 13.6934C13.3364 13.6053 13.2747 13.5278 13.1981 13.467C12.9746 13.2912 12.7284 13.1462 12.4661 13.036V14.822C13.1161 14.712 13.4415 14.43 13.4422 13.976Z\" fill=\"#5F6368\"/><path d=\"M2.96582 1.13L2.23682 6.927L7.92882 5.341\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.237 6.927C3.47619 4.53978 5.54709 2.68931 8.05815 1.72546C10.5692 0.761614 13.3464 0.751185 15.8646 1.69615C18.3828 2.64111 20.4676 4.47597 21.7247 6.85382C22.9817 9.23166 23.3241 11.9877 22.6869 14.6008C22.0497 17.2139 20.4772 19.503 18.2666 21.0353C16.0561 22.5676 13.3608 23.2369 10.6902 22.9167C8.01965 22.5964 5.55899 21.3088 3.77345 19.2972C1.98791 17.2857 1.00124 14.6897 1 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8196\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n goldCoin: '<svg id=\"goldCoin\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8229)\"><path d=\"M12 6.767L13.545 9.898L17 10.4L14.5 12.837L15.09 16.278L12 14.653L8.91 16.278L9.5 12.837L7 10.4L10.455 9.898L12 6.767Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z\" fill=\"#5F6368\"/><path d=\"M18.6572 15.163C19.2095 15.163 19.6572 14.7153 19.6572 14.163C19.6572 13.6107 19.2095 13.163 18.6572 13.163C18.1049 13.163 17.6572 13.6107 17.6572 14.163C17.6572 14.7153 18.1049 15.163 18.6572 15.163Z\" fill=\"#5F6368\"/><path d=\"M16.1138 7.337C16.6661 7.337 17.1138 6.88928 17.1138 6.337C17.1138 5.78472 16.6661 5.337 16.1138 5.337C15.5615 5.337 15.1138 5.78472 15.1138 6.337C15.1138 6.88928 15.5615 7.337 16.1138 7.337Z\" fill=\"#5F6368\"/><path d=\"M7.88623 7.337C8.43852 7.337 8.88623 6.88928 8.88623 6.337C8.88623 5.78472 8.43852 5.337 7.88623 5.337C7.33395 5.337 6.88623 5.78472 6.88623 6.337C6.88623 6.88928 7.33395 7.337 7.88623 7.337Z\" fill=\"#5F6368\"/><path d=\"M5.34277 15.163C5.89506 15.163 6.34277 14.7153 6.34277 14.163C6.34277 13.6107 5.89506 13.163 5.34277 13.163C4.79049 13.163 4.34277 13.6107 4.34277 14.163C4.34277 14.7153 4.79049 15.163 5.34277 15.163Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8229\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n calendarDate: '<svg id=\"calendarDate\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 1V3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 12H11V13H13V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 17H5V18H7V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 17H11V18H13V17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 12H17V13H19V12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 12H5V13H7V12Z\" fill=\"#5F6368\"/><path d=\"M13 12H11V13H13V12Z\" fill=\"#5F6368\"/><path d=\"M7 17H5V18H7V17Z\" fill=\"#5F6368\"/><path d=\"M13 17H11V18H13V17Z\" fill=\"#5F6368\"/><path d=\"M19 12H17V13H19V12Z\" fill=\"#5F6368\"/><path d=\"M1 8H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 4H3C1.89543 4 1 4.89543 1 6V20C1 21.1046 1.89543 22 3 22H21C22.1046 22 23 21.1046 23 20V6C23 4.89543 22.1046 4 21 4Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n windowParagraph: '<svg id=\"windowParagraph\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23 2H1V22H23V2Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 6H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 11H5V17H11V11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 11H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 15H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 2V6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n notification: '<svg id=\"notification\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8197)\"><path d=\"M10.4932 14.389L12.8552 20.252C13.0527 20.7437 13.0469 21.2937 12.8391 21.7812C12.6314 22.2687 12.2387 22.6538 11.7472 22.852C11.2555 23.0494 10.7055 23.0436 10.218 22.8359C9.73053 22.6281 9.34541 22.2354 9.14723 21.744L5.51123 12.8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.3091 1.119L3.00008 6C2.36887 6.18783 1.8233 6.59066 1.458 7.13861C1.09269 7.68657 0.930687 8.3451 1.00008 9C0.930687 9.6549 1.09269 10.3134 1.458 10.8614C1.8233 11.4093 2.36887 11.8122 3.00008 12L18.3091 16.881\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 17C21.2091 17 23 13.4183 23 9C23 4.58172 21.2091 1 19 1C16.7909 1 15 4.58172 15 9C15 13.4183 16.7909 17 19 17Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.0001 9C19.9988 8.26544 19.7271 7.55708 19.2368 7.01004C18.7466 6.463 18.0721 6.11556 17.3421 6.034C17.1105 7.00554 16.9957 8.00125 17.0001 9C16.9957 9.99875 17.1105 10.9945 17.3421 11.966C18.0721 11.8844 18.7466 11.537 19.2368 10.99C19.7271 10.4429 19.9988 9.73456 20.0001 9Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8197\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n mobileChat: '<svg id=\"mobileChat\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 11H13L9 13V3C9 2.46957 9.21071 1.96086 9.58579 1.58579C9.96086 1.21071 10.4696 1 11 1H21C21.5304 1 22.0391 1.21071 22.4142 1.58579C22.7893 1.96086 23 2.46957 23 3V9C23 9.53043 22.7893 10.0391 22.4142 10.4142C22.0391 10.7893 21.5304 11 21 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5V21C2 21.5304 2.21071 22.0391 2.58579 22.4142C2.96086 22.7893 3.46957 23 4 23H15C15.5304 23 16.0391 22.7893 16.4142 22.4142C16.7893 22.0391 17 21.5304 17 21V14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n compass: '<svg id=\"compass\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8201)\"><path d=\"M12 1V4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23 12H20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23V20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M1 12H4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 7L14 14L7 17L10 10L17 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8201\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n feedback: '<svg id=\"feedback\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.4 16.8C21.1969 16.0544 21.8373 15.1575 22.2837 14.1616C22.7301 13.1658 22.9736 12.091 23 11C23 6 18.1 2 12 2C5.9 2 1 6 1 11C1 16 5.9 20 12 20C13.0475 20.0213 14.0923 19.8865 15.1 19.6L21 22L20.4 16.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6V12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 17C12.5523 17 13 16.5523 13 16C13 15.4477 12.5523 15 12 15C11.4477 15 11 15.4477 11 16C11 16.5523 11.4477 17 12 17Z\" fill=\"#5F6368\"/></svg>',\r\n receiptList: '<svg id=\"receiptList\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 1H21V22L18 20L15 22L12 20L9 22L6 20L3 22V1Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 7H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 7H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 11H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 11H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 15H12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16 15H17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n fileCopies: '<svg id=\"fileCopies\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 9H2V23H14V9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5H18V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1H22V15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n exchange: '<svg id=\"exchange\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8177)\"><path d=\"M5 5C6.10457 5 7 4.10457 7 3C7 1.89543 6.10457 1 5 1C3.89543 1 3 1.89543 3 3C3 4.10457 3.89543 5 5 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 8C2.791 8 1 9.791 1 12H9C9 9.791 7.209 8 5 8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 16C20.1046 16 21 15.1046 21 14C21 12.8954 20.1046 12 19 12C17.8954 12 17 12.8954 17 14C17 15.1046 17.8954 16 19 16Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 19C16.791 19 15 20.791 15 23H23C23 20.791 21.209 19 19 19Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 16V18C4 18.552 4.448 19 5 19H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 22L12 19L9 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 8V6C20 5.448 19.552 5 19 5H12H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 2L12 5L15 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8177\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n copy: '<svg id=\"copy\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 9H3V23H21V9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 5H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8 1H16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n usersHeart: '<svg id=\"usersHeart\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8175)\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15.361 1.631C14.388 0.670001 12.764 0.827001 12 1.964C11.235 0.826001 9.611 0.671001 8.639 1.631C7.787 2.473 7.787 3.838 8.639 4.679L12 8L15.361 4.679C16.213 3.838 16.213 2.473 15.361 1.631Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8175\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n usersCheck: '<svg id=\"usersCheck\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 5L11 7L16 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n team: '<svg id=\"team\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8176)\"><path d=\"M4 7C2.895 7 2 6.105 2 5C2 3.895 2.895 3 4 3C5.105 3 6 3.895 6 5C6 6.105 5.105 7 4 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 21H3V17H1V12C1 10.895 1.895 10 3 10H4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 7C21.105 7 22 6.105 22 5C22 3.895 21.105 3 20 3C18.895 3 18 3.895 18 5C18 6.105 18.895 7 20 7Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 21H21V17H23V12C23 10.895 22.105 10 21 10H20\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 6C10.619 6 9.5 4.881 9.5 3.5C9.5 2.119 10.619 1 12 1C13.381 1 14.5 2.119 14.5 3.5C14.5 4.881 13.381 6 12 6Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 23H9V17H7V11C7 9.895 7.895 9 9 9H15C16.105 9 17 9.895 17 11V17H15V23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8176\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n coupon: '<svg id=\"coupon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 12C20 10.3 21.3 9 23 9V4H1V9C2.7 9 4 10.3 4 12C4 13.7 2.7 15 1 15V20H23V15C21.3 15 20 13.7 20 12Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 9L9 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 10C10.3284 10 11 9.32843 11 8.5C11 7.67157 10.3284 7 9.5 7C8.67157 7 8 7.67157 8 8.5C8 9.32843 8.67157 10 9.5 10Z\" fill=\"#5F6368\"/><path d=\"M14.5 17C15.3284 17 16 16.3284 16 15.5C16 14.6716 15.3284 14 14.5 14C13.6716 14 13 14.6716 13 15.5C13 16.3284 13.6716 17 14.5 17Z\" fill=\"#5F6368\"/></svg>',\r\n userLocation: '<svg id=\"userLocation\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18.999 17.857C20.851 18.402 22 19.161 22 20C22 21.657 17.523 23 12 23C6.477 23 2 21.657 2 20C2 19.161 3.149 18.402 5 17.858\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 20H10V15H8V10C8 8.895 8.895 8 10 8H14C15.105 8 16 8.895 16 10V15H14V20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 5C10.895 5 10 4.105 10 3C10 1.895 10.895 1 12 1C13.105 1 14 1.895 14 3C14 4.105 13.105 5 12 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n discount: '<svg id=\"discount\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 15L22 12L19 9V5H15L12 2L9 5H5V9L2 12L5 15V19H9L12 22L15 19H19V15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 9L9 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.5 11C10.3284 11 11 10.3284 11 9.5C11 8.67157 10.3284 8 9.5 8C8.67157 8 8 8.67157 8 9.5C8 10.3284 8.67157 11 9.5 11Z\" fill=\"#5F6368\"/><path d=\"M14.5 16C15.3284 16 16 15.3284 16 14.5C16 13.6716 15.3284 13 14.5 13C13.6716 13 13 13.6716 13 14.5C13 15.3284 13.6716 16 14.5 16Z\" fill=\"#5F6368\"/></svg>',\r\n usersMeeting: '<svg id=\"usersMeeting\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8179)\"><path d=\"M5.5 18C3.015 18 1 20.015 1 22.5V23H10V22.5C10 20.015 7.985 18 5.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.5 15C6.88071 15 8 13.8807 8 12.5C8 11.1193 6.88071 10 5.5 10C4.11929 10 3 11.1193 3 12.5C3 13.8807 4.11929 15 5.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 18C16.015 18 14 20.015 14 22.5V23H23V22.5C23 20.015 20.985 18 18.5 18Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.5 15C19.8807 15 21 13.8807 21 12.5C21 11.1193 19.8807 10 18.5 10C17.1193 10 16 11.1193 16 12.5C16 13.8807 17.1193 15 18.5 15Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 1H13C12.448 1 12 1.448 12 2V10L16 6H22C22.552 6 23 5.552 23 5V2C23 1.448 22.552 1 22 1Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8179\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n statistics: '<svg id=\"statistics\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 10L9 3L15 9L22 2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 22V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 12V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 22V19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 12V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n transactions: '<svg id=\"transactions\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8178)\"><path d=\"M12 5C13.1046 5 14 4.10457 14 3C14 1.89543 13.1046 1 12 1C10.8954 1 10 1.89543 10 3C10 4.10457 10.8954 5 12 5Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.33984 20C4.44441 20 5.33984 19.1046 5.33984 18C5.33984 16.8954 4.44441 16 3.33984 16C2.23527 16 1.33984 16.8954 1.33984 18C1.33984 19.1046 2.23527 20 3.33984 20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20.6597 20C21.7642 20 22.6597 19.1046 22.6597 18C22.6597 16.8954 21.7642 16 20.6597 16C19.5551 16 18.6597 16.8954 18.6597 18C18.6597 19.1046 19.5551 20 20.6597 20Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6.27891 4.806C4.50421 6.03911 3.17846 7.81571 2.50152 9.868C1.82458 11.9203 1.83314 14.137 2.52591 16.184\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.4897 19.61C18.062 21.2375 16.1426 22.3553 14.0224 22.7938C11.9023 23.2323 9.69695 22.9676 7.74072 22.04\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21.963 12.155C21.7798 9.99978 20.9028 7.96204 19.4635 6.34746C18.0241 4.73288 16.1001 3.62851 13.98 3.2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8178\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n currencyExchange: '<svg id=\"currencyExchange\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8187)\"><path d=\"M15.6002 13.873C15.6124 14.2213 15.5443 14.5678 15.4013 14.8857C15.2582 15.2035 15.044 15.4842 14.7751 15.706C14.1079 16.2117 13.3017 16.501 12.4651 16.535V18.005H11.4831V16.563C10.429 16.5629 9.38546 16.3532 8.41315 15.946V14.053C8.89455 14.2823 9.39686 14.4648 9.91315 14.598C10.4252 14.7431 10.9505 14.8369 11.4811 14.878V12.654L11.0001 12.468C10.2477 12.2166 9.56051 11.8013 8.98815 11.252C8.59128 10.8056 8.38081 10.224 8.40015 9.627C8.39422 9.29842 8.46465 8.97294 8.60591 8.6762C8.74716 8.37947 8.95537 8.11958 9.21415 7.917C9.87359 7.42729 10.6637 7.14466 11.4842 7.105V6.005H12.4661V7.074C13.4889 7.10505 14.4965 7.32898 15.4361 7.734L14.7621 9.412C14.0285 9.10927 13.2529 8.92075 12.4621 8.853V10.969C13.1551 11.2129 13.822 11.5251 14.4531 11.901C14.8042 12.1209 15.1007 12.4177 15.3201 12.769C15.5112 13.1051 15.608 13.4865 15.6002 13.873ZM10.5581 9.627C10.5552 9.72432 10.5732 9.82114 10.611 9.91086C10.6488 10.0006 10.7055 10.0811 10.7772 10.147C10.9887 10.3241 11.2275 10.4659 11.4842 10.567V8.881C10.8675 8.97167 10.5588 9.22033 10.5581 9.627ZM13.4422 13.981C13.4427 13.8832 13.421 13.7866 13.3787 13.6984C13.3364 13.6103 13.2747 13.5328 13.1981 13.472C12.9746 13.2962 12.7284 13.1512 12.4661 13.041V14.827C13.1161 14.717 13.4415 14.435 13.4422 13.981Z\" fill=\"#5F6368\"/><path d=\"M5.34577 7.929L6.93177 2.237L1.13477 2.966\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.7889 23C9.34308 22.9539 6.98237 22.0939 5.08008 20.5558C3.17778 19.0178 1.84246 16.8895 1.28525 14.5075C0.728047 12.1255 0.98075 9.62575 2.00341 7.40347C3.02606 5.1812 4.76031 3.36322 6.93194 2.237\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18.6539 16.071L17.0679 21.763L22.8649 21.034\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.2109 1C14.6568 1.04607 17.0175 1.90613 18.9198 3.44418C20.8221 4.98224 22.1574 7.11052 22.7146 9.49251C23.2718 11.8745 23.0191 14.3743 21.9965 16.5965C20.9738 18.8188 19.2396 20.6368 17.0679 21.763\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_46_8187\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n selfie: '<svg id=\"selfie\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 1H2V4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 11V14H5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 14H22V11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 4V1H19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13C9.239 13 7 10.761 7 8V7C7 4.239 9.239 2 12 2C14.761 2 17 4.239 17 7V8C17 10.761 14.761 13 12 13Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 21.805C22 20 20.795 18.426 19.055 17.945C17.316 17.464 14.89 17 12 17C9.11 17 6.684 17.464 4.945 17.945C3.205 18.427 2 20 2 21.805V23H22V21.805Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n cartRefresh: '<svg id=\"cartRefresh\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8181)\"><path d=\"M1 1H4V16H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 23C7.10457 23 8 22.1046 8 21C8 19.8954 7.10457 19 6 19C4.89543 19 4 19.8954 4 21C4 22.1046 4.89543 23 6 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M21 23C22.1046 23 23 22.1046 23 21C23 19.8954 22.1046 19 21 19C19.8954 19 19 19.8954 19 21C19 22.1046 19.8954 23 21 23Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 4H9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.126 4C14.57 2.275 16.136 1 18 1C19.48 1 20.772 1.804 21.464 2.999\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M23.22 0.648998L22.792 5L18.522 4.061L23.22 0.648998Z\" fill=\"#5F6368\"/><path d=\"M21.8741 7C21.4301 8.725 19.8641 10 18.0001 10C16.5201 10 15.2281 9.196 14.5361 8.001\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.7798 10.351L13.2078 6L17.4778 6.939L12.7798 10.351Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8181\"><rect width=\"24\" height=\"24\" fill=\"white\"/></clipPath></defs></svg>',\r\n chart: '<svg id=\"chart\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16.6 18.5C15.2 20.6 12.7 22 10 22C5.6 22 2 18.4 2 14C2 9.6 5.6 6 10 6\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19.9 20.8C21.2 18.9 22 16.5 22 14C22 7.4 16.6 2 10 2V14L19.9 20.8Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n tag:'<svg id=\"tag\" width=\"24\" height=\"24\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <g id=\"Group\"><path id=\"Vector\" d=\"M13.242 20.414L20.414 13.242C20.5998 13.0563 20.7472 12.8358 20.8478 12.5931C20.9483 12.3503 21.0001 12.0902 21.0001 11.8275C21.0001 11.5648 20.9483 11.3046 20.8478 11.0619C20.7472 10.8192 20.5998 10.5987 20.414 10.413L11 1H1V11L10.413 20.415C10.5988 20.6007 10.8194 20.7481 11.0621 20.8485C11.3048 20.949 11.565 21.0007 11.8277 21.0006C12.0904 21.0005 12.3505 20.9486 12.5932 20.848C12.8359 20.7473 13.0563 20.5999 13.242 20.414Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M7 9C8.10457 9 9 8.10457 9 7C9 5.89543 8.10457 5 7 5C5.89543 5 5 5.89543 5 7C5 8.10457 5.89543 9 7 9Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n fork: '<svg id=\"fork\" width=\"24\" height=\"24\" viewBox=\"0 0 22 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M11 22V1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M4 9V15.681C4.00004 16.0723 4.1149 16.4551 4.33033 16.7818C4.54576 17.1085 4.85231 17.3648 5.212 17.519L8 18.714\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_3\" d=\"M18 6V13.681C18 14.0723 17.8851 14.4551 17.6697 14.7818C17.4542 15.1085 17.1477 15.3648 16.788 15.519L14 16.714\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_4\" d=\"M8 4L11 1L14 4\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_5\" d=\"M1 12L4 9L7 12\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_6\" d=\"M15 9L18 6L21 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n addToCart: '<svg id=\"assToCart\" width=\"24\" height=\"24\" viewBox=\"0 0 23 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M6 22C6.55228 22 7 21.5523 7 21C7 20.4477 6.55228 20 6 20C5.44772 20 5 20.4477 5 21C5 21.5523 5.44772 22 6 22Z\" fill=\"#5F6368\"/><path id=\"Vector_2\" d=\"M20 22C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20C19.4477 20 19 20.4477 19 21C19 21.5523 19.4477 22 20 22Z\" fill=\"#5F6368\"/><path id=\"Vector_3\" d=\"M6 22C6.55228 22 7 21.5523 7 21C7 20.4477 6.55228 20 6 20C5.44772 20 5 20.4477 5 21C5 21.5523 5.44772 22 6 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_4\" d=\"M20 22C20.5523 22 21 21.5523 21 21C21 20.4477 20.5523 20 20 20C19.4477 20 19 20.4477 19 21C19 21.5523 19.4477 22 20 22Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_5\" d=\"M17 6H22L20.322 14.392C20.135 15.327 19.314 16 18.361 16H7.751C6.749 16 5.901 15.258 5.769 14.264L4 1H1\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_6\" d=\"M4.80005 6H9.00005\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_7\" d=\"M13 2V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_8\" d=\"M16.462 9.309C16.385 9.122 16.202 9 16 9H10C9.79802 9 9.61502 9.122 9.53802 9.309C9.46102 9.496 9.50402 9.711 9.64602 9.854L12.646 12.854C12.744 12.952 12.872 13 13 13C13.128 13 13.256 12.951 13.354 12.854L16.354 9.854C16.497 9.711 16.54 9.496 16.462 9.309Z\" fill=\"#5F6368\"/></g></svg>',\r\n crown: '<svg id=\"crown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M1 14H23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M23 3L18 7L12 1L6 7L1 3V16C1 16.5304 1.21071 17.0391 1.58579 17.4142C1.96086 17.7893 2.46957 18 3 18H21C21.5304 18 22.0391 17.7893 22.4142 17.4142C22.7893 17.0391 23 16.5304 23 16V3Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n logoWhatsapp: '<svg id=\"logoWhatsapp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path stroke-width=\"0\" d=\"M0.0537109 24L1.74142 17.8373C0.700401 16.0338 0.152611 13.9878 0.153461 11.8918C0.156091 5.33464 5.49279 0 12.0499 0C15.2323 0.00127 18.2192 1.23986 20.4652 3.48773C22.7113 5.73561 23.9476 8.7236 23.9463 11.9013C23.9437 18.4585 18.6065 23.7938 12.0501 23.7938H12.0452C10.0541 23.793 8.09776 23.2937 6.36018 22.3463L0.0537109 24ZM6.65235 20.1932L7.01342 20.4074C8.53152 21.3081 10.2718 21.7845 12.046 21.7852H12.05C17.4999 21.7852 21.9355 17.351 21.9377 11.9005C21.9388 9.25935 20.9112 6.77584 19.0444 4.90748C17.1776 3.03912 14.6949 2.00959 12.0539 2.00858C6.59989 2.00858 2.16421 6.44251 2.16203 11.8926C2.16127 13.7602 2.68404 15.5792 3.67381 17.153L3.90894 17.527L2.91003 21.1746L6.65235 20.1932Z\" fill=\"#5F6368\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.07685 6.92043C8.83559 6.34098 8.59052 6.41938 8.40806 6.4103C8.23488 6.40168 8.03652 6.39986 7.83836 6.39986C7.6402 6.39986 7.31818 6.47422 7.0457 6.77169C6.77324 7.06918 6.00537 7.7881 6.00537 9.25069C6.00537 10.7133 7.07048 12.1263 7.21911 12.3246C7.36772 12.523 9.31513 15.5244 12.297 16.8116C13.0061 17.1177 13.5598 17.3005 13.9915 17.4375C14.7036 17.6637 15.3516 17.6318 15.8638 17.5553C16.4349 17.47 17.6224 16.8364 17.8701 16.1423C18.1178 15.4481 18.1178 14.8532 18.0435 14.7292C17.9692 14.6053 17.7711 14.5309 17.4738 14.3822C17.1766 14.2334 15.7152 13.5145 15.4427 13.4154C15.1702 13.3162 14.9721 13.2666 14.7739 13.5641C14.5758 13.8616 14.0061 14.5309 13.8327 14.7292C13.6593 14.9276 13.4859 14.9524 13.1887 14.8036C12.8914 14.6549 11.9337 14.3411 10.7983 13.3287C9.91467 12.5408 9.31806 11.5676 9.14467 11.2702C8.97128 10.9727 9.12623 10.8118 9.27503 10.6637C9.40873 10.5306 9.57226 10.3166 9.72089 10.1431C9.8695 9.96958 9.91905 9.84563 10.0181 9.64733C10.1172 9.449 10.0677 9.27547 9.99335 9.12673C9.91903 8.978 9.32457 7.51538 9.07685 6.92043Z\" fill=\"#5F6368\"/></svg>',\r\n tagLoyalty: '<svg id=\"tagLoyalty\" width=\"24\" height=\"24\" viewBox=\"0 0 20 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"Group\"><path id=\"Vector\" d=\"M9 22H1V8L8 1L15 8V10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_2\" d=\"M8 11C9.10457 11 10 10.1046 10 9C10 7.89543 9.10457 7 8 7C6.89543 7 6 7.89543 6 9C6 10.1046 6.89543 11 8 11Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path id=\"Vector_3\" d=\"M18.361 14.631C17.388 13.67 15.764 13.827 15 14.964C14.235 13.826 12.611 13.671 11.639 14.631C10.787 15.473 10.787 16.838 11.639 17.679L15 21L18.361 17.679C19.213 16.838 19.213 15.473 18.361 14.631Z\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></svg>',\r\n\r\n //Navigation\r\n slideRight: '<svg id=\"slideRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12H21\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 20H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 4H11\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 17L22 12L17 7\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n slideLeft: '<svg id=\"slideLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H3\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 4H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M22 20H13\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 7L2 12L7 17\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmLeft: '<svg id=\"arrowSmLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 16L10 12L14 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmRight: '<svg id=\"arrowSmRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 8L14 12L10 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowSmDown: '<svg id=\"arrowSmDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 10L12 14L8 10\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n caretSmUp: '<svg id=\"caretSmUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 14L12 10L16 14\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlDown: '<svg id=\"ctrlDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1 8L12 16L23 8\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlUp: '<svg id=\"ctrlUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23 16L12 8L1 16\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlRight: '<svg id=\"ctrlRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 1L16 12L8 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n ctrlLeft: '<svg id=\"ctrlLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 1L8 12L16 23\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowDown: '<svg id=\"arrowDown\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 2V22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 15L12 22L5 15\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowUp: '<svg id=\"arrowUp\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 22V2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 9L12 2L19 9\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowRight: '<svg id=\"arrowRight\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 12H22\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 5L22 12L15 19\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>',\r\n arrowLeft: '<svg id=\"arrowLeft\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 12H2\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 19L2 12L9 5\" stroke=\"#5F6368\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>', \r\n doubleArrowLeft: '<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.389 9.389a0.55 0.55 0 0 0 0 -0.778L1.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.389 9.389a0.55 0.55 0 0 0 0 -0.778L5.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"\"/></svg>', \r\n doubleArrowRight: '<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" transform=\"matrix(-1,0,0,1,0,0)\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.389 9.389a0.55 0.55 0 0 0 0 -0.778L1.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.389 9.389a0.55 0.55 0 0 0 0 -0.778L5.778 5l3.611 -3.611a0.55 0.55 0 1 0 -0.778 -0.778l-4 4a0.55 0.55 0 0 0 0 0.778l4 4a0.55 0.55 0 0 0 0.778 0Z\" fill=\"#202124\" stroke-width=\"0\"></path></svg>'\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { wappingIcons } from '../icons';\r\n\r\n@Component({\r\n selector: 'w-icons',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WIconsComponent implements OnInit, AfterViewInit{\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 constructor(private element: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.element.nativeElement.innerHTML = wappingIcons[this.name] || null;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if(this.width)\r\n svgElement.setAttribute('width', this.width.toString()); \r\n\r\n if(this.height)\r\n svgElement.setAttribute('height', this.height.toString());\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\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('stroke', fillColor);\r\n\r\n const fillAttribute = path.getAttribute('fill');\r\n if (fillAttribute) {\r\n path.setAttribute('fill', fillColor);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","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\"><rect width=\"163.424\" height=\"32\" fill=\"white\"/><g clip-path=\"url(#clip0_6230_1938)\"><path d=\"M26.26 4.78003C30.85 4.78003 34.84 7.21003 35.44 12.1H31.78C31.36 9.25003 28.81 7.84003 26.26 7.84003C21.7 7.84003 19.75 11.98 19.75 16C19.75 20.2 21.67 24.16 26.38 24.16C30.1 24.16 32.17 21.94 32.26 18.28H26.56V15.43H35.68V26.71H33.28L32.71 24.19C30.88 26.29 29.05 27.22 26.26 27.22C19.87 27.22 16 22.09 16 16C16 9.91003 19.87 4.78003 26.26 4.78003Z\" fill=\"black\"/><path d=\"M50.0737 4.78003C55.0237 4.78003 58.6837 7.57003 59.1637 12.1H55.4137C54.6637 9.25003 52.8937 7.84003 50.0737 7.84003C45.9937 7.84003 43.5637 11.23 43.5637 16C43.5637 20.74 45.9637 24.16 50.0737 24.16C53.1337 24.16 55.1437 22 55.5337 18.55H59.1937C58.8037 23.68 55.3537 27.22 50.0737 27.22C47.0437 27.22 44.5837 26.14 42.6637 24.04C40.7737 21.91 39.8137 19.21 39.8137 16C39.8137 9.88003 43.6237 4.78003 50.0737 4.78003Z\" fill=\"black\"/><path d=\"M61.9441 5.29003H66.4141L71.2741 12.85L76.3441 5.29003H80.5441L73.4641 15.61L81.0541 26.71H76.4941L71.1541 18.52L65.7241 26.71H61.4341L69.0241 15.61L61.9441 5.29003Z\" fill=\"black\"/></g><rect width=\"30\" height=\"1\" transform=\"matrix(0 -1 1 0 89.0542 31)\" fill=\"black\"/><g clip-path=\"url(#clip1_6230_1938)\"><path d=\"M100.75 3.02393C101.974 3.02393 102.926 3.69593 103.134 4.91993H102.59C102.518 4.21593 101.782 3.48793 100.75 3.48793C99.2382 3.48793 98.5982 4.75193 98.5982 5.99993C98.5982 7.26393 99.2462 8.51193 100.75 8.51193C101.926 8.51193 102.726 7.73593 102.726 6.46393V6.41593H100.782V5.95193H103.206V8.85593H102.814L102.742 7.81593H102.726C102.374 8.56793 101.654 8.97593 100.75 8.97593C98.9822 8.97593 98.0542 7.60793 98.0542 5.99993C98.0542 4.43193 98.9502 3.02393 100.75 3.02393Z\" fill=\"black\"/><path d=\"M104.576 3.14393H105.12V8.39193H108.32V8.85593H104.576V3.14393Z\" fill=\"black\"/><path d=\"M111.585 3.02393C113.361 3.02393 114.273 4.41593 114.273 5.99993C114.273 7.54393 113.393 8.97593 111.585 8.97593C109.801 8.97593 108.889 7.59193 108.889 5.99993C108.889 4.42393 109.793 3.02393 111.585 3.02393ZM109.433 5.99993C109.433 7.25593 110.081 8.51193 111.585 8.51193C113.073 8.51193 113.729 7.26393 113.729 5.99993C113.729 4.75993 113.097 3.48793 111.577 3.48793C110.137 3.48793 109.433 4.67193 109.433 5.99993Z\" fill=\"black\"/><path d=\"M115.442 3.14393H117.858C118.946 3.14393 119.69 3.56793 119.69 4.53593C119.69 5.12793 119.322 5.67993 118.698 5.82393V5.83993C119.434 5.93593 119.906 6.48793 119.906 7.23193C119.906 8.28793 119.186 8.85593 117.866 8.85593H115.442V3.14393ZM115.986 5.64793H117.866C118.658 5.64793 119.146 5.26393 119.146 4.67993C119.146 3.95993 118.706 3.60793 117.85 3.60793H115.986V5.64793ZM115.986 8.39193H117.866C118.826 8.39193 119.362 8.03193 119.362 7.21593C119.362 6.48793 118.826 6.11193 117.858 6.11193H115.986V8.39193Z\" fill=\"black\"/><path d=\"M122.77 3.14393H123.378L125.618 8.85593H125.034L124.338 7.07993H121.738L121.05 8.85593H120.466L122.77 3.14393ZM123.05 3.68793L121.906 6.61593H124.154L123.05 3.68793Z\" fill=\"black\"/><path d=\"M126.457 3.14393H127.001V8.39193H130.201V8.85593H126.457V3.14393Z\" fill=\"black\"/><path d=\"M100.75 13.0239C101.87 13.0239 102.902 13.7119 103.046 14.8719H102.502C102.31 13.9999 101.59 13.4879 100.75 13.4879C99.2542 13.4879 98.5982 14.7279 98.5982 15.9999C98.5982 17.2239 99.2222 18.5119 100.75 18.5119C101.742 18.5119 102.47 17.7679 102.582 16.6799H103.126C102.974 18.1199 102.054 18.9759 100.75 18.9759C98.9742 18.9759 98.0542 17.5999 98.0542 15.9999C98.0542 14.4479 98.9342 13.0239 100.75 13.0239Z\" fill=\"black\"/><path d=\"M104.223 13.1439H104.767V16.6879C104.767 17.8399 105.239 18.5119 106.439 18.5119C107.591 18.5119 108.119 17.9119 108.119 16.6799V13.1439H108.663V16.7839C108.663 18.1199 107.903 18.9759 106.439 18.9759C104.943 18.9759 104.223 18.0719 104.223 16.7839V13.1439Z\" fill=\"black\"/><path d=\"M111.932 13.0239C113.14 13.0239 114.052 13.6719 114.052 14.7999H113.508C113.468 13.9519 112.788 13.4879 111.94 13.4879C111.164 13.4879 110.516 13.8079 110.516 14.6239C110.516 15.2159 110.996 15.3999 111.316 15.4799L112.708 15.8239C113.812 16.0959 114.252 16.5839 114.252 17.3439C114.252 17.9039 113.948 18.9759 112.068 18.9759C110.66 18.9759 109.788 18.3279 109.788 17.1199V16.9759H110.332V17.0239C110.332 18.0719 111.044 18.5119 112.18 18.5119C112.828 18.5119 113.708 18.1679 113.708 17.3519C113.708 16.8319 113.308 16.5119 112.564 16.3279L111.26 16.0079C110.412 15.7999 109.972 15.3999 109.972 14.6319C109.972 13.9839 110.42 13.0239 111.932 13.0239Z\" fill=\"black\"/><path d=\"M114.819 13.1439H119.347V13.6079H117.355V18.8559H116.811V13.6079H114.819V13.1439Z\" fill=\"black\"/><path d=\"M122.592 13.0239C124.368 13.0239 125.28 14.4159 125.28 15.9999C125.28 17.5439 124.4 18.9759 122.592 18.9759C120.808 18.9759 119.896 17.5919 119.896 15.9999C119.896 14.4239 120.8 13.0239 122.592 13.0239ZM120.44 15.9999C120.44 17.2559 121.088 18.5119 122.592 18.5119C124.08 18.5119 124.736 17.2639 124.736 15.9999C124.736 14.7599 124.104 13.4879 122.584 13.4879C121.144 13.4879 120.44 14.6719 120.44 15.9999Z\" fill=\"black\"/><path d=\"M126.434 13.1439H127.234L129.21 18.1519L131.178 13.1439H131.978V18.8559H131.434V13.9199H131.418L129.466 18.8559H128.954L126.994 13.9199H126.978V18.8559H126.434V13.1439Z\" fill=\"black\"/><path d=\"M133.434 13.1439H137.378V13.6079H133.978V15.6719H137.162V16.1359H133.978V18.3919H137.418V18.8559H133.434V13.1439Z\" fill=\"black\"/><path d=\"M138.496 13.1439H141.096C142.12 13.1439 142.848 13.6479 142.848 14.6319C142.848 15.3919 142.44 15.9439 141.736 16.0879V16.1039C142.632 16.2239 142.72 16.9359 142.744 17.5359C142.76 17.9279 142.784 18.6079 143 18.8559H142.4C142.28 18.6719 142.264 18.1919 142.24 17.8079C142.208 17.2479 142.12 16.8879 141.928 16.6399C141.752 16.4159 141.488 16.3199 141.184 16.3199H139.04V18.8559H138.496V13.1439ZM139.04 15.8559H141.08C141.72 15.8559 142.304 15.4479 142.304 14.7439C142.304 14.0079 141.856 13.6079 141.08 13.6079H139.04V15.8559Z\" fill=\"black\"/><path d=\"M98.3262 23.1439H102.27V23.6079H98.8702V25.6719H102.054V26.1359H98.8702V28.3919H102.31V28.8559H98.3262V23.1439Z\" fill=\"black\"/><path d=\"M102.836 23.1439H103.476L105.092 25.5359L106.764 23.1439H107.372L105.42 25.9279L107.484 28.8559H106.828L105.092 26.3359L103.332 28.8559H102.716L104.772 25.9119L102.836 23.1439Z\" fill=\"black\"/><path d=\"M108.302 23.1439H110.846C111.83 23.1439 112.534 23.7119 112.534 24.7759C112.534 25.8639 111.798 26.4079 110.846 26.4079H108.846V28.8559H108.302V23.1439ZM108.846 25.9439H110.726C111.47 25.9439 111.99 25.5759 111.99 24.7759C111.99 24.0639 111.574 23.6079 110.71 23.6079H108.846V25.9439Z\" fill=\"black\"/><path d=\"M113.661 23.1439H117.605V23.6079H114.205V25.6719H117.389V26.1359H114.205V28.3919H117.645V28.8559H113.661V23.1439Z\" fill=\"black\"/><path d=\"M118.723 23.1439H121.323C122.347 23.1439 123.075 23.6479 123.075 24.6319C123.075 25.3919 122.667 25.9439 121.963 26.0879V26.1039C122.859 26.2239 122.947 26.9359 122.971 27.5359C122.987 27.9279 123.011 28.6079 123.227 28.8559H122.627C122.507 28.6719 122.491 28.1919 122.467 27.8079C122.435 27.2479 122.347 26.8879 122.155 26.6399C121.979 26.4159 121.715 26.3199 121.411 26.3199H119.267V28.8559H118.723V23.1439ZM119.267 25.8559H121.307C121.947 25.8559 122.531 25.4479 122.531 24.7439C122.531 24.0079 122.083 23.6079 121.307 23.6079H119.267V25.8559Z\" fill=\"black\"/><path d=\"M124.419 23.1439H124.963V28.8559H124.419V23.1439Z\" fill=\"black\"/><path d=\"M126.473 23.1439H130.417V23.6079H127.017V25.6719H130.201V26.1359H127.017V28.3919H130.457V28.8559H126.473V23.1439Z\" fill=\"black\"/><path d=\"M131.527 23.1439H132.135L135.463 27.9759H135.479V23.1439H136.023V28.8559H135.415L132.087 24.0239H132.071V28.8559H131.527V23.1439Z\" fill=\"black\"/><path d=\"M139.912 23.0239C141.032 23.0239 142.064 23.7119 142.208 24.8719H141.664C141.472 23.9999 140.752 23.4879 139.912 23.4879C138.416 23.4879 137.76 24.7279 137.76 25.9999C137.76 27.2239 138.384 28.5119 139.912 28.5119C140.904 28.5119 141.632 27.7679 141.744 26.6799H142.288C142.136 28.1199 141.216 28.9759 139.912 28.9759C138.136 28.9759 137.216 27.5999 137.216 25.9999C137.216 24.4479 138.096 23.0239 139.912 23.0239Z\" fill=\"black\"/><path d=\"M143.441 23.1439H147.385V23.6079H143.985V25.6719H147.169V26.1359H143.985V28.3919H147.425V28.8559H143.441V23.1439Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_6230_1938\"><rect width=\"65.0541\" height=\"22.44\" fill=\"white\" transform=\"translate(16 4.78003)\"/></clipPath><clipPath id=\"clip1_6230_1938\"><rect width=\"49.3704\" height=\"25.952\" fill=\"white\" transform=\"translate(98.0542 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 `,\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WLogosComponent implements OnInit, AfterViewInit{\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 constructor(private element: ElementRef) { }\r\n \r\n ngOnInit(): void {\r\n this.element.nativeElement.innerHTML = wappingLogos[this.name] || null; \r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if(this.width)\r\n svgElement.setAttribute('width', this.width.toString()); \r\n\r\n if(this.height)\r\n svgElement.setAttribute('height', this.height.toString());\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\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 = true;\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 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","<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 (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 (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 [disabled]=\"disabled\" [(ngModel)]=\"ngModelValue\" (onChange)=\"onOptionSelected()\" [showClear]=\"showClear\"\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 [disabled]=\"disabled\" [(ngModel)]=\"ngModelValue\" (onChange)=\"onOptionSelected()\" [showClear]=\"showClear\"\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}\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}\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}\r\n\r\nexport enum AddressEnum{\r\n Country = 1,\r\n AreaLevel1 = 2,\r\n AreaLevel2 = 3,\r\n Locality = 4,\r\n PostalCode = 5\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 { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { WDatePipeFormatType } from '../models/enums.model';\r\n\r\n@Pipe({\r\n name: 'wappDate'\r\n})\r\nexport class WDatePipe implements PipeTransform {\r\n\r\n transform(date: Date | number | string, format?: WDatePipeFormatType | \"\", locale?: any) {\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\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}","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 { TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\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 selectedElements: any[] = [];\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('rowsPerPage') rowsPerPage: 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\r\n @ViewChild('filter') filter!: ElementRef;\r\n @ViewChild('table') dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n ) { }\r\n\r\n ngOnInit(): void { }\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 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 }\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.selectAll = true;\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\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 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 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.customButtonConfig?.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","<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]=\"true\" [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]=\"wappTableObject.hasSelectableRow ? 'p-selectable-row' : ''\" (click)=\"wappTableObject.hasSelectableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableObject.columnTypes!\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox\" [style]=\"'width: '+wappTableObject.columnWidths![i]\"\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | currency }}\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)=\"viewElement(element)\" class=\"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.Boolean\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"viewElement(element)\" class=\"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.Date\" \r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-selectable-row\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate : wappDateFormat.G }}\r\n </td>\r\n </ng-template>\r\n <td *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton || wappTableObject?.hasEditButton || wappTableObject?.hasCopyButton || wappTableObject?.hasDeleteButton || wappTableObject?.hasViewButton\">\r\n <div class=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"viewElement(element)\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton && !wappTableObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.disableProperty\" \r\n pButton pRipple (click)=\"customElement(element)\" [disabled]=\"readProperty(element, wappTableObject.customButtonConfig?.disableProperty!)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"editElement(element)\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <span *ngIf=\"wappTableObject?.hasDeleteButton\">\r\n <button *ngIf=\"wappTableObject.disableDeleteProperty; else noDisableDelete\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <ng-template #noDisableDelete>\r\n <button *ngIf=\"!wappTableObject?.disableDelete && !wappTableObject.disableDeleteProperty\" \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </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=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableObject?.hasViewButton\" \r\n pButton pRipple \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject.customButtonConfig?.hasCustomButton\"\r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.customTooltip!\"\r\n [icon]=\"wappTableObject.customButtonConfig?.icon!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasEditButton\" \r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasCopyButton\" \r\n pButton pRipple \r\n [pTooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableObject?.hasDeleteButton\" \r\n pButton pRipple\r\n [pTooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n</div>\r\n<p-confirmPopup></p-confirmPopup>","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 { TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\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\r\n @ViewChild('table', { static: false }) dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\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 }\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\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 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.customButtonConfig?.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","<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 (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]=\"true\"\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></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.customButtonConfig?.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.customButtonConfig?.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\">\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | currency }}\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)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n <w-badge *ngIf=\"!coloredBadge || (coloredBadge && !readProperty(element, wappTableLazyLoadingObject.coloredBadge?.coloredBadgeProperty!)); else coloredBadge\" \r\n [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"'info'\">\r\n </w-badge> \r\n <ng-template #coloredBadge>\r\n <w-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"wappTableLazyLoadingObject.coloredBadge?.color!\"></w-badge> \r\n </ng-template>\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)=\"viewElement(element)\" class=\"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.Date\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"viewElement(element)\" class=\"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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ 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)=\"viewElement(element)\" class=\"w-table-lazy-selectable-row\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate : wappDateFormat.G }}\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"flex justify-content-end align-items-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\" \r\n pButton pRipple (click)=\"viewElement(element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\" \r\n icon=\"pi pi-eye\" class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton && !wappTableLazyLoadingObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.customButtonConfig?.hasCustomButton && wappTableLazyLoadingObject.customButtonConfig?.disableProperty\"\r\n pButton pRipple (click)=\"customElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.customButtonConfig?.disableProperty!)\"\r\n [icon]=\"wappTableLazyLoadingObject.customButtonConfig?.icon!\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n class=\"p-button-text p-button-info mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && wappTableLazyLoadingObject.disableEditProperty\" \r\n pButton pRipple (click)=\"editElement(element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\" \r\n pButton pRipple (click)=\"confirmCopy($event, element)\" \r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-copy\" class=\"p-button-text p-button-help mr-2\">\r\n </button>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\">\r\n <button *ngIf=\"wappTableLazyLoadingObject.disableDeleteProperty; else noDisableDelete\" \r\n pButton pRipple (click)=\"confirmDelete($event, element)\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n <ng-template #noDisableDelete>\r\n <button pButton pRipple (click)=\"confirmDelete($event, element)\"\r\n [pTooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </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=\"flex justify-content-end\">\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\" \r\n pButton pRipple\r\n icon=\"pi pi-pencil\" class=\"p-button-text p-button-success mr-2\">\r\n </button>\r\n <button *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\" \r\n pButton pRipple\r\n icon=\"pi pi-trash\" class=\"p-button-text p-button-danger\">\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <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 \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\">Wapping Networks S.L. © {{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 = true;\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 \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\" [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\r\n}\r\n","<div class=\"w-panel-title w-panel-title-text\">{{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 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\">\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\" [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 @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}\">\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 *ngIf=\"showButtonBack\" class=\"flex\">\r\n <w-button class=\"flex align-items-center justify-content-center\" type=\"text\" icon=\"pi-arrow-left\" (onClick)=\"onButtonBack($event)\"></w-button>\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('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 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 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 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 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 \"\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 \"\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{maxErrorDescription}}</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 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 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.qbfilterField.sqlGetListValues).pipe(\r\n map(values => {\r\n const arrayOfValues = Object.keys(values).map((key: any) => ({\r\n name: values[key],\r\n value: +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, sqlValueList: string): Observable<string[]> {\r\n let url = `${commonDataApiUrl}/fields/${sqlValueList}/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 { 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\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","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 \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>","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=\"right\" \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=\"right\" \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 @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('minDate') minDate!: Date;\r\n @Input('maxDate') maxDate!: Date;\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\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\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\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\" class=\"w-edit-calendar-styles 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-calendar [ngClass]=\"{'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched}\"\r\n [ngClass]=\"{'w-edit-calendar-small' : size == getSizeName(sizeType.small),\r\n 'w-edit-calendar-medium' : size == getSizeName(sizeType.medium)}\"\r\n appendTo=\"body\"\r\n inputId=\"time\" placeholder=\"{{placeholder}}\"\r\n [showTime]=\"showTime\"\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 (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]=\"{'w-edit-calendar-medium-display-block' : displayInlineBlock}\">\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 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 (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 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()\" [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()\" [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()\" [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()\" [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()\" [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\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 };\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')) {\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 defaultValue: 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);\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);\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 initQueryBuilder(filterEntities: QbFilterEntity[]) {\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).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 0;\r\n }\r\n if(type == this.qbDataTypeEnum.BooleanSelect) {\r\n return 0;\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 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}\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=\"flex justify-content-end button-gap\">\r\n <w-button [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-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 <div *ngIf=\"!isAdvancedSearch; else advancedView\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n </div>\r\n <ng-template #advancedView>\r\n <ng-container *ngTemplateOutlet=\"advanced\"></ng-container>\r\n </ng-template>\r\n\r\n <div class=\"flex justify-content-end button-gap\" [class.pt-3]=\"isAdvancedSearch\">\r\n <w-button [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button [label]=\"translationsObject.searchButtonLabel\" 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 [label]=\"translationsObject.advancedSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <div 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-4 text-left 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-edit-calendar\" style=\"width: 100%;\">\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\" [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-basic-query-builder-input-width\">\r\n <p-inputNumber inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\" w-filter-panel-basic-query-builder-input-width 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-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 <p-inputNumber [useGrouping]=\"false\" inputStyleClass=\"flex flex-1\" styleClass=\"flex flex-1\" class=\" w-filter-panel-basic-query-builder-input-width 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 </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <input class=\" w-filter-panel-basic-query-builder-input-width 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 </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 </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 class=\"mb-2\" [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <query-builder #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 <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" *ngIf=\"addRuleSet\" (onClick)=\"addRuleSet()\"></w-button>\r\n <w-button class=\"mr-2\" [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" *ngIf=\"removeRuleSet\" (onClick)=\"removeRuleSet()\"></w-button>\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 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\">\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 <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 </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"query-builder-field-width\">\r\n <p-dropdown class=\"field-gap 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 <!-- <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=\"query-builder-operator-width\">\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=\"query-builder-input-width\">\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\"></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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\r\n <p-dropdown 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 </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=\"query-builder-input-width 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=\"query-builder-input-width\">\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 <input class=\"field-gap query-builder-input-width 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 </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=\"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.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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\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 </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 [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 mb-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 *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 <p-dropdown class=\"mr-3 w-edit-select-small\" *ngIf=\"filterPanelObject.enityMode\" 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\">\r\n <span class=\"query-builder-field-width\">\r\n <p-dropdown class=\"mr-3 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=\"query-builder-operator-width\">\r\n <p-dropdown class=\"mr-3 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=\"mr-3\" 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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\r\n <p-inputNumber class=\"mr-3\" [(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=\"query-builder-input-width\">\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=\"query-builder-input-width\">\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 <input class=\"mr-3 query-builder-input-width w-edit-input-text-small-height wapp-input\" type=\"text\" pInputText [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\"/>\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 mb-3\">\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() {\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=\"png\"\r\n [roundCropper]=\"roundedCropper\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded()\"\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 { AfterViewInit, 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\nimport { WIconsComponent } from '../../icons/wapping-icons/w-icons.component';\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 }\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\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 \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\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0){\r\n this.disableMoveButtons = true; \r\n this.updateImage(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.isDeletingMultiMode = false;\r\n this.onDeleteImage.emit(image);\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.onDeleteImage.emit(image);\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 if((img.base64 != undefined)){\r\n if(img.base64 == image.base64){\r\n return img.index; \r\n }\r\n }else if(img[this.identificatorName] !== image[this.identificatorName]){\r\n return img.index; \r\n }\r\n return -1; \r\n });\r\n\r\n if(imageIndex+1 == this.imagesAlreadyUploaded.length){\r\n this.activeIndexGallery = imageIndex-1; \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 return this.imagesAlreadyUploaded.indexOf(img);\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 (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; /* width: 300px; height: 300px; */\">\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-column justify-content-center align-items-center\" style=\"cursor: pointer;\"\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 <span class=\"textSoftColor text-center\">\r\n {{imageUploadConfig.contentSubheaderLabel}}\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 [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;\">\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\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-gile-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\" class=\"w-image-file-uploader-multi-action-button\" [ngClass]=\"{'w-image-gile-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-column justify-content-center align-items-center\" \r\n style=\"cursor: pointer;\" \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 <span class=\"textSoftColor text-center\">\r\n {{imageUploadConfig.contentSubheaderLabel}}\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('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 tokenType: models.TokenType.Aad,\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 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('styleClass') styleClass: string = \"w-full md:w-4 lg:w-4\";\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\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\" [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\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\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]=\"true\"\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\" [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.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.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) | currency }}\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 {{ 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 {{ 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 {{ 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 {{ 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 {{ 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=\"flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\r\n </span>\r\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\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]=\"true\"\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=\"flex justify-content-end\">\r\n <span *ngFor=\"let button of wappTreeTableObject.actionButtons\">\r\n <p-button [icon]=\"'pi '+ button.icon\" (click)=\"actionButtonClicked(button.id, rowData)\" [pTooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [styleClass]=\"button.styleClass!\"></p-button>\r\n </span>\r\n <p-button *ngIf=\"wappTreeTableObject.hasDeleteButton\" icon=\"pi pi-trash\" (click)=\"confirmDeleteSelected($event, rowData)\" [pTooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\" class=\"px-2\" styleClass=\"p-button-text p-button-danger\"></p-button>\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>","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 [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 [(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\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","\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\r\n <p-checkbox\r\n [binary]=\"true\"\r\n class=\"flex align-items-center\"\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 class=\"w-edit-checkbox-small-label\" [label]=\"label\" [required]=\"formControl.hasError('required')\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></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 class=\"w-edit-checkbox-small-label\" [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" *ngIf=\"showLabel\"></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 { AddressMaps } from 'wapping-components';\r\nimport { WAddress } from '../../shared/models/w-address.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<AddressMaps>();\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: AddressMaps = {} as AddressMaps;\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(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 { MenuItem, MessageService } from 'primeng/api';\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 activeIndex: number = 0;\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('confirmButtonLabel') confirmButtonLabel!: string;\r\n @Input('confirmButtonIcon') confirmButtonIcon!: string;\r\n @Input('secondaryConfirmButtonLabel') secondaryConfirmButtonLabel!: string;\r\n @Input('secondaryConfirmButtonIcon') secondaryConfirmButtonIcon!: string;\r\n @Input('isReadOnly') isReadOnly: boolean = true;\r\n @Input('formGroup') formGroup!: FormGroup;\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(public messageService: MessageService) {}\r\n\r\n onActiveIndexChange(event:any) {\r\n this.activeIndex = event;\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\" [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\" [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-arrow-left'\" \r\n type=\"secondary\" \r\n [label]=\"previousBtnLabel\" \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 [label]=\"nextBtnLabel\" \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]=\"formGroup && !formGroup.valid\" \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]=\"formGroup && !formGroup.valid\" \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 { Component, Input } from '@angular/core';\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 {\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 \r\n}\r\n","<p-tabView [(activeIndex)]=\"activeIndex\" styleClass=\"tabview-custom\">\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-content *ngIf=\"activeIndex == 0\" select=\".panel-1\"></ng-content>\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-content *ngIf=\"activeIndex == 1\" select=\".panel-2\"></ng-content>\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-content *ngIf=\"activeIndex == 2\" select=\".panel-3\"></ng-content>\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-content *ngIf=\"activeIndex == 3\" select=\".panel-4\"></ng-content>\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-content *ngIf=\"activeIndex == 4\" select=\".panel-5\"></ng-content>\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-content *ngIf=\"activeIndex == 5\" select=\".panel-6\"></ng-content>\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-content *ngIf=\"activeIndex == 6\" select=\".panel-7\"></ng-content>\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-content *ngIf=\"activeIndex == 7\" select=\".panel-8\"></ng-content>\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-content *ngIf=\"activeIndex == 8\" select=\".panel-9\"></ng-content>\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-content *ngIf=\"activeIndex == 9\" select=\".panel-10\"></ng-content>\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\r\n checkEmptyValue(value: any){\r\n if(value == null || value == \"\" || value == undefined){\r\n return '-'; \r\n }else{\r\n return value; \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\">\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 <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\">\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.css']\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","<div class=\"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 m-2\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-chevron-down\" class=\"p-button-rounded p-button-text\"></button>\r\n <p-selectButton [options]=\"stateOptions\" optionLabel=\"label\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2 gap-3\">\r\n <p-button [label]=\"rule\" styleClass=\"p-button-outlined\" icon=\"pi pi-plus\"></p-button>\r\n <p-button [label]=\"ruleSet\" styleClass=\"p-button-outlined\" icon=\"pi pi-plus\"></p-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=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"4rem\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2\">\r\n <p-button styleClass=\"p-button-outlined p-button-danger\" icon=\"pi pi-times\"></p-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=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"8rem\"></p-skeleton></div>\r\n <div class=\"p-3 p-0 p-dropdown list-none bg-white\"><p-skeleton width=\"4rem\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center m-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center m-2\">\r\n <p-button styleClass=\"p-button-outlined p-button-danger\" icon=\"pi pi-times\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\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 { 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 value!: number[];\r\n @Input('translations') translations!: string[];\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: 7, 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]=\"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 { 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('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\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 (onSelect)=\"onValue($event)\" \r\n dateFormat=\"dd/MM\" \r\n [dataType]=\"dataType\">\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 dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\">\r\n </p-calendar>\r\n </div>\r\n</ng-template>\r\n","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\n\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\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 { 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\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 WSummaryPipe,\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 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 ],\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 ],\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 WSummaryPipe,\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 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 ],\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/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\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\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\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.WInputLabelComponent","i3.WButtonComponent","i4","i5","i6","i8","i9","i10","i11","i12.WBadgeComponent","i13.WDatePipe","i12","i13.WBadgeComponent","i14.WDatePipe","i4.WButtonComponent","i5.WContainerComponent","i3.WIconsComponent","i4.WLogosComponent","i4.WPanelTitleComponent","i5.WPanelSubtitleComponent","i5.WButtonComponent","i1.ApiService","i4.WEditSelectComponent","i5.WEditMultiselectComponent","i2.ApiService","i3.SessionStorageService","i14.WButtonComponent","i15.WListFieldComponent","i16.WViewCardTitleTextComponent","i17.WToggleButtonComponent","i18.WSelectButtonComponent","i19.WEditCalendarComponent","i20.WAddressFieldComponent","i2.ModalService","i7","i9.WButtonComponent","i9.WIconsComponent","i10.WButtonComponent","i11.WInputLabelComponent","i4.WIconsComponent","i11.WBadgeComponent","i12.WDatePipe","i5.WIconsComponent","i6.WInputLabelComponent","i5.WPanelComponent","i6.WBodyGridComponent","i2.WInputLabelComponent","i4.WPanelComponent","i3.WPanelComponent","i4.WBodyContainerComponent","i5.WHeaderPanelComponent","i6.WSkeletonInputGenericComponent","i2.WPanelComponent","i3.WBodyContainerComponent","i4.WHeaderPanelComponent","i5.WPanelGridComponent","i2.WIconsComponent","i3.WInputLabelComponent","i2.WPanelGridComponent","i3.WSkeletonInputGenericComponent","i1.WPanelGridComponent","i2.WSkeletonInputGenericComponent","i2.WBadgeComponent"],"mappings":"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"}