sidesys-generic-ui 2.4.7 → 2.4.8

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":"sidesys-generic-ui.mjs","sources":["../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.component.ts","../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.component.html","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.component.ts","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.component.html","../../../projects/sidesys-generic-ui/src/lib/shared/image-loader.directive.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.component.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.component.html","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.component.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.component.html","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.component.ts","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.component.html","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.component.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.component.html","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.component.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.component.html","../../../projects/sidesys-generic-ui/src/lib/button/components/button/s-button.component.ts","../../../projects/sidesys-generic-ui/src/lib/button/components/button/s-button.component.html","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.component.ts","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.component.html","../../../projects/sidesys-generic-ui/src/lib/tooltip/directive/s-tooltip-directive.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.component.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.component.html","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.component.ts","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/components/s-notificaction.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/components/s-notification.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.component.html","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.module.ts","../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main-model.ts","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.model.ts","../../../projects/sidesys-generic-ui/src/lib/shared/shared.module.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.module.ts","../../../projects/sidesys-generic-ui/src/lib/input/directives/control-boolean-accessor.directive.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/checkbox-new/s-checkbox.component.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/checkbox-new/s-checkbox.component.html","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.module.ts","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.module.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.module.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.module.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu-model.ts","../../../projects/sidesys-generic-ui/src/lib/button/button.module.ts","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.module.ts","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.module.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu-model.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/index.ts","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.component.ts","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.component.html","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.module.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-type-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-layout-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/behavior/behavior-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/data-type/data-type-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/field/field-template-dto.ts","../../../projects/sidesys-generic-ui/src/lib/enums/theme.enum.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input-model.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/configFields/s-input-config.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/error-control/s-error-control.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/error-control/s-error-control.component.html","../../../projects/sidesys-generic-ui/src/lib/input/enums/icon-theme.enum.ts","../../../projects/sidesys-generic-ui/src/lib/input/directives/control-value-accessor.directive.ts","../../../projects/sidesys-generic-ui/src/lib/services/translate/translate.service.ts","../../../projects/sidesys-generic-ui/src/lib/shared/localstorage.service.ts","../../../projects/sidesys-generic-ui/src/lib/services/sidebarStateService/sidebarStateService.service.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/validation-error/s-validation-error.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/validation-error/s-validation-error.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input.component.html","../../../projects/sidesys-generic-ui/src/lib/select/s-select-service.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-simple/s-select-simple.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-simple/s-select-simple.component.html","../../../projects/sidesys-generic-ui/src/lib/animation/enums/animation.enum.ts","../../../projects/sidesys-generic-ui/src/lib/animation/animation.component.ts","../../../projects/sidesys-generic-ui/src/lib/animation/animation.component.html","../../../projects/sidesys-generic-ui/src/lib/animation/animation.module.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.component.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.component.html","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input-textarea/s-input-textarea.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-textarea/s-input-textarea.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/slider/s-slider.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/slider/s-slider.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/calendar/s-calendar.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/calendar/s-calendar.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/time/s-time.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/time/s-time.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/color/s-color.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/color/s-color.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input-number/s-input-number.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-number/s-input-number.component.html","../../../projects/sidesys-generic-ui/src/lib/input/input.module.ts","../../../projects/sidesys-generic-ui/src/lib/input/enums/size.enum.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple/s-select-multiple.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple/s-select-multiple.component.html","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select.component.html","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple-old/s-select-multiple-old.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple-old/s-select-multiple-old.component.html","../../../projects/sidesys-generic-ui/src/lib/link/s-link.component.ts","../../../projects/sidesys-generic-ui/src/lib/link/s-link.component.html","../../../projects/sidesys-generic-ui/src/lib/link/s-link.module.ts","../../../projects/sidesys-generic-ui/src/lib/select/s-select.module.ts","../../../projects/sidesys-generic-ui/src/lib/select/s-select-model.ts","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select-model.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.module.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card.component.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card.component.html","../../../projects/sidesys-generic-ui/src/lib/card/s-card.module.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card-models.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.module.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/field/field-option-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/group/group-field-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/group/group-templates-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-group-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/linked-field-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/formFilled/form-filled-dto.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.component.html","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/enums/ActionsButtonsType.enum.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/constants/actions-buttons.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.component.html","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.module.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.module.ts","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.component.ts","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.component.html","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.module.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.component.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.component.html","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/toggle-switch-form/toggle-switch-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/toggle-switch-form/toggle-switch-form.component.html","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.module.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/components/s-menu-item.component.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/components/s-menu-item.component.html","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.component.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.component.html","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.module.ts","../../../projects/sidesys-generic-ui/src/lib/content/s-content.component.ts","../../../projects/sidesys-generic-ui/src/lib/content/s-content.component.html","../../../projects/sidesys-generic-ui/src/lib/content/s-content.module.ts","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.component.ts","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.component.html","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.module.ts","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.component.ts","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.component.html","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.module.ts","../../../projects/sidesys-generic-ui/src/lib/list/s-list.component.ts","../../../projects/sidesys-generic-ui/src/lib/list/s-list.component.html","../../../projects/sidesys-generic-ui/src/lib/list/s-list.module.ts","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.component.ts","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.component.html","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.module.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/temperature/temperature.component.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.component.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.component.html","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.module.ts","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.component.ts","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.component.html","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.module.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast-service.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.component.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.component.html","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.module.ts","../../../projects/sidesys-generic-ui/src/lib/theme/s-theme.component.ts","../../../projects/sidesys-generic-ui/src/lib/theme/s-theme.module.ts","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.component.ts","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.component.html","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.module.ts","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.component.ts","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.component.html","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.module.ts","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.component.ts","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.component.html","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.module.ts","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.component.ts","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.component.html","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.module.ts","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.component.ts","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.component.html","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.module.ts","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.component.ts","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.component.html","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.module.ts","../../../projects/sidesys-generic-ui/src/lib/empty/empty.component.ts","../../../projects/sidesys-generic-ui/src/lib/empty/empty.component.html","../../../projects/sidesys-generic-ui/src/lib/empty/empty.module.ts","../../../projects/sidesys-generic-ui/src/lib/pipe/translate/translate.pipe.ts","../../../projects/sidesys-generic-ui/src/lib/bottom-status-bar/bottom-status-bar.component.ts","../../../projects/sidesys-generic-ui/src/lib/bottom-status-bar/bottom-status-bar.component.html","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.component.html","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.module.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/services/modal-confirm.service.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/models/modalType.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/modal-confirm.component.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/modal-confirm.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component.ts","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.component.ts","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.module.ts","../../../projects/sidesys-generic-ui/src/lib/container/s-container.component.ts","../../../projects/sidesys-generic-ui/src/lib/container/s-container.component.html","../../../projects/sidesys-generic-ui/src/lib/container/s-container.module.ts","../../../projects/sidesys-generic-ui/src/lib/redirect/redirect.component.ts","../../../projects/sidesys-generic-ui/src/lib/redirect/redirect.component.html","../../../projects/sidesys-generic-ui/src/lib/table-double/table-double.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-double/table-double.component.html","../../../projects/sidesys-generic-ui/src/lib/table-double-complete/table-double-complete.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-double-complete/table-double-complete.component.html","../../../projects/sidesys-generic-ui/src/sidesys-generic-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\ninterface StyleInterface {\n width?: string;\n height?: string;\n}\n@Component({\n selector: 's-company-logo',\n templateUrl: './s-company-logo.component.html',\n styleUrls: ['./s-company-logo.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCompanyLogoComponent implements OnInit, OnChanges {\n @Input() id?: string = 's-company-logo';\n @Input() width?: number = 100;\n @Input() height?: number = 36;\n @Input() customImage?: string;\n _style: StyleInterface = {};\n\n ngOnInit(): void {\n this.applyStyle();\n }\n\n ngOnChanges(): void {\n this.applyStyle();\n }\n\n applyStyle(): void {\n this._style = {\n width: this.width + 'px',\n height: this.height + 'px',\n };\n }\n}\n","<div *ngIf=\"!customImage\" class=\"s-company-logo\" [ngStyle]=\"_style\" [id]=\"id\"></div>\n<img *ngIf=\"customImage\" alt=\"\" src=\"{{ customImage }}\" [ngStyle]=\"_style\" />\n","import { Component, ElementRef, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SIcon } from './s-icon-material.model';\n\n@Component({\n selector: 's-icon-mat',\n templateUrl: './s-icon-material.component.html',\n styleUrls: ['./s-icon-material.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SIconMaterialComponent implements OnInit {\n @ViewChild('icon', { static: true }) Icon!: ElementRef;\n\n @Input() name?: SIcon['name'];\n @Input() size?: SIcon['size'] = 'md';\n @Input() fill: SIcon['fill'] = false;\n @Input() weight: SIcon['weight'] = 400;\n @Input() grade: SIcon['grade'] = 0;\n @Input() style?: SIcon['style'] = '';\n @Input() type: SIcon['type'] = 'icon';\n @Input() id?: string = 's-icon';\n\n optionsType!: string;\n fillTemp!: number;\n\n computedStyles: { [key: string]: string } = {};\n\n ngOnInit(): void {\n switch (this.type) {\n case 'symbol':\n this.optionsType = 'material-symbols-outlined';\n this.fillTemp = this.fill ? 1 : 0;\n this.computedStyles['font-variation-settings'] =\n `\"FILL\" ${this.fillTemp}, \"wght\" ${this.weight}, \"GRAD\" ${this.grade}`;\n break;\n case 'icon':\n this.optionsType = 'material-icons';\n break;\n }\n }\n}\n","<div #icon class=\"s-icon-mat\" [id]=\"id\">\n <span class=\"{{ size }}\" [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{ name }}</ng-container>\n </span>\n</div>\n","import { Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\nimport { SMenuMain } from './s-menu-main-model';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 's-menu-main',\n templateUrl: './s-menu-main.component.html',\n styleUrls: ['./s-menu-main.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SMenuMainComponent {\n\n @Input() menuMain: SMenuMain[] = [];\n open: boolean[] = [];\n clickInside: boolean = false;\n\n constructor(\n private router: Router\n ) {\n this.open = new Array(this.menuMain.length).fill(false);\n }\n\n keydownEvent(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n this.open[index] = !this.open[index];\n event.preventDefault();\n }\n }\n\n navigateToLink(event: KeyboardEvent, link: string | null) {\n if (event.key === 'Enter' && link) {\n this.router.navigate([link]);\n }\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n @HostListener(\"document:click\")\n clickedOut() {\n this.open = new Array(this.menuMain.length).fill(false);\n this.clickInside = false;\n }\n\n}\n","<div id=\"menu-main512\">\n <ul class=\"menu-main-ul\">\n <ng-container *ngFor=\"let item of menuMain; let i = index\">\n <li [tabindex]=\"item.link ? -1 : 0\"\n (keydown)=\"keydownEvent($event, i)\" \n *ngIf=\"!item.hidden\" \n title=\"{{item.title}}\" \n class=\"menu-main-li\">\n <ng-container *ngIf=\"item.link != undefined;\">\n <a (keydown)=\"navigateToLink($event, item.link ? item.link : null)\" routerLink=\"{{item.link? item.link : null}}\" routerLinkActive=\"active\" class=\"menu-main-master\">\n <span class=\"menu-main-title\">{{item.title}}\n <s-icon-mat *ngIf=\"item.children\" class=\"s-mat-icon-chevron d-flex\">chevron_right</s-icon-mat>\n </span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.link == undefined;\">\n <a routerLinkActive=\"active\" class=\"menu-main-master\">\n <span class=\"menu-main-title cursor\">{{item.title}} \n <s-icon-mat *ngIf=\"item.children\" class=\"s-mat-icon-chevron d-flex\">chevron_right</s-icon-mat>\n </span>\n </a>\n </ng-container>\n \n <ul *ngIf=\"item.children && !item.hidden\" class=\"menu-main-dropdown {{open[i] ? 'menu-main-dropdown--open' : 'menu-main-dropdown--close'}}\">\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <li (keydown)=\"navigateToLink($event, itemChildren.link ? itemChildren.link : null)\" *ngIf=\"!itemChildren.hidden\">\n <a routerLink=\"{{itemChildren.link ? itemChildren.link : null}}\" routerLinkActive=\"active\">\n <span class=\"menu-main-title\">{{itemChildren.title}}</span>\n </a>\n </li>\n </ng-container>\n </ul>\n </li>\n \n </ng-container>\n </ul>\n</div>","import { Directive, ElementRef, Renderer2, OnInit } from '@angular/core';\n\n@Directive({\n selector: 'img[appImageLoader]'\n})\nexport class ImageLoaderDirective implements OnInit {\n private readonly loadingClass = 'skeleton-loading';\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit(): void {\n this.showLoadingSkeleton();\n\n const imgElement: HTMLImageElement = this.el.nativeElement;\n imgElement.addEventListener('load', () => {\n this.hideLoadingSkeleton();\n });\n }\n\n private showLoadingSkeleton(): void {\n this.renderer.addClass(this.el.nativeElement, this.loadingClass);\n }\n\n private hideLoadingSkeleton(): void {\n this.renderer.removeClass(this.el.nativeElement, this.loadingClass);\n }\n}\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-avatar',\n templateUrl: './s-avatar.component.html',\n styleUrls: ['./s-avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SAvatarComponent implements OnInit {\n @Input() id?: string = 's-avatar';\n @Input() urlProfileImage?: string;\n @Input() letters?: string = 'NN';\n @Input()\n get status(): string {\n return this._status;\n }\n set status(val: any | undefined) {\n this._status =\n ['approved', 'declined', 'blocked', 'online', 'offline', 'busy'].indexOf(val) != -1 ? val : undefined;\n }\n @Input()\n get display(): string {\n return this._display;\n }\n set display(val: string | undefined) {\n this._display = val ? (['icon', 'avatar', 'letters'].indexOf(val) != -1 ? val : 'icon') : 'icon';\n }\n\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' = 'xxxl';\n\n _display: string = 'icon';\n _status: any = undefined;\n\n ngOnInit(): void {\n if (this.letters) this.letters = this.letters.substring(0, 2);\n }\n}\n","<div class=\"s-avatar no-select s-avatar--size-{{ size }}\" [id]=\"id\">\n <ng-container [ngSwitch]=\"status\">\n <!-- Type of status approved , declined , blocked , online , offline , busy -->\n <ng-container *ngSwitchCase=\"'approved'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">check_circle</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'declined'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">cancel</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'blocked'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">lock</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'online'\">\n <div class=\"s-avatar__dot-state state-{{ status }}\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'offline'\">\n <div class=\"s-avatar__dot-state state-{{ status }}\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'busy'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">remove</s-icon-mat>\n </div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"display\">\n <ng-container *ngSwitchCase=\"'icon'\">\n <div class=\"s-avatar__dot-content content-person\">\n <s-icon-mat>person</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'avatar'\">\n <ng-container *ngIf=\"urlProfileImage\">\n <img appImageLoader class=\"s-avatar__dot-content urlProfile\" src=\"{{ urlProfileImage }}\" alt=\"\" />\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'letters'\">\n <div class=\"s-avatar__dot-content content-letters\">\n <s-icon-mat>{{ letters }}</s-icon-mat>\n </div>\n </ng-container>\n </ng-container>\n</div>\n","import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-checkbox-old',\n templateUrl: './s-checkbox.component.html',\n styleUrls: ['./s-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCheckboxOldComponent),\n multi: true,\n },\n ],\n})\nexport class SCheckboxOldComponent implements ControlValueAccessor {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() value: any;\n @Input() model: any;\n @Input() disabled: boolean = false;\n @Input() isUndefined: boolean = false;\n @Input() label: string = '';\n @Input() boldSelectActive: boolean = true;\n @Input() tabIndex: number = 0;\n @Output() emitSelection = new EventEmitter<any>();\n\n doCheck(event: any) {\n this.onTouch();\n this.onChange(event);\n this.isUndefined = false;\n this.emitSelection.emit({ value: this.value, event: event });\n }\n\n writeValue(value: any): void {\n this.model = value;\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<div class=\"s-checkbox\">\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n undefined: isUndefined,\n }\"\n [value]=\"value\"\n [(ngModel)]=\"model\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"{{ tabIndex ? tabIndex : 0 }}\" />\n <label\n *ngIf=\"label\"\n [ngClass]=\"!isUndefined && !model && disabled ? 'disabled' : ''\"\n class=\"s-checkbox__label s-body-2\"\n >{{ label }}</label\n >\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface SRadio {\n boldSelectActive?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n name?: string;\n useFormControl?: boolean;\n value?: string;\n readOnly?: boolean;\n}\n@Component({\n selector: 's-radio',\n templateUrl: './s-radio.component.html',\n styleUrls: ['./s-radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SRadioComponent),\n multi: true,\n },\n ],\n})\nexport class SRadioComponent implements ControlValueAccessor, OnInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() config!: SRadio;\n\n //Uso sin conifg\n @Input() value!: string;\n @Input() model: string = ''; //active\n @Input() id!: string;\n @Input() name: string = '';\n @Input() disabled: boolean = false;\n @Input() label: string = '';\n @Input() boldSelectActive: boolean = true;\n @Input() readOnly: boolean = false;\n @Output() emitSelection = new EventEmitter<string>();\n\n ngOnInit(): void {\n this.id = this.config?.id || this.id || `s-radio`;\n }\n\n doCheck(event: any) {\n this.onChange(event);\n this.emitSelection.emit(event);\n }\n\n writeValue(value: any): void {\n this.model = value;\n this.onChange(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<ng-container *ngIf=\"!config; else useConfig\">\n <label class=\"s-radio\" [ngClass]=\"!disabled ? 's-radio--radio-disabled' : ''\">\n <input\n type=\"radio\"\n class=\"s-radio__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n }\"\n [disabled]=\"disabled || readOnly\"\n [id]=\"id\"\n [value]=\"value\"\n [name]=\"name\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\" />\n <label\n [id]=\"id + '-label'\"\n *ngIf=\"label\"\n [ngClass]=\"value !== model && disabled ? 'disabled' : ''\"\n class=\"s-radio__label s-body-2\"\n >{{ label }}</label\n >\n </label>\n</ng-container>\n<ng-template #useConfig>\n <label class=\"s-radio\" [ngClass]=\"!config.disabled ? 's-radio--radio-disabled' : ''\">\n <input\n type=\"radio\"\n class=\"s-radio__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n }\"\n [disabled]=\"config.disabled || (config.readOnly ?? false)\"\n [id]=\"id\"\n [value]=\"config.value\"\n [name]=\"config.name ?? ''\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\" />\n <label\n [id]=\"id + '-label'\"\n *ngIf=\"config.label\"\n [ngClass]=\"value != model && config.disabled ? 'disabled' : ''\"\n class=\"s-radio__label s-body-2\"\n >{{ config.label }}</label\n >\n </label>\n</ng-template>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { SUser } from '../../../sub-menu/s-sub-menu-model';\n\n@Component({\n selector: 's-profile-group',\n templateUrl: './s-profile-group.component.html',\n styleUrls: ['./s-profile-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SProfileGroupComponent implements OnInit {\n @Input() size: string = 'm'; //s , m , l , xl\n @Input() user!: SUser | undefined;\n _size: 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' = 'lg';\n\n ngOnInit(): void {\n //TAMANOS DE AVATAR REFERIDO AL TALLE '128', '96', '48' , '32' , '24' , '16'\n\n switch (this.size) {\n case 's':\n this._size = 'md';\n break;\n case 'm':\n this._size = 'lg';\n break;\n case 'l':\n this._size = 'xl';\n break;\n case 'xl':\n this._size = 'xxl';\n break;\n default:\n this._size = 'lg';\n break;\n }\n }\n}\n","<div class=\"s-profile-group\">\n <div class=\"s-profile-group__content-right\">\n <s-avatar\n letters=\"{{ user?.letters }}\"\n display=\"{{ user?.display }}\"\n [size]=\"_size\"\n [urlProfileImage]=\"user?.url\"\n [status]=\"user?.status\"></s-avatar>\n </div>\n <div class=\"s-profile-group__content-left\">\n <p class=\"s-profile-group__content-left__name s-profile-group__content-left__name--{{ size }}\">{{ user?.name }}</p>\n <span class=\"s-profile-group__content-left__email s-profile-group__content-left__email--{{ size }}\">{{\n user?.email\n }}</span>\n </div>\n</div>\n","import { Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SSubMenu, SSubMenuItem } from './s-sub-menu-model';\n\n@Component({\n selector: 's-sub-menu',\n templateUrl: './s-sub-menu.component.html',\n styleUrls: ['./s-sub-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class SSubMenuComponent {\n\n \n @Input() menu!: SSubMenu;\n @Output() changeMenuEvent = new EventEmitter<any>();\n @Output() closeMenuEvent = new EventEmitter<any>();\n private menuOpened: boolean = false;\n private clickInside: boolean = false;\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n @HostListener(\"document:click\")\n clickedOut() {\n if(this.menuOpened && !this.clickInside) this.closeMenuEvent.emit('close');\n this.clickInside = false;\n }\n\n changeItem(item: SSubMenuItem) {\n item.inputType === 'checkbox' ? (item.value = !item.value) : this.menu.items.forEach(menuItem => menuItem.value = (menuItem === item));\n this.changeMenuEvent.emit(this.menu.items);\n }\n\n selectItem(item: SSubMenuItem) {\n this.changeMenuEvent.emit(item);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.menuOpened = true;\n }, 250);\n }\n}"," <ul class=\"s-sub-menu\">\n\n <ng-container *ngFor=\"let item of menu.items ; index as i\">\n <li *ngIf=\"!item.hidden\" title=\"{{item.title}}\">\n\n <!-- Header -->\n <ng-container *ngIf=\"menu.header && i == 0\">\n <div *ngIf=\"menu.header.type == 'title'\" class=\"s-sub-menu__header-title\">\n {{menu.header.title}}\n </div>\n <div *ngIf=\"menu.header.type == 'user'\" class=\"s-sub-menu__header-user\">\n <s-profile-group size=\"m\" [user]=\"menu.header.user\"></s-profile-group>\n </div>\n <div class=\"s-sub-menu__separate\"></div>\n </ng-container>\n\n <!-- Con Link -->\n <ng-container *ngIf=\"item.link\">\n <a routerLink=\"{{item.link? item.link : null}}\" routerLinkActive=\"active\" class=\"s-sub-menu__option\">\n <div class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n <div *ngIf=\"item.help\" class=\"s-sub-menu__option__right\">\n <label class=\"sub-menu66-item-help\">{{item.help}}</label>\n </div>\n </a>\n </ng-container>\n\n <!-- Con inputType Checkbox o Radio -->\n <ng-container *ngIf=\"(item.inputType && item.action) || item.inputType\">\n \n <div class=\"s-sub-menu__option cursor\">\n <div class=\"s-sub-menu__option__left\">\n <s-radio *ngIf=\"item.inputType == 'radio'\" model=\"'sub-menu-group'\" (emitSelection)=\"changeItem(item)\" (click)=\"item.action ? item.action() : null\"></s-radio>\n <s-checkbox-old *ngIf=\"item.inputType == 'checkbox'\" [model]=\"item.value\" (emitSelection)=\"changeItem(item)\" (click)=\"item.action ? item.action() : null\"></s-checkbox-old>\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title cursor-normal\">{{item.title}}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- Action -->\n <ng-container *ngIf=\"item.action && !item.inputType\">\n <button class=\"s-sub-menu--button\">\n <div class=\"s-sub-menu__option cursor\" (click)=\"item.action()\">\n <div *ngIf=\"item.action\" class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n </div>\n </button>\n </ng-container>\n\n <!-- Solo Label -->\n <ng-container *ngIf=\"!item.action && !item.inputType && !item.link && !item.separate\">\n <button class=\"s-sub-menu--button\" (click)=\"selectItem(item)\">\n <div class=\"s-sub-menu__option cursor\">\n <div class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n </div>\n </button>\n </ng-container>\n\n <!-- Espaciado -->\n <ng-container *ngIf=\"item.separate\"> \n <div class=\"s-sub-menu__separate\"></div>\n </ng-container>\n\n </li>\n\n </ng-container>\n </ul>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-button',\n templateUrl: './s-button.component.html',\n styleUrls: ['./s-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SButtonComponent implements OnInit {\n @Input() disabled: boolean = false;\n @Input() id!: string;\n @Input() pill: boolean = false;\n @Input() size: 'xl' | 'lg' | 'md' | 'sm' = 'md';\n @Input() invert: boolean = false;\n @Input() type: 'primary' | 'secondary' | 'tertiary' | string = 'primary';\n @Input() loading: boolean = false;\n @Input() position?: 'normal' | 'reverse';\n @Input() theme?: 'default' | 'green' | 'yellow' | 'red';\n @Input() active?: boolean = false;\n roundedPrivate: string = 'md';\n\n ngOnInit(): void {\n //Pasa a secondary cuando se invierte\n if (this.invert) {\n this.type = 'secondary';\n }\n if (!this.id) this.id = `s-button-${this.type}`;\n\n // Por decision de ICEI\n // Cuando el size es SM el round debe ser sm , para el resto el round debe ser md\n this.roundedPrivate = this.size === 'sm' ? 'sm' : 'md';\n }\n}\n","<button\n class=\"s-button \ns-button--{{ size }}\ns-button--{{ type }}\n\n{{ theme ? 's-button--' + theme + '--' + type : '' }}\n{{ roundedPrivate ? 's-button--round-' + roundedPrivate : '' }} \n{{ position ? 's-button--position-' + position : '' }} \n{{ loading ? 's-button--loading' : '' }}\n{{ pill ? 's-button--pill' : '' }}\n{{ pill ? 's-button--pill--' + size : '' }}\n{{ invert ? invert : '' }}\n{{ active ? 's-button--' + type + '--active' : '' }}\n{{ active ? 's-button--' + theme + '--' + type + '--active' : '' }}\n\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [tabindex]=\"0\">\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 's-tooltip',\n templateUrl: './s-tooltip.component.html',\n styleUrls: ['./s-tooltip.component.scss'],\n})\nexport class STooltipComponent {\n @ViewChild('stooltip') tooltip!: ElementRef;\n\n @Input() title!: string;\n @Input() description?: string;\n @Input() theme?: 'light' | 'dark' = 'light';\n @Input() position?: 'left' | 'right' | 'bottom' | 'top' = 'top';\n @Input() id?: string = 's-tooltip';\n stylePosition: any = '';\n showTooltip: boolean = false;\n\n toogle() {\n this.showTooltip = !this.showTooltip;\n }\n\n show(x?: any, y?: any, heightParent?: any, widthParent?: any) {\n this.showTooltip = true;\n setTimeout(() => {\n this.factoryStyle(this.position, x, y, heightParent, widthParent);\n });\n }\n\n hide() {\n this.showTooltip = false;\n }\n\n factoryStyle(position: any, x: any, y: any, heightParent: any, widthParent: any) {\n switch (position) {\n case 'top':\n y = y - 5;\n if (this.tooltip.nativeElement.offsetWidth < widthParent) {\n widthParent = this.tooltip.nativeElement.offsetWidth - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', widthParent / 2 + 'px');\n this.stylePosition = { translate: +x + 'px ' + y + 'px', transform: 'translateY(-100%)', position: 'fixed' };\n break;\n case 'bottom':\n y = y + 5;\n if (this.tooltip.nativeElement.offsetWidth < widthParent) {\n widthParent = this.tooltip.nativeElement.offsetWidth - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', widthParent / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateY(' + heightParent + 'px)',\n position: 'fixed',\n };\n break;\n case 'left':\n x = x - 10;\n if (this.tooltip.nativeElement.offsetHeight < heightParent) {\n heightParent = this.tooltip.nativeElement.offsetHeight - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', (heightParent - 5) / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateX(-100%)',\n position: 'fixed',\n 'margin-right': '0.625rem',\n };\n break;\n case 'right':\n x = x + 10;\n if (this.tooltip.nativeElement.offsetHeight < heightParent) {\n heightParent = this.tooltip.nativeElement.offsetHeight - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', (heightParent - 5) / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateX(' + widthParent + 'px)',\n position: 'fixed',\n };\n break;\n default:\n break;\n }\n }\n}\n","<div\n #stooltip\n [ngStyle]=\"stylePosition\"\n [id]=\"id\"\n class=\"s-tooltip s-tooltip--theme-{{ theme }} s-tooltip--position-{{ position }} s-tooltip--display-{{\n showTooltip\n }}\">\n <div class=\"s-tooltip__title\">{{ title }}</div>\n <div class=\"s-tooltip__description\" *ngIf=\"description\">{{ description }}</div>\n</div>\n","import { Directive, Input, OnInit, HostListener } from '@angular/core';\nimport { STooltipComponent } from '../s-tooltip.component';\n\n@Directive({\n selector: '[tooltip]'\n})\nexport class CustomTooltipDirective implements OnInit {\n\n @Input('tooltip') tooltipContent: STooltipComponent | undefined ;\n\n constructor() { }\n\n ngOnInit(): void {}\n\n @HostListener('mouseenter' , ['$event'])\n private _show(event:any): void {\n const rect = event.target.getBoundingClientRect();\n this.tooltipContent?.show(rect.left, rect.top , event.target.offsetHeight , event.target.offsetWidth)\n }\n\n @HostListener('mouseleave', ['$event'])\n private _hide(event:Event): void {\n this.tooltipContent?.hide()\n }\n\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-badge',\n templateUrl: './s-badge.component.html',\n styleUrls: ['./s-badge.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SBadgeComponent {\n @Input() id?: string = 's-badge';\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' | string = 'primary';\n @Input() size: 'xs' | 'sm' = 'sm';\n @Input() new: boolean = false;\n}\n","<span class=\"s-badge s-badge--{{ type }} {{ size ? 's-badge--size-' + size : '' }}\" [id]=\"id\">\n <s-icon-mat *ngIf=\"new\">lens</s-icon-mat>\n <ng-content></ng-content>\n</span>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-tag',\n templateUrl: './s-tag.component.html',\n styleUrls: ['./s-tag.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STagComponent {\n @Input() type: 'primary' | 'secondary' | 'red' | 'yellow' | 'green' = 'primary';\n @Input() size: 'xs' | 'sm' | 'md' = 'sm';\n @Input() disabled: boolean = false;\n @Input() id?: string = 's-tag';\n}\n","<span class=\"s-tag {{ type }} {{ size }} {{ disabled ? 'disabled' : '' }}\" [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SIconMenuModel } from '../s-icon-menu-model';\n\n@Component({\n selector: 's-notification',\n templateUrl:'./s-notification.component.html',\n styleUrls: ['./s-notification.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SNotificationComponent {\n \n @Input() item: SIconMenuModel = {};\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n\n _clickUnread(id:any){\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id:any){\n this.clickDelete.emit(id);\n }\n\n _clickTitle(id:any){\n this.clickTitle.emit(id);\n }\n\n}\n","<div class=\"s-notification\">\n <div class=\"s-notification__item\">\n <div class=\"s-notification__item--left\">\n <div class=\"s-notification__item--left__content-icon\">\n <s-icon-mat>{{item.icon}}</s-icon-mat>\n </div>\n <div class=\"s-notification__item--left__content-text\">\n <div class=\"fix-align\">\n <p (click)=\"_clickTitle(item)\" class=\"title cursor\">{{item.title}}</p>\n <span *ngIf=\"item.description\" class=\"description\">{{item.description}}</span>\n <span *ngIf=\"!item.description\" class=\"description\"></span>\n </div>\n <div>\n <s-tag size=\"sm\">\n <s-icon-mat>{{item.icon}}</s-icon-mat>\n {{item.subtitle}}\n </s-tag>\n </div>\n </div>\n </div>\n <div class=\"s-notification__item--right\">\n <div class=\"s-notification__ite--right__content-icon\">\n <div *ngIf=\"item.seen\" class=\"icon-unread read\" [tooltip]=\"readNotification\">\n <s-icon-mat>mark_email_read</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #readNotification [title]=\"'Leído'\" ></s-tooltip>\n <div *ngIf=\"!item.seen\" class=\"icon-unread cursor\" (click)=\"_clickUnread(item.id)\" [tooltip]=\"unreadNotification\">\n <s-icon-mat>mark_email_unread</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #unreadNotification [title]=\"'Marcar como leído'\" ></s-tooltip>\n <div class=\"icon-close cursor\" (click)=\"_clickDelete(item.id)\" [tooltip]=\"deleteNotification\">\n <s-icon-mat>close</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #deleteNotification [title]=\"'Eliminar notificación'\" ></s-tooltip>\n </div>\n </div>\n </div>\n</div>","import { Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SIconMenuModel } from './s-icon-menu-model';\n\n@Component({\n selector: 's-icon-menu',\n templateUrl: './s-icon-menu.component.html',\n styleUrls: ['./s-icon-menu.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SIconMenuComponent {\n \n iconMenuVisible:boolean = false;\n \n @Input() iconMenu: SIconMenuModel[] = [];\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n private clickInside: boolean = false;\n\n _clickTitle(id:any){\n this.clickTitle.emit(id); \n this.closeSubMenu()\n }\n\n _clickUnread(id:any){\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id:any){\n this.clickDelete.emit(id); \n }\n\n clickSubMenu(item:any){\n item.hideme = !item.hideme;\n }\n\n showSubMenu(item:any){\n item.hideme = true;\n }\n\n closeSubMenu(){\n this.iconMenu.forEach(function(obj:any) {\n obj.hideme = false;\n });\n }\n\n isExternalLink(url: string): boolean {\n return /^https?:\\/\\//.test(url);\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n\n @HostListener(\"document:click\")\n clickedOut() {\n if(!this.clickInside)\n this.closeSubMenu(); \n this.clickInside = false;\n }\n\n}\n","<div class=\"s-icon-menu\">\n <ul class=\"s-icon-menu__main-ul\">\n <ng-container *ngFor=\"let item of iconMenu\">\n <li class=\"s-icon-menu__main-ul__li\" [tooltip]=\"titleItem\">\n <s-tooltip position=\"bottom\" #titleItem [title]=\"item.title ?? ''\" ></s-tooltip>\n <ng-container *ngIf=\"item.notification\">\n <a tabindex=\"0\" (keydown.enter)=\"clickSubMenu(item)\" (click)=\"clickSubMenu(item)\" class=\"item-link cursor\">\n <div class=\"item-link__content-badge\" *ngIf=\"item.unread\">\n <div class=\"item-link__content-badge__badge-notification\">\n <s-badge size=\"xs\" type=\"red\" *ngIf=\"item.unread > 99\">+99</s-badge>\n <s-badge size=\"xs\" type=\"red\" *ngIf=\"item.unread < 99\">{{item.unread}}</s-badge>\n </div>\n </div>\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!item.notification && item.link\">\n <a *ngIf=\"isExternalLink(item.link); else internalLink\"\n [href]=\"item.link\" [target]=\"item.target\" (click)=\"closeSubMenu()\" class=\"item-link\">\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n <ng-template #internalLink>\n <a routerLink=\"{{item.link}}\" (click)=\"closeSubMenu()\" routerLinkActive=\"active\" class=\"item-link\">\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n </ng-template>\n </ng-container>\n\n <div class=\"s-icon-menu__main-ul__li__dropdown\">\n <div *ngIf=\"item.hideme\" class=\"s-icon-menu__main-ul__li__dropdown__content\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header__left\">Notificaciones</div>\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header__right\">\n <s-icon-mat>mark_email_read</s-icon-mat>\n </div>\n </div>\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <s-notification (clickTitle)=\"_clickTitle($event)\" (clickDelete)=\"_clickDelete($event)\" (clickUnread)=\"_clickUnread($event)\" [item]=\"itemChildren\"></s-notification>\n </ng-container>\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__footer\">\n <s-button (click)=\"closeSubMenu()\" routerLink=\"{{item.link? item.link : null}}\" size=\"sm\">Ver todas las notificaciones</s-button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { SMenuMain } from './components/menu-main';\nimport { SSubMenu, SUser } from '../sub-menu/s-sub-menu-model';\nimport { SIconMenuModel } from './components/icon-menu';\n\n@Component({\n selector: 's-navbar',\n templateUrl: './s-navbar.component.html',\n styleUrls: ['./s-navbar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SNavbarComponent implements OnInit {\n @Input() user: SUser = {};\n @Input() userFull: boolean = false;\n @Input() menuProfile!: SSubMenu;\n @Input() menu: SMenuMain[] = [];\n @Input() showProfile: boolean = true;\n @Input() company: string = '';\n @Input() theme?: string;\n @Input() customImage?: string;\n @Input() link?: boolean = false;\n @Input() linkHref?: string;\n @Input() height?: number = 36;\n @Input() width?: number = 100;\n @Input() iconMenu: SIconMenuModel[] = [];\n @Input() id!: string;\n\n @Output() clickEvent = new EventEmitter<string>();\n @Output() clickEventMenu = new EventEmitter<Event>();\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n\n controlMenuProfile: boolean = false;\n\n ngOnInit(): void {\n if (!this.id) this.id = `s-navbar`;\n }\n\n toogleMenuProfile(event: Event) {\n this.controlMenuProfile = !this.controlMenuProfile;\n this.clickEventMenu.next(event);\n }\n\n closeMenuProfile(event: Event) {\n this.controlMenuProfile = false;\n this.clickEventMenu.next(event);\n }\n\n clickMenuProfile(event: any) {\n if (event.target.type !== 'checkbox' && event.target.type !== 'radio') {\n this.controlMenuProfile = !this.controlMenuProfile;\n }\n this.clickEvent.next(event);\n }\n\n _clickUnread(id: any) {\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id: any) {\n this.clickDelete.emit(id);\n }\n\n _clickTitle(id: any) {\n this.clickTitle.emit(id);\n }\n}\n","<nav class=\"s-navbar\" [ngClass]=\"theme ? 'theme-' + theme : ''\" [id]=\"id\">\n <div class=\"s-navbar__content-left\">\n <ng-container *ngIf=\"link\">\n <a [href]=\"linkHref\">\n <s-company-logo\n [height]=\"height\"\n [width]=\"width\"\n [id]=\"id + '-company-logo'\"\n [customImage]=\"customImage\"\n class=\"s-navbar__company-box\"></s-company-logo>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!link\">\n <s-company-logo\n [height]=\"height\"\n [width]=\"width\"\n [id]=\"id + '-company-logo'\"\n [customImage]=\"customImage\"\n class=\"s-navbar__company-box\"></s-company-logo>\n </ng-container>\n </div>\n <div class=\"s-navbar__content-right\">\n <s-menu-main [menuMain]=\"menu\"></s-menu-main>\n <div class=\"s-navbar__right-menu-content\">\n <div class=\"s-navbar__icon-menu-list\">\n <s-icon-menu\n (clickTitle)=\"_clickTitle($event)\"\n (clickDelete)=\"_clickDelete($event)\"\n (clickUnread)=\"_clickUnread($event)\"\n [iconMenu]=\"iconMenu\"></s-icon-menu>\n </div>\n <div class=\"s-navbar__content-user\" [ngClass]=\"theme ? 'theme-' + theme : ''\">\n <s-profile-group\n tabindex=\"0\"\n class=\"cursor\"\n *ngIf=\"user && userFull\"\n [user]=\"user\"\n (keydown.enter)=\"toogleMenuProfile($event)\"\n (click)=\"toogleMenuProfile($event)\"></s-profile-group>\n <s-avatar\n class=\"cursor\"\n *ngIf=\"user && !userFull\"\n urlProfileImage=\"{{ user.url }}\"\n letters=\"{{ user.letters }}\"\n display=\"{{ user.display }}\"\n size=\"lg\"\n status=\"{{ user.status }}\"\n (click)=\"toogleMenuProfile($event)\"></s-avatar>\n </div>\n <div class=\"s-navbar__content-submenu-profile\" *ngIf=\"controlMenuProfile\">\n <s-sub-menu\n [menu]=\"menuProfile\"\n (click)=\"clickMenuProfile($event)\"\n (closeMenuEvent)=\"closeMenuProfile($event)\"></s-sub-menu>\n </div>\n </div>\n </div>\n</nav>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialComponent } from './s-icon-material.component';\n\n@NgModule({\n declarations: [\n SIconMaterialComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SIconMaterialComponent]\n})\nexport class SIconMaterialModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCompanyLogoComponent } from './s-company-logo.component';\n\n\n\n@NgModule({\n declarations: [\n SCompanyLogoComponent\n ],\n imports: [\n CommonModule\n ],\n exports:[SCompanyLogoComponent]\n})\nexport class SCompanyLogoModule { }\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SMenuMainComponent } from './s-menu-main.component';\nimport { SIconMaterialModule } from '../../../icon-material/s-icon-material.module';\nimport { SCompanyLogoModule } from '../../../company-logo/s-company-logo.module';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [SMenuMainComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SIconMaterialModule,\n RouterModule,\n ],\n exports: [SMenuMainComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SMenuMainModule {}\n","export class SMenuMain {\n title?: string ; //Titulo\n link?: string; //URL del link\n target?: string; //Por si es un link externo\n children?: SMenuMain[]; //Hijos\n hidden?:boolean;\n}","export class SIcon {\n type?: 'symbol' | 'icon'; //Tipo de icono.\n name?: string; //Nombre del icono.\n size?: 'xs' | 'sm' | 'md' | 'lg'; //Tamanio del icono.\n fill?: boolean; //Si el icono es de relleno.\n weight?: number; //Grosor del icono.\n grade?: number; //Grosor del icono.\n style?: string; //Estilo del icono.\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImageLoaderDirective } from './image-loader.directive';\n\n@NgModule({\n declarations: [ImageLoaderDirective],\n imports: [CommonModule],\n exports: [ImageLoaderDirective],\n})\nexport class SharedModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SAvatarComponent } from './s-avatar.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SharedModule } from '../shared/shared.module';\n\n\n@NgModule({\n declarations: [\n SAvatarComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SharedModule\n ],\n exports: [SAvatarComponent]\n})\nexport class SAvatarModule { }\n","import {\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { distinctUntilChanged, startWith, Subject, takeUntil, tap } from 'rxjs';\nimport { SSwitch } from '../../toggle-switch';\nimport { Directive, Inject, Injector, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[appControlBooleanAccessor]',\n})\nexport class ControlBooleanAccessorDirective<T>\n implements ControlValueAccessor, OnInit\n{\n control: FormControl | undefined;\n isRequired = false;\n value!: boolean;\n\n private _isDisabled = false;\n private _destroy$ = new Subject<void>();\n public onChange: (value: boolean) => void = (value: boolean) => {};\n public onTouched!: () => T;\n\n @Input() config!: SSwitch;\n useFormControl!: boolean;\n\n constructor(@Inject(Injector) private injector: Injector) {}\n\n ngOnInit() {\n this.useFormControl = this.config?.useFormControl ?? true;\n if (this.useFormControl) {\n this.setFormControl();\n this.isRequired =\n this.control?.hasValidator(Validators.required) ?? false;\n }\n }\n\n setFormControl() {\n try {\n const formControl = this.injector.get(NgControl);\n\n switch (formControl.constructor) {\n case FormControlName:\n this.control = this.injector\n .get(FormGroupDirective)\n .getControl(formControl as FormControlName);\n break;\n default:\n this.control = (formControl as FormControlDirective)\n .form as FormControl;\n break;\n }\n } catch (err) {\n this.control = new FormControl();\n }\n }\n\n writeValue(value: T): void {\n if (this.useFormControl) {\n if (this.control && this.control.value !== value) {\n this.control.setValue(value);\n return;\n }\n if (!this.control) {\n this.control = new FormControl(value);\n }\n }\n (this as any).value = value as boolean;\n }\n\n registerOnChange(fn: (val: T | null) => T): void {\n if (this.useFormControl) {\n this.control?.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.control.value),\n distinctUntilChanged(),\n tap(val => fn(val))\n )\n .subscribe(() => this.control?.markAsUntouched());\n }\n }\n\n registerOnTouched(fn: () => T): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n const currentState = this.control?.disabled ?? false;\n const shouldDisable =\n (isDisabled || this.config?.disabled || this.config?.readOnly) ?? false;\n\n if (currentState !== shouldDisable) {\n this._isDisabled = shouldDisable;\n shouldDisable\n ? this.control?.disable({ emitEvent: false })\n : this.control?.enable({ emitEvent: false });\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlBooleanAccessorDirective } from '../../input/directives/control-boolean-accessor.directive';\n\nexport class SCheckbox {\n disabled?: boolean;\n isUndefined?: boolean;\n id?: string;\n label?: string;\n boldSelectActive?: boolean = true;\n required?: boolean;\n useFormControl?: boolean;\n tabIndex?: number = 0;\n readOnly?: boolean;\n}\n@Component({\n selector: 's-checkbox',\n templateUrl: './s-checkbox.component.html',\n styleUrls: ['./s-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class SCheckboxComponent<T> extends ControlBooleanAccessorDirective<T> implements OnInit {\n @Input() config!: SCheckbox;\n @Input() id?: string = 's-checkbox';\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngOnInit(): void {\n if (!this.config?.disabled) this.config = { ...this.config, disabled: false };\n }\n\n onInput(event: Event): void {\n if (this.config.isUndefined) this.config.isUndefined = false;\n const input = event.target as HTMLInputElement;\n this.value = input.checked;\n this.onChange(this.value);\n if (!this.config.useFormControl) return;\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config?.useFormControl) {\n this.onChange = fn;\n }\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n}\n","<div class=\"s-checkbox\" [id]=\"id\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': config && config.boldSelectActive,\n undefined: config && config.isUndefined && this.control.value === '',\n }\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [tabindex]=\"config && config.tabIndex ? config.tabIndex : 0\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': config && config.boldSelectActive,\n undefined: config && config.isUndefined && !this.value,\n }\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [tabindex]=\"config && config.tabIndex ? config.tabIndex : 0\" />\n </ng-template>\n <div *ngIf=\"config?.label\">\n <label\n class=\"s-checkbox__label s-body-2\"\n *ngIf=\"control\"\n [ngClass]=\"{\n 'bold-select-active':\n ((config.boldSelectActive ?? true) && control.value) ||\n ((config.boldSelectActive ?? true) && value && control.disabled && config.disabled),\n disabled: (control.disabled || config.disabled) && !config.readOnly,\n }\"\n [for]=\"config.id\">\n {{ config.label }}\n <span class=\"s-checkbox__required\" *ngIf=\"config.required\">*</span>\n </label>\n\n <label\n class=\"s-checkbox__label s-body-2\"\n *ngIf=\"!control\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && value && !config.disabled,\n disabled: config.disabled && !config.readOnly,\n }\"\n [for]=\"config.id\">\n {{ config.label }}\n <span class=\"s-checkbox__required\" *ngIf=\"config.required\">*</span>\n </label>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCheckboxOldComponent } from './s-checkbox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SCheckboxComponent } from './checkbox-new/s-checkbox.component';\n\n@NgModule({\n declarations: [SCheckboxOldComponent, SCheckboxComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SCheckboxOldComponent, SCheckboxComponent],\n})\nexport class SCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SRadioComponent } from './s-radio.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [\n SRadioComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [SRadioComponent]\n})\nexport class SRadioModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SProfileGroupComponent } from './s-profile-group.component';\nimport { SAvatarModule } from '../../s-avatar.module';\n\n\n@NgModule({\n declarations: [\n SProfileGroupComponent\n ],\n imports: [\n CommonModule,\n SAvatarModule\n ],\n exports: [SProfileGroupComponent]\n})\nexport class SProfileGroupModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSubMenuComponent } from './s-sub-menu.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { RouterModule } from '@angular/router';\nimport { SCheckboxModule } from '../checkbox';\nimport { SRadioModule } from '../radio/s-radio.module';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\n\n\n@NgModule({\n declarations: [\n SSubMenuComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule,\n SCheckboxModule,\n SRadioModule,\n SProfileGroupModule\n ],\n exports: [SSubMenuComponent]\n})\nexport class SSubMenuModule { }\n","export class SSubMenu {\n public header?: SSubMenuHeader;\n public items!: SSubMenuItem[]\n}\n\nexport class SSubMenuItem {\n id?: any ; //Id en caso que sea necesario\n title?: string ; //Titulo\n help?: string; //Texto de ayuda que se muestra a la derecha de las opciones\n icon?: boolean; //Si tiene icono o no\n iconName?: string; // El nombre del icono\n link?: string; //URL del link\n hidden?:boolean; //Oculta la opcion\n inputType?: string //radio , checkbox\n value?:boolean;//Valor del inputType\n separate?: boolean = false//Define si va un espacio para separar.\n action?: any;//Llamada a funcion desde el sub menu. ej: this.function \n}\n\nexport class SSubMenuHeader {\n type!: string; // Title o User\n title?: string;\n user?: SUser = {};\n}\n\nexport class SUser {\n name?: string;\n email?: string;\n url?: string;\n status?: string;\n display?: string;\n letters?: string;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SButtonComponent } from './components/button/s-button.component';\n\n@NgModule({\n declarations: [\n SButtonComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SButtonComponent\n ]\n})\nexport class SButtonModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STagComponent } from './s-tag.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\n\n\n@NgModule({\n declarations: [\n STagComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [STagComponent]\n})\nexport class STagModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STooltipComponent } from './s-tooltip.component';\nimport { CustomTooltipDirective } from './directive/s-tooltip-directive';\n\n@NgModule({\n declarations: [\n STooltipComponent,\n CustomTooltipDirective\n ],\n imports: [\n CommonModule,\n ],\n exports: [STooltipComponent, CustomTooltipDirective]\n})\nexport class STooltipModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SBadgeComponent } from './s-badge.component';\n\n@NgModule({\n declarations: [\n SBadgeComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [SBadgeComponent]\n})\nexport class SBadgeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMenuComponent } from './s-icon-menu.component';\nimport { SIconMaterialModule } from '../../../icon-material';\nimport { RouterModule } from '@angular/router';\nimport { SNotificationComponent } from './components/s-notificaction.component';\nimport { SButtonModule } from '../../../button';\nimport { STagModule } from '../../../tag';\nimport { STooltipModule } from '../../../tooltip';\nimport { SBadgeModule } from '../../../badge';\n\n\n@NgModule({\n declarations: [\n SIconMenuComponent,\n SNotificationComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule,\n SButtonModule,\n STagModule,\n STooltipModule,\n SBadgeModule\n ],\n exports: [\n SIconMenuComponent,\n SNotificationComponent\n ]\n})\nexport class SIconMenuModule { }\n","export class SIconMenuModel {\n icon?: string; //mat icon name\n title?: string ; //Titulo\n link?: string; //URL del link\n target?: string; //Por si es un link externo\n children?: SIconMenuModel[]; //Hijos\n //Se agrega lo que vi que notification devuelve en carteleria\n date?:string;\n description?:string;\n entityId?:string;\n entityType?:string;\n id?:number;\n notificationType?:number\n parameters?:string;\n seen?:boolean;\n subtitle?:string;\n userId?:string;\n hideme?:boolean;\n unread?:number;\n notification?: boolean;\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SNavbarComponent } from './s-navbar.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\nimport { SMenuMainModule } from './components/menu-main';\nimport { SAvatarModule } from '../avatar';\nimport { SSubMenuModule } from '../sub-menu';\nimport { SIconMenuModule } from './components/icon-menu';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\n\n@NgModule({\n declarations: [SNavbarComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SIconMaterialModule,\n SMenuMainModule,\n SAvatarModule,\n SSubMenuModule,\n SIconMenuModule,\n SProfileGroupModule,\n ],\n exports: [SNavbarComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SNavbarModule {}\n","// navbar\nexport * from './s-navbar.component';\nexport * from './s-navbar.module';\n\n// componentes hijos\nexport * from './components/menu-main/index';\nexport * from './components/icon-menu/index';\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n templateUrl: './s-footer.component.html',\n styleUrls: ['./s-footer.component.scss'],\n})\nexport class SFooterComponent {\n theme = input<string | undefined>();\n leftText = input<string>(`© ${new Date().getFullYear()}`);\n rightText = input<string>('All rights reserved.');\n}\n","<footer class=\"s-footer\" [ngClass]=\"theme() ? 'theme-' + theme() : ''\" [id]=\"'s-footer'\">\n <span class=\"s-footer__text\">{{ leftText() }}</span>\n <s-company-logo [height]=\"23\" [width]=\"70\"></s-company-logo>\n <span class=\"s-footer__text ml-2\">{{ rightText() }}</span>\n</footer>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SFooterComponent } from './s-footer.component';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\n\n@NgModule({\n declarations: [\n SFooterComponent\n ],\n imports: [\n CommonModule,\n SCompanyLogoModule\n ],\n exports: [\n SFooterComponent\n ]\n})\nexport class SFooterModule { }\n","export class FormTypeDto {\n id: number = 0;\n code: string = \"\";\n label: string = \"\";\n tenantId: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormTypeDto {\n let result = new FormTypeDto();\n result.init(data);\n return result;\n }\n}","import { GroupFieldDto } from \"../group/group-field-dto\";\nimport { FormGroupDto } from \"./form-group-dto\";\nimport { FormTypeDto } from \"./form-type-dto\";\nimport { LinkedFieldDto } from \"./linked-field-dto\";\n\nexport class FormLayoutDto {\n id: number = 0;\n name: string = \"\";\n description: string = \"\";\n isDeleted: boolean = false;\n linkedField: LinkedFieldDto[] = [];\n formGroups: FormGroupDto[] = [];\n lastModificationTime: string = \"\";\n formTypeDto: FormTypeDto = new FormTypeDto();\n listGroupFields: GroupFieldDto[] = [];\n formTypeId: number = 0;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormLayoutDto {\n let result = new FormLayoutDto();\n result.init(data);\n return result;\n }\n}","export class BehaviorDto {\n id: number = 0;\n name: string = \"\";\n label: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): BehaviorDto {\n let result = new BehaviorDto();\n result.init(data);\n return result;\n }\n}","export class DataTypeDto {\n id: number = 0;\n type: string = \"\";\n label: string = \"\";\n requireOptions: boolean = false;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): DataTypeDto {\n let result = new DataTypeDto();\n result.init(data);\n return result;\n }\n}","import { BehaviorDto } from \"../behavior/behavior-dto\";\nimport { DataTypeDto } from \"../data-type/data-type-dto\";\nimport { FieldOptionDto } from \"./field-option-dto\";\n\nexport class FieldTemplateDto {\n id: number = 0;\n code: string = \"\";\n description: string = \"\";\n label: string = \"\";\n dataType: DataTypeDto = new DataTypeDto;\n helpText: string = \"\";\n hintText: string = \"\";\n defaultValue: string = \"\";\n defaultBehavior: BehaviorDto = new BehaviorDto;\n internal: boolean = false;\n template: boolean = false;\n validation: string = \"\";\n lastModificationTime: string = \"01-01-2023 00:00\"\n fieldOptions: FieldOptionDto[] = [];\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FieldTemplateDto {\n let result = new FieldTemplateDto();\n result.init(data);\n return result;\n }\n}","export enum THEME {\n DEFAULT = 'default',\n GREEN = 'green',\n YELLOW = 'yellow',\n RED = 'red',\n SECONDARY = 'secondary',\n}\n","import { ValidatorFn } from '@angular/forms';\nimport { INPUT_SIZE } from '../../enums/size.enum';\nimport { THEME } from '../../../enums/theme.enum';\n\nexport class SInput {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n maxlength?: number;\n min?: number = 0;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME = THEME.DEFAULT;\n type?: INPUT_TYPE;\n useFormControl?: boolean;\n}\n\nexport const INPUTS_REGEX = {\n URL: /^(https?:\\/\\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}(\\/[a-zA-Z0-9#]+\\/?)*$/,\n EMAIL: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n ALPHANUMERIC: /[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\\- ]/g,\n SEARCH: /^[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\\- ]*$/,\n};\n\nexport enum INPUT_TYPE {\n TEXT = 'text',\n PASSWORD = 'password',\n EMAIL = 'email',\n NUMBER = 'number',\n SEARCH = 'search',\n TEL = 'tel',\n URL = 'url',\n DATE = 'date',\n}\n\nexport enum ICON_INPUT {\n 'email' = 'email',\n 'password' = 'vpn_key',\n 'tel' = 'phone',\n 'search' = 'search',\n 'url' = 'language',\n}\n\nexport interface SInputError {\n type: ValidatorFn;\n typeName: 'required' | 'maxlength' | 'minlength';\n errorText: string;\n}\n","import { SInput } from '../../../input/components/input/s-input-model';\n\nexport class SInputConfig {\n id: number = 0;\n sInputConfig: SInput = new SInput();\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): SInputConfig {\n let result = new SInputConfig();\n result.init(data);\n return result;\n }\n}","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-error-control',\n templateUrl: './s-error-control.component.html',\n styleUrls: ['./s-error-control.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SErrorControl implements OnInit {\n @Input() theme: 'default' | 'red' | 'green' | 'yellow' = 'default'; //default , red , green , yellow\n @Input() icon: boolean = false;\n @Input() iconCustom: string = '';\n @Input() size: 'sm' | 'md' = 'md';\n @Input() id?: string = 's-error-control';\n\n iconName: string = '';\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.iconCustom == '') {\n switch (this.theme) {\n case 'default':\n this.iconName = 'stars';\n break;\n case 'red':\n this.iconName = 'error';\n break;\n case 'green':\n this.iconName = 'check_circle';\n break;\n case 'yellow':\n this.iconName = 'info';\n break;\n\n default:\n this.iconName = 'stars';\n break;\n }\n } else {\n this.iconName = this.iconCustom;\n }\n }\n}\n","<label class=\"label-content label-content-{{ theme }} {{ size }}\" [id]=\"id\">\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{ theme }}\">{{ iconName }}</s-icon-mat>\n <ng-content></ng-content>\n</label>\n","export enum ICON_THEME {\n default = \"\",\n red = \"error_outline\",\n green = \"check_circle_outline\",\n yellow = \"warning\",\n secondary = \"\"\n}","import { Directive, Inject, Injector, Input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n Validators,\n NgControl,\n FormControlName,\n FormGroupDirective,\n FormControlDirective,\n} from '@angular/forms'; \nimport { Subject, takeUntil, startWith, distinctUntilChanged, tap } from 'rxjs';\nimport { STextArea } from '../components/input-textarea/s-input-textarea.component';\nimport { SCalendar } from '../components/calendar/s-calendar.component';\nimport { SInput } from '../components/input/s-input-model';\nimport { SInputNumber } from '../components/input-number/s-input-number.component';\nimport { STime } from '../components/time/s-time.component';\nimport { SCheckbox } from '../../checkbox';\nimport { SSwitch } from '../../toggle-switch';\nimport { SRadio } from '../../radio';\nimport { SMultiSelect } from '../../select/select-multiple/s-select-multiple-model';\nimport { SSelect } from '../../select/select/s-select-model';\n\n@Directive({\n selector: '[appControlValueAccessor]',\n})\nexport class ControlValueAccessorDirective<T> implements ControlValueAccessor {\n control: FormControl | undefined;\n isRequired = false;\n value!: string | string[];\n\n private _isDisabled = false;\n private _destroy$ = new Subject<void>();\n public onChange: (value: string[] | string) => void = () => {};\n public onTouched!: () => T;\n\n @Input() config!:\n | SCalendar\n | SCheckbox\n | SInput\n | SInputNumber\n | STextArea\n | SRadio\n | STime\n | SSelect\n | SMultiSelect\n | SSwitch;\n useFormControl!: boolean;\n\n constructor(\n @Inject(Injector) private injector: Injector\n \n ) {}\n\n ngOnInit() {\n this.useFormControl = this.config?.useFormControl ?? true;\n if (this.useFormControl) {\n this.setFormControl();\n this.isRequired = this.control?.hasValidator(Validators.required) ?? false;\n }\n }\n\n setFormControl() {\n try {\n const formControl = this.injector.get(NgControl);\n\n switch (formControl.constructor) {\n case FormControlName:\n this.control = this.injector\n .get(FormGroupDirective)\n .getControl(formControl as FormControlName);\n break;\n default:\n this.control = (formControl as FormControlDirective)\n .form as FormControl;\n break;\n }\n } catch (err) {\n this.control = new FormControl();\n }\n }\n\n writeValue(value: T): void {\n if (this.useFormControl) {\n if (this.control && this.control.value !== value) {\n this.control.setValue(value);\n return;\n }\n if (!this.control) {\n this.control = new FormControl(value);\n }\n }\n this.value = value as string;\n }\n\n registerOnChange(fn: (val: T | null) => T): void {\n if (this.useFormControl) {\n this.control?.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.control.value),\n distinctUntilChanged(),\n tap((val) => fn(val))\n )\n .subscribe(() => this.control?.markAsUntouched());\n }\n }\n\n registerOnTouched(fn: () => T): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\n }\n}","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SSubMenu, SSubMenuItem } from '../../sub-menu';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class STranslateService {\n private localizations$ = new BehaviorSubject<\n Record<string, Record<string, string>>\n >({});\n private productName: string = '';\n\n constructor() {\n const storedLocalizations = localStorage.getItem('s-translate');\n\n if (storedLocalizations) {\n this.localizations$.next(\n JSON.parse(storedLocalizations) as Record<\n string,\n Record<string, string>\n >\n );\n }\n }\n\n instant(key: string, ...interpolateParams: string[]): string {\n return this.getLocalization(key, ...interpolateParams);\n }\n\n private getLocalization(key: string, ...interpolateParams: string[]): string {\n let text = '';\n\n const keys = key.split('::') as string[];\n\n const sourceName = keys.length > 1 ? keys[0] : this.productName;\n const sourceKey = keys.length > 1 ? keys[1] : keys[0];\n\n const source = this.localizations$.getValue()[sourceName];\n\n text = source ? (source[sourceKey] ?? sourceKey) : sourceKey;\n\n if (!interpolateParams) {\n return text;\n }\n\n let i = interpolateParams.length;\n\n while (i--) {\n const param = interpolateParams[i];\n text = text.replace(\n new RegExp('\\\\{' + i + '\\\\}', 'gm'),\n source[param] ?? param\n );\n }\n\n return text;\n }\n\n addLocalization(\n newLocalizations: Record<string, Record<string, string>>,\n productName: string\n ) {\n this.productName = productName;\n const currentLocalizations = this.localizations$.getValue();\n\n const mergedLocalizations = {\n ...currentLocalizations,\n ...Object.keys(newLocalizations).reduce(\n (acc, category) => {\n acc[category] = {\n ...currentLocalizations[category],\n ...newLocalizations[category],\n };\n return acc;\n },\n {} as Record<string, Record<string, string>>\n ),\n };\n\n this.localizations$.next(mergedLocalizations);\n localStorage.setItem('s-translate', JSON.stringify(mergedLocalizations));\n }\n\n localizeSubMenu(subMenu: SSubMenu): SSubMenu {\n subMenu.items.forEach((item: SSubMenuItem) => {\n item.title = this.instant(item.title ?? '');\n });\n\n return subMenu;\n }\n\n processError(pError: HttpErrorResponse, entity: string, subEntity: string[]) {\n if (pError.status == 422 || pError.status == 500) {\n return pError.error.error.message;\n } else {\n return this.instant(entity, ...subEntity);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalstorageService {\n\n @Output() refreshLocalStorage = new EventEmitter<any>();\n\nconstructor() {}\n\n //GUARDA UN ITEM\n saveItem( key: string , data: any) {\n if (typeof data === 'string'){\n localStorage.setItem(key, data);\n } else {\n localStorage.setItem(key, JSON.stringify(data));\n }\n this.refreshLocalStorage.emit()\n }\n\n //OBTIENE UN ITEM JSON\n getItem( key: string ) {\n const data = localStorage.getItem(key);\n if (data && data !== 'undefined') {\n return JSON.parse(data);\n } else {\n return null;\n }\n }\n\n //OBTIENE UN STRING ITEM\n getStringItem( key: string ): any {\n const data = localStorage.getItem(key);\n if (data && data !== 'undefined') {\n if (typeof data === 'string') {\n return data;\n }\n } else {\n return null;\n }\n }\n\n //ELIMINA UN ITEM\n deleteItem(key: string){\n localStorage.removeItem(key);\n }\n\n //ELIMINA UN ARRAY [] DE ITEMS\n deleteItems(keys: any[]){\n keys.forEach((key:any) => {\n localStorage.removeItem(key);\n });\n }\n\n //RESET LOCAL STORAGE\n clearAll() {\n localStorage.clear();\n }\n}\n\n\n\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LocalstorageService } from '../../shared/localstorage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarStateService {\n private readonly LOCAL_KEY = 's-sidebar:expand';\n private readonly _expand$ = new BehaviorSubject<boolean>(true);\n\n /** Observable para escuchar los cambios de estado */\n expand$ = this._expand$.asObservable();\n\n constructor(private readonly localStorage: LocalstorageService) {\n const saved = this.localStorage.getItem(this.LOCAL_KEY);\n\n // Si no existe, inicializa en true\n if (saved === null || saved === undefined) {\n this.setExpand(true);\n } else {\n this._expand$.next(saved);\n }\n }\n\n /** Devuelve el valor actual del expand */\n getExpand(): boolean {\n return this._expand$.value;\n }\n\n /** Cambia el valor del expand y lo guarda en localStorage */\n setExpand(value: boolean): void {\n this._expand$.next(value);\n this.localStorage.saveItem(this.LOCAL_KEY, value);\n }\n\n /** Invierte el valor actual */\n toggleExpand(): void {\n const newValue = !this._expand$.value;\n this.setExpand(newValue);\n }\n}\n","import { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\nconst errorMessagesDefault = {\n required: 'Campo requerido',\n minlength: 'No cumple con el mínimo de carácteres',\n maxlength: 'Máximo de carácteres alcanzado',\n pattern: 'El formato no es válido',\n email: 'El correo electrónico no es válido',\n min: 'El valor es menor que el mínimo permitido',\n max: 'El valor es mayor que el máximo permitido',\n requiredTrue: 'Este campo debe ser verdadero',\n nullValidator: 'Este campo no debe estar vacío',\n};\n@Component({\n selector: 's-validation-error',\n templateUrl: './s-validation-error.component.html',\n styleUrls: ['./s-validation-error.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SValidationError implements OnChanges {\n @Input() errors: Record<string, ValidationErrors> | null = {};\n @Input() customErrorMessages?: Record<string, string> = {};\n @Input() id?: string = 's-validation-error';\n errorMessages: Record<string, string> = errorMessagesDefault;\n\n ngOnChanges(): void {\n if (this.customErrorMessages) {\n this.errorMessages = {\n ...this.customErrorMessages,\n };\n }\n }\n}\n","<div class=\"s-validation-errors\" [id]=\"id\">\n <s-error-control *ngFor=\"let error of errors | keyvalue\" theme=\"red\">\n {{ errorMessages[error.key] }}\n </s-error-control>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, OnInit, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { ICON_INPUT, INPUT_TYPE, INPUTS_REGEX, SInput } from './s-input-model';\nimport { STranslateService } from '../../../services';\n\n@Component({\n selector: 's-input',\n templateUrl: './s-input.component.html',\n styleUrls: ['./s-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputComponent),\n multi: true,\n },\n ],\n})\nexport class SInputComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: SInput = new SInput();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n id!: string;\n private _sTranslateService = inject(STranslateService);\n\n iconSymbol = false;\n iconType?: string;\n showPassword = false;\n type!: INPUT_TYPE;\n errorPattern?: string;\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n ICON_THEME = ICON_THEME;\n isFocused = false;\n\n ngOnInit(): void {\n this.id = this.config.id ?? 's-input';\n this.type = this.config.type || INPUT_TYPE.TEXT;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n this.patternError();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n showIconType(): boolean {\n this.iconType = this.config.type ? this.getIconByType(this.config.type) : undefined;\n return !!this.iconType;\n }\n\n getIconByType(type: string): string | undefined {\n return type in ICON_INPUT ? ICON_INPUT[type as keyof typeof ICON_INPUT] : undefined;\n }\n\n patternError() {\n const value = this.control?.value || this.value;\n if (\n (this.config.type === INPUT_TYPE.SEARCH && !INPUTS_REGEX.SEARCH.test(value)) ||\n (this.config.type === INPUT_TYPE.URL && !INPUTS_REGEX.URL.test(value)) ||\n (this.config.type === INPUT_TYPE.EMAIL && !INPUTS_REGEX.EMAIL.test(value))\n ) {\n this.errorPattern = this._sTranslateService.instant('validation.invalidData');\n return;\n }\n this.errorPattern = undefined;\n }\n\n changeShowPassword() {\n this.type = this.showPassword ? INPUT_TYPE.PASSWORD : INPUT_TYPE.TEXT;\n this.showPassword = !this.showPassword;\n }\n\n clickHelp() {\n this.clickHelpIconEvent.emit();\n }\n\n onBlur(event: any): void {\n this.patternError();\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.emit(event);\n }\n}\n","<div class=\"s-input\">\n <label [for]=\"id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n errorPattern ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [maxlength]=\"config.maxlength ?? null\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat [type]=\"iconSymbol ? 'symbol' : 'icon'\" class=\"icon cursor\" (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config.showHelp && (config.theme === THEME.DEFAULT || config.theme !== undefined)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\n !((config.type === INPUT_TYPE.URL && config.errorText) || (config.type === INPUT_TYPE.EMAIL && config.errorText))\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!config.hideErrorText && errorPattern && !config.errorText\" theme=\"red\">\n {{ config.errorMessages?.pattern ?? errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n","import { Injectable } from '@angular/core';\nimport { SSelectSimpleModel } from './s-select-model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SelectNavigationService {\n constructor() {}\n\n onKeyDownMain(event: KeyboardEvent, isOpen: boolean): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ':\n isOpen = !isOpen;\n event.preventDefault();\n break;\n case 'Escape':\n if (isOpen) isOpen = false;\n break;\n }\n return isOpen;\n }\n\n onKeyDownItems(\n event: KeyboardEvent,\n item: SSelectSimpleModel,\n isOpen: boolean,\n getSelectedValue: (item: SSelectSimpleModel) => void,\n simple: boolean // Asigna si el select es simple o multiple para cambiar la logica de focus\n ): boolean {\n switch (event.key) {\n case 'Escape':\n if (isOpen) isOpen = false;\n event.preventDefault();\n break;\n case ' ':\n case 'Enter':\n event.preventDefault();\n getSelectedValue(item);\n simple ? isOpen = false : null;\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem(event.target as HTMLElement , simple);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem(event.target as HTMLElement , simple);\n break;\n }\n return isOpen;\n }\n\n focusNextItem(currentItem: HTMLElement , simple: boolean): void {\n const selector = simple ? '.s-select-simple__options__main' : '.s-select-multiple__options__main';\n const items = Array.from(document.querySelectorAll(selector));\n const currentIndex = items.indexOf(currentItem);\n if (currentIndex !== -1 && currentIndex < items.length - 1) {\n (items[currentIndex + 1] as HTMLElement).focus();\n }\n }\n\n focusPreviousItem(currentItem: HTMLElement , simple: boolean): void {\n const selector = simple ? '.s-select-simple__options__main' : '.s-select-multiple__options__main';\n const items = Array.from(document.querySelectorAll(selector));\n const currentIndex = items.indexOf(currentItem);\n if (currentIndex !== -1 && currentIndex > 0) {\n (items[currentIndex - 1] as HTMLElement).focus();\n }\n }\n}\n","import { Component, Input, Output, EventEmitter, ViewEncapsulation, OnInit, forwardRef, HostListener, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { SSelectSimpleModel } from \"../s-select-model\"\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectNavigationService } from \"../s-select-service\";\n\n@Component({\n selector: 's-select-old',\n templateUrl: './s-select-simple.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectSimpleComponent),\n multi: true\n }\n ]\n})\nexport class SSelectSimpleComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n onChange = (_: any) => { };\n onTouch = () => { };\n\n @Input() disabled: boolean = false;\n @Input() placeholder: string = '';\n @Input() options!: SSelectSimpleModel[];\n @Input() selectedValue?: any;\n @Input() label: string = '';\n @Input() readOnly: boolean = false;\n @Input() display: 'dot' | 'iconperson' | 'profile' | undefined = undefined;\n @Input() size: 'sm' | 'md' = 'md';\n\n isOpen: boolean = false;\n activeIndex: any = -1; // Default to -1 to indicate no selection\n value: any = undefined;\n clickInside: boolean = false;\n\n @Output() selectEvent = new EventEmitter<SSelectSimpleModel>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n constructor(private selectNavService: SelectNavigationService) {}\n\n ngOnInit(): void {\n this.selectIndex();\n\n if (this.readOnly) {\n this.disabled = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n 'selectedValue' in changes ? this.selectIndex() : null;\n 'options' in changes ? this.selectOptions() : null;\n }\n\n async selectIndex() {\n if (this.selectedValue) {\n for (let index = 0; index < this.options.length; index++) {\n if (this.options[index].value === this.selectedValue) {\n this.activeIndex = index;\n this.value = this.options[index];\n break;\n }\n }\n } else {\n this.activeIndex = -1;\n this.value = null;\n }\n \n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n }\n\n selectOptions(): void {\n if (this.selectedValue) {\n for (let index = 0; index < this.options.length; index++) {\n if (this.options[index].value === this.selectedValue) {\n this.activeIndex = index;\n this.value = this.options[index];\n break;\n }\n }\n } else {\n this.activeIndex = -1;\n this.value = null;\n }\n \n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n }\n\n openDropDown() {\n this.onFocus();\n if (!this.disabled) {\n this.selectIndex();\n }\n }\n\n getSelectedValue(e: SSelectSimpleModel) {\n this.activeIndex = this.options?.indexOf(e);\n this.selectedValue = e.value;\n this.value = e;\n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n this.onBlur();\n }\n\n async writeValue(value: any): Promise<void> {\n this.selectedValue = value;\n await this.selectIndex();\n this.onChange(this.value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n @HostListener(\"document:click\")\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blur.next();\n }\n\n onFocus(): void {\n this.focus.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n \n onKeyDownItems(event: KeyboardEvent, item: SSelectSimpleModel): void {\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.getSelectedValue.bind(this) , true);\n }\n \n}","<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled' : ''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\n <div\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{ size ? size : '' }}\"\n (click)=\"openDropDown()\"\n tabindex=\"0\"\n (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\n >person_outline</s-icon-mat\n >\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar\n size=\"md\"\n [status]=\"options[activeIndex].user?.status\"\n [display]=\"options[activeIndex].user?.display\"\n [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"md\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{ placeholder }}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\n isOpen ? 'expand_less' : 'expand_more'\n }}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\n <div\n class=\"s-select__item {{ size ? size : '' }}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event, item)\"\n tabindex=\"0\">\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar\n size=\"md\"\n [display]=\"item.user?.display\"\n [status]=\"item.user?.status\"\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\n </div>\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\n >person_outline</s-icon-mat\n >\n <span class=\"option-value\">\n {{ item.title }}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>\n","export enum ANIMATION {\n DigitalSignage = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Cartelera_Digital_Loader.json',\n Chatbot = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Chatbot_Loader.json',\n Appointment = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Citas_Loader.json',\n DotBreathe = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/dot_breathe.json',\n Survey = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Encuestas_Loader.json',\n DynamicForms = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Formularios_Dinamicos_Loader.json',\n Eflow = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Gestion_Filas_Loader.json',\n AttentionRecording = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Grabaciones_Loader.json',\n DirectMarketing = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Marketing_Directo_Loader.json',\n Monitoring = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Monitoreo_Loader.json',\n WebGenerator = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Paginas_Web_Loader.json',\n VideoAttention = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Videoatenciones_Loader.json',\n Suite = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/e-Flow_Suite_Loader.json',\n Spinner = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/loading_spinner.json',\n}\n\nexport type AnimationConfig = {\n loop: boolean;\n autoplay: boolean;\n hover: boolean;\n segments?: [number, number];\n};\n\nconst ANIMATION_CONFIG_GENERIC = {\n loop: true,\n autoplay: true,\n hover: false,\n};\n\nconst customConfigs: Partial<\n Record<\n ANIMATION,\n Partial<typeof ANIMATION_CONFIG_GENERIC> & { segments?: [number, number] }\n >\n> = {\n [ANIMATION.Suite]: {\n loop: false,\n autoplay: true,\n hover: false,\n segments: [42, 98],\n },\n};\n\n// Generador del config completo\nexport const ANIMATION_CONFIG: Record<ANIMATION, AnimationConfig> =\n Object.values(ANIMATION).reduce(\n (acc, key) => {\n const animationKey = key as ANIMATION;\n if (!animationKey) return acc;\n\n acc[animationKey] = {\n ...ANIMATION_CONFIG_GENERIC,\n ...(customConfigs[animationKey] || {}),\n };\n return acc;\n },\n {} as Record<\n ANIMATION,\n typeof ANIMATION_CONFIG_GENERIC & { segments?: [number, number] }\n >\n );\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport Lottie, { AnimationItem } from 'lottie-web';\nimport { ANIMATION, ANIMATION_CONFIG, AnimationConfig } from './enums/animation.enum';\n\n@Component({\n selector: 's-animation',\n templateUrl: './animation.component.html',\n styleUrls: ['./animation.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AnimationComponent implements AfterViewInit {\n @Input() animation!: ANIMATION;\n @Input() id: string = 's-animation';\n @Output() playOnHoverEvent = new EventEmitter<void>();\n @Output() pauseOnLeaveEvent = new EventEmitter<void>();\n\n animationConfig!: AnimationConfig;\n animationItem!: AnimationItem;\n\n ngAfterViewInit() {\n const container = document.getElementById('lottie') as HTMLElement;\n\n this.animationConfig = ANIMATION_CONFIG[this.animation];\n\n const animationLottie = Lottie.loadAnimation({\n container: container,\n renderer: 'svg',\n loop: this.animationConfig.loop,\n autoplay: this.animationConfig.autoplay,\n path: this.animation,\n });\n\n if (this.animationConfig.segments) {\n animationLottie.addEventListener('complete', () => {\n const [start, end] = this.animationConfig.segments!;\n animationLottie.goToAndStop(start, true);\n animationLottie.play();\n animationLottie.playSegments([start, end], true);\n });\n }\n this.animationItem = animationLottie;\n\n animationLottie.play();\n }\n\n // Reproducir la animación al pasar el mouse\n playOnHover(): void {\n const hover = this.animationConfig.hover;\n if (hover) {\n this.animationItem.play();\n this.playOnHoverEvent.emit();\n }\n }\n\n // Pausar la animación al salir el mouse\n pauseOnLeave(): void {\n const hover = this.animationConfig.hover;\n if (hover) {\n this.animationItem.pause();\n this.pauseOnLeaveEvent.emit();\n }\n }\n}\n","<div class=\"s-animation\" [id]=\"id\" (mouseenter)=\"playOnHover()\" (mouseleave)=\"pauseOnLeave()\"></div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnimationComponent } from './animation.component';\nimport { provideLottieOptions } from 'ngx-lottie';\n\n@NgModule({\n declarations: [AnimationComponent],\n imports: [CommonModule],\n providers: [\n provideLottieOptions({\n player: () => import('lottie-web'),\n }),\n ],\n exports: [AnimationComponent],\n})\nexport class SAnimationModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ANIMATION } from '../animation';\n\n@Component({\n selector: 's-spinner',\n templateUrl: './s-spinner.component.html',\n styleUrls: ['./s-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSpinnerComponent {\n @Input() size: 'xsm' | 'sm' | 'md' | 'lg' = 'lg';\n @Input() animation: ANIMATION = ANIMATION.Spinner;\n}\n","<div class=\"s-spinner\">\n <div class=\"s-spinner__content size-{{ size }}\">\n <s-animation [animation]=\"animation\"></s-animation>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormLayoutDto } from './models/form/form-layout-dto';\nimport { SSelectSimpleModel } from '../select';\nimport { Validators, FormBuilder, FormGroup, ValidatorFn } from '@angular/forms';\nimport { Output } from '@angular/core';\nimport { FieldTemplateDto } from './models/field/field-template-dto';\nimport { SInputConfig } from './models/configFields/s-input-config';\nimport { GroupFieldDto } from './models/group/group-field-dto';\nimport { FormGroupDto } from './models/form/form-group-dto';\nimport { FormFilledDto } from './models/formFilled/form-filled-dto';\nimport { THEME } from '../enums';\nimport { INPUT_TYPE, SInput } from '../input/components/input/s-input-model';\n\n@Component({\n selector: 's-dynamic-form',\n templateUrl: './s-dynamic-form.component.html',\n styleUrls: ['./s-dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SDynamicFormComponent implements OnChanges {\n @Input() setFormData: boolean = false; //SetFormData cambiar por int / función.\n @Input() layout: FormLayoutDto = new FormLayoutDto();\n @Input() readOnly: Boolean = false;\n @Input() formFilled!: FormFilledDto;\n // InputData en formato Json (formLayout) (LLAMARLO \"LAYOUT\").\n // InputData FormFilled (LLAMARLO \"DATA\").\n\n @Output() getFormDataEvent: EventEmitter<Event> = new EventEmitter<Event>(); //Devuelve el objeto / datos del formulario cargados. ----- //\"GETFORMDATA\" aunque el dato no este cargado correctamente.\n @Output() formCompletedEvent: EventEmitter<boolean> = new EventEmitter<boolean>();//Se emite cuando el formulario se carga en su totalidad (sin pasar por un botón submit / setFormLayout) Y \"Correcto\".\n @Output() blurEvent: EventEmitter<void> = new EventEmitter<void>();//Se emite cuando se pierde el foco.\n @Output() onchageStatusEvent: EventEmitter<boolean> = new EventEmitter<boolean>(); // Nuevo evento para el cambio de estado\n //En el blur a la perdida de foco validar el formulario.... Y tener una variable Status para ver si el formulario es correcto (validado).... Si cambia el status..... Crear salida @output OnchageStatus true (correcto y completo).\n\n formLayout: FormLayoutDto = new FormLayoutDto();\n\n groupTemplatesSelectItems: any[] = [];\n\n optionsMap: { [key: number]: SSelectSimpleModel[] } = {};\n optionsSelect: SSelectSimpleModel[] = [];\n formGroup: FormGroup;\n\n status: boolean = true; // Variable de estado del formulario\n\n loading: boolean = false;\n\n formInFocus: boolean = false;\n\n fieldObject: FieldTemplateDto[] = [];\n // sInput\n\n inputConfig!: SInput;\n itemsConfigList: SInputConfig[] = [];\n itemConfig = new SInputConfig();\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n\n //selects (para control defaults)\n isSelectedMap: { [key: string]: boolean } = {};\n\n behaviorTypes = {\n Hide: \"Hide\",\n Disable: \"Disable\",\n Enable: \"Enable\",\n LinkedValidation: \"LinkedValidation\",\n };\n\n errorMessagesRequired: string = 'Campo requerido';\n statusControl: boolean = false;\n totalFields: number = 0;\n\n selectStates: { [key: string]: { wasInteracted: boolean; showError: boolean } } = {};\n\n constructor(private formBuilder: FormBuilder\n ) {\n this.formGroup = this.formBuilder.group({});\n\n this.initializeValueChanges();\n }\n private initializeValueChanges() {\n this.formGroup.valueChanges.subscribe(() => {\n this.status = this.formGroup.valid;\n const formValues = this.formGroup.value;\n const isEmpty = Object.keys(formValues).length === 0 && formValues.constructor === Object;\n const valueCount = Object.keys(formValues).length;\n if(!isEmpty && valueCount == this.totalFields){\n if (this.status) {\n this.formCompletedEvent.emit(this.status);\n this.onchageStatusEvent.emit(this.status);\n }else{\n this.onchageStatusEvent.emit(this.status);\n }\n this.updateFieldBehavior(this.readOnly.valueOf());\n }\n });\n }\n\n async createItemTemplate(ev: FormLayoutDto) {\n this.optionsMap = {}; // Limpiar opciones anteriores\n this.itemsConfigList = []; // Limpiar configuraciones anteriores\n\n ev.formGroups.forEach((item) => {\n //#region Save FieldOptions per SelectSimpleDesplegable\n item?.group.listGroupFields.forEach((element) => {\n this.inputConfig = new SInput();\n this.saveOptionSelect(element);\n const typeOptionSelect = this.mapFieldToInputConfig(element.field);\n if (element.field.defaultBehavior?.name === this.behaviorTypes.Hide) return;\n const validators = this.buildValidators(element);\n if (element.field.dataType?.type === 'input') {\n this.addTextField(element, validators);\n }\n this.itemsConfigList.push(SInputConfig.fromJS({\n id: typeOptionSelect.id,\n sInputConfig: this.inputConfig\n }));\n if (element.field.dataType?.type === 'select') {\n this.addSelectField(element, validators);\n }\n });\n //#endregion\n this.addGroupTemplate(item);\n });\n }\n\n private saveOptionSelect(element: GroupFieldDto) {\n // Inicializar el array de opciones para el campo específico si no existe\n const fieldId = element.field.id || this.generateUniqueId();\n if (!this.optionsMap[fieldId]) {\n this.optionsMap[fieldId] = [];\n }\n\n // Limpiar opciones anteriores para este campo antes de agregar nuevas\n this.optionsMap[fieldId] = [];\n\n // Agregar nuevas opciones\n element.field.fieldOptions.forEach((itemFieldOption) => {\n const option: SSelectSimpleModel = {\n key: fieldId, // Asociar al campo específico\n title: itemFieldOption.value,\n value: itemFieldOption.label\n };\n this.optionsMap[fieldId].push(option);\n });\n\n // Actualizar el ID del campo para que coincida con el mapa de opciones\n element.field.id = fieldId;\n }\n\n // Método para generar un ID único\n private generateUniqueId(): number {\n return Math.floor(Math.random() * 1000000);\n }\n\n private buildValidators(element: GroupFieldDto): ValidatorFn[] {\n const validators: ValidatorFn[] = [];\n const isRequired = element.mandatory;\n const hasValidation = element.field.validation !== \"\";\n const isNotDisabled = element.field.defaultBehavior.name !== this.behaviorTypes.Disable;\n\n if (isRequired) {\n validators.push(Validators.required);\n }\n if (hasValidation && (isRequired || isNotDisabled)) {\n validators.push(Validators.pattern(element.field.validation));\n }\n return validators;\n }\n\n private addTextField(element: GroupFieldDto, validators: ValidatorFn[]) {\n this.formGroup.addControl(\n element.field.code,\n this.formBuilder.control(element.field.defaultValue, validators)\n );\n }\n\n private addSelectField(element: GroupFieldDto, validators: ValidatorFn[]) {\n // Encuentra el valor predeterminado si existe\n const defaultValueSelect = element.field.fieldOptions.find((x: any) => x.label === element.field.defaultValue);\n \n // Agrega la validación requerida si es obligatorio y no hay un valor predeterminado\n if (element.mandatory && !defaultValueSelect) {\n validators.push(Validators.required);\n }\n \n // Inicializa el control del formulario con el valor predeterminado o con un valor vacío\n this.formGroup.addControl(\n element.field.code,\n this.formBuilder.control(\n defaultValueSelect ? defaultValueSelect.label : '', // Ajusta aquí el valor predeterminado\n validators\n )\n );\n }\n\n private mapFieldToInputConfig(field: FieldTemplateDto): FieldTemplateDto {\n return FieldTemplateDto.fromJS({\n id: field.id,\n defaultValue: field.defaultValue,\n label: field.label,\n code: field.code,\n description: field.description,\n hintText: field.hintText,\n defaultBehavior: field.defaultBehavior,\n dataType: field.dataType || null, // Proporciona valores predeterminados si es necesario\n helpText: field.helpText || \"\",\n internal: field.internal || false\n });\n }\n\n private addGroupTemplate(item: FormGroupDto) {\n const typeGroup = item.group.template ? 'Template' : 'Personalizable';\n\n this.groupTemplatesSelectItems.push({\n id: this.groupTemplatesSelectItems.length + 1,\n name: item.group.name,\n label: item.group.label,\n description: item.group.description,\n deleted: item.group.deleted,\n template: item.group.template,\n internal: item.group.internal,\n lastModification: item.group.lastModificationTime,\n listGroupFields: item.group.listGroupFields,\n itemsConfig: this.itemsConfigList,\n group: item.group,\n typeGroup: typeGroup,\n position: item.position,\n disabled: false,\n selected: false,\n draggable: true,\n });\n }\n\n getInputConfig(itemField: GroupFieldDto) {\n const isDisabled = itemField.field.defaultBehavior.name === this.behaviorTypes.Disable;\n return {\n label: itemField.field.label,\n placeholder: itemField.field.hintText,\n disabled: isDisabled,\n required: itemField.mandatory === true,\n helpText: isDisabled ? \"\" : itemField.field.helpText\n };\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.layout) {\n this.totalFields = await this.countFields(this.layout);\n this.loading = false;\n this.clearForm();\n this.formLayout = this.layout;\n this.groupTemplatesSelectItems = [];\n await this.createItemTemplate(this.formLayout);\n this.loading = true;\n }\n \n if (changes.setFormData && changes.setFormData.currentValue === true) {\n this.saveForm();\n this.onchageStatusEvent.emit(this.status); \n }\n \n if (changes.readOnly) {\n this.updateFieldBehavior(changes.readOnly.currentValue);\n }\n \n if (changes.formFilled) {\n this.populateFormWithValues(changes.formFilled.currentValue);\n }\n }\n \n private updateFieldBehavior(isReadOnly: boolean) {\n const behaviorName = isReadOnly ? this.behaviorTypes.Disable : this.behaviorTypes.Enable;\n this.groupTemplatesSelectItems.forEach(element => {\n element.listGroupFields.forEach((item: GroupFieldDto) => {\n item.field.defaultBehavior.name = behaviorName;\n });\n });\n }\n\n populateFormWithValues(formFilled: FormFilledDto): void {\n if (formFilled && formFilled.formFilledValues) {\n formFilled.formFilledValues.forEach(fieldValue => {\n const fieldName = this.getFieldNameById(fieldValue.fieldId);\n if (fieldName && this.formGroup.contains(fieldName)) {\n this.formGroup.get(fieldName)?.setValue(fieldValue.value);\n }\n });\n this.validateForm();\n }\n }\n\n private getFieldNameById(fieldId: number): string | null {\n for (const group of this.layout.formGroups) {\n for (const groupField of group.group.listGroupFields) {\n if (groupField.field.id === fieldId && this.layout.id == this.formFilled?.formLayoutId) {\n return groupField.field.code;\n }\n }\n }\n return null;\n }\n\n private validateForm(): void {\n // Marca todos los controles como \"tocados\" para activar la validación\n Object.keys(this.formGroup.controls).forEach(field => {\n const control = this.formGroup.get(field);\n control?.markAsTouched({ onlySelf: true });\n control?.updateValueAndValidity(); // Actualiza el estado de validación del control\n });\n \n // Actualiza la variable de estado del formulario\n this.status = this.formGroup.valid;\n \n // Emite el evento de cambio de estado\n if(this.statusControl){\n this.statusControl = this.status;\n this.onchageStatusEvent.emit(this.status);\n }\n this.statusControl = true;\n \n }\n\n saveForm() {\n // Procesar los valores del formulario para transformar los campos select\n const formData = this.processFormValues(this.formGroup.value);\n this.getFormDataEvent.emit(formData);\n this.status = this.formGroup.valid;\n this.onchageStatusEvent.emit(this.status);\n }\n \n private processFormValues(values: any): any {\n const processedValues: any = {};\n for (const key in values) {\n if (values.hasOwnProperty(key)) {\n const value = values[key];\n if (value && typeof value === 'object' && 'value' in value) {\n // Si el valor es un objeto y tiene una propiedad 'value', usar solo 'value'\n processedValues[key] = value.value;\n } else {\n // De lo contrario, usar el valor tal cual\n processedValues[key] = value;\n }\n }\n }\n return processedValues;\n }\n\n onFormBlur() {\n this.blurEvent.emit();\n\n // Actualizar la variable de estado\n this.status = this.formGroup.valid;\n\n // Emitir eventos de éxito y error según la lógica\n if(this.status) this.formCompletedEvent.emit(this.status);\n\n // Emitir evento de cambio de estado\n this.onchageStatusEvent.emit(this.status);\n\n this.formInFocus = false;\n this.saveForm();\n }\n\n clearForm(): void {\n this.formGroup.reset();\n }\n\n async countFields(formLayout: FormLayoutDto) {\n let fieldCount = 0;\n formLayout.formGroups.forEach(group => {\n group.group.listGroupFields.forEach(field => {\n fieldCount++;\n });\n });\n return fieldCount;\n }\n\n onSelectFocus(fieldCode: string) {\n if (!this.selectStates[fieldCode]) {\n this.selectStates[fieldCode] = { wasInteracted: false, showError: false };\n }\n this.selectStates[fieldCode].wasInteracted = true;\n }\n\n // Llamado al perder foco el select\n onSelectBlur(itemField: any): void {\n const control = this.formGroup.get(itemField.field.code);\n const value = control?.value;\n\n // Si el campo es obligatorio y el valor no es válido, mostramos el error\n if (itemField.mandatory && (!value || (typeof value === 'string' && value.trim() === ''))) {\n this.isSelectedMap[itemField.field.code] = false;\n control?.setErrors({ required: true }); // Setea el error 'required'\n } else {\n this.isSelectedMap[itemField.field.code] = true;\n control?.setErrors(null); // Elimina errores si todo está correcto\n }\n\n control?.markAsTouched(); // Marca el control como tocado para que se muestren los mensajes de error\n}\n\n // Método para verificar si una opción está seleccionada\n isOptionSelected(value: any): boolean {\n debugger;\n if (typeof value === 'string') {\n return value.trim() !== '';\n }\n return false;\n }\n\n // Mostrar error basado en el estado\n shouldShowError(itemField: any): boolean {\n const control = this.formGroup.get(itemField.field.code); // Obtener el control del campo desde el formGroup\n if (!control) {\n return false;\n }\n return itemField.mandatory && control.invalid && control.touched;\n }\n\n // Método cuando se selecciona una opción en el select\n selectedSelect(event: any, fieldCode: string) {\n const state = this.selectStates[fieldCode];\n if (state) {\n state.showError = false;\n }\n }\n}\n","<div class='s-dynamic-form'>\n <div *ngIf=\"loading\">\n <div *ngIf=\"groupTemplatesSelectItems.length > 0\">\n <form [formGroup]=\"formGroup\" (blur)=\"onFormBlur()\">\n <div *ngFor=\"let item of groupTemplatesSelectItems\">\n <h6>{{item.label}}</h6>\n <div class=\"s-dynamic-form__hr\"></div>\n <div *ngFor=\"let itemField of item.listGroupFields; let i = index;\">\n <div\n *ngIf=\"itemField.field.dataType.type == 'input' && itemField.field.defaultBehavior.name != behaviorTypes.Hide\">\n <div class=\"s-dynamic-form__container\">\n <s-input formControlName=\"{{itemField.field.code}}\" (blur)=\"onFormBlur()\"\n [config]=\"getInputConfig(itemField)\">\n </s-input>\n </div>\n </div>\n <div\n *ngIf=\"itemField.field.dataType.type == 'select' && itemField.field.defaultBehavior.name != behaviorTypes.Hide\">\n <div class=\"s-dynamic-form__container\">\n <div>\n <s-select-old formControlName=\"{{itemField.field.code}}\"\n [label]=\"itemField.mandatory ? itemField.field.label + ' *' : itemField.field.label\"\n [placeholder]=\"itemField.field.hintText\"\n [options]=\"optionsMap[itemField.field.id]\"\n [selectedValue]=\"itemField.field.defaultValue\"\n (selectEvent)=\"selectedSelect($event, itemField.field.code)\"\n [readOnly]=\"readOnly.valueOf()\"\n (focus)=\"onSelectFocus(itemField.field.code)\"\n (blur)=\"onSelectBlur(itemField); onFormBlur()\" tabindex=\"0\">\n </s-select-old>\n <!-- Muestra el mensaje de error si no se seleccionó ninguna opción y es requerido -->\n <div *ngIf=\"shouldShowError(itemField)\">\n <s-error-control [theme]=\"'red'\">\n {{ itemField.mandatory ? errorMessagesRequired : itemField.field.helpText }}\n </s-error-control>\n </div>\n\n <!-- Muestra el helpText solo si no hay error -->\n <div *ngIf=\"!shouldShowError(itemField)\">\n <s-error-control>\n {{ itemField.field.helpText }}\n </s-error-control>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n <div *ngIf=\"!loading\">\n <h4>Cargando...</h4>\n <s-spinner></s-spinner>\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { THEME } from '../../../enums/theme.enum';\n\nexport class STextArea {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n height?: string;\n width?: string;\n resize?: boolean;\n theme?: THEME = THEME.DEFAULT;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-input-textarea',\n templateUrl: './s-input-textarea.component.html',\n styleUrls: ['./s-input-textarea.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputTextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class SInputTextAreaComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: STextArea = new STextArea();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n THEME = THEME;\n isFocused: boolean = false;\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-input-textarea`;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[config.resize ? '' : 'resize', config.theme ? 'theme-' + config.theme : '']\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-slider',\n templateUrl: './s-slider.component.html',\n styleUrls: ['./s-slider.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSliderComponent),\n multi: true,\n },\n ],\n})\nexport class SSliderComponent implements ControlValueAccessor, AfterViewInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n //REF PARA TYPE RANGE\n @ViewChild('tooltipContainer', { static: false }) tooltipContainer: ElementRef | undefined;\n @ViewChild('tooltip', { static: false }) tooltip: ElementRef | undefined;\n @ViewChild('numberInput', { static: false }) numberInput!: ElementRef<HTMLInputElement>;\n\n @Input() value: string = '';\n @Input() id: string = 's-slider';\n @Input() label?: string;\n @Input() required?: boolean;\n @Input() helpText?: string;\n @Input() errorText?: string;\n @Input() disabled: boolean = false;\n @Input() max?: number;\n @Input() min: number = 0;\n @Input() step: number = 1;\n @Input() readOnly: boolean = false;\n @Input() classAdd: string = '';\n @Input() size: 'sm' | 'md' = 'md';\n @Input() rangeUnity: string = '';\n @Input() showInput: boolean = false;\n\n inputTimeout?: any;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\n @Output() valueChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngAfterViewInit(): void {\n this.rangeOnLoad();\n }\n\n onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.valueChangeEvent.next(this.value);\n },\n 500,\n null\n );\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n //FUNCIONES PARA TYPE RANGE\n rangeOnLoad() {\n setTimeout(() => {\n const rangeMax = this.max ? this.max : 100;\n let amplitudTotal = rangeMax - this.min;\n let porcion = (amplitudTotal * 50) / 100;\n let value = this.value == '' ? this.min + porcion : this.value;\n\n const clampedValue = this.clampValue(value);\n\n if (this.value == '' || this.value === null || this.value === undefined) {\n this.value = clampedValue.toString();\n this.onChange(this.value);\n }\n\n this.tooltipValue = this.value + this.rangeUnity;\n this.updateTooltip(this.value);\n\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if (isChrome) {\n let porcentaje = ((clampedValue - this.min) / (rangeMax - this.min)) * 100;\n document.getElementById(this.id)?.style.setProperty('margin-top', '0.875rem');\n document.getElementById(this.id)?.style.setProperty('margin-bottom', '0.875rem');\n document.getElementById(this.id)?.style.setProperty('border-radius', '0.25rem');\n document.getElementById(this.id)?.style.setProperty('height', '0.5rem');\n document\n .getElementById(this.id)\n ?.style.setProperty(\n 'background',\n 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' +\n porcentaje +\n '%, var(--neutrals-1000) ' +\n porcentaje +\n '%, var(--neutrals-1000) 100%)'\n );\n }\n }, 0);\n }\n\n //FUNCION PARA CHROME CUANDO SE DESLIZA EL SLIDE FUNCIONE CORRECTAMENTE\n changeRange(value: any) {\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n const rangeMax = this.max ? this.max : 100;\n if (isChrome) {\n let porcentaje = ((value - this.min) / (rangeMax - this.min)) * 100;\n document\n .getElementById(this.id)\n ?.style.setProperty(\n 'background',\n 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' +\n porcentaje +\n '%, var(--neutrals-1000) ' +\n porcentaje +\n '%, var(--neutrals-1000) 100%)'\n );\n }\n }\n\n //FUNCION QUE ACTUALIZA EL TOOLTIP CUANDO SE DESLIZA EL SLIDE\n updateTooltip(value: string) {\n if (this.tooltipContainer && this.tooltip) {\n const rangeWidth = this.tooltipContainer.nativeElement.offsetWidth;\n const rangeMax = this.max ? this.max : 100;\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;\n let ajuste = (porcentaje * rangeWidth) / 100;\n this.tooltip.nativeElement.style.left = `${ajuste}px`;\n this.tooltipValue = value + this.rangeUnity;\n }\n }\n\n preventInteraction(event: Event) {\n if (this.readOnly) {\n event.preventDefault();\n }\n }\n //FIN FUNCIONES PARA TYPE RANGE\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n if (value !== null && value !== undefined) {\n const clampedValue = this.clampValue(value);\n this.value = clampedValue.toString();\n this.rangeOnLoad();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n\n onNumberInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const clampedValue = this.clampValue(input.value);\n\n input.value = clampedValue.toString();\n this.value = input.value;\n this.updateTooltip(this.value);\n this.changeRange(this.value);\n this.onTextChange();\n }\n\n clampValue(value: any): number {\n let num = Number(value);\n\n if (isNaN(num)) {\n return this.min;\n }\n\n if (this.max !== undefined && num > this.max) {\n return this.max;\n }\n\n if (num < this.min) {\n return this.min;\n }\n\n return num;\n }\n}\n","<ng-container>\n <label *ngIf=\"label\" class=\"s-slider__label\">\n {{ label }}\n <span class=\"s-slider__required\" *ngIf=\"required\">*</span>\n </label>\n <div class=\"s-slider__row\" [ngClass]=\"{ 'with-input': showInput }\">\n <div class=\"s-slider__content {{ classAdd }}\" [ngClass]=\"{ 'disabled-active': disabled }\">\n <div class=\"tooltip tooltip-{{ disabled }}\" #tooltipContainer>\n <input\n #rangeField\n [id]=\"id\"\n type=\"range\"\n [min]=\"min\"\n [max]=\"max ?? null\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\"\n (mousedown)=\"preventInteraction($event)\" />\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-input\n *ngIf=\"showInput\"\n #numberInput\n type=\"number\"\n class=\"s-slider__number\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (input)=\"onNumberInput($event)\">\n </s-input>\n </div>\n <s-error-control *ngIf=\"errorText\" theme=\"red\">{{ errorText }}</s-error-control>\n <s-error-control *ngIf=\"helpText && !errorText\">\n <i class=\"s-slider__help-icon\">i</i>\n {{ helpText }}\n </s-error-control>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { THEME } from '../../../enums/theme.enum';\nimport { INPUT_SIZE } from '../../enums/size.enum';\n\nexport class SCalendar {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: string;\n min?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-calendar',\n templateUrl: './s-calendar.component.html',\n styleUrls: ['./s-calendar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCalendarComponent),\n multi: true,\n },\n ],\n})\nexport class SCalendarComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: SCalendar = new SCalendar();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n id!: string;\n ICON_THEME = ICON_THEME;\n isFocused: boolean = false;\n\n ngOnInit(): void {\n this.id = this.config.id = `s-calendar`;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-calendar\">\n <label [for]=\"id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\" class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme === 'default' || (config?.theme === undefined && config.showHelp)\"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { INPUT_SIZE } from '../../enums/size.enum';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\n\nexport class STime {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n min?: number;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-time',\n templateUrl: './s-time.component.html',\n styleUrls: ['./s-time.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => STimeComponent),\n multi: true,\n },\n ],\n})\nexport class STimeComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: STime = new STime();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-time`;\n }\n\n inputTimeout?: any;\n ICON_THEME = ICON_THEME;\n isFocused: boolean = false;\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme === 'default' || (config?.theme === undefined && config.showHelp)\" class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\n\n@Component({\n selector: 's-color',\n templateUrl: './s-color.component.html',\n styleUrls: ['./s-color.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SColorComponent),\n multi: true,\n },\n ],\n})\nexport class SColorComponent implements OnInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() value: string = '#000000';\n @Input() id?: string;\n @Input() name: string = '';\n @Input() label?: string;\n @Input() placeHolder?: string;\n @Input() required?: boolean;\n @Input() helpText?: string;\n @Input() errorText?: string;\n @Input() hideErrorText?: boolean;\n @Input() readOnly: boolean = false;\n @Input() theme: 'default' | 'green' | 'yellow' | 'red' = 'default';\n @Input() classAdd: string = '';\n @Input() help: boolean = false;\n @Input() size: 'sm' | 'md' = 'md';\n @Input() disabled = false;\n\n inputTimeout?: any;\n visibility = false;\n inconSymbol: boolean = false;\n ICON_THEME = ICON_THEME;\n\n @Output() valueChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngOnInit(): void {\n this.id = this.id || `s-color`;\n }\n\n onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.valueChangeEvent.next(this.value);\n },\n 500,\n null\n );\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n colorClick() {\n document.getElementById(this.name)?.click();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.theme == 'yellow' ? 'symbol' : 'icon';\n }\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n}\n","<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{ theme }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': disabled, readonly: readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\" />\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\"> help_outline </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { INPUT_SIZE } from '../../enums/size.enum';\n\nexport class SInputNumber {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n min?: number;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n step?: number;\n theme?: THEME;\n useFormControl?: boolean;\n\n constructor(config?: Partial<SInputNumber>) {\n Object.assign(this, config);\n if (!this.theme) {\n this.theme = THEME.DEFAULT;\n }\n }\n}\n\n@Component({\n selector: 's-input-number',\n templateUrl: './s-input-number.component.html',\n styleUrls: ['./s-input-number.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputNumberComponent),\n multi: true,\n },\n ],\n})\nexport class SInputNumberComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: SInputNumber = new SInputNumber();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n inputNumber: number = 0;\n inconSymbol: boolean = false;\n ICON_THEME = ICON_THEME;\n numberControl = new FormControl(0);\n isFocused: boolean = false;\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id || `s-input-number`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return this.numberControl;\n }\n this.numberControl = this.control;\n return this.numberControl;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n numberDecrease() {\n this.adjustNumber(-1);\n }\n\n numberIncrement() {\n this.adjustNumber(1);\n }\n\n adjustNumber(step: number) {\n if (!this.config.disabled && !this.config.readOnly) {\n if (this.config.step === undefined) this.config.step = 1;\n const currentValue = this.getValue();\n const newValue = currentValue + step * this.config.step;\n if (\n (step < 0 && (this.config.min === undefined || newValue >= this.config.min!)) ||\n (step > 0 && (this.config.max === undefined || newValue <= this.config.max!))\n ) {\n this.setValue(newValue);\n }\n }\n }\n\n getValue(): number {\n return this.config.useFormControl === false ? Number(this.value) : (Number(this.numberControl.value) ?? 0);\n }\n\n setValue(newValue: number) {\n if (this.config.useFormControl === false) {\n this.value = newValue.toString();\n this.onChange(this.value);\n return;\n }\n this.numberControl.setValue(newValue);\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n\n canDecrease(): boolean {\n if (this.config.disabled || this.config.readOnly) return false;\n\n if (this.config.min === undefined) return true;\n\n const currentValue = this.getValue();\n return currentValue > this.config.min;\n }\n\n canIncrease(): boolean {\n if (this.config.disabled || this.config.readOnly) return false;\n\n if (this.config.max === undefined) return true;\n\n const currentValue = this.getValue();\n return currentValue < this.config.max;\n }\n}\n","<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"!canDecrease()\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [id]=\"id + '-button-decrease'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config.theme !== 'default' && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"(config?.theme === 'default' && config.showHelp) || (config?.theme === undefined && config.showHelp)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"!canIncrease()\"\n (click)=\"numberIncrement()\"\n [id]=\"id + '-button-increment'\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SErrorControl } from './components/error-control/s-error-control.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SInputTextAreaComponent } from './components/input-textarea/s-input-textarea.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SInputComponent } from './components/input/s-input.component';\nimport { SSliderComponent } from './components/slider/s-slider.component';\nimport { SCalendarComponent } from './components/calendar/s-calendar.component';\nimport { STimeComponent } from './components/time/s-time.component';\nimport { SColorComponent } from './components/color/s-color.component';\nimport { SInputNumberComponent } from './components/input-number/s-input-number.component';\nimport { SValidationError } from './components/validation-error/s-validation-error.component';\n\n@NgModule({\n declarations: [\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SSliderComponent,\n SCalendarComponent,\n STimeComponent,\n SColorComponent,\n SValidationError,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SIconMaterialModule,\n SButtonModule,\n ],\n exports: [\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SSliderComponent,\n SCalendarComponent,\n STimeComponent,\n SColorComponent,\n SValidationError,\n SErrorControl,\n ],\n})\nexport class SInputModule {}\n","export enum INPUT_SIZE {\n SM = 'sm',\n MD = 'md'\n}","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n forwardRef,\n AfterContentInit,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { SCheckbox } from '../../checkbox';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectNavigationService } from '../s-select-service';\nimport { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { ControlValueAccessorDirective } from '../../input/directives/control-value-accessor.directive';\nimport { INPUT_TYPE, SInput } from '../../input/components/input/s-input-model';\nimport { SItemMultiSelect, SMultiSelect } from './s-select-multiple-model';\n\n@Component({\n selector: 's-select-multiple',\n templateUrl: './s-select-multiple.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectMultipleComponent),\n multi: true,\n },\n ],\n})\nexport class SSelectMultipleComponent\n extends ControlValueAccessorDirective<string[]>\n implements AfterContentInit, OnInit\n{\n @Input() config!: SMultiSelect;\n @Output() selectEvent = new EventEmitter<SItemMultiSelect[]>();\n @Output() selectedEvent = new EventEmitter<string[]>();\n @Output() blurEvent = new EventEmitter<void>();\n @Output() focusEvent = new EventEmitter<void>();\n @Input() id!: string;\n\n value: string[] = [];\n optionsInit!: any[];\n clickInside: boolean = false;\n isOpen: boolean = false;\n countSelected: any;\n checkItem: SCheckbox = {\n useFormControl: false,\n tabIndex: -1,\n };\n checkAll: SCheckbox = {\n id: 'all',\n useFormControl: false,\n };\n selectAll: boolean = false;\n selectionText!: string;\n searchText: string = '';\n options: SItemMultiSelect[] = [];\n configSearch!: SInput;\n INPUT_SIZE = INPUT_SIZE;\n isFocused: boolean = false;\n\n constructor(\n private selectNavService: SelectNavigationService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config.id ?? `s-select-multiple`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return (this.control = new FormControl(''));\n }\n return this.control;\n }\n\n ngAfterContentInit() {\n this._initConfig();\n this.options = this.config.options;\n this.countSelect();\n }\n\n openDropDown() {\n if (this.config.disabled || this.config.readOnly) {\n this.isOpen = false;\n return;\n }\n this.isOpen = !this.isOpen;\n this.isOpen ? this.onFocus() : this.onBlur();\n }\n\n filter() {\n if (!this.searchText) {\n this.options = [...this.config.options];\n } else {\n this.options = this.config.options.filter(option =>\n option.title.toLowerCase().includes(this.searchText.toLowerCase())\n );\n }\n }\n\n selectAllEvent() {\n const setValue = !this.selectAll;\n this.options.forEach(item => {\n item.value = setValue;\n this.value.push(item.id);\n });\n if (!setValue) this.value = [];\n this.updateStates();\n }\n\n changeItem(item: any) {\n item.value = !item.value;\n this.value = this.config.options.filter(option => option.value).map(option => option.id);\n this.updateStates();\n }\n\n updateStates() {\n if (this.config.useFormControl) {\n this.onTouched();\n }\n this.onChange(this.value);\n this.selectedEvent.emit(this.value);\n this.selectEvent.emit(this.config.options);\n this.countSelect();\n }\n\n countSelect() {\n this.countSelected = this.config.options.filter(obj => obj.value === true).length;\n this.config.options.length == this.countSelected ? (this.selectAll = true) : (this.selectAll = false);\n this.setText();\n }\n\n setText() {\n this.selectionText =\n this.options.length == this.countSelected\n ? this.config.allSelected\n : `${this.countSelected} ${this.config.selected}`;\n }\n\n override writeValue(value: string[]): void {\n super.writeValue(value);\n\n this.value = value || [];\n this.config.options.forEach(option => {\n option.value = value.includes(option.id);\n });\n this.countSelect();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.config.disabled = true;\n }\n }\n\n private _initConfig() {\n this.configSearch = {\n id: 'search',\n type: INPUT_TYPE.SEARCH,\n useFormControl: false,\n size: this.config.size === 'sm' ? INPUT_SIZE.SM : INPUT_SIZE.MD,\n };\n }\n\n //EVENTOS PARA DETECTAR CLICK FUERA Y CERRAR EL SELECT\n @HostListener('click')\n clicked() {\n this.clickInside = true;\n }\n @HostListener('document:click')\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blurEvent.next();\n }\n\n onFocus(): void {\n this.isFocused = true;\n this.focusEvent.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n if (this.config.readOnly || this.config.disabled) return;\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n\n onKeyDownItems(event: KeyboardEvent, item: any): void {\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.changeItem.bind(this), false);\n }\n}\n","<article *ngIf=\"config\" class=\"s-select\" [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n class=\"s-select__main cursor\"\r\n [id]=\"id\"\r\n [ngClass]=\"{\r\n readonly: config.readOnly,\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-multiple\" [id]=\"id + '-options'\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"config.size === 'md' ? 'md' : 'sm'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar [size]=\"config.size === 'sm' ? 'sm' : 'md'\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!config.readOnly || !config.disabled\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\"\r\n [id]=\"id + '-errorValidation'\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\"\r\n [id]=\"id + '-errorText'\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\"\r\n [id]=\"id + '-helpText'\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [id]=\"id + '-search'\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div class=\"s-select__options-multiple\" [ngClass]=\"config.size === 'sm' ? 'xs' : 'sm'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"{ sm: config.size === 'sm', md: config.size !== 'sm', 'no-display': !config.display }\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox [config]=\"checkItem\" [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options-multiple--selected\" [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">{{ this.config.selected }}: {{ this.countSelected }}</p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{ options.length === countSelected ? config.deselectAllOptions : config.selectAllOption }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n forwardRef,\n HostListener,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { SSelectSimpleModel } from '../s-select-model';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorDirective } from '../../input/directives/control-value-accessor.directive';\nimport { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { SelectNavigationService } from '../s-select-service';\nimport { SSelect } from './s-select-model';\n\n@Component({\n selector: 's-select',\n templateUrl: './s-select.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectComponent),\n multi: true,\n },\n ],\n})\nexport class SSelectComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config!: SSelect;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n @Input() id!: string;\n\n INPUT_SIZE = INPUT_SIZE;\n isOpen: boolean = false;\n activeIndex!: number;\n value: any = undefined;\n clickInside: boolean = false;\n isFocused: boolean = false;\n\n constructor(\n injector: Injector,\n private selectNavService: SelectNavigationService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.id) this.id = this.config.id ?? `s-select`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return (this.control = new FormControl(''));\n }\n return this.control;\n }\n\n getTitle(): string {\n if (!this.config?.options?.length) {\n return '';\n }\n if (this.value === null || this.value === undefined) {\n return '';\n }\n const option = this.config.options.find(item => item.value === this.value.toString());\n return option?.title ?? '';\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getSelectedValue(e: SSelectSimpleModel) {\n this.control ? this.control.setValue(e.value.toString()) : (this.value = e.value);\n this.activeIndex = this.config.options?.indexOf(e);\n this.value = e.value;\n this.onChange(this.value);\n this.onBlur();\n }\n\n @HostListener('click')\n clicked() {\n this.clickInside = true;\n if (!this.config.disabled && !this.control?.disabled && !this.config.readOnly) {\n this.isOpen = !this.isOpen;\n this.onFocus();\n }\n }\n\n @HostListener('document:click')\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blur.next();\n }\n\n onFocus(): void {\n this.isFocused = true;\n this.focus.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n if (this.config.readOnly || this.config.disabled) return;\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n\n onKeyDownItems(event: KeyboardEvent, item: SSelectSimpleModel): void {\n this.isOpen = this.selectNavService.onKeyDownItems(\n event,\n item,\n this.isOpen,\n this.getSelectedValue.bind(this),\n true\n );\n }\n}\n","<div *ngIf=\"config\" class=\"s-select\" [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\" [id]=\"id + '-label'\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n readonly: config.readOnly,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"id\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!config.readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\"\r\n [id]=\"id + '-errorValidation'\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\"\r\n [id]=\"id + '-errorText'\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\"\r\n [id]=\"id + '-helpText'\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n <div\r\n class=\"s-select__options\"\r\n [ngClass]=\"{\r\n 'label-off': !config.label,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n 'no-display': !config.display,\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"md\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' && (activeIndex || this.activeIndex === 0) && config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"md\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"config.options[activeIndex].user?.url ?? undefined\"></s-avatar>\r\n </div>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewEncapsulation,\r\n OnInit,\r\n forwardRef,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SCheckbox } from '../../checkbox';\r\nimport { SelectNavigationService } from '../s-select-service';\r\n\r\n@Component({\r\n selector: 's-select-multiple-old',\r\n templateUrl: './s-select-multiple-old.component.html',\r\n styleUrls: ['../s-select-style.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SSelectMultipleOldComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SSelectMultipleOldComponent\r\n implements OnInit, ControlValueAccessor\r\n{\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n @Input() disabled: boolean = false;\r\n @Input() placeholder: string = 'Seleccionar miembro';\r\n @Input() options!: any[];\r\n optionsInit: any[] = this.options;\r\n\r\n @Input() label: string = '';\r\n @Input() readOnly: boolean = false;\r\n @Input() display: 'dot' | 'iconperson' | 'profile' | undefined = undefined;\r\n @Input() size: 'sm' | 'md' = 'md';\r\n @Input() selectAllOption: string = 'Seleccionar todos';\r\n @Input() allSelected: string = 'Todos los items seleccionados';\r\n @Input() selected: string = 'items';\r\n\r\n clickInside: boolean = false;\r\n isOpen: boolean = false;\r\n countSelected: any;\r\n checkAll: SCheckbox = {\r\n id: 'all',\r\n useFormControl: false,\r\n tabIndex: -1,\r\n };\r\n selectAll: boolean = false;\r\n selectionText!: string;\r\n\r\n @Output() selectEvent = new EventEmitter<any>();\r\n @Output() blur = new EventEmitter<void>();\r\n @Output() focus = new EventEmitter<void>();\r\n\r\n constructor(private selectNavService: SelectNavigationService) {}\r\n ngOnInit(): void {\r\n this.optionsInit = this.options;\r\n this.countSelect();\r\n\r\n if (this.readOnly) {\r\n this.disabled = true;\r\n }\r\n }\r\n\r\n selectAllEvent() {\r\n const setValue = !this.selectAll;\r\n this.options.forEach(item => {\r\n item.value = setValue;\r\n });\r\n this.selectionText = setValue ? this.allSelected : ``;\r\n this.countSelect();\r\n this.onTouch();\r\n this.onChange(this.options);\r\n this.selectEvent.emit(this.options);\r\n }\r\n\r\n openDropDown() {\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n if (this.isOpen) {\r\n this.onFocus();\r\n } else {\r\n this.onBlur();\r\n }\r\n }\r\n\r\n changeItem(item: any) {\r\n this.selectAll = false;\r\n item.value = !item.value;\r\n this.onTouch();\r\n this.onChange(this.options);\r\n this.selectEvent.emit(this.options);\r\n this.countSelect();\r\n }\r\n\r\n setText() {\r\n this.selectionText =\r\n this.countSelected === this.options.length\r\n ? this.allSelected\r\n : `+ ${this.countSelected} ${this.selected}`;\r\n }\r\n\r\n countSelect() {\r\n this.countSelected = this.options.filter(obj => obj.value === true).length;\r\n this.options.length == this.countSelected\r\n ? (this.selectAll = true)\r\n : (this.selectAll = false);\r\n this.setText();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (!value) {\r\n this.countSelected = 0;\r\n this.options = this.optionsInit.map(obj => ({ ...obj, value: false }));\r\n this.onChange(this.options);\r\n } else {\r\n this.options = value;\r\n this.onChange(value);\r\n this.countSelect();\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.onTouch = fn;\r\n }\r\n\r\n //EVENTOS PARA DETECTAR CLICK FUERA Y CERRAR EL SELECT\r\n @HostListener('click')\r\n clicked() {\r\n this.clickInside = true;\r\n }\r\n @HostListener('document:click')\r\n clickedOut() {\r\n if (this.isOpen && !this.clickInside) {\r\n this.isOpen = false;\r\n this.onBlur();\r\n }\r\n this.clickInside = false;\r\n }\r\n\r\n onBlur(): void {\r\n this.blur.next();\r\n }\r\n\r\n onFocus(): void {\r\n this.focus.next();\r\n }\r\n\r\n onKeyDownMain(event: KeyboardEvent): void {\r\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\r\n }\r\n\r\n onKeyDownItems(event: KeyboardEvent, item: any): void {\r\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.changeItem.bind(this) , false);\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{ size ? size : '' }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"sm\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"md\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{ selectionText }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{ placeholder }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox [config]=\"checkAll\" [(ngModel)]=\"selectAll\" (keydown.enter)=\"selectAllEvent()\"></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"sm\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"md\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-link',\n templateUrl: './s-link.component.html',\n styleUrls: ['./s-link.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SLinkComponent {\n @Input() disabled: boolean = false;\n @Input() size: 'sm' | 'md' | 'lg' = 'sm';\n @Input() invert: boolean = false;\n @Input() target?: '_blank' | '_parent' | '_self' | '_top' = '_parent';\n @Input() href?: string = '';\n @Input() visited: boolean = true;\n @Input() id?: string = 's-link';\n}\n","<a\n class=\"s-link s-link--size-{{ size }}\"\n [target]=\"target\"\n [href]=\"href\"\n [id]=\"id\"\n [class.disabled]=\"disabled\"\n [class.invert]=\"invert\"\n [class.not-visited]=\"!visited\">\n <ng-content></ng-content>\n</a>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SLinkComponent } from './s-link.component';\n\n\n@NgModule({\n declarations: [\n SLinkComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SLinkComponent]\n})\nexport class SLinkModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSelectSimpleComponent } from './select-simple/s-select-simple.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SAvatarModule } from '../avatar';\nimport { SSelectMultipleComponent } from './select-multiple/s-select-multiple.component';\nimport { SCheckboxModule } from '../checkbox';\nimport { SRadioModule } from '../radio';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\nimport { SSelectComponent } from './select/s-select.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SInputModule } from '../input/input.module';\nimport { SSelectMultipleOldComponent } from './select-multiple-old/s-select-multiple-old.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SLinkModule } from '../link/s-link.module';\n\n@NgModule({\n declarations: [\n SSelectSimpleComponent,\n SSelectMultipleComponent,\n SSelectComponent,\n SSelectMultipleOldComponent,\n ],\n exports: [\n SSelectSimpleComponent,\n SSelectMultipleComponent,\n SSelectComponent,\n SSelectMultipleOldComponent,\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SAvatarModule,\n SCheckboxModule,\n SRadioModule,\n SProfileGroupModule,\n ReactiveFormsModule,\n SInputModule,\n FormsModule,\n SButtonModule,\n SLinkModule,\n ],\n})\nexport class SSelectModule {}\n","export class SSelectMultipleModel {\n public title!: string;\n public value!: string | number | boolean;\n public inputType?: 'checkbox' | 'radio';\n public key?: string | number;\n public user?: SSelectUser;\n}\nexport class SSelectSimpleModel {\n public title!: string;\n public value!: string | number | boolean;\n public key?: string | number;\n public user?: SSelectUser;\n}\n\nexport class SSelectUser {\n public name?: string;\n public display?: 'avatar' | 'icon' | 'letters';\n public letters?: string;\n public url?: string;\n public status?:\n | 'approved'\n | 'declined'\n | 'blocked'\n | 'online'\n | 'offline'\n | 'busy';\n}\n","import { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { SSelectSimpleModel } from '../s-select-model';\n\nexport class SSelect {\n classAdd?: string;\n disabled?: boolean;\n display?: 'dot' | 'iconperson' | 'profile';\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n options!: SSelectSimpleModel[];\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n selectedValue?: any;\n showHelp?: boolean;\n size?: INPUT_SIZE = INPUT_SIZE.MD;\n useFormControl?: boolean;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSpinnerComponent } from './s-spinner.component';\nimport { SAnimationModule } from '../animation';\n\n@NgModule({\n declarations: [SSpinnerComponent],\n imports: [CommonModule, SAnimationModule],\n exports: [SSpinnerComponent],\n})\nexport class SSpinnerModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SCheckData } from './s-card-models';\nimport { SSubMenu } from '../sub-menu/s-sub-menu-model';\n\n@Component({\n selector: 's-card',\n templateUrl: './s-card.component.html',\n styleUrls: ['./s-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCardComponent implements OnInit {\n @Input() title: string = '';\n @Input() subtitle: string = '';\n @Input() menu?: SSubMenu;\n @Input() check?: SCheckData | null = null;\n @Input() showHorizontal: boolean = false;\n @Input() id?: string = 's-card';\n @Input() image: string = '';\n @Input() fullimage: boolean = false;\n @Input() icon: string = '';\n @Input() size: 'sm' | 'md' | 'lg' | 'full' = 'full';\n @Input() label: string = '';\n @Input() shadow: 0 | 100 | 200 | 300 | 400 | 500 | 600 = 100;\n\n @Output() clickEvent = new EventEmitter<string>();\n @Output() checkEvent = new EventEmitter<any>();\n\n showDropDownCard: boolean = false;\n localImage: SafeResourceUrl | undefined;\n\n constructor(private domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.image) {\n this.localImage = this.domSanitizer.bypassSecurityTrustResourceUrl(this.image);\n }\n }\n\n showDropDown() {\n this.showDropDownCard = !this.showDropDownCard;\n }\n\n onClickEvent(event: any) {\n this.showDropDownCard = false;\n this.clickEvent.next(event);\n }\n\n onCheckEvent(event: any) {\n this.checkEvent.emit(event);\n }\n}\n","<div class=\"s-card s-card--{{ size }} s-card--shadow-{{ shadow }}\" [id]=\"id\">\n <div *ngIf=\"!showHorizontal && check\" class=\"s-card__check\">\n <s-checkbox-old\n class=\"s-card__check-component\"\n [value]=\"check.value\"\n [model]=\"check.model\"\n [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\"\n (emitSelection)=\"onCheckEvent($event)\"></s-checkbox-old>\n </div>\n\n <div *ngIf=\"!showHorizontal && image\" [ngClass]=\"fullimage ? 's-card__content-image-full' : 's-card__content-image'\">\n <img [src]=\"localImage\" alt=\"card-image\" />\n </div>\n <div *ngIf=\"!showHorizontal && !image && icon\" class=\"s-card__content-image\">\n <s-icon-mat>{{ icon }}</s-icon-mat>\n </div>\n\n <div class=\"s-card__header\" [ngClass]=\"{ 's-card__header-horizontal': showHorizontal }\">\n <div class=\"s-card__check-horizontal\" *ngIf=\"showHorizontal && check\">\n <s-checkbox-old\n *ngIf=\"showHorizontal && check\"\n [value]=\"check.value\"\n [model]=\"check.model\"\n [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\"\n (emitSelection)=\"onCheckEvent($event)\"></s-checkbox-old>\n </div>\n <h6 *ngIf=\"title\">{{ title }}</h6>\n <span *ngIf=\"!showHorizontal && subtitle\" class=\"s-caption\">{{ subtitle }}</span>\n <div *ngIf=\"menu\" class=\"s-card__header-menu-section\">\n <s-icon-mat class=\"s-card__header-menu\" *ngIf=\"menu\" (click)=\"showDropDown()\">more_vert</s-icon-mat>\n <s-sub-menu\n *ngIf=\"showDropDownCard\"\n class=\"s-card__submenu\"\n [menu]=\"menu\"\n (changeMenuEvent)=\"onClickEvent($event)\"\n (closeMenuEvent)=\"showDropDown()\"></s-sub-menu>\n </div>\n <ng-content *ngIf=\"!showHorizontal\"></ng-content>\n <s-tag *ngIf=\"label\" type=\"green\">{{ label }}</s-tag>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCardComponent } from './s-card.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { STagModule } from '../tag';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSubMenuModule } from '../sub-menu';\n\n@NgModule({\n declarations: [SCardComponent],\n imports: [\n CommonModule,\n SIconMaterialModule,\n STagModule,\n SCheckboxModule,\n SSubMenuModule,\n ],\n exports: [SCardComponent],\n})\nexport class SCardModule {}\n","// export class SCardMenu {\n// title?: string;\n// key?: string;\n// }\n\nexport class SCheckData {\n value: any;\n model: any;\n disabled: boolean = false;\n undefined: boolean = false;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SDynamicFormComponent } from './s-dynamic-form.component';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\nimport { SInputModule } from '../input';\nimport { SSelectModule } from '../select';\nimport { SSpinnerModule } from '../spinner';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SButtonModule } from '../button';\nimport { SCardModule } from '../card';\n\n@NgModule({\n declarations: [SDynamicFormComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SInputModule,\n SSelectModule,\n SSpinnerModule,\n SButtonModule,\n ReactiveFormsModule,\n SCardModule,\n ],\n exports: [SDynamicFormComponent],\n})\nexport class SDynamicFormModule {}\n","export class FieldOptionDto {\n id: number = 0;\n fieldId: number = 0;\n value: string = \"\";\n label: string = \"\";\n position: number = 0;\n isDeleted: boolean = false;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FieldOptionDto {\n let result = new FieldOptionDto();\n result.init(data);\n return result;\n }\n}","import { FieldTemplateDto } from \"../field/field-template-dto\";\n\nexport class GroupFieldDto {\n id: number = 0;\n fieldId: number = 0;\n position: number = 0;\n groupId: number = 0;\n behaviorId: number = 0;\n internal: boolean = false;\n mandatory: boolean = false;\n field: FieldTemplateDto = new FieldTemplateDto();\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): GroupFieldDto {\n let result = new GroupFieldDto();\n result.init(data);\n return result;\n }\n}","import { GroupFieldDto } from \"./group-field-dto\";\n\nexport class GroupTemplateDto {\n id: number = 0;\n name: string = \"\";\n description: string = \"\";\n label: string = \"\";\n deleted: boolean = false;\n template: boolean = false;\n internal: boolean = false;\n lastModificationTime: string = \"\";\n listGroupFields: GroupFieldDto[] = [];\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): GroupTemplateDto {\n let result = new GroupTemplateDto();\n result.init(data);\n return result;\n }\n}","import { GroupTemplateDto } from \"../group/group-templates-dto\";\n\nexport class FormGroupDto {\n id: number = 0;\n group: GroupTemplateDto = new GroupTemplateDto();\n internal: boolean = false;\n position: number = 0;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormGroupDto {\n let result = new FormGroupDto();\n result.init(data);\n return result;\n }\n}","export class LinkedFieldDto {\n formLayoutId: number = 0;\n parentFieldId: number = 0;\n LinkedFieldId: string = \"\";\n tenantId: string = \"\";\n validationType: string = \"\";\n value: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): LinkedFieldDto {\n let result = new LinkedFieldDto();\n result.init(data);\n return result;\n }\n}","import { FormLayoutDto } from \"../form/form-layout-dto\";\n\nexport class FormFilledDto {\n id: number = 0;\n formLayoutId: number = 0;\n externalId: string = '';\n dateCreated: string = new Date().toISOString();\n dateUpdated: string | null = null;\n formFilledValues: FormFilledValueDto[] = [];\n formFilledMetadatas: FormFilledMetadataDto[] | null = [];\n formLayout: FormLayoutDto | null = null;\n isDeleted: boolean = false;\n \n constructor(init?: Partial<FormFilledDto>) {\n Object.assign(this, init);\n }\n }\n \n export class FormFilledValueDto {\n value: string = '';\n fieldId: number = 0;\n \n constructor(init?: Partial<FormFilledValueDto>) {\n Object.assign(this, init);\n }\n }\n \n export class FormFilledMetadataDto {\n formFilledId: number = 0;\n key: string = '';\n value: string = '';\n \n constructor(init?: Partial<FormFilledMetadataDto>) {\n Object.assign(this, init);\n }\n }\n ","import {\n AfterContentInit,\n Component,\n Directive,\n EventEmitter,\n HostListener,\n input,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ConfigColumn, SortTable } from './s-tablet-model';\n\n@Component({\n selector: 's-tablet',\n templateUrl: './s-tablet.component.html',\n styleUrls: ['./s-tablet.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STabletComponent implements OnInit {\n @Input() data: any;\n @Input() loading: boolean = false;\n @Input() caption!: TemplateRef<any>;\n @Input() header!: TemplateRef<any>;\n @Input() bodyloading!: TemplateRef<any>;\n @Input() body!: TemplateRef<any>;\n @Input() configColumn!: ConfigColumn[];\n @Input() isTreeMode: boolean = false;\n @Input() id?: string = 's-tablet';\n loadingScroll = input<boolean>(false);\n\n @Output() updateDataEvent = new EventEmitter<any>();\n @Output() ordenByEvent = new EventEmitter<SortTable>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\n @Output() scrollEvent = new EventEmitter<void>();\n\n initData: any;\n fieldSelect!: SortTable;\n checkboxConfig = {\n useFormControl: false,\n };\n\n ngOnInit(): void {\n this.initData = this.data;\n }\n\n orderBy(column: ConfigColumn) {\n if (column.sortable !== false && !column.disabled && !column.checkbox) {\n if (column.id) {\n //column.id es el campo a ordenar.\n const sortAsc =\n this.fieldSelect && this.fieldSelect.SortField === column.id && this.fieldSelect.SortAsc === true\n ? false\n : true;\n this.fieldSelect = {\n SortAsc: sortAsc,\n SortField: column.id,\n };\n this.ordenByEvent.emit(this.fieldSelect);\n }\n }\n }\n\n updateData(_dataSort?: any): void {\n this.updateDataEvent.next(_dataSort);\n }\n\n restartData(): void {\n this.updateDataEvent.next(this.initData);\n }\n\n checkAll(event: any) {\n this.checkAllEvent.emit(event);\n }\n\n onScroll(event: Event): void {\n const element = event.target as HTMLElement;\n const atBottom = element.scrollHeight - element.scrollTop <= element.clientHeight + element.scrollHeight * 0.1; // antes del final para disparar el evento\n\n if (atBottom) {\n this.scrollEvent.emit();\n }\n }\n}\n\n@Directive({\n selector: '[SSorteableColumn]',\n host: {\n class: 'p-element',\n '[class.p-sortable-column]': 'isEnabled()',\n '[attr.aria-sort]': 'sortOrder',\n },\n})\nexport class SortableColumn {\n @Input('SSorteableColumn') field!: string;\n @Input() pSortableColumnDisabled: boolean = false;\n\n _dataSort: any;\n sorted: boolean = false;\n sortOrder!: string;\n\n constructor(public data: STabletComponent) {\n this._dataSort = this.data.data;\n }\n\n compareValues(key: any, order = 'asc') {\n return function innerSort(\n a: { [x: string]: any; hasOwnProperty: (arg0: any) => any },\n b: { [x: string]: any; hasOwnProperty: (arg0: any) => any }\n ) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n // property doesn't exist on either object\n return 0;\n }\n\n const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key];\n const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return order === 'desc' ? comparison * -1 : comparison;\n };\n }\n\n updateSortState() {\n this.sorted = !this.sorted;\n this.sorted\n ? this._dataSort.sort(this.compareValues(this.field, 'asc'))\n : this._dataSort.sort(this.compareValues(this.field, 'desc'));\n }\n\n @HostListener('click', ['$event'])\n onClick() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[SInputSearch]',\n host: {\n class: 's-element-search',\n },\n})\nexport class InputSearch {\n @Input('SInputSearch') fields!: string;\n\n _dataFilter: any;\n inputTimeout?: any;\n dataBeforeSearch: any;\n\n constructor(private data: STabletComponent) {\n this._dataFilter = data.data;\n }\n\n filterItems(query: any) {\n let results = [\n ...this.data.data.filter((item: any) => {\n const regexp = new RegExp(query, 'i');\n const properties = Object.keys(item);\n return properties.some(property => regexp.test(item[property]));\n }),\n ];\n this._dataFilter = results;\n this.data.updateData(this._dataFilter);\n }\n\n @HostListener('keyup', ['$event.target'])\n onEnterKey(e: any) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.filterItems(e.value);\n },\n 1000,\n null\n );\n\n if (e.value === '') {\n this.data.restartData();\n }\n }\n\n @HostListener('search', ['$event.target'])\n search(e: any) {\n if (e.value === '') {\n this.data.restartData();\n }\n }\n}\n\n@Directive({\n selector: '[STemplate]',\n})\nexport class STemplate implements AfterContentInit {\n @Input('STemplate') field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public table: STabletComponent\n ) {}\n\n ngAfterContentInit(): void {\n switch (this.field) {\n case 'caption':\n this.table.caption = this.element;\n break;\n case 'header':\n this.table.header = this.element;\n break;\n case 'body':\n this.table.body = this.element;\n break;\n case 'bodyloading':\n this.table.bodyloading = this.element;\n break;\n default:\n break;\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\" [id]=\"id\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [id]=\"id + '-column-' + column.id\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner [id]=\"id + '-spinner'\" size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n","export enum ActionsButtonsType {\n DELETE = 'delete',\n EDIT = 'edit',\n DOUBLE_ARROW_UP = 'top',\n DOUBLE_ARROW_DOWN = 'bottom',\n ARROW_UP = 'up',\n ARROW_DOWN = 'down',\n TOKEN = 'token',\n RESTORE = 'restore',\n CANCEL = 'cancel',\n APPROVE = 'approve',\n INFO = 'information',\n SUMMARY = 'summary',\n DOWNLOAD = 'download',\n PLAYERDASHBOARD = 'player_dashboard',\n VIEW = 'view',\n}\n","import { IActionsButtons } from '../interfaces/ActionsButtons.interface';\nimport { ActionsButtonsType } from '../enums/ActionsButtonsType.enum';\nimport { THEME } from '../../../enums';\n\n//Todo traducciones\nexport const ActionsButtons: IActionsButtons[] = [\n {\n type: ActionsButtonsType.DELETE,\n color: THEME.RED,\n icon: 'delete',\n },\n {\n type: ActionsButtonsType.EDIT,\n color: '',\n icon: 'edit',\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_UP,\n color: '',\n icon: 'keyboard_double_arrow_up',\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_DOWN,\n color: THEME.SECONDARY,\n icon: 'keyboard_double_arrow_down',\n },\n {\n type: ActionsButtonsType.ARROW_UP,\n color: '',\n icon: 'keyboard_arrow_up',\n },\n {\n type: ActionsButtonsType.ARROW_DOWN,\n color: THEME.SECONDARY,\n icon: 'keyboard_arrow_down',\n },\n {\n type: ActionsButtonsType.TOKEN,\n color: '',\n icon: 'key',\n },\n {\n type: ActionsButtonsType.RESTORE,\n color: THEME.SECONDARY,\n icon: 'settings_backup_restore',\n },\n {\n type: ActionsButtonsType.CANCEL,\n color: THEME.RED,\n icon: 'cancel',\n },\n {\n type: ActionsButtonsType.APPROVE,\n color: THEME.GREEN,\n icon: 'check_circle',\n },\n {\n type: ActionsButtonsType.INFO,\n color: THEME.SECONDARY,\n icon: 'info',\n },\n {\n type: ActionsButtonsType.SUMMARY,\n color: THEME.SECONDARY,\n icon: 'web',\n },\n {\n type: ActionsButtonsType.DOWNLOAD,\n color: '',\n icon: 'download',\n },\n {\n type: ActionsButtonsType.PLAYERDASHBOARD,\n color: '',\n icon: 'video_settings',\n },\n {\n type: ActionsButtonsType.VIEW,\n color: THEME.SECONDARY,\n icon: 'visibility',\n },\n];\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActionButton } from './interfaces';\nimport { ActionsButtonsType } from './enums/ActionsButtonsType.enum';\nimport { ActionsButtons } from './constants/actions-buttons';\n\n@Component({\n selector: 's-table-actions-buttons',\n templateUrl: './table-actions-buttons.component.html',\n styleUrls: ['./table-actions-buttons.component.scss'],\n})\nexport class TableActionsButtonsComponent {\n @Input() tableActionsButtons!: ActionButton[];\n @Input() id?: string = 's-table-actions-buttons';\n @Output() clickButtonEvent = new EventEmitter<string>();\n\n Type = ActionsButtonsType;\n ActionsButtons = ActionsButtons;\n\n getButtonsType(type?: ActionsButtonsType) {\n const button = this.ActionsButtons.filter(action => action.type == type);\n return button[0];\n }\n\n getButtonsClass(button: ActionButton): string {\n const type: ActionsButtonsType | undefined = button.type ?? undefined;\n let color = button.color ?? this.getButtonsType(type)?.color;\n //Cuando no existe el color , o es default se pone por defecto primary\n if (!color || color === 'default') {\n color = 'primary';\n }\n return `table-actions-buttons__icon__${color}${button.disabled ? '--disabled' : ''}`;\n }\n\n handleButtonClick(button: ActionButton): void {\n if (!button.disabled) {\n const type = button.customType ?? button.type;\n this.clickButtonEvent.emit(type);\n }\n }\n}\n","<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon px-1 no-select\"\n size=\"md\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n [id]=\"id + '-' + button.type\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip #tooltip [title]=\"button.tooltip\" [position]=\"button.tooltipPosition ?? 'top'\" theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableActionsButtonsComponent } from './table-actions-buttons.component';\nimport { SIconMaterialModule } from '../../icon-material/s-icon-material.module';\nimport { STooltipModule } from '../../tooltip/s-tooltip.module';\n\n@NgModule({\n declarations: [TableActionsButtonsComponent],\n imports: [CommonModule, SIconMaterialModule, STooltipModule],\n exports: [TableActionsButtonsComponent],\n})\nexport class TableActionsButtonsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n InputSearch,\n SortableColumn,\n STabletComponent,\n STemplate,\n} from './s-tablet.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { TableActionsButtonsModule } from './table-actions-buttons';\nimport { SCheckboxModule } from '../checkbox/s-checkbox.module';\nimport { FormsModule } from '@angular/forms';\nimport { SSpinnerModule } from '../spinner';\n\n@NgModule({\n declarations: [STabletComponent, InputSearch, SortableColumn, STemplate],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SCheckboxModule,\n FormsModule,\n SSpinnerModule,\n ],\n exports: [\n STabletComponent,\n InputSearch,\n SortableColumn,\n STemplate,\n TableActionsButtonsModule,\n ],\n})\nexport class STabletModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 's-popup',\n templateUrl: './s-popup.component.html',\n styleUrls: ['./s-popup.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPopupComponent implements OnInit, AfterViewInit {\n @Input() title: string = '';\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' = 'primary';\n @Input() iconType: string = '';\n @Input() borderBody: boolean = false;\n @Input() width: number = 500;\n @Input() height: number = 500;\n @Input() showPopup: boolean = false;\n @Input() iconCustom: boolean = false;\n @Input() iconCustomName: string = '';\n @Input() footer!: TemplateRef<any>;\n @Input() body!: TemplateRef<any>;\n @Input() id?: string = 's-popup';\n\n @Output() closeEvent = new EventEmitter<void>();\n style: any;\n show70: boolean = false;\n test: number = 0;\n\n ngOnInit(): void {\n this.switch();\n }\n\n ngAfterViewInit(): void {\n this.checkScreenSize();\n }\n\n switch() {\n switch (this.type) {\n case 'primary':\n this.iconType = '';\n break;\n case 'secondary':\n this.iconType = 'info';\n break;\n case 'green':\n this.iconType = 'check_circle';\n break;\n case 'red':\n this.iconType = 'error';\n break;\n case 'yellow':\n this.iconType = 'warning';\n break;\n default:\n break;\n }\n }\n\n getCalcPopUp(size: any) {\n return 'calc(50% - ' + size / 2 + 'px)';\n }\n\n getCalcBody(size: any) {\n return 'calc(' + size + 'px - 120px)';\n }\n\n open() {\n this.showPopup = true;\n }\n\n close() {\n this.showPopup = false;\n this.closeEvent.next();\n }\n\n toogle() {\n this.showPopup = !this.showPopup;\n if (!this.showPopup) {\n this.closeEvent.next();\n }\n }\n\n //Si se achica la pantalla a menos del ancho definido , se le asigna 70%\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n this.checkScreenSize();\n }\n\n checkScreenSize() {\n this.show70 = window.innerWidth <= this.width;\n }\n}\n\n@Directive({\n selector: '[STemplatePopup]',\n host: {\n // 'class': 's-element-search',\n },\n})\nexport class STemplatePopup implements AfterContentInit {\n @Input('STemplatePopup') field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public content: SPopupComponent\n ) {}\n\n ngAfterContentInit(): void {\n switch (this.field) {\n case 'footer':\n this.content.footer = this.element;\n break;\n case 'body':\n this.content.body = this.element;\n break;\n default:\n break;\n }\n }\n}\n","<div *ngIf=\"showPopup\" class=\"s-popup\" [id]=\"id\">\n <div\n class=\"s-popup__card\"\n [ngClass]=\"show70 ? 's-popup__card--show70' : ''\"\n [ngStyle]=\"{\n width: this.width + 'px',\n height: this.height + 'px',\n left: getCalcPopUp(this.width),\n top: getCalcPopUp(this.height),\n }\">\n <div class=\"s-popup__card__head s-popup__card__head--{{ type }}\">\n <div class=\"s-popup__card__head__divisor\">\n <s-icon-mat *ngIf=\"iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{\n iconCustomName\n }}</s-icon-mat>\n <s-icon-mat *ngIf=\"iconType && !iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{\n iconType\n }}</s-icon-mat>\n <h4 [id]=\"id + '-title'\">{{ title }}</h4>\n </div>\n <s-icon-mat [id]=\"id + '-icon-close'\" class=\"s-popup__card__head__close\" (click)=\"close()\">close</s-icon-mat>\n </div>\n <div>\n <div\n class=\"s-popup__card__body\"\n [ngClass]=\"{ borderBody: 's-popup__card__body--border-body' }\"\n [ngStyle]=\"{ height: getCalcBody(this.height) }\">\n <div class=\"s-popup__card__body__container\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n </div>\n <div class=\"s-popup__card__footer\">\n <div class=\"s-popup__card__footer__container\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPopupComponent, STemplatePopup } from './s-popup.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SButtonModule } from '../button/button.module';\n\n\n@NgModule({\n declarations: [\n SPopupComponent,\n STemplatePopup\n ],\n imports: [\n SButtonModule,\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [\n SPopupComponent,\n STemplatePopup\n ]\n})\nexport class SPopupModule { }\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-toggle-switch-old',\n templateUrl: './s-toggle-switch.component.html',\n styleUrls: ['./s-toggle-switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SToggleSwitchComponent),\n multi: true\n }\n ]\n\n})\nexport class SToggleSwitchComponent implements OnChanges , ControlValueAccessor {\n\n onChange2 = (_: any) => { };\n onTouch = () => { };\n\n ignore: boolean = false;\n @Input() size: 'sm' | 'md' = 'sm';\n @Input() value: boolean = false;\n @Input() showIcon: boolean = true;\n @Input() disabled: boolean = false;\n @Input() label: string = \"\";\n @Input() icon: string = \"check\";\n @Input() iconOff: string = \"close\";\n @Input() vertical: boolean = false;\n @Input() boldSelectActive: boolean = true;\n\n @Output() changeEvent = new EventEmitter<boolean>();\n\n\n ngOnChanges(changes: SimpleChanges): void {\n const previousValue = changes['value']?.previousValue;\n const currentValue = changes['value']?.currentValue;\n\n if (previousValue !== undefined && currentValue !== previousValue) {\n this.ignore = true;\n }\n }\n\n onChange(): void {\n if (!this.ignore) {\n this.onTouch();\n this.onChange2(this.value);\n this.changeEvent.emit(this.value);\n }\n }\n\n getIcon() {\n return this.value || this.showIcon == false ? this.icon : this.iconOff;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange2 = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.value = !this.value;\n this.onChange();\n }\n }\n\n}\n","<div class=\"s-toggle-switch s-toggle-switch--size-{{ size }}\" [ngClass]=\"vertical ? 's-toggle-switch--vertical' : ''\">\n <label class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\" />\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n disabled: disabled,\n active: value,\n 'no-active': !value,\n }\">\n <s-icon-mat [size]=\"size === 'md' ? 'sm' : 'xs'\" class=\"slider-icon-close\" *ngIf=\"showIcon\">{{\n getIcon()\n }}</s-icon-mat>\n </span>\n </label>\n <label\n *ngIf=\"label\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive && value,\n disabled: disabled,\n }\"\n >{{ label }}</label\n >\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlBooleanAccessorDirective } from '../../input/directives/control-boolean-accessor.directive';\n\nexport class SSwitch {\n boldSelectActive?: boolean;\n disabled?: boolean;\n label?: string;\n icon?: string;\n iconOff?: string;\n id?: string;\n size?: 'sm' | 'md';\n showIcon?: boolean;\n vertical?: boolean;\n useFormControl?: boolean;\n readOnly?: boolean;\n}\n\n@Component({\n selector: 's-toggle-switch',\n templateUrl: './toggle-switch-form.component.html',\n styleUrls: ['./toggle-switch-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleSwitchFormComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleSwitchFormComponent<T> extends ControlBooleanAccessorDirective<T> implements AfterViewInit, OnInit {\n @ViewChild('inputHidden') inputHidden!: ElementRef<HTMLInputElement>;\n\n @Input() config: SSwitch = {};\n @Input() id!: string;\n\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n @Output() valueChange = new EventEmitter<boolean>();\n\n checked: boolean = false;\n\n private _valueInternal: boolean = false;\n private _isFirstWriteValue = true;\n private _controlSubscribed = false;\n\n ngAfterViewInit(): void {\n if (this.config.useFormControl && this.control && !this._controlSubscribed) {\n this.subscribeToControl();\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config?.id ?? `s-toggle-switch`;\n }\n\n private subscribeToControl(): void {\n if (this._controlSubscribed || !this.control) return;\n this._controlSubscribed = true;\n\n this.control.valueChanges.subscribe(val => {\n if (this._valueInternal !== val) {\n this._valueInternal = val;\n this.valueChange.emit(val);\n this.onChange(val);\n }\n });\n }\n\n get valueProxy(): boolean {\n return this._valueInternal;\n }\n\n set valueProxy(val: boolean) {\n if (val == null) {\n return;\n }\n this._valueInternal = val;\n if (!this.useFormControl && this.inputHidden) {\n this.inputHidden.nativeElement.checked = val;\n }\n }\n\n override writeValue(value: T): void {\n if (value == null) return;\n\n const newValue = value as boolean;\n this.value = newValue;\n this.valueProxy = newValue;\n\n if (this.useFormControl) {\n if (!this.control) {\n this.control = new FormControl(newValue);\n }\n\n this.subscribeToControl();\n\n if (this.control.value !== newValue) {\n this.control.setValue(newValue, { emitEvent: false });\n }\n } else {\n if (!this._isFirstWriteValue) {\n this.valueChange.emit(newValue);\n this.onChange(newValue);\n }\n }\n\n this.updateValue(newValue, true, this._isFirstWriteValue);\n\n this._isFirstWriteValue = false;\n }\n\n onInput(): void {\n if (this.config.disabled) return;\n const input = this.inputHidden?.nativeElement;\n this.value = input.checked;\n this.updateValue(this.value);\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n getValue() {\n if (this.value) this.checked = this.value === true;\n return this.checked;\n }\n\n getValueGeneral() {\n if (this.control) {\n return !!this.control.value;\n }\n return !!this.value;\n }\n\n getIcon() {\n const isChecked = this.control?.value ?? this.value === true;\n return isChecked ? (this.config?.icon ?? 'check') : (this.config?.iconOff ?? 'close');\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.value = !this.value;\n this.updateValue(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n }\n\n onClickLabel() {\n const input = this.inputHidden?.nativeElement;\n if (input && !this.config.disabled && !this.config.readOnly) {\n const newVal = !input.checked;\n input.checked = newVal;\n this.value = newVal;\n\n if (this.config?.useFormControl) {\n this.control?.setValue(newVal);\n this.onTouched();\n } else {\n this.onChange(newVal);\n }\n\n this.updateValue(newVal);\n }\n }\n\n private updateValue(newVal: boolean, fromWriteValue = false, skipEmit = false): void {\n if (this._valueInternal === newVal) return;\n\n this._valueInternal = newVal;\n\n if (!this.useFormControl && this.inputHidden) {\n this.inputHidden.nativeElement.checked = newVal;\n }\n\n this.onChange(newVal);\n\n if (!skipEmit) {\n this.valueChange.emit(newVal);\n }\n\n if (this.config?.useFormControl && !fromWriteValue) {\n this.control?.setValue(newVal, { emitEvent: false });\n }\n }\n}\n","<div\n class=\"s-toggle-switch\"\n [ngClass]=\"{\n 's-toggle-switch--size-md': config && config.size === 'md',\n 's-toggle-switch--vertical': config && config.vertical,\n }\">\n <label [id]=\"id + '-label'\" class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n #inputHidden\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [id]=\"id\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n #inputHidden\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [id]=\"id\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"getValue()\"\n (input)=\"onInput()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n active: getValueGeneral(),\n 'no-active': !getValueGeneral(),\n disabled: (control?.disabled || (config && config.disabled)) && !(config && config.readOnly),\n }\">\n <s-icon-mat class=\"slider-icon-dynamic\" *ngIf=\"(config && config.showIcon !== false) || !config\">{{\n getIcon()\n }}</s-icon-mat>\n </span>\n </label>\n\n <div *ngIf=\"config?.label\" (click)=\"onClickLabel()\">\n <div\n *ngIf=\"control\"\n [id]=\"id + '-label'\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && control.value,\n disabled: (control.disabled || config.disabled) && !config.readOnly,\n }\">\n {{ config.label }}\n </div>\n\n <div\n *ngIf=\"!control\"\n [id]=\"id + '-label'\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && value,\n disabled: config.disabled && !config.readOnly,\n }\">\n {{ config.label }}\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToggleSwitchComponent } from './s-toggle-switch.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material';\nimport { ToggleSwitchFormComponent } from './toggle-switch-form/toggle-switch-form.component';\n\n@NgModule({\n declarations: [\n SToggleSwitchComponent,\n ToggleSwitchFormComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SIconMaterialModule,\n ReactiveFormsModule\n ],\n exports:[\n SToggleSwitchComponent,\n ToggleSwitchFormComponent\n ]\n})\nexport class SToggleSwitchModule { }\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-menu-item',\n templateUrl: './s-menu-item.component.html',\n styleUrls: ['./s-menu-item.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SMenuItemTitleComponent implements OnChanges, AfterViewChecked {\n \n @ViewChild('itemTitle') menuTitle: ElementRef | undefined;\n @Input() title: string | undefined = undefined;\n @Input() expand: any;\n \n widthTitle: number = 0;\n widthBox: number = 0;\n private viewInitialized = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes.expand && this.viewInitialized) {\n this.offsetWidth();\n this.cdr.detectChanges();\n }\n }\n \n ngAfterViewChecked(): void {\n if (!this.viewInitialized) {\n this.viewInitialized = true;\n this.offsetWidth();\n this.cdr.detectChanges();\n }\n }\n\n offsetWidth() {\n this.widthTitle = this.menuTitle?.nativeElement.offsetWidth;\n }\n\n counterCharacter(): boolean {\n return this.widthTitle > this.widthBox;\n }\n\n hoverItemTitle(event: MouseEvent): void {\n const targetElement = event.target as HTMLElement;\n document.documentElement.style.setProperty('--widthTitle', \"-\" + (targetElement.offsetWidth - this.widthBox) + \"px\");\n }\n\n hoverItemBox(event: MouseEvent): void {\n const targetElement = event.target as HTMLElement;\n this.widthBox = targetElement.offsetWidth;\n }\n\n}","<div class=\"menu-title-box\" (mouseenter)=\"hoverItemBox($event)\">\n <span #itemTitle\n (mouseenter)=\"hoverItemTitle($event)\" \n class=\"menu-title\" \n [ngClass]=\"{'menu-title-display': counterCharacter()}\"\n >{{title}}</span>\n</div>","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SMenuItem, SSidebarImage } from './s-sidebar-model';\nimport { SIcon } from '../icon-material/s-icon-material.model';\nimport { SidebarStateService } from '../services/sidebarStateService/sidebarStateService.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 's-sidebar',\n templateUrl: './s-sidebar.component.html',\n styleUrls: ['./s-sidebar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSidebarComponent implements OnInit, OnDestroy {\n @Input() menu: SMenuItem[] = [];\n @Input() expand: boolean = true;\n @Input() showExpand: boolean = true;\n @Input() theme?: string;\n @Input() images?: SSidebarImage;\n @Input() id?: string = 's-sidebar';\n private subscription!: Subscription;\n\n @Output() clickEvent = new EventEmitter<SMenuItem>();\n @Output() clickEventMenu = new EventEmitter<boolean>();\n\n constructor(private sidebarState: SidebarStateService) {}\n\n ngOnInit(): void {\n this.expand = this.sidebarState.getExpand();\n this.checkScreenSize();\n // Suscripción al observable de expand sidebar\n this.subscription = this.sidebarState.expand$.subscribe(value => {\n this.expand = value;\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n clickParent(item: SMenuItem): void {\n this.actionExpandItem(item);\n }\n\n actionExpandItem(item: SMenuItem): void {\n const itemExpanedTemp = item.expanded;\n this.restartSelectedItems();\n item.expanded = !itemExpanedTemp;\n }\n\n actionExpandMenu(): void {\n this.sidebarState.setExpand(true);\n }\n\n actionCollapseMenu(): void {\n this.sidebarState.setExpand(false);\n }\n\n restartSelectedItems(): void {\n this.menu.forEach((itemToReset: SMenuItem) => {\n itemToReset.expanded = false;\n });\n }\n\n toogleMenu(): void {\n this.sidebarState.toggleExpand();\n this.clickEventMenu.next(this.sidebarState.getExpand());\n }\n\n onClickEventMenu(event: boolean): void {\n this.clickEventMenu.next(event);\n }\n\n clickItem(event: SMenuItem): void {\n this.clickEvent.next(event);\n }\n\n isSIcon(icon: string | SIcon): icon is SIcon {\n return typeof icon !== 'string';\n }\n\n getClassItem(item: SMenuItem): string {\n const icon = !!item.icon;\n const badge = !!item.badge;\n const children = !!item.children;\n\n switch (true) {\n case children && !icon:\n return badge ? 'grid-template-10-1-1' : 'grid-template-10-1';\n case children && icon:\n return badge ? 'grid-template-1-10-1-1' : 'grid-template-1-10-1';\n case !icon && badge:\n return 'grid-template-10-1';\n case icon && !badge:\n return 'grid-template-1-10';\n case !icon && !badge:\n return 'grid-template-1';\n case icon && badge:\n return 'grid-template-1-10-1';\n default:\n return 'default-value';\n }\n }\n\n getClassChildren(item: SMenuItem): string {\n return item.children ? 'item-parent' : 'item-child';\n }\n\n getClassActive(item: SMenuItem): string {\n return item.active ? 'active-forced' : '';\n }\n\n getImageSource(): string {\n if ((this.theme === 'default' || this.theme === '') && this.images) {\n return this.expand ? this.images.default.expand : this.images.default.collapse;\n } else if (this.theme === 'dark' && this.images) {\n return this.expand ? this.images.dark.expand : this.images.dark.collapse;\n }\n return '';\n }\n\n getTabIndex(item: SMenuItem): number {\n if (item.link || item.expanded) {\n return 0;\n }\n return -1;\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.checkScreenSize();\n }\n\n checkScreenSize(): void {\n if (window.innerWidth < 600) {\n this.actionCollapseMenu();\n }\n }\n}\n","<div\n class=\"s-sidebar\"\n [ngClass]=\"[theme ? 's-sidebar--theme-' + theme : '', expand ? 's-sidebar--open' : 's-sidebar--close']\"\n [id]=\"id\">\n <div\n *ngIf=\"images\"\n class=\"s-sidebar__top\"\n [ngClass]=\"{ 's-sidebar__top--expand': expand, 's-sidebar__top--collapse': !expand }\">\n <img [src]=\"getImageSource()\" alt=\"\" />\n </div>\n\n <ul class=\"s-sidebar__menu s-scroll\">\n <ng-container *ngFor=\"let item of menu; index as i\">\n <!-- Cuando es separate -->\n <div *ngIf=\"item.separate && item.separateText\" class=\"s-sidebar__menu__line-separate\">\n <div *ngIf=\"item.separateLine\" class=\"s-sidebar__menu__line-separate__line\"></div>\n <div class=\"s-sidebar__menu__line-separate__text\">{{ item.separateText }}</div>\n <div\n class=\"s-sidebar__menu__line-separate__dot cursor\"\n title=\"{{ item.separateText ? item.separateText : '' }}\"\n (click)=\"toogleMenu()\">\n ...\n </div>\n </div>\n <!-- Cuando NO tiene hijos esta visible y no es separate -->\n <li\n class=\"s-sidebar__menu__item\"\n [id]=\"id + '-title-' + i\"\n *ngIf=\"!item.hidden && !item.separate && !item.children\"\n title=\"{{ item.title }}\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, tabindex: true }\"></ng-template>\n </li>\n <!-- Cuando SI tiene hijos esta visible y no es separate -->\n <!-- Padre -->\n <li\n class=\"s-sidebar__menu__item {{\n item.expanded ? 's-sidebar__menu__item--open' : 's-sidebar__menu__item--close'\n }}\"\n *ngIf=\"!item.hidden && !item.separate && item.children\"\n title=\"{{ item.title }}\"\n [id]=\"id + '-title-' + i\"\n (click)=\"clickParent(item)\"\n (keydown.enter)=\"clickParent(item)\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, tabindex: true }\"></ng-template>\n </li>\n <!-- Hijos -->\n <ul\n *ngIf=\"item.children && !item.hidden && !item.separate\"\n class=\"s-sidebar__menu {{ item.expanded ? 's-sidebar__menu--open' : 's-sidebar__menu--close' }}\">\n <ng-container *ngFor=\"let itemChildren of item.children; index as i\">\n <li *ngIf=\"!itemChildren.hidden\" [id]=\"id + '-children-' + i\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: itemChildren,\n tabindex: item.expanded ? true : false,\n }\"></ng-template>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </ul>\n</div>\n\n<div\n tabindex=\"0\"\n class=\"no-select button-menu {{ expand ? 'button-menu--open' : 'button-menu--close' }}\"\n (keydown.enter)=\"toogleMenu()\"\n (click)=\"toogleMenu()\">\n <s-icon-mat size=\"md\">chevron_right</s-icon-mat>\n</div>\n\n<ng-template #itemTemplate let-item let-tabindex=\"tabindex\">\n <a\n [tabindex]=\"tabindex ? 0 : -1\"\n [ngClass]=\"[getClassItem(item), getClassChildren(item), getClassActive(item)]\"\n (click)=\"item.action ? item.action() : null; clickItem(item)\"\n [routerLink]=\"item.link ? item.link : undefined\"\n routerLinkActive=\"active\"\n title=\"{{ item.title ? item.title : '' }}\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item.icon }\"></ng-template>\n <s-menu-item [expand]=\"expand\" [title]=\"item.title\"></s-menu-item>\n <ng-template\n *ngIf=\"item.badge\"\n [ngTemplateOutlet]=\"badgeTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <s-icon-mat\n size=\"sm\"\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"arrow {{ item.expanded ? 'arrow-open' : 'arrow-close' }}\">\n keyboard_arrow_down\n </s-icon-mat>\n </a>\n</ng-template>\n\n<ng-template #iconTemplate let-icon>\n <s-icon-mat\n *ngIf=\"icon\"\n [type]=\"isSIcon(icon) && icon.type ? icon.type : 'icon'\"\n [size]=\"isSIcon(icon) && icon.size ? icon.size : 'md'\"\n class=\"icon-menu\"\n >{{ isSIcon(icon) && icon.name ? icon.name : icon }}\n </s-icon-mat>\n <s-icon-mat *ngIf=\"!icon\" type=\"symbol\" size=\"md\" class=\"icon-menu icon-menu-default\"\n >fiber_manual_record\n </s-icon-mat>\n</ng-template>\n\n<ng-template #badgeTemplate let-item>\n <s-badge class=\"badge-padding\" [class.collapsed-badge]=\"!expand\" type=\"{{ item.badgeType ? item.badgeType : 'secondary' }}\">\n {{ item.badge }}\n </s-badge>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSidebarComponent } from './s-sidebar.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { RouterModule } from '@angular/router';\nimport { SBadgeModule } from '../badge/s-badge.module';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { SMenuItemTitleComponent } from './components/s-menu-item.component';\n\n@NgModule({\n declarations: [SSidebarComponent, SMenuItemTitleComponent],\n imports: [CommonModule, RouterModule, SIconMaterialModule, SBadgeModule],\n providers: [LocalstorageService],\n exports: [SSidebarComponent, SMenuItemTitleComponent, RouterModule],\n})\nexport class SSidebarModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 's-content',\n templateUrl: './s-content.component.html',\n styleUrls: ['./s-content.component.scss'],\n})\nexport class SContentComponent implements OnInit, OnDestroy {\n @Input() sidebar: boolean = true;\n @Input() expand?: boolean;\n @Input() id?: string = 's-content';\n subscriptionRefresh: Subscription;\n animated: boolean = false;\n\n constructor(public localStorage: LocalstorageService) {\n this.subscriptionRefresh = this.localStorage.refreshLocalStorage.subscribe(() => {\n this.loadDataFromLocalStorage();\n });\n }\n\n ngOnInit(): void {\n this.loadDataFromLocalStorage();\n }\n\n loadDataFromLocalStorage(): void {\n this.expand = this.localStorage.getItem('s-sidebar:expand');\n }\n\n ngOnDestroy(): void {\n this.subscriptionRefresh.unsubscribe();\n }\n\n onLoad() {\n this.animated = true;\n }\n}\n","<div\n (window:load)=\"onLoad()\"\n class=\"s-content s-scroll\"\n [id]=\"id\"\n [ngClass]=\"{\n 's-content--menu-expanded': sidebar && expand,\n 's-content--menu-closed': sidebar && !expand,\n animated: animated,\n }\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SContentComponent } from './s-content.component';\nimport { LocalstorageService } from '../shared/localstorage.service';\n\n\n\n@NgModule({\n declarations: [\n SContentComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SContentComponent\n ],\n providers:[LocalstorageService]\n})\nexport class SContentModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-precode',\n templateUrl: './s-precode.component.html',\n styleUrls: ['./s-precode.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPrecodeComponent {\n @Input() copy?: string = 'Copiar Código';\n @Input() copySucces?: string = 'Texto copiado';\n @Input() expand: boolean = false;\n @Input() copyId?: string;\n @Input() id?: string = 's-precode';\n\n async copyCode() {\n if (this.copyId) {\n let html = document.getElementById(this.copyId);\n let text = html?.innerText;\n if (text) {\n await navigator.clipboard.writeText(text);\n alert(this.copySucces);\n }\n }\n }\n}\n","<pre class=\"s-precode s-scroll\" [id]=\"id\">\n <span class=\"tag\">\n <ng-content></ng-content>\n </span>\n <s-button class=\"s-precode__button-copy s-precode__button-copy--small\" *ngIf=\"copyId\" (click)=\"copyCode()\">{{copy}} <s-icon-mat>file_copy</s-icon-mat></s-button>\n <s-button [pill]=\"true\" class=\"s-precode__button-copy s-precode__button-copy--tiny\" *ngIf=\"copyId\" (click)=\"copyCode()\"><s-icon-mat>file_copy</s-icon-mat></s-button>\n</pre>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPrecodeComponent } from './s-precode.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SButtonModule } from '../button';\n\n@NgModule({\n declarations: [\n SPrecodeComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SButtonModule\n ],\n exports: [\n SPrecodeComponent\n ]\n})\nexport class SPrecodeModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BreadcrumNav } from './interface/breadcrum-nav.interface';\n\n@Component({\n selector: 's-breadcrum',\n templateUrl: './s-breadcrum.component.html',\n styleUrls: ['./s-breadcrum.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SBreadcrumComponent {\n @Input() id?: string = 's-breadcrum';\n @Input() nav!: BreadcrumNav[];\n @Input() size: 'sm' | 'md' | 'lg' = 'sm';\n\n getStateClass(i: number, nav: BreadcrumNav): string {\n const isLastNavItem = i === this.nav.length - 1;\n if (!isLastNavItem) {\n return nav.routerLink ? 'breadcrum-back' : 'breadcrum-back-not-link';\n }\n return 'breadcrum-active';\n }\n\n getIconClass(i: number): string {\n let next = i + 1;\n return next === this.nav.length - 1 ? 'icon-active' : 'icon-default';\n }\n}\n","<div class=\"s-breadcrum mb-3 s-scroll\" [id]=\"id\">\n <div class=\"s-breadcrum__content s-breadcrum__content--size-{{ size }}\" *ngFor=\"let nv of nav; index as i\">\n <div class=\"s-breadcrum__content__texts\">\n <a\n routerLink=\"{{ nv.routerLink ? nv.routerLink : undefined }}\"\n [ngClass]=\"[nv.routerLink ? '' : 'disabled', nv.iconPosition === 'left' ? 'float-right' : 'float-left']\">\n <h4 [ngClass]=\"[getStateClass(i, nv)]\">{{ nv.title }}</h4>\n <s-icon-mat *ngIf=\"nv.iconName\" [ngClass]=\"[getStateClass(i, nv)]\" class=\"icon\">{{ nv.iconName }}</s-icon-mat>\n </a>\n </div>\n <s-icon-mat class=\"s-breadcrum__content__arrow-icon\" [ngClass]=\"[getIconClass(i)]\" *ngIf=\"i < nav.length - 1\"\n >keyboard_arrow_right</s-icon-mat\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SBreadcrumComponent } from './s-breadcrum.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [\n SBreadcrumComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule\n ],\n exports: [SBreadcrumComponent, RouterModule]\n})\nexport class SBreadcrumModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-list',\n templateUrl: './s-list.component.html',\n styleUrls: ['./s-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SListComponent {\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() size: 'md' | 'sm' | 'xs' = 'md';\n @Input() id?: string = 's-list';\n}\n","<div\n tabindex=\"0\"\n [id]=\"id\"\n class=\"s-list s-scroll \n {{ disabled ? 's-list--disabled' : '' }} {{ selected ? 's-list--selected' : '' }} \">\n <div class=\"s-list__content\">\n <div\n class=\"s-list__content__drag s-list__content__drag--no-select s-list__content__drag--cursor s-list__content__drag--{{\n size\n }}\">\n <s-icon-mat class=\"drag-indicator\">drag_indicator</s-icon-mat>\n </div>\n <div class=\"s-list__content__gral\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SListComponent } from './s-list.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n\n@NgModule({\n declarations: [\n SListComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SListComponent]\n})\nexport class SListModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-list-simple',\n templateUrl: './s-list-simple.component.html',\n styleUrls: ['./s-list-simple.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SListSimpleComponent {\n @Input() listStyle: 'check' | 'chevron' | 'dot' | 'a1' | 'folder' | 'default' = 'default';\n @Input() id?: string = 's-list-simple';\n}\n","<div class=\"s-list-simple s-list-simple--{{ listStyle }}\" [id]=\"id\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SListSimpleComponent } from './s-list-simple.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n\n@NgModule({\n declarations: [\n SListSimpleComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SListSimpleComponent]\n})\nexport class SListSimpleModule { }\n","export abstract class TemperatureComponent {\n\n red: string = 'red';\n orange: string = 'orange';\n yellow: string = 'yellow';\n green: string = 'green';\n gray: string = 'gray';\n\n percentage: number = 50;\n color?: string;\n\n\n initColor(): void {\n this.color = this.color || this.temperatureColor;\n }\n\n get temperatureColor(): string {\n if(this.percentage < 1) return this.gray\n if(this.percentage < 25) return this.red\n if(this.percentage < 50) return this.orange\n if(this.percentage < 75) return this.yellow\n return this.green\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TemperatureComponent } from './temperature/temperature.component';\n\n@Component({\n selector: 's-progressbar',\n templateUrl: './s-progressbar.component.html',\n styleUrls: ['./s-progressbar.component.scss'],\n})\nexport class SProgressbarComponent extends TemperatureComponent implements OnInit {\n @Input() override percentage: number = 50;\n @Input() customColor: string = '';\n @Input() id?: string = 's-progressbar';\n override color: string = '';\n\n ngOnInit(): void {\n this.initColor();\n }\n}\n","<div class=\"s-progressbar\" [id]=\"id\">\n <div class=\"s-progressbar__bar\">\n <div class=\"s-progressbar__bar--background\"></div>\n <div\n class=\"s-progressbar__bar--progresso\"\n [style.width.%]=\"percentage\"\n [ngClass]=\"color\"\n [style.background]=\"customColor\"\n id=\"bar\"></div>\n </div>\n <div class=\"s-progressbar__percentage\">\n <h6 *ngIf=\"percentage < 100\" [id]=\"id + '-percentage'\">{{ percentage }}%</h6>\n <s-icon-mat *ngIf=\"percentage > 99\" class=\"icon-check\">done</s-icon-mat>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SProgressbarComponent } from './s-progressbar.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n SProgressbarComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SProgressbarComponent]\n})\nexport class SProgressbarModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { STimelineItem } from './s-timeline.model';\n\n@Component({\n selector: 's-timeline',\n templateUrl: './s-timeline.component.html',\n styleUrls: ['./s-timeline.component.scss'],\n})\nexport class STimelineComponent {\n selectedIndex: number | null = null;\n private _selectedStep: STimelineItem['id'] | null = null;\n @Input() defaultLine: boolean = false;\n @Input() steps: STimelineItem[] = [];\n @Input() set selectedStep(value: STimelineItem['id'] | null) {\n this._selectedStep = value;\n this.updateSelectedIndex();\n }\n get selectedStep(): STimelineItem['id'] | null {\n return this._selectedStep;\n }\n @Input() id?: string = 's-timeline';\n\n @Output() selectedStepChange = new EventEmitter<STimelineItem['id']>();\n\n onSelect(step: STimelineItem, index: number): void {\n if (step.disabled || step.readonly) return;\n this.selectedIndex = index;\n this.selectedStepChange.emit(step.id);\n }\n\n private updateSelectedIndex(): void {\n if (this._selectedStep == null) {\n this.selectedIndex = null;\n return;\n }\n const sel = String(this._selectedStep);\n this.selectedIndex = this.steps.findIndex(step => String(step.id) === sel);\n }\n}\n","@for (step of steps; track $index) {\n <div\n class=\"s-timeline\"\n [ngClass]=\"{\n disabled: step.disabled,\n readonly: step.readonly,\n selected: !step.disabled && selectedIndex === $index,\n }\"\n (click)=\"onSelect(step, $index)\"\n (keypress)=\"onSelect(step, $index)\"\n [id]=\"id\"\n [attr.aria-disabled]=\"step.disabled || step.readonly ? true : null\"\n [attr.tabindex]=\"step.disabled || step.readonly ? -1 : 0\">\n <div\n class=\"s-timeline__circle\"\n [class.no-after]=\"$index + 1 === steps.length\"\n [ngClass]=\"\n defaultLine\n ? ['s-timeline__circle--h-' + 100]\n : ['s-timeline__circle--theme-' + (step.theme || 'primary'), 's-timeline__circle--h-' + 100]\n \">\n @if (step.label || step.icon) {\n <div class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{ step.theme }}\">\n @if (step.label) {\n {{ step.label | slice: 0 : 3 }}\n } @else {\n <s-icon-mat size=\"sm\" class=\"s-timeline__circle__steps\" [id]=\"id + '-icon-' + step.icon\">\n {{ step.icon }}\n </s-icon-mat>\n }\n </div>\n } @else {\n <div class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{ step.theme }}\"></div>\n }\n </div>\n <div class=\"s-timeline__content\">\n @if (step.title) {\n <div class=\"s-timeline__content__title\" [id]=\"id + '-title-' + step.id\">\n {{ step.title }}\n </div>\n }\n @if (step.template) {\n <ng-container\n [ngTemplateOutlet]=\"step.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: step,\n step: step,\n }\"></ng-container>\n }\n </div>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STimelineComponent } from './s-timeline.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n STimelineComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [STimelineComponent]\n})\nexport class STimelineModule { }\n","import { Injectable } from '@angular/core';\n\nexport interface Toast {\n id: string;\n title: string;\n content: string;\n theme: 'default' | 'red' | 'yellow' | 'green';\n iconTheme: string;\n}\n\n@Injectable()\nexport class SToastService {\n toasts: Toast[] = [];\n\n open(title: string, content: string, theme: 'default' | 'red' | 'yellow' | 'green' = 'default', id?: string) {\n const toast: Toast = {\n id: id ?? `s-toast`,\n title,\n content,\n theme,\n iconTheme: this.getIconTheme(theme),\n };\n this.toasts.push(toast);\n\n // Eliminar después de 5 segundos\n // eslint-disable-next-line no-undef\n setTimeout(() => this.removeToast(toast.id), 5000);\n }\n\n removeToast(id: string) {\n this.toasts = this.toasts.filter(toast => toast.id !== id);\n }\n\n getIconTheme(theme: 'default' | 'red' | 'yellow' | 'green'): string {\n switch (theme) {\n case 'default':\n return 'info';\n case 'red':\n return 'error';\n case 'green':\n return 'check_circle';\n case 'yellow':\n return 'warning';\n default:\n return 'info';\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SToastService } from './s-toast-service';\n\n@Component({\n selector: 's-toast',\n templateUrl: './s-toast.component.html',\n styleUrls: ['./s-toast.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SToastComponent {\n constructor(public toastService: SToastService) {}\n}\n","<div class=\"s-toast-container\">\n <div *ngFor=\"let toast of toastService.toasts\">\n <div\n class=\"s-toast s-toast__position s-toast__theme-{{ toast.theme }} animated s-toast__animation-bounceInDown\"\n [id]=\"toast.id\">\n <div class=\"s-toast-box\">\n <div class=\"s-toast-box-left\">\n <s-icon-mat class=\"d-flex toast-icon\">{{ toast.iconTheme }}</s-icon-mat>\n <span class=\"toast-title\">{{ toast.title }}</span>\n </div>\n <div class=\"s-toast-box-right\">\n <s-icon-mat\n tabindex=\"0\"\n (click)=\"toastService.removeToast(toast.id)\"\n (keydown.enter)=\"toastService.removeToast(toast.id)\"\n class=\"cursor-close d-flex cursor\"\n >close</s-icon-mat\n >\n </div>\n </div>\n <div *ngIf=\"toast.content\" class=\"s-toast-content\">\n <p>{{ toast.content }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToastComponent } from './s-toast.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SToastService } from './s-toast-service';\n\n\n@NgModule({\n declarations: [\n SToastComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SToastComponent],\n providers:[SToastService]\n})\nexport class SToastModule { }\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-theme',\n template: '',\n styleUrls: ['./s-theme.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SThemeComponent {\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SThemeComponent } from './s-theme.component';\n\n\n@NgModule({\n declarations: [\n SThemeComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SThemeComponent]\n})\nexport class SThemeModule { }\n","import { Component, Input, Output, EventEmitter, input, signal, effect, OnInit } from '@angular/core';\nimport { TreeNode } from './models/tree-node.interface';\n\n@Component({\n selector: 's-tree-list',\n templateUrl: './s-tree-list.component.html',\n styleUrls: ['./s-tree-list.component.scss'],\n})\nexport class STreeListComponent implements OnInit {\n @Input() treeNodes: TreeNode[] = []; // Lista de valores que va a nutrir el árbol\n @Input() hideAll: boolean = false; // Ocultar todos los checkboxes\n @Input() id?: string = 's-tree-list';\n selected = input<string>();\n\n //TODO QUEADAN ESTOS DOS OUTPUT PERO PARECIERAN SER LO MISMO\n @Output() emitSelectNode = new EventEmitter<any>(); //Nodo seleccionado\n @Output() emitChecked = new EventEmitter<any>(); //Notifica los cambios, string[]\n\n selectedNode = signal<TreeNode | undefined>(undefined);\n public checkNodes: any[] = [];\n\n constructor() {\n effect(\n () => {\n const selectedValue = this.selected();\n if (selectedValue && this.treeNodes.length > 0) {\n const node = this.findAndExpandNode(selectedValue);\n this.selectedNode.set(node);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n ngOnInit(): void {\n if (this.selected() && this.treeNodes.length > 0) {\n const selectedValue = this.selected();\n if (selectedValue) {\n const node = this.findAndExpandNode(selectedValue);\n this.selectedNode.set(node);\n }\n }\n }\n\n findAndExpandNode(value: string): TreeNode | undefined {\n const expandParents = (nodes: TreeNode[], targetValue: string): TreeNode | undefined => {\n for (const node of nodes) {\n if (node.value === targetValue) return node;\n\n if (node.children) {\n const found = expandParents(node.children, targetValue);\n if (found) {\n node.expanded = true; // expandimos el padre\n return found;\n }\n }\n }\n return undefined;\n };\n\n return expandParents(this.treeNodes, value);\n }\n\n toggleNode(node: TreeNode): void {\n node.expanded = !node.expanded;\n }\n\n selectNode(node: TreeNode): void {\n this.emitSelectNode.emit(node);\n }\n\n isNodeSelected(node: TreeNode): boolean {\n return this.selectedNode() === node;\n }\n\n checkNode(event: any) {\n const node = event.value;\n const isChecked = event.event;\n\n // Update checked nodes in tree\n const nodeInTree = this.findNode(this.treeNodes, node, isChecked);\n if (nodeInTree) this.checkAllChildren([nodeInTree], isChecked);\n\n if (isChecked) {\n this.checkNodes?.push(node.value);\n } else {\n this.checkNodes = this.checkNodes?.filter(c => c != node.value);\n }\n\n const checkedNodes = this.getCheckedNodesToNotify(this.treeNodes, []);\n // Notify change\n this.emitChecked.emit(checkedNodes);\n }\n\n private getCheckedNodesToNotify(nodes: TreeNode[], result: string[]): string[] {\n nodes.forEach(node => {\n if (node.checked) result.push(node.value);\n if (node.children) {\n this.getCheckedNodesToNotify(node.children, result);\n }\n });\n return result;\n }\n\n findNode(trees: TreeNode[], findedNode: TreeNode, isChecked: boolean): TreeNode | undefined {\n for (const node of trees) {\n if (node == findedNode) return node;\n if (node.children) {\n const founded = this.findNode(node.children, findedNode, isChecked);\n if (founded) return founded;\n }\n }\n return undefined;\n }\n\n private checkAllChildren(nodes: TreeNode[], isChecked: boolean) {\n nodes.forEach(n => {\n n.checked = isChecked;\n if (n.children) this.checkAllChildren(n.children, isChecked);\n });\n }\n}\n","<ng-template #treeNodeTemplate let-node>\n <div\n class=\"s-tree-list\"\n [id]=\"id\"\n (click)=\"selectNode(node)\"\n [ngClass]=\"node === selectedNode() ? 's-tree-list__selected-node' : ''\">\n <span\n class=\"s-tree-list__toggle-icon\"\n *ngIf=\"node.children && node.children.length\"\n tabindex=\"0\"\n (keydown.enter)=\"toggleNode(node)\"\n (click)=\"toggleNode(node)\">\n <s-icon-mat class=\"s-tree-list__icon-arrow\">{{\n node.expanded ? 'keyboard_arrow_down' : 'keyboard_arrow_right'\n }}</s-icon-mat>\n </span>\n\n <div class=\"s-tree-list__content\">\n <s-checkbox-old\n *ngIf=\"!node.hide && !node.hideRoot && !node.hideAll && !hideAll\"\n [model]=\"node.checked\"\n [value]=\"node\"\n [isUndefined]=\"node.isUndefined\"\n (emitSelection)=\"checkNode($event)\"\n [disabled]=\"node.disable\">\n </s-checkbox-old>\n <s-icon-mat class=\"s-tree-list__content-icon\" *ngIf=\"node.icon\">{{ node.icon }}</s-icon-mat>\n <span class=\"s-tree-list__content-title\">{{ node.label }}</span>\n </div>\n </div>\n\n <div class=\"s-tree-list__node-children\" *ngIf=\"node.expanded && node.children\">\n <ng-container *ngFor=\"let child of node.children\">\n <div\n [id]=\"id + '-child-' + child.value\"\n [ngTemplateOutlet]=\"treeNodeTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"></div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-container *ngFor=\"let node of treeNodes\">\n <ng-container [ngTemplateOutlet]=\"treeNodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STreeListComponent } from './s-tree-list.component';\nimport { FormsModule } from '@angular/forms';\nimport { SCheckboxModule } from '../checkbox';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n STreeListComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SCheckboxModule,\n SIconMaterialModule\n ],\n exports:[\n STreeListComponent\n ]\n})\nexport class STreeListModule { }\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { SSelect } from '../select/select/s-select-model';\n\nexport interface IPageSizes {\n title: string;\n value: number;\n}\n\n@Component({\n selector: 's-pagination',\n templateUrl: './s-pagination.component.html',\n styleUrls: ['./s-pagination.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPaginationComponent implements OnInit, OnChanges {\n pageSizesDefault: IPageSizes[] = [\n { title: '10 ítems', value: 10 },\n { title: '15 ítems', value: 15 },\n { title: '20 ítems', value: 20 },\n { title: '25 ítems', value: 25 },\n ];\n //Translate scheme\n @Input() showing?: string = 'Mostrando';\n @Input() to?: string = 'a';\n @Input() of?: string = 'de';\n @Input() items?: string = 'ítems.';\n @Input() empty?: string = 'Sin ítems para mostrar.';\n\n @Input() disabled: boolean = false;\n @Input() pageNumber: number = 0;\n @Input() totalItems: number = 1; //Resultados totales\n @Input() pageSize: number = 10;\n @Input() pageSizes?: IPageSizes[];\n @Input() id?: string = 's-pagination';\n\n @Output() pageEmitter: EventEmitter<number> = new EventEmitter();\n @Output() paginationEmitter: EventEmitter<number> = new EventEmitter();\n\n startIndex: number = 0;\n totalPages: number = 0;\n startResults: number = 0;\n endResults: number = 0;\n\n previousPage: number = 0;\n nextPage: number = 0;\n\n selectConfig!: SSelect;\n selectValue!: string;\n\n ngOnChanges(): void {\n this.setPagination();\n if (this.selectConfig) {\n this.selectConfig.disabled = this.totalItems === 0 ? true : this.disabled;\n }\n }\n\n ngOnInit(): void {\n this.setPagination();\n this.initConfig();\n }\n\n setPagination() {\n //Calcula el total de páginas\n this.totalPages = Math.ceil(this.totalItems / this.pageSize);\n this.startIndex = (this.pageNumber - 1) * this.pageSize;\n this.setResultsRange();\n this.setPages();\n }\n\n setResultsRange() {\n this.startResults = (this.pageNumber - 1) * this.pageSize + 1;\n const results = this.startResults + this.pageSize - 1;\n this.endResults = results > this.totalItems ? this.totalItems : results;\n }\n\n next() {\n this.pageNumber++;\n this.setPage();\n }\n\n previous() {\n this.pageNumber--;\n this.setPage();\n }\n\n setPage() {\n this.pageSelection(this.pageNumber);\n this.setPages();\n }\n\n setPages() {\n this.previousPage = this.pageNumber - 1;\n this.nextPage = this.pageNumber + 1;\n }\n\n pageSelection(page: number) {\n this.pageNumber = page;\n this.pageEmitter.emit(this.pageNumber);\n this.setPagination();\n }\n\n selectPagination(event: string) {\n this.pageSize = Number(event);\n this.pageNumber = 1; // reset page\n this.setPagination();\n this.paginationEmitter.emit(this.pageSize);\n }\n\n initConfig() {\n if (this.pageSizes) {\n this.selectValue = this.pageSize.toString();\n const paginations = this.pageSizes.map(item => ({\n ...item,\n value: String(item.value),\n }));\n this.selectConfig = {\n id: 'selectPagination',\n useFormControl: false,\n options: paginations,\n };\n }\n }\n}\n","<div class=\"s-pagination\" [ngClass]=\"{ 's-pagination--selected': pageSizes }\" [id]=\"id\">\n <div class=\"s-pagination__items\">\n <s-select\n *ngIf=\"selectConfig\"\n [config]=\"selectConfig\"\n [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"selectPagination($event)\">\n </s-select>\n <p class=\"s-body-2 s-pagination__items--text\" *ngIf=\"totalItems > pageSize\">\n {{ showing }} {{ startResults }} {{ to }} {{ endResults }} {{ of }} {{ totalItems }} {{ items }}\n </p>\n <p class=\"s-body-2 s-pagination__items--text\" *ngIf=\"totalItems <= pageSize && totalItems !== 0\">\n {{ showing }} {{ totalItems }} {{ items }}\n </p>\n <p class=\"s-body-2 s-pagination__items--text disabled\" *ngIf=\"totalItems === 0\">\n {{ empty }}\n </p>\n </div>\n <div class=\"s-pagination__pages-content\" *ngIf=\"!disabled\">\n <s-icon-mat\n [id]=\"id + '-previous'\"\n tabindex=\"0\"\n class=\"cursor display-flex\"\n *ngIf=\"pageNumber > 1\"\n (keydown.enter)=\"previous()\"\n (click)=\"previous()\"\n >keyboard_arrow_left</s-icon-mat\n >\n <p\n tabindex=\"0\"\n *ngIf=\"pageNumber > 1\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(1)\"\n (click)=\"pageSelection(1)\">\n 1\n </p>\n <p\n *ngIf=\"previousPage > 2 && totalPages > 2\"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n [id]=\"id + '-previousPage'\"\n tabindex=\"0\"\n *ngIf=\"previousPage >= 2\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(previousPage)\"\n (click)=\"pageSelection(previousPage)\">\n {{ previousPage }}\n </p>\n <s-button [pill]=\"true\">\n <label [id]=\"id + '-pageNumber'\">{{ pageNumber }}</label>\n </s-button>\n <p\n [id]=\"id + '-nextPage'\"\n tabindex=\"0\"\n *ngIf=\"nextPage > 1 && pageNumber !== totalPages && totalItems !== 0\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(nextPage)\"\n (click)=\"pageSelection(nextPage)\">\n {{ nextPage }}\n </p>\n <p\n *ngIf=\"totalPages !== nextPage + 1 && pageNumber !== totalPages && totalPages > 2\"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n [id]=\"id + '-totalPages'\"\n tabindex=\"0\"\n *ngIf=\"totalPages !== nextPage && pageNumber !== totalPages && totalItems !== 0\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(totalPages)\"\n (click)=\"pageSelection(totalPages)\">\n {{ totalPages }}\n </p>\n <s-icon-mat\n [id]=\"id + '-next'\"\n tabindex=\"0\"\n class=\"cursor display-flex\"\n *ngIf=\"pageNumber < totalPages\"\n (keydown.enter)=\"next()\"\n (click)=\"next()\"\n >keyboard_arrow_right</s-icon-mat\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPaginationComponent } from './s-pagination.component';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SSelectModule } from '../select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [SPaginationComponent],\n imports: [\n CommonModule,\n SButtonModule,\n SIconMaterialModule,\n SSelectModule,\n FormsModule,\n ],\n exports: [SPaginationComponent],\n})\nexport class SPaginationModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-thumbnail',\n templateUrl: './s-thumbnail.component.html',\n styleUrls: ['./s-thumbnail.component.scss']\n})\n\nexport class SThumbnailComponent {\n \n @Input() title?: string;\n @Input() url!: string;\n @Input() size: number = 40;\n\n}","<div class=\"s-thumbnail\">\n <img appImageLoader alt=\"{{title}}\" width=\"{{size}}\" height=\"{{size}}\" src=\"{{url}}\">\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SThumbnailComponent } from './s-thumbnail.component';\nimport { SharedModule } from '../shared/shared.module';\n\n\n@NgModule({\n declarations: [\n SThumbnailComponent\n ],\n imports: [\n CommonModule,\n SharedModule\n ],\n exports: [SThumbnailComponent]\n})\nexport class SThumbnailModule { }\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IConfigTabs, ITab } from './models';\n\n@Component({\n selector: 's-tabs',\n templateUrl: './s-tabs.component.html',\n styleUrls: ['./s-tabs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STabsComponent implements OnInit, OnChanges {\n @Input() tabs?: ITab[];\n @Input() configTabs?: IConfigTabs;\n @Input() id!: string;\n @Output() eventSelect = new EventEmitter<ITab>();\n\n public tabsConfig?: ITab[];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tabs'] || changes['configTabs']) {\n this.tabsConfig = this.tabs;\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.configTabs?.id ?? `s-tabs`;\n this.tabsConfig = this.tabs;\n }\n\n getBackground(): boolean {\n return !!this.configTabs?.background || false;\n }\n\n selectTab(tab: ITab) {\n if (tab.selected || tab.disabled) {\n return;\n }\n this.tabs?.forEach(tab => (tab.selected = false));\n tab.selected = true;\n this.eventSelect.emit(tab);\n }\n}\n","<div\n class=\"s-tabs s-scroll no-select\"\n [id]=\"id\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n 's-tabs__vertical': configTabs?.orientation === 'vertical',\n 's-tabs__underline': configTabs?.underline,\n 's-tabs__backgroundSelected': configTabs?.backgroundSelected,\n }\"\n [ngStyle]=\"{\n '--tabs-width': configTabs?.width + '%',\n '--tabs-height': configTabs?.height + '%',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig; index as i\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\" [id]=\"id + '-' + i\">{{ tab.text }}</span>\n <s-badge *ngIf=\"tab.badge\" [type]=\"tab.badgeType ? tab.badgeType : 'primary'\">{{ tab.badge }}</s-badge>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STabsComponent } from './s-tabs.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SBadgeModule } from '../badge/s-badge.module';\n\n@NgModule({\n declarations: [STabsComponent],\n imports: [CommonModule, SIconMaterialModule, SBadgeModule],\n exports: [STabsComponent],\n})\nexport class STabsModule {}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-collapse',\n templateUrl: './s-collapse.component.html',\n styleUrls: ['./s-collapse.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCollapseComponent {\n @Input() id?: string = 's-collapse';\n @Input() title!: string;\n @Input() subtitle: string = '';\n @Input() expand: boolean = false;\n\n @Output() arrowClick = new EventEmitter<boolean>();\n}\n","<div class=\"s-collapse\" [id]=\"id\">\n <div class=\"s-collapse__header\" [ngClass]=\"expand ? 'open' : 'close'\">\n <div class=\"s-collapse__header__title\">\n <span class=\"s-collapse__header__title__text\">{{ title }}</span>\n <span class=\"s-collapse__header__title__subtext\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n </div>\n <div class=\"s-collapse__header__arrow\">\n <div\n class=\"s-collapse__header__arrow__content no-select\"\n [ngClass]=\"expand ? 'open' : 'close'\"\n tabindex=\"0\"\n (keydown.enter)=\"arrowClick.emit(!expand)\"\n (click)=\"arrowClick.emit(!expand)\">\n <s-icon-mat size=\"md\" class=\"s-collapse__header__arrow__content__icon\">chevron_right</s-icon-mat>\n </div>\n </div>\n </div>\n\n <div class=\"s-collapse__body\" [ngClass]=\"expand ? 'open' : 'close'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SCollapseComponent } from './s-collapse.component';\n\n@NgModule({\n declarations: [\n SCollapseComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [SCollapseComponent]\n})\nexport class SCollapseModule { }\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SSubMenu, SSubMenuItem } from '../sub-menu';\nimport { INPUT_TYPE, SInput } from '../input/components/input/s-input-model';\nimport { SMultiSelect } from '../select/select-multiple/s-select-multiple-model';\nimport { SSelect } from '../select/select/s-select-model';\n\nexport interface SToolbarTop {\n actionButton?: string; //Texto del btn de acción, sino no se muestra\n actionButtonIcon?: string; // Personalizar el icono\n actionButtonIconDisabled?: boolean; // Ocultar icono\n multiActionButton?: string; //Texto del btn de multiAcción, sino no se muestra\n deleteButton?: string; //Texto del btn de eliminar, sino no se muestra\n deleteDisabled?: boolean;\n filterButton?: string; //Texto del btn de filtrar, sino no se muestra\n filtersDisabled?: boolean;\n filters?: SSubMenu; //Filtros para mostrar en el desplegable\n placeholderSearch?: string; //Por defecto 'Buscar\n search?: boolean; //Por defecto true\n searchValue?: string;\n select?: SSelect;\n multiSelect?: SMultiSelect;\n pillButton?: string; //Icono del btn de pill, sino no se muestra\n title?: string;\n id?: string;\n}\n\n@Component({\n selector: 's-toolbar-top',\n templateUrl: './toolbar-top.component.html',\n styleUrls: ['./toolbar-top.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SToolbarTopComponent implements OnInit, OnChanges {\n @Input() config!: SToolbarTop;\n @Output() actionEvent = new EventEmitter<void>();\n @Output() deleteEvent = new EventEmitter<void>();\n @Output() filterEvent = new EventEmitter<string[]>();\n @Output() multiSelectEvent = new EventEmitter<string[]>();\n @Output() pillButtonEvent = new EventEmitter<void>();\n @Output() selectEvent = new EventEmitter<string>();\n @Output() searchEvent = new EventEmitter<string>();\n id!: string;\n\n inputSearchConfig!: SInput;\n multiActionMenu!: SSubMenu;\n multiAction: boolean = false;\n select!: string;\n filterToggle: boolean = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n if (this.config.search && this.config.filtersDisabled) {\n this.inputSearchConfig.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.select) {\n this.config.select.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiSelect) {\n this.config.multiSelect.disabled = this.config.filtersDisabled ?? false;\n }\n }\n }\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-toolbar-top`;\n this._initConfig();\n }\n\n action() {\n this.actionEvent.emit();\n }\n\n multiActionToggle() {\n this.multiAction = !this.multiAction;\n }\n\n delete() {\n this.deleteEvent.emit();\n }\n\n search(text: string) {\n this.searchEvent.emit(text);\n }\n\n selectChange(value: string) {\n this.selectEvent.emit(value);\n }\n\n multiSelect(value: string[]) {\n this.multiSelectEvent.emit(value);\n }\n\n selectFilter(items: SSubMenuItem[]) {\n const selectedIds = items.filter(item => item.value === true).map(item => item.id);\n this.filterEvent.emit(selectedIds);\n }\n\n filterShow() {\n this.filterToggle = !this.filterToggle;\n }\n\n pillSelect() {\n this.pillButtonEvent.emit();\n }\n\n private _initConfig() {\n if (this.config.search || this.config.search === undefined) {\n this.inputSearchConfig = {\n id: 'search',\n disabled: this.config.filtersDisabled ?? false,\n placeholder: this.config.placeholderSearch ?? 'Buscar',\n type: INPUT_TYPE.SEARCH,\n useFormControl: false,\n };\n }\n if (this.config.select) {\n this.config.select.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiSelect) {\n this.config.multiSelect.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiActionButton) {\n this.multiActionMenu = {\n items: [\n {\n id: '1',\n title: 'Submenu',\n link: '/submenu',\n },\n {\n id: '2',\n title: 'Badge',\n link: '/badge',\n },\n ],\n };\n }\n }\n\n get searchValue() {\n return this.config?.searchValue ?? '';\n }\n\n set searchValue(val: string) {\n this.config.searchValue = val;\n }\n}\n","<section class=\"s-toolbar-top\" [id]=\"id\">\n <section class=\"s-toolbar-top__content\">\n <div class=\"s-toolbar-top__section\">\n <h3 *ngIf=\"config.title\" class=\"s-toolbar-top__title\">\n {{ config.title }}\n </h3>\n <div\n *ngIf=\"config.title && (config.actionButton || config.multiActionButton)\"\n class=\"s-toolbar-top__section--line\"></div>\n <s-button\n class=\"s-toolbar-top__button\"\n *ngIf=\"config.actionButton\"\n [id]=\"id + '-actionButton'\"\n (click)=\"action()\"\n (keydown.enter)=\"action()\">\n @if (!config.actionButtonIconDisabled) {\n <s-icon-mat>\n {{ config.actionButtonIcon ?? 'add_circle' }}\n </s-icon-mat>\n }\n {{ config.actionButton }}\n </s-button>\n <div class=\"s-toolbar-top--relativeContainer\" *ngIf=\"this.config.multiActionButton\">\n <s-button\n class=\"s-toolbar-top__multiAction s-toolbar-top__button\"\n [id]=\"id + '-multiAction'\"\n (click)=\"multiActionToggle()\"\n (keydown.enter)=\"multiActionToggle()\">\n <s-icon-mat>add_circle</s-icon-mat>\n {{ config.multiActionButton }}\n <s-icon-mat>keyboard_arrow_down</s-icon-mat>\n </s-button>\n <div class=\"s-toolbar-top__multiAction--sub-menu\" *ngIf=\"multiAction\">\n <s-sub-menu\n *ngIf=\"multiActionMenu\"\n class=\"w-100\"\n [menu]=\"multiActionMenu\"\n (closeMenuEvent)=\"multiActionToggle()\"></s-sub-menu>\n </div>\n </div>\n <div *ngIf=\"config.deleteButton\" class=\"s-toolbar-top__section--line\"></div>\n <s-button\n class=\"s-toolbar-top__button\"\n *ngIf=\"config.deleteButton\"\n theme=\"red\"\n [disabled]=\"config.deleteDisabled ?? false\"\n [id]=\"id + '-deleteButton'\"\n (click)=\"delete()\"\n (keydown.enter)=\"delete()\">\n <s-icon-mat>delete</s-icon-mat>\n {{ config.deleteButton }}\n </s-button>\n </div>\n <div class=\"s-toolbar-top__section\">\n <div class=\"s-toolbar-top__section--search\">\n <s-input\n [id]=\"id + '-search'\"\n *ngIf=\"inputSearchConfig\"\n class=\"w-100\"\n [config]=\"inputSearchConfig\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"search($event)\">\n </s-input>\n </div>\n <div class=\"s-toolbar-top__section--select\" *ngIf=\"config.select\">\n <s-select\n [config]=\"config.select\"\n [id]=\"id + '-searchSelect'\"\n [(ngModel)]=\"select\"\n (ngModelChange)=\"selectChange($event)\"></s-select>\n </div>\n <div class=\"s-toolbar-top__section--select\" *ngIf=\"config.multiSelect\">\n <s-select-multiple\n class=\"s-toolbar-top__section--multi-select\"\n [config]=\"config.multiSelect\"\n [id]=\"id + '-multiSelect'\"\n (selectedEvent)=\"multiSelect($event)\">\n </s-select-multiple>\n </div>\n <div class=\"s-toolbar-top--relativeContainer\" *ngIf=\"config.filterButton && config.filters\">\n <s-button\n class=\"s-toolbar-top__button\"\n [id]=\"id + '-filterButton'\"\n [disabled]=\"config.filtersDisabled ?? false\"\n (click)=\"filterShow()\">\n <s-icon-mat>tune</s-icon-mat>\n {{ config.filterButton }}\n <s-icon-mat>keyboard_arrow_down</s-icon-mat>\n </s-button>\n <div class=\"s-toolbar-top__section--toggle\" *ngIf=\"filterToggle\">\n <s-sub-menu\n [menu]=\"config.filters\"\n (changeMenuEvent)=\"selectFilter($event)\"\n (closeMenuEvent)=\"filterShow()\"></s-sub-menu>\n </div>\n </div>\n <div *ngIf=\"config.pillButton\">\n <s-button\n class=\"s-toolbar-top__button\"\n [id]=\"id + '-pillSelect'\"\n [disabled]=\"config.filtersDisabled ?? false\"\n (click)=\"pillSelect()\"\n (keydowyn.enter)=\"pillSelect()\"\n [pill]=\"true\">\n <s-icon-mat>{{ config.pillButton }}</s-icon-mat>\n </s-button>\n </div>\n </div>\n </section>\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToolbarTopComponent } from './toolbar-top.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SInputModule } from '../input/input.module';\nimport { FormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SSubMenuModule } from '../sub-menu';\nimport { SSelectModule } from '../select';\n\n@NgModule({\n declarations: [SToolbarTopComponent],\n imports: [\n CommonModule,\n SButtonModule,\n SInputModule,\n FormsModule,\n SIconMaterialModule,\n SSubMenuModule,\n SSelectModule,\n ],\n exports: [SToolbarTopComponent],\n})\nexport class SToolbarTopModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nexport interface SEmpty {\n button?: string;\n buttonIcon?: string;\n detail?: string;\n detailBold?: string;\n id?: string;\n image?: string;\n title?: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\n@Component({\n selector: 's-empty',\n templateUrl: './empty.component.html',\n styleUrls: ['./empty.component.scss'],\n})\nexport class EmptyComponent implements OnInit {\n @Input() config!: SEmpty;\n @Output() buttonEvent = new EventEmitter<void>();\n image: SafeResourceUrl | undefined;\n id!: string;\n\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-empty`;\n if (this.config.image) {\n this.image = this.domSanitizer.bypassSecurityTrustResourceUrl(this.config.image);\n }\n }\n\n action() {\n this.buttonEvent.emit();\n }\n}\n","<section class=\"s-empty\" [id]=\"id\">\r\n <div\r\n class=\"s-empty__content\"\r\n [ngClass]=\"{\r\n 's-empty__content--size-lg': config.size === 'lg' || config.size === undefined,\r\n 's-empty__content--size-md': config.size === 'md',\r\n 's-empty__content--size-sm': config.size === 'sm',\r\n }\">\r\n <div *ngIf=\"image && config.size !== 'sm'\" class=\"s-empty__content--img\">\r\n <img [src]=\"image\" alt=\"empty\" />\r\n </div>\r\n <h2 *ngIf=\"config.title\" class=\"s-empty__content--title\">\r\n {{ config.title }}\r\n </h2>\r\n <p *ngIf=\"config.detail\" class=\"s-empty__content--detail\">\r\n {{ config.detail }}\r\n <span *ngIf=\"config.detailBold\" class=\"s-empty__content--detail-bold\">{{ config.detailBold }}</span>\r\n </p>\r\n <div *ngIf=\"config.button && config.size !== 'sm'\" class=\"s-empty__content--button\">\r\n <s-button position=\"normal\" (click)=\"action()\" (keydown.enter)=\"action()\">\r\n <s-icon-mat *ngIf=\"config.buttonIcon\">{{ config.buttonIcon }}</s-icon-mat>\r\n {{ config.button }}\r\n </s-button>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmptyComponent } from './empty.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\n\n@NgModule({\n declarations: [EmptyComponent],\n imports: [CommonModule, SButtonModule, SIconMaterialModule],\n exports: [EmptyComponent],\n})\nexport class SEmptyModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { STranslateService } from '../../services';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n})\nexport class STranslatePipe implements PipeTransform {\n constructor(private _translateService: STranslateService) {}\n\n transform(value: string, ...args: string[]): string {\n return this._translateService.instant(value, ...args);\n }\n}\n","import { Component, computed, input, output, signal, WritableSignal } from '@angular/core';\nimport { SCheckbox, SCheckboxModule } from '../checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { SSwitch, SToggleSwitchModule } from '../toggle-switch';\nimport { CommonModule } from '@angular/common';\nimport { STranslatePipe } from '../pipe';\n\nexport type controlType = 'checkbox' | 'switch';\n\nexport interface SBottomStatusBar {\n counter?: number;\n disabled?: boolean;\n id?: string;\n label?: string;\n selectionControl?: controlType;\n selectionState?: WritableSignal<boolean>;\n total?: number;\n}\n\n@Component({\n selector: 's-bottom-status-bar',\n standalone: true,\n imports: [SCheckboxModule, FormsModule, SToggleSwitchModule, CommonModule, STranslatePipe],\n templateUrl: './bottom-status-bar.component.html',\n styleUrl: './bottom-status-bar.component.scss',\n})\nexport class SBottomStatusBarComponent {\n config = input.required<SBottomStatusBar>();\n stateChange = output<boolean>();\n stateChangeEvent = output<boolean>();\n id = signal<string>('s-bottom-status-bar');\n\n configSCheckbox = computed<SCheckbox>(() => ({\n useFormControl: false,\n id: this.id() + '-checkbox',\n disabled: this.config().disabled,\n }));\n\n configSSwitch = computed<SSwitch>(() => ({\n useFormControl: false,\n size: 'md',\n id: this.id() + '-switch',\n disabled: this.config().disabled ?? false,\n }));\n\n selectionControlChange(state: boolean) {\n this.stateChangeEvent.emit(state);\n }\n\n onStateChange(newValue: boolean): void {\n this.stateChangeEvent.emit(newValue);\n }\n}\n","<section class=\"s-bottom-status-bar\" [id]=\"id()\" [ngClass]=\"{ 's-bottom-status-bar--disabled': config().disabled }\">\n <div class=\"s-bottom-status-bar__section\">\n @if (config().selectionControl === 'checkbox') {\n <s-checkbox\n class=\"s-bottom-status-bar__option\"\n [config]=\"configSCheckbox()\"\n [ngModel]=\"config().selectionState?.()\"\n (ngModelChange)=\"onStateChange($event)\"></s-checkbox>\n }\n @if (config().selectionControl === 'switch') {\n <s-toggle-switch\n class=\"s-bottom-status-bar__option\"\n [config]=\"configSSwitch()\"\n [ngModel]=\"config().selectionState?.()\"\n (ngModelChange)=\"onStateChange($event)\"></s-toggle-switch>\n }\n @if (config().label) {\n <p [id]=\"id() + '-label'\">{{ config().label }}</p>\n }\n </div>\n <div class=\"s-bottom-status-bar__section\">\n @if (config().counter !== undefined) {\n <p [id]=\"id() + '-selectedText'\">{{ 'ui.generic.selected' | translate }}: {{ config().counter }}</p>\n }\n @if (config().counter !== undefined && config().total !== undefined) {\n <div\n class=\"s-bottom-status-bar__line\"\n [ngClass]=\"{\n 's-bottom-status-bar__line--disabled': config().disabled,\n }\"></div>\n }\n @if (config().total !== undefined) {\n <p [id]=\"id() + '-total'\">{{ 'ui.generic.total' | translate }}: {{ config().total }}</p>\n }\n </div>\n</section>\n","import {\n Component,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { SToolbarTop } from '../toolbar-top';\nimport { SEmpty } from '../empty/empty.component';\nimport { ConfigColumn, SortTable } from '../table-t';\nimport { IPageSizes } from '../pagination';\nimport { SBottomStatusBar } from '../bottom-status-bar';\nimport { STranslateService } from '../../public-api';\n\nexport interface STableComplete {\n columns: ConfigColumn[];\n pageNumber?: number;\n totalItems?: number;\n configBottomStatusBar?: WritableSignal<SBottomStatusBar>;\n configToolbarTop?: SToolbarTop;\n emptyConfig?: SEmpty;\n hidePagination?: boolean;\n id?: string;\n scroll?: boolean;\n loadingScroll?: boolean;\n pageSize?: number;\n pageSizes?: IPageSizes[];\n isTreeMode?: boolean;\n paginationText?: {\n showing: string;\n to: string;\n of: string;\n items: string;\n empty: string;\n };\n}\n\n@Component({\n selector: 's-table-complete',\n templateUrl: './table-complete.component.html',\n styleUrls: ['./table-complete.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TableCompleteComponent implements OnInit, OnChanges {\n @Input() config!: STableComplete;\n @Output() actionEvent = new EventEmitter<void>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\n @Output() deleteEvent = new EventEmitter<void>();\n @Output() emptyEvent = new EventEmitter<void>();\n @Output() filterEvent = new EventEmitter<string[]>();\n @Output() orderByEvent = new EventEmitter<SortTable>();\n @Output() pageEvent = new EventEmitter<number>();\n @Output() paginationEvent = new EventEmitter<number>();\n @Output() multiSelectEvent = new EventEmitter<string[]>();\n @Output() pillButtonEvent = new EventEmitter<void>();\n @Output() selectEvent = new EventEmitter<string>();\n @Output() searchEvent = new EventEmitter<string>();\n @Output() bottomStatusBarEvent = new EventEmitter<boolean>();\n @Output() scrollEvent = new EventEmitter<void>();\n @Input() id!: string;\n\n private _sTranslateService = inject(STranslateService);\n\n emptyConfigSearch!: SEmpty;\n searchText = '';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n this.filtersDisabled();\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config.id ?? `s-table-complete`;\n this.filtersDisabled();\n this.emptyConfigSearch = {\n image: 'assets/empty/empty-search.png',\n title: this._sTranslateService.instant('ui.generic.emptySearch.title'),\n detail: this._sTranslateService.instant('ui.generic.emptySearch.detail'),\n };\n }\n\n filtersDisabled() {\n if (this.config.configToolbarTop) {\n this.config.configToolbarTop = {\n ...this.config.configToolbarTop,\n filtersDisabled: this.config.totalItems === 0 && this.searchText === '',\n };\n }\n }\n\n checkAll(event: any) {\n this.checkAllEvent.emit(event);\n }\n\n ordenEvent(event: any) {\n this.orderByEvent.emit(event);\n }\n\n action() {\n this.actionEvent.emit();\n }\n\n delete() {\n this.deleteEvent.emit();\n }\n\n search(text: string) {\n this.searchText = text;\n this.searchEvent.emit(text);\n }\n\n select(value: string) {\n this.selectEvent.emit(value);\n }\n\n multiSelect(value: string[]) {\n this.multiSelectEvent.emit(value);\n }\n\n filter(values: string[]) {\n this.filterEvent.emit(values);\n }\n\n pillButton() {\n this.pillButtonEvent.emit();\n }\n\n buttonEmpty() {\n this.emptyEvent.emit();\n }\n\n goToPage(pageNumber: number) {\n this.config.pageNumber = pageNumber;\n this.pageEvent.emit(pageNumber);\n }\n\n pagination(pagination: number) {\n this.paginationEvent.emit(pagination);\n }\n\n selectionControlChange(state: boolean) {\n this.bottomStatusBarEvent.emit(state);\n }\n\n onScroll(): void {\n if (!this.config.scroll || this.config.loadingScroll) {\n return;\n }\n this.config.loadingScroll = true;\n this.scrollEvent.emit();\n }\n}\n","<section class=\"s-table-complete\" [id]=\"id\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n [isTreeMode]=\"config.isTreeMode ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n @if (searchText) {\n <s-empty [config]=\"emptyConfigSearch\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n } @else {\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n }\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [id]=\"id + '-pagination'\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [id]=\"id + '-pagination'\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableCompleteComponent } from './table-complete.component';\nimport { SToolbarTopModule } from '../toolbar-top';\nimport { SEmptyModule } from '../empty';\nimport { STabletModule } from '../table-t';\nimport { SPaginationModule } from '../pagination';\nimport { SBottomStatusBarComponent } from '../bottom-status-bar';\n\n@NgModule({\n declarations: [TableCompleteComponent],\n imports: [\n CommonModule,\n SToolbarTopModule,\n SEmptyModule,\n STabletModule,\n SPaginationModule,\n SBottomStatusBarComponent,\n ],\n exports: [TableCompleteComponent],\n})\nexport class STableCompleteModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SModalConfirmConfig } from '../models/modal-confirm.interface';\nimport { SModalConfirmResponse } from '../modal-confirm.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SModalConfirmService {\n private readonly modalConfigSource = new BehaviorSubject<SModalConfirmConfig>({\n title: '',\n message: '',\n confirmText: '',\n cancelText: '',\n isVisible: false,\n type: 'info',\n checkbox: false,\n });\n modalConfig$ = this.modalConfigSource.asObservable();\n\n private readonly modalResponseSource = new Subject<SModalConfirmResponse>();\n modalResponse$ = this.modalResponseSource.asObservable();\n\n open(config: SModalConfirmConfig) {\n this.modalConfigSource.next({ ...config, isVisible: true });\n }\n\n close(response: boolean, checkboxValue: boolean): void {\n this.modalConfigSource.next({\n ...this.modalConfigSource.value,\n isVisible: false,\n });\n\n if (this.modalConfigSource.value.checkbox) {\n this.modalResponseSource.next({\n confirmed: response,\n checkboxValue: checkboxValue,\n });\n } else {\n this.modalResponseSource.next({ confirmed: response });\n }\n }\n}\n","import { THEME } from '../../../enums/theme.enum';\n\nexport const ModalTypeIcon: any[] = [\n {\n type: 'alert',\n color: THEME.YELLOW,\n icon: 'warning',\n },\n {\n type: 'error',\n color: THEME.RED,\n icon: 'cancel',\n },\n {\n type: 'info',\n color: THEME.DEFAULT,\n icon: 'info',\n },\n];\n","import { Component, HostListener, inject, OnDestroy, OnInit } from '@angular/core';\nimport { SModalConfirmService } from './services/modal-confirm.service';\nimport { ModalTypeIcon } from './models/modalType';\nimport { SModalConfirmConfig } from './models/modal-confirm.interface';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { SButtonModule } from '../../button';\nimport { SIconMaterialModule } from '../../icon-material';\nimport { SCheckbox, SCheckboxModule } from '../../checkbox';\nimport { FormsModule } from '@angular/forms';\n\nexport type ModalType = 'alert' | 'error' | 'info';\n\nexport type SModalConfirmResponse = {\n confirmed: boolean;\n checkboxValue?: boolean;\n};\n\n@Component({\n selector: 's-modal-confirm.',\n standalone: true,\n imports: [CommonModule, SButtonModule, SIconMaterialModule, SCheckboxModule, FormsModule],\n templateUrl: './modal-confirm.component.html',\n styleUrls: ['./modal-confirm.component.scss'],\n})\nexport class SModalConfirmComponent implements OnInit, OnDestroy {\n config!: SModalConfirmConfig;\n modalTypeIcon = ModalTypeIcon;\n private configSubscription!: Subscription;\n configCheckbox: SCheckbox = {\n useFormControl: false,\n };\n valueCheckbox: boolean = false;\n id!: string;\n\n private readonly modalConfirmService = inject(SModalConfirmService);\n\n ngOnInit(): void {\n this.id = this.config?.id ?? `s-modal-confirm`;\n this.configSubscription = this.modalConfirmService.modalConfig$.subscribe(config => {\n this.config = config;\n this.configCheckbox.label = config.checkbox ? config.checkboxLabel : '';\n this.valueCheckbox = config.checkboxValue ? config.checkboxValue : false;\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscapeKey() {\n if (this.config?.checkbox) {\n this.close(false, this.valueCheckbox);\n } else {\n this.close(false);\n }\n }\n\n getIconType(type?: ModalType) {\n const icon = this.modalTypeIcon.filter(action => action.type == type);\n return icon[0];\n }\n\n close(response: boolean, checkboxChecked: boolean = false): void {\n this.modalConfirmService.close(response, checkboxChecked);\n }\n\n getTextAlignClass(): string {\n return 's-modal-confirm__message--' + (this.config?.textAlign ?? 'left');\n }\n}\n","@if (config.isVisible) {\n <div class=\"overlay\" [id]=\"id\">\n <div class=\"overlay__grid-12\">\n <div class=\"s-modal-confirm\" (click)=\"close(false)\" (keydown.enter)=\"close(false)\" tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary': config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat size=\"md\" [ngClass]=\"'s-modal-confirm__icon-' + config.type\" [id]=\"id + '-icon'\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n @if (config.cancelText) {\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"md\"\n (click)=\"close(false)\"\n [id]=\"id + '-close'\">\n close\n </s-icon-mat>\n }\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [id]=\"id + '-message'\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary': config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n @if (config.cancelText) {\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n [id]=\"id + '-button-cancel'\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n }\n <s-button\n [theme]=\"getIconType(config.type).color\"\n [id]=\"id + '-button-confirm'\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-grid-multi-toolbar-top',\n templateUrl: './grid-multi-inputs-toolbar-top.component.html',\n styleUrls: ['./grid-multi-inputs-toolbar-top.component.scss'],\n})\nexport class GridMultiInputsToolbarTopComponent {\n @Input() config!: any;\n\n //TODO SE DEJA PREAPRADO POR SI EL COMPONENTE VA A AGREGAR MAS OPCIONES COMO BOTONES EN UN FUTURO.\n}\n","<section class=\"s-toolbar-top\">\n <section class=\"s-toolbar-top__content\">\n <div class=\"s-toolbar-top__section\">\n <h3 *ngIf=\"config.title\" class=\"s-toolbar-top__title\">\n {{ config.title }}\n </h3>\n <div class=\"s-toolbar-top__section--line\"></div>\n </div>\n </section>\n</section>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport interface ColumnSGrid {\n title: string;\n type?: 'append';\n id: string;\n}\n\nexport interface RowSGrid {\n title: string;\n type?: 'append';\n id: string;\n customColumnStatus?: number;\n customColumnTitle?: string;\n}\n\nexport interface DataRow {\n id: string;\n key: string;\n state: boolean | null;\n}\n\nexport interface SToolbarTopGridMulti {\n title: string;\n}\n\nexport interface SGridMulti {\n columns: ColumnSGrid[];\n rows: RowSGrid[];\n data: DataRow[][];\n customColumns?: ColumnSGrid;\n configToolbarTop?: SToolbarTopGridMulti;\n selectAllTitle?: string;\n}\n\n@Component({\n selector: 's-grid-multi',\n templateUrl: './grid-multi-inputs.component.html',\n styleUrls: ['./grid-multi-inputs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GridMultiInputsComponent implements OnInit {\n //Inputs\n @Input() config!: SGridMulti;\n\n //Outputs\n // Emitir toda config.data cuando cambia checkbox\n @Output() dataChange = new EventEmitter<DataRow[][]>();\n @Output() customClick = new EventEmitter<RowSGrid>();\n\n //Columna \"selecionar todo\" que se va a agregar\n columnsDefault: ColumnSGrid = {\n title: '',\n id: '1',\n };\n\n //Resize\n isResizing: boolean = false;\n startX: number = 0;\n startWidth: number = 0;\n columnIndex: number = 0;\n mouseMoveListener: (() => void) | null | undefined;\n mouseUpListener: (() => void) | null | undefined;\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.initConfig();\n this.initTable();\n }\n\n initConfig(): void {\n this.columnsDefault.title =\n this.config.selectAllTitle ?? 'Seleccionar todo';\n }\n\n initTable(): void {\n // Inserta el default de \"selecionar todo\" en la primera posición\n if (this.config.columns[0]?.title !== this.columnsDefault.title) {\n this.config.columns.unshift(this.columnsDefault);\n }\n\n if (this.config.customColumns) {\n // Verificar si ya hemos insertado la columna personalizada\n const hasCustomColumn = this.config.columns.some(\n col => col.type === 'append' // Verificamos si ya hay columna personalizada\n );\n\n // Si no se insertó ninguna columna personalizada, insertamos la columna personalizada en la segunda posición\n if (!hasCustomColumn) {\n this.config.columns.splice(1, 0, this.config.customColumns);\n }\n }\n }\n\n onCheckboxChange(\n rowIndex: number,\n cellIndex: number,\n newState: boolean\n ): void {\n // Actualizar el estado del dato en config.data\n this.config.data[rowIndex][cellIndex].state = newState;\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n onCustomClick(row: RowSGrid): void {\n this.customClick.emit(row);\n }\n\n //Metodos de columnas\n getColumnState(column: any): boolean | null {\n // Obtener el índice de la columna, considerando las columnas personalizadas\n let columnIndex = this.config.columns.indexOf(column);\n columnIndex -= 1; // Ajustar el índice a la grilla\n // Si hay columnas personalizadas, restamos 1 para ajustar el indice\n if (this.config.customColumns) {\n columnIndex -= 1;\n }\n\n // Verificamos si el índice obtenido es válido\n if (columnIndex < 0 || columnIndex >= this.config.columns.length) {\n return null;\n }\n\n // Obtener los valores de las celdas en esa columna (excluyendo los null)\n const columnValues = this.config.rows.map((_, rowIndex) => {\n const cell = this.config.data[rowIndex]?.[columnIndex];\n return cell ? cell.state : null;\n });\n\n const filteredColumnValues = columnValues.filter(state => state !== null);\n\n if (filteredColumnValues.length === 0) {\n return null;\n }\n\n const allChecked = filteredColumnValues.every(state => state === true);\n const allUnchecked = filteredColumnValues.every(state => state === false);\n\n if (allChecked) {\n return true;\n } else if (allUnchecked) {\n return false;\n }\n\n return null;\n }\n\n setColumnState(columnIndex: number, event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Si hay columnas personalizadas, restamos 1 para ajustar el indice\n if (this.config.customColumns) {\n columnIndex = columnIndex - 1;\n }\n\n // Recorre todas las filas y cambia el estado de las celdas en la columna correspondiente\n this.config.rows.forEach((_, rowIndex) => {\n const cell = this.config.data[rowIndex]?.[columnIndex - 1];\n\n // Solo cambiar valores si la celda no es null\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n // Metodos de Filas\n setRowState(rowIndex: number, event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Recorre todas las filas y cambia el estado de las celdas en la columna correspondiente\n this.config.data[rowIndex].forEach((cell: any) => {\n // Solo cambiar valores si no es null\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n getRowState(row: any): boolean | null {\n const rowIndex = this.config.rows.indexOf(row);\n if (rowIndex === -1) return false;\n\n //Obtegno todos los estados de la fila\n const states = this.config.data[rowIndex]\n .map((cell: any) => cell?.state)\n .filter((state: any) => state !== null);\n\n if (states.length === 0) return null; // Si todos son null\n\n const allChecked = states.every((state: any) => state === true);\n const allUnchecked = states.every((state: any) => state === false);\n\n if (allChecked) {\n return true;\n }\n if (allUnchecked) {\n return false;\n }\n return null;\n }\n\n //Meotod de checkbox selecionar todos\n getStateAllGrid(): boolean | null {\n // Obtengo todos los estados\n const allStates = this.config.data\n .reduce((acc, row) => acc.concat(row), [])\n .map(cell => cell?.state)\n .filter(state => state !== null);\n\n if (allStates.length === 0) return null;\n\n const allChecked = allStates.every(state => state === true);\n const allUnchecked = allStates.every(state => state === false);\n\n if (allChecked) {\n return true;\n }\n if (allUnchecked) {\n return false;\n }\n return null;\n }\n\n setAllGridState(event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Recorre toda la grilla y cambia el estado de todos los checkboxes\n this.config.data.forEach(row => {\n row.forEach(cell => {\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n //Logica Resize\n startResize(event: MouseEvent, colIndex: number) {\n this.isResizing = true;\n this.startX = event.clientX;\n this.columnIndex = colIndex;\n\n const ths = this.el.nativeElement.querySelectorAll('th .th-head');\n if (ths.length <= colIndex) {\n return;\n }\n\n const th = ths[colIndex] as HTMLElement;\n this.startWidth = th.offsetWidth;\n\n // Guardo referencias de los event listeners\n this.mouseMoveListener = this.renderer.listen('window', 'mousemove', e =>\n this.resizeColumn(e)\n );\n this.mouseUpListener = this.renderer.listen('window', 'mouseup', () =>\n this.stopResize()\n );\n }\n\n resizeColumn(event: MouseEvent) {\n if (!this.isResizing) return;\n\n const deltaX = event.clientX - this.startX;\n const newWidth = this.startWidth + deltaX;\n\n if (newWidth > 150) {\n const ths = this.el.nativeElement.querySelectorAll('th .th-head');\n if (ths.length <= this.columnIndex) {\n return;\n }\n\n const th = ths[this.columnIndex] as HTMLElement;\n this.renderer.setStyle(th, 'width', `${newWidth}px`);\n }\n }\n\n stopResize() {\n this.isResizing = false;\n\n // Eliminar los event listeners\n if (this.mouseMoveListener) {\n this.mouseMoveListener();\n this.mouseMoveListener = null;\n }\n\n if (this.mouseUpListener) {\n this.mouseUpListener();\n this.mouseUpListener = null;\n }\n }\n\n getButtonTheme(\n status: number\n ): 'default' | 'green' | 'yellow' | 'red' | undefined {\n switch (status) {\n case 2: //SE GUARDO\n return 'green';\n default:\n return 'default';\n }\n }\n}\n","<div class=\"s-grid-multi\">\n <div class=\"s-grid-multi__toolbar-top\">\n <s-grid-multi-toolbar-top\n [config]=\"config.configToolbarTop\"></s-grid-multi-toolbar-top>\n </div>\n <div class=\"s-grid-multi__table\">\n <div class=\"pre-s-tablet s-scroll\">\n <table class=\"s-tablet\">\n <thead>\n <tr>\n <th\n *ngFor=\"let column of config.columns; let colIndex = index\"\n [ngClass]=\"{ 'resizable-th': colIndex === 0 }\">\n <div\n class=\"th-head no-select\"\n [ngClass]=\"column.type === 'append' ? 'th-head--left' : ''\">\n <!-- Excepción cuando es select all -->\n <ng-container *ngIf=\"colIndex !== 0; else elseBlock\">\n <input\n type=\"checkbox\"\n [indeterminate]=\"getColumnState(column) === null\"\n [checked]=\"getColumnState(column) === true\"\n (change)=\"setColumnState(colIndex, $event)\"\n *ngIf=\"column.type !== 'append'\" />\n </ng-container>\n <ng-template #elseBlock>\n <input\n type=\"checkbox\"\n [indeterminate]=\"getStateAllGrid() === null\"\n [checked]=\"getStateAllGrid() === true\"\n (change)=\"setAllGridState($event)\" />\n </ng-template>\n {{ column.title }}\n <div\n *ngIf=\"colIndex === 0\"\n class=\"resizer\"\n (mousedown)=\"startResize($event, colIndex)\"></div>\n </div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of config.rows; let rowIndex = index\">\n <!-- Primera celda con título de fila -->\n <td>\n <div class=\"th-head th-head--left th-head--normal\">\n <input\n type=\"checkbox\"\n [indeterminate]=\"getRowState(row) === null\"\n [checked]=\"getRowState(row) === true\"\n (change)=\"setRowState(rowIndex, $event)\"\n *ngIf=\"row.type !== 'append'\" />\n {{ row.title }}\n </div>\n </td>\n <!-- Celda para la columna custom -->\n <td *ngIf=\"config.customColumns\">\n <div class=\"text-center\">\n <s-button\n type=\"primary\"\n [theme]=\"\n getButtonTheme(\n row.customColumnStatus ? row.customColumnStatus : 1\n )\n \"\n position=\"normal\"\n [disabled]=\"row.customColumnStatus === 3 ? true : false\"\n (click)=\"onCustomClick(row)\"\n (onKeyDown)=\"onCustomClick(row)\">\n <s-icon-mat>{{\n row.customColumnStatus === 1 ? 'warning' : 'check_circle'\n }}</s-icon-mat>\n {{ row.customColumnTitle }}</s-button\n >\n </div>\n </td>\n\n <!-- Resto de las celdas -->\n <td\n *ngFor=\"let cell of config.data[rowIndex]; index as cellIndex\"\n class=\"td-class\"\n [ngClass]=\"cell.state === null ? 'cell-null' : ''\">\n <ng-container *ngIf=\"cell.state === true || cell.state === false\">\n <div class=\"text-center\">\n <input\n type=\"checkbox\"\n (change)=\"onCheckboxChange(rowIndex, cellIndex, cell.state)\"\n [(ngModel)]=\"cell.state\" />\n </div>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GridMultiInputsComponent } from './grid-multi-inputs.component';\nimport { GridMultiInputsToolbarTopComponent } from './components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component';\nimport { STabletModule } from '../table-t/s-tablet.module';\nimport { SEmptyModule } from '../empty/empty.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SCheckboxModule } from '../checkbox/s-checkbox.module';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [GridMultiInputsComponent, GridMultiInputsToolbarTopComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n STabletModule,\n SEmptyModule,\n SCheckboxModule,\n SButtonModule,\n SIconMaterialModule,\n ],\n exports: [GridMultiInputsComponent, GridMultiInputsToolbarTopComponent],\n})\nexport class SGridMultiInputsModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-container',\n templateUrl: './s-container.component.html',\n styleUrls: ['./s-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SContainerComponent {\n @Input() background: 'default' | 'primary' = 'default';\n @Input() id?: string = 's-container';\n}\n","<div class=\"s-container s-container--background-{{ background }}\" [id]=\"id\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SContainerComponent } from './s-container.component';\n\n@NgModule({\n declarations: [SContainerComponent],\n imports: [CommonModule, SIconMaterialModule],\n exports: [SContainerComponent],\n})\nexport class SContainerModule {}\n","import { Component, Input, ViewEncapsulation, signal } from '@angular/core';\nimport { ANIMATION } from '../animation';\nimport { SSpinnerModule } from '../spinner';\nimport { CommonModule } from '@angular/common';\nimport { STranslatePipe } from '../pipe';\n\n@Component({\n selector: 's-redirect',\n standalone: true,\n imports: [CommonModule, SSpinnerModule, STranslatePipe],\n templateUrl: './redirect.component.html',\n styleUrls: ['./redirect.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SRedirectComponent {\n private readonly _error = signal(false);\n readonly errorSignal = this._error.asReadonly();\n\n @Input() set error(value: boolean) {\n this._error.set(value);\n }\n\n @Input() animation: ANIMATION = ANIMATION.Spinner;\n}\n","<div class=\"s-redirect\">\n <div class=\"w100 text-center\">\n <ng-container>\n <s-spinner [animation]=\"animation\" class=\"spinner\"></s-spinner>\n @if (errorSignal()) {\n <h4 class=\"mt-2\">{{ 'entity.auth.validationError' | translate }}</h4>\n <small>{{ 'entity.auth.suiteRedirection' | translate }}</small>\n }\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { STableCompleteModule } from '../table-complete';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SortTable } from '../table-t';\nimport {\n ReorderDirection,\n STableDouble,\n STableDoubleActionEvent,\n STableDoubleBooleanEvent,\n STableDoubleItem,\n STableDoubleNumberEvent,\n STableDoubleReorderEvent,\n STableDoubleSortEvent,\n STableDoubleStringArrayEvent,\n STableDoubleStringEvent,\n STableDoubleSwitchEvent,\n STablesData,\n} from './table-double.model';\nimport { SToggleSwitchModule } from '../toggle-switch';\nimport { STranslateService } from '../services';\nimport { SListModule } from '../list';\nimport { TableActionsButtonsModule } from '../table-t/table-actions-buttons/table-actions-buttons.module';\nimport { ActionButton } from '../table-t/table-actions-buttons/interfaces';\nimport { ActionsButtonsType } from '../table-t/table-actions-buttons/enums/ActionsButtonsType.enum';\n\nconst MAX_TREE_LEVEL = 20;\n\n@Component({\n selector: 's-table-double',\n standalone: true,\n imports: [\n CommonModule,\n STableCompleteModule,\n SButtonModule,\n FormsModule,\n SIconMaterialModule,\n SListModule,\n TableActionsButtonsModule,\n SToggleSwitchModule,\n ],\n templateUrl: './table-double.component.html',\n styleUrl: './table-double.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class STableDoubleComponent implements OnInit {\n @Input() config!: STableDouble;\n @Output() actionPositionEvent = new EventEmitter<boolean>();\n @Output() bottomStatusBarPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() checkAllPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() deletePositionEvent = new EventEmitter<boolean>();\n @Output() emptyPositionEvent = new EventEmitter<boolean>();\n @Output() eventUpdateTables = new EventEmitter<STablesData>();\n @Output() filterPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() multiSelectPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() orderByPositionEvent = new EventEmitter<STableDoubleSortEvent>();\n @Output() pagePositionEvent = new EventEmitter<STableDoubleNumberEvent>();\n @Output() paginationPositionEvent = new EventEmitter<STableDoubleNumberEvent>();\n @Output() pillButtonPositionEvent = new EventEmitter<boolean>();\n @Output() scrollPositionEvent = new EventEmitter<boolean>();\n @Output() selectPositionEvent = new EventEmitter<STableDoubleStringEvent>();\n @Output() rowSelectPositionEvent = new EventEmitter<{ isLeftTable: boolean; value: any }>();\n @Output() actionEvent = new EventEmitter<STableDoubleActionEvent>();\n @Output() toggleExpandEvent = new EventEmitter<string>();\n id!: string;\n @Output() reorderItemEvent = new EventEmitter<STableDoubleReorderEvent>();\n @Output() switchChangeEvent = new EventEmitter<STableDoubleSwitchEvent>();\n\n disabledButtonLeft = signal<boolean>(true);\n disabledButtonRight = signal<boolean>(true);\n itemsTableLeft: any[] = [];\n itemsTableRightData: any[] = [];\n\n dragItemId!: string | null;\n dragOverItemId!: string | null;\n\n private readonly _sTranslateService = inject(STranslateService);\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-table-double`;\n this.cloneItemsTables();\n if (!this.config.tableLeftConfig.emptyConfig) {\n this.config.tableLeftConfig.emptyConfig = {\n image: 'assets/empty/empty.png',\n title: this._sTranslateService.instant('ui.tableDouble.emptyTitleLeft'), //'No hay elementos disponibles',\n };\n }\n if (!this.config.tableRightConfig.emptyConfig) {\n this.config.tableRightConfig.emptyConfig = {\n detail: this._sTranslateService.instant('ui.tableDouble.emptyDetailRight'), //'Seleccione los ítems deseados y luego haga clic en el botón de la columna central.',\n image: 'assets/empty/empty.png',\n title: this._sTranslateService.instant('ui.tableDouble.emptyTitleRight'), //'No hay elementos agregados',\n };\n }\n }\n\n onDragStart(event: DragEvent, itemId: string) {\n this.dragItemId = itemId;\n event.dataTransfer?.setData('text/plain', ''); // Necesario para habilitar el arrastre en algunos navegadores\n }\n\n onDragOver(event: DragEvent, itemId: string) {\n if (this.dragItemId === null || this.dragItemId === itemId) {\n return;\n }\n this.dragOverItemId = itemId;\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dragOverItemId = null;\n }\n\n onDrop(event: DragEvent, itemId: string, isLeftTable: boolean) {\n if (this.dragItemId === null || this.dragItemId === itemId) {\n return;\n }\n\n // Reordenar los elementos\n const items = this.getItems(isLeftTable);\n const dragIndex = items.findIndex((item: { id: string }) => item.id === this.dragItemId);\n const dropIndex = items.findIndex((item: { id: string }) => item.id === itemId);\n if (dragIndex !== -1 && dropIndex !== -1) {\n const draggedItem = items[dragIndex];\n items.splice(dragIndex, 1);\n items.splice(dropIndex, 0, draggedItem);\n }\n\n this.dragItemId = null;\n this.dragOverItemId = null;\n event.preventDefault();\n this.eventUpdateTablesEmit();\n }\n\n iconAction(itemId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const item = items.find((item: { id: string }) => item.id === itemId);\n if (item) this.actionEvent.emit({ isLeftTable, id: itemId });\n }\n\n selectItem(itemId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const itemIndex = items.findIndex((item: { id: string }) => item.id === itemId);\n if (itemIndex !== -1) {\n items[itemIndex].checked = !items[itemIndex].checked;\n this.updateCounter();\n }\n }\n\n cloneItemsTables(): void {\n this.itemsTableLeft = [...this.config.tableLeftItems];\n this.itemsTableRightData = [...this.config.tableRightItems];\n }\n\n moveItems(isLeftTableSource: boolean): void {\n const sourceData = this.getItems(isLeftTableSource);\n const targetData = this.getItems(!isLeftTableSource);\n\n const originalSourceData = isLeftTableSource ? this.itemsTableLeft : this.itemsTableRightData;\n const originalTargetData = isLeftTableSource ? this.itemsTableRightData : this.itemsTableLeft;\n\n const hasItemSelection = sourceData.some(item => item.selected);\n const selectedItems = sourceData\n .filter(item => (hasItemSelection ? item.selected : item.checked))\n .map(item => ({\n ...item,\n checked: false,\n selected: false,\n }));\n\n targetData.push(...selectedItems);\n this.setItems(\n isLeftTableSource,\n sourceData.filter(item => (hasItemSelection ? !item.selected : !item.checked))\n );\n\n originalTargetData.push(...selectedItems);\n const filteredOriginalSource = originalSourceData.filter(\n item => !selectedItems.some(sel => sel.name === item.name)\n );\n if (isLeftTableSource) {\n this.itemsTableLeft = filteredOriginalSource;\n } else {\n this.itemsTableRightData = filteredOriginalSource;\n }\n\n const checkColumnRight = this.config.tableRightConfig.columns[0]?.checkboxValue;\n const checkColumnLeft = this.config.tableLeftConfig.columns[0]?.checkboxValue;\n\n if (checkColumnRight) this.config.tableRightConfig.columns[0].checkboxValue = false;\n if (checkColumnLeft) this.config.tableLeftConfig.columns[0].checkboxValue = false;\n this.config.tableLeftConfig.totalItems = this.config.tableLeftItems.length;\n this.config.tableRightConfig.totalItems = this.config.tableRightItems.length;\n this.eventUpdateTablesEmit();\n this.updateCounter();\n }\n\n eventUpdateTablesEmit(): void {\n this.eventUpdateTables.emit({\n tableLeftItems: this.config.tableLeftItems,\n tableRightItems: this.config.tableRightItems,\n });\n }\n\n addItem(): void {\n this.moveItems(true);\n this.cloneItemsTables();\n }\n\n removeItem(): void {\n this.moveItems(false);\n this.cloneItemsTables();\n }\n\n action(isLeftTable: boolean) {\n this.actionPositionEvent.emit(isLeftTable);\n }\n\n delete(isLeftTable: boolean) {\n this.deletePositionEvent.emit(isLeftTable);\n }\n\n empty(isLeftTable: boolean) {\n this.emptyPositionEvent.emit(isLeftTable);\n }\n\n orderBy(event: SortTable, isLeftTable: boolean) {\n this.orderByPositionEvent.emit({ isLeftTable, value: event });\n }\n\n page(event: number, isLeftTable: boolean) {\n this.pagePositionEvent.emit({ isLeftTable, value: event });\n }\n\n paginationEmitter(event: number, isLeftTable: boolean) {\n this.paginationPositionEvent.emit({ isLeftTable, value: event });\n }\n\n select(event: string, isLeftTable: boolean) {\n this.selectPositionEvent.emit({ isLeftTable, value: event });\n }\n\n pillButton(isLeftTable: boolean) {\n this.pillButtonPositionEvent.emit(isLeftTable);\n }\n\n filter(event: string[], isLeftTable: boolean) {\n this.filterPositionEvent.emit({ isLeftTable, value: event });\n }\n\n multiSelect(event: string[], isLeftTable: boolean) {\n this.multiSelectPositionEvent.emit({ isLeftTable, value: event });\n }\n\n checkAllEvent(event: boolean, isLeftTable: boolean) {\n const items = this.getItems(isLeftTable);\n this.setItems(\n isLeftTable,\n items.map(item => ({\n ...item,\n checked: event,\n }))\n );\n this.updateCounter();\n }\n\n onScroll(isLeftTable: boolean) {\n this.scrollPositionEvent.emit(isLeftTable);\n }\n\n changeCheckbox(): void {\n this.config.tableRightConfig.columns[0].checkboxValue =\n this.config.tableRightItems.length > 0 && this.config.tableRightItems.every(item => item.checked);\n\n this.config.tableLeftConfig.columns[0].checkboxValue =\n this.config.tableLeftItems.length > 0 && this.config.tableLeftItems.every(item => item.checked);\n\n this.updateCounter();\n }\n\n bottomStatusBarChange(state: boolean, isLeftTable: boolean) {\n this.bottomStatusBarPositionEvent.emit({ isLeftTable, value: state });\n this.updateCounter();\n }\n\n search(event: string, isLeftTable: boolean) {\n const original = isLeftTable ? this.itemsTableLeft : this.itemsTableRightData;\n const filtered = this.getFilteredItems(original, event);\n\n if (isLeftTable) {\n this.config.tableLeftItems = filtered;\n } else {\n this.config.tableRightItems = filtered;\n }\n }\n\n private getFilteredItems(original: any[], searchTerm: string): any[] {\n const term = searchTerm.toLowerCase().trim();\n if (!term) return [...original];\n\n return original.filter(item => Object.values(item).some(value => String(value).toLowerCase().includes(term)));\n }\n\n private updateCounter() {\n const updateStatusBar = (\n items: any[],\n config: { configBottomStatusBar?: WritableSignal<any> },\n setter: WritableSignal<boolean>\n ) => {\n const counterCheckbox = items.filter(item => item.checked).length;\n const counterItem = items.filter(item => item.selected).length;\n const counter = Math.max(counterCheckbox, counterItem);\n\n config.configBottomStatusBar = signal({\n ...config.configBottomStatusBar?.(),\n counter,\n disabled: items.length === 0,\n total: items.length,\n });\n // Habilitar botón si hay items seleccionados (por checkbox O por item)\n setter.set(counterCheckbox === 0 && counterItem === 0);\n };\n\n updateStatusBar(this.config.tableLeftItems, this.config.tableLeftConfig, this.disabledButtonLeft);\n updateStatusBar(this.config.tableRightItems, this.config.tableRightConfig, this.disabledButtonRight);\n }\n\n getTreeCellColspan(): number {\n return this.config.tableRightConfig.columns.filter(c => c.id === 'checkbox' || c.id === 'name').length;\n }\n\n getTreeLevelClass(item: any): string {\n if (!this.config.isTreeMode || !item.level) {\n return 's-table-double__tree-level-0';\n }\n const level = Math.min(item.level, MAX_TREE_LEVEL);\n return `s-table-double__tree-level-${level}`;\n }\n\n toggleExpand(event: Event, itemId: string): void {\n event.stopPropagation();\n this.toggleExpandEvent.emit(itemId);\n }\n\n rowClick(item: any, isLeftTable: boolean): void {\n if (isLeftTable && this.config.disableLeftRowSelection) {\n return;\n }\n if (!isLeftTable) {\n this.config.tableRightItems.forEach(i => {\n i.selected = i.id === item.id ? !i.selected : false;\n });\n } else {\n item.selected = !item.selected;\n }\n this.updateCounter();\n this.rowSelectPositionEvent.emit({ isLeftTable, value: item });\n }\n\n private getItems(isLeftTable: boolean): STableDoubleItem[] {\n return isLeftTable ? this.config.tableLeftItems : this.config.tableRightItems;\n }\n\n private setItems(isLeftTable: boolean, items: STableDoubleItem[]): void {\n if (isLeftTable) {\n this.config.tableLeftItems = items;\n } else {\n this.config.tableRightItems = items;\n }\n }\n\n getOrderButtons(item: any): ActionButton[] {\n const isFirst = !!item.__isFirstSibling;\n const isLast = !!item.__isLastSibling;\n\n if (\n item.__orderButtons &&\n item.__orderButtons[0].disabled === isFirst &&\n item.__orderButtons[2].disabled === isLast\n ) {\n return item.__orderButtons;\n }\n\n item.__orderButtons = [\n {\n type: ActionsButtonsType.DOUBLE_ARROW_UP,\n tooltip: this._sTranslateService.instant('ui.generic.first'),\n disabled: isFirst,\n },\n {\n type: ActionsButtonsType.ARROW_UP,\n tooltip: this._sTranslateService.instant('ui.generic.up'),\n disabled: isFirst,\n },\n {\n type: ActionsButtonsType.ARROW_DOWN,\n tooltip: this._sTranslateService.instant('ui.generic.down'),\n disabled: isLast,\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_DOWN,\n tooltip: this._sTranslateService.instant('ui.generic.last'),\n disabled: isLast,\n },\n ];\n return item.__orderButtons;\n }\n\n onOrderButtonClick(type: string, itemId: string): void {\n this.reorderItemEvent.emit({ itemId, direction: type as ReorderDirection });\n }\n\n onSwitchChange(value: boolean, itemId: string, columnId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const item = items.find(i => i.id === itemId);\n if (item) {\n item[columnId] = value;\n }\n this.switchChangeEvent.emit({ isLeftTable, itemId, columnId, value });\n }\n}\n","<div class=\"s-table-double\" [id]=\"id\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action(true)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, true)\"\n (checkAllEvent)=\"checkAllEvent($event, true)\"\n (deleteEvent)=\"delete(true)\"\n (emptyEvent)=\"empty(true)\"\n (filterEvent)=\"filter($event, true)\"\n (multiSelectEvent)=\"multiSelect($event, true)\"\n (orderByEvent)=\"orderBy($event, true)\"\n (pageEvent)=\"page($event, true)\"\n (paginationEvent)=\"paginationEmitter($event, true)\"\n (pillButtonEvent)=\"pillButton(true)\"\n (scrollEvent)=\"onScroll(true)\"\n (searchEvent)=\"search($event, true)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableLeftItems; track item) {\n <div class=\"s-table-double__list\">\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [id]=\"id + '-listLeft-' + item.id\"\n [selected]=\"item.checked\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, true)\"\n (click)=\"selectItem(item.id, true)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, true)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n </div>\n }\n } @else {\n @for (item of config.tableLeftItems; track item) {\n <tr\n [ngClass]=\"{\n active: !config.disableLeftRowSelection && config.isTreeMode && item.selected,\n }\"\n (click)=\"!config.disableLeftRowSelection && config.isTreeMode && rowClick(item, true)\">\n <td (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [id]=\"id + '-checkboxLeft-' + item.id\"\n [(ngModel)]=\"item.checked\"\n (change)=\"changeCheckbox()\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td [id]=\"id + '-itemLeft-' + item.id\">{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n [id]=\"id + '-addButton'\"\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat\n ><span class=\"material-symbols-outlined\">\n {{ config.additionButton ? 'add' : 'arrow_forward' }}\n </span></s-icon-mat\n ></s-button\n >\n </div>\n <div>\n <s-button\n [id]=\"id + '-removeButton'\"\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat\n ><span class=\"material-symbols-outlined\">\n {{ config.additionButton ? 'remove' : 'arrow_back' }}\n </span></s-icon-mat\n ></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action(false)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, false)\"\n (checkAllEvent)=\"checkAllEvent($event, false)\"\n (deleteEvent)=\"delete(false)\"\n (emptyEvent)=\"empty(false)\"\n (filterEvent)=\"filter($event, false)\"\n (multiSelectEvent)=\"multiSelect($event, false)\"\n (orderByEvent)=\"orderBy($event, false)\"\n (pageEvent)=\"page($event, false)\"\n (paginationEvent)=\"paginationEmitter($event, false)\"\n (pillButtonEvent)=\"pillButton(false)\"\n (scrollEvent)=\"onScroll(false)\"\n (searchEvent)=\"search($event, false)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableRightItems; track item) {\n <s-list\n [size]=\"'xs'\"\n [id]=\"id + '-listRight-' + item.id\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.checked\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, false)\"\n (click)=\"selectItem(item.id, false)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, false)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n }\n } @else {\n @for (item of config.tableRightItems; track item) {\n <tr\n [ngClass]=\"{ active: config.isTreeMode && item.selected }\"\n (click)=\"config.isTreeMode && rowClick(item, false)\">\n <td\n class=\"s-table-double__tree-cell\"\n [class.s-table-double__tree-cell--tree]=\"config.isTreeMode\"\n [attr.colspan]=\"config.isTreeMode ? getTreeCellColspan() : null\">\n <div class=\"s-table-double__tree-cell-content\" [ngClass]=\"getTreeLevelClass(item)\">\n @if (config.isTreeMode && item.hasChildren) {\n <s-icon-mat\n class=\"s-table-double__tree-toggle\"\n [class.s-table-double__tree-toggle--expanded]=\"item.expanded\"\n (click)=\"toggleExpand($event, item.id)\">\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </s-icon-mat>\n } @else if (config.isTreeMode) {\n <span class=\"s-table-double__tree-spacer\"></span>\n }\n <input\n type=\"checkbox\"\n [id]=\"id + '-checkboxRight-' + item.id\"\n [(ngModel)]=\"item.checked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"changeCheckbox()\" />\n @if (config.isTreeMode) {\n <span class=\"s-table-double__tree-name\">{{ item.name }}</span>\n }\n </div>\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (\n column.id !== 'checkbox' &&\n column.id !== undefined &&\n !(config.isTreeMode && column.id === 'name') &&\n column.id !== 'actions'\n ) {\n <td [id]=\"id + '-itemRight-' + item.id\" (click)=\"column.switchConfig && $event.stopPropagation()\">\n @if (column.switchConfig && item[column.id!] !== undefined) {\n <s-toggle-switch\n [config]=\"column.switchConfig\"\n [(ngModel)]=\"item[column.id!]\"\n (valueChange)=\"onSwitchChange($event, item.id, column.id!, false)\">\n </s-toggle-switch>\n } @else if (!column.switchConfig) {\n {{ item[column.id] }}\n }\n </td>\n }\n }\n @if (config.showOrderButtons) {\n <td class=\"s-table-double__order-actions\" (click)=\"$event.stopPropagation()\">\n <s-table-actions-buttons\n [tableActionsButtons]=\"getOrderButtons(item)\"\n (clickButtonEvent)=\"onOrderButtonClick($event, item.id)\">\n </s-table-actions-buttons>\n </td>\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, OnInit, signal, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STabsModule } from '../tabs';\nimport { STableDoubleComponent } from '../table-double/table-double.component';\nimport {\n STableDoubleCompleteConfig,\n STableDoubleCompleteUpdateEvent,\n STableDoubleCompleteItem,\n} from './table-double-complete.model';\nimport { ITab } from '../tabs/models';\nimport {\n STableDouble,\n STablesData,\n STableDoubleItem,\n STableDoubleBooleanEvent,\n STableDoubleReorderEvent,\n STableDoubleStringArrayEvent,\n STableDoubleSortEvent,\n STableDoubleStringEvent,\n STableDoubleSwitchEvent,\n} from '../table-double/table-double.model';\nimport { STranslateService } from '../services/translate/translate.service';\n\n@Component({\n selector: 's-table-double-complete',\n standalone: true,\n imports: [CommonModule, STabsModule, STableDoubleComponent],\n templateUrl: './table-double-complete.component.html',\n styleUrl: './table-double-complete.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class STableDoubleCompleteComponent implements OnInit {\n @Input() config!: STableDoubleCompleteConfig;\n\n @Output() updateEvent = new EventEmitter<STableDoubleCompleteUpdateEvent>();\n @Output() actionPositionEvent = new EventEmitter<boolean>();\n @Output() bottomStatusBarPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() checkAllPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() deletePositionEvent = new EventEmitter<boolean>();\n @Output() emptyPositionEvent = new EventEmitter<boolean>();\n @Output() filterPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() multiSelectPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() orderByPositionEvent = new EventEmitter<STableDoubleSortEvent>();\n @Output() pillButtonPositionEvent = new EventEmitter<boolean>();\n @Output() scrollPositionEvent = new EventEmitter<boolean>();\n @Output() selectPositionEvent = new EventEmitter<STableDoubleStringEvent>();\n id!: string;\n @Output() switchChangeEvent = new EventEmitter<STableDoubleSwitchEvent>();\n\n private activeTabKey!: string;\n private rightTableState: STableDoubleCompleteItem[] = [];\n private expandedNodes = new Map<string, boolean>();\n private readonly _sTranslateService = inject(STranslateService);\n\n tableDoubleAdapter!: STableDouble;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-table-double-complete`;\n this.rightTableState = [...(this.config.tableConfig.tableRightItems ?? [])];\n\n const selectedTab = this.config.tabs.find(t => t.selected);\n if (selectedTab) {\n this.setActiveTab(selectedTab);\n }\n }\n\n onTabSelect(tab: ITab): void {\n this.setActiveTab(tab);\n }\n\n private setActiveTab(tab: ITab): void {\n this.activeTabKey = String(tab.value ?? tab.text);\n\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const tableLeftItems = this.mapToTableDoubleItems(leftItems);\n\n let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);\n\n if (this.config.treeMode) {\n tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));\n }\n\n this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);\n }\n\n onUpdateTables(event: STablesData): void {\n const prevRightIds = new Set(this.rightTableState.map(i => i.id));\n const sourceLeft = this.config.itemsByTab[this.activeTabKey] ?? [];\n const selectedRightItems = event.tableRightItems.filter(i => i.selected);\n const parentId = this.config.treeMode && selectedRightItems.length === 1 ? selectedRightItems[0].id : null;\n\n const nextRight: STableDoubleCompleteItem[] = event.tableRightItems.map(item => {\n const prev = this.rightTableState.find(r => r.id === item.id);\n const fromLeft = sourceLeft.find(l => l.id === item.id);\n return {\n ...(prev ?? fromLeft ?? {}),\n id: item.id,\n name: item.name,\n checked: !!item.checked,\n parentId: prev?.parentId ?? null,\n };\n });\n\n const addedItems = nextRight.filter(i => !prevRightIds.has(i.id));\n\n if (this.config.treeMode && parentId) {\n addedItems.forEach(item => {\n item.parentId = parentId;\n });\n }\n\n this.rightTableState = nextRight;\n this.resetSelections();\n this.refreshTables();\n }\n\n private refreshTables(): void {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const tableLeftItems = this.mapToTableDoubleItems(leftItems);\n\n let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);\n\n if (this.config.treeMode) {\n tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));\n tableLeftItems;\n }\n\n this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);\n\n this.updateEvent.emit({\n tabKey: this.activeTabKey,\n tableLeftItems,\n tableRightItems,\n });\n }\n\n private buildTableDoubleAdapter(leftItems: STableDoubleItem[], rightItems: STableDoubleItem[]): STableDouble {\n const rightColumns = [...this.config.tableConfig.tableRightConfig.columns];\n if (this.config.showOrderButtons && !rightColumns.some(c => c.id === 'actions')) {\n rightColumns.push({ id: 'actions', title: this._sTranslateService.instant('ui.generic.actions') });\n }\n\n return {\n additionButton: true,\n isTreeMode: !!this.config.treeMode,\n showOrderButtons: !!this.config.showOrderButtons,\n disableLeftRowSelection: true,\n tableLeftConfig: {\n ...this.config.tableConfig.tableLeftConfig,\n totalItems: leftItems.length,\n isTreeMode: false,\n configBottomStatusBar: signal({\n counter: leftItems.filter(i => i.checked).length,\n total: leftItems.length,\n disabled: leftItems.length === 0,\n }),\n },\n tableRightConfig: {\n ...this.config.tableConfig.tableRightConfig,\n columns: rightColumns,\n totalItems: rightItems.length,\n isTreeMode: !!this.config.treeMode,\n configBottomStatusBar: signal({\n counter: rightItems.filter(i => i.checked).length,\n total: rightItems.length,\n disabled: rightItems.length === 0,\n }),\n },\n tableLeftItems: leftItems,\n tableRightItems: rightItems,\n id: this.id,\n };\n }\n\n private mapToTableDoubleItems(items: STableDoubleCompleteItem[]): STableDoubleItem[] {\n return items.map((item, index) => ({\n ...item,\n name: item.name ?? '',\n checked: item.checked ?? false,\n }));\n }\n\n private buildTree(items: STableDoubleCompleteItem[]): STableDoubleCompleteItem[] {\n const map = new Map<string, STableDoubleCompleteItem & { children: STableDoubleCompleteItem[] }>();\n const roots: STableDoubleCompleteItem[] = [];\n\n items.forEach(item => {\n map.set(item.id, { ...item, children: [] });\n });\n\n map.forEach(item => {\n if (item.parentId) {\n const parent = map.get(item.parentId);\n if (parent) parent.children.push(item);\n } else {\n roots.push(item);\n }\n });\n\n return roots;\n }\n\n private flattenTree(nodes: STableDoubleCompleteItem[], level: number = 0): STableDoubleItem[] {\n let result: STableDoubleItem[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const hasChildren = !!node.children?.length;\n const isExpanded = this.expandedNodes.get(node.id) ?? true;\n\n result.push({\n ...node,\n name: node.name ?? '',\n checked: !!node.checked,\n parentId: node.parentId ?? null,\n level: level,\n expanded: isExpanded,\n hasChildren: hasChildren,\n } as STableDoubleItem);\n\n if (hasChildren && isExpanded && node.children) {\n result = result.concat(this.flattenTree(node.children, level + 1));\n }\n }\n return result;\n }\n\n private resetSelections(): void {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n leftItems.forEach(i => {\n i.checked = false;\n i.selected = false;\n });\n this.rightTableState.forEach(i => {\n i.checked = false;\n i.selected = false;\n });\n }\n\n onSwitchChange(event: STableDoubleSwitchEvent): void {\n if (event.isLeftTable) {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const item = leftItems.find(i => i.id === event.itemId);\n if (item) item[event.columnId] = event.value;\n } else {\n const item = this.rightTableState.find(i => i.id === event.itemId);\n if (item) item[event.columnId] = event.value;\n }\n this.switchChangeEvent.emit(event);\n }\n\n toggleNodeExpansion(nodeId: string): void {\n const currentState = this.expandedNodes.get(nodeId) ?? true;\n this.expandedNodes.set(nodeId, !currentState);\n this.refreshTables();\n }\n\n onReorderItem(event: STableDoubleReorderEvent): void {\n const { itemId, direction } = event;\n const item = this.rightTableState.find(i => i.id === itemId);\n if (!item) return;\n\n const parentId = item.parentId ?? null;\n const siblings = this.rightTableState.filter(i => (i.parentId ?? null) === parentId);\n const siblingIndex = siblings.findIndex(i => i.id === itemId);\n if (siblingIndex === -1) return;\n\n let targetIndex: number;\n switch (direction) {\n case 'top':\n targetIndex = 0;\n break;\n case 'up':\n targetIndex = siblingIndex - 1;\n break;\n case 'down':\n targetIndex = siblingIndex + 1;\n break;\n case 'bottom':\n targetIndex = siblings.length - 1;\n break;\n default:\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= siblings.length || targetIndex === siblingIndex) return;\n\n siblings.splice(siblingIndex, 1);\n siblings.splice(targetIndex, 0, item);\n\n this.rightTableState = this.rightTableState.filter(i => (i.parentId ?? null) !== parentId);\n const insertRef = parentId ? this.rightTableState.findIndex(i => i.id === parentId) + 1 : 0;\n this.rightTableState.splice(insertRef, 0, ...siblings);\n\n this.refreshTables();\n }\n}\n","<div class=\"s-table-double-complete\" [id]=\"id\">\n <s-tabs [tabs]=\"config.tabs\" [configTabs]=\"config.configTabs\" (eventSelect)=\"onTabSelect($event)\"> </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\"\n (switchChangeEvent)=\"onSwitchChange($event)\">\n </s-table-double>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.SIconMaterialComponent","i2.SIconMaterialComponent","i3.ImageLoaderDirective","i1.SAvatarComponent","i4.SCheckboxOldComponent","i5.SRadioComponent","i6.SProfileGroupComponent","i3.STagComponent","i4.STooltipComponent","i5.CustomTooltipDirective","i4.SButtonComponent","i5.STooltipComponent","i6.CustomTooltipDirective","i7.SBadgeComponent","i8.SNotificationComponent","i2.SCompanyLogoComponent","i3.SMenuMainComponent","i4.SAvatarComponent","i5.SSubMenuComponent","i6.SIconMenuComponent","i7.SProfileGroupComponent","i1.LocalstorageService","i2.SErrorControl","i4.SErrorControl","i5.SValidationError","i1.SelectNavigationService","i1.AnimationComponent","i3.SErrorControl","i4.SInputComponent","i5.SSelectSimpleComponent","i6.SSpinnerComponent","i4.SValidationError","i5.SErrorControl","i6.SValidationError","i5.SCheckboxComponent","i6","i7.SErrorControl","i8.SInputComponent","i9.SValidationError","i5","i6.SErrorControl","i7.SValidationError","i5.SCheckboxOldComponent","i6.SCheckboxComponent","i7","i4.STagComponent","i6.SSubMenuComponent","i3.SCheckboxComponent","i4","i5.SSpinnerComponent","i3.STooltipComponent","i4.CustomTooltipDirective","i1.SidebarStateService","i4.SIconMaterialComponent","i5.SBadgeComponent","i6.SMenuItemTitleComponent","i3.SButtonComponent","i1.SIconMaterialComponent","i1.SToastService","i2.SCheckboxOldComponent","i2.SButtonComponent","i4.SSelectComponent","i1.ImageLoaderDirective","i3.SBadgeComponent","i3.SInputComponent","i5.SIconMaterialComponent","i7.SSelectMultipleComponent","i8.SSelectComponent","i1.STranslateService","i1.SCheckboxComponent","i3.ToggleSwitchFormComponent","i2.SToolbarTopComponent","i3.EmptyComponent","i4.STabletComponent","i4.STemplate","i5.SPaginationComponent","i6.SBottomStatusBarComponent","i4.SCheckboxComponent","i5.GridMultiInputsToolbarTopComponent","i2.TableCompleteComponent","i6.SListComponent","i8.ToggleSwitchFormComponent"],"mappings":"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"}
1
+ {"version":3,"file":"sidesys-generic-ui.mjs","sources":["../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.component.ts","../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.component.html","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.component.ts","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.component.html","../../../projects/sidesys-generic-ui/src/lib/shared/image-loader.directive.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.component.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.component.html","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.component.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.component.html","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.component.ts","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.component.html","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.component.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.component.html","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.component.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.component.html","../../../projects/sidesys-generic-ui/src/lib/button/components/button/s-button.component.ts","../../../projects/sidesys-generic-ui/src/lib/button/components/button/s-button.component.html","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.component.ts","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.component.html","../../../projects/sidesys-generic-ui/src/lib/tooltip/directive/s-tooltip-directive.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.component.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.component.html","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.component.ts","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/components/s-notificaction.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/components/s-notification.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.component.html","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.component.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.component.html","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.module.ts","../../../projects/sidesys-generic-ui/src/lib/company-logo/s-company-logo.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/menu-main/s-menu-main-model.ts","../../../projects/sidesys-generic-ui/src/lib/icon-material/s-icon-material.model.ts","../../../projects/sidesys-generic-ui/src/lib/shared/shared.module.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/s-avatar.module.ts","../../../projects/sidesys-generic-ui/src/lib/input/directives/control-boolean-accessor.directive.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/checkbox-new/s-checkbox.component.ts","../../../projects/sidesys-generic-ui/src/lib/checkbox/checkbox-new/s-checkbox.component.html","../../../projects/sidesys-generic-ui/src/lib/checkbox/s-checkbox.module.ts","../../../projects/sidesys-generic-ui/src/lib/radio/s-radio.module.ts","../../../projects/sidesys-generic-ui/src/lib/avatar/components/profile-group/s-profile-group.module.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu.module.ts","../../../projects/sidesys-generic-ui/src/lib/sub-menu/s-sub-menu-model.ts","../../../projects/sidesys-generic-ui/src/lib/button/button.module.ts","../../../projects/sidesys-generic-ui/src/lib/tag/s-tag.module.ts","../../../projects/sidesys-generic-ui/src/lib/tooltip/s-tooltip.module.ts","../../../projects/sidesys-generic-ui/src/lib/badge/s-badge.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/components/icon-menu/s-icon-menu-model.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/s-navbar.module.ts","../../../projects/sidesys-generic-ui/src/lib/navbar/index.ts","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.component.ts","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.component.html","../../../projects/sidesys-generic-ui/src/lib/footer/s-footer.module.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-type-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-layout-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/behavior/behavior-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/data-type/data-type-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/field/field-template-dto.ts","../../../projects/sidesys-generic-ui/src/lib/enums/theme.enum.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input-model.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/configFields/s-input-config.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/error-control/s-error-control.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/error-control/s-error-control.component.html","../../../projects/sidesys-generic-ui/src/lib/input/enums/icon-theme.enum.ts","../../../projects/sidesys-generic-ui/src/lib/input/directives/control-value-accessor.directive.ts","../../../projects/sidesys-generic-ui/src/lib/services/translate/translate.service.ts","../../../projects/sidesys-generic-ui/src/lib/shared/localstorage.service.ts","../../../projects/sidesys-generic-ui/src/lib/services/sidebarStateService/sidebarStateService.service.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/validation-error/s-validation-error.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/validation-error/s-validation-error.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input/s-input.component.html","../../../projects/sidesys-generic-ui/src/lib/select/s-select-service.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-simple/s-select-simple.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-simple/s-select-simple.component.html","../../../projects/sidesys-generic-ui/src/lib/animation/enums/animation.enum.ts","../../../projects/sidesys-generic-ui/src/lib/animation/animation.component.ts","../../../projects/sidesys-generic-ui/src/lib/animation/animation.component.html","../../../projects/sidesys-generic-ui/src/lib/animation/animation.module.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.component.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.component.html","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input-textarea/s-input-textarea.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-textarea/s-input-textarea.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/slider/s-slider.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/slider/s-slider.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/calendar/s-calendar.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/calendar/s-calendar.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/time/s-time.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/time/s-time.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/color/s-color.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/color/s-color.component.html","../../../projects/sidesys-generic-ui/src/lib/input/components/input-number/s-input-number.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-number/s-input-number.component.html","../../../projects/sidesys-generic-ui/src/lib/input/input.module.ts","../../../projects/sidesys-generic-ui/src/lib/input/enums/size.enum.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple/s-select-multiple.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple/s-select-multiple.component.html","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select.component.html","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple-old/s-select-multiple-old.component.ts","../../../projects/sidesys-generic-ui/src/lib/select/select-multiple-old/s-select-multiple-old.component.html","../../../projects/sidesys-generic-ui/src/lib/link/s-link.component.ts","../../../projects/sidesys-generic-ui/src/lib/link/s-link.component.html","../../../projects/sidesys-generic-ui/src/lib/link/s-link.module.ts","../../../projects/sidesys-generic-ui/src/lib/select/s-select.module.ts","../../../projects/sidesys-generic-ui/src/lib/select/s-select-model.ts","../../../projects/sidesys-generic-ui/src/lib/select/select/s-select-model.ts","../../../projects/sidesys-generic-ui/src/lib/spinner/s-spinner.module.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card.component.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card.component.html","../../../projects/sidesys-generic-ui/src/lib/card/s-card.module.ts","../../../projects/sidesys-generic-ui/src/lib/card/s-card-models.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/s-dynamic-form.module.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/field/field-option-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/group/group-field-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/group/group-templates-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/form-group-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/form/linked-field-dto.ts","../../../projects/sidesys-generic-ui/src/lib/dynamic-form/models/formFilled/form-filled-dto.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.component.html","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/enums/ActionsButtonsType.enum.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/constants/actions-buttons.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.component.html","../../../projects/sidesys-generic-ui/src/lib/table-t/table-actions-buttons/table-actions-buttons.module.ts","../../../projects/sidesys-generic-ui/src/lib/table-t/s-tablet.module.ts","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.component.ts","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.component.html","../../../projects/sidesys-generic-ui/src/lib/popup/s-popup.module.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.component.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.component.html","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/toggle-switch-form/toggle-switch-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/toggle-switch-form/toggle-switch-form.component.html","../../../projects/sidesys-generic-ui/src/lib/toggle-switch/s-toggle-switch.module.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/components/s-menu-item.component.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/components/s-menu-item.component.html","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.component.ts","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.component.html","../../../projects/sidesys-generic-ui/src/lib/sidebar/s-sidebar.module.ts","../../../projects/sidesys-generic-ui/src/lib/content/s-content.component.ts","../../../projects/sidesys-generic-ui/src/lib/content/s-content.component.html","../../../projects/sidesys-generic-ui/src/lib/content/s-content.module.ts","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.component.ts","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.component.html","../../../projects/sidesys-generic-ui/src/lib/precode/s-precode.module.ts","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.component.ts","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.component.html","../../../projects/sidesys-generic-ui/src/lib/breadcrum/s-breadcrum.module.ts","../../../projects/sidesys-generic-ui/src/lib/list/s-list.component.ts","../../../projects/sidesys-generic-ui/src/lib/list/s-list.component.html","../../../projects/sidesys-generic-ui/src/lib/list/s-list.module.ts","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.component.ts","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.component.html","../../../projects/sidesys-generic-ui/src/lib/list-simple/s-list-simple.module.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/temperature/temperature.component.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.component.ts","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.component.html","../../../projects/sidesys-generic-ui/src/lib/progressbar/s-progressbar.module.ts","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.component.ts","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.component.html","../../../projects/sidesys-generic-ui/src/lib/timeline/s-timeline.module.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast-service.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.component.ts","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.component.html","../../../projects/sidesys-generic-ui/src/lib/toast/s-toast.module.ts","../../../projects/sidesys-generic-ui/src/lib/theme/s-theme.component.ts","../../../projects/sidesys-generic-ui/src/lib/theme/s-theme.module.ts","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.component.ts","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.component.html","../../../projects/sidesys-generic-ui/src/lib/tree-list/s-tree-list.module.ts","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.component.ts","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.component.html","../../../projects/sidesys-generic-ui/src/lib/pagination/s-pagination.module.ts","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.component.ts","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.component.html","../../../projects/sidesys-generic-ui/src/lib/thumbnail/s-thumbnail.module.ts","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.component.ts","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.component.html","../../../projects/sidesys-generic-ui/src/lib/tabs/s-tabs.module.ts","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.component.ts","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.component.html","../../../projects/sidesys-generic-ui/src/lib/collapse/s-collapse.module.ts","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.component.ts","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.component.html","../../../projects/sidesys-generic-ui/src/lib/toolbar-top/toolbar-top.module.ts","../../../projects/sidesys-generic-ui/src/lib/empty/empty.component.ts","../../../projects/sidesys-generic-ui/src/lib/empty/empty.component.html","../../../projects/sidesys-generic-ui/src/lib/empty/empty.module.ts","../../../projects/sidesys-generic-ui/src/lib/pipe/translate/translate.pipe.ts","../../../projects/sidesys-generic-ui/src/lib/bottom-status-bar/bottom-status-bar.component.ts","../../../projects/sidesys-generic-ui/src/lib/bottom-status-bar/bottom-status-bar.component.html","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.component.html","../../../projects/sidesys-generic-ui/src/lib/table-complete/table-complete.module.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/services/modal-confirm.service.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/models/modalType.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/modal-confirm.component.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/modal-confirm.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component.ts","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.component.ts","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.component.html","../../../projects/sidesys-generic-ui/src/lib/grid-multi-inputs/grid-multi-inputs.module.ts","../../../projects/sidesys-generic-ui/src/lib/container/s-container.component.ts","../../../projects/sidesys-generic-ui/src/lib/container/s-container.component.html","../../../projects/sidesys-generic-ui/src/lib/container/s-container.module.ts","../../../projects/sidesys-generic-ui/src/lib/redirect/redirect.component.ts","../../../projects/sidesys-generic-ui/src/lib/redirect/redirect.component.html","../../../projects/sidesys-generic-ui/src/lib/table-double/table-double.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-double/table-double.component.html","../../../projects/sidesys-generic-ui/src/lib/table-double-complete/table-double-complete.component.ts","../../../projects/sidesys-generic-ui/src/lib/table-double-complete/table-double-complete.component.html","../../../projects/sidesys-generic-ui/src/sidesys-generic-ui.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\ninterface StyleInterface {\n width?: string;\n height?: string;\n}\n@Component({\n selector: 's-company-logo',\n templateUrl: './s-company-logo.component.html',\n styleUrls: ['./s-company-logo.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCompanyLogoComponent implements OnInit, OnChanges {\n @Input() id?: string = 's-company-logo';\n @Input() width?: number = 100;\n @Input() height?: number = 36;\n @Input() customImage?: string;\n _style: StyleInterface = {};\n\n ngOnInit(): void {\n this.applyStyle();\n }\n\n ngOnChanges(): void {\n this.applyStyle();\n }\n\n applyStyle(): void {\n this._style = {\n width: this.width + 'px',\n height: this.height + 'px',\n };\n }\n}\n","<div *ngIf=\"!customImage\" class=\"s-company-logo\" [ngStyle]=\"_style\" [id]=\"id\"></div>\n<img *ngIf=\"customImage\" alt=\"\" src=\"{{ customImage }}\" [ngStyle]=\"_style\" />\n","import { Component, ElementRef, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SIcon } from './s-icon-material.model';\n\n@Component({\n selector: 's-icon-mat',\n templateUrl: './s-icon-material.component.html',\n styleUrls: ['./s-icon-material.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SIconMaterialComponent implements OnInit {\n @ViewChild('icon', { static: true }) Icon!: ElementRef;\n\n @Input() name?: SIcon['name'];\n @Input() size?: SIcon['size'] = 'md';\n @Input() fill: SIcon['fill'] = false;\n @Input() weight: SIcon['weight'] = 400;\n @Input() grade: SIcon['grade'] = 0;\n @Input() style?: SIcon['style'] = '';\n @Input() type: SIcon['type'] = 'icon';\n @Input() id?: string = 's-icon';\n\n optionsType!: string;\n fillTemp!: number;\n\n computedStyles: { [key: string]: string } = {};\n\n ngOnInit(): void {\n switch (this.type) {\n case 'symbol':\n this.optionsType = 'material-symbols-outlined';\n this.fillTemp = this.fill ? 1 : 0;\n this.computedStyles['font-variation-settings'] =\n `\"FILL\" ${this.fillTemp}, \"wght\" ${this.weight}, \"GRAD\" ${this.grade}`;\n break;\n case 'icon':\n this.optionsType = 'material-icons';\n break;\n }\n }\n}\n","<div #icon class=\"s-icon-mat\" [id]=\"id\">\n <span class=\"{{ size }}\" [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{ name }}</ng-container>\n </span>\n</div>\n","import { Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\nimport { SMenuMain } from './s-menu-main-model';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 's-menu-main',\n templateUrl: './s-menu-main.component.html',\n styleUrls: ['./s-menu-main.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SMenuMainComponent {\n\n @Input() menuMain: SMenuMain[] = [];\n open: boolean[] = [];\n clickInside: boolean = false;\n\n constructor(\n private router: Router\n ) {\n this.open = new Array(this.menuMain.length).fill(false);\n }\n\n keydownEvent(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n this.open[index] = !this.open[index];\n event.preventDefault();\n }\n }\n\n navigateToLink(event: KeyboardEvent, link: string | null) {\n if (event.key === 'Enter' && link) {\n this.router.navigate([link]);\n }\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n @HostListener(\"document:click\")\n clickedOut() {\n this.open = new Array(this.menuMain.length).fill(false);\n this.clickInside = false;\n }\n\n}\n","<div id=\"menu-main512\">\n <ul class=\"menu-main-ul\">\n <ng-container *ngFor=\"let item of menuMain; let i = index\">\n <li [tabindex]=\"item.link ? -1 : 0\"\n (keydown)=\"keydownEvent($event, i)\" \n *ngIf=\"!item.hidden\" \n title=\"{{item.title}}\" \n class=\"menu-main-li\">\n <ng-container *ngIf=\"item.link != undefined;\">\n <a (keydown)=\"navigateToLink($event, item.link ? item.link : null)\" routerLink=\"{{item.link? item.link : null}}\" routerLinkActive=\"active\" class=\"menu-main-master\">\n <span class=\"menu-main-title\">{{item.title}}\n <s-icon-mat *ngIf=\"item.children\" class=\"s-mat-icon-chevron d-flex\">chevron_right</s-icon-mat>\n </span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.link == undefined;\">\n <a routerLinkActive=\"active\" class=\"menu-main-master\">\n <span class=\"menu-main-title cursor\">{{item.title}} \n <s-icon-mat *ngIf=\"item.children\" class=\"s-mat-icon-chevron d-flex\">chevron_right</s-icon-mat>\n </span>\n </a>\n </ng-container>\n \n <ul *ngIf=\"item.children && !item.hidden\" class=\"menu-main-dropdown {{open[i] ? 'menu-main-dropdown--open' : 'menu-main-dropdown--close'}}\">\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <li (keydown)=\"navigateToLink($event, itemChildren.link ? itemChildren.link : null)\" *ngIf=\"!itemChildren.hidden\">\n <a routerLink=\"{{itemChildren.link ? itemChildren.link : null}}\" routerLinkActive=\"active\">\n <span class=\"menu-main-title\">{{itemChildren.title}}</span>\n </a>\n </li>\n </ng-container>\n </ul>\n </li>\n \n </ng-container>\n </ul>\n</div>","import { Directive, ElementRef, Renderer2, OnInit } from '@angular/core';\n\n@Directive({\n selector: 'img[appImageLoader]'\n})\nexport class ImageLoaderDirective implements OnInit {\n private readonly loadingClass = 'skeleton-loading';\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit(): void {\n this.showLoadingSkeleton();\n\n const imgElement: HTMLImageElement = this.el.nativeElement;\n imgElement.addEventListener('load', () => {\n this.hideLoadingSkeleton();\n });\n }\n\n private showLoadingSkeleton(): void {\n this.renderer.addClass(this.el.nativeElement, this.loadingClass);\n }\n\n private hideLoadingSkeleton(): void {\n this.renderer.removeClass(this.el.nativeElement, this.loadingClass);\n }\n}\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-avatar',\n templateUrl: './s-avatar.component.html',\n styleUrls: ['./s-avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SAvatarComponent implements OnInit {\n @Input() id?: string = 's-avatar';\n @Input() urlProfileImage?: string;\n @Input() letters?: string = 'NN';\n @Input()\n get status(): string {\n return this._status;\n }\n set status(val: any | undefined) {\n this._status =\n ['approved', 'declined', 'blocked', 'online', 'offline', 'busy'].indexOf(val) != -1 ? val : undefined;\n }\n @Input()\n get display(): string {\n return this._display;\n }\n set display(val: string | undefined) {\n this._display = val ? (['icon', 'avatar', 'letters'].indexOf(val) != -1 ? val : 'icon') : 'icon';\n }\n\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' = 'xxxl';\n\n _display: string = 'icon';\n _status: any = undefined;\n\n ngOnInit(): void {\n if (this.letters) this.letters = this.letters.substring(0, 2);\n }\n}\n","<div class=\"s-avatar no-select s-avatar--size-{{ size }}\" [id]=\"id\">\n <ng-container [ngSwitch]=\"status\">\n <!-- Type of status approved , declined , blocked , online , offline , busy -->\n <ng-container *ngSwitchCase=\"'approved'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">check_circle</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'declined'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">cancel</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'blocked'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">lock</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'online'\">\n <div class=\"s-avatar__dot-state state-{{ status }}\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'offline'\">\n <div class=\"s-avatar__dot-state state-{{ status }}\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'busy'\">\n <div class=\"s-avatar__dot-state\">\n <s-icon-mat class=\"state-{{ status }}\">remove</s-icon-mat>\n </div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"display\">\n <ng-container *ngSwitchCase=\"'icon'\">\n <div class=\"s-avatar__dot-content content-person\">\n <s-icon-mat>person</s-icon-mat>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'avatar'\">\n <ng-container *ngIf=\"urlProfileImage\">\n <img appImageLoader class=\"s-avatar__dot-content urlProfile\" src=\"{{ urlProfileImage }}\" alt=\"\" />\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'letters'\">\n <div class=\"s-avatar__dot-content content-letters\">\n <s-icon-mat>{{ letters }}</s-icon-mat>\n </div>\n </ng-container>\n </ng-container>\n</div>\n","import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-checkbox-old',\n templateUrl: './s-checkbox.component.html',\n styleUrls: ['./s-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCheckboxOldComponent),\n multi: true,\n },\n ],\n})\nexport class SCheckboxOldComponent implements ControlValueAccessor {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() value: any;\n @Input() model: any;\n @Input() disabled: boolean = false;\n @Input() isUndefined: boolean = false;\n @Input() label: string = '';\n @Input() boldSelectActive: boolean = true;\n @Input() tabIndex: number = 0;\n @Output() emitSelection = new EventEmitter<any>();\n\n doCheck(event: any) {\n this.onTouch();\n this.onChange(event);\n this.isUndefined = false;\n this.emitSelection.emit({ value: this.value, event: event });\n }\n\n writeValue(value: any): void {\n this.model = value;\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<div class=\"s-checkbox\">\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n undefined: isUndefined,\n }\"\n [value]=\"value\"\n [(ngModel)]=\"model\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"{{ tabIndex ? tabIndex : 0 }}\" />\n <label\n *ngIf=\"label\"\n [ngClass]=\"!isUndefined && !model && disabled ? 'disabled' : ''\"\n class=\"s-checkbox__label s-body-2\"\n >{{ label }}</label\n >\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface SRadio {\n boldSelectActive?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n name?: string;\n useFormControl?: boolean;\n value?: string;\n readOnly?: boolean;\n}\n@Component({\n selector: 's-radio',\n templateUrl: './s-radio.component.html',\n styleUrls: ['./s-radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SRadioComponent),\n multi: true,\n },\n ],\n})\nexport class SRadioComponent implements ControlValueAccessor, OnInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() config!: SRadio;\n\n //Uso sin conifg\n @Input() value!: string;\n @Input() model: string = ''; //active\n @Input() id!: string;\n @Input() name: string = '';\n @Input() disabled: boolean = false;\n @Input() label: string = '';\n @Input() boldSelectActive: boolean = true;\n @Input() readOnly: boolean = false;\n @Output() emitSelection = new EventEmitter<string>();\n\n ngOnInit(): void {\n this.id = this.config?.id || this.id || `s-radio`;\n }\n\n doCheck(event: any) {\n this.onChange(event);\n this.emitSelection.emit(event);\n }\n\n writeValue(value: any): void {\n this.model = value;\n this.onChange(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n}\n","<ng-container *ngIf=\"!config; else useConfig\">\n <label class=\"s-radio\" [ngClass]=\"!disabled ? 's-radio--radio-disabled' : ''\">\n <input\n type=\"radio\"\n class=\"s-radio__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n }\"\n [disabled]=\"disabled || readOnly\"\n [id]=\"id\"\n [value]=\"value\"\n [name]=\"name\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\" />\n <label\n [id]=\"id + '-label'\"\n *ngIf=\"label\"\n [ngClass]=\"value !== model && disabled ? 'disabled' : ''\"\n class=\"s-radio__label s-body-2\"\n >{{ label }}</label\n >\n </label>\n</ng-container>\n<ng-template #useConfig>\n <label class=\"s-radio\" [ngClass]=\"!config.disabled ? 's-radio--radio-disabled' : ''\">\n <input\n type=\"radio\"\n class=\"s-radio__input\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive,\n }\"\n [disabled]=\"config.disabled || (config.readOnly ?? false)\"\n [id]=\"id\"\n [value]=\"config.value\"\n [name]=\"config.name ?? ''\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\" />\n <label\n [id]=\"id + '-label'\"\n *ngIf=\"config.label\"\n [ngClass]=\"value != model && config.disabled ? 'disabled' : ''\"\n class=\"s-radio__label s-body-2\"\n >{{ config.label }}</label\n >\n </label>\n</ng-template>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { SUser } from '../../../sub-menu/s-sub-menu-model';\n\n@Component({\n selector: 's-profile-group',\n templateUrl: './s-profile-group.component.html',\n styleUrls: ['./s-profile-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SProfileGroupComponent implements OnInit {\n @Input() size: string = 'm'; //s , m , l , xl\n @Input() user!: SUser | undefined;\n _size: 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl' = 'lg';\n\n ngOnInit(): void {\n //TAMANOS DE AVATAR REFERIDO AL TALLE '128', '96', '48' , '32' , '24' , '16'\n\n switch (this.size) {\n case 's':\n this._size = 'md';\n break;\n case 'm':\n this._size = 'lg';\n break;\n case 'l':\n this._size = 'xl';\n break;\n case 'xl':\n this._size = 'xxl';\n break;\n default:\n this._size = 'lg';\n break;\n }\n }\n}\n","<div class=\"s-profile-group\">\n <div class=\"s-profile-group__content-right\">\n <s-avatar\n letters=\"{{ user?.letters }}\"\n display=\"{{ user?.display }}\"\n [size]=\"_size\"\n [urlProfileImage]=\"user?.url\"\n [status]=\"user?.status\"></s-avatar>\n </div>\n <div class=\"s-profile-group__content-left\">\n <p class=\"s-profile-group__content-left__name s-profile-group__content-left__name--{{ size }}\">{{ user?.name }}</p>\n <span class=\"s-profile-group__content-left__email s-profile-group__content-left__email--{{ size }}\">{{\n user?.email\n }}</span>\n </div>\n</div>\n","import { Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SSubMenu, SSubMenuItem } from './s-sub-menu-model';\n\n@Component({\n selector: 's-sub-menu',\n templateUrl: './s-sub-menu.component.html',\n styleUrls: ['./s-sub-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class SSubMenuComponent {\n\n \n @Input() menu!: SSubMenu;\n @Output() changeMenuEvent = new EventEmitter<any>();\n @Output() closeMenuEvent = new EventEmitter<any>();\n private menuOpened: boolean = false;\n private clickInside: boolean = false;\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n @HostListener(\"document:click\")\n clickedOut() {\n if(this.menuOpened && !this.clickInside) this.closeMenuEvent.emit('close');\n this.clickInside = false;\n }\n\n changeItem(item: SSubMenuItem) {\n item.inputType === 'checkbox' ? (item.value = !item.value) : this.menu.items.forEach(menuItem => menuItem.value = (menuItem === item));\n this.changeMenuEvent.emit(this.menu.items);\n }\n\n selectItem(item: SSubMenuItem) {\n this.changeMenuEvent.emit(item);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.menuOpened = true;\n }, 250);\n }\n}"," <ul class=\"s-sub-menu\">\n\n <ng-container *ngFor=\"let item of menu.items ; index as i\">\n <li *ngIf=\"!item.hidden\" title=\"{{item.title}}\">\n\n <!-- Header -->\n <ng-container *ngIf=\"menu.header && i == 0\">\n <div *ngIf=\"menu.header.type == 'title'\" class=\"s-sub-menu__header-title\">\n {{menu.header.title}}\n </div>\n <div *ngIf=\"menu.header.type == 'user'\" class=\"s-sub-menu__header-user\">\n <s-profile-group size=\"m\" [user]=\"menu.header.user\"></s-profile-group>\n </div>\n <div class=\"s-sub-menu__separate\"></div>\n </ng-container>\n\n <!-- Con Link -->\n <ng-container *ngIf=\"item.link\">\n <a routerLink=\"{{item.link? item.link : null}}\" routerLinkActive=\"active\" class=\"s-sub-menu__option\">\n <div class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n <div *ngIf=\"item.help\" class=\"s-sub-menu__option__right\">\n <label class=\"sub-menu66-item-help\">{{item.help}}</label>\n </div>\n </a>\n </ng-container>\n\n <!-- Con inputType Checkbox o Radio -->\n <ng-container *ngIf=\"(item.inputType && item.action) || item.inputType\">\n \n <div class=\"s-sub-menu__option cursor\">\n <div class=\"s-sub-menu__option__left\">\n <s-radio *ngIf=\"item.inputType == 'radio'\" model=\"'sub-menu-group'\" (emitSelection)=\"changeItem(item)\" (click)=\"item.action ? item.action() : null\"></s-radio>\n <s-checkbox-old *ngIf=\"item.inputType == 'checkbox'\" [model]=\"item.value\" (emitSelection)=\"changeItem(item)\" (click)=\"item.action ? item.action() : null\"></s-checkbox-old>\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title cursor-normal\">{{item.title}}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- Action -->\n <ng-container *ngIf=\"item.action && !item.inputType\">\n <button class=\"s-sub-menu--button\">\n <div class=\"s-sub-menu__option cursor\" (click)=\"item.action()\">\n <div *ngIf=\"item.action\" class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n </div>\n </button>\n </ng-container>\n\n <!-- Solo Label -->\n <ng-container *ngIf=\"!item.action && !item.inputType && !item.link && !item.separate\">\n <button class=\"s-sub-menu--button\" (click)=\"selectItem(item)\">\n <div class=\"s-sub-menu__option cursor\">\n <div class=\"s-sub-menu__option__left\">\n <s-icon-mat size=\"sm\" *ngIf=\"item.icon && item.iconName\" class=\"s-sub-menu__option__left__icon\">{{item.iconName}}</s-icon-mat>\n <span class=\"s-sub-menu__option__left__title\">{{item.title}}</span>\n </div>\n </div>\n </button>\n </ng-container>\n\n <!-- Espaciado -->\n <ng-container *ngIf=\"item.separate\"> \n <div class=\"s-sub-menu__separate\"></div>\n </ng-container>\n\n </li>\n\n </ng-container>\n </ul>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-button',\n templateUrl: './s-button.component.html',\n styleUrls: ['./s-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SButtonComponent implements OnInit {\n @Input() disabled: boolean = false;\n @Input() id!: string;\n @Input() pill: boolean = false;\n @Input() size: 'xl' | 'lg' | 'md' | 'sm' = 'md';\n @Input() invert: boolean = false;\n @Input() type: 'primary' | 'secondary' | 'tertiary' | string = 'primary';\n @Input() loading: boolean = false;\n @Input() position?: 'normal' | 'reverse';\n @Input() theme?: 'default' | 'green' | 'yellow' | 'red';\n @Input() active?: boolean = false;\n roundedPrivate: string = 'md';\n\n ngOnInit(): void {\n //Pasa a secondary cuando se invierte\n if (this.invert) {\n this.type = 'secondary';\n }\n if (!this.id) this.id = `s-button-${this.type}`;\n\n // Por decision de ICEI\n // Cuando el size es SM el round debe ser sm , para el resto el round debe ser md\n this.roundedPrivate = this.size === 'sm' ? 'sm' : 'md';\n }\n}\n","<button\n class=\"s-button \ns-button--{{ size }}\ns-button--{{ type }}\n\n{{ theme ? 's-button--' + theme + '--' + type : '' }}\n{{ roundedPrivate ? 's-button--round-' + roundedPrivate : '' }} \n{{ position ? 's-button--position-' + position : '' }} \n{{ loading ? 's-button--loading' : '' }}\n{{ pill ? 's-button--pill' : '' }}\n{{ pill ? 's-button--pill--' + size : '' }}\n{{ invert ? invert : '' }}\n{{ active ? 's-button--' + type + '--active' : '' }}\n{{ active ? 's-button--' + theme + '--' + type + '--active' : '' }}\n\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [tabindex]=\"0\">\n <ng-content></ng-content>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 's-tooltip',\n templateUrl: './s-tooltip.component.html',\n styleUrls: ['./s-tooltip.component.scss'],\n})\nexport class STooltipComponent {\n @ViewChild('stooltip') tooltip!: ElementRef;\n\n @Input() title!: string;\n @Input() description?: string;\n @Input() theme?: 'light' | 'dark' = 'light';\n @Input() position?: 'left' | 'right' | 'bottom' | 'top' = 'top';\n @Input() id?: string = 's-tooltip';\n stylePosition: any = '';\n showTooltip: boolean = false;\n\n toogle() {\n this.showTooltip = !this.showTooltip;\n }\n\n show(x?: any, y?: any, heightParent?: any, widthParent?: any) {\n this.showTooltip = true;\n setTimeout(() => {\n this.factoryStyle(this.position, x, y, heightParent, widthParent);\n });\n }\n\n hide() {\n this.showTooltip = false;\n }\n\n factoryStyle(position: any, x: any, y: any, heightParent: any, widthParent: any) {\n switch (position) {\n case 'top':\n y = y - 5;\n if (this.tooltip.nativeElement.offsetWidth < widthParent) {\n widthParent = this.tooltip.nativeElement.offsetWidth - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', widthParent / 2 + 'px');\n this.stylePosition = { translate: +x + 'px ' + y + 'px', transform: 'translateY(-100%)', position: 'fixed' };\n break;\n case 'bottom':\n y = y + 5;\n if (this.tooltip.nativeElement.offsetWidth < widthParent) {\n widthParent = this.tooltip.nativeElement.offsetWidth - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', widthParent / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateY(' + heightParent + 'px)',\n position: 'fixed',\n };\n break;\n case 'left':\n x = x - 10;\n if (this.tooltip.nativeElement.offsetHeight < heightParent) {\n heightParent = this.tooltip.nativeElement.offsetHeight - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', (heightParent - 5) / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateX(-100%)',\n position: 'fixed',\n 'margin-right': '0.625rem',\n };\n break;\n case 'right':\n x = x + 10;\n if (this.tooltip.nativeElement.offsetHeight < heightParent) {\n heightParent = this.tooltip.nativeElement.offsetHeight - 4;\n }\n document.documentElement.style.setProperty('--stilePositionArrow', (heightParent - 5) / 2 + 'px');\n this.stylePosition = {\n translate: +x + 'px ' + y + 'px',\n transform: 'translateX(' + widthParent + 'px)',\n position: 'fixed',\n };\n break;\n default:\n break;\n }\n }\n}\n","<div\n #stooltip\n [ngStyle]=\"stylePosition\"\n [id]=\"id\"\n class=\"s-tooltip s-tooltip--theme-{{ theme }} s-tooltip--position-{{ position }} s-tooltip--display-{{\n showTooltip\n }}\">\n <div class=\"s-tooltip__title\">{{ title }}</div>\n <div class=\"s-tooltip__description\" *ngIf=\"description\">{{ description }}</div>\n</div>\n","import { Directive, Input, OnInit, HostListener } from '@angular/core';\nimport { STooltipComponent } from '../s-tooltip.component';\n\n@Directive({\n selector: '[tooltip]'\n})\nexport class CustomTooltipDirective implements OnInit {\n\n @Input('tooltip') tooltipContent: STooltipComponent | undefined ;\n\n constructor() { }\n\n ngOnInit(): void {}\n\n @HostListener('mouseenter' , ['$event'])\n private _show(event:any): void {\n const rect = event.target.getBoundingClientRect();\n this.tooltipContent?.show(rect.left, rect.top , event.target.offsetHeight , event.target.offsetWidth)\n }\n\n @HostListener('mouseleave', ['$event'])\n private _hide(event:Event): void {\n this.tooltipContent?.hide()\n }\n\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-badge',\n templateUrl: './s-badge.component.html',\n styleUrls: ['./s-badge.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SBadgeComponent {\n @Input() id?: string = 's-badge';\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' | string = 'primary';\n @Input() size: 'xs' | 'sm' = 'sm';\n @Input() new: boolean = false;\n}\n","<span class=\"s-badge s-badge--{{ type }} {{ size ? 's-badge--size-' + size : '' }}\" [id]=\"id\">\n <s-icon-mat *ngIf=\"new\">lens</s-icon-mat>\n <ng-content></ng-content>\n</span>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-tag',\n templateUrl: './s-tag.component.html',\n styleUrls: ['./s-tag.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STagComponent {\n @Input() type: 'primary' | 'secondary' | 'red' | 'yellow' | 'green' = 'primary';\n @Input() size: 'xs' | 'sm' | 'md' = 'sm';\n @Input() disabled: boolean = false;\n @Input() id?: string = 's-tag';\n}\n","<span class=\"s-tag {{ type }} {{ size }} {{ disabled ? 'disabled' : '' }}\" [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SIconMenuModel } from '../s-icon-menu-model';\n\n@Component({\n selector: 's-notification',\n templateUrl:'./s-notification.component.html',\n styleUrls: ['./s-notification.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SNotificationComponent {\n \n @Input() item: SIconMenuModel = {};\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n\n _clickUnread(id:any){\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id:any){\n this.clickDelete.emit(id);\n }\n\n _clickTitle(id:any){\n this.clickTitle.emit(id);\n }\n\n}\n","<div class=\"s-notification\">\n <div class=\"s-notification__item\">\n <div class=\"s-notification__item--left\">\n <div class=\"s-notification__item--left__content-icon\">\n <s-icon-mat>{{item.icon}}</s-icon-mat>\n </div>\n <div class=\"s-notification__item--left__content-text\">\n <div class=\"fix-align\">\n <p (click)=\"_clickTitle(item)\" class=\"title cursor\">{{item.title}}</p>\n <span *ngIf=\"item.description\" class=\"description\">{{item.description}}</span>\n <span *ngIf=\"!item.description\" class=\"description\"></span>\n </div>\n <div>\n <s-tag size=\"sm\">\n <s-icon-mat>{{item.icon}}</s-icon-mat>\n {{item.subtitle}}\n </s-tag>\n </div>\n </div>\n </div>\n <div class=\"s-notification__item--right\">\n <div class=\"s-notification__ite--right__content-icon\">\n <div *ngIf=\"item.seen\" class=\"icon-unread read\" [tooltip]=\"readNotification\">\n <s-icon-mat>mark_email_read</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #readNotification [title]=\"'Leído'\" ></s-tooltip>\n <div *ngIf=\"!item.seen\" class=\"icon-unread cursor\" (click)=\"_clickUnread(item.id)\" [tooltip]=\"unreadNotification\">\n <s-icon-mat>mark_email_unread</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #unreadNotification [title]=\"'Marcar como leído'\" ></s-tooltip>\n <div class=\"icon-close cursor\" (click)=\"_clickDelete(item.id)\" [tooltip]=\"deleteNotification\">\n <s-icon-mat>close</s-icon-mat>\n </div>\n <s-tooltip position=\"left\" #deleteNotification [title]=\"'Eliminar notificación'\" ></s-tooltip>\n </div>\n </div>\n </div>\n</div>","import { Component, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SIconMenuModel } from './s-icon-menu-model';\n\n@Component({\n selector: 's-icon-menu',\n templateUrl: './s-icon-menu.component.html',\n styleUrls: ['./s-icon-menu.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SIconMenuComponent {\n \n iconMenuVisible:boolean = false;\n \n @Input() iconMenu: SIconMenuModel[] = [];\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n private clickInside: boolean = false;\n\n _clickTitle(id:any){\n this.clickTitle.emit(id); \n this.closeSubMenu()\n }\n\n _clickUnread(id:any){\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id:any){\n this.clickDelete.emit(id); \n }\n\n clickSubMenu(item:any){\n item.hideme = !item.hideme;\n }\n\n showSubMenu(item:any){\n item.hideme = true;\n }\n\n closeSubMenu(){\n this.iconMenu.forEach(function(obj:any) {\n obj.hideme = false;\n });\n }\n\n isExternalLink(url: string): boolean {\n return /^https?:\\/\\//.test(url);\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n }\n\n @HostListener(\"document:click\")\n clickedOut() {\n if(!this.clickInside)\n this.closeSubMenu(); \n this.clickInside = false;\n }\n\n}\n","<div class=\"s-icon-menu\">\n <ul class=\"s-icon-menu__main-ul\">\n <ng-container *ngFor=\"let item of iconMenu\">\n <li class=\"s-icon-menu__main-ul__li\" [tooltip]=\"titleItem\">\n <s-tooltip position=\"bottom\" #titleItem [title]=\"item.title ?? ''\" ></s-tooltip>\n <ng-container *ngIf=\"item.notification\">\n <a tabindex=\"0\" (keydown.enter)=\"clickSubMenu(item)\" (click)=\"clickSubMenu(item)\" class=\"item-link cursor\">\n <div class=\"item-link__content-badge\" *ngIf=\"item.unread\">\n <div class=\"item-link__content-badge__badge-notification\">\n <s-badge size=\"xs\" type=\"red\" *ngIf=\"item.unread > 99\">+99</s-badge>\n <s-badge size=\"xs\" type=\"red\" *ngIf=\"item.unread < 99\">{{item.unread}}</s-badge>\n </div>\n </div>\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!item.notification && item.link\">\n <a *ngIf=\"isExternalLink(item.link); else internalLink\"\n [href]=\"item.link\" [target]=\"item.target\" (click)=\"closeSubMenu()\" class=\"item-link\">\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n <ng-template #internalLink>\n <a routerLink=\"{{item.link}}\" (click)=\"closeSubMenu()\" routerLinkActive=\"active\" class=\"item-link\">\n <s-icon-mat class=\"item-link__icon cursor\">{{item.icon}}</s-icon-mat>\n </a>\n </ng-template>\n </ng-container>\n\n <div class=\"s-icon-menu__main-ul__li__dropdown\">\n <div *ngIf=\"item.hideme\" class=\"s-icon-menu__main-ul__li__dropdown__content\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header\">\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header__left\">Notificaciones</div>\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__header__right\">\n <s-icon-mat>mark_email_read</s-icon-mat>\n </div>\n </div>\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <s-notification (clickTitle)=\"_clickTitle($event)\" (clickDelete)=\"_clickDelete($event)\" (clickUnread)=\"_clickUnread($event)\" [item]=\"itemChildren\"></s-notification>\n </ng-container>\n <div class=\"s-icon-menu__main-ul__li__dropdown__content__notification__footer\">\n <s-button (click)=\"closeSubMenu()\" routerLink=\"{{item.link? item.link : null}}\" size=\"sm\">Ver todas las notificaciones</s-button>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { SMenuMain } from './components/menu-main';\nimport { SSubMenu, SUser } from '../sub-menu/s-sub-menu-model';\nimport { SIconMenuModel } from './components/icon-menu';\n\n@Component({\n selector: 's-navbar',\n templateUrl: './s-navbar.component.html',\n styleUrls: ['./s-navbar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SNavbarComponent implements OnInit {\n @Input() user: SUser = {};\n @Input() userFull: boolean = false;\n @Input() menuProfile!: SSubMenu;\n @Input() menu: SMenuMain[] = [];\n @Input() showProfile: boolean = true;\n @Input() company: string = '';\n @Input() theme?: string;\n @Input() customImage?: string;\n @Input() link?: boolean = false;\n @Input() linkHref?: string;\n @Input() height?: number = 36;\n @Input() width?: number = 100;\n @Input() iconMenu: SIconMenuModel[] = [];\n @Input() id!: string;\n\n @Output() clickEvent = new EventEmitter<string>();\n @Output() clickEventMenu = new EventEmitter<Event>();\n\n @Output() clickUnread = new EventEmitter<Event>();\n @Output() clickDelete = new EventEmitter<Event>();\n @Output() clickTitle = new EventEmitter<Event>();\n\n controlMenuProfile: boolean = false;\n\n ngOnInit(): void {\n if (!this.id) this.id = `s-navbar`;\n }\n\n toogleMenuProfile(event: Event) {\n this.controlMenuProfile = !this.controlMenuProfile;\n this.clickEventMenu.next(event);\n }\n\n closeMenuProfile(event: Event) {\n this.controlMenuProfile = false;\n this.clickEventMenu.next(event);\n }\n\n clickMenuProfile(event: any) {\n if (event.target.type !== 'checkbox' && event.target.type !== 'radio') {\n this.controlMenuProfile = !this.controlMenuProfile;\n }\n this.clickEvent.next(event);\n }\n\n _clickUnread(id: any) {\n this.clickUnread.emit(id);\n }\n\n _clickDelete(id: any) {\n this.clickDelete.emit(id);\n }\n\n _clickTitle(id: any) {\n this.clickTitle.emit(id);\n }\n}\n","<nav class=\"s-navbar\" [ngClass]=\"theme ? 'theme-' + theme : ''\" [id]=\"id\">\n <div class=\"s-navbar__content-left\">\n <ng-container *ngIf=\"link\">\n <a [href]=\"linkHref\">\n <s-company-logo\n [height]=\"height\"\n [width]=\"width\"\n [id]=\"id + '-company-logo'\"\n [customImage]=\"customImage\"\n class=\"s-navbar__company-box\"></s-company-logo>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!link\">\n <s-company-logo\n [height]=\"height\"\n [width]=\"width\"\n [id]=\"id + '-company-logo'\"\n [customImage]=\"customImage\"\n class=\"s-navbar__company-box\"></s-company-logo>\n </ng-container>\n </div>\n <div class=\"s-navbar__content-right\">\n <s-menu-main [menuMain]=\"menu\"></s-menu-main>\n <div class=\"s-navbar__right-menu-content\">\n <div class=\"s-navbar__icon-menu-list\">\n <s-icon-menu\n (clickTitle)=\"_clickTitle($event)\"\n (clickDelete)=\"_clickDelete($event)\"\n (clickUnread)=\"_clickUnread($event)\"\n [iconMenu]=\"iconMenu\"></s-icon-menu>\n </div>\n <div class=\"s-navbar__content-user\" [ngClass]=\"theme ? 'theme-' + theme : ''\">\n <s-profile-group\n tabindex=\"0\"\n class=\"cursor\"\n *ngIf=\"user && userFull\"\n [user]=\"user\"\n (keydown.enter)=\"toogleMenuProfile($event)\"\n (click)=\"toogleMenuProfile($event)\"></s-profile-group>\n <s-avatar\n class=\"cursor\"\n *ngIf=\"user && !userFull\"\n urlProfileImage=\"{{ user.url }}\"\n letters=\"{{ user.letters }}\"\n display=\"{{ user.display }}\"\n size=\"lg\"\n status=\"{{ user.status }}\"\n (click)=\"toogleMenuProfile($event)\"></s-avatar>\n </div>\n <div class=\"s-navbar__content-submenu-profile\" *ngIf=\"controlMenuProfile\">\n <s-sub-menu\n [menu]=\"menuProfile\"\n (click)=\"clickMenuProfile($event)\"\n (closeMenuEvent)=\"closeMenuProfile($event)\"></s-sub-menu>\n </div>\n </div>\n </div>\n</nav>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialComponent } from './s-icon-material.component';\n\n@NgModule({\n declarations: [\n SIconMaterialComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SIconMaterialComponent]\n})\nexport class SIconMaterialModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCompanyLogoComponent } from './s-company-logo.component';\n\n\n\n@NgModule({\n declarations: [\n SCompanyLogoComponent\n ],\n imports: [\n CommonModule\n ],\n exports:[SCompanyLogoComponent]\n})\nexport class SCompanyLogoModule { }\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SMenuMainComponent } from './s-menu-main.component';\nimport { SIconMaterialModule } from '../../../icon-material/s-icon-material.module';\nimport { SCompanyLogoModule } from '../../../company-logo/s-company-logo.module';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [SMenuMainComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SIconMaterialModule,\n RouterModule,\n ],\n exports: [SMenuMainComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SMenuMainModule {}\n","export class SMenuMain {\n title?: string ; //Titulo\n link?: string; //URL del link\n target?: string; //Por si es un link externo\n children?: SMenuMain[]; //Hijos\n hidden?:boolean;\n}","export class SIcon {\n type?: 'symbol' | 'icon'; //Tipo de icono.\n name?: string; //Nombre del icono.\n size?: 'xs' | 'sm' | 'md' | 'lg'; //Tamanio del icono.\n fill?: boolean; //Si el icono es de relleno.\n weight?: number; //Grosor del icono.\n grade?: number; //Grosor del icono.\n style?: string; //Estilo del icono.\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImageLoaderDirective } from './image-loader.directive';\n\n@NgModule({\n declarations: [ImageLoaderDirective],\n imports: [CommonModule],\n exports: [ImageLoaderDirective],\n})\nexport class SharedModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SAvatarComponent } from './s-avatar.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SharedModule } from '../shared/shared.module';\n\n\n@NgModule({\n declarations: [\n SAvatarComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SharedModule\n ],\n exports: [SAvatarComponent]\n})\nexport class SAvatarModule { }\n","import {\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { distinctUntilChanged, startWith, Subject, takeUntil, tap } from 'rxjs';\nimport { SSwitch } from '../../toggle-switch';\nimport { Directive, Inject, Injector, Input, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[appControlBooleanAccessor]',\n})\nexport class ControlBooleanAccessorDirective<T>\n implements ControlValueAccessor, OnInit\n{\n control: FormControl | undefined;\n isRequired = false;\n value!: boolean;\n\n private _isDisabled = false;\n private _destroy$ = new Subject<void>();\n public onChange: (value: boolean) => void = (value: boolean) => {};\n public onTouched!: () => T;\n\n @Input() config!: SSwitch;\n useFormControl!: boolean;\n\n constructor(@Inject(Injector) private injector: Injector) {}\n\n ngOnInit() {\n this.useFormControl = this.config?.useFormControl ?? true;\n if (this.useFormControl) {\n this.setFormControl();\n this.isRequired =\n this.control?.hasValidator(Validators.required) ?? false;\n }\n }\n\n setFormControl() {\n try {\n const formControl = this.injector.get(NgControl);\n\n switch (formControl.constructor) {\n case FormControlName:\n this.control = this.injector\n .get(FormGroupDirective)\n .getControl(formControl as FormControlName);\n break;\n default:\n this.control = (formControl as FormControlDirective)\n .form as FormControl;\n break;\n }\n } catch (err) {\n this.control = new FormControl();\n }\n }\n\n writeValue(value: T): void {\n if (this.useFormControl) {\n if (this.control && this.control.value !== value) {\n this.control.setValue(value);\n return;\n }\n if (!this.control) {\n this.control = new FormControl(value);\n }\n }\n (this as any).value = value as boolean;\n }\n\n registerOnChange(fn: (val: T | null) => T): void {\n if (this.useFormControl) {\n this.control?.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.control.value),\n distinctUntilChanged(),\n tap(val => fn(val))\n )\n .subscribe(() => this.control?.markAsUntouched());\n }\n }\n\n registerOnTouched(fn: () => T): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n const currentState = this.control?.disabled ?? false;\n const shouldDisable =\n (isDisabled || this.config?.disabled || this.config?.readOnly) ?? false;\n\n if (currentState !== shouldDisable) {\n this._isDisabled = shouldDisable;\n shouldDisable\n ? this.control?.disable({ emitEvent: false })\n : this.control?.enable({ emitEvent: false });\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlBooleanAccessorDirective } from '../../input/directives/control-boolean-accessor.directive';\n\nexport class SCheckbox {\n disabled?: boolean;\n isUndefined?: boolean;\n id?: string;\n label?: string;\n boldSelectActive?: boolean = true;\n required?: boolean;\n useFormControl?: boolean;\n tabIndex?: number = 0;\n readOnly?: boolean;\n}\n@Component({\n selector: 's-checkbox',\n templateUrl: './s-checkbox.component.html',\n styleUrls: ['./s-checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class SCheckboxComponent<T> extends ControlBooleanAccessorDirective<T> implements OnInit {\n @Input() config!: SCheckbox;\n @Input() id?: string = 's-checkbox';\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngOnInit(): void {\n if (!this.config?.disabled) this.config = { ...this.config, disabled: false };\n }\n\n onInput(event: Event): void {\n if (this.config.isUndefined) this.config.isUndefined = false;\n const input = event.target as HTMLInputElement;\n this.value = input.checked;\n this.onChange(this.value);\n if (!this.config.useFormControl) return;\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config?.useFormControl) {\n this.onChange = fn;\n }\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n}\n","<div class=\"s-checkbox\" [id]=\"id\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': config && config.boldSelectActive,\n undefined: config && config.isUndefined && this.control.value === '',\n }\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [tabindex]=\"config && config.tabIndex ? config.tabIndex : 0\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n type=\"checkbox\"\n class=\"s-checkbox__input\"\n [ngClass]=\"{\n 'bold-select-active': config && config.boldSelectActive,\n undefined: config && config.isUndefined && !this.value,\n }\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [tabindex]=\"config && config.tabIndex ? config.tabIndex : 0\" />\n </ng-template>\n <div *ngIf=\"config?.label\">\n <label\n class=\"s-checkbox__label s-body-2\"\n *ngIf=\"control\"\n [ngClass]=\"{\n 'bold-select-active':\n ((config.boldSelectActive ?? true) && control.value) ||\n ((config.boldSelectActive ?? true) && value && control.disabled && config.disabled),\n disabled: (control.disabled || config.disabled) && !config.readOnly,\n }\"\n [for]=\"config.id\">\n {{ config.label }}\n <span class=\"s-checkbox__required\" *ngIf=\"config.required\">*</span>\n </label>\n\n <label\n class=\"s-checkbox__label s-body-2\"\n *ngIf=\"!control\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && value && !config.disabled,\n disabled: config.disabled && !config.readOnly,\n }\"\n [for]=\"config.id\">\n {{ config.label }}\n <span class=\"s-checkbox__required\" *ngIf=\"config.required\">*</span>\n </label>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCheckboxOldComponent } from './s-checkbox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SCheckboxComponent } from './checkbox-new/s-checkbox.component';\n\n@NgModule({\n declarations: [SCheckboxOldComponent, SCheckboxComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n exports: [SCheckboxOldComponent, SCheckboxComponent],\n})\nexport class SCheckboxModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SRadioComponent } from './s-radio.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [\n SRadioComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [SRadioComponent]\n})\nexport class SRadioModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SProfileGroupComponent } from './s-profile-group.component';\nimport { SAvatarModule } from '../../s-avatar.module';\n\n\n@NgModule({\n declarations: [\n SProfileGroupComponent\n ],\n imports: [\n CommonModule,\n SAvatarModule\n ],\n exports: [SProfileGroupComponent]\n})\nexport class SProfileGroupModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSubMenuComponent } from './s-sub-menu.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { RouterModule } from '@angular/router';\nimport { SCheckboxModule } from '../checkbox';\nimport { SRadioModule } from '../radio/s-radio.module';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\n\n\n@NgModule({\n declarations: [\n SSubMenuComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule,\n SCheckboxModule,\n SRadioModule,\n SProfileGroupModule\n ],\n exports: [SSubMenuComponent]\n})\nexport class SSubMenuModule { }\n","export class SSubMenu {\n public header?: SSubMenuHeader;\n public items!: SSubMenuItem[]\n}\n\nexport class SSubMenuItem {\n id?: any ; //Id en caso que sea necesario\n title?: string ; //Titulo\n help?: string; //Texto de ayuda que se muestra a la derecha de las opciones\n icon?: boolean; //Si tiene icono o no\n iconName?: string; // El nombre del icono\n link?: string; //URL del link\n hidden?:boolean; //Oculta la opcion\n inputType?: string //radio , checkbox\n value?:boolean;//Valor del inputType\n separate?: boolean = false//Define si va un espacio para separar.\n action?: any;//Llamada a funcion desde el sub menu. ej: this.function \n}\n\nexport class SSubMenuHeader {\n type!: string; // Title o User\n title?: string;\n user?: SUser = {};\n}\n\nexport class SUser {\n name?: string;\n email?: string;\n url?: string;\n status?: string;\n display?: string;\n letters?: string;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SButtonComponent } from './components/button/s-button.component';\n\n@NgModule({\n declarations: [\n SButtonComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SButtonComponent\n ]\n})\nexport class SButtonModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STagComponent } from './s-tag.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\n\n\n@NgModule({\n declarations: [\n STagComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [STagComponent]\n})\nexport class STagModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STooltipComponent } from './s-tooltip.component';\nimport { CustomTooltipDirective } from './directive/s-tooltip-directive';\n\n@NgModule({\n declarations: [\n STooltipComponent,\n CustomTooltipDirective\n ],\n imports: [\n CommonModule,\n ],\n exports: [STooltipComponent, CustomTooltipDirective]\n})\nexport class STooltipModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SBadgeComponent } from './s-badge.component';\n\n@NgModule({\n declarations: [\n SBadgeComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [SBadgeComponent]\n})\nexport class SBadgeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMenuComponent } from './s-icon-menu.component';\nimport { SIconMaterialModule } from '../../../icon-material';\nimport { RouterModule } from '@angular/router';\nimport { SNotificationComponent } from './components/s-notificaction.component';\nimport { SButtonModule } from '../../../button';\nimport { STagModule } from '../../../tag';\nimport { STooltipModule } from '../../../tooltip';\nimport { SBadgeModule } from '../../../badge';\n\n\n@NgModule({\n declarations: [\n SIconMenuComponent,\n SNotificationComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule,\n SButtonModule,\n STagModule,\n STooltipModule,\n SBadgeModule\n ],\n exports: [\n SIconMenuComponent,\n SNotificationComponent\n ]\n})\nexport class SIconMenuModule { }\n","export class SIconMenuModel {\n icon?: string; //mat icon name\n title?: string ; //Titulo\n link?: string; //URL del link\n target?: string; //Por si es un link externo\n children?: SIconMenuModel[]; //Hijos\n //Se agrega lo que vi que notification devuelve en carteleria\n date?:string;\n description?:string;\n entityId?:string;\n entityType?:string;\n id?:number;\n notificationType?:number\n parameters?:string;\n seen?:boolean;\n subtitle?:string;\n userId?:string;\n hideme?:boolean;\n unread?:number;\n notification?: boolean;\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SNavbarComponent } from './s-navbar.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\nimport { SMenuMainModule } from './components/menu-main';\nimport { SAvatarModule } from '../avatar';\nimport { SSubMenuModule } from '../sub-menu';\nimport { SIconMenuModule } from './components/icon-menu';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\n\n@NgModule({\n declarations: [SNavbarComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SIconMaterialModule,\n SMenuMainModule,\n SAvatarModule,\n SSubMenuModule,\n SIconMenuModule,\n SProfileGroupModule,\n ],\n exports: [SNavbarComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SNavbarModule {}\n","// navbar\nexport * from './s-navbar.component';\nexport * from './s-navbar.module';\n\n// componentes hijos\nexport * from './components/menu-main/index';\nexport * from './components/icon-menu/index';\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n templateUrl: './s-footer.component.html',\n styleUrls: ['./s-footer.component.scss'],\n})\nexport class SFooterComponent {\n theme = input<string | undefined>();\n leftText = input<string>(`© ${new Date().getFullYear()}`);\n rightText = input<string>('All rights reserved.');\n}\n","<footer class=\"s-footer\" [ngClass]=\"theme() ? 'theme-' + theme() : ''\" [id]=\"'s-footer'\">\n <span class=\"s-footer__text\">{{ leftText() }}</span>\n <s-company-logo [height]=\"23\" [width]=\"70\"></s-company-logo>\n <span class=\"s-footer__text ml-2\">{{ rightText() }}</span>\n</footer>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SFooterComponent } from './s-footer.component';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\n\n@NgModule({\n declarations: [\n SFooterComponent\n ],\n imports: [\n CommonModule,\n SCompanyLogoModule\n ],\n exports: [\n SFooterComponent\n ]\n})\nexport class SFooterModule { }\n","export class FormTypeDto {\n id: number = 0;\n code: string = \"\";\n label: string = \"\";\n tenantId: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormTypeDto {\n let result = new FormTypeDto();\n result.init(data);\n return result;\n }\n}","import { GroupFieldDto } from \"../group/group-field-dto\";\nimport { FormGroupDto } from \"./form-group-dto\";\nimport { FormTypeDto } from \"./form-type-dto\";\nimport { LinkedFieldDto } from \"./linked-field-dto\";\n\nexport class FormLayoutDto {\n id: number = 0;\n name: string = \"\";\n description: string = \"\";\n isDeleted: boolean = false;\n linkedField: LinkedFieldDto[] = [];\n formGroups: FormGroupDto[] = [];\n lastModificationTime: string = \"\";\n formTypeDto: FormTypeDto = new FormTypeDto();\n listGroupFields: GroupFieldDto[] = [];\n formTypeId: number = 0;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormLayoutDto {\n let result = new FormLayoutDto();\n result.init(data);\n return result;\n }\n}","export class BehaviorDto {\n id: number = 0;\n name: string = \"\";\n label: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): BehaviorDto {\n let result = new BehaviorDto();\n result.init(data);\n return result;\n }\n}","export class DataTypeDto {\n id: number = 0;\n type: string = \"\";\n label: string = \"\";\n requireOptions: boolean = false;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): DataTypeDto {\n let result = new DataTypeDto();\n result.init(data);\n return result;\n }\n}","import { BehaviorDto } from \"../behavior/behavior-dto\";\nimport { DataTypeDto } from \"../data-type/data-type-dto\";\nimport { FieldOptionDto } from \"./field-option-dto\";\n\nexport class FieldTemplateDto {\n id: number = 0;\n code: string = \"\";\n description: string = \"\";\n label: string = \"\";\n dataType: DataTypeDto = new DataTypeDto;\n helpText: string = \"\";\n hintText: string = \"\";\n defaultValue: string = \"\";\n defaultBehavior: BehaviorDto = new BehaviorDto;\n internal: boolean = false;\n template: boolean = false;\n validation: string = \"\";\n lastModificationTime: string = \"01-01-2023 00:00\"\n fieldOptions: FieldOptionDto[] = [];\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FieldTemplateDto {\n let result = new FieldTemplateDto();\n result.init(data);\n return result;\n }\n}","export enum THEME {\n DEFAULT = 'default',\n GREEN = 'green',\n YELLOW = 'yellow',\n RED = 'red',\n SECONDARY = 'secondary',\n}\n","import { ValidatorFn } from '@angular/forms';\nimport { INPUT_SIZE } from '../../enums/size.enum';\nimport { THEME } from '../../../enums/theme.enum';\n\nexport class SInput {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n maxlength?: number;\n min?: number = 0;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME = THEME.DEFAULT;\n type?: INPUT_TYPE;\n useFormControl?: boolean;\n}\n\nexport const INPUTS_REGEX = {\n URL: /^(https?:\\/\\/)?([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}(\\/[a-zA-Z0-9#]+\\/?)*$/,\n EMAIL: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n ALPHANUMERIC: /[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\\- ]/g,\n SEARCH: /^[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9._\\- ]*$/,\n};\n\nexport enum INPUT_TYPE {\n TEXT = 'text',\n PASSWORD = 'password',\n EMAIL = 'email',\n NUMBER = 'number',\n SEARCH = 'search',\n TEL = 'tel',\n URL = 'url',\n DATE = 'date',\n}\n\nexport enum ICON_INPUT {\n 'email' = 'email',\n 'password' = 'vpn_key',\n 'tel' = 'phone',\n 'search' = 'search',\n 'url' = 'language',\n}\n\nexport interface SInputError {\n type: ValidatorFn;\n typeName: 'required' | 'maxlength' | 'minlength';\n errorText: string;\n}\n","import { SInput } from '../../../input/components/input/s-input-model';\n\nexport class SInputConfig {\n id: number = 0;\n sInputConfig: SInput = new SInput();\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): SInputConfig {\n let result = new SInputConfig();\n result.init(data);\n return result;\n }\n}","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-error-control',\n templateUrl: './s-error-control.component.html',\n styleUrls: ['./s-error-control.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SErrorControl implements OnInit {\n @Input() theme: 'default' | 'red' | 'green' | 'yellow' = 'default'; //default , red , green , yellow\n @Input() icon: boolean = false;\n @Input() iconCustom: string = '';\n @Input() size: 'sm' | 'md' = 'md';\n @Input() id?: string = 's-error-control';\n\n iconName: string = '';\n\n constructor() {}\n\n ngOnInit(): void {\n if (this.iconCustom == '') {\n switch (this.theme) {\n case 'default':\n this.iconName = 'stars';\n break;\n case 'red':\n this.iconName = 'error';\n break;\n case 'green':\n this.iconName = 'check_circle';\n break;\n case 'yellow':\n this.iconName = 'info';\n break;\n\n default:\n this.iconName = 'stars';\n break;\n }\n } else {\n this.iconName = this.iconCustom;\n }\n }\n}\n","<label class=\"label-content label-content-{{ theme }} {{ size }}\" [id]=\"id\">\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{ theme }}\">{{ iconName }}</s-icon-mat>\n <ng-content></ng-content>\n</label>\n","export enum ICON_THEME {\n default = \"\",\n red = \"error_outline\",\n green = \"check_circle_outline\",\n yellow = \"warning\",\n secondary = \"\"\n}","import { Directive, Inject, Injector, Input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n Validators,\n NgControl,\n FormControlName,\n FormGroupDirective,\n FormControlDirective,\n} from '@angular/forms'; \nimport { Subject, takeUntil, startWith, distinctUntilChanged, tap } from 'rxjs';\nimport { STextArea } from '../components/input-textarea/s-input-textarea.component';\nimport { SCalendar } from '../components/calendar/s-calendar.component';\nimport { SInput } from '../components/input/s-input-model';\nimport { SInputNumber } from '../components/input-number/s-input-number.component';\nimport { STime } from '../components/time/s-time.component';\nimport { SCheckbox } from '../../checkbox';\nimport { SSwitch } from '../../toggle-switch';\nimport { SRadio } from '../../radio';\nimport { SMultiSelect } from '../../select/select-multiple/s-select-multiple-model';\nimport { SSelect } from '../../select/select/s-select-model';\n\n@Directive({\n selector: '[appControlValueAccessor]',\n})\nexport class ControlValueAccessorDirective<T> implements ControlValueAccessor {\n control: FormControl | undefined;\n isRequired = false;\n value!: string | string[];\n\n private _isDisabled = false;\n private _destroy$ = new Subject<void>();\n public onChange: (value: string[] | string) => void = () => {};\n public onTouched!: () => T;\n\n @Input() config!:\n | SCalendar\n | SCheckbox\n | SInput\n | SInputNumber\n | STextArea\n | SRadio\n | STime\n | SSelect\n | SMultiSelect\n | SSwitch;\n useFormControl!: boolean;\n\n constructor(\n @Inject(Injector) private injector: Injector\n \n ) {}\n\n ngOnInit() {\n this.useFormControl = this.config?.useFormControl ?? true;\n if (this.useFormControl) {\n this.setFormControl();\n this.isRequired = this.control?.hasValidator(Validators.required) ?? false;\n }\n }\n\n setFormControl() {\n try {\n const formControl = this.injector.get(NgControl);\n\n switch (formControl.constructor) {\n case FormControlName:\n this.control = this.injector\n .get(FormGroupDirective)\n .getControl(formControl as FormControlName);\n break;\n default:\n this.control = (formControl as FormControlDirective)\n .form as FormControl;\n break;\n }\n } catch (err) {\n this.control = new FormControl();\n }\n }\n\n writeValue(value: T): void {\n if (this.useFormControl) {\n if (this.control && this.control.value !== value) {\n this.control.setValue(value);\n return;\n }\n if (!this.control) {\n this.control = new FormControl(value);\n }\n }\n this.value = value as string;\n }\n\n registerOnChange(fn: (val: T | null) => T): void {\n if (this.useFormControl) {\n this.control?.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n startWith(this.control.value),\n distinctUntilChanged(),\n tap((val) => fn(val))\n )\n .subscribe(() => this.control?.markAsUntouched());\n }\n }\n\n registerOnTouched(fn: () => T): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\n }\n}","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SSubMenu, SSubMenuItem } from '../../sub-menu';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class STranslateService {\n private localizations$ = new BehaviorSubject<\n Record<string, Record<string, string>>\n >({});\n private productName: string = '';\n\n constructor() {\n const storedLocalizations = localStorage.getItem('s-translate');\n\n if (storedLocalizations) {\n this.localizations$.next(\n JSON.parse(storedLocalizations) as Record<\n string,\n Record<string, string>\n >\n );\n }\n }\n\n instant(key: string, ...interpolateParams: string[]): string {\n return this.getLocalization(key, ...interpolateParams);\n }\n\n private getLocalization(key: string, ...interpolateParams: string[]): string {\n let text = '';\n\n const keys = key.split('::') as string[];\n\n const sourceName = keys.length > 1 ? keys[0] : this.productName;\n const sourceKey = keys.length > 1 ? keys[1] : keys[0];\n\n const source = this.localizations$.getValue()[sourceName];\n\n text = source ? (source[sourceKey] ?? sourceKey) : sourceKey;\n\n if (!interpolateParams) {\n return text;\n }\n\n let i = interpolateParams.length;\n\n while (i--) {\n const param = interpolateParams[i];\n text = text.replace(\n new RegExp('\\\\{' + i + '\\\\}', 'gm'),\n source[param] ?? param\n );\n }\n\n return text;\n }\n\n addLocalization(\n newLocalizations: Record<string, Record<string, string>>,\n productName: string\n ) {\n this.productName = productName;\n const currentLocalizations = this.localizations$.getValue();\n\n const mergedLocalizations = {\n ...currentLocalizations,\n ...Object.keys(newLocalizations).reduce(\n (acc, category) => {\n acc[category] = {\n ...currentLocalizations[category],\n ...newLocalizations[category],\n };\n return acc;\n },\n {} as Record<string, Record<string, string>>\n ),\n };\n\n this.localizations$.next(mergedLocalizations);\n localStorage.setItem('s-translate', JSON.stringify(mergedLocalizations));\n }\n\n localizeSubMenu(subMenu: SSubMenu): SSubMenu {\n subMenu.items.forEach((item: SSubMenuItem) => {\n item.title = this.instant(item.title ?? '');\n });\n\n return subMenu;\n }\n\n processError(pError: HttpErrorResponse, entity: string, subEntity: string[]) {\n if (pError.status == 422 || pError.status == 500) {\n return pError.error.error.message;\n } else {\n return this.instant(entity, ...subEntity);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalstorageService {\n\n @Output() refreshLocalStorage = new EventEmitter<any>();\n\nconstructor() {}\n\n //GUARDA UN ITEM\n saveItem( key: string , data: any) {\n if (typeof data === 'string'){\n localStorage.setItem(key, data);\n } else {\n localStorage.setItem(key, JSON.stringify(data));\n }\n this.refreshLocalStorage.emit()\n }\n\n //OBTIENE UN ITEM JSON\n getItem( key: string ) {\n const data = localStorage.getItem(key);\n if (data && data !== 'undefined') {\n return JSON.parse(data);\n } else {\n return null;\n }\n }\n\n //OBTIENE UN STRING ITEM\n getStringItem( key: string ): any {\n const data = localStorage.getItem(key);\n if (data && data !== 'undefined') {\n if (typeof data === 'string') {\n return data;\n }\n } else {\n return null;\n }\n }\n\n //ELIMINA UN ITEM\n deleteItem(key: string){\n localStorage.removeItem(key);\n }\n\n //ELIMINA UN ARRAY [] DE ITEMS\n deleteItems(keys: any[]){\n keys.forEach((key:any) => {\n localStorage.removeItem(key);\n });\n }\n\n //RESET LOCAL STORAGE\n clearAll() {\n localStorage.clear();\n }\n}\n\n\n\n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LocalstorageService } from '../../shared/localstorage.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarStateService {\n private readonly LOCAL_KEY = 's-sidebar:expand';\n private readonly _expand$ = new BehaviorSubject<boolean>(true);\n\n /** Observable para escuchar los cambios de estado */\n expand$ = this._expand$.asObservable();\n\n constructor(private readonly localStorage: LocalstorageService) {\n const saved = this.localStorage.getItem(this.LOCAL_KEY);\n\n // Si no existe, inicializa en true\n if (saved === null || saved === undefined) {\n this.setExpand(true);\n } else {\n this._expand$.next(saved);\n }\n }\n\n /** Devuelve el valor actual del expand */\n getExpand(): boolean {\n return this._expand$.value;\n }\n\n /** Cambia el valor del expand y lo guarda en localStorage */\n setExpand(value: boolean): void {\n this._expand$.next(value);\n this.localStorage.saveItem(this.LOCAL_KEY, value);\n }\n\n /** Invierte el valor actual */\n toggleExpand(): void {\n const newValue = !this._expand$.value;\n this.setExpand(newValue);\n }\n}\n","import { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\nconst errorMessagesDefault = {\n required: 'Campo requerido',\n minlength: 'No cumple con el mínimo de carácteres',\n maxlength: 'Máximo de carácteres alcanzado',\n pattern: 'El formato no es válido',\n email: 'El correo electrónico no es válido',\n min: 'El valor es menor que el mínimo permitido',\n max: 'El valor es mayor que el máximo permitido',\n requiredTrue: 'Este campo debe ser verdadero',\n nullValidator: 'Este campo no debe estar vacío',\n};\n@Component({\n selector: 's-validation-error',\n templateUrl: './s-validation-error.component.html',\n styleUrls: ['./s-validation-error.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SValidationError implements OnChanges {\n @Input() errors: Record<string, ValidationErrors> | null = {};\n @Input() customErrorMessages?: Record<string, string> = {};\n @Input() id?: string = 's-validation-error';\n errorMessages: Record<string, string> = errorMessagesDefault;\n\n ngOnChanges(): void {\n if (this.customErrorMessages) {\n this.errorMessages = {\n ...this.customErrorMessages,\n };\n }\n }\n}\n","<div class=\"s-validation-errors\" [id]=\"id\">\n <s-error-control *ngFor=\"let error of errors | keyvalue\" theme=\"red\">\n {{ errorMessages[error.key] }}\n </s-error-control>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { ICON_INPUT, INPUT_TYPE, INPUTS_REGEX, SInput } from './s-input-model';\nimport { STranslateService } from '../../../services';\n\n@Component({\n selector: 's-input',\n templateUrl: './s-input.component.html',\n styleUrls: ['./s-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputComponent),\n multi: true,\n },\n ],\n})\nexport class SInputComponent<T> extends ControlValueAccessorDirective<T> {\n @Input() config: SInput = new SInput();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n private _sTranslateService = inject(STranslateService);\n\n iconSymbol = false;\n iconType?: string;\n showPassword = false;\n errorPattern?: string;\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n ICON_THEME = ICON_THEME;\n isFocused = false;\n\n onInput(event: Event): void {\n // this.id = this.config.id ?? 's-input';\n // this.type = this.config.type || INPUT_TYPE.TEXT;\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n this.patternError();\n }\n\n get id(): string {\n return this.config.id ?? 's-input';\n }\n\n get type(): INPUT_TYPE {\n if (this.config.type === INPUT_TYPE.PASSWORD && this.showPassword) {\n return INPUT_TYPE.TEXT;\n }\n return this.config.type || INPUT_TYPE.TEXT;\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n showIconType(): boolean {\n this.iconType = this.config.type ? this.getIconByType(this.config.type) : undefined;\n return !!this.iconType;\n }\n\n getIconByType(type: string): string | undefined {\n return type in ICON_INPUT ? ICON_INPUT[type as keyof typeof ICON_INPUT] : undefined;\n }\n\n patternError() {\n const value = this.control?.value || this.value;\n if (\n (this.config.type === INPUT_TYPE.SEARCH && !INPUTS_REGEX.SEARCH.test(value)) ||\n (this.config.type === INPUT_TYPE.URL && !INPUTS_REGEX.URL.test(value)) ||\n (this.config.type === INPUT_TYPE.EMAIL && !INPUTS_REGEX.EMAIL.test(value))\n ) {\n this.errorPattern = this._sTranslateService.instant('validation.invalidData');\n return;\n }\n this.errorPattern = undefined;\n }\n\n changeShowPassword() {\n this.showPassword = !this.showPassword;\n }\n\n clickHelp() {\n this.clickHelpIconEvent.emit();\n }\n\n onBlur(event: any): void {\n this.patternError();\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.emit(event);\n }\n}\n","<div class=\"s-input\">\n <label [for]=\"id\" *ngIf=\"config?.label\" class=\"s-input__label\">\n {{ config.label }}\n <span class=\"s-input__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-input__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (control.touched || (isFocused && control.dirty))) ||\n errorPattern ||\n config.theme === THEME.RED ||\n config.errorText,\n }\">\n <div *ngIf=\"showIconType()\" class=\"content-left\">\n <s-icon-mat class=\"icon\">{{ iconType }}</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [id]=\"id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [maxlength]=\"config.maxlength ?? null\"\n [formControl]=\"control\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"id\"\n [placeholder]=\"config.placeholder ?? ''\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.type === 'password'\" class=\"content-right\">\n <s-icon-mat [type]=\"iconSymbol ? 'symbol' : 'icon'\" class=\"icon cursor\" (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config.showHelp && (config.theme === THEME.DEFAULT || config.theme !== undefined)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <div class=\"s-input__message\" *ngIf=\"!config.hideErrorText\">\n <s-validation-error\n *ngIf=\"\n control &&\n control.invalid &&\n (control.touched || (isFocused && control.dirty)) &&\n !(\n (config.type === INPUT_TYPE.URL && config.errorText) ||\n (config.type === INPUT_TYPE.EMAIL && config.errorText)\n )\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"config.errorText\" theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"errorPattern && !config.errorText\" theme=\"red\">\n {{ config.errorMessages?.pattern ?? errorPattern }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !errorPattern &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { SSelectSimpleModel } from './s-select-model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SelectNavigationService {\n constructor() {}\n\n onKeyDownMain(event: KeyboardEvent, isOpen: boolean): boolean {\n switch (event.key) {\n case 'Enter':\n case ' ':\n isOpen = !isOpen;\n event.preventDefault();\n break;\n case 'Escape':\n if (isOpen) isOpen = false;\n break;\n }\n return isOpen;\n }\n\n onKeyDownItems(\n event: KeyboardEvent,\n item: SSelectSimpleModel,\n isOpen: boolean,\n getSelectedValue: (item: SSelectSimpleModel) => void,\n simple: boolean // Asigna si el select es simple o multiple para cambiar la logica de focus\n ): boolean {\n switch (event.key) {\n case 'Escape':\n if (isOpen) isOpen = false;\n event.preventDefault();\n break;\n case ' ':\n case 'Enter':\n event.preventDefault();\n getSelectedValue(item);\n simple ? isOpen = false : null;\n break;\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem(event.target as HTMLElement , simple);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem(event.target as HTMLElement , simple);\n break;\n }\n return isOpen;\n }\n\n focusNextItem(currentItem: HTMLElement , simple: boolean): void {\n const selector = simple ? '.s-select-simple__options__main' : '.s-select-multiple__options__main';\n const items = Array.from(document.querySelectorAll(selector));\n const currentIndex = items.indexOf(currentItem);\n if (currentIndex !== -1 && currentIndex < items.length - 1) {\n (items[currentIndex + 1] as HTMLElement).focus();\n }\n }\n\n focusPreviousItem(currentItem: HTMLElement , simple: boolean): void {\n const selector = simple ? '.s-select-simple__options__main' : '.s-select-multiple__options__main';\n const items = Array.from(document.querySelectorAll(selector));\n const currentIndex = items.indexOf(currentItem);\n if (currentIndex !== -1 && currentIndex > 0) {\n (items[currentIndex - 1] as HTMLElement).focus();\n }\n }\n}\n","import { Component, Input, Output, EventEmitter, ViewEncapsulation, OnInit, forwardRef, HostListener, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { SSelectSimpleModel } from \"../s-select-model\"\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectNavigationService } from \"../s-select-service\";\n\n@Component({\n selector: 's-select-old',\n templateUrl: './s-select-simple.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectSimpleComponent),\n multi: true\n }\n ]\n})\nexport class SSelectSimpleComponent implements OnInit, OnChanges, ControlValueAccessor {\n\n onChange = (_: any) => { };\n onTouch = () => { };\n\n @Input() disabled: boolean = false;\n @Input() placeholder: string = '';\n @Input() options!: SSelectSimpleModel[];\n @Input() selectedValue?: any;\n @Input() label: string = '';\n @Input() readOnly: boolean = false;\n @Input() display: 'dot' | 'iconperson' | 'profile' | undefined = undefined;\n @Input() size: 'sm' | 'md' = 'md';\n\n isOpen: boolean = false;\n activeIndex: any = -1; // Default to -1 to indicate no selection\n value: any = undefined;\n clickInside: boolean = false;\n\n @Output() selectEvent = new EventEmitter<SSelectSimpleModel>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n constructor(private selectNavService: SelectNavigationService) {}\n\n ngOnInit(): void {\n this.selectIndex();\n\n if (this.readOnly) {\n this.disabled = true;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n 'selectedValue' in changes ? this.selectIndex() : null;\n 'options' in changes ? this.selectOptions() : null;\n }\n\n async selectIndex() {\n if (this.selectedValue) {\n for (let index = 0; index < this.options.length; index++) {\n if (this.options[index].value === this.selectedValue) {\n this.activeIndex = index;\n this.value = this.options[index];\n break;\n }\n }\n } else {\n this.activeIndex = -1;\n this.value = null;\n }\n \n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n }\n\n selectOptions(): void {\n if (this.selectedValue) {\n for (let index = 0; index < this.options.length; index++) {\n if (this.options[index].value === this.selectedValue) {\n this.activeIndex = index;\n this.value = this.options[index];\n break;\n }\n }\n } else {\n this.activeIndex = -1;\n this.value = null;\n }\n \n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n }\n\n openDropDown() {\n this.onFocus();\n if (!this.disabled) {\n this.selectIndex();\n }\n }\n\n getSelectedValue(e: SSelectSimpleModel) {\n this.activeIndex = this.options?.indexOf(e);\n this.selectedValue = e.value;\n this.value = e;\n this.onTouch();\n this.onChange(this.value);\n this.selectEvent.emit(this.value);\n this.onBlur();\n }\n\n async writeValue(value: any): Promise<void> {\n this.selectedValue = value;\n await this.selectIndex();\n this.onChange(this.value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n @HostListener(\"click\")\n clicked() {\n this.clickInside = true;\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n @HostListener(\"document:click\")\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blur.next();\n }\n\n onFocus(): void {\n this.focus.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n \n onKeyDownItems(event: KeyboardEvent, item: SSelectSimpleModel): void {\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.getSelectedValue.bind(this) , true);\n }\n \n}","<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled' : ''\">\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\n <div\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{ size ? size : '' }}\"\n (click)=\"openDropDown()\"\n tabindex=\"0\"\n (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option select-simple\">\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex >= 0\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\n >person_outline</s-icon-mat\n >\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar\n size=\"md\"\n [status]=\"options[activeIndex].user?.status\"\n [display]=\"options[activeIndex].user?.display\"\n [urlProfileImage]=\"options[activeIndex].user?.url\"></s-avatar>\n </div>\n <span>{{ options[activeIndex].title }}</span>\n </div>\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"activeIndex < 0\">\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!selectedValue\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <s-icon-mat class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"md\"></s-avatar>\n </div>\n <span class=\"placeholder\">{{ placeholder }}</span>\n </div>\n </div>\n <div class=\"s-select__main__selected-option__right\">\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\n isOpen ? 'expand_less' : 'expand_more'\n }}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\n <div\n class=\"s-select__item {{ size ? size : '' }}\"\n *ngFor=\"let item of options; index as i\"\n [class.active]=\"i === activeIndex\"\n (click)=\"getSelectedValue(item)\"\n (keydown)=\"onKeyDownItems($event, item)\"\n tabindex=\"0\">\n <div class=\"content-left select-simple\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar\n size=\"md\"\n [display]=\"item.user?.display\"\n [status]=\"item.user?.status\"\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\n </div>\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\n >person_outline</s-icon-mat\n >\n <span class=\"option-value\">\n {{ item.title }}\n </span>\n </div>\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\n </div>\n </div>\n </div>\n</div>\n","export enum ANIMATION {\n DigitalSignage = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Cartelera_Digital_Loader.json',\n Chatbot = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Chatbot_Loader.json',\n Appointment = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Citas_Loader.json',\n DotBreathe = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/dot_breathe.json',\n Survey = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Encuestas_Loader.json',\n DynamicForms = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Formularios_Dinamicos_Loader.json',\n Eflow = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Gestion_Filas_Loader.json',\n AttentionRecording = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Grabaciones_Loader.json',\n DirectMarketing = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Marketing_Directo_Loader.json',\n Monitoring = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Monitoreo_Loader.json',\n WebGenerator = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Paginas_Web_Loader.json',\n VideoAttention = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/Videoatenciones_Loader.json',\n Suite = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/e-Flow_Suite_Loader.json',\n Spinner = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/loading_spinner.json',\n}\n\nexport type AnimationConfig = {\n loop: boolean;\n autoplay: boolean;\n hover: boolean;\n segments?: [number, number];\n};\n\nconst ANIMATION_CONFIG_GENERIC = {\n loop: true,\n autoplay: true,\n hover: false,\n};\n\nconst customConfigs: Partial<\n Record<\n ANIMATION,\n Partial<typeof ANIMATION_CONFIG_GENERIC> & { segments?: [number, number] }\n >\n> = {\n [ANIMATION.Suite]: {\n loop: false,\n autoplay: true,\n hover: false,\n segments: [42, 98],\n },\n};\n\n// Generador del config completo\nexport const ANIMATION_CONFIG: Record<ANIMATION, AnimationConfig> =\n Object.values(ANIMATION).reduce(\n (acc, key) => {\n const animationKey = key as ANIMATION;\n if (!animationKey) return acc;\n\n acc[animationKey] = {\n ...ANIMATION_CONFIG_GENERIC,\n ...(customConfigs[animationKey] || {}),\n };\n return acc;\n },\n {} as Record<\n ANIMATION,\n typeof ANIMATION_CONFIG_GENERIC & { segments?: [number, number] }\n >\n );\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport Lottie, { AnimationItem } from 'lottie-web';\nimport { ANIMATION, ANIMATION_CONFIG, AnimationConfig } from './enums/animation.enum';\n\n@Component({\n selector: 's-animation',\n templateUrl: './animation.component.html',\n styleUrls: ['./animation.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AnimationComponent implements AfterViewInit {\n @Input() animation!: ANIMATION;\n @Input() id: string = 's-animation';\n @Output() playOnHoverEvent = new EventEmitter<void>();\n @Output() pauseOnLeaveEvent = new EventEmitter<void>();\n\n animationConfig!: AnimationConfig;\n animationItem!: AnimationItem;\n\n ngAfterViewInit() {\n const container = document.getElementById('lottie') as HTMLElement;\n\n this.animationConfig = ANIMATION_CONFIG[this.animation];\n\n const animationLottie = Lottie.loadAnimation({\n container: container,\n renderer: 'svg',\n loop: this.animationConfig.loop,\n autoplay: this.animationConfig.autoplay,\n path: this.animation,\n });\n\n if (this.animationConfig.segments) {\n animationLottie.addEventListener('complete', () => {\n const [start, end] = this.animationConfig.segments!;\n animationLottie.goToAndStop(start, true);\n animationLottie.play();\n animationLottie.playSegments([start, end], true);\n });\n }\n this.animationItem = animationLottie;\n\n animationLottie.play();\n }\n\n // Reproducir la animación al pasar el mouse\n playOnHover(): void {\n const hover = this.animationConfig.hover;\n if (hover) {\n this.animationItem.play();\n this.playOnHoverEvent.emit();\n }\n }\n\n // Pausar la animación al salir el mouse\n pauseOnLeave(): void {\n const hover = this.animationConfig.hover;\n if (hover) {\n this.animationItem.pause();\n this.pauseOnLeaveEvent.emit();\n }\n }\n}\n","<div class=\"s-animation\" [id]=\"id\" (mouseenter)=\"playOnHover()\" (mouseleave)=\"pauseOnLeave()\"></div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AnimationComponent } from './animation.component';\nimport { provideLottieOptions } from 'ngx-lottie';\n\n@NgModule({\n declarations: [AnimationComponent],\n imports: [CommonModule],\n providers: [\n provideLottieOptions({\n player: () => import('lottie-web'),\n }),\n ],\n exports: [AnimationComponent],\n})\nexport class SAnimationModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ANIMATION } from '../animation';\n\n@Component({\n selector: 's-spinner',\n templateUrl: './s-spinner.component.html',\n styleUrls: ['./s-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSpinnerComponent {\n @Input() size: 'xsm' | 'sm' | 'md' | 'lg' = 'lg';\n @Input() animation: ANIMATION = ANIMATION.Spinner;\n}\n","<div class=\"s-spinner\">\n <div class=\"s-spinner__content size-{{ size }}\">\n <s-animation [animation]=\"animation\"></s-animation>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormLayoutDto } from './models/form/form-layout-dto';\nimport { SSelectSimpleModel } from '../select';\nimport { Validators, FormBuilder, FormGroup, ValidatorFn } from '@angular/forms';\nimport { Output } from '@angular/core';\nimport { FieldTemplateDto } from './models/field/field-template-dto';\nimport { SInputConfig } from './models/configFields/s-input-config';\nimport { GroupFieldDto } from './models/group/group-field-dto';\nimport { FormGroupDto } from './models/form/form-group-dto';\nimport { FormFilledDto } from './models/formFilled/form-filled-dto';\nimport { THEME } from '../enums';\nimport { INPUT_TYPE, SInput } from '../input/components/input/s-input-model';\n\n@Component({\n selector: 's-dynamic-form',\n templateUrl: './s-dynamic-form.component.html',\n styleUrls: ['./s-dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SDynamicFormComponent implements OnChanges {\n @Input() setFormData: boolean = false; //SetFormData cambiar por int / función.\n @Input() layout: FormLayoutDto = new FormLayoutDto();\n @Input() readOnly: Boolean = false;\n @Input() formFilled!: FormFilledDto;\n // InputData en formato Json (formLayout) (LLAMARLO \"LAYOUT\").\n // InputData FormFilled (LLAMARLO \"DATA\").\n\n @Output() getFormDataEvent: EventEmitter<Event> = new EventEmitter<Event>(); //Devuelve el objeto / datos del formulario cargados. ----- //\"GETFORMDATA\" aunque el dato no este cargado correctamente.\n @Output() formCompletedEvent: EventEmitter<boolean> = new EventEmitter<boolean>();//Se emite cuando el formulario se carga en su totalidad (sin pasar por un botón submit / setFormLayout) Y \"Correcto\".\n @Output() blurEvent: EventEmitter<void> = new EventEmitter<void>();//Se emite cuando se pierde el foco.\n @Output() onchageStatusEvent: EventEmitter<boolean> = new EventEmitter<boolean>(); // Nuevo evento para el cambio de estado\n //En el blur a la perdida de foco validar el formulario.... Y tener una variable Status para ver si el formulario es correcto (validado).... Si cambia el status..... Crear salida @output OnchageStatus true (correcto y completo).\n\n formLayout: FormLayoutDto = new FormLayoutDto();\n\n groupTemplatesSelectItems: any[] = [];\n\n optionsMap: { [key: number]: SSelectSimpleModel[] } = {};\n optionsSelect: SSelectSimpleModel[] = [];\n formGroup: FormGroup;\n\n status: boolean = true; // Variable de estado del formulario\n\n loading: boolean = false;\n\n formInFocus: boolean = false;\n\n fieldObject: FieldTemplateDto[] = [];\n // sInput\n\n inputConfig!: SInput;\n itemsConfigList: SInputConfig[] = [];\n itemConfig = new SInputConfig();\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n\n //selects (para control defaults)\n isSelectedMap: { [key: string]: boolean } = {};\n\n behaviorTypes = {\n Hide: \"Hide\",\n Disable: \"Disable\",\n Enable: \"Enable\",\n LinkedValidation: \"LinkedValidation\",\n };\n\n errorMessagesRequired: string = 'Campo requerido';\n statusControl: boolean = false;\n totalFields: number = 0;\n\n selectStates: { [key: string]: { wasInteracted: boolean; showError: boolean } } = {};\n\n constructor(private formBuilder: FormBuilder\n ) {\n this.formGroup = this.formBuilder.group({});\n\n this.initializeValueChanges();\n }\n private initializeValueChanges() {\n this.formGroup.valueChanges.subscribe(() => {\n this.status = this.formGroup.valid;\n const formValues = this.formGroup.value;\n const isEmpty = Object.keys(formValues).length === 0 && formValues.constructor === Object;\n const valueCount = Object.keys(formValues).length;\n if(!isEmpty && valueCount == this.totalFields){\n if (this.status) {\n this.formCompletedEvent.emit(this.status);\n this.onchageStatusEvent.emit(this.status);\n }else{\n this.onchageStatusEvent.emit(this.status);\n }\n this.updateFieldBehavior(this.readOnly.valueOf());\n }\n });\n }\n\n async createItemTemplate(ev: FormLayoutDto) {\n this.optionsMap = {}; // Limpiar opciones anteriores\n this.itemsConfigList = []; // Limpiar configuraciones anteriores\n\n ev.formGroups.forEach((item) => {\n //#region Save FieldOptions per SelectSimpleDesplegable\n item?.group.listGroupFields.forEach((element) => {\n this.inputConfig = new SInput();\n this.saveOptionSelect(element);\n const typeOptionSelect = this.mapFieldToInputConfig(element.field);\n if (element.field.defaultBehavior?.name === this.behaviorTypes.Hide) return;\n const validators = this.buildValidators(element);\n if (element.field.dataType?.type === 'input') {\n this.addTextField(element, validators);\n }\n this.itemsConfigList.push(SInputConfig.fromJS({\n id: typeOptionSelect.id,\n sInputConfig: this.inputConfig\n }));\n if (element.field.dataType?.type === 'select') {\n this.addSelectField(element, validators);\n }\n });\n //#endregion\n this.addGroupTemplate(item);\n });\n }\n\n private saveOptionSelect(element: GroupFieldDto) {\n // Inicializar el array de opciones para el campo específico si no existe\n const fieldId = element.field.id || this.generateUniqueId();\n if (!this.optionsMap[fieldId]) {\n this.optionsMap[fieldId] = [];\n }\n\n // Limpiar opciones anteriores para este campo antes de agregar nuevas\n this.optionsMap[fieldId] = [];\n\n // Agregar nuevas opciones\n element.field.fieldOptions.forEach((itemFieldOption) => {\n const option: SSelectSimpleModel = {\n key: fieldId, // Asociar al campo específico\n title: itemFieldOption.value,\n value: itemFieldOption.label\n };\n this.optionsMap[fieldId].push(option);\n });\n\n // Actualizar el ID del campo para que coincida con el mapa de opciones\n element.field.id = fieldId;\n }\n\n // Método para generar un ID único\n private generateUniqueId(): number {\n return Math.floor(Math.random() * 1000000);\n }\n\n private buildValidators(element: GroupFieldDto): ValidatorFn[] {\n const validators: ValidatorFn[] = [];\n const isRequired = element.mandatory;\n const hasValidation = element.field.validation !== \"\";\n const isNotDisabled = element.field.defaultBehavior.name !== this.behaviorTypes.Disable;\n\n if (isRequired) {\n validators.push(Validators.required);\n }\n if (hasValidation && (isRequired || isNotDisabled)) {\n validators.push(Validators.pattern(element.field.validation));\n }\n return validators;\n }\n\n private addTextField(element: GroupFieldDto, validators: ValidatorFn[]) {\n this.formGroup.addControl(\n element.field.code,\n this.formBuilder.control(element.field.defaultValue, validators)\n );\n }\n\n private addSelectField(element: GroupFieldDto, validators: ValidatorFn[]) {\n // Encuentra el valor predeterminado si existe\n const defaultValueSelect = element.field.fieldOptions.find((x: any) => x.label === element.field.defaultValue);\n \n // Agrega la validación requerida si es obligatorio y no hay un valor predeterminado\n if (element.mandatory && !defaultValueSelect) {\n validators.push(Validators.required);\n }\n \n // Inicializa el control del formulario con el valor predeterminado o con un valor vacío\n this.formGroup.addControl(\n element.field.code,\n this.formBuilder.control(\n defaultValueSelect ? defaultValueSelect.label : '', // Ajusta aquí el valor predeterminado\n validators\n )\n );\n }\n\n private mapFieldToInputConfig(field: FieldTemplateDto): FieldTemplateDto {\n return FieldTemplateDto.fromJS({\n id: field.id,\n defaultValue: field.defaultValue,\n label: field.label,\n code: field.code,\n description: field.description,\n hintText: field.hintText,\n defaultBehavior: field.defaultBehavior,\n dataType: field.dataType || null, // Proporciona valores predeterminados si es necesario\n helpText: field.helpText || \"\",\n internal: field.internal || false\n });\n }\n\n private addGroupTemplate(item: FormGroupDto) {\n const typeGroup = item.group.template ? 'Template' : 'Personalizable';\n\n this.groupTemplatesSelectItems.push({\n id: this.groupTemplatesSelectItems.length + 1,\n name: item.group.name,\n label: item.group.label,\n description: item.group.description,\n deleted: item.group.deleted,\n template: item.group.template,\n internal: item.group.internal,\n lastModification: item.group.lastModificationTime,\n listGroupFields: item.group.listGroupFields,\n itemsConfig: this.itemsConfigList,\n group: item.group,\n typeGroup: typeGroup,\n position: item.position,\n disabled: false,\n selected: false,\n draggable: true,\n });\n }\n\n getInputConfig(itemField: GroupFieldDto) {\n const isDisabled = itemField.field.defaultBehavior.name === this.behaviorTypes.Disable;\n return {\n label: itemField.field.label,\n placeholder: itemField.field.hintText,\n disabled: isDisabled,\n required: itemField.mandatory === true,\n helpText: isDisabled ? \"\" : itemField.field.helpText\n };\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.layout) {\n this.totalFields = await this.countFields(this.layout);\n this.loading = false;\n this.clearForm();\n this.formLayout = this.layout;\n this.groupTemplatesSelectItems = [];\n await this.createItemTemplate(this.formLayout);\n this.loading = true;\n }\n \n if (changes.setFormData && changes.setFormData.currentValue === true) {\n this.saveForm();\n this.onchageStatusEvent.emit(this.status); \n }\n \n if (changes.readOnly) {\n this.updateFieldBehavior(changes.readOnly.currentValue);\n }\n \n if (changes.formFilled) {\n this.populateFormWithValues(changes.formFilled.currentValue);\n }\n }\n \n private updateFieldBehavior(isReadOnly: boolean) {\n const behaviorName = isReadOnly ? this.behaviorTypes.Disable : this.behaviorTypes.Enable;\n this.groupTemplatesSelectItems.forEach(element => {\n element.listGroupFields.forEach((item: GroupFieldDto) => {\n item.field.defaultBehavior.name = behaviorName;\n });\n });\n }\n\n populateFormWithValues(formFilled: FormFilledDto): void {\n if (formFilled && formFilled.formFilledValues) {\n formFilled.formFilledValues.forEach(fieldValue => {\n const fieldName = this.getFieldNameById(fieldValue.fieldId);\n if (fieldName && this.formGroup.contains(fieldName)) {\n this.formGroup.get(fieldName)?.setValue(fieldValue.value);\n }\n });\n this.validateForm();\n }\n }\n\n private getFieldNameById(fieldId: number): string | null {\n for (const group of this.layout.formGroups) {\n for (const groupField of group.group.listGroupFields) {\n if (groupField.field.id === fieldId && this.layout.id == this.formFilled?.formLayoutId) {\n return groupField.field.code;\n }\n }\n }\n return null;\n }\n\n private validateForm(): void {\n // Marca todos los controles como \"tocados\" para activar la validación\n Object.keys(this.formGroup.controls).forEach(field => {\n const control = this.formGroup.get(field);\n control?.markAsTouched({ onlySelf: true });\n control?.updateValueAndValidity(); // Actualiza el estado de validación del control\n });\n \n // Actualiza la variable de estado del formulario\n this.status = this.formGroup.valid;\n \n // Emite el evento de cambio de estado\n if(this.statusControl){\n this.statusControl = this.status;\n this.onchageStatusEvent.emit(this.status);\n }\n this.statusControl = true;\n \n }\n\n saveForm() {\n // Procesar los valores del formulario para transformar los campos select\n const formData = this.processFormValues(this.formGroup.value);\n this.getFormDataEvent.emit(formData);\n this.status = this.formGroup.valid;\n this.onchageStatusEvent.emit(this.status);\n }\n \n private processFormValues(values: any): any {\n const processedValues: any = {};\n for (const key in values) {\n if (values.hasOwnProperty(key)) {\n const value = values[key];\n if (value && typeof value === 'object' && 'value' in value) {\n // Si el valor es un objeto y tiene una propiedad 'value', usar solo 'value'\n processedValues[key] = value.value;\n } else {\n // De lo contrario, usar el valor tal cual\n processedValues[key] = value;\n }\n }\n }\n return processedValues;\n }\n\n onFormBlur() {\n this.blurEvent.emit();\n\n // Actualizar la variable de estado\n this.status = this.formGroup.valid;\n\n // Emitir eventos de éxito y error según la lógica\n if(this.status) this.formCompletedEvent.emit(this.status);\n\n // Emitir evento de cambio de estado\n this.onchageStatusEvent.emit(this.status);\n\n this.formInFocus = false;\n this.saveForm();\n }\n\n clearForm(): void {\n this.formGroup.reset();\n }\n\n async countFields(formLayout: FormLayoutDto) {\n let fieldCount = 0;\n formLayout.formGroups.forEach(group => {\n group.group.listGroupFields.forEach(field => {\n fieldCount++;\n });\n });\n return fieldCount;\n }\n\n onSelectFocus(fieldCode: string) {\n if (!this.selectStates[fieldCode]) {\n this.selectStates[fieldCode] = { wasInteracted: false, showError: false };\n }\n this.selectStates[fieldCode].wasInteracted = true;\n }\n\n // Llamado al perder foco el select\n onSelectBlur(itemField: any): void {\n const control = this.formGroup.get(itemField.field.code);\n const value = control?.value;\n\n // Si el campo es obligatorio y el valor no es válido, mostramos el error\n if (itemField.mandatory && (!value || (typeof value === 'string' && value.trim() === ''))) {\n this.isSelectedMap[itemField.field.code] = false;\n control?.setErrors({ required: true }); // Setea el error 'required'\n } else {\n this.isSelectedMap[itemField.field.code] = true;\n control?.setErrors(null); // Elimina errores si todo está correcto\n }\n\n control?.markAsTouched(); // Marca el control como tocado para que se muestren los mensajes de error\n}\n\n // Método para verificar si una opción está seleccionada\n isOptionSelected(value: any): boolean {\n debugger;\n if (typeof value === 'string') {\n return value.trim() !== '';\n }\n return false;\n }\n\n // Mostrar error basado en el estado\n shouldShowError(itemField: any): boolean {\n const control = this.formGroup.get(itemField.field.code); // Obtener el control del campo desde el formGroup\n if (!control) {\n return false;\n }\n return itemField.mandatory && control.invalid && control.touched;\n }\n\n // Método cuando se selecciona una opción en el select\n selectedSelect(event: any, fieldCode: string) {\n const state = this.selectStates[fieldCode];\n if (state) {\n state.showError = false;\n }\n }\n}\n","<div class='s-dynamic-form'>\n <div *ngIf=\"loading\">\n <div *ngIf=\"groupTemplatesSelectItems.length > 0\">\n <form [formGroup]=\"formGroup\" (blur)=\"onFormBlur()\">\n <div *ngFor=\"let item of groupTemplatesSelectItems\">\n <h6>{{item.label}}</h6>\n <div class=\"s-dynamic-form__hr\"></div>\n <div *ngFor=\"let itemField of item.listGroupFields; let i = index;\">\n <div\n *ngIf=\"itemField.field.dataType.type == 'input' && itemField.field.defaultBehavior.name != behaviorTypes.Hide\">\n <div class=\"s-dynamic-form__container\">\n <s-input formControlName=\"{{itemField.field.code}}\" (blur)=\"onFormBlur()\"\n [config]=\"getInputConfig(itemField)\">\n </s-input>\n </div>\n </div>\n <div\n *ngIf=\"itemField.field.dataType.type == 'select' && itemField.field.defaultBehavior.name != behaviorTypes.Hide\">\n <div class=\"s-dynamic-form__container\">\n <div>\n <s-select-old formControlName=\"{{itemField.field.code}}\"\n [label]=\"itemField.mandatory ? itemField.field.label + ' *' : itemField.field.label\"\n [placeholder]=\"itemField.field.hintText\"\n [options]=\"optionsMap[itemField.field.id]\"\n [selectedValue]=\"itemField.field.defaultValue\"\n (selectEvent)=\"selectedSelect($event, itemField.field.code)\"\n [readOnly]=\"readOnly.valueOf()\"\n (focus)=\"onSelectFocus(itemField.field.code)\"\n (blur)=\"onSelectBlur(itemField); onFormBlur()\" tabindex=\"0\">\n </s-select-old>\n <!-- Muestra el mensaje de error si no se seleccionó ninguna opción y es requerido -->\n <div *ngIf=\"shouldShowError(itemField)\">\n <s-error-control [theme]=\"'red'\">\n {{ itemField.mandatory ? errorMessagesRequired : itemField.field.helpText }}\n </s-error-control>\n </div>\n\n <!-- Muestra el helpText solo si no hay error -->\n <div *ngIf=\"!shouldShowError(itemField)\">\n <s-error-control>\n {{ itemField.field.helpText }}\n </s-error-control>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n <div *ngIf=\"!loading\">\n <h4>Cargando...</h4>\n <s-spinner></s-spinner>\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { THEME } from '../../../enums/theme.enum';\n\nexport class STextArea {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n height?: string;\n width?: string;\n resize?: boolean;\n theme?: THEME = THEME.DEFAULT;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-input-textarea',\n templateUrl: './s-input-textarea.component.html',\n styleUrls: ['./s-input-textarea.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputTextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class SInputTextAreaComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: STextArea = new STextArea();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n THEME = THEME;\n isFocused: boolean = false;\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-input-textarea`;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-textarea\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-textarea__label\">\n {{ config.label }}\n <span class=\"s-textarea__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-textarea__content {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || control?.status === 'DISABLED',\n }\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n class=\"theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n resize: !config.resize,\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [id]=\"id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-container>\n <ng-template #notUseFormControl>\n <textarea\n [readOnly]=\"config.readOnly || config.disabled\"\n [ngClass]=\"[config.resize ? '' : 'resize', config.theme ? 'theme-' + config.theme : '']\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"id\"\n autocomplete=\"off\"\n [placeholder]=\"config.placeholder ?? ''\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n </textarea>\n </ng-template>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-slider',\n templateUrl: './s-slider.component.html',\n styleUrls: ['./s-slider.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSliderComponent),\n multi: true,\n },\n ],\n})\nexport class SSliderComponent implements ControlValueAccessor, AfterViewInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n //REF PARA TYPE RANGE\n @ViewChild('tooltipContainer', { static: false }) tooltipContainer: ElementRef | undefined;\n @ViewChild('tooltip', { static: false }) tooltip: ElementRef | undefined;\n @ViewChild('numberInput', { static: false }) numberInput!: ElementRef<HTMLInputElement>;\n\n @Input() value: string = '';\n @Input() id: string = 's-slider';\n @Input() label?: string;\n @Input() required?: boolean;\n @Input() helpText?: string;\n @Input() errorText?: string;\n @Input() disabled: boolean = false;\n @Input() max?: number;\n @Input() min: number = 0;\n @Input() step: number = 1;\n @Input() readOnly: boolean = false;\n @Input() classAdd: string = '';\n @Input() size: 'sm' | 'md' = 'md';\n @Input() rangeUnity: string = '';\n @Input() showInput: boolean = false;\n\n inputTimeout?: any;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\n @Output() valueChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngAfterViewInit(): void {\n this.rangeOnLoad();\n }\n\n onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.valueChangeEvent.next(this.value);\n },\n 500,\n null\n );\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n //FUNCIONES PARA TYPE RANGE\n rangeOnLoad() {\n setTimeout(() => {\n const rangeMax = this.max ? this.max : 100;\n let amplitudTotal = rangeMax - this.min;\n let porcion = (amplitudTotal * 50) / 100;\n let value = this.value == '' ? this.min + porcion : this.value;\n\n const clampedValue = this.clampValue(value);\n\n if (this.value == '' || this.value === null || this.value === undefined) {\n this.value = clampedValue.toString();\n this.onChange(this.value);\n }\n\n this.tooltipValue = this.value + this.rangeUnity;\n this.updateTooltip(this.value);\n\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if (isChrome) {\n let porcentaje = ((clampedValue - this.min) / (rangeMax - this.min)) * 100;\n document.getElementById(this.id)?.style.setProperty('margin-top', '0.875rem');\n document.getElementById(this.id)?.style.setProperty('margin-bottom', '0.875rem');\n document.getElementById(this.id)?.style.setProperty('border-radius', '0.25rem');\n document.getElementById(this.id)?.style.setProperty('height', '0.5rem');\n document\n .getElementById(this.id)\n ?.style.setProperty(\n 'background',\n 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' +\n porcentaje +\n '%, var(--neutrals-1000) ' +\n porcentaje +\n '%, var(--neutrals-1000) 100%)'\n );\n }\n }, 0);\n }\n\n //FUNCION PARA CHROME CUANDO SE DESLIZA EL SLIDE FUNCIONE CORRECTAMENTE\n changeRange(value: any) {\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n const rangeMax = this.max ? this.max : 100;\n if (isChrome) {\n let porcentaje = ((value - this.min) / (rangeMax - this.min)) * 100;\n document\n .getElementById(this.id)\n ?.style.setProperty(\n 'background',\n 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' +\n porcentaje +\n '%, var(--neutrals-1000) ' +\n porcentaje +\n '%, var(--neutrals-1000) 100%)'\n );\n }\n }\n\n //FUNCION QUE ACTUALIZA EL TOOLTIP CUANDO SE DESLIZA EL SLIDE\n updateTooltip(value: string) {\n if (this.tooltipContainer && this.tooltip) {\n const rangeWidth = this.tooltipContainer.nativeElement.offsetWidth;\n const rangeMax = this.max ? this.max : 100;\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;\n let ajuste = (porcentaje * rangeWidth) / 100;\n this.tooltip.nativeElement.style.left = `${ajuste}px`;\n this.tooltipValue = value + this.rangeUnity;\n }\n }\n\n preventInteraction(event: Event) {\n if (this.readOnly) {\n event.preventDefault();\n }\n }\n //FIN FUNCIONES PARA TYPE RANGE\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n if (value !== null && value !== undefined) {\n const clampedValue = this.clampValue(value);\n this.value = clampedValue.toString();\n this.rangeOnLoad();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n\n onNumberInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const clampedValue = this.clampValue(input.value);\n\n input.value = clampedValue.toString();\n this.value = input.value;\n this.updateTooltip(this.value);\n this.changeRange(this.value);\n this.onTextChange();\n }\n\n clampValue(value: any): number {\n let num = Number(value);\n\n if (isNaN(num)) {\n return this.min;\n }\n\n if (this.max !== undefined && num > this.max) {\n return this.max;\n }\n\n if (num < this.min) {\n return this.min;\n }\n\n return num;\n }\n}\n","<ng-container>\n <label *ngIf=\"label\" class=\"s-slider__label\">\n {{ label }}\n <span class=\"s-slider__required\" *ngIf=\"required\">*</span>\n </label>\n <div class=\"s-slider__row\" [ngClass]=\"{ 'with-input': showInput }\">\n <div class=\"s-slider__content {{ classAdd }}\" [ngClass]=\"{ 'disabled-active': disabled }\">\n <div class=\"tooltip tooltip-{{ disabled }}\" #tooltipContainer>\n <input\n #rangeField\n [id]=\"id\"\n type=\"range\"\n [min]=\"min\"\n [max]=\"max ?? null\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [(ngModel)]=\"value\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (ngModelChange)=\"onTextChange()\"\n (mousemove)=\"!readOnly && changeRange(rangeField.value)\"\n (input)=\"!readOnly && updateTooltip(rangeField.value)\"\n (mousedown)=\"preventInteraction($event)\" />\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-input\n *ngIf=\"showInput\"\n #numberInput\n type=\"number\"\n class=\"s-slider__number\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (input)=\"onNumberInput($event)\">\n </s-input>\n </div>\n <s-error-control *ngIf=\"errorText\" theme=\"red\">{{ errorText }}</s-error-control>\n <s-error-control *ngIf=\"helpText && !errorText\">\n <i class=\"s-slider__help-icon\">i</i>\n {{ helpText }}\n </s-error-control>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { THEME } from '../../../enums/theme.enum';\nimport { INPUT_SIZE } from '../../enums/size.enum';\n\nexport class SCalendar {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: string;\n min?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-calendar',\n templateUrl: './s-calendar.component.html',\n styleUrls: ['./s-calendar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SCalendarComponent),\n multi: true,\n },\n ],\n})\nexport class SCalendarComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: SCalendar = new SCalendar();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n id!: string;\n ICON_THEME = ICON_THEME;\n isFocused: boolean = false;\n\n ngOnInit(): void {\n this.id = this.config.id = `s-calendar`;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-calendar\">\n <label [for]=\"id\" *ngIf=\"config?.label\" class=\"s-calendar__label\">\n {{ config.label }}\n <span class=\"s-calendar__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-calendar__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"s-calendar__content--center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'date'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\" class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme === 'default' || (config?.theme === undefined && config.showHelp)\"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n</section>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { INPUT_SIZE } from '../../enums/size.enum';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\n\nexport class STime {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n min?: number;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n theme?: THEME;\n useFormControl?: boolean;\n}\n@Component({\n selector: 's-time',\n templateUrl: './s-time.component.html',\n styleUrls: ['./s-time.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => STimeComponent),\n multi: true,\n },\n ],\n})\nexport class STimeComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: STime = new STime();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-time`;\n }\n\n inputTimeout?: any;\n ICON_THEME = ICON_THEME;\n isFocused: boolean = false;\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n}\n","<section class=\"s-time\">\n <label [for]=\"config.id\" *ngIf=\"config?.label\" class=\"s-time__label\">\n {{ config.label }}\n <span class=\"s-time__required\" *ngIf=\"config?.required\">*</span>\n </label>\n <div\n class=\"s-time__content {{ config.size }} theme-{{ config.theme }} {{ config.classAdd }}\"\n [ngClass]=\"{\n 'disabled-active': config.disabled || (control && control.status === 'DISABLED'),\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'time'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div *ngIf=\"config?.theme === 'default' || (config?.theme === undefined && config.showHelp)\" class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\n\n@Component({\n selector: 's-color',\n templateUrl: './s-color.component.html',\n styleUrls: ['./s-color.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SColorComponent),\n multi: true,\n },\n ],\n})\nexport class SColorComponent implements OnInit {\n onChange = (_: any) => {};\n onTouch = () => {};\n\n @Input() value: string = '#000000';\n @Input() id?: string;\n @Input() name: string = '';\n @Input() label?: string;\n @Input() placeHolder?: string;\n @Input() required?: boolean;\n @Input() helpText?: string;\n @Input() errorText?: string;\n @Input() hideErrorText?: boolean;\n @Input() readOnly: boolean = false;\n @Input() theme: 'default' | 'green' | 'yellow' | 'red' = 'default';\n @Input() classAdd: string = '';\n @Input() help: boolean = false;\n @Input() size: 'sm' | 'md' = 'md';\n @Input() disabled = false;\n\n inputTimeout?: any;\n visibility = false;\n inconSymbol: boolean = false;\n ICON_THEME = ICON_THEME;\n\n @Output() valueChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n ngOnInit(): void {\n this.id = this.id || `s-color`;\n }\n\n onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.valueChangeEvent.next(this.value);\n },\n 500,\n null\n );\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n colorClick() {\n document.getElementById(this.name)?.click();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.theme == 'yellow' ? 'symbol' : 'icon';\n }\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n}\n","<ng-container class=\"s-color\">\n <label *ngIf=\"label\" class=\"s-color__label\" for=\"name\">\n {{ label }}\n <span class=\"s-color__required\" *ngIf=\"required\">*</span>\n </label>\n <div\n class=\"s-color__content content-input-main-color {{ size }} theme-{{ theme }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': disabled, readonly: readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onTextChange()\"\n class=\"content-color\" />\n </div>\n <div\n role=\"button\"\n tabindex=\"0\"\n class=\"content-center\"\n (click)=\"!this.readOnly ? this.color.click() : null\"\n (keydown.enter)=\"!this.readOnly ? this.color.click() : null\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\"\n [id]=\"id\"\n [type]=\"color\"\n autocomplete=\"off\"\n [placeholder]=\"placeHolder ? placeHolder : ''\"\n [(ngModel)]=\"value\"\n [disabled]=\"readOnly\" />\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"'icon'\" class=\"icon cursor\">colorize</s-icon-mat>\n </div>\n <div *ngIf=\"theme !== 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">\n {{ ICON_THEME[this.theme] }}\n </s-icon-mat>\n </div>\n\n <div *ngIf=\"theme === 'default' && help\" class=\"content-right\">\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\"> help_outline </s-icon-mat>\n </div>\n </div>\n <s-error-control *ngIf=\"!hideErrorText && errorText\" theme=\"red\">\n {{ errorText }}\n </s-error-control>\n <s-error-control *ngIf=\"!hideErrorText && helpText && !errorText\">\n {{ helpText }}\n </s-error-control>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { THEME } from '../../../enums/theme.enum';\nimport { ICON_THEME } from '../../enums/icon-theme.enum';\nimport { ControlValueAccessorDirective } from '../../directives/control-value-accessor.directive';\nimport { INPUT_SIZE } from '../../enums/size.enum';\n\nexport class SInputNumber {\n classAdd?: string;\n disabled?: boolean;\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n max?: number;\n min?: number;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n showHelp?: boolean;\n size?: INPUT_SIZE;\n step?: number;\n theme?: THEME;\n useFormControl?: boolean;\n\n constructor(config?: Partial<SInputNumber>) {\n Object.assign(this, config);\n if (!this.theme) {\n this.theme = THEME.DEFAULT;\n }\n }\n}\n\n@Component({\n selector: 's-input-number',\n templateUrl: './s-input-number.component.html',\n styleUrls: ['./s-input-number.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputNumberComponent),\n multi: true,\n },\n ],\n})\nexport class SInputNumberComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config: SInputNumber = new SInputNumber();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n inputNumber: number = 0;\n inconSymbol: boolean = false;\n ICON_THEME = ICON_THEME;\n numberControl = new FormControl(0);\n isFocused: boolean = false;\n id!: string;\n\n ngOnInit(): void {\n this.id = this.config.id || `s-input-number`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return this.numberControl;\n }\n this.numberControl = this.control;\n return this.numberControl;\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n clickHelp() {\n this.clickHelpIconEvent.next();\n }\n\n getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n numberDecrease() {\n this.adjustNumber(-1);\n }\n\n numberIncrement() {\n this.adjustNumber(1);\n }\n\n adjustNumber(step: number) {\n if (!this.config.disabled && !this.config.readOnly) {\n if (this.config.step === undefined) this.config.step = 1;\n const currentValue = this.getValue();\n const newValue = currentValue + step * this.config.step;\n if (\n (step < 0 && (this.config.min === undefined || newValue >= this.config.min!)) ||\n (step > 0 && (this.config.max === undefined || newValue <= this.config.max!))\n ) {\n this.setValue(newValue);\n }\n }\n }\n\n getValue(): number {\n return this.config.useFormControl === false ? Number(this.value) : (Number(this.numberControl.value) ?? 0);\n }\n\n setValue(newValue: number) {\n if (this.config.useFormControl === false) {\n this.value = newValue.toString();\n this.onChange(this.value);\n return;\n }\n this.numberControl.setValue(newValue);\n }\n\n onBlur(event: any): void {\n this.isFocused = false;\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.isFocused = true;\n this.focus.next(event);\n }\n\n canDecrease(): boolean {\n if (this.config.disabled || this.config.readOnly) return false;\n\n if (this.config.min === undefined) return true;\n\n const currentValue = this.getValue();\n return currentValue > this.config.min;\n }\n\n canIncrease(): boolean {\n if (this.config.disabled || this.config.readOnly) return false;\n\n if (this.config.max === undefined) return true;\n\n const currentValue = this.getValue();\n return currentValue < this.config.max;\n }\n}\n","<section class=\"s-input-number\">\n <label *ngIf=\"config.label\" class=\"s-input-number__label\" for=\"config.id\">\n {{ config.label }}\n <span class=\"s-input-number__required\" *ngIf=\"config.required\">*</span>\n </label>\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button\n [disabled]=\"!canDecrease()\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\n [id]=\"id + '-button-decrease'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"s-input-number__button\">\n <s-icon-mat>remove</s-icon-mat>\n </s-button>\n </div>\n <div\n class=\"s-input-number__content {{ config.size }}\n theme-{{ config.theme }} {{ config.classAdd }} w-100\"\n [ngClass]=\"{\n 'disabled-active': config.disabled,\n readonly: config.readOnly,\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && control.errors && control.touched) ||\n config.theme === 'red',\n }\">\n <div class=\"content-center\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [formControl]=\"getControl()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n [id]=\"id\"\n [type]=\"'number'\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [step]=\"config.step\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n </div>\n <div *ngIf=\"config.theme !== 'default' && config.theme !== undefined\" class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ ICON_THEME[config.theme] }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"(config?.theme === 'default' && config.showHelp) || (config?.theme === undefined && config.showHelp)\"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\">help_outline</s-icon-mat>\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"!canIncrease()\"\n (click)=\"numberIncrement()\"\n [id]=\"id + '-button-increment'\"\n [size]=\"config.size ?? 'md'\"\n [pill]=\"true\"\n [invert]=\"true\"\n class=\"button-input-626\"\n ><s-icon-mat>add</s-icon-mat></s-button\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"!config.hideErrorText && control && control.invalid && (isFocused || control.touched)\"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control *ngIf=\"!config.hideErrorText && config.errorText\" theme=\"red\">{{\n config.errorText\n }}</s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) || (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SErrorControl } from './components/error-control/s-error-control.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SInputTextAreaComponent } from './components/input-textarea/s-input-textarea.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SInputComponent } from './components/input/s-input.component';\nimport { SSliderComponent } from './components/slider/s-slider.component';\nimport { SCalendarComponent } from './components/calendar/s-calendar.component';\nimport { STimeComponent } from './components/time/s-time.component';\nimport { SColorComponent } from './components/color/s-color.component';\nimport { SInputNumberComponent } from './components/input-number/s-input-number.component';\nimport { SValidationError } from './components/validation-error/s-validation-error.component';\n\n@NgModule({\n declarations: [\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SSliderComponent,\n SCalendarComponent,\n STimeComponent,\n SColorComponent,\n SValidationError,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SIconMaterialModule,\n SButtonModule,\n ],\n exports: [\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SSliderComponent,\n SCalendarComponent,\n STimeComponent,\n SColorComponent,\n SValidationError,\n SErrorControl,\n ],\n})\nexport class SInputModule {}\n","export enum INPUT_SIZE {\n SM = 'sm',\n MD = 'md'\n}","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n forwardRef,\n AfterContentInit,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { SCheckbox } from '../../checkbox';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectNavigationService } from '../s-select-service';\nimport { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { ControlValueAccessorDirective } from '../../input/directives/control-value-accessor.directive';\nimport { INPUT_TYPE, SInput } from '../../input/components/input/s-input-model';\nimport { SItemMultiSelect, SMultiSelect } from './s-select-multiple-model';\n\n@Component({\n selector: 's-select-multiple',\n templateUrl: './s-select-multiple.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectMultipleComponent),\n multi: true,\n },\n ],\n})\nexport class SSelectMultipleComponent\n extends ControlValueAccessorDirective<string[]>\n implements AfterContentInit, OnInit\n{\n @Input() config!: SMultiSelect;\n @Output() selectEvent = new EventEmitter<SItemMultiSelect[]>();\n @Output() selectedEvent = new EventEmitter<string[]>();\n @Output() blurEvent = new EventEmitter<void>();\n @Output() focusEvent = new EventEmitter<void>();\n @Input() id!: string;\n\n value: string[] = [];\n optionsInit!: any[];\n clickInside: boolean = false;\n isOpen: boolean = false;\n countSelected: any;\n checkItem: SCheckbox = {\n useFormControl: false,\n tabIndex: -1,\n };\n checkAll: SCheckbox = {\n id: 'all',\n useFormControl: false,\n };\n selectAll: boolean = false;\n selectionText!: string;\n searchText: string = '';\n options: SItemMultiSelect[] = [];\n configSearch!: SInput;\n INPUT_SIZE = INPUT_SIZE;\n isFocused: boolean = false;\n\n constructor(\n private selectNavService: SelectNavigationService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config.id ?? `s-select-multiple`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return (this.control = new FormControl(''));\n }\n return this.control;\n }\n\n ngAfterContentInit() {\n this._initConfig();\n this.options = this.config.options;\n this.countSelect();\n }\n\n openDropDown() {\n if (this.config.disabled || this.config.readOnly) {\n this.isOpen = false;\n return;\n }\n this.isOpen = !this.isOpen;\n this.isOpen ? this.onFocus() : this.onBlur();\n }\n\n filter() {\n if (!this.searchText) {\n this.options = [...this.config.options];\n } else {\n this.options = this.config.options.filter(option =>\n option.title.toLowerCase().includes(this.searchText.toLowerCase())\n );\n }\n }\n\n selectAllEvent() {\n const setValue = !this.selectAll;\n this.options.forEach(item => {\n item.value = setValue;\n this.value.push(item.id);\n });\n if (!setValue) this.value = [];\n this.updateStates();\n }\n\n changeItem(item: any) {\n item.value = !item.value;\n this.value = this.config.options.filter(option => option.value).map(option => option.id);\n this.updateStates();\n }\n\n updateStates() {\n if (this.config.useFormControl) {\n this.onTouched();\n }\n this.onChange(this.value);\n this.selectedEvent.emit(this.value);\n this.selectEvent.emit(this.config.options);\n this.countSelect();\n }\n\n countSelect() {\n this.countSelected = this.config.options.filter(obj => obj.value === true).length;\n this.config.options.length == this.countSelected ? (this.selectAll = true) : (this.selectAll = false);\n this.setText();\n }\n\n setText() {\n this.selectionText =\n this.options.length == this.countSelected\n ? this.config.allSelected\n : `${this.countSelected} ${this.config.selected}`;\n }\n\n override writeValue(value: string[]): void {\n super.writeValue(value);\n\n this.value = value || [];\n this.config.options.forEach(option => {\n option.value = value.includes(option.id);\n });\n this.countSelect();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.config.disabled = true;\n }\n }\n\n private _initConfig() {\n this.configSearch = {\n id: 'search',\n type: INPUT_TYPE.SEARCH,\n useFormControl: false,\n size: this.config.size === 'sm' ? INPUT_SIZE.SM : INPUT_SIZE.MD,\n };\n }\n\n //EVENTOS PARA DETECTAR CLICK FUERA Y CERRAR EL SELECT\n @HostListener('click')\n clicked() {\n this.clickInside = true;\n }\n @HostListener('document:click')\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blurEvent.next();\n }\n\n onFocus(): void {\n this.isFocused = true;\n this.focusEvent.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n if (this.config.readOnly || this.config.disabled) return;\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n\n onKeyDownItems(event: KeyboardEvent, item: any): void {\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.changeItem.bind(this), false);\n }\n}\n","<article *ngIf=\"config\" class=\"s-select\" [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\">\r\n {{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <section\r\n class=\"s-select__main cursor\"\r\n [id]=\"id\"\r\n [ngClass]=\"{\r\n readonly: config.readOnly,\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n (click)=\"openDropDown()\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-multiple\" [id]=\"id + '-options'\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"config.size === 'md' ? 'md' : 'sm'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar [size]=\"config.size === 'sm' ? 'sm' : 'md'\"></s-avatar>\r\n </div>\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">\r\n {{ selectionText }}\r\n </span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">\r\n {{ config.placeholder }}\r\n </span>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!config.readOnly || !config.disabled\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\"\r\n [id]=\"id + '-errorValidation'\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\"\r\n [id]=\"id + '-errorText'\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\"\r\n [id]=\"id + '-helpText'\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n <section class=\"s-select__dropdown\" *ngIf=\"isOpen\">\r\n <div class=\"s-select__options-multiple--search\">\r\n <!-- //TODO flag opcional, por defecto true -->\r\n <s-input\r\n [config]=\"configSearch\"\r\n [id]=\"id + '-search'\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div class=\"s-select__options-multiple\" [ngClass]=\"config.size === 'sm' ? 'xs' : 'sm'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"{ sm: config.size === 'sm', md: config.size !== 'sm', 'no-display': !config.display }\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n [attr.aria-selected]=\"item.value\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left select-multiple\">\r\n <s-checkbox [config]=\"checkItem\" [(ngModel)]=\"item.value\"></s-checkbox>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n [size]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n [display]=\"item.user?.display\"\r\n [letters]=\"item.user?.letters\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\">\r\n </s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\">\r\n person_outline\r\n </s-icon-mat>\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options-multiple--selected\" [ngClass]=\"{ sm: config.size === 'sm' }\">\r\n <div class=\"s-select__options-multiple--selected-content\">\r\n <p class=\"s-select__options-multiple--selected-text\">{{ this.config.selected }}: {{ this.countSelected }}</p>\r\n <a\r\n tabindex=\"0\"\r\n class=\"s-select__options-multiple--selectAllOption\"\r\n (click)=\"selectAllEvent()\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n >{{ options.length === countSelected ? config.deselectAllOptions : config.selectAllOption }}</a\r\n >\r\n </div>\r\n </div>\r\n </section>\r\n</article>\r\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n forwardRef,\n HostListener,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { SSelectSimpleModel } from '../s-select-model';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorDirective } from '../../input/directives/control-value-accessor.directive';\nimport { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { SelectNavigationService } from '../s-select-service';\nimport { SSelect } from './s-select-model';\n\n@Component({\n selector: 's-select',\n templateUrl: './s-select.component.html',\n styleUrls: ['../s-select-style.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SSelectComponent),\n multi: true,\n },\n ],\n})\nexport class SSelectComponent<T> extends ControlValueAccessorDirective<T> implements OnInit {\n @Input() config!: SSelect;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n @Input() id!: string;\n\n INPUT_SIZE = INPUT_SIZE;\n isOpen: boolean = false;\n activeIndex!: number;\n value: any = undefined;\n clickInside: boolean = false;\n isFocused: boolean = false;\n\n constructor(\n injector: Injector,\n private selectNavService: SelectNavigationService\n ) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.id) this.id = this.config.id ?? `s-select`;\n }\n\n getControl() {\n if (this.control == undefined) {\n return (this.control = new FormControl(''));\n }\n return this.control;\n }\n\n getTitle(): string {\n if (!this.config?.options?.length) {\n return '';\n }\n if (this.value === null || this.value === undefined) {\n return '';\n }\n const option = this.config.options.find(item => item.value === this.value.toString());\n return option?.title ?? '';\n }\n\n onInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n registerOnChange(fn: any): void {\n if (!this.config.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getSelectedValue(e: SSelectSimpleModel) {\n this.control ? this.control.setValue(e.value.toString()) : (this.value = e.value);\n this.activeIndex = this.config.options?.indexOf(e);\n this.value = e.value;\n this.onChange(this.value);\n this.onBlur();\n }\n\n @HostListener('click')\n clicked() {\n this.clickInside = true;\n if (!this.config.disabled && !this.control?.disabled && !this.config.readOnly) {\n this.isOpen = !this.isOpen;\n this.onFocus();\n }\n }\n\n @HostListener('document:click')\n clickedOut() {\n if (this.isOpen && !this.clickInside) {\n this.isOpen = false;\n this.onBlur();\n }\n this.clickInside = false;\n }\n\n onBlur(): void {\n this.blur.next();\n }\n\n onFocus(): void {\n this.isFocused = true;\n this.focus.next();\n }\n\n onKeyDownMain(event: KeyboardEvent): void {\n if (this.config.readOnly || this.config.disabled) return;\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\n }\n\n onKeyDownItems(event: KeyboardEvent, item: SSelectSimpleModel): void {\n this.isOpen = this.selectNavService.onKeyDownItems(\n event,\n item,\n this.isOpen,\n this.getSelectedValue.bind(this),\n true\n );\n }\n}\n","<div *ngIf=\"config\" class=\"s-select\" [ngClass]=\"config.disabled || control?.disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"config.label\" class=\"s-select--select-label\" [id]=\"id + '-label'\"\r\n >{{ config.label }}\r\n <span class=\"s-select--required\" *ngIf=\"config?.required\">*</span>\r\n </span>\r\n <div\r\n class=\"s-select__main cursor\"\r\n [ngClass]=\"{\r\n 'theme-red': control && control.invalid && isFocused,\r\n 'is-open': isOpen,\r\n readonly: config.readOnly,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n tabIndex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option select-simple\">\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"value\">\r\n <ng-container *ngIf=\"control; else notUseFormControl\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"id\"\r\n [formControl]=\"getControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-container>\r\n <ng-template #notUseFormControl>\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <input\r\n [readOnly]=\"config.readOnly || config.disabled\"\r\n [id]=\"config.id ? config.id : ''\"\r\n [value]=\"value\"\r\n (input)=\"onInput($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\" />\r\n </ng-template>\r\n <span>{{ getTitle() }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__left\" *ngIf=\"!value\">\r\n <div class=\"s-select__main__selected-option__left__content-option\" *ngIf=\"!value\">\r\n <ng-container *ngTemplateOutlet=\"display\"></ng-container>\r\n <span class=\"placeholder\">{{ config.placeholder }}</span>\r\n </div>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!config.readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n <s-validation-error\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && isFocused\"\r\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\r\n [errors]=\"control.errors\"\r\n [id]=\"id + '-errorValidation'\">\r\n </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\"\r\n [id]=\"id + '-errorText'\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && !config.errorText && control && !control.errors && config.helpText\"\r\n [id]=\"id + '-helpText'\">\r\n {{ config.helpText }}\r\n </s-error-control>\r\n\r\n <div\r\n class=\"s-select__options\"\r\n [ngClass]=\"{\r\n 'label-off': !config.label,\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n }\"\r\n *ngIf=\"isOpen\">\r\n <section class=\"s-select__options-simple\">\r\n <div\r\n class=\"s-select__item\"\r\n [ngClass]=\"{\r\n sm: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM,\r\n md: (config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.MD,\r\n 'no-display': !config.display,\r\n }\"\r\n *ngFor=\"let item of config.options; index as i\"\r\n [class.active]=\"i === activeIndex\"\r\n (click)=\"getSelectedValue(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\">\r\n <div class=\"content-left select-simple\">\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"config.display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n size=\"md\"\r\n [display]=\"item.user?.display\"\r\n [status]=\"item.user?.status\"\r\n [urlProfileImage]=\"item.user?.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n <div class=\"content-right\" *ngIf=\"i === activeIndex\">\r\n <s-icon-mat class=\"icon-check\">check</s-icon-mat>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</div>\r\n\r\n<ng-template #display>\r\n <div *ngIf=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n [size]=\"(config.size ?? INPUT_SIZE.MD) === INPUT_SIZE.SM ? 'sm' : 'md'\"\r\n class=\"iconPerson\"\r\n *ngIf=\"config.display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div\r\n *ngIf=\"\r\n config?.display === 'profile' && (activeIndex || this.activeIndex === 0) && config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"md\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"config.options[activeIndex].user?.url ?? undefined\"></s-avatar>\r\n </div>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewEncapsulation,\r\n OnInit,\r\n forwardRef,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SCheckbox } from '../../checkbox';\r\nimport { SelectNavigationService } from '../s-select-service';\r\n\r\n@Component({\r\n selector: 's-select-multiple-old',\r\n templateUrl: './s-select-multiple-old.component.html',\r\n styleUrls: ['../s-select-style.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SSelectMultipleOldComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SSelectMultipleOldComponent\r\n implements OnInit, ControlValueAccessor\r\n{\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n @Input() disabled: boolean = false;\r\n @Input() placeholder: string = 'Seleccionar miembro';\r\n @Input() options!: any[];\r\n optionsInit: any[] = this.options;\r\n\r\n @Input() label: string = '';\r\n @Input() readOnly: boolean = false;\r\n @Input() display: 'dot' | 'iconperson' | 'profile' | undefined = undefined;\r\n @Input() size: 'sm' | 'md' = 'md';\r\n @Input() selectAllOption: string = 'Seleccionar todos';\r\n @Input() allSelected: string = 'Todos los items seleccionados';\r\n @Input() selected: string = 'items';\r\n\r\n clickInside: boolean = false;\r\n isOpen: boolean = false;\r\n countSelected: any;\r\n checkAll: SCheckbox = {\r\n id: 'all',\r\n useFormControl: false,\r\n tabIndex: -1,\r\n };\r\n selectAll: boolean = false;\r\n selectionText!: string;\r\n\r\n @Output() selectEvent = new EventEmitter<any>();\r\n @Output() blur = new EventEmitter<void>();\r\n @Output() focus = new EventEmitter<void>();\r\n\r\n constructor(private selectNavService: SelectNavigationService) {}\r\n ngOnInit(): void {\r\n this.optionsInit = this.options;\r\n this.countSelect();\r\n\r\n if (this.readOnly) {\r\n this.disabled = true;\r\n }\r\n }\r\n\r\n selectAllEvent() {\r\n const setValue = !this.selectAll;\r\n this.options.forEach(item => {\r\n item.value = setValue;\r\n });\r\n this.selectionText = setValue ? this.allSelected : ``;\r\n this.countSelect();\r\n this.onTouch();\r\n this.onChange(this.options);\r\n this.selectEvent.emit(this.options);\r\n }\r\n\r\n openDropDown() {\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n if (this.isOpen) {\r\n this.onFocus();\r\n } else {\r\n this.onBlur();\r\n }\r\n }\r\n\r\n changeItem(item: any) {\r\n this.selectAll = false;\r\n item.value = !item.value;\r\n this.onTouch();\r\n this.onChange(this.options);\r\n this.selectEvent.emit(this.options);\r\n this.countSelect();\r\n }\r\n\r\n setText() {\r\n this.selectionText =\r\n this.countSelected === this.options.length\r\n ? this.allSelected\r\n : `+ ${this.countSelected} ${this.selected}`;\r\n }\r\n\r\n countSelect() {\r\n this.countSelected = this.options.filter(obj => obj.value === true).length;\r\n this.options.length == this.countSelected\r\n ? (this.selectAll = true)\r\n : (this.selectAll = false);\r\n this.setText();\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (!value) {\r\n this.countSelected = 0;\r\n this.options = this.optionsInit.map(obj => ({ ...obj, value: false }));\r\n this.onChange(this.options);\r\n } else {\r\n this.options = value;\r\n this.onChange(value);\r\n this.countSelect();\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.onTouch = fn;\r\n }\r\n\r\n //EVENTOS PARA DETECTAR CLICK FUERA Y CERRAR EL SELECT\r\n @HostListener('click')\r\n clicked() {\r\n this.clickInside = true;\r\n }\r\n @HostListener('document:click')\r\n clickedOut() {\r\n if (this.isOpen && !this.clickInside) {\r\n this.isOpen = false;\r\n this.onBlur();\r\n }\r\n this.clickInside = false;\r\n }\r\n\r\n onBlur(): void {\r\n this.blur.next();\r\n }\r\n\r\n onFocus(): void {\r\n this.focus.next();\r\n }\r\n\r\n onKeyDownMain(event: KeyboardEvent): void {\r\n this.isOpen = this.selectNavService.onKeyDownMain(event, this.isOpen);\r\n }\r\n\r\n onKeyDownItems(event: KeyboardEvent, item: any): void {\r\n this.isOpen = this.selectNavService.onKeyDownItems(event, item, this.isOpen, this.changeItem.bind(this) , false);\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\r\n<div class=\"s-select\" [ngClass]=\"disabled ? 's-select--disabled' : ''\">\r\n <span *ngIf=\"label\" class=\"s-select--select-label\">{{ label }}</span>\r\n <div\r\n class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{ size ? size : '' }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\"\r\n (keydown)=\"onKeyDownMain($event)\">\r\n <div class=\"s-select__main__selected-option\">\r\n <div class=\"s-select__main__selected-option__left\">\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar *ngIf=\"size === 'sm'\" size=\"sm\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"md\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\r\n <span *ngIf=\"countSelected >= 1\" class=\"s-select__value\">{{ selectionText }}</span>\r\n <span *ngIf=\"countSelected === 0\" class=\"s-select__value\">{{ placeholder }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat *ngIf=\"!readOnly\" class=\"{{ isOpen ? 'is-open-arrow' : '' }}\">{{\r\n isOpen ? 'expand_less' : 'expand_more'\r\n }}</s-icon-mat>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"s-select__options {{ size ? size : '' }}\" *ngIf=\"isOpen\">\r\n <div\r\n tabindex=\"0\"\r\n (keydown.enter)=\"selectAllEvent()\"\r\n (click)=\"selectAllEvent()\"\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngIf=\"options.length >= 2\">\r\n <div class=\"content-left\">\r\n <s-checkbox [config]=\"checkAll\" [(ngModel)]=\"selectAll\" (keydown.enter)=\"selectAllEvent()\"></s-checkbox>\r\n <span class=\"option-value\">{{ selectAllOption }}</span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"s-select__item {{ size ? size : '' }}\"\r\n *ngFor=\"let item of options; index as i\"\r\n (click)=\"changeItem(item)\"\r\n (keydown)=\"onKeyDownItems($event, item)\"\r\n tabindex=\"0\"\r\n [class.active]=\"item.value === true\">\r\n <div class=\"content-left\">\r\n <s-checkbox-old [tabIndex]=\"-1\" [model]=\"item.value\"> </s-checkbox-old>\r\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\r\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\r\n <s-avatar\r\n *ngIf=\"size === 'sm'\"\r\n size=\"sm\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n <s-avatar\r\n *ngIf=\"size === 'md'\"\r\n size=\"md\"\r\n [display]=\"item.user.display\"\r\n [status]=\"item.user.status\"\r\n [urlProfileImage]=\"item.user.url\"></s-avatar>\r\n </div>\r\n <s-icon-mat [size]=\"size === 'md' ? 'md' : 'sm'\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\"\r\n >person_outline</s-icon-mat\r\n >\r\n <span class=\"option-value\">\r\n {{ item.title }}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-link',\n templateUrl: './s-link.component.html',\n styleUrls: ['./s-link.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SLinkComponent {\n @Input() disabled: boolean = false;\n @Input() size: 'sm' | 'md' | 'lg' = 'sm';\n @Input() invert: boolean = false;\n @Input() target?: '_blank' | '_parent' | '_self' | '_top' = '_parent';\n @Input() href?: string = '';\n @Input() visited: boolean = true;\n @Input() id?: string = 's-link';\n}\n","<a\n class=\"s-link s-link--size-{{ size }}\"\n [target]=\"target\"\n [href]=\"href\"\n [id]=\"id\"\n [class.disabled]=\"disabled\"\n [class.invert]=\"invert\"\n [class.not-visited]=\"!visited\">\n <ng-content></ng-content>\n</a>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SLinkComponent } from './s-link.component';\n\n\n@NgModule({\n declarations: [\n SLinkComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SLinkComponent]\n})\nexport class SLinkModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSelectSimpleComponent } from './select-simple/s-select-simple.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SAvatarModule } from '../avatar';\nimport { SSelectMultipleComponent } from './select-multiple/s-select-multiple.component';\nimport { SCheckboxModule } from '../checkbox';\nimport { SRadioModule } from '../radio';\nimport { SProfileGroupModule } from '../avatar/components/profile-group';\nimport { SSelectComponent } from './select/s-select.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SInputModule } from '../input/input.module';\nimport { SSelectMultipleOldComponent } from './select-multiple-old/s-select-multiple-old.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SLinkModule } from '../link/s-link.module';\n\n@NgModule({\n declarations: [\n SSelectSimpleComponent,\n SSelectMultipleComponent,\n SSelectComponent,\n SSelectMultipleOldComponent,\n ],\n exports: [\n SSelectSimpleComponent,\n SSelectMultipleComponent,\n SSelectComponent,\n SSelectMultipleOldComponent,\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SAvatarModule,\n SCheckboxModule,\n SRadioModule,\n SProfileGroupModule,\n ReactiveFormsModule,\n SInputModule,\n FormsModule,\n SButtonModule,\n SLinkModule,\n ],\n})\nexport class SSelectModule {}\n","export class SSelectMultipleModel {\n public title!: string;\n public value!: string | number | boolean;\n public inputType?: 'checkbox' | 'radio';\n public key?: string | number;\n public user?: SSelectUser;\n}\nexport class SSelectSimpleModel {\n public title!: string;\n public value!: string | number | boolean;\n public key?: string | number;\n public user?: SSelectUser;\n}\n\nexport class SSelectUser {\n public name?: string;\n public display?: 'avatar' | 'icon' | 'letters';\n public letters?: string;\n public url?: string;\n public status?:\n | 'approved'\n | 'declined'\n | 'blocked'\n | 'online'\n | 'offline'\n | 'busy';\n}\n","import { INPUT_SIZE } from '../../input/enums/size.enum';\nimport { SSelectSimpleModel } from '../s-select-model';\n\nexport class SSelect {\n classAdd?: string;\n disabled?: boolean;\n display?: 'dot' | 'iconperson' | 'profile';\n errorMessages?: Record<string, string>;\n errorText?: string;\n helpText?: string;\n hideErrorText?: boolean;\n id?: string;\n label?: string;\n options!: SSelectSimpleModel[];\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n selectedValue?: any;\n showHelp?: boolean;\n size?: INPUT_SIZE = INPUT_SIZE.MD;\n useFormControl?: boolean;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSpinnerComponent } from './s-spinner.component';\nimport { SAnimationModule } from '../animation';\n\n@NgModule({\n declarations: [SSpinnerComponent],\n imports: [CommonModule, SAnimationModule],\n exports: [SSpinnerComponent],\n})\nexport class SSpinnerModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SCheckData } from './s-card-models';\nimport { SSubMenu } from '../sub-menu/s-sub-menu-model';\n\n@Component({\n selector: 's-card',\n templateUrl: './s-card.component.html',\n styleUrls: ['./s-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCardComponent implements OnInit {\n @Input() title: string = '';\n @Input() subtitle: string = '';\n @Input() menu?: SSubMenu;\n @Input() check?: SCheckData | null = null;\n @Input() showHorizontal: boolean = false;\n @Input() id?: string = 's-card';\n @Input() image: string = '';\n @Input() fullimage: boolean = false;\n @Input() icon: string = '';\n @Input() size: 'sm' | 'md' | 'lg' | 'full' = 'full';\n @Input() label: string = '';\n @Input() shadow: 0 | 100 | 200 | 300 | 400 | 500 | 600 = 100;\n\n @Output() clickEvent = new EventEmitter<string>();\n @Output() checkEvent = new EventEmitter<any>();\n\n showDropDownCard: boolean = false;\n localImage: SafeResourceUrl | undefined;\n\n constructor(private domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.image) {\n this.localImage = this.domSanitizer.bypassSecurityTrustResourceUrl(this.image);\n }\n }\n\n showDropDown() {\n this.showDropDownCard = !this.showDropDownCard;\n }\n\n onClickEvent(event: any) {\n this.showDropDownCard = false;\n this.clickEvent.next(event);\n }\n\n onCheckEvent(event: any) {\n this.checkEvent.emit(event);\n }\n}\n","<div class=\"s-card s-card--{{ size }} s-card--shadow-{{ shadow }}\" [id]=\"id\">\n <div *ngIf=\"!showHorizontal && check\" class=\"s-card__check\">\n <s-checkbox-old\n class=\"s-card__check-component\"\n [value]=\"check.value\"\n [model]=\"check.model\"\n [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\"\n (emitSelection)=\"onCheckEvent($event)\"></s-checkbox-old>\n </div>\n\n <div *ngIf=\"!showHorizontal && image\" [ngClass]=\"fullimage ? 's-card__content-image-full' : 's-card__content-image'\">\n <img [src]=\"localImage\" alt=\"card-image\" />\n </div>\n <div *ngIf=\"!showHorizontal && !image && icon\" class=\"s-card__content-image\">\n <s-icon-mat>{{ icon }}</s-icon-mat>\n </div>\n\n <div class=\"s-card__header\" [ngClass]=\"{ 's-card__header-horizontal': showHorizontal }\">\n <div class=\"s-card__check-horizontal\" *ngIf=\"showHorizontal && check\">\n <s-checkbox-old\n *ngIf=\"showHorizontal && check\"\n [value]=\"check.value\"\n [model]=\"check.model\"\n [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\"\n (emitSelection)=\"onCheckEvent($event)\"></s-checkbox-old>\n </div>\n <h6 *ngIf=\"title\">{{ title }}</h6>\n <span *ngIf=\"!showHorizontal && subtitle\" class=\"s-caption\">{{ subtitle }}</span>\n <div *ngIf=\"menu\" class=\"s-card__header-menu-section\">\n <s-icon-mat class=\"s-card__header-menu\" *ngIf=\"menu\" (click)=\"showDropDown()\">more_vert</s-icon-mat>\n <s-sub-menu\n *ngIf=\"showDropDownCard\"\n class=\"s-card__submenu\"\n [menu]=\"menu\"\n (changeMenuEvent)=\"onClickEvent($event)\"\n (closeMenuEvent)=\"showDropDown()\"></s-sub-menu>\n </div>\n <ng-content *ngIf=\"!showHorizontal\"></ng-content>\n <s-tag *ngIf=\"label\" type=\"green\">{{ label }}</s-tag>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCardComponent } from './s-card.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { STagModule } from '../tag';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSubMenuModule } from '../sub-menu';\n\n@NgModule({\n declarations: [SCardComponent],\n imports: [\n CommonModule,\n SIconMaterialModule,\n STagModule,\n SCheckboxModule,\n SSubMenuModule,\n ],\n exports: [SCardComponent],\n})\nexport class SCardModule {}\n","// export class SCardMenu {\n// title?: string;\n// key?: string;\n// }\n\nexport class SCheckData {\n value: any;\n model: any;\n disabled: boolean = false;\n undefined: boolean = false;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SDynamicFormComponent } from './s-dynamic-form.component';\nimport { SCompanyLogoModule } from '../company-logo/s-company-logo.module';\nimport { SInputModule } from '../input';\nimport { SSelectModule } from '../select';\nimport { SSpinnerModule } from '../spinner';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SButtonModule } from '../button';\nimport { SCardModule } from '../card';\n\n@NgModule({\n declarations: [SDynamicFormComponent],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n SInputModule,\n SSelectModule,\n SSpinnerModule,\n SButtonModule,\n ReactiveFormsModule,\n SCardModule,\n ],\n exports: [SDynamicFormComponent],\n})\nexport class SDynamicFormModule {}\n","export class FieldOptionDto {\n id: number = 0;\n fieldId: number = 0;\n value: string = \"\";\n label: string = \"\";\n position: number = 0;\n isDeleted: boolean = false;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FieldOptionDto {\n let result = new FieldOptionDto();\n result.init(data);\n return result;\n }\n}","import { FieldTemplateDto } from \"../field/field-template-dto\";\n\nexport class GroupFieldDto {\n id: number = 0;\n fieldId: number = 0;\n position: number = 0;\n groupId: number = 0;\n behaviorId: number = 0;\n internal: boolean = false;\n mandatory: boolean = false;\n field: FieldTemplateDto = new FieldTemplateDto();\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): GroupFieldDto {\n let result = new GroupFieldDto();\n result.init(data);\n return result;\n }\n}","import { GroupFieldDto } from \"./group-field-dto\";\n\nexport class GroupTemplateDto {\n id: number = 0;\n name: string = \"\";\n description: string = \"\";\n label: string = \"\";\n deleted: boolean = false;\n template: boolean = false;\n internal: boolean = false;\n lastModificationTime: string = \"\";\n listGroupFields: GroupFieldDto[] = [];\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): GroupTemplateDto {\n let result = new GroupTemplateDto();\n result.init(data);\n return result;\n }\n}","import { GroupTemplateDto } from \"../group/group-templates-dto\";\n\nexport class FormGroupDto {\n id: number = 0;\n group: GroupTemplateDto = new GroupTemplateDto();\n internal: boolean = false;\n position: number = 0;\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): FormGroupDto {\n let result = new FormGroupDto();\n result.init(data);\n return result;\n }\n}","export class LinkedFieldDto {\n formLayoutId: number = 0;\n parentFieldId: number = 0;\n LinkedFieldId: string = \"\";\n tenantId: string = \"\";\n validationType: string = \"\";\n value: string = \"\";\n\n private init(data: any) {\n Object.assign(this, data);\n }\n\n static fromJS(data: any): LinkedFieldDto {\n let result = new LinkedFieldDto();\n result.init(data);\n return result;\n }\n}","import { FormLayoutDto } from \"../form/form-layout-dto\";\n\nexport class FormFilledDto {\n id: number = 0;\n formLayoutId: number = 0;\n externalId: string = '';\n dateCreated: string = new Date().toISOString();\n dateUpdated: string | null = null;\n formFilledValues: FormFilledValueDto[] = [];\n formFilledMetadatas: FormFilledMetadataDto[] | null = [];\n formLayout: FormLayoutDto | null = null;\n isDeleted: boolean = false;\n \n constructor(init?: Partial<FormFilledDto>) {\n Object.assign(this, init);\n }\n }\n \n export class FormFilledValueDto {\n value: string = '';\n fieldId: number = 0;\n \n constructor(init?: Partial<FormFilledValueDto>) {\n Object.assign(this, init);\n }\n }\n \n export class FormFilledMetadataDto {\n formFilledId: number = 0;\n key: string = '';\n value: string = '';\n \n constructor(init?: Partial<FormFilledMetadataDto>) {\n Object.assign(this, init);\n }\n }\n ","import {\n AfterContentInit,\n Component,\n Directive,\n EventEmitter,\n HostListener,\n input,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ConfigColumn, SortTable } from './s-tablet-model';\n\n@Component({\n selector: 's-tablet',\n templateUrl: './s-tablet.component.html',\n styleUrls: ['./s-tablet.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STabletComponent implements OnInit {\n @Input() data: any;\n @Input() loading: boolean = false;\n @Input() caption!: TemplateRef<any>;\n @Input() header!: TemplateRef<any>;\n @Input() bodyloading!: TemplateRef<any>;\n @Input() body!: TemplateRef<any>;\n @Input() configColumn!: ConfigColumn[];\n @Input() isTreeMode: boolean = false;\n @Input() id?: string = 's-tablet';\n loadingScroll = input<boolean>(false);\n\n @Output() updateDataEvent = new EventEmitter<any>();\n @Output() ordenByEvent = new EventEmitter<SortTable>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\n @Output() scrollEvent = new EventEmitter<void>();\n\n initData: any;\n fieldSelect!: SortTable;\n checkboxConfig = {\n useFormControl: false,\n };\n\n ngOnInit(): void {\n this.initData = this.data;\n }\n\n orderBy(column: ConfigColumn) {\n if (column.sortable !== false && !column.disabled && !column.checkbox) {\n if (column.id) {\n //column.id es el campo a ordenar.\n const sortAsc =\n this.fieldSelect && this.fieldSelect.SortField === column.id && this.fieldSelect.SortAsc === true\n ? false\n : true;\n this.fieldSelect = {\n SortAsc: sortAsc,\n SortField: column.id,\n };\n this.ordenByEvent.emit(this.fieldSelect);\n }\n }\n }\n\n updateData(_dataSort?: any): void {\n this.updateDataEvent.next(_dataSort);\n }\n\n restartData(): void {\n this.updateDataEvent.next(this.initData);\n }\n\n checkAll(event: any) {\n this.checkAllEvent.emit(event);\n }\n\n onScroll(event: Event): void {\n const element = event.target as HTMLElement;\n const atBottom = element.scrollHeight - element.scrollTop <= element.clientHeight + element.scrollHeight * 0.1; // antes del final para disparar el evento\n\n if (atBottom) {\n this.scrollEvent.emit();\n }\n }\n}\n\n@Directive({\n selector: '[SSorteableColumn]',\n host: {\n class: 'p-element',\n '[class.p-sortable-column]': 'isEnabled()',\n '[attr.aria-sort]': 'sortOrder',\n },\n})\nexport class SortableColumn {\n @Input('SSorteableColumn') field!: string;\n @Input() pSortableColumnDisabled: boolean = false;\n\n _dataSort: any;\n sorted: boolean = false;\n sortOrder!: string;\n\n constructor(public data: STabletComponent) {\n this._dataSort = this.data.data;\n }\n\n compareValues(key: any, order = 'asc') {\n return function innerSort(\n a: { [x: string]: any; hasOwnProperty: (arg0: any) => any },\n b: { [x: string]: any; hasOwnProperty: (arg0: any) => any }\n ) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n // property doesn't exist on either object\n return 0;\n }\n\n const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key];\n const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return order === 'desc' ? comparison * -1 : comparison;\n };\n }\n\n updateSortState() {\n this.sorted = !this.sorted;\n this.sorted\n ? this._dataSort.sort(this.compareValues(this.field, 'asc'))\n : this._dataSort.sort(this.compareValues(this.field, 'desc'));\n }\n\n @HostListener('click', ['$event'])\n onClick() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n}\n\n@Directive({\n selector: '[SInputSearch]',\n host: {\n class: 's-element-search',\n },\n})\nexport class InputSearch {\n @Input('SInputSearch') fields!: string;\n\n _dataFilter: any;\n inputTimeout?: any;\n dataBeforeSearch: any;\n\n constructor(private data: STabletComponent) {\n this._dataFilter = data.data;\n }\n\n filterItems(query: any) {\n let results = [\n ...this.data.data.filter((item: any) => {\n const regexp = new RegExp(query, 'i');\n const properties = Object.keys(item);\n return properties.some(property => regexp.test(item[property]));\n }),\n ];\n this._dataFilter = results;\n this.data.updateData(this._dataFilter);\n }\n\n @HostListener('keyup', ['$event.target'])\n onEnterKey(e: any) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(\n () => {\n this.filterItems(e.value);\n },\n 1000,\n null\n );\n\n if (e.value === '') {\n this.data.restartData();\n }\n }\n\n @HostListener('search', ['$event.target'])\n search(e: any) {\n if (e.value === '') {\n this.data.restartData();\n }\n }\n}\n\n@Directive({\n selector: '[STemplate]',\n})\nexport class STemplate implements AfterContentInit {\n @Input('STemplate') field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public table: STabletComponent\n ) {}\n\n ngAfterContentInit(): void {\n switch (this.field) {\n case 'caption':\n this.table.caption = this.element;\n break;\n case 'header':\n this.table.header = this.element;\n break;\n case 'body':\n this.table.body = this.element;\n break;\n case 'bodyloading':\n this.table.bodyloading = this.element;\n break;\n default:\n break;\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"caption\"></ng-container>\n<div class=\"pre-s-tablet s-scroll\" (scroll)=\"onScroll($event)\">\n <table class=\"s-tablet\" [id]=\"id\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && configColumn.length > 0 && !loading\">\n <th\n *ngFor=\"let column of configColumn\"\n [width]=\"column.width\"\n tabindex=\"0\"\n (keydown.enter)=\"orderBy(column)\"\n (click)=\"orderBy(column)\">\n <div\n class=\"s-tablet__header\"\n [ngClass]=\"{\n 's-tablet__header--align-center': column.align === 'center',\n 's-tablet__header--align-right': column.align === 'right',\n 's-tablet__header--align-left': column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <ng-container *ngIf=\"column.checkbox\">\n <span *ngIf=\"isTreeMode\" class=\"s-table-double__tree-spacer\"></span>\n <s-checkbox\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n </ng-container>\n <div\n class=\"s-tablet__header__label\"\n [id]=\"id + '-column-' + column.id\"\n [ngClass]=\"{\n 's-tablet__header__select': fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\" class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\">{{\n fieldSelect.SortAsc ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"column.sortable !== false && column.title && fieldSelect && fieldSelect.SortField !== column.id\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n <span\n *ngIf=\"!fieldSelect && column.sortable !== false && column.title\"\n class=\"s-tablet__header__icon--standard\">\n <s-icon-mat [type]=\"'symbol'\" size=\"sm\" class=\"icon cursor\" class=\"s-tablet__header__icon--standard\"\n >keyboard_arrow_down</s-icon-mat\n >\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody [ngClass]=\"loading ? 's-tablet__empty' : 's-tablet__body'\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\n @if (loadingScroll()) {\n <tbody class=\"s-tablet__body\">\n <tr>\n <td [attr.colspan]=\"configColumn.length || 1\" class=\"s-table-complete__loading\">\n <s-spinner [id]=\"id + '-spinner'\" size=\"sm\"></s-spinner>\n </td>\n </tr>\n </tbody>\n }\n </table>\n</div>\n","export enum ActionsButtonsType {\n DELETE = 'delete',\n EDIT = 'edit',\n DOUBLE_ARROW_UP = 'top',\n DOUBLE_ARROW_DOWN = 'bottom',\n ARROW_UP = 'up',\n ARROW_DOWN = 'down',\n TOKEN = 'token',\n RESTORE = 'restore',\n CANCEL = 'cancel',\n APPROVE = 'approve',\n INFO = 'information',\n SUMMARY = 'summary',\n DOWNLOAD = 'download',\n PLAYERDASHBOARD = 'player_dashboard',\n VIEW = 'view',\n}\n","import { IActionsButtons } from '../interfaces/ActionsButtons.interface';\nimport { ActionsButtonsType } from '../enums/ActionsButtonsType.enum';\nimport { THEME } from '../../../enums';\n\n//Todo traducciones\nexport const ActionsButtons: IActionsButtons[] = [\n {\n type: ActionsButtonsType.DELETE,\n color: THEME.RED,\n icon: 'delete',\n },\n {\n type: ActionsButtonsType.EDIT,\n color: '',\n icon: 'edit',\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_UP,\n color: '',\n icon: 'keyboard_double_arrow_up',\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_DOWN,\n color: THEME.SECONDARY,\n icon: 'keyboard_double_arrow_down',\n },\n {\n type: ActionsButtonsType.ARROW_UP,\n color: '',\n icon: 'keyboard_arrow_up',\n },\n {\n type: ActionsButtonsType.ARROW_DOWN,\n color: THEME.SECONDARY,\n icon: 'keyboard_arrow_down',\n },\n {\n type: ActionsButtonsType.TOKEN,\n color: '',\n icon: 'key',\n },\n {\n type: ActionsButtonsType.RESTORE,\n color: THEME.SECONDARY,\n icon: 'settings_backup_restore',\n },\n {\n type: ActionsButtonsType.CANCEL,\n color: THEME.RED,\n icon: 'cancel',\n },\n {\n type: ActionsButtonsType.APPROVE,\n color: THEME.GREEN,\n icon: 'check_circle',\n },\n {\n type: ActionsButtonsType.INFO,\n color: THEME.SECONDARY,\n icon: 'info',\n },\n {\n type: ActionsButtonsType.SUMMARY,\n color: THEME.SECONDARY,\n icon: 'web',\n },\n {\n type: ActionsButtonsType.DOWNLOAD,\n color: '',\n icon: 'download',\n },\n {\n type: ActionsButtonsType.PLAYERDASHBOARD,\n color: '',\n icon: 'video_settings',\n },\n {\n type: ActionsButtonsType.VIEW,\n color: THEME.SECONDARY,\n icon: 'visibility',\n },\n];\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActionButton } from './interfaces';\nimport { ActionsButtonsType } from './enums/ActionsButtonsType.enum';\nimport { ActionsButtons } from './constants/actions-buttons';\n\n@Component({\n selector: 's-table-actions-buttons',\n templateUrl: './table-actions-buttons.component.html',\n styleUrls: ['./table-actions-buttons.component.scss'],\n})\nexport class TableActionsButtonsComponent {\n @Input() tableActionsButtons!: ActionButton[];\n @Input() id?: string = 's-table-actions-buttons';\n @Output() clickButtonEvent = new EventEmitter<string>();\n\n Type = ActionsButtonsType;\n ActionsButtons = ActionsButtons;\n\n getButtonsType(type?: ActionsButtonsType) {\n const button = this.ActionsButtons.filter(action => action.type == type);\n return button[0];\n }\n\n getButtonsClass(button: ActionButton): string {\n const type: ActionsButtonsType | undefined = button.type ?? undefined;\n let color = button.color ?? this.getButtonsType(type)?.color;\n //Cuando no existe el color , o es default se pone por defecto primary\n if (!color || color === 'default') {\n color = 'primary';\n }\n return `table-actions-buttons__icon__${color}${button.disabled ? '--disabled' : ''}`;\n }\n\n handleButtonClick(button: ActionButton): void {\n if (!button.disabled) {\n const type = button.customType ?? button.type;\n this.clickButtonEvent.emit(type);\n }\n }\n}\n","<div class=\"d-flex justify-content-center table-actions-buttons\">\n <ng-container *ngFor=\"let button of tableActionsButtons\">\n <s-icon-mat\n tabindex=\"0\"\n class=\"table-actions-buttons__icon px-1 no-select\"\n size=\"md\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n [id]=\"id + '-' + button.type\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip #tooltip [title]=\"button.tooltip\" [position]=\"button.tooltipPosition ?? 'top'\" theme=\"dark\"></s-tooltip>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableActionsButtonsComponent } from './table-actions-buttons.component';\nimport { SIconMaterialModule } from '../../icon-material/s-icon-material.module';\nimport { STooltipModule } from '../../tooltip/s-tooltip.module';\n\n@NgModule({\n declarations: [TableActionsButtonsComponent],\n imports: [CommonModule, SIconMaterialModule, STooltipModule],\n exports: [TableActionsButtonsComponent],\n})\nexport class TableActionsButtonsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n InputSearch,\n SortableColumn,\n STabletComponent,\n STemplate,\n} from './s-tablet.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { TableActionsButtonsModule } from './table-actions-buttons';\nimport { SCheckboxModule } from '../checkbox/s-checkbox.module';\nimport { FormsModule } from '@angular/forms';\nimport { SSpinnerModule } from '../spinner';\n\n@NgModule({\n declarations: [STabletComponent, InputSearch, SortableColumn, STemplate],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SCheckboxModule,\n FormsModule,\n SSpinnerModule,\n ],\n exports: [\n STabletComponent,\n InputSearch,\n SortableColumn,\n STemplate,\n TableActionsButtonsModule,\n ],\n})\nexport class STabletModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 's-popup',\n templateUrl: './s-popup.component.html',\n styleUrls: ['./s-popup.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPopupComponent implements OnInit, AfterViewInit {\n @Input() title: string = '';\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' = 'primary';\n @Input() iconType: string = '';\n @Input() borderBody: boolean = false;\n @Input() width: number = 500;\n @Input() height: number = 500;\n @Input() showPopup: boolean = false;\n @Input() iconCustom: boolean = false;\n @Input() iconCustomName: string = '';\n @Input() footer!: TemplateRef<any>;\n @Input() body!: TemplateRef<any>;\n @Input() id?: string = 's-popup';\n\n @Output() closeEvent = new EventEmitter<void>();\n style: any;\n show70: boolean = false;\n test: number = 0;\n\n ngOnInit(): void {\n this.switch();\n }\n\n ngAfterViewInit(): void {\n this.checkScreenSize();\n }\n\n switch() {\n switch (this.type) {\n case 'primary':\n this.iconType = '';\n break;\n case 'secondary':\n this.iconType = 'info';\n break;\n case 'green':\n this.iconType = 'check_circle';\n break;\n case 'red':\n this.iconType = 'error';\n break;\n case 'yellow':\n this.iconType = 'warning';\n break;\n default:\n break;\n }\n }\n\n getCalcPopUp(size: any) {\n return 'calc(50% - ' + size / 2 + 'px)';\n }\n\n getCalcBody(size: any) {\n return 'calc(' + size + 'px - 120px)';\n }\n\n open() {\n this.showPopup = true;\n }\n\n close() {\n this.showPopup = false;\n this.closeEvent.next();\n }\n\n toogle() {\n this.showPopup = !this.showPopup;\n if (!this.showPopup) {\n this.closeEvent.next();\n }\n }\n\n //Si se achica la pantalla a menos del ancho definido , se le asigna 70%\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n this.checkScreenSize();\n }\n\n checkScreenSize() {\n this.show70 = window.innerWidth <= this.width;\n }\n}\n\n@Directive({\n selector: '[STemplatePopup]',\n host: {\n // 'class': 's-element-search',\n },\n})\nexport class STemplatePopup implements AfterContentInit {\n @Input('STemplatePopup') field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public content: SPopupComponent\n ) {}\n\n ngAfterContentInit(): void {\n switch (this.field) {\n case 'footer':\n this.content.footer = this.element;\n break;\n case 'body':\n this.content.body = this.element;\n break;\n default:\n break;\n }\n }\n}\n","<div *ngIf=\"showPopup\" class=\"s-popup\" [id]=\"id\">\n <div\n class=\"s-popup__card\"\n [ngClass]=\"show70 ? 's-popup__card--show70' : ''\"\n [ngStyle]=\"{\n width: this.width + 'px',\n height: this.height + 'px',\n left: getCalcPopUp(this.width),\n top: getCalcPopUp(this.height),\n }\">\n <div class=\"s-popup__card__head s-popup__card__head--{{ type }}\">\n <div class=\"s-popup__card__head__divisor\">\n <s-icon-mat *ngIf=\"iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{\n iconCustomName\n }}</s-icon-mat>\n <s-icon-mat *ngIf=\"iconType && !iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{\n iconType\n }}</s-icon-mat>\n <h4 [id]=\"id + '-title'\">{{ title }}</h4>\n </div>\n <s-icon-mat [id]=\"id + '-icon-close'\" class=\"s-popup__card__head__close\" (click)=\"close()\">close</s-icon-mat>\n </div>\n <div>\n <div\n class=\"s-popup__card__body\"\n [ngClass]=\"{ borderBody: 's-popup__card__body--border-body' }\"\n [ngStyle]=\"{ height: getCalcBody(this.height) }\">\n <div class=\"s-popup__card__body__container\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n </div>\n <div class=\"s-popup__card__footer\">\n <div class=\"s-popup__card__footer__container\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPopupComponent, STemplatePopup } from './s-popup.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SButtonModule } from '../button/button.module';\n\n\n@NgModule({\n declarations: [\n SPopupComponent,\n STemplatePopup\n ],\n imports: [\n SButtonModule,\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [\n SPopupComponent,\n STemplatePopup\n ]\n})\nexport class SPopupModule { }\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-toggle-switch-old',\n templateUrl: './s-toggle-switch.component.html',\n styleUrls: ['./s-toggle-switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SToggleSwitchComponent),\n multi: true\n }\n ]\n\n})\nexport class SToggleSwitchComponent implements OnChanges , ControlValueAccessor {\n\n onChange2 = (_: any) => { };\n onTouch = () => { };\n\n ignore: boolean = false;\n @Input() size: 'sm' | 'md' = 'sm';\n @Input() value: boolean = false;\n @Input() showIcon: boolean = true;\n @Input() disabled: boolean = false;\n @Input() label: string = \"\";\n @Input() icon: string = \"check\";\n @Input() iconOff: string = \"close\";\n @Input() vertical: boolean = false;\n @Input() boldSelectActive: boolean = true;\n\n @Output() changeEvent = new EventEmitter<boolean>();\n\n\n ngOnChanges(changes: SimpleChanges): void {\n const previousValue = changes['value']?.previousValue;\n const currentValue = changes['value']?.currentValue;\n\n if (previousValue !== undefined && currentValue !== previousValue) {\n this.ignore = true;\n }\n }\n\n onChange(): void {\n if (!this.ignore) {\n this.onTouch();\n this.onChange2(this.value);\n this.changeEvent.emit(this.value);\n }\n }\n\n getIcon() {\n return this.value || this.showIcon == false ? this.icon : this.iconOff;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange2 = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.value = !this.value;\n this.onChange();\n }\n }\n\n}\n","<div class=\"s-toggle-switch s-toggle-switch--size-{{ size }}\" [ngClass]=\"vertical ? 's-toggle-switch--vertical' : ''\">\n <label class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onChange()\" />\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n disabled: disabled,\n active: value,\n 'no-active': !value,\n }\">\n <s-icon-mat [size]=\"size === 'md' ? 'sm' : 'xs'\" class=\"slider-icon-close\" *ngIf=\"showIcon\">{{\n getIcon()\n }}</s-icon-mat>\n </span>\n </label>\n <label\n *ngIf=\"label\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive && value,\n disabled: disabled,\n }\"\n >{{ label }}</label\n >\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlBooleanAccessorDirective } from '../../input/directives/control-boolean-accessor.directive';\n\nexport class SSwitch {\n boldSelectActive?: boolean;\n disabled?: boolean;\n label?: string;\n icon?: string;\n iconOff?: string;\n id?: string;\n size?: 'sm' | 'md';\n showIcon?: boolean;\n vertical?: boolean;\n useFormControl?: boolean;\n readOnly?: boolean;\n}\n\n@Component({\n selector: 's-toggle-switch',\n templateUrl: './toggle-switch-form.component.html',\n styleUrls: ['./toggle-switch-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleSwitchFormComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleSwitchFormComponent<T> extends ControlBooleanAccessorDirective<T> implements AfterViewInit, OnInit {\n @ViewChild('inputHidden') inputHidden!: ElementRef<HTMLInputElement>;\n\n @Input() config: SSwitch = {};\n @Input() id!: string;\n\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n @Output() valueChange = new EventEmitter<boolean>();\n\n checked: boolean = false;\n\n private _valueInternal: boolean = false;\n private _isFirstWriteValue = true;\n private _controlSubscribed = false;\n\n ngAfterViewInit(): void {\n if (this.config.useFormControl && this.control && !this._controlSubscribed) {\n this.subscribeToControl();\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config?.id ?? `s-toggle-switch`;\n }\n\n private subscribeToControl(): void {\n if (this._controlSubscribed || !this.control) return;\n this._controlSubscribed = true;\n\n this.control.valueChanges.subscribe(val => {\n if (this._valueInternal !== val) {\n this._valueInternal = val;\n this.valueChange.emit(val);\n this.onChange(val);\n }\n });\n }\n\n get valueProxy(): boolean {\n return this._valueInternal;\n }\n\n set valueProxy(val: boolean) {\n if (val == null) {\n return;\n }\n this._valueInternal = val;\n if (!this.useFormControl && this.inputHidden) {\n this.inputHidden.nativeElement.checked = val;\n }\n }\n\n override writeValue(value: T): void {\n if (value == null) return;\n\n const newValue = value as boolean;\n this.value = newValue;\n this.valueProxy = newValue;\n\n if (this.useFormControl) {\n if (!this.control) {\n this.control = new FormControl(newValue);\n }\n\n this.subscribeToControl();\n\n if (this.control.value !== newValue) {\n this.control.setValue(newValue, { emitEvent: false });\n }\n } else {\n if (!this._isFirstWriteValue) {\n this.valueChange.emit(newValue);\n this.onChange(newValue);\n }\n }\n\n this.updateValue(newValue, true, this._isFirstWriteValue);\n\n this._isFirstWriteValue = false;\n }\n\n onInput(): void {\n if (this.config.disabled) return;\n const input = this.inputHidden?.nativeElement;\n this.value = input.checked;\n this.updateValue(this.value);\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n getValue() {\n if (this.value) this.checked = this.value === true;\n return this.checked;\n }\n\n getValueGeneral() {\n if (this.control) {\n return !!this.control.value;\n }\n return !!this.value;\n }\n\n getIcon() {\n const isChecked = this.control?.value ?? this.value === true;\n return isChecked ? (this.config?.icon ?? 'check') : (this.config?.iconOff ?? 'close');\n }\n\n onBlur(event: any): void {\n this.blur.next(event);\n }\n\n onFocus(event: any): void {\n this.focus.next(event);\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.value = !this.value;\n this.updateValue(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n }\n\n onClickLabel() {\n const input = this.inputHidden?.nativeElement;\n if (input && !this.config.disabled && !this.config.readOnly) {\n const newVal = !input.checked;\n input.checked = newVal;\n this.value = newVal;\n\n if (this.config?.useFormControl) {\n this.control?.setValue(newVal);\n this.onTouched();\n } else {\n this.onChange(newVal);\n }\n\n this.updateValue(newVal);\n }\n }\n\n private updateValue(newVal: boolean, fromWriteValue = false, skipEmit = false): void {\n if (this._valueInternal === newVal) return;\n\n this._valueInternal = newVal;\n\n if (!this.useFormControl && this.inputHidden) {\n this.inputHidden.nativeElement.checked = newVal;\n }\n\n this.onChange(newVal);\n\n if (!skipEmit) {\n this.valueChange.emit(newVal);\n }\n\n if (this.config?.useFormControl && !fromWriteValue) {\n this.control?.setValue(newVal, { emitEvent: false });\n }\n }\n}\n","<div\n class=\"s-toggle-switch\"\n [ngClass]=\"{\n 's-toggle-switch--size-md': config && config.size === 'md',\n 's-toggle-switch--vertical': config && config.vertical,\n }\">\n <label [id]=\"id + '-label'\" class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n #inputHidden\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [id]=\"id\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n #inputHidden\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [id]=\"id\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"getValue()\"\n (input)=\"onInput()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-template>\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n active: getValueGeneral(),\n 'no-active': !getValueGeneral(),\n disabled: (control?.disabled || (config && config.disabled)) && !(config && config.readOnly),\n }\">\n <s-icon-mat class=\"slider-icon-dynamic\" *ngIf=\"(config && config.showIcon !== false) || !config\">{{\n getIcon()\n }}</s-icon-mat>\n </span>\n </label>\n\n <div *ngIf=\"config?.label\" (click)=\"onClickLabel()\">\n <div\n *ngIf=\"control\"\n [id]=\"id + '-label'\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && control.value,\n disabled: (control.disabled || config.disabled) && !config.readOnly,\n }\">\n {{ config.label }}\n </div>\n\n <div\n *ngIf=\"!control\"\n [id]=\"id + '-label'\"\n class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': (config.boldSelectActive ?? true) && value,\n disabled: config.disabled && !config.readOnly,\n }\">\n {{ config.label }}\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToggleSwitchComponent } from './s-toggle-switch.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material';\nimport { ToggleSwitchFormComponent } from './toggle-switch-form/toggle-switch-form.component';\n\n@NgModule({\n declarations: [\n SToggleSwitchComponent,\n ToggleSwitchFormComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SIconMaterialModule,\n ReactiveFormsModule\n ],\n exports:[\n SToggleSwitchComponent,\n ToggleSwitchFormComponent\n ]\n})\nexport class SToggleSwitchModule { }\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-menu-item',\n templateUrl: './s-menu-item.component.html',\n styleUrls: ['./s-menu-item.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SMenuItemTitleComponent implements OnChanges, AfterViewChecked {\n \n @ViewChild('itemTitle') menuTitle: ElementRef | undefined;\n @Input() title: string | undefined = undefined;\n @Input() expand: any;\n \n widthTitle: number = 0;\n widthBox: number = 0;\n private viewInitialized = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes.expand && this.viewInitialized) {\n this.offsetWidth();\n this.cdr.detectChanges();\n }\n }\n \n ngAfterViewChecked(): void {\n if (!this.viewInitialized) {\n this.viewInitialized = true;\n this.offsetWidth();\n this.cdr.detectChanges();\n }\n }\n\n offsetWidth() {\n this.widthTitle = this.menuTitle?.nativeElement.offsetWidth;\n }\n\n counterCharacter(): boolean {\n return this.widthTitle > this.widthBox;\n }\n\n hoverItemTitle(event: MouseEvent): void {\n const targetElement = event.target as HTMLElement;\n document.documentElement.style.setProperty('--widthTitle', \"-\" + (targetElement.offsetWidth - this.widthBox) + \"px\");\n }\n\n hoverItemBox(event: MouseEvent): void {\n const targetElement = event.target as HTMLElement;\n this.widthBox = targetElement.offsetWidth;\n }\n\n}","<div class=\"menu-title-box\" (mouseenter)=\"hoverItemBox($event)\">\n <span #itemTitle\n (mouseenter)=\"hoverItemTitle($event)\" \n class=\"menu-title\" \n [ngClass]=\"{'menu-title-display': counterCharacter()}\"\n >{{title}}</span>\n</div>","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SMenuItem, SSidebarImage } from './s-sidebar-model';\nimport { SIcon } from '../icon-material/s-icon-material.model';\nimport { SidebarStateService } from '../services/sidebarStateService/sidebarStateService.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 's-sidebar',\n templateUrl: './s-sidebar.component.html',\n styleUrls: ['./s-sidebar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SSidebarComponent implements OnInit, OnDestroy {\n @Input() menu: SMenuItem[] = [];\n @Input() expand: boolean = true;\n @Input() showExpand: boolean = true;\n @Input() theme?: string;\n @Input() images?: SSidebarImage;\n @Input() id?: string = 's-sidebar';\n private subscription!: Subscription;\n\n @Output() clickEvent = new EventEmitter<SMenuItem>();\n @Output() clickEventMenu = new EventEmitter<boolean>();\n\n constructor(private sidebarState: SidebarStateService) {}\n\n ngOnInit(): void {\n this.expand = this.sidebarState.getExpand();\n this.checkScreenSize();\n // Suscripción al observable de expand sidebar\n this.subscription = this.sidebarState.expand$.subscribe(value => {\n this.expand = value;\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n clickParent(item: SMenuItem): void {\n this.actionExpandItem(item);\n }\n\n actionExpandItem(item: SMenuItem): void {\n const itemExpanedTemp = item.expanded;\n this.restartSelectedItems();\n item.expanded = !itemExpanedTemp;\n }\n\n actionExpandMenu(): void {\n this.sidebarState.setExpand(true);\n }\n\n actionCollapseMenu(): void {\n this.sidebarState.setExpand(false);\n }\n\n restartSelectedItems(): void {\n this.menu.forEach((itemToReset: SMenuItem) => {\n itemToReset.expanded = false;\n });\n }\n\n toogleMenu(): void {\n this.sidebarState.toggleExpand();\n this.clickEventMenu.next(this.sidebarState.getExpand());\n }\n\n onClickEventMenu(event: boolean): void {\n this.clickEventMenu.next(event);\n }\n\n clickItem(event: SMenuItem): void {\n this.clickEvent.next(event);\n }\n\n isSIcon(icon: string | SIcon): icon is SIcon {\n return typeof icon !== 'string';\n }\n\n getClassItem(item: SMenuItem): string {\n const icon = !!item.icon;\n const badge = !!item.badge;\n const children = !!item.children;\n\n switch (true) {\n case children && !icon:\n return badge ? 'grid-template-10-1-1' : 'grid-template-10-1';\n case children && icon:\n return badge ? 'grid-template-1-10-1-1' : 'grid-template-1-10-1';\n case !icon && badge:\n return 'grid-template-10-1';\n case icon && !badge:\n return 'grid-template-1-10';\n case !icon && !badge:\n return 'grid-template-1';\n case icon && badge:\n return 'grid-template-1-10-1';\n default:\n return 'default-value';\n }\n }\n\n getClassChildren(item: SMenuItem): string {\n return item.children ? 'item-parent' : 'item-child';\n }\n\n getClassActive(item: SMenuItem): string {\n return item.active ? 'active-forced' : '';\n }\n\n getImageSource(): string {\n if ((this.theme === 'default' || this.theme === '') && this.images) {\n return this.expand ? this.images.default.expand : this.images.default.collapse;\n } else if (this.theme === 'dark' && this.images) {\n return this.expand ? this.images.dark.expand : this.images.dark.collapse;\n }\n return '';\n }\n\n getTabIndex(item: SMenuItem): number {\n if (item.link || item.expanded) {\n return 0;\n }\n return -1;\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.checkScreenSize();\n }\n\n checkScreenSize(): void {\n if (window.innerWidth < 600) {\n this.actionCollapseMenu();\n }\n }\n}\n","<div\n class=\"s-sidebar\"\n [ngClass]=\"[theme ? 's-sidebar--theme-' + theme : '', expand ? 's-sidebar--open' : 's-sidebar--close']\"\n [id]=\"id\">\n <div\n *ngIf=\"images\"\n class=\"s-sidebar__top\"\n [ngClass]=\"{ 's-sidebar__top--expand': expand, 's-sidebar__top--collapse': !expand }\">\n <img [src]=\"getImageSource()\" alt=\"\" />\n </div>\n\n <ul class=\"s-sidebar__menu s-scroll\">\n <ng-container *ngFor=\"let item of menu; index as i\">\n <!-- Cuando es separate -->\n <div *ngIf=\"item.separate && item.separateText\" class=\"s-sidebar__menu__line-separate\">\n <div *ngIf=\"item.separateLine\" class=\"s-sidebar__menu__line-separate__line\"></div>\n <div class=\"s-sidebar__menu__line-separate__text\">{{ item.separateText }}</div>\n <div\n class=\"s-sidebar__menu__line-separate__dot cursor\"\n title=\"{{ item.separateText ? item.separateText : '' }}\"\n (click)=\"toogleMenu()\">\n ...\n </div>\n </div>\n <!-- Cuando NO tiene hijos esta visible y no es separate -->\n <li\n class=\"s-sidebar__menu__item\"\n [id]=\"id + '-title-' + i\"\n *ngIf=\"!item.hidden && !item.separate && !item.children\"\n title=\"{{ item.title }}\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, tabindex: true }\"></ng-template>\n </li>\n <!-- Cuando SI tiene hijos esta visible y no es separate -->\n <!-- Padre -->\n <li\n class=\"s-sidebar__menu__item {{\n item.expanded ? 's-sidebar__menu__item--open' : 's-sidebar__menu__item--close'\n }}\"\n *ngIf=\"!item.hidden && !item.separate && item.children\"\n title=\"{{ item.title }}\"\n [id]=\"id + '-title-' + i\"\n (click)=\"clickParent(item)\"\n (keydown.enter)=\"clickParent(item)\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item, tabindex: true }\"></ng-template>\n </li>\n <!-- Hijos -->\n <ul\n *ngIf=\"item.children && !item.hidden && !item.separate\"\n class=\"s-sidebar__menu {{ item.expanded ? 's-sidebar__menu--open' : 's-sidebar__menu--close' }}\">\n <ng-container *ngFor=\"let itemChildren of item.children; index as i\">\n <li *ngIf=\"!itemChildren.hidden\" [id]=\"id + '-children-' + i\">\n <ng-template\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: itemChildren,\n tabindex: item.expanded ? true : false,\n }\"></ng-template>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </ul>\n</div>\n\n<div\n tabindex=\"0\"\n class=\"no-select button-menu {{ expand ? 'button-menu--open' : 'button-menu--close' }}\"\n (keydown.enter)=\"toogleMenu()\"\n (click)=\"toogleMenu()\">\n <s-icon-mat size=\"md\">chevron_right</s-icon-mat>\n</div>\n\n<ng-template #itemTemplate let-item let-tabindex=\"tabindex\">\n <a\n [tabindex]=\"tabindex ? 0 : -1\"\n [ngClass]=\"[getClassItem(item), getClassChildren(item), getClassActive(item)]\"\n (click)=\"item.action ? item.action() : null; clickItem(item)\"\n [routerLink]=\"item.link ? item.link : undefined\"\n routerLinkActive=\"active\"\n title=\"{{ item.title ? item.title : '' }}\">\n <ng-template [ngTemplateOutlet]=\"iconTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item.icon }\"></ng-template>\n <s-menu-item [expand]=\"expand\" [title]=\"item.title\"></s-menu-item>\n <ng-template\n *ngIf=\"item.badge\"\n [ngTemplateOutlet]=\"badgeTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <s-icon-mat\n size=\"sm\"\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"arrow {{ item.expanded ? 'arrow-open' : 'arrow-close' }}\">\n keyboard_arrow_down\n </s-icon-mat>\n </a>\n</ng-template>\n\n<ng-template #iconTemplate let-icon>\n <s-icon-mat\n *ngIf=\"icon\"\n [type]=\"isSIcon(icon) && icon.type ? icon.type : 'icon'\"\n [size]=\"isSIcon(icon) && icon.size ? icon.size : 'md'\"\n class=\"icon-menu\"\n >{{ isSIcon(icon) && icon.name ? icon.name : icon }}\n </s-icon-mat>\n <s-icon-mat *ngIf=\"!icon\" type=\"symbol\" size=\"md\" class=\"icon-menu icon-menu-default\"\n >fiber_manual_record\n </s-icon-mat>\n</ng-template>\n\n<ng-template #badgeTemplate let-item>\n <s-badge class=\"badge-padding\" [class.collapsed-badge]=\"!expand\" type=\"{{ item.badgeType ? item.badgeType : 'secondary' }}\">\n {{ item.badge }}\n </s-badge>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSidebarComponent } from './s-sidebar.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { RouterModule } from '@angular/router';\nimport { SBadgeModule } from '../badge/s-badge.module';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { SMenuItemTitleComponent } from './components/s-menu-item.component';\n\n@NgModule({\n declarations: [SSidebarComponent, SMenuItemTitleComponent],\n imports: [CommonModule, RouterModule, SIconMaterialModule, SBadgeModule],\n providers: [LocalstorageService],\n exports: [SSidebarComponent, SMenuItemTitleComponent, RouterModule],\n})\nexport class SSidebarModule {}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 's-content',\n templateUrl: './s-content.component.html',\n styleUrls: ['./s-content.component.scss'],\n})\nexport class SContentComponent implements OnInit, OnDestroy {\n @Input() sidebar: boolean = true;\n @Input() expand?: boolean;\n @Input() id?: string = 's-content';\n subscriptionRefresh: Subscription;\n animated: boolean = false;\n\n constructor(public localStorage: LocalstorageService) {\n this.subscriptionRefresh = this.localStorage.refreshLocalStorage.subscribe(() => {\n this.loadDataFromLocalStorage();\n });\n }\n\n ngOnInit(): void {\n this.loadDataFromLocalStorage();\n }\n\n loadDataFromLocalStorage(): void {\n this.expand = this.localStorage.getItem('s-sidebar:expand');\n }\n\n ngOnDestroy(): void {\n this.subscriptionRefresh.unsubscribe();\n }\n\n onLoad() {\n this.animated = true;\n }\n}\n","<div\n (window:load)=\"onLoad()\"\n class=\"s-content s-scroll\"\n [id]=\"id\"\n [ngClass]=\"{\n 's-content--menu-expanded': sidebar && expand,\n 's-content--menu-closed': sidebar && !expand,\n animated: animated,\n }\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SContentComponent } from './s-content.component';\nimport { LocalstorageService } from '../shared/localstorage.service';\n\n\n\n@NgModule({\n declarations: [\n SContentComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SContentComponent\n ],\n providers:[LocalstorageService]\n})\nexport class SContentModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-precode',\n templateUrl: './s-precode.component.html',\n styleUrls: ['./s-precode.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPrecodeComponent {\n @Input() copy?: string = 'Copiar Código';\n @Input() copySucces?: string = 'Texto copiado';\n @Input() expand: boolean = false;\n @Input() copyId?: string;\n @Input() id?: string = 's-precode';\n\n async copyCode() {\n if (this.copyId) {\n let html = document.getElementById(this.copyId);\n let text = html?.innerText;\n if (text) {\n await navigator.clipboard.writeText(text);\n alert(this.copySucces);\n }\n }\n }\n}\n","<pre class=\"s-precode s-scroll\" [id]=\"id\">\n <span class=\"tag\">\n <ng-content></ng-content>\n </span>\n <s-button class=\"s-precode__button-copy s-precode__button-copy--small\" *ngIf=\"copyId\" (click)=\"copyCode()\">{{copy}} <s-icon-mat>file_copy</s-icon-mat></s-button>\n <s-button [pill]=\"true\" class=\"s-precode__button-copy s-precode__button-copy--tiny\" *ngIf=\"copyId\" (click)=\"copyCode()\"><s-icon-mat>file_copy</s-icon-mat></s-button>\n</pre>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPrecodeComponent } from './s-precode.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SButtonModule } from '../button';\n\n@NgModule({\n declarations: [\n SPrecodeComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SButtonModule\n ],\n exports: [\n SPrecodeComponent\n ]\n})\nexport class SPrecodeModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BreadcrumNav } from './interface/breadcrum-nav.interface';\n\n@Component({\n selector: 's-breadcrum',\n templateUrl: './s-breadcrum.component.html',\n styleUrls: ['./s-breadcrum.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SBreadcrumComponent {\n @Input() id?: string = 's-breadcrum';\n @Input() nav!: BreadcrumNav[];\n @Input() size: 'sm' | 'md' | 'lg' = 'sm';\n\n getStateClass(i: number, nav: BreadcrumNav): string {\n const isLastNavItem = i === this.nav.length - 1;\n if (!isLastNavItem) {\n return nav.routerLink ? 'breadcrum-back' : 'breadcrum-back-not-link';\n }\n return 'breadcrum-active';\n }\n\n getIconClass(i: number): string {\n let next = i + 1;\n return next === this.nav.length - 1 ? 'icon-active' : 'icon-default';\n }\n}\n","<div class=\"s-breadcrum mb-3 s-scroll\" [id]=\"id\">\n <div class=\"s-breadcrum__content s-breadcrum__content--size-{{ size }}\" *ngFor=\"let nv of nav; index as i\">\n <div class=\"s-breadcrum__content__texts\">\n <a\n routerLink=\"{{ nv.routerLink ? nv.routerLink : undefined }}\"\n [ngClass]=\"[nv.routerLink ? '' : 'disabled', nv.iconPosition === 'left' ? 'float-right' : 'float-left']\">\n <h4 [ngClass]=\"[getStateClass(i, nv)]\">{{ nv.title }}</h4>\n <s-icon-mat *ngIf=\"nv.iconName\" [ngClass]=\"[getStateClass(i, nv)]\" class=\"icon\">{{ nv.iconName }}</s-icon-mat>\n </a>\n </div>\n <s-icon-mat class=\"s-breadcrum__content__arrow-icon\" [ngClass]=\"[getIconClass(i)]\" *ngIf=\"i < nav.length - 1\"\n >keyboard_arrow_right</s-icon-mat\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SBreadcrumComponent } from './s-breadcrum.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [\n SBreadcrumComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n RouterModule\n ],\n exports: [SBreadcrumComponent, RouterModule]\n})\nexport class SBreadcrumModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-list',\n templateUrl: './s-list.component.html',\n styleUrls: ['./s-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SListComponent {\n @Input() disabled: boolean = false;\n @Input() selected: boolean = false;\n @Input() size: 'md' | 'sm' | 'xs' = 'md';\n @Input() id?: string = 's-list';\n}\n","<div\n tabindex=\"0\"\n [id]=\"id\"\n class=\"s-list s-scroll \n {{ disabled ? 's-list--disabled' : '' }} {{ selected ? 's-list--selected' : '' }} \">\n <div class=\"s-list__content\">\n <div\n class=\"s-list__content__drag s-list__content__drag--no-select s-list__content__drag--cursor s-list__content__drag--{{\n size\n }}\">\n <s-icon-mat class=\"drag-indicator\">drag_indicator</s-icon-mat>\n </div>\n <div class=\"s-list__content__gral\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SListComponent } from './s-list.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n\n@NgModule({\n declarations: [\n SListComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SListComponent]\n})\nexport class SListModule { }\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-list-simple',\n templateUrl: './s-list-simple.component.html',\n styleUrls: ['./s-list-simple.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SListSimpleComponent {\n @Input() listStyle: 'check' | 'chevron' | 'dot' | 'a1' | 'folder' | 'default' = 'default';\n @Input() id?: string = 's-list-simple';\n}\n","<div class=\"s-list-simple s-list-simple--{{ listStyle }}\" [id]=\"id\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SListSimpleComponent } from './s-list-simple.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n\n@NgModule({\n declarations: [\n SListSimpleComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SListSimpleComponent]\n})\nexport class SListSimpleModule { }\n","export abstract class TemperatureComponent {\n\n red: string = 'red';\n orange: string = 'orange';\n yellow: string = 'yellow';\n green: string = 'green';\n gray: string = 'gray';\n\n percentage: number = 50;\n color?: string;\n\n\n initColor(): void {\n this.color = this.color || this.temperatureColor;\n }\n\n get temperatureColor(): string {\n if(this.percentage < 1) return this.gray\n if(this.percentage < 25) return this.red\n if(this.percentage < 50) return this.orange\n if(this.percentage < 75) return this.yellow\n return this.green\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TemperatureComponent } from './temperature/temperature.component';\n\n@Component({\n selector: 's-progressbar',\n templateUrl: './s-progressbar.component.html',\n styleUrls: ['./s-progressbar.component.scss'],\n})\nexport class SProgressbarComponent extends TemperatureComponent implements OnInit {\n @Input() override percentage: number = 50;\n @Input() customColor: string = '';\n @Input() id?: string = 's-progressbar';\n override color: string = '';\n\n ngOnInit(): void {\n this.initColor();\n }\n}\n","<div class=\"s-progressbar\" [id]=\"id\">\n <div class=\"s-progressbar__bar\">\n <div class=\"s-progressbar__bar--background\"></div>\n <div\n class=\"s-progressbar__bar--progresso\"\n [style.width.%]=\"percentage\"\n [ngClass]=\"color\"\n [style.background]=\"customColor\"\n id=\"bar\"></div>\n </div>\n <div class=\"s-progressbar__percentage\">\n <h6 *ngIf=\"percentage < 100\" [id]=\"id + '-percentage'\">{{ percentage }}%</h6>\n <s-icon-mat *ngIf=\"percentage > 99\" class=\"icon-check\">done</s-icon-mat>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SProgressbarComponent } from './s-progressbar.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n SProgressbarComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SProgressbarComponent]\n})\nexport class SProgressbarModule { }\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { STimelineItem } from './s-timeline.model';\n\n@Component({\n selector: 's-timeline',\n templateUrl: './s-timeline.component.html',\n styleUrls: ['./s-timeline.component.scss'],\n})\nexport class STimelineComponent {\n selectedIndex: number | null = null;\n private _selectedStep: STimelineItem['id'] | null = null;\n @Input() defaultLine: boolean = false;\n @Input() steps: STimelineItem[] = [];\n @Input() set selectedStep(value: STimelineItem['id'] | null) {\n this._selectedStep = value;\n this.updateSelectedIndex();\n }\n get selectedStep(): STimelineItem['id'] | null {\n return this._selectedStep;\n }\n @Input() id?: string = 's-timeline';\n\n @Output() selectedStepChange = new EventEmitter<STimelineItem['id']>();\n\n onSelect(step: STimelineItem, index: number): void {\n if (step.disabled || step.readonly) return;\n this.selectedIndex = index;\n this.selectedStepChange.emit(step.id);\n }\n\n private updateSelectedIndex(): void {\n if (this._selectedStep == null) {\n this.selectedIndex = null;\n return;\n }\n const sel = String(this._selectedStep);\n this.selectedIndex = this.steps.findIndex(step => String(step.id) === sel);\n }\n}\n","@for (step of steps; track $index) {\n <div\n class=\"s-timeline\"\n [ngClass]=\"{\n disabled: step.disabled,\n readonly: step.readonly,\n selected: !step.disabled && selectedIndex === $index,\n }\"\n (click)=\"onSelect(step, $index)\"\n (keypress)=\"onSelect(step, $index)\"\n [id]=\"id\"\n [attr.aria-disabled]=\"step.disabled || step.readonly ? true : null\"\n [attr.tabindex]=\"step.disabled || step.readonly ? -1 : 0\">\n <div\n class=\"s-timeline__circle\"\n [class.no-after]=\"$index + 1 === steps.length\"\n [ngClass]=\"\n defaultLine\n ? ['s-timeline__circle--h-' + 100]\n : ['s-timeline__circle--theme-' + (step.theme || 'primary'), 's-timeline__circle--h-' + 100]\n \">\n @if (step.label || step.icon) {\n <div class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{ step.theme }}\">\n @if (step.label) {\n {{ step.label | slice: 0 : 3 }}\n } @else {\n <s-icon-mat size=\"sm\" class=\"s-timeline__circle__steps\" [id]=\"id + '-icon-' + step.icon\">\n {{ step.icon }}\n </s-icon-mat>\n }\n </div>\n } @else {\n <div class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{ step.theme }}\"></div>\n }\n </div>\n <div class=\"s-timeline__content\">\n @if (step.title) {\n <div class=\"s-timeline__content__title\" [id]=\"id + '-title-' + step.id\">\n {{ step.title }}\n </div>\n }\n @if (step.template) {\n <ng-container\n [ngTemplateOutlet]=\"step.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: step,\n step: step,\n }\"></ng-container>\n }\n </div>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STimelineComponent } from './s-timeline.component';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n STimelineComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [STimelineComponent]\n})\nexport class STimelineModule { }\n","import { Injectable } from '@angular/core';\n\nexport interface Toast {\n id: string;\n title: string;\n content: string;\n theme: 'default' | 'red' | 'yellow' | 'green';\n iconTheme: string;\n}\n\n@Injectable()\nexport class SToastService {\n toasts: Toast[] = [];\n\n open(title: string, content: string, theme: 'default' | 'red' | 'yellow' | 'green' = 'default', id?: string) {\n const toast: Toast = {\n id: id ?? `s-toast`,\n title,\n content,\n theme,\n iconTheme: this.getIconTheme(theme),\n };\n this.toasts.push(toast);\n\n // Eliminar después de 5 segundos\n // eslint-disable-next-line no-undef\n setTimeout(() => this.removeToast(toast.id), 5000);\n }\n\n removeToast(id: string) {\n this.toasts = this.toasts.filter(toast => toast.id !== id);\n }\n\n getIconTheme(theme: 'default' | 'red' | 'yellow' | 'green'): string {\n switch (theme) {\n case 'default':\n return 'info';\n case 'red':\n return 'error';\n case 'green':\n return 'check_circle';\n case 'yellow':\n return 'warning';\n default:\n return 'info';\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SToastService } from './s-toast-service';\n\n@Component({\n selector: 's-toast',\n templateUrl: './s-toast.component.html',\n styleUrls: ['./s-toast.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SToastComponent {\n constructor(public toastService: SToastService) {}\n}\n","<div class=\"s-toast-container\">\n <div *ngFor=\"let toast of toastService.toasts\">\n <div\n class=\"s-toast s-toast__position s-toast__theme-{{ toast.theme }} animated s-toast__animation-bounceInDown\"\n [id]=\"toast.id\">\n <div class=\"s-toast-box\">\n <div class=\"s-toast-box-left\">\n <s-icon-mat class=\"d-flex toast-icon\">{{ toast.iconTheme }}</s-icon-mat>\n <span class=\"toast-title\">{{ toast.title }}</span>\n </div>\n <div class=\"s-toast-box-right\">\n <s-icon-mat\n tabindex=\"0\"\n (click)=\"toastService.removeToast(toast.id)\"\n (keydown.enter)=\"toastService.removeToast(toast.id)\"\n class=\"cursor-close d-flex cursor\"\n >close</s-icon-mat\n >\n </div>\n </div>\n <div *ngIf=\"toast.content\" class=\"s-toast-content\">\n <p>{{ toast.content }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToastComponent } from './s-toast.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SToastService } from './s-toast-service';\n\n\n@NgModule({\n declarations: [\n SToastComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule\n ],\n exports: [SToastComponent],\n providers:[SToastService]\n})\nexport class SToastModule { }\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-theme',\n template: '',\n styleUrls: ['./s-theme.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SThemeComponent {\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SThemeComponent } from './s-theme.component';\n\n\n@NgModule({\n declarations: [\n SThemeComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SThemeComponent]\n})\nexport class SThemeModule { }\n","import { Component, Input, Output, EventEmitter, input, signal, effect, OnInit } from '@angular/core';\nimport { TreeNode } from './models/tree-node.interface';\n\n@Component({\n selector: 's-tree-list',\n templateUrl: './s-tree-list.component.html',\n styleUrls: ['./s-tree-list.component.scss'],\n})\nexport class STreeListComponent implements OnInit {\n @Input() treeNodes: TreeNode[] = []; // Lista de valores que va a nutrir el árbol\n @Input() hideAll: boolean = false; // Ocultar todos los checkboxes\n @Input() id?: string = 's-tree-list';\n selected = input<string>();\n\n //TODO QUEADAN ESTOS DOS OUTPUT PERO PARECIERAN SER LO MISMO\n @Output() emitSelectNode = new EventEmitter<any>(); //Nodo seleccionado\n @Output() emitChecked = new EventEmitter<any>(); //Notifica los cambios, string[]\n\n selectedNode = signal<TreeNode | undefined>(undefined);\n public checkNodes: any[] = [];\n\n constructor() {\n effect(\n () => {\n const selectedValue = this.selected();\n if (selectedValue && this.treeNodes.length > 0) {\n const node = this.findAndExpandNode(selectedValue);\n this.selectedNode.set(node);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n ngOnInit(): void {\n if (this.selected() && this.treeNodes.length > 0) {\n const selectedValue = this.selected();\n if (selectedValue) {\n const node = this.findAndExpandNode(selectedValue);\n this.selectedNode.set(node);\n }\n }\n }\n\n findAndExpandNode(value: string): TreeNode | undefined {\n const expandParents = (nodes: TreeNode[], targetValue: string): TreeNode | undefined => {\n for (const node of nodes) {\n if (node.value === targetValue) return node;\n\n if (node.children) {\n const found = expandParents(node.children, targetValue);\n if (found) {\n node.expanded = true; // expandimos el padre\n return found;\n }\n }\n }\n return undefined;\n };\n\n return expandParents(this.treeNodes, value);\n }\n\n toggleNode(node: TreeNode): void {\n node.expanded = !node.expanded;\n }\n\n selectNode(node: TreeNode): void {\n this.emitSelectNode.emit(node);\n }\n\n isNodeSelected(node: TreeNode): boolean {\n return this.selectedNode() === node;\n }\n\n checkNode(event: any) {\n const node = event.value;\n const isChecked = event.event;\n\n // Update checked nodes in tree\n const nodeInTree = this.findNode(this.treeNodes, node, isChecked);\n if (nodeInTree) this.checkAllChildren([nodeInTree], isChecked);\n\n if (isChecked) {\n this.checkNodes?.push(node.value);\n } else {\n this.checkNodes = this.checkNodes?.filter(c => c != node.value);\n }\n\n const checkedNodes = this.getCheckedNodesToNotify(this.treeNodes, []);\n // Notify change\n this.emitChecked.emit(checkedNodes);\n }\n\n private getCheckedNodesToNotify(nodes: TreeNode[], result: string[]): string[] {\n nodes.forEach(node => {\n if (node.checked) result.push(node.value);\n if (node.children) {\n this.getCheckedNodesToNotify(node.children, result);\n }\n });\n return result;\n }\n\n findNode(trees: TreeNode[], findedNode: TreeNode, isChecked: boolean): TreeNode | undefined {\n for (const node of trees) {\n if (node == findedNode) return node;\n if (node.children) {\n const founded = this.findNode(node.children, findedNode, isChecked);\n if (founded) return founded;\n }\n }\n return undefined;\n }\n\n private checkAllChildren(nodes: TreeNode[], isChecked: boolean) {\n nodes.forEach(n => {\n n.checked = isChecked;\n if (n.children) this.checkAllChildren(n.children, isChecked);\n });\n }\n}\n","<ng-template #treeNodeTemplate let-node>\n <div\n class=\"s-tree-list\"\n [id]=\"id\"\n (click)=\"selectNode(node)\"\n [ngClass]=\"node === selectedNode() ? 's-tree-list__selected-node' : ''\">\n <span\n class=\"s-tree-list__toggle-icon\"\n *ngIf=\"node.children && node.children.length\"\n tabindex=\"0\"\n (keydown.enter)=\"toggleNode(node)\"\n (click)=\"toggleNode(node)\">\n <s-icon-mat class=\"s-tree-list__icon-arrow\">{{\n node.expanded ? 'keyboard_arrow_down' : 'keyboard_arrow_right'\n }}</s-icon-mat>\n </span>\n\n <div class=\"s-tree-list__content\">\n <s-checkbox-old\n *ngIf=\"!node.hide && !node.hideRoot && !node.hideAll && !hideAll\"\n [model]=\"node.checked\"\n [value]=\"node\"\n [isUndefined]=\"node.isUndefined\"\n (emitSelection)=\"checkNode($event)\"\n [disabled]=\"node.disable\">\n </s-checkbox-old>\n <s-icon-mat class=\"s-tree-list__content-icon\" *ngIf=\"node.icon\">{{ node.icon }}</s-icon-mat>\n <span class=\"s-tree-list__content-title\">{{ node.label }}</span>\n </div>\n </div>\n\n <div class=\"s-tree-list__node-children\" *ngIf=\"node.expanded && node.children\">\n <ng-container *ngFor=\"let child of node.children\">\n <div\n [id]=\"id + '-child-' + child.value\"\n [ngTemplateOutlet]=\"treeNodeTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"></div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-container *ngFor=\"let node of treeNodes\">\n <ng-container [ngTemplateOutlet]=\"treeNodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STreeListComponent } from './s-tree-list.component';\nimport { FormsModule } from '@angular/forms';\nimport { SCheckboxModule } from '../checkbox';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [\n STreeListComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n SCheckboxModule,\n SIconMaterialModule\n ],\n exports:[\n STreeListComponent\n ]\n})\nexport class STreeListModule { }\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { SSelect } from '../select/select/s-select-model';\n\nexport interface IPageSizes {\n title: string;\n value: number;\n}\n\n@Component({\n selector: 's-pagination',\n templateUrl: './s-pagination.component.html',\n styleUrls: ['./s-pagination.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SPaginationComponent implements OnInit, OnChanges {\n pageSizesDefault: IPageSizes[] = [\n { title: '10 ítems', value: 10 },\n { title: '15 ítems', value: 15 },\n { title: '20 ítems', value: 20 },\n { title: '25 ítems', value: 25 },\n ];\n //Translate scheme\n @Input() showing?: string = 'Mostrando';\n @Input() to?: string = 'a';\n @Input() of?: string = 'de';\n @Input() items?: string = 'ítems.';\n @Input() empty?: string = 'Sin ítems para mostrar.';\n\n @Input() disabled: boolean = false;\n @Input() pageNumber: number = 0;\n @Input() totalItems: number = 1; //Resultados totales\n @Input() pageSize: number = 10;\n @Input() pageSizes?: IPageSizes[];\n @Input() id?: string = 's-pagination';\n\n @Output() pageEmitter: EventEmitter<number> = new EventEmitter();\n @Output() paginationEmitter: EventEmitter<number> = new EventEmitter();\n\n startIndex: number = 0;\n totalPages: number = 0;\n startResults: number = 0;\n endResults: number = 0;\n\n previousPage: number = 0;\n nextPage: number = 0;\n\n selectConfig!: SSelect;\n selectValue!: string;\n\n ngOnChanges(): void {\n this.setPagination();\n if (this.selectConfig) {\n this.selectConfig.disabled = this.totalItems === 0 ? true : this.disabled;\n }\n }\n\n ngOnInit(): void {\n this.setPagination();\n this.initConfig();\n }\n\n setPagination() {\n //Calcula el total de páginas\n this.totalPages = Math.ceil(this.totalItems / this.pageSize);\n this.startIndex = (this.pageNumber - 1) * this.pageSize;\n this.setResultsRange();\n this.setPages();\n }\n\n setResultsRange() {\n this.startResults = (this.pageNumber - 1) * this.pageSize + 1;\n const results = this.startResults + this.pageSize - 1;\n this.endResults = results > this.totalItems ? this.totalItems : results;\n }\n\n next() {\n this.pageNumber++;\n this.setPage();\n }\n\n previous() {\n this.pageNumber--;\n this.setPage();\n }\n\n setPage() {\n this.pageSelection(this.pageNumber);\n this.setPages();\n }\n\n setPages() {\n this.previousPage = this.pageNumber - 1;\n this.nextPage = this.pageNumber + 1;\n }\n\n pageSelection(page: number) {\n this.pageNumber = page;\n this.pageEmitter.emit(this.pageNumber);\n this.setPagination();\n }\n\n selectPagination(event: string) {\n this.pageSize = Number(event);\n this.pageNumber = 1; // reset page\n this.setPagination();\n this.paginationEmitter.emit(this.pageSize);\n }\n\n initConfig() {\n if (this.pageSizes) {\n this.selectValue = this.pageSize.toString();\n const paginations = this.pageSizes.map(item => ({\n ...item,\n value: String(item.value),\n }));\n this.selectConfig = {\n id: 'selectPagination',\n useFormControl: false,\n options: paginations,\n };\n }\n }\n}\n","<div class=\"s-pagination\" [ngClass]=\"{ 's-pagination--selected': pageSizes }\" [id]=\"id\">\n <div class=\"s-pagination__items\">\n <s-select\n *ngIf=\"selectConfig\"\n [config]=\"selectConfig\"\n [(ngModel)]=\"selectValue\"\n (ngModelChange)=\"selectPagination($event)\">\n </s-select>\n <p class=\"s-body-2 s-pagination__items--text\" *ngIf=\"totalItems > pageSize\">\n {{ showing }} {{ startResults }} {{ to }} {{ endResults }} {{ of }} {{ totalItems }} {{ items }}\n </p>\n <p class=\"s-body-2 s-pagination__items--text\" *ngIf=\"totalItems <= pageSize && totalItems !== 0\">\n {{ showing }} {{ totalItems }} {{ items }}\n </p>\n <p class=\"s-body-2 s-pagination__items--text disabled\" *ngIf=\"totalItems === 0\">\n {{ empty }}\n </p>\n </div>\n <div class=\"s-pagination__pages-content\" *ngIf=\"!disabled\">\n <s-icon-mat\n [id]=\"id + '-previous'\"\n tabindex=\"0\"\n class=\"cursor display-flex\"\n *ngIf=\"pageNumber > 1\"\n (keydown.enter)=\"previous()\"\n (click)=\"previous()\"\n >keyboard_arrow_left</s-icon-mat\n >\n <p\n tabindex=\"0\"\n *ngIf=\"pageNumber > 1\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(1)\"\n (click)=\"pageSelection(1)\">\n 1\n </p>\n <p\n *ngIf=\"previousPage > 2 && totalPages > 2\"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n [id]=\"id + '-previousPage'\"\n tabindex=\"0\"\n *ngIf=\"previousPage >= 2\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(previousPage)\"\n (click)=\"pageSelection(previousPage)\">\n {{ previousPage }}\n </p>\n <s-button [pill]=\"true\">\n <label [id]=\"id + '-pageNumber'\">{{ pageNumber }}</label>\n </s-button>\n <p\n [id]=\"id + '-nextPage'\"\n tabindex=\"0\"\n *ngIf=\"nextPage > 1 && pageNumber !== totalPages && totalItems !== 0\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(nextPage)\"\n (click)=\"pageSelection(nextPage)\">\n {{ nextPage }}\n </p>\n <p\n *ngIf=\"totalPages !== nextPage + 1 && pageNumber !== totalPages && totalPages > 2\"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n [id]=\"id + '-totalPages'\"\n tabindex=\"0\"\n *ngIf=\"totalPages !== nextPage && pageNumber !== totalPages && totalItems !== 0\"\n class=\"s-pagination__pages-content__page-number\"\n (keydown.enter)=\"pageSelection(totalPages)\"\n (click)=\"pageSelection(totalPages)\">\n {{ totalPages }}\n </p>\n <s-icon-mat\n [id]=\"id + '-next'\"\n tabindex=\"0\"\n class=\"cursor display-flex\"\n *ngIf=\"pageNumber < totalPages\"\n (keydown.enter)=\"next()\"\n (click)=\"next()\"\n >keyboard_arrow_right</s-icon-mat\n >\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SPaginationComponent } from './s-pagination.component';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SSelectModule } from '../select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [SPaginationComponent],\n imports: [\n CommonModule,\n SButtonModule,\n SIconMaterialModule,\n SSelectModule,\n FormsModule,\n ],\n exports: [SPaginationComponent],\n})\nexport class SPaginationModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-thumbnail',\n templateUrl: './s-thumbnail.component.html',\n styleUrls: ['./s-thumbnail.component.scss']\n})\n\nexport class SThumbnailComponent {\n \n @Input() title?: string;\n @Input() url!: string;\n @Input() size: number = 40;\n\n}","<div class=\"s-thumbnail\">\n <img appImageLoader alt=\"{{title}}\" width=\"{{size}}\" height=\"{{size}}\" src=\"{{url}}\">\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SThumbnailComponent } from './s-thumbnail.component';\nimport { SharedModule } from '../shared/shared.module';\n\n\n@NgModule({\n declarations: [\n SThumbnailComponent\n ],\n imports: [\n CommonModule,\n SharedModule\n ],\n exports: [SThumbnailComponent]\n})\nexport class SThumbnailModule { }\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IConfigTabs, ITab } from './models';\n\n@Component({\n selector: 's-tabs',\n templateUrl: './s-tabs.component.html',\n styleUrls: ['./s-tabs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class STabsComponent implements OnInit, OnChanges {\n @Input() tabs?: ITab[];\n @Input() configTabs?: IConfigTabs;\n @Input() id!: string;\n @Output() eventSelect = new EventEmitter<ITab>();\n\n public tabsConfig?: ITab[];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tabs'] || changes['configTabs']) {\n this.tabsConfig = this.tabs;\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.configTabs?.id ?? `s-tabs`;\n this.tabsConfig = this.tabs;\n }\n\n getBackground(): boolean {\n return !!this.configTabs?.background || false;\n }\n\n selectTab(tab: ITab) {\n if (tab.selected || tab.disabled) {\n return;\n }\n this.tabs?.forEach(tab => (tab.selected = false));\n tab.selected = true;\n this.eventSelect.emit(tab);\n }\n}\n","<div\n class=\"s-tabs s-scroll no-select\"\n [id]=\"id\"\n *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n 's-tabs__vertical': configTabs?.orientation === 'vertical',\n 's-tabs__underline': configTabs?.underline,\n 's-tabs__backgroundSelected': configTabs?.backgroundSelected,\n }\"\n [ngStyle]=\"{\n '--tabs-width': configTabs?.width + '%',\n '--tabs-height': configTabs?.height + '%',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig; index as i\"\n [ngClass]=\"{\n selected: tab.selected,\n highlight: tab.highlight,\n disabled: tab.disabled,\n }\"\n tabindex=\"0\"\n (keydown.enter)=\"selectTab(tab)\"\n (click)=\"selectTab(tab)\">\n <s-icon-mat\n class=\"s-tabs__icon\"\n *ngIf=\"tab.icon\"\n [ngClass]=\"[tab.iconType ? tab.iconType : '']\"\n [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\" [id]=\"id + '-' + i\">{{ tab.text }}</span>\n <s-badge *ngIf=\"tab.badge\" [type]=\"tab.badgeType ? tab.badgeType : 'primary'\">{{ tab.badge }}</s-badge>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STabsComponent } from './s-tabs.component';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SBadgeModule } from '../badge/s-badge.module';\n\n@NgModule({\n declarations: [STabsComponent],\n imports: [CommonModule, SIconMaterialModule, SBadgeModule],\n exports: [STabsComponent],\n})\nexport class STabsModule {}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-collapse',\n templateUrl: './s-collapse.component.html',\n styleUrls: ['./s-collapse.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SCollapseComponent {\n @Input() id?: string = 's-collapse';\n @Input() title!: string;\n @Input() subtitle: string = '';\n @Input() expand: boolean = false;\n\n @Output() arrowClick = new EventEmitter<boolean>();\n}\n","<div class=\"s-collapse\" [id]=\"id\">\n <div class=\"s-collapse__header\" [ngClass]=\"expand ? 'open' : 'close'\">\n <div class=\"s-collapse__header__title\">\n <span class=\"s-collapse__header__title__text\">{{ title }}</span>\n <span class=\"s-collapse__header__title__subtext\" *ngIf=\"subtitle\">{{ subtitle }}</span>\n </div>\n <div class=\"s-collapse__header__arrow\">\n <div\n class=\"s-collapse__header__arrow__content no-select\"\n [ngClass]=\"expand ? 'open' : 'close'\"\n tabindex=\"0\"\n (keydown.enter)=\"arrowClick.emit(!expand)\"\n (click)=\"arrowClick.emit(!expand)\">\n <s-icon-mat size=\"md\" class=\"s-collapse__header__arrow__content__icon\">chevron_right</s-icon-mat>\n </div>\n </div>\n </div>\n\n <div class=\"s-collapse__body\" [ngClass]=\"expand ? 'open' : 'close'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SCollapseComponent } from './s-collapse.component';\n\n@NgModule({\n declarations: [\n SCollapseComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n ],\n exports: [SCollapseComponent]\n})\nexport class SCollapseModule { }\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SSubMenu, SSubMenuItem } from '../sub-menu';\nimport { INPUT_TYPE, SInput } from '../input/components/input/s-input-model';\nimport { SMultiSelect } from '../select/select-multiple/s-select-multiple-model';\nimport { SSelect } from '../select/select/s-select-model';\n\nexport interface SToolbarTop {\n actionButton?: string; //Texto del btn de acción, sino no se muestra\n actionButtonIcon?: string; // Personalizar el icono\n actionButtonIconDisabled?: boolean; // Ocultar icono\n multiActionButton?: string; //Texto del btn de multiAcción, sino no se muestra\n deleteButton?: string; //Texto del btn de eliminar, sino no se muestra\n deleteDisabled?: boolean;\n filterButton?: string; //Texto del btn de filtrar, sino no se muestra\n filtersDisabled?: boolean;\n filters?: SSubMenu; //Filtros para mostrar en el desplegable\n placeholderSearch?: string; //Por defecto 'Buscar\n search?: boolean; //Por defecto true\n searchValue?: string;\n select?: SSelect;\n multiSelect?: SMultiSelect;\n pillButton?: string; //Icono del btn de pill, sino no se muestra\n title?: string;\n id?: string;\n}\n\n@Component({\n selector: 's-toolbar-top',\n templateUrl: './toolbar-top.component.html',\n styleUrls: ['./toolbar-top.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SToolbarTopComponent implements OnInit, OnChanges {\n @Input() config!: SToolbarTop;\n @Output() actionEvent = new EventEmitter<void>();\n @Output() deleteEvent = new EventEmitter<void>();\n @Output() filterEvent = new EventEmitter<string[]>();\n @Output() multiSelectEvent = new EventEmitter<string[]>();\n @Output() pillButtonEvent = new EventEmitter<void>();\n @Output() selectEvent = new EventEmitter<string>();\n @Output() searchEvent = new EventEmitter<string>();\n id!: string;\n\n inputSearchConfig!: SInput;\n multiActionMenu!: SSubMenu;\n multiAction: boolean = false;\n select!: string;\n filterToggle: boolean = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n if (this.config.search && this.config.filtersDisabled) {\n this.inputSearchConfig.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.select) {\n this.config.select.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiSelect) {\n this.config.multiSelect.disabled = this.config.filtersDisabled ?? false;\n }\n }\n }\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-toolbar-top`;\n this._initConfig();\n }\n\n action() {\n this.actionEvent.emit();\n }\n\n multiActionToggle() {\n this.multiAction = !this.multiAction;\n }\n\n delete() {\n this.deleteEvent.emit();\n }\n\n search(text: string) {\n this.searchEvent.emit(text);\n }\n\n selectChange(value: string) {\n this.selectEvent.emit(value);\n }\n\n multiSelect(value: string[]) {\n this.multiSelectEvent.emit(value);\n }\n\n selectFilter(items: SSubMenuItem[]) {\n const selectedIds = items.filter(item => item.value === true).map(item => item.id);\n this.filterEvent.emit(selectedIds);\n }\n\n filterShow() {\n this.filterToggle = !this.filterToggle;\n }\n\n pillSelect() {\n this.pillButtonEvent.emit();\n }\n\n private _initConfig() {\n if (this.config.search || this.config.search === undefined) {\n this.inputSearchConfig = {\n id: 'search',\n disabled: this.config.filtersDisabled ?? false,\n placeholder: this.config.placeholderSearch ?? 'Buscar',\n type: INPUT_TYPE.SEARCH,\n useFormControl: false,\n };\n }\n if (this.config.select) {\n this.config.select.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiSelect) {\n this.config.multiSelect.disabled = this.config.filtersDisabled ?? false;\n }\n if (this.config.multiActionButton) {\n this.multiActionMenu = {\n items: [\n {\n id: '1',\n title: 'Submenu',\n link: '/submenu',\n },\n {\n id: '2',\n title: 'Badge',\n link: '/badge',\n },\n ],\n };\n }\n }\n\n get searchValue() {\n return this.config?.searchValue ?? '';\n }\n\n set searchValue(val: string) {\n this.config.searchValue = val;\n }\n}\n","<section class=\"s-toolbar-top\" [id]=\"id\">\n <section class=\"s-toolbar-top__content\">\n <div class=\"s-toolbar-top__section\">\n <h3 *ngIf=\"config.title\" class=\"s-toolbar-top__title\">\n {{ config.title }}\n </h3>\n <div\n *ngIf=\"config.title && (config.actionButton || config.multiActionButton)\"\n class=\"s-toolbar-top__section--line\"></div>\n <s-button\n class=\"s-toolbar-top__button\"\n *ngIf=\"config.actionButton\"\n [id]=\"id + '-actionButton'\"\n (click)=\"action()\"\n (keydown.enter)=\"action()\">\n @if (!config.actionButtonIconDisabled) {\n <s-icon-mat>\n {{ config.actionButtonIcon ?? 'add_circle' }}\n </s-icon-mat>\n }\n {{ config.actionButton }}\n </s-button>\n <div class=\"s-toolbar-top--relativeContainer\" *ngIf=\"this.config.multiActionButton\">\n <s-button\n class=\"s-toolbar-top__multiAction s-toolbar-top__button\"\n [id]=\"id + '-multiAction'\"\n (click)=\"multiActionToggle()\"\n (keydown.enter)=\"multiActionToggle()\">\n <s-icon-mat>add_circle</s-icon-mat>\n {{ config.multiActionButton }}\n <s-icon-mat>keyboard_arrow_down</s-icon-mat>\n </s-button>\n <div class=\"s-toolbar-top__multiAction--sub-menu\" *ngIf=\"multiAction\">\n <s-sub-menu\n *ngIf=\"multiActionMenu\"\n class=\"w-100\"\n [menu]=\"multiActionMenu\"\n (closeMenuEvent)=\"multiActionToggle()\"></s-sub-menu>\n </div>\n </div>\n <div *ngIf=\"config.deleteButton\" class=\"s-toolbar-top__section--line\"></div>\n <s-button\n class=\"s-toolbar-top__button\"\n *ngIf=\"config.deleteButton\"\n theme=\"red\"\n [disabled]=\"config.deleteDisabled ?? false\"\n [id]=\"id + '-deleteButton'\"\n (click)=\"delete()\"\n (keydown.enter)=\"delete()\">\n <s-icon-mat>delete</s-icon-mat>\n {{ config.deleteButton }}\n </s-button>\n </div>\n <div class=\"s-toolbar-top__section\">\n <div class=\"s-toolbar-top__section--search\">\n <s-input\n [id]=\"id + '-search'\"\n *ngIf=\"inputSearchConfig\"\n class=\"w-100\"\n [config]=\"inputSearchConfig\"\n [(ngModel)]=\"searchValue\"\n (ngModelChange)=\"search($event)\">\n </s-input>\n </div>\n <div class=\"s-toolbar-top__section--select\" *ngIf=\"config.select\">\n <s-select\n [config]=\"config.select\"\n [id]=\"id + '-searchSelect'\"\n [(ngModel)]=\"select\"\n (ngModelChange)=\"selectChange($event)\"></s-select>\n </div>\n <div class=\"s-toolbar-top__section--select\" *ngIf=\"config.multiSelect\">\n <s-select-multiple\n class=\"s-toolbar-top__section--multi-select\"\n [config]=\"config.multiSelect\"\n [id]=\"id + '-multiSelect'\"\n (selectedEvent)=\"multiSelect($event)\">\n </s-select-multiple>\n </div>\n <div class=\"s-toolbar-top--relativeContainer\" *ngIf=\"config.filterButton && config.filters\">\n <s-button\n class=\"s-toolbar-top__button\"\n [id]=\"id + '-filterButton'\"\n [disabled]=\"config.filtersDisabled ?? false\"\n (click)=\"filterShow()\">\n <s-icon-mat>tune</s-icon-mat>\n {{ config.filterButton }}\n <s-icon-mat>keyboard_arrow_down</s-icon-mat>\n </s-button>\n <div class=\"s-toolbar-top__section--toggle\" *ngIf=\"filterToggle\">\n <s-sub-menu\n [menu]=\"config.filters\"\n (changeMenuEvent)=\"selectFilter($event)\"\n (closeMenuEvent)=\"filterShow()\"></s-sub-menu>\n </div>\n </div>\n <div *ngIf=\"config.pillButton\">\n <s-button\n class=\"s-toolbar-top__button\"\n [id]=\"id + '-pillSelect'\"\n [disabled]=\"config.filtersDisabled ?? false\"\n (click)=\"pillSelect()\"\n (keydowyn.enter)=\"pillSelect()\"\n [pill]=\"true\">\n <s-icon-mat>{{ config.pillButton }}</s-icon-mat>\n </s-button>\n </div>\n </div>\n </section>\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SToolbarTopComponent } from './toolbar-top.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SInputModule } from '../input/input.module';\nimport { FormsModule } from '@angular/forms';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\nimport { SSubMenuModule } from '../sub-menu';\nimport { SSelectModule } from '../select';\n\n@NgModule({\n declarations: [SToolbarTopComponent],\n imports: [\n CommonModule,\n SButtonModule,\n SInputModule,\n FormsModule,\n SIconMaterialModule,\n SSubMenuModule,\n SSelectModule,\n ],\n exports: [SToolbarTopComponent],\n})\nexport class SToolbarTopModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nexport interface SEmpty {\n button?: string;\n buttonIcon?: string;\n detail?: string;\n detailBold?: string;\n id?: string;\n image?: string;\n title?: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\n@Component({\n selector: 's-empty',\n templateUrl: './empty.component.html',\n styleUrls: ['./empty.component.scss'],\n})\nexport class EmptyComponent implements OnInit {\n @Input() config!: SEmpty;\n @Output() buttonEvent = new EventEmitter<void>();\n image: SafeResourceUrl | undefined;\n id!: string;\n\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-empty`;\n if (this.config.image) {\n this.image = this.domSanitizer.bypassSecurityTrustResourceUrl(this.config.image);\n }\n }\n\n action() {\n this.buttonEvent.emit();\n }\n}\n","<section class=\"s-empty\" [id]=\"id\">\r\n <div\r\n class=\"s-empty__content\"\r\n [ngClass]=\"{\r\n 's-empty__content--size-lg': config.size === 'lg' || config.size === undefined,\r\n 's-empty__content--size-md': config.size === 'md',\r\n 's-empty__content--size-sm': config.size === 'sm',\r\n }\">\r\n <div *ngIf=\"image && config.size !== 'sm'\" class=\"s-empty__content--img\">\r\n <img [src]=\"image\" alt=\"empty\" />\r\n </div>\r\n <h2 *ngIf=\"config.title\" class=\"s-empty__content--title\">\r\n {{ config.title }}\r\n </h2>\r\n <p *ngIf=\"config.detail\" class=\"s-empty__content--detail\">\r\n {{ config.detail }}\r\n <span *ngIf=\"config.detailBold\" class=\"s-empty__content--detail-bold\">{{ config.detailBold }}</span>\r\n </p>\r\n <div *ngIf=\"config.button && config.size !== 'sm'\" class=\"s-empty__content--button\">\r\n <s-button position=\"normal\" (click)=\"action()\" (keydown.enter)=\"action()\">\r\n <s-icon-mat *ngIf=\"config.buttonIcon\">{{ config.buttonIcon }}</s-icon-mat>\r\n {{ config.button }}\r\n </s-button>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmptyComponent } from './empty.component';\nimport { SButtonModule } from '../button/button.module';\nimport { SIconMaterialModule } from '../icon-material/s-icon-material.module';\n\n@NgModule({\n declarations: [EmptyComponent],\n imports: [CommonModule, SButtonModule, SIconMaterialModule],\n exports: [EmptyComponent],\n})\nexport class SEmptyModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { STranslateService } from '../../services';\n\n@Pipe({\n name: 'translate',\n standalone: true,\n})\nexport class STranslatePipe implements PipeTransform {\n constructor(private _translateService: STranslateService) {}\n\n transform(value: string, ...args: string[]): string {\n return this._translateService.instant(value, ...args);\n }\n}\n","import { Component, computed, input, output, signal, WritableSignal } from '@angular/core';\nimport { SCheckbox, SCheckboxModule } from '../checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { SSwitch, SToggleSwitchModule } from '../toggle-switch';\nimport { CommonModule } from '@angular/common';\nimport { STranslatePipe } from '../pipe';\n\nexport type controlType = 'checkbox' | 'switch';\n\nexport interface SBottomStatusBar {\n counter?: number;\n disabled?: boolean;\n id?: string;\n label?: string;\n selectionControl?: controlType;\n selectionState?: WritableSignal<boolean>;\n total?: number;\n}\n\n@Component({\n selector: 's-bottom-status-bar',\n standalone: true,\n imports: [SCheckboxModule, FormsModule, SToggleSwitchModule, CommonModule, STranslatePipe],\n templateUrl: './bottom-status-bar.component.html',\n styleUrl: './bottom-status-bar.component.scss',\n})\nexport class SBottomStatusBarComponent {\n config = input.required<SBottomStatusBar>();\n stateChange = output<boolean>();\n stateChangeEvent = output<boolean>();\n id = signal<string>('s-bottom-status-bar');\n\n configSCheckbox = computed<SCheckbox>(() => ({\n useFormControl: false,\n id: this.id() + '-checkbox',\n disabled: this.config().disabled,\n }));\n\n configSSwitch = computed<SSwitch>(() => ({\n useFormControl: false,\n size: 'md',\n id: this.id() + '-switch',\n disabled: this.config().disabled ?? false,\n }));\n\n selectionControlChange(state: boolean) {\n this.stateChangeEvent.emit(state);\n }\n\n onStateChange(newValue: boolean): void {\n this.stateChangeEvent.emit(newValue);\n }\n}\n","<section class=\"s-bottom-status-bar\" [id]=\"id()\" [ngClass]=\"{ 's-bottom-status-bar--disabled': config().disabled }\">\n <div class=\"s-bottom-status-bar__section\">\n @if (config().selectionControl === 'checkbox') {\n <s-checkbox\n class=\"s-bottom-status-bar__option\"\n [config]=\"configSCheckbox()\"\n [ngModel]=\"config().selectionState?.()\"\n (ngModelChange)=\"onStateChange($event)\"></s-checkbox>\n }\n @if (config().selectionControl === 'switch') {\n <s-toggle-switch\n class=\"s-bottom-status-bar__option\"\n [config]=\"configSSwitch()\"\n [ngModel]=\"config().selectionState?.()\"\n (ngModelChange)=\"onStateChange($event)\"></s-toggle-switch>\n }\n @if (config().label) {\n <p [id]=\"id() + '-label'\">{{ config().label }}</p>\n }\n </div>\n <div class=\"s-bottom-status-bar__section\">\n @if (config().counter !== undefined) {\n <p [id]=\"id() + '-selectedText'\">{{ 'ui.generic.selected' | translate }}: {{ config().counter }}</p>\n }\n @if (config().counter !== undefined && config().total !== undefined) {\n <div\n class=\"s-bottom-status-bar__line\"\n [ngClass]=\"{\n 's-bottom-status-bar__line--disabled': config().disabled,\n }\"></div>\n }\n @if (config().total !== undefined) {\n <p [id]=\"id() + '-total'\">{{ 'ui.generic.total' | translate }}: {{ config().total }}</p>\n }\n </div>\n</section>\n","import {\n Component,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { SToolbarTop } from '../toolbar-top';\nimport { SEmpty } from '../empty/empty.component';\nimport { ConfigColumn, SortTable } from '../table-t';\nimport { IPageSizes } from '../pagination';\nimport { SBottomStatusBar } from '../bottom-status-bar';\nimport { STranslateService } from '../../public-api';\n\nexport interface STableComplete {\n columns: ConfigColumn[];\n pageNumber?: number;\n totalItems?: number;\n configBottomStatusBar?: WritableSignal<SBottomStatusBar>;\n configToolbarTop?: SToolbarTop;\n emptyConfig?: SEmpty;\n hidePagination?: boolean;\n id?: string;\n scroll?: boolean;\n loadingScroll?: boolean;\n pageSize?: number;\n pageSizes?: IPageSizes[];\n isTreeMode?: boolean;\n paginationText?: {\n showing: string;\n to: string;\n of: string;\n items: string;\n empty: string;\n };\n}\n\n@Component({\n selector: 's-table-complete',\n templateUrl: './table-complete.component.html',\n styleUrls: ['./table-complete.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TableCompleteComponent implements OnInit, OnChanges {\n @Input() config!: STableComplete;\n @Output() actionEvent = new EventEmitter<void>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\n @Output() deleteEvent = new EventEmitter<void>();\n @Output() emptyEvent = new EventEmitter<void>();\n @Output() filterEvent = new EventEmitter<string[]>();\n @Output() orderByEvent = new EventEmitter<SortTable>();\n @Output() pageEvent = new EventEmitter<number>();\n @Output() paginationEvent = new EventEmitter<number>();\n @Output() multiSelectEvent = new EventEmitter<string[]>();\n @Output() pillButtonEvent = new EventEmitter<void>();\n @Output() selectEvent = new EventEmitter<string>();\n @Output() searchEvent = new EventEmitter<string>();\n @Output() bottomStatusBarEvent = new EventEmitter<boolean>();\n @Output() scrollEvent = new EventEmitter<void>();\n @Input() id!: string;\n\n private _sTranslateService = inject(STranslateService);\n\n emptyConfigSearch!: SEmpty;\n searchText = '';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n this.filtersDisabled();\n }\n }\n\n ngOnInit(): void {\n if (!this.id) this.id = this.config.id ?? `s-table-complete`;\n this.filtersDisabled();\n this.emptyConfigSearch = {\n image: 'assets/empty/empty-search.png',\n title: this._sTranslateService.instant('ui.generic.emptySearch.title'),\n detail: this._sTranslateService.instant('ui.generic.emptySearch.detail'),\n };\n }\n\n filtersDisabled() {\n if (this.config.configToolbarTop) {\n this.config.configToolbarTop = {\n ...this.config.configToolbarTop,\n filtersDisabled: this.config.totalItems === 0 && this.searchText === '',\n };\n }\n }\n\n checkAll(event: any) {\n this.checkAllEvent.emit(event);\n }\n\n ordenEvent(event: any) {\n this.orderByEvent.emit(event);\n }\n\n action() {\n this.actionEvent.emit();\n }\n\n delete() {\n this.deleteEvent.emit();\n }\n\n search(text: string) {\n this.searchText = text;\n this.searchEvent.emit(text);\n }\n\n select(value: string) {\n this.selectEvent.emit(value);\n }\n\n multiSelect(value: string[]) {\n this.multiSelectEvent.emit(value);\n }\n\n filter(values: string[]) {\n this.filterEvent.emit(values);\n }\n\n pillButton() {\n this.pillButtonEvent.emit();\n }\n\n buttonEmpty() {\n this.emptyEvent.emit();\n }\n\n goToPage(pageNumber: number) {\n this.config.pageNumber = pageNumber;\n this.pageEvent.emit(pageNumber);\n }\n\n pagination(pagination: number) {\n this.paginationEvent.emit(pagination);\n }\n\n selectionControlChange(state: boolean) {\n this.bottomStatusBarEvent.emit(state);\n }\n\n onScroll(): void {\n if (!this.config.scroll || this.config.loadingScroll) {\n return;\n }\n this.config.loadingScroll = true;\n this.scrollEvent.emit();\n }\n}\n","<section class=\"s-table-complete\" [id]=\"id\">\n <s-toolbar-top\n *ngIf=\"config.configToolbarTop\"\n [config]=\"config.configToolbarTop\"\n (searchEvent)=\"search($event)\"\n (actionEvent)=\"action()\"\n (deleteEvent)=\"delete()\"\n (filterEvent)=\"filter($event)\"\n (multiSelectEvent)=\"multiSelect($event)\"\n (pillButtonEvent)=\"pillButton()\"\n (selectEvent)=\"select($event)\">\n </s-toolbar-top>\n <div class=\"s-table-complete__table\" *ngIf=\"config.columns\">\n <s-tablet\n [configColumn]=\"config.columns\"\n [loading]=\"config.totalItems === 0\"\n [loadingScroll]=\"config.loadingScroll ?? false\"\n [isTreeMode]=\"config.isTreeMode ?? false\"\n (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\"\n (scrollEvent)=\"onScroll()\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n @if (searchText) {\n <s-empty [config]=\"emptyConfigSearch\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n } @else {\n <s-empty *ngIf=\"config.emptyConfig\" [config]=\"config.emptyConfig\" (buttonEvent)=\"buttonEmpty()\"></s-empty>\n }\n </ng-template>\n </s-tablet>\n </div>\n @if (config.configBottomStatusBar) {\n <s-bottom-status-bar\n [config]=\"config.configBottomStatusBar()\"\n (stateChangeEvent)=\"selectionControlChange($event)\" />\n }\n @if (!config.scroll) {\n @if (!config.hidePagination) {\n <div class=\"s-table-complete__pagination\">\n <section>\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\n [id]=\"id + '-pagination'\"\n [items]=\"config.paginationText.items\"\n [empty]=\"config.paginationText.empty\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n [totalItems]=\"config.totalItems ?? 0\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n <s-pagination\n *ngIf=\"!config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [pageNumber]=\"config.pageNumber ?? 0\"\n [totalItems]=\"config.totalItems ?? 0\"\n [id]=\"id + '-pagination'\"\n [pageSize]=\"config.pageSize ?? 0\"\n [pageSizes]=\"config.pageSizes ? config.pageSizes : undefined\"\n (pageEmitter)=\"goToPage($event)\"\n (paginationEmitter)=\"pagination($event)\">\n </s-pagination>\n </section>\n </div>\n }\n }\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableCompleteComponent } from './table-complete.component';\nimport { SToolbarTopModule } from '../toolbar-top';\nimport { SEmptyModule } from '../empty';\nimport { STabletModule } from '../table-t';\nimport { SPaginationModule } from '../pagination';\nimport { SBottomStatusBarComponent } from '../bottom-status-bar';\n\n@NgModule({\n declarations: [TableCompleteComponent],\n imports: [\n CommonModule,\n SToolbarTopModule,\n SEmptyModule,\n STabletModule,\n SPaginationModule,\n SBottomStatusBarComponent,\n ],\n exports: [TableCompleteComponent],\n})\nexport class STableCompleteModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SModalConfirmConfig } from '../models/modal-confirm.interface';\nimport { SModalConfirmResponse } from '../modal-confirm.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SModalConfirmService {\n private readonly modalConfigSource = new BehaviorSubject<SModalConfirmConfig>({\n title: '',\n message: '',\n confirmText: '',\n cancelText: '',\n isVisible: false,\n type: 'info',\n checkbox: false,\n });\n modalConfig$ = this.modalConfigSource.asObservable();\n\n private readonly modalResponseSource = new Subject<SModalConfirmResponse>();\n modalResponse$ = this.modalResponseSource.asObservable();\n\n open(config: SModalConfirmConfig) {\n this.modalConfigSource.next({ ...config, isVisible: true });\n }\n\n close(response: boolean, checkboxValue: boolean): void {\n this.modalConfigSource.next({\n ...this.modalConfigSource.value,\n isVisible: false,\n });\n\n if (this.modalConfigSource.value.checkbox) {\n this.modalResponseSource.next({\n confirmed: response,\n checkboxValue: checkboxValue,\n });\n } else {\n this.modalResponseSource.next({ confirmed: response });\n }\n }\n}\n","import { THEME } from '../../../enums/theme.enum';\n\nexport const ModalTypeIcon: any[] = [\n {\n type: 'alert',\n color: THEME.YELLOW,\n icon: 'warning',\n },\n {\n type: 'error',\n color: THEME.RED,\n icon: 'cancel',\n },\n {\n type: 'info',\n color: THEME.DEFAULT,\n icon: 'info',\n },\n];\n","import { Component, HostListener, inject, OnDestroy, OnInit } from '@angular/core';\nimport { SModalConfirmService } from './services/modal-confirm.service';\nimport { ModalTypeIcon } from './models/modalType';\nimport { SModalConfirmConfig } from './models/modal-confirm.interface';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { SButtonModule } from '../../button';\nimport { SIconMaterialModule } from '../../icon-material';\nimport { SCheckbox, SCheckboxModule } from '../../checkbox';\nimport { FormsModule } from '@angular/forms';\n\nexport type ModalType = 'alert' | 'error' | 'info';\n\nexport type SModalConfirmResponse = {\n confirmed: boolean;\n checkboxValue?: boolean;\n};\n\n@Component({\n selector: 's-modal-confirm.',\n standalone: true,\n imports: [CommonModule, SButtonModule, SIconMaterialModule, SCheckboxModule, FormsModule],\n templateUrl: './modal-confirm.component.html',\n styleUrls: ['./modal-confirm.component.scss'],\n})\nexport class SModalConfirmComponent implements OnInit, OnDestroy {\n config!: SModalConfirmConfig;\n modalTypeIcon = ModalTypeIcon;\n private configSubscription!: Subscription;\n configCheckbox: SCheckbox = {\n useFormControl: false,\n };\n valueCheckbox: boolean = false;\n id!: string;\n\n private readonly modalConfirmService = inject(SModalConfirmService);\n\n ngOnInit(): void {\n this.id = this.config?.id ?? `s-modal-confirm`;\n this.configSubscription = this.modalConfirmService.modalConfig$.subscribe(config => {\n this.config = config;\n this.configCheckbox.label = config.checkbox ? config.checkboxLabel : '';\n this.valueCheckbox = config.checkboxValue ? config.checkboxValue : false;\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscapeKey() {\n if (this.config?.checkbox) {\n this.close(false, this.valueCheckbox);\n } else {\n this.close(false);\n }\n }\n\n getIconType(type?: ModalType) {\n const icon = this.modalTypeIcon.filter(action => action.type == type);\n return icon[0];\n }\n\n close(response: boolean, checkboxChecked: boolean = false): void {\n this.modalConfirmService.close(response, checkboxChecked);\n }\n\n getTextAlignClass(): string {\n return 's-modal-confirm__message--' + (this.config?.textAlign ?? 'left');\n }\n}\n","@if (config.isVisible) {\n <div class=\"overlay\" [id]=\"id\">\n <div class=\"overlay__grid-12\">\n <div class=\"s-modal-confirm\" (click)=\"close(false)\" (keydown.enter)=\"close(false)\" tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section\n class=\"s-modal-confirm__header\"\n [ngClass]=\"{\n 's-modal-confirm__header--secondary': config.backgroundType === 'secondary',\n }\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat size=\"md\" [ngClass]=\"'s-modal-confirm__icon-' + config.type\" [id]=\"id + '-icon'\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n @if (config.cancelText) {\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"md\"\n (click)=\"close(false)\"\n [id]=\"id + '-close'\">\n close\n </s-icon-mat>\n }\n </section>\n <div class=\"s-scroll s-modal-confirm__body\">\n <p class=\"s-modal-confirm__message\" [id]=\"id + '-message'\" [ngClass]=\"getTextAlignClass()\">\n {{ config.message }}\n </p>\n </div>\n <section\n class=\"s-modal-confirm__buttons\"\n [ngClass]=\"{\n 's-modal-confirm__buttons--secondary': config.backgroundType === 'secondary',\n }\">\n <div>\n @if (config.checkbox) {\n <s-checkbox\n [config]=\"configCheckbox\"\n [(ngModel)]=\"valueCheckbox\"\n (ngModelChange)=\"valueCheckbox = $event\"></s-checkbox>\n }\n </div>\n <div>\n @if (config.cancelText) {\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n [id]=\"id + '-button-cancel'\"\n (click)=\"close(false, valueCheckbox)\"\n (keydown.enter)=\"close(false, valueCheckbox)\">\n {{ config.cancelText }}\n </s-button>\n }\n <s-button\n [theme]=\"getIconType(config.type).color\"\n [id]=\"id + '-button-confirm'\"\n (click)=\"close(true, valueCheckbox)\"\n (keydown.enter)=\"close(true, valueCheckbox)\">\n {{ config.confirmText }}\n </s-button>\n </div>\n </section>\n </div>\n </div>\n </div>\n </div>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 's-grid-multi-toolbar-top',\n templateUrl: './grid-multi-inputs-toolbar-top.component.html',\n styleUrls: ['./grid-multi-inputs-toolbar-top.component.scss'],\n})\nexport class GridMultiInputsToolbarTopComponent {\n @Input() config!: any;\n\n //TODO SE DEJA PREAPRADO POR SI EL COMPONENTE VA A AGREGAR MAS OPCIONES COMO BOTONES EN UN FUTURO.\n}\n","<section class=\"s-toolbar-top\">\n <section class=\"s-toolbar-top__content\">\n <div class=\"s-toolbar-top__section\">\n <h3 *ngIf=\"config.title\" class=\"s-toolbar-top__title\">\n {{ config.title }}\n </h3>\n <div class=\"s-toolbar-top__section--line\"></div>\n </div>\n </section>\n</section>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport interface ColumnSGrid {\n title: string;\n type?: 'append';\n id: string;\n}\n\nexport interface RowSGrid {\n title: string;\n type?: 'append';\n id: string;\n customColumnStatus?: number;\n customColumnTitle?: string;\n}\n\nexport interface DataRow {\n id: string;\n key: string;\n state: boolean | null;\n}\n\nexport interface SToolbarTopGridMulti {\n title: string;\n}\n\nexport interface SGridMulti {\n columns: ColumnSGrid[];\n rows: RowSGrid[];\n data: DataRow[][];\n customColumns?: ColumnSGrid;\n configToolbarTop?: SToolbarTopGridMulti;\n selectAllTitle?: string;\n}\n\n@Component({\n selector: 's-grid-multi',\n templateUrl: './grid-multi-inputs.component.html',\n styleUrls: ['./grid-multi-inputs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GridMultiInputsComponent implements OnInit {\n //Inputs\n @Input() config!: SGridMulti;\n\n //Outputs\n // Emitir toda config.data cuando cambia checkbox\n @Output() dataChange = new EventEmitter<DataRow[][]>();\n @Output() customClick = new EventEmitter<RowSGrid>();\n\n //Columna \"selecionar todo\" que se va a agregar\n columnsDefault: ColumnSGrid = {\n title: '',\n id: '1',\n };\n\n //Resize\n isResizing: boolean = false;\n startX: number = 0;\n startWidth: number = 0;\n columnIndex: number = 0;\n mouseMoveListener: (() => void) | null | undefined;\n mouseUpListener: (() => void) | null | undefined;\n\n constructor(\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.initConfig();\n this.initTable();\n }\n\n initConfig(): void {\n this.columnsDefault.title =\n this.config.selectAllTitle ?? 'Seleccionar todo';\n }\n\n initTable(): void {\n // Inserta el default de \"selecionar todo\" en la primera posición\n if (this.config.columns[0]?.title !== this.columnsDefault.title) {\n this.config.columns.unshift(this.columnsDefault);\n }\n\n if (this.config.customColumns) {\n // Verificar si ya hemos insertado la columna personalizada\n const hasCustomColumn = this.config.columns.some(\n col => col.type === 'append' // Verificamos si ya hay columna personalizada\n );\n\n // Si no se insertó ninguna columna personalizada, insertamos la columna personalizada en la segunda posición\n if (!hasCustomColumn) {\n this.config.columns.splice(1, 0, this.config.customColumns);\n }\n }\n }\n\n onCheckboxChange(\n rowIndex: number,\n cellIndex: number,\n newState: boolean\n ): void {\n // Actualizar el estado del dato en config.data\n this.config.data[rowIndex][cellIndex].state = newState;\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n onCustomClick(row: RowSGrid): void {\n this.customClick.emit(row);\n }\n\n //Metodos de columnas\n getColumnState(column: any): boolean | null {\n // Obtener el índice de la columna, considerando las columnas personalizadas\n let columnIndex = this.config.columns.indexOf(column);\n columnIndex -= 1; // Ajustar el índice a la grilla\n // Si hay columnas personalizadas, restamos 1 para ajustar el indice\n if (this.config.customColumns) {\n columnIndex -= 1;\n }\n\n // Verificamos si el índice obtenido es válido\n if (columnIndex < 0 || columnIndex >= this.config.columns.length) {\n return null;\n }\n\n // Obtener los valores de las celdas en esa columna (excluyendo los null)\n const columnValues = this.config.rows.map((_, rowIndex) => {\n const cell = this.config.data[rowIndex]?.[columnIndex];\n return cell ? cell.state : null;\n });\n\n const filteredColumnValues = columnValues.filter(state => state !== null);\n\n if (filteredColumnValues.length === 0) {\n return null;\n }\n\n const allChecked = filteredColumnValues.every(state => state === true);\n const allUnchecked = filteredColumnValues.every(state => state === false);\n\n if (allChecked) {\n return true;\n } else if (allUnchecked) {\n return false;\n }\n\n return null;\n }\n\n setColumnState(columnIndex: number, event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Si hay columnas personalizadas, restamos 1 para ajustar el indice\n if (this.config.customColumns) {\n columnIndex = columnIndex - 1;\n }\n\n // Recorre todas las filas y cambia el estado de las celdas en la columna correspondiente\n this.config.rows.forEach((_, rowIndex) => {\n const cell = this.config.data[rowIndex]?.[columnIndex - 1];\n\n // Solo cambiar valores si la celda no es null\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n // Metodos de Filas\n setRowState(rowIndex: number, event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Recorre todas las filas y cambia el estado de las celdas en la columna correspondiente\n this.config.data[rowIndex].forEach((cell: any) => {\n // Solo cambiar valores si no es null\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n getRowState(row: any): boolean | null {\n const rowIndex = this.config.rows.indexOf(row);\n if (rowIndex === -1) return false;\n\n //Obtegno todos los estados de la fila\n const states = this.config.data[rowIndex]\n .map((cell: any) => cell?.state)\n .filter((state: any) => state !== null);\n\n if (states.length === 0) return null; // Si todos son null\n\n const allChecked = states.every((state: any) => state === true);\n const allUnchecked = states.every((state: any) => state === false);\n\n if (allChecked) {\n return true;\n }\n if (allUnchecked) {\n return false;\n }\n return null;\n }\n\n //Meotod de checkbox selecionar todos\n getStateAllGrid(): boolean | null {\n // Obtengo todos los estados\n const allStates = this.config.data\n .reduce((acc, row) => acc.concat(row), [])\n .map(cell => cell?.state)\n .filter(state => state !== null);\n\n if (allStates.length === 0) return null;\n\n const allChecked = allStates.every(state => state === true);\n const allUnchecked = allStates.every(state => state === false);\n\n if (allChecked) {\n return true;\n }\n if (allUnchecked) {\n return false;\n }\n return null;\n }\n\n setAllGridState(event: Event): void {\n const target = event.target as HTMLInputElement | null;\n if (!target) return;\n\n const checked = target.checked;\n\n // Recorre toda la grilla y cambia el estado de todos los checkboxes\n this.config.data.forEach(row => {\n row.forEach(cell => {\n if (cell && cell.state !== null) {\n cell.state = checked;\n }\n });\n });\n\n // Emitir toda la data actualizada\n this.dataChange.emit(this.config.data);\n }\n\n //Logica Resize\n startResize(event: MouseEvent, colIndex: number) {\n this.isResizing = true;\n this.startX = event.clientX;\n this.columnIndex = colIndex;\n\n const ths = this.el.nativeElement.querySelectorAll('th .th-head');\n if (ths.length <= colIndex) {\n return;\n }\n\n const th = ths[colIndex] as HTMLElement;\n this.startWidth = th.offsetWidth;\n\n // Guardo referencias de los event listeners\n this.mouseMoveListener = this.renderer.listen('window', 'mousemove', e =>\n this.resizeColumn(e)\n );\n this.mouseUpListener = this.renderer.listen('window', 'mouseup', () =>\n this.stopResize()\n );\n }\n\n resizeColumn(event: MouseEvent) {\n if (!this.isResizing) return;\n\n const deltaX = event.clientX - this.startX;\n const newWidth = this.startWidth + deltaX;\n\n if (newWidth > 150) {\n const ths = this.el.nativeElement.querySelectorAll('th .th-head');\n if (ths.length <= this.columnIndex) {\n return;\n }\n\n const th = ths[this.columnIndex] as HTMLElement;\n this.renderer.setStyle(th, 'width', `${newWidth}px`);\n }\n }\n\n stopResize() {\n this.isResizing = false;\n\n // Eliminar los event listeners\n if (this.mouseMoveListener) {\n this.mouseMoveListener();\n this.mouseMoveListener = null;\n }\n\n if (this.mouseUpListener) {\n this.mouseUpListener();\n this.mouseUpListener = null;\n }\n }\n\n getButtonTheme(\n status: number\n ): 'default' | 'green' | 'yellow' | 'red' | undefined {\n switch (status) {\n case 2: //SE GUARDO\n return 'green';\n default:\n return 'default';\n }\n }\n}\n","<div class=\"s-grid-multi\">\n <div class=\"s-grid-multi__toolbar-top\">\n <s-grid-multi-toolbar-top\n [config]=\"config.configToolbarTop\"></s-grid-multi-toolbar-top>\n </div>\n <div class=\"s-grid-multi__table\">\n <div class=\"pre-s-tablet s-scroll\">\n <table class=\"s-tablet\">\n <thead>\n <tr>\n <th\n *ngFor=\"let column of config.columns; let colIndex = index\"\n [ngClass]=\"{ 'resizable-th': colIndex === 0 }\">\n <div\n class=\"th-head no-select\"\n [ngClass]=\"column.type === 'append' ? 'th-head--left' : ''\">\n <!-- Excepción cuando es select all -->\n <ng-container *ngIf=\"colIndex !== 0; else elseBlock\">\n <input\n type=\"checkbox\"\n [indeterminate]=\"getColumnState(column) === null\"\n [checked]=\"getColumnState(column) === true\"\n (change)=\"setColumnState(colIndex, $event)\"\n *ngIf=\"column.type !== 'append'\" />\n </ng-container>\n <ng-template #elseBlock>\n <input\n type=\"checkbox\"\n [indeterminate]=\"getStateAllGrid() === null\"\n [checked]=\"getStateAllGrid() === true\"\n (change)=\"setAllGridState($event)\" />\n </ng-template>\n {{ column.title }}\n <div\n *ngIf=\"colIndex === 0\"\n class=\"resizer\"\n (mousedown)=\"startResize($event, colIndex)\"></div>\n </div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of config.rows; let rowIndex = index\">\n <!-- Primera celda con título de fila -->\n <td>\n <div class=\"th-head th-head--left th-head--normal\">\n <input\n type=\"checkbox\"\n [indeterminate]=\"getRowState(row) === null\"\n [checked]=\"getRowState(row) === true\"\n (change)=\"setRowState(rowIndex, $event)\"\n *ngIf=\"row.type !== 'append'\" />\n {{ row.title }}\n </div>\n </td>\n <!-- Celda para la columna custom -->\n <td *ngIf=\"config.customColumns\">\n <div class=\"text-center\">\n <s-button\n type=\"primary\"\n [theme]=\"\n getButtonTheme(\n row.customColumnStatus ? row.customColumnStatus : 1\n )\n \"\n position=\"normal\"\n [disabled]=\"row.customColumnStatus === 3 ? true : false\"\n (click)=\"onCustomClick(row)\"\n (onKeyDown)=\"onCustomClick(row)\">\n <s-icon-mat>{{\n row.customColumnStatus === 1 ? 'warning' : 'check_circle'\n }}</s-icon-mat>\n {{ row.customColumnTitle }}</s-button\n >\n </div>\n </td>\n\n <!-- Resto de las celdas -->\n <td\n *ngFor=\"let cell of config.data[rowIndex]; index as cellIndex\"\n class=\"td-class\"\n [ngClass]=\"cell.state === null ? 'cell-null' : ''\">\n <ng-container *ngIf=\"cell.state === true || cell.state === false\">\n <div class=\"text-center\">\n <input\n type=\"checkbox\"\n (change)=\"onCheckboxChange(rowIndex, cellIndex, cell.state)\"\n [(ngModel)]=\"cell.state\" />\n </div>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GridMultiInputsComponent } from './grid-multi-inputs.component';\nimport { GridMultiInputsToolbarTopComponent } from './components/grid-multi-inputs-toolbar-top/grid-multi-inputs-toolbar-top.component';\nimport { STabletModule } from '../table-t/s-tablet.module';\nimport { SEmptyModule } from '../empty/empty.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SCheckboxModule } from '../checkbox/s-checkbox.module';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [GridMultiInputsComponent, GridMultiInputsToolbarTopComponent],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n STabletModule,\n SEmptyModule,\n SCheckboxModule,\n SButtonModule,\n SIconMaterialModule,\n ],\n exports: [GridMultiInputsComponent, GridMultiInputsToolbarTopComponent],\n})\nexport class SGridMultiInputsModule {}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 's-container',\n templateUrl: './s-container.component.html',\n styleUrls: ['./s-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SContainerComponent {\n @Input() background: 'default' | 'primary' = 'default';\n @Input() id?: string = 's-container';\n}\n","<div class=\"s-container s-container--background-{{ background }}\" [id]=\"id\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SContainerComponent } from './s-container.component';\n\n@NgModule({\n declarations: [SContainerComponent],\n imports: [CommonModule, SIconMaterialModule],\n exports: [SContainerComponent],\n})\nexport class SContainerModule {}\n","import { Component, Input, ViewEncapsulation, signal } from '@angular/core';\nimport { ANIMATION } from '../animation';\nimport { SSpinnerModule } from '../spinner';\nimport { CommonModule } from '@angular/common';\nimport { STranslatePipe } from '../pipe';\n\n@Component({\n selector: 's-redirect',\n standalone: true,\n imports: [CommonModule, SSpinnerModule, STranslatePipe],\n templateUrl: './redirect.component.html',\n styleUrls: ['./redirect.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SRedirectComponent {\n private readonly _error = signal(false);\n readonly errorSignal = this._error.asReadonly();\n\n @Input() set error(value: boolean) {\n this._error.set(value);\n }\n\n @Input() animation: ANIMATION = ANIMATION.Spinner;\n}\n","<div class=\"s-redirect\">\n <div class=\"w100 text-center\">\n <ng-container>\n <s-spinner [animation]=\"animation\" class=\"spinner\"></s-spinner>\n @if (errorSignal()) {\n <h4 class=\"mt-2\">{{ 'entity.auth.validationError' | translate }}</h4>\n <small>{{ 'entity.auth.suiteRedirection' | translate }}</small>\n }\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { STableCompleteModule } from '../table-complete';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SortTable } from '../table-t';\nimport {\n ReorderDirection,\n STableDouble,\n STableDoubleActionEvent,\n STableDoubleBooleanEvent,\n STableDoubleItem,\n STableDoubleNumberEvent,\n STableDoubleReorderEvent,\n STableDoubleSortEvent,\n STableDoubleStringArrayEvent,\n STableDoubleStringEvent,\n STableDoubleSwitchEvent,\n STablesData,\n} from './table-double.model';\nimport { SToggleSwitchModule } from '../toggle-switch';\nimport { STranslateService } from '../services';\nimport { SListModule } from '../list';\nimport { TableActionsButtonsModule } from '../table-t/table-actions-buttons/table-actions-buttons.module';\nimport { ActionButton } from '../table-t/table-actions-buttons/interfaces';\nimport { ActionsButtonsType } from '../table-t/table-actions-buttons/enums/ActionsButtonsType.enum';\n\nconst MAX_TREE_LEVEL = 20;\n\n@Component({\n selector: 's-table-double',\n standalone: true,\n imports: [\n CommonModule,\n STableCompleteModule,\n SButtonModule,\n FormsModule,\n SIconMaterialModule,\n SListModule,\n TableActionsButtonsModule,\n SToggleSwitchModule,\n ],\n templateUrl: './table-double.component.html',\n styleUrl: './table-double.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class STableDoubleComponent implements OnInit {\n @Input() config!: STableDouble;\n @Output() actionPositionEvent = new EventEmitter<boolean>();\n @Output() bottomStatusBarPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() checkAllPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() deletePositionEvent = new EventEmitter<boolean>();\n @Output() emptyPositionEvent = new EventEmitter<boolean>();\n @Output() eventUpdateTables = new EventEmitter<STablesData>();\n @Output() filterPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() multiSelectPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() orderByPositionEvent = new EventEmitter<STableDoubleSortEvent>();\n @Output() pagePositionEvent = new EventEmitter<STableDoubleNumberEvent>();\n @Output() paginationPositionEvent = new EventEmitter<STableDoubleNumberEvent>();\n @Output() pillButtonPositionEvent = new EventEmitter<boolean>();\n @Output() scrollPositionEvent = new EventEmitter<boolean>();\n @Output() selectPositionEvent = new EventEmitter<STableDoubleStringEvent>();\n @Output() rowSelectPositionEvent = new EventEmitter<{ isLeftTable: boolean; value: any }>();\n @Output() actionEvent = new EventEmitter<STableDoubleActionEvent>();\n @Output() toggleExpandEvent = new EventEmitter<string>();\n id!: string;\n @Output() reorderItemEvent = new EventEmitter<STableDoubleReorderEvent>();\n @Output() switchChangeEvent = new EventEmitter<STableDoubleSwitchEvent>();\n\n disabledButtonLeft = signal<boolean>(true);\n disabledButtonRight = signal<boolean>(true);\n itemsTableLeft: any[] = [];\n itemsTableRightData: any[] = [];\n\n dragItemId!: string | null;\n dragOverItemId!: string | null;\n\n private readonly _sTranslateService = inject(STranslateService);\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-table-double`;\n this.cloneItemsTables();\n if (!this.config.tableLeftConfig.emptyConfig) {\n this.config.tableLeftConfig.emptyConfig = {\n image: 'assets/empty/empty.png',\n title: this._sTranslateService.instant('ui.tableDouble.emptyTitleLeft'), //'No hay elementos disponibles',\n };\n }\n if (!this.config.tableRightConfig.emptyConfig) {\n this.config.tableRightConfig.emptyConfig = {\n detail: this._sTranslateService.instant('ui.tableDouble.emptyDetailRight'), //'Seleccione los ítems deseados y luego haga clic en el botón de la columna central.',\n image: 'assets/empty/empty.png',\n title: this._sTranslateService.instant('ui.tableDouble.emptyTitleRight'), //'No hay elementos agregados',\n };\n }\n }\n\n onDragStart(event: DragEvent, itemId: string) {\n this.dragItemId = itemId;\n event.dataTransfer?.setData('text/plain', ''); // Necesario para habilitar el arrastre en algunos navegadores\n }\n\n onDragOver(event: DragEvent, itemId: string) {\n if (this.dragItemId === null || this.dragItemId === itemId) {\n return;\n }\n this.dragOverItemId = itemId;\n event.preventDefault();\n }\n\n onDragLeave(event: DragEvent) {\n this.dragOverItemId = null;\n }\n\n onDrop(event: DragEvent, itemId: string, isLeftTable: boolean) {\n if (this.dragItemId === null || this.dragItemId === itemId) {\n return;\n }\n\n // Reordenar los elementos\n const items = this.getItems(isLeftTable);\n const dragIndex = items.findIndex((item: { id: string }) => item.id === this.dragItemId);\n const dropIndex = items.findIndex((item: { id: string }) => item.id === itemId);\n if (dragIndex !== -1 && dropIndex !== -1) {\n const draggedItem = items[dragIndex];\n items.splice(dragIndex, 1);\n items.splice(dropIndex, 0, draggedItem);\n }\n\n this.dragItemId = null;\n this.dragOverItemId = null;\n event.preventDefault();\n this.eventUpdateTablesEmit();\n }\n\n iconAction(itemId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const item = items.find((item: { id: string }) => item.id === itemId);\n if (item) this.actionEvent.emit({ isLeftTable, id: itemId });\n }\n\n selectItem(itemId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const itemIndex = items.findIndex((item: { id: string }) => item.id === itemId);\n if (itemIndex !== -1) {\n items[itemIndex].checked = !items[itemIndex].checked;\n this.updateCounter();\n }\n }\n\n cloneItemsTables(): void {\n this.itemsTableLeft = [...this.config.tableLeftItems];\n this.itemsTableRightData = [...this.config.tableRightItems];\n }\n\n moveItems(isLeftTableSource: boolean): void {\n const sourceData = this.getItems(isLeftTableSource);\n const targetData = this.getItems(!isLeftTableSource);\n\n const originalSourceData = isLeftTableSource ? this.itemsTableLeft : this.itemsTableRightData;\n const originalTargetData = isLeftTableSource ? this.itemsTableRightData : this.itemsTableLeft;\n\n const hasItemSelection = sourceData.some(item => item.selected);\n const selectedItems = sourceData\n .filter(item => (hasItemSelection ? item.selected : item.checked))\n .map(item => ({\n ...item,\n checked: false,\n selected: false,\n }));\n\n targetData.push(...selectedItems);\n this.setItems(\n isLeftTableSource,\n sourceData.filter(item => (hasItemSelection ? !item.selected : !item.checked))\n );\n\n originalTargetData.push(...selectedItems);\n const filteredOriginalSource = originalSourceData.filter(\n item => !selectedItems.some(sel => sel.name === item.name)\n );\n if (isLeftTableSource) {\n this.itemsTableLeft = filteredOriginalSource;\n } else {\n this.itemsTableRightData = filteredOriginalSource;\n }\n\n const checkColumnRight = this.config.tableRightConfig.columns[0]?.checkboxValue;\n const checkColumnLeft = this.config.tableLeftConfig.columns[0]?.checkboxValue;\n\n if (checkColumnRight) this.config.tableRightConfig.columns[0].checkboxValue = false;\n if (checkColumnLeft) this.config.tableLeftConfig.columns[0].checkboxValue = false;\n this.config.tableLeftConfig.totalItems = this.config.tableLeftItems.length;\n this.config.tableRightConfig.totalItems = this.config.tableRightItems.length;\n this.eventUpdateTablesEmit();\n this.updateCounter();\n }\n\n eventUpdateTablesEmit(): void {\n this.eventUpdateTables.emit({\n tableLeftItems: this.config.tableLeftItems,\n tableRightItems: this.config.tableRightItems,\n });\n }\n\n addItem(): void {\n this.moveItems(true);\n this.cloneItemsTables();\n }\n\n removeItem(): void {\n this.moveItems(false);\n this.cloneItemsTables();\n }\n\n action(isLeftTable: boolean) {\n this.actionPositionEvent.emit(isLeftTable);\n }\n\n delete(isLeftTable: boolean) {\n this.deletePositionEvent.emit(isLeftTable);\n }\n\n empty(isLeftTable: boolean) {\n this.emptyPositionEvent.emit(isLeftTable);\n }\n\n orderBy(event: SortTable, isLeftTable: boolean) {\n this.orderByPositionEvent.emit({ isLeftTable, value: event });\n }\n\n page(event: number, isLeftTable: boolean) {\n this.pagePositionEvent.emit({ isLeftTable, value: event });\n }\n\n paginationEmitter(event: number, isLeftTable: boolean) {\n this.paginationPositionEvent.emit({ isLeftTable, value: event });\n }\n\n select(event: string, isLeftTable: boolean) {\n this.selectPositionEvent.emit({ isLeftTable, value: event });\n }\n\n pillButton(isLeftTable: boolean) {\n this.pillButtonPositionEvent.emit(isLeftTable);\n }\n\n filter(event: string[], isLeftTable: boolean) {\n this.filterPositionEvent.emit({ isLeftTable, value: event });\n }\n\n multiSelect(event: string[], isLeftTable: boolean) {\n this.multiSelectPositionEvent.emit({ isLeftTable, value: event });\n }\n\n checkAllEvent(event: boolean, isLeftTable: boolean) {\n const items = this.getItems(isLeftTable);\n this.setItems(\n isLeftTable,\n items.map(item => ({\n ...item,\n checked: event,\n }))\n );\n this.updateCounter();\n }\n\n onScroll(isLeftTable: boolean) {\n this.scrollPositionEvent.emit(isLeftTable);\n }\n\n changeCheckbox(): void {\n this.config.tableRightConfig.columns[0].checkboxValue =\n this.config.tableRightItems.length > 0 && this.config.tableRightItems.every(item => item.checked);\n\n this.config.tableLeftConfig.columns[0].checkboxValue =\n this.config.tableLeftItems.length > 0 && this.config.tableLeftItems.every(item => item.checked);\n\n this.updateCounter();\n }\n\n bottomStatusBarChange(state: boolean, isLeftTable: boolean) {\n this.bottomStatusBarPositionEvent.emit({ isLeftTable, value: state });\n this.updateCounter();\n }\n\n search(event: string, isLeftTable: boolean) {\n const original = isLeftTable ? this.itemsTableLeft : this.itemsTableRightData;\n const filtered = this.getFilteredItems(original, event);\n\n if (isLeftTable) {\n this.config.tableLeftItems = filtered;\n } else {\n this.config.tableRightItems = filtered;\n }\n }\n\n private getFilteredItems(original: any[], searchTerm: string): any[] {\n const term = searchTerm.toLowerCase().trim();\n if (!term) return [...original];\n\n return original.filter(item => Object.values(item).some(value => String(value).toLowerCase().includes(term)));\n }\n\n private updateCounter() {\n const updateStatusBar = (\n items: any[],\n config: { configBottomStatusBar?: WritableSignal<any> },\n setter: WritableSignal<boolean>\n ) => {\n const counterCheckbox = items.filter(item => item.checked).length;\n const counterItem = items.filter(item => item.selected).length;\n const counter = Math.max(counterCheckbox, counterItem);\n\n config.configBottomStatusBar = signal({\n ...config.configBottomStatusBar?.(),\n counter,\n disabled: items.length === 0,\n total: items.length,\n });\n // Habilitar botón si hay items seleccionados (por checkbox O por item)\n setter.set(counterCheckbox === 0 && counterItem === 0);\n };\n\n updateStatusBar(this.config.tableLeftItems, this.config.tableLeftConfig, this.disabledButtonLeft);\n updateStatusBar(this.config.tableRightItems, this.config.tableRightConfig, this.disabledButtonRight);\n }\n\n getTreeCellColspan(): number {\n return this.config.tableRightConfig.columns.filter(c => c.id === 'checkbox' || c.id === 'name').length;\n }\n\n getTreeLevelClass(item: any): string {\n if (!this.config.isTreeMode || !item.level) {\n return 's-table-double__tree-level-0';\n }\n const level = Math.min(item.level, MAX_TREE_LEVEL);\n return `s-table-double__tree-level-${level}`;\n }\n\n toggleExpand(event: Event, itemId: string): void {\n event.stopPropagation();\n this.toggleExpandEvent.emit(itemId);\n }\n\n rowClick(item: any, isLeftTable: boolean): void {\n if (isLeftTable && this.config.disableLeftRowSelection) {\n return;\n }\n if (!isLeftTable) {\n this.config.tableRightItems.forEach(i => {\n i.selected = i.id === item.id ? !i.selected : false;\n });\n } else {\n item.selected = !item.selected;\n }\n this.updateCounter();\n this.rowSelectPositionEvent.emit({ isLeftTable, value: item });\n }\n\n private getItems(isLeftTable: boolean): STableDoubleItem[] {\n return isLeftTable ? this.config.tableLeftItems : this.config.tableRightItems;\n }\n\n private setItems(isLeftTable: boolean, items: STableDoubleItem[]): void {\n if (isLeftTable) {\n this.config.tableLeftItems = items;\n } else {\n this.config.tableRightItems = items;\n }\n }\n\n getOrderButtons(item: any): ActionButton[] {\n const isFirst = !!item.__isFirstSibling;\n const isLast = !!item.__isLastSibling;\n\n if (\n item.__orderButtons &&\n item.__orderButtons[0].disabled === isFirst &&\n item.__orderButtons[2].disabled === isLast\n ) {\n return item.__orderButtons;\n }\n\n item.__orderButtons = [\n {\n type: ActionsButtonsType.DOUBLE_ARROW_UP,\n tooltip: this._sTranslateService.instant('ui.generic.first'),\n disabled: isFirst,\n },\n {\n type: ActionsButtonsType.ARROW_UP,\n tooltip: this._sTranslateService.instant('ui.generic.up'),\n disabled: isFirst,\n },\n {\n type: ActionsButtonsType.ARROW_DOWN,\n tooltip: this._sTranslateService.instant('ui.generic.down'),\n disabled: isLast,\n },\n {\n type: ActionsButtonsType.DOUBLE_ARROW_DOWN,\n tooltip: this._sTranslateService.instant('ui.generic.last'),\n disabled: isLast,\n },\n ];\n return item.__orderButtons;\n }\n\n onOrderButtonClick(type: string, itemId: string): void {\n this.reorderItemEvent.emit({ itemId, direction: type as ReorderDirection });\n }\n\n onSwitchChange(value: boolean, itemId: string, columnId: string, isLeftTable: boolean): void {\n const items = this.getItems(isLeftTable);\n const item = items.find(i => i.id === itemId);\n if (item) {\n item[columnId] = value;\n }\n this.switchChangeEvent.emit({ isLeftTable, itemId, columnId, value });\n }\n}\n","<div class=\"s-table-double\" [id]=\"id\">\n <div class=\"s-table-double__header\"></div>\n <div class=\"s-table-double__body\">\n <div class=\"s-table-double__body__left\">\n <s-table-complete\n [config]=\"config.tableLeftConfig\"\n (actionEvent)=\"action(true)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, true)\"\n (checkAllEvent)=\"checkAllEvent($event, true)\"\n (deleteEvent)=\"delete(true)\"\n (emptyEvent)=\"empty(true)\"\n (filterEvent)=\"filter($event, true)\"\n (multiSelectEvent)=\"multiSelect($event, true)\"\n (orderByEvent)=\"orderBy($event, true)\"\n (pageEvent)=\"page($event, true)\"\n (paginationEvent)=\"paginationEmitter($event, true)\"\n (pillButtonEvent)=\"pillButton(true)\"\n (scrollEvent)=\"onScroll(true)\"\n (searchEvent)=\"search($event, true)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableLeftItems; track item) {\n <div class=\"s-table-double__list\">\n <s-list\n [size]=\"'xs'\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [id]=\"id + '-listLeft-' + item.id\"\n [selected]=\"item.checked\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, true)\"\n (click)=\"selectItem(item.id, true)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, true)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n </div>\n }\n } @else {\n @for (item of config.tableLeftItems; track item) {\n <tr\n [ngClass]=\"{\n active: !config.disableLeftRowSelection && config.isTreeMode && item.selected,\n }\"\n (click)=\"!config.disableLeftRowSelection && config.isTreeMode && rowClick(item, true)\">\n <td (click)=\"$event.stopPropagation()\">\n <input\n type=\"checkbox\"\n [id]=\"id + '-checkboxLeft-' + item.id\"\n [(ngModel)]=\"item.checked\"\n (change)=\"changeCheckbox()\" />\n </td>\n @for (column of config.tableLeftConfig.columns; track column) {\n @if (column.id !== 'checkbox' && column.id !== undefined) {\n <td [id]=\"id + '-itemLeft-' + item.id\">{{ item[column.id] }}</td>\n }\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n <div class=\"s-table-double__body__middle\">\n <div>\n <s-button\n [id]=\"id + '-addButton'\"\n (click)=\"addItem()\"\n (keydown.enter)=\"addItem()\"\n position=\"normal\"\n [disabled]=\"disabledButtonLeft()\"\n [pill]=\"true\"\n ><s-icon-mat\n ><span class=\"material-symbols-outlined\">\n {{ config.additionButton ? 'add' : 'arrow_forward' }}\n </span></s-icon-mat\n ></s-button\n >\n </div>\n <div>\n <s-button\n [id]=\"id + '-removeButton'\"\n (click)=\"removeItem()\"\n (keydown.enter)=\"removeItem()\"\n position=\"normal\"\n type=\"secondary\"\n [disabled]=\"disabledButtonRight()\"\n [pill]=\"true\"\n ><s-icon-mat\n ><span class=\"material-symbols-outlined\">\n {{ config.additionButton ? 'remove' : 'arrow_back' }}\n </span></s-icon-mat\n ></s-button\n >\n </div>\n </div>\n <div class=\"s-table-double__body__right\">\n <s-table-complete\n [config]=\"config.tableRightConfig\"\n (actionEvent)=\"action(false)\"\n (bottomStatusBarEvent)=\"bottomStatusBarChange($event, false)\"\n (checkAllEvent)=\"checkAllEvent($event, false)\"\n (deleteEvent)=\"delete(false)\"\n (emptyEvent)=\"empty(false)\"\n (filterEvent)=\"filter($event, false)\"\n (multiSelectEvent)=\"multiSelect($event, false)\"\n (orderByEvent)=\"orderBy($event, false)\"\n (pageEvent)=\"page($event, false)\"\n (paginationEvent)=\"paginationEmitter($event, false)\"\n (pillButtonEvent)=\"pillButton(false)\"\n (scrollEvent)=\"onScroll(false)\"\n (searchEvent)=\"search($event, false)\">\n @if (config.dragAndDrop) {\n @for (item of config.tableRightItems; track item) {\n <s-list\n [size]=\"'xs'\"\n [id]=\"id + '-listRight-' + item.id\"\n [attr.data-item-id]=\"item.id\"\n [draggable]=\"true\"\n [selected]=\"item.checked\"\n (dragstart)=\"onDragStart($event, item.id)\"\n (dragover)=\"onDragOver($event, item.id)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, item.id, false)\"\n (click)=\"selectItem(item.id, false)\">\n <div class=\"s-table-double__drag\">\n <h5 class=\"ml-2\">{{ item.name }}</h5>\n @if (item.iconAction) {\n <div class=\"s-table-double__drag-icon\">\n <s-icon-mat (click)=\"iconAction(item.id, false)\">{{ item.iconAction }}</s-icon-mat>\n </div>\n }\n </div>\n </s-list>\n }\n } @else {\n @for (item of config.tableRightItems; track item) {\n <tr\n [ngClass]=\"{ active: config.isTreeMode && item.selected }\"\n (click)=\"config.isTreeMode && rowClick(item, false)\">\n <td\n class=\"s-table-double__tree-cell\"\n [class.s-table-double__tree-cell--tree]=\"config.isTreeMode\"\n [attr.colspan]=\"config.isTreeMode ? getTreeCellColspan() : null\">\n <div class=\"s-table-double__tree-cell-content\" [ngClass]=\"getTreeLevelClass(item)\">\n @if (config.isTreeMode && item.hasChildren) {\n <s-icon-mat\n class=\"s-table-double__tree-toggle\"\n [class.s-table-double__tree-toggle--expanded]=\"item.expanded\"\n (click)=\"toggleExpand($event, item.id)\">\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </s-icon-mat>\n } @else if (config.isTreeMode) {\n <span class=\"s-table-double__tree-spacer\"></span>\n }\n <input\n type=\"checkbox\"\n [id]=\"id + '-checkboxRight-' + item.id\"\n [(ngModel)]=\"item.checked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"changeCheckbox()\" />\n @if (config.isTreeMode) {\n <span class=\"s-table-double__tree-name\">{{ item.name }}</span>\n }\n </div>\n </td>\n @for (column of config.tableRightConfig.columns; track column) {\n @if (\n column.id !== 'checkbox' &&\n column.id !== undefined &&\n !(config.isTreeMode && column.id === 'name') &&\n column.id !== 'actions'\n ) {\n <td [id]=\"id + '-itemRight-' + item.id\" (click)=\"column.switchConfig && $event.stopPropagation()\">\n @if (column.switchConfig && item[column.id!] !== undefined) {\n <s-toggle-switch\n [config]=\"column.switchConfig\"\n [(ngModel)]=\"item[column.id!]\"\n (valueChange)=\"onSwitchChange($event, item.id, column.id!, false)\">\n </s-toggle-switch>\n } @else if (!column.switchConfig) {\n {{ item[column.id] }}\n }\n </td>\n }\n }\n @if (config.showOrderButtons) {\n <td class=\"s-table-double__order-actions\" (click)=\"$event.stopPropagation()\">\n <s-table-actions-buttons\n [tableActionsButtons]=\"getOrderButtons(item)\"\n (clickButtonEvent)=\"onOrderButtonClick($event, item.id)\">\n </s-table-actions-buttons>\n </td>\n }\n </tr>\n }\n }\n </s-table-complete>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation, OnInit, signal, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { STabsModule } from '../tabs';\nimport { STableDoubleComponent } from '../table-double/table-double.component';\nimport {\n STableDoubleCompleteConfig,\n STableDoubleCompleteUpdateEvent,\n STableDoubleCompleteItem,\n} from './table-double-complete.model';\nimport { ITab } from '../tabs/models';\nimport {\n STableDouble,\n STablesData,\n STableDoubleItem,\n STableDoubleBooleanEvent,\n STableDoubleReorderEvent,\n STableDoubleStringArrayEvent,\n STableDoubleSortEvent,\n STableDoubleStringEvent,\n STableDoubleSwitchEvent,\n} from '../table-double/table-double.model';\nimport { STranslateService } from '../services/translate/translate.service';\n\n@Component({\n selector: 's-table-double-complete',\n standalone: true,\n imports: [CommonModule, STabsModule, STableDoubleComponent],\n templateUrl: './table-double-complete.component.html',\n styleUrl: './table-double-complete.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class STableDoubleCompleteComponent implements OnInit {\n @Input() config!: STableDoubleCompleteConfig;\n\n @Output() updateEvent = new EventEmitter<STableDoubleCompleteUpdateEvent>();\n @Output() actionPositionEvent = new EventEmitter<boolean>();\n @Output() bottomStatusBarPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() checkAllPositionEvent = new EventEmitter<STableDoubleBooleanEvent>();\n @Output() deletePositionEvent = new EventEmitter<boolean>();\n @Output() emptyPositionEvent = new EventEmitter<boolean>();\n @Output() filterPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() multiSelectPositionEvent = new EventEmitter<STableDoubleStringArrayEvent>();\n @Output() orderByPositionEvent = new EventEmitter<STableDoubleSortEvent>();\n @Output() pillButtonPositionEvent = new EventEmitter<boolean>();\n @Output() scrollPositionEvent = new EventEmitter<boolean>();\n @Output() selectPositionEvent = new EventEmitter<STableDoubleStringEvent>();\n id!: string;\n @Output() switchChangeEvent = new EventEmitter<STableDoubleSwitchEvent>();\n\n private activeTabKey!: string;\n private rightTableState: STableDoubleCompleteItem[] = [];\n private expandedNodes = new Map<string, boolean>();\n private readonly _sTranslateService = inject(STranslateService);\n\n tableDoubleAdapter!: STableDouble;\n\n ngOnInit(): void {\n this.id = this.config.id ?? `s-table-double-complete`;\n this.rightTableState = [...(this.config.tableConfig.tableRightItems ?? [])];\n\n const selectedTab = this.config.tabs.find(t => t.selected);\n if (selectedTab) {\n this.setActiveTab(selectedTab);\n }\n }\n\n onTabSelect(tab: ITab): void {\n this.setActiveTab(tab);\n }\n\n private setActiveTab(tab: ITab): void {\n this.activeTabKey = String(tab.value ?? tab.text);\n\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const tableLeftItems = this.mapToTableDoubleItems(leftItems);\n\n let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);\n\n if (this.config.treeMode) {\n tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));\n }\n\n this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);\n }\n\n onUpdateTables(event: STablesData): void {\n const prevRightIds = new Set(this.rightTableState.map(i => i.id));\n const sourceLeft = this.config.itemsByTab[this.activeTabKey] ?? [];\n const selectedRightItems = event.tableRightItems.filter(i => i.selected);\n const parentId = this.config.treeMode && selectedRightItems.length === 1 ? selectedRightItems[0].id : null;\n\n const nextRight: STableDoubleCompleteItem[] = event.tableRightItems.map(item => {\n const prev = this.rightTableState.find(r => r.id === item.id);\n const fromLeft = sourceLeft.find(l => l.id === item.id);\n return {\n ...(prev ?? fromLeft ?? {}),\n id: item.id,\n name: item.name,\n checked: !!item.checked,\n parentId: prev?.parentId ?? null,\n };\n });\n\n const addedItems = nextRight.filter(i => !prevRightIds.has(i.id));\n\n if (this.config.treeMode && parentId) {\n addedItems.forEach(item => {\n item.parentId = parentId;\n });\n }\n\n this.rightTableState = nextRight;\n this.resetSelections();\n this.refreshTables();\n }\n\n private refreshTables(): void {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const tableLeftItems = this.mapToTableDoubleItems(leftItems);\n\n let tableRightItems = this.mapToTableDoubleItems(this.rightTableState);\n\n if (this.config.treeMode) {\n tableRightItems = this.flattenTree(this.buildTree(this.rightTableState));\n tableLeftItems;\n }\n\n this.tableDoubleAdapter = this.buildTableDoubleAdapter(tableLeftItems, tableRightItems);\n\n this.updateEvent.emit({\n tabKey: this.activeTabKey,\n tableLeftItems,\n tableRightItems,\n });\n }\n\n private buildTableDoubleAdapter(leftItems: STableDoubleItem[], rightItems: STableDoubleItem[]): STableDouble {\n const rightColumns = [...this.config.tableConfig.tableRightConfig.columns];\n if (this.config.showOrderButtons && !rightColumns.some(c => c.id === 'actions')) {\n rightColumns.push({ id: 'actions', title: this._sTranslateService.instant('ui.generic.actions') });\n }\n\n return {\n additionButton: true,\n isTreeMode: !!this.config.treeMode,\n showOrderButtons: !!this.config.showOrderButtons,\n disableLeftRowSelection: true,\n tableLeftConfig: {\n ...this.config.tableConfig.tableLeftConfig,\n totalItems: leftItems.length,\n isTreeMode: false,\n configBottomStatusBar: signal({\n counter: leftItems.filter(i => i.checked).length,\n total: leftItems.length,\n disabled: leftItems.length === 0,\n }),\n },\n tableRightConfig: {\n ...this.config.tableConfig.tableRightConfig,\n columns: rightColumns,\n totalItems: rightItems.length,\n isTreeMode: !!this.config.treeMode,\n configBottomStatusBar: signal({\n counter: rightItems.filter(i => i.checked).length,\n total: rightItems.length,\n disabled: rightItems.length === 0,\n }),\n },\n tableLeftItems: leftItems,\n tableRightItems: rightItems,\n id: this.id,\n };\n }\n\n private mapToTableDoubleItems(items: STableDoubleCompleteItem[]): STableDoubleItem[] {\n return items.map((item, index) => ({\n ...item,\n name: item.name ?? '',\n checked: item.checked ?? false,\n }));\n }\n\n private buildTree(items: STableDoubleCompleteItem[]): STableDoubleCompleteItem[] {\n const map = new Map<string, STableDoubleCompleteItem & { children: STableDoubleCompleteItem[] }>();\n const roots: STableDoubleCompleteItem[] = [];\n\n items.forEach(item => {\n map.set(item.id, { ...item, children: [] });\n });\n\n map.forEach(item => {\n if (item.parentId) {\n const parent = map.get(item.parentId);\n if (parent) parent.children.push(item);\n } else {\n roots.push(item);\n }\n });\n\n return roots;\n }\n\n private flattenTree(nodes: STableDoubleCompleteItem[], level: number = 0): STableDoubleItem[] {\n let result: STableDoubleItem[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const hasChildren = !!node.children?.length;\n const isExpanded = this.expandedNodes.get(node.id) ?? true;\n\n result.push({\n ...node,\n name: node.name ?? '',\n checked: !!node.checked,\n parentId: node.parentId ?? null,\n level: level,\n expanded: isExpanded,\n hasChildren: hasChildren,\n } as STableDoubleItem);\n\n if (hasChildren && isExpanded && node.children) {\n result = result.concat(this.flattenTree(node.children, level + 1));\n }\n }\n return result;\n }\n\n private resetSelections(): void {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n leftItems.forEach(i => {\n i.checked = false;\n i.selected = false;\n });\n this.rightTableState.forEach(i => {\n i.checked = false;\n i.selected = false;\n });\n }\n\n onSwitchChange(event: STableDoubleSwitchEvent): void {\n if (event.isLeftTable) {\n const leftItems = this.config.itemsByTab[this.activeTabKey] ?? [];\n const item = leftItems.find(i => i.id === event.itemId);\n if (item) item[event.columnId] = event.value;\n } else {\n const item = this.rightTableState.find(i => i.id === event.itemId);\n if (item) item[event.columnId] = event.value;\n }\n this.switchChangeEvent.emit(event);\n }\n\n toggleNodeExpansion(nodeId: string): void {\n const currentState = this.expandedNodes.get(nodeId) ?? true;\n this.expandedNodes.set(nodeId, !currentState);\n this.refreshTables();\n }\n\n onReorderItem(event: STableDoubleReorderEvent): void {\n const { itemId, direction } = event;\n const item = this.rightTableState.find(i => i.id === itemId);\n if (!item) return;\n\n const parentId = item.parentId ?? null;\n const siblings = this.rightTableState.filter(i => (i.parentId ?? null) === parentId);\n const siblingIndex = siblings.findIndex(i => i.id === itemId);\n if (siblingIndex === -1) return;\n\n let targetIndex: number;\n switch (direction) {\n case 'top':\n targetIndex = 0;\n break;\n case 'up':\n targetIndex = siblingIndex - 1;\n break;\n case 'down':\n targetIndex = siblingIndex + 1;\n break;\n case 'bottom':\n targetIndex = siblings.length - 1;\n break;\n default:\n return;\n }\n\n if (targetIndex < 0 || targetIndex >= siblings.length || targetIndex === siblingIndex) return;\n\n siblings.splice(siblingIndex, 1);\n siblings.splice(targetIndex, 0, item);\n\n this.rightTableState = this.rightTableState.filter(i => (i.parentId ?? null) !== parentId);\n const insertRef = parentId ? this.rightTableState.findIndex(i => i.id === parentId) + 1 : 0;\n this.rightTableState.splice(insertRef, 0, ...siblings);\n\n this.refreshTables();\n }\n}\n","<div class=\"s-table-double-complete\" [id]=\"id\">\n <s-tabs [tabs]=\"config.tabs\" [configTabs]=\"config.configTabs\" (eventSelect)=\"onTabSelect($event)\"> </s-tabs>\n\n <s-table-double\n [config]=\"tableDoubleAdapter\"\n (eventUpdateTables)=\"onUpdateTables($event)\"\n (actionPositionEvent)=\"actionPositionEvent.emit($event)\"\n (bottomStatusBarPositionEvent)=\"bottomStatusBarPositionEvent.emit($event)\"\n (checkAllPositionEvent)=\"checkAllPositionEvent.emit($event)\"\n (deletePositionEvent)=\"deletePositionEvent.emit($event)\"\n (emptyPositionEvent)=\"emptyPositionEvent.emit($event)\"\n (filterPositionEvent)=\"filterPositionEvent.emit($event)\"\n (multiSelectPositionEvent)=\"multiSelectPositionEvent.emit($event)\"\n (orderByPositionEvent)=\"orderByPositionEvent.emit($event)\"\n (pillButtonPositionEvent)=\"pillButtonPositionEvent.emit($event)\"\n (scrollPositionEvent)=\"scrollPositionEvent.emit($event)\"\n (toggleExpandEvent)=\"toggleNodeExpansion($event)\"\n (reorderItemEvent)=\"onReorderItem($event)\"\n (switchChangeEvent)=\"onSwitchChange($event)\">\n </s-table-double>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.SIconMaterialComponent","i2.SIconMaterialComponent","i3.ImageLoaderDirective","i1.SAvatarComponent","i4.SCheckboxOldComponent","i5.SRadioComponent","i6.SProfileGroupComponent","i3.STagComponent","i4.STooltipComponent","i5.CustomTooltipDirective","i4.SButtonComponent","i5.STooltipComponent","i6.CustomTooltipDirective","i7.SBadgeComponent","i8.SNotificationComponent","i2.SCompanyLogoComponent","i3.SMenuMainComponent","i4.SAvatarComponent","i5.SSubMenuComponent","i6.SIconMenuComponent","i7.SProfileGroupComponent","i1.LocalstorageService","i2.SErrorControl","i4.SErrorControl","i5.SValidationError","i1.SelectNavigationService","i1.AnimationComponent","i3.SErrorControl","i4.SInputComponent","i5.SSelectSimpleComponent","i6.SSpinnerComponent","i4.SValidationError","i5.SErrorControl","i6.SValidationError","i5.SCheckboxComponent","i6","i7.SErrorControl","i8.SInputComponent","i9.SValidationError","i5","i6.SErrorControl","i7.SValidationError","i5.SCheckboxOldComponent","i6.SCheckboxComponent","i7","i4.STagComponent","i6.SSubMenuComponent","i3.SCheckboxComponent","i4","i5.SSpinnerComponent","i3.STooltipComponent","i4.CustomTooltipDirective","i1.SidebarStateService","i4.SIconMaterialComponent","i5.SBadgeComponent","i6.SMenuItemTitleComponent","i3.SButtonComponent","i1.SIconMaterialComponent","i1.SToastService","i2.SCheckboxOldComponent","i2.SButtonComponent","i4.SSelectComponent","i1.ImageLoaderDirective","i3.SBadgeComponent","i3.SInputComponent","i5.SIconMaterialComponent","i7.SSelectMultipleComponent","i8.SSelectComponent","i1.STranslateService","i1.SCheckboxComponent","i3.ToggleSwitchFormComponent","i2.SToolbarTopComponent","i3.EmptyComponent","i4.STabletComponent","i4.STemplate","i5.SPaginationComponent","i6.SBottomStatusBarComponent","i4.SCheckboxComponent","i5.GridMultiInputsToolbarTopComponent","i2.TableCompleteComponent","i6.SListComponent","i8.ToggleSwitchFormComponent"],"mappings":"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"}