sidesys-generic-ui 2.2.1 → 2.2.2

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/s-icons.ts","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.component.ts","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.component.html","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.module.ts","../../../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/login/s-login-event.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-images.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-text/s-input-text.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-text/s-input-text.component.html","../../../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/login/s-login.component.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login.component.html","../../../projects/sidesys-generic-ui/src/lib/enums/theme.enum.ts","../../../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/input/components/input/s-input-model.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/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/range/s-range.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/range/s-range.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/login/s-login.module.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-model.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-errors-model.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/drop-down/s-drop-down.component.ts","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down.component.html","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down.module.ts","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down-button.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/dynamic-form/models/configFields/s-input-config.ts","../../../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/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/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/form/s-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/form/s-form.component.html","../../../projects/sidesys-generic-ui/src/lib/form/s-form.module.ts","../../../projects/sidesys-generic-ui/src/lib/form/s-form-control.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/shared/localstorage.service.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/timeline/s-timeline.model.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/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/models/modalType.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/services/modal-confirm.service.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/modal/modal.module.ts","../../../projects/sidesys-generic-ui/src/lib/animation/emuns/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/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/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})\n\nexport class SCompanyLogoComponent implements OnInit , OnChanges {\n\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' , 'height': this.height+'px'\n }\n }\n\n}","\n<div *ngIf=\"!customImage\" class=\"s-company-logo\" [ngStyle]=\"_style\"></div>\n<img *ngIf=\"customImage\" alt=\"\" src=\"{{customImage}}\" [ngStyle]=\"_style\"/>","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} 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'];\n @Input() fill: SIcon['fill'] = false;\n @Input() weight: SIcon['weight'] = 400;\n @Input() grade: SIcon['grade'] = 0;\n @Input() opticalSize: SIcon['opticalSize'] = 48;\n @Input() style?: SIcon['style'] = '';\n @Input() type: SIcon['type'] = '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}, \"opsz\" ${this.opticalSize}`;\n break;\n case 'icon':\n this.optionsType = 'material-icons';\n break;\n }\n }\n}\n","<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>","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})\n\nexport class SAvatarComponent implements OnInit {\n\n\n @Input() urlProfileImage?: string ;\n @Input() letters?: string = 'NN';\n @Input()\n get status(): string { return this._status}\n set status(val: any | undefined){\n this._status = ['approved' , 'declined' , 'blocked' , 'online' , 'offline' , 'busy'].indexOf(val) != -1 ? val : undefined;\n };\n @Input()\n get display(): string { return this._display; }\n set display(val: string | undefined){\n this._display = val ? ['icon', 'avatar', 'letters' ].indexOf(val) != -1 ? val : 'icon' : 'icon';\n };\n @Input() \n get size(): string { return this._size; }\n set size(val: string){\n this._size = ['128', '96', '48' , '32' , '24' , '16'].indexOf(val) != -1 ? val : '128';\n };\n \n _display: string = 'icon';\n _size: string = '128';\n _status: any = undefined;\n\n constructor(){}\n\n ngOnInit(): void {\n if(this.letters)\n this.letters = this.letters.substring(0, 2);\n \n }\n}","<div class=\"s-avatar no-select s-avatar--size-{{size}}\">\n <ng-container [ngSwitch]=\"status\">\n\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\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>","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})\n\nexport class SCheckboxOldComponent implements ControlValueAccessor {\n\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 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 />\n <label *ngIf=\"label\"\n [ngClass]=\"!isUndefined && !model && disabled ? 'disabled': ''\"\n class=\"s-checkbox__label s-body-2\">{{label}}</label>\n</div>","import {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} 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})\n\nexport class SRadioComponent implements ControlValueAccessor {\n \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 = \"id-\" + Math.random();\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 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}","<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 />\n <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]=\"config.id\"\n [value]=\"config.value\"\n [name]=\"config.name ?? ''\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\"\n />\n <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})\n\nexport class SProfileGroupComponent implements OnInit {\n\n @Input() size: string = 'm'; //s , m , l , xl\n @Input() user!: SUser | undefined\n _size: string = 'm'\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 = \"24\"\n break;\n case \"m\":\n this._size = \"32\"\n break;\n case \"l\":\n this._size = \"48\"\n break;\n case \"xl\":\n this._size = \"96\"\n break;\n default:\n this._size = \"32\"\n break;\n }\n \n \n }\n}","<div class=\"s-profile-group\">\n <div class=\"s-profile-group__content-right\">\n <s-avatar letters=\"{{user?.letters}}\" display=\"{{user?.display}}\" [size]=\"_size\" [urlProfileImage]=\"user?.url\" [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}}\">{{user?.email}}</span>\n </div>\n</div>","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 *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 *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 *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 *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\n @Input() disabled: boolean = false;\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\n //Pasa a secondary cuando se invierte\n if(this.invert){\n this.type = 'secondary'\n }\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}\n","<button 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[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})\n\nexport class STooltipComponent {\n \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 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\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateY(\"+heightParent+\"px)\" , \"position\": \"fixed\"}\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateX(-100%)\" , \"position\": \"fixed\" , \"margin-right\": \"10px\"}\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateX(\"+widthParent+\"px)\" , \"position\": \"fixed\"}\n break;\n \n default:\n \n break;\n }\n }\n}"," <div #stooltip [ngStyle]=\"stylePosition\" class=\"s-tooltip s-tooltip--theme-{{theme}} s-tooltip--position-{{position}} s-tooltip--display-{{showTooltip}}\">\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, OnInit, 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})\n\nexport class SBadgeComponent implements OnInit {\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' | string = 'primary';\n @Input() size: 'xs' | 'sm' = 'sm';\n @Input() new: boolean = false;\n\n constructor(){}\n\n ngOnInit(): void {\n }\n}","<span class=\"s-badge s-badge--{{type}} {{size ? 's-badge--size-'+size : ''}}\">\n <s-icon-mat *ngIf=\"new\">lens</s-icon-mat>\n <ng-content></ng-content>\n</span>","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\n})\n\nexport class STagComponent {\n\n @Input() type: 'primary' | 'secondary' | 'red' | 'yellow' | 'green' = 'primary';\n @Input() size: 'xs' |'sm' | 'md' = 'sm';\n @Input() disabled: boolean = false;\n\n}","<span class=\"s-tag {{type}} {{size}} {{disabled ? 'disabled' : ''}}\">\n <ng-content></ng-content>\n</span>","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, 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\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 {\n\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\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 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}\n","<nav class=\"s-navbar\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <div class=\"s-navbar__content-left\">\n <ng-container *ngIf=\"link\">\n <a [href]=\"linkHref\">\n <s-company-logo [height]=\"height\" [width]=\"width\" [customImage]=\"customImage\" class=\"s-navbar__company-box\"></s-company-logo>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!link\">\n <s-company-logo [height]=\"height\" [width]=\"width\" [customImage]=\"customImage\" class=\"s-navbar__company-box\"></s-company-logo>\n </ng-container>\n \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 (clickTitle)=\"_clickTitle($event)\" (clickDelete)=\"_clickDelete($event)\" (clickUnread)=\"_clickUnread($event)\" [iconMenu]=\"iconMenu\"></s-icon-menu>\n </div>\n <div class=\"s-navbar__content-user\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <s-profile-group tabindex=\"0\" class=\"cursor\" *ngIf=\"user && userFull\" [user]=\"user\" (keydown.enter)=\"toogleMenuProfile($event)\" (click)=\"toogleMenuProfile($event)\"></s-profile-group>\n <s-avatar class=\"cursor\"\n *ngIf=\"user && !userFull\" \n urlProfileImage=\"{{user.url}}\" \n letters=\"{{user.letters}}\"\n display=\"{{user.display}}\" \n size=\"32\" 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 [menu]=\"menuProfile\" (click)=\"clickMenuProfile($event)\" (closeMenuEvent)=\"closeMenuProfile($event)\"></s-sub-menu>\n </div>\n </div>\n </div>\n</nav>\n","/**\n * Libreria de Iconos en Sidesys\n * Solo debe ingresarse el contenido del SVG. \n */\n\nexport const IconsList = [\n {\n name: 'home-outline',\n SVG: '<g vector-effect=\"none\"><path d=\"M20.42 10.18L12.71 2.3a1 1 0 0 0-1.42 0l-7.71 7.89A2 2 0 0 0 3 11.62V20a2 2 0 0 0 1.89 2h14.22A2 2 0 0 0 21 20v-8.38a2.07 2.07 0 0 0-.58-1.44zM10 20v-6h4v6zm9 0h-3v-7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v7H5v-8.42l7-7.15 7 7.19z\"/></g>',\n },\n {\n name: 'list-outline',\n SVG: '<rect transform=\"rotate(180 12 12)\" opacity=\"0\"/><circle cx=\"4\" cy=\"7\" r=\"1\"/><circle cx=\"4\" cy=\"12\" r=\"1\"/><circle cx=\"4\" cy=\"17\" r=\"1\"/><rect x=\"7\" y=\"11\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/><rect x=\"7\" y=\"16\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/><rect x=\"7\" y=\"6\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/>',\n },\n {\n name: 'plus-circle-outline',\n SVG: '<rect opacity=\"0\"/><path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"/><path d=\"M15 11h-2V9a1 1 0 0 0-2 0v2H9a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0-2z\"/></g></g>'\n },\n {\n name: 'arrow-down-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"arrow-ios-downward\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M12 16a1 1 0 0 1-.64-.23l-6-5a1 1 0 1 1 1.28-1.54L12 13.71l5.36-4.32a1 1 0 0 1 1.41.15 1 1 0 0 1-.14 1.46l-6 4.83A1 1 0 0 1 12 16z\"/></g></g>'\n },\n {\n name: 'people-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"people\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M9 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0-6a2 2 0 1 1-2 2 2 2 0 0 1 2-2z\"/><path d=\"M17 13a3 3 0 1 0-3-3 3 3 0 0 0 3 3zm0-4a1 1 0 1 1-1 1 1 1 0 0 1 1-1z\"/><path d=\"M17 14a5 5 0 0 0-3.06 1.05A7 7 0 0 0 2 20a1 1 0 0 0 2 0 5 5 0 0 1 10 0 1 1 0 0 0 2 0 6.9 6.9 0 0 0-.86-3.35A3 3 0 0 1 20 19a1 1 0 0 0 2 0 5 5 0 0 0-5-5z\"/></g></g>'\n },\n {\n name: 'archive-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"archive\"><rect width=\"24\" height=\"24\" transform=\"rotate(90 12 12)\" opacity=\"0\"/><path d=\"M21 6a3 3 0 0 0-3-3H6a3 3 0 0 0-2 5.22V18a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V8.22A3 3 0 0 0 21 6zM6 5h12a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm12 13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V9h12z\"/><rect x=\"9\" y=\"12\" width=\"6\" height=\"2\" rx=\".87\" ry=\".87\"/></g></g>'\n },\n {\n name: 'person-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"person\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M12 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0-6a2 2 0 1 1-2 2 2 2 0 0 1 2-2z\"/><path d=\"M12 13a7 7 0 0 0-7 7 1 1 0 0 0 2 0 5 5 0 0 1 10 0 1 1 0 0 0 2 0 7 7 0 0 0-7-7z\"/></g></g>'\n },\n {\n name: 'briefcase-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"briefcase\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M19 7h-3V5.5A2.5 2.5 0 0 0 13.5 3h-3A2.5 2.5 0 0 0 8 5.5V7H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-8a3 3 0 0 0-3-3zm-4 2v10H9V9zm-5-3.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V7h-4zM4 18v-8a1 1 0 0 1 1-1h2v10H5a1 1 0 0 1-1-1zm16 0a1 1 0 0 1-1 1h-2V9h2a1 1 0 0 1 1 1z\"/></g></g>'\n },\n {\n name: 'plus-circle',\n SVG: '<path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"/><path d=\"M15 11h-2V9a1 1 0 0 0-2 0v2H9a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0-2z\"/>'\n },\n {\n name: 'plus-outline',\n SVG: '<path d=\"M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2z\"/>'\n },\n {\n name: 'line-height',\n SVG: '<rect x=\"20.5\" y=\"0.761719\" width=\"1\" height=\"20\" transform=\"rotate(90 20.5 0.761719)\" fill=\"#898D94\"/><path d=\"M12.2539 12.5352L10.5117 7.46484L8.66016 12.5352H12.2539ZM9.69922 5.76172H11.457L15.6211 17.2383H13.918L12.7539 13.8008H8.21484L6.97266 17.2383H5.37891L9.69922 5.76172Z\" fill=\"#898D94\"/><rect x=\"20.5\" y=\"21.2383\" width=\"1\" height=\"20\" transform=\"rotate(90 20.5 21.2383)\" fill=\"#898D94\"/>',\n },\n {\n name: 'letter-spacing',\n SVG: '<rect x=\"0.878906\" y=\"0.5\" width=\"1\" height=\"20\" fill=\"#898D94\"/><path d=\"M12.7539 11.5352L11.0117 6.46484L9.16016 11.5352H12.7539ZM10.1992 4.76172H11.957L16.1211 16.2383H14.418L13.2539 12.8008H8.71484L7.47266 16.2383H5.87891L10.1992 4.76172Z\" fill=\"#898D94\"/><rect x=\"20.1211\" y=\"0.5\" width=\"1\" height=\"20\" fill=\"#898D94\"/>'\n }\n];\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconsList } from './s-icons';\n\n@Component({\n selector: 's-icon',\n templateUrl: './s-icon.component.html',\n styleUrls: ['./s-icon.component.css']\n})\n\nexport class SIconComponent implements OnInit {\n @Input() icon!: string;\n @Input() width?: any;\n @Input() height?: any;\n @Input() size?: any = '24';\n @Input() fill?: string = '#8f9bb3';\n // @Input() class?: string;\n public code: any ;\n public link: any = '';\n viewBox: string = '0 0 24 24';\n\n constructor(private domSanitizer: DomSanitizer){}\n\n ngOnInit(): void {\n \n this.code = IconsList.find((x: { name: string; }) => x.name === this.icon);\n this.link = this.domSanitizer.bypassSecurityTrustHtml(this.code.SVG);\n\n // this.width = parseInt(this.width)+2;\n // this.height = parseInt(this.height)+2;\n\n // if (!this.width || !this.height) {\n this.width = parseInt(this.size);\n this.height = parseInt(this.size);\n\n // this.viewBox = \"0 0 \"+this.width+\" \" +this.height\n // }\n }\n}","<svg \n [innerHTML]=\"link\" \n attr.fill=\"{{fill}}\" \n attr.width=\"{{width}}px\" \n attr.height=\"{{height}}px\"\n class=\"control-svg\"\n >\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconComponent } from './s-icon.component';\n\n\n\n@NgModule({\n declarations: [\n SIconComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SIconComponent]\n})\nexport class SIconModule { }\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 { SIconModule } from '../../../icon/s-icon.module';\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: [\n SMenuMainComponent,\n ],\n imports: [\n CommonModule,\n SIconModule,\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?: string; //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 opticalSize?: number; //Tamanio 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\n@NgModule({\n declarations: [\n ImageLoaderDirective\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n ImageLoaderDirective,\n ]\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.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 {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} 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> {\n @Input() config!: SCheckbox;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\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\">\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 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,\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 { SIconModule } from '../icon/s-icon.module';\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: [\n SNavbarComponent\n ],\n imports: [\n CommonModule,\n SIconModule,\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","export class SLoginEvent {\n user!: string;\n password!: string;\n}\n","export const Images = {\n left: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA1NzMgNjg3Ij48ZGVmcz48c3R5bGU+LmR7ZmlsbDojMDA5MWZlO30uZXtmaWxsOiNmZmY7fS5me2lzb2xhdGlvbjppc29sYXRlO30uZ3ttaXgtYmxlbmQtbW9kZTpzb2Z0LWxpZ2h0O30uaHtmaWxsOm5vbmU7fS5pe2NsaXAtcGF0aDp1cmwoI2MpO30uantmaWxsOiNjMmU2ZmY7fTwvc3R5bGU+PGNsaXBQYXRoIGlkPSJjIj48cGF0aCBjbGFzcz0iaCIgZD0iTTQwMy40NSwxODYuNDRjLTM1Ljg0LTI2LjktMTEyLjgsNC43My0xNzUuNDcsMTYuNTYtNjIuNjcsMTEuODMtMTUxLjc1LDc3Ljg2LTkzLjYxLDE4Ni44LDU4LjE0LDEwOC45NCwxMDQuNDIsMTIzLjAxLDIwOC4wNCwxMDMuMDYsMTAzLjYyLTE5Ljk0LDE1MC43Ni0xMDIuNjIsMTE1LjIxLTE1NS0zNS41NC01Mi4zOC0xOS41LTEyNS40MS01NC4xNy0xNTEuNDNaIi8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xhc3M9ImYiPjxnIGlkPSJhIj48cmVjdCBjbGFzcz0iaCIgd2lkdGg9IjU3MyIgaGVpZ2h0PSI2ODciLz48L2c+PGcgaWQ9ImIiPjxnPjxwYXRoIGNsYXNzPSJqIiBkPSJNNDAzLjQ1LDE4Ni40NGMtMzUuODQtMjYuOS0xMTIuOCw0LjczLTE3NS40NywxNi41Ni02Mi42NywxMS44My0xNTEuNzUsNzcuODYtOTMuNjEsMTg2LjgsNTguMTQsMTA4Ljk0LDEwNC40MiwxMjMuMDEsMjA4LjA0LDEwMy4wNiwxMDMuNjItMTkuOTQsMTUwLjc2LTEwMi42MiwxMTUuMjEtMTU1LTM1LjU0LTUyLjM4LTE5LjUtMTI1LjQxLTU0LjE3LTE1MS40M1oiLz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI5MCw0NzguOTljMS45OS0xLjg0LDMuNzgtMy45Nyw1LjMtNi4zNywxLjUyLTIuNCwyLjY3LTQuOTMsMy40OC03LjUybC03LjU1LTIuMzVjLjYzLTIuMDEsLjk4LTQuMDgsMS4wNi02LjE0bDcuOSwuMzJjLjIyLTUuNTYtMS4wMy0xMS4xMS0zLjYxLTE2LjA0bC03LDMuNjhjLS45Ni0xLjgzLTIuMTYtMy41NC0zLjU5LTUuMDlsNS44MS01LjM2Yy0xLjg0LTEuOTktMy45Ny0zLjc4LTYuMzctNS4zLTIuNC0xLjUyLTQuOTMtMi42Ny03LjUyLTMuNDhsLTIuMzUsNy41NWMtMi4wMS0uNjMtNC4wOC0uOTgtNi4xMy0xLjA2bC4zMi03LjkxYy01LjU2LS4yMi0xMS4xMSwxLjAzLTE2LjA0LDMuNjJsMy42OCw3Yy0xLjgzLC45Ni0zLjU0LDIuMTYtNS4wOSwzLjU5bC01LjM3LTUuODFjLTEuOTksMS44NC0zLjc4LDMuOTctNS4zLDYuMzdzLTIuNjcsNC45My0zLjQ4LDcuNTJsNy41NSwyLjM1Yy0uNjMsMi4wMS0uOTgsNC4wOC0xLjA2LDYuMTRsLTcuOS0uMzJjLS4yMiw1LjU2LDEuMDMsMTEuMSwzLjYxLDE2LjA0bDcuMDEtMy42OGMuOTYsMS44MiwyLjE2LDMuNTQsMy41OSw1LjA5bC01LjgxLDUuMzdjMS44NCwxLjk5LDMuOTcsMy43OCw2LjM3LDUuMywyLjQsMS41Miw0LjkzLDIuNjcsNy41MiwzLjQ4bDIuMzUtNy41NWMyLjAxLC42Myw0LjA4LC45OCw2LjEzLDEuMDZsLS4zMiw3LjkxYzUuNTYsLjIyLDExLjExLTEuMDMsMTYuMDQtMy42MmwtMy42OC03YzEuODMtLjk2LDMuNTQtMi4xNiw1LjA5LTMuNTlsNS4zNyw1LjgxWm0tMTQuNjItMTUuODRjLS42NiwuNjEtMS40LDEuMTMtMi4xOCwxLjU0LS43OSwuNDItMS42MywuNzItMi41LC45Mi0uODcsLjItMS43NiwuMjgtMi42NSwuMjQtLjg4LS4wMy0xLjc2LS4xOC0yLjYzLS40NS0uODMtLjI2LTEuNjUtLjYzLTIuNDItMS4xMi0uNzctLjQ5LTEuNDYtMS4wNi0yLjA1LTEuNy0uNjEtLjY2LTEuMTMtMS40LTEuNTQtMi4xOC0uNDItLjc5LS43Mi0xLjYzLS45Mi0yLjUtLjE5LS44Ny0uMjgtMS43Ni0uMjQtMi42NSwuMDMtLjg4LC4xOC0xLjc2LC40NS0yLjYzLC4yNi0uODMsLjYzLTEuNjUsMS4xMi0yLjQyLC40OS0uNzcsMS4wNi0xLjQ2LDEuNy0yLjA1LC42Ni0uNjEsMS40LTEuMTMsMi4xOC0xLjU0LC43OS0uNDIsMS42My0uNzIsMi41LS45MiwuODctLjIsMS43Ni0uMjgsMi42NS0uMjQsLjg4LC4wNCwxLjc2LC4xOCwyLjYzLC40NSwuODMsLjI2LDEuNjUsLjYzLDIuNDIsMS4xMiwuNzcsLjQ5LDEuNDYsMS4wNiwyLjA1LDEuNywuNjEsLjY2LDEuMTMsMS40LDEuNTQsMi4xOCwuNDIsLjc5LC43MiwxLjYzLC45MiwyLjUsLjIsLjg3LC4yOCwxLjc2LC4yNCwyLjY1LS4wMywuODgtLjE4LDEuNzYtLjQ1LDIuNjMtLjI2LC44My0uNjMsMS42NS0xLjEyLDIuNDItLjQ5LC43Ny0xLjA2LDEuNDYtMS43LDIuMDVaIi8+PHBhdGggZD0iTTI2OC40Miw0ODcuOGMtLjQyLDAtLjgzLDAtMS4yNS0uMDJsLS4zOS0uMDIsLjMyLTcuOTFjLTEuODYtLjEtMy43LS40Mi01LjQ3LS45NGwtMi4zNSw3LjU2LS4zNy0uMTJjLTIuNjctLjgzLTUuMjMtMi4wMi03LjYyLTMuNTMtMi4zOC0xLjUxLTQuNTYtMy4zMS02LjQ1LTUuMzdsLS4yNi0uMjksNS44Mi01LjM3Yy0xLjI0LTEuMzgtMi4zMS0yLjkxLTMuMi00LjU0bC03LjAxLDMuNjgtLjE4LS4zNGMtMi42MS00Ljk5LTMuODgtMTAuNjEtMy42Ni0xNi4yM2wuMDItLjM5LDcuOTEsLjMyYy4xLTEuODUsLjQyLTMuNjksLjk0LTUuNDdsLTcuNTYtMi4zNSwuMTItLjM3Yy44My0yLjY3LDIuMDItNS4yMywzLjUzLTcuNjIsMS41MS0yLjM4LDMuMzEtNC41NSw1LjM3LTYuNDVsLjI5LS4yNiw1LjM3LDUuODJjMS4zOC0xLjI0LDIuOTEtMi4zMSw0LjU0LTMuMmwtMy42OC03LjAxLC4zNC0uMThjNC45OS0yLjYxLDEwLjYtMy44OCwxNi4yMy0zLjY2bC4zOSwuMDItLjMyLDcuOTFjMS44NSwuMSwzLjY5LC40Miw1LjQ3LC45NGwyLjM1LTcuNTUsLjM3LC4xMmMyLjY3LC44Myw1LjIzLDIuMDIsNy42MiwzLjUzLDIuMzgsMS41MSw0LjU2LDMuMzEsNi40NSw1LjM3bC4yNiwuMjktNS44MSw1LjM3YzEuMjQsMS4zOSwyLjMxLDIuOTEsMy4yLDQuNTRsNy4wMS0zLjY4LC4xOCwuMzRjMi42MSw0Ljk5LDMuODgsMTAuNiwzLjY2LDE2LjIzbC0uMDIsLjM5LTcuOTEtLjMyYy0uMSwxLjg1LS40MiwzLjY5LS45NCw1LjQ3bDcuNTYsMi4zNS0uMTIsLjM3Yy0uODMsMi42Ny0yLjAyLDUuMjMtMy41Myw3LjYxLTEuNTEsMi4zOC0zLjMxLDQuNTUtNS4zNiw2LjQ1bC0uMjksLjI2LTUuMzctNS44MmMtMS4zOCwxLjI0LTIuOTEsMi4zMS00LjU0LDMuMmwzLjY4LDcuMDEtLjM0LC4xOGMtNC42MiwyLjQyLTkuNzcsMy42OS0xNC45OCwzLjY5Wm0tLjgzLS43OWM1LjIzLC4xNCwxMC40NC0xLjA0LDE1LjExLTMuNDFsLTMuNjgtNywuMzUtLjE4YzEuODItLjk1LDMuNS0yLjE0LDUtMy41M2wuMjktLjI2LDUuMzcsNS44MWMxLjg5LTEuNzksMy41NS0zLjgyLDQuOTUtNi4wMywxLjQtMi4yMiwyLjUyLTQuNTksMy4zMi03LjA2bC03LjU1LTIuMzUsLjEyLS4zN2MuNjEtMS45NiwuOTYtMy45OSwxLjA0LTYuMDN2LS4zOXM3LjkyLC4zMiw3LjkyLC4zMmMuMTQtNS4yMy0xLjAzLTEwLjQ0LTMuNDEtMTUuMTFsLTcsMy42OC0uMTgtLjM0Yy0uOTUtMS44MS0yLjE0LTMuNS0zLjUzLTVsLS4yNi0uMjksNS44MS01LjM2Yy0xLjc5LTEuODktMy44MS0zLjU1LTYuMDMtNC45NS0yLjIyLTEuNC00LjU5LTIuNTItNy4wNi0zLjMybC0yLjM1LDcuNTUtLjM3LS4xMmMtMS45Ni0uNjEtMy45OS0uOTYtNi4wMy0xLjA0aC0uMzlzLjMyLTcuOTIsLjMyLTcuOTJjLTUuMjMtLjE0LTEwLjQ0LDEuMDMtMTUuMTEsMy40MWwzLjY4LDctLjM1LC4xOGMtMS44MiwuOTUtMy41LDIuMTQtNSwzLjUzbC0uMjksLjI2LTUuMzYtNS44MWMtMS44OSwxLjc5LTMuNTUsMy44Mi00Ljk1LDYuMDMtMS40LDIuMjItMi41Miw0LjU5LTMuMzIsNy4wNmw3LjU1LDIuMzUtLjEyLC4zN2MtLjYxLDEuOTYtLjk2LDMuOTktMS4wNCw2LjAzbC0uMDIsLjM5LTcuOS0uMzJjLS4xNCw1LjIzLDEuMDMsMTAuNDQsMy40MSwxNS4xMWw3LTMuNjgsLjE4LC4zNGMuOTUsMS44MiwyLjE0LDMuNSwzLjUzLDVsLjI2LC4yOS01LjgxLDUuMzZjMS43OSwxLjg5LDMuODEsMy41NSw2LjAzLDQuOTUsMi4yMiwxLjQsNC41OSwyLjUyLDcuMDYsMy4zMmwyLjM1LTcuNTUsLjM3LC4xMmMxLjk1LC42MSwzLjk4LC45Niw2LjAzLDEuMDRsLjM5LC4wMi0uMzIsNy45Wm0uODYtMjAuNzZjLS4xNCwwLS4yOCwwLS40MiwwLS45My0uMDQtMS44NC0uMTktMi43My0uNDctLjg4LS4yOC0xLjczLS42Ny0yLjUxLTEuMTYtLjc4LS41LTEuNS0xLjA5LTIuMTMtMS43Ny0uNjItLjY3LTEuMTYtMS40NC0xLjU5LTIuMjYtLjQzLS44Mi0uNzUtMS42OS0uOTUtMi42LS4yLS45MS0uMjktMS44NC0uMjUtMi43NSwuMDQtLjkzLC4xOS0xLjg0LC40Ny0yLjczLC4yNy0uODgsLjY2LTEuNzIsMS4xNi0yLjUxLC41LS43OSwxLjA5LTEuNSwxLjc3LTIuMTMsLjY4LS42MywxLjQ0LTEuMTcsMi4yNi0xLjYsLjgyLS40MywxLjY5LS43NSwyLjYtLjk1LC45LS4yLDEuODMtLjI5LDIuNzYtLjI1LC45MywuMDQsMS44NSwuMiwyLjczLC40NywuODgsLjI3LDEuNzIsLjY3LDIuNTEsMS4xNiwuNzksLjUsMS41LDEuMDksMi4xMywxLjc3LC42MywuNjgsMS4xNiwxLjQ0LDEuNTksMi4yNiwuNDMsLjgyLC43NSwxLjcsLjk1LDIuNiwuMiwuOTEsLjI5LDEuODMsLjI1LDIuNzUtLjA0LC45My0uMTksMS44NS0uNDcsMi43My0uMjcsLjg4LS42NiwxLjcyLTEuMTYsMi41MS0uNSwuNzktMS4wOSwxLjUtMS43NywyLjEzaDBjLS42OCwuNjMtMS40NCwxLjE3LTIuMjYsMS41OS0uODIsLjQzLTEuNjksLjc1LTIuNiwuOTUtLjc3LC4xNy0xLjU1LC4yNi0yLjM0LC4yNlptLjAyLTIwLjQyYy0uNzMsMC0xLjQ2LC4wOC0yLjE3LC4yNC0uODQsLjE5LTEuNjUsLjQ5LTIuNDEsLjg4LS43NiwuNC0xLjQ3LC45LTIuMDksMS40OC0uNjMsLjU4LTEuMTgsMS4yNC0xLjY0LDEuOTctLjQ2LC43My0uODIsMS41MS0xLjA4LDIuMzMtLjI2LC44Mi0uNCwxLjY3LS40NCwyLjUzLS4wMywuODUsLjA0LDEuNzEsLjIzLDIuNTUsLjE5LC44NCwuNDksMS42NSwuODgsMi40MSwuNCwuNzcsLjksMS40NywxLjQ4LDIuMDksLjU4LC42MywxLjI0LDEuMTgsMS45NywxLjY0LC43MywuNDYsMS41MSwuODIsMi4zMywxLjA4LC44MiwuMjUsMS42NywuNCwyLjUzLC40MywuODYsLjAzLDEuNzItLjA0LDIuNTUtLjIzLC44NC0uMTksMS42NS0uNDksMi40MS0uODgsLjc2LS40LDEuNDYtLjg5LDIuMDktMS40OGgwYy42My0uNTgsMS4xOC0xLjI0LDEuNjQtMS45NywuNDYtLjczLC44Mi0xLjUxLDEuMDgtMi4zMywuMjYtLjgyLC40LTEuNjcsLjQ0LTIuNTMsLjAzLS44Ni0uMDQtMS43MS0uMjMtMi41NS0uMTktLjg0LS40OS0xLjY1LS44OC0yLjQxLS40LS43Ni0uOS0xLjQ3LTEuNDgtMi4wOS0uNTgtLjYzLTEuMjQtMS4xOC0xLjk3LTEuNjQtLjczLS40Ni0xLjUxLS44Mi0yLjMzLTEuMDgtLjgyLS4yNS0xLjY3LS40LTIuNTMtLjQ0LS4xMywwLS4yNiwwLS4zOCwwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTMzNS43Myw0OTkuNTZjMS4wNC0xLjcsMS44Ny0zLjU2LDIuNDYtNS41NywuNTktMiwuOS00LjAyLC45NS02LjAxbC01LjgxLS4xNGMuMDQtMS41NS0uMTMtMy4wNy0uNDktNC41NGw1LjY0LTEuMzdjLS45Ni0zLjk3LTIuOTYtNy42My01Ljc3LTEwLjU5bC00LjIxLDRjLTEuMDQtMS4xLTIuMjMtMi4wNy0zLjU1LTIuODdsMy4wMi00Ljk1Yy0xLjctMS4wNC0zLjU2LTEuODctNS41Ni0yLjQ2LTItLjU5LTQuMDItLjktNi4wMS0uOTVsLS4xNCw1LjhjLTEuNTUtLjA0LTMuMDcsLjEzLTQuNTQsLjQ5bC0xLjM2LTUuNjRjLTMuOTcsLjk2LTcuNjMsMi45Ni0xMC41OSw1Ljc4bDQsNC4yYy0xLjEsMS4wNC0yLjA3LDIuMjMtMi44NywzLjU2bC00Ljk2LTMuMDNjLTEuMDQsMS43LTEuODcsMy41Ni0yLjQ2LDUuNTdzLS45LDQuMDItLjk1LDYuMDFsNS44MSwuMTRjLS4wNCwxLjU1LC4xMywzLjA3LC40OSw0LjU0bC01LjY0LDEuMzdjLjk2LDMuOTcsMi45Niw3LjYzLDUuNzcsMTAuNTlsNC4yMS00YzEuMDQsMS4xLDIuMjMsMi4wNywzLjU1LDIuODdsLTMuMDMsNC45NmMxLjcsMS4wNCwzLjU2LDEuODcsNS41NiwyLjQ2LDIsLjU5LDQuMDIsLjksNi4wMSwuOTVsLjE0LTUuOGMxLjU1LC4wNCwzLjA3LS4xMyw0LjU0LS40OWwxLjM2LDUuNjRjMy45Ny0uOTcsNy42My0yLjk2LDEwLjU5LTUuNzhsLTQtNC4yYzEuMS0xLjA0LDIuMDctMi4yMywyLjg3LTMuNTZsNC45NiwzLjAzWm0tMTMuNS04LjI0Yy0uMzUsLjU3LS43NiwxLjA4LTEuMjMsMS41Mi0uNDgsLjQ1LTEuMDEsLjg0LTEuNTgsMS4xNS0uNTcsLjMxLTEuMTksLjU1LTEuODIsLjctLjYzLC4xNS0xLjI4LC4yMi0xLjk0LC4yMS0uNjQtLjAyLTEuMjktLjExLTEuOTMtLjMtLjY0LS4xOS0xLjI0LS40Ni0xLjc5LS43OS0uNTctLjM0LTEuMDgtLjc2LTEuNTItMS4yMy0uNDUtLjQ4LS44NC0xLjAxLTEuMTUtMS41OC0uMzEtLjU3LS41NS0xLjE5LS43LTEuODItLjE1LS42My0uMjMtMS4yOC0uMjEtMS45NCwuMDItLjY0LC4xMS0xLjI5LC4zLTEuOTNzLjQ2LTEuMjQsLjc5LTEuNzljLjM0LS41NywuNzYtMS4wOCwxLjIzLTEuNTIsLjQ4LS40NSwxLjAxLS44NCwxLjU4LTEuMTUsLjU3LS4zMSwxLjE5LS41NSwxLjgyLS43MSwuNjMtLjE1LDEuMjgtLjIyLDEuOTQtLjIxLC42NCwuMDIsMS4yOSwuMTIsMS45MywuMzFzMS4yNCwuNDYsMS43OSwuNzljLjU3LC4zNSwxLjA4LC43NiwxLjUyLDEuMjMsLjQ1LC40OCwuODQsMS4wMSwxLjE1LDEuNTgsLjMxLC41NywuNTUsMS4xOSwuNywxLjgyLC4xNSwuNjMsLjIzLDEuMjgsLjIxLDEuOTQtLjAyLC42NC0uMTEsMS4yOS0uMywxLjkzcy0uNDYsMS4yNC0uNzksMS43OVoiLz48cGF0aCBkPSJNMzE1LjY0LDUxMS4xMWgtLjM5Yy0yLjA2LS4wNi00LjEyLS4zOS02LjExLS45Ny0yLS41OS0zLjktMS40My01LjY2LTIuNWwtLjMzLS4yLDMuMDMtNC45NmMtMS4xLS43LTIuMTEtMS41Mi0zLjAzLTIuNDVsLTQuMjEsNC4wMS0uMjctLjI4Yy0yLjg2LTMuMDEtNC44OS02Ljc0LTUuODctMTAuNzdsLS4wOS0uMzgsNS42NS0xLjM3Yy0uMjgtMS4yNy0uNDItMi41Ny0uNDItMy44OGwtNS44MS0uMTR2LS4zOWMuMDYtMi4wNiwuMzktNC4xMiwuOTctNi4xMSwuNTktMS45OSwxLjQzLTMuOSwyLjUtNS42NmwuMi0uMzMsNC45NiwzLjAzYy43LTEuMSwxLjUyLTIuMTIsMi40NS0zLjAzbC00LjAxLTQuMjEsLjI4LS4yN2MzLjAxLTIuODYsNi43My00Ljg5LDEwLjc3LTUuODdsLjM4LS4wOSwxLjM3LDUuNjVjMS4yNy0uMjgsMi41Ny0uNDIsMy44OC0uNDJsLjE0LTUuODFoLjM5YzIuMDYsLjA2LDQuMTIsLjM5LDYuMTEsLjk3LDIsLjU5LDMuOSwxLjQzLDUuNjYsMi41bC4zMywuMi0zLjAzLDQuOTZjMS4xLC43LDIuMTIsMS41MywzLjAzLDIuNDVsNC4yMS00LjAxLC4yNywuMjhjMi44NiwzLjAxLDQuODksNi43Myw1Ljg3LDEwLjc3bC4wOSwuMzgtNS42NSwxLjM3Yy4yOCwxLjI3LC40MiwyLjU3LC40MiwzLjg4bDUuODEsLjE0di4zOWMtLjA2LDIuMDYtLjM5LDQuMTItLjk3LDYuMTEtLjU5LDEuOTktMS40MywzLjktMi41LDUuNjZsLS4yLC4zMy00Ljk2LTMuMDNjLS43LDEuMS0xLjUyLDIuMTItMi40NSwzLjAzbDQuMDEsNC4yMS0uMjgsLjI3Yy0zLjAxLDIuODYtNi43Myw0Ljg5LTEwLjc3LDUuODdsLS4zOCwuMDktMS4zNy01LjY1Yy0xLjI3LC4yOC0yLjU3LC40My0zLjg4LC40MmwtLjE0LDUuODFabS0xMS40Mi0zLjk0YzEuNjEsLjk0LDMuMzMsMS42OSw1LjE0LDIuMjIsMS44LC41MywzLjY2LC44NCw1LjUyLC45MmwuMTQtNS44aC4zOWMxLjQ5LC4wNSwyLjk5LS4xMSw0LjQ0LS40N2wuMzgtLjA5LDEuMzYsNS42NGMzLjYzLS45NSw2Ljk5LTIuNzgsOS43Ni01LjMybC00LTQuMiwuMjgtLjI3YzEuMDgtMS4wMywyLjAzLTIuMiwyLjgxLTMuNDhsLjItLjMzLDQuOTUsMy4wMmMuOTQtMS42MSwxLjY5LTMuMzQsMi4yMi01LjE0LC41My0xLjgsLjg0LTMuNjYsLjkyLTUuNTJsLTUuOC0uMTR2LS4zOWMuMDUtMS41LS4xMS0yLjk5LS40Ny00LjQ0bC0uMDktLjM4LDUuNjQtMS4zNmMtLjk1LTMuNjMtMi43OC02Ljk5LTUuMzItOS43NmwtNC4yLDQtLjI3LS4yOGMtMS4wMy0xLjA4LTIuMi0yLjAzLTMuNDctMi44MWwtLjMzLS4yLDMuMDItNC45NWMtMS42MS0uOTQtMy4zMy0xLjY5LTUuMTQtMi4yMi0xLjgtLjUzLTMuNjYtLjg0LTUuNTItLjkybC0uMTQsNS44aC0uMzljLTEuNS0uMDUtMi45OSwuMTEtNC40NCwuNDdsLS4zOCwuMDktMS4zNi01LjY0Yy0zLjYzLC45NS02Ljk5LDIuNzgtOS43Niw1LjMybDQsNC4yLS4yOCwuMjdjLTEuMDgsMS4wMy0yLjAzLDIuMi0yLjgxLDMuNDhsLS4yLC4zMy00Ljk1LTMuMDJjLS45NCwxLjYxLTEuNjksMy4zNC0yLjIyLDUuMTQtLjUzLDEuOC0uODQsMy42Ni0uOTIsNS41Mmw1LjgsLjE0di4zOWMtLjA1LDEuNDksLjExLDIuOTksLjQ3LDQuNDRsLjA5LC4zOC01LjY0LDEuMzZjLjk1LDMuNjMsMi43OCw2Ljk5LDUuMzIsOS43Nmw0LjItNCwuMjcsLjI4YzEuMDMsMS4wOSwyLjIsMi4wMywzLjQ3LDIuODFsLjMzLC4yLTMuMDIsNC45NVptMTEuNjEtMTEuODhjLS4wNywwLS4xMywwLS4yLDAtLjY5LS4wMi0xLjM3LS4xMy0yLjAzLS4zMi0uNjYtLjE5LTEuMy0uNDctMS44OC0uODMtLjU4LS4zNi0xLjEyLS43OS0xLjYtMS4yOS0uNDctLjUtLjg4LTEuMDYtMS4yMS0xLjY2LS4zMy0uNjEtLjU4LTEuMjYtLjc0LTEuOTItLjE2LS42Ny0uMjQtMS4zNi0uMjItMi4wNSwuMDItLjY4LC4xMi0xLjM3LC4zMi0yLjAzLC4yLS42NywuNDgtMS4zLC44My0xLjg4LC4zNi0uNTksLjc5LTEuMTMsMS4yOS0xLjYsLjUtLjQ3LDEuMDYtLjg4LDEuNjYtMS4yMSwuNi0uMzMsMS4yNS0uNTgsMS45Mi0uNzQsLjY3LS4xNiwxLjM2LS4yNCwyLjA1LS4yMiwuNjgsLjAyLDEuMzcsLjEyLDIuMDMsLjMyLC42NiwuMiwxLjMsLjQ4LDEuODgsLjgzLC41OSwuMzYsMS4xMywuNzksMS42LDEuMjksLjQ4LC41LC44OCwxLjA2LDEuMjEsMS42NiwuMzMsLjYxLC41OCwxLjI1LC43NCwxLjkyLC4xNiwuNjcsLjI0LDEuMzYsLjIyLDIuMDUtLjAyLC42OC0uMTIsMS4zNy0uMzIsMi4wMy0uMiwuNjYtLjQ4LDEuMy0uODMsMS44OC0uMzYsLjU5LS44LDEuMTMtMS4yOSwxLjYtLjUsLjQ3LTEuMDYsLjg4LTEuNjYsMS4yMS0uNjEsLjMzLTEuMjUsLjU4LTEuOTIsLjc0LS42MSwuMTUtMS4yMywuMjItMS44NSwuMjJabTAtMTQuOTljLS41NiwwLTEuMTIsLjA3LTEuNjcsLjItLjYsLjE1LTEuMTksLjM3LTEuNzMsLjY3LS41NSwuMy0xLjA1LC42Ni0xLjUsMS4wOS0uNDUsLjQzLS44NCwuOTEtMS4xNiwxLjQ0LS4zMiwuNTMtLjU3LDEuMS0uNzUsMS43LS4xOCwuNi0uMjcsMS4yMi0uMjksMS44My0uMDIsLjYyLC4wNSwxLjI0LC4yLDEuODQsLjE0LC42LC4zNywxLjE4LC42NywxLjczLC4zLC41NSwuNjcsMS4wNSwxLjA5LDEuNSwuNDMsLjQ1LC45MiwuODQsMS40NCwxLjE2LC41MywuMzIsMS4xLC41NywxLjcsLjc1LC42LC4xOCwxLjIxLC4yNywxLjgzLC4yOSwuNjIsLjAyLDEuMjQtLjA1LDEuODQtLjIsLjYtLjE1LDEuMTktLjM3LDEuNzMtLjY3LC41NS0uMywxLjA1LS42NywxLjUtMS4wOSwuNDUtLjQzLC44NC0uOTEsMS4xNi0xLjQ0aDBjLjMyLS41MywuNTctMS4xLC43NS0xLjcsLjE4LS42LC4yNy0xLjIyLC4yOS0xLjgzLC4wMi0uNjItLjA1LTEuMjQtLjItMS44NC0uMTUtLjYtLjM3LTEuMTgtLjY3LTEuNzMtLjMtLjU0LS42Ni0xLjA1LTEuMDktMS41LS40My0uNDUtLjkxLS44NC0xLjQ0LTEuMTYtLjUzLS4zMi0xLjEtLjU3LTEuNy0uNzUtLjYtLjE4LTEuMjItLjI3LTEuODMtLjI5LS4wNiwwLS4xMiwwLS4xNywwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTM3My43OSw0NTQuMWMyLjk3LTIuNzUsNS42NC01LjkyLDcuOS05LjUsMi4yNi0zLjU4LDMuOTktNy4zNSw1LjE5LTExLjIxbC0xMS4yNi0zLjUxYy45NC0zLDEuNDYtNi4wNywxLjU4LTkuMTRsMTEuNzgsLjQ3Yy4zMy04LjI5LTEuNTQtMTYuNTUtNS4zOS0yMy45bC0xMC40NCw1LjQ4Yy0xLjQyLTIuNzItMy4yMS01LjI3LTUuMzUtNy41OGw4LjY2LThjLTIuNzQtMi45Ny01LjkyLTUuNjQtOS41LTcuOS0zLjU4LTIuMjYtNy4zNS0zLjk5LTExLjIxLTUuMTlsLTMuNSwxMS4yNWMtMy0uOTMtNi4wNy0xLjQ2LTkuMTQtMS41N2wuNDctMTEuNzhjLTguMjktLjMyLTE2LjU1LDEuNTQtMjMuOSw1LjM5bDUuNDgsMTAuNDRjLTIuNzIsMS40Mi01LjI3LDMuMjEtNy41OCw1LjM1bC04LTguNjZjLTIuOTcsMi43NS01LjY0LDUuOTItNy45LDkuNS0yLjI2LDMuNTgtMy45OSw3LjM1LTUuMTksMTEuMjFsMTEuMjYsMy41MWMtLjk0LDMtMS40Niw2LjA3LTEuNTgsOS4xNGwtMTEuNzgtLjQ3Yy0uMzIsOC4yOSwxLjU0LDE2LjU1LDUuMzksMjMuOWwxMC40NC01LjQ4YzEuNDMsMi43MiwzLjIxLDUuMjcsNS4zNSw3LjU4bC04LjY2LDhjMi43NCwyLjk3LDUuOTIsNS42NCw5LjUsNy45LDMuNTgsMi4yNiw3LjM1LDMuOTksMTEuMjEsNS4xOWwzLjUxLTExLjI2YzMsLjk0LDYuMDcsMS40Niw5LjE0LDEuNThsLS40NywxMS43OGM4LjI5LC4zMiwxNi41NS0xLjU0LDIzLjktNS4zOWwtNS40OC0xMC40NGMyLjcyLTEuNDIsNS4yNy0zLjIxLDcuNTgtNS4zNWw4LDguNjZabS0yMS43OC0yMy42Yy0uOTksLjkxLTIuMDgsMS42OC0zLjI1LDIuMjktMS4xOCwuNjItMi40NCwxLjA4LTMuNzMsMS4zNy0xLjI5LC4yOS0yLjYyLC40MS0zLjk2LC4zNi0xLjMxLS4wNS0yLjYzLS4yNy0zLjkxLS42Ny0xLjI0LS4zOS0yLjQ1LS45NC0zLjYtMS42Ny0xLjE1LS43My0yLjE3LTEuNTktMy4wNS0yLjU0LS45MS0uOTktMS42OC0yLjA4LTIuMjktMy4yNS0uNjItMS4xOC0xLjA4LTIuNDQtMS4zNy0zLjczLS4yOS0xLjI5LS40Mi0yLjYyLS4zNi0zLjk2LC4wNS0xLjMxLC4yNy0yLjYzLC42Ny0zLjkxLC4zOS0xLjI0LC45NC0yLjQ1LDEuNjctMy42LC43My0xLjE1LDEuNTgtMi4xNywyLjU0LTMuMDUsLjk5LS45MSwyLjA4LTEuNjgsMy4yNS0yLjI5LDEuMTgtLjYyLDIuNDQtMS4wOCwzLjczLTEuMzcsMS4yOS0uMjksMi42Mi0uNDIsMy45Ni0uMzYsMS4zMSwuMDUsMi42MywuMjcsMy45MSwuNjcsMS4yNCwuMzksMi40NSwuOTQsMy42LDEuNjcsMS4xNSwuNzMsMi4xNywxLjU4LDMuMDUsMi41NCwuOTEsLjk5LDEuNjgsMi4wOCwyLjI5LDMuMjUsLjYyLDEuMTgsMS4wOCwyLjQ0LDEuMzcsMy43MywuMjksMS4yOSwuNDIsMi42MiwuMzYsMy45Ni0uMDUsMS4zMS0uMjcsMi42My0uNjcsMy45MS0uMzksMS4yNC0uOTQsMi40NS0xLjY3LDMuNi0uNzMsMS4xNS0xLjU4LDIuMTctMi41NCwzLjA1WiIvPjxwYXRoIGQ9Ik0zNDEuNjMsNDY3LjA0Yy0uNjIsMC0xLjI0LS4wMS0xLjg2LS4wNGwtLjM5LS4wMiwuNDctMTEuNzhjLTIuODgtLjE0LTUuNzMtLjY0LTguNDgtMS40NmwtMy41MSwxMS4yNi0uMzctLjEyYy0zLjk2LTEuMjQtNy43Ny0zLTExLjMtNS4yMy0zLjU0LTIuMjQtNi43Ni00LjkyLTkuNTgtNy45N2wtLjI2LS4yOSw4LjY3LThjLTEuOTMtMi4xMy0zLjU5LTQuNDktNC45Ni03LjAzbC0xMC40NCw1LjQ4LS4xOC0uMzRjLTMuODgtNy40MS01Ljc2LTE1Ljc0LTUuNDMtMjQuMWwuMDItLjM5LDExLjc4LC40N2MuMTQtMi44OCwuNjMtNS43MywxLjQ2LTguNDhsLTExLjI2LTMuNTEsLjEyLS4zN2MxLjI0LTMuOTYsMy03Ljc2LDUuMjMtMTEuMywyLjI0LTMuNTQsNC45Mi02Ljc2LDcuOTYtOS41OGwuMjktLjI2LDgsOC42N2MyLjE0LTEuOTMsNC41LTMuNiw3LjAzLTQuOTZsLTUuNDgtMTAuNDQsLjM0LS4xOGM3LjQtMy44OCwxNS43My01Ljc2LDI0LjEtNS40M2wuMzksLjAyLS40NywxMS43OGMyLjg3LC4xNCw1LjcyLC42Myw4LjQ4LDEuNDZsMy41LTExLjI2LC4zNywuMTJjMy45NiwxLjI0LDcuNzcsMywxMS4zLDUuMjMsMy41NCwyLjI0LDYuNzYsNC45Miw5LjU4LDcuOTdsLjI2LC4yOS04LjY2LDhjMS45MywyLjE0LDMuNiw0LjUsNC45Niw3LjAzbDEwLjQ0LTUuNDgsLjE4LC4zNGMzLjg4LDcuNDEsNS43NiwxNS43NCw1LjQzLDI0LjFsLS4wMiwuMzktMTEuNzgtLjQ3Yy0uMTQsMi44OC0uNjMsNS43My0xLjQ2LDguNDhsMTEuMjYsMy41MS0uMTIsLjM3Yy0xLjI0LDMuOTYtMyw3Ljc3LTUuMjMsMTEuMy0yLjI0LDMuNTQtNC45Miw2Ljc2LTcuOTYsOS41OGwtLjI5LC4yNi04LTguNjdjLTIuMTMsMS45My00LjUsMy42LTcuMDMsNC45Nmw1LjQ4LDEwLjQ0LS4zNCwuMThjLTYuODYsMy41OS0xNC41MSw1LjQ3LTIyLjI0LDUuNDdabS0xLjQ0LS44YzcuOTcsLjI1LDE1Ljg5LTEuNTQsMjIuOTctNS4xOGwtNS40OC0xMC40NCwuMzQtLjE4YzIuNzItMS40Miw1LjI0LTMuMiw3LjUtNS4yOWwuMjktLjI2LDgsOC42NmMyLjg4LTIuNzEsNS40Mi01Ljc5LDcuNTUtOS4xNiwyLjEzLTMuMzcsMy44Mi02Ljk4LDUuMDMtMTAuNzVsLTExLjI2LTMuNTEsLjEyLS4zN2MuOTItMi45MywxLjQ0LTUuOTcsMS41Ni05LjA0di0uMzlzMTEuNzksLjQ3LDExLjc5LC40N2MuMjUtNy45Ni0xLjU0LTE1Ljg4LTUuMTgtMjIuOTdsLTEwLjQ0LDUuNDgtLjE4LS4zNGMtMS40Mi0yLjcyLTMuMi01LjI0LTUuMjktNy41bC0uMjYtLjI5LDguNjYtNy45OWMtMi43MS0yLjg4LTUuNzgtNS40Mi05LjE2LTcuNTUtMy4zNy0yLjEzLTYuOTktMy44Mi0xMC43NS01LjAzbC0zLjUsMTEuMjUtLjM3LS4xMmMtMi45My0uOTEtNS45OC0xLjQ0LTkuMDQtMS41NmgtLjM5cy40Ny0xMS43OSwuNDctMTEuNzljLTcuOTYtLjI0LTE1Ljg5LDEuNTQtMjIuOTcsNS4xOGw1LjQ4LDEwLjQ0LS4zNCwuMThjLTIuNzIsMS40Mi01LjI0LDMuMi03LjUsNS4yOWwtLjI5LC4yNi04LTguNjZjLTIuODgsMi43MS01LjQyLDUuNzktNy41NSw5LjE2LTIuMTMsMy4zNy0zLjgyLDYuOTktNS4wMywxMC43NWwxMS4yNiwzLjUxLS4xMiwuMzdjLS45MiwyLjkzLTEuNDQsNS45Ny0xLjU2LDkuMDR2LjM5cy0xMS43OS0uNDctMTEuNzktLjQ3Yy0uMjUsNy45NiwxLjU0LDE1Ljg4LDUuMTgsMjIuOTdsMTAuNDQtNS40OCwuMTgsLjM0YzEuNDMsMi43MiwzLjIxLDUuMjUsNS4yOSw3LjVsLjI2LC4yOS04LjY2LDhjMi43MSwyLjg4LDUuNzksNS40Miw5LjE2LDcuNTUsMy4zNywyLjEzLDYuOTksMy44MiwxMC43NSw1LjAzbDMuNTEtMTEuMjUsLjM3LC4xMmMyLjkzLC45MSw1Ljk3LDEuNDQsOS4wNCwxLjU2bC4zOSwuMDItLjQ3LDExLjc4Wm0xLjQ4LTMxLjMyYy0uMiwwLS40MSwwLS42MS0uMDEtMS4zNi0uMDUtMi43MS0uMjktNC4wMS0uNjktMS4zLS40MS0yLjU0LS45OC0zLjctMS43MS0xLjE2LS43My0yLjIxLTEuNjEtMy4xMy0yLjYxLS45Mi0uOTktMS43MS0yLjExLTIuMzUtMy4zMy0uNjMtMS4yLTEuMS0yLjQ5LTEuNDEtMy44Mi0uMy0xLjM0LS40My0yLjctLjM3LTQuMDYsLjA1LTEuMzYsLjI4LTIuNzEsLjY5LTQuMDEsLjQtMS4yOSwuOTgtMi41NCwxLjcxLTMuNywuNzMtMS4xNiwxLjYxLTIuMjIsMi42MS0zLjEzLDEtLjkyLDIuMTItMS43MSwzLjMzLTIuMzUsMS4yLS42MywyLjQ5LTEuMSwzLjgyLTEuNCwxLjMzLS4zLDIuNjktLjQzLDQuMDYtLjM3LDEuMzcsLjA1LDIuNzIsLjI5LDQuMDEsLjY5LDEuMjksLjQsMi41NCwuOTgsMy43LDEuNzEsMS4xNiwuNzMsMi4yMSwxLjYxLDMuMTMsMi42LC45MiwxLDEuNzEsMi4xMiwyLjM1LDMuMzMsLjYzLDEuMjEsMS4xMSwyLjUsMS40LDMuODIsLjMsMS4zMywuNDMsMi43LC4zNyw0LjA2LS4wNSwxLjM3LS4yOSwyLjcyLS42OSw0LjAxLS40LDEuMjktLjk4LDIuNTQtMS43MSwzLjctLjczLDEuMTYtMS42MSwyLjIxLTIuNiwzLjEzaDBjLTEuMDEsLjkzLTIuMTMsMS43Mi0zLjMzLDIuMzUtMS4yLC42My0yLjQ5LDEuMS0zLjgyLDEuNC0xLjEzLC4yNS0yLjI5LC4zOC0zLjQ1LC4zOFptLjAzLTMwLjQzYy0xLjEsMC0yLjIsLjEyLTMuMjgsLjM3LTEuMjcsLjI5LTIuNDksLjczLTMuNjMsMS4zMy0xLjE1LC42LTIuMjEsMS4zNS0zLjE2LDIuMjMtLjk1LC44Ny0xLjc4LDEuODctMi40OCwyLjk4LS43LDEuMS0xLjI0LDIuMjgtMS42MywzLjUxLS4zOSwxLjIzLS42MSwyLjUyLS42NiwzLjgxLS4wNSwxLjI5LC4wNywyLjU4LC4zNSwzLjg2LC4yOSwxLjI3LC43NCwyLjQ5LDEuMzQsMy42MywuNjEsMS4xNiwxLjM2LDIuMjIsMi4yMywzLjE2LC44OCwuOTUsMS44OCwxLjc4LDIuOTgsMi40OCwxLjEsLjY5LDIuMjgsMS4yNCwzLjUxLDEuNjMsMS4yNCwuMzksMi41MiwuNjEsMy44MSwuNjYsMS4yOSwuMDUsMi41OS0uMDcsMy44NS0uMzUsMS4yNy0uMjksMi40OS0uNzQsMy42My0xLjM0LDEuMTQtLjYsMi4yMS0xLjM1LDMuMTYtMi4yM2gwYy45NS0uODcsMS43OC0xLjg3LDIuNDctMi45OCwuNy0xLjEsMS4yNC0yLjI5LDEuNjMtMy41MSwuMzktMS4yMywuNjEtMi41MiwuNjYtMy44MSwuMDUtMS4yOS0uMDctMi41OS0uMzUtMy44NS0uMjgtMS4yNi0uNzMtMi40OS0xLjMzLTMuNjMtLjYtMS4xNS0xLjM1LTIuMjEtMi4yMy0zLjE2LS44Ny0uOTUtMS44OC0xLjc4LTIuOTgtMi40Ny0xLjEtLjctMi4yOC0xLjI0LTMuNTEtMS42My0xLjIzLS4zOC0yLjUyLS42MS0zLjgxLS42Ni0uMTksMC0uMzktLjAxLS41OC0uMDFaIi8+PC9nPjxnPjxnPjxwYXRoIGQ9Ik00NDQuMjQsMjI2LjA1aC04LjM4YzEyLjA0LDAsMjEuODEsOS43NywyMS44MSwyMS44MnYxNDcuMjJjMCwxMi4wNC05Ljc3LDIxLjgyLTIxLjgxLDIxLjgyaDguMzhjMTIuMDQsMCwyMS44MS05Ljc4LDIxLjgxLTIxLjgyVjI0Ny44N2MwLTEyLjA1LTkuNzctMjEuODItMjEuODEtMjEuODJaIi8+PHBhdGggZD0iTTQ0NC4yNCw0MTcuM2gtOC4zOHYtLjc4YzExLjgxLDAsMjEuNDItOS42MSwyMS40Mi0yMS40M1YyNDcuODdjMC0xMS44Mi05LjYxLTIxLjQzLTIxLjQyLTIxLjQzdi0uNzhoOC4zOGMxMi4yNCwwLDIyLjIsOS45NiwyMi4yLDIyLjIxdjE0Ny4yMmMwLDEyLjI1LTkuOTYsMjIuMjEtMjIuMiwyMi4yMVptLTIuNTUtLjc4aDIuNTVjMTEuODEsMCwyMS40Mi05LjYxLDIxLjQyLTIxLjQzVjI0Ny44N2MwLTExLjgyLTkuNjEtMjEuNDMtMjEuNDItMjEuNDNoLTIuNTVjOS40MiwyLjU3LDE2LjM3LDExLjIsMTYuMzcsMjEuNDN2MTQ3LjIyYzAsMTAuMjMtNi45NSwxOC44Ni0xNi4zNywyMS40M1oiLz48L2c+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xOTkuNDksMjI1LjY2aDIzNi4zMmMxMi4wNCwwLDIxLjgxLDkuNzcsMjEuODEsMjEuODJ2MTQ3LjIyYzAsMTIuMDQtOS43NywyMS44Mi0yMS44MSwyMS44MkgxOTkuNDljLTEyLjA0LDAtMjEuODEtOS43OC0yMS44MS0yMS44MlYyNDcuNDhjMC0xMi4wNSw5Ljc3LTIxLjgyLDIxLjgxLTIxLjgyWm0uMDEsMTY1LjkzaDIzNi4zYzguMzksMCwxNS4yMS02LjgzLDE1LjIxLTE1LjIyVjI0Ny40OGMwLTguMzktNi44Mi0xNS4yMi0xNS4yMS0xNS4yMkgxOTkuNWMtOC4zOSwwLTE1LjIyLDYuODMtMTUuMjIsMTUuMjJ2MTI4Ljg5YzAsOC4zOSw2LjgzLDE1LjIyLDE1LjIyLDE1LjIyWiIvPjxwYXRoIGQ9Ik00MzUuODEsNDE2LjkxSDE5OS40OWMtMTIuMjQsMC0yMi4yLTkuOTYtMjIuMi0yMi4yMVYyNDcuNDhjMC0xMi4yNSw5Ljk2LTIyLjIxLDIyLjItMjIuMjFoMjM2LjMyYzEyLjI0LDAsMjIuMiw5Ljk2LDIyLjIsMjIuMjF2MTQ3LjIyYzAsMTIuMjUtOS45NiwyMi4yMS0yMi4yLDIyLjIxWk0xOTkuNDksMjI2LjA1Yy0xMS44MSwwLTIxLjQyLDkuNjEtMjEuNDIsMjEuNDN2MTQ3LjIyYzAsMTEuODIsOS42MSwyMS40MywyMS40MiwyMS40M2gyMzYuMzJjMTEuODEsMCwyMS40Mi05LjYxLDIxLjQyLTIxLjQzVjI0Ny40OGMwLTExLjgyLTkuNjEtMjEuNDMtMjEuNDItMjEuNDNIMTk5LjQ5Wm0yMzYuMzIsMTY1LjkzSDE5OS41Yy04LjYxLDAtMTUuNjEtNy0xNS42MS0xNS42MVYyNDcuNDhjMC04LjYxLDctMTUuNjEsMTUuNjEtMTUuNjFoMjM2LjNjOC42LDAsMTUuNiw3LDE1LjYsMTUuNjF2MTI4Ljg5YzAsOC42MS03LDE1LjYxLTE1LjYsMTUuNjFaTTE5OS41LDIzMi42NWMtOC4xOCwwLTE0LjgzLDYuNjUtMTQuODMsMTQuODN2MTI4Ljg5YzAsOC4xOCw2LjY1LDE0LjgzLDE0LjgzLDE0LjgzaDIzNi4zYzguMTcsMCwxNC44Mi02LjY1LDE0LjgyLTE0LjgzVjI0Ny40OGMwLTguMTgtNi42NS0xNC44My0xNC44Mi0xNC44M0gxOTkuNVoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImoiIGQ9Ik00NTEuMDcsMjQ3Ljg3djEyOC44OGMwLDYuMDgtMy41NywxMS4zNC04Ljc0LDEzLjc3LTEuOTcsLjk0LTQuMTYsMS40NS02LjQ3LDEuNDVIMTk5LjU1Yy04LjM5LDAtMTUuMjItNi44My0xNS4yMi0xNS4yMlYyNDcuODdjMC03LjU1LDUuNTQtMTMuODUsMTIuNzctMTUuMDIsLjgtLjEzLDEuNjItLjIsMi40Ni0uMmgyMzYuM2MuODQsMCwxLjY2LC4wNywyLjQ2LC4yLDcuMjMsMS4xOCwxMi43NSw3LjQ3LDEyLjc1LDE1LjAyWiIvPjxwYXRoIGQ9Ik00MzUuODYsMzkyLjM3SDE5OS41NWMtOC42MSwwLTE1LjYxLTctMTUuNjEtMTUuNjFWMjQ3Ljg3YzAtNy42OSw1LjUxLTE0LjE3LDEzLjA5LTE1LjQxLC44My0uMTQsMS42OC0uMiwyLjUyLS4yaDIzNi4zYy44NSwwLDEuNjksLjA3LDIuNTIsLjIsNy41OCwxLjI0LDEzLjA4LDcuNzIsMTMuMDgsMTUuNDF2MTI4Ljg4YzAsNi4wMi0zLjUyLDExLjU2LTguOTcsMTQuMTItMi4wOCwuOTktNC4zMSwxLjQ5LTYuNjMsMS40OVpNMTk5LjU1LDIzMy4wNGMtLjgsMC0xLjYxLC4wNy0yLjM5LC4xOS03LjIxLDEuMTctMTIuNDQsNy4zMy0xMi40NCwxNC42NHYxMjguODhjMCw4LjE4LDYuNjUsMTQuODMsMTQuODMsMTQuODNoMjM2LjNjMi4yLDAsNC4zMi0uNDgsNi4zLTEuNDIsNS4xOC0yLjQzLDguNTItNy43LDguNTItMTMuNDJWMjQ3Ljg3YzAtNy4zMS01LjIzLTEzLjQ3LTEyLjQzLTE0LjY0LS43OC0uMTMtMS41OS0uMTktMi4zOS0uMTlIMTk5LjU1WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTQ1MS4wNywyNDcuODd2My4wNUgxODQuMzN2LTMuMDVjMC03LjU1LDUuNTQtMTMuODUsMTIuNzctMTUuMDJoMjQxLjIyYzcuMjMsMS4xOCwxMi43NSw3LjQ3LDEyLjc1LDE1LjAyWiIvPjxwYXRoIGQ9Ik00NTEuNDYsMjUxLjMxSDE4My45NHYtMy40NGMwLTcuNjksNS41MS0xNC4xNywxMy4wOS0xNS40MWguMDZzMjQxLjI1LDAsMjQxLjI1LDBoLjAzYzcuNTgsMS4yNCwxMy4wOCw3LjcyLDEzLjA4LDE1LjQxdjMuNDRabS0yNjYuNzQtLjc4SDQ1MC42OHYtMi42NmMwLTcuMy01LjIxLTEzLjQ1LTEyLjQtMTQuNjNIMTk3LjEzYy03LjE5LDEuMTktMTIuNDEsNy4zNC0xMi40MSwxNC42M3YyLjY2WiIvPjwvZz48Zz48Y2lyY2xlIGNsYXNzPSJlIiBjeD0iMTk5LjgyIiBjeT0iMjQxLjg5IiByPSIzLjQ3Ii8+PHBhdGggZD0iTTE5OS44MiwyNDUuNzRjLTIuMTMsMC0zLjg2LTEuNzMtMy44Ni0zLjg2czEuNzMtMy44NiwzLjg2LTMuODYsMy44NiwxLjczLDMuODYsMy44Ni0xLjczLDMuODYtMy44NiwzLjg2Wm0wLTYuOTNjLTEuNywwLTMuMDgsMS4zOC0zLjA4LDMuMDhzMS4zOCwzLjA4LDMuMDgsMy4wOCwzLjA4LTEuMzgsMy4wOC0zLjA4LTEuMzgtMy4wOC0zLjA4LTMuMDhaIi8+PC9nPjxnPjxjaXJjbGUgY2xhc3M9ImUiIGN4PSIyMTcuNzMiIGN5PSIyNDEuODkiIHI9IjMuNDciLz48cGF0aCBkPSJNMjE3LjczLDI0NS43NGMtMi4xMywwLTMuODYtMS43My0zLjg2LTMuODZzMS43My0zLjg2LDMuODYtMy44NiwzLjg2LDEuNzMsMy44NiwzLjg2LTEuNzMsMy44Ni0zLjg2LDMuODZabTAtNi45M2MtMS43LDAtMy4wOCwxLjM4LTMuMDgsMy4wOHMxLjM4LDMuMDgsMy4wOCwzLjA4LDMuMDgtMS4zOCwzLjA4LTMuMDgtMS4zOC0zLjA4LTMuMDgtMy4wOFoiLz48L2c+PGc+PGNpcmNsZSBjbGFzcz0iZSIgY3g9IjIzNC43MyIgY3k9IjI0MS44OSIgcj0iMy40NyIvPjxwYXRoIGQ9Ik0yMzQuNzMsMjQ1Ljc0Yy0yLjEzLDAtMy44Ni0xLjczLTMuODYtMy44NnMxLjczLTMuODYsMy44Ni0zLjg2LDMuODYsMS43MywzLjg2LDMuODYtMS43MywzLjg2LTMuODYsMy44NlptMC02LjkzYy0xLjcsMC0zLjA4LDEuMzgtMy4wOCwzLjA4czEuMzgsMy4wOCwzLjA4LDMuMDgsMy4wOC0xLjM4LDMuMDgtMy4wOC0xLjM4LTMuMDgtMy4wOC0zLjA4WiIvPjwvZz48Zz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTM0OC40NCwyOTAuMDRjMCw3LjQ4LTMuMTYsMTQuMjMtOC4yMywxOC45Ny00LjY1LDQuMzUtMTAuODksNy4wMS0xNy43Niw3LjAxLTcuNDcsMC0xNC4yLTMuMTUtMTguOTQtOC4xOS00LjM3LTQuNjUtNy4wNS0xMC45MS03LjA1LTE3Ljc5LDAtMTQuMzUsMTEuNjMtMjUuOTksMjUuOTktMjUuOTlzMjUuOTksMTEuNjMsMjUuOTksMjUuOTlaIi8+PHBhdGggZD0iTTMyMi40NSwzMTYuNDFjLTcuMzYsMC0xNC4xOC0yLjk1LTE5LjIyLTguMzEtNC42MS00LjkxLTcuMTUtMTEuMzItNy4xNS0xOC4wNiwwLTE0LjU0LDExLjgzLTI2LjM4LDI2LjM4LTI2LjM4czI2LjM4LDExLjgzLDI2LjM4LDI2LjM4YzAsNy4yNy0zLjA0LDE0LjI5LTguMzUsMTkuMjUtNC45LDQuNTktMTEuMyw3LjEyLTE4LjAyLDcuMTJabTAtNTEuOTdjLTE0LjExLDAtMjUuNiwxMS40OC0yNS42LDI1LjYsMCw2LjU0LDIuNDcsMTIuNzYsNi45NCwxNy41Myw0Ljg5LDUuMiwxMS41Miw4LjA3LDE4LjY1LDguMDcsNi41MiwwLDEyLjczLTIuNDUsMTcuNDktNi45MSw1LjE1LTQuODIsOC4xMS0xMS42Myw4LjExLTE4LjY5LDAtMTQuMTEtMTEuNDgtMjUuNi0yNS42LTI1LjZaIi8+PC9nPjxnPjxnPjxjaXJjbGUgY2xhc3M9ImUiIGN4PSIzMjEuNjIiIGN5PSIyODQuNTciIHI9IjkuOTMiLz48cGF0aCBkPSJNMzIxLjYyLDI5NC44OWMtNS42OSwwLTEwLjMyLTQuNjMtMTAuMzItMTAuMzJzNC42My0xMC4zMiwxMC4zMi0xMC4zMiwxMC4zMiw0LjYzLDEwLjMyLDEwLjMyLTQuNjMsMTAuMzItMTAuMzIsMTAuMzJabTAtMTkuODdjLTUuMjYsMC05LjU0LDQuMjgtOS41NCw5LjU0czQuMjgsOS41NCw5LjU0LDkuNTQsOS41NC00LjI4LDkuNTQtOS41NC00LjI4LTkuNTQtOS41NC05LjU0WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTM0MC4yMSwzMDkuMDFjLTQuNjUsNC4zNS0xMC44OSw3LjAxLTE3Ljc2LDcuMDEtNy40NywwLTE0LjItMy4xNS0xOC45NC04LjE5LDMuMTItNi44OCwxMC4wNS0xMS42NywxOC4xLTExLjY3LDguNSwwLDE1Ljc2LDUuMzQsMTguNTksMTIuODVaIi8+PHBhdGggZD0iTTMyMi40NSwzMTYuNDFjLTcuMzYsMC0xNC4xOC0yLjk1LTE5LjIyLTguMzFsLS4xOC0uMTksLjExLS4yNGMzLjI4LTcuMjMsMTAuNTItMTEuOSwxOC40Ni0xMS45LDguMzgsMCwxNiw1LjI3LDE4Ljk2LDEzLjFsLjA5LC4yNC0uMTksLjE4Yy00LjksNC41OS0xMS4zLDcuMTItMTguMDIsNy4xMlptLTE4LjQ3LTguNjZjNC44Nyw1LjA4LDExLjQyLDcuODgsMTguNDcsNy44OCw2LjQ0LDAsMTIuNTctMi4zOSwxNy4zLTYuNzMtMi45MS03LjQtMTAuMTYtMTIuMzYtMTguMTMtMTIuMzYtNy41NCwwLTE0LjQ0LDQuMzktMTcuNjQsMTEuMjFaIi8+PC9nPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTI0Ny40MiwzMjEuNTFoMTQ4LjljMy4xMSwwLDUuNjMsMi41Miw1LjYzLDUuNjN2Ni4zOGMwLDMuMTEtMi41Miw1LjYzLTUuNjMsNS42M0gyNDcuNDJjLTMuMTEsMC01LjYzLTIuNTItNS42My01LjYzdi02LjM4YzAtMy4xMSwyLjUyLTUuNjMsNS42My01LjYzWiIvPjxwYXRoIGQ9Ik0zOTYuMzEsMzM5LjU0SDI0Ny40MmMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDE0OC45YzMuMzIsMCw2LjAyLDIuNyw2LjAyLDYuMDF2Ni4zOGMwLDMuMzItMi43LDYuMDItNi4wMiw2LjAyWm0tMTQ4LjktMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMTQ4LjljMi44OSwwLDUuMjQtMi4zNSw1LjI0LTUuMjR2LTYuMzhjMC0yLjg5LTIuMzUtNS4yNC01LjI0LTUuMjRIMjQ3LjQyWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iZSIgeD0iMjQxLjc5IiB5PSIzNDYuMzUiIHdpZHRoPSIxNjAuMTUiIGhlaWdodD0iMTcuNjMiIHJ4PSI1LjYzIiByeT0iNS42MyIvPjxwYXRoIGQ9Ik0zOTYuMzEsMzY0LjM3SDI0Ny40MmMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDE0OC45YzMuMzIsMCw2LjAyLDIuNyw2LjAyLDYuMDF2Ni4zOGMwLDMuMzItMi43LDYuMDItNi4wMiw2LjAyWm0tMTQ4LjktMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMTQ4LjljMi44OSwwLDUuMjQtMi4zNSw1LjI0LTUuMjR2LTYuMzhjMC0yLjg5LTIuMzUtNS4yNC01LjI0LTUuMjRIMjQ3LjQyWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI4Ni44NywzMjEuNTF2MTcuNjNoLTM5LjQ2Yy0zLjA5LDAtNS42My0yLjUzLTUuNjMtNS42M3YtNi4zOGMwLTMuMDksMi41My01LjYzLDUuNjMtNS42M2gzOS40NloiLz48cGF0aCBkPSJNMjg3LjI2LDMzOS41NGgtMzkuODVjLTMuMzIsMC02LjAxLTIuNy02LjAxLTYuMDJ2LTYuMzhjMC0zLjMyLDIuNy02LjAxLDYuMDEtNi4wMWgzOS44NXYxOC40MVptLTM5Ljg1LTE3LjYzYy0yLjg5LDAtNS4yNCwyLjM1LTUuMjQsNS4yNHY2LjM4YzAsMi44OSwyLjM1LDUuMjQsNS4yNCw1LjI0aDM5LjA3di0xNi44NmgtMzkuMDdaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJkIiBkPSJNMjQ3LjQyLDM0Ni4zNWgzOS40NnYxNy42M2gtMzkuNDZjLTMuMDksMC01LjYzLTIuNTMtNS42My01LjYzdi02LjM4YzAtMy4wOSwyLjUzLTUuNjMsNS42My01LjYzWiIvPjxwYXRoIGQ9Ik0yODcuMjYsMzY0LjM3aC0zOS44NWMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDM5Ljg1djE4LjQxWm0tMzkuODUtMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMzkuMDd2LTE2Ljg2aC0zOS4wN1oiLz48L2c+PHJlY3QgY2xhc3M9ImoiIHg9IjI5My4zNSIgeT0iMzI2LjE5IiB3aWR0aD0iOTcuMTciIGhlaWdodD0iOSIgcng9IjQuNSIgcnk9IjQuNSIvPjxnPjxwYXRoIGQ9Ik0zMDQuNzEsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMxMC4zLDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zMTUuODksMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMyMS40OCwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzI3LjA3LDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zMzIuNjYsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMzOC4yNCwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzQzLjgzLDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zNDkuNDIsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM1NS4wMSwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzYwLjYsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM2Ni4xOSwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzcxLjc4LDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zNzcuMzcsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM4Mi45NiwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48L2c+PC9nPjxnIGNsYXNzPSJnIj48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSIyOTcuMTcgMzkxLjk4IDI1MS42NyAzOTEuOTggMjAwLjM2IDIzMi42NSAyNDUuODYgMjMyLjY1IDI5Ny4xNyAzOTEuOTgiLz48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSIzMjMuMDYgMzkxLjk4IDMwOS40OCAzOTEuOTggMjU4LjE2IDIzMi42NSAyNzEuNzMgMjMyLjY1IDMyMy4wNiAzOTEuOTgiLz48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSI0MzAuNDkgMzkxLjk4IDM4NC45OSAzOTEuOTggMzMzLjY4IDIzMi42NSAzNzkuMTcgMjMyLjY1IDQzMC40OSAzOTEuOTgiLz48cGF0aCBjbGFzcz0iZSIgZD0iTTQ1MS4wNywzNzUuNTJ2MS4yNGMwLDYuMDgtMy41NywxMS4zNC04Ljc0LDEzLjc3bC01MC44NC0xNTcuODhoMTMuNTdsNDYuMDIsMTQyLjg2WiIvPjwvZz48L2c+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xMzIuOTUsMjg3Ljc3bDYuMiwuNTljLjQyLC4wNCwuODItLjE3LDEuMDMtLjUzbC41OC0xLjAxLTkuMDktLjg2LC4zOCwxLjFjLjE0LC4zOSwuNDksLjY3LC45MSwuNzFaIi8+PHBhdGggZD0iTTEzOS4yNSwyODguNzZzLS4wOSwwLS4xNCwwbC02LjItLjU5Yy0uNTctLjA1LTEuMDUtLjQ0LTEuMjQtLjk3bC0uNTgtMS42NywxMC4yOSwuOTgtLjg4LDEuNTNjLS4yNiwuNDUtLjc1LC43My0xLjI2LC43M1ptLTcuMDItMi4zNWwuMTgsLjUzYy4wOSwuMjUsLjMxLC40MywuNTgsLjQ1bDYuMiwuNTljLjI2LC4wMiwuNTItLjExLC42NS0uMzRsLjI4LS40OC03Ljg5LS43NVoiLz48L2c+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xMjcuMzEsMjcwLjI2bDIwLjY4LDEuOTctLjgzLDguNzFjLS4wOCwuODItLjQ1LDEuNTgtMS4wNCwyLjE1bC0yLjg4LDIuNzdjLS43MiwuNjktMS43MSwxLjA0LTIuNzEsLjk0bC04LjY1LS44MmMtMS0uMDktMS45LS42Mi0yLjQ4LTEuNDRsLTIuMzEtMy4yN2MtLjQ3LS42Ny0uNjktMS40OS0uNjItMi4zMWwuODMtOC43MVoiLz48cGF0aCBkPSJNMTQwLjg2LDI4Ny4yMWMtLjEyLDAtLjI0LDAtLjM2LS4wMmwtOC42NS0uODJjLTEuMTEtLjExLTIuMTItLjY5LTIuNzYtMS42bC0yLjMxLTMuMjdjLS41My0uNzUtLjc3LTEuNjYtLjY4LTIuNTdsLjg2LTkuMSwyMS40NiwyLjA0LS44Niw5LjFjLS4wOSwuOTEtLjUsMS43Ni0xLjE2LDIuMzlsLTIuODgsMi43N2MtLjcyLC42OS0xLjY3LDEuMDctMi42NSwxLjA3Wm0tMTMuMi0xNi41MmwtLjc5LDguMzJjLS4wNywuNzMsLjEyLDEuNDUsLjU1LDIuMDVsMi4zMSwzLjI3Yy41MSwuNzMsMS4zMSwxLjE5LDIuMiwxLjI3bDguNjUsLjgyYy44OCwuMDksMS43Ni0uMjIsMi40LS44NGwyLjg4LTIuNzdjLjUzLS41LC44NS0xLjE4LC45Mi0xLjkxbC43OS04LjMyLTE5LjkxLTEuODlaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTE4LjUzLDI1MC41OGMtOS40LTE3LjA2LDYuNTMtMzkuMjcsMjUuNy0zNS44MywxMi40OCwxLjc5LDIxLjYyLDEyLjY4LDIxLjI4LDI1LjIyLS4xMyw1LjI5LTEuOTksMTAuNTMtNS4yOCwxNC42OC01LjQ5LDcuMDYtOS4wNiw3LjAzLTEwLjY1LDE1Ljk3LS4xNywuOTctMS4wNiwxLjY1LTIuMDUsMS41Ni02LjY5LC4yOS0xMy4zMS0uMzQtMTkuODYtMS44OS0uOTgtLjA5LTEuNzMtLjkzLTEuNzItMS45MmgwYy4xMy05LjA3LTMuMjYtOS42Ni03LjM2LTE3LjY2LS4wMi0uMDUtLjA1LS4wOS0uMDctLjE0WiIvPjxwYXRoIGQ9Ik0xNDQuNDMsMjcyLjY0Yy01LjYzLDAtMTEuMjgtLjY2LTE2LjgxLTEuOTYtMS4xNi0uMTMtMi4wNi0xLjEzLTIuMDQtMi4zMSwuMDgtNi4wNi0xLjQxLTguMjMtMy42OC0xMS41My0xLjA5LTEuNTgtMi4zMi0zLjM4LTMuNjQtNS45NWwtLjA3LS4xM2MtNC40Mi04LjAzLTMuNTktMTcuOTksMi4xNi0yNi4wMSw1Ljc1LTguMDIsMTQuOTMtMTIsMjMuOTUtMTAuMzgsMTIuNjUsMS44MSwyMS45NSwxMi44MywyMS42LDI1LjYyLS4xMyw1LjQtMi4wMywxMC43LTUuMzYsMTQuOTEtMS43OSwyLjMtMy4zNiwzLjg0LTQuNzUsNS4yLTIuODcsMi44MS00Ljc3LDQuNjctNS44MiwxMC41OS0uMjEsMS4xNi0xLjI3LDEuOTgtMi40NCwxLjg4LTEuMDMsLjA0LTIuMDcsLjA3LTMuMSwuMDdabS00LjEyLTU3Ljg1Yy03LjQyLDAtMTQuNTgsMy43OC0xOS4zMywxMC40MS01LjU4LDcuNzgtNi4zOSwxNy40My0yLjExLDI1LjE5bC4wOCwuMTVjMS4zLDIuNTMsMi41Miw0LjMsMy41OSw1Ljg2LDIuMjcsMy4zLDMuOSw1LjY4LDMuODIsMTEuOTgtLjAxLC43OCwuNTksMS40NSwxLjM3LDEuNTJoLjA1YzYuNSwxLjU0LDEzLjE1LDIuMTcsMTkuNzUsMS44OWguMDNzLjAzLDAsLjAzLDBjLjc4LC4wNywxLjQ5LS40NywxLjYzLTEuMjQsMS4xLTYuMTcsMy4xNy04LjIsNi4wNC0xMS4wMSwxLjM3LTEuMzQsMi45My0yLjg2LDQuNjgtNS4xMiwzLjIzLTQuMDksNS4wNy05LjIyLDUuMTktMTQuNDUsLjMzLTEyLjQtOC42OC0yMy4wNy0yMC45NS0yNC44My0xLjI5LS4yMy0yLjU4LS4zNC0zLjg2LS4zNFoiLz48L2c+PHBhdGggZD0iTTE0MS40MiwyNzIuMjhsLS43Ny0uMDdjLjA3LS43NiwxLjQ0LTE0LjY4LDMuOTYtMjIuNi0xLjc0LC4wOC0zLjk3LS4wOS02LjgxLS42OC0uODgtLjE4LTEuNjgtLjM4LTIuNC0uNiwuMTgsMS4xMSwuMjgsMi40LC4yNSwzLjktLjI2LDE2LjE0LS42MiwxOS4zNC0uNjQsMTkuNDdsLS43Ny0uMDlzLjM3LTMuMzMsLjYzLTE5LjM5Yy4wMy0xLjY1LS4wOS0zLjAyLS4zMS00LjE1LTMuOTgtMS4zNC01LjI5LTMuMDktNS4xMS00LjM2LC4xMi0uODMsLjg2LTEuMzYsMS44Mi0xLjI4LDEuMjUsLjEsMy4xMywxLjM1LDMuOTYsNS4wNCwuOCwuMjUsMS43LC40OSwyLjczLC43LDIuODUsLjU5LDUuMTMsLjc2LDYuOTIsLjY1LC42OS0yLDEuNDctMy41MiwyLjMzLTQuMiwxLjI1LS45OSwyLjM2LS44MywyLjk3LS4zNCwuNzMsLjU4LC45MiwxLjYyLC40NywyLjU4LS4zMiwuNjgtMS40NywyLjMyLTUuMjIsMi42OS0yLjUzLDcuNzctMy45NywyMi41NC0zLjk5LDIyLjczWm03LjYtMjcuNjJjLS40LDAtLjg3LC4xOS0xLjM0LC41Ni0uNzIsLjU3LTEuMzgsMS44My0xLjk5LDMuNTEsMi40Mi0uMywzLjc3LTEuMTgsNC4yNC0yLjIsLjMtLjYzLC4yLTEuMy0uMjUtMS42NS0uMTktLjE1LS40Mi0uMjItLjY3LS4yMlptLTE3Ljk0LTEuNDdjLS40NywwLS44MiwuMjQtLjg3LC42Mi0uMTIsLjgyLC45OCwyLjIsNC4xNCwzLjM1LS43Ny0yLjktMi4yNC0zLjktMy4xNS0zLjk3LS4wNCwwLS4wOCwwLS4xMiwwWiIvPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTQ4LjY4LDI3Ny4zN3MtLjA2LDAtLjA4LDBsLTIyLjY2LTUuMDVjLS4yMS0uMDUtLjM0LS4yNS0uMy0uNDYsLjA1LS4yMSwuMjYtLjM0LC40Ni0uM2wyMi42Niw1LjA1Yy4yMSwuMDUsLjM0LC4yNSwuMywuNDYtLjA0LC4xOC0uMiwuMy0uMzgsLjNaIi8+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xNDguNDUsMjc5Ljczcy0uMDYsMC0uMDgsMGwtMjIuNjYtNS4wNWMtLjIxLS4wNS0uMzQtLjI1LS4zLS40NiwuMDUtLjIxLC4yNi0uMzQsLjQ2LS4zbDIyLjY2LDUuMDVjLjIxLC4wNSwuMzQsLjI1LC4zLC40Ni0uMDQsLjE4LS4yLC4zLS4zOCwuM1oiLz48cGF0aCBjbGFzcz0iZSIgZD0iTTE0OC4yMywyODIuMDlzLS4wNiwwLS4wOCwwbC0yMi42Ni01LjA1Yy0uMjEtLjA1LS4zNC0uMjUtLjMtLjQ2LC4wNS0uMjEsLjI2LS4zNCwuNDYtLjNsMjIuNjYsNS4wNWMuMjEsLjA1LC4zNCwuMjUsLjMsLjQ2LS4wNCwuMTgtLjIsLjMtLjM4LC4zWiIvPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTQ2Ljk0LDI4NC4yMXMtLjA2LDAtLjA4LDBsLTIxLjYtNC44MWMtLjIxLS4wNS0uMzQtLjI1LS4zLS40NiwuMDUtLjIxLC4yNi0uMzQsLjQ2LS4zbDIxLjYsNC44MWMuMjEsLjA1LC4zNCwuMjUsLjMsLjQ2LS4wNCwuMTgtLjIsLjMtLjM4LC4zWiIvPjwvZz48L2c+PGc+PHJlY3QgeD0iMTczLjMxIiB5PSIyMzguNDciIHdpZHRoPSIuNzgiIGhlaWdodD0iOC4wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg0LjEzIDM5Mi40NSkgcm90YXRlKC04NC41NykiLz48cmVjdCB4PSIxNjYuODQiIHk9IjIyNS4xNiIgd2lkdGg9IjguMDEiIGhlaWdodD0iLjc4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzguMzMgOTEuNDkpIHJvdGF0ZSgtMjQuNTgpIi8+PHJlY3QgeD0iMTU1LjkxIiB5PSIyMTEuOTMiIHdpZHRoPSI4LjAxIiBoZWlnaHQ9Ii43OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwNS43OSAyMTkuNTcpIHJvdGF0ZSgtNTQuNTgpIi8+PHJlY3QgeD0iMTM5LjgyIiB5PSIyMDUuOTQiIHdpZHRoPSI4LjAxIiBoZWlnaHQ9Ii43OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTc1LjIgMzI5Ljk2KSByb3RhdGUoLTg0LjU2KSIvPjxyZWN0IHg9IjEyNi41MSIgeT0iMjA1LjE3IiB3aWR0aD0iLjc4IiBoZWlnaHQ9IjguMDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03NS40OCA3MS43KSByb3RhdGUoLTI0LjU3KSIvPjxyZWN0IHg9IjExMy4yNyIgeT0iMjE2LjExIiB3aWR0aD0iLjc4IiBoZWlnaHQ9IjguMDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMzEuNTggMTg1LjEyKSByb3RhdGUoLTU0LjU3KSIvPjxyZWN0IHg9IjEwNy4yOCIgeT0iMjMyLjIiIHdpZHRoPSIuNzgiIGhlaWdodD0iOC4wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEzNy42NiAzMjEuMDMpIHJvdGF0ZSgtODQuNTcpIi8+PC9nPjwvZz48ZyBjbGFzcz0iaSI+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xOTQuOTQsMzM5LjFjLjI2LC4wNiwuNTIsLjEzLC43OCwuMiwuMjYsLjA3LC41MSwuMTUsLjc2LC4yMywuNjMsLjIxLDEuMjIsLjQ1LDEuNzcsLjc0LC4wOSwuMDQsLjE3LC4wOSwuMjYsLjE0LC4xLC4wNiwuMjEsLjEyLC4zMSwuMTgsLjEsLjA2LC4xOSwuMTIsLjI4LC4xOCwwLDAsMCwwLC4wMSwwLC4wOSwuMDYsLjE5LC4xMywuMjgsLjE5LC41NiwuNCwxLjA1LC44NywxLjQ3LDEuMzksLjA3LC4wOCwuMTMsLjE2LC4xOSwuMjQsLjQsLjU0LC43MywxLjE0LC45OCwxLjgxLC4wMywuMDcsLjA1LC4xMywuMDcsLjIsLjAzLC4wNywuMDUsLjE1LC4wOCwuMjMsLjAzLC4xLC4wNywuMiwuMDksLjMsLjA2LC4yMSwuMTEsLjQzLC4xNiwuNjYsLjAyLC4xLC4wNCwuMiwuMDYsLjMsLjAyLC4xLC4wMywuMiwuMDUsLjMxLC4wMiwuMSwuMDMsLjIxLC4wNCwuMzIsLjUxLDQuMjQsMy43Nyw2LjI4LDQuODEsMTAuNDYsLjA5LC4zNSwuMTcsLjcyLC4yMiwxLjExLC45LDYuNDQtLjkyLDcuNTItMi41NywxMi44OC0uNTcsMS44NSwxLjMsOC4zOCwzLjU5LDE1LjEzLC44NSwuMTcsMS43MSwuMzIsMi41MiwuNDEsMS43NywuMjIsMy40NywuMyw1LjExLC4yNywzLjI5LS4wMywzLjctMTUuMzUsMS41MS0xNS45LTEuMS0uMjctMi4xMi0uNjEtMy4wMy0uOTYtLjIyLS4wOS0uNDYtLjE3LS42Ni0uMjctLjIxLS4xLS40MS0uMTktLjYxLS4yOGwtLjU0LS4zYy0uMTktLjA5LS4zMS0uMjEtLjQ3LS4zLS41OC0uNC0uODctMS43Ny0uODctMS43N2wtLjItLjctLjEtLjM1Yy0uMDMtLjEyLS4wNS0uMjYtLjA5LS4zOWwtLjE3LS43OS0uMTktLjc4LS4xNi0uODRjLS4xLS41Ny0uMjItMS4xLS4zLTEuNjktLjEzLS43NC0uMzQtMi42NS0uNi01LjMyLS4xNS0xLjUxLS4zMi0zLjI3LS41LTUuMTktLjU0LTUuNy00LjY5LTEwLjA5LTExLjI2LTExLjUzLDAsMC0xLjI0LS4yNi0zLjA4LS41NFoiLz48cGF0aCBkPSJNMjE1LjY2LDM4Ny40Yy0xLjUzLDAtMy4wNi0uMDktNC41NC0uMjgtLjc0LS4wOS0xLjU4LS4yMi0yLjU1LS40MmwtLjIyLS4wNC0uMDctLjIxYy0yLjkzLTguNjctNC4xMS0xMy42OS0zLjU5LTE1LjM3LC40Ny0xLjUzLC45NS0yLjcxLDEuMzgtMy43NiwxLjA5LTIuNjcsMS44MS00LjQzLDEuMTgtOC45Ni0uMDUtLjM3LS4xMi0uNzItLjIxLTEuMDYtLjQ3LTEuODctMS40Mi0zLjMzLTIuMzMtNC43NC0xLjA5LTEuNjctMi4yMS0zLjQtMi40OS01Ljc3LS4wMS0uMTEtLjAzLS4yMS0uMDQtLjMxLS4wMS0uMS0uMDMtLjE5LS4wNS0uMjktLjAyLS4xMS0uMDMtLjItLjA2LS4yOS0uMDUtLjIzLS4xLS40NC0uMTYtLjY1LS4wMy0uMS0uMDUtLjE5LS4wOC0uMjctLjAzLS4xLS4wNS0uMTYtLjA4LS4yMy0uMDItLjA3LS4wNC0uMTMtLjA3LS4xOS0uMjQtLjYzLS41NS0xLjIxLS45My0xLjczLS4wNi0uMDgtLjExLS4xNS0uMTctLjIyLS40LS41LS44Ny0uOTQtMS40MS0xLjMzbC0uMjgtLjE5Yy0uMDktLjA2LS4xOC0uMTEtLjI3LS4xNy0uMTEtLjA3LS4yLS4xMi0uMy0uMTgtLjA5LS4wNS0uMTctLjA5LS4yNS0uMTMtLjUzLS4yOC0xLjA5LS41MS0xLjcyLS43Mi0uMjUtLjA4LS40OS0uMTYtLjc0LS4yMy0uMjQtLjA3LS41LS4xMy0uNzYtLjE5bC4xNS0uNzZjMS44MywuMjgsMy4wOSwuNTUsMy4xLC41NSw2LjY5LDEuNDYsMTEuMDEsNS44OSwxMS41NywxMS44NywuMTgsMS45MywuMzUsMy42OCwuNSw1LjE5LC4yOSwyLjg4LC40OCw0LjYxLC42LDUuMjksLjA1LC4zNiwuMTIsLjY5LC4xOCwxLjAyLC4wNCwuMjIsLjA4LC40NCwuMTIsLjY3bC4xNSwuODQsLjM2LDEuNTVjLjAxLC4wNiwuMDMsLjEyLC4wNCwuMTgsLjAxLC4wNywuMDMsLjEzLC4wNCwuMmwuMywxLjA0Yy4xMiwuNTMsLjQxLDEuMzQsLjcyLDEuNTUsLjA1LC4wMywuMTEsLjA3LC4xOCwuMTIsLjA4LC4wNiwuMTUsLjExLC4yMywuMTVsLjU2LC4zMWMuMTgsLjA4LC4zOSwuMTcsLjYsLjI4LC4xMiwuMDYsLjI1LC4xMSwuMzgsLjE2LC4wOSwuMDMsLjE4LC4wNywuMjYsLjEsMS4wMiwuMzksMiwuNywyLjk3LC45NCwxLjgzLC40NywxLjgzLDYuOTgsMS40MywxMC4zNy0uMjgsMi4zNC0xLjA1LDYuMjgtMy4wMyw2LjMtLjIxLDAtLjQxLDAtLjYyLDBabS02LjcyLTEuNDJjLjg2LC4xNywxLjYsLjI5LDIuMjcsLjM2LDEuNjUsLjIxLDMuMzUsLjMsNS4wNSwuMjcsLjk3LS4wMSwxLjg2LTIuMjEsMi4yNy01LjYxLC42LTQuOTktLjA4LTkuMzMtLjg0LTkuNTItMS4wMS0uMjUtMi4wMS0uNTYtMy4wOC0uOTctLjA5LS4wNC0uMTctLjA3LS4yNS0uMS0uMTYtLjA2LS4zMS0uMTItLjQ1LS4xOS0uMi0uMS0uMzktLjE5LS41OS0uMjdsLS41Ny0uMzJjLS4xMy0uMDYtLjI0LS4xNC0uMzQtLjIxLS4wNS0uMDMtLjA5LS4wNy0uMTQtLjEtLjctLjQ5LTEuMDItMS44Ni0xLjA1LTIuMDJsLS4yOS0xLjAzYy0uMDItLjA5LS4wNC0uMTYtLjA1LS4yNC0uMDEtLjA2LS4wMi0uMTEtLjA0LS4xN2wtLjM2LTEuNTYtLjE2LS44NmMtLjA0LS4yMy0uMDgtLjQ0LS4xMi0uNjYtLjA3LS4zNC0uMTMtLjY4LS4xOC0xLjA1LS4xMi0uNjgtLjMyLTIuNDMtLjYtNS4zMy0uMTUtMS41MS0uMzItMy4yNy0uNS01LjItLjUtNS4yNy00LjEyLTkuMjctOS43OS0xMC44OSwuMDQsLjAyLC4wNywuMDUsLjExLC4wN2guMDVsLjEsLjA5LC4yNSwuMTdjLjYsLjQ0LDEuMTIsLjkzLDEuNTYsMS40NywuMDcsLjA4LC4xNCwuMTYsLjIsLjI2LC40MiwuNTcsLjc3LDEuMjEsMS4wMywxLjksLjAzLC4wNiwuMDUsLjEzLC4wOCwuMjEsLjAzLC4wOCwuMDYsLjE2LC4wOSwuMjYsLjAzLC4wOCwuMDcsLjIsLjEsLjMxLC4wNiwuMjIsLjEyLC40NCwuMTYsLjY4LC4wMiwuMSwuMDQsLjIxLC4wNiwuMzIsLjAyLC4wOSwuMDMsLjIsLjA1LC4zMSwuMDIsLjExLC4wMywuMjIsLjA0LC4zMywuMjYsMi4xOSwxLjI5LDMuNzYsMi4zNyw1LjQzLC45NSwxLjQ2LDEuOTMsMi45OCwyLjQzLDQuOTcsLjEsLjM3LC4xNywuNzUsLjIzLDEuMTUsLjY2LDQuNzMtLjEzLDYuNjctMS4yMyw5LjM2LS40MiwxLjAzLS45LDIuMi0xLjM2LDMuNjktLjMxLDEuMDIsLjA0LDQuNCwzLjUxLDE0LjY4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTE1OC4zOCwzNjcuMjhsLjA2LC45NywxLjAxLDE2LjI3LC40MywyMy4wNyw1NS4zNi0zLjQ0cy0zLjY1LTkuMTEtNi42LTE3LjgyYy0yLjI5LTYuNzYtNC4xNi0xMy4yOC0zLjU5LTE1LjEzLDEuNjUtNS4zNiwzLjQ3LTYuNDQsMi41Ny0xMi44OC0uMDUtLjM5LS4xMy0uNzUtLjIyLTEuMTEtMS4wNS00LjE4LTQuMzEtNi4yMS00LjgxLTEwLjQ2LS41My00LjQ0LTMuMzMtNi42NS03LjY3LTcuNjQtMi4yMS0uNTEtNC44MS0uNy03LjcyLS43Mi0uMTgsMC0uMzcsMC0uNTYsMC0uMTMsMC0uMjYsMC0uMzgsMC0uNzgsMC0xLjU4LC4wMi0yLjQsLjA0LDAsMC0uMTEsMC0uMzMsLjAyLS41MSwuMDUtMS41OSwuMTYtMy4wNywuNC0uMDMsMC0uMDYsMC0uMDksLjAyLTIyLjIyLC4xMi0yMi44NiwxNC42LTIyLDI4LjQyWiIvPjxwYXRoIGQ9Ik0xNTkuNSw0MDhsLS40NC0yMy40OC0xLjA3LTE3LjIyYy0uNS04LjA4LS41OS0xNy4xOCw0Ljc2LTIyLjkxLDMuNjgtMy45NCw5LjQzLTUuODcsMTcuNTgtNS45MiwuMDIsMCwuMDUsMCwuMDctLjAxLDEuMDgtLjE4LDIuMTItLjMyLDMuMDktLjQxbC4zNC0uMDJjLjgxLS4wMiwxLjYyLS4wNCwyLjQyLS4wNCwuMzEsMCwuNjQsMCwuOTUsMCwzLjE4LC4wMiw1LjczLC4yNiw3LjgsLjczLDQuOTMsMS4xMyw3LjQ2LDMuNjcsNy45Nyw3Ljk4LC4yNiwyLjE5LDEuMjksMy43NywyLjM3LDUuNDQsLjk1LDEuNDYsMS45MywyLjk4LDIuNDMsNC45NywuMSwuMzcsLjE3LC43NSwuMjMsMS4xNSwuNjYsNC43My0uMTMsNi42Ny0xLjIzLDkuMzYtLjQyLDEuMDMtLjksMi4yLTEuMzYsMy42OS0uMzIsMS4wMywuMDUsNC40NSwzLjU4LDE0Ljg5LDIuOTEsOC42LDYuNTUsMTcuNzEsNi41OSwxNy44bC4yLC41LTU2LjMsMy41Wm0yNy4xNS02OS4yNGMtLjEzLDAtLjI1LDAtLjM4LDAtLjgsMC0xLjYxLC4wMi0yLjM5LC4wNGwtLjMxLC4wMmMtLjk1LC4wOS0xLjk3LC4yMi0zLjAzLC40bC0uMTUsLjAyYy03Ljk1LC4wNC0xMy41MywxLjktMTcuMDYsNS42OC01LjE1LDUuNTEtNS4wNSwxNC40Mi00LjU1LDIyLjMzaDBzLjA2LC45NywuMDYsLjk3bDEuMDEsMTYuMjYsLjQyLDIyLjY5LDU0LjQyLTMuMzhjLS44LTIuMDMtMy44OC05Ljg4LTYuNDEtMTcuMzUtMi45My04LjY3LTQuMTEtMTMuNjktMy41OS0xNS4zNywuNDctMS41MywuOTUtMi43MSwxLjM4LTMuNzYsMS4wOS0yLjY3LDEuODEtNC40MywxLjE4LTguOTYtLjA1LS4zNy0uMTItLjcyLS4yMS0xLjA2LS40Ny0xLjg3LTEuNDItMy4zMy0yLjMzLTQuNzQtMS4wOS0xLjY3LTIuMjEtMy40LTIuNDktNS43Ny0uNDctMy45NC0yLjgxLTYuMjYtNy4zNy03LjMxLTIuMDEtLjQ2LTQuNS0uNjktNy42My0uNzEtLjE5LDAtLjM3LDAtLjU1LDBaIi8+PC9nPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTc5LjIzLDMyNy4wN2wxNC4zMiwyLjQ2LTEuOSw1LjQydi4wMnMtLjUzLDEuNS0uNTMsMS41bC0uNSwxLjQ0LS4xMSwuMy0uNTksMS4zcy0uNTYsMi4yNS01LjA3LDIuMjUtNi4xMS0yLjIxLTYuMTEtMi4yMWwuNDgtMTIuNDhaIi8+PHBhdGggZD0iTTE4NC44NywzNDIuMTRjLTQuNjUsMC02LjM2LTIuMjctNi40My0yLjM3bC0uMDgtLjExLC41LTEzLjA1LDE1LjIxLDIuNjItMy4xOSw5LjExLS41OSwxLjMxYy0uMTEsLjM0LS45NSwyLjUtNS40MywyLjVabS01LjcyLTIuNzNjLjM3LC40LDIuMDIsMS45NSw1LjcyLDEuOTUsNC4xLDAsNC42Ny0xLjg4LDQuNjktMS45NmwuMDItLjA2LC41OS0xLjMsMi44Ny04LjIxLTEzLjQzLTIuMzEtLjQ2LDExLjg4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE3OC43NywzMjIuNjhjLS4zMiw2LjczLDMuMzksMTIuMjgsOS44NCwxNC4yMSw0Ljk0LDEuNDcsOC43Ni0uNiwxNC41Mi0xMy4wNiwyLjgzLTYuMTEtNC44OC0xMi40NC0xMS42MS0xMi43NS02LjczLS4zMi0xMi40NCw0Ljg4LTEyLjc1LDExLjYxWiIvPjxwYXRoIGQ9Ik0xOTEuMTksMzM3LjdjLS44OCwwLTEuNzYtLjE2LTIuNjgtLjQ0LTYuNTctMS45Ni0xMC40NS03LjU1LTEwLjEyLTE0LjZoMGMuMzMtNi45Myw2LjIzLTEyLjMsMTMuMTYtMTEuOTgsNC40NCwuMjEsOS4yMywyLjk0LDExLjM5LDYuNSwxLjM4LDIuMjcsMS41Nyw0LjYyLC41Niw2LjgxLTQuOSwxMC42MS04LjQ5LDEzLjcxLTEyLjMsMTMuNzFabS0xMi4wMy0xNWMtLjMxLDYuNjcsMy4zNSwxMS45Niw5LjU2LDEzLjgyLDQuNTIsMS4zNSw4LjI3LS4zMiwxNC4wNi0xMi44NiwxLjEzLTIuNDUsLjM1LTQuNjYtLjUyLTYuMDgtMi4wMy0zLjM1LTYuNTYtNS45My0xMC43Ni02LjEyLTYuNS0uMzEtMTIuMDQsNC43NC0xMi4zNSwxMS4yNGgwWiIvPjwvZz48cGF0aCBkPSJNMTg5LjQ0LDM0MC4zcy4zMi0uMjYsLjQ5LS44Yy4xOS0uNTgsMS4wMS0yLjIxLDEuMDEtMi4yMSwwLDAtNy43My0uOTEtOS41My02LjA4LDAsMC0xLjM4LDYuMzYsOC4wMyw5LjA5WiIvPjxwYXRoIGQ9Ik0xNzguNTcsMzE5LjgyczE1LjE5LDUuMDUsMjMuMzQtMy4wOWMwLDAtNS4xOCw1Ljg5LTguNzcsNS4yNiwwLDAsNS4wOCwxLjU4LDguNzctNC4yMSwwLDAsMS4wMiw1LjMyLDMuNjcsNi40MSwwLDAsMi40Mi0xNC44Mi0xMC4zNS0xNi42Ni0xMi43Ny0xLjg0LTE2LjA0LDYuNDUtMTYuNjYsMTIuM1oiLz48cGF0aCBkPSJNMjA1Ljc0LDMyMi40N3MtLjU3LDYuNjYtMy4zMiw4Ljc0Yy0yLjc0LDIuMDgtMy4wNiwzLjItMy4wNiwzLjIsMCwwLS4xOC0xLjI4LDEuNjktNi4zNywxLjg2LTUuMDksLjQ2LTkuMTcsLjg2LTExLjMyLC40MS0yLjE1LDQuMjMsMy4xMiwzLjgyLDUuNzRaIi8+PHBhdGggZD0iTTE5My41NSwzMjAuOTNzLTEuMDksLjU0LTUuMDMsMS4wM2MtMy45NCwuNDktMy42LDMuMzUtMy41Miw0LjQ0LC4wNywxLjA4LTEuMzYtMS42OCwwLTQuNTMsMS4zNi0yLjg2LDEuMTUtMy45NCwxLjE1LTMuOTRsNy40MSwzLjAxWiIvPjxwYXRoIGQ9Ik0xODYuMTQsMzIwLjg4cy00LjMyLDEuNDMtNC4zMiw2LjYzYzAsNS4yLDMuNDgsMTUuMjYtLjQ4LDE3LjMzLDAsMCwyLjkyLTMuMTUtLjQyLTguMjgtMy4zNC01LjEzLTQuMDItMTUuNC0uOTktMjIuMDksMy4wMy02LjY5LDYuMjEsNi40Miw2LjIxLDYuNDJaIi8+PHBhdGggZD0iTTE4Ni4xNCwzMDguMjVzMS4yOS01LjIxLTYuMzktNi4xYy03LjY5LS44OS02LjcsMTcuOTQtMTIuMTMsMTguNzMsMCwwLC41MiwzLjEsNS41Mi0xLjM4LDUtNC40OCw2LjExLTEyLjgyLDEwLjU1LTEwLjE1LDQuNDQsMi42NiwyLjQ1LTEuMSwyLjQ1LTEuMVoiLz48L2c+PHBhdGggZD0iTTE3Ni41OCwzNjJzMS40MSwxNS4wNCwxNS44MiwyMS40NWMwLDAtMTEuMjctMS44My0xNC40Ny04LjYycy0xLjM1LTEyLjg0LTEuMzUtMTIuODRaIi8+PHBhdGggZD0iTTE5MS4wNSwzOTMuMzdsLS4zNS0uMDJjLS45LS4wNS0yMi4yLTEuNDEtMjguNDEtMTMuNTYtNi4xNi0xMi4wNy0zLjgzLTI2LjQ4LTMuODEtMjYuNjJsLjc3LC4xM2MtLjAyLC4xNC0yLjMxLDE0LjMsMy43MywyNi4xNCw1LjU5LDEwLjkzLDI0LjYxLDEyLjg5LDI3LjQyLDEzLjEybDEuNTQtOC43NmMtMS44LS4yNi04Ljg3LTEuNTgtMTMuMTMtNi45NS0yLjY1LTMuMzQtMy42Ny03LjYtMy4wMi0xMi42NWwuNzcsLjFjLS42Miw0LjgzLC4zNCw4Ljg5LDIuODUsMTIuMDYsNC42LDUuOCwxMi45Myw2LjcxLDEzLjAyLDYuNzJsLjQyLC4wNC0xLjgsMTAuMjdaIi8+PHBhdGggZD0iTTE5MC43MywzOTIuOTZzLTI5LjA4LDQuMTQtMzEuODMtMTIuMDRjMCwwLS45NS0xOC40My0uNDktMTguMjQsLjM2LC4xNiwuMzEsMTguMDEsMTEuMjcsMjQuMTQsMTAuOTcsNi4xMywyMS4wNCw2LjE0LDIxLjA0LDYuMTRaIi8+PC9nPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjEyLjM2LDM5Mi45OGgtMjEuNjRjLjQ1LS4wMSwuODcsLjE0LDEuMTcsLjM5LC4zLC4yNSwuNDksLjYsLjQ4LC45OCwwLC43Ny0uNzUsMS4zOS0xLjY2LDEuMzlsNDQuNSwuMDNjLjkxLDAsMS42Ni0uNjMsMS42Ni0xLjM5LDAtLjM4LS4xOS0uNzMtLjQ4LS45OC0uMy0uMjUtLjcxLS40MS0xLjE3LS40MWwtMjIuODYtLjAyWiIvPjxwYXRoIGQ9Ik0yMzUuMjIsMzk2LjE2aDBsLTQ0LjUtLjAzaDB2LS43OGgwYy4zNSwwLC42Ny0uMTEsLjkyLS4zMiwuMjItLjE5LC4zNS0uNDMsLjM1LS42OSwwLS4yNS0uMTItLjUtLjM0LS42OC0uMjQtLjIxLS41Ny0uMzItLjkyLS4zMmgwdi0uNzhoMGw0NC41LC4wM2MuNTMsMCwxLjA0LC4xOCwxLjQyLC41LC40LC4zNCwuNjIsLjc5LC42MiwxLjI4LDAsLjQ5LS4yMiwuOTQtLjYzLDEuMjgtLjM4LC4zMi0uODksLjUtMS40MiwuNVptLTQyLjgxLS44MWw0Mi44MSwuMDNoMGMuMzUsMCwuNjctLjExLC45Mi0uMzIsLjIyLS4xOSwuMzUtLjQzLC4zNS0uNjksMC0uMjUtLjEyLS40OS0uMzUtLjY4LS4yNC0uMi0uNTctLjMyLS45Mi0uMzJsLTQyLjgtLjAzYy4yMywuMjksLjM1LC42MywuMzUsMSwwLC4zNi0uMTIsLjcxLS4zNiwxWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE2Ni40NywzOTIuOTVjLS43NywwLTEuMzksLjYyLTEuMzksMS4zOSwwLC4zOCwuMTUsLjczLC40MSwuOTgsLjI1LC4yNSwuNiwuNDEsLjk4LC40MWwyNC41NCwuMDJjLjc3LDAsMS4zOS0uNjMsMS4zOS0xLjM5LDAtLjM4LS4xNS0uNzMtLjQxLS45OC0uMjUtLjI1LS42LS40MS0uOTgtLjQxbC0yNC4wMi0uMDJoLS41MloiLz48cGF0aCBkPSJNMTkxLjAxLDM5Ni4xM2gwbC0yNC41NC0uMDJjLS40NywwLS45Mi0uMTktMS4yNi0uNTItLjM0LS4zNC0uNTItLjc5LS41Mi0xLjI2LDAtLjQ3LC4xOS0uOTIsLjUyLTEuMjYsLjM0LS4zNCwuNzgtLjUyLDEuMjYtLjUyaDBsMjQuNTQsLjAyYy40OCwwLC45MiwuMTksMS4yNiwuNTIsLjM0LC4zMywuNTIsLjc4LC41MiwxLjI2LDAsLjQ3LS4xOSwuOTItLjUyLDEuMjYtLjM0LC4zNC0uNzgsLjUyLTEuMjYsLjUyWm0tMjQuNTQtMi44Yy0uMjcsMC0uNTIsLjEtLjcxLC4yOS0uMTksLjE5LS4yOSwuNDQtLjMsLjcxLDAsLjI3LC4xLC41MiwuMjksLjcxLC4xOSwuMTksLjQ0LC4zLC43MSwuM2wyNC41NCwuMDJoMGMuMjcsMCwuNTItLjEsLjcxLS4yOSwuMTktLjE5LC4zLS40NCwuMy0uNzEsMC0uMjctLjEtLjUyLS4yOS0uNy0uMTktLjE5LS40NC0uMy0uNzEtLjNsLTI0LjU0LS4wMmgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTE4OS41NCwzOTIuMjRjLjM4LC40NiwuOTMsLjczLDEuNTIsLjczaDEuNzVjLS41OSwwLTEuMTUtLjI3LTEuNTItLjczLS4zOC0uNDYtLjUyLTEuMDYtLjM5LTEuNjRsNS44My0yNy43OGMuMTktLjksMS0xLjU2LDEuOTMtMS41NmgtMS43NWMtLjkyLDAtMS43NCwuNjUtMS45MywxLjU2bC01LjgzLDI3Ljc4Yy0uMTIsLjU4LC4wMiwxLjE4LC4zOSwxLjY0WiIvPjxwYXRoIGQ9Ik0xOTIuODIsMzkzLjM1aC0xLjc1Yy0uNzEsMC0xLjM3LS4zMi0xLjgyLS44N2gwYy0uNDUtLjU2LS42Mi0xLjI3LS40Ny0xLjk3bDUuODMtMjcuNzhjLjIzLTEuMDgsMS4yLTEuODcsMi4zMS0xLjg3aDEuNzZzMCwwLDAsMHYuNzhoMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NSwuMzIsMS4zMiwuMywuMzcsLjc1LC41OCwxLjIyLC41OHYuNzhabS0yLjk3LTEuMzZjLjMsLjM3LC43NSwuNTgsMS4yMiwuNThoLjAxcy0uMDUtLjA2LS4wOC0uMDljLS40NS0uNTYtLjYyLTEuMjctLjQ3LTEuOTdsNS44My0yNy43OGMuMDktLjQyLC4yOS0uNzksLjU2LTEuMDloMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NCwuMzIsMS4zMloiLz48L2c+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xOTEuMjksMzkyLjI0Yy4zOCwuNDYsLjkzLC43MywxLjUyLC43M2w0Mi4yMywuMDNjLjkyLDAsMS43NC0uNjYsMS45My0xLjU2bDUuODMtMjcuNzhjLjEyLS41OC0uMDItMS4xOC0uNC0xLjY0LS4zNy0uNDYtLjkzLS43My0xLjUyLS43M2wtNDIuMjItLjAzYy0uOTIsMC0xLjc0LC42Ni0xLjkzLDEuNTZsLTUuODMsMjcuNzhjLS4xMiwuNTgsLjAyLDEuMTgsLjM5LDEuNjRaIi8+PHBhdGggZD0iTTIzNS4wNCwzOTMuMzhoMGwtNDIuMjMtLjAzYy0uNzEsMC0xLjM3LS4zMi0xLjgyLS44N2gwYy0uNDUtLjU2LS42Mi0xLjI3LS40Ny0xLjk3bDUuODMtMjcuNzhjLjIzLTEuMDgsMS4yLTEuODcsMi4zMS0xLjg3aDBsNDIuMjIsLjAzYy43MSwwLDEuMzgsLjMyLDEuODIsLjg3LC40NSwuNTUsLjYyLDEuMjcsLjQ4LDEuOTZsLTUuODMsMjcuNzhjLS4yMywxLjA4LTEuMiwxLjg3LTIuMzEsMS44N1ptLTQzLjQ1LTEuMzljLjMsLjM3LC43NSwuNTgsMS4yMiwuNThsNDIuMjMsLjAzaDBjLjc0LDAsMS4zOS0uNTMsMS41NS0xLjI1bDUuODMtMjcuNzhjLjA5LS40Ny0uMDItLjk1LS4zMi0xLjMyLS4zLS4zNy0uNzQtLjU4LTEuMjItLjU4bC00Mi4yMi0uMDNoMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NSwuMzIsMS4zMloiLz48L2c+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0yMTQuNTYsMzc3LjEyYzAsMS4yNiwxLjAyLDIuMjksMi4yOSwyLjI5LDEuMjYsMCwyLjI5LTEuMDIsMi4yOS0yLjI5LDAtMS4yNi0xLjAyLTIuMjktMi4yOS0yLjI5LTEuMjYsMC0yLjI5LDEuMDItMi4yOSwyLjI5WiIvPjxwYXRoIGQ9Ik0yMTYuODUsMzc5LjhoMGMtLjcyLDAtMS4zOS0uMjgtMS44OS0uNzktLjUxLS41MS0uNzgtMS4xOC0uNzgtMS44OSwwLS43MiwuMjgtMS4zOSwuNzktMS44OSwuNTEtLjUxLDEuMTgtLjc4LDEuODktLjc4aDBjLjcyLDAsMS4zOSwuMjgsMS44OSwuNzksLjUxLC41MSwuNzgsMS4xOCwuNzgsMS44OSwwLDEuNDgtMS4yLDIuNjgtMi42OCwyLjY4Wm0wLTQuNThjLTEuMDUsMC0xLjksLjg1LTEuOSwxLjksMCwxLjA1LC44NSwxLjksMS45LDEuOWgwYzEuMDUsMCwxLjktLjg1LDEuOS0xLjksMC0xLjA1LS44NS0xLjktMS45LTEuOWgwWiIvPjwvZz48L2c+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0yMzguMzUsNDY4LjIzcy45MSw1LjQ0LDIuNTksNS41N2gtMTguMzZsLS4yNS01LjU3aDE2LjAyWiIvPjxwYXRoIGQ9Ik0yNDAuOTQsNDc0LjJoLTE4LjczbC0uMjgtNi4zNWgxNi43NmwuMDUsLjMzYy4zNiwyLjEzLDEuMjksNS4xNywyLjI0LDUuMjVsLS4wMywuNzhabS0xNy45OS0uNzhoMTYuNzhjLS45Ny0xLjI3LTEuNTEtMy43NC0xLjctNC44aC0xNS4yOWwuMjEsNC44WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI0Ni41Miw0NzUuMjJsLTQuNDItMS4xMmMtLjkzLS4yMy0xLjczLS44Mi0yLjI0LTEuNjJsLTEuMDQtMi4xNi03LjM3LDMuNDItOS4wMS0zLjA3LC4wNywxLjU1LDQuOCwxLjUyaC00Ljc5Yy0uOCwwLTEuNDUsLjY1LTEuNDUsMS40NXYyLjIxYzAsLjg1LC42OSwxLjU0LDEuNTQsMS41NGg1LjQ5bDEuMzQtMi4wNCwyLjYsMi4wNGgxNy4yNmMuMzQsMCwuNTgtLjMzLC40OC0uNjVoMGMtLjQ4LTEuNTEtMS43MS0yLjY3LTMuMjUtMy4wNloiLz48cGF0aCBkPSJNMjQ5LjI5LDQ3OS4zMmgtMTcuMzlsLTIuMzctMS44Ni0xLjIzLDEuODZoLTUuN2MtMS4wNywwLTEuOTMtLjg3LTEuOTMtMS45M3YtMi4yMWMwLTEuMDEsLjgyLTEuODQsMS44NC0xLjg0aDIuMjhsLTIuNjctLjg1LS4xMS0yLjM5LDkuNCwzLjIsNy41OC0zLjUyLDEuMTksMi40OWMuNDYsLjcyLDEuMTcsMS4yMywyLDEuNDRsNC40MiwxLjEyYzEuNjgsLjQzLDMsMS42NywzLjUzLDMuMzIsLjA5LC4yNywuMDQsLjU2LS4xMywuOC0uMTcsLjIzLS40MywuMzYtLjcyLC4zNlptLTE3LjEyLS43OGgxNy4xMnMuMDgtLjAzLC4wOS0uMDVjLjAxLS4wMiwuMDMtLjA1LC4wMi0uMS0uNDUtMS40LTEuNTYtMi40NC0yLjk4LTIuOGwtNC40Mi0xLjEyYy0xLjAzLS4yNi0xLjkxLS45LTIuNDctMS43OWwtLjAyLS4wNC0uODctMS44Mi03LjE2LDMuMzItOC42Mi0yLjk0LC4wMywuNzEsNi45NCwyLjJoLTcuM2MtLjU5LDAtMS4wNiwuNDgtMS4wNiwxLjA2djIuMjFjMCwuNjQsLjUyLDEuMTYsMS4xNiwxLjE2aDUuMjhsMS40Ni0yLjIxLDIuODMsMi4yMVoiLz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjMwLjY4LDQyNi4xNGw4Ljk0LDQyLjA5aC0xOC4xNGwtMTQuNy00NC40OHM1LjI3LTIuNCwxMi43LTUuNTZjNy40My0zLjE1LDkuMzEsMy4yNywxMS4yLDcuOTRaIi8+PHBhdGggZD0iTTI0MC4wOSw0NjguNjJoLTE4LjlsLTE0Ljg5LTQ1LjA4LC4zMi0uMTRjLjA1LS4wMiw1LjM2LTIuNDQsMTIuNzEtNS41NiwyLjM0LS45OSw0LjI5LTEuMTQsNS45Ni0uNDQsMi44MywxLjE5LDQuMTcsNC41OSw1LjM1LDcuNTksLjEzLC4zNCwuMjcsLjY4LC40LDEuMDFsLjAyLC4wNiw5LjA0LDQyLjU2Wm0tMTguMzQtLjc4aDE3LjM4bC04LjgzLTQxLjU5Yy0uMTMtLjMyLS4yNi0uNjUtLjM5LS45OC0xLjEzLTIuODYtMi40LTYuMS00LjkzLTcuMTYtMS40Ni0uNjEtMy4yMS0uNDctNS4zNSwuNDQtNi4zMiwyLjY4LTExLjEzLDQuODQtMTIuMzgsNS40MWwxNC41LDQzLjg4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI0MC4wNiw0NjQuODdoLTE5LjYzYy0uOTMsMC0xLjY4LC43Ni0xLjY4LDEuNjhoMGMwLC45MywuNzYsMS42OCwxLjY4LDEuNjhoMTkuNjNjLjkzLDAsMS42OC0uNzYsMS42OC0xLjY4aDBjMC0uOTMtLjc2LTEuNjgtMS42OC0xLjY4WiIvPjxwYXRoIGQ9Ik0yNDAuMDYsNDY4LjYyaC0xOS42M2MtMS4xNCwwLTIuMDctLjkzLTIuMDctMi4wN3MuOTMtMi4wNywyLjA3LTIuMDdoMTkuNjNjMS4xNCwwLDIuMDcsLjkzLDIuMDcsMi4wN3MtLjkzLDIuMDctMi4wNywyLjA3Wm0tMTkuNjMtMy4zNmMtLjcxLDAtMS4yOSwuNTgtMS4yOSwxLjI5cy41OCwxLjI5LDEuMjksMS4yOWgxOS42M2MuNzEsMCwxLjI5LS41OCwxLjI5LTEuMjlzLS41OC0xLjI5LTEuMjktMS4yOWgtMTkuNjNaIi8+PC9nPjxwb2x5Z29uIHBvaW50cz0iMjE3LjU2IDQxOC45MyAyMzQuNzYgNDQ1LjM5IDIzMS45NyA0MzIuMjIgMjE3LjU2IDQxOC45MyIvPjwvZz48Zz48Zz48cG9seWdvbiBjbGFzcz0iZCIgcG9pbnRzPSIxOTMuOTggNDM4LjI5IDEwNC4zNSA0MzguMjkgMTQ4LjIzIDQyMi4yNCAyMzcuODYgNDIyLjI0IDE5My45OCA0MzguMjkiLz48cGF0aCBkPSJNMTk0LjA0LDQzOC42OEgxMDIuMTVsNDYuMDEtMTYuODNoOTEuODlsLTQ2LjAxLDE2LjgzWm0tODcuNS0uNzhoODcuMzZsNDEuNzYtMTUuMjdoLTg3LjM2bC00MS43NiwxNS4yN1oiLz48L2c+PGc+PHBvbHlnb24gcG9pbnRzPSIxOTMuOTggNTIwLjg3IDEwNC4zNSA1MjAuODcgMTQ4LjIzIDUwNC44MiAyMzcuODYgNTA0LjgyIDE5My45OCA1MjAuODciLz48cGF0aCBkPSJNMTk0LjA0LDUyMS4yNkgxMDIuMTVsNDYuMDEtMTYuODNoOTEuODlsLTQ2LjAxLDE2LjgzWm0tODcuNS0uNzhoODcuMzZsNDEuNzYtMTUuMjdoLTg3LjM2bC00MS43NiwxNS4yN1oiLz48L2c+PGc+PHJlY3QgY2xhc3M9ImUiIHg9IjEwNC4zNSIgeT0iNDM4LjI5IiB3aWR0aD0iODguMTgiIGhlaWdodD0iODIuNTgiLz48cGF0aCBkPSJNMTkyLjkxLDUyMS4yNkgxMDMuOTZ2LTgzLjM2aDg4Ljk2djgzLjM2Wm0tODguMTgtLjc4aDg3LjR2LTgxLjhIMTA0Ljc0djgxLjhaIi8+PC9nPjxnPjxwb2x5Z29uIGNsYXNzPSJqIiBwb2ludHM9IjIzNy44NiA0MjIuMjQgMjM3Ljg2IDUwNC44MiAxOTIuNTMgNTIwLjg3IDE5Mi41MyA0MzguMjkgMjM3Ljg2IDQyMi4yNCIvPjxwYXRoIGQ9Ik0xOTIuMTQsNTIxLjQydi04My40MWwuMjYtLjA5LDQ1Ljg2LTE2LjIzdjgzLjQxbC0uMjYsLjA5LTQ1Ljg2LDE2LjIzWm0uNzgtODIuODZ2ODEuNzZsNDQuNTYtMTUuNzd2LTgxLjc2bC00NC41NiwxNS43N1oiLz48L2c+PC9nPjxnPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjY4LjY5LDQ0Mi45OHM0LjA0LDQuMjMsNS41MiwzLjQxbC0xNS4zNCwxMC4wOS0zLjI3LTQuNTIsMTMuMDktOC45OVoiLz48cGF0aCBkPSJNMjU4Ljc4LDQ1Ny4wMmwtMy43Mi01LjE0LDEzLjY5LTkuNCwuMjMsLjI0YzEuNTUsMS42Miw0LjIyLDMuOCw1LjA1LDMuMzRsLjQsLjY3LTE1LjY1LDEwLjNabS0yLjYyLTQuOTVsMi44MiwzLjksMTQuMDMtOS4yM2MtMS41OC0uNTUtMy41Ni0yLjQ0LTQuMzYtMy4yNGwtMTIuNDksOC41OFoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0yNzkuNjUsNDQ0LjUxbC00LjMxLDEuNWMtLjksLjMxLTEuODksLjI3LTIuNzYtLjEybC0yLjA2LTEuMjQtNC4yOCw2LjkxLTkuMjIsMi4zOSwuOTEsMS4yNSw0Ljg1LTEuMzctNCwyLjYzYy0uNjcsLjQ0LS44NSwxLjM0LS40MSwyLjAxbDEuMjEsMS44NGMuNDcsLjcxLDEuNDMsLjkxLDIuMTQsLjQ0bDQuNTgtMy4wMnYtMi40NHMzLjI5LC4yNywzLjI5LC4yN2wxNC40Mi05LjQ4Yy4yOC0uMTksLjMtLjYsLjA0LS44MWgwYy0xLjI0LTEtMi45LTEuMjktNC40LS43N1oiLz48cGF0aCBkPSJNMjYwLjg3LDQ2MS40Yy0uNjMsMC0xLjI1LS4zMS0xLjYyLS44N2wtMS4yMS0xLjg0Yy0uMjctLjQxLS4zNi0uOS0uMjYtMS4zOCwuMS0uNDgsLjM4LS44OSwuNzktMS4xNmwxLjkxLTEuMjYtMi43LC43Ni0xLjQtMS45NCw5LjYyLTIuNDksNC40LTcuMSwyLjM2LDEuNDJjLjc4LC4zNSwxLjY1LC4zOCwyLjQ2LC4xbDQuMzEtMS41YzEuNjQtLjU3LDMuNDItLjI2LDQuNzcsLjgzLC4yMiwuMTgsLjM0LC40NSwuMzMsLjc0LS4wMSwuMjktLjE2LC41NC0uNCwuN2wtMTQuNTMsOS41Ni0zLS4yNXYyLjIzcy00Ljc2LDMuMTMtNC43NiwzLjEzYy0uMzMsLjIxLS43LC4zMi0xLjA2LC4zMlptNC4yMi04LjYybC02LjEsNC4wMWMtLjI0LC4xNi0uNCwuMzktLjQ2LC42Ny0uMDYsLjI4LDAsLjU2LC4xNSwuOGwxLjIxLDEuODRjLjM1LC41MywxLjA3LC42OCwxLjYsLjMzbDQuNDEtMi45di0yLjY1czMuNTgsLjMsMy41OCwuM2wxNC4zLTkuNDFzLjA1LS4wNywuMDUtLjA5YzAtLjAyLDAtLjA2LS4wNC0uMDktMS4xNC0uOTItMi42NS0xLjE4LTQuMDMtLjdoMGwtNC4zMSwxLjVjLTEsLjM1LTIuMDksLjMtMy4wNS0uMTRsLS4wNC0uMDItMS43My0xLjA0LTQuMTYsNi43MS04LjgyLDIuMjgsLjQxLC41Nyw3LTEuOTdaIi8+PC9nPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE2MC40MSw0MTQuODZoMGMyLjE3LDEyLjUyLDguNDEsMTUuNTgsMjQuOTQsMTMuNjcsMjAuNzItMi40LDMyLjIyLTkuNiwzMi4yMi05LjZsMzUuOTcsMzMuMTksMTUuMzgtMTAuOXMtOS4zLTExLjgzLTIxLjQ1LTI2LjQzYy0xMi44Ni0xNS40Ni0xNS42MS0yNC4wOC0zOS44Ni0xOC4yNy0xNC45NiwzLjU5LTI2LjQ4LDMuNzktMzcuMzEsNi4yNmgwYy02LjI1LDEuNDMtMTAuMjUsMi40Mi0xMC4yNSwyLjQyLS4zLDMuMi0uMTgsNi40OCwuMzcsOS42NVoiLz48cGF0aCBkPSJNMjUzLjUsNDUyLjYybC0uMjMtLjIxLTM1Ljc2LTMzYy0xLjgyLDEuMDYtMTMuMjMsNy4zMi0zMi4xMiw5LjUtMi45NCwuMzQtNS41NiwuNTItNy44OSwuNTItMTEuMDQsMC0xNS41OC00LjA0LTE3LjQyLTE0LjE5aDBsLS4wNi0uMzJjLS41NS0zLjE4LS42OC02LjQ3LS4zNy05Ljc1bC4wMy0uMjcsLjI3LS4wN3M0LjA4LTEuMDEsMTAuMjYtMi40MmguMDVjNC44NC0xLjExLDkuODQtMS43NywxNS4xNC0yLjQ2LDYuNDktLjg1LDEzLjg1LTEuODIsMjIuMTMtMy44LDIxLjQ3LTUuMTQsMjYuMjgsLjkxLDM1Ljg2LDEyLjk3LDEuMzcsMS43MywyLjc5LDMuNTEsNC4zOCw1LjQzLDEyLjAyLDE0LjQ0LDIxLjM2LDI2LjMyLDIxLjQ2LDI2LjQ0bC4yNSwuMzItMTUuOTcsMTEuMzJabS0zNS44OS0zNC4xOGwuMjIsLjIsMzUuNzQsMzIuOTgsMTQuNzktMTAuNDhjLTEuNTctMS45OS0xMC4yOC0xMi45OS0yMS4xOS0yNi4xLTEuNi0xLjkzLTMuMDItMy43MS00LjQtNS40NC05LjM3LTExLjgtMTQuMDgtMTcuNzMtMzUuMDctMTIuNy04LjMxLDEuOTktMTUuNjksMi45Ni0yMi4yMSwzLjgxLTUuMywuNjktMTAuMywxLjM1LTE1LjExLDIuNDVoLS4wNWMtNS4yNSwxLjIxLTguOTQsMi4xMS05LjkzLDIuMzUtLjI2LDMuMDItLjE0LDYuMDIsLjM0LDguOTVoMGwuMDYsLjMyYzIuMSwxMi4xNiw3LjgzLDE1LjI4LDI0LjUxLDEzLjM1LDIwLjM4LTIuMzYsMzEuOTQtOS40NywzMi4wNS05LjU0bC4yNS0uMTZaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTYwLjQxLDQxNC44NmgwYzEyLjgzLC44Miw5Ljg4LTEyLjA3LDkuODgtMTIuMDdoMGMtNi4yNSwxLjQzLTEwLjI1LDIuNDItMTAuMjUsMi40Mi0uMywzLjItLjE4LDYuNDgsLjM3LDkuNjVaIi8+PHBhdGggZD0iTTE2MS41NSw0MTUuMjhjLS4zOCwwLS43Ni0uMDEtMS4xNi0uMDRsLS4zMS0uMDItLjA2LS4zYy0uNTUtMy4xOC0uNjgtNi40Ny0uMzctOS43NWwuMDMtLjI3LC4yNy0uMDdzNC4wOC0xLjAxLDEwLjI2LTIuNDJoLjA5cy4zMSwwLC4zMSwwbC4wNywuM2MuMDYsLjI1LDEuMzQsNi4wNy0xLjc5LDkuNzUtMS42MSwxLjg5LTQuMDcsMi44NC03LjM0LDIuODRabS0uODEtLjhjMy40NSwuMTYsNS45OC0uNyw3LjU1LTIuNTUsMi40NC0yLjg3LDEuOTItNy4zNiwxLjY5LTguNjktNS4wNiwxLjE2LTguNjEsMi4wMy05LjU5LDIuMjctLjI2LDMuMDItLjE0LDYuMDQsLjM0LDguOTdaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJkIiBkPSJNMjY3LjcxLDQzOS41NGwtMTUuOTMsMTEuNDdjLS43NSwuNTQtLjkyLDEuNi0uMzgsMi4zNWgwYy41NCwuNzUsMS42LC45MiwyLjM1LC4zOGwxNS45My0xMS40N2MuNzUtLjU0LC45Mi0xLjYsLjM4LTIuMzVoMGMtLjU0LS43NS0xLjYtLjkyLTIuMzUtLjM4WiIvPjxwYXRoIGQ9Ik0yNTIuNzcsNDU0LjQ0Yy0uMTEsMC0uMjMsMC0uMzQtLjAzLS41NS0uMDktMS4wMy0uMzgtMS4zNS0uODMtLjMyLS40NS0uNDUtMS0uMzYtMS41NCwuMDktLjU1LC4zOS0xLjAzLC44My0xLjM1bDE1LjkzLTExLjQ3Yy45My0uNjcsMi4yMi0uNDYsMi44OSwuNDcsLjY3LC45MywuNDYsMi4yMi0uNDcsMi44OWwtMTUuOTMsMTEuNDdjLS4zNSwuMjYtLjc3LC4zOS0xLjIsLjM5Wm0xNS4xNy0xNC41OWwtMTUuOTMsMTEuNDdjLS4yOCwuMi0uNDYsLjUtLjUyLC44NC0uMDYsLjM0LC4wMiwuNjgsLjIyLC45NiwuMiwuMjgsLjUsLjQ2LC44NCwuNTIsLjM0LC4wNiwuNjgtLjAyLC45Ni0uMjJsMTUuOTMtMTEuNDdjLjU4LS40MiwuNzEtMS4yMywuMjktMS44MS0uNDItLjU4LTEuMjMtLjcxLTEuODEtLjI5aDBaIi8+PC9nPjwvZz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg=='\n}","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-input-text',\n templateUrl: './s-input-text.component.html',\n styleUrls: ['./s-input-text.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputTextComponent),\n multi: true\n }\n ]\n})\nexport class SInputTextComponent implements OnInit, OnChanges, ControlValueAccessor , AfterViewInit {\n \n onChange = (_: any) => { };\n onTouch = () => { };\n\n //REF PARA TYPE NUMBER\n @ViewChild('typeNumber') typeNumber: ElementRef | undefined ;\n //REF PARA TYPE RANGE\n @ViewChild('tooltipContainer', { static: false }) tooltipContainer: ElementRef | undefined;\n @ViewChild('tooltip', { static: false }) tooltip: ElementRef | undefined;\n\n\n @Input() text: string = '';\n @Input() id: any = Math.floor(Math.random() * 1000);\n @Input() name: string = '';\n @Input() placeHolder?: 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()\n get theme(): string { return this._theme; }\n set theme(val: string) {\n this._theme = ['default', 'green', 'yellow', 'red'].indexOf(val) != -1 ? val : 'default';\n };\n @Input()\n get type(): string { return this._type; }\n set type(val: string) {\n this._type = ['text', 'password', 'email', 'phone', 'url', 'search', 'number', 'color', 'date', 'time' , 'range'].indexOf(val) != -1 ? val : 'text';\n };\n @Input() classAdd: string = '';\n @Input() help: boolean = false;\n @Input() size: 'sm' | 'md' = 'md';\n @Input() rangeUnity: string = '';\n\n inputTimeout?: any;\n inputText: string = '';\n inputNumber: number = 0;\n _type: string = 'text';\n _theme: string = 'default';\n disabledstyle: string = '';\n visibility = false;\n iconName: string | undefined;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\n\n @Output() textChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n constructor() { }\n\n ngOnInit(): void {\n this.initializeComponent();\n }\n\n // Inicializa los valores del componente\n private initializeComponent(): void {\n if (this.text && this.type === 'number') {\n this.inputNumber = Number(this.text);\n }\n\n if (this._type === 'color' && this.text === '') {\n this.text = '#000000';\n }\n\n this.inputText = this.text;\n\n if (this.disabled) {\n this.disabledstyle = 'disabled-active';\n }\n\n if (this.type === 'color' && this.readOnly) {\n this.disabled = true;\n }\n\n this.loadTheme();\n }\n\n ngAfterViewInit(): void {\n //Ajustes Type Range\n if(this.type === 'range'){\n this.rangeOnLoad()\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['theme']) {\n this.loadTheme();\n }\n\n if (changes['text']) {\n this.updateText();\n }\n\n if (changes['disabled'] || changes['readOnly']) {\n this.updateDisabledAndReadOnlyState();\n }\n }\n\n // Actualiza el texto y los números\n private updateText(): void {\n if (this.text && this.type === 'number') {\n this.inputNumber = Number(this.text);\n }\n\n if (this._type === 'color' && this.text === '') {\n this.text = '#000000';\n }\n\n this.inputText = this.text;\n }\n\n // Actualiza el estado disabled y readOnly\n private updateDisabledAndReadOnlyState(): void {\n this.disabledstyle = this.disabled ? 'disabled-active' : '';\n\n // Si el input es de tipo color y está en modo de solo lectura, se deshabilita.\n if (this.type === 'color' && this.readOnly) {\n this.disabled = true;\n }\n }\n\n\n private loadTheme() {\n switch (this.theme) {\n case \"default\":\n this.iconName = \"\"\n break;\n case \"red\":\n this.iconName = \"error_outline\"\n break;\n case \"green\":\n this.iconName = \"check_circle_outline\"\n break;\n case \"yellow\":\n this.inconSymbol = true\n this.iconName = \"warning\"\n break;\n\n default:\n this.iconName = \"\"\n break;\n }\n }\n\n onTextChange() {\n if(this.type === 'number'){\n this.updateNumber(this.inputText)\n }\n\n this.onTouch();\n this.onChange(this.inputText);\n\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n\n this.inputTimeout = setTimeout(() => {\n this.textChangeEvent.next(this.inputText);\n }, 500, null);\n }\n\n onTextChangeVal(val: string) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n\n this.inputTimeout = setTimeout(() => {\n if (val) {\n this.onTouch();\n this.onChange(val);\n this.textChangeEvent.next(val);\n this.inputText = val;\n }\n else {\n this.onTouch();\n this.onChange(val);\n this.textChangeEvent.next(this.inputText);\n }\n }, 500, null);\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n colorClick() {\n document.getElementById(this.name)?.click();\n }\n\n //FUNCIONES PARA TYPE NUMBER \n numberDecrease(){\n if(!this.disabled && !this.readOnly){\n if(this.min < this.inputNumber){\n this.inputNumber-=this.step\n }\n this.inputText = this.inputNumber.toString()\n this.onTouch();\n this.onChange(this.inputText);\n this.textChangeEvent.next(this.inputText);\n }\n }\n\n numberIncrement(){\n if(!this.disabled && !this.readOnly){\n if(this.max){\n if(this.max > this.inputNumber){\n this.inputNumber+=this.step\n }else{\n this.inputNumber = this.max\n }\n }\n if(!this.max){\n this.inputNumber+=this.step\n }\n this.inputText = this.inputNumber.toString()\n this.onTouch();\n this.onChange(this.inputText);\n this.textChangeEvent.next(this.inputText);\n }\n }\n\n updateNumber(value:any){\n let value2 = value\n if(this.max)\n if(value > this.max){\n value2 = this.max\n }\n if(value < this.min){\n value2 = this.min\n }\n\n this.inputText = value2.toString()\n this.inputNumber = Number(value2);\n if(this.typeNumber)\n this.typeNumber.nativeElement.value = this.inputNumber\n this.onTouch();\n this.onChange(this.inputNumber);\n this.textChangeEvent.next(this.inputText);\n \n } \n //FIN FUNCIONES PARA TYPE NUMBER \n \n //FUNCIONES PARA TYPE RANGE \n rangeOnLoad(){\n setTimeout(() => {\n //RANGO TOTAL\n const rangeMax = this.max ? this.max : 100;\n //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO\n let amplitudTotal = rangeMax - this.min\n let porcion = (amplitudTotal * 50) / 100 \n // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO\n let value = this.text == '' ? this.min + porcion : this.text\n value = this.inputText == '' ? this.min + porcion : this.inputText\n //DEFINO EL TOOTLTIP\n this.tooltipValue = this.text + this.rangeUnity;\n this.updateTooltip(value.toString());\n //SI ES CHROME APLICO EL FIX\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if(isChrome) {\n //CALCCULO EL % A ASIGNAR\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100\n document.getElementById(this.id)?.style.setProperty('margin-top' , '14px');\n document.getElementById(this.id)?.style.setProperty('margin-bottom' , '14px');\n document.getElementById(this.id)?.style.setProperty('border-radius' , '4px');\n document.getElementById(this.id)?.style.setProperty('height' , '8px');\n document.getElementById(this.id)?.style.setProperty('background' , 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) '+porcentaje+'%, var(--neutrals-1000) '+porcentaje+'%, 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 if(this.type === 'range'){\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.getElementById(this.id)?.style.setProperty('background' , 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) '+porcentaje+'%, var(--neutrals-1000) '+porcentaje+'%, 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 //FIN FUNCIONES PARA TYPE RANGE\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n this.inputText = value ?? \"\";\n this.inputNumber = value ?? 0;\n if(this.type == 'range'){\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}","<ng-container [ngSwitch]=\"type\">\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\n\n <!-- case text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <!-- <div class=\"content-left\">\n <s-icon-mat class=\"icon\">email</s-icon-mat>\n </div> -->\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [id]=\"id\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\"\n >\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n <!-- case password -->\n <ng-container *ngSwitchCase=\"'password'\">\n <div\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n type=\"{{visibility ? 'text' : 'password'}}\" \n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\n \">\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\n 'visibility_off'}}</s-icon-mat>\n </div>\n </div>\n </ng-container>\n\n <!-- case email -->\n <ng-container *ngSwitchCase=\"'email'\">\n <div\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case url -->\n <ng-container *ngSwitchCase=\"'url'\">\n <div\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n http://\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case search -->\n <ng-container *ngSwitchCase=\"'search'\">\n <div\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">search</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <!-- <div class=\"content-right\">\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\n </div> -->\n </div>\n </ng-container>\n\n <!-- case color -->\n <ng-container *ngSwitchCase=\"'color'\">\n <div\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <input [readOnly]=\"readOnly\" #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\" class=\"content-left--input\">\n </div>\n <div class=\"content-center\" (click)=\"!this.readOnly ? this.color.click() : null\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [type]=\"text\" \n autocomplete=\"off\" \n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n [disabled]=\"disabled\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n <!-- case date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n (ngModelChange)=\"onTextChangeVal($event)\"\n [ngModel]=\"inputText\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\n </div>\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 </ng-container>\n\n <!-- case time -->\n <ng-container *ngSwitchCase=\"'time'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n (ngModelChange)=\"onTextChangeVal($event)\"\n [ngModel]=\"inputText\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\n </div>\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 </ng-container>\n\n <!-- case number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\n </div>\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}} w-100\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n #typeNumber \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\"\n [max]=\"max\"\n [min]=\"min\"\n [step]=\"step\"\n >\n </div>\n\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 <div class=\"content-left ml-1\">\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\n </div>\n </div>\n </ng-container>\n\n <!-- case range -->\n <ng-container *ngSwitchCase=\"'range'\">\n <div class=\"content-input-main-range {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n #rangeField\n [readOnly]=\"readOnly\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [id]=\"id\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\"\n [(ngModel)]=\"inputText\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (mousemove)=\"changeRange(rangeField.value)\"\n (ngModelChange)=\"onTextChange()\"\n (input)=\"updateTooltip(rangeField.value)\"\n >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- case default -->\n <ng-container *ngSwitchDefault>\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <!-- <div class=\"content-left\">\n <s-icon-mat class=\"icon\">email</s-icon-mat>\n </div> -->\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : 'generic'\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n</ng-container>","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\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\n\n iconName: string = ''\n\n constructor() { }\n\n ngOnInit(): void {\n\n if(this.iconCustom == \"\"){\n\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\n }else{\n this.iconName = this.iconCustom\n }\n\n }\n\n}\n","<label class=\"label-content label-content-{{theme}} {{size}}\">\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{theme}}\">{{iconName}}</s-icon-mat>\n <ng-content></ng-content>\n</label>","import { Component, Output, EventEmitter, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SLoginEvent } from './s-login-event';\nimport { Images } from './s-login-images';\nimport { SLoginModel } from './s-login-model';\nimport { SLoginErrorsModel } from './s-login-errors-model';\n\n/**\n * Componente de login.\n */\n@Component({\n selector: 's-login',\n templateUrl: './s-login.component.html',\n styleUrls: ['./s-login.component.scss']\n})\nexport class SLoginComponent implements OnInit, OnChanges {\n\n controls: FormGroup = new FormGroup({});\n submitted: boolean = false;\n\n @Input() urlForgotPassword?: string = '';\n @Input() urlForgotPasswordTarget?: '_self' | '_blank' = '_blank';\n @Input() modelErrors: SLoginErrorsModel = {};\n @Input() loading: boolean = false;\n @Input() model: SLoginModel = {}\n @Input() imgSrc?: any;\n @Input() regExp?: RegExp;\n\n user: string | undefined = \"\";\n password: string | undefined = \"\";\n userRegExp = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|.(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n arrayErrors: SLoginErrorsModel = {};\n errorMessage: string = \"\";\n\n /**\n * Evento de salida cuando hace click en login\n */\n @Output() loginEvent = new EventEmitter<SLoginEvent>();\n\n constructor(private domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.userRegExp = this.regExp || this.userRegExp;\n this.initForm();\n this.createArrayMessagesErrors();\n this.imgSrc = !this.imgSrc ? this.imgSrc = this.domSanitizer.bypassSecurityTrustResourceUrl(Images.left) : this.imgSrc;\n this.model = {\n product: this.model.product ? this.model.product : \"Sidesys Login\",\n userLabel: this.model.userLabel ? this.model.userLabel : \"Email de usuario\",\n userPlaceholder: this.model.userPlaceholder ? this.model.userPlaceholder : \"Ingrese usuario\",\n paswordLabel: this.model.paswordLabel ? this.model.paswordLabel : \"Contraseña de usuario\",\n paswordPlaceholder: this.model.paswordPlaceholder ? this.model.paswordPlaceholder : \"Ingrese contraseña\",\n buttonText: this.model.buttonText ? this.model.buttonText : \"Login\",\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void { \n this.createArrayMessagesErrors();\n }\n\n initForm() {\n this.controls = new FormGroup({\n user: new FormControl('', [ Validators.required, Validators.maxLength(100), Validators.pattern(this.userRegExp)]),\n password: new FormControl('', [Validators.required, Validators.maxLength(100)])\n });\n }\n \n createArrayMessagesErrors() {\n this.arrayErrors = {\n required: this.modelErrors['required'] ? this.modelErrors['required'] : 'Campo requerido',\n maxlength: this.modelErrors['maxlength'] ? this.modelErrors['maxlength'] : 'El campo excede el límite de 100 caracteres',\n pattern: this.modelErrors['pattern'] ? this.modelErrors['pattern'] : 'El formato no es válido',\n errorDefault: this.modelErrors['errorDefault'] ? this.modelErrors['errorDefault'] : 'Error en el dato',\n globalError: this.modelErrors['globalError'] ? this.modelErrors['globalError'] : 'Error global'\n }\n }\n\n login() {\n setTimeout(() => {\n this.user = this.checkError(this.controls.controls['user']);\n this.password = this.checkError(this.controls.controls['password']);\n if (this.user == '' && this.password == '') {\n this.errorMessage = '';\n this.loginEvent.next({ user: this.controls.controls['user'].value, password: this.controls.controls['password'].value } as SLoginEvent);\n }\n }, 500);\n }\n\n changeUser(text: string) {\n this.controls.controls['user'].setValue(text);\n this.user = this.checkError(this.controls.controls['user']);\n }\n\n changePassword(text: string) {\n this.controls.controls['password'].setValue(text);\n this.password = this.checkError(this.controls.controls['password']);\n }\n\n private checkError(control: AbstractControl) {\n if (control.invalid && control.errors != null) {\n if (control.getError('required')) {\n return this.arrayErrors['required'];\n } else if (control.getError('maxlength')) {\n return this.arrayErrors['maxlength'];\n } else if (control.getError('pattern')) {\n return this.arrayErrors['pattern'];\n }\n return this.arrayErrors['errorDefault'];\n }\n return '';\n }\n}","<div class=\"login-container\">\n <div class=\"login-section\">\n <img class=\"login-image\" [src]=\"imgSrc\" alt=\"\">\n </div>\n <div class=\"login-section\">\n <div class=\"login-section-second\">\n <div>\n <h2 class=\"login-title-primary\">{{model.product}}</h2>\n <br>\n </div>\n <div>\n <div class=\"form-group\">\n <label class=\"label\">{{model.userLabel}}</label>\n <s-input-text [theme]=\"user ? 'red' : ''\" [type]=\"'email'\" [name]=\"'user'\" [placeHolder]=\"model.userPlaceholder\" \n (textChangeEvent)=\"changeUser($event)\" (keyup.enter)=\"login()\"></s-input-text>\n <div *ngIf=\"!user\" class=\"fixclear\"></div>\n <s-error-control *ngIf=\"user\" theme =\"red\">{{user}}</s-error-control>\n </div> \n\n <div class=\"form-group\">\n <label class=\"label\">{{model.paswordLabel}}</label>\n <s-input-text [theme]=\"password ? 'red' : ''\" [type]=\"'password'\" [name]=\"'password'\" [placeHolder]=\"model.paswordPlaceholder\" \n (textChangeEvent)=\"changePassword($event)\" (keyup.enter)=\"login()\"></s-input-text>\n <div *ngIf=\"!password\" class=\"fixclear\"></div>\n <s-error-control *ngIf=\"password\" theme =\"red\">{{password}}</s-error-control>\n </div>\n </div>\n <div class=\"text-center\">\n <br>\n <p *ngIf=\"urlForgotPassword\" class=\"s-caption\">¿Olvidaste tu contraseña? <a class=\"click-here-link\" target=\"{{urlForgotPasswordTarget}}\"\n [href]=\"urlForgotPassword\">Haz clic aquí</a> para recuperarla</p>\n <br>\n </div>\n <div class=\"text-center\">\n <div>\n <s-error-control *ngIf=\"modelErrors['globalError']\" theme=\"red\"><span class=\"s-caption\">{{modelErrors['globalError']}}</span></s-error-control>\n </div>\n <s-button [loading]=\"loading\" [disabled]=\"loading\" size=\"md\" (click)=\"login()\">{{model.buttonText}}</s-button>\n </div>\n </div>\n </div>\n</div>","export enum THEME {\n DEFAULT = 'default',\n GREEN = 'green',\n YELLOW = 'yellow',\n RED = 'red',\n SECONDARY = 'secondary',\n}\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 { 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 constructor(config?: Partial<SInput>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = Math.floor(Math.random() * 1000).toString();\n }\n }\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};\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 { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\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\n @Input() errors: Record<string, ValidationErrors> | null = {};\n @Input() customErrorMessages?: Record<string, string> = {};\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\">\n <s-error-control *ngFor=\"let error of errors | keyvalue\" theme =\"red\">\n {{ errorMessages[error.key] }}\n </s-error-control>\n</div>","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} 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';\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 iconSymbol: boolean = false;\n iconType?: string;\n ICON_THEME = ICON_THEME;\n showPassword = false;\n type!: INPUT_TYPE;\n errorPattern!: string | undefined;\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n isFocused: boolean = false;\n\n onInput(event: Event): void {\n this.patternError();\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 getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n showIconType(): boolean {\n this.iconType = this.config.type\n ? this.getIconByType(this.config.type)\n : undefined;\n return !!this.iconType;\n }\n\n getIconByType(type: string): string | undefined {\n return type in ICON_INPUT\n ? ICON_INPUT[type as keyof typeof ICON_INPUT]\n : undefined;\n }\n\n patternError() {\n if (\n this.config.type === INPUT_TYPE.URL &&\n !INPUTS_REGEX.URL.test(this.control?.value || this.value)\n ) {\n this.errorPattern = 'Formato de url invalido.';\n return;\n }\n if (\n this.config.type === INPUT_TYPE.EMAIL &&\n !INPUTS_REGEX.EMAIL.test(this.control?.value || this.value)\n ) {\n this.errorPattern = 'Formato de email invalido.';\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.next();\n }\n\n onBlur(event: any): void {\n this.patternError();\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","<div class=\"s-input\">\n <label [for]=\"config.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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && errorPattern && control.touched) ||\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]=\"config.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 }}\"\n [type]=\"config.type\"\n [formControl]=\"control\"\n (input)=\"patternError()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [type]=\"config.type\"\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\n [type]=\"iconSymbol ? 'symbol' : 'icon'\"\n class=\"icon cursor\"\n (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config.showHelp &&\n (config.theme === THEME.DEFAULT || config.theme !== undefined)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\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\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n config.type !== INPUT_TYPE.SEARCH &&\n !errorPattern &&\n !config.errorText\n \"\n theme=\"red\">\n {{ 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) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n","import { Component, EventEmitter, Input, 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> {\n\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\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 '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]=\"config.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]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.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=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-range',\n templateUrl: './s-range.component.html',\n styleUrls: ['./s-range.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SRangeComponent),\n multi: true\n }\n ]\n})\nexport class SRangeComponent implements ControlValueAccessor, AfterViewInit {\n\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\n\n @Input() value: string = '';\n @Input() id: string = (Math.floor(Math.random() * 1000)).toString();\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\n inputTimeout?: any;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\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 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 this.valueChangeEvent.next(this.value);\n }, 500, null);\n }\n\n onTextChangeVal(val: string) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(() => {\n if (val) {\n this.onTouch();\n this.onChange(val);\n this.valueChangeEvent.next(val);\n this.value = val;\n }\n else {\n this.onTouch();\n this.onChange(val);\n this.valueChangeEvent.next(this.value);\n }\n }, 500, null);\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n //FUNCIONES PARA TYPE RANGE \n rangeOnLoad() {\n setTimeout(() => {\n //RANGO TOTAL\n const rangeMax = this.max ? this.max : 100;\n //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO\n let amplitudTotal = rangeMax - this.min\n let porcion = (amplitudTotal * 50) / 100\n // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO\n let value = this.value == '' ? this.min + porcion : this.value\n value = this.value == '' ? this.min + porcion : this.value\n //DEFINO EL TOOTLTIP\n this.tooltipValue = this.value + this.rangeUnity;\n this.updateTooltip(value.toString());\n //SI ES CHROME APLICO EL FIX\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if (isChrome) {\n //CALCCULO EL % A ASIGNAR\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100\n document.getElementById(this.id)?.style.setProperty('margin-top', '14px');\n document.getElementById(this.id)?.style.setProperty('margin-bottom', '14px');\n document.getElementById(this.id)?.style.setProperty('border-radius', '4px');\n document.getElementById(this.id)?.style.setProperty('height', '8px');\n document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');\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.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');\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) {\n this.value = value;\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","<ng-container>\n <label *ngIf=\"label\" class=\"s-range__label\">\n\t\t{{label}}\n\t\t<span class=\"s-range__required\" *ngIf=\"required\">*</span>\n\t</label>\n <div class=\"s-range__content {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n #rangeField \n [id]=\"id\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [type]=\"'range'\"\n max={{max}}\n min={{min}}\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 >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\n</ng-container>","import { Component, EventEmitter, Input, 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 constructor(config?: Partial<SCalendar>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\n }\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> {\n\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\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-calendar\">\n <label [for]=\"config.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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\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]=\"config.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]=\"config.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\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (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 } 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 constructor(config?: Partial<STime>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\n }\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> {\n\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\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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\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]=\"config.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]=\"config.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\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { Component, EventEmitter, Input,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 {\n \n onChange = (_: any) => { };\n onTouch = () => { };\n\n @Input() value: string = '#000000';\n @Input() id: string = (Math.floor(Math.random() * 1000)).toString();\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\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 onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(() => {\n this.valueChangeEvent.next(this.value);\n }, 500, null);\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-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"readOnly\"\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 ? 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\">\n help_outline\n </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, 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.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\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> {\n\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\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 ((step < 0 && (this.config.min === undefined || newValue >= this.config.min!)) ||\n (step > 0 && (this.config.max === undefined || newValue <= this.config.max!))) {\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","<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]=\"config.disabled ?? false\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\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 '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]=\"config.id ? config.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]=\"config.id ? config.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\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberIncrement()\"\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=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (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 { SInputTextComponent } from './components/input-text/s-input-text.component';\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 { SRangeComponent } from './components/range/s-range.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\n@NgModule({\n declarations: [\n SInputTextComponent,\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SRangeComponent,\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 SInputTextComponent,\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SRangeComponent,\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SLoginComponent } from './s-login.component';\n// import { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SFooterModule } from '../footer';\nimport { SButtonModule } from '../button';\nimport { SFormModule } from '../form';\nimport { SInputModule } from '../input';\n\n\n@NgModule({\n declarations: [\n SLoginComponent\n ],\n imports: [\n CommonModule,\n SButtonModule,\n SInputModule\n ],\n exports: [\n SLoginComponent\n ]\n})\nexport class SLoginModule { }\n","export class SLoginModel {\n product?: string;\n userLabel?: string;\n userPlaceholder?: string;\n paswordLabel?: string;\n paswordPlaceholder?: string;\n buttonText?:string;\n}","\nexport class SLoginErrorsModel {\n required?: string;\n maxlength?: string;\n pattern?: string;\n errorDefault?: string;\n globalError?: string;\n}\n\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})\n\nexport class SFooterComponent {\n \n @Input() theme?: string;\n @Input() developedBy?: string = 'Desarrollado por';\n\n}\n","<footer class=\"s-footer\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <span class=\"s-footer__text\">{{developedBy}}</span>\n <s-company-logo [height]=\"23\" [width]=\"70\"></s-company-logo>\n</footer>","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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SDropDownButton } from './s-drop-down-button';\n\n@Component({\n selector: 's-drop-down',\n templateUrl: './s-drop-down.component.html',\n styleUrls: ['./s-drop-down.component.scss']\n})\nexport class SDropDownComponent {\n\n @Input() display: boolean = false;\n @Input() buttons: SDropDownButton[] = [];\n @Input() right: boolean = false;\n\n @Output() buttonClick = new EventEmitter<string>();\n\n onButtonClick(btonEvent: string){\n this.buttonClick.next(btonEvent);\n }\n\n}\n","<div class=\"s-drop-down\">\n <div class=\"s-drop-down__content\" [ngStyle]=\"{\n display: display ? 'block' : 'none', \n right: right ? '0' : 'inherit', \n left: right ? 'inherit' : '0'\n }\">\n <button class=\"s-drop-down__content__button\" *ngFor=\"let btn of buttons\" (click)=\"onButtonClick(btn.eventName)\">{{btn.name}}</button>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SDropDownComponent } from './s-drop-down.component';\n\n\n\n@NgModule({\n declarations: [SDropDownComponent],\n imports: [CommonModule],\n exports:[SDropDownComponent]\n})\nexport class SDropDownModule { }\n","export class SDropDownButton {\n name: string = '';\n eventName: string = '';\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}","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 { 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 class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option\">\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' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [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=\"24\"></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' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div 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 >\n <div class=\"content-left\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\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>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\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 implements OnInit {\n\n @Input() type: \"one\" | \"two\" | \"three\" | \"four\" | \"five\" | \"six\" | \"seven\" = \"one\"\n @Input() size: \"md\" | \"lg\" | \"xl\" = \"lg\"\n @Input() invert: boolean = false;\n @Input() expand: boolean = false;\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","<div class=\"s-spinner s-spinner--{{type}} s-spinner--size-{{size}}\" [ngClass]=\"{'s-spinner--invert' : invert}\">\n</div>","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 {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n forwardRef,\n AfterContentInit,\n Injector,\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\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\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 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\n .filter(option => option.value)\n .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(\n obj => obj.value === true\n ).length;\n this.config.options.length == this.countSelected\n ? (this.selectAll = true)\n : (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(\n event,\n item,\n this.isOpen,\n this.changeItem.bind(this),\n false\n );\n }\n}\n","<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [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 [ngClass]=\"{\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 class=\"s-select__main cursor\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n (click)=\"openDropDown()\"\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=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\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' ? '16' : '24' }}\"></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\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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 </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\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 [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\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\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(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' ? '16' : '24'\"\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' ? '17' : '22' }}\"\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\r\n class=\"s-select__options-multiple--selected\"\r\n [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\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </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 >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</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} 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> {\n @Input() config!: SSelect;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\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 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.value) {\n const index = this.config.options.findIndex(\n item => item.value === this.value.toString()\n );\n this.activeIndex = index;\n }\n return this.activeIndex || this.activeIndex === 0\n ? this.config.options[this.activeIndex].title\n : '';\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\n ? this.control.setValue(e.value.toString())\n : (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\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\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [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 <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 '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\">\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]=\"config.id ? config.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\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *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\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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 </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\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 {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [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 }\" *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 }\"\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\">\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=\"24\"\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 ? '17' : '22'\"\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 ? '17' : '22'\"\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' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>","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\r\n class=\"s-select\"\r\n [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' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (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\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *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=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\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 placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></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=\"16\"\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=\"24\"\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=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *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})\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\n}","<a class=\"s-link s-link--size-{{size}}\" \n[target]=\"target\" \n[href]=\"href\" \n[class.disabled]=\"disabled\" \n[class.invert]=\"invert\" \n[class.not-visited]=\"!visited\">\n <ng-content></ng-content>\n</a>","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';\n\n@NgModule({\n declarations: [\n SSpinnerComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SSpinnerComponent\n ]\n})\nexport class SSpinnerModule { }\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { SSelectSimpleModel } from '../select';\nimport { SFormControl } from './s-form-control';\n\n@Component({\n selector: 's-form',\n templateUrl: './s-form.component.html',\n styleUrls: ['./s-form.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SFormComponent implements OnInit, OnChanges {\n form: FormGroup = new FormGroup({});\n\n @Input() controls?: SFormControl[];\n @Input() submitClick: number = 0;\n\n @Input() requiredMessage: string = 'Se requiere este dato';\n @Input() emailMessage: string = 'El formato del correo no es válido';\n @Input() dafaultMessage: string = 'Error en el dato';\n\n @Output() controlsChangeEvent = new EventEmitter<SFormControl[]>();\n @Output() submitEvent = new EventEmitter<{ [key: string]: string }>();\n @Output() changeSelectEvent = new EventEmitter<SSelectSimpleModel>();\n @Output() clickButtonEvent = new EventEmitter<string>();\n \n submitted: boolean = false;\n\n enabledTypes: string[] = ['text', 'password', 'email' , 'phone' , 'url' , 'number', 'button', 'checkbox', 'select', 'color', 'date', 'time'];\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['submitClick'] && changes['submitClick'].currentValue != 0) {\n this.submit();\n }\n\n if (changes['controls'] && changes['controls'].previousValue && changes['controls'].currentValue) {\n this.form = new FormGroup({});\n this.controls = [];\n this.submitted = false;\n \n setTimeout(() => {\n this.controls = changes['controls'].currentValue;\n this.loadForm();\n }, 100);\n }\n }\n\n ngOnInit(): void {\n this.loadForm();\n }\n\n loadForm(){\n if (this.controls) {\n this.controls.forEach(c => {\n if(!c.inputType || c.inputType == ''){\n c.inputType = 'text';\n }\n\n let val = c.value;\n\n if (c.inputType == 'select') {\n val = c.value;\n }\n \n this.form.addControl(c.formControlName, new FormControl(val, c.validators));\n \n if (c.disabled) {\n this.form.controls[c.formControlName].disable({ onlySelf: true });\n }\n });\n }\n }\n\n submit() {\n this.form.markAllAsTouched();\n \n if (this.controls && this.form.valid) {\n this.submitted = true;\n let keysValues: { [key: string]: string } = {};\n\n this.controls.forEach(c => {\n keysValues[c.formControlName] = this.form.controls[c.formControlName].value;\n });\n\n this.submitEvent.next(keysValues);\n }\n else {\n this.submitted = false;\n }\n }\n\n checkErrors(key: string): boolean {\n if (!this.form.controls[key]) { return false }\n return ((this.form.controls[key].invalid && (this.form.controls[key].dirty || this.form.controls[key].touched)) || this.submitted) && this.form.controls[key].errors != null;\n }\n\n getErrorMessage(key: string): string {\n if (this.form.controls[key].getError('required')) {\n return this.requiredMessage;\n } else if (this.form.controls[key].getError('email')) {\n return this.emailMessage;\n }\n\n return this.dafaultMessage;\n }\n\n changeSelect(obj: SSelectSimpleModel, key: string) {\n this.changeSelectEvent.emit(obj);\n this.changeControl(key, obj.key as string);\n }\n\n changeControl(name: string, val: string){\n this.form.controls[name].markAsTouched();\n this.form.controls[name].setValue(val);\n\n let c = this.controls?.find(e => {return e.formControlName == name});\n\n if(c){\n c.value = val;\n }\n\n this.controlsChangeEvent.emit(this.controls);\n }\n\n buttonClick(name: string){\n this.clickButtonEvent.emit(name);\n }\n}\n","<form *ngIf=\"form && controls\" [formGroup]=\"form\">\n <div class=\"form-control\" [ngStyle]=\"{width: c.width + '%', display: c.width < 100 ? 'inline-block' : 'initial'}\"\n *ngFor=\"let c of controls\">\n <div *ngIf=\"c.show && enabledTypes.indexOf(c.inputType) != -1\">\n <div *ngIf=\"c.inputType != 'button' && c.inputType != 'select' && c.inputType != 'checkbox'\">\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\n [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <div class=\"form-group\">\n <label class=\"label\">{{c.label}}</label>\n <s-input-text [type]=\"c.inputType\" [text]=\"c.value\" [disabled]=\"c.disabled\"\n [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\" [placeHolder]=\"c.inputPlaceHolder\"\n [name]=\"c.formControlName + c.inputType\"\n (textChangeEvent)=\"changeControl(c.formControlName, $event)\"\n [title]=\"c.inputPlaceHolder\"></s-input-text>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'button' && c.button != undefined\">\n <div class=\"form-group\">\n <s-button [pill]=\"c.button.pill\" [invert]=\"c.button.invert\" [type]=\"c.button.type\" size=\"sm\"\n [title]=\"c.inputPlaceHolder\" [class]=\"c.button.class\" [size]=\"c.button.size ? c.button.size : 'md' \" (click)=\"buttonClick(c.formControlName)\">\n {{c.label}}\n <s-icon-mat *ngIf=\"c.button.icon\">{{c.button.icon}}</s-icon-mat>\n </s-button>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'checkbox'\">\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\n [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <div class=\"form-group\">\n <s-checkbox-old [value]=\"c.value\" [label]=\"c.label\" (emitSelection)=\"changeControl(c.formControlName, $event.event.toString())\"></s-checkbox-old>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'select'\">\n <select [id]=\"c.formControlName\" [name]=\"c.formControlName\" [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <option *ngFor=\"let o of c.selectModel\" [value]=\"o.key\" [selected]=\"o.key == c.value\">{{o.value}}\n </option>\n </select>\n <div class=\"form-group\">\n <label class=\"label\">{{c.label}}</label>\n <s-select-old [options]=\"c.selectModel\" (selectEvent)=\"changeSelect($event, c.formControlName)\" [title]=\"c.inputPlaceHolder\" [selectedValue]=\"c.value\"></s-select-old>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n </div>\n </div>\n</form>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SFormComponent } from './s-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SInputModule } from '../input';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSelectModule } from '../select';\n\n@NgModule({\n declarations: [\n SFormComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SInputModule,\n SButtonModule,\n SIconMaterialModule,\n SCheckboxModule,\n SSelectModule\n ],\n exports:[\n SFormComponent\n ]\n})\nexport class SFormModule { }\n","import { ValidatorFn } from \"@angular/forms\";\nimport { SSelectSimpleModel } from \"../select/s-select-model\";\n\nexport class SFormControl {\n private _width: number = 100;\n\n formControlName: string = '';\n label: string = '';\n inputType: string = '';\n inputPlaceHolder: string = '';\n validators: ValidatorFn[] = [];\n value: string = \"\";\n disabled: boolean = false;\n show: boolean = true;\n selectModel: SSelectSimpleModel[] = [];\n button: ButtonControl | undefined;\n\n get width(): number {\n return this._width;\n }\n set width(val: number) {\n this._width = val > 0 && val <= 100 ? val : 100;\n };\n\n static Create(formControlName: string = '', label: string = '', inputType: string = '', inputPlaceHolder: string = '', validators: ValidatorFn[] = [], value: string = '', width: number = 100, disabled: boolean = false, show: boolean = true, selectModel: SSelectSimpleModel[] = [], button: ButtonControl | undefined = undefined): SFormControl {\n let c = new SFormControl();\n\n c.formControlName = formControlName;\n c.label = label;\n c.inputType = inputType;\n c.inputPlaceHolder = inputPlaceHolder;\n c.validators = validators;\n c.value = value;\n c.disabled = disabled;\n c.show = show;\n c.selectModel = selectModel\n c.width = width;\n\n if (inputType == 'button' && button == undefined) {\n c.button = new ButtonControl();\n c.button.icon = '';\n c.button.invert = false;\n c.button.pill = false;\n c.button.type = 'primary';\n }\n else {\n c.button = button;\n }\n\n if (inputType == 'color' && !value) {\n c.value = '#000000'\n }\n\n return c;\n }\n}\n\nexport class ButtonControl {\n pill: boolean = false;\n invert: boolean = false;\n type: string = 'primary';\n icon: string = '';\n class: string = '';\n size: \"xl\" | \"lg\" | \"md\" | \"sm\" = 'md';\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SDropDownButton } from '../drop-down';\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() 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 buttons: SDropDownButton[] = [];\n showDropDownCard: boolean = false;\n localImage: SafeResourceUrl | undefined;\n\n constructor(private domSanitizer: DomSanitizer) {\n }\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}}\">\n <div *ngIf=\"!showHorizontal && check\" class=\"s-card__check\">\n <s-checkbox-old class=\"s-card__check-component\" [value]=\"check.value\" [model]=\"check.model\" [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\" (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 size=\"150\">{{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 *ngIf=\"showHorizontal && check\" [value]=\"check.value\" [model]=\"check.model\"\n [disabled]=\"check.disabled\" [isUndefined]=\"check.undefined\" (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 *ngIf=\"showDropDownCard\" class=\"s-card__submenu\" [menu]=\"menu\" (changeMenuEvent)=\"onClickEvent($event)\" (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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCardComponent } from './s-card.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SDropDownModule } from '../drop-down';\nimport { STagModule } from '../tag';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSubMenuModule } from '../sub-menu';\n\n@NgModule({\n declarations: [\n SCardComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SDropDownModule,\n STagModule,\n SCheckboxModule,\n SSubMenuModule\n ],\n exports: [\n SCardComponent\n ]\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 { HttpClientModule } from '@angular/common/http';\nimport { SInputModule } from '../input';\nimport { SSelectModule } from '../select';\nimport { SSpinnerModule } from '../spinner';\nimport { SFormModule } from '../form';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SButtonModule } from '../button';\nimport { SCardModule } from '../card';\n\n@NgModule({\n declarations: [\n SDynamicFormComponent\n ],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n HttpClientModule,\n SInputModule,\n SSelectModule,\n SSpinnerModule, \n SFormModule,\n SFormModule,\n SButtonModule,\n ReactiveFormsModule,\n SCardModule\n ],\n exports: [\n SDynamicFormComponent\n ]\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 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 @Output() updateDataEvent = new EventEmitter<any>();\n @Output() ordenByEvent = new EventEmitter<SortTable>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\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) {\n if (column.id) { //column.id es el campo a ordenar.\n const sortAsc =\n this.fieldSelect &&\n this.fieldSelect.SortField === column.id &&\n 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\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\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && !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':\n column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <s-checkbox\n *ngIf=\"column.checkbox\"\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select':\n fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span\n *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\"\n class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc\n ? 'keyboard_arrow_up'\n : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"\n column.sortable !== false &&\n column.title &&\n fieldSelect &&\n fieldSelect.SortField !== column.id\n \">\n <s-icon-mat\n [type]=\"'symbol'\"\n size=\"18\"\n class=\"icon cursor\"\n 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\n [type]=\"'symbol'\"\n size=\"18\"\n class=\"icon cursor\"\n 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\n [ngClass]=\"{\n 's-tablet__body': !loading,\n 's-tablet__empty': loading,\n }\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body><ng-content></ng-content></ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\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 @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 p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n 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';\n\n@NgModule({\n declarations: [STabletComponent, InputSearch, SortableColumn, STemplate],\n imports: [CommonModule, SIconMaterialModule, SCheckboxModule, FormsModule],\n exports: [\n STabletComponent,\n InputSearch,\n SortableColumn,\n STemplate,\n TableActionsButtonsModule,\n ],\n})\nexport class STabletModule {}\n","import { AfterContentInit, AfterViewInit, Component, Directive, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewEncapsulation } 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 \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\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 \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\n\n@Directive({\n selector: '[STemplatePopup]',\n host: {\n // 'class': 's-element-search',\n },\n})\nexport class STemplatePopup implements AfterContentInit {\n\n @Input(\"STemplatePopup\") field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public content: SPopupComponent,\n ) {\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\">\n <div class=\"s-popup__card\" [ngClass]=\"show70 ? 's-popup__card--show70' : ''\" [ngStyle]=\"{'width' : this.width + 'px', 'height' : this.height + 'px' , 'left' : getCalcPopUp(this.width) , 'top' : getCalcPopUp(this.height)}\">\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\">{{iconCustomName}}</s-icon-mat>\n <s-icon-mat *ngIf=\"iconType && !iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{iconType}}</s-icon-mat>\n <h4>{{title}}</h4>\n </div>\n <s-icon-mat class=\"s-popup__card__head__close\" (click)=\"close()\">close</s-icon-mat>\n </div>\n <div>\n <div class=\"s-popup__card__body\"\n [ngClass]=\"{ borderBody:'s-popup__card__body--border-body' }\" [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>","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 tabindex=\"-1\" class=\"s-toggle-switch__content__input\" type=\"checkbox\" [disabled]=\"disabled\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange()\">\n <span class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n 'disabled': disabled,\n 'active': value,\n 'no-active': !value\n }\">\n <s-icon-mat class=\"slider-icon-close\" *ngIf=\"showIcon\">{{getIcon()}}</s-icon-mat>\n </span>\n </label>\n <label *ngIf=\"label\" class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive && value,\n 'disabled': disabled,\n }\"\n >{{label}}</label>\n</div>","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { 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 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<\n T,\n> extends ControlBooleanAccessorDirective<T> {\n @Input() config!: SSwitch;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n checked: boolean = false;\n\n onInput(event: Event): void {\n if (this.config.disabled) return;\n const input = event.target as HTMLInputElement;\n this.value = input.checked;\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n\n registerOnChange(fn: any): void {\n if (!this.config?.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getValue() {\n if (this.value) this.checked = this.value === true;\n return this.checked;\n }\n\n getIcon() {\n const isChecked = this.control?.value ?? this.value === true;\n return isChecked\n ? (this.config?.icon ?? 'check')\n : (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 === true;\n this.control?.setValue(this.value);\n this.checked = this.value === true;\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\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 class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"/>\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"getValue()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"/>\n </ng-template>\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n active: control?.value || value,\n 'no-active': control?.value || value,\n disabled: (control?.disabled || (config && config.disabled)) && !(config && config.readOnly)\n }\">\n <s-icon-mat\n class=\"slider-icon-close\"\n *ngIf=\"(config && config.showIcon !== false) || !config\"\n >{{ getIcon() }}</s-icon-mat\n >\n </span>\n </label>\n\n <div *ngIf=\"config?.label\">\n <label *ngIf=\"control\"\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 }}</label>\n\n <label *ngIf=\"!control\"\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 }}</label>\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 { 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 { 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 { Component, EventEmitter, HostListener, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { SMenuItem, SSidebarImage } from './s-sidebar-model';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { SIcon } from '../icon-material/s-icon-material.model';\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 {\n\n @Input() menu: SMenuItem[] = [];\n @Input() expand: boolean = true;\n @Input() showExpand: boolean = true;\n @Input() theme?: string;\n @Input() images?: SSidebarImage;\n \n\n @Output() clickEvent = new EventEmitter<SMenuItem>();\n @Output() clickEventMenu = new EventEmitter<boolean>();\n\n constructor(public localStorage:LocalstorageService) {\n\n if(this.localStorage.getItem(\"s-sidebar:expand\") == null || this.localStorage.getItem(\"s-sidebar:expand\") == undefined){\n this.localStorage.saveItem(\"s-sidebar:expand\" , true)\n }\n \n }\n\n ngOnInit(): void {\n this.loadDataFromLocalStorage();\n this.checkScreenSize();\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.expand = true;\n this.refreshExpand()\n }\n\n actionCollapseMenu(): void {\n this.expand = false;\n this.refreshExpand()\n }\n\n restartSelectedItems(): void {\n this.menu.forEach((itemToReset: SMenuItem) => {\n itemToReset.expanded = false;\n })\n }\n \n toogleMenu(): void {\n this.expand = !this.expand\n this.onClickEventMenu(this.expand)\n this.refreshExpand()\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 loadDataFromLocalStorage(): void {\n if(!this.localStorage.getItem(\"s-sidebar:expand\")){\n this.expand = this.localStorage.getItem(\"s-sidebar:expand\");\n this.restartSelectedItems();\n }else{\n this.localStorage.saveItem(\"s-sidebar:expand\" , this.expand)\n }\n }\n\n refreshExpand(): void {\n this.localStorage.saveItem(\"s-sidebar:expand\" , this.expand) \n }\n\n isSIcon(icon: string | SIcon): icon is SIcon {\n return typeof icon !== 'string';\n }\n\n getClassItem(item: SMenuItem): string {\n\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}\n\n","<div class=\"s-sidebar\" [ngClass]=\"[\n theme ? 's-sidebar--theme-' + theme : '',\n expand ? 's-sidebar--open' : 's-sidebar--close']\">\n\n <div *ngIf=\"images\" class=\"s-sidebar__top\" [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 class=\"s-sidebar__menu__line-separate__dot cursor\" title=\"{{item.separateText ? item.separateText : ''}}\" (click)=\"toogleMenu()\">...</div>\n </div>\n <!-- Cuando NO tiene hijos esta visible y no es separate -->\n <li class=\"s-sidebar__menu__item\" *ngIf=\"!item.hidden && !item.separate && !item.children\" title=\"{{item.title}}\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item , tabindex: true }\"></ng-template>\n </li>\n <!-- Cuando SI tiene hijos esta visible y no es separate -->\n <!-- Padre -->\n <li class=\"s-sidebar__menu__item {{item.expanded ? 's-sidebar__menu__item--open' : 's-sidebar__menu__item--close'}}\" *ngIf=\"!item.hidden && !item.separate && item.children\" title=\"{{item.title}}\" (click)=\"clickParent(item)\" (keydown.enter)=\"clickParent(item)\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item , tabindex: true }\"></ng-template>\n </li>\n <!-- Hijos -->\n <ul *ngIf=\"item.children && !item.hidden && !item.separate\" class=\"s-sidebar__menu {{item.expanded ? 's-sidebar__menu--open' : 's-sidebar__menu--close'}}\">\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <li *ngIf=\"!itemChildren.hidden\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: itemChildren, tabindex: item.expanded ? true : false}\"></ng-template>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </ul>\n</div>\n\n<div tabindex=\"0\" class=\"no-select button-menu {{expand ? 'button-menu--open' : 'button-menu--close'}}\" (keydown.enter)=\"toogleMenu()\" (click)=\"toogleMenu()\">\n <s-icon-mat size=\"20\">chevron_right</s-icon-mat>\n</div>\n\n<ng-template #itemTemplate let-item let-tabindex=\"tabindex\">\n <a [tabindex]=\"tabindex ? 0 : -1\" [ngClass]=\"[getClassItem(item) , getClassChildren(item) , getClassActive(item)]\" (click)=\"item.action ? item.action() : null ; clickItem(item)\" [routerLink]=\"item.link ? item.link : undefined\" routerLinkActive=\"active\" 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 *ngIf=\"item.badge\" [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <s-icon-mat size=\"17\" *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 : '20'\"\n class=\"icon-menu\">{{isSIcon(icon) && icon.name ? icon.name : icon}}\n </s-icon-mat>\n <s-icon-mat \n *ngIf=\"!icon\" \n type=\"symbol\"\n size=\"20\"\n class=\"icon-menu icon-menu-default\">fiber_manual_record\n </s-icon-mat>\n</ng-template>\n\n<ng-template #badgeTemplate let-item>\n <s-badge class=\"badge-padding\"\n type=\"{{item.badgeType ? item.badgeType : 'secondary'}}\">\n {{item.badge}}\n </s-badge>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSidebarComponent } from './s-sidebar.component';\nimport { SIconModule } from '../icon/s-icon.module';\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: [\n SSidebarComponent,\n SMenuItemTitleComponent\n ],\n imports: [\n CommonModule,\n SIconModule,\n RouterModule,\n SIconMaterialModule,\n SBadgeModule,\n ],\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 subscriptionRefresh: Subscription;\n animated: boolean = false;\n\n constructor(public localStorage: LocalstorageService) {\n this.subscriptionRefresh = this.localStorage.refreshLocalStorage.subscribe(\n () => {\n this.loadDataFromLocalStorage();\n }\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 [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, OnInit, 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\n})\nexport class SPrecodeComponent implements OnInit {\n\n @Input() copy?: string = \"Copiar Código\";\n @Input() copySucces?: string = \"Texto copiado\";\n @Input() expand: boolean = false;\n @Input() copyId?: string;\n\n constructor() { }\n\n ngOnInit(): void { }\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\">\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>","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})\n\nexport class SBreadcrumComponent {\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}","<div class=\"s-breadcrum mb-3 s-scroll\">\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 routerLink=\"{{nv.routerLink? nv.routerLink : undefined}}\" [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\">keyboard_arrow_right</s-icon-mat>\n </div>\n</div>","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})\n\nexport class SListComponent {\n @Input() disabled:boolean = false\n @Input() selected:boolean = false\n @Input() size: 'md' | 'sm' | 'xs' = 'md'\n}"," <div tabindex=\"0\" class=\"s-list s-scroll \n {{disabled ? 's-list--disabled' : ''}} {{selected ? 's-list--selected' : ''}} \">\n <div class=\"s-list__content\">\n <div class=\"s-list__content__drag s-list__content__drag--no-select s-list__content__drag--cursor s-list__content__drag--{{size}}\" >\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})\n\nexport class SListSimpleComponent {\n @Input() listStyle: 'check' | 'chevron' | 'dot' | 'a1' | 'folder' | 'default' = 'default'\n}","<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>","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})\n\nexport class SProgressbarComponent extends TemperatureComponent implements OnInit {\n\n @Input() override percentage: number = 50;\n @Input() customColor: string = '';\n\n override color: string = '';\n \n ngOnInit(): void {\n this.initColor()\n }\n}","<div class=\"s-progressbar\">\n <div class=\"s-progressbar__bar\">\n <div class=\"s-progressbar__bar--background\"></div>\n <div class=\"s-progressbar__bar--progresso\"\n [style.width.%]=\"percentage\"\n [ngClass]=\"color\"\n [style.background]=\"customColor\"\n id=\"bar\"\n ></div>\n </div>\n <div class=\"s-progressbar__percentage\">\n <h6 *ngIf=\"percentage < 100\">{{percentage}}%</h6>\n <s-icon-mat *ngIf=\"percentage > 99\" class=\"icon-check\">done</s-icon-mat>\n </div>\n</div>","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, Input } from '@angular/core';\n\n\n@Component({\n selector: 's-timeline',\n templateUrl: './s-timeline.component.html',\n styleUrls: ['./s-timeline.component.scss']\n})\n\nexport class STimelineComponent {\n \n @Input() title!: string;\n @Input() description?: string;\n @Input() paragraph?: string;\n @Input() position?: string;\n @Input() isLast: boolean = false;\n @Input() icon?: string;\n @Input() theme?: \"primary\" | \"green\" | \"yellow\" | \"red\" = \"primary\";\n\n\n}","<div class=\"s-timeline\">\n <div class=\"s-timeline__circle\" [class.no-after]=\"isLast\">\n <div *ngIf=\"position || icon\" class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{theme}}\">\n <ng-container *ngIf=\"position; else iconContent\">{{ position }}</ng-container>\n <ng-template #iconContent>\n <s-icon-mat class=\"s-timeline__circle__steps\">{{ icon }}</s-icon-mat>\n </ng-template>\n </div>\n </div>\n <div class=\"s-timeline__content\">\n <div class=\"s-timeline__content__title\">\n {{title}}\n </div>\n <div *ngIf=\"description\" class=\"s-timeline__content__description\">\n {{description}}\n </div>\n <div *ngIf=\"paragraph\" class=\"s-timeline__content__paragraph\">\n {{paragraph}}\n </div>\n <ng-content>\n \n </ng-content>\n </div>\n</div>","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","export class STimelineItem {\n title!: string;\n description?:string;\n position?:number;\n isLast?:boolean;\n icon?:string;\n theme?: \"primary\" | \"green\" | \"yellow\" | \"red\";\n paragraph?:string;\n }","import { Injectable } from '@angular/core';\n\nexport interface Toast {\n id: number;\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(\n title: string,\n content: string,\n theme: 'default' | 'red' | 'yellow' | 'green' = 'default'\n ) {\n const toast: Toast = {\n id: Date.now() + Math.floor(Math.random() * 1000),\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: number) {\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-{{\n toast.theme\n }} animated s-toast__animation-bounceInDown\">\n <div class=\"s-toast-box\">\n <div class=\"s-toast-box-left\">\n <s-icon-mat class=\"d-flex toast-icon\">{{\n toast.iconTheme\n }}</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 } 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 {\n\n @Input() treeNodes: TreeNode[] = []; // Lista de valores que va a nutrir el árbol\n @Input() hideAll: boolean = false; // Ocultar todos los checkboxes\n \n public selectedTreeNode: TreeNode | null | undefined;\n public selection: any[] = [];\n public selectedNode?: TreeNode;\n public checkNodes: any[] = [];\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\n toggleNode(node: TreeNode): void {\n node.expanded = !node.expanded;\n }\n\n selectNode(node: TreeNode): void {\n this.selectedNode = node;\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}\n","<ng-template #treeNodeTemplate let-node>\n\n <div class=\"s-tree-list\" (click)=\"selectNode(node)\" [ngClass]=\"node === selectedNode ? 's-tree-list__selected-node' : ''\">\n <span class=\"s-tree-list__toggle-icon\" *ngIf=\"node.children && node.children.length\" tabindex=\"0\" (keydown.enter)=\"toggleNode(node)\" (click)=\"toggleNode(node)\">\n <s-icon-mat class=\"s-tree-list__icon-arrow\">{{node.expanded? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</s-icon-mat>\n </span>\n\n <div class=\"s-tree-list__content\">\n <s-checkbox-old *ngIf=\"!node.hide && !node.hideRoot && !node.hideAll && !hideAll\" [model]=\"node.checked\" [value]=\"node\" \n [isUndefined]=\"node.isUndefined\" (emitSelection)=\"checkNode($event)\" [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 <ng-container [ngTemplateOutlet]=\"treeNodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\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\n\n\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 {\n Component,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n ViewEncapsulation,\n} 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 @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 }\">\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 }}\n {{ totalItems }} {{ items }}\n </p>\n <p\n class=\"s-body-2 s-pagination__items--text\"\n *ngIf=\"totalItems <= pageSize && totalItems !== 0\">\n {{ showing }} {{ totalItems }} {{ items }}\n </p>\n <p\n class=\"s-body-2 s-pagination__items--text disabled\"\n *ngIf=\"totalItems === 0\">\n {{ empty }}\n </p>\n </div>\n <div class=\"s-pagination__pages-content\" *ngIf=\"!disabled\">\n <s-icon-mat\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 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>{{ pageNumber }}</label>\n </s-button>\n <p\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=\"\n totalPages !== nextPage + 1 &&\n pageNumber !== totalPages &&\n totalPages > 2\n \"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n tabindex=\"0\"\n *ngIf=\"\n totalPages !== nextPage && pageNumber !== totalPages && totalItems !== 0\n \"\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 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 OnInit,\n Output,\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 {\n @Input() tabs?: ITab[];\n @Input() configTabs?: IConfigTabs;\n @Output() eventSelect = new EventEmitter<ITab>();\n\n public tabsConfig?: ITab[];\n\n constructor() {}\n\n ngOnInit(): void {\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 *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\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 [type]=\"tab.iconSymbol ? 'symbol' : 'icon'\"\n >{{ tab.icon }}</s-icon-mat\n >\n <span *ngIf=\"tab.text\" class=\"s-tabs__text\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\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})\n\nexport class SCollapseComponent {\n\n @Input() title!: string;\n @Input() subtitle: string = '';\n @Input() expand: boolean = false;\n\n @Output() arrowClick = new EventEmitter<boolean>();\n \n\n}","<div class=\"s-collapse\">\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 class=\"s-collapse__header__arrow__content no-select\" [ngClass]=\"expand ? 'open' : 'close'\" tabindex=\"0\" (keydown.enter)=\"arrowClick.emit(!expand)\" (click)=\"arrowClick.emit(!expand)\">\n <s-icon-mat size=\"16\" 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 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 select?: SSelect;\n multiSelect?: SMultiSelect;\n pillButton?: string; //Icono del btn de pill, sino no se muestra\n title?: 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\n searchValue: string = '';\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._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\n .filter(item => item.value === true)\n .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","<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\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 (click)=\"action()\"\n (keydown.enter)=\"action()\">\n <s-icon-mat>add_circle</s-icon-mat>\n {{ config.actionButton }}\n </s-button>\n <div *ngIf=\"this.config.multiActionButton\">\n <s-button\n class=\"s-toolbar-top__multiAction s-toolbar-top__button\"\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\n *ngIf=\"config.deleteButton\"\n 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 (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 *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 [(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 (selectedEvent)=\"multiSelect($event)\">\n </s-select-multiple>\n </div>\n <div *ngIf=\"config.filterButton && config.filters\">\n <s-button\n class=\"s-toolbar-top__button\"\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 [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 { SCardModule } from '../card/s-card.module';\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 SCardModule,\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 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\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.config.image) {\n this.image = this.domSanitizer.bypassSecurityTrustResourceUrl(\n this.config.image\n );\n }\n }\n\n action() {\n this.buttonEvent.emit();\n }\n}\n","<section class=\"s-empty\">\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\">{{\r\n config.detailBold\r\n }}</span>\r\n </p>\r\n <div\r\n *ngIf=\"config.button && config.size !== 'sm'\"\r\n class=\"s-empty__content--button\">\r\n <s-button position=\"normal\" (click)=\"action()\" (keydown.enter)=\"action()\">\r\n <s-icon-mat *ngIf=\"config.buttonIcon\">{{\r\n config.buttonIcon\r\n }}</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 {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\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';\n\nexport interface STableComplete {\n columns: ConfigColumn[];\n pageNumber?: number;\n totalItems?: number;\n configToolbarTop?: SToolbarTop;\n emptyConfig?: SEmpty;\n hidePagination?: boolean;\n pageSize?: number;\n pageSizes?: IPageSizes[];\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\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n this.filtersDisabled();\n }\n }\n\n ngOnInit(): void {\n this.filtersDisabled();\n }\n\n filtersDisabled() {\n if (this.config.configToolbarTop) {\n this.config.configToolbarTop = {\n ...this.config.configToolbarTop,\n filtersDisabled: this.config.totalItems === 0,\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.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","<section class=\"s-table-complete\">\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 (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n <s-empty\n *ngIf=\"config.emptyConfig\"\n [config]=\"config.emptyConfig\"\n (buttonEvent)=\"buttonEmpty()\"></s-empty>\n </ng-template>\n </s-tablet>\n </div>\n <div class=\"s-table-complete__pagination\">\n <section\n *ngIf=\"\n !config.hidePagination\n \">\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\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 [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</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';\n\n@NgModule({\n declarations: [TableCompleteComponent],\n imports: [\n CommonModule,\n SToolbarTopModule,\n SEmptyModule,\n STabletModule,\n SPaginationModule,\n ],\n exports: [TableCompleteComponent],\n})\nexport class STableCompleteModule {}\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 { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ModalConfirmConfig } from '../models/modal-confirm.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalComfirmService {\n private readonly modalConfigSource = new BehaviorSubject<ModalConfirmConfig>({\n title: '',\n message: '',\n confirmText: '',\n cancelText: '',\n isVisible: false,\n type: 'info',\n });\n\n modalConfig$ = this.modalConfigSource.asObservable();\n\n private readonly modalResponseSource = new Subject<boolean>();\n modalResponse$ = this.modalResponseSource.asObservable();\n\n open(config: ModalConfirmConfig) {\n this.modalConfigSource.next({ ...config, isVisible: true });\n }\n\n close(response: boolean): void {\n this.modalConfigSource.next({\n ...this.modalConfigSource.value,\n isVisible: false,\n });\n this.modalResponseSource.next(response);\n }\n}\n","import { Component } from '@angular/core';\nimport { ModalComfirmService } from './services/modal-confirm.service';\nimport { ModalTypeIcon } from './models/modalType';\nimport { ModalConfirmConfig } from './models/modal-confirm.interface';\n\nexport type ModalType = 'alert' | 'error' | 'info';\n\n@Component({\n selector: 's-modal-confirm.',\n templateUrl: './modal-confirm.component.html',\n styleUrls: ['./modal-confirm.component.scss'],\n})\nexport class ModalConfirmComponent {\n config!: ModalConfirmConfig;\n modalTypeIcon = ModalTypeIcon;\n\n constructor(private modalComfirmService: ModalComfirmService) {\n this.modalComfirmService.modalConfig$.subscribe(config => {\n this.config = config;\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(result: boolean) {\n this.modalComfirmService.close(result);\n }\n}\n","<div\n *ngIf=\"config.isVisible\"\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section class=\"s-modal-confirm__header\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n </section>\n <p class=\"s-modal-confirm__message\">{{ config.message }}</p>\n <section class=\"s-modal-confirm__buttons\">\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\">\n {{ config.cancelText }}\n </s-button>\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true)\"\n (keydown.enter)=\"close(true)\">\n {{ config.confirmText }}\n </s-button>\n </section>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalConfirmComponent } from './modal-confirm/modal-confirm.component';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [ModalConfirmComponent],\n imports: [CommonModule, SButtonModule, SIconMaterialModule],\n exports: [ModalConfirmComponent],\n})\nexport class SModalModule {}\n","export enum ANIMATION {\n BUO = 'https://lottie.host/6f4ee854-3625-4849-8985-e423a0752949/hZWZsrb0zk.json', //TODO: ejemplo remover al agregar nuevas animaciones\n SUITE = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/e-Flow_Suite_Loader.json',\n}\n\nexport const ANIMATION_CONFIG: Record<\n ANIMATION,\n {\n loop: boolean;\n autoplay: boolean;\n hover: boolean;\n segments?: [number, number];\n }\n> = {\n [ANIMATION.BUO]: { loop: true, autoplay: false, hover: true },\n [ANIMATION.SUITE]: {\n loop: false,\n autoplay: true,\n hover: false,\n segments: [42, 98],\n },\n};\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimationItem } from 'lottie-web';\nimport lottie from 'lottie-web';\nimport { ANIMATION, ANIMATION_CONFIG } from './emuns/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 @Output() playOnHoverEvent = new EventEmitter<void>();\n @Output() pauseOnLeaveEvent = new EventEmitter<void>();\n\n animationItem!: AnimationItem;\n\n ngAfterViewInit() {\n const container = document.getElementById('lottie') as HTMLElement;\n\n const animationConfig = ANIMATION_CONFIG[this.animation];\n\n const animationLottie = lottie.loadAnimation({\n container: container,\n renderer: 'svg',\n loop: animationConfig.loop,\n autoplay: animationConfig.autoplay,\n path: this.animation,\n });\n\n if (animationConfig.segments) {\n animationLottie.addEventListener('complete', () => {\n const [start, end] = 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 = ANIMATION_CONFIG[this.animation].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 = ANIMATION_CONFIG[this.animation].hover;\n if (hover) {\n this.animationItem.pause();\n this.pauseOnLeaveEvent.emit();\n }\n }\n}\n","<div\n class=\"s-animation\"\n id=\"lottie\"\n (mouseenter)=\"playOnHover()\"\n (mouseleave)=\"pauseOnLeave()\">\n</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 } 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}\n","<div class=\"s-container s-container--background-{{ background }}\">\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","/**\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","i3.SButtonComponent","i4.SInputTextComponent","i5.SErrorControl","i2.SErrorControl","i4.SErrorControl","i5.SValidationError","i3.SErrorControl","i4.SValidationError","i6.SValidationError","i1.SelectNavigationService","i4.SInputComponent","i5.SSelectSimpleComponent","i6.SSpinnerComponent","i5.SCheckboxComponent","i6","i7.SErrorControl","i8.SInputComponent","i9.SValidationError","i5","i6.SErrorControl","i7.SValidationError","i5.SCheckboxOldComponent","i6.SCheckboxComponent","i7","i3.SInputTextComponent","i5.SButtonComponent","i6.SIconMaterialComponent","i7.SCheckboxOldComponent","i8.SSelectSimpleComponent","i4.STagComponent","i6.SSubMenuComponent","i3.SCheckboxComponent","i4","i3.STooltipComponent","i4.CustomTooltipDirective","i1.LocalstorageService","i4.SIconMaterialComponent","i5.SBadgeComponent","i6.SMenuItemTitleComponent","i1.SIconMaterialComponent","i1.SToastService","i2.SCheckboxOldComponent","i2.SButtonComponent","i4.SSelectComponent","i1.ImageLoaderDirective","i3.SBadgeComponent","i3.SInputComponent","i5.SIconMaterialComponent","i7.SSelectMultipleComponent","i8.SSelectComponent","i2.SToolbarTopComponent","i3.EmptyComponent","i4.STabletComponent","i4.STemplate","i5.SPaginationComponent","i1.ModalComfirmService","i5.GridMultiInputsToolbarTopComponent"],"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/s-icons.ts","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.component.ts","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.component.html","../../../projects/sidesys-generic-ui/src/lib/icon/s-icon.module.ts","../../../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/login/s-login-event.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-images.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-text/s-input-text.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/input-text/s-input-text.component.html","../../../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/login/s-login.component.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login.component.html","../../../projects/sidesys-generic-ui/src/lib/enums/theme.enum.ts","../../../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/input/components/input/s-input-model.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/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/range/s-range.component.ts","../../../projects/sidesys-generic-ui/src/lib/input/components/range/s-range.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/login/s-login.module.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-model.ts","../../../projects/sidesys-generic-ui/src/lib/login/s-login-errors-model.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/drop-down/s-drop-down.component.ts","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down.component.html","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down.module.ts","../../../projects/sidesys-generic-ui/src/lib/drop-down/s-drop-down-button.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/dynamic-form/models/configFields/s-input-config.ts","../../../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/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/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/form/s-form.component.ts","../../../projects/sidesys-generic-ui/src/lib/form/s-form.component.html","../../../projects/sidesys-generic-ui/src/lib/form/s-form.module.ts","../../../projects/sidesys-generic-ui/src/lib/form/s-form-control.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/shared/localstorage.service.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/timeline/s-timeline.model.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/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/models/modalType.ts","../../../projects/sidesys-generic-ui/src/lib/modal/modal-confirm/services/modal-confirm.service.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/modal/modal.module.ts","../../../projects/sidesys-generic-ui/src/lib/animation/emuns/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/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/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})\n\nexport class SCompanyLogoComponent implements OnInit , OnChanges {\n\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' , 'height': this.height+'px'\n }\n }\n\n}","\n<div *ngIf=\"!customImage\" class=\"s-company-logo\" [ngStyle]=\"_style\"></div>\n<img *ngIf=\"customImage\" alt=\"\" src=\"{{customImage}}\" [ngStyle]=\"_style\"/>","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} 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'];\n @Input() fill: SIcon['fill'] = false;\n @Input() weight: SIcon['weight'] = 400;\n @Input() grade: SIcon['grade'] = 0;\n @Input() opticalSize: SIcon['opticalSize'] = 48;\n @Input() style?: SIcon['style'] = '';\n @Input() type: SIcon['type'] = '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}, \"opsz\" ${this.opticalSize}`;\n break;\n case 'icon':\n this.optionsType = 'material-icons';\n break;\n }\n }\n}\n","<div #icon class=\"s-icon-mat\">\n <span [ngClass]=\"optionsType\" [ngStyle]=\"computedStyles\">\n <ng-content *ngIf=\"!name\"></ng-content>\n <ng-container *ngIf=\"name\">{{name}}</ng-container>\n </span>\n</div>","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})\n\nexport class SAvatarComponent implements OnInit {\n\n\n @Input() urlProfileImage?: string ;\n @Input() letters?: string = 'NN';\n @Input()\n get status(): string { return this._status}\n set status(val: any | undefined){\n this._status = ['approved' , 'declined' , 'blocked' , 'online' , 'offline' , 'busy'].indexOf(val) != -1 ? val : undefined;\n };\n @Input()\n get display(): string { return this._display; }\n set display(val: string | undefined){\n this._display = val ? ['icon', 'avatar', 'letters' ].indexOf(val) != -1 ? val : 'icon' : 'icon';\n };\n @Input() \n get size(): string { return this._size; }\n set size(val: string){\n this._size = ['128', '96', '48' , '32' , '24' , '16'].indexOf(val) != -1 ? val : '128';\n };\n \n _display: string = 'icon';\n _size: string = '128';\n _status: any = undefined;\n\n constructor(){}\n\n ngOnInit(): void {\n if(this.letters)\n this.letters = this.letters.substring(0, 2);\n \n }\n}","<div class=\"s-avatar no-select s-avatar--size-{{size}}\">\n <ng-container [ngSwitch]=\"status\">\n\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\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>","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})\n\nexport class SCheckboxOldComponent implements ControlValueAccessor {\n\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 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 />\n <label *ngIf=\"label\"\n [ngClass]=\"!isUndefined && !model && disabled ? 'disabled': ''\"\n class=\"s-checkbox__label s-body-2\">{{label}}</label>\n</div>","import {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} 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})\n\nexport class SRadioComponent implements ControlValueAccessor {\n \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 = \"id-\" + Math.random();\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 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}","<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 />\n <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]=\"config.id\"\n [value]=\"config.value\"\n [name]=\"config.name ?? ''\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"doCheck($event)\"\n tabindex=\"0\"\n />\n <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})\n\nexport class SProfileGroupComponent implements OnInit {\n\n @Input() size: string = 'm'; //s , m , l , xl\n @Input() user!: SUser | undefined\n _size: string = 'm'\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 = \"24\"\n break;\n case \"m\":\n this._size = \"32\"\n break;\n case \"l\":\n this._size = \"48\"\n break;\n case \"xl\":\n this._size = \"96\"\n break;\n default:\n this._size = \"32\"\n break;\n }\n \n \n }\n}","<div class=\"s-profile-group\">\n <div class=\"s-profile-group__content-right\">\n <s-avatar letters=\"{{user?.letters}}\" display=\"{{user?.display}}\" [size]=\"_size\" [urlProfileImage]=\"user?.url\" [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}}\">{{user?.email}}</span>\n </div>\n</div>","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 *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 *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 *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 *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\n @Input() disabled: boolean = false;\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\n //Pasa a secondary cuando se invierte\n if(this.invert){\n this.type = 'secondary'\n }\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}\n","<button 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[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})\n\nexport class STooltipComponent {\n \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 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\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateY(\"+heightParent+\"px)\" , \"position\": \"fixed\"}\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateX(-100%)\" , \"position\": \"fixed\" , \"margin-right\": \"10px\"}\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 = {\"translate\": +x+\"px \"+y+\"px\" , \"transform\": \"translateX(\"+widthParent+\"px)\" , \"position\": \"fixed\"}\n break;\n \n default:\n \n break;\n }\n }\n}"," <div #stooltip [ngStyle]=\"stylePosition\" class=\"s-tooltip s-tooltip--theme-{{theme}} s-tooltip--position-{{position}} s-tooltip--display-{{showTooltip}}\">\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, OnInit, 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})\n\nexport class SBadgeComponent implements OnInit {\n @Input() type: 'primary' | 'secondary' | 'green' | 'yellow' | 'red' | string = 'primary';\n @Input() size: 'xs' | 'sm' = 'sm';\n @Input() new: boolean = false;\n\n constructor(){}\n\n ngOnInit(): void {\n }\n}","<span class=\"s-badge s-badge--{{type}} {{size ? 's-badge--size-'+size : ''}}\">\n <s-icon-mat *ngIf=\"new\">lens</s-icon-mat>\n <ng-content></ng-content>\n</span>","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\n})\n\nexport class STagComponent {\n\n @Input() type: 'primary' | 'secondary' | 'red' | 'yellow' | 'green' = 'primary';\n @Input() size: 'xs' |'sm' | 'md' = 'sm';\n @Input() disabled: boolean = false;\n\n}","<span class=\"s-tag {{type}} {{size}} {{disabled ? 'disabled' : ''}}\">\n <ng-content></ng-content>\n</span>","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, 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\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 {\n\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\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 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}\n","<nav class=\"s-navbar\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <div class=\"s-navbar__content-left\">\n <ng-container *ngIf=\"link\">\n <a [href]=\"linkHref\">\n <s-company-logo [height]=\"height\" [width]=\"width\" [customImage]=\"customImage\" class=\"s-navbar__company-box\"></s-company-logo>\n </a>\n </ng-container>\n <ng-container *ngIf=\"!link\">\n <s-company-logo [height]=\"height\" [width]=\"width\" [customImage]=\"customImage\" class=\"s-navbar__company-box\"></s-company-logo>\n </ng-container>\n \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 (clickTitle)=\"_clickTitle($event)\" (clickDelete)=\"_clickDelete($event)\" (clickUnread)=\"_clickUnread($event)\" [iconMenu]=\"iconMenu\"></s-icon-menu>\n </div>\n <div class=\"s-navbar__content-user\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <s-profile-group tabindex=\"0\" class=\"cursor\" *ngIf=\"user && userFull\" [user]=\"user\" (keydown.enter)=\"toogleMenuProfile($event)\" (click)=\"toogleMenuProfile($event)\"></s-profile-group>\n <s-avatar class=\"cursor\"\n *ngIf=\"user && !userFull\" \n urlProfileImage=\"{{user.url}}\" \n letters=\"{{user.letters}}\"\n display=\"{{user.display}}\" \n size=\"32\" 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 [menu]=\"menuProfile\" (click)=\"clickMenuProfile($event)\" (closeMenuEvent)=\"closeMenuProfile($event)\"></s-sub-menu>\n </div>\n </div>\n </div>\n</nav>\n","/**\n * Libreria de Iconos en Sidesys\n * Solo debe ingresarse el contenido del SVG. \n */\n\nexport const IconsList = [\n {\n name: 'home-outline',\n SVG: '<g vector-effect=\"none\"><path d=\"M20.42 10.18L12.71 2.3a1 1 0 0 0-1.42 0l-7.71 7.89A2 2 0 0 0 3 11.62V20a2 2 0 0 0 1.89 2h14.22A2 2 0 0 0 21 20v-8.38a2.07 2.07 0 0 0-.58-1.44zM10 20v-6h4v6zm9 0h-3v-7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v7H5v-8.42l7-7.15 7 7.19z\"/></g>',\n },\n {\n name: 'list-outline',\n SVG: '<rect transform=\"rotate(180 12 12)\" opacity=\"0\"/><circle cx=\"4\" cy=\"7\" r=\"1\"/><circle cx=\"4\" cy=\"12\" r=\"1\"/><circle cx=\"4\" cy=\"17\" r=\"1\"/><rect x=\"7\" y=\"11\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/><rect x=\"7\" y=\"16\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/><rect x=\"7\" y=\"6\" width=\"14\" height=\"2\" rx=\".94\" ry=\".94\"/>',\n },\n {\n name: 'plus-circle-outline',\n SVG: '<rect opacity=\"0\"/><path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"/><path d=\"M15 11h-2V9a1 1 0 0 0-2 0v2H9a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0-2z\"/></g></g>'\n },\n {\n name: 'arrow-down-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"arrow-ios-downward\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M12 16a1 1 0 0 1-.64-.23l-6-5a1 1 0 1 1 1.28-1.54L12 13.71l5.36-4.32a1 1 0 0 1 1.41.15 1 1 0 0 1-.14 1.46l-6 4.83A1 1 0 0 1 12 16z\"/></g></g>'\n },\n {\n name: 'people-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"people\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M9 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0-6a2 2 0 1 1-2 2 2 2 0 0 1 2-2z\"/><path d=\"M17 13a3 3 0 1 0-3-3 3 3 0 0 0 3 3zm0-4a1 1 0 1 1-1 1 1 1 0 0 1 1-1z\"/><path d=\"M17 14a5 5 0 0 0-3.06 1.05A7 7 0 0 0 2 20a1 1 0 0 0 2 0 5 5 0 0 1 10 0 1 1 0 0 0 2 0 6.9 6.9 0 0 0-.86-3.35A3 3 0 0 1 20 19a1 1 0 0 0 2 0 5 5 0 0 0-5-5z\"/></g></g>'\n },\n {\n name: 'archive-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"archive\"><rect width=\"24\" height=\"24\" transform=\"rotate(90 12 12)\" opacity=\"0\"/><path d=\"M21 6a3 3 0 0 0-3-3H6a3 3 0 0 0-2 5.22V18a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V8.22A3 3 0 0 0 21 6zM6 5h12a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2zm12 13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V9h12z\"/><rect x=\"9\" y=\"12\" width=\"6\" height=\"2\" rx=\".87\" ry=\".87\"/></g></g>'\n },\n {\n name: 'person-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"person\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M12 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0-6a2 2 0 1 1-2 2 2 2 0 0 1 2-2z\"/><path d=\"M12 13a7 7 0 0 0-7 7 1 1 0 0 0 2 0 5 5 0 0 1 10 0 1 1 0 0 0 2 0 7 7 0 0 0-7-7z\"/></g></g>'\n },\n {\n name: 'briefcase-outline',\n SVG: '<g data-name=\"Layer 2\"><g data-name=\"briefcase\"><rect width=\"24\" height=\"24\" opacity=\"0\"/><path d=\"M19 7h-3V5.5A2.5 2.5 0 0 0 13.5 3h-3A2.5 2.5 0 0 0 8 5.5V7H5a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-8a3 3 0 0 0-3-3zm-4 2v10H9V9zm-5-3.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V7h-4zM4 18v-8a1 1 0 0 1 1-1h2v10H5a1 1 0 0 1-1-1zm16 0a1 1 0 0 1-1 1h-2V9h2a1 1 0 0 1 1 1z\"/></g></g>'\n },\n {\n name: 'plus-circle',\n SVG: '<path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"/><path d=\"M15 11h-2V9a1 1 0 0 0-2 0v2H9a1 1 0 0 0 0 2h2v2a1 1 0 0 0 2 0v-2h2a1 1 0 0 0 0-2z\"/>'\n },\n {\n name: 'plus-outline',\n SVG: '<path d=\"M19 11h-6V5a1 1 0 0 0-2 0v6H5a1 1 0 0 0 0 2h6v6a1 1 0 0 0 2 0v-6h6a1 1 0 0 0 0-2z\"/>'\n },\n {\n name: 'line-height',\n SVG: '<rect x=\"20.5\" y=\"0.761719\" width=\"1\" height=\"20\" transform=\"rotate(90 20.5 0.761719)\" fill=\"#898D94\"/><path d=\"M12.2539 12.5352L10.5117 7.46484L8.66016 12.5352H12.2539ZM9.69922 5.76172H11.457L15.6211 17.2383H13.918L12.7539 13.8008H8.21484L6.97266 17.2383H5.37891L9.69922 5.76172Z\" fill=\"#898D94\"/><rect x=\"20.5\" y=\"21.2383\" width=\"1\" height=\"20\" transform=\"rotate(90 20.5 21.2383)\" fill=\"#898D94\"/>',\n },\n {\n name: 'letter-spacing',\n SVG: '<rect x=\"0.878906\" y=\"0.5\" width=\"1\" height=\"20\" fill=\"#898D94\"/><path d=\"M12.7539 11.5352L11.0117 6.46484L9.16016 11.5352H12.7539ZM10.1992 4.76172H11.957L16.1211 16.2383H14.418L13.2539 12.8008H8.71484L7.47266 16.2383H5.87891L10.1992 4.76172Z\" fill=\"#898D94\"/><rect x=\"20.1211\" y=\"0.5\" width=\"1\" height=\"20\" fill=\"#898D94\"/>'\n }\n];\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconsList } from './s-icons';\n\n@Component({\n selector: 's-icon',\n templateUrl: './s-icon.component.html',\n styleUrls: ['./s-icon.component.css']\n})\n\nexport class SIconComponent implements OnInit {\n @Input() icon!: string;\n @Input() width?: any;\n @Input() height?: any;\n @Input() size?: any = '24';\n @Input() fill?: string = '#8f9bb3';\n // @Input() class?: string;\n public code: any ;\n public link: any = '';\n viewBox: string = '0 0 24 24';\n\n constructor(private domSanitizer: DomSanitizer){}\n\n ngOnInit(): void {\n \n this.code = IconsList.find((x: { name: string; }) => x.name === this.icon);\n this.link = this.domSanitizer.bypassSecurityTrustHtml(this.code.SVG);\n\n // this.width = parseInt(this.width)+2;\n // this.height = parseInt(this.height)+2;\n\n // if (!this.width || !this.height) {\n this.width = parseInt(this.size);\n this.height = parseInt(this.size);\n\n // this.viewBox = \"0 0 \"+this.width+\" \" +this.height\n // }\n }\n}","<svg \n [innerHTML]=\"link\" \n attr.fill=\"{{fill}}\" \n attr.width=\"{{width}}px\" \n attr.height=\"{{height}}px\"\n class=\"control-svg\"\n >\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SIconComponent } from './s-icon.component';\n\n\n\n@NgModule({\n declarations: [\n SIconComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [SIconComponent]\n})\nexport class SIconModule { }\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 { SIconModule } from '../../../icon/s-icon.module';\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: [\n SMenuMainComponent,\n ],\n imports: [\n CommonModule,\n SIconModule,\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?: string; //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 opticalSize?: number; //Tamanio 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\n@NgModule({\n declarations: [\n ImageLoaderDirective\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n ImageLoaderDirective,\n ]\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.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 {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} 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> {\n @Input() config!: SCheckbox;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\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\">\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 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,\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 { SIconModule } from '../icon/s-icon.module';\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: [\n SNavbarComponent\n ],\n imports: [\n CommonModule,\n SIconModule,\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","export class SLoginEvent {\n user!: string;\n password!: string;\n}\n","export const Images = {\n left: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCA1NzMgNjg3Ij48ZGVmcz48c3R5bGU+LmR7ZmlsbDojMDA5MWZlO30uZXtmaWxsOiNmZmY7fS5me2lzb2xhdGlvbjppc29sYXRlO30uZ3ttaXgtYmxlbmQtbW9kZTpzb2Z0LWxpZ2h0O30uaHtmaWxsOm5vbmU7fS5pe2NsaXAtcGF0aDp1cmwoI2MpO30uantmaWxsOiNjMmU2ZmY7fTwvc3R5bGU+PGNsaXBQYXRoIGlkPSJjIj48cGF0aCBjbGFzcz0iaCIgZD0iTTQwMy40NSwxODYuNDRjLTM1Ljg0LTI2LjktMTEyLjgsNC43My0xNzUuNDcsMTYuNTYtNjIuNjcsMTEuODMtMTUxLjc1LDc3Ljg2LTkzLjYxLDE4Ni44LDU4LjE0LDEwOC45NCwxMDQuNDIsMTIzLjAxLDIwOC4wNCwxMDMuMDYsMTAzLjYyLTE5Ljk0LDE1MC43Ni0xMDIuNjIsMTE1LjIxLTE1NS0zNS41NC01Mi4zOC0xOS41LTEyNS40MS01NC4xNy0xNTEuNDNaIi8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xhc3M9ImYiPjxnIGlkPSJhIj48cmVjdCBjbGFzcz0iaCIgd2lkdGg9IjU3MyIgaGVpZ2h0PSI2ODciLz48L2c+PGcgaWQ9ImIiPjxnPjxwYXRoIGNsYXNzPSJqIiBkPSJNNDAzLjQ1LDE4Ni40NGMtMzUuODQtMjYuOS0xMTIuOCw0LjczLTE3NS40NywxNi41Ni02Mi42NywxMS44My0xNTEuNzUsNzcuODYtOTMuNjEsMTg2LjgsNTguMTQsMTA4Ljk0LDEwNC40MiwxMjMuMDEsMjA4LjA0LDEwMy4wNiwxMDMuNjItMTkuOTQsMTUwLjc2LTEwMi42MiwxMTUuMjEtMTU1LTM1LjU0LTUyLjM4LTE5LjUtMTI1LjQxLTU0LjE3LTE1MS40M1oiLz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI5MCw0NzguOTljMS45OS0xLjg0LDMuNzgtMy45Nyw1LjMtNi4zNywxLjUyLTIuNCwyLjY3LTQuOTMsMy40OC03LjUybC03LjU1LTIuMzVjLjYzLTIuMDEsLjk4LTQuMDgsMS4wNi02LjE0bDcuOSwuMzJjLjIyLTUuNTYtMS4wMy0xMS4xMS0zLjYxLTE2LjA0bC03LDMuNjhjLS45Ni0xLjgzLTIuMTYtMy41NC0zLjU5LTUuMDlsNS44MS01LjM2Yy0xLjg0LTEuOTktMy45Ny0zLjc4LTYuMzctNS4zLTIuNC0xLjUyLTQuOTMtMi42Ny03LjUyLTMuNDhsLTIuMzUsNy41NWMtMi4wMS0uNjMtNC4wOC0uOTgtNi4xMy0xLjA2bC4zMi03LjkxYy01LjU2LS4yMi0xMS4xMSwxLjAzLTE2LjA0LDMuNjJsMy42OCw3Yy0xLjgzLC45Ni0zLjU0LDIuMTYtNS4wOSwzLjU5bC01LjM3LTUuODFjLTEuOTksMS44NC0zLjc4LDMuOTctNS4zLDYuMzdzLTIuNjcsNC45My0zLjQ4LDcuNTJsNy41NSwyLjM1Yy0uNjMsMi4wMS0uOTgsNC4wOC0xLjA2LDYuMTRsLTcuOS0uMzJjLS4yMiw1LjU2LDEuMDMsMTEuMSwzLjYxLDE2LjA0bDcuMDEtMy42OGMuOTYsMS44MiwyLjE2LDMuNTQsMy41OSw1LjA5bC01LjgxLDUuMzdjMS44NCwxLjk5LDMuOTcsMy43OCw2LjM3LDUuMywyLjQsMS41Miw0LjkzLDIuNjcsNy41MiwzLjQ4bDIuMzUtNy41NWMyLjAxLC42Myw0LjA4LC45OCw2LjEzLDEuMDZsLS4zMiw3LjkxYzUuNTYsLjIyLDExLjExLTEuMDMsMTYuMDQtMy42MmwtMy42OC03YzEuODMtLjk2LDMuNTQtMi4xNiw1LjA5LTMuNTlsNS4zNyw1LjgxWm0tMTQuNjItMTUuODRjLS42NiwuNjEtMS40LDEuMTMtMi4xOCwxLjU0LS43OSwuNDItMS42MywuNzItMi41LC45Mi0uODcsLjItMS43NiwuMjgtMi42NSwuMjQtLjg4LS4wMy0xLjc2LS4xOC0yLjYzLS40NS0uODMtLjI2LTEuNjUtLjYzLTIuNDItMS4xMi0uNzctLjQ5LTEuNDYtMS4wNi0yLjA1LTEuNy0uNjEtLjY2LTEuMTMtMS40LTEuNTQtMi4xOC0uNDItLjc5LS43Mi0xLjYzLS45Mi0yLjUtLjE5LS44Ny0uMjgtMS43Ni0uMjQtMi42NSwuMDMtLjg4LC4xOC0xLjc2LC40NS0yLjYzLC4yNi0uODMsLjYzLTEuNjUsMS4xMi0yLjQyLC40OS0uNzcsMS4wNi0xLjQ2LDEuNy0yLjA1LC42Ni0uNjEsMS40LTEuMTMsMi4xOC0xLjU0LC43OS0uNDIsMS42My0uNzIsMi41LS45MiwuODctLjIsMS43Ni0uMjgsMi42NS0uMjQsLjg4LC4wNCwxLjc2LC4xOCwyLjYzLC40NSwuODMsLjI2LDEuNjUsLjYzLDIuNDIsMS4xMiwuNzcsLjQ5LDEuNDYsMS4wNiwyLjA1LDEuNywuNjEsLjY2LDEuMTMsMS40LDEuNTQsMi4xOCwuNDIsLjc5LC43MiwxLjYzLC45MiwyLjUsLjIsLjg3LC4yOCwxLjc2LC4yNCwyLjY1LS4wMywuODgtLjE4LDEuNzYtLjQ1LDIuNjMtLjI2LC44My0uNjMsMS42NS0xLjEyLDIuNDItLjQ5LC43Ny0xLjA2LDEuNDYtMS43LDIuMDVaIi8+PHBhdGggZD0iTTI2OC40Miw0ODcuOGMtLjQyLDAtLjgzLDAtMS4yNS0uMDJsLS4zOS0uMDIsLjMyLTcuOTFjLTEuODYtLjEtMy43LS40Mi01LjQ3LS45NGwtMi4zNSw3LjU2LS4zNy0uMTJjLTIuNjctLjgzLTUuMjMtMi4wMi03LjYyLTMuNTMtMi4zOC0xLjUxLTQuNTYtMy4zMS02LjQ1LTUuMzdsLS4yNi0uMjksNS44Mi01LjM3Yy0xLjI0LTEuMzgtMi4zMS0yLjkxLTMuMi00LjU0bC03LjAxLDMuNjgtLjE4LS4zNGMtMi42MS00Ljk5LTMuODgtMTAuNjEtMy42Ni0xNi4yM2wuMDItLjM5LDcuOTEsLjMyYy4xLTEuODUsLjQyLTMuNjksLjk0LTUuNDdsLTcuNTYtMi4zNSwuMTItLjM3Yy44My0yLjY3LDIuMDItNS4yMywzLjUzLTcuNjIsMS41MS0yLjM4LDMuMzEtNC41NSw1LjM3LTYuNDVsLjI5LS4yNiw1LjM3LDUuODJjMS4zOC0xLjI0LDIuOTEtMi4zMSw0LjU0LTMuMmwtMy42OC03LjAxLC4zNC0uMThjNC45OS0yLjYxLDEwLjYtMy44OCwxNi4yMy0zLjY2bC4zOSwuMDItLjMyLDcuOTFjMS44NSwuMSwzLjY5LC40Miw1LjQ3LC45NGwyLjM1LTcuNTUsLjM3LC4xMmMyLjY3LC44Myw1LjIzLDIuMDIsNy42MiwzLjUzLDIuMzgsMS41MSw0LjU2LDMuMzEsNi40NSw1LjM3bC4yNiwuMjktNS44MSw1LjM3YzEuMjQsMS4zOSwyLjMxLDIuOTEsMy4yLDQuNTRsNy4wMS0zLjY4LC4xOCwuMzRjMi42MSw0Ljk5LDMuODgsMTAuNiwzLjY2LDE2LjIzbC0uMDIsLjM5LTcuOTEtLjMyYy0uMSwxLjg1LS40MiwzLjY5LS45NCw1LjQ3bDcuNTYsMi4zNS0uMTIsLjM3Yy0uODMsMi42Ny0yLjAyLDUuMjMtMy41Myw3LjYxLTEuNTEsMi4zOC0zLjMxLDQuNTUtNS4zNiw2LjQ1bC0uMjksLjI2LTUuMzctNS44MmMtMS4zOCwxLjI0LTIuOTEsMi4zMS00LjU0LDMuMmwzLjY4LDcuMDEtLjM0LC4xOGMtNC42MiwyLjQyLTkuNzcsMy42OS0xNC45OCwzLjY5Wm0tLjgzLS43OWM1LjIzLC4xNCwxMC40NC0xLjA0LDE1LjExLTMuNDFsLTMuNjgtNywuMzUtLjE4YzEuODItLjk1LDMuNS0yLjE0LDUtMy41M2wuMjktLjI2LDUuMzcsNS44MWMxLjg5LTEuNzksMy41NS0zLjgyLDQuOTUtNi4wMywxLjQtMi4yMiwyLjUyLTQuNTksMy4zMi03LjA2bC03LjU1LTIuMzUsLjEyLS4zN2MuNjEtMS45NiwuOTYtMy45OSwxLjA0LTYuMDN2LS4zOXM3LjkyLC4zMiw3LjkyLC4zMmMuMTQtNS4yMy0xLjAzLTEwLjQ0LTMuNDEtMTUuMTFsLTcsMy42OC0uMTgtLjM0Yy0uOTUtMS44MS0yLjE0LTMuNS0zLjUzLTVsLS4yNi0uMjksNS44MS01LjM2Yy0xLjc5LTEuODktMy44MS0zLjU1LTYuMDMtNC45NS0yLjIyLTEuNC00LjU5LTIuNTItNy4wNi0zLjMybC0yLjM1LDcuNTUtLjM3LS4xMmMtMS45Ni0uNjEtMy45OS0uOTYtNi4wMy0xLjA0aC0uMzlzLjMyLTcuOTIsLjMyLTcuOTJjLTUuMjMtLjE0LTEwLjQ0LDEuMDMtMTUuMTEsMy40MWwzLjY4LDctLjM1LC4xOGMtMS44MiwuOTUtMy41LDIuMTQtNSwzLjUzbC0uMjksLjI2LTUuMzYtNS44MWMtMS44OSwxLjc5LTMuNTUsMy44Mi00Ljk1LDYuMDMtMS40LDIuMjItMi41Miw0LjU5LTMuMzIsNy4wNmw3LjU1LDIuMzUtLjEyLC4zN2MtLjYxLDEuOTYtLjk2LDMuOTktMS4wNCw2LjAzbC0uMDIsLjM5LTcuOS0uMzJjLS4xNCw1LjIzLDEuMDMsMTAuNDQsMy40MSwxNS4xMWw3LTMuNjgsLjE4LC4zNGMuOTUsMS44MiwyLjE0LDMuNSwzLjUzLDVsLjI2LC4yOS01LjgxLDUuMzZjMS43OSwxLjg5LDMuODEsMy41NSw2LjAzLDQuOTUsMi4yMiwxLjQsNC41OSwyLjUyLDcuMDYsMy4zMmwyLjM1LTcuNTUsLjM3LC4xMmMxLjk1LC42MSwzLjk4LC45Niw2LjAzLDEuMDRsLjM5LC4wMi0uMzIsNy45Wm0uODYtMjAuNzZjLS4xNCwwLS4yOCwwLS40MiwwLS45My0uMDQtMS44NC0uMTktMi43My0uNDctLjg4LS4yOC0xLjczLS42Ny0yLjUxLTEuMTYtLjc4LS41LTEuNS0xLjA5LTIuMTMtMS43Ny0uNjItLjY3LTEuMTYtMS40NC0xLjU5LTIuMjYtLjQzLS44Mi0uNzUtMS42OS0uOTUtMi42LS4yLS45MS0uMjktMS44NC0uMjUtMi43NSwuMDQtLjkzLC4xOS0xLjg0LC40Ny0yLjczLC4yNy0uODgsLjY2LTEuNzIsMS4xNi0yLjUxLC41LS43OSwxLjA5LTEuNSwxLjc3LTIuMTMsLjY4LS42MywxLjQ0LTEuMTcsMi4yNi0xLjYsLjgyLS40MywxLjY5LS43NSwyLjYtLjk1LC45LS4yLDEuODMtLjI5LDIuNzYtLjI1LC45MywuMDQsMS44NSwuMiwyLjczLC40NywuODgsLjI3LDEuNzIsLjY3LDIuNTEsMS4xNiwuNzksLjUsMS41LDEuMDksMi4xMywxLjc3LC42MywuNjgsMS4xNiwxLjQ0LDEuNTksMi4yNiwuNDMsLjgyLC43NSwxLjcsLjk1LDIuNiwuMiwuOTEsLjI5LDEuODMsLjI1LDIuNzUtLjA0LC45My0uMTksMS44NS0uNDcsMi43My0uMjcsLjg4LS42NiwxLjcyLTEuMTYsMi41MS0uNSwuNzktMS4wOSwxLjUtMS43NywyLjEzaDBjLS42OCwuNjMtMS40NCwxLjE3LTIuMjYsMS41OS0uODIsLjQzLTEuNjksLjc1LTIuNiwuOTUtLjc3LC4xNy0xLjU1LC4yNi0yLjM0LC4yNlptLjAyLTIwLjQyYy0uNzMsMC0xLjQ2LC4wOC0yLjE3LC4yNC0uODQsLjE5LTEuNjUsLjQ5LTIuNDEsLjg4LS43NiwuNC0xLjQ3LC45LTIuMDksMS40OC0uNjMsLjU4LTEuMTgsMS4yNC0xLjY0LDEuOTctLjQ2LC43My0uODIsMS41MS0xLjA4LDIuMzMtLjI2LC44Mi0uNCwxLjY3LS40NCwyLjUzLS4wMywuODUsLjA0LDEuNzEsLjIzLDIuNTUsLjE5LC44NCwuNDksMS42NSwuODgsMi40MSwuNCwuNzcsLjksMS40NywxLjQ4LDIuMDksLjU4LC42MywxLjI0LDEuMTgsMS45NywxLjY0LC43MywuNDYsMS41MSwuODIsMi4zMywxLjA4LC44MiwuMjUsMS42NywuNCwyLjUzLC40MywuODYsLjAzLDEuNzItLjA0LDIuNTUtLjIzLC44NC0uMTksMS42NS0uNDksMi40MS0uODgsLjc2LS40LDEuNDYtLjg5LDIuMDktMS40OGgwYy42My0uNTgsMS4xOC0xLjI0LDEuNjQtMS45NywuNDYtLjczLC44Mi0xLjUxLDEuMDgtMi4zMywuMjYtLjgyLC40LTEuNjcsLjQ0LTIuNTMsLjAzLS44Ni0uMDQtMS43MS0uMjMtMi41NS0uMTktLjg0LS40OS0xLjY1LS44OC0yLjQxLS40LS43Ni0uOS0xLjQ3LTEuNDgtMi4wOS0uNTgtLjYzLTEuMjQtMS4xOC0xLjk3LTEuNjQtLjczLS40Ni0xLjUxLS44Mi0yLjMzLTEuMDgtLjgyLS4yNS0xLjY3LS40LTIuNTMtLjQ0LS4xMywwLS4yNiwwLS4zOCwwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTMzNS43Myw0OTkuNTZjMS4wNC0xLjcsMS44Ny0zLjU2LDIuNDYtNS41NywuNTktMiwuOS00LjAyLC45NS02LjAxbC01LjgxLS4xNGMuMDQtMS41NS0uMTMtMy4wNy0uNDktNC41NGw1LjY0LTEuMzdjLS45Ni0zLjk3LTIuOTYtNy42My01Ljc3LTEwLjU5bC00LjIxLDRjLTEuMDQtMS4xLTIuMjMtMi4wNy0zLjU1LTIuODdsMy4wMi00Ljk1Yy0xLjctMS4wNC0zLjU2LTEuODctNS41Ni0yLjQ2LTItLjU5LTQuMDItLjktNi4wMS0uOTVsLS4xNCw1LjhjLTEuNTUtLjA0LTMuMDcsLjEzLTQuNTQsLjQ5bC0xLjM2LTUuNjRjLTMuOTcsLjk2LTcuNjMsMi45Ni0xMC41OSw1Ljc4bDQsNC4yYy0xLjEsMS4wNC0yLjA3LDIuMjMtMi44NywzLjU2bC00Ljk2LTMuMDNjLTEuMDQsMS43LTEuODcsMy41Ni0yLjQ2LDUuNTdzLS45LDQuMDItLjk1LDYuMDFsNS44MSwuMTRjLS4wNCwxLjU1LC4xMywzLjA3LC40OSw0LjU0bC01LjY0LDEuMzdjLjk2LDMuOTcsMi45Niw3LjYzLDUuNzcsMTAuNTlsNC4yMS00YzEuMDQsMS4xLDIuMjMsMi4wNywzLjU1LDIuODdsLTMuMDMsNC45NmMxLjcsMS4wNCwzLjU2LDEuODcsNS41NiwyLjQ2LDIsLjU5LDQuMDIsLjksNi4wMSwuOTVsLjE0LTUuOGMxLjU1LC4wNCwzLjA3LS4xMyw0LjU0LS40OWwxLjM2LDUuNjRjMy45Ny0uOTcsNy42My0yLjk2LDEwLjU5LTUuNzhsLTQtNC4yYzEuMS0xLjA0LDIuMDctMi4yMywyLjg3LTMuNTZsNC45NiwzLjAzWm0tMTMuNS04LjI0Yy0uMzUsLjU3LS43NiwxLjA4LTEuMjMsMS41Mi0uNDgsLjQ1LTEuMDEsLjg0LTEuNTgsMS4xNS0uNTcsLjMxLTEuMTksLjU1LTEuODIsLjctLjYzLC4xNS0xLjI4LC4yMi0xLjk0LC4yMS0uNjQtLjAyLTEuMjktLjExLTEuOTMtLjMtLjY0LS4xOS0xLjI0LS40Ni0xLjc5LS43OS0uNTctLjM0LTEuMDgtLjc2LTEuNTItMS4yMy0uNDUtLjQ4LS44NC0xLjAxLTEuMTUtMS41OC0uMzEtLjU3LS41NS0xLjE5LS43LTEuODItLjE1LS42My0uMjMtMS4yOC0uMjEtMS45NCwuMDItLjY0LC4xMS0xLjI5LC4zLTEuOTNzLjQ2LTEuMjQsLjc5LTEuNzljLjM0LS41NywuNzYtMS4wOCwxLjIzLTEuNTIsLjQ4LS40NSwxLjAxLS44NCwxLjU4LTEuMTUsLjU3LS4zMSwxLjE5LS41NSwxLjgyLS43MSwuNjMtLjE1LDEuMjgtLjIyLDEuOTQtLjIxLC42NCwuMDIsMS4yOSwuMTIsMS45MywuMzFzMS4yNCwuNDYsMS43OSwuNzljLjU3LC4zNSwxLjA4LC43NiwxLjUyLDEuMjMsLjQ1LC40OCwuODQsMS4wMSwxLjE1LDEuNTgsLjMxLC41NywuNTUsMS4xOSwuNywxLjgyLC4xNSwuNjMsLjIzLDEuMjgsLjIxLDEuOTQtLjAyLC42NC0uMTEsMS4yOS0uMywxLjkzcy0uNDYsMS4yNC0uNzksMS43OVoiLz48cGF0aCBkPSJNMzE1LjY0LDUxMS4xMWgtLjM5Yy0yLjA2LS4wNi00LjEyLS4zOS02LjExLS45Ny0yLS41OS0zLjktMS40My01LjY2LTIuNWwtLjMzLS4yLDMuMDMtNC45NmMtMS4xLS43LTIuMTEtMS41Mi0zLjAzLTIuNDVsLTQuMjEsNC4wMS0uMjctLjI4Yy0yLjg2LTMuMDEtNC44OS02Ljc0LTUuODctMTAuNzdsLS4wOS0uMzgsNS42NS0xLjM3Yy0uMjgtMS4yNy0uNDItMi41Ny0uNDItMy44OGwtNS44MS0uMTR2LS4zOWMuMDYtMi4wNiwuMzktNC4xMiwuOTctNi4xMSwuNTktMS45OSwxLjQzLTMuOSwyLjUtNS42NmwuMi0uMzMsNC45NiwzLjAzYy43LTEuMSwxLjUyLTIuMTIsMi40NS0zLjAzbC00LjAxLTQuMjEsLjI4LS4yN2MzLjAxLTIuODYsNi43My00Ljg5LDEwLjc3LTUuODdsLjM4LS4wOSwxLjM3LDUuNjVjMS4yNy0uMjgsMi41Ny0uNDIsMy44OC0uNDJsLjE0LTUuODFoLjM5YzIuMDYsLjA2LDQuMTIsLjM5LDYuMTEsLjk3LDIsLjU5LDMuOSwxLjQzLDUuNjYsMi41bC4zMywuMi0zLjAzLDQuOTZjMS4xLC43LDIuMTIsMS41MywzLjAzLDIuNDVsNC4yMS00LjAxLC4yNywuMjhjMi44NiwzLjAxLDQuODksNi43Myw1Ljg3LDEwLjc3bC4wOSwuMzgtNS42NSwxLjM3Yy4yOCwxLjI3LC40MiwyLjU3LC40MiwzLjg4bDUuODEsLjE0di4zOWMtLjA2LDIuMDYtLjM5LDQuMTItLjk3LDYuMTEtLjU5LDEuOTktMS40MywzLjktMi41LDUuNjZsLS4yLC4zMy00Ljk2LTMuMDNjLS43LDEuMS0xLjUyLDIuMTItMi40NSwzLjAzbDQuMDEsNC4yMS0uMjgsLjI3Yy0zLjAxLDIuODYtNi43Myw0Ljg5LTEwLjc3LDUuODdsLS4zOCwuMDktMS4zNy01LjY1Yy0xLjI3LC4yOC0yLjU3LC40My0zLjg4LC40MmwtLjE0LDUuODFabS0xMS40Mi0zLjk0YzEuNjEsLjk0LDMuMzMsMS42OSw1LjE0LDIuMjIsMS44LC41MywzLjY2LC44NCw1LjUyLC45MmwuMTQtNS44aC4zOWMxLjQ5LC4wNSwyLjk5LS4xMSw0LjQ0LS40N2wuMzgtLjA5LDEuMzYsNS42NGMzLjYzLS45NSw2Ljk5LTIuNzgsOS43Ni01LjMybC00LTQuMiwuMjgtLjI3YzEuMDgtMS4wMywyLjAzLTIuMiwyLjgxLTMuNDhsLjItLjMzLDQuOTUsMy4wMmMuOTQtMS42MSwxLjY5LTMuMzQsMi4yMi01LjE0LC41My0xLjgsLjg0LTMuNjYsLjkyLTUuNTJsLTUuOC0uMTR2LS4zOWMuMDUtMS41LS4xMS0yLjk5LS40Ny00LjQ0bC0uMDktLjM4LDUuNjQtMS4zNmMtLjk1LTMuNjMtMi43OC02Ljk5LTUuMzItOS43NmwtNC4yLDQtLjI3LS4yOGMtMS4wMy0xLjA4LTIuMi0yLjAzLTMuNDctMi44MWwtLjMzLS4yLDMuMDItNC45NWMtMS42MS0uOTQtMy4zMy0xLjY5LTUuMTQtMi4yMi0xLjgtLjUzLTMuNjYtLjg0LTUuNTItLjkybC0uMTQsNS44aC0uMzljLTEuNS0uMDUtMi45OSwuMTEtNC40NCwuNDdsLS4zOCwuMDktMS4zNi01LjY0Yy0zLjYzLC45NS02Ljk5LDIuNzgtOS43Niw1LjMybDQsNC4yLS4yOCwuMjdjLTEuMDgsMS4wMy0yLjAzLDIuMi0yLjgxLDMuNDhsLS4yLC4zMy00Ljk1LTMuMDJjLS45NCwxLjYxLTEuNjksMy4zNC0yLjIyLDUuMTQtLjUzLDEuOC0uODQsMy42Ni0uOTIsNS41Mmw1LjgsLjE0di4zOWMtLjA1LDEuNDksLjExLDIuOTksLjQ3LDQuNDRsLjA5LC4zOC01LjY0LDEuMzZjLjk1LDMuNjMsMi43OCw2Ljk5LDUuMzIsOS43Nmw0LjItNCwuMjcsLjI4YzEuMDMsMS4wOSwyLjIsMi4wMywzLjQ3LDIuODFsLjMzLC4yLTMuMDIsNC45NVptMTEuNjEtMTEuODhjLS4wNywwLS4xMywwLS4yLDAtLjY5LS4wMi0xLjM3LS4xMy0yLjAzLS4zMi0uNjYtLjE5LTEuMy0uNDctMS44OC0uODMtLjU4LS4zNi0xLjEyLS43OS0xLjYtMS4yOS0uNDctLjUtLjg4LTEuMDYtMS4yMS0xLjY2LS4zMy0uNjEtLjU4LTEuMjYtLjc0LTEuOTItLjE2LS42Ny0uMjQtMS4zNi0uMjItMi4wNSwuMDItLjY4LC4xMi0xLjM3LC4zMi0yLjAzLC4yLS42NywuNDgtMS4zLC44My0xLjg4LC4zNi0uNTksLjc5LTEuMTMsMS4yOS0xLjYsLjUtLjQ3LDEuMDYtLjg4LDEuNjYtMS4yMSwuNi0uMzMsMS4yNS0uNTgsMS45Mi0uNzQsLjY3LS4xNiwxLjM2LS4yNCwyLjA1LS4yMiwuNjgsLjAyLDEuMzcsLjEyLDIuMDMsLjMyLC42NiwuMiwxLjMsLjQ4LDEuODgsLjgzLC41OSwuMzYsMS4xMywuNzksMS42LDEuMjksLjQ4LC41LC44OCwxLjA2LDEuMjEsMS42NiwuMzMsLjYxLC41OCwxLjI1LC43NCwxLjkyLC4xNiwuNjcsLjI0LDEuMzYsLjIyLDIuMDUtLjAyLC42OC0uMTIsMS4zNy0uMzIsMi4wMy0uMiwuNjYtLjQ4LDEuMy0uODMsMS44OC0uMzYsLjU5LS44LDEuMTMtMS4yOSwxLjYtLjUsLjQ3LTEuMDYsLjg4LTEuNjYsMS4yMS0uNjEsLjMzLTEuMjUsLjU4LTEuOTIsLjc0LS42MSwuMTUtMS4yMywuMjItMS44NSwuMjJabTAtMTQuOTljLS41NiwwLTEuMTIsLjA3LTEuNjcsLjItLjYsLjE1LTEuMTksLjM3LTEuNzMsLjY3LS41NSwuMy0xLjA1LC42Ni0xLjUsMS4wOS0uNDUsLjQzLS44NCwuOTEtMS4xNiwxLjQ0LS4zMiwuNTMtLjU3LDEuMS0uNzUsMS43LS4xOCwuNi0uMjcsMS4yMi0uMjksMS44My0uMDIsLjYyLC4wNSwxLjI0LC4yLDEuODQsLjE0LC42LC4zNywxLjE4LC42NywxLjczLC4zLC41NSwuNjcsMS4wNSwxLjA5LDEuNSwuNDMsLjQ1LC45MiwuODQsMS40NCwxLjE2LC41MywuMzIsMS4xLC41NywxLjcsLjc1LC42LC4xOCwxLjIxLC4yNywxLjgzLC4yOSwuNjIsLjAyLDEuMjQtLjA1LDEuODQtLjIsLjYtLjE1LDEuMTktLjM3LDEuNzMtLjY3LC41NS0uMywxLjA1LS42NywxLjUtMS4wOSwuNDUtLjQzLC44NC0uOTEsMS4xNi0xLjQ0aDBjLjMyLS41MywuNTctMS4xLC43NS0xLjcsLjE4LS42LC4yNy0xLjIyLC4yOS0xLjgzLC4wMi0uNjItLjA1LTEuMjQtLjItMS44NC0uMTUtLjYtLjM3LTEuMTgtLjY3LTEuNzMtLjMtLjU0LS42Ni0xLjA1LTEuMDktMS41LS40My0uNDUtLjkxLS44NC0xLjQ0LTEuMTYtLjUzLS4zMi0xLjEtLjU3LTEuNy0uNzUtLjYtLjE4LTEuMjItLjI3LTEuODMtLjI5LS4wNiwwLS4xMiwwLS4xNywwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTM3My43OSw0NTQuMWMyLjk3LTIuNzUsNS42NC01LjkyLDcuOS05LjUsMi4yNi0zLjU4LDMuOTktNy4zNSw1LjE5LTExLjIxbC0xMS4yNi0zLjUxYy45NC0zLDEuNDYtNi4wNywxLjU4LTkuMTRsMTEuNzgsLjQ3Yy4zMy04LjI5LTEuNTQtMTYuNTUtNS4zOS0yMy45bC0xMC40NCw1LjQ4Yy0xLjQyLTIuNzItMy4yMS01LjI3LTUuMzUtNy41OGw4LjY2LThjLTIuNzQtMi45Ny01LjkyLTUuNjQtOS41LTcuOS0zLjU4LTIuMjYtNy4zNS0zLjk5LTExLjIxLTUuMTlsLTMuNSwxMS4yNWMtMy0uOTMtNi4wNy0xLjQ2LTkuMTQtMS41N2wuNDctMTEuNzhjLTguMjktLjMyLTE2LjU1LDEuNTQtMjMuOSw1LjM5bDUuNDgsMTAuNDRjLTIuNzIsMS40Mi01LjI3LDMuMjEtNy41OCw1LjM1bC04LTguNjZjLTIuOTcsMi43NS01LjY0LDUuOTItNy45LDkuNS0yLjI2LDMuNTgtMy45OSw3LjM1LTUuMTksMTEuMjFsMTEuMjYsMy41MWMtLjk0LDMtMS40Niw2LjA3LTEuNTgsOS4xNGwtMTEuNzgtLjQ3Yy0uMzIsOC4yOSwxLjU0LDE2LjU1LDUuMzksMjMuOWwxMC40NC01LjQ4YzEuNDMsMi43MiwzLjIxLDUuMjcsNS4zNSw3LjU4bC04LjY2LDhjMi43NCwyLjk3LDUuOTIsNS42NCw5LjUsNy45LDMuNTgsMi4yNiw3LjM1LDMuOTksMTEuMjEsNS4xOWwzLjUxLTExLjI2YzMsLjk0LDYuMDcsMS40Niw5LjE0LDEuNThsLS40NywxMS43OGM4LjI5LC4zMiwxNi41NS0xLjU0LDIzLjktNS4zOWwtNS40OC0xMC40NGMyLjcyLTEuNDIsNS4yNy0zLjIxLDcuNTgtNS4zNWw4LDguNjZabS0yMS43OC0yMy42Yy0uOTksLjkxLTIuMDgsMS42OC0zLjI1LDIuMjktMS4xOCwuNjItMi40NCwxLjA4LTMuNzMsMS4zNy0xLjI5LC4yOS0yLjYyLC40MS0zLjk2LC4zNi0xLjMxLS4wNS0yLjYzLS4yNy0zLjkxLS42Ny0xLjI0LS4zOS0yLjQ1LS45NC0zLjYtMS42Ny0xLjE1LS43My0yLjE3LTEuNTktMy4wNS0yLjU0LS45MS0uOTktMS42OC0yLjA4LTIuMjktMy4yNS0uNjItMS4xOC0xLjA4LTIuNDQtMS4zNy0zLjczLS4yOS0xLjI5LS40Mi0yLjYyLS4zNi0zLjk2LC4wNS0xLjMxLC4yNy0yLjYzLC42Ny0zLjkxLC4zOS0xLjI0LC45NC0yLjQ1LDEuNjctMy42LC43My0xLjE1LDEuNTgtMi4xNywyLjU0LTMuMDUsLjk5LS45MSwyLjA4LTEuNjgsMy4yNS0yLjI5LDEuMTgtLjYyLDIuNDQtMS4wOCwzLjczLTEuMzcsMS4yOS0uMjksMi42Mi0uNDIsMy45Ni0uMzYsMS4zMSwuMDUsMi42MywuMjcsMy45MSwuNjcsMS4yNCwuMzksMi40NSwuOTQsMy42LDEuNjcsMS4xNSwuNzMsMi4xNywxLjU4LDMuMDUsMi41NCwuOTEsLjk5LDEuNjgsMi4wOCwyLjI5LDMuMjUsLjYyLDEuMTgsMS4wOCwyLjQ0LDEuMzcsMy43MywuMjksMS4yOSwuNDIsMi42MiwuMzYsMy45Ni0uMDUsMS4zMS0uMjcsMi42My0uNjcsMy45MS0uMzksMS4yNC0uOTQsMi40NS0xLjY3LDMuNi0uNzMsMS4xNS0xLjU4LDIuMTctMi41NCwzLjA1WiIvPjxwYXRoIGQ9Ik0zNDEuNjMsNDY3LjA0Yy0uNjIsMC0xLjI0LS4wMS0xLjg2LS4wNGwtLjM5LS4wMiwuNDctMTEuNzhjLTIuODgtLjE0LTUuNzMtLjY0LTguNDgtMS40NmwtMy41MSwxMS4yNi0uMzctLjEyYy0zLjk2LTEuMjQtNy43Ny0zLTExLjMtNS4yMy0zLjU0LTIuMjQtNi43Ni00LjkyLTkuNTgtNy45N2wtLjI2LS4yOSw4LjY3LThjLTEuOTMtMi4xMy0zLjU5LTQuNDktNC45Ni03LjAzbC0xMC40NCw1LjQ4LS4xOC0uMzRjLTMuODgtNy40MS01Ljc2LTE1Ljc0LTUuNDMtMjQuMWwuMDItLjM5LDExLjc4LC40N2MuMTQtMi44OCwuNjMtNS43MywxLjQ2LTguNDhsLTExLjI2LTMuNTEsLjEyLS4zN2MxLjI0LTMuOTYsMy03Ljc2LDUuMjMtMTEuMywyLjI0LTMuNTQsNC45Mi02Ljc2LDcuOTYtOS41OGwuMjktLjI2LDgsOC42N2MyLjE0LTEuOTMsNC41LTMuNiw3LjAzLTQuOTZsLTUuNDgtMTAuNDQsLjM0LS4xOGM3LjQtMy44OCwxNS43My01Ljc2LDI0LjEtNS40M2wuMzksLjAyLS40NywxMS43OGMyLjg3LC4xNCw1LjcyLC42Myw4LjQ4LDEuNDZsMy41LTExLjI2LC4zNywuMTJjMy45NiwxLjI0LDcuNzcsMywxMS4zLDUuMjMsMy41NCwyLjI0LDYuNzYsNC45Miw5LjU4LDcuOTdsLjI2LC4yOS04LjY2LDhjMS45MywyLjE0LDMuNiw0LjUsNC45Niw3LjAzbDEwLjQ0LTUuNDgsLjE4LC4zNGMzLjg4LDcuNDEsNS43NiwxNS43NCw1LjQzLDI0LjFsLS4wMiwuMzktMTEuNzgtLjQ3Yy0uMTQsMi44OC0uNjMsNS43My0xLjQ2LDguNDhsMTEuMjYsMy41MS0uMTIsLjM3Yy0xLjI0LDMuOTYtMyw3Ljc3LTUuMjMsMTEuMy0yLjI0LDMuNTQtNC45Miw2Ljc2LTcuOTYsOS41OGwtLjI5LC4yNi04LTguNjdjLTIuMTMsMS45My00LjUsMy42LTcuMDMsNC45Nmw1LjQ4LDEwLjQ0LS4zNCwuMThjLTYuODYsMy41OS0xNC41MSw1LjQ3LTIyLjI0LDUuNDdabS0xLjQ0LS44YzcuOTcsLjI1LDE1Ljg5LTEuNTQsMjIuOTctNS4xOGwtNS40OC0xMC40NCwuMzQtLjE4YzIuNzItMS40Miw1LjI0LTMuMiw3LjUtNS4yOWwuMjktLjI2LDgsOC42NmMyLjg4LTIuNzEsNS40Mi01Ljc5LDcuNTUtOS4xNiwyLjEzLTMuMzcsMy44Mi02Ljk4LDUuMDMtMTAuNzVsLTExLjI2LTMuNTEsLjEyLS4zN2MuOTItMi45MywxLjQ0LTUuOTcsMS41Ni05LjA0di0uMzlzMTEuNzksLjQ3LDExLjc5LC40N2MuMjUtNy45Ni0xLjU0LTE1Ljg4LTUuMTgtMjIuOTdsLTEwLjQ0LDUuNDgtLjE4LS4zNGMtMS40Mi0yLjcyLTMuMi01LjI0LTUuMjktNy41bC0uMjYtLjI5LDguNjYtNy45OWMtMi43MS0yLjg4LTUuNzgtNS40Mi05LjE2LTcuNTUtMy4zNy0yLjEzLTYuOTktMy44Mi0xMC43NS01LjAzbC0zLjUsMTEuMjUtLjM3LS4xMmMtMi45My0uOTEtNS45OC0xLjQ0LTkuMDQtMS41NmgtLjM5cy40Ny0xMS43OSwuNDctMTEuNzljLTcuOTYtLjI0LTE1Ljg5LDEuNTQtMjIuOTcsNS4xOGw1LjQ4LDEwLjQ0LS4zNCwuMThjLTIuNzIsMS40Mi01LjI0LDMuMi03LjUsNS4yOWwtLjI5LC4yNi04LTguNjZjLTIuODgsMi43MS01LjQyLDUuNzktNy41NSw5LjE2LTIuMTMsMy4zNy0zLjgyLDYuOTktNS4wMywxMC43NWwxMS4yNiwzLjUxLS4xMiwuMzdjLS45MiwyLjkzLTEuNDQsNS45Ny0xLjU2LDkuMDR2LjM5cy0xMS43OS0uNDctMTEuNzktLjQ3Yy0uMjUsNy45NiwxLjU0LDE1Ljg4LDUuMTgsMjIuOTdsMTAuNDQtNS40OCwuMTgsLjM0YzEuNDMsMi43MiwzLjIxLDUuMjUsNS4yOSw3LjVsLjI2LC4yOS04LjY2LDhjMi43MSwyLjg4LDUuNzksNS40Miw5LjE2LDcuNTUsMy4zNywyLjEzLDYuOTksMy44MiwxMC43NSw1LjAzbDMuNTEtMTEuMjUsLjM3LC4xMmMyLjkzLC45MSw1Ljk3LDEuNDQsOS4wNCwxLjU2bC4zOSwuMDItLjQ3LDExLjc4Wm0xLjQ4LTMxLjMyYy0uMiwwLS40MSwwLS42MS0uMDEtMS4zNi0uMDUtMi43MS0uMjktNC4wMS0uNjktMS4zLS40MS0yLjU0LS45OC0zLjctMS43MS0xLjE2LS43My0yLjIxLTEuNjEtMy4xMy0yLjYxLS45Mi0uOTktMS43MS0yLjExLTIuMzUtMy4zMy0uNjMtMS4yLTEuMS0yLjQ5LTEuNDEtMy44Mi0uMy0xLjM0LS40My0yLjctLjM3LTQuMDYsLjA1LTEuMzYsLjI4LTIuNzEsLjY5LTQuMDEsLjQtMS4yOSwuOTgtMi41NCwxLjcxLTMuNywuNzMtMS4xNiwxLjYxLTIuMjIsMi42MS0zLjEzLDEtLjkyLDIuMTItMS43MSwzLjMzLTIuMzUsMS4yLS42MywyLjQ5LTEuMSwzLjgyLTEuNCwxLjMzLS4zLDIuNjktLjQzLDQuMDYtLjM3LDEuMzcsLjA1LDIuNzIsLjI5LDQuMDEsLjY5LDEuMjksLjQsMi41NCwuOTgsMy43LDEuNzEsMS4xNiwuNzMsMi4yMSwxLjYxLDMuMTMsMi42LC45MiwxLDEuNzEsMi4xMiwyLjM1LDMuMzMsLjYzLDEuMjEsMS4xMSwyLjUsMS40LDMuODIsLjMsMS4zMywuNDMsMi43LC4zNyw0LjA2LS4wNSwxLjM3LS4yOSwyLjcyLS42OSw0LjAxLS40LDEuMjktLjk4LDIuNTQtMS43MSwzLjctLjczLDEuMTYtMS42MSwyLjIxLTIuNiwzLjEzaDBjLTEuMDEsLjkzLTIuMTMsMS43Mi0zLjMzLDIuMzUtMS4yLC42My0yLjQ5LDEuMS0zLjgyLDEuNC0xLjEzLC4yNS0yLjI5LC4zOC0zLjQ1LC4zOFptLjAzLTMwLjQzYy0xLjEsMC0yLjIsLjEyLTMuMjgsLjM3LTEuMjcsLjI5LTIuNDksLjczLTMuNjMsMS4zMy0xLjE1LC42LTIuMjEsMS4zNS0zLjE2LDIuMjMtLjk1LC44Ny0xLjc4LDEuODctMi40OCwyLjk4LS43LDEuMS0xLjI0LDIuMjgtMS42MywzLjUxLS4zOSwxLjIzLS42MSwyLjUyLS42NiwzLjgxLS4wNSwxLjI5LC4wNywyLjU4LC4zNSwzLjg2LC4yOSwxLjI3LC43NCwyLjQ5LDEuMzQsMy42MywuNjEsMS4xNiwxLjM2LDIuMjIsMi4yMywzLjE2LC44OCwuOTUsMS44OCwxLjc4LDIuOTgsMi40OCwxLjEsLjY5LDIuMjgsMS4yNCwzLjUxLDEuNjMsMS4yNCwuMzksMi41MiwuNjEsMy44MSwuNjYsMS4yOSwuMDUsMi41OS0uMDcsMy44NS0uMzUsMS4yNy0uMjksMi40OS0uNzQsMy42My0xLjM0LDEuMTQtLjYsMi4yMS0xLjM1LDMuMTYtMi4yM2gwYy45NS0uODcsMS43OC0xLjg3LDIuNDctMi45OCwuNy0xLjEsMS4yNC0yLjI5LDEuNjMtMy41MSwuMzktMS4yMywuNjEtMi41MiwuNjYtMy44MSwuMDUtMS4yOS0uMDctMi41OS0uMzUtMy44NS0uMjgtMS4yNi0uNzMtMi40OS0xLjMzLTMuNjMtLjYtMS4xNS0xLjM1LTIuMjEtMi4yMy0zLjE2LS44Ny0uOTUtMS44OC0xLjc4LTIuOTgtMi40Ny0xLjEtLjctMi4yOC0xLjI0LTMuNTEtMS42My0xLjIzLS4zOC0yLjUyLS42MS0zLjgxLS42Ni0uMTksMC0uMzktLjAxLS41OC0uMDFaIi8+PC9nPjxnPjxnPjxwYXRoIGQ9Ik00NDQuMjQsMjI2LjA1aC04LjM4YzEyLjA0LDAsMjEuODEsOS43NywyMS44MSwyMS44MnYxNDcuMjJjMCwxMi4wNC05Ljc3LDIxLjgyLTIxLjgxLDIxLjgyaDguMzhjMTIuMDQsMCwyMS44MS05Ljc4LDIxLjgxLTIxLjgyVjI0Ny44N2MwLTEyLjA1LTkuNzctMjEuODItMjEuODEtMjEuODJaIi8+PHBhdGggZD0iTTQ0NC4yNCw0MTcuM2gtOC4zOHYtLjc4YzExLjgxLDAsMjEuNDItOS42MSwyMS40Mi0yMS40M1YyNDcuODdjMC0xMS44Mi05LjYxLTIxLjQzLTIxLjQyLTIxLjQzdi0uNzhoOC4zOGMxMi4yNCwwLDIyLjIsOS45NiwyMi4yLDIyLjIxdjE0Ny4yMmMwLDEyLjI1LTkuOTYsMjIuMjEtMjIuMiwyMi4yMVptLTIuNTUtLjc4aDIuNTVjMTEuODEsMCwyMS40Mi05LjYxLDIxLjQyLTIxLjQzVjI0Ny44N2MwLTExLjgyLTkuNjEtMjEuNDMtMjEuNDItMjEuNDNoLTIuNTVjOS40MiwyLjU3LDE2LjM3LDExLjIsMTYuMzcsMjEuNDN2MTQ3LjIyYzAsMTAuMjMtNi45NSwxOC44Ni0xNi4zNywyMS40M1oiLz48L2c+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xOTkuNDksMjI1LjY2aDIzNi4zMmMxMi4wNCwwLDIxLjgxLDkuNzcsMjEuODEsMjEuODJ2MTQ3LjIyYzAsMTIuMDQtOS43NywyMS44Mi0yMS44MSwyMS44MkgxOTkuNDljLTEyLjA0LDAtMjEuODEtOS43OC0yMS44MS0yMS44MlYyNDcuNDhjMC0xMi4wNSw5Ljc3LTIxLjgyLDIxLjgxLTIxLjgyWm0uMDEsMTY1LjkzaDIzNi4zYzguMzksMCwxNS4yMS02LjgzLDE1LjIxLTE1LjIyVjI0Ny40OGMwLTguMzktNi44Mi0xNS4yMi0xNS4yMS0xNS4yMkgxOTkuNWMtOC4zOSwwLTE1LjIyLDYuODMtMTUuMjIsMTUuMjJ2MTI4Ljg5YzAsOC4zOSw2LjgzLDE1LjIyLDE1LjIyLDE1LjIyWiIvPjxwYXRoIGQ9Ik00MzUuODEsNDE2LjkxSDE5OS40OWMtMTIuMjQsMC0yMi4yLTkuOTYtMjIuMi0yMi4yMVYyNDcuNDhjMC0xMi4yNSw5Ljk2LTIyLjIxLDIyLjItMjIuMjFoMjM2LjMyYzEyLjI0LDAsMjIuMiw5Ljk2LDIyLjIsMjIuMjF2MTQ3LjIyYzAsMTIuMjUtOS45NiwyMi4yMS0yMi4yLDIyLjIxWk0xOTkuNDksMjI2LjA1Yy0xMS44MSwwLTIxLjQyLDkuNjEtMjEuNDIsMjEuNDN2MTQ3LjIyYzAsMTEuODIsOS42MSwyMS40MywyMS40MiwyMS40M2gyMzYuMzJjMTEuODEsMCwyMS40Mi05LjYxLDIxLjQyLTIxLjQzVjI0Ny40OGMwLTExLjgyLTkuNjEtMjEuNDMtMjEuNDItMjEuNDNIMTk5LjQ5Wm0yMzYuMzIsMTY1LjkzSDE5OS41Yy04LjYxLDAtMTUuNjEtNy0xNS42MS0xNS42MVYyNDcuNDhjMC04LjYxLDctMTUuNjEsMTUuNjEtMTUuNjFoMjM2LjNjOC42LDAsMTUuNiw3LDE1LjYsMTUuNjF2MTI4Ljg5YzAsOC42MS03LDE1LjYxLTE1LjYsMTUuNjFaTTE5OS41LDIzMi42NWMtOC4xOCwwLTE0LjgzLDYuNjUtMTQuODMsMTQuODN2MTI4Ljg5YzAsOC4xOCw2LjY1LDE0LjgzLDE0LjgzLDE0LjgzaDIzNi4zYzguMTcsMCwxNC44Mi02LjY1LDE0LjgyLTE0LjgzVjI0Ny40OGMwLTguMTgtNi42NS0xNC44My0xNC44Mi0xNC44M0gxOTkuNVoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImoiIGQ9Ik00NTEuMDcsMjQ3Ljg3djEyOC44OGMwLDYuMDgtMy41NywxMS4zNC04Ljc0LDEzLjc3LTEuOTcsLjk0LTQuMTYsMS40NS02LjQ3LDEuNDVIMTk5LjU1Yy04LjM5LDAtMTUuMjItNi44My0xNS4yMi0xNS4yMlYyNDcuODdjMC03LjU1LDUuNTQtMTMuODUsMTIuNzctMTUuMDIsLjgtLjEzLDEuNjItLjIsMi40Ni0uMmgyMzYuM2MuODQsMCwxLjY2LC4wNywyLjQ2LC4yLDcuMjMsMS4xOCwxMi43NSw3LjQ3LDEyLjc1LDE1LjAyWiIvPjxwYXRoIGQ9Ik00MzUuODYsMzkyLjM3SDE5OS41NWMtOC42MSwwLTE1LjYxLTctMTUuNjEtMTUuNjFWMjQ3Ljg3YzAtNy42OSw1LjUxLTE0LjE3LDEzLjA5LTE1LjQxLC44My0uMTQsMS42OC0uMiwyLjUyLS4yaDIzNi4zYy44NSwwLDEuNjksLjA3LDIuNTIsLjIsNy41OCwxLjI0LDEzLjA4LDcuNzIsMTMuMDgsMTUuNDF2MTI4Ljg4YzAsNi4wMi0zLjUyLDExLjU2LTguOTcsMTQuMTItMi4wOCwuOTktNC4zMSwxLjQ5LTYuNjMsMS40OVpNMTk5LjU1LDIzMy4wNGMtLjgsMC0xLjYxLC4wNy0yLjM5LC4xOS03LjIxLDEuMTctMTIuNDQsNy4zMy0xMi40NCwxNC42NHYxMjguODhjMCw4LjE4LDYuNjUsMTQuODMsMTQuODMsMTQuODNoMjM2LjNjMi4yLDAsNC4zMi0uNDgsNi4zLTEuNDIsNS4xOC0yLjQzLDguNTItNy43LDguNTItMTMuNDJWMjQ3Ljg3YzAtNy4zMS01LjIzLTEzLjQ3LTEyLjQzLTE0LjY0LS43OC0uMTMtMS41OS0uMTktMi4zOS0uMTlIMTk5LjU1WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTQ1MS4wNywyNDcuODd2My4wNUgxODQuMzN2LTMuMDVjMC03LjU1LDUuNTQtMTMuODUsMTIuNzctMTUuMDJoMjQxLjIyYzcuMjMsMS4xOCwxMi43NSw3LjQ3LDEyLjc1LDE1LjAyWiIvPjxwYXRoIGQ9Ik00NTEuNDYsMjUxLjMxSDE4My45NHYtMy40NGMwLTcuNjksNS41MS0xNC4xNywxMy4wOS0xNS40MWguMDZzMjQxLjI1LDAsMjQxLjI1LDBoLjAzYzcuNTgsMS4yNCwxMy4wOCw3LjcyLDEzLjA4LDE1LjQxdjMuNDRabS0yNjYuNzQtLjc4SDQ1MC42OHYtMi42NmMwLTcuMy01LjIxLTEzLjQ1LTEyLjQtMTQuNjNIMTk3LjEzYy03LjE5LDEuMTktMTIuNDEsNy4zNC0xMi40MSwxNC42M3YyLjY2WiIvPjwvZz48Zz48Y2lyY2xlIGNsYXNzPSJlIiBjeD0iMTk5LjgyIiBjeT0iMjQxLjg5IiByPSIzLjQ3Ii8+PHBhdGggZD0iTTE5OS44MiwyNDUuNzRjLTIuMTMsMC0zLjg2LTEuNzMtMy44Ni0zLjg2czEuNzMtMy44NiwzLjg2LTMuODYsMy44NiwxLjczLDMuODYsMy44Ni0xLjczLDMuODYtMy44NiwzLjg2Wm0wLTYuOTNjLTEuNywwLTMuMDgsMS4zOC0zLjA4LDMuMDhzMS4zOCwzLjA4LDMuMDgsMy4wOCwzLjA4LTEuMzgsMy4wOC0zLjA4LTEuMzgtMy4wOC0zLjA4LTMuMDhaIi8+PC9nPjxnPjxjaXJjbGUgY2xhc3M9ImUiIGN4PSIyMTcuNzMiIGN5PSIyNDEuODkiIHI9IjMuNDciLz48cGF0aCBkPSJNMjE3LjczLDI0NS43NGMtMi4xMywwLTMuODYtMS43My0zLjg2LTMuODZzMS43My0zLjg2LDMuODYtMy44NiwzLjg2LDEuNzMsMy44NiwzLjg2LTEuNzMsMy44Ni0zLjg2LDMuODZabTAtNi45M2MtMS43LDAtMy4wOCwxLjM4LTMuMDgsMy4wOHMxLjM4LDMuMDgsMy4wOCwzLjA4LDMuMDgtMS4zOCwzLjA4LTMuMDgtMS4zOC0zLjA4LTMuMDgtMy4wOFoiLz48L2c+PGc+PGNpcmNsZSBjbGFzcz0iZSIgY3g9IjIzNC43MyIgY3k9IjI0MS44OSIgcj0iMy40NyIvPjxwYXRoIGQ9Ik0yMzQuNzMsMjQ1Ljc0Yy0yLjEzLDAtMy44Ni0xLjczLTMuODYtMy44NnMxLjczLTMuODYsMy44Ni0zLjg2LDMuODYsMS43MywzLjg2LDMuODYtMS43MywzLjg2LTMuODYsMy44NlptMC02LjkzYy0xLjcsMC0zLjA4LDEuMzgtMy4wOCwzLjA4czEuMzgsMy4wOCwzLjA4LDMuMDgsMy4wOC0xLjM4LDMuMDgtMy4wOC0xLjM4LTMuMDgtMy4wOC0zLjA4WiIvPjwvZz48Zz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTM0OC40NCwyOTAuMDRjMCw3LjQ4LTMuMTYsMTQuMjMtOC4yMywxOC45Ny00LjY1LDQuMzUtMTAuODksNy4wMS0xNy43Niw3LjAxLTcuNDcsMC0xNC4yLTMuMTUtMTguOTQtOC4xOS00LjM3LTQuNjUtNy4wNS0xMC45MS03LjA1LTE3Ljc5LDAtMTQuMzUsMTEuNjMtMjUuOTksMjUuOTktMjUuOTlzMjUuOTksMTEuNjMsMjUuOTksMjUuOTlaIi8+PHBhdGggZD0iTTMyMi40NSwzMTYuNDFjLTcuMzYsMC0xNC4xOC0yLjk1LTE5LjIyLTguMzEtNC42MS00LjkxLTcuMTUtMTEuMzItNy4xNS0xOC4wNiwwLTE0LjU0LDExLjgzLTI2LjM4LDI2LjM4LTI2LjM4czI2LjM4LDExLjgzLDI2LjM4LDI2LjM4YzAsNy4yNy0zLjA0LDE0LjI5LTguMzUsMTkuMjUtNC45LDQuNTktMTEuMyw3LjEyLTE4LjAyLDcuMTJabTAtNTEuOTdjLTE0LjExLDAtMjUuNiwxMS40OC0yNS42LDI1LjYsMCw2LjU0LDIuNDcsMTIuNzYsNi45NCwxNy41Myw0Ljg5LDUuMiwxMS41Miw4LjA3LDE4LjY1LDguMDcsNi41MiwwLDEyLjczLTIuNDUsMTcuNDktNi45MSw1LjE1LTQuODIsOC4xMS0xMS42Myw4LjExLTE4LjY5LDAtMTQuMTEtMTEuNDgtMjUuNi0yNS42LTI1LjZaIi8+PC9nPjxnPjxnPjxjaXJjbGUgY2xhc3M9ImUiIGN4PSIzMjEuNjIiIGN5PSIyODQuNTciIHI9IjkuOTMiLz48cGF0aCBkPSJNMzIxLjYyLDI5NC44OWMtNS42OSwwLTEwLjMyLTQuNjMtMTAuMzItMTAuMzJzNC42My0xMC4zMiwxMC4zMi0xMC4zMiwxMC4zMiw0LjYzLDEwLjMyLDEwLjMyLTQuNjMsMTAuMzItMTAuMzIsMTAuMzJabTAtMTkuODdjLTUuMjYsMC05LjU0LDQuMjgtOS41NCw5LjU0czQuMjgsOS41NCw5LjU0LDkuNTQsOS41NC00LjI4LDkuNTQtOS41NC00LjI4LTkuNTQtOS41NC05LjU0WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTM0MC4yMSwzMDkuMDFjLTQuNjUsNC4zNS0xMC44OSw3LjAxLTE3Ljc2LDcuMDEtNy40NywwLTE0LjItMy4xNS0xOC45NC04LjE5LDMuMTItNi44OCwxMC4wNS0xMS42NywxOC4xLTExLjY3LDguNSwwLDE1Ljc2LDUuMzQsMTguNTksMTIuODVaIi8+PHBhdGggZD0iTTMyMi40NSwzMTYuNDFjLTcuMzYsMC0xNC4xOC0yLjk1LTE5LjIyLTguMzFsLS4xOC0uMTksLjExLS4yNGMzLjI4LTcuMjMsMTAuNTItMTEuOSwxOC40Ni0xMS45LDguMzgsMCwxNiw1LjI3LDE4Ljk2LDEzLjFsLjA5LC4yNC0uMTksLjE4Yy00LjksNC41OS0xMS4zLDcuMTItMTguMDIsNy4xMlptLTE4LjQ3LTguNjZjNC44Nyw1LjA4LDExLjQyLDcuODgsMTguNDcsNy44OCw2LjQ0LDAsMTIuNTctMi4zOSwxNy4zLTYuNzMtMi45MS03LjQtMTAuMTYtMTIuMzYtMTguMTMtMTIuMzYtNy41NCwwLTE0LjQ0LDQuMzktMTcuNjQsMTEuMjFaIi8+PC9nPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTI0Ny40MiwzMjEuNTFoMTQ4LjljMy4xMSwwLDUuNjMsMi41Miw1LjYzLDUuNjN2Ni4zOGMwLDMuMTEtMi41Miw1LjYzLTUuNjMsNS42M0gyNDcuNDJjLTMuMTEsMC01LjYzLTIuNTItNS42My01LjYzdi02LjM4YzAtMy4xMSwyLjUyLTUuNjMsNS42My01LjYzWiIvPjxwYXRoIGQ9Ik0zOTYuMzEsMzM5LjU0SDI0Ny40MmMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDE0OC45YzMuMzIsMCw2LjAyLDIuNyw2LjAyLDYuMDF2Ni4zOGMwLDMuMzItMi43LDYuMDItNi4wMiw2LjAyWm0tMTQ4LjktMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMTQ4LjljMi44OSwwLDUuMjQtMi4zNSw1LjI0LTUuMjR2LTYuMzhjMC0yLjg5LTIuMzUtNS4yNC01LjI0LTUuMjRIMjQ3LjQyWiIvPjwvZz48Zz48cmVjdCBjbGFzcz0iZSIgeD0iMjQxLjc5IiB5PSIzNDYuMzUiIHdpZHRoPSIxNjAuMTUiIGhlaWdodD0iMTcuNjMiIHJ4PSI1LjYzIiByeT0iNS42MyIvPjxwYXRoIGQ9Ik0zOTYuMzEsMzY0LjM3SDI0Ny40MmMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDE0OC45YzMuMzIsMCw2LjAyLDIuNyw2LjAyLDYuMDF2Ni4zOGMwLDMuMzItMi43LDYuMDItNi4wMiw2LjAyWm0tMTQ4LjktMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMTQ4LjljMi44OSwwLDUuMjQtMi4zNSw1LjI0LTUuMjR2LTYuMzhjMC0yLjg5LTIuMzUtNS4yNC01LjI0LTUuMjRIMjQ3LjQyWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI4Ni44NywzMjEuNTF2MTcuNjNoLTM5LjQ2Yy0zLjA5LDAtNS42My0yLjUzLTUuNjMtNS42M3YtNi4zOGMwLTMuMDksMi41My01LjYzLDUuNjMtNS42M2gzOS40NloiLz48cGF0aCBkPSJNMjg3LjI2LDMzOS41NGgtMzkuODVjLTMuMzIsMC02LjAxLTIuNy02LjAxLTYuMDJ2LTYuMzhjMC0zLjMyLDIuNy02LjAxLDYuMDEtNi4wMWgzOS44NXYxOC40MVptLTM5Ljg1LTE3LjYzYy0yLjg5LDAtNS4yNCwyLjM1LTUuMjQsNS4yNHY2LjM4YzAsMi44OSwyLjM1LDUuMjQsNS4yNCw1LjI0aDM5LjA3di0xNi44NmgtMzkuMDdaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJkIiBkPSJNMjQ3LjQyLDM0Ni4zNWgzOS40NnYxNy42M2gtMzkuNDZjLTMuMDksMC01LjYzLTIuNTMtNS42My01LjYzdi02LjM4YzAtMy4wOSwyLjUzLTUuNjMsNS42My01LjYzWiIvPjxwYXRoIGQ9Ik0yODcuMjYsMzY0LjM3aC0zOS44NWMtMy4zMiwwLTYuMDEtMi43LTYuMDEtNi4wMnYtNi4zOGMwLTMuMzIsMi43LTYuMDEsNi4wMS02LjAxaDM5Ljg1djE4LjQxWm0tMzkuODUtMTcuNjNjLTIuODksMC01LjI0LDIuMzUtNS4yNCw1LjI0djYuMzhjMCwyLjg5LDIuMzUsNS4yNCw1LjI0LDUuMjRoMzkuMDd2LTE2Ljg2aC0zOS4wN1oiLz48L2c+PHJlY3QgY2xhc3M9ImoiIHg9IjI5My4zNSIgeT0iMzI2LjE5IiB3aWR0aD0iOTcuMTciIGhlaWdodD0iOSIgcng9IjQuNSIgcnk9IjQuNSIvPjxnPjxwYXRoIGQ9Ik0zMDQuNzEsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMxMC4zLDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zMTUuODksMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMyMS40OCwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzI3LjA3LDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zMzIuNjYsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTMzOC4yNCwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzQzLjgzLDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zNDkuNDIsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM1NS4wMSwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzYwLjYsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM2Ni4xOSwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48cGF0aCBkPSJNMzcxLjc4LDM1NC4xOGwxLjM0LC43My0uNiwxLjAxLTEuMzUtLjgsLjAyLDEuNDloLTEuMTZ2LTEuNXMtMS4zNCwuODEtMS4zNCwuODFsLS41OS0xLjAxLDEuMzQtLjczLTEuMzQtLjc0LC41OS0xLjAxLDEuMzUsLjgxdi0xLjVzMS4xNCwwLDEuMTQsMGwtLjAyLDEuNSwxLjM1LS44MSwuNiwxLjAxLTEuMzQsLjc0WiIvPjxwYXRoIGQ9Ik0zNzcuMzcsMzU0LjE4bDEuMzQsLjczLS42LDEuMDEtMS4zNS0uOCwuMDIsMS40OWgtMS4xNnYtMS41cy0xLjM0LC44MS0xLjM0LC44MWwtLjU5LTEuMDEsMS4zNC0uNzMtMS4zNC0uNzQsLjU5LTEuMDEsMS4zNSwuODF2LTEuNXMxLjE0LDAsMS4xNCwwbC0uMDIsMS41LDEuMzUtLjgxLC42LDEuMDEtMS4zNCwuNzRaIi8+PHBhdGggZD0iTTM4Mi45NiwzNTQuMThsMS4zNCwuNzMtLjYsMS4wMS0xLjM1LS44LC4wMiwxLjQ5aC0xLjE2di0xLjVzLTEuMzQsLjgxLTEuMzQsLjgxbC0uNTktMS4wMSwxLjM0LS43My0xLjM0LS43NCwuNTktMS4wMSwxLjM1LC44MXYtMS41czEuMTQsMCwxLjE0LDBsLS4wMiwxLjUsMS4zNS0uODEsLjYsMS4wMS0xLjM0LC43NFoiLz48L2c+PC9nPjxnIGNsYXNzPSJnIj48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSIyOTcuMTcgMzkxLjk4IDI1MS42NyAzOTEuOTggMjAwLjM2IDIzMi42NSAyNDUuODYgMjMyLjY1IDI5Ny4xNyAzOTEuOTgiLz48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSIzMjMuMDYgMzkxLjk4IDMwOS40OCAzOTEuOTggMjU4LjE2IDIzMi42NSAyNzEuNzMgMjMyLjY1IDMyMy4wNiAzOTEuOTgiLz48cG9seWdvbiBjbGFzcz0iZSIgcG9pbnRzPSI0MzAuNDkgMzkxLjk4IDM4NC45OSAzOTEuOTggMzMzLjY4IDIzMi42NSAzNzkuMTcgMjMyLjY1IDQzMC40OSAzOTEuOTgiLz48cGF0aCBjbGFzcz0iZSIgZD0iTTQ1MS4wNywzNzUuNTJ2MS4yNGMwLDYuMDgtMy41NywxMS4zNC04Ljc0LDEzLjc3bC01MC44NC0xNTcuODhoMTMuNTdsNDYuMDIsMTQyLjg2WiIvPjwvZz48L2c+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xMzIuOTUsMjg3Ljc3bDYuMiwuNTljLjQyLC4wNCwuODItLjE3LDEuMDMtLjUzbC41OC0xLjAxLTkuMDktLjg2LC4zOCwxLjFjLjE0LC4zOSwuNDksLjY3LC45MSwuNzFaIi8+PHBhdGggZD0iTTEzOS4yNSwyODguNzZzLS4wOSwwLS4xNCwwbC02LjItLjU5Yy0uNTctLjA1LTEuMDUtLjQ0LTEuMjQtLjk3bC0uNTgtMS42NywxMC4yOSwuOTgtLjg4LDEuNTNjLS4yNiwuNDUtLjc1LC43My0xLjI2LC43M1ptLTcuMDItMi4zNWwuMTgsLjUzYy4wOSwuMjUsLjMxLC40MywuNTgsLjQ1bDYuMiwuNTljLjI2LC4wMiwuNTItLjExLC42NS0uMzRsLjI4LS40OC03Ljg5LS43NVoiLz48L2c+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xMjcuMzEsMjcwLjI2bDIwLjY4LDEuOTctLjgzLDguNzFjLS4wOCwuODItLjQ1LDEuNTgtMS4wNCwyLjE1bC0yLjg4LDIuNzdjLS43MiwuNjktMS43MSwxLjA0LTIuNzEsLjk0bC04LjY1LS44MmMtMS0uMDktMS45LS42Mi0yLjQ4LTEuNDRsLTIuMzEtMy4yN2MtLjQ3LS42Ny0uNjktMS40OS0uNjItMi4zMWwuODMtOC43MVoiLz48cGF0aCBkPSJNMTQwLjg2LDI4Ny4yMWMtLjEyLDAtLjI0LDAtLjM2LS4wMmwtOC42NS0uODJjLTEuMTEtLjExLTIuMTItLjY5LTIuNzYtMS42bC0yLjMxLTMuMjdjLS41My0uNzUtLjc3LTEuNjYtLjY4LTIuNTdsLjg2LTkuMSwyMS40NiwyLjA0LS44Niw5LjFjLS4wOSwuOTEtLjUsMS43Ni0xLjE2LDIuMzlsLTIuODgsMi43N2MtLjcyLC42OS0xLjY3LDEuMDctMi42NSwxLjA3Wm0tMTMuMi0xNi41MmwtLjc5LDguMzJjLS4wNywuNzMsLjEyLDEuNDUsLjU1LDIuMDVsMi4zMSwzLjI3Yy41MSwuNzMsMS4zMSwxLjE5LDIuMiwxLjI3bDguNjUsLjgyYy44OCwuMDksMS43Ni0uMjIsMi40LS44NGwyLjg4LTIuNzdjLjUzLS41LC44NS0xLjE4LC45Mi0xLjkxbC43OS04LjMyLTE5LjkxLTEuODlaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTE4LjUzLDI1MC41OGMtOS40LTE3LjA2LDYuNTMtMzkuMjcsMjUuNy0zNS44MywxMi40OCwxLjc5LDIxLjYyLDEyLjY4LDIxLjI4LDI1LjIyLS4xMyw1LjI5LTEuOTksMTAuNTMtNS4yOCwxNC42OC01LjQ5LDcuMDYtOS4wNiw3LjAzLTEwLjY1LDE1Ljk3LS4xNywuOTctMS4wNiwxLjY1LTIuMDUsMS41Ni02LjY5LC4yOS0xMy4zMS0uMzQtMTkuODYtMS44OS0uOTgtLjA5LTEuNzMtLjkzLTEuNzItMS45MmgwYy4xMy05LjA3LTMuMjYtOS42Ni03LjM2LTE3LjY2LS4wMi0uMDUtLjA1LS4wOS0uMDctLjE0WiIvPjxwYXRoIGQ9Ik0xNDQuNDMsMjcyLjY0Yy01LjYzLDAtMTEuMjgtLjY2LTE2LjgxLTEuOTYtMS4xNi0uMTMtMi4wNi0xLjEzLTIuMDQtMi4zMSwuMDgtNi4wNi0xLjQxLTguMjMtMy42OC0xMS41My0xLjA5LTEuNTgtMi4zMi0zLjM4LTMuNjQtNS45NWwtLjA3LS4xM2MtNC40Mi04LjAzLTMuNTktMTcuOTksMi4xNi0yNi4wMSw1Ljc1LTguMDIsMTQuOTMtMTIsMjMuOTUtMTAuMzgsMTIuNjUsMS44MSwyMS45NSwxMi44MywyMS42LDI1LjYyLS4xMyw1LjQtMi4wMywxMC43LTUuMzYsMTQuOTEtMS43OSwyLjMtMy4zNiwzLjg0LTQuNzUsNS4yLTIuODcsMi44MS00Ljc3LDQuNjctNS44MiwxMC41OS0uMjEsMS4xNi0xLjI3LDEuOTgtMi40NCwxLjg4LTEuMDMsLjA0LTIuMDcsLjA3LTMuMSwuMDdabS00LjEyLTU3Ljg1Yy03LjQyLDAtMTQuNTgsMy43OC0xOS4zMywxMC40MS01LjU4LDcuNzgtNi4zOSwxNy40My0yLjExLDI1LjE5bC4wOCwuMTVjMS4zLDIuNTMsMi41Miw0LjMsMy41OSw1Ljg2LDIuMjcsMy4zLDMuOSw1LjY4LDMuODIsMTEuOTgtLjAxLC43OCwuNTksMS40NSwxLjM3LDEuNTJoLjA1YzYuNSwxLjU0LDEzLjE1LDIuMTcsMTkuNzUsMS44OWguMDNzLjAzLDAsLjAzLDBjLjc4LC4wNywxLjQ5LS40NywxLjYzLTEuMjQsMS4xLTYuMTcsMy4xNy04LjIsNi4wNC0xMS4wMSwxLjM3LTEuMzQsMi45My0yLjg2LDQuNjgtNS4xMiwzLjIzLTQuMDksNS4wNy05LjIyLDUuMTktMTQuNDUsLjMzLTEyLjQtOC42OC0yMy4wNy0yMC45NS0yNC44My0xLjI5LS4yMy0yLjU4LS4zNC0zLjg2LS4zNFoiLz48L2c+PHBhdGggZD0iTTE0MS40MiwyNzIuMjhsLS43Ny0uMDdjLjA3LS43NiwxLjQ0LTE0LjY4LDMuOTYtMjIuNi0xLjc0LC4wOC0zLjk3LS4wOS02LjgxLS42OC0uODgtLjE4LTEuNjgtLjM4LTIuNC0uNiwuMTgsMS4xMSwuMjgsMi40LC4yNSwzLjktLjI2LDE2LjE0LS42MiwxOS4zNC0uNjQsMTkuNDdsLS43Ny0uMDlzLjM3LTMuMzMsLjYzLTE5LjM5Yy4wMy0xLjY1LS4wOS0zLjAyLS4zMS00LjE1LTMuOTgtMS4zNC01LjI5LTMuMDktNS4xMS00LjM2LC4xMi0uODMsLjg2LTEuMzYsMS44Mi0xLjI4LDEuMjUsLjEsMy4xMywxLjM1LDMuOTYsNS4wNCwuOCwuMjUsMS43LC40OSwyLjczLC43LDIuODUsLjU5LDUuMTMsLjc2LDYuOTIsLjY1LC42OS0yLDEuNDctMy41MiwyLjMzLTQuMiwxLjI1LS45OSwyLjM2LS44MywyLjk3LS4zNCwuNzMsLjU4LC45MiwxLjYyLC40NywyLjU4LS4zMiwuNjgtMS40NywyLjMyLTUuMjIsMi42OS0yLjUzLDcuNzctMy45NywyMi41NC0zLjk5LDIyLjczWm03LjYtMjcuNjJjLS40LDAtLjg3LC4xOS0xLjM0LC41Ni0uNzIsLjU3LTEuMzgsMS44My0xLjk5LDMuNTEsMi40Mi0uMywzLjc3LTEuMTgsNC4yNC0yLjIsLjMtLjYzLC4yLTEuMy0uMjUtMS42NS0uMTktLjE1LS40Mi0uMjItLjY3LS4yMlptLTE3Ljk0LTEuNDdjLS40NywwLS44MiwuMjQtLjg3LC42Mi0uMTIsLjgyLC45OCwyLjIsNC4xNCwzLjM1LS43Ny0yLjktMi4yNC0zLjktMy4xNS0zLjk3LS4wNCwwLS4wOCwwLS4xMiwwWiIvPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTQ4LjY4LDI3Ny4zN3MtLjA2LDAtLjA4LDBsLTIyLjY2LTUuMDVjLS4yMS0uMDUtLjM0LS4yNS0uMy0uNDYsLjA1LS4yMSwuMjYtLjM0LC40Ni0uM2wyMi42Niw1LjA1Yy4yMSwuMDUsLjM0LC4yNSwuMywuNDYtLjA0LC4xOC0uMiwuMy0uMzgsLjNaIi8+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xNDguNDUsMjc5Ljczcy0uMDYsMC0uMDgsMGwtMjIuNjYtNS4wNWMtLjIxLS4wNS0uMzQtLjI1LS4zLS40NiwuMDUtLjIxLC4yNi0uMzQsLjQ2LS4zbDIyLjY2LDUuMDVjLjIxLC4wNSwuMzQsLjI1LC4zLC40Ni0uMDQsLjE4LS4yLC4zLS4zOCwuM1oiLz48cGF0aCBjbGFzcz0iZSIgZD0iTTE0OC4yMywyODIuMDlzLS4wNiwwLS4wOCwwbC0yMi42Ni01LjA1Yy0uMjEtLjA1LS4zNC0uMjUtLjMtLjQ2LC4wNS0uMjEsLjI2LS4zNCwuNDYtLjNsMjIuNjYsNS4wNWMuMjEsLjA1LC4zNCwuMjUsLjMsLjQ2LS4wNCwuMTgtLjIsLjMtLjM4LC4zWiIvPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTQ2Ljk0LDI4NC4yMXMtLjA2LDAtLjA4LDBsLTIxLjYtNC44MWMtLjIxLS4wNS0uMzQtLjI1LS4zLS40NiwuMDUtLjIxLC4yNi0uMzQsLjQ2LS4zbDIxLjYsNC44MWMuMjEsLjA1LC4zNCwuMjUsLjMsLjQ2LS4wNCwuMTgtLjIsLjMtLjM4LC4zWiIvPjwvZz48L2c+PGc+PHJlY3QgeD0iMTczLjMxIiB5PSIyMzguNDciIHdpZHRoPSIuNzgiIGhlaWdodD0iOC4wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg0LjEzIDM5Mi40NSkgcm90YXRlKC04NC41NykiLz48cmVjdCB4PSIxNjYuODQiIHk9IjIyNS4xNiIgd2lkdGg9IjguMDEiIGhlaWdodD0iLjc4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzguMzMgOTEuNDkpIHJvdGF0ZSgtMjQuNTgpIi8+PHJlY3QgeD0iMTU1LjkxIiB5PSIyMTEuOTMiIHdpZHRoPSI4LjAxIiBoZWlnaHQ9Ii43OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwNS43OSAyMTkuNTcpIHJvdGF0ZSgtNTQuNTgpIi8+PHJlY3QgeD0iMTM5LjgyIiB5PSIyMDUuOTQiIHdpZHRoPSI4LjAxIiBoZWlnaHQ9Ii43OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTc1LjIgMzI5Ljk2KSByb3RhdGUoLTg0LjU2KSIvPjxyZWN0IHg9IjEyNi41MSIgeT0iMjA1LjE3IiB3aWR0aD0iLjc4IiBoZWlnaHQ9IjguMDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03NS40OCA3MS43KSByb3RhdGUoLTI0LjU3KSIvPjxyZWN0IHg9IjExMy4yNyIgeT0iMjE2LjExIiB3aWR0aD0iLjc4IiBoZWlnaHQ9IjguMDEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMzEuNTggMTg1LjEyKSByb3RhdGUoLTU0LjU3KSIvPjxyZWN0IHg9IjEwNy4yOCIgeT0iMjMyLjIiIHdpZHRoPSIuNzgiIGhlaWdodD0iOC4wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEzNy42NiAzMjEuMDMpIHJvdGF0ZSgtODQuNTcpIi8+PC9nPjwvZz48ZyBjbGFzcz0iaSI+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0xOTQuOTQsMzM5LjFjLjI2LC4wNiwuNTIsLjEzLC43OCwuMiwuMjYsLjA3LC41MSwuMTUsLjc2LC4yMywuNjMsLjIxLDEuMjIsLjQ1LDEuNzcsLjc0LC4wOSwuMDQsLjE3LC4wOSwuMjYsLjE0LC4xLC4wNiwuMjEsLjEyLC4zMSwuMTgsLjEsLjA2LC4xOSwuMTIsLjI4LC4xOCwwLDAsMCwwLC4wMSwwLC4wOSwuMDYsLjE5LC4xMywuMjgsLjE5LC41NiwuNCwxLjA1LC44NywxLjQ3LDEuMzksLjA3LC4wOCwuMTMsLjE2LC4xOSwuMjQsLjQsLjU0LC43MywxLjE0LC45OCwxLjgxLC4wMywuMDcsLjA1LC4xMywuMDcsLjIsLjAzLC4wNywuMDUsLjE1LC4wOCwuMjMsLjAzLC4xLC4wNywuMiwuMDksLjMsLjA2LC4yMSwuMTEsLjQzLC4xNiwuNjYsLjAyLC4xLC4wNCwuMiwuMDYsLjMsLjAyLC4xLC4wMywuMiwuMDUsLjMxLC4wMiwuMSwuMDMsLjIxLC4wNCwuMzIsLjUxLDQuMjQsMy43Nyw2LjI4LDQuODEsMTAuNDYsLjA5LC4zNSwuMTcsLjcyLC4yMiwxLjExLC45LDYuNDQtLjkyLDcuNTItMi41NywxMi44OC0uNTcsMS44NSwxLjMsOC4zOCwzLjU5LDE1LjEzLC44NSwuMTcsMS43MSwuMzIsMi41MiwuNDEsMS43NywuMjIsMy40NywuMyw1LjExLC4yNywzLjI5LS4wMywzLjctMTUuMzUsMS41MS0xNS45LTEuMS0uMjctMi4xMi0uNjEtMy4wMy0uOTYtLjIyLS4wOS0uNDYtLjE3LS42Ni0uMjctLjIxLS4xLS40MS0uMTktLjYxLS4yOGwtLjU0LS4zYy0uMTktLjA5LS4zMS0uMjEtLjQ3LS4zLS41OC0uNC0uODctMS43Ny0uODctMS43N2wtLjItLjctLjEtLjM1Yy0uMDMtLjEyLS4wNS0uMjYtLjA5LS4zOWwtLjE3LS43OS0uMTktLjc4LS4xNi0uODRjLS4xLS41Ny0uMjItMS4xLS4zLTEuNjktLjEzLS43NC0uMzQtMi42NS0uNi01LjMyLS4xNS0xLjUxLS4zMi0zLjI3LS41LTUuMTktLjU0LTUuNy00LjY5LTEwLjA5LTExLjI2LTExLjUzLDAsMC0xLjI0LS4yNi0zLjA4LS41NFoiLz48cGF0aCBkPSJNMjE1LjY2LDM4Ny40Yy0xLjUzLDAtMy4wNi0uMDktNC41NC0uMjgtLjc0LS4wOS0xLjU4LS4yMi0yLjU1LS40MmwtLjIyLS4wNC0uMDctLjIxYy0yLjkzLTguNjctNC4xMS0xMy42OS0zLjU5LTE1LjM3LC40Ny0xLjUzLC45NS0yLjcxLDEuMzgtMy43NiwxLjA5LTIuNjcsMS44MS00LjQzLDEuMTgtOC45Ni0uMDUtLjM3LS4xMi0uNzItLjIxLTEuMDYtLjQ3LTEuODctMS40Mi0zLjMzLTIuMzMtNC43NC0xLjA5LTEuNjctMi4yMS0zLjQtMi40OS01Ljc3LS4wMS0uMTEtLjAzLS4yMS0uMDQtLjMxLS4wMS0uMS0uMDMtLjE5LS4wNS0uMjktLjAyLS4xMS0uMDMtLjItLjA2LS4yOS0uMDUtLjIzLS4xLS40NC0uMTYtLjY1LS4wMy0uMS0uMDUtLjE5LS4wOC0uMjctLjAzLS4xLS4wNS0uMTYtLjA4LS4yMy0uMDItLjA3LS4wNC0uMTMtLjA3LS4xOS0uMjQtLjYzLS41NS0xLjIxLS45My0xLjczLS4wNi0uMDgtLjExLS4xNS0uMTctLjIyLS40LS41LS44Ny0uOTQtMS40MS0xLjMzbC0uMjgtLjE5Yy0uMDktLjA2LS4xOC0uMTEtLjI3LS4xNy0uMTEtLjA3LS4yLS4xMi0uMy0uMTgtLjA5LS4wNS0uMTctLjA5LS4yNS0uMTMtLjUzLS4yOC0xLjA5LS41MS0xLjcyLS43Mi0uMjUtLjA4LS40OS0uMTYtLjc0LS4yMy0uMjQtLjA3LS41LS4xMy0uNzYtLjE5bC4xNS0uNzZjMS44MywuMjgsMy4wOSwuNTUsMy4xLC41NSw2LjY5LDEuNDYsMTEuMDEsNS44OSwxMS41NywxMS44NywuMTgsMS45MywuMzUsMy42OCwuNSw1LjE5LC4yOSwyLjg4LC40OCw0LjYxLC42LDUuMjksLjA1LC4zNiwuMTIsLjY5LC4xOCwxLjAyLC4wNCwuMjIsLjA4LC40NCwuMTIsLjY3bC4xNSwuODQsLjM2LDEuNTVjLjAxLC4wNiwuMDMsLjEyLC4wNCwuMTgsLjAxLC4wNywuMDMsLjEzLC4wNCwuMmwuMywxLjA0Yy4xMiwuNTMsLjQxLDEuMzQsLjcyLDEuNTUsLjA1LC4wMywuMTEsLjA3LC4xOCwuMTIsLjA4LC4wNiwuMTUsLjExLC4yMywuMTVsLjU2LC4zMWMuMTgsLjA4LC4zOSwuMTcsLjYsLjI4LC4xMiwuMDYsLjI1LC4xMSwuMzgsLjE2LC4wOSwuMDMsLjE4LC4wNywuMjYsLjEsMS4wMiwuMzksMiwuNywyLjk3LC45NCwxLjgzLC40NywxLjgzLDYuOTgsMS40MywxMC4zNy0uMjgsMi4zNC0xLjA1LDYuMjgtMy4wMyw2LjMtLjIxLDAtLjQxLDAtLjYyLDBabS02LjcyLTEuNDJjLjg2LC4xNywxLjYsLjI5LDIuMjcsLjM2LDEuNjUsLjIxLDMuMzUsLjMsNS4wNSwuMjcsLjk3LS4wMSwxLjg2LTIuMjEsMi4yNy01LjYxLC42LTQuOTktLjA4LTkuMzMtLjg0LTkuNTItMS4wMS0uMjUtMi4wMS0uNTYtMy4wOC0uOTctLjA5LS4wNC0uMTctLjA3LS4yNS0uMS0uMTYtLjA2LS4zMS0uMTItLjQ1LS4xOS0uMi0uMS0uMzktLjE5LS41OS0uMjdsLS41Ny0uMzJjLS4xMy0uMDYtLjI0LS4xNC0uMzQtLjIxLS4wNS0uMDMtLjA5LS4wNy0uMTQtLjEtLjctLjQ5LTEuMDItMS44Ni0xLjA1LTIuMDJsLS4yOS0xLjAzYy0uMDItLjA5LS4wNC0uMTYtLjA1LS4yNC0uMDEtLjA2LS4wMi0uMTEtLjA0LS4xN2wtLjM2LTEuNTYtLjE2LS44NmMtLjA0LS4yMy0uMDgtLjQ0LS4xMi0uNjYtLjA3LS4zNC0uMTMtLjY4LS4xOC0xLjA1LS4xMi0uNjgtLjMyLTIuNDMtLjYtNS4zMy0uMTUtMS41MS0uMzItMy4yNy0uNS01LjItLjUtNS4yNy00LjEyLTkuMjctOS43OS0xMC44OSwuMDQsLjAyLC4wNywuMDUsLjExLC4wN2guMDVsLjEsLjA5LC4yNSwuMTdjLjYsLjQ0LDEuMTIsLjkzLDEuNTYsMS40NywuMDcsLjA4LC4xNCwuMTYsLjIsLjI2LC40MiwuNTcsLjc3LDEuMjEsMS4wMywxLjksLjAzLC4wNiwuMDUsLjEzLC4wOCwuMjEsLjAzLC4wOCwuMDYsLjE2LC4wOSwuMjYsLjAzLC4wOCwuMDcsLjIsLjEsLjMxLC4wNiwuMjIsLjEyLC40NCwuMTYsLjY4LC4wMiwuMSwuMDQsLjIxLC4wNiwuMzIsLjAyLC4wOSwuMDMsLjIsLjA1LC4zMSwuMDIsLjExLC4wMywuMjIsLjA0LC4zMywuMjYsMi4xOSwxLjI5LDMuNzYsMi4zNyw1LjQzLC45NSwxLjQ2LDEuOTMsMi45OCwyLjQzLDQuOTcsLjEsLjM3LC4xNywuNzUsLjIzLDEuMTUsLjY2LDQuNzMtLjEzLDYuNjctMS4yMyw5LjM2LS40MiwxLjAzLS45LDIuMi0xLjM2LDMuNjktLjMxLDEuMDIsLjA0LDQuNCwzLjUxLDE0LjY4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTE1OC4zOCwzNjcuMjhsLjA2LC45NywxLjAxLDE2LjI3LC40MywyMy4wNyw1NS4zNi0zLjQ0cy0zLjY1LTkuMTEtNi42LTE3LjgyYy0yLjI5LTYuNzYtNC4xNi0xMy4yOC0zLjU5LTE1LjEzLDEuNjUtNS4zNiwzLjQ3LTYuNDQsMi41Ny0xMi44OC0uMDUtLjM5LS4xMy0uNzUtLjIyLTEuMTEtMS4wNS00LjE4LTQuMzEtNi4yMS00LjgxLTEwLjQ2LS41My00LjQ0LTMuMzMtNi42NS03LjY3LTcuNjQtMi4yMS0uNTEtNC44MS0uNy03LjcyLS43Mi0uMTgsMC0uMzcsMC0uNTYsMC0uMTMsMC0uMjYsMC0uMzgsMC0uNzgsMC0xLjU4LC4wMi0yLjQsLjA0LDAsMC0uMTEsMC0uMzMsLjAyLS41MSwuMDUtMS41OSwuMTYtMy4wNywuNC0uMDMsMC0uMDYsMC0uMDksLjAyLTIyLjIyLC4xMi0yMi44NiwxNC42LTIyLDI4LjQyWiIvPjxwYXRoIGQ9Ik0xNTkuNSw0MDhsLS40NC0yMy40OC0xLjA3LTE3LjIyYy0uNS04LjA4LS41OS0xNy4xOCw0Ljc2LTIyLjkxLDMuNjgtMy45NCw5LjQzLTUuODcsMTcuNTgtNS45MiwuMDIsMCwuMDUsMCwuMDctLjAxLDEuMDgtLjE4LDIuMTItLjMyLDMuMDktLjQxbC4zNC0uMDJjLjgxLS4wMiwxLjYyLS4wNCwyLjQyLS4wNCwuMzEsMCwuNjQsMCwuOTUsMCwzLjE4LC4wMiw1LjczLC4yNiw3LjgsLjczLDQuOTMsMS4xMyw3LjQ2LDMuNjcsNy45Nyw3Ljk4LC4yNiwyLjE5LDEuMjksMy43NywyLjM3LDUuNDQsLjk1LDEuNDYsMS45MywyLjk4LDIuNDMsNC45NywuMSwuMzcsLjE3LC43NSwuMjMsMS4xNSwuNjYsNC43My0uMTMsNi42Ny0xLjIzLDkuMzYtLjQyLDEuMDMtLjksMi4yLTEuMzYsMy42OS0uMzIsMS4wMywuMDUsNC40NSwzLjU4LDE0Ljg5LDIuOTEsOC42LDYuNTUsMTcuNzEsNi41OSwxNy44bC4yLC41LTU2LjMsMy41Wm0yNy4xNS02OS4yNGMtLjEzLDAtLjI1LDAtLjM4LDAtLjgsMC0xLjYxLC4wMi0yLjM5LC4wNGwtLjMxLC4wMmMtLjk1LC4wOS0xLjk3LC4yMi0zLjAzLC40bC0uMTUsLjAyYy03Ljk1LC4wNC0xMy41MywxLjktMTcuMDYsNS42OC01LjE1LDUuNTEtNS4wNSwxNC40Mi00LjU1LDIyLjMzaDBzLjA2LC45NywuMDYsLjk3bDEuMDEsMTYuMjYsLjQyLDIyLjY5LDU0LjQyLTMuMzhjLS44LTIuMDMtMy44OC05Ljg4LTYuNDEtMTcuMzUtMi45My04LjY3LTQuMTEtMTMuNjktMy41OS0xNS4zNywuNDctMS41MywuOTUtMi43MSwxLjM4LTMuNzYsMS4wOS0yLjY3LDEuODEtNC40MywxLjE4LTguOTYtLjA1LS4zNy0uMTItLjcyLS4yMS0xLjA2LS40Ny0xLjg3LTEuNDItMy4zMy0yLjMzLTQuNzQtMS4wOS0xLjY3LTIuMjEtMy40LTIuNDktNS43Ny0uNDctMy45NC0yLjgxLTYuMjYtNy4zNy03LjMxLTIuMDEtLjQ2LTQuNS0uNjktNy42My0uNzEtLjE5LDAtLjM3LDAtLjU1LDBaIi8+PC9nPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTc5LjIzLDMyNy4wN2wxNC4zMiwyLjQ2LTEuOSw1LjQydi4wMnMtLjUzLDEuNS0uNTMsMS41bC0uNSwxLjQ0LS4xMSwuMy0uNTksMS4zcy0uNTYsMi4yNS01LjA3LDIuMjUtNi4xMS0yLjIxLTYuMTEtMi4yMWwuNDgtMTIuNDhaIi8+PHBhdGggZD0iTTE4NC44NywzNDIuMTRjLTQuNjUsMC02LjM2LTIuMjctNi40My0yLjM3bC0uMDgtLjExLC41LTEzLjA1LDE1LjIxLDIuNjItMy4xOSw5LjExLS41OSwxLjMxYy0uMTEsLjM0LS45NSwyLjUtNS40MywyLjVabS01LjcyLTIuNzNjLjM3LC40LDIuMDIsMS45NSw1LjcyLDEuOTUsNC4xLDAsNC42Ny0xLjg4LDQuNjktMS45NmwuMDItLjA2LC41OS0xLjMsMi44Ny04LjIxLTEzLjQzLTIuMzEtLjQ2LDExLjg4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE3OC43NywzMjIuNjhjLS4zMiw2LjczLDMuMzksMTIuMjgsOS44NCwxNC4yMSw0Ljk0LDEuNDcsOC43Ni0uNiwxNC41Mi0xMy4wNiwyLjgzLTYuMTEtNC44OC0xMi40NC0xMS42MS0xMi43NS02LjczLS4zMi0xMi40NCw0Ljg4LTEyLjc1LDExLjYxWiIvPjxwYXRoIGQ9Ik0xOTEuMTksMzM3LjdjLS44OCwwLTEuNzYtLjE2LTIuNjgtLjQ0LTYuNTctMS45Ni0xMC40NS03LjU1LTEwLjEyLTE0LjZoMGMuMzMtNi45Myw2LjIzLTEyLjMsMTMuMTYtMTEuOTgsNC40NCwuMjEsOS4yMywyLjk0LDExLjM5LDYuNSwxLjM4LDIuMjcsMS41Nyw0LjYyLC41Niw2LjgxLTQuOSwxMC42MS04LjQ5LDEzLjcxLTEyLjMsMTMuNzFabS0xMi4wMy0xNWMtLjMxLDYuNjcsMy4zNSwxMS45Niw5LjU2LDEzLjgyLDQuNTIsMS4zNSw4LjI3LS4zMiwxNC4wNi0xMi44NiwxLjEzLTIuNDUsLjM1LTQuNjYtLjUyLTYuMDgtMi4wMy0zLjM1LTYuNTYtNS45My0xMC43Ni02LjEyLTYuNS0uMzEtMTIuMDQsNC43NC0xMi4zNSwxMS4yNGgwWiIvPjwvZz48cGF0aCBkPSJNMTg5LjQ0LDM0MC4zcy4zMi0uMjYsLjQ5LS44Yy4xOS0uNTgsMS4wMS0yLjIxLDEuMDEtMi4yMSwwLDAtNy43My0uOTEtOS41My02LjA4LDAsMC0xLjM4LDYuMzYsOC4wMyw5LjA5WiIvPjxwYXRoIGQ9Ik0xNzguNTcsMzE5LjgyczE1LjE5LDUuMDUsMjMuMzQtMy4wOWMwLDAtNS4xOCw1Ljg5LTguNzcsNS4yNiwwLDAsNS4wOCwxLjU4LDguNzctNC4yMSwwLDAsMS4wMiw1LjMyLDMuNjcsNi40MSwwLDAsMi40Mi0xNC44Mi0xMC4zNS0xNi42Ni0xMi43Ny0xLjg0LTE2LjA0LDYuNDUtMTYuNjYsMTIuM1oiLz48cGF0aCBkPSJNMjA1Ljc0LDMyMi40N3MtLjU3LDYuNjYtMy4zMiw4Ljc0Yy0yLjc0LDIuMDgtMy4wNiwzLjItMy4wNiwzLjIsMCwwLS4xOC0xLjI4LDEuNjktNi4zNywxLjg2LTUuMDksLjQ2LTkuMTcsLjg2LTExLjMyLC40MS0yLjE1LDQuMjMsMy4xMiwzLjgyLDUuNzRaIi8+PHBhdGggZD0iTTE5My41NSwzMjAuOTNzLTEuMDksLjU0LTUuMDMsMS4wM2MtMy45NCwuNDktMy42LDMuMzUtMy41Miw0LjQ0LC4wNywxLjA4LTEuMzYtMS42OCwwLTQuNTMsMS4zNi0yLjg2LDEuMTUtMy45NCwxLjE1LTMuOTRsNy40MSwzLjAxWiIvPjxwYXRoIGQ9Ik0xODYuMTQsMzIwLjg4cy00LjMyLDEuNDMtNC4zMiw2LjYzYzAsNS4yLDMuNDgsMTUuMjYtLjQ4LDE3LjMzLDAsMCwyLjkyLTMuMTUtLjQyLTguMjgtMy4zNC01LjEzLTQuMDItMTUuNC0uOTktMjIuMDksMy4wMy02LjY5LDYuMjEsNi40Miw2LjIxLDYuNDJaIi8+PHBhdGggZD0iTTE4Ni4xNCwzMDguMjVzMS4yOS01LjIxLTYuMzktNi4xYy03LjY5LS44OS02LjcsMTcuOTQtMTIuMTMsMTguNzMsMCwwLC41MiwzLjEsNS41Mi0xLjM4LDUtNC40OCw2LjExLTEyLjgyLDEwLjU1LTEwLjE1LDQuNDQsMi42NiwyLjQ1LTEuMSwyLjQ1LTEuMVoiLz48L2c+PHBhdGggZD0iTTE3Ni41OCwzNjJzMS40MSwxNS4wNCwxNS44MiwyMS40NWMwLDAtMTEuMjctMS44My0xNC40Ny04LjYycy0xLjM1LTEyLjg0LTEuMzUtMTIuODRaIi8+PHBhdGggZD0iTTE5MS4wNSwzOTMuMzdsLS4zNS0uMDJjLS45LS4wNS0yMi4yLTEuNDEtMjguNDEtMTMuNTYtNi4xNi0xMi4wNy0zLjgzLTI2LjQ4LTMuODEtMjYuNjJsLjc3LC4xM2MtLjAyLC4xNC0yLjMxLDE0LjMsMy43MywyNi4xNCw1LjU5LDEwLjkzLDI0LjYxLDEyLjg5LDI3LjQyLDEzLjEybDEuNTQtOC43NmMtMS44LS4yNi04Ljg3LTEuNTgtMTMuMTMtNi45NS0yLjY1LTMuMzQtMy42Ny03LjYtMy4wMi0xMi42NWwuNzcsLjFjLS42Miw0LjgzLC4zNCw4Ljg5LDIuODUsMTIuMDYsNC42LDUuOCwxMi45Myw2LjcxLDEzLjAyLDYuNzJsLjQyLC4wNC0xLjgsMTAuMjdaIi8+PHBhdGggZD0iTTE5MC43MywzOTIuOTZzLTI5LjA4LDQuMTQtMzEuODMtMTIuMDRjMCwwLS45NS0xOC40My0uNDktMTguMjQsLjM2LC4xNiwuMzEsMTguMDEsMTEuMjcsMjQuMTQsMTAuOTcsNi4xMywyMS4wNCw2LjE0LDIxLjA0LDYuMTRaIi8+PC9nPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjEyLjM2LDM5Mi45OGgtMjEuNjRjLjQ1LS4wMSwuODcsLjE0LDEuMTcsLjM5LC4zLC4yNSwuNDksLjYsLjQ4LC45OCwwLC43Ny0uNzUsMS4zOS0xLjY2LDEuMzlsNDQuNSwuMDNjLjkxLDAsMS42Ni0uNjMsMS42Ni0xLjM5LDAtLjM4LS4xOS0uNzMtLjQ4LS45OC0uMy0uMjUtLjcxLS40MS0xLjE3LS40MWwtMjIuODYtLjAyWiIvPjxwYXRoIGQ9Ik0yMzUuMjIsMzk2LjE2aDBsLTQ0LjUtLjAzaDB2LS43OGgwYy4zNSwwLC42Ny0uMTEsLjkyLS4zMiwuMjItLjE5LC4zNS0uNDMsLjM1LS42OSwwLS4yNS0uMTItLjUtLjM0LS42OC0uMjQtLjIxLS41Ny0uMzItLjkyLS4zMmgwdi0uNzhoMGw0NC41LC4wM2MuNTMsMCwxLjA0LC4xOCwxLjQyLC41LC40LC4zNCwuNjIsLjc5LC42MiwxLjI4LDAsLjQ5LS4yMiwuOTQtLjYzLDEuMjgtLjM4LC4zMi0uODksLjUtMS40MiwuNVptLTQyLjgxLS44MWw0Mi44MSwuMDNoMGMuMzUsMCwuNjctLjExLC45Mi0uMzIsLjIyLS4xOSwuMzUtLjQzLC4zNS0uNjksMC0uMjUtLjEyLS40OS0uMzUtLjY4LS4yNC0uMi0uNTctLjMyLS45Mi0uMzJsLTQyLjgtLjAzYy4yMywuMjksLjM1LC42MywuMzUsMSwwLC4zNi0uMTIsLjcxLS4zNiwxWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE2Ni40NywzOTIuOTVjLS43NywwLTEuMzksLjYyLTEuMzksMS4zOSwwLC4zOCwuMTUsLjczLC40MSwuOTgsLjI1LC4yNSwuNiwuNDEsLjk4LC40MWwyNC41NCwuMDJjLjc3LDAsMS4zOS0uNjMsMS4zOS0xLjM5LDAtLjM4LS4xNS0uNzMtLjQxLS45OC0uMjUtLjI1LS42LS40MS0uOTgtLjQxbC0yNC4wMi0uMDJoLS41MloiLz48cGF0aCBkPSJNMTkxLjAxLDM5Ni4xM2gwbC0yNC41NC0uMDJjLS40NywwLS45Mi0uMTktMS4yNi0uNTItLjM0LS4zNC0uNTItLjc5LS41Mi0xLjI2LDAtLjQ3LC4xOS0uOTIsLjUyLTEuMjYsLjM0LS4zNCwuNzgtLjUyLDEuMjYtLjUyaDBsMjQuNTQsLjAyYy40OCwwLC45MiwuMTksMS4yNiwuNTIsLjM0LC4zMywuNTIsLjc4LC41MiwxLjI2LDAsLjQ3LS4xOSwuOTItLjUyLDEuMjYtLjM0LC4zNC0uNzgsLjUyLTEuMjYsLjUyWm0tMjQuNTQtMi44Yy0uMjcsMC0uNTIsLjEtLjcxLC4yOS0uMTksLjE5LS4yOSwuNDQtLjMsLjcxLDAsLjI3LC4xLC41MiwuMjksLjcxLC4xOSwuMTksLjQ0LC4zLC43MSwuM2wyNC41NCwuMDJoMGMuMjcsMCwuNTItLjEsLjcxLS4yOSwuMTktLjE5LC4zLS40NCwuMy0uNzEsMC0uMjctLjEtLjUyLS4yOS0uNy0uMTktLjE5LS40NC0uMy0uNzEtLjNsLTI0LjU0LS4wMmgwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTE4OS41NCwzOTIuMjRjLjM4LC40NiwuOTMsLjczLDEuNTIsLjczaDEuNzVjLS41OSwwLTEuMTUtLjI3LTEuNTItLjczLS4zOC0uNDYtLjUyLTEuMDYtLjM5LTEuNjRsNS44My0yNy43OGMuMTktLjksMS0xLjU2LDEuOTMtMS41NmgtMS43NWMtLjkyLDAtMS43NCwuNjUtMS45MywxLjU2bC01LjgzLDI3Ljc4Yy0uMTIsLjU4LC4wMiwxLjE4LC4zOSwxLjY0WiIvPjxwYXRoIGQ9Ik0xOTIuODIsMzkzLjM1aC0xLjc1Yy0uNzEsMC0xLjM3LS4zMi0xLjgyLS44N2gwYy0uNDUtLjU2LS42Mi0xLjI3LS40Ny0xLjk3bDUuODMtMjcuNzhjLjIzLTEuMDgsMS4yLTEuODcsMi4zMS0xLjg3aDEuNzZzMCwwLDAsMHYuNzhoMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NSwuMzIsMS4zMiwuMywuMzcsLjc1LC41OCwxLjIyLC41OHYuNzhabS0yLjk3LTEuMzZjLjMsLjM3LC43NSwuNTgsMS4yMiwuNThoLjAxcy0uMDUtLjA2LS4wOC0uMDljLS40NS0uNTYtLjYyLTEuMjctLjQ3LTEuOTdsNS44My0yNy43OGMuMDktLjQyLC4yOS0uNzksLjU2LTEuMDloMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NCwuMzIsMS4zMloiLz48L2c+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0xOTEuMjksMzkyLjI0Yy4zOCwuNDYsLjkzLC43MywxLjUyLC43M2w0Mi4yMywuMDNjLjkyLDAsMS43NC0uNjYsMS45My0xLjU2bDUuODMtMjcuNzhjLjEyLS41OC0uMDItMS4xOC0uNC0xLjY0LS4zNy0uNDYtLjkzLS43My0xLjUyLS43M2wtNDIuMjItLjAzYy0uOTIsMC0xLjc0LC42Ni0xLjkzLDEuNTZsLTUuODMsMjcuNzhjLS4xMiwuNTgsLjAyLDEuMTgsLjM5LDEuNjRaIi8+PHBhdGggZD0iTTIzNS4wNCwzOTMuMzhoMGwtNDIuMjMtLjAzYy0uNzEsMC0xLjM3LS4zMi0xLjgyLS44N2gwYy0uNDUtLjU2LS42Mi0xLjI3LS40Ny0xLjk3bDUuODMtMjcuNzhjLjIzLTEuMDgsMS4yLTEuODcsMi4zMS0xLjg3aDBsNDIuMjIsLjAzYy43MSwwLDEuMzgsLjMyLDEuODIsLjg3LC40NSwuNTUsLjYyLDEuMjcsLjQ4LDEuOTZsLTUuODMsMjcuNzhjLS4yMywxLjA4LTEuMiwxLjg3LTIuMzEsMS44N1ptLTQzLjQ1LTEuMzljLjMsLjM3LC43NSwuNTgsMS4yMiwuNThsNDIuMjMsLjAzaDBjLjc0LDAsMS4zOS0uNTMsMS41NS0xLjI1bDUuODMtMjcuNzhjLjA5LS40Ny0uMDItLjk1LS4zMi0xLjMyLS4zLS4zNy0uNzQtLjU4LTEuMjItLjU4bC00Mi4yMi0uMDNoMGMtLjc0LDAtMS4zOSwuNTMtMS41NSwxLjI1bC01LjgzLDI3Ljc4Yy0uMSwuNDcsLjAyLC45NSwuMzIsMS4zMloiLz48L2c+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0yMTQuNTYsMzc3LjEyYzAsMS4yNiwxLjAyLDIuMjksMi4yOSwyLjI5LDEuMjYsMCwyLjI5LTEuMDIsMi4yOS0yLjI5LDAtMS4yNi0xLjAyLTIuMjktMi4yOS0yLjI5LTEuMjYsMC0yLjI5LDEuMDItMi4yOSwyLjI5WiIvPjxwYXRoIGQ9Ik0yMTYuODUsMzc5LjhoMGMtLjcyLDAtMS4zOS0uMjgtMS44OS0uNzktLjUxLS41MS0uNzgtMS4xOC0uNzgtMS44OSwwLS43MiwuMjgtMS4zOSwuNzktMS44OSwuNTEtLjUxLDEuMTgtLjc4LDEuODktLjc4aDBjLjcyLDAsMS4zOSwuMjgsMS44OSwuNzksLjUxLC41MSwuNzgsMS4xOCwuNzgsMS44OSwwLDEuNDgtMS4yLDIuNjgtMi42OCwyLjY4Wm0wLTQuNThjLTEuMDUsMC0xLjksLjg1LTEuOSwxLjksMCwxLjA1LC44NSwxLjksMS45LDEuOWgwYzEuMDUsMCwxLjktLjg1LDEuOS0xLjksMC0xLjA1LS44NS0xLjktMS45LTEuOWgwWiIvPjwvZz48L2c+PGc+PGc+PGc+PHBhdGggY2xhc3M9ImUiIGQ9Ik0yMzguMzUsNDY4LjIzcy45MSw1LjQ0LDIuNTksNS41N2gtMTguMzZsLS4yNS01LjU3aDE2LjAyWiIvPjxwYXRoIGQ9Ik0yNDAuOTQsNDc0LjJoLTE4LjczbC0uMjgtNi4zNWgxNi43NmwuMDUsLjMzYy4zNiwyLjEzLDEuMjksNS4xNywyLjI0LDUuMjVsLS4wMywuNzhabS0xNy45OS0uNzhoMTYuNzhjLS45Ny0xLjI3LTEuNTEtMy43NC0xLjctNC44aC0xNS4yOWwuMjEsNC44WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI0Ni41Miw0NzUuMjJsLTQuNDItMS4xMmMtLjkzLS4yMy0xLjczLS44Mi0yLjI0LTEuNjJsLTEuMDQtMi4xNi03LjM3LDMuNDItOS4wMS0zLjA3LC4wNywxLjU1LDQuOCwxLjUyaC00Ljc5Yy0uOCwwLTEuNDUsLjY1LTEuNDUsMS40NXYyLjIxYzAsLjg1LC42OSwxLjU0LDEuNTQsMS41NGg1LjQ5bDEuMzQtMi4wNCwyLjYsMi4wNGgxNy4yNmMuMzQsMCwuNTgtLjMzLC40OC0uNjVoMGMtLjQ4LTEuNTEtMS43MS0yLjY3LTMuMjUtMy4wNloiLz48cGF0aCBkPSJNMjQ5LjI5LDQ3OS4zMmgtMTcuMzlsLTIuMzctMS44Ni0xLjIzLDEuODZoLTUuN2MtMS4wNywwLTEuOTMtLjg3LTEuOTMtMS45M3YtMi4yMWMwLTEuMDEsLjgyLTEuODQsMS44NC0xLjg0aDIuMjhsLTIuNjctLjg1LS4xMS0yLjM5LDkuNCwzLjIsNy41OC0zLjUyLDEuMTksMi40OWMuNDYsLjcyLDEuMTcsMS4yMywyLDEuNDRsNC40MiwxLjEyYzEuNjgsLjQzLDMsMS42NywzLjUzLDMuMzIsLjA5LC4yNywuMDQsLjU2LS4xMywuOC0uMTcsLjIzLS40MywuMzYtLjcyLC4zNlptLTE3LjEyLS43OGgxNy4xMnMuMDgtLjAzLC4wOS0uMDVjLjAxLS4wMiwuMDMtLjA1LC4wMi0uMS0uNDUtMS40LTEuNTYtMi40NC0yLjk4LTIuOGwtNC40Mi0xLjEyYy0xLjAzLS4yNi0xLjkxLS45LTIuNDctMS43OWwtLjAyLS4wNC0uODctMS44Mi03LjE2LDMuMzItOC42Mi0yLjk0LC4wMywuNzEsNi45NCwyLjJoLTcuM2MtLjU5LDAtMS4wNiwuNDgtMS4wNiwxLjA2djIuMjFjMCwuNjQsLjUyLDEuMTYsMS4xNiwxLjE2aDUuMjhsMS40Ni0yLjIxLDIuODMsMi4yMVoiLz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjMwLjY4LDQyNi4xNGw4Ljk0LDQyLjA5aC0xOC4xNGwtMTQuNy00NC40OHM1LjI3LTIuNCwxMi43LTUuNTZjNy40My0zLjE1LDkuMzEsMy4yNywxMS4yLDcuOTRaIi8+PHBhdGggZD0iTTI0MC4wOSw0NjguNjJoLTE4LjlsLTE0Ljg5LTQ1LjA4LC4zMi0uMTRjLjA1LS4wMiw1LjM2LTIuNDQsMTIuNzEtNS41NiwyLjM0LS45OSw0LjI5LTEuMTQsNS45Ni0uNDQsMi44MywxLjE5LDQuMTcsNC41OSw1LjM1LDcuNTksLjEzLC4zNCwuMjcsLjY4LC40LDEuMDFsLjAyLC4wNiw5LjA0LDQyLjU2Wm0tMTguMzQtLjc4aDE3LjM4bC04LjgzLTQxLjU5Yy0uMTMtLjMyLS4yNi0uNjUtLjM5LS45OC0xLjEzLTIuODYtMi40LTYuMS00LjkzLTcuMTYtMS40Ni0uNjEtMy4yMS0uNDctNS4zNSwuNDQtNi4zMiwyLjY4LTExLjEzLDQuODQtMTIuMzgsNS40MWwxNC41LDQzLjg4WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iZCIgZD0iTTI0MC4wNiw0NjQuODdoLTE5LjYzYy0uOTMsMC0xLjY4LC43Ni0xLjY4LDEuNjhoMGMwLC45MywuNzYsMS42OCwxLjY4LDEuNjhoMTkuNjNjLjkzLDAsMS42OC0uNzYsMS42OC0xLjY4aDBjMC0uOTMtLjc2LTEuNjgtMS42OC0xLjY4WiIvPjxwYXRoIGQ9Ik0yNDAuMDYsNDY4LjYyaC0xOS42M2MtMS4xNCwwLTIuMDctLjkzLTIuMDctMi4wN3MuOTMtMi4wNywyLjA3LTIuMDdoMTkuNjNjMS4xNCwwLDIuMDcsLjkzLDIuMDcsMi4wN3MtLjkzLDIuMDctMi4wNywyLjA3Wm0tMTkuNjMtMy4zNmMtLjcxLDAtMS4yOSwuNTgtMS4yOSwxLjI5cy41OCwxLjI5LDEuMjksMS4yOWgxOS42M2MuNzEsMCwxLjI5LS41OCwxLjI5LTEuMjlzLS41OC0xLjI5LTEuMjktMS4yOWgtMTkuNjNaIi8+PC9nPjxwb2x5Z29uIHBvaW50cz0iMjE3LjU2IDQxOC45MyAyMzQuNzYgNDQ1LjM5IDIzMS45NyA0MzIuMjIgMjE3LjU2IDQxOC45MyIvPjwvZz48Zz48Zz48cG9seWdvbiBjbGFzcz0iZCIgcG9pbnRzPSIxOTMuOTggNDM4LjI5IDEwNC4zNSA0MzguMjkgMTQ4LjIzIDQyMi4yNCAyMzcuODYgNDIyLjI0IDE5My45OCA0MzguMjkiLz48cGF0aCBkPSJNMTk0LjA0LDQzOC42OEgxMDIuMTVsNDYuMDEtMTYuODNoOTEuODlsLTQ2LjAxLDE2LjgzWm0tODcuNS0uNzhoODcuMzZsNDEuNzYtMTUuMjdoLTg3LjM2bC00MS43NiwxNS4yN1oiLz48L2c+PGc+PHBvbHlnb24gcG9pbnRzPSIxOTMuOTggNTIwLjg3IDEwNC4zNSA1MjAuODcgMTQ4LjIzIDUwNC44MiAyMzcuODYgNTA0LjgyIDE5My45OCA1MjAuODciLz48cGF0aCBkPSJNMTk0LjA0LDUyMS4yNkgxMDIuMTVsNDYuMDEtMTYuODNoOTEuODlsLTQ2LjAxLDE2LjgzWm0tODcuNS0uNzhoODcuMzZsNDEuNzYtMTUuMjdoLTg3LjM2bC00MS43NiwxNS4yN1oiLz48L2c+PGc+PHJlY3QgY2xhc3M9ImUiIHg9IjEwNC4zNSIgeT0iNDM4LjI5IiB3aWR0aD0iODguMTgiIGhlaWdodD0iODIuNTgiLz48cGF0aCBkPSJNMTkyLjkxLDUyMS4yNkgxMDMuOTZ2LTgzLjM2aDg4Ljk2djgzLjM2Wm0tODguMTgtLjc4aDg3LjR2LTgxLjhIMTA0Ljc0djgxLjhaIi8+PC9nPjxnPjxwb2x5Z29uIGNsYXNzPSJqIiBwb2ludHM9IjIzNy44NiA0MjIuMjQgMjM3Ljg2IDUwNC44MiAxOTIuNTMgNTIwLjg3IDE5Mi41MyA0MzguMjkgMjM3Ljg2IDQyMi4yNCIvPjxwYXRoIGQ9Ik0xOTIuMTQsNTIxLjQydi04My40MWwuMjYtLjA5LDQ1Ljg2LTE2LjIzdjgzLjQxbC0uMjYsLjA5LTQ1Ljg2LDE2LjIzWm0uNzgtODIuODZ2ODEuNzZsNDQuNTYtMTUuNzd2LTgxLjc2bC00NC41NiwxNS43N1oiLz48L2c+PC9nPjxnPjxnPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMjY4LjY5LDQ0Mi45OHM0LjA0LDQuMjMsNS41MiwzLjQxbC0xNS4zNCwxMC4wOS0zLjI3LTQuNTIsMTMuMDktOC45OVoiLz48cGF0aCBkPSJNMjU4Ljc4LDQ1Ny4wMmwtMy43Mi01LjE0LDEzLjY5LTkuNCwuMjMsLjI0YzEuNTUsMS42Miw0LjIyLDMuOCw1LjA1LDMuMzRsLjQsLjY3LTE1LjY1LDEwLjNabS0yLjYyLTQuOTVsMi44MiwzLjksMTQuMDMtOS4yM2MtMS41OC0uNTUtMy41Ni0yLjQ0LTQuMzYtMy4yNGwtMTIuNDksOC41OFoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImQiIGQ9Ik0yNzkuNjUsNDQ0LjUxbC00LjMxLDEuNWMtLjksLjMxLTEuODksLjI3LTIuNzYtLjEybC0yLjA2LTEuMjQtNC4yOCw2LjkxLTkuMjIsMi4zOSwuOTEsMS4yNSw0Ljg1LTEuMzctNCwyLjYzYy0uNjcsLjQ0LS44NSwxLjM0LS40MSwyLjAxbDEuMjEsMS44NGMuNDcsLjcxLDEuNDMsLjkxLDIuMTQsLjQ0bDQuNTgtMy4wMnYtMi40NHMzLjI5LC4yNywzLjI5LC4yN2wxNC40Mi05LjQ4Yy4yOC0uMTksLjMtLjYsLjA0LS44MWgwYy0xLjI0LTEtMi45LTEuMjktNC40LS43N1oiLz48cGF0aCBkPSJNMjYwLjg3LDQ2MS40Yy0uNjMsMC0xLjI1LS4zMS0xLjYyLS44N2wtMS4yMS0xLjg0Yy0uMjctLjQxLS4zNi0uOS0uMjYtMS4zOCwuMS0uNDgsLjM4LS44OSwuNzktMS4xNmwxLjkxLTEuMjYtMi43LC43Ni0xLjQtMS45NCw5LjYyLTIuNDksNC40LTcuMSwyLjM2LDEuNDJjLjc4LC4zNSwxLjY1LC4zOCwyLjQ2LC4xbDQuMzEtMS41YzEuNjQtLjU3LDMuNDItLjI2LDQuNzcsLjgzLC4yMiwuMTgsLjM0LC40NSwuMzMsLjc0LS4wMSwuMjktLjE2LC41NC0uNCwuN2wtMTQuNTMsOS41Ni0zLS4yNXYyLjIzcy00Ljc2LDMuMTMtNC43NiwzLjEzYy0uMzMsLjIxLS43LC4zMi0xLjA2LC4zMlptNC4yMi04LjYybC02LjEsNC4wMWMtLjI0LC4xNi0uNCwuMzktLjQ2LC42Ny0uMDYsLjI4LDAsLjU2LC4xNSwuOGwxLjIxLDEuODRjLjM1LC41MywxLjA3LC42OCwxLjYsLjMzbDQuNDEtMi45di0yLjY1czMuNTgsLjMsMy41OCwuM2wxNC4zLTkuNDFzLjA1LS4wNywuMDUtLjA5YzAtLjAyLDAtLjA2LS4wNC0uMDktMS4xNC0uOTItMi42NS0xLjE4LTQuMDMtLjdoMGwtNC4zMSwxLjVjLTEsLjM1LTIuMDksLjMtMy4wNS0uMTRsLS4wNC0uMDItMS43My0xLjA0LTQuMTYsNi43MS04LjgyLDIuMjgsLjQxLC41Nyw3LTEuOTdaIi8+PC9nPjwvZz48Zz48cGF0aCBjbGFzcz0iZSIgZD0iTTE2MC40MSw0MTQuODZoMGMyLjE3LDEyLjUyLDguNDEsMTUuNTgsMjQuOTQsMTMuNjcsMjAuNzItMi40LDMyLjIyLTkuNiwzMi4yMi05LjZsMzUuOTcsMzMuMTksMTUuMzgtMTAuOXMtOS4zLTExLjgzLTIxLjQ1LTI2LjQzYy0xMi44Ni0xNS40Ni0xNS42MS0yNC4wOC0zOS44Ni0xOC4yNy0xNC45NiwzLjU5LTI2LjQ4LDMuNzktMzcuMzEsNi4yNmgwYy02LjI1LDEuNDMtMTAuMjUsMi40Mi0xMC4yNSwyLjQyLS4zLDMuMi0uMTgsNi40OCwuMzcsOS42NVoiLz48cGF0aCBkPSJNMjUzLjUsNDUyLjYybC0uMjMtLjIxLTM1Ljc2LTMzYy0xLjgyLDEuMDYtMTMuMjMsNy4zMi0zMi4xMiw5LjUtMi45NCwuMzQtNS41NiwuNTItNy44OSwuNTItMTEuMDQsMC0xNS41OC00LjA0LTE3LjQyLTE0LjE5aDBsLS4wNi0uMzJjLS41NS0zLjE4LS42OC02LjQ3LS4zNy05Ljc1bC4wMy0uMjcsLjI3LS4wN3M0LjA4LTEuMDEsMTAuMjYtMi40MmguMDVjNC44NC0xLjExLDkuODQtMS43NywxNS4xNC0yLjQ2LDYuNDktLjg1LDEzLjg1LTEuODIsMjIuMTMtMy44LDIxLjQ3LTUuMTQsMjYuMjgsLjkxLDM1Ljg2LDEyLjk3LDEuMzcsMS43MywyLjc5LDMuNTEsNC4zOCw1LjQzLDEyLjAyLDE0LjQ0LDIxLjM2LDI2LjMyLDIxLjQ2LDI2LjQ0bC4yNSwuMzItMTUuOTcsMTEuMzJabS0zNS44OS0zNC4xOGwuMjIsLjIsMzUuNzQsMzIuOTgsMTQuNzktMTAuNDhjLTEuNTctMS45OS0xMC4yOC0xMi45OS0yMS4xOS0yNi4xLTEuNi0xLjkzLTMuMDItMy43MS00LjQtNS40NC05LjM3LTExLjgtMTQuMDgtMTcuNzMtMzUuMDctMTIuNy04LjMxLDEuOTktMTUuNjksMi45Ni0yMi4yMSwzLjgxLTUuMywuNjktMTAuMywxLjM1LTE1LjExLDIuNDVoLS4wNWMtNS4yNSwxLjIxLTguOTQsMi4xMS05LjkzLDIuMzUtLjI2LDMuMDItLjE0LDYuMDIsLjM0LDguOTVoMGwuMDYsLjMyYzIuMSwxMi4xNiw3LjgzLDE1LjI4LDI0LjUxLDEzLjM1LDIwLjM4LTIuMzYsMzEuOTQtOS40NywzMi4wNS05LjU0bC4yNS0uMTZaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJlIiBkPSJNMTYwLjQxLDQxNC44NmgwYzEyLjgzLC44Miw5Ljg4LTEyLjA3LDkuODgtMTIuMDdoMGMtNi4yNSwxLjQzLTEwLjI1LDIuNDItMTAuMjUsMi40Mi0uMywzLjItLjE4LDYuNDgsLjM3LDkuNjVaIi8+PHBhdGggZD0iTTE2MS41NSw0MTUuMjhjLS4zOCwwLS43Ni0uMDEtMS4xNi0uMDRsLS4zMS0uMDItLjA2LS4zYy0uNTUtMy4xOC0uNjgtNi40Ny0uMzctOS43NWwuMDMtLjI3LC4yNy0uMDdzNC4wOC0xLjAxLDEwLjI2LTIuNDJoLjA5cy4zMSwwLC4zMSwwbC4wNywuM2MuMDYsLjI1LDEuMzQsNi4wNy0xLjc5LDkuNzUtMS42MSwxLjg5LTQuMDcsMi44NC03LjM0LDIuODRabS0uODEtLjhjMy40NSwuMTYsNS45OC0uNyw3LjU1LTIuNTUsMi40NC0yLjg3LDEuOTItNy4zNiwxLjY5LTguNjktNS4wNiwxLjE2LTguNjEsMi4wMy05LjU5LDIuMjctLjI2LDMuMDItLjE0LDYuMDQsLjM0LDguOTdaIi8+PC9nPjxnPjxwYXRoIGNsYXNzPSJkIiBkPSJNMjY3LjcxLDQzOS41NGwtMTUuOTMsMTEuNDdjLS43NSwuNTQtLjkyLDEuNi0uMzgsMi4zNWgwYy41NCwuNzUsMS42LC45MiwyLjM1LC4zOGwxNS45My0xMS40N2MuNzUtLjU0LC45Mi0xLjYsLjM4LTIuMzVoMGMtLjU0LS43NS0xLjYtLjkyLTIuMzUtLjM4WiIvPjxwYXRoIGQ9Ik0yNTIuNzcsNDU0LjQ0Yy0uMTEsMC0uMjMsMC0uMzQtLjAzLS41NS0uMDktMS4wMy0uMzgtMS4zNS0uODMtLjMyLS40NS0uNDUtMS0uMzYtMS41NCwuMDktLjU1LC4zOS0xLjAzLC44My0xLjM1bDE1LjkzLTExLjQ3Yy45My0uNjcsMi4yMi0uNDYsMi44OSwuNDcsLjY3LC45MywuNDYsMi4yMi0uNDcsMi44OWwtMTUuOTMsMTEuNDdjLS4zNSwuMjYtLjc3LC4zOS0xLjIsLjM5Wm0xNS4xNy0xNC41OWwtMTUuOTMsMTEuNDdjLS4yOCwuMi0uNDYsLjUtLjUyLC44NC0uMDYsLjM0LC4wMiwuNjgsLjIyLC45NiwuMiwuMjgsLjUsLjQ2LC44NCwuNTIsLjM0LC4wNiwuNjgtLjAyLC45Ni0uMjJsMTUuOTMtMTEuNDdjLjU4LS40MiwuNzEtMS4yMywuMjktMS44MS0uNDItLjU4LTEuMjMtLjcxLTEuODEtLjI5aDBaIi8+PC9nPjwvZz48L2c+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg=='\n}","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-input-text',\n templateUrl: './s-input-text.component.html',\n styleUrls: ['./s-input-text.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SInputTextComponent),\n multi: true\n }\n ]\n})\nexport class SInputTextComponent implements OnInit, OnChanges, ControlValueAccessor , AfterViewInit {\n \n onChange = (_: any) => { };\n onTouch = () => { };\n\n //REF PARA TYPE NUMBER\n @ViewChild('typeNumber') typeNumber: ElementRef | undefined ;\n //REF PARA TYPE RANGE\n @ViewChild('tooltipContainer', { static: false }) tooltipContainer: ElementRef | undefined;\n @ViewChild('tooltip', { static: false }) tooltip: ElementRef | undefined;\n\n\n @Input() text: string = '';\n @Input() id: any = Math.floor(Math.random() * 1000);\n @Input() name: string = '';\n @Input() placeHolder?: 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()\n get theme(): string { return this._theme; }\n set theme(val: string) {\n this._theme = ['default', 'green', 'yellow', 'red'].indexOf(val) != -1 ? val : 'default';\n };\n @Input()\n get type(): string { return this._type; }\n set type(val: string) {\n this._type = ['text', 'password', 'email', 'phone', 'url', 'search', 'number', 'color', 'date', 'time' , 'range'].indexOf(val) != -1 ? val : 'text';\n };\n @Input() classAdd: string = '';\n @Input() help: boolean = false;\n @Input() size: 'sm' | 'md' = 'md';\n @Input() rangeUnity: string = '';\n\n inputTimeout?: any;\n inputText: string = '';\n inputNumber: number = 0;\n _type: string = 'text';\n _theme: string = 'default';\n disabledstyle: string = '';\n visibility = false;\n iconName: string | undefined;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\n\n @Output() textChangeEvent = new EventEmitter<string>();\n @Output() clickHelpIconEvent = new EventEmitter<void>();\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n\n constructor() { }\n\n ngOnInit(): void {\n this.initializeComponent();\n }\n\n // Inicializa los valores del componente\n private initializeComponent(): void {\n if (this.text && this.type === 'number') {\n this.inputNumber = Number(this.text);\n }\n\n if (this._type === 'color' && this.text === '') {\n this.text = '#000000';\n }\n\n this.inputText = this.text;\n\n if (this.disabled) {\n this.disabledstyle = 'disabled-active';\n }\n\n if (this.type === 'color' && this.readOnly) {\n this.disabled = true;\n }\n\n this.loadTheme();\n }\n\n ngAfterViewInit(): void {\n //Ajustes Type Range\n if(this.type === 'range'){\n this.rangeOnLoad()\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['theme']) {\n this.loadTheme();\n }\n\n if (changes['text']) {\n this.updateText();\n }\n\n if (changes['disabled'] || changes['readOnly']) {\n this.updateDisabledAndReadOnlyState();\n }\n }\n\n // Actualiza el texto y los números\n private updateText(): void {\n if (this.text && this.type === 'number') {\n this.inputNumber = Number(this.text);\n }\n\n if (this._type === 'color' && this.text === '') {\n this.text = '#000000';\n }\n\n this.inputText = this.text;\n }\n\n // Actualiza el estado disabled y readOnly\n private updateDisabledAndReadOnlyState(): void {\n this.disabledstyle = this.disabled ? 'disabled-active' : '';\n\n // Si el input es de tipo color y está en modo de solo lectura, se deshabilita.\n if (this.type === 'color' && this.readOnly) {\n this.disabled = true;\n }\n }\n\n\n private loadTheme() {\n switch (this.theme) {\n case \"default\":\n this.iconName = \"\"\n break;\n case \"red\":\n this.iconName = \"error_outline\"\n break;\n case \"green\":\n this.iconName = \"check_circle_outline\"\n break;\n case \"yellow\":\n this.inconSymbol = true\n this.iconName = \"warning\"\n break;\n\n default:\n this.iconName = \"\"\n break;\n }\n }\n\n onTextChange() {\n if(this.type === 'number'){\n this.updateNumber(this.inputText)\n }\n\n this.onTouch();\n this.onChange(this.inputText);\n\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n\n this.inputTimeout = setTimeout(() => {\n this.textChangeEvent.next(this.inputText);\n }, 500, null);\n }\n\n onTextChangeVal(val: string) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n\n this.inputTimeout = setTimeout(() => {\n if (val) {\n this.onTouch();\n this.onChange(val);\n this.textChangeEvent.next(val);\n this.inputText = val;\n }\n else {\n this.onTouch();\n this.onChange(val);\n this.textChangeEvent.next(this.inputText);\n }\n }, 500, null);\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n colorClick() {\n document.getElementById(this.name)?.click();\n }\n\n //FUNCIONES PARA TYPE NUMBER \n numberDecrease(){\n if(!this.disabled && !this.readOnly){\n if(this.min < this.inputNumber){\n this.inputNumber-=this.step\n }\n this.inputText = this.inputNumber.toString()\n this.onTouch();\n this.onChange(this.inputText);\n this.textChangeEvent.next(this.inputText);\n }\n }\n\n numberIncrement(){\n if(!this.disabled && !this.readOnly){\n if(this.max){\n if(this.max > this.inputNumber){\n this.inputNumber+=this.step\n }else{\n this.inputNumber = this.max\n }\n }\n if(!this.max){\n this.inputNumber+=this.step\n }\n this.inputText = this.inputNumber.toString()\n this.onTouch();\n this.onChange(this.inputText);\n this.textChangeEvent.next(this.inputText);\n }\n }\n\n updateNumber(value:any){\n let value2 = value\n if(this.max)\n if(value > this.max){\n value2 = this.max\n }\n if(value < this.min){\n value2 = this.min\n }\n\n this.inputText = value2.toString()\n this.inputNumber = Number(value2);\n if(this.typeNumber)\n this.typeNumber.nativeElement.value = this.inputNumber\n this.onTouch();\n this.onChange(this.inputNumber);\n this.textChangeEvent.next(this.inputText);\n \n } \n //FIN FUNCIONES PARA TYPE NUMBER \n \n //FUNCIONES PARA TYPE RANGE \n rangeOnLoad(){\n setTimeout(() => {\n //RANGO TOTAL\n const rangeMax = this.max ? this.max : 100;\n //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO\n let amplitudTotal = rangeMax - this.min\n let porcion = (amplitudTotal * 50) / 100 \n // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO\n let value = this.text == '' ? this.min + porcion : this.text\n value = this.inputText == '' ? this.min + porcion : this.inputText\n //DEFINO EL TOOTLTIP\n this.tooltipValue = this.text + this.rangeUnity;\n this.updateTooltip(value.toString());\n //SI ES CHROME APLICO EL FIX\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if(isChrome) {\n //CALCCULO EL % A ASIGNAR\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100\n document.getElementById(this.id)?.style.setProperty('margin-top' , '14px');\n document.getElementById(this.id)?.style.setProperty('margin-bottom' , '14px');\n document.getElementById(this.id)?.style.setProperty('border-radius' , '4px');\n document.getElementById(this.id)?.style.setProperty('height' , '8px');\n document.getElementById(this.id)?.style.setProperty('background' , 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) '+porcentaje+'%, var(--neutrals-1000) '+porcentaje+'%, 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 if(this.type === 'range'){\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.getElementById(this.id)?.style.setProperty('background' , 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) '+porcentaje+'%, var(--neutrals-1000) '+porcentaje+'%, 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 //FIN FUNCIONES PARA TYPE RANGE\n\n //FUNCIONES PARA QUE FUNCIONE FORM BUILDER\n writeValue(value: any): void {\n this.inputText = value ?? \"\";\n this.inputNumber = value ?? 0;\n if(this.type == 'range'){\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}","<ng-container [ngSwitch]=\"type\">\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\n\n <!-- case text -->\n <ng-container *ngSwitchCase=\"'text'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <!-- <div class=\"content-left\">\n <s-icon-mat class=\"icon\">email</s-icon-mat>\n </div> -->\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [id]=\"id\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\"\n >\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n <!-- case password -->\n <ng-container *ngSwitchCase=\"'password'\">\n <div\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n type=\"{{visibility ? 'text' : 'password'}}\" \n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\n \">\n </div>\n <div class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\n 'visibility_off'}}</s-icon-mat>\n </div>\n </div>\n </ng-container>\n\n <!-- case email -->\n <ng-container *ngSwitchCase=\"'email'\">\n <div\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case phone -->\n <ng-container *ngSwitchCase=\"'phone'\">\n <div\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case url -->\n <ng-container *ngSwitchCase=\"'url'\">\n <div\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n http://\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n\n <!-- case search -->\n <ng-container *ngSwitchCase=\"'search'\">\n <div\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <s-icon-mat class=\"icon\">search</s-icon-mat>\n </div>\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <!-- <div class=\"content-right\">\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\n </div> -->\n </div>\n </ng-container>\n\n <!-- case color -->\n <ng-container *ngSwitchCase=\"'color'\">\n <div\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-left\">\n <input [readOnly]=\"readOnly\" #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onTextChange()\" class=\"content-left--input\">\n </div>\n <div class=\"content-center\" (click)=\"!this.readOnly ? this.color.click() : null\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [type]=\"text\" \n autocomplete=\"off\" \n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n [disabled]=\"disabled\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n <!-- case date -->\n <ng-container *ngSwitchCase=\"'date'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n (ngModelChange)=\"onTextChangeVal($event)\"\n [ngModel]=\"inputText\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\n </div>\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 </ng-container>\n\n <!-- case time -->\n <ng-container *ngSwitchCase=\"'time'\">\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [id]=\"id ? id : ''\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n (ngModelChange)=\"onTextChangeVal($event)\"\n [ngModel]=\"inputText\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\n </div>\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 </ng-container>\n\n <!-- case number -->\n <ng-container *ngSwitchCase=\"'number'\">\n <div class=\"d-flex align-center\">\n <div class=\"content-left mr-1\">\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\n </div>\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}} w-100\">\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : ''\" \n #typeNumber \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\"\n [max]=\"max\"\n [min]=\"min\"\n [step]=\"step\"\n >\n </div>\n\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 <div class=\"content-left ml-1\">\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\n </div>\n </div>\n </ng-container>\n\n <!-- case range -->\n <ng-container *ngSwitchCase=\"'range'\">\n <div class=\"content-input-main-range {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n #rangeField\n [readOnly]=\"readOnly\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [id]=\"id\" \n [name]=\"name\" \n autocomplete=\"off\"\n [placeholder]=\"placeHolder\"\n [(ngModel)]=\"inputText\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (mousemove)=\"changeRange(rangeField.value)\"\n (ngModelChange)=\"onTextChange()\"\n (input)=\"updateTooltip(rangeField.value)\"\n >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- case default -->\n <ng-container *ngSwitchDefault>\n <div\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\n <!-- <div class=\"content-left\">\n <s-icon-mat class=\"icon\">email</s-icon-mat>\n </div> -->\n <div class=\"content-center\">\n <input \n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n [readOnly]=\"readOnly\" \n [id]=\"id ? id : 'generic'\" \n [disabled]=\"disabled\" \n [type]=\"type\" \n [name]=\"name\" autocomplete=\"off\"\n [placeholder]=\"placeHolder\" \n [(ngModel)]=\"inputText\" \n (ngModelChange)=\"onTextChange()\">\n </div>\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</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 </ng-container>\n\n</ng-container>","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\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\n\n iconName: string = ''\n\n constructor() { }\n\n ngOnInit(): void {\n\n if(this.iconCustom == \"\"){\n\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\n }else{\n this.iconName = this.iconCustom\n }\n\n }\n\n}\n","<label class=\"label-content label-content-{{theme}} {{size}}\">\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{theme}}\">{{iconName}}</s-icon-mat>\n <ng-content></ng-content>\n</label>","import { Component, Output, EventEmitter, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SLoginEvent } from './s-login-event';\nimport { Images } from './s-login-images';\nimport { SLoginModel } from './s-login-model';\nimport { SLoginErrorsModel } from './s-login-errors-model';\n\n/**\n * Componente de login.\n */\n@Component({\n selector: 's-login',\n templateUrl: './s-login.component.html',\n styleUrls: ['./s-login.component.scss']\n})\nexport class SLoginComponent implements OnInit, OnChanges {\n\n controls: FormGroup = new FormGroup({});\n submitted: boolean = false;\n\n @Input() urlForgotPassword?: string = '';\n @Input() urlForgotPasswordTarget?: '_self' | '_blank' = '_blank';\n @Input() modelErrors: SLoginErrorsModel = {};\n @Input() loading: boolean = false;\n @Input() model: SLoginModel = {}\n @Input() imgSrc?: any;\n @Input() regExp?: RegExp;\n\n user: string | undefined = \"\";\n password: string | undefined = \"\";\n userRegExp = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|.(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n arrayErrors: SLoginErrorsModel = {};\n errorMessage: string = \"\";\n\n /**\n * Evento de salida cuando hace click en login\n */\n @Output() loginEvent = new EventEmitter<SLoginEvent>();\n\n constructor(private domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n this.userRegExp = this.regExp || this.userRegExp;\n this.initForm();\n this.createArrayMessagesErrors();\n this.imgSrc = !this.imgSrc ? this.imgSrc = this.domSanitizer.bypassSecurityTrustResourceUrl(Images.left) : this.imgSrc;\n this.model = {\n product: this.model.product ? this.model.product : \"Sidesys Login\",\n userLabel: this.model.userLabel ? this.model.userLabel : \"Email de usuario\",\n userPlaceholder: this.model.userPlaceholder ? this.model.userPlaceholder : \"Ingrese usuario\",\n paswordLabel: this.model.paswordLabel ? this.model.paswordLabel : \"Contraseña de usuario\",\n paswordPlaceholder: this.model.paswordPlaceholder ? this.model.paswordPlaceholder : \"Ingrese contraseña\",\n buttonText: this.model.buttonText ? this.model.buttonText : \"Login\",\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void { \n this.createArrayMessagesErrors();\n }\n\n initForm() {\n this.controls = new FormGroup({\n user: new FormControl('', [ Validators.required, Validators.maxLength(100), Validators.pattern(this.userRegExp)]),\n password: new FormControl('', [Validators.required, Validators.maxLength(100)])\n });\n }\n \n createArrayMessagesErrors() {\n this.arrayErrors = {\n required: this.modelErrors['required'] ? this.modelErrors['required'] : 'Campo requerido',\n maxlength: this.modelErrors['maxlength'] ? this.modelErrors['maxlength'] : 'El campo excede el límite de 100 caracteres',\n pattern: this.modelErrors['pattern'] ? this.modelErrors['pattern'] : 'El formato no es válido',\n errorDefault: this.modelErrors['errorDefault'] ? this.modelErrors['errorDefault'] : 'Error en el dato',\n globalError: this.modelErrors['globalError'] ? this.modelErrors['globalError'] : 'Error global'\n }\n }\n\n login() {\n setTimeout(() => {\n this.user = this.checkError(this.controls.controls['user']);\n this.password = this.checkError(this.controls.controls['password']);\n if (this.user == '' && this.password == '') {\n this.errorMessage = '';\n this.loginEvent.next({ user: this.controls.controls['user'].value, password: this.controls.controls['password'].value } as SLoginEvent);\n }\n }, 500);\n }\n\n changeUser(text: string) {\n this.controls.controls['user'].setValue(text);\n this.user = this.checkError(this.controls.controls['user']);\n }\n\n changePassword(text: string) {\n this.controls.controls['password'].setValue(text);\n this.password = this.checkError(this.controls.controls['password']);\n }\n\n private checkError(control: AbstractControl) {\n if (control.invalid && control.errors != null) {\n if (control.getError('required')) {\n return this.arrayErrors['required'];\n } else if (control.getError('maxlength')) {\n return this.arrayErrors['maxlength'];\n } else if (control.getError('pattern')) {\n return this.arrayErrors['pattern'];\n }\n return this.arrayErrors['errorDefault'];\n }\n return '';\n }\n}","<div class=\"login-container\">\n <div class=\"login-section\">\n <img class=\"login-image\" [src]=\"imgSrc\" alt=\"\">\n </div>\n <div class=\"login-section\">\n <div class=\"login-section-second\">\n <div>\n <h2 class=\"login-title-primary\">{{model.product}}</h2>\n <br>\n </div>\n <div>\n <div class=\"form-group\">\n <label class=\"label\">{{model.userLabel}}</label>\n <s-input-text [theme]=\"user ? 'red' : ''\" [type]=\"'email'\" [name]=\"'user'\" [placeHolder]=\"model.userPlaceholder\" \n (textChangeEvent)=\"changeUser($event)\" (keyup.enter)=\"login()\"></s-input-text>\n <div *ngIf=\"!user\" class=\"fixclear\"></div>\n <s-error-control *ngIf=\"user\" theme =\"red\">{{user}}</s-error-control>\n </div> \n\n <div class=\"form-group\">\n <label class=\"label\">{{model.paswordLabel}}</label>\n <s-input-text [theme]=\"password ? 'red' : ''\" [type]=\"'password'\" [name]=\"'password'\" [placeHolder]=\"model.paswordPlaceholder\" \n (textChangeEvent)=\"changePassword($event)\" (keyup.enter)=\"login()\"></s-input-text>\n <div *ngIf=\"!password\" class=\"fixclear\"></div>\n <s-error-control *ngIf=\"password\" theme =\"red\">{{password}}</s-error-control>\n </div>\n </div>\n <div class=\"text-center\">\n <br>\n <p *ngIf=\"urlForgotPassword\" class=\"s-caption\">¿Olvidaste tu contraseña? <a class=\"click-here-link\" target=\"{{urlForgotPasswordTarget}}\"\n [href]=\"urlForgotPassword\">Haz clic aquí</a> para recuperarla</p>\n <br>\n </div>\n <div class=\"text-center\">\n <div>\n <s-error-control *ngIf=\"modelErrors['globalError']\" theme=\"red\"><span class=\"s-caption\">{{modelErrors['globalError']}}</span></s-error-control>\n </div>\n <s-button [loading]=\"loading\" [disabled]=\"loading\" size=\"md\" (click)=\"login()\">{{model.buttonText}}</s-button>\n </div>\n </div>\n </div>\n</div>","export enum THEME {\n DEFAULT = 'default',\n GREEN = 'green',\n YELLOW = 'yellow',\n RED = 'red',\n SECONDARY = 'secondary',\n}\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 { 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 constructor(config?: Partial<SInput>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = Math.floor(Math.random() * 1000).toString();\n }\n }\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};\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 { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\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\n @Input() errors: Record<string, ValidationErrors> | null = {};\n @Input() customErrorMessages?: Record<string, string> = {};\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\">\n <s-error-control *ngFor=\"let error of errors | keyvalue\" theme =\"red\">\n {{ errorMessages[error.key] }}\n </s-error-control>\n</div>","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n} 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';\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 iconSymbol: boolean = false;\n iconType?: string;\n ICON_THEME = ICON_THEME;\n showPassword = false;\n type!: INPUT_TYPE;\n errorPattern!: string | undefined;\n INPUT_TYPE = INPUT_TYPE;\n THEME = THEME;\n isFocused: boolean = false;\n\n onInput(event: Event): void {\n this.patternError();\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 getIconType(): 'symbol' | 'icon' {\n return this.config.theme === 'yellow' ? 'symbol' : 'icon';\n }\n\n showIconType(): boolean {\n this.iconType = this.config.type\n ? this.getIconByType(this.config.type)\n : undefined;\n return !!this.iconType;\n }\n\n getIconByType(type: string): string | undefined {\n return type in ICON_INPUT\n ? ICON_INPUT[type as keyof typeof ICON_INPUT]\n : undefined;\n }\n\n patternError() {\n if (\n this.config.type === INPUT_TYPE.URL &&\n !INPUTS_REGEX.URL.test(this.control?.value || this.value)\n ) {\n this.errorPattern = 'Formato de url invalido.';\n return;\n }\n if (\n this.config.type === INPUT_TYPE.EMAIL &&\n !INPUTS_REGEX.EMAIL.test(this.control?.value || this.value)\n ) {\n this.errorPattern = 'Formato de email invalido.';\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.next();\n }\n\n onBlur(event: any): void {\n this.patternError();\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","<div class=\"s-input\">\n <label [for]=\"config.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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\n 'theme-red':\n (control && control.invalid && (isFocused || control.touched)) ||\n (control && errorPattern && control.touched) ||\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]=\"config.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 }}\"\n [type]=\"config.type\"\n [formControl]=\"control\"\n (input)=\"patternError()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\" />\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n autocomplete=\"off\"\n [id]=\"config.id\"\n placeholder=\"{{ config.placeholder }}\"\n [readOnly]=\"config.readOnly || config.disabled\"\n type=\"{{ type }}\"\n max=\"{{ config.max }}\"\n min=\"{{ config.min }}\"\n [type]=\"config.type\"\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\n [type]=\"iconSymbol ? 'symbol' : 'icon'\"\n class=\"icon cursor\"\n (click)=\"changeShowPassword()\"\n >{{ showPassword ? 'visibility' : 'visibility_off' }}\n </s-icon-mat>\n </div>\n <div\n *ngIf=\"config?.theme !== THEME.DEFAULT && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config.showHelp &&\n (config.theme === THEME.DEFAULT || config.theme !== undefined)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched) &&\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\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\">\n {{ config.errorText }}\n </s-error-control>\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n config.type !== INPUT_TYPE.SEARCH &&\n !errorPattern &&\n !config.errorText\n \"\n theme=\"red\">\n {{ 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) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</div>\n","import { Component, EventEmitter, Input, 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> {\n\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\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 '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]=\"config.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]=\"[\n config.resize ? '' : 'resize',\n config.theme ? 'theme-' + config.theme : '',\n ]\"\n [ngStyle]=\"{ height: config.height, width: config.width }\"\n [disabled]=\"config.disabled ?? false\"\n [id]=\"config.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=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages ?? undefined\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}</s-error-control\n >\n </div>\n</section>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-range',\n templateUrl: './s-range.component.html',\n styleUrls: ['./s-range.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SRangeComponent),\n multi: true\n }\n ]\n})\nexport class SRangeComponent implements ControlValueAccessor, AfterViewInit {\n\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\n\n @Input() value: string = '';\n @Input() id: string = (Math.floor(Math.random() * 1000)).toString();\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\n inputTimeout?: any;\n inconSymbol: boolean = false;\n tooltipValue: string = '';\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 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 this.valueChangeEvent.next(this.value);\n }, 500, null);\n }\n\n onTextChangeVal(val: string) {\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(() => {\n if (val) {\n this.onTouch();\n this.onChange(val);\n this.valueChangeEvent.next(val);\n this.value = val;\n }\n else {\n this.onTouch();\n this.onChange(val);\n this.valueChangeEvent.next(this.value);\n }\n }, 500, null);\n }\n\n clickIcon() {\n this.clickHelpIconEvent.next();\n }\n\n //FUNCIONES PARA TYPE RANGE \n rangeOnLoad() {\n setTimeout(() => {\n //RANGO TOTAL\n const rangeMax = this.max ? this.max : 100;\n //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO\n let amplitudTotal = rangeMax - this.min\n let porcion = (amplitudTotal * 50) / 100\n // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO\n let value = this.value == '' ? this.min + porcion : this.value\n value = this.value == '' ? this.min + porcion : this.value\n //DEFINO EL TOOTLTIP\n this.tooltipValue = this.value + this.rangeUnity;\n this.updateTooltip(value.toString());\n //SI ES CHROME APLICO EL FIX\n const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n if (isChrome) {\n //CALCCULO EL % A ASIGNAR\n let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100\n document.getElementById(this.id)?.style.setProperty('margin-top', '14px');\n document.getElementById(this.id)?.style.setProperty('margin-bottom', '14px');\n document.getElementById(this.id)?.style.setProperty('border-radius', '4px');\n document.getElementById(this.id)?.style.setProperty('height', '8px');\n document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');\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.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');\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) {\n this.value = value;\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","<ng-container>\n <label *ngIf=\"label\" class=\"s-range__label\">\n\t\t{{label}}\n\t\t<span class=\"s-range__required\" *ngIf=\"required\">*</span>\n\t</label>\n <div class=\"s-range__content {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\n <input\n #rangeField \n [id]=\"id\"\n [step]=\"step\"\n autocomplete=\"off\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [type]=\"'range'\"\n max={{max}}\n min={{min}}\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 >\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\n </div>\n </div>\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\n</ng-container>","import { Component, EventEmitter, Input, 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 constructor(config?: Partial<SCalendar>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\n }\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> {\n\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\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-calendar\">\n <label [for]=\"config.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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\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]=\"config.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]=\"config.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\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"s-calendar__content--right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"s-calendar__content--right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (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 } 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 constructor(config?: Partial<STime>) {\n Object.assign(this, config);\n if (!this.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\n }\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> {\n\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\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 }} {{\n config.classAdd\n }}\"\n [ngClass]=\"{\n 'disabled-active':\n config.disabled || (control && control.status === 'DISABLED'),\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]=\"config.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]=\"config.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\n *ngIf=\"config?.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n config?.theme === 'default' ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <s-validation-error\n *ngIf=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (control && !control.errors)) &&\n !(isFocused && control.invalid)\n \">\n {{ config.helpText || '' }}\n </s-error-control>\n</section>\n","import { Component, EventEmitter, Input,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 {\n \n onChange = (_: any) => { };\n onTouch = () => { };\n\n @Input() value: string = '#000000';\n @Input() id: string = (Math.floor(Math.random() * 1000)).toString();\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\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 onTextChange() {\n this.onTouch();\n this.onChange(this.value);\n if (this.inputTimeout) {\n clearTimeout(this.inputTimeout);\n }\n this.inputTimeout = setTimeout(() => {\n this.valueChangeEvent.next(this.value);\n }, 500, null);\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-{{\n theme\n }} {{ classAdd }}\"\n [ngClass]=\"{ 'disabled-active': readOnly }\">\n <div class=\"content-left\">\n <input\n [readOnly]=\"readOnly\"\n #color\n [id]=\"name\"\n [name]=\"name\"\n type=\"color\"\n [disabled]=\"readOnly\"\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 ? 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\">\n help_outline\n </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, 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.id) {\n this.id = (Math.floor(Math.random() * 1000)).toString();\n }\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> {\n\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\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 ((step < 0 && (this.config.min === undefined || newValue >= this.config.min!)) ||\n (step > 0 && (this.config.max === undefined || newValue <= this.config.max!))) {\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","<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]=\"config.disabled ?? false\"\n (click)=\"numberDecrease()\"\n [size]=\"config.size ?? 'md'\"\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 '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]=\"config.id ? config.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]=\"config.id ? config.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\n *ngIf=\"config.theme !== 'default' && config.theme !== undefined\"\n class=\"content-right\">\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{\n ICON_THEME[config.theme]\n }}</s-icon-mat>\n </div>\n <div\n *ngIf=\"\n (config?.theme === 'default' && config.showHelp) ||\n (config?.theme === undefined && config.showHelp)\n \"\n class=\"content-right\">\n <s-icon-mat (click)=\"clickHelp()\" class=\"icon cursor\"\n >help_outline</s-icon-mat\n >\n </div>\n </div>\n <div class=\"content-left ml-1\">\n <s-button\n [disabled]=\"config.disabled ?? false\"\n (click)=\"numberIncrement()\"\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=\"\n !config.hideErrorText &&\n control &&\n control.invalid &&\n (isFocused || control.touched)\n \"\n [customErrorMessages]=\"config.errorMessages\"\n [errors]=\"control.errors\">\n </s-validation-error>\n <s-error-control\n *ngIf=\"!config.hideErrorText && config.errorText\"\n theme=\"red\"\n >{{ config.errorText }}</s-error-control\n >\n <s-error-control\n *ngIf=\"\n !config.hideErrorText &&\n !config.errorText &&\n ((control && control.errors?.['required'] && !control.touched) ||\n (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 { SInputTextComponent } from './components/input-text/s-input-text.component';\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 { SRangeComponent } from './components/range/s-range.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\n@NgModule({\n declarations: [\n SInputTextComponent,\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SRangeComponent,\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 SInputTextComponent,\n SInputTextAreaComponent,\n SErrorControl,\n SInputComponent,\n SInputNumberComponent,\n SRangeComponent,\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SLoginComponent } from './s-login.component';\n// import { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SFooterModule } from '../footer';\nimport { SButtonModule } from '../button';\nimport { SFormModule } from '../form';\nimport { SInputModule } from '../input';\n\n\n@NgModule({\n declarations: [\n SLoginComponent\n ],\n imports: [\n CommonModule,\n SButtonModule,\n SInputModule\n ],\n exports: [\n SLoginComponent\n ]\n})\nexport class SLoginModule { }\n","export class SLoginModel {\n product?: string;\n userLabel?: string;\n userPlaceholder?: string;\n paswordLabel?: string;\n paswordPlaceholder?: string;\n buttonText?:string;\n}","\nexport class SLoginErrorsModel {\n required?: string;\n maxlength?: string;\n pattern?: string;\n errorDefault?: string;\n globalError?: string;\n}\n\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})\n\nexport class SFooterComponent {\n \n @Input() theme?: string;\n @Input() developedBy?: string = 'Desarrollado por';\n\n}\n","<footer class=\"s-footer\" [ngClass]=\"theme ? 'theme-'+theme : ''\">\n <span class=\"s-footer__text\">{{developedBy}}</span>\n <s-company-logo [height]=\"23\" [width]=\"70\"></s-company-logo>\n</footer>","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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SDropDownButton } from './s-drop-down-button';\n\n@Component({\n selector: 's-drop-down',\n templateUrl: './s-drop-down.component.html',\n styleUrls: ['./s-drop-down.component.scss']\n})\nexport class SDropDownComponent {\n\n @Input() display: boolean = false;\n @Input() buttons: SDropDownButton[] = [];\n @Input() right: boolean = false;\n\n @Output() buttonClick = new EventEmitter<string>();\n\n onButtonClick(btonEvent: string){\n this.buttonClick.next(btonEvent);\n }\n\n}\n","<div class=\"s-drop-down\">\n <div class=\"s-drop-down__content\" [ngStyle]=\"{\n display: display ? 'block' : 'none', \n right: right ? '0' : 'inherit', \n left: right ? 'inherit' : '0'\n }\">\n <button class=\"s-drop-down__content__button\" *ngFor=\"let btn of buttons\" (click)=\"onButtonClick(btn.eventName)\">{{btn.name}}</button>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SDropDownComponent } from './s-drop-down.component';\n\n\n\n@NgModule({\n declarations: [SDropDownComponent],\n imports: [CommonModule],\n exports:[SDropDownComponent]\n})\nexport class SDropDownModule { }\n","export class SDropDownButton {\n name: string = '';\n eventName: string = '';\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}","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 { 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 class=\"s-select__main cursor {{ isOpen ? 'is-open' : '' }} {{size ? size : ''}}\" (click)=\"openDropDown()\" tabindex=\"0\" (keydown)=\"onKeyDownMain($event)\">\n <div class=\"s-select__main__selected-option\">\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' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\n <div *ngIf=\"display === 'profile' && options[activeIndex]?.user\" class=\"content-avatar\">\n <s-avatar size=\"24\" [status]=\"options[activeIndex].user?.status\" [display]=\"options[activeIndex].user?.display\" [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=\"24\"></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' : ''}}\">{{isOpen ? 'expand_less' : 'expand_more'}}</s-icon-mat>\n </div>\n </div>\n </div>\n <div class=\"s-select__options {{size ? size : ''}}\" *ngIf=\"isOpen\">\n <div 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 >\n <div class=\"content-left\">\n <div *ngIf=\"display === 'dot'\" class=\"dot\"></div>\n <div *ngIf=\"display === 'profile'\" class=\"content-avatar\">\n <s-avatar size=\"24\" [display]=\"item.user?.display\" [status]=\"item.user?.status\" [urlProfileImage]=\"item.user?.url\" ></s-avatar>\n </div>\n <s-icon-mat size=\"{{size === 'md' ? '22' : '17'}}\" class=\"iconPerson\" *ngIf=\"display === 'iconperson'\">person_outline</s-icon-mat>\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>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\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 implements OnInit {\n\n @Input() type: \"one\" | \"two\" | \"three\" | \"four\" | \"five\" | \"six\" | \"seven\" = \"one\"\n @Input() size: \"md\" | \"lg\" | \"xl\" = \"lg\"\n @Input() invert: boolean = false;\n @Input() expand: boolean = false;\n\n\n constructor() { }\n\n ngOnInit(): void {\n }\n}\n","<div class=\"s-spinner s-spinner--{{type}} s-spinner--size-{{size}}\" [ngClass]=\"{'s-spinner--invert' : invert}\">\n</div>","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 {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewEncapsulation,\n HostListener,\n forwardRef,\n AfterContentInit,\n Injector,\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\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\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 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\n .filter(option => option.value)\n .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(\n obj => obj.value === true\n ).length;\n this.config.options.length == this.countSelected\n ? (this.selectAll = true)\n : (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(\n event,\n item,\n this.isOpen,\n this.changeItem.bind(this),\n false\n );\n }\n}\n","<article\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [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 [ngClass]=\"{\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 class=\"s-select__main cursor\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\r\n (click)=\"openDropDown()\"\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=\"config.display === 'dot'\" class=\"dot\"></div>\r\n <s-icon-mat\r\n size=\"{{ config.size === 'md' ? '22' : '17' }}\"\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' ? '16' : '24' }}\"></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\r\n *ngIf=\"!config.readOnly || !config.disabled\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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 </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText && control && control.invalid && config.errorText\r\n \"\r\n theme=\"red\">\r\n {{ config.errorText }}\r\n </s-error-control>\r\n <s-error-control\r\n *ngIf=\"\r\n !config.hideErrorText &&\r\n !config.errorText &&\r\n control &&\r\n !control.errors &&\r\n config.helpText\r\n \">\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 [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"filter()\"></s-input>\r\n </div>\r\n <div\r\n class=\"s-select__options-multiple\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\">\r\n <div\r\n role=\"option\"\r\n tabindex=\"0\"\r\n class=\"s-select__item\"\r\n [ngClass]=\"config.size === 'sm' ? 'sm' : 'md'\"\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\">\r\n <s-checkbox\r\n [config]=\"checkItem\"\r\n [(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' ? '16' : '24'\"\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' ? '17' : '22' }}\"\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\r\n class=\"s-select__options-multiple--selected\"\r\n [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\">\r\n {{ this.config.selected }}: {{ this.countSelected }}\r\n </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 >{{\r\n options.length === countSelected\r\n ? config.deselectAllOptions\r\n : config.selectAllOption\r\n }}</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} 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> {\n @Input() config!: SSelect;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\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 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.value) {\n const index = this.config.options.findIndex(\n item => item.value === this.value.toString()\n );\n this.activeIndex = index;\n }\n return this.activeIndex || this.activeIndex === 0\n ? this.config.options[this.activeIndex].title\n : '';\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\n ? this.control.setValue(e.value.toString())\n : (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\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\r\n *ngIf=\"config\"\r\n class=\"s-select\"\r\n [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 <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 '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\">\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]=\"config.id ? config.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\r\n class=\"s-select__main__selected-option__left__content-option\"\r\n *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\r\n *ngIf=\"!config.readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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 </s-validation-error>\r\n <s-error-control\r\n *ngIf=\"!config.hideErrorText && control && control.invalid && config.errorText\"\r\n theme=\"red\">\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 {{ config.helpText }}\r\n </s-error-control>\r\n\r\n\r\n <div class=\"s-select__options\" [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 }\" *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 }\"\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\">\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=\"24\"\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 ? '17' : '22'\"\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 ? '17' : '22'\"\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' &&\r\n (activeIndex || this.activeIndex === 0) &&\r\n config.options[activeIndex]?.user\r\n \"\r\n class=\"content-avatar\">\r\n <s-avatar\r\n size=\"24\"\r\n [status]=\"config.options[activeIndex].user?.status ?? null\"\r\n [display]=\"config.options[activeIndex].user?.display ?? undefined\"\r\n [urlProfileImage]=\"\r\n config.options[activeIndex].user?.url ?? undefined\r\n \"></s-avatar>\r\n </div>\r\n</ng-template>","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\r\n class=\"s-select\"\r\n [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' : '' }} {{\r\n size ? size : ''\r\n }}\"\r\n (click)=\"openDropDown()\"\r\n tabindex=\"0\" (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\r\n size=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *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=\"16\"></s-avatar>\r\n <s-avatar *ngIf=\"size === 'md'\" size=\"24\"></s-avatar>\r\n </div>\r\n <!-- +{{ countSelected }} Selecciones -->\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 placeholder\r\n }}</span>\r\n </div>\r\n <div class=\"s-select__main__selected-option__right\">\r\n <s-icon-mat\r\n *ngIf=\"!readOnly\"\r\n class=\"{{ isOpen ? 'is-open-arrow' : '' }}\"\r\n >{{ isOpen ? 'expand_less' : 'expand_more' }}</s-icon-mat\r\n >\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\r\n [config]=\"checkAll\"\r\n [(ngModel)]=\"selectAll\"\r\n \r\n (keydown.enter)=\"selectAllEvent()\"\r\n ></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=\"16\"\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=\"24\"\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=\"{{ size === 'md' ? '22' : '17' }}\"\r\n class=\"iconPerson\"\r\n *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})\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\n}","<a class=\"s-link s-link--size-{{size}}\" \n[target]=\"target\" \n[href]=\"href\" \n[class.disabled]=\"disabled\" \n[class.invert]=\"invert\" \n[class.not-visited]=\"!visited\">\n <ng-content></ng-content>\n</a>","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';\n\n@NgModule({\n declarations: [\n SSpinnerComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n SSpinnerComponent\n ]\n})\nexport class SSpinnerModule { }\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { SSelectSimpleModel } from '../select';\nimport { SFormControl } from './s-form-control';\n\n@Component({\n selector: 's-form',\n templateUrl: './s-form.component.html',\n styleUrls: ['./s-form.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SFormComponent implements OnInit, OnChanges {\n form: FormGroup = new FormGroup({});\n\n @Input() controls?: SFormControl[];\n @Input() submitClick: number = 0;\n\n @Input() requiredMessage: string = 'Se requiere este dato';\n @Input() emailMessage: string = 'El formato del correo no es válido';\n @Input() dafaultMessage: string = 'Error en el dato';\n\n @Output() controlsChangeEvent = new EventEmitter<SFormControl[]>();\n @Output() submitEvent = new EventEmitter<{ [key: string]: string }>();\n @Output() changeSelectEvent = new EventEmitter<SSelectSimpleModel>();\n @Output() clickButtonEvent = new EventEmitter<string>();\n \n submitted: boolean = false;\n\n enabledTypes: string[] = ['text', 'password', 'email' , 'phone' , 'url' , 'number', 'button', 'checkbox', 'select', 'color', 'date', 'time'];\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['submitClick'] && changes['submitClick'].currentValue != 0) {\n this.submit();\n }\n\n if (changes['controls'] && changes['controls'].previousValue && changes['controls'].currentValue) {\n this.form = new FormGroup({});\n this.controls = [];\n this.submitted = false;\n \n setTimeout(() => {\n this.controls = changes['controls'].currentValue;\n this.loadForm();\n }, 100);\n }\n }\n\n ngOnInit(): void {\n this.loadForm();\n }\n\n loadForm(){\n if (this.controls) {\n this.controls.forEach(c => {\n if(!c.inputType || c.inputType == ''){\n c.inputType = 'text';\n }\n\n let val = c.value;\n\n if (c.inputType == 'select') {\n val = c.value;\n }\n \n this.form.addControl(c.formControlName, new FormControl(val, c.validators));\n \n if (c.disabled) {\n this.form.controls[c.formControlName].disable({ onlySelf: true });\n }\n });\n }\n }\n\n submit() {\n this.form.markAllAsTouched();\n \n if (this.controls && this.form.valid) {\n this.submitted = true;\n let keysValues: { [key: string]: string } = {};\n\n this.controls.forEach(c => {\n keysValues[c.formControlName] = this.form.controls[c.formControlName].value;\n });\n\n this.submitEvent.next(keysValues);\n }\n else {\n this.submitted = false;\n }\n }\n\n checkErrors(key: string): boolean {\n if (!this.form.controls[key]) { return false }\n return ((this.form.controls[key].invalid && (this.form.controls[key].dirty || this.form.controls[key].touched)) || this.submitted) && this.form.controls[key].errors != null;\n }\n\n getErrorMessage(key: string): string {\n if (this.form.controls[key].getError('required')) {\n return this.requiredMessage;\n } else if (this.form.controls[key].getError('email')) {\n return this.emailMessage;\n }\n\n return this.dafaultMessage;\n }\n\n changeSelect(obj: SSelectSimpleModel, key: string) {\n this.changeSelectEvent.emit(obj);\n this.changeControl(key, obj.key as string);\n }\n\n changeControl(name: string, val: string){\n this.form.controls[name].markAsTouched();\n this.form.controls[name].setValue(val);\n\n let c = this.controls?.find(e => {return e.formControlName == name});\n\n if(c){\n c.value = val;\n }\n\n this.controlsChangeEvent.emit(this.controls);\n }\n\n buttonClick(name: string){\n this.clickButtonEvent.emit(name);\n }\n}\n","<form *ngIf=\"form && controls\" [formGroup]=\"form\">\n <div class=\"form-control\" [ngStyle]=\"{width: c.width + '%', display: c.width < 100 ? 'inline-block' : 'initial'}\"\n *ngFor=\"let c of controls\">\n <div *ngIf=\"c.show && enabledTypes.indexOf(c.inputType) != -1\">\n <div *ngIf=\"c.inputType != 'button' && c.inputType != 'select' && c.inputType != 'checkbox'\">\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\n [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <div class=\"form-group\">\n <label class=\"label\">{{c.label}}</label>\n <s-input-text [type]=\"c.inputType\" [text]=\"c.value\" [disabled]=\"c.disabled\"\n [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\" [placeHolder]=\"c.inputPlaceHolder\"\n [name]=\"c.formControlName + c.inputType\"\n (textChangeEvent)=\"changeControl(c.formControlName, $event)\"\n [title]=\"c.inputPlaceHolder\"></s-input-text>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'button' && c.button != undefined\">\n <div class=\"form-group\">\n <s-button [pill]=\"c.button.pill\" [invert]=\"c.button.invert\" [type]=\"c.button.type\" size=\"sm\"\n [title]=\"c.inputPlaceHolder\" [class]=\"c.button.class\" [size]=\"c.button.size ? c.button.size : 'md' \" (click)=\"buttonClick(c.formControlName)\">\n {{c.label}}\n <s-icon-mat *ngIf=\"c.button.icon\">{{c.button.icon}}</s-icon-mat>\n </s-button>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'checkbox'\">\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\n [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <div class=\"form-group\">\n <s-checkbox-old [value]=\"c.value\" [label]=\"c.label\" (emitSelection)=\"changeControl(c.formControlName, $event.event.toString())\"></s-checkbox-old>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n <div *ngIf=\"c.inputType == 'select'\">\n <select [id]=\"c.formControlName\" [name]=\"c.formControlName\" [formControlName]=\"c.formControlName\" class=\"form-control-displayNone\">\n <option *ngFor=\"let o of c.selectModel\" [value]=\"o.key\" [selected]=\"o.key == c.value\">{{o.value}}\n </option>\n </select>\n <div class=\"form-group\">\n <label class=\"label\">{{c.label}}</label>\n <s-select-old [options]=\"c.selectModel\" (selectEvent)=\"changeSelect($event, c.formControlName)\" [title]=\"c.inputPlaceHolder\" [selectedValue]=\"c.value\"></s-select-old>\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\n <span *ngIf=\"checkErrors(c.formControlName)\">\n {{getErrorMessage(c.formControlName)}}\n </span>\n </s-error-control>\n </div>\n </div>\n </div>\n </div>\n</form>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SFormComponent } from './s-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SInputModule } from '../input';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSelectModule } from '../select';\n\n@NgModule({\n declarations: [\n SFormComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SInputModule,\n SButtonModule,\n SIconMaterialModule,\n SCheckboxModule,\n SSelectModule\n ],\n exports:[\n SFormComponent\n ]\n})\nexport class SFormModule { }\n","import { ValidatorFn } from \"@angular/forms\";\nimport { SSelectSimpleModel } from \"../select/s-select-model\";\n\nexport class SFormControl {\n private _width: number = 100;\n\n formControlName: string = '';\n label: string = '';\n inputType: string = '';\n inputPlaceHolder: string = '';\n validators: ValidatorFn[] = [];\n value: string = \"\";\n disabled: boolean = false;\n show: boolean = true;\n selectModel: SSelectSimpleModel[] = [];\n button: ButtonControl | undefined;\n\n get width(): number {\n return this._width;\n }\n set width(val: number) {\n this._width = val > 0 && val <= 100 ? val : 100;\n };\n\n static Create(formControlName: string = '', label: string = '', inputType: string = '', inputPlaceHolder: string = '', validators: ValidatorFn[] = [], value: string = '', width: number = 100, disabled: boolean = false, show: boolean = true, selectModel: SSelectSimpleModel[] = [], button: ButtonControl | undefined = undefined): SFormControl {\n let c = new SFormControl();\n\n c.formControlName = formControlName;\n c.label = label;\n c.inputType = inputType;\n c.inputPlaceHolder = inputPlaceHolder;\n c.validators = validators;\n c.value = value;\n c.disabled = disabled;\n c.show = show;\n c.selectModel = selectModel\n c.width = width;\n\n if (inputType == 'button' && button == undefined) {\n c.button = new ButtonControl();\n c.button.icon = '';\n c.button.invert = false;\n c.button.pill = false;\n c.button.type = 'primary';\n }\n else {\n c.button = button;\n }\n\n if (inputType == 'color' && !value) {\n c.value = '#000000'\n }\n\n return c;\n }\n}\n\nexport class ButtonControl {\n pill: boolean = false;\n invert: boolean = false;\n type: string = 'primary';\n icon: string = '';\n class: string = '';\n size: \"xl\" | \"lg\" | \"md\" | \"sm\" = 'md';\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { SDropDownButton } from '../drop-down';\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() 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 buttons: SDropDownButton[] = [];\n showDropDownCard: boolean = false;\n localImage: SafeResourceUrl | undefined;\n\n constructor(private domSanitizer: DomSanitizer) {\n }\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}}\">\n <div *ngIf=\"!showHorizontal && check\" class=\"s-card__check\">\n <s-checkbox-old class=\"s-card__check-component\" [value]=\"check.value\" [model]=\"check.model\" [disabled]=\"check.disabled\"\n [isUndefined]=\"check.undefined\" (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 size=\"150\">{{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 *ngIf=\"showHorizontal && check\" [value]=\"check.value\" [model]=\"check.model\"\n [disabled]=\"check.disabled\" [isUndefined]=\"check.undefined\" (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 *ngIf=\"showDropDownCard\" class=\"s-card__submenu\" [menu]=\"menu\" (changeMenuEvent)=\"onClickEvent($event)\" (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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SCardComponent } from './s-card.component';\nimport { SIconMaterialModule } from '../icon-material';\nimport { SDropDownModule } from '../drop-down';\nimport { STagModule } from '../tag';\nimport { SCheckboxModule } from '../checkbox';\nimport { SSubMenuModule } from '../sub-menu';\n\n@NgModule({\n declarations: [\n SCardComponent\n ],\n imports: [\n CommonModule,\n SIconMaterialModule,\n SDropDownModule,\n STagModule,\n SCheckboxModule,\n SSubMenuModule\n ],\n exports: [\n SCardComponent\n ]\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 { HttpClientModule } from '@angular/common/http';\nimport { SInputModule } from '../input';\nimport { SSelectModule } from '../select';\nimport { SSpinnerModule } from '../spinner';\nimport { SFormModule } from '../form';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SButtonModule } from '../button';\nimport { SCardModule } from '../card';\n\n@NgModule({\n declarations: [\n SDynamicFormComponent\n ],\n imports: [\n CommonModule,\n SCompanyLogoModule,\n HttpClientModule,\n SInputModule,\n SSelectModule,\n SSpinnerModule, \n SFormModule,\n SFormModule,\n SButtonModule,\n ReactiveFormsModule,\n SCardModule\n ],\n exports: [\n SDynamicFormComponent\n ]\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 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 @Output() updateDataEvent = new EventEmitter<any>();\n @Output() ordenByEvent = new EventEmitter<SortTable>();\n @Output() checkAllEvent = new EventEmitter<boolean>();\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) {\n if (column.id) { //column.id es el campo a ordenar.\n const sortAsc =\n this.fieldSelect &&\n this.fieldSelect.SortField === column.id &&\n 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\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\">\n <table class=\"s-tablet\">\n <thead>\n <ng-container *ngTemplateOutlet=\"header\"></ng-container>\n <tr *ngIf=\"configColumn && !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':\n column.align === 'left' || !column.align,\n cursor: column.sortable !== false,\n 's-tablet__disabled': loading,\n }\">\n <s-checkbox\n *ngIf=\"column.checkbox\"\n [ngClass]=\"{ 'mr-2': column.title }\"\n [config]=\"checkboxConfig\"\n [(ngModel)]=\"column.checkboxValue\"\n (ngModelChange)=\"checkAll($event)\">\n </s-checkbox>\n <div\n class=\"s-tablet__header__label\"\n [ngClass]=\"{\n 's-tablet__header__select':\n fieldSelect && fieldSelect.SortField === column.id,\n }\">\n {{ column.title }}\n </div>\n <span\n *ngIf=\"fieldSelect && fieldSelect.SortField === column.id\"\n class=\"s-tablet__header__icon\">\n <s-icon-mat [type]=\"'symbol'\" size=\"18\" class=\"icon cursor\">{{\n fieldSelect.SortAsc\n ? 'keyboard_arrow_up'\n : 'keyboard_arrow_down'\n }}</s-icon-mat>\n </span>\n <span\n *ngIf=\"\n column.sortable !== false &&\n column.title &&\n fieldSelect &&\n fieldSelect.SortField !== column.id\n \">\n <s-icon-mat\n [type]=\"'symbol'\"\n size=\"18\"\n class=\"icon cursor\"\n 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\n [type]=\"'symbol'\"\n size=\"18\"\n class=\"icon cursor\"\n 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\n [ngClass]=\"{\n 's-tablet__body': !loading,\n 's-tablet__empty': loading,\n }\">\n <ng-container *ngIf=\"loading; else body\">\n <ng-template #body><ng-content></ng-content></ng-template>\n <ng-template #loading *ngTemplateOutlet=\"bodyloading\"></ng-template>\n </ng-container>\n </tbody>\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 @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 p-1 no-select\"\n size=\"20\"\n [ngClass]=\"getButtonsClass(button)\"\n [tooltip]=\"tooltip\"\n (keyup.enter)=\"handleButtonClick(button)\"\n (click)=\"handleButtonClick(button)\">\n {{ button.icon ?? getButtonsType(button.type).icon }}\n </s-icon-mat>\n <s-tooltip\n #tooltip\n [title]=\"button.tooltip\"\n [position]=\"button.tooltipPosition ?? 'top'\"\n 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';\n\n@NgModule({\n declarations: [STabletComponent, InputSearch, SortableColumn, STemplate],\n imports: [CommonModule, SIconMaterialModule, SCheckboxModule, FormsModule],\n exports: [\n STabletComponent,\n InputSearch,\n SortableColumn,\n STemplate,\n TableActionsButtonsModule,\n ],\n})\nexport class STabletModule {}\n","import { AfterContentInit, AfterViewInit, Component, Directive, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewEncapsulation } 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 \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\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 \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\n\n@Directive({\n selector: '[STemplatePopup]',\n host: {\n // 'class': 's-element-search',\n },\n})\nexport class STemplatePopup implements AfterContentInit {\n\n @Input(\"STemplatePopup\") field!: string;\n\n constructor(\n private element: TemplateRef<any>,\n public content: SPopupComponent,\n ) {\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\">\n <div class=\"s-popup__card\" [ngClass]=\"show70 ? 's-popup__card--show70' : ''\" [ngStyle]=\"{'width' : this.width + 'px', 'height' : this.height + 'px' , 'left' : getCalcPopUp(this.width) , 'top' : getCalcPopUp(this.height)}\">\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\">{{iconCustomName}}</s-icon-mat>\n <s-icon-mat *ngIf=\"iconType && !iconCustom\" class=\"s-popup__card__head__divisor__icon mr-2 d-flex\">{{iconType}}</s-icon-mat>\n <h4>{{title}}</h4>\n </div>\n <s-icon-mat class=\"s-popup__card__head__close\" (click)=\"close()\">close</s-icon-mat>\n </div>\n <div>\n <div class=\"s-popup__card__body\"\n [ngClass]=\"{ borderBody:'s-popup__card__body--border-body' }\" [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>","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 tabindex=\"-1\" class=\"s-toggle-switch__content__input\" type=\"checkbox\" [disabled]=\"disabled\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange()\">\n <span class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n 'disabled': disabled,\n 'active': value,\n 'no-active': !value\n }\">\n <s-icon-mat class=\"slider-icon-close\" *ngIf=\"showIcon\">{{getIcon()}}</s-icon-mat>\n </span>\n </label>\n <label *ngIf=\"label\" class=\"s-toggle-switch__label\"\n [ngClass]=\"{\n 'bold-select-active': boldSelectActive && value,\n 'disabled': disabled,\n }\"\n >{{label}}</label>\n</div>","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { 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 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<\n T,\n> extends ControlBooleanAccessorDirective<T> {\n @Input() config!: SSwitch;\n @Output() blur = new EventEmitter<void>();\n @Output() focus = new EventEmitter<void>();\n checked: boolean = false;\n\n onInput(event: Event): void {\n if (this.config.disabled) return;\n const input = event.target as HTMLInputElement;\n this.value = input.checked;\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\n }\n\n registerOnChange(fn: any): void {\n if (!this.config?.useFormControl) {\n this.onChange = fn;\n }\n }\n\n getValue() {\n if (this.value) this.checked = this.value === true;\n return this.checked;\n }\n\n getIcon() {\n const isChecked = this.control?.value ?? this.value === true;\n return isChecked\n ? (this.config?.icon ?? 'check')\n : (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 === true;\n this.control?.setValue(this.value);\n this.checked = this.value === true;\n this.onChange(this.value);\n if (this.config?.useFormControl) {\n this.onTouched();\n }\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 class=\"s-toggle-switch__content\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n <ng-container *ngIf=\"control; else notUseFormControl\">\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [formControl]=\"control\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"/>\n </ng-container>\n <ng-template #notUseFormControl>\n <input\n tabindex=\"-1\"\n class=\"s-toggle-switch__content__input\"\n type=\"checkbox\"\n [disabled]=\"config.disabled || config.readOnly\"\n [checked]=\"getValue()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"/>\n </ng-template>\n <span\n class=\"s-toggle-switch__content__slider\"\n [ngClass]=\"{\n active: control?.value || value,\n 'no-active': control?.value || value,\n disabled: (control?.disabled || (config && config.disabled)) && !(config && config.readOnly)\n }\">\n <s-icon-mat\n class=\"slider-icon-close\"\n *ngIf=\"(config && config.showIcon !== false) || !config\"\n >{{ getIcon() }}</s-icon-mat\n >\n </span>\n </label>\n\n <div *ngIf=\"config?.label\">\n <label *ngIf=\"control\"\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 }}</label>\n\n <label *ngIf=\"!control\"\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 }}</label>\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 { 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 { 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 { Component, EventEmitter, HostListener, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { SMenuItem, SSidebarImage } from './s-sidebar-model';\nimport { LocalstorageService } from '../shared/localstorage.service';\nimport { SIcon } from '../icon-material/s-icon-material.model';\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 {\n\n @Input() menu: SMenuItem[] = [];\n @Input() expand: boolean = true;\n @Input() showExpand: boolean = true;\n @Input() theme?: string;\n @Input() images?: SSidebarImage;\n \n\n @Output() clickEvent = new EventEmitter<SMenuItem>();\n @Output() clickEventMenu = new EventEmitter<boolean>();\n\n constructor(public localStorage:LocalstorageService) {\n\n if(this.localStorage.getItem(\"s-sidebar:expand\") == null || this.localStorage.getItem(\"s-sidebar:expand\") == undefined){\n this.localStorage.saveItem(\"s-sidebar:expand\" , true)\n }\n \n }\n\n ngOnInit(): void {\n this.loadDataFromLocalStorage();\n this.checkScreenSize();\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.expand = true;\n this.refreshExpand()\n }\n\n actionCollapseMenu(): void {\n this.expand = false;\n this.refreshExpand()\n }\n\n restartSelectedItems(): void {\n this.menu.forEach((itemToReset: SMenuItem) => {\n itemToReset.expanded = false;\n })\n }\n \n toogleMenu(): void {\n this.expand = !this.expand\n this.onClickEventMenu(this.expand)\n this.refreshExpand()\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 loadDataFromLocalStorage(): void {\n if(!this.localStorage.getItem(\"s-sidebar:expand\")){\n this.expand = this.localStorage.getItem(\"s-sidebar:expand\");\n this.restartSelectedItems();\n }else{\n this.localStorage.saveItem(\"s-sidebar:expand\" , this.expand)\n }\n }\n\n refreshExpand(): void {\n this.localStorage.saveItem(\"s-sidebar:expand\" , this.expand) \n }\n\n isSIcon(icon: string | SIcon): icon is SIcon {\n return typeof icon !== 'string';\n }\n\n getClassItem(item: SMenuItem): string {\n\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}\n\n","<div class=\"s-sidebar\" [ngClass]=\"[\n theme ? 's-sidebar--theme-' + theme : '',\n expand ? 's-sidebar--open' : 's-sidebar--close']\">\n\n <div *ngIf=\"images\" class=\"s-sidebar__top\" [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 class=\"s-sidebar__menu__line-separate__dot cursor\" title=\"{{item.separateText ? item.separateText : ''}}\" (click)=\"toogleMenu()\">...</div>\n </div>\n <!-- Cuando NO tiene hijos esta visible y no es separate -->\n <li class=\"s-sidebar__menu__item\" *ngIf=\"!item.hidden && !item.separate && !item.children\" title=\"{{item.title}}\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item , tabindex: true }\"></ng-template>\n </li>\n <!-- Cuando SI tiene hijos esta visible y no es separate -->\n <!-- Padre -->\n <li class=\"s-sidebar__menu__item {{item.expanded ? 's-sidebar__menu__item--open' : 's-sidebar__menu__item--close'}}\" *ngIf=\"!item.hidden && !item.separate && item.children\" title=\"{{item.title}}\" (click)=\"clickParent(item)\" (keydown.enter)=\"clickParent(item)\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item , tabindex: true }\"></ng-template>\n </li>\n <!-- Hijos -->\n <ul *ngIf=\"item.children && !item.hidden && !item.separate\" class=\"s-sidebar__menu {{item.expanded ? 's-sidebar__menu--open' : 's-sidebar__menu--close'}}\">\n <ng-container *ngFor=\"let itemChildren of item.children\">\n <li *ngIf=\"!itemChildren.hidden\">\n <ng-template [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: itemChildren, tabindex: item.expanded ? true : false}\"></ng-template>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n </ul>\n</div>\n\n<div tabindex=\"0\" class=\"no-select button-menu {{expand ? 'button-menu--open' : 'button-menu--close'}}\" (keydown.enter)=\"toogleMenu()\" (click)=\"toogleMenu()\">\n <s-icon-mat size=\"20\">chevron_right</s-icon-mat>\n</div>\n\n<ng-template #itemTemplate let-item let-tabindex=\"tabindex\">\n <a [tabindex]=\"tabindex ? 0 : -1\" [ngClass]=\"[getClassItem(item) , getClassChildren(item) , getClassActive(item)]\" (click)=\"item.action ? item.action() : null ; clickItem(item)\" [routerLink]=\"item.link ? item.link : undefined\" routerLinkActive=\"active\" 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 *ngIf=\"item.badge\" [ngTemplateOutlet]=\"badgeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n <s-icon-mat size=\"17\" *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 : '20'\"\n class=\"icon-menu\">{{isSIcon(icon) && icon.name ? icon.name : icon}}\n </s-icon-mat>\n <s-icon-mat \n *ngIf=\"!icon\" \n type=\"symbol\"\n size=\"20\"\n class=\"icon-menu icon-menu-default\">fiber_manual_record\n </s-icon-mat>\n</ng-template>\n\n<ng-template #badgeTemplate let-item>\n <s-badge class=\"badge-padding\"\n type=\"{{item.badgeType ? item.badgeType : 'secondary'}}\">\n {{item.badge}}\n </s-badge>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SSidebarComponent } from './s-sidebar.component';\nimport { SIconModule } from '../icon/s-icon.module';\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: [\n SSidebarComponent,\n SMenuItemTitleComponent\n ],\n imports: [\n CommonModule,\n SIconModule,\n RouterModule,\n SIconMaterialModule,\n SBadgeModule,\n ],\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 subscriptionRefresh: Subscription;\n animated: boolean = false;\n\n constructor(public localStorage: LocalstorageService) {\n this.subscriptionRefresh = this.localStorage.refreshLocalStorage.subscribe(\n () => {\n this.loadDataFromLocalStorage();\n }\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 [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, OnInit, 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\n})\nexport class SPrecodeComponent implements OnInit {\n\n @Input() copy?: string = \"Copiar Código\";\n @Input() copySucces?: string = \"Texto copiado\";\n @Input() expand: boolean = false;\n @Input() copyId?: string;\n\n constructor() { }\n\n ngOnInit(): void { }\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\">\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>","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})\n\nexport class SBreadcrumComponent {\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}","<div class=\"s-breadcrum mb-3 s-scroll\">\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 routerLink=\"{{nv.routerLink? nv.routerLink : undefined}}\" [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\">keyboard_arrow_right</s-icon-mat>\n </div>\n</div>","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})\n\nexport class SListComponent {\n @Input() disabled:boolean = false\n @Input() selected:boolean = false\n @Input() size: 'md' | 'sm' | 'xs' = 'md'\n}"," <div tabindex=\"0\" class=\"s-list s-scroll \n {{disabled ? 's-list--disabled' : ''}} {{selected ? 's-list--selected' : ''}} \">\n <div class=\"s-list__content\">\n <div class=\"s-list__content__drag s-list__content__drag--no-select s-list__content__drag--cursor s-list__content__drag--{{size}}\" >\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})\n\nexport class SListSimpleComponent {\n @Input() listStyle: 'check' | 'chevron' | 'dot' | 'a1' | 'folder' | 'default' = 'default'\n}","<div class=\"s-list-simple s-list-simple--{{listStyle}}\">\n <ng-content></ng-content>\n</div>","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})\n\nexport class SProgressbarComponent extends TemperatureComponent implements OnInit {\n\n @Input() override percentage: number = 50;\n @Input() customColor: string = '';\n\n override color: string = '';\n \n ngOnInit(): void {\n this.initColor()\n }\n}","<div class=\"s-progressbar\">\n <div class=\"s-progressbar__bar\">\n <div class=\"s-progressbar__bar--background\"></div>\n <div class=\"s-progressbar__bar--progresso\"\n [style.width.%]=\"percentage\"\n [ngClass]=\"color\"\n [style.background]=\"customColor\"\n id=\"bar\"\n ></div>\n </div>\n <div class=\"s-progressbar__percentage\">\n <h6 *ngIf=\"percentage < 100\">{{percentage}}%</h6>\n <s-icon-mat *ngIf=\"percentage > 99\" class=\"icon-check\">done</s-icon-mat>\n </div>\n</div>","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, Input } from '@angular/core';\n\n\n@Component({\n selector: 's-timeline',\n templateUrl: './s-timeline.component.html',\n styleUrls: ['./s-timeline.component.scss']\n})\n\nexport class STimelineComponent {\n \n @Input() title!: string;\n @Input() description?: string;\n @Input() paragraph?: string;\n @Input() position?: string;\n @Input() isLast: boolean = false;\n @Input() icon?: string;\n @Input() theme?: \"primary\" | \"green\" | \"yellow\" | \"red\" = \"primary\";\n\n\n}","<div class=\"s-timeline\">\n <div class=\"s-timeline__circle\" [class.no-after]=\"isLast\">\n <div *ngIf=\"position || icon\" class=\"s-timeline__circle__position s-timeline__circle__position--theme-{{theme}}\">\n <ng-container *ngIf=\"position; else iconContent\">{{ position }}</ng-container>\n <ng-template #iconContent>\n <s-icon-mat class=\"s-timeline__circle__steps\">{{ icon }}</s-icon-mat>\n </ng-template>\n </div>\n </div>\n <div class=\"s-timeline__content\">\n <div class=\"s-timeline__content__title\">\n {{title}}\n </div>\n <div *ngIf=\"description\" class=\"s-timeline__content__description\">\n {{description}}\n </div>\n <div *ngIf=\"paragraph\" class=\"s-timeline__content__paragraph\">\n {{paragraph}}\n </div>\n <ng-content>\n \n </ng-content>\n </div>\n</div>","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","export class STimelineItem {\n title!: string;\n description?:string;\n position?:number;\n isLast?:boolean;\n icon?:string;\n theme?: \"primary\" | \"green\" | \"yellow\" | \"red\";\n paragraph?:string;\n }","import { Injectable } from '@angular/core';\n\nexport interface Toast {\n id: number;\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(\n title: string,\n content: string,\n theme: 'default' | 'red' | 'yellow' | 'green' = 'default'\n ) {\n const toast: Toast = {\n id: Date.now() + Math.floor(Math.random() * 1000),\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: number) {\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-{{\n toast.theme\n }} animated s-toast__animation-bounceInDown\">\n <div class=\"s-toast-box\">\n <div class=\"s-toast-box-left\">\n <s-icon-mat class=\"d-flex toast-icon\">{{\n toast.iconTheme\n }}</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 } 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 {\n\n @Input() treeNodes: TreeNode[] = []; // Lista de valores que va a nutrir el árbol\n @Input() hideAll: boolean = false; // Ocultar todos los checkboxes\n \n public selectedTreeNode: TreeNode | null | undefined;\n public selection: any[] = [];\n public selectedNode?: TreeNode;\n public checkNodes: any[] = [];\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\n toggleNode(node: TreeNode): void {\n node.expanded = !node.expanded;\n }\n\n selectNode(node: TreeNode): void {\n this.selectedNode = node;\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}\n","<ng-template #treeNodeTemplate let-node>\n\n <div class=\"s-tree-list\" (click)=\"selectNode(node)\" [ngClass]=\"node === selectedNode ? 's-tree-list__selected-node' : ''\">\n <span class=\"s-tree-list__toggle-icon\" *ngIf=\"node.children && node.children.length\" tabindex=\"0\" (keydown.enter)=\"toggleNode(node)\" (click)=\"toggleNode(node)\">\n <s-icon-mat class=\"s-tree-list__icon-arrow\">{{node.expanded? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}</s-icon-mat>\n </span>\n\n <div class=\"s-tree-list__content\">\n <s-checkbox-old *ngIf=\"!node.hide && !node.hideRoot && !node.hideAll && !hideAll\" [model]=\"node.checked\" [value]=\"node\" \n [isUndefined]=\"node.isUndefined\" (emitSelection)=\"checkNode($event)\" [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 <ng-container [ngTemplateOutlet]=\"treeNodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\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\n\n\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 {\n Component,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n ViewEncapsulation,\n} 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 @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 }\">\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 }}\n {{ totalItems }} {{ items }}\n </p>\n <p\n class=\"s-body-2 s-pagination__items--text\"\n *ngIf=\"totalItems <= pageSize && totalItems !== 0\">\n {{ showing }} {{ totalItems }} {{ items }}\n </p>\n <p\n class=\"s-body-2 s-pagination__items--text disabled\"\n *ngIf=\"totalItems === 0\">\n {{ empty }}\n </p>\n </div>\n <div class=\"s-pagination__pages-content\" *ngIf=\"!disabled\">\n <s-icon-mat\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 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>{{ pageNumber }}</label>\n </s-button>\n <p\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=\"\n totalPages !== nextPage + 1 &&\n pageNumber !== totalPages &&\n totalPages > 2\n \"\n class=\"s-pagination__pages-content__page-number s-pagination__pages-content__points\">\n ...\n </p>\n <p\n tabindex=\"0\"\n *ngIf=\"\n totalPages !== nextPage && pageNumber !== totalPages && totalItems !== 0\n \"\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 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 OnInit,\n Output,\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 {\n @Input() tabs?: ITab[];\n @Input() configTabs?: IConfigTabs;\n @Output() eventSelect = new EventEmitter<ITab>();\n\n public tabsConfig?: ITab[];\n\n constructor() {}\n\n ngOnInit(): void {\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 *ngIf=\"tabsConfig\"\n [ngClass]=\"{\n 's-tabs__background': configTabs?.background,\n 's-tabs__pill': configTabs?.pill,\n 's-tabs__sm': configTabs?.size === 'sm',\n }\">\n <div class=\"s-tabs__container\" [ngStyle]=\"{ width: configTabs?.width + '%' }\">\n <div\n class=\"s-tabs__content\"\n *ngFor=\"let tab of tabsConfig\"\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\">{{ tab.text }}</span>\n <s-badge\n *ngIf=\"tab.badge\"\n [type]=\"tab.badgeType ? tab.badgeType : 'primary'\"\n >{{ tab.badge }}</s-badge\n >\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})\n\nexport class SCollapseComponent {\n\n @Input() title!: string;\n @Input() subtitle: string = '';\n @Input() expand: boolean = false;\n\n @Output() arrowClick = new EventEmitter<boolean>();\n \n\n}","<div class=\"s-collapse\">\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 class=\"s-collapse__header__arrow__content no-select\" [ngClass]=\"expand ? 'open' : 'close'\" tabindex=\"0\" (keydown.enter)=\"arrowClick.emit(!expand)\" (click)=\"arrowClick.emit(!expand)\">\n <s-icon-mat size=\"16\" 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 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 select?: SSelect;\n multiSelect?: SMultiSelect;\n pillButton?: string; //Icono del btn de pill, sino no se muestra\n title?: 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\n searchValue: string = '';\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._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\n .filter(item => item.value === true)\n .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","<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\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 (click)=\"action()\"\n (keydown.enter)=\"action()\">\n <s-icon-mat>add_circle</s-icon-mat>\n {{ config.actionButton }}\n </s-button>\n <div *ngIf=\"this.config.multiActionButton\">\n <s-button\n class=\"s-toolbar-top__multiAction s-toolbar-top__button\"\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\n *ngIf=\"config.deleteButton\"\n 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 (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 *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 [(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 (selectedEvent)=\"multiSelect($event)\">\n </s-select-multiple>\n </div>\n <div *ngIf=\"config.filterButton && config.filters\">\n <s-button\n class=\"s-toolbar-top__button\"\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 [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 { SCardModule } from '../card/s-card.module';\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 SCardModule,\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 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\n constructor(private readonly domSanitizer: DomSanitizer) {}\n\n ngOnInit(): void {\n if (this.config.image) {\n this.image = this.domSanitizer.bypassSecurityTrustResourceUrl(\n this.config.image\n );\n }\n }\n\n action() {\n this.buttonEvent.emit();\n }\n}\n","<section class=\"s-empty\">\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\">{{\r\n config.detailBold\r\n }}</span>\r\n </p>\r\n <div\r\n *ngIf=\"config.button && config.size !== 'sm'\"\r\n class=\"s-empty__content--button\">\r\n <s-button position=\"normal\" (click)=\"action()\" (keydown.enter)=\"action()\">\r\n <s-icon-mat *ngIf=\"config.buttonIcon\">{{\r\n config.buttonIcon\r\n }}</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 {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation,\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';\n\nexport interface STableComplete {\n columns: ConfigColumn[];\n pageNumber?: number;\n totalItems?: number;\n configToolbarTop?: SToolbarTop;\n emptyConfig?: SEmpty;\n hidePagination?: boolean;\n pageSize?: number;\n pageSizes?: IPageSizes[];\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\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config']) {\n this.filtersDisabled();\n }\n }\n\n ngOnInit(): void {\n this.filtersDisabled();\n }\n\n filtersDisabled() {\n if (this.config.configToolbarTop) {\n this.config.configToolbarTop = {\n ...this.config.configToolbarTop,\n filtersDisabled: this.config.totalItems === 0,\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.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","<section class=\"s-table-complete\">\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 (ordenByEvent)=\"ordenEvent($event)\"\n (checkAllEvent)=\"checkAll($event)\">\n <ng-template STemplate=\"body\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template STemplate=\"bodyloading\" #notItems>\n <s-empty\n *ngIf=\"config.emptyConfig\"\n [config]=\"config.emptyConfig\"\n (buttonEvent)=\"buttonEmpty()\"></s-empty>\n </ng-template>\n </s-tablet>\n </div>\n <div class=\"s-table-complete__pagination\">\n <section\n *ngIf=\"\n !config.hidePagination\n \">\n <s-pagination\n *ngIf=\"config.paginationText\"\n [disabled]=\"config.totalItems === 0\"\n [showing]=\"config.paginationText.showing\"\n [of]=\"config.paginationText.of\"\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 [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</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';\n\n@NgModule({\n declarations: [TableCompleteComponent],\n imports: [\n CommonModule,\n SToolbarTopModule,\n SEmptyModule,\n STabletModule,\n SPaginationModule,\n ],\n exports: [TableCompleteComponent],\n})\nexport class STableCompleteModule {}\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 { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ModalConfirmConfig } from '../models/modal-confirm.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalComfirmService {\n private readonly modalConfigSource = new BehaviorSubject<ModalConfirmConfig>({\n title: '',\n message: '',\n confirmText: '',\n cancelText: '',\n isVisible: false,\n type: 'info',\n });\n\n modalConfig$ = this.modalConfigSource.asObservable();\n\n private readonly modalResponseSource = new Subject<boolean>();\n modalResponse$ = this.modalResponseSource.asObservable();\n\n open(config: ModalConfirmConfig) {\n this.modalConfigSource.next({ ...config, isVisible: true });\n }\n\n close(response: boolean): void {\n this.modalConfigSource.next({\n ...this.modalConfigSource.value,\n isVisible: false,\n });\n this.modalResponseSource.next(response);\n }\n}\n","import { Component } from '@angular/core';\nimport { ModalComfirmService } from './services/modal-confirm.service';\nimport { ModalTypeIcon } from './models/modalType';\nimport { ModalConfirmConfig } from './models/modal-confirm.interface';\n\nexport type ModalType = 'alert' | 'error' | 'info';\n\n@Component({\n selector: 's-modal-confirm.',\n templateUrl: './modal-confirm.component.html',\n styleUrls: ['./modal-confirm.component.scss'],\n})\nexport class ModalConfirmComponent {\n config!: ModalConfirmConfig;\n modalTypeIcon = ModalTypeIcon;\n\n constructor(private modalComfirmService: ModalComfirmService) {\n this.modalComfirmService.modalConfig$.subscribe(config => {\n this.config = config;\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(result: boolean) {\n this.modalComfirmService.close(result);\n }\n}\n","<div\n *ngIf=\"config.isVisible\"\n class=\"s-modal-confirm\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\"\n tabindex=\"0\">\n <div\n class=\"s-modal-confirm__content\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n tabindex=\"0\">\n <section class=\"s-modal-confirm__header\">\n <div class=\"s-modal-confirm__header-title\">\n <s-icon-mat\n size=\"20\"\n [ngClass]=\"'s-modal-confirm__icon-' + config.type\">\n {{ getIconType(config.type).icon }}\n </s-icon-mat>\n <h4 class=\"s-modal-confirm__title\">\n {{ config.title }}\n </h4>\n </div>\n <s-icon-mat\n tabindex=\"0\"\n class=\"s-modal-confirm__icon-close\"\n size=\"20\"\n (click)=\"close(false)\">\n close\n </s-icon-mat>\n </section>\n <p class=\"s-modal-confirm__message\">{{ config.message }}</p>\n <section class=\"s-modal-confirm__buttons\">\n <s-button\n type=\"tertiary\"\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(false)\"\n (keydown.enter)=\"close(false)\">\n {{ config.cancelText }}\n </s-button>\n <s-button\n [theme]=\"getIconType(config.type).color\"\n (click)=\"close(true)\"\n (keydown.enter)=\"close(true)\">\n {{ config.confirmText }}\n </s-button>\n </section>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalConfirmComponent } from './modal-confirm/modal-confirm.component';\nimport { SButtonModule } from '../button';\nimport { SIconMaterialModule } from '../icon-material';\n\n@NgModule({\n declarations: [ModalConfirmComponent],\n imports: [CommonModule, SButtonModule, SIconMaterialModule],\n exports: [ModalConfirmComponent],\n})\nexport class SModalModule {}\n","export enum ANIMATION {\n BUO = 'https://lottie.host/6f4ee854-3625-4849-8985-e423a0752949/hZWZsrb0zk.json', //TODO: ejemplo remover al agregar nuevas animaciones\n SUITE = 'https://blobstoragecuenta.blob.core.windows.net/animaciones/e-Flow_Suite_Loader.json',\n}\n\nexport const ANIMATION_CONFIG: Record<\n ANIMATION,\n {\n loop: boolean;\n autoplay: boolean;\n hover: boolean;\n segments?: [number, number];\n }\n> = {\n [ANIMATION.BUO]: { loop: true, autoplay: false, hover: true },\n [ANIMATION.SUITE]: {\n loop: false,\n autoplay: true,\n hover: false,\n segments: [42, 98],\n },\n};\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AnimationItem } from 'lottie-web';\nimport lottie from 'lottie-web';\nimport { ANIMATION, ANIMATION_CONFIG } from './emuns/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 @Output() playOnHoverEvent = new EventEmitter<void>();\n @Output() pauseOnLeaveEvent = new EventEmitter<void>();\n\n animationItem!: AnimationItem;\n\n ngAfterViewInit() {\n const container = document.getElementById('lottie') as HTMLElement;\n\n const animationConfig = ANIMATION_CONFIG[this.animation];\n\n const animationLottie = lottie.loadAnimation({\n container: container,\n renderer: 'svg',\n loop: animationConfig.loop,\n autoplay: animationConfig.autoplay,\n path: this.animation,\n });\n\n if (animationConfig.segments) {\n animationLottie.addEventListener('complete', () => {\n const [start, end] = 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 = ANIMATION_CONFIG[this.animation].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 = ANIMATION_CONFIG[this.animation].hover;\n if (hover) {\n this.animationItem.pause();\n this.pauseOnLeaveEvent.emit();\n }\n }\n}\n","<div\n class=\"s-animation\"\n id=\"lottie\"\n (mouseenter)=\"playOnHover()\"\n (mouseleave)=\"pauseOnLeave()\">\n</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 } 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}\n","<div class=\"s-container s-container--background-{{ background }}\">\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","/**\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","i3.SButtonComponent","i4.SInputTextComponent","i5.SErrorControl","i2.SErrorControl","i4.SErrorControl","i5.SValidationError","i3.SErrorControl","i4.SValidationError","i6.SValidationError","i1.SelectNavigationService","i4.SInputComponent","i5.SSelectSimpleComponent","i6.SSpinnerComponent","i5.SCheckboxComponent","i6","i7.SErrorControl","i8.SInputComponent","i9.SValidationError","i5","i6.SErrorControl","i7.SValidationError","i5.SCheckboxOldComponent","i6.SCheckboxComponent","i7","i3.SInputTextComponent","i5.SButtonComponent","i6.SIconMaterialComponent","i7.SCheckboxOldComponent","i8.SSelectSimpleComponent","i4.STagComponent","i6.SSubMenuComponent","i3.SCheckboxComponent","i4","i3.STooltipComponent","i4.CustomTooltipDirective","i1.LocalstorageService","i4.SIconMaterialComponent","i5.SBadgeComponent","i6.SMenuItemTitleComponent","i1.SIconMaterialComponent","i1.SToastService","i2.SCheckboxOldComponent","i2.SButtonComponent","i4.SSelectComponent","i1.ImageLoaderDirective","i3.SBadgeComponent","i3.SInputComponent","i5.SIconMaterialComponent","i7.SSelectMultipleComponent","i8.SSelectComponent","i2.SToolbarTopComponent","i3.EmptyComponent","i4.STabletComponent","i4.STemplate","i5.SPaginationComponent","i1.ModalComfirmService","i5.GridMultiInputsToolbarTopComponent"],"mappings":"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"}