@dropi/ui-components 1.0.12 → 1.0.13
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.
- package/README.md +55 -36
- package/dist/README.md +58 -38
- package/dist/components-source/accordion/accordion-item/accordion-item.component.d.ts +31 -0
- package/dist/components-source/accordion/accordion.component.d.ts +26 -0
- package/dist/components-source/alert/alert.component.d.ts +32 -0
- package/dist/components-source/alert-modal/alert-modal.component.d.ts +78 -0
- package/dist/components-source/alert-validation/alert-validation.component.d.ts +21 -0
- package/dist/components-source/badge/badge.component.d.ts +12 -0
- package/dist/components-source/beta-tag/beta-tag.component.d.ts +5 -0
- package/dist/components-source/breadcrumb/breadcrumb.component.d.ts +11 -0
- package/dist/components-source/card-product/card-product.component.d.ts +204 -0
- package/dist/components-source/card-section/card-section.component.d.ts +31 -0
- package/dist/components-source/checkbox-selection-list/checkbox-selection-list.component.d.ts +26 -0
- package/dist/components-source/city-selector/city-selector.component.d.ts +17 -0
- package/dist/components-source/color-picker/color-picker.component.d.ts +73 -0
- package/dist/components-source/confirm-dialog/confirm-dialog.component.d.ts +10 -0
- package/dist/components-source/country-flags/country-flags.component.d.ts +12 -0
- package/dist/components-source/date-picker/date-picker.component.d.ts +27 -0
- package/dist/components-source/date-picker-range/date-picker-range.component.d.ts +26 -0
- package/dist/components-source/dropi-avatars/dropi-avatars.component.d.ts +11 -0
- package/dist/components-source/dropi-badge/dropi-badge.component.d.ts +29 -0
- package/dist/components-source/dropi-banner-external/dropi-banner-external.component.d.ts +19 -0
- package/dist/components-source/dropi-breadcrumb/dropi-breadcrumb.component.d.ts +22 -0
- package/dist/components-source/dropi-card-checkbox/dropi-card-checkbox.component.d.ts +20 -0
- package/dist/components-source/dropi-carousel/dropi-carousel.component.d.ts +52 -0
- package/dist/components-source/dropi-checkbox/dropi-checkbox.component.d.ts +11 -0
- package/dist/components-source/dropi-chips/dropi-chips.component.d.ts +17 -0
- package/dist/components-source/dropi-country-selector/countries.data.d.ts +6 -0
- package/dist/components-source/dropi-country-selector/dropi-country-selector.component.d.ts +90 -0
- package/dist/components-source/dropi-drawer/dropi-drawer.component.d.ts +20 -0
- package/dist/components-source/dropi-dropdown/dropi-dropdown.component.d.ts +20 -0
- package/dist/components-source/dropi-favorite-button/dropi-favorite-button.component.d.ts +12 -0
- package/dist/components-source/dropi-file-upload/card-view/card-view.component.d.ts +19 -0
- package/dist/components-source/dropi-file-upload/drop-zone/drop-zone.component.d.ts +38 -0
- package/dist/components-source/dropi-file-upload/dropi-file-upload.component.d.ts +18 -0
- package/dist/components-source/dropi-file-upload/file-list/file-list.component.d.ts +39 -0
- package/dist/components-source/dropi-file-upload/grid-view/grid-view.component.d.ts +15 -0
- package/dist/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.d.ts +20 -0
- package/dist/components-source/dropi-image-overlay/dropi-image-overlay.component.d.ts +8 -0
- package/dist/components-source/dropi-languages-selector/dropi-languages-selector.component.d.ts +18 -0
- package/dist/components-source/dropi-logo/dropi-logo.component.d.ts +12 -0
- package/dist/components-source/dropi-modal/dropi-modal.component.d.ts +34 -0
- package/dist/components-source/dropi-modal/p-template.directive.d.ts +9 -0
- package/dist/components-source/dropi-navbar/dropi-navbar.component.d.ts +20 -0
- package/dist/components-source/dropi-paginator/dropi-paginator.component.d.ts +21 -0
- package/dist/components-source/dropi-phone-input/dropi-phone-input.component.d.ts +55 -0
- package/dist/components-source/dropi-radio-button/dropi-radio-button.component.d.ts +17 -0
- package/dist/components-source/dropi-search/dropi-search.component.d.ts +40 -0
- package/dist/components-source/dropi-select/dropi-select.component.d.ts +34 -0
- package/dist/components-source/dropi-skeleton/dropi-skeleton.component.d.ts +14 -0
- package/dist/components-source/dropi-steps/dropi-steps.component.d.ts +64 -0
- package/dist/components-source/dropi-switch/dropi-switch.component.d.ts +11 -0
- package/dist/components-source/dropi-table/dropi-table.component.d.ts +82 -0
- package/dist/components-source/dropi-tag/dropi-tag.component.d.ts +15 -0
- package/dist/components-source/dropi-text-area/dropi-text-area.component.d.ts +14 -0
- package/dist/components-source/dropi-tooltip/dropi-tooltip.component.d.ts +28 -0
- package/dist/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.d.ts +16 -0
- package/dist/components-source/empty/empty.component.d.ts +9 -0
- package/dist/components-source/empty-state/empty-state.component.d.ts +17 -0
- package/dist/components-source/file-upload-progress-bar/file-upload-progress-bar.component.d.ts +30 -0
- package/dist/components-source/index.d.ts +85 -0
- package/dist/components-source/input/input.component.d.ts +33 -0
- package/dist/components-source/lottie-loader/lottie-loader.component.d.ts +9 -0
- package/dist/components-source/otp-send-code/otp-send-code.component.d.ts +83 -0
- package/dist/components-source/radio-selection-list/radio-selection-list.component.d.ts +30 -0
- package/dist/components-source/read-more/read-more.component.d.ts +60 -0
- package/dist/components-source/sidebar/sidebar.component.d.ts +27 -0
- package/dist/components-source/simple-stepper/simple-stepper.component.d.ts +21 -0
- package/dist/components-source/spinner/spinner.component.d.ts +9 -0
- package/dist/components-source/tabs/tabs.component.d.ts +27 -0
- package/dist/components-source/tag-type-product/tag-type-product.component.d.ts +5 -0
- package/dist/components-source/toast/toast.component.d.ts +21 -0
- package/dist/components-source/toggle/input-toggle.component.d.ts +11 -0
- package/dist/components-source/tooltip/tooltip.component.d.ts +15 -0
- package/dist/components-source/vertical-steps/vertical-steps.component.d.ts +27 -0
- package/dist/esm2022/components-source/accordion/accordion-item/accordion-item.component.mjs +51 -0
- package/dist/esm2022/components-source/accordion/accordion.component.mjs +46 -0
- package/dist/esm2022/components-source/alert/alert.component.mjs +114 -0
- package/dist/esm2022/components-source/alert-modal/alert-modal.component.mjs +247 -0
- package/dist/esm2022/components-source/alert-validation/alert-validation.component.mjs +53 -0
- package/dist/esm2022/components-source/badge/badge.component.mjs +23 -0
- package/dist/esm2022/components-source/beta-tag/beta-tag.component.mjs +11 -0
- package/dist/esm2022/components-source/breadcrumb/breadcrumb.component.mjs +26 -0
- package/dist/esm2022/components-source/card-product/card-product.component.mjs +534 -0
- package/dist/esm2022/components-source/card-section/card-section.component.mjs +91 -0
- package/dist/esm2022/components-source/checkbox-selection-list/checkbox-selection-list.component.mjs +79 -0
- package/dist/esm2022/components-source/city-selector/city-selector.component.mjs +53 -0
- package/dist/esm2022/components-source/color-picker/color-picker.component.mjs +320 -0
- package/dist/esm2022/components-source/confirm-dialog/confirm-dialog.component.mjs +27 -0
- package/dist/esm2022/components-source/country-flags/country-flags.component.mjs +27 -0
- package/dist/esm2022/components-source/date-picker/date-picker.component.mjs +73 -0
- package/dist/esm2022/components-source/date-picker-range/date-picker-range.component.mjs +67 -0
- package/dist/esm2022/components-source/dropi-avatars/dropi-avatars.component.mjs +31 -0
- package/dist/esm2022/components-source/dropi-badge/dropi-badge.component.mjs +45 -0
- package/dist/esm2022/components-source/dropi-banner-external/dropi-banner-external.component.mjs +39 -0
- package/dist/esm2022/components-source/dropi-breadcrumb/dropi-breadcrumb.component.mjs +45 -0
- package/dist/esm2022/components-source/dropi-card-checkbox/dropi-card-checkbox.component.mjs +53 -0
- package/dist/esm2022/components-source/dropi-carousel/dropi-carousel.component.mjs +243 -0
- package/dist/esm2022/components-source/dropi-checkbox/dropi-checkbox.component.mjs +31 -0
- package/dist/esm2022/components-source/dropi-chips/dropi-chips.component.mjs +38 -0
- package/dist/esm2022/components-source/dropi-country-selector/countries.data.mjs +254 -0
- package/dist/esm2022/components-source/dropi-country-selector/dropi-country-selector.component.mjs +183 -0
- package/dist/esm2022/components-source/dropi-drawer/dropi-drawer.component.mjs +69 -0
- package/dist/esm2022/components-source/dropi-dropdown/dropi-dropdown.component.mjs +59 -0
- package/dist/esm2022/components-source/dropi-favorite-button/dropi-favorite-button.component.mjs +33 -0
- package/dist/esm2022/components-source/dropi-file-upload/card-view/card-view.component.mjs +47 -0
- package/dist/esm2022/components-source/dropi-file-upload/drop-zone/drop-zone.component.mjs +115 -0
- package/dist/esm2022/components-source/dropi-file-upload/dropi-file-upload.component.mjs +66 -0
- package/dist/esm2022/components-source/dropi-file-upload/file-list/file-list.component.mjs +95 -0
- package/dist/esm2022/components-source/dropi-file-upload/grid-view/grid-view.component.mjs +37 -0
- package/dist/esm2022/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.mjs +59 -0
- package/dist/esm2022/components-source/dropi-image-overlay/dropi-image-overlay.component.mjs +31 -0
- package/dist/esm2022/components-source/dropi-languages-selector/dropi-languages-selector.component.mjs +38 -0
- package/dist/esm2022/components-source/dropi-logo/dropi-logo.component.mjs +27 -0
- package/dist/esm2022/components-source/dropi-modal/dropi-modal.component.mjs +92 -0
- package/dist/esm2022/components-source/dropi-modal/p-template.directive.mjs +22 -0
- package/dist/esm2022/components-source/dropi-navbar/dropi-navbar.component.mjs +51 -0
- package/dist/esm2022/components-source/dropi-paginator/dropi-paginator.component.mjs +89 -0
- package/dist/esm2022/components-source/dropi-phone-input/dropi-phone-input.component.mjs +155 -0
- package/dist/esm2022/components-source/dropi-radio-button/dropi-radio-button.component.mjs +48 -0
- package/dist/esm2022/components-source/dropi-search/dropi-search.component.mjs +104 -0
- package/dist/esm2022/components-source/dropi-select/dropi-select.component.mjs +96 -0
- package/dist/esm2022/components-source/dropi-skeleton/dropi-skeleton.component.mjs +39 -0
- package/dist/esm2022/components-source/dropi-steps/dropi-steps.component.mjs +97 -0
- package/dist/esm2022/components-source/dropi-switch/dropi-switch.component.mjs +22 -0
- package/dist/esm2022/components-source/dropi-table/dropi-table.component.mjs +333 -0
- package/dist/esm2022/components-source/dropi-tag/dropi-tag.component.mjs +36 -0
- package/dist/esm2022/components-source/dropi-text-area/dropi-text-area.component.mjs +53 -0
- package/dist/esm2022/components-source/dropi-tooltip/dropi-tooltip.component.mjs +78 -0
- package/dist/esm2022/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.mjs +46 -0
- package/dist/esm2022/components-source/empty/empty.component.mjs +18 -0
- package/dist/esm2022/components-source/empty-state/empty-state.component.mjs +62 -0
- package/dist/esm2022/components-source/file-upload-progress-bar/file-upload-progress-bar.component.mjs +91 -0
- package/dist/esm2022/components-source/index.mjs +107 -0
- package/dist/esm2022/components-source/input/input.component.mjs +104 -0
- package/dist/esm2022/components-source/lottie-loader/lottie-loader.component.mjs +25 -0
- package/dist/esm2022/components-source/otp-send-code/otp-send-code.component.mjs +201 -0
- package/dist/esm2022/components-source/radio-selection-list/radio-selection-list.component.mjs +89 -0
- package/dist/esm2022/components-source/read-more/read-more.component.mjs +91 -0
- package/dist/esm2022/components-source/sidebar/sidebar.component.mjs +88 -0
- package/dist/esm2022/components-source/simple-stepper/simple-stepper.component.mjs +60 -0
- package/dist/esm2022/components-source/spinner/spinner.component.mjs +19 -0
- package/dist/esm2022/components-source/tabs/tabs.component.mjs +83 -0
- package/dist/esm2022/components-source/tag-type-product/tag-type-product.component.mjs +11 -0
- package/dist/esm2022/components-source/toast/toast.component.mjs +47 -0
- package/dist/esm2022/components-source/toggle/input-toggle.component.mjs +36 -0
- package/dist/esm2022/components-source/tooltip/tooltip.component.mjs +34 -0
- package/dist/esm2022/components-source/vertical-steps/vertical-steps.component.mjs +75 -0
- package/dist/esm2022/lib/elements-registry.mjs +343 -2
- package/dist/esm2022/utilities/interfaces/ui/dropi-table.interface.mjs +2 -0
- package/dist/esm2022/utilities/interfaces/ui/input-interface.mjs +2 -0
- package/dist/esm2022/utilities/interfaces/ui/select-interface.mjs +2 -0
- package/dist/esm2022/utilities/interfaces/ui/selection-list-interface.mjs +2 -0
- package/dist/esm2022/utilities/interfaces/ui/upload.model.mjs +5 -0
- package/dist/fesm2022/dropi-ui-components.mjs +5913 -2
- package/dist/fesm2022/dropi-ui-components.mjs.map +1 -1
- package/dist/utilities/interfaces/ui/dropi-table.interface.d.ts +45 -0
- package/dist/utilities/interfaces/ui/input-interface.d.ts +33 -0
- package/dist/utilities/interfaces/ui/select-interface.d.ts +8 -0
- package/dist/utilities/interfaces/ui/selection-list-interface.d.ts +24 -0
- package/dist/utilities/interfaces/ui/upload.model.d.ts +30 -0
- package/package.json +18 -6
- package/src/components-source/alert/alert.component.ts +12 -129
- package/src/components-source/alert-modal/alert-modal.component.ts +84 -114
- package/src/components-source/alert-validation/alert-validation.component.html +8 -0
- package/src/components-source/alert-validation/alert-validation.component.scss +225 -0
- package/src/components-source/alert-validation/alert-validation.component.ts +43 -0
- package/src/components-source/beta-tag/beta-tag.component.html +1 -0
- package/src/components-source/beta-tag/beta-tag.component.scss +26 -0
- package/src/components-source/beta-tag/beta-tag.component.ts +11 -0
- package/src/components-source/breadcrumb/breadcrumb.component.html +13 -5
- package/src/components-source/breadcrumb/breadcrumb.component.scss +8 -1
- package/src/components-source/breadcrumb/breadcrumb.component.spec.ts +26 -26
- package/src/components-source/breadcrumb/breadcrumb.component.ts +10 -12
- package/src/components-source/card-product/card-product.component.spec.ts +9 -9
- package/src/components-source/card-product/card-product.component.stories.ts +2 -2
- package/src/components-source/card-product/card-product.component.ts +294 -818
- package/src/components-source/card-section/card-section.component.html +7 -7
- package/src/components-source/card-section/card-section.component.ts +41 -15
- package/src/components-source/checkbox-selection-list/checkbox-selection-list.component.ts +42 -179
- package/src/components-source/city-selector/city-selector.component.ts +37 -137
- package/src/components-source/confirm-dialog/confirm-dialog.component.html +26 -0
- package/src/components-source/confirm-dialog/confirm-dialog.component.scss +55 -0
- package/src/components-source/confirm-dialog/confirm-dialog.component.ts +22 -0
- package/src/components-source/country-flags/country-flags.component.ts +20 -12
- package/src/components-source/date-picker/date-picker.component.ts +32 -292
- package/src/components-source/date-picker-range/date-picker-range.component.html +15 -7
- package/src/components-source/date-picker-range/date-picker-range.component.ts +42 -235
- package/src/components-source/dropi-banner-external/dropi-banner-external.component.ts +24 -185
- package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.html +21 -21
- package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.spec.ts +9 -9
- package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.ts +41 -23
- package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.stories.ts +12 -12
- package/src/components-source/dropi-chips/dropi-chips.component.ts +22 -87
- package/src/components-source/dropi-country-selector/countries.data.ts +256 -236
- package/src/components-source/dropi-country-selector/dropi-country-selector.component.ts +37 -25
- package/src/components-source/dropi-drawer/dropi-drawer.component.ts +91 -78
- package/src/components-source/dropi-dropdown/dropi-dropdown.component.ts +44 -47
- package/src/components-source/dropi-file-upload/card-view/card-view.component.ts +33 -53
- package/src/components-source/dropi-file-upload/drop-zone/drop-zone.component.ts +52 -123
- package/src/components-source/dropi-file-upload/dropi-file-upload.component.ts +38 -294
- package/src/components-source/dropi-file-upload/file-list/file-list.component.ts +62 -43
- package/src/components-source/dropi-file-upload/grid-view/grid-view.component.ts +23 -22
- package/src/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.scss +6 -2
- package/src/components-source/dropi-image-overlay/dropi-image-overlay.component.ts +16 -71
- package/src/components-source/dropi-modal/dropi-modal.component.ts +56 -372
- package/src/components-source/dropi-navbar/dropi-navbar.component.ts +17 -17
- package/src/components-source/dropi-paginator/dropi-paginator.component.html +18 -7
- package/src/components-source/dropi-paginator/dropi-paginator.component.ts +40 -32
- package/src/components-source/dropi-phone-input/dropi-phone-input.component.html +78 -79
- package/src/components-source/dropi-phone-input/dropi-phone-input.component.ts +29 -85
- package/src/components-source/dropi-search/dropi-search.component.ts +59 -222
- package/src/components-source/dropi-select/dropi-select.component.html +82 -131
- package/src/components-source/dropi-select/dropi-select.component.ts +60 -423
- package/src/components-source/dropi-table/dropi-table.component.html +40 -23
- package/src/components-source/dropi-table/dropi-table.component.ts +130 -374
- package/src/components-source/dropi-tag/dropi-tag.component.ts +20 -90
- package/src/components-source/dropi-text-area/dropi-text-area.component.ts +22 -48
- package/src/components-source/dropi-tooltip/dropi-tooltip.component.ts +40 -129
- package/src/components-source/empty/empty.component.html +3 -0
- package/src/components-source/empty/empty.component.scss +0 -0
- package/src/components-source/empty/empty.component.ts +16 -0
- package/src/components-source/empty-state/empty-state.component.ts +47 -19
- package/src/components-source/index.ts +82 -37
- package/src/components-source/input/input.component.html +79 -63
- package/src/components-source/input/input.component.ts +51 -97
- package/src/components-source/lottie-loader/lottie-loader.component.ts +13 -16
- package/src/components-source/otp-send-code/otp-send-code.component.ts +60 -528
- package/src/components-source/radio-selection-list/radio-selection-list.component.ts +36 -97
- package/src/components-source/sidebar/sidebar.component.spec.ts +11 -11
- package/src/components-source/sidebar/sidebar.component.stories.ts +3 -3
- package/src/components-source/sidebar/sidebar.component.ts +51 -47
- package/src/components-source/simple-stepper/simple-stepper.component.ts +20 -35
- package/src/components-source/spinner/spinner.component.html +6 -0
- package/src/components-source/spinner/spinner.component.scss +15 -0
- package/src/components-source/spinner/spinner.component.ts +17 -0
- package/src/components-source/tabs/tabs.component.spec.ts +8 -8
- package/src/components-source/tabs/tabs.component.stories.ts +5 -5
- package/src/components-source/tabs/tabs.component.ts +41 -83
- package/src/components-source/toast/toast.component.ts +40 -46
- package/src/components-source/toggle/input-toggle.component.html +34 -0
- package/src/components-source/toggle/input-toggle.component.scss +0 -0
- package/src/components-source/toggle/input-toggle.component.ts +27 -0
- package/src/components-source/toggle/inputToggleConfig.ts +11 -0
- package/src/components-source/tooltip/tooltip.component.html +22 -11
- package/src/components-source/tooltip/tooltip.component.ts +28 -13
- package/src/components-source/vertical-steps/vertical-steps.component.ts +16 -78
- package/src/lib/elements-registry.ts +413 -1
- package/src/lib/router-stub.ts +7 -0
- package/src/libreria work space.code-workspace +11 -8
- package/src/utilities/interfaces/ui/dropi-table.interface.ts +60 -0
- package/src/utilities/interfaces/ui/input-interface.ts +34 -0
- package/src/utilities/interfaces/ui/select-interface.ts +8 -0
- package/src/utilities/interfaces/ui/selection-list-interface.ts +15 -0
- package/src/utilities/interfaces/ui/upload.model.ts +41 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropi-ui-components.mjs","sources":["../../src/components-source/icon/icon.component.ts","../../src/components-source/icon/icon.component.html","../../src/components-source/dropi-button/dropi-button.component.ts","../../src/components-source/dropi-button/dropi-button.component.html","../../src/lib/elements.module.ts","../../src/lib/elements-registry.ts","../../src/index.ts","../../src/dropi-ui-components.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ElementRef,\n Renderer2,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'app-icon',\n standalone: true,\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n imports: [CommonModule],\n})\nexport class IconComponent implements OnInit, OnChanges {\n // Nombre del ícono, debe coincidir con el \"id\" en el sprite SVG\n @Input() name: string = '';\n // Atributos opcionales para controlar el tamaño y color\n @Input() width: string = '24px';\n @Input() height: string = '24px';\n @Input() color: string = 'currentColor';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit() {\n this.setColors();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color'] && !changes['color'].firstChange) this.setColors();\n }\n\n setColors() {\n if (!this.color) {\n // Si no hay color, no hacer nada\n return;\n }\n\n if (this.color.startsWith('#')) {\n // Si es un color directo (ej: \"#ff0000\"), lo usa normal\n this.renderer.setStyle(this.el.nativeElement, 'fill', this.color);\n } else {\n // Si el color es un token, usa la variable CSS\n this.renderer.setStyle(this.el.nativeElement, 'fill', `var(--${this.color})`);\n }\n }\n}\n","<svg [attr.width]=\"width\" [attr.height]=\"height\" [ngClass]=\"{ spin: name === 'Spinner' }\">\n <use [attr.xlink:href]=\"'assets/icons/symbol/svg/sprite.css.svg#' + name\"></use>\n</svg>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport type ButtonType =\n | \"legacy\"\n | \"default\"\n | \"success\"\n | \"info\"\n | \"error\"\n | \"warning\"\n | \"dropdown\";\nexport type ButtonSeverity = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonSize = \"large\" | \"normal\" | \"small\";\nexport type ButtonState = \"default\" | \"disabled\" | \"loading\";\n\n// @figma-node 2-381\n@Component({\n selector: \"dropi-wc-button\",\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: \"./dropi-button.component.html\",\n styleUrls: [\"./dropi-button.component.scss\"],\n host: { \"data-figma-node\": \"2-381\" },\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = \"default\";\n @Input() severity: ButtonSeverity = \"primary\";\n @Input() size: ButtonSize = \"normal\";\n @Input() state: ButtonState = \"default\";\n @Input() preIcon: string = \"\";\n @Input() postIcon: string = \"\";\n @Input() text: string = \"\";\n @Output() onClick = new EventEmitter<Event>();\n\n colorload = \"var(--Primary-Primary-500)\";\n\n colorMap: { [key: string]: string } = {\n default: \"Primary-Primary-\",\n success: \"Success-Success-\",\n error: \"Error-Error-\",\n info: \"Info-Info-\",\n legacy: \"Secondary-Secondary-\",\n warning: \"Warning-Warning-\",\n };\n\n get iconSize(): string {\n switch (this.size) {\n case \"large\":\n return \"24px\";\n case \"small\":\n return \"16px\";\n default:\n return \"18px\"; // Tamaño por defecto (normal)\n }\n }\n\n get color() {\n let intensity = this.state === \"disabled\" ? \"300\" : \"500\";\n return this.colorMap[this.type] + intensity;\n }\n\n get fontColor(): string {\n switch (this.severity) {\n case \"tertiary\":\n return this.type === \"default\" || this.type === \"legacy\"\n ? \"Gray-Gray-500\"\n : this.color;\n case \"secondary\":\n return this.color;\n default:\n return \"Neutral-White\";\n }\n }\n\n get svgColor(): string {\n return `var(--${this.fontColor})`;\n }\n handleClick(event: Event) {\n if (this.state !== \"disabled\" && this.state !== \"loading\") {\n this.onClick.emit(event);\n }\n }\n}\n","<button\n class=\"btn\"\n [ngClass]=\"[!text ? 'without-text' : '', severity, type, size, state]\"\n [disabled]=\"state === 'disabled' || state === 'loading'\"\n (click)=\"handleClick($event)\"\n>\n <app-icon\n *ngIf=\"preIcon !== ''\"\n [name]=\"preIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <span *ngIf=\"text !== ''\" class=\"text\">{{ text }}</span>\n <app-icon\n *ngIf=\"postIcon !== '' || type === 'dropdown'\"\n [name]=\"type == 'dropdown' ? 'Dropdown-down' : postIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <svg\n *ngIf=\"state === 'loading'\"\n class=\"spin\"\n [attr.width]=\"iconSize\"\n [attr.height]=\"iconSize\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n [attr.fill]=\"svgColor\"\n />\n </svg>\n <ng-content></ng-content>\n</button>\n","/**\n * Módulo principal de Dropi UI Elements\n *\n * Este módulo proporciona funciones auxiliares para convertir\n * componentes Angular en Web Components\n */\n\nimport { NgModule } from '@angular/core';\n\n/**\n * Módulo auxiliar de Angular Elements\n *\n * Este es un módulo vacío que sirve como punto de entrada\n * La conversión a Web Components se hace mediante la función\n * registerDropiElements\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n})\nexport class DropiElementsModule {}\n","/**\n * Registro de elementos personalizados (Web Components)\n *\n * Este archivo contiene la función que registra todos los componentes Angular\n * como Custom Elements del navegador usando Angular Elements.\n */\n\nimport \"@angular/compiler\";\nimport { Injector, Type, ApplicationRef } from \"@angular/core\";\nimport { createCustomElement } from \"@angular/elements\";\n\n/**\n * Interface para definición de componentes\n */\ninterface ComponentDefinition {\n selector: string;\n component: Type<any>;\n description: string;\n}\n\n/**\n * Registra todos los componentes Dropi como custom elements\n *\n * @param injector - El injector de Angular necesario para createCustomElement\n * @param components - Array de componentes a registrar\n *\n * @example\n * ```typescript\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { registerDropiElements } from '@oropi/ui-elements';\n * import { ButtonComponent } from '@app/ui';\n *\n * const components = [\n * { selector: 'dropi-button', component: ButtonComponent }\n * ];\n *\n * platformBrowserDynamic().bootstrapModule(AppModule)\n * .then((ref) => {\n * const injector = ref.injector;\n * registerDropiElements(injector, components);\n * });\n * ```\n */\nimport { createApplication } from \"@angular/platform-browser\";\nimport { ButtonComponent } from \"../components-source/dropi-button/dropi-button.component\";\n\n/**\n * Lista interna de todos los componentes disponibles para registro automático\n */\nconst ALL_COMPONENTS: ComponentDefinition[] = [\n {\n selector: \"dropi-wc-button\",\n component: ButtonComponent,\n description: \"Button Component\",\n },\n];\n\nexport function registerDropiElements(\n injector: Injector,\n components: ComponentDefinition[],\n): void {\n // Registrar cada componente como custom element\n components.forEach(({ selector, component, description }) => {\n try {\n // Verificar si el custom element ya está definido\n if (!customElements.get(selector)) {\n const element = createCustomElement(component, { injector });\n customElements.define(selector, element);\n console.log(\n `✅ Web Component registrado: <${selector}> - ${description}`,\n );\n } else {\n console.warn(`⚠️ Custom element <${selector}> ya está definido`);\n }\n } catch (error) {\n console.error(`❌ Error registrando <${selector}>:`, error);\n }\n });\n}\n\n/**\n * Inicializa el entorno de Angular y registra todos los Web Components automáticamente.\n * Ideal para uso en frameworks como React, Vue, o Vanilla JS.\n */\nexport function defineCustomElements(config?: {\n providers?: any[];\n}): Promise<void> {\n const appConfig =\n config && config.providers\n ? { providers: config.providers }\n : { providers: [] };\n return createApplication(appConfig)\n .then((appRef: ApplicationRef) => {\n registerDropiElements(appRef.injector, ALL_COMPONENTS);\n console.log(\"🚀 Dropi UI Elements initialized successfully\");\n })\n .catch((err: any) =>\n console.error(\"❌ Error initializing Dropi UI Elements\", err),\n );\n}\n\n/**\n * Función auxiliar para verificar si un componente está registrado\n */\nexport function isComponentRegistered(selector: string): boolean {\n return customElements.get(selector) !== undefined;\n}\n","import \"@angular/compiler\";\n/**\n * Public API Surface de @dropi/ui-components\n */\n\n// Exportar componentes individuales desde components-source\nexport { ButtonComponent } from \"./components-source/dropi-button/dropi-button.component\";\n\n// Exportar el módulo de elementos\nexport { DropiElementsModule } from \"./lib/elements.module\";\n\n// Exportar funciones de registro\nexport {\n registerDropiElements,\n defineCustomElements,\n isComponentRegistered,\n} from \"./lib/elements-registry\";\n\n// Información de versión\nexport const DROPI_ELEMENTS_VERSION = \"1.0.0\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dropi-ui-components.mjs","sources":["../../src/components-source/icon/icon.component.ts","../../src/components-source/icon/icon.component.html","../../src/components-source/dropi-button/dropi-button.component.ts","../../src/components-source/dropi-button/dropi-button.component.html","../../src/lib/elements.module.ts","../../src/components-source/date-picker-range/date-picker-range.component.ts","../../src/components-source/date-picker-range/date-picker-range.component.html","../../src/components-source/date-picker/date-picker.component.ts","../../src/components-source/date-picker/date-picker.component.html","../../src/components-source/tooltip/tooltip.component.ts","../../src/components-source/tooltip/tooltip.component.html","../../src/components-source/dropi-tooltip/dropi-tooltip.component.ts","../../src/components-source/dropi-tooltip/dropi-tooltip.component.html","../../src/components-source/tag-type-product/tag-type-product.component.ts","../../src/components-source/tag-type-product/tag-type-product.component.html","../../src/components-source/dropi-tag/dropi-tag.component.ts","../../src/components-source/dropi-tag/dropi-tag.component.html","../../src/components-source/dropi-chips/dropi-chips.component.ts","../../src/components-source/dropi-chips/dropi-chips.component.html","../../src/components-source/dropi-banner-external/dropi-banner-external.component.ts","../../src/components-source/dropi-banner-external/dropi-banner-external.component.html","../../src/components-source/alert-validation/alert-validation.component.ts","../../src/components-source/alert-validation/alert-validation.component.html","../../src/components-source/beta-tag/beta-tag.component.ts","../../src/components-source/beta-tag/beta-tag.component.html","../../src/components-source/dropi-modal/dropi-modal.component.ts","../../src/components-source/dropi-modal/dropi-modal.component.html","../../src/components-source/dropi-modal/p-template.directive.ts","../../src/components-source/alert-modal/alert-modal.component.ts","../../src/components-source/alert-modal/alert-modal.component.html","../../src/components-source/alert/alert.component.ts","../../src/components-source/alert/alert.component.html","../../src/components-source/confirm-dialog/confirm-dialog.component.ts","../../src/components-source/confirm-dialog/confirm-dialog.component.html","../../src/components-source/simple-stepper/simple-stepper.component.ts","../../src/components-source/simple-stepper/simple-stepper.component.html","../../src/components-source/breadcrumb/breadcrumb.component.ts","../../src/components-source/breadcrumb/breadcrumb.component.html","../../src/components-source/dropi-badge/dropi-badge.component.ts","../../src/components-source/dropi-badge/dropi-badge.component.html","../../src/components-source/tabs/tabs.component.ts","../../src/components-source/tabs/tabs.component.html","../../src/components-source/dropi-steps/dropi-steps.component.ts","../../src/components-source/dropi-steps/dropi-steps.component.html","../../src/components-source/vertical-steps/vertical-steps.component.ts","../../src/components-source/vertical-steps/vertical-steps.component.html","../../src/components-source/dropi-paginator/dropi-paginator.component.ts","../../src/components-source/dropi-paginator/dropi-paginator.component.html","../../src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.ts","../../src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.html","../../src/components-source/country-flags/country-flags.component.ts","../../src/components-source/country-flags/country-flags.component.html","../../src/components-source/dropi-languages-selector/dropi-languages-selector.component.ts","../../src/components-source/dropi-languages-selector/dropi-languages-selector.component.html","../../src/components-source/dropi-search/dropi-search.component.ts","../../src/components-source/dropi-search/dropi-search.component.html","../../src/components-source/dropi-checkbox/dropi-checkbox.component.ts","../../src/components-source/dropi-checkbox/dropi-checkbox.component.html","../../src/components-source/dropi-avatars/dropi-avatars.component.ts","../../src/components-source/dropi-avatars/dropi-avatars.component.html","../../src/components-source/dropi-dropdown/dropi-dropdown.component.ts","../../src/components-source/dropi-dropdown/dropi-dropdown.component.html","../../src/components-source/dropi-select/dropi-select.component.ts","../../src/components-source/dropi-select/dropi-select.component.html","../../src/components-source/city-selector/city-selector.component.ts","../../src/components-source/city-selector/city-selector.component.html","../../src/components-source/radio-selection-list/radio-selection-list.component.ts","../../src/components-source/radio-selection-list/radio-selection-list.component.html","../../src/components-source/checkbox-selection-list/checkbox-selection-list.component.ts","../../src/components-source/checkbox-selection-list/checkbox-selection-list.component.html","../../src/components-source/dropi-radio-button/dropi-radio-button.component.ts","../../src/components-source/dropi-radio-button/dropi-radio-button.component.html","../../src/components-source/lottie-loader/lottie-loader.component.ts","../../src/components-source/lottie-loader/lottie-loader.component.html","../../src/components-source/toast/toast.component.ts","../../src/components-source/toast/toast.component.html","../../src/components-source/dropi-skeleton/dropi-skeleton.component.ts","../../src/components-source/dropi-skeleton/dropi-skeleton.component.html","../../src/components-source/file-upload-progress-bar/file-upload-progress-bar.component.ts","../../src/components-source/file-upload-progress-bar/file-upload-progress-bar.component.html","../../src/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.ts","../../src/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.html","../../src/components-source/spinner/spinner.component.ts","../../src/components-source/spinner/spinner.component.html","../../src/components-source/accordion/accordion.component.ts","../../src/components-source/accordion/accordion.component.html","../../src/components-source/accordion/accordion-item/accordion-item.component.ts","../../src/components-source/accordion/accordion-item/accordion-item.component.html","../../src/components-source/read-more/read-more.component.ts","../../src/components-source/read-more/read-more.component.html","../../src/components-source/empty/empty.component.ts","../../src/components-source/empty/empty.component.html","../../src/components-source/dropi-image-overlay/dropi-image-overlay.component.ts","../../src/components-source/dropi-logo/dropi-logo.component.ts","../../src/components-source/dropi-logo/dropi-logo.component.html","../../src/components-source/input/input.component.ts","../../src/components-source/input/input.component.html","../../src/components-source/dropi-switch/dropi-switch.component.ts","../../src/components-source/dropi-switch/dropi-switch.component.html","../../src/components-source/otp-send-code/otp-send-code.component.ts","../../src/components-source/otp-send-code/otp-send-code.component.html","../../src/components-source/dropi-text-area/dropi-text-area.component.ts","../../src/components-source/dropi-text-area/dropi-text-area.component.html","../../src/components-source/dropi-phone-input/dropi-phone-input.component.ts","../../src/components-source/dropi-phone-input/dropi-phone-input.component.html","../../src/components-source/toggle/input-toggle.component.ts","../../src/components-source/toggle/input-toggle.component.html","../../src/components-source/dropi-carousel/dropi-carousel.component.ts","../../src/components-source/dropi-carousel/dropi-carousel.component.html","../../src/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.ts","../../src/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.html","../../src/components-source/dropi-table/dropi-table.component.ts","../../src/components-source/dropi-table/dropi-table.component.html","../../src/components-source/dropi-favorite-button/dropi-favorite-button.component.ts","../../src/components-source/dropi-favorite-button/dropi-favorite-button.component.html","../../src/components-source/dropi-card-checkbox/dropi-card-checkbox.component.ts","../../src/components-source/dropi-card-checkbox/dropi-card-checkbox.component.html","../../src/components-source/card-section/card-section.component.ts","../../src/components-source/card-section/card-section.component.html","../../src/components-source/card-product/card-product.component.ts","../../src/components-source/card-product/card-product.component.html","../../src/components-source/color-picker/color-picker.component.ts","../../src/components-source/color-picker/color-picker.component.html","../../src/components-source/badge/badge.component.ts","../../src/components-source/badge/badge.component.html","../../src/components-source/empty-state/empty-state.component.ts","../../src/components-source/empty-state/empty-state.component.html","../../src/components-source/dropi-file-upload/drop-zone/drop-zone.component.ts","../../src/components-source/dropi-file-upload/drop-zone/drop-zone.component.html","../../src/components-source/dropi-file-upload/card-view/card-view.component.ts","../../src/components-source/dropi-file-upload/card-view/card-view.component.html","../../src/components-source/dropi-file-upload/grid-view/grid-view.component.ts","../../src/components-source/dropi-file-upload/grid-view/grid-view.component.html","../../src/components-source/dropi-file-upload/file-list/file-list.component.ts","../../src/components-source/dropi-file-upload/file-list/file-list.component.html","../../src/components-source/dropi-file-upload/dropi-file-upload.component.ts","../../src/components-source/dropi-file-upload/dropi-file-upload.component.html","../../src/components-source/dropi-country-selector/countries.data.ts","../../src/components-source/dropi-country-selector/dropi-country-selector.component.ts","../../src/components-source/dropi-country-selector/dropi-country-selector.component.html","../../src/components-source/dropi-drawer/dropi-drawer.component.ts","../../src/components-source/dropi-drawer/dropi-drawer.component.html","../../src/components-source/sidebar/sidebar.component.ts","../../src/components-source/sidebar/sidebar.component.html","../../src/components-source/dropi-navbar/dropi-navbar.component.ts","../../src/components-source/dropi-navbar/dropi-navbar.component.html","../../src/components-source/index.ts","../../src/lib/elements-registry.ts","../../src/index.ts","../../src/dropi-ui-components.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ElementRef,\n Renderer2,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'app-icon',\n standalone: true,\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n imports: [CommonModule],\n})\nexport class IconComponent implements OnInit, OnChanges {\n // Nombre del ícono, debe coincidir con el \"id\" en el sprite SVG\n @Input() name: string = '';\n // Atributos opcionales para controlar el tamaño y color\n @Input() width: string = '24px';\n @Input() height: string = '24px';\n @Input() color: string = 'currentColor';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit() {\n this.setColors();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color'] && !changes['color'].firstChange) this.setColors();\n }\n\n setColors() {\n if (!this.color) {\n // Si no hay color, no hacer nada\n return;\n }\n\n if (this.color.startsWith('#')) {\n // Si es un color directo (ej: \"#ff0000\"), lo usa normal\n this.renderer.setStyle(this.el.nativeElement, 'fill', this.color);\n } else {\n // Si el color es un token, usa la variable CSS\n this.renderer.setStyle(this.el.nativeElement, 'fill', `var(--${this.color})`);\n }\n }\n}\n","<svg [attr.width]=\"width\" [attr.height]=\"height\" [ngClass]=\"{ spin: name === 'Spinner' }\">\n <use [attr.xlink:href]=\"'assets/icons/symbol/svg/sprite.css.svg#' + name\"></use>\n</svg>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport type ButtonType =\n | \"legacy\"\n | \"default\"\n | \"success\"\n | \"info\"\n | \"error\"\n | \"warning\"\n | \"dropdown\";\nexport type ButtonSeverity = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonSize = \"large\" | \"normal\" | \"small\";\nexport type ButtonState = \"default\" | \"disabled\" | \"loading\";\n\n// @figma-node 2-381\n@Component({\n selector: \"dropi-wc-button\",\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: \"./dropi-button.component.html\",\n styleUrls: [\"./dropi-button.component.scss\"],\n host: { \"data-figma-node\": \"2-381\" },\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = \"default\";\n @Input() severity: ButtonSeverity = \"primary\";\n @Input() size: ButtonSize = \"normal\";\n @Input() state: ButtonState = \"default\";\n @Input() preIcon: string = \"\";\n @Input() postIcon: string = \"\";\n @Input() text: string = \"\";\n @Output() onClick = new EventEmitter<Event>();\n\n colorload = \"var(--Primary-Primary-500)\";\n\n colorMap: { [key: string]: string } = {\n default: \"Primary-Primary-\",\n success: \"Success-Success-\",\n error: \"Error-Error-\",\n info: \"Info-Info-\",\n legacy: \"Secondary-Secondary-\",\n warning: \"Warning-Warning-\",\n };\n\n get iconSize(): string {\n switch (this.size) {\n case \"large\":\n return \"24px\";\n case \"small\":\n return \"16px\";\n default:\n return \"18px\"; // Tamaño por defecto (normal)\n }\n }\n\n get color() {\n let intensity = this.state === \"disabled\" ? \"300\" : \"500\";\n return this.colorMap[this.type] + intensity;\n }\n\n get fontColor(): string {\n switch (this.severity) {\n case \"tertiary\":\n return this.type === \"default\" || this.type === \"legacy\"\n ? \"Gray-Gray-500\"\n : this.color;\n case \"secondary\":\n return this.color;\n default:\n return \"Neutral-White\";\n }\n }\n\n get svgColor(): string {\n return `var(--${this.fontColor})`;\n }\n handleClick(event: Event) {\n if (this.state !== \"disabled\" && this.state !== \"loading\") {\n this.onClick.emit(event);\n }\n }\n}\n","<button\n class=\"btn\"\n [ngClass]=\"[!text ? 'without-text' : '', severity, type, size, state]\"\n [disabled]=\"state === 'disabled' || state === 'loading'\"\n (click)=\"handleClick($event)\"\n>\n <app-icon\n *ngIf=\"preIcon !== ''\"\n [name]=\"preIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <span *ngIf=\"text !== ''\" class=\"text\">{{ text }}</span>\n <app-icon\n *ngIf=\"postIcon !== '' || type === 'dropdown'\"\n [name]=\"type == 'dropdown' ? 'Dropdown-down' : postIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <svg\n *ngIf=\"state === 'loading'\"\n class=\"spin\"\n [attr.width]=\"iconSize\"\n [attr.height]=\"iconSize\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n [attr.fill]=\"svgColor\"\n />\n </svg>\n <ng-content></ng-content>\n</button>\n","/**\n * Módulo principal de Dropi UI Elements\n *\n * Este módulo proporciona funciones auxiliares para convertir\n * componentes Angular en Web Components\n */\n\nimport { NgModule } from '@angular/core';\n\n/**\n * Módulo auxiliar de Angular Elements\n *\n * Este es un módulo vacío que sirve como punto de entrada\n * La conversión a Web Components se hace mediante la función\n * registerDropiElements\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n})\nexport class DropiElementsModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-date-picker-range\",\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./date-picker-range.component.html\",\n styleUrls: [\"./date-picker-range.component.scss\"],\n})\nexport class DatePickerRangeComponent implements OnInit {\n @Input() public setRight: boolean = false;\n @Input() public loading: boolean = false;\n @Input() public showLabel: boolean = true;\n @Input() public placeholder: string = \"\";\n @Input() public appendTo: string = \"body\";\n @Input() public maxDate: any;\n @Input() public minDate: any;\n\n public dateRange: any[] = [];\n public CalendarTypeView: string | null = null;\n public ranges: any[] = [\n { label: \"today\", value: [new Date(), new Date()] },\n { label: \"last 7 days\", value: [new Date(), new Date()] },\n ];\n public activeRangeIndex: number | null = null;\n public viewRangeWarning: boolean = false;\n public calendar: any; // Para el template variable\n\n @Output() public startDateChange = new EventEmitter<any>();\n @Output() public endDateChange = new EventEmitter<any>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public onSelect(event: any): void {\n if (this.dateRange && this.dateRange.length === 2) {\n this.startDateChange.emit(this.dateRange[0]);\n this.endDateChange.emit(this.dateRange[1]);\n }\n }\n\n public checkCalendarView(calendar: any): void {}\n\n public selectRange(range: any, index: number): void {\n this.dateRange = range.value;\n this.activeRangeIndex = index;\n this.onSelect(null);\n }\n}\n","<div\n [ngClass]=\"setRight ? '' : 'calendar-left'\"\n class=\"date-picker-range\"\n *ngIf=\"!loading\"\n>\n <div *ngIf=\"showLabel\" class=\"label\">{{ \"date range\" | translate }}</div>\n <p-calendar\n #calendarInputRef\n class=\"date-picker-input\"\n [panelStyleClass]=\"\n setRight ? 'dropi-custom-calendar' : 'dropi-custom-calendar calendar-left'\n \"\n [ngClass]=\"{ 'date-picker-input--open': loading }\"\n [(ngModel)]=\"dateRange\"\n selectionMode=\"range\"\n [readonlyInput]=\"true\"\n dateFormat=\"dd/mm/yy\"\n [style]=\"{ width: '100%' }\"\n inputId=\"date-range\"\n (onSelect)=\"onSelect($event)\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [placeholder]=\"placeholder\"\n ([CalendarTypeView])=\"(CalendarTypeView)\"\n showOtherMonths=\"false\"\n responsiveOptions=\"true\"\n [disabled]=\"loading\"\n (onClick)=\"checkCalendarView(calendar)\"\n [appendTo]=\"appendTo\"\n >\n <ng-template *ngIf=\"CalendarTypeView === null\" pTemplate=\"header\">\n <div class=\"custom-header\">\n <button\n *ngFor=\"let range of ranges; let i = index\"\n (click)=\"selectRange(range, i)\"\n class=\"p-button-text\"\n [ngClass]=\"{ active: i === activeRangeIndex }\"\n >\n {{ range.label | translate }}\n </button>\n <div *ngIf=\"viewRangeWarning\" class=\"warning-box\">\n <span class=\"warning-message\"\n >Solo puedes filtrar en un rango máximo de 90 días.</span\n >\n </div>\n </div>\n </ng-template>\n </p-calendar>\n</div>\n\n<div class=\"loading\" *ngIf=\"loading\">\n <div class=\"skeleton dp\"></div>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-date-picker\",\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./date-picker.component.html\",\n styleUrls: [\"./date-picker.component.scss\"],\n})\nexport class DatePickerComponent implements OnInit {\n @Input() public label: string | null = null;\n @Input() public required: boolean = false;\n @Input() public selectedDate: any = new Date();\n @Input() public minDate: any;\n @Input() public maxDate: any;\n @Input() public showIcon: boolean = false;\n @Input() public showTime: boolean = false;\n @Input() public loading: boolean = false;\n @Input() public isInvalid: boolean = false;\n @Input() public placeholder: string = \"DD/MM/YYYY\";\n @Input() public disabled: boolean = false;\n @Input() public selectionMode: string = \"single\";\n @Input() public setRight: boolean = false;\n @Input() public filters: any[] = [];\n\n @Output() public onChangeDate = new EventEmitter<any>();\n @Output() public onClosePanel = new EventEmitter<any>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public onSelect(event: any): void {\n this.onChangeDate.emit(event);\n }\n\n public onClose(event: any): void {\n this.onClosePanel.emit(event);\n }\n\n public onCalendarOpen(event: any): void {}\n}\n","<div [ngClass]=\"setRight ? '' : 'calendar-left'\" class=\"date-picker-range\" *ngIf=\"!loading\">\n <div class=\"label\" *ngIf=\"label\">{{ label }}</div>\n <p-calendar\n class=\"date-picker-input dropi-date-picker\"\n [ngClass]=\"{ 'date-picker-input--open': loading }\"\n [ngClass]=\"{ 'date-is-invalid': isInvalid }\"\n [required]=\"required\"\n [(ngModel)]=\"selectedDate\"\n [selectionMode]=\"selectionMode\"\n [readonlyInput]=\"true\"\n dateFormat=\"dd/mm/yy\"\n [placeholder]=\"placeholder\"\n [style]=\"{ width: '100%' }\"\n inputId=\"date-range\"\n (onSelect)=\"onSelect($event)\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n showOtherMonths=\"false\"\n responsiveOptions=\"true\"\n [disabled]=\"loading || disabled\"\n (onClose)=\"onClose($event)\"\n [showIcon]=\"showIcon\"\n [showTime]=\"showTime\"\n (onShow)=\"onCalendarOpen($event)\"\n >\n <ng-template pTemplate=\"triggericon\" let-clickCallBack=\"clickCallBack\">\n <app-icon name=\"Calendar\" width=\"18px\" height=\"18px\" color=\"Gray-Gray-400\" />\n <!-- <i class=\"pi pi-user pointer-events-none\" (click)=\"clickCallBack($event)\"></i> -->\n </ng-template>\n </p-calendar>\n\n <div class=\"loading\" *ngIf=\"loading\">\n <div class=\"skeleton dp\"></div>\n </div>\n</div>\n","import {\n Component,\n Input,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"dropi-tooltip\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./tooltip.component.html\",\n styleUrls: [\"./tooltip.component.scss\"],\n})\nexport class TooltipComponent implements OnInit {\n @Input() public text: string | undefined;\n @Input() public outlined: boolean = false;\n @Input() public questionTooltip: string = \"body\";\n\n public isVisible: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public toggle(): void {\n this.isVisible = !this.isVisible;\n }\n\n public show(event?: any): void {\n this.isVisible = true;\n }\n\n public hide(event?: any): void {\n this.isVisible = false;\n }\n}\n","<span\n (click)=\"isVisible = !isVisible\"\n (mouseenter)=\"isVisible = true\"\n (mouseleave)=\"isVisible = false\"\n class=\"icon-tooltip\"\n>\n <ng-container *ngIf=\"!outlined; else tooltipOutlined\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.99972 0.144531C5.64351 0.144531 4.31775 0.546696 3.1901 1.30017C2.06245 2.05364 1.18355 3.12458 0.66455 4.37756C0.145549 5.63054 0.00975496 7.00928 0.274339 8.33943C0.538924 9.66959 1.192 10.8914 2.15099 11.8504C3.10998 12.8094 4.33181 13.4625 5.66196 13.7271C6.99212 13.9916 8.37086 13.8558 9.62384 13.3368C10.8768 12.8178 11.9478 11.9389 12.7012 10.8113C13.4547 9.68364 13.8569 8.35789 13.8569 7.00167C13.8549 5.18365 13.1318 3.44065 11.8463 2.15511C10.5607 0.869576 8.81775 0.146498 6.99972 0.144531ZM6.99972 11.5731C6.8867 11.5731 6.77622 11.5396 6.68225 11.4768C6.58828 11.414 6.51504 11.3248 6.47179 11.2203C6.42854 11.1159 6.41722 11.001 6.43927 10.8902C6.46132 10.7793 6.51575 10.6775 6.59566 10.5976C6.67558 10.5177 6.7774 10.4633 6.88824 10.4412C6.99909 10.4192 7.11398 10.4305 7.2184 10.4737C7.32281 10.517 7.41206 10.5902 7.47485 10.6842C7.53764 10.7782 7.57115 10.8887 7.57115 11.0017C7.57115 11.1532 7.51095 11.2986 7.40378 11.4057C7.29662 11.5129 7.15127 11.5731 6.99972 11.5731ZM8.10258 7.29081C7.93395 7.39625 7.79605 7.54423 7.70276 7.71988C7.60947 7.89552 7.56408 8.09263 7.57115 8.29139V8.71596C7.57115 8.86751 7.51095 9.01285 7.40378 9.12002C7.29662 9.22718 7.15127 9.28739 6.99972 9.28739C6.84817 9.28739 6.70283 9.22718 6.59566 9.12002C6.4885 9.01285 6.42829 8.86751 6.42829 8.71596V8.29139C6.41985 7.8882 6.51947 7.4901 6.71682 7.13841C6.91417 6.78672 7.20205 6.49426 7.55058 6.29139C7.76171 6.1751 7.93066 5.99504 8.0333 5.77695C8.13593 5.55886 8.16698 5.3139 8.12201 5.0771C8.07748 4.8515 7.96672 4.6443 7.80386 4.48195C7.64101 4.31961 7.43346 4.20949 7.20772 4.16567C7.04299 4.13518 6.87357 4.14128 6.71146 4.18354C6.54935 4.22579 6.39851 4.30317 6.26962 4.4102C6.14073 4.51722 6.03695 4.65127 5.96562 4.80286C5.8943 4.95444 5.85717 5.11986 5.85686 5.28739C5.85686 5.43894 5.79666 5.58428 5.6895 5.69145C5.58233 5.79861 5.43699 5.85882 5.28544 5.85882C5.13388 5.85882 4.98854 5.79861 4.88138 5.69145C4.77421 5.58428 4.71401 5.43894 4.71401 5.28739C4.71415 4.88425 4.82091 4.48832 5.02347 4.13976C5.22602 3.7912 5.51716 3.50241 5.86735 3.30269C6.21754 3.10297 6.61432 2.99942 7.01745 3.00255C7.42058 3.00568 7.81571 3.11537 8.16276 3.3205C8.5098 3.52562 8.79643 3.81889 8.99355 4.17055C9.19067 4.52221 9.29128 4.91975 9.28517 5.32284C9.27906 5.72593 9.16645 6.12024 8.95876 6.46576C8.75107 6.81128 8.45569 7.0963 8.10258 7.29081Z\"\n fill=\"#7B8190\"\n />\n </svg>\n </ng-container>\n</span>\n\n<div\n (mouseenter)=\"isVisible = true\"\n (mouseleave)=\"isVisible = false\"\n class=\"icon-tooltip\"\n style=\"width: 100%\"\n></div>\n\n<div class=\"questiontooltip\" *ngIf=\"isVisible\">\n <div class=\"tooltip-bubble\">\n <div class=\"inner-container\" [innerHTML]=\"text\"></div>\n </div>\n</div>\n\n<ng-template #tooltipOutlined>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 1.5C5.0111 1.5 4.0444 1.79324 3.22215 2.34265C2.39991 2.89206 1.75904 3.67295 1.3806 4.58658C1.00217 5.50021 0.90315 6.50555 1.09608 7.47545C1.289 8.44536 1.76521 9.33627 2.46447 10.0355C3.16373 10.7348 4.05465 11.211 5.02455 11.4039C5.99446 11.5969 6.99979 11.4978 7.91342 11.1194C8.82705 10.741 9.60794 10.1001 10.1573 9.27785C10.7068 8.45561 11 7.48891 11 6.5C10.9986 5.17436 10.4713 3.90342 9.53395 2.96605C8.59658 2.02868 7.32564 1.50143 6 1.5ZM6 10.6667C5.17591 10.6667 4.37033 10.4223 3.68513 9.96446C2.99992 9.50662 2.46587 8.85587 2.1505 8.09451C1.83514 7.33316 1.75263 6.49538 1.9134 5.68712C2.07417 4.87887 2.47101 4.13644 3.05372 3.55372C3.63644 2.971 4.37887 2.57417 5.18713 2.41339C5.99538 2.25262 6.83316 2.33514 7.59452 2.6505C8.35588 2.96587 9.00662 3.49992 9.46446 4.18512C9.9223 4.87033 10.1667 5.67591 10.1667 6.5C10.1655 7.6047 9.72608 8.6638 8.94494 9.44494C8.1638 10.2261 7.1047 10.6655 6 10.6667Z\"\n fill=\"#A3ABBF\"\n />\n <path\n d=\"M6.29881 3.60945C6.05853 3.56567 5.81157 3.57523 5.57539 3.63746C5.33922 3.6997 5.11961 3.81307 4.9321 3.96957C4.7446 4.12607 4.59378 4.32187 4.49032 4.54311C4.38686 4.76435 4.33329 5.00563 4.3334 5.24986C4.3334 5.36037 4.3773 5.46635 4.45544 5.54449C4.53358 5.62263 4.63956 5.66653 4.75006 5.66653C4.86057 5.66653 4.96655 5.62263 5.04469 5.54449C5.12283 5.46635 5.16673 5.36037 5.16673 5.24986C5.16662 5.12727 5.19357 5.00616 5.24564 4.89518C5.29772 4.78419 5.37363 4.68607 5.46799 4.60779C5.56234 4.52952 5.6728 4.47302 5.79149 4.44234C5.91018 4.41166 6.03418 4.40754 6.15464 4.43028C6.31924 4.46223 6.47058 4.54252 6.58933 4.6609C6.70808 4.77928 6.78884 4.93036 6.82131 5.09486C6.8541 5.26753 6.83146 5.44615 6.75662 5.60517C6.68179 5.7642 6.55859 5.89549 6.40464 5.98028C6.14971 6.12797 5.93905 6.34133 5.79461 6.59811C5.65017 6.8549 5.57723 7.14572 5.58339 7.44028V7.74986C5.58339 7.86037 5.62729 7.96635 5.70543 8.04449C5.78357 8.12263 5.88955 8.16653 6.00006 8.16653C6.11057 8.16653 6.21655 8.12263 6.29469 8.04449C6.37283 7.96635 6.41673 7.86037 6.41673 7.74986V7.44028C6.4115 7.29529 6.44456 7.15147 6.51259 7.02332C6.58061 6.89517 6.6812 6.7872 6.80423 6.71028C7.10611 6.54448 7.3492 6.28922 7.50009 5.97962C7.65098 5.67001 7.70225 5.32126 7.64684 4.98133C7.59143 4.6414 7.43208 4.32698 7.19068 4.08132C6.94929 3.83565 6.63772 3.67081 6.29881 3.60945Z\"\n fill=\"#A3ABBF\"\n />\n <path\n d=\"M6.41674 8.99987C6.41674 8.76975 6.23019 8.5832 6.00007 8.5832C5.76995 8.5832 5.5834 8.76975 5.5834 8.99987C5.5834 9.22999 5.76995 9.41654 6.00007 9.41654C6.23019 9.41654 6.41674 9.22999 6.41674 8.99987Z\"\n fill=\"#A3ABBF\"\n />\n </svg>\n</ng-template>\n","import {\n Component,\n Input,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-dropi-tooltip\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-tooltip.component.html\",\n styleUrls: [\"./dropi-tooltip.component.scss\"],\n})\nexport class DropiTooltipComponent implements OnInit {\n @Input() public text: string = \"\";\n @Input() public maxWidth: string = \"200px\";\n @Input() public minWidth: string = \"auto\";\n @Input() public position: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\n @Input() public arrowPosition: \"start\" | \"center\" | \"end\" = \"center\";\n @Input() public trigger: \"hover\" | \"click\" | \"focus\" = \"hover\";\n @Input() public disabled: boolean = false;\n @Input() public showIcon: boolean = true;\n @Input() public iconName: string = \"Info\";\n @Input() public iconColor: string = \"currentColor\";\n @Input() public iconSize: string = \"24px\";\n @Input() public showX: boolean = false;\n\n public isVisible: boolean = false;\n public displayContent: string = \"\";\n\n constructor() {}\n\n ngOnInit(): void {\n this.displayContent = this.text;\n }\n\n public onMouseEnter(): void {\n if (!this.disabled && this.trigger === \"hover\") this.isVisible = true;\n }\n\n public onMouseLeave(): void {\n if (this.trigger === \"hover\") this.isVisible = false;\n }\n\n public onClick(): void {\n if (!this.disabled && this.trigger === \"click\")\n this.isVisible = !this.isVisible;\n }\n\n public onFocus(): void {\n if (!this.disabled && this.trigger === \"focus\") this.isVisible = true;\n }\n\n public onBlur(): void {\n if (this.trigger === \"focus\") this.isVisible = false;\n }\n\n public onCloseClick(): void {\n this.isVisible = false;\n }\n}\n","<div class=\"dropi-tooltip-container\" [class.disabled]=\"disabled\">\n <!-- Trigger element -->\n <div\n class=\"dropi-tooltip-trigger\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (click)=\"onClick()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.tabindex]=\"trigger === 'focus' ? '0' : null\"\n >\n <!-- Default icon trigger -->\n <app-icon\n *ngIf=\"showIcon\"\n [name]=\"iconName\"\n [color]=\"iconColor\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n >\n </app-icon>\n\n <!-- Custom content slot -->\n <ng-content></ng-content>\n </div>\n\n <!-- Tooltip content - siguiendo estructura exacta de Figma -->\n <div\n @tooltipAnimation\n class=\"tooltip-master\"\n *ngIf=\"isVisible\"\n [class.position-top]=\"position === 'top'\"\n [class.position-bottom]=\"position === 'bottom'\"\n [class.position-left]=\"position === 'left'\"\n [class.position-right]=\"position === 'right'\"\n [class.arrow-start]=\"arrowPosition === 'start'\"\n [class.arrow-center]=\"arrowPosition === 'center'\"\n [class.arrow-end]=\"arrowPosition === 'end'\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n >\n <!-- Tooltip wrapper -->\n <div class=\"tooltip-wrapper\">\n <!-- Beak container (flecha superior) -->\n <div class=\"beak-top\" *ngIf=\"position === 'bottom'\">\n <div class=\"beak-container-top\">\n <div class=\"beak-arrow-top\"></div>\n </div>\n </div>\n\n <!-- Bubble content -->\n <div class=\"bubble\">\n <div class=\"tooltip-content\">\n <div class=\"tooltip-text\" [innerHTML]=\"displayContent\"></div>\n </div>\n\n <!-- Close button -->\n <div class=\"close-button\" *ngIf=\"showX\" (click)=\"onCloseClick()\">\n <app-icon name=\"Close-small\" color=\"#ffffff\" width=\"16\" height=\"16\"></app-icon>\n </div>\n </div>\n\n <!-- Beak container (flecha inferior) -->\n <div class=\"beak-bottom\" *ngIf=\"position === 'top'\">\n <div class=\"beak-container-bottom\">\n <div class=\"beak-arrow-bottom\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'tag-type-product',\n templateUrl: './tag-type-product.component.html',\n styleUrls: ['./tag-type-product.component.scss'],\n standalone: true\n})\nexport class TagTypeProductComponent {}\n","<div class=\"type-variation\">VARIABLE</div>\n","import {\n Component,\n Input,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"dropi-tag\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-tag.component.html\",\n styleUrls: [\"./dropi-tag.component.scss\"],\n})\nexport class DropiTagComponent implements OnInit {\n @Input() public label: string = \"\";\n @Input() public text: string = \"\";\n @Input() public icon: string = \"\";\n @Input() public showIcon: boolean = false;\n @Input() public fontColor: string = \"inherit\";\n @Input() public hasContent: boolean = true;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public setState(): any {\n return {};\n }\n}\n","<div class=\"container-chips\">\n <div\n class=\"tags Body-S-Medium text-style\"\n [ngStyle]=\"setState()\"\n [class.icon-only]=\"showIcon && !hasContent\"\n >\n <app-icon\n class=\"file-icon\"\n *ngIf=\"showIcon && icon\"\n [name]=\"icon\"\n width=\"16px\"\n height=\"16px\"\n [color]=\"this.fontColor\"\n ></app-icon>\n <span *ngIf=\"hasContent\">{{ text }}</span>\n </div>\n</div>\n","import {\n Component,\n Input,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"dropi-chips\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-chips.component.html\",\n styleUrls: [\"./dropi-chips.component.scss\"],\n})\nexport class DropiChipsComponent implements OnInit {\n @Input() public value: any[] = [];\n @Input() public type: \"avatar\" | \"icon\" | \"default\" = \"default\";\n @Input() public urlImg: string = \"\";\n @Input() public icon: string = \"\";\n @Input() public fontColor: string = \"currentColor\";\n @Input() public showIcon: boolean = false;\n\n public isVisible: boolean = true;\n public styleToApply: any = {};\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public closeChips(): void {\n this.isVisible = false;\n }\n}\n","<div class=\"container-chips\" *ngIf=\"isVisible\">\n <div class=\"chips Body-M-Regular\" [ngStyle]=\"styleToApply\">\n <img *ngIf=\"type == 'avatar'\" class=\"img-chips\" [src]=\"urlImg\" alt=\"\" />\n <app-icon class=\"file-icon\" *ngIf=\"type == 'icon' && icon\" [name]=\"icon\" width=\"16px\" height=\"16px\"\n [color]=\"fontColor\"></app-icon>\n <span class=\"chip-text\"><ng-content></ng-content></span>\n <app-icon (click)=\"closeChips()\" class=\"close-icon\" *ngIf=\"showIcon\" name=\"Cross-circle\" width=\"16px\" height=\"16px\"\n [color]=\"fontColor\"></app-icon>\n </div>\n</div>","import {\n Component,\n Input,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-dropi-banner-external\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-banner-external.component.html\",\n styleUrls: [\"./dropi-banner-external.component.scss\"],\n})\nexport class DropiBannerExternalComponent implements OnInit {\n public imageUrls: any = { large: \"\", medium: \"\", tablet: \"\", mobile: \"\" };\n public banner: any = { title: { rendered: \"\" }, acf: { slug: \"\" } };\n public loading: boolean = false;\n public backgroundColor: string = \"transparent\";\n public hasLink: boolean = false;\n\n constructor(\n @Inject(\"WordpressService\") private wordpressService: any,\n @Inject(\"BettaTesterService\") private bettaTesterService: any,\n ) {}\n\n ngOnInit(): void {}\n\n public getImageFallback(): string {\n return \"\";\n }\n\n public getActionLink(): string {\n return \"#\";\n }\n\n public onClickBanner(event: any): void {}\n\n public closeBanner(): void {}\n}\n","<div\n *ngIf=\"banner; else notVisible\"\n class=\"dropi-banner-external\"\n [class.loading]=\"loading\"\n [ngStyle]=\"{ background: backgroundColor }\"\n>\n <ng-container *ngIf=\"!loading; else loadingTpl\">\n <a\n *ngIf=\"hasLink\"\n [href]=\"getActionLink()\"\n target=\"_blank\"\n rel=\"noopener\"\n (click)=\"onClickBanner($event)\"\n >\n <picture>\n <source *ngIf=\"imageUrls.large\" media=\"(min-width: 1280px)\" [srcset]=\"imageUrls.large\" />\n <source *ngIf=\"imageUrls.medium\" media=\"(min-width: 992px)\" [srcset]=\"imageUrls.medium\" />\n <source *ngIf=\"imageUrls.tablet\" media=\"(min-width: 768px)\" [srcset]=\"imageUrls.tablet\" />\n <source *ngIf=\"imageUrls.mobile\" media=\"(max-width: 767px)\" [srcset]=\"imageUrls.mobile\" />\n <img\n [src]=\"getImageFallback()\"\n [alt]=\"banner.title?.rendered || banner.acf.slug\"\n loading=\"lazy\"\n />\n <div class=\"close-search\">\n <app-icon\n name=\"Close-small\"\n [width]=\"20\"\n [height]=\"20\"\n [color]=\"'#475066'\"\n (click)=\"closeBanner()\"\n ></app-icon>\n </div>\n </picture>\n </a>\n <div *ngIf=\"!hasLink\" class=\"click-wrapper\" (click)=\"onClickBanner($event)\">\n <picture>\n <source *ngIf=\"imageUrls.large\" media=\"(min-width: 1280px)\" [srcset]=\"imageUrls.large\" />\n <source *ngIf=\"imageUrls.medium\" media=\"(min-width: 992px)\" [srcset]=\"imageUrls.medium\" />\n <source *ngIf=\"imageUrls.tablet\" media=\"(min-width: 768px)\" [srcset]=\"imageUrls.tablet\" />\n <source *ngIf=\"imageUrls.mobile\" media=\"(max-width: 767px)\" [srcset]=\"imageUrls.mobile\" />\n <img\n [src]=\"getImageFallback()\"\n [alt]=\"banner.title?.rendered || banner.acf.slug\"\n loading=\"lazy\"\n />\n <div class=\"close-search\">\n <app-icon\n name=\"Close-small\"\n [width]=\"20\"\n [height]=\"20\"\n [color]=\"'#475066'\"\n (click)=\"closeBanner()\"\n ></app-icon>\n </div>\n </picture>\n </div>\n </ng-container>\n</div>\n\n<ng-template #loadingTpl>\n <div class=\"banner-loading\"></div>\n</ng-template>\n\n<ng-template #notVisible>\n <div class=\"banner-hidden\" *ngIf=\"!loading\"></div>\n</ng-template>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-alert-validation\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./alert-validation.component.html\",\n styleUrls: [\"./alert-validation.component.scss\"],\n})\nexport class AlertValidationComponent implements OnInit {\n @Input() public visible: boolean = false;\n @Input() public visibleSupport: boolean = false;\n @Input() public message: string = \"\";\n @Input() public routeLink?: string;\n @Input() public status: any;\n @Input() public isBillingDataCompleted: boolean = true;\n @Input() public messageAlertObject: any;\n @Input() public visibleTutorial: boolean = false;\n\n constructor(@Inject(\"Router\") private router: any) {}\n\n ngOnInit(): void {}\n\n public navigate(): void {\n if (this.routeLink && this.router) {\n this.router.navigate([this.routeLink]);\n }\n }\n\n public goValidate(): void {}\n public openModal2(): void {}\n public closeModal(): void {}\n}\n","<div class=\"alert-validation-container\" *ngIf=\"visible\">\n <div class=\"alert-content\">\n <span class=\"message\">{{ message }}</span>\n <button *ngIf=\"routeLink\" (click)=\"navigate()\" class=\"nav-btn\">\n Ir al link\n </button>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-beta-tag',\n templateUrl: './beta-tag.component.html',\n styleUrls: ['./beta-tag.component.scss'],\n standalone: true\n})\nexport class BetaTagComponent {\n\n}\n","<div class=\"betta-tag pulse\">Beta</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"dropi-modal\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-modal.component.html\",\n styleUrls: [\"./dropi-modal.component.scss\"],\n})\nexport class DropiModalComponent implements OnInit {\n @Input() public visible: boolean = false;\n @Input() public modal: boolean = true;\n @Input() public dismissableMask: boolean = true;\n @Input() public closeOnEscape: boolean = true;\n @Input() public showCloseIcon: boolean = true;\n @Input() public showHeader: boolean = true;\n @Input() public header: string | null = null;\n @Input() public styleClass: string | null = null;\n @Input() public maxWidth: string | null = null;\n @Input() public position: string = \"center\";\n @Input() public transitionOptions: string = \"0.15s\";\n\n @Output() public visibleChange = new EventEmitter<boolean>();\n @Output() public onHide = new EventEmitter<void>();\n @Output() public onShow = new EventEmitter<void>();\n @Output() public onClose = new EventEmitter<void>();\n\n // Propiedades requeridas por el template\n public rootClasses: string[] = [];\n public maskZIndex: number = 1100;\n public panelZIndex: number = 1101;\n public panelClass: string = \"dropi-modal__panel\";\n public headerTemplate: any = null;\n public contentTemplate: any = null;\n public footerTemplate: any = null;\n\n constructor() {}\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n public hide(): void {\n this.visible = false;\n this.visibleChange.emit(false);\n this.onHide.emit();\n this.onClose.emit();\n }\n\n public close(): void {\n this.hide();\n }\n\n public onMaskClick(event: any): void {\n if (this.dismissableMask) {\n this.hide();\n }\n }\n\n private updateClasses(): void {\n this.rootClasses = [\n \"dropi-modal-root\",\n `dropi-modal-root--${this.position}`,\n ];\n if (this.visible) this.rootClasses.push(\"dropi-modal-root--open\");\n }\n}\n","<ng-template #overlayTpl>\n <div [ngClass]=\"rootClasses\">\n @if (modal) {\n <div\n class=\"dropi-modal__mask\"\n [style.z-index]=\"maskZIndex\"\n [style.transition-duration]=\"transitionOptions\"\n (click)=\"onMaskClick($event)\"\n ></div>\n }\n\n <div\n [ngClass]=\"panelClass\"\n [style.z-index]=\"panelZIndex\"\n [style.transition-duration]=\"transitionOptions\"\n [style.max-width]=\"maxWidth\"\n role=\"dialog\"\n [attr.aria-modal]=\"modal ? 'true' : null\"\n >\n @if (showHeader) {\n <div class=\"dropi-modal__header\">\n @if (headerTemplate) {\n <ng-container [ngTemplateOutlet]=\"headerTemplate\"></ng-container>\n } @else {\n <div class=\"dropi-modal__title\">{{ header }}</div>\n }\n\n @if (showCloseIcon) {\n <button type=\"button\" class=\"dropi-modal-close\" (click)=\"hide()\" aria-label=\"Cerrar\">\n ×\n </button>\n }\n </div>\n }\n\n <div\n class=\"dropi-modal__content\"\n [class.dropi-modal__content--sidebar]=\"position === 'left' || position === 'right'\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n } @else {\n <ng-content></ng-content>\n }\n </div>\n\n @if (footerTemplate) {\n <div class=\"dropi-modal__footer\">\n <ng-container [ngTemplateOutlet]=\"footerTemplate\"></ng-container>\n </div>\n }\n </div>\n </div>\n</ng-template>\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[pTemplate]',\n standalone: true,\n})\nexport class PTemplateDirective {\n @Input('pTemplate') type: string | null = null;\n\n constructor(public readonly template: TemplateRef<unknown>) {}\n}\n","import {\n Component,\n OnInit,\n Input,\n EventEmitter,\n Output,\n OnChanges,\n SimpleChanges,\n NO_ERRORS_SCHEMA,\n ViewChild,\n ViewContainerRef,\n TemplateRef,\n OnDestroy,\n Inject,\n} from \"@angular/core\";\nimport { NgIf } from \"@angular/common\";\nimport { ProgressBarModule } from \"primeng/progressbar\";\nimport { DropiModalComponent } from \"../dropi-modal/dropi-modal.component\";\nimport { PTemplateDirective } from \"../dropi-modal/p-template.directive\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { ButtonComponent } from \"../dropi-button/dropi-button.component\";\n\nexport enum LoadingType {\n Bowling = \"bowling\",\n Heart = \"heart\",\n}\n\nexport interface ModalParams {\n tittle: string;\n type?: \"question\" | \"warning\" | \"success\" | \"error\" | \"loading\";\n message: string;\n primaryButton?: string;\n secondaryButton?: string;\n loadingType?: LoadingType;\n loadingTitle?: string;\n loadingMessage?: string;\n withLoadingProgressBar?: boolean;\n closable?: boolean;\n displayButtons?: boolean;\n applyCountRegresive?: boolean;\n timer?: number;\n}\n\n@Component({\n selector: \"app-alert-modal\",\n templateUrl: \"./alert-modal.component.html\",\n styleUrls: [\"./alert-modal.component.scss\"],\n standalone: true,\n imports: [\n DropiModalComponent,\n PTemplateDirective,\n NgIf,\n TranslateModule,\n ProgressBarModule,\n ButtonComponent,\n ],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class AlertModalComponent implements OnInit, OnChanges, OnDestroy {\n @Input() visible: boolean;\n @Input() params: ModalParams;\n @Input() loading: boolean;\n @Input() isStep: boolean;\n @Input() contentTemplate?: TemplateRef<any>;\n @Input() baseZIndex: number = 0;\n @Output() modalOpenChange = new EventEmitter<boolean>();\n @Output() primaryButtonEvent = new EventEmitter<boolean>();\n @ViewChild(\"modalContainer\", { read: ViewContainerRef, static: true })\n modalContainer!: ViewContainerRef;\n @Output() secondaryButtonEvent = new EventEmitter<boolean>();\n @Output() onHide = new EventEmitter();\n\n alertTemplate: TemplateRef<any> | null = null;\n contextTemplate: any = {};\n private destroy$ = new Subject<void>();\n\n tittle: string;\n type: string;\n message: string;\n primaryButton: string;\n displayButtons: boolean = true;\n secondaryButton: string;\n sourceAnimation: string;\n loadingType: LoadingType = LoadingType.Bowling;\n loadingTitle: string = \"Cargando...\";\n loadingMessage: string = \"Por favor, espere un momento\";\n withLoadingProgressBar: boolean = false;\n loadingAnimation = {\n path: \"/assets/lottie-files/loading.json\",\n width: \"300px\",\n height: \"300px\",\n marginBottom: \"0px\",\n };\n\n brandName: string = \"dropi\";\n imageWhiteBrand: string;\n interval: any;\n countRegresive: number = 0;\n\n constructor(\n @Inject(\"TemplateAlertModalService\") private templateService: any,\n @Inject(\"SettingsService\") private settingService: any,\n @Inject(TranslateService) private translateService: TranslateService,\n ) {\n this.brandName = this.settingService?.getBrandInfo()\n ? this.settingService.getBrandInfo()?.name.toLowerCase()\n : \"dropi\";\n }\n\n ngOnInit(): void {\n this.updateParams();\n this.decideAnimation();\n this.decideLoadingAnimation();\n\n this.templateService?.currentTemplate$\n ?.pipe(takeUntil(this.destroy$))\n ?.subscribe(({ template, context }) => {\n this.alertTemplate = template;\n this.contextTemplate = context;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateParams();\n this.decideAnimation();\n this.decideLoadingAnimation();\n this.imageWhiteBrand = this.decideImgWhiteBrand();\n }\n\n updateParams(): void {\n if (this.params) {\n this.tittle = this.params.tittle;\n this.type = this.params.type;\n this.message = this.params.message;\n this.primaryButton = this.params.primaryButton\n ? this.params.primaryButton\n : \"Aceptar\";\n this.secondaryButton = this.params?.secondaryButton;\n this.displayButtons = this.params?.displayButtons == false ? false : true;\n this.loadingType = this.params.loadingType\n ? this.params.loadingType\n : LoadingType.Bowling;\n this.loadingTitle = this.params.loadingTitle\n ? this.params.loadingTitle\n : \"Cargando...\";\n this.loadingMessage = this.params.loadingMessage\n ? this.params.loadingMessage\n : \"Por favor, espere un momento\";\n this.withLoadingProgressBar = this.params.withLoadingProgressBar\n ? this.params.withLoadingProgressBar\n : false;\n if (this.params.applyCountRegresive === true && this.visible) {\n this.startCountRegresive();\n }\n }\n }\n\n closeModal(): void {\n this.visible = false;\n }\n\n primaryButtonAction(): void {\n this.primaryButtonEvent.emit(true);\n if (!this.isStep) {\n this.closeModal();\n }\n }\n\n secondaryButtonAction(): void {\n this.secondaryButtonEvent.emit(true);\n this.closeModal();\n }\n\n decideAnimation() {\n switch (this.type) {\n case \"question\":\n this.sourceAnimation = \"/assets/lottie-files/question.json\";\n break;\n case \"warning\":\n this.sourceAnimation = \"/assets/lottie-files/warning.json\";\n break;\n case \"success\":\n this.sourceAnimation = \"/assets/lottie-files/success.json\";\n break;\n case \"error\":\n this.sourceAnimation = \"/assets/lottie-files/failure.json\";\n break;\n default:\n this.sourceAnimation = \"\";\n break;\n }\n }\n\n decideLoadingAnimation() {\n switch (this.loadingType) {\n case LoadingType.Bowling:\n const path =\n this.brandName.toLowerCase() === \"dropi\"\n ? \"/assets/lottie-files/loading.json\"\n : \"/assets/lottie-files/loading-mb.json\";\n this.loadingAnimation = {\n path,\n width: \"300px\",\n height: \"300px\",\n marginBottom: \"0px\",\n };\n break;\n case LoadingType.Heart:\n this.loadingAnimation = {\n path: \"/assets/lottie-files/heart.json\",\n width: \"180px\",\n height: \"180px\",\n marginBottom: \"15px\",\n };\n break;\n }\n }\n\n decideImgWhiteBrand() {\n switch (this.type) {\n case \"question\":\n return `/assets/img/white-brands-events/info.png`;\n case \"warning\":\n return `/assets/img/white-brands-events/warning.png`;\n case \"success\":\n return `/assets/img/white-brands-events/success.png`;\n case \"error\":\n return `/assets/img/white-brands-events/error.png`;\n default:\n return \"\";\n }\n }\n\n startCountRegresive() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n\n this.countRegresive = this.params.timer;\n\n this.interval = setInterval(() => {\n this.countRegresive--;\n if (this.countRegresive <= 0) {\n clearInterval(this.interval);\n }\n }, 1000);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onHideModal() {\n this.modalOpenChange.emit(false);\n this.onHide.emit();\n }\n\n isArray(value: any): boolean {\n return Array.isArray(value);\n }\n}\n","<dropi-modal\n styleClass=\"dropi-alert-modal\"\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [closable]=\"params?.closable ? true : false\"\n [dismissableMask]=\"false\"\n [closeOnEscape]=\"false\"\n [showHeader]=\"false\"\n transitionOptions=\"300ms\"\n [showHeader]=\"params?.closable ? true : false\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"baseZIndex\"\n (onHide)=\"onHideModal()\"\n>\n <ng-template pTemplate=\"content\">\n <div class=\"body-alert\" *ngIf=\"!loading\">\n <div class=\"header-alert\">\n <div class=\"lottie-img\" *ngIf=\"visible && brandName === 'dropi'\">\n <dotlottie-player\n [src]=\"sourceAnimation\"\n background=\"transparent\"\n speed=\"1\"\n style=\"width: 100%; height: auto\"\n loop\n autoplay\n ></dotlottie-player>\n </div>\n <div class=\"wb-img\" *ngIf=\"visible && brandName !== 'dropi'\">\n <img [src]=\"imageWhiteBrand\" alt=\"logo\" />\n </div>\n </div>\n <div class=\"content-alert\">\n <h2>{{ tittle | translate }}</h2>\n <ng-container *ngIf=\"isArray(message)\">\n <p *ngFor=\"let m of message\">{{ m | translate }}</p>\n </ng-container>\n\n <p *ngIf=\"!isArray(message)\">\n {{ message | translate }}\n </p>\n </div>\n\n <ng-container *ngIf=\"alertTemplate\">\n <ng-container\n *ngTemplateOutlet=\"alertTemplate; context: { $implicit: contextTemplate }\"\n ></ng-container>\n </ng-container>\n\n <div class=\"actions\" *ngIf=\"displayButtons\">\n <dropi-button\n *ngIf=\"secondaryButton\"\n [text]=\"secondaryButton | translate\"\n severity=\"secondary\"\n (onClick)=\"secondaryButtonAction()\"\n ></dropi-button>\n <dropi-button\n [text]=\"primaryButton | translate\"\n (onClick)=\"primaryButtonAction()\"\n ></dropi-button>\n </div>\n\n <!-- <div class=\"actions\" *ngIf=\"displayButtons\">\n <button\n *ngIf=\"secondaryButton\"\n class=\"btn btn-secondary\"\n (click)=\"secondaryButtonAction()\"\n data-cy=\"alert-modal-secondary-button\"\n >\n {{ secondaryButton | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n (click)=\"primaryButtonAction()\"\n data-cy=\"alert-modal-primary-button\"\n >\n {{ primaryButton | translate }}\n </button>\n </div> -->\n </div>\n\n <div class=\"body-alert-loading\" *ngIf=\"loading\">\n <div class=\"header-alert\" [style]=\"{ 'margin-bottom': loadingAnimation.marginBottom }\">\n <div class=\"lottie-img\" *ngIf=\"visible && loading\">\n <dotlottie-player\n *ngIf=\"loading && brandName === 'dropi'\"\n [src]=\"loadingAnimation.path\"\n background=\"transparent\"\n speed=\"1\"\n [style]=\"{\n width: loadingAnimation.width,\n height: loadingAnimation.height,\n }\"\n loop\n autoplay\n ></dotlottie-player>\n <dotlottie-player\n *ngIf=\"loading && brandName !== 'dropi' && params.type == 'loading'\"\n [src]=\"'/assets/lottie-files/loading-mb.json'\"\n background=\"transparent\"\n speed=\"1\"\n style=\"width: 300px; height: auto\"\n loop\n autoplay\n ></dotlottie-player>\n </div>\n <div class=\"wb-img\" *ngIf=\"visible && brandName !== 'dropi' && params.type !== 'loading'\">\n <img [src]=\"imageWhiteBrand\" alt=\"logo\" />\n </div>\n </div>\n <div class=\"content-alert\">\n <p-progressBar *ngIf=\"withLoadingProgressBar\" mode=\"indeterminate\" color=\"#F49A3D\" />\n <h2>\n {{ loadingTitle | translate }}\n </h2>\n <p>\n {{ loadingMessage | translate }}\n </p>\n <h5 *ngIf=\"params.applyCountRegresive\">\n {{ 'in' | translate }} {{ countRegresive }} {{ 'seconds' | translate }}\n </h5>\n </div>\n </div>\n </ng-template>\n</dropi-modal>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { ButtonComponent } from \"../dropi-button/dropi-button.component\";\n\n@Component({\n selector: \"dropi-wc-alert\",\n standalone: true,\n imports: [CommonModule, IconComponent, ButtonComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./alert.component.html\",\n styleUrls: [\"./alert.component.scss\"],\n})\nexport class AlertComponent implements OnInit, OnChanges {\n @Input() message: string = \"\";\n @Input() type: \"default\" | \"flag\" = \"default\";\n @Input() state: \"success\" | \"error\" | \"warning\" | \"info\" = \"success\";\n @Input() dismissable: boolean = true;\n @Input() showButton: boolean = false;\n @Input() buttonText: string = \"Close\";\n @Input() anchorText: string = \"none\";\n @Input() anchorUrl: string = \"none\";\n @Input() showAlert = true;\n @Input() textLink: string = \"\";\n @Input() clickedText: string = \"\";\n @Input() linkUrl: string = \"\";\n\n @Output() onClose = new EventEmitter<void>();\n @Output() onButtonClick = new EventEmitter<void>();\n @Output() onClickLink = new EventEmitter<void>();\n\n sanitinezedMessage: SafeHtml = \"\";\n alertState: any = {\n success: {\n icon: \"Check-circle\",\n color: \"Success-Success-500\",\n anchorStyle: \"color: var(--Success-Success-500);\",\n },\n error: {\n icon: \"Cross-circle\",\n color: \"Error-Error-500\",\n anchorStyle: \"color: var(--Error-Error-500);\",\n },\n warning: {\n icon: \"Warning-circle\",\n color: \"Warning-Warning-500\",\n anchorStyle: \"color: var(--Warning-Warning-500);\",\n },\n info: {\n icon: \"Info\",\n color: \"Info-Info-500\",\n anchorStyle: \"color: var(--Info-Info-500);\",\n },\n };\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n this.sanitizeMessage();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"message\"] || changes[\"textLink\"] || changes[\"linkUrl\"]) {\n this.sanitizeMessage();\n }\n }\n\n sanitizeMessage() {\n if (!this.textLink || !this.linkUrl) {\n this.sanitinezedMessage = this.sanitizer.bypassSecurityTrustHtml(\n this.message || \"\",\n );\n return;\n }\n\n const message = `${this.message || \"\"} <a style=\"${this.alertState[this.state].anchorStyle}\" href=\"${this.linkUrl}\" target=\"_blank\"> ${this.textLink} </a>`;\n this.sanitinezedMessage = this.sanitizer.bypassSecurityTrustHtml(message);\n }\n\n closeAlert() {\n this.showAlert = false;\n this.onClose.emit();\n }\n\n buttonClick() {\n this.onButtonClick.emit();\n }\n\n emitClickLink(e: any) {\n this.onClickLink.emit(e);\n }\n}\n","<div [ngClass]=\"['alert-container', 'message-' + state, 'type-' + type]\" *ngIf=\"showAlert\" @fade>\n <div [ngClass]=\"['alert-body', 'type-' + type]\">\n <div class=\"alert-icon\" *ngIf=\"type !== 'flag'\">\n <app-icon\n [name]=\"alertState?.[state]?.icon\"\n [color]=\"alertState?.[state]?.color\"\n width=\"16px\"\n height=\"16px\"\n />\n </div>\n <p *ngIf=\"!clickedText\" class=\"alert-message\" [innerHTML]=\"sanitinezedMessage\"></p>\n <p *ngIf=\"clickedText\" class=\"alert-message\">\n {{ message }} <a (click)=\"emitClickLink($event)\">{{ clickedText }}</a>\n </p>\n </div>\n <div [ngClass]=\"['alert-right', 'color-' + state]\" class=\"alert-right\">\n <dropi-button\n *ngIf=\"showButton && type !== 'flag'\"\n (onClick)=\"buttonClick()\"\n [text]=\"buttonText\"\n [size]=\"'small'\"\n [type]=\"state\"\n ></dropi-button>\n <button (click)=\"closeAlert()\" *ngIf=\"dismissable\">\n <app-icon name=\"Close-small\" width=\"16px\" height=\"16px\" color=\"Gray-700\" />\n </button>\n </div>\n</div>\n","import { Component, Inject, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: 'confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n standalone: true,\n imports: [TranslateModule]\n})\nexport class ConfirmDialogComponent {\n @Input() public data: any = {\n message: '',\n show: true\n };\n constructor(public dialogRef: NgbActiveModal) {}\n\n close(type): void {\n this.dialogRef.close({ type: type });\n }\n}\n","<div class=\"wrapper text-center\">\n <div class=\"header text-center\">\n <!-- <mat-icon class=\"notranslate warn-500-fg s-64\">error_outline</mat-icon> -->\n <img\n src=\"../../../assets/img/theme/interrogation.png\"\n class=\"md-avatar\"\n style=\"width: 90px; height: 90px; border-radius: 100%\"\n />\n </div>\n <div mat-dialog-content>{{ data.message }}</div>\n <div class=\"actions\">\n <button class=\"btn btn-primary\" (click)=\"close('yes')\">{{ 'Yes' | translate }}</button>\n <button class=\"btn btn-secondary\" (click)=\"close('no')\">{{ 'No' | translate }}</button>\n </div>\n <!-- <div mat-dialog-actions class=\"pt-24\" class=\"d-flex justify-content-center\">\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('yes')\">\n {{ 'Yes' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('no')\">\n {{ 'No' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('cancel')\" *ngIf=\"data.show\">\n {{ 'Cancel' | translate }}\n </button>\n </div> -->\n</div>\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// Stub del enum FlowMode para desacoplamiento\nexport enum FlowMode {\n Simultaneous = \"simultaneous\",\n Sequential = \"sequential\",\n}\n\n@Component({\n selector: \"app-simple-stepper\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./simple-stepper.component.html\",\n styleUrls: [\"./simple-stepper.component.scss\"],\n})\nexport class SimpleStepperComponent implements OnInit {\n @Input() stepsCount: number = 3;\n @Input() typeStep: string = \"point\";\n @Input() currentStep: number = 0;\n @Input() labelStepper: Array<string> = [];\n @Input() flowMode: FlowMode = FlowMode.Simultaneous;\n @Input() white_brand: string = \"dropi\";\n\n steps: number[] = [];\n\n ngOnInit(): void {\n this.steps = Array(this.stepsCount - 1).fill(0);\n\n const color =\n this.white_brand?.toLowerCase() === \"dropi\"\n ? \"#f49a3d\"\n : \"var(--Secondary-Secondary-500)\";\n document.documentElement.style.setProperty(\"--stepper-color\", color);\n }\n\n isLineActive(index: number): boolean {\n return this.flowMode === FlowMode.Simultaneous\n ? this.currentStep > index + 1\n : this.currentStep > index * 2 + 1;\n }\n\n isCircleActive(index: number): boolean {\n return this.flowMode === FlowMode.Simultaneous\n ? this.currentStep > index + 1\n : this.currentStep > index * 2 + 2;\n }\n\n get secondaryColor(): string {\n return this.white_brand?.toLowerCase() === \"dropi\"\n ? \"#f49a3d\"\n : \"var(--Secondary-Secondary-500, #008DBF)\";\n }\n}\n","<div class=\"stepper-container\">\n <div class=\"circle\" [ngClass]=\"{ active2: currentStep >= 1 }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: currentStep >= 1 }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active2: currentStep >= 1 }\">1</div>\n <div class=\"point-label Body-S-Regular\">{{labelStepper[0]}}</div>\n </div>\n\n <div *ngFor=\"let step of steps; let i = index\" class=\"step\">\n <div class=\"line\" [ngClass]=\"{ active: isLineActive(i) }\"></div>\n\n <div class=\"circle\" [ngClass]=\"{ active: isCircleActive(i) && typeStep=='point', active3: isCircleActive(i) && typeStep=='number' }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: isCircleActive(i) }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active3: currentStep >= 1 }\">{{ i + 2 }}</div>\n <div class=\"point-label Body-S-Regular\"> {{labelStepper[i + 1]}}</div>\n </div>\n </div>\n</div>\n","import { Component, OnInit, Input, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-breadcrumb\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./breadcrumb.component.html\",\n styleUrls: [\"./breadcrumb.component.scss\"],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class BreadcrumbComponent implements OnInit {\n @Input() items: any[] = [];\n @Input() imageIcon: string = \"pi pi-home\";\n @Input() homeRoute: string = \"/\";\n\n public home: any;\n\n ngOnInit() {\n this.home = { icon: this.imageIcon, routerLink: this.homeRoute };\n }\n}\n","<div class=\"breadcrumb-container\">\n <ul class=\"breadcrumb-list\">\n <li class=\"breadcrumb-item home\" *ngIf=\"home\">\n <a [href]=\"home.routerLink\">\n <i [class]=\"home.icon\"></i>\n </a>\n </li>\n <li class=\"breadcrumb-item\" *ngFor=\"let item of items\">\n <span class=\"separator\">/</span>\n <a [href]=\"item.routerLink\">{{ item.label }}</a>\n </li>\n </ul>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dropi-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropi-badge.component.html',\n styleUrls: ['./dropi-badge.component.scss']\n})\nexport class DropiBadgeComponent {\n /**\n * Tipo de badge que se mostrará, puede ser \"state\" o \"counter\".\n * @example \"state\"\n * @default \"state\"\n */\n @Input() type: 'state' | 'counter' = 'state';\n\n /**\n * Estado en el que se encuentra el badge de tipo \"state\", puede ser \"check\" o \"pending\".\n * @example \"check\"\n * @default \"check\"\n */\n @Input() state: 'check' | 'pending' = 'check';\n\n /**\n * Variante del badge, determina los colores del mismo, puede ser \"primary\", \"secondary\" o \"tertiary\".\n * @example \"primary\"\n * @default \"primary\"\n */\n @Input() variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n /**\n * Contador a mostrar en el badge de tipo \"counter\".\n * @example 10\n * @default 0\n */\n @Input() count: number = 0;\n}\n","<div class=\"counter-badge\" *ngIf=\"type === 'counter'\" [ngClass]=\"variant\">\n <span class=\"Caption-S\">\n {{ count }}\n </span>\n</div>\n\n<div class=\"state-badge\" *ngIf=\"type === 'state'\">\n <div class=\"check-state\" *ngIf=\"state === 'check'\">\n <img src=\"assets/img/icons/custom/badge-check.svg\" alt=\"Check\" />\n </div>\n <div class=\"pending-state\" *ngIf=\"state === 'pending'\"></div>\n</div>","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Inject,\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DropiBadgeComponent } from \"../dropi-badge/dropi-badge.component\";\n\nexport interface TabProperties {\n id: number;\n label: string;\n route: string;\n completed?: boolean;\n counter?: number;\n disabled?: boolean;\n}\n\n@Component({\n selector: \"app-tabs\",\n templateUrl: \"./tabs.component.html\",\n styleUrls: [\"./tabs.component.scss\"],\n standalone: true,\n imports: [CommonModule, TranslateModule, DropiBadgeComponent],\n})\nexport class TabsComponent implements OnInit, OnDestroy {\n @Input() public configuration: TabProperties[] = [];\n @Input() public showIcon: boolean = false;\n @Output() public onIndexChanged: EventEmitter<TabProperties> =\n new EventEmitter<TabProperties>();\n @Input() public activeTab: number = 0;\n @Input() public stopAction: boolean = false;\n\n private readonly subscriptions: Subscription = new Subscription();\n\n constructor(@Inject(\"Router\") private readonly router: any) {}\n\n ngOnInit(): void {\n if (this.configuration.find((tab) => tab.route)) {\n this.setActiveTabByRoute(this.router?.url || \"\");\n this.validateUrlChange();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n\n validateUrlChange() {\n if (!this.router?.events) return;\n this.subscriptions.add(\n this.router.events.subscribe((event: any) => {\n if (event && event.constructor.name === \"NavigationEnd\") {\n this.setActiveTabByRoute(event.url);\n }\n }),\n );\n }\n\n setActiveTabByRoute(route: string) {\n if (!route) return;\n const activeTabArr = (this.configuration as any[]).find(\n (tab) => tab.route && route.includes(tab.route),\n );\n this.activeTab = activeTabArr ? activeTabArr.id : 0;\n }\n\n onTabClick(tabClicked: TabProperties) {\n if (tabClicked.disabled) return;\n this.onIndexChanged.emit(tabClicked);\n\n if (!this.stopAction && this.router) {\n if (tabClicked.route) {\n let [path, query] = tabClicked.route.split(\"?\");\n const queryParams = new URLSearchParams(query);\n\n const paramsObj: any = {};\n queryParams.forEach((value, key) => {\n paramsObj[key] = value;\n });\n\n path = decodeURIComponent(path);\n\n this.router.navigate([path], { queryParams: paramsObj });\n return;\n }\n\n this.activeTab = tabClicked.id;\n }\n }\n}\n","<div class=\"tabs-container\">\n <div\n class=\"custom-tab\"\n *ngFor=\"let tab of configuration\"\n [ngClass]=\"{\n 'active-tab': tab.id === activeTab && !tab.disabled,\n 'disabled-tab': tab.disabled\n }\"\n [class.disabled-tab]=\"tab.disabled\"\n (click)=\"!tab.disabled && onTabClick(tab)\"\n >\n <span>\n <p>{{ tab.label | translate }}</p>\n <dropi-badge\n *ngIf=\"tab?.counter || tab?.counter === 0\"\n type=\"counter\"\n [count]=\"tab.counter\"\n [variant]=\"tab.id === activeTab ? 'primary' : 'tertiary'\"\n />\n </span>\n\n <ng-container *ngIf=\"showIcon\">\n <dropi-badge type=\"state\" [state]=\"tab.completed ? 'check' : 'pending'\" />\n </ng-container>\n </div>\n</div>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\ntype StepState = 'pending' | 'focus' | 'completed';\n\n/**\n * Componente Steps de Dropi para mostrar pasos con diferentes estados\n */\n@Component({\n selector: 'dropi-steps',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './dropi-steps.component.html',\n styleUrls: ['./dropi-steps.component.scss'],\n})\nexport class DropiStepsComponent implements OnInit, OnChanges {\n /**\n * Cantidad de pasos que se van a mostrar (solo se usa si stepLabels está vacío)\n * @default 3\n * @type {number}\n */\n @Input() stepsCount: number = 3;\n\n /**\n * Permite mostrar el número del step dentro del círculo\n * @default true\n * @type {boolean}\n */\n @Input() showNumberOfStep: boolean = true;\n\n /**\n * Step en el que se encuentra el componente\n * @default 0\n * @type {number}\n */\n @Input() currentStep: number = 0;\n\n /**\n * Etiquetas de cada paso. Si se provee, reemplaza stepsCount.\n * @type {{title:string, description:string}[]}\n * @default []\n */\n @Input() stepLabels: { title?: string; description?: string }[] = [];\n\n /**\n * Estado visual del paso actual (solo afecta al paso `currentStep`).\n * @default 'pending'\n * @type {StepState}\n */\n @Input() state: StepState = 'pending';\n\n /**\n * Los pasos que se van a mostrar\n * @type {{title:string, description:string}[]}\n */\n steps: { title?: string; description?: string }[] = [];\n\n ngOnInit() {\n this.createSteps();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes) {\n return;\n }\n\n const shouldRecreate = Object.values(changes).some((change) => !change.firstChange);\n\n if (shouldRecreate) {\n this.createSteps();\n }\n }\n\n /**\n * Crea los pasos que se van a mostrar\n */\n createSteps() {\n if (Array.isArray(this.stepLabels) && this.stepLabels.length > 0) {\n this.steps = [...this.stepLabels];\n return;\n }\n\n this.steps = Array.from({ length: this.stepsCount }, () => ({ description: '' }));\n }\n\n /**\n * Devuelve el estado visual del paso en el índice dado\n * @param index El índice del paso\n * @returns El estado visual del paso\n */\n getStepState(index: number): StepState {\n if (index < this.currentStep - 1) return 'completed';\n else if (index === this.currentStep - 1) return this.state;\n\n return 'pending';\n }\n}\n","<div class=\"stepper-container\">\n <ng-container *ngFor=\"let step of steps; let i = index\">\n <div\n class=\"step\"\n [ngClass]=\"getStepState(i)\"\n [ngStyle]=\"{ flex: i > 0 && i < steps.length - 1 ? 2 : 1 }\"\n >\n <div class=\"line\" *ngIf=\"i !== 0\"></div>\n <div class=\"circle-container\">\n <div class=\"circle\">\n <span class=\"Label-S\" *ngIf=\"showNumberOfStep\">\n {{ i + 1 }}\n </span>\n </div>\n\n <div class=\"steps-container\">\n <p class=\"Label-M\" *ngIf=\"step.title\">\n {{ step.title | translate }}\n </p>\n\n <p class=\"Body-S-Regular\" *ngIf=\"step.description\">\n {{ step.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"line\" *ngIf=\"i !== steps.length - 1\"></div>\n </div>\n </ng-container>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport type VerticalStepState = \"pending\" | \"current\" | \"completed\";\n\nexport interface VerticalStep {\n label?: string;\n labelKey?: string;\n state?: VerticalStepState;\n}\n\n@Component({\n selector: \"vertical-steps\",\n standalone: true,\n imports: [CommonModule, TranslateModule, IconComponent],\n templateUrl: \"./vertical-steps.component.html\",\n styleUrls: [\"./vertical-steps.component.scss\"],\n})\nexport class VerticalStepsComponent implements OnInit, OnChanges {\n @Input() steps: VerticalStep[] = [];\n @Input() currentStep: number = 1;\n @Input() clickable: boolean = false;\n @Input() showCheckIcon: boolean = true;\n @Output() stepClick = new EventEmitter<number>();\n\n processedSteps: (VerticalStep & {\n number: number;\n calculatedState: VerticalStepState;\n })[] = [];\n\n ngOnInit(): void {\n this.processSteps();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"steps\"] || changes[\"currentStep\"]) {\n this.processSteps();\n }\n }\n\n private processSteps(): void {\n this.processedSteps = this.steps.map((step, index) => {\n const stepNumber = index + 1;\n let calculatedState: VerticalStepState;\n\n if (step.state) {\n calculatedState = step.state;\n } else {\n if (stepNumber < this.currentStep) {\n calculatedState = \"completed\";\n } else if (stepNumber === this.currentStep) {\n calculatedState = \"current\";\n } else {\n calculatedState = \"pending\";\n }\n }\n\n return {\n ...step,\n number: stepNumber,\n calculatedState,\n };\n });\n }\n\n isStepClickable(stepNumber: number): boolean {\n return this.clickable && stepNumber <= this.currentStep;\n }\n\n onStepClick(stepNumber: number): void {\n if (this.isStepClickable(stepNumber)) {\n this.stepClick.emit(stepNumber);\n }\n }\n\n isLastStep(index: number): boolean {\n return index === this.processedSteps.length - 1;\n }\n}\n","<div class=\"vertical-steps\">\n @for (step of processedSteps; track step.number; let i = $index) {\n <div\n class=\"step-item\"\n [class.completed]=\"step.calculatedState === 'completed'\"\n [class.current]=\"step.calculatedState === 'current'\"\n [class.pending]=\"step.calculatedState === 'pending'\"\n [class.clickable]=\"isStepClickable(step.number)\"\n (click)=\"onStepClick(step.number)\"\n >\n <!-- Indicador del paso (círculo + línea) -->\n <div class=\"step-indicator\">\n <div class=\"step-circle\">\n @if (step.calculatedState === 'completed' && showCheckIcon) {\n <app-icon name=\"Check-small\" width=\"14px\" height=\"14px\"></app-icon>\n } @else {\n <span class=\"step-number\">{{ step.number }}</span>\n }\n </div>\n @if (!isLastStep(i)) {\n <div class=\"step-line\"></div>\n }\n </div>\n\n <!-- Etiqueta del paso -->\n <div class=\"step-label\">\n @if (step.labelKey) {\n <span>{{ step.labelKey | translate }}</span>\n } @else {\n <span>{{ step.label }}</span>\n }\n </div>\n </div>\n }\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnChanges,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"app-dropi-paginator\",\n standalone: true,\n imports: [CommonModule, IconComponent, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-paginator.component.html\",\n styleUrls: [\"./dropi-paginator.component.scss\"],\n})\nexport class DropiPaginatorComponent implements OnInit, OnChanges {\n @Input() totalPages: number = 1;\n @Input() currentPage: number = 1;\n @Input() disabled: boolean = false;\n @Input() isNotTotalPages: boolean = false;\n @Input() maxVisiblePages: number = 8;\n @Output() pageChange = new EventEmitter<number>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnChanges(): void {}\n\n get pages(): (number | string)[] {\n const pages: (number | string)[] = [];\n const total = this.totalPages;\n const current = this.currentPage;\n const max = this.maxVisiblePages;\n\n if (total <= max) {\n for (let i = 1; i <= total; i++) pages.push(i);\n return pages;\n }\n\n const visible = max - 2;\n let start = Math.max(2, current - Math.floor(visible / 2));\n let end = Math.min(total - 1, current + Math.floor(visible / 2));\n\n if (start <= 2) {\n start = 2;\n end = start + visible - 1;\n }\n if (end >= total - 1) {\n end = total - 1;\n start = end - visible + 1;\n }\n\n pages.push(1);\n if (start > 2) pages.push(\"...\");\n for (let i = start; i <= end; i++) pages.push(i);\n if (end < total - 1) pages.push(\"...\");\n pages.push(total);\n return pages;\n }\n\n public goToPage(page: any): void {\n if (typeof page === \"number\") {\n this.pageChange.emit(page);\n }\n }\n\n public prevPage(): void {\n if (this.currentPage > 1) {\n this.pageChange.emit(this.currentPage - 1);\n }\n }\n\n public nextPage(): void {\n if (this.currentPage < this.totalPages || this.isNotTotalPages) {\n this.pageChange.emit(this.currentPage + 1);\n }\n }\n\n public goToFirstPage(): void {\n this.pageChange.emit(1);\n }\n\n public goToLastPage(): void {\n this.pageChange.emit(this.totalPages);\n }\n}\n","<div class=\"selector-quantity\"></div>\n\n<div class=\"dropi-paginator\">\n <button\n *ngIf=\"currentPage !== 1 && !isNotTotalPages\"\n class=\"page-item prev\"\n [disabled]=\"disabled || currentPage === 1\"\n (click)=\"goToFirstPage()\"\n aria-label=\"Anterior\"\n >\n <app-icon\n [name]=\"'Arrow-double-small-left'\"\n [width]=\"'16'\"\n [height]=\"'16'\"\n />\n </button>\n <button\n *ngIf=\"currentPage !== 1\"\n class=\"page-item prev\"\n [ngClass]=\"{ prevCursor: isNotTotalPages }\"\n [disabled]=\"disabled || currentPage === 1\"\n (click)=\"prevPage()\"\n aria-label=\"Anterior\"\n >\n <app-icon [name]=\"'Dropdown-left'\" [width]=\"'16'\" [height]=\"'16'\" />\n {{ \"Previous\" | translate }}\n </button>\n\n <ng-container *ngIf=\"!isNotTotalPages\">\n <ng-container *ngFor=\"let page of pages\">\n <ng-container *ngIf=\"page === '...'; else pageNumber\">\n <button class=\"page-item ellipsis\" disabled tabindex=\"-1\">...</button>\n </ng-container>\n <ng-template #pageNumber>\n <button\n class=\"page-item\"\n [ngClass]=\"{ active: page === currentPage }\"\n [disabled]=\"disabled || page === currentPage\"\n (click)=\"goToPage(page)\"\n >\n {{ page }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <button\n *ngIf=\"\n currentPage !== totalPages ||\n (isNotTotalPages && currentPage < totalPages)\n \"\n class=\"page-item next\"\n [ngClass]=\"{ nextCursor: isNotTotalPages }\"\n [disabled]=\"disabled || currentPage === totalPages\"\n (click)=\"nextPage()\"\n aria-label=\"Siguiente\"\n >\n {{ \"Next\" | translate }}\n <app-icon [name]=\"'Dropdown-Right'\" [width]=\"'16'\" [height]=\"'16'\" />\n </button>\n\n <button\n *ngIf=\"currentPage !== totalPages && !isNotTotalPages\"\n class=\"page-item next\"\n [disabled]=\"disabled || currentPage === totalPages\"\n (click)=\"goToLastPage()\"\n aria-label=\"Siguiente\"\n >\n <app-icon\n [name]=\"'Arrow-double-small-right'\"\n [width]=\"'16'\"\n [height]=\"'16'\"\n />\n </button>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport interface BreadcrumbItem {\n label: string;\n url?: string;\n disabled?: boolean;\n queryParams?: Record<string, any>;\n fragment?: string;\n command?: (event?: any) => void; // Cambiado de 'click' para evitar conflictos de sintaxis\n}\n\n@Component({\n selector: \"app-dropi-breadcrumb\",\n standalone: true,\n imports: [CommonModule, TranslateModule, IconComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-breadcrumb.component.html\",\n styleUrls: [\"./dropi-breadcrumb.component.scss\"],\n})\nexport class DropiBreadcrumbComponent implements OnInit {\n @Input() public items: BreadcrumbItem[] = [];\n @Input() public ariaLabel: string = \"Breadcrumb\";\n @Input() public homeIconName: string = \"Home\";\n @Input() public lastItemClickable: boolean = false;\n\n @Output() public onNavigate = new EventEmitter<BreadcrumbItem>();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n public navigate(item: BreadcrumbItem | null, isHome: boolean = false): void {\n if (isHome) {\n this.onNavigate.emit({ label: \"Home\", url: \"/\" });\n return;\n }\n\n if (item && !item.disabled) {\n if (item.command) {\n item.command(item);\n }\n this.onNavigate.emit(item);\n }\n }\n}\n","<nav class=\"breadcrumb\" [attr.aria-label]=\"ariaLabel\">\n <div class=\"crumb-list\">\n <!-- HOME: solo ícono -->\n <div class=\"crumb-home\">\n <a\n (click)=\"navigate(null, true)\"\n class=\"home-link\"\n aria-label=\"Inicio\"\n style=\"cursor: pointer\"\n >\n <app-icon\n [name]=\"homeIconName\"\n width=\"16px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </a>\n\n <app-icon\n *ngIf=\"items?.length\"\n name=\"Dropdown-Right\"\n width=\"16px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </div>\n\n <!-- ITEMS en línea, sin colapsar -->\n <div *ngFor=\"let it of items; let last = last\" class=\"crumb\">\n <!-- Si NO es el último (o sí, pero queremos que sea clicable) -->\n <ng-container *ngIf=\"!last || lastItemClickable; else current\">\n <!-- Interno con Navegación -->\n <a\n *ngIf=\"it.command || it.url; else plain\"\n (click)=\"navigate(it)\"\n [class.disabled]=\"it.disabled\"\n class=\"crumb-link Body-S-Regular\"\n style=\"cursor: pointer\"\n >\n {{ it.label | translate }}\n </a>\n\n <!-- Sin destino / deshabilitado -->\n <ng-template #plain>\n <span class=\"disabled Body-S-Regular\">{{\n it.label | translate\n }}</span>\n </ng-template>\n </ng-container>\n\n <!-- Último como “actual” por defecto -->\n <ng-template #current>\n <span class=\"current Body-S-Regular\" aria-current=\"page\">{{\n it.label | translate\n }}</span>\n </ng-template>\n\n <app-icon\n *ngIf=\"!last\"\n name=\"Dropdown-Right\"\n width=\"16px\"\n height=\"16px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </div>\n </div>\n</nav>\n","import {\n Component,\n Input,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-country-flags\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./country-flags.component.html\",\n styleUrls: [\"./country-flags.component.scss\"],\n})\nexport class CountryFlagsComponent implements OnInit {\n @Input() public country: string = \"\";\n @Input() public width: number = 24;\n @Input() public height: number = 24;\n @Input() public style: string = \"rectangle\";\n\n public countries: any[] = [];\n\n ngOnInit(): void {}\n}\n","<figure [class]=\"'flag ' + style\">\n <img\n [src]=\"'https://flagsapi.com/' + country + '/flat/64.png'\"\n [ngStyle]=\"{\n width: width ? width + 'px' : null,\n height: height ? height + 'px' : null\n }\"\n alt=\"flag\"\n />\n</figure>\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CountryFlagsComponent } from '../country-flags/country-flags.component';\nimport { IconComponent } from '../icon/icon.component';\n\nexport interface LanguageOption {\n code: string;\n label: string;\n flag: string; // ruta o clase para la bandera\n}\n\n@Component({\n selector: 'dropi-languages-selector',\n standalone: true,\n imports: [CommonModule, CountryFlagsComponent, IconComponent],\n templateUrl: './dropi-languages-selector.component.html',\n styleUrls: ['./dropi-languages-selector.component.scss'],\n})\nexport class DropiLanguagesSelectorComponent implements OnInit {\n @Input() languages: LanguageOption[] = [];\n @Input() selectedLang: LanguageOption;\n @Output() languageChange = new EventEmitter<LanguageOption>();\n\n dropdownOpen = false;\n\n ngOnInit() {\n if (!this.selectedLang && this.languages.length > 0) {\n this.selectedLang = this.languages[0];\n }\n }\n\n toggleDropdown(): void {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n selectLanguage(lang: LanguageOption): void {\n this.selectedLang = lang;\n this.languageChange.emit(lang);\n this.dropdownOpen = false;\n }\n}\n","<div class=\"custom-dropdown\" [class.open]=\"dropdownOpen\">\n <div class=\"selected-option\" (click)=\"toggleDropdown()\">\n <app-country-flags [country]=\"selectedLang.flag\" [style]=\"'rectangle'\"></app-country-flags>\n <span class=\"Body-S-Regular\">{{ selectedLang.label }}</span>\n <app-icon name=\"Caret-down\" width=\"16px\" height=\"16px\" color=\"Gray-Gray-500\"></app-icon>\n </div>\n <ul [ngClass]=\"{ 'dropdown-options': true, 'dropdown-open': dropdownOpen }\">\n <li\n *ngFor=\"let lang of languages\"\n (click)=\"selectLanguage(lang)\"\n [class.active]=\"lang.code === selectedLang.code\"\n >\n <app-country-flags [country]=\"lang.flag\" [style]=\"'rectangle'\"></app-country-flags>\n <span class=\"Body-S-Regular\">{{ lang.label }}</span>\n </li>\n </ul>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule, FormControl } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-dropi-search\",\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-search.component.html\",\n styleUrls: [\"./dropi-search.component.scss\"],\n})\nexport class DropiSearchComponent implements OnInit {\n @Input() public type: string = \"default\";\n @Input() public typeInput: string = \"text\";\n @Input() public placeholder: string = \"Search\";\n @Input() public textDropButton: string = \"Search\";\n @Input() public textInput: string = \"\";\n @Input() public showIcon: boolean = true;\n @Input() public label: string = \"\";\n @Input() public colorSearch: string = \"inherit\";\n @Input() public overlaySelected: string = \"\";\n @Input() public backgroundInput: string = \"transparent\";\n @Input() public maxLength: number = 200;\n\n @Output() public textInputChange = new EventEmitter<string>();\n @Output() public onClick = new EventEmitter<any>();\n @Output() public onSearch = new EventEmitter<string>();\n @Output() public onInput = new EventEmitter<any>();\n @Output() public onKeyEnter = new EventEmitter<any>();\n @Output() public onClear = new EventEmitter<any>();\n\n public searchControl = new FormControl(\"\");\n public isVisibleContent: boolean = false;\n public isClickedDropButton: boolean = false;\n public isFocus: boolean = false;\n public dataToSearchCache: any[] = [];\n public dataName: string = \"name\";\n\n ngOnInit(): void {}\n\n public onFocus(): void {\n this.isFocus = true;\n }\n\n public onBlur(): void {\n this.isFocus = false;\n }\n\n public changeText(event: any): void {\n const val = event.target.value;\n this.textInput = val;\n this.textInputChange.emit(val);\n this.onInput.emit(event);\n }\n\n public onChangHandler(event: any): void {}\n\n public onEnter(event: any): void {\n this.onKeyEnter.emit(event);\n }\n\n public clearText(): void {\n this.textInput = \"\";\n this.textInputChange.emit(\"\");\n this.onClear.emit(null);\n }\n\n public handleClickDropButton(event: any): void {\n this.isClickedDropButton = !this.isClickedDropButton;\n this.onClick.emit(event);\n }\n\n public checkingList(event: any, data: any): void {}\n\n public getOverlayStyles(): any {\n return {};\n }\n}\n","<div [style.--color-back]=\"backgroundInput\" #containerRef class=\"container-search\">\n <input\n (focus)=\"onFocus()\"\n (input)=\"changeText($event)\"\n (change)=\"onChangHandler($event)\"\n (keyup.enter)=\"onEnter($event)\"\n [(ngModel)]=\"textInput\"\n [ngClass]=\"{\n 'Body-M-Regular': true,\n 'custom-input': true,\n 'input-drop-class': type === 'dropdown-button'\n }\"\n [type]=\"typeInput\"\n [maxlength]=\"maxLength\"\n [placeholder]=\"placeholder | translate\"\n />\n <svg\n [style.color]=\"colorSearch\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20px\"\n height=\"20px\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_3021_2)\">\n <path\n d=\"M17.1297 16.1484L12.9846 12.0032C14.1142 10.6217 14.6695 8.85886 14.5358 7.07932C14.4021 5.29979 13.5896 3.63972 12.2662 2.44249C10.9429 1.24526 9.20997 0.602467 7.42598 0.647073C5.64199 0.691678 3.94338 1.42027 2.68152 2.68213C1.41965 3.944 0.69106 5.64261 0.646455 7.4266C0.601849 9.21059 1.24464 10.9435 2.44187 12.2668C3.6391 13.5902 5.29917 14.4028 7.0787 14.5365C8.85824 14.6702 10.6211 14.1148 12.0026 12.9852L16.1478 17.1303C16.2787 17.2568 16.4542 17.3268 16.6362 17.3252C16.8183 17.3237 16.9925 17.2506 17.1212 17.1219C17.25 16.9931 17.323 16.8189 17.3246 16.6368C17.3262 16.4548 17.2562 16.2794 17.1297 16.1484ZM7.61095 13.1671C6.51217 13.1671 5.43806 12.8413 4.52445 12.2308C3.61084 11.6204 2.89877 10.7527 2.47829 9.73759C2.0578 8.72244 1.94778 7.60541 2.16214 6.52773C2.37651 5.45006 2.90562 4.46016 3.68258 3.6832C4.45954 2.90624 5.44944 2.37713 6.52712 2.16276C7.60479 1.9484 8.72183 2.05842 9.73697 2.47891C10.7521 2.89939 11.6198 3.61146 12.2302 4.52507C12.8407 5.43868 13.1665 6.51278 13.1665 7.61157C13.1649 9.08449 12.579 10.4966 11.5375 11.5381C10.496 12.5796 9.08387 13.1655 7.61095 13.1671Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3021_2\">\n <rect\n width=\"16.6667\"\n height=\"16.6667\"\n fill=\"white\"\n transform=\"translate(0.666664 0.666626)\"\n />\n </clipPath>\n </defs>\n </svg>\n\n <div class=\"container-close-drop\">\n <app-icon\n *ngIf=\"textInput?.length > 0 && showIcon\"\n (click)=\"clearText()\"\n [class]=\"label ? 'icon-close-input-label' : 'icon-close-input'\"\n name=\"Close-small\"\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-600\"\n ></app-icon>\n\n <div class=\"label-custom\" *ngIf=\"label && isFocus && type == 'dropdown'\">\n <span class=\"label-custom-icon Body-M-Regular\">\n {{ label || 'Label' }}\n </span>\n <app-icon name=\"Dropdown-down\" width=\"24px\" height=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </div>\n <dropi-button\n *ngIf=\"type == 'dropdown-button'\"\n [type]=\"'dropdown'\"\n [severity]=\"'tertiary'\"\n [state]=\"'default'\"\n [text]=\"textDropButton\"\n (onClick)=\"handleClickDropButton($event)\"\n ></dropi-button>\n </div>\n\n <div\n #overlay\n (click)=\"$event.stopPropagation()\"\n [class]=\"'overlay-search-input ' + overlaySelected\"\n *ngIf=\"(isFocus && type == 'dropdown') || (isClickedDropButton && type == 'dropdown-button')\"\n [ngStyle]=\"getOverlayStyles()\"\n @fade\n >\n <div\n class=\"container-content\"\n *ngIf=\"\n (isVisibleContent && type == 'dropdown') ||\n (isClickedDropButton && type == 'dropdown-button')\n \"\n @fade\n >\n <div class=\"content-no-found\" *ngIf=\"dataToSearchCache?.length == 0\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.5 1.66663C8.85185 1.66663 7.24068 2.15537 5.87027 3.07105C4.49986 3.98672 3.43176 5.28821 2.80103 6.81093C2.1703 8.33365 2.00527 10.0092 2.32681 11.6257C2.64836 13.2422 3.44203 14.7271 4.60747 15.8925C5.77291 17.058 7.25776 17.8516 8.87427 18.1732C10.4908 18.4947 12.1663 18.3297 13.6891 17.699C15.2118 17.0682 16.5133 16.0001 17.4289 14.6297C18.3446 13.2593 18.8334 11.6481 18.8334 9.99996C18.831 7.79056 17.9522 5.67233 16.3899 4.11004C14.8277 2.54776 12.7094 1.66902 10.5 1.66663ZM10.5 16.9444C9.12654 16.9444 7.78391 16.5371 6.6419 15.7741C5.49989 15.011 4.6098 13.9264 4.08419 12.6575C3.55859 11.3886 3.42106 9.99226 3.68902 8.64517C3.95697 7.29808 4.61836 6.06069 5.58956 5.0895C6.56076 4.1183 7.79814 3.4569 9.14523 3.18895C10.4923 2.921 11.8886 3.05852 13.1575 3.58413C14.4265 4.10974 15.5111 4.99983 16.2741 6.14183C17.0372 7.28384 17.4445 8.62648 17.4445 9.99996C17.4424 11.8411 16.7102 13.6063 15.4083 14.9082C14.1064 16.2101 12.3412 16.9424 10.5 16.9444Z\"\n fill=\"var(--Gray-Gray-600)\"\n />\n <path\n d=\"M10.5 5.13895C10.3158 5.13895 10.1392 5.21212 10.009 5.34235C9.87875 5.47259 9.80558 5.64922 9.80558 5.8334V11.389C9.80558 11.5731 9.87875 11.7498 10.009 11.88C10.1392 12.0102 10.3158 12.0834 10.5 12.0834C10.6842 12.0834 10.8608 12.0102 10.9911 11.88C11.1213 11.7498 11.1945 11.5731 11.1945 11.389V5.8334C11.1945 5.64922 11.1213 5.47259 10.9911 5.34235C10.8608 5.21212 10.6842 5.13895 10.5 5.13895Z\"\n fill=\"#475066\"\n />\n <path\n d=\"M11.1945 14.1667C11.1945 13.7832 10.8836 13.4723 10.5 13.4723C10.1165 13.4723 9.80558 13.7832 9.80558 14.1667C9.80558 14.5503 10.1165 14.8612 10.5 14.8612C10.8836 14.8612 11.1945 14.5503 11.1945 14.1667Z\"\n fill=\"#475066\"\n />\n </svg>\n\n <div class=\"Body-S-Regular text-no-found\">\n No encontramos resultados, por favor intenta con otra búsqueda.\n </div>\n </div>\n\n <div *ngIf=\"dataToSearchCache?.length > 0\">\n <div class=\"container-array\" *ngFor=\"let data of dataToSearchCache; let i = index\">\n <app-dropi-checkbox\n [checked]=\"data.isChecked\"\n (onChange)=\"checkingList($event, data)\"\n ></app-dropi-checkbox>\n {{ data[dataName] }}\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-dropi-checkbox',\n templateUrl: './dropi-checkbox.component.html',\n styleUrls: ['./dropi-checkbox.component.css'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class DropiCheckboxComponent {\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Output() onChange = new EventEmitter<boolean>();\n\n changeState() {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.emitCheckStatus();\n }\n\n emitCheckStatus() {\n this.onChange.emit(this.checked);\n }\n}\n","<div class=\"container-dropi-checkbox\">\n <div id=\"check\" (click)=\"changeState()\">\n <div class=\"check\" [ngClass]=\"{ isCheck: checked, noCheck: !checked, disabled: disabled }\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z\"\n fill=\"#FFFFFF\"\n />\n </svg>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dropi-avatars',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropi-avatars.component.html',\n styleUrls: ['./dropi-avatars.component.scss'],\n})\nexport class DropiAvatarsComponent {\n private _initials: string = '?';\n\n @Input() image?: string;\n @Input() alt: string = 'Avatar';\n @Input() type: 'users' | 'transport' | 'supplier' | 'payment' | 'counter' = 'users';\n\n @Input() set initials(value: string | undefined) {\n this._initials = (value || '?').substring(0, 2).toUpperCase();\n }\n get initials(): string {\n return this._initials;\n }\n}\n","<figure class=\"dropi-avatars\">\n <ng-container *ngIf=\"image; else onlyInitials\">\n <img\n [src]=\"image\"\n [alt]=\"alt\"\n [ngClass]=\"[type]\"\n class=\"dropi-avatar\"\n (error)=\"image = 'assets/images/delivery/default.svg'\"\n />\n </ng-container>\n\n <ng-template #onlyInitials>\n <div class=\"dropi-avatar__initials fallback\" [ngClass]=\"[type]\">\n <span>{{ initials }}</span>\n </div>\n </ng-template>\n</figure>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n Pipe,\n PipeTransform,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { DropiCheckboxComponent } from \"../dropi-checkbox/dropi-checkbox.component\";\nimport { DropiAvatarsComponent } from \"../dropi-avatars/dropi-avatars.component\";\n\n@Pipe({\n name: \"carrierImageUrl\",\n standalone: true,\n})\nexport class CarrierImageUrlPipeStub implements PipeTransform {\n transform(value: any): string {\n return value;\n }\n}\n\n@Component({\n selector: \"app-dropi-dropdown\",\n standalone: true,\n imports: [\n CommonModule,\n DropiCheckboxComponent,\n DropiAvatarsComponent,\n CarrierImageUrlPipeStub,\n ],\n templateUrl: \"./dropi-dropdown.component.html\",\n styleUrls: [\"./dropi-dropdown.component.scss\"],\n})\nexport class DropiDropdownComponent implements OnInit {\n @Input() public options: any[] = [];\n @Input() public parameters: any = {}; // Requerido por template\n @Input() public isInSelect: boolean = false; // Requerido por template\n @Input() public height: string = \"\"; // Requerido por template\n @Input() public valueModel: string = \"label\"; // Requerido por template\n @Output() public onSelectionChange = new EventEmitter<any>();\n @Output() public modelChange = new EventEmitter<any>(); // Requerido por template\n\n ngOnInit(): void {}\n\n public toggleValue(event: any, item: any, index: number): void {\n this.modelChange.emit(item);\n }\n}\n","<div\n [ngClass]=\"isInSelect ? 'container-dropi-dropdown-select' : 'container-dropi-dropdown'\"\n [style.--custom-height]=\"height || '388px'\"\n>\n <div class=\"content-dropdown\" *ngFor=\"let optionlItem of options; let i = index\">\n <div\n class=\"container-check-dropdown\"\n [ngClass]=\"{ 'active-option': optionlItem?.checked }\"\n *ngIf=\"parameters.type === 'checkbox'\"\n >\n <app-dropi-checkbox\n [checked]=\"optionlItem?.checked || false\"\n (onChange)=\"toggleValue($event, optionlItem, i)\"\n ></app-dropi-checkbox>\n <!-- si vamos a activar el avatar para transportadora -->\n <dropi-avatars\n *ngIf=\"parameters.iconCurrier\"\n [image]=\"optionlItem[valueModel] | carrierImageUrl\"\n [type]=\"'transport'\"\n ></dropi-avatars>\n\n <dropi-avatars\n *ngIf=\"parameters.icon\"\n [image]=\"optionlItem.image\"\n [type]=\"'transport'\"\n ></dropi-avatars>\n <span class=\"Body-M-Regular\">{{ optionlItem[valueModel] }}</span>\n </div>\n </div>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { DropiSearchComponent } from \"../dropi-search/dropi-search.component\";\nimport { DropiDropdownComponent } from \"../dropi-dropdown/dropi-dropdown.component\";\nimport { CountryFlagsComponent } from \"../country-flags/country-flags.component\";\nimport { SelectProperties } from \"../../utilities/interfaces/ui/select-interface\";\n\n@Component({\n selector: \"app-dropi-select\",\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n IconComponent,\n DropiSearchComponent,\n DropiDropdownComponent,\n CountryFlagsComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-select.component.html\",\n styleUrls: [\"./dropi-select.component.scss\"],\n})\nexport class DropiSelectComponent implements OnInit {\n @Input() public label: string = \"\";\n @Input() public options: any[] = [];\n @Input() public selectProperties: SelectProperties = {};\n @Input() public labelDrop: string = \"\";\n @Input() public disabled: boolean = false;\n\n public isOpen: boolean = false;\n public isExpanded: boolean = false;\n public selectedOption: any = null;\n public searchValue: string = \"\";\n public isGrouped: boolean = false;\n public multiSelect: boolean = false;\n public showCountryFlags: boolean = false;\n public searchEnabled: boolean = false;\n public searchTerm: string = \"\";\n public filteredOptions: any[] = [];\n public multiSelecOptions: any[] = [];\n public parametersDrop: any = {};\n\n ngOnInit(): void {\n this.filteredOptions = this.options;\n }\n\n public showOptions(): void {\n this.toggleDropdown();\n }\n\n public toggleDropdown(): void {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n this.isExpanded = this.isOpen;\n }\n\n public selectOption(option: any): void {\n if (option.disabled) return;\n this.selectedOption = option;\n this.isOpen = false;\n this.isExpanded = false;\n }\n\n public getSelectedCountryCode(): string {\n return this.selectedOption?.countryCode || \"\";\n }\n\n public filterOptions(term: any): void {\n const val = typeof term === \"string\" ? term : term?.target?.value || \"\";\n if (!val.trim()) {\n this.filteredOptions = this.options;\n return;\n }\n this.filteredOptions = this.options.filter(\n (o) =>\n o.label?.toLowerCase().includes(val.toLowerCase()) ||\n o.name?.toLowerCase().includes(val.toLowerCase()),\n );\n }\n\n public onKeyPress(event: any): void {}\n public onClearHanddle(): void {\n this.selectedOption = null;\n this.searchTerm = \"\";\n this.filteredOptions = this.options;\n }\n\n public getValueDrop(event: any): void {}\n public onScroll(event: any): void {}\n}\n","<div class=\"dropi-select-container\">\n <label *ngIf=\"label\" class=\"select-label\">{{ label | translate }}</label>\n\n <div\n class=\"select-trigger\"\n [ngClass]=\"{ 'is-open': isOpen, 'has-error': selectProperties?.hasError }\"\n (click)=\"toggleDropdown()\"\n >\n <div class=\"selected-value\">\n <ng-container *ngIf=\"selectedOption; else placeholderTpl\">\n <app-icon\n *ngIf=\"showCountryFlags && selectedOption.countryCode\"\n [name]=\"selectedOption.countryCode\"\n ></app-icon>\n <span>{{\n selectedOption.label || selectedOption.name | translate\n }}</span>\n </ng-container>\n <ng-template #placeholderTpl>\n <span class=\"placeholder\">\n {{\n (labelDrop ? labelDrop : selectProperties?.placeholder) | translate\n }}\n </span>\n </ng-template>\n </div>\n\n <div class=\"icons\">\n <app-icon\n [name]=\"isExpanded ? 'Dropdown-up' : 'Dropdown-down'\"\n [width]=\"selectProperties?.dropdownType ? '24px' : '20px'\"\n [height]=\"selectProperties?.dropdownType ? '24px' : '20px'\"\n ></app-icon>\n </div>\n </div>\n\n <div *ngIf=\"selectProperties?.textHelper\" class=\"select-helper\">\n <span>{{ selectProperties.textHelper | translate }}</span>\n </div>\n\n <div *ngIf=\"selectProperties?.hasError\" class=\"select-helper-error\">\n <span>{{ selectProperties.errorText | translate }}</span>\n </div>\n\n <div\n class=\"select-dropdown-overlay\"\n *ngIf=\"isOpen\"\n (scroll)=\"onScroll($event)\"\n >\n <div class=\"search-container\" *ngIf=\"searchEnabled\">\n <app-dropi-search\n [placeholder]=\"selectProperties?.placeHolderSearch || 'Buscar'\"\n [(ngModel)]=\"searchTerm\"\n (onInput)=\"filterOptions($event)\"\n (onKeyEnter)=\"onKeyPress($event)\"\n (onClear)=\"onClearHanddle()\"\n ></app-dropi-search>\n </div>\n\n <ul class=\"options-list\">\n <ng-container *ngIf=\"isGrouped\">\n <li *ngFor=\"let group of filteredOptions\" class=\"option-group\">\n <span class=\"group-label\">{{ group.label | translate }}</span>\n <ul>\n <li\n *ngFor=\"let option of group.items\"\n (click)=\"selectOption(option)\"\n class=\"option-item\"\n >\n {{ option.label | translate }}\n </li>\n </ul>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"!isGrouped && !multiSelect\">\n <li\n *ngFor=\"let option of filteredOptions\"\n class=\"option-item\"\n [ngClass]=\"{\n 'option-with-flag': showCountryFlags && option.countryCode,\n }\"\n (click)=\"selectOption(option)\"\n >\n <app-country-flags\n *ngIf=\"showCountryFlags && option.countryCode\"\n [country]=\"option.countryCode\"\n ></app-country-flags>\n <span>\n {{\n (showCountryFlags && option.shortLabel\n ? option.shortLabel\n : option.label || option.name\n ) | translate\n }}\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"multiSelect\">\n <app-dropi-dropdown\n [options]=\"multiSelecOptions\"\n [parameters]=\"parametersDrop\"\n (modelChange)=\"getValueDrop($event)\"\n ></app-dropi-dropdown>\n </ng-container>\n </ul>\n </div>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { DropiSelectComponent } from \"../dropi-select/dropi-select.component\";\n\n@Component({\n selector: \"app-city-selector\",\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n IconComponent,\n DropiSelectComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./city-selector.component.html\",\n styleUrls: [\"./city-selector.component.scss\"],\n})\nexport class CitySelectorComponent implements OnInit {\n @Input() public formControlCity: any;\n @Input() public disabled: boolean = false;\n\n public groupedCities: any[] = [];\n public selectedCities: any[] = [];\n @Output() public onCityChange = new EventEmitter<any>();\n\n constructor(\n @Inject(\"CityService\") public cityService: any,\n @Inject(\"SettingsService\") public settingsService: any,\n ) {}\n\n ngOnInit(): void {}\n\n public onSelectCityChange(event: any): void {\n this.onCityChange.emit(event);\n }\n\n public loadCities(event: any): void {}\n}\n","<div class=\"city-selector\">\n <p-multiSelect\n [options]=\"groupedCities\"\n [group]=\"true\"\n [(ngModel)]=\"selectedCities\"\n [placeholder]=\"'select a city' | translate\"\n display=\"chip\"\n [showClear]=\"false\"\n [showHeader]=\"true\"\n (ngModelChange)=\"onSelectCityChange($event)\"\n [itemSize]=\"10\"\n [disabled]=\"disabled\"\n [lazy]=\"true\"\n (onLazyLoad)=\"loadCities($event)\"\n >\n <ng-template let-group pTemplate=\"group\">\n <div class=\"flex item-state\">\n <span>{{ group.label }}</span>\n </div>\n </ng-template>\n </p-multiSelect>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n Inject,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { Subscription } from \"rxjs\";\nimport { debounceTime } from \"rxjs/operators\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\nimport { Option } from \"../../utilities/interfaces/ui/selection-list-interface\";\n\n@Component({\n selector: \"app-radio-selection-list\",\n standalone: true,\n imports: [CommonModule, TranslateModule, ReactiveFormsModule],\n templateUrl: \"./radio-selection-list.component.html\",\n styleUrls: [\"./radio-selection-list.component.scss\"],\n})\nexport class RadioSelectionListComponent implements OnInit {\n @Input() extraContent: TemplateRef<any> | null = null;\n @Input() withExtraContentId: string | null = null;\n @Input() options: Option[] = [];\n @Input() typeLayout: \"description\" | \"default\" | string = \"default\";\n @Input() alwaysShowDescription: boolean = true;\n @Input() selectedOption?: string = null;\n @Input() showFilter: boolean = false;\n @Input() filterPlaceholder: string = \"Search\";\n @Input() searchDelay: number = 100;\n @Output() valueChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() onSearch = new EventEmitter<any>();\n\n private readonly subscriptions: Subscription = new Subscription();\n searchControl = new FormControl(\"\");\n filteredOptions: Option[] = [];\n\n constructor(\n @Inject(TranslateService)\n private readonly translateService: TranslateService,\n ) {}\n\n ngOnInit() {\n this.subscriptions.add(\n this.searchControl.valueChanges\n .pipe(debounceTime(this.searchDelay))\n .subscribe((value) => {\n this.filterOption(value);\n }),\n );\n\n this.filteredOptions = this.options;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"options\"]) this.filteredOptions = this.options;\n }\n\n filterOption(optionName: any) {\n const val = typeof optionName === \"string\" ? optionName : \"\";\n if (!val.trim()) {\n this.filteredOptions = this.options;\n return;\n }\n this.filteredOptions = this.options.filter((o) =>\n o.name.toLowerCase().includes(val.toLowerCase()),\n );\n }\n\n selectOption(optionId: string): void {\n this.selectedOption = optionId;\n this.valueChange.emit(this.selectedOption);\n }\n\n clearSearchInput() {\n this.searchControl.setValue(\"\");\n }\n}\n","<div class=\"options-container\">\n <div class=\"search-container\" *ngIf=\"showFilter\">\n <span class=\"input-icon\">\n <i class=\"pi pi-search\"></i>\n <input\n type=\"text\"\n pInputText\n [formControl]=\"searchControl\"\n [placeholder]=\"filterPlaceholder\"\n />\n </span>\n </div>\n\n <div class=\"options\">\n <ng-container *ngFor=\"let option of filteredOptions\">\n <div\n (click)=\"selectOption(option.id)\"\n (keyup)=\"selectOption(option.id)\"\n [ngClass]=\"{\n selected: selectedOption === option.id,\n 'half-width': option.halfWidth!,\n 'full-width': !option.halfWidth,\n disabled: option?.disabled\n }\"\n [id]=\"'option-' + option.id\"\n class=\"option-container\"\n >\n <div class=\"option\">\n <div class=\"selection\" [ngClass]=\"{ box: typeLayout === 'description' }\">\n <div class=\"radio\" [ngClass]=\"{ selected: selectedOption === option.id }\">\n <div class=\"circle\" *ngIf=\"selectedOption === option.id\"></div>\n </div>\n <div *ngIf=\"typeLayout !== 'description'\" class=\"data-container\">\n <p *ngIf=\"typeLayout === 'default'\" class=\"option-name\">{{ option.name }}</p>\n <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <p *ngIf=\"typeLayout !== 'description'\" [innerHTML]=\"option.description\"></p>\n </div>\n </div>\n\n <ng-container *ngIf=\"typeLayout === 'description'\">\n <img [src]=\"option.iconImages[0].url\" alt=\"img\" class=\"img\" />\n <div class=\"Body-M-Regular\">\n <div class=\"Body-M-Regular\">{{ option.name }}</div>\n <div\n class=\"description-wrapper\"\n [ngClass]=\"{ 'has-icons': option.descriptionIcons?.length > 0 }\"\n >\n <p class=\"description Body-S-Regular\" [innerHTML]=\"option.description\"></p>\n <div class=\"description-icons\" *ngIf=\"option.descriptionIcons?.length > 0\">\n <img\n *ngFor=\"let icon of option.descriptionIcons\"\n [src]=\"icon.url\"\n [alt]=\"icon.alt\"\n />\n </div>\n </div>\n <!-- <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n ></div> -->\n </div>\n </ng-container>\n </div>\n <div\n class=\"icons-container\"\n *ngIf=\"option?.iconImages?.length > 0 && typeLayout === 'default'\"\n >\n <div class=\"icon\" *ngFor=\"let icon of option.iconImages\">\n <img [src]=\"icon.url\" [alt]=\"icon.alt\" />\n </div>\n </div>\n </div>\n\n <div\n class=\"table-contents description\"\n *ngIf=\"\n option.table?.length > 0 && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <div class=\"item-table\" *ngFor=\"let item of option.table\">\n <div class=\"item-table-name\">{{ item.name }}</div>\n <div class=\"item-table-value\">\n {{ item.value }}\n <!-- <currency\n [value]=\"item.value\"\n ></currency> -->\n </div>\n </div>\n </div>\n\n <div class=\"tag\" *ngIf=\"option.tag\">\n {{ option.tag }}\n </div>\n </div>\n <ng-container *ngIf=\"option.id === withExtraContentId && extraContent\">\n <ng-container *ngTemplateOutlet=\"extraContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\nimport { Subscription } from \"rxjs\";\nimport { debounceTime } from \"rxjs/operators\";\nimport { Option } from \"../../utilities/interfaces/ui/selection-list-interface\";\n\n@Component({\n selector: \"app-checkbox-selection-list\",\n standalone: true,\n imports: [CommonModule, TranslateModule, ReactiveFormsModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./checkbox-selection-list.component.html\",\n styleUrls: [\"./checkbox-selection-list.component.scss\"],\n})\nexport class CheckboxSelectionListComponent implements OnInit {\n @Input() options: Option[] = [];\n @Input() showFilter: boolean = false;\n @Input() filterPlaceholder: string = \"Search\";\n @Input() showNotFound: boolean = false;\n @Input() notFoundMessage: string = \"No results found\";\n @Input() searchDelay: number = 100;\n @Output() valueChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n private readonly subscriptions: Subscription = new Subscription();\n searchControl = new FormControl(\"\");\n filteredOptions: Option[] = [];\n\n constructor(\n @Inject(TranslateService)\n private readonly translateService: TranslateService,\n ) {}\n\n ngOnInit() {\n this.subscriptions.add(\n this.searchControl.valueChanges\n .pipe(debounceTime(this.searchDelay))\n .subscribe((value) => {\n this.filterOption(value);\n }),\n );\n\n this.filteredOptions = this.options;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"options\"]) this.filteredOptions = this.options;\n }\n\n filterOption(optionName: any) {\n const val = typeof optionName === \"string\" ? optionName : \"\";\n if (!val.trim()) {\n this.filteredOptions = this.options;\n return;\n }\n this.filteredOptions = this.options.filter((o) =>\n o.name.toLowerCase().includes(val.toLowerCase()),\n );\n }\n\n toggleSelection(event: any, option: Option): void {\n const checked =\n typeof event === \"boolean\" ? event : event?.checked || false;\n option.checked = checked;\n const selected = this.options.filter((o) => o.checked).map((o) => o.id);\n this.valueChange.emit(selected);\n }\n\n clearSearchInput() {\n this.searchControl.setValue(\"\");\n }\n}\n","<div class=\"checkbox-selection-list\">\n <div class=\"filter-container\" *ngIf=\"showFilter\">\n <span class=\"input-icon\">\n <i class=\"pi pi-search\"></i>\n <input\n data-cy=\"checkbox-selection-search-input\"\n type=\"text\"\n class=\"search-input\"\n [formControl]=\"searchControl\"\n [placeholder]=\"filterPlaceholder\"\n />\n </span>\n <button *ngIf=\"searchControl.value.length > 0\" (click)=\"clearSearchInput()\">\n <i class=\"pi pi-times\"></i>\n </button>\n </div>\n\n <div class=\"selection-list\">\n <div class=\"selection-item\" *ngFor=\"let option of filteredOptions\">\n <div class=\"checkbox-item\">\n <app-dropi-checkbox \n [checked]=\"option.checked\"\n (onChange)=\"toggleSelection($event, option)\" \n [attr.data-cy]=\"'checkbox-selection-' + option.id\"\n />\n <img *ngIf=\"option.preIcon\" [src]=\"option.preIcon\" [alt]=\"option.label\" />\n <span>{{ option.label | translate}}</span>\n </div>\n </div>\n \n <div *ngIf=\"showNotFound && (!filteredOptions || filteredOptions.length === 0)\" class=\"empty-container\">\n <div class=\"empty\" data-cy=\"checkbox-selection-empty\">\n <img src=\"\\assets\\utils\\logo-dropi-img-loader.png\" alt=\"Not-found\" />\n <span>{{ notFoundMessage }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'app-dropi-radio-button',\n templateUrl: './dropi-radio-button.component.html',\n styleUrls: ['./dropi-radio-button.component.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class DropiRadioButtonComponent implements OnInit, OnChanges {\n @Input() label = '';\n @Input() name = 'name';\n @Input() id = 'radioButton';\n @Input() checked = false;\n @Input() resetTrigger: boolean = false; // Nuevo input para reiniciar\n\n @Output() onChange = new EventEmitter<{}>();\n @ViewChild('radioInput') radioInput!: ElementRef<HTMLInputElement>;\n\n constructor() {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['resetTrigger'] && this.resetTrigger) {\n this.checked = false; // Reiniciar el estado\n if (this.radioInput) {\n this.radioInput.nativeElement.checked = false;\n }\n }\n // ... existing code ...\n }\n\n sendClick(e) {\n this.onChange.emit(e);\n }\n}\n","<input\n #radioInput\n [id]=\"id\"\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"checked\"\n (change)=\"sendClick($event)\"\n/>\n","import { Component, Input, CUSTOM_ELEMENTS_SCHEMA } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-lottie-loader\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./lottie-loader.component.html\",\n styleUrls: [\"./lottie-loader.component.scss\"],\n})\nexport class LottieLoaderComponent {\n @Input() loadingAnimation: string = \"\";\n @Input() visible: boolean = false; // Añadido\n @Input() title: string = \"\"; // Añadido\n @Input() message: string = \"\"; // Añadido\n}\n","<div class=\"loader-container\" *ngIf=\"visible\">\n <div class=\"lottie-animation\">\n <dotlottie-player\n [src]=\"loadingAnimation\"\n background=\"transparent\"\n speed=\"1\"\n style=\"width: 200px; height: auto\"\n loop\n autoplay\n ></dotlottie-player>\n </div>\n <div class=\"loader-text\">\n <h3>{{ title }}</h3>\n <p>{{ message }}</p>\n </div>\n</div>\n","import {\n Component,\n Input,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nexport interface ToastProps {\n message?: string;\n type?: \"success\" | \"error\" | \"info\" | \"warning\";\n show?: boolean;\n severity?: string; // Añadido\n}\n\n@Component({\n selector: \"app-toast\",\n standalone: true,\n imports: [CommonModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./toast.component.html\",\n styleUrls: [\"./toast.component.scss\"],\n})\nexport class ToastComponent implements OnInit {\n @Input() public toastProperties: ToastProps;\n\n // Restaurando propiedades requeridas por el template\n public brandIsDropi: boolean = true;\n public animations: any = {\n success: \"\",\n error: \"\",\n info: \"\",\n warning: \"\",\n };\n public icons: any = {\n success: \"\",\n error: \"\",\n info: \"\",\n warning: \"\",\n };\n public message: any = {\n severity: \"success\",\n };\n\n constructor(\n @Inject(\"ToastService\") private readonly toastService: any,\n @Inject(\"SettingsService\") public settingsService: any,\n ) {}\n\n ngOnInit(): void {}\n}\n","<p-toast position=\"top-right\" [baseZIndex]=\"99999\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"container\">\n <div class=\"lottie-img\" *ngIf=\"brandIsDropi\">\n <dotlottie-player\n [src]=\"animations[message.severity]\"\n background=\"transparent\"\n speed=\"1\"\n style=\"width: 100%; height: auto\"\n loop\n autoplay\n ></dotlottie-player>\n </div>\n\n <div class=\"wb-img\" *ngIf=\"!brandIsDropi\">\n <div\n [class]=\"'bg-icon-' + message.severity\"\n [ngClass]=\"{\n triangle: message.severity === 'warn',\n circle: message.severity !== 'warn'\n }\"\n >\n <img [src]=\"icons[message.severity]\" [alt]=\"'logo-' + message.severity\" />\n </div>\n </div>\n\n <div class=\"info-container\">\n <h5 class=\"title\">{{ message.summary }}</h5>\n <p class=\"Body-M-Regular description\">{{ message.detail }}</p>\n\n <a *ngIf=\"message.link\" [href]=\"message.link.url\" target=\"_blank\" class=\"link\">\n {{ message.link.text }}\n </a>\n </div>\n </div>\n </ng-template>\n</p-toast>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'app-dropi-skeleton',\n templateUrl: './dropi-skeleton.component.html',\n styleUrls: ['./dropi-skeleton.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class DropiSkeletonComponent implements OnChanges {\n @Input() width: string = '';\n @Input() height: string = '';\n @Input() radius: string = '8px';\n @Input() baseColor: string = '#f6f7f8';\n\n constructor(private readonly cdRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['baseColor'] && !changes.firstChange) this.cdRef.detectChanges();\n }\n\n get backgroundStyle(): string {\n const color = this.baseColor.startsWith('#') ? this.baseColor : `var(--${this.baseColor})`;\n\n return `linear-gradient(\n to right, ${color} 8%, #e3e7efe7 28%, ${color} 77%\n )`;\n }\n}\n","<div\n class=\"skeleton preloader-row-dropi-card\"\n [ngStyle]=\"{\n width: width ? width : '',\n height: height ? height : '',\n borderRadius: radius ? radius : '',\n background: backgroundStyle,\n backgroundSize: '1000px 104px'\n }\"\n></div>\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { CommonModule } from '@angular/common';\nimport { DropiSkeletonComponent } from '../dropi-skeleton/dropi-skeleton.component';\n\n@Component({\n selector: 'app-file-upload-progress-bar',\n templateUrl: './file-upload-progress-bar.component.html',\n styleUrls: ['./file-upload-progress-bar.component.scss'],\n standalone: true,\n imports: [IconComponent, CommonModule, DropiSkeletonComponent],\n})\nexport class FileUploadProgressBarComponent implements OnInit {\n constructor() {}\n @Input() textFile: string = 'Nombre del archivo.xlsx';\n @Input() progress: number = 0;\n @Input() type: 'image' | 'file' = 'file';\n @Input() ulrImage: string = 'assets/img/LOGO-250-PX.png';\n @Input() isPreview: boolean = true;\n\n @Output() deleteFile: EventEmitter<any> = new EventEmitter<any>();\n @Output() uploadComplete: EventEmitter<any> = new EventEmitter<any>();\n @Output() viewFile: EventEmitter<any> = new EventEmitter<any>();\n\n fileExtension: string = '';\n\n ngOnInit() {\n this.checkProgress();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['progress']) {\n this.checkProgress();\n }\n\n if (changes['textFile']) {\n this.fileExtension = this.getFileExtensionInfo(this.textFile).extension;\n this.type = this.getFileExtensionInfo(this.textFile).isImage ? 'image' : 'file';\n }\n }\n\n checkProgress() {\n if (this.progress === 100) {\n this.uploadComplete.emit();\n }\n }\n\n deleteFileAction() {\n this.deleteFile.emit();\n }\n\n viewEmiter() {\n this.viewFile.emit();\n }\n\n /**\n * Extrae la extensión de un archivo y determina si es una imagen\n * @param fileName Nombre del archivo (ej: 'documento.pdf' o 'foto.jpg')\n * @returns Objeto con la extensión y un booleano indicando si es imagen\n */\n\n getFileExtensionInfo(fileName: string): {\n extension: string;\n isImage: boolean;\n } {\n // Extraer la extensión (todo después del último punto)\n const lastDotIndex = fileName.lastIndexOf('.');\n const extension = lastDotIndex > 0 ? fileName.substring(lastDotIndex + 1).toLowerCase() : '';\n\n // Lista de extensiones de imagen comunes (puedes añadir más si necesitas)\n const imageExtensions = [\n 'jpg',\n 'jpeg',\n 'png',\n 'gif',\n 'bmp',\n 'webp',\n 'svg',\n 'tiff',\n 'ico',\n 'jfif',\n ];\n\n return {\n extension,\n isImage: imageExtensions.includes(extension),\n };\n }\n}\n","<div class=\"container-progress-bar\">\n <div class=\"container-icon-info\" *ngIf=\"fileExtension !== 'pdf'\">\n <app-icon\n *ngIf=\"type !== 'image'\"\n name=\"File-text\"\n width=\"24px\"\n height=\"24px\"\n color=\"Info-Info-600\"\n ></app-icon>\n <app-dropi-skeleton\n *ngIf=\"type == 'image' && !ulrImage\"\n width=\"34px\"\n height=\"34px\"\n radius=\"8px\"\n >\n </app-dropi-skeleton>\n\n <img\n *ngIf=\"type == 'image' && ulrImage\"\n class=\"image-to-view\"\n width=\"34\"\n height=\"34\"\n [src]=\"ulrImage\"\n alt=\"\"\n />\n </div>\n\n <div class=\"icon-pdf\" *ngIf=\"fileExtension === 'pdf'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_6227_22223)\">\n <path\n d=\"M16.6243 4.61667L13.716 1.70833C12.616 0.608333 11.1493 0 9.59102 0H5.83268C3.53268 0 1.66602 1.86667 1.66602 4.16667V15.8333C1.66602 18.1333 3.53268 20 5.83268 20H14.166C16.466 20 18.3327 18.1333 18.3327 15.8333V8.74167C18.3327 7.18333 17.7243 5.71667 16.6243 4.61667ZM15.4493 5.79167C15.716 6.05833 15.941 6.35 16.1243 6.66667H12.5077C12.0493 6.66667 11.6743 6.29167 11.6743 5.83333V2.21667C11.991 2.4 12.2827 2.625 12.5493 2.89167L15.4577 5.8L15.4493 5.79167ZM16.666 15.8333C16.666 17.2083 15.541 18.3333 14.166 18.3333H5.83268C4.45768 18.3333 3.33268 17.2083 3.33268 15.8333V4.16667C3.33268 2.79167 4.45768 1.66667 5.83268 1.66667H9.59102C9.72435 1.66667 9.86602 1.66667 9.99935 1.68333V5.83333C9.99935 7.20833 11.1243 8.33333 12.4993 8.33333H16.6493C16.666 8.46667 16.666 8.6 16.666 8.74167V15.8333ZM5.90768 10.8333H4.99935C4.54102 10.8333 4.16602 11.2083 4.16602 11.6667V15.3667C4.16602 15.6583 4.39935 15.8833 4.68268 15.8833C4.96602 15.8833 5.19935 15.65 5.19935 15.3667V14.35H5.89935C6.88268 14.35 7.68268 13.5583 7.68268 12.5917C7.68268 11.625 6.88268 10.8333 5.89935 10.8333H5.90768ZM5.90768 13.3083H5.21602V11.875H5.91602C6.31602 11.875 6.65768 12.2 6.65768 12.5917C6.65768 12.9833 6.31602 13.3083 5.91602 13.3083H5.90768ZM15.8493 11.3583C15.8493 11.65 15.616 11.875 15.3327 11.875H13.9243V12.825H14.9577C15.2493 12.825 15.4743 13.0583 15.4743 13.3417C15.4743 13.625 15.241 13.8583 14.9577 13.8583H13.9243V15.3583C13.9243 15.65 13.691 15.875 13.4077 15.875C13.1243 15.875 12.891 15.6417 12.891 15.3583V11.35C12.891 11.0583 13.1243 10.8333 13.4077 10.8333H15.3327C15.6243 10.8333 15.8493 11.0667 15.8493 11.35V11.3583ZM10.0743 10.8417H9.16602C8.70768 10.8417 8.33268 11.2167 8.33268 11.675V15.375C8.33268 15.6667 8.56602 15.8417 8.84935 15.8417C9.13268 15.8417 10.066 15.8417 10.066 15.8417C11.0493 15.8417 11.8493 15.05 11.8493 14.0833V12.6C11.8493 11.6333 11.0493 10.8417 10.066 10.8417H10.0743ZM10.816 14.0833C10.816 14.475 10.4743 14.8 10.0743 14.8H9.38268V11.8833H10.0827C10.4827 11.8833 10.8243 12.2083 10.8243 12.6V14.0833H10.816Z\"\n fill=\"#DE6061\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_6227_22223\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <div class=\"container-bar-title\">\n <p class=\"Body-S-Regular\">{{ textFile }}</p>\n <progress *ngIf=\"progress < 100\" [value]=\"progress\" max=\"100\">{{ progress }}%</progress>\n </div>\n <div class=\"view-icon\" *ngIf=\"progress == 100 && isPreview\" (click)=\"viewEmiter()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.07148 4.14758C7.64227 3.76618 8.31334 3.56262 8.99983 3.56262C9.92004 3.56372 10.8022 3.92976 11.4529 4.58045C12.1036 5.23114 12.4697 6.11334 12.4708 7.03355C12.4708 7.72004 12.2672 8.39111 11.8858 8.9619C11.5044 9.53269 10.9623 9.97757 10.3281 10.2403C9.69387 10.503 8.99598 10.5717 8.32268 10.4378C7.64939 10.3039 7.03092 9.9733 6.54551 9.48788C6.06009 9.00246 5.72951 8.384 5.59558 7.7107C5.46166 7.0374 5.53039 6.33951 5.7931 5.70528C6.05581 5.07105 6.50069 4.52897 7.07148 4.14758ZM7.84282 8.76514C8.18529 8.99398 8.58794 9.11612 8.99983 9.11612C9.55216 9.11612 10.0819 8.8967 10.4724 8.50615C10.863 8.11559 11.0824 7.58588 11.0824 7.03355C11.0824 6.62166 10.9602 6.21902 10.7314 5.87654C10.5026 5.53407 10.1773 5.26714 9.79679 5.10952C9.41625 4.95189 8.99752 4.91065 8.59354 4.99101C8.18956 5.07136 7.81849 5.26971 7.52723 5.56096C7.23598 5.85221 7.03764 6.22329 6.95728 6.62727C6.87693 7.03124 6.91817 7.44998 7.07579 7.83052C7.23342 8.21105 7.50034 8.53631 7.84282 8.76514Z\"\n fill=\"#475066\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.99996 0.546387C13.2984 0.546387 15.7475 3.48835 16.8241 5.24187C17.157 5.78022 17.3333 6.40064 17.3333 7.03357C17.3333 7.6665 17.157 8.28692 16.8241 8.82526C15.7475 10.5788 13.2984 13.5207 8.99996 13.5207C4.70155 13.5207 2.25246 10.5788 1.17577 8.82526C0.842931 8.28692 0.666626 7.6665 0.666626 7.03357C0.666626 6.40064 0.842931 5.78022 1.17577 5.24187C2.25246 3.48835 4.70155 0.546387 8.99996 0.546387ZM8.99996 12.1324C12.6229 12.1324 14.7159 9.60206 15.6406 8.09845C15.8383 7.77846 15.943 7.40973 15.943 7.03357C15.943 6.6574 15.8383 6.28867 15.6406 5.96868C14.7159 4.4623 12.6229 1.93476 8.99996 1.93476C5.377 1.93476 3.28402 4.46507 2.35936 5.96868C2.16161 6.28867 2.05687 6.6574 2.05687 7.03357C2.05687 7.40973 2.16161 7.77846 2.35936 8.09845C3.28402 9.60206 5.377 12.1324 8.99996 12.1324Z\"\n fill=\"#475066\"\n />\n </svg>\n </div>\n\n <div *ngIf=\"progress == 100\" (click)=\"deleteFileAction()\" class=\"container-icon-trash\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\n <path\n d=\"M16.2501 4.94477H14.0973C13.9362 4.16103 13.5097 3.45682 12.8899 2.95082C12.27 2.44483 11.4947 2.168 10.6946 2.16699H9.30566C8.50552 2.168 7.73019 2.44483 7.11035 2.95082C6.49051 3.45682 6.06406 4.16103 5.90289 4.94477H3.75011C3.56593 4.94477 3.3893 5.01793 3.25906 5.14817C3.12883 5.2784 3.05566 5.45504 3.05566 5.63921C3.05566 5.82339 3.12883 6.00003 3.25906 6.13026C3.3893 6.26049 3.56593 6.33366 3.75011 6.33366H4.44455V15.3614C4.44566 16.282 4.81183 17.1645 5.46276 17.8155C6.11369 18.4664 6.99622 18.8326 7.91677 18.8337H12.0834C13.004 18.8326 13.8865 18.4664 14.5375 17.8155C15.1884 17.1645 15.5546 16.282 15.5557 15.3614V6.33366H16.2501C16.4343 6.33366 16.6109 6.26049 16.7412 6.13026C16.8714 6.00003 16.9446 5.82339 16.9446 5.63921C16.9446 5.45504 16.8714 5.2784 16.7412 5.14817C16.6109 5.01793 16.4343 4.94477 16.2501 4.94477ZM9.30566 3.55588H10.6946C11.1253 3.55641 11.5453 3.69017 11.8971 3.93883C12.2488 4.18749 12.515 4.53886 12.6591 4.94477H7.34108C7.48524 4.53886 7.75143 4.18749 8.10315 3.93883C8.45488 3.69017 8.87492 3.55641 9.30566 3.55588ZM14.1668 15.3614C14.1668 15.914 13.9473 16.4439 13.5566 16.8346C13.1659 17.2253 12.636 17.4448 12.0834 17.4448H7.91677C7.36424 17.4448 6.83434 17.2253 6.44364 16.8346C6.05294 16.4439 5.83344 15.914 5.83344 15.3614V6.33366H14.1668V15.3614Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M8.61128 14.6666C8.79545 14.6666 8.97209 14.5934 9.10232 14.4632C9.23256 14.3329 9.30572 14.1563 9.30572 13.9721V9.80545C9.30572 9.62127 9.23256 9.44464 9.10232 9.3144C8.97209 9.18417 8.79545 9.11101 8.61128 9.11101C8.4271 9.11101 8.25046 9.18417 8.12023 9.3144C7.99 9.44464 7.91683 9.62127 7.91683 9.80545V13.9721C7.91683 14.1563 7.99 14.3329 8.12023 14.4632C8.25046 14.5934 8.4271 14.6666 8.61128 14.6666Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M11.389 14.6666C11.5731 14.6666 11.7498 14.5934 11.88 14.4632C12.0102 14.3329 12.0834 14.1563 12.0834 13.9721V9.80545C12.0834 9.62127 12.0102 9.44464 11.88 9.3144C11.7498 9.18417 11.5731 9.11101 11.389 9.11101C11.2048 9.11101 11.0281 9.18417 10.8979 9.3144C10.7677 9.44464 10.6945 9.62127 10.6945 9.80545V13.9721C10.6945 14.1563 10.7677 14.3329 10.8979 14.4632C11.0281 14.5934 11.2048 14.6666 11.389 14.6666Z\"\n fill=\"#DE6061\"\n />\n </svg>\n </div>\n</div>\n","import { Component, Input, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\ntype IlustrationType = 'dropi' | 'mb' | 'insignia';\ntype IlustrationState =\n | 'success'\n | 'error'\n | 'warning'\n | 'info'\n | 'default'\n | 'loading'\n | 'sorry'\n | 'love';\ntype InsigniaState = 'verified' | 'premium' | 'exclusive';\n\n@Component({\n selector: 'dropi-ilustration-icon',\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: './dropi-ilustration-icon.component.html',\n styleUrls: ['./dropi-ilustration-icon.component.scss'],\n})\nexport class DropiIlustrationIconComponent {\n @Input() type: IlustrationType = 'dropi';\n @Input() state: IlustrationState = 'default';\n @Input() stateInsignia: InsigniaState = 'verified';\n @Input() tagProduct: boolean = false;\n\n public iconPath: string | null = null;\n\n get imageSrc(): string {\n return `assets/icons/ilustration/${this.state}.svg`;\n }\n onImageError(event: Event): void {\n const target = event.target as HTMLImageElement;\n target.src = 'assets/icons/ilustration/default.svg';\n }\n getIconName(state: IlustrationState): string {\n const map = {\n success: 'Check-circle',\n error: 'Cross-circle',\n info: 'Info',\n warning: 'Info', // mismo icono para warning e info\n };\n return map[state] || 'Info';\n }\n\n private readonly insigniaIcons: Record<InsigniaState, string> = {\n verified: 'assets/icons/ilustration/verified-new.svg',\n premium: 'assets/icons/ilustration/premium-new.svg',\n exclusive: 'assets/icons/ilustration/exclusive.svg',\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.type === 'insignia') {\n const icon = this.insigniaIcons[this.stateInsignia];\n if (icon) {\n this.iconPath = icon;\n } else {\n this.iconPath = null;\n }\n }\n }\n}\n","<div class=\"dropi-ilustration\">\n <ng-container *ngIf=\"type === 'dropi'\">\n <figure class=\"dropi-ilustration__image\">\n <img [src]=\"imageSrc\" [alt]=\"state\" (error)=\"onImageError($event)\" />\n </figure>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'mb'\">\n <figure class=\"dropi-ilustration__image-mb\" [ngClass]=\"[state]\">\n <app-icon\n *ngIf=\"state === 'success' || state === 'error' || state === 'info' || state === 'warning'\"\n [name]=\"getIconName(state)\"\n width=\"24px\"\n height=\"24px\"\n color=\"Neutral-White\"\n ></app-icon>\n </figure>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'insignia'\">\n <figure\n [ngClass]=\"{\n 'dropi-ilustration-insignia-tag': tagProduct,\n 'dropi-ilustration-insignia': !tagProduct\n }\"\n >\n <img [src]=\"iconPath\" alt=\"insignia\" />\n <p\n class=\"dropi-ilustration-insignia-tag__tag dropi-ilustration-insignia-tag__tag--{{\n stateInsignia\n }}\"\n *ngIf=\"tagProduct\"\n >\n <span class=\"Caption-S\">{{ stateInsignia }}</span>\n </p>\n </figure>\n </ng-container>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: true,\n imports: [NgIf, TranslateModule]\n})\nexport class SpinnerComponent implements OnInit {\n @Input() loading: boolean = true;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"text-center loader-text\">\n <a *ngIf=\"loading\" href=\"javascript:void(0);\" class=\"text-primary\"\n ><i class=\"mdi mdi-loading mdi-spin font-size-20 align-middle me-2\"></i>\n {{ 'Loading' | translate }} ...\n </a>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Componente que renderiza un acordeón de secciones.\n *\n * Permite tener un acordeón con secciones que se pueden expandir o contraer.\n * Cada sección se renderiza con el componente {@link AccordionItemComponent}.\n *\n * @example\n * <app-accordion>\n * <app-accordion-item title=\"Título 1\">Contenido 1</app-accordion-item>\n * <app-accordion-item title=\"Título 2\">Contenido 2</app-accordion-item>\n * </app-accordion>\n */\n@Component({\n selector: 'app-accordion',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionComponent {\n /**\n * Allows multiple sections to be open at the same time. If false, only one section can be open.\n * @default false\n */\n @Input() multiple: boolean = false;\n activeIndex: number | null = null;\n openSections: Set<number> = new Set();\n\n toggle(index: number): void {\n if (this.multiple) {\n if (this.openSections.has(index)) this.openSections.delete(index); \n else this.openSections.add(index);\n } \n else this.activeIndex = this.activeIndex === index ? null : index;\n }\n\n isOpen(index: number): boolean {\n return this.multiple ? this.openSections.has(index) : this.activeIndex === index;\n }\n}\n","<div class=\"dropi-accordion\">\n <ng-content />\n</div>","import { Component, ContentChild, Input, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AccordionComponent } from '../accordion.component';\n\n/**\n * Componente que renderiza un item de un acordeón.\n *\n * Un item del acordeón tiene un título y un contenido que se puede expandir o contraer.\n *\n * @example\n * <app-accordion>\n * <app-accordion-item title=\"Título 1\">Contenido 1</app-accordion-item>\n * <app-accordion-item title=\"Título 2\">Contenido 2</app-accordion-item>\n * </app-accordion>\n */\n@Component({\n selector: 'app-accordion-item',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss']\n})\nexport class AccordionItemComponent {\n /**\n * The title of the item.\n */\n @Input() sectionTitle: string = '';\n /**\n * The index of the item in the accordion.\n */\n @Input() index!: number;\n @ContentChild('content', { static: true }) content!: TemplateRef<any>;\n constructor(public accordion: AccordionComponent) {}\n\n toggle() {\n this.accordion.toggle(this.index);\n }\n\n get isOpen(): boolean {\n return this.accordion.isOpen(this.index);\n }\n}\n","<div class=\"accordion-item\">\n <div class=\"accordion-header\" (click)=\"toggle()\">\n <p>{{ sectionTitle }}</p>\n <div class=\"icon\">\n <i class=\"pi pi-chevron-down\" *ngIf=\"!isOpen\"></i>\n <i class=\"pi pi-chevron-up\" *ngIf=\"isOpen\"></i>\n </div>\n </div>\n <div class=\"accordion-content\" *ngIf=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>","import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * A component that displays a truncated version of a text string, with an option\n * to expand the text to its full length.\n *\n * @example\n * <app-read-more\n * [text]=\"'This is a very long text'\"\n * [maxCharacters]=\"150\"\n * [textStyle]=\"'font-size: 14px'\"\n * [buttonStyle]=\"'color: blue'\"\n * [showSeeLess]=\"true\"\n * ></app-read-more>\n */\n@Component({\n selector: 'app-read-more',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './read-more.component.html',\n styleUrls: ['./read-more.component.scss'],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ReadMoreComponent {\n /**\n * Text to be displayed\n */\n @Input() text: string = '';\n\n /**\n * Maximum number of words to display before truncating the text\n */\n @Input() maxWords: number = 20;\n\n /**\n * CSS styles for the text element\n */\n @Input() textStyle: string = '';\n\n /**\n * CSS styles for the expand/collapse button\n */\n @Input() buttonStyle: string = '';\n\n /**\n * Whether to show the \"see less\" button when the text is expanded\n */\n @Input() showSeeLess: boolean = true;\n\n /**\n * Current state of the component, expanded or not\n */\n isExpanded: boolean = false;\n\n /**\n * Truncated version of the text\n */\n truncatedText: string = '';\n\n ngOnInit(): void {\n this.truncatedText = this.truncateText();\n }\n\n /**\n * Truncates the text to the maxWords limit if it is longer than\n * that. If the text is shorter than maxWords, it is returned verbatim.\n * If isExpanded is true, the text is not truncated.\n */\n truncateText(): string {\n if (typeof this.text !== 'string') return '';\n\n if (this.isExpanded || this.text.split(' ').length <= this.maxWords) return this.text;\n return this.text.split(' ').slice(0, this.maxWords).join(' ').trim() + '...';\n }\n\n /**\n * Toggle the expanded state of the text. If the text is currently expanded,\n * calling this function will truncate it to the maxCharacters limit. If the\n * text is currently truncated, calling this function will expand it to its\n * full length.\n */\n toggleExpanded(): void {\n this.isExpanded = !this.isExpanded;\n this.truncatedText = this.truncateText();\n }\n}\n","<div class=\"description-container\">\n <p class=\"text\" [style]=\"textStyle\">\n {{ truncatedText }}\n <a\n href=\"javascript:void(0);\"\n *ngIf=\"text?.split(' ')?.length > maxWords && (showSeeLess || !isExpanded)\"\n (click)=\"toggleExpanded()\"\n class=\"toggle-button\"\n [style]=\"buttonStyle\"\n >\n {{ isExpanded ? 'Show less' : 'Show more' | translate }}\n </a>\n </p>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-empty',\n templateUrl: './empty.component.html',\n styleUrls: ['./empty.component.scss'],\n standalone: true,\n imports: [TranslateModule]\n})\nexport class EmptyComponent implements OnInit {\n @Input() public text: string = 'No results';\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"text-center mt-5\">\n {{ text | translate }}\n</div>\n","import {\n Component,\n Input,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-dropi-image-overlay\",\n standalone: true,\n imports: [CommonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n template: '<div *ngIf=\"settingsService.brand$ | async\">Overlay</div>',\n})\nexport class DropiImageOverlayComponent {\n constructor(\n @Inject(\"ImageOverlayService\") private readonly imageOverlayService: any,\n @Inject(\"SettingsService\") public settingsService: any,\n ) {}\n}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\ntype LogoTheme = 'dark' | 'light';\ntype LogoSize = 'small' | 'large';\n\n@Component({\n selector: 'dropi-logo',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropi-logo.component.html',\n styleUrls: ['./dropi-logo.component.scss'],\n})\nexport class DropiLogoComponent {\n @Input() urlLogo: string;\n @Input() size: LogoSize = 'large';\n @Input() theme: LogoTheme = 'light';\n\n onImageError(event: Event): void {\n const target = event.target as HTMLImageElement;\n target.src =\n 'data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22256%22%20height%3D%2284%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%2084%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%20%20%20%20%3Cdefs%3E%0A%20%20%20%20%20%20%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0A%20%20%20%20%20%20%20%20%20%20%23holder%20text%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20fill%3A%20%23ffffff%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20sans-serif%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-size%3A%2024px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-weight%3A%20600%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%3C%2Fstyle%3E%0A%20%20%20%20%20%20%3C%2Fdefs%3E%0A%20%20%20%20%20%20%3Cg%20id%3D%22holder%22%3E%0A%20%20%20%20%20%20%20%20%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23E6EAF2%22%3E%3C%2Frect%3E%0A%20%20%20%20%20%20%20%20%3Cg%3E%0A%20%20%20%20%20%20%20%20%20%20%3Ctext%20text-anchor%3D%22middle%22%20x%3D%2250%25%22%20y%3D%2250%25%22%20dy%3D%22.3em%22%3E256%20x%2084%3C%2Ftext%3E%0A%20%20%20%20%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%20%20%3C%2Fg%3E%0A%20%20%20%20%3C%2Fsvg%3E';\n }\n}\n","<figure class=\"dropi-logo\" [ngClass]=\"size\">\n <img [src]=\"urlLogo\" alt=\"Logo\" loading=\"lazy\" (error)=\"onImageError($event)\" />\n</figure>\n","import {\n Component,\n Input,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { InputProperties } from \"../../utilities/interfaces/ui/input-interface\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { Directive, Input as NgInput } from \"@angular/core\";\n\n@Directive({\n selector: \"[appThousandSeparator]\",\n standalone: true,\n})\nexport class ThousandSeparatorDirectiveStub {\n @NgInput() applyFormat: boolean = false;\n @NgInput() showCurrency: boolean = false;\n}\n\n@Directive({\n selector: \"[appOnlyNumbers]\",\n standalone: true,\n})\nexport class OnlyNumbersDirectiveStub {\n @NgInput() applyOnlyNumbers: boolean = false;\n}\n\n@Directive({\n selector: \"[appOnlyLetters]\",\n standalone: true,\n})\nexport class OnlyLettersDirectiveStub {\n @NgInput() applyOnlyLetters: boolean = false;\n}\n\n@Component({\n selector: \"app-input\",\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n IconComponent,\n TranslateModule,\n ThousandSeparatorDirectiveStub,\n OnlyNumbersDirectiveStub,\n OnlyLettersDirectiveStub,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./input.component.html\",\n styleUrls: [\"./input.component.scss\"],\n})\nexport class InputComponent implements OnInit {\n @Input() public inputProperties: InputProperties;\n @Input() public disabled: boolean = false;\n @Input() public showObligatoryAsterisk: boolean = false;\n @Input() public showPassword = false;\n @Input() public fixedLabel = false;\n @Input() public showAsterisk = true;\n\n ngOnInit() {}\n\n showOrHidePassword() {\n this.showPassword = !this.showPassword;\n }\n\n isRequired(): boolean {\n const control = this.inputProperties?.formControl;\n if (!control || !control.validator) return false;\n const validationResult = control.validator({} as any);\n return !!validationResult?.[\"required\"];\n }\n\n getErrorMessage() {\n return \"\";\n }\n}\n","<div\n class=\"dropi-input-container\"\n [ngClass]=\"{\n 'dropi-input--error':\n inputProperties.formControl.invalid &&\n inputProperties.formControl.touched,\n 'dropi-input--disabled': disabled || inputProperties.formControl.disabled,\n 'dropi-input--with-icon-right':\n inputProperties.icon && inputProperties.iconPos === 'right',\n 'dropi-input--with-icon-left':\n inputProperties.icon && inputProperties.iconPos === 'left',\n }\"\n>\n <div class=\"input-wrapper\">\n <div\n class=\"icon-container left\"\n *ngIf=\"inputProperties.icon && inputProperties.iconPos === 'left'\"\n >\n <app-icon\n [name]=\"inputProperties.icon\"\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </div>\n\n <div class=\"input-field-wrapper\">\n <input\n [type]=\"showPassword ? 'text' : inputProperties.type || 'text'\"\n class=\"dropi-input Body-M-Regular\"\n [ngClass]=\"{\n 'text-password': inputProperties.isPasswordInput && !showPassword,\n 'fixed-label-input': fixedLabel,\n }\"\n [id]=\"inputProperties.id ? inputProperties.id : inputProperties.label\"\n [attr.data-cy]=\"inputProperties.dataCy\"\n [formControl]=\"inputProperties.formControl\"\n [placeholder]=\"inputProperties.placeholder | translate\"\n [maxlength]=\"inputProperties.maxLength\"\n [attr.inputmode]=\"inputProperties.inputMode || 'text'\"\n [disabled]=\"disabled || inputProperties.formControl.disabled\"\n appThousandSeparator\n [applyFormat]=\"\n !!(\n inputProperties?.isMoneyInput ||\n inputProperties?.isThousandSeparator\n )\n \"\n appOnlyNumbers\n [showCurrency]=\"!!inputProperties?.isMoneyInput\"\n [applyOnlyNumbers]=\"!!inputProperties?.isNumericInput\"\n appOnlyLetters\n [applyOnlyLetters]=\"!!inputProperties?.isLettersOnly\"\n />\n\n <label\n class=\"Body-S-Regular label-bottom\"\n *ngIf=\"!fixedLabel\"\n [for]=\"inputProperties.label\"\n >{{ inputProperties.label | translate }}\n <span\n class=\"asterisk\"\n *ngIf=\"\n isRequired() &&\n showAsterisk &&\n (!disabled || !inputProperties.formControl.disabled)\n \"\n >*</span\n >\n </label>\n </div>\n\n <div\n class=\"icon-container right\"\n *ngIf=\"inputProperties.icon && inputProperties.iconPos === 'right'\"\n >\n <app-icon\n [name]=\"inputProperties.icon\"\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </div>\n\n <div\n class=\"icon-container right password-toggle\"\n *ngIf=\"inputProperties.type === 'password'\"\n >\n <app-icon\n [name]=\"showPassword ? 'Visibility-off' : 'Visibility'\"\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-500\"\n (click)=\"showOrHidePassword()\"\n ></app-icon>\n </div>\n </div>\n\n <div\n class=\"helper-text-container\"\n *ngIf=\"\n inputProperties.textHelper &&\n (!inputProperties.showHelperOnlyOnError ||\n (inputProperties.formControl.invalid &&\n inputProperties.formControl.touched))\n \"\n >\n <span class=\"helper-text Label-S-Regular\">{{\n (getErrorMessage() | translate) ||\n (inputProperties.textHelper | translate)\n }}</span>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\n\n@Component({\n selector: \"dropi-wc-switch\",\n templateUrl: \"./dropi-switch.component.html\",\n styleUrls: [\"./dropi-switch.component.scss\"],\n standalone: true,\n})\nexport class DropiSwitchComponent implements OnInit {\n @Input() isChecked: boolean = false;\n @Output() onChange = new EventEmitter<boolean>();\n constructor() {}\n\n ngOnInit() {}\n\n onToggleChange(event: any) {\n this.onChange.emit(event.target.checked);\n }\n}\n","<label class=\"toggle-switch\">\n <input type=\"checkbox\" [checked]=\"isChecked\" (change)=\"onToggleChange($event)\" >\n <span class=\"slider\"></span>\n</label>\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n FormsModule,\n ReactiveFormsModule,\n FormArray,\n FormControl,\n AbstractControl,\n ValidationErrors,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n} from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nexport interface DialogParams {\n type: \"question\" | \"info\" | \"error\" | \"success\" | \"\";\n tittle: string;\n message: string;\n primaryButton: string;\n secondaryButton?: string;\n loadingTitle?: string;\n loadingMessage?: string;\n}\n\nfunction getFormArray(size: number): FormArray {\n const arr = [];\n for (let i = 0; i < size; i++) {\n arr.push(new FormControl(\"\"));\n }\n return new FormArray(arr);\n}\n\n@Component({\n selector: \"otp-send-code\",\n standalone: true,\n imports: [ReactiveFormsModule, CommonModule, FormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: OtpSendCodeComponent,\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: OtpSendCodeComponent,\n multi: true,\n },\n ],\n templateUrl: \"./otp-send-code.component.html\",\n styleUrls: [\"./otp-send-code.component.scss\"],\n})\nexport class OtpSendCodeComponent implements ControlValueAccessor, Validator {\n @ViewChildren(\"inputEl\") inputEls!: QueryList<ElementRef<HTMLInputElement>>;\n @Output() codeCompleted = new EventEmitter<string>();\n @Output() codeAccepted = new EventEmitter<boolean>() as EventEmitter<boolean>;\n @Input() modulename: string;\n @Input() engine: string = \"email\";\n @Input() userID: number = null;\n @Input() emailSend: string = null;\n @Input() typeAlert: number = 1;\n @Input() paramSendCode: any = {};\n @Input() showLabelContact: boolean = false;\n @Input() typeLabelContact: number = 1;\n @Input() labelContact: string = \"\";\n @Input() typeBadge: number = 2;\n\n inputs = getFormArray(6);\n timeLeft: number = 30;\n typeTimeLeft: string = \"segundos\";\n isVisibleAlert = false;\n isMaximumAttempts = false;\n\n paramsDialog: DialogParams = {\n type: \"error\",\n tittle: \"Has alcanzado el número máximo de intentos\",\n message: \"Inténtalo de nuevo en 10 minutos.\",\n primaryButton: \"\",\n secondaryButton: \"\",\n loadingTitle: \"\",\n loadingMessage: \"\",\n };\n\n failedValidation = false;\n loadingValidation = false;\n sendingCode = false;\n emailOTP: string = null;\n errorEmailOTP: boolean = false;\n errorSendOTP: boolean = false;\n shouldShowAlert: boolean = false;\n applySendCode: boolean = false;\n errorMessageValidation: string = \"El código no coincide, vuelve a intentar\";\n showLabelSendContact: boolean = false;\n typeContact: string = \"\";\n\n paramsAlert = {\n state: \"question\",\n message: \"\",\n show: false,\n };\n\n sendTotalSeconds = 30;\n validationTotalSeconds = 0;\n\n constructor(\n @Inject(\"SettingsService\") public settingsService: any,\n @Inject(\"ApiService\") public apiService: any,\n @Inject(\"SegurityCodeService\") public segurityCodeService: any,\n @Inject(\"TwoFactorAuthService\") public twoFactorService: any,\n @Inject(\"LoginService\") public loginService: any,\n private cd: ChangeDetectorRef,\n ) {}\n\n onChange?: (value: string) => void;\n onTouched?: () => void;\n\n ngOnInit() {\n this.sendCode();\n }\n\n sendCode() {\n this.applySendCode = true;\n }\n\n validateCode(otpValue: string) {\n this.codeCompleted.emit(otpValue);\n }\n\n writeValue(value: string): void {\n if (value) this.inputs.setValue(value.split(\"\"));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n isDisabled ? this.inputs.disable() : this.inputs.enable();\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n handleKeyDown(e: KeyboardEvent, idx: number) {}\n handleInput(e: Event, idx: number) {\n this.updateValue();\n }\n handleKeyPress(e: KeyboardEvent, idx: number) {}\n handlePaste(e: ClipboardEvent, idx: number) {}\n handleFocus(e: FocusEvent) {}\n\n updateValue() {\n const otpValue = this.inputs.value.join(\"\");\n this.onChange?.(otpValue);\n if (otpValue.length === 6) this.validateCode(otpValue);\n }\n\n startTimer() {}\n stopTimer() {}\n showSuccessAlert(msg: string) {}\n showErrorAlert(msg: string) {}\n\n // Restaurando métodos faltantes requeridos por el template\n isNumeric(value: string): boolean {\n return /^\\d+$/.test(value);\n }\n\n calculateMinutes(prop: string): number {\n return Math.floor((this as any)[prop] / 60);\n }\n\n calculateSeconds(prop: string): number {\n return (this as any)[prop] % 60;\n }\n}\n","<div class=\"mb-4 custom-alert\" *ngIf=\"typeBadge == 1\">\n <app-alert\n [message]=\"'prueba'\"\n [type]=\"'default'\"\n [state]=\"paramsAlert.state\"\n [dismissable]=\"true\"\n [showButton]=\"false\"\n [buttonText]=\"'Cerrar'\"\n [showAlert]=\"paramsAlert.show\"\n ></app-alert>\n</div>\n\n<div class=\"mb-4\" *ngIf=\"typeBadge == 2\">\n <dropi-alert-legacy\n [visible]=\"paramsAlert.show\"\n [type]=\"paramsAlert.state\"\n [message]=\"paramsAlert.message\"\n [autoClose]=\"true\"\n ></dropi-alert-legacy>\n</div>\n\n<div\n class=\"body-modal\"\n *ngIf=\"\n (engine === 'email' || engine === 'sms') &&\n showLabelSendContact &&\n typeLabelContact == 1 &&\n paramsAlert.show &&\n paramsAlert.state == 'success'\n \"\n>\n <div class=\"options\">\n <h6>\n {{ (engine === 'email' ? 'Email Validation' : 'SMS Validation') | translate }}\n </h6>\n <div class=\"text-top\">\n <p>\n {{\n (engine === 'email'\n ? 'Enter the code that was sent to your email'\n : 'Enter the code that was sent to your phone number'\n ) | translate\n }}\n {{ labelContact }}\n </p>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"engine === '2fa'\">\n <h5>\n {{ 'Two factor authentication' | translate }}\n </h5>\n\n <label class=\"Body-M-Regular\"\n >Ingresa los seis dígitos que genera tu app de autenticación de dos<br />\n factores para continuar.</label\n >\n</div>\n\n<div\n *ngIf=\"\n showLabelSendContact &&\n typeLabelContact == 2 &&\n paramsAlert.show &&\n paramsAlert.state == 'success'\n \"\n class=\"mt-4 mb-4 text-left\"\n>\n <label\n >{{\n 'we sent you a code' | translate: { typeContact: typeContact, labelContact: labelContact }\n }}\n </label>\n <label>{{ 'write it here to continue' | translate }}</label>\n</div>\n\n<div class=\"Body-S-Regular text-center\">{{ 'enter the code' | translate }}</div>\n\n<div class=\"container-otp mt-2\" [ngClass]=\"{ error: failedValidation }\">\n <input\n class=\"otp-input\"\n #inputEl\n *ngFor=\"let input of inputs.controls; let i = index\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"onTouched?.()\"\n (keypress)=\"handleKeyPress($event, i)\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeyDown($event, i)\"\n (paste)=\"handlePaste($event, i)\"\n [formControl]=\"$any(input)\"\n [attr.autocomplete]=\"i === 0 ? 'one-time-code' : null\"\n type=\"text\"\n inputmode=\"numeric\"\n [ngClass]=\"{ success: input.value && isNumeric(input.value) }\"\n />\n</div>\n\n<div class=\"container-failed\" *ngIf=\"failedValidation\">\n <app-icon name=\"Cross-circle\" width=\"18px\" height=\"19px\" color=\"Error-Error-500\"></app-icon>\n <span class=\"Body-S-Regular error pt-1\">\n <span>{{ errorMessageValidation }}</span>\n <span *ngIf=\"this.validationTotalSeconds !== 0\" class=\"timer\">\n {{ calculateMinutes('validationTotalSeconds') }} :\n {{ calculateSeconds('validationTotalSeconds') | number: '2.0' }}</span\n >\n </span>\n</div>\n\n<div class=\"container-failed\" *ngIf=\"loadingValidation\">\n <app-icon name=\"Info\" width=\"18px\" height=\"19px\"></app-icon>\n <span class=\"Body-S-Regular pt-1\">\n <span>{{ 'validating code' | translate }} </span>\n </span>\n</div>\n\n<div class=\"container-failed\" *ngIf=\"sendingCode\">\n <app-icon name=\"Info\" width=\"18px\" height=\"19px\"></app-icon>\n <span class=\"Body-S-Regular pt-1\">\n <span>Enviando código...</span>\n </span>\n</div>\n\n<div *ngIf=\"applySendCode && !errorSendOTP && !isMaximumAttempts\">\n <div class=\"crono\">\n <p>\n <!-- Podrás solicitar otro código en: <span class=\"timer\"> {{ timeLeft }}</span> {{ typeTimeLeft }} -->\n {{ 'you will be able to request another code in' | translate }}\n <span class=\"timer\">\n {{ calculateMinutes('sendTotalSeconds') }} :\n {{ calculateSeconds('sendTotalSeconds') | number: '2.0' }}</span\n >\n </p>\n <!-- <p *ngIf=\"timeLeft === 0\"> -->\n <p *ngIf=\"sendTotalSeconds === 0\">\n {{ \"didn't you receive the code?\" | translate }}\n <!-- <span class=\"resend c-link\" (click)=\"restartTimer()\">Volver a enviar</span> -->\n <span class=\"resend c-link\" (click)=\"sendCode()\">{{ 'resend' | translate }} </span>\n </p>\n </div>\n</div>\n\n<!-- <div class=\"contaienr-alert\">\n <app-alert-modal\n class=\"alert-son\"\n [visible]=\"isVisibleAlert\"\n [params]=\"paramsDialog\"\n [loading]=\"false\"\n (primaryButtonEvent)=\"closeModalError()\"\n ></app-alert-modal>\n</div> -->\n","import {\n Component,\n Input,\n OnInit,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { Validators, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { TextAreaProperties } from \"../../utilities/interfaces/ui/input-interface\";\n\n@Component({\n selector: \"app-dropi-text-area\",\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-text-area.component.html\",\n styleUrls: [\"./dropi-text-area.component.scss\"],\n})\nexport class DropiTextAreaComponent implements OnInit {\n @Input() public textAreaProperties: TextAreaProperties;\n @Input() public disabled: boolean = false;\n @Input() public showObligatoryAsterisk: boolean = false;\n\n ngOnInit() {\n this.validateDisabled();\n }\n\n isRequired(): boolean {\n const control = this.textAreaProperties?.formControl;\n if (!control || !control.validator) return false;\n const validationResult = control.validator({} as any);\n return !!validationResult?.[\"required\"];\n }\n\n validateDisabled() {\n if (this.disabled) {\n this.textAreaProperties?.formControl?.disable();\n } else {\n this.textAreaProperties?.formControl?.enable();\n }\n }\n\n getErrorMessage(): string {\n const control = this.textAreaProperties?.formControl;\n if (control?.errors) {\n if (control.errors[\"required\"]) {\n return \"This field is required\";\n }\n }\n return \"\";\n }\n}\n","<div class=\"textarea-wrapper\">\n <label\n *ngIf=\"textAreaProperties?.label !== ''\"\n [for]=\"textAreaProperties.label\"\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n >{{ textAreaProperties.label | translate }}\n <span\n *ngIf=\"\n isRequired() &&\n showObligatoryAsterisk &&\n (!disabled || !textAreaProperties.formControl.disabled)\n \"\n >*</span\n ></label\n >\n\n <div class=\"textarea-container\">\n <textarea\n [id]=\"textAreaProperties.id ? textAreaProperties.id : textAreaProperties.label\"\n [rows]=\"textAreaProperties.rows ? textAreaProperties.rows : 4\"\n [formControl]=\"textAreaProperties.formControl\"\n [placeholder]=\"textAreaProperties.placeholder | translate\"\n [maxlength]=\"textAreaProperties?.maxLength\"\n [minlength]=\"textAreaProperties?.minLength ?? 0\"\n [style.resize]=\"textAreaProperties?.resize ? textAreaProperties.resize : 'vertical'\"\n class=\"form-control Body-M-Regular\"\n [ngClass]=\"{\n 'form-control-invalid':\n textAreaProperties.formControl?.invalid && textAreaProperties.formControl?.touched,\n 'form-control-valid':\n textAreaProperties.formControl?.valid && textAreaProperties.formControl?.touched\n }\"\n >\n {{ textAreaProperties.formControl.value }}\n </textarea>\n <div class=\"char-counter\">\n {{ textAreaProperties.formControl.value?.length }}/{{ textAreaProperties.maxLength }}\n </div>\n </div>\n <div\n *ngIf=\"\n textAreaProperties.textHelper ||\n (textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched)\n \"\n class=\"form-control-helper\"\n >\n <app-icon\n *ngIf=\"textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\"\n name=\"Warning-circle\"\n width=\"12px\"\n height=\"12px\"\n color=\"Error-Error-500\"\n ></app-icon>\n <span\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n [ngClass]=\"{\n 'invalid-color':\n textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\n }\"\n >{{ (getErrorMessage() | translate) || (textAreaProperties.textHelper | translate) }}</span\n >\n </div>\n</div>\n","import {\n Component,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n HostListener,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, FormControl } from \"@angular/forms\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\n\ninterface Country {\n code: string;\n name: string;\n flag: string;\n maxLength: number;\n}\n\ninterface SelectProperties {\n label: string;\n placeholder: string;\n options: Country[];\n showObligatory?: boolean;\n textHelper?: string;\n}\n\n@Component({\n selector: \"app-dropi-phone-input\",\n templateUrl: \"./dropi-phone-input.component.html\",\n styleUrls: [\"./dropi-phone-input.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class DropiPhoneInputComponent implements OnInit {\n private _CodArea!: string;\n @Input() set CodArea(value: any) {\n this._CodArea = value;\n if (this.countries && Array.isArray(this.countries)) {\n const match = this.countries.find((c) => c.code === value);\n if (match) {\n this.selectedOption = match;\n }\n }\n }\n get CodArea(): string {\n return this._CodArea;\n }\n\n @Input() ngModelPhone = \"\";\n @Input() phoneNumberPlaceholder: string = null;\n @Input() isValidPhone = undefined;\n @Input() public selectedOption: Country;\n @Input() public selectProperties: SelectProperties;\n @Input() validateOnInit = true;\n @Input() disabledInput = false;\n @Input() public formControl: FormControl;\n\n @Output() ngModelChangeCod = new EventEmitter();\n @Output() ngModelChangePhone = new EventEmitter();\n @Output() verifiedField = new EventEmitter();\n @Output() onChangeSelect: EventEmitter<Country> = new EventEmitter();\n\n maxLengthPhone = 10;\n countries: Country[] = [];\n disabled: any;\n isExpanded: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n @Inject(\"UserService\") public userService: any,\n @Inject(\"SettingsService\") public settingsService: any,\n @Inject(\"ApiService\") public apiService: any,\n private readonly translateService: TranslateService,\n ) {}\n\n get hasError(): boolean {\n return (\n this.formControl &&\n this.formControl.invalid &&\n (this.formControl.dirty || this.formControl.touched)\n );\n }\n\n ngOnInit(): void {\n if (this.validateOnInit) this.validtaeLengthPhone();\n if (!this.phoneNumberPlaceholder)\n this.phoneNumberPlaceholder =\n this.translateService.instant(\"Enter phone number\");\n }\n\n cambioCod(option): void {\n this.isExpanded = false;\n this.selectedOption = option;\n this.ngModelPhone = \"\";\n this.ngModelChangeCod.emit(option.code);\n this.validtaeLengthPhone();\n }\n\n cambioPhone(event?: KeyboardEvent): void {\n if (this.ngModelPhone?.length === 0 && event?.key === \"Backspace\") return;\n this.ngModelChangePhone.emit(this.ngModelPhone);\n this.validtaeLengthPhone();\n }\n\n validtaeLengthPhone(): void {\n const country = this.countries.find((c) => c.code === this.CodArea);\n if (country) {\n this.maxLengthPhone = country.maxLength;\n if (this.ngModelPhone?.length === this.maxLengthPhone) {\n this.isValidPhone = true;\n this.verifiedField.emit(true);\n } else {\n this.isValidPhone = false;\n this.verifiedField.emit(false);\n }\n } else {\n this.isValidPhone = false;\n }\n }\n\n handlePaste(event: ClipboardEvent): void {\n event.preventDefault();\n const pastedText = event.clipboardData?.getData(\"text\") || \"\";\n const sanitizedText = pastedText.replace(/\\D+/g, \"\");\n this.ngModelPhone = sanitizedText;\n this.cambioPhone();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n closeDropdown(event?: MouseEvent): void {\n if (event && !this.elementRef.nativeElement.contains(event.target)) {\n this.isExpanded = false;\n }\n }\n\n showOptions() {\n if (this.disabled) return;\n this.isExpanded = !this.isExpanded;\n }\n}\n","<div class=\"dropi-input-phone\" [ngClass]=\"{ disabled: disabled }\">\n <label\n class=\"dropi-input-phone__label Label-S-SemiBold\"\n *ngIf=\"selectProperties?.label\"\n >\n {{ selectProperties.label | translate }}\n <span\n *ngIf=\"selectProperties.showObligatory\"\n class=\"dropi-input-phone__obligatory\"\n >*</span\n >\n </label>\n\n <div class=\"dropi-input-phone__container-select\">\n <!-- Selector de país -->\n <div\n class=\"dropi-input-phone__select\"\n [ngClass]=\"{ 'is-expanded': isExpanded, disabled: disabled }\"\n (click)=\"showOptions()\"\n >\n <div class=\"dropi-input-phone__selected\">\n <div class=\"dropi-input-phone__flag-container\" *ngIf=\"selectedOption\">\n <img\n [src]=\"selectedOption.flag\"\n [alt]=\"selectedOption.name\"\n class=\"dropi-input-phone__flag\"\n />\n <span class=\"dropi-input-phone__code Body-M-Medium\"\n >+{{ selectedOption.code }}</span\n >\n </div>\n <div class=\"dropi-input-phone__placeholder\" *ngIf=\"!selectedOption\">\n {{ selectProperties?.placeholder || \"Seleccionar\" | translate }}\n </div>\n </div>\n\n <app-icon\n [name]=\"isExpanded ? 'Dropdown-up' : 'Dropdown-down'\"\n width=\"24px\"\n height=\"24px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n\n <!-- Lista de opciones desplegable -->\n <div class=\"dropi-input-phone__options\" *ngIf=\"isExpanded\">\n <div\n *ngFor=\"let option of countries\"\n class=\"dropi-input-phone__option\"\n [ngClass]=\"{ selected: selectedOption?.code === option.code }\"\n (click)=\"cambioCod(option); $event.stopPropagation()\"\n >\n <img\n [src]=\"option.flag\"\n [alt]=\"option.name\"\n class=\"dropi-input-phone__flag\"\n />\n <span class=\"dropi-input-phone__option-name Body-M-Regular\">{{\n option.name\n }}</span>\n <span class=\"dropi-input-phone__option-code Body-M-Regular\"\n >(+{{ option.code }})</span\n >\n </div>\n </div>\n </div>\n\n <!-- Input de número de teléfono -->\n <div class=\"dropi-input-phone__input-container\">\n <input\n type=\"text\"\n class=\"dropi-input-phone__input Body-M-Regular\"\n [ngClass]=\"{\n 'is-invalid': isValidPhone === false || hasError,\n }\"\n [(ngModel)]=\"ngModelPhone\"\n (input)=\"cambioPhone()\"\n (keyup)=\"cambioPhone($event)\"\n (change)=\"cambioPhone()\"\n [placeholder]=\"phoneNumberPlaceholder\"\n (paste)=\"handlePaste($event)\"\n [maxlength]=\"maxLengthPhone\"\n [disabled]=\"disabledInput\"\n />\n </div>\n </div>\n\n <span\n class=\"dropi-input-phone__helper Label-S-Regular\"\n *ngIf=\"selectProperties?.textHelper\"\n >{{ selectProperties.textHelper | translate }}</span\n >\n</div>\n","import { Component, EventEmitter, Input, Output, Inject } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-input-toggle\",\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule],\n templateUrl: \"./input-toggle.component.html\",\n styleUrls: [\"./input-toggle.component.scss\"],\n})\nexport class InputToggleComponent {\n @Input() data: boolean = false;\n @Input() config: any = {\n labelText: \"\",\n formControl: null,\n };\n @Input() elemnto: string =\n \"toggle-\" + Math.random().toString(36).substring(7);\n @Output() dataChange = new EventEmitter<boolean>();\n\n emitValue() {\n this.data = !this.data;\n this.dataChange.emit(this.data);\n }\n}\n","<ng-container *ngIf=\"config.param === 'toggle'\">\n <div class=\"form-check form-switch form-switch-md mb-3\" dir=\"ltr\">\n <input\n [attr.id]=\"elemnto\"\n (click)=\"emitValue()\"\n id=\"elemnto\"\n *ngIf=\"data\"\n class=\"form-check-input\"\n [attr.type]=\"config.type\"\n [(ngModel)]=\"data\"\n [formControl]=\"config.formControl\"\n [attr.active]=\"data\"\n [attr.formControlName]=\"config.name\"\n checked\n />\n\n <input\n (click)=\"emitValue()\"\n *ngIf=\"!data\"\n [attr.id]=\"elemnto\"\n id=\"elemnto\"\n class=\"form-check-input\"\n [attr.type]=\"config.type\"\n [(ngModel)]=\"data\"\n [formControl]=\"config.formControl\"\n [attr.active]=\"data\"\n [attr.formControlName]=\"config.name\"\n />\n\n <label class=\"form-check-label\" for=\"elemnto\" (click)=\"emitValue()\">\n {{ config.labelText | translate }}</label\n >\n </div>\n</ng-container>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n AfterViewInit,\n OnDestroy,\n TemplateRef,\n ContentChild,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\nexport interface CarouselResponsiveOptions {\n breakpoint: string;\n numVisible: number;\n numScroll: number;\n}\n\n@Component({\n selector: 'dropi-carousel',\n standalone: true,\n imports: [CommonModule, IconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dropi-carousel.component.html',\n styleUrls: ['./dropi-carousel.component.scss'],\n})\nexport class DropiCarouselComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() value: any[] = [];\n @Input() page: number = 0;\n @Input() numVisible: number = 1;\n @Input() numScroll: number = 1;\n @Input() responsiveOptions?: CarouselResponsiveOptions[];\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n @Input() verticalViewPortHeight: string = '300px';\n @Input() contentClass: string = '';\n @Input() indicatorsContentClass: string = '';\n @Input() showIndicators: boolean = true;\n @Input() showNavigators: boolean = true;\n @Input() autoplayInterval: number = 0;\n @Input() circular: boolean = false;\n\n @Output() pageChange = new EventEmitter<number>();\n @Output() onPage = new EventEmitter<any>();\n\n @ContentChild('item', { read: TemplateRef }) itemTemplate?: TemplateRef<any>; // ✅ Opcional, no obligatorio\n\n currentPage: number = 0;\n numVisibleItems: number = 1;\n numScrollItems: number = 1;\n isAnimating: boolean = true;\n totalPagesArray: number[] = [];\n transformValue: string = 'translateX(0%)';\n itemFlexBasis: string = '0 0 100%';\n\n private autoplayTimer?: any;\n private resizeListener?: any;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.currentPage = this.page;\n this.updateResponsiveOptions();\n this.updateTotalPages();\n this.updateTransform();\n\n // Listen to window resize\n this.resizeListener = () => {\n this.updateResponsiveOptions();\n this.updateTransform();\n this.cdr.markForCheck();\n };\n window.addEventListener('resize', this.resizeListener);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.updateResponsiveOptions();\n this.updateTotalPages();\n this.updateTransform();\n this.cdr.detectChanges();\n this.startAutoplay();\n }, 100);\n }\n\n ngOnDestroy() {\n this.stopAutoplay();\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n }\n }\n\n updateResponsiveOptions() {\n this.numVisibleItems = this.numVisible;\n this.numScrollItems = this.numScroll;\n\n if (this.responsiveOptions && this.responsiveOptions.length > 0) {\n const windowWidth = window.innerWidth;\n\n // Ordenar de menor a mayor para aplicar desde el breakpoint más pequeño\n const sorted = [...this.responsiveOptions].sort((a, b) => {\n return parseInt(a.breakpoint) - parseInt(b.breakpoint);\n });\n\n // Aplicar la configuración correspondiente al tamaño de pantalla\n for (let option of sorted) {\n if (windowWidth <= parseInt(option.breakpoint)) {\n this.numVisibleItems = option.numVisible || 1;\n this.numScrollItems = option.numScroll || 1;\n break; // Detener en el primer match\n }\n }\n }\n\n this.itemFlexBasis = `0 0 ${100 / this.numVisibleItems}%`;\n this.updateTotalPages();\n }\n\n updateTransform() {\n if (!this.value || this.value.length === 0) {\n this.transformValue = this.orientation === 'vertical' ? 'translateY(0%)' : 'translateX(0%)';\n return;\n }\n\n const itemsToShow = this.numVisibleItems;\n const totalItems = this.value.length;\n\n // Calcula el índice del primer item basado en la página actual y el scroll\n // Para móvil con numVisible=1 y numScroll=1, cada página muestra 1 item\n const itemsScrolled = this.currentPage * this.numScrollItems;\n\n // Asegura que no se desborde más allá del último item visible completo\n const maxScroll = Math.max(0, totalItems - itemsToShow);\n const safeScroll = Math.min(itemsScrolled, maxScroll);\n\n // Calcula el porcentaje de desplazamiento\n // Cada item ocupa (100 / numVisibleItems)% del contenedor\n // Por ejemplo: si numVisible=1, cada item es 100%\n // Si numVisible=3, cada item es 33.33%\n const itemWidth = 100 / this.numVisibleItems;\n const translateValue = -(safeScroll * itemWidth);\n\n this.transformValue =\n this.orientation === 'vertical'\n ? `translateY(${translateValue}%)`\n : `translateX(${translateValue}%)`;\n }\n\n updateTotalPages() {\n if (!this.value || this.value.length <= this.numVisibleItems) {\n this.totalPagesArray = [0];\n return;\n }\n\n const totalItems = this.value.length;\n const itemsToShow = this.numVisibleItems;\n const itemsPerScroll = this.numScrollItems;\n\n // Calcula cuántas páginas son necesarias\n // Para asegurar que todas las cards se muestren completas\n const remainingItems = totalItems - itemsToShow;\n const totalPages = Math.ceil(remainingItems / itemsPerScroll) + 1;\n\n this.totalPagesArray = Array(totalPages).fill(0);\n }\n\n navForward(event: Event) {\n event.preventDefault();\n this.stopAutoplay();\n\n if (this.circular || !this.isLastPage()) {\n this.isAnimating = true;\n this.currentPage = this.circular && this.isLastPage() ? 0 : this.currentPage + 1;\n this.updateTransform();\n this.emitPageChange();\n\n setTimeout(() => {\n this.isAnimating = false;\n this.cdr.markForCheck();\n }, 500);\n }\n\n this.startAutoplay();\n }\n\n navBackward(event: Event) {\n event.preventDefault();\n this.stopAutoplay();\n\n if (this.circular || !this.isFirstPage()) {\n this.isAnimating = true;\n this.currentPage =\n this.circular && this.isFirstPage()\n ? this.totalPagesArray.length - 1\n : this.currentPage - 1;\n this.updateTransform();\n this.emitPageChange();\n\n setTimeout(() => {\n this.isAnimating = false;\n this.cdr.markForCheck();\n }, 500);\n }\n\n this.startAutoplay();\n }\n\n onDotClick(index: number) {\n this.stopAutoplay();\n this.isAnimating = true;\n this.currentPage = index;\n this.updateTransform();\n this.emitPageChange();\n\n setTimeout(() => {\n this.isAnimating = false;\n this.cdr.markForCheck();\n }, 500);\n\n this.startAutoplay();\n }\n\n isFirstPage(): boolean {\n return this.currentPage === 0;\n }\n\n isLastPage(): boolean {\n return this.currentPage >= this.totalPagesArray.length - 1;\n }\n\n startAutoplay() {\n if (this.autoplayInterval > 0) {\n this.autoplayTimer = setInterval(() => {\n if (this.circular || !this.isLastPage()) {\n this.isAnimating = true;\n this.currentPage = this.circular && this.isLastPage() ? 0 : this.currentPage + 1;\n this.updateTransform();\n this.emitPageChange();\n\n setTimeout(() => {\n this.isAnimating = false;\n this.cdr.markForCheck();\n }, 500);\n }\n }, this.autoplayInterval);\n }\n }\n\n stopAutoplay() {\n if (this.autoplayTimer) {\n clearInterval(this.autoplayTimer);\n this.autoplayTimer = null;\n }\n }\n\n private emitPageChange() {\n this.pageChange.emit(this.currentPage);\n this.onPage.emit({\n page: this.currentPage,\n });\n this.cdr.markForCheck();\n }\n}\n","<div class=\"dropi-carousel-container\" [class.vertical]=\"orientation === 'vertical'\">\n <div class=\"dropi-carousel-content\">\n <button\n *ngIf=\"showNavigators\"\n class=\"dropi-carousel-nav dropi-carousel-prev\"\n [disabled]=\"!circular && isFirstPage()\"\n (click)=\"navBackward($event)\"\n [attr.aria-label]=\"'Anterior'\"\n >\n <app-icon name=\"Dropdown-left\" width=\"24px\" height=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </button>\n\n <div class=\"dropi-carousel-items-content\" #itemsContainer>\n <div\n class=\"dropi-carousel-items-container\"\n [style.transform]=\"transformValue\"\n [style.transition]=\"isAnimating ? 'transform 0.5s ease' : 'none'\"\n >\n <div\n *ngFor=\"let item of value; let i = index\"\n class=\"dropi-carousel-item\"\n [style.flex]=\"itemFlexBasis\"\n >\n <ng-container *ngIf=\"itemTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\">\n </ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <div class=\"dropi-default-item\">\n {{ item | json }}\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n\n <button\n *ngIf=\"showNavigators\"\n class=\"dropi-carousel-nav dropi-carousel-next\"\n [disabled]=\"!circular && isLastPage()\"\n (click)=\"navForward($event)\"\n [attr.aria-label]=\"'Siguiente'\"\n >\n <app-icon name=\"Dropdown-Right\" width=\"24px\" height=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </button>\n </div>\n\n <ul class=\"dropi-carousel-indicators\" *ngIf=\"showIndicators\">\n <li\n *ngFor=\"let page of totalPagesArray; let i = index\"\n [class.active]=\"i === currentPage\"\n (click)=\"onDotClick(i)\"\n >\n <button type=\"button\" [attr.aria-label]=\"'Ir a página ' + (i + 1)\"></button>\n </li>\n </ul>\n</div>\n","import { Component, Input, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'dropi-youtube-lazy-video',\n standalone: true,\n imports: [CommonModule, IconComponent],\n schemas: [NO_ERRORS_SCHEMA],\n templateUrl: './dropi-youtube-lazy-video.component.html',\n styleUrls: ['./dropi-youtube-lazy-video.component.scss'],\n})\nexport class DropiYoutubeLazyVideoComponent {\n @Input() videoId!: string;\n @Input() thumbnailSrc: string = '';\n @Input() videoTitle: string = '';\n\n isPlaying = false;\n safeVideoUrl: SafeResourceUrl | null = null;\n\n constructor(private sanitizer: DomSanitizer) {}\n\n get thumbnail(): string {\n return `/assets/images/${this.thumbnailSrc}.png`;\n }\n\n playVideo(): void {\n if (!this.safeVideoUrl) {\n const timestamp = Date.now();\n const url = `https://www.youtube.com/embed/${this.videoId}?autoplay=1&rel=0&modestbranding=1&enablejsapi=1&t=${timestamp}`;\n this.safeVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);\n console.log('Created video URL:', url);\n }\n\n this.isPlaying = true;\n }\n\n onImageError(event: Event): void {\n console.error('Error loading thumbnail image:', this.thumbnail);\n console.error('Event:', event);\n }\n}\n","<div class=\"video-wrapper\" [class.playing]=\"isPlaying\">\n <!-- Thumbnail -->\n <div *ngIf=\"!isPlaying\" class=\"thumbnail\" (click)=\"playVideo()\">\n <img [src]=\"thumbnail\" [alt]=\"'Video thumbnail ' + videoId\" (error)=\"onImageError($event)\" />\n <button class=\"play-button\" aria-label=\"Reproducir video\">\n <app-icon name=\"Play\" width=\"17px\" height=\"21px\" color=\"Neutral-White\"></app-icon>\n </button>\n </div>\n\n <iframe\n *ngIf=\"isPlaying && safeVideoUrl\"\n [attr.src]=\"safeVideoUrl\"\n [title]=\"videoTitle\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerpolicy=\"strict-origin-when-cross-origin\"\n allowfullscreen\n loading=\"lazy\"\n ></iframe>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n HostListener,\n ElementRef,\n ViewChildren,\n QueryList,\n SimpleChanges,\n Inject,\n Pipe,\n PipeTransform,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule, DatePipe } from \"@angular/common\";\nimport { FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { DropiPaginatorComponent } from \"../dropi-paginator/dropi-paginator.component\";\nimport {\n DropiTableAction,\n DropiTableBackendParams,\n DropiTableColumn,\n DropiTableConfiguration,\n DropiTableRow,\n SortParams,\n TypedField,\n} from \"../../utilities/interfaces/ui/dropi-table.interface\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { DropiCheckboxComponent } from \"../dropi-checkbox/dropi-checkbox.component\";\nimport { DropiTagComponent } from \"../dropi-tag/dropi-tag.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { debounceTime } from \"rxjs/operators\";\nimport { InputComponent } from \"../input/input.component\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CountryFlagsComponent } from \"../country-flags/country-flags.component\";\nimport { DropiAvatarsComponent } from \"../dropi-avatars/dropi-avatars.component\";\n\n@Component({\n selector: \"currency\",\n standalone: true,\n template: \"{{value}}\",\n})\nexport class CurrencyComponentStub {\n @Input() value: any;\n}\n\n@Pipe({\n name: \"carrierImageUrl\",\n standalone: true,\n})\nexport class CarrierImageUrlStub implements PipeTransform {\n transform(value: any): string {\n return value;\n }\n}\n\n@Component({\n selector: \"app-spinner\",\n standalone: true,\n template: \"Loading...\",\n})\nexport class SpinnerComponentStub {}\n\n@Component({\n selector: \"app-dropi-table\",\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DropiPaginatorComponent,\n IconComponent,\n DropiCheckboxComponent,\n CurrencyComponentStub,\n DatePipe,\n DropiTagComponent,\n CarrierImageUrlStub,\n TranslateModule,\n InputComponent,\n SpinnerComponentStub,\n TooltipModule,\n CountryFlagsComponent,\n DropiAvatarsComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-table.component.html\",\n styleUrls: [\"./dropi-table.component.scss\"],\n})\nexport class DropiTableComponent implements OnInit {\n @Input() public headers: DropiTableColumn[] = [];\n @Input() public data: DropiTableRow[] = [];\n @Input() public childData: DropiTableRow[] = [];\n @Input() public visibleRowsChildrens: DropiTableRow[] = [];\n @Input() public dropiTableConfiguration: DropiTableConfiguration;\n @Input() public dropiTableBackendParams: DropiTableBackendParams;\n @Input() public loading: boolean = false;\n @Input() isCursorPagination: boolean = false;\n @Output() rowsSelected = new EventEmitter<DropiTableRow[]>();\n @Output() actionClicked = new EventEmitter<{\n row: DropiTableRow;\n action: DropiTableAction;\n }>();\n @Output() onPageChange = new EventEmitter<number>();\n @Output() onSizeChange = new EventEmitter<number>();\n @Output() onSortChange = new EventEmitter<SortParams>();\n @Output() onSearchChange = new EventEmitter<string>();\n @Output() expandChildren = new EventEmitter<{ row: DropiTableRow }>();\n @ViewChildren(DropiCheckboxComponent)\n checkboxes!: QueryList<DropiCheckboxComponent>;\n\n public currentPage: number = 1;\n public totalPages: number = 1;\n public dataToShow: DropiTableRow[] = [];\n private sortColumn: string = \"\";\n public sortAsc: boolean = true;\n public hidePaginator: boolean = false;\n public pageSize: number = 10;\n private selectedRows: DropiTableRow[] = [];\n private subscriptions: Subscription = new Subscription();\n private filterEvent: Subject<string> = new Subject();\n public searchTerm: FormControl = new FormControl();\n public hasActions: boolean = false;\n public hasShortActions: boolean = false;\n\n constructor(@Inject(ElementRef) private el: ElementRef) {}\n\n ngOnInit(): void {\n this.hasActions =\n (this.dropiTableConfiguration?.rowActions &&\n this.dropiTableConfiguration.rowActions.length > 0) ||\n this.dropiTableConfiguration?.showActionsPerRow;\n\n if (!this.dropiTableConfiguration?.backendPagination) {\n this.updateData();\n if (this.dropiTableConfiguration?.showSearch) {\n this.filterEventSusbscribe();\n this.subscribeToSearch();\n }\n return;\n }\n this.setBackendParams();\n if (\n this.dropiTableConfiguration?.showSearch &&\n this.dropiTableConfiguration?.backendPagination\n ) {\n this.subscribeToSearchBackend();\n }\n }\n\n setBackendParams() {\n this.totalPages = this.dropiTableBackendParams?.totalPages || 1;\n this.currentPage = this.dropiTableBackendParams?.currentPage || 1;\n this.pageSize = this.dropiTableBackendParams?.pageSize || 10;\n this.dataToShow = this.data;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"data\"]) {\n if (!this.dropiTableConfiguration?.backendPagination) {\n this.updateData();\n return;\n }\n this.setBackendParams();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n\n updateData() {\n this.setPagination();\n this.pageData();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n handleClickOutside(event: MouseEvent) {\n if (!this.hasActions) return;\n this.hideMenu();\n }\n\n setPagination() {\n if (!this.dropiTableConfiguration?.showPaginator) return;\n if (!this.dropiTableConfiguration?.pageSizeConfiguration) {\n this.dropiTableConfiguration.pageSizeConfiguration = [5, 10, 20];\n }\n this.pageSize = this.dropiTableConfiguration.pageSizeConfiguration[0];\n }\n\n subscribeToSearch() {\n this.subscriptions.add(\n this.searchTerm.valueChanges.subscribe((inputValue) => {\n this.currentPage = 1;\n this.filterEvent.next(inputValue);\n }),\n );\n }\n\n subscribeToSearchBackend() {\n this.subscriptions.add(\n this.searchTerm.valueChanges\n .pipe(debounceTime(500))\n .subscribe((inputValue: string) => {\n this.onSearchChange.emit(inputValue || \"\");\n }),\n );\n }\n\n filterEventSusbscribe() {\n this.subscriptions.add(\n this.filterEvent\n .pipe(debounceTime(500))\n .subscribe((inputValue: string) => {\n this.filteredData(inputValue);\n }),\n );\n }\n\n getTotalPages() {\n this.totalPages = Math.ceil((this.data?.length || 0) / this.pageSize);\n }\n\n onSort(column: DropiTableColumn) {\n if (!column?.sortable) return;\n this.sortAsc = this.sortColumn === column.key ? !this.sortAsc : false;\n this.sortColumn = column.key;\n if (!this.dropiTableConfiguration?.backendPagination) {\n this.sortData();\n return;\n }\n this.onSortChange.emit({ column: this.sortColumn, asc: this.sortAsc });\n }\n\n pageData() {\n if (!this.dropiTableConfiguration?.showPaginator) {\n this.dataToShow = this.data;\n return;\n }\n const start = (this.currentPage - 1) * this.pageSize;\n this.dataToShow = (this.data || []).slice(start, start + this.pageSize);\n this.hidePaginator = false;\n this.getTotalPages();\n }\n\n sortData() {\n this.hideMenu();\n if (!this.sortColumn) return this.dataToShow;\n this.data.sort((a, b) => {\n const valA = a[this.sortColumn]?.value;\n const valB = b[this.sortColumn]?.value;\n return (valA > valB ? 1 : -1) * (this.sortAsc ? 1 : -1);\n });\n this.pageData();\n }\n\n onSelectRow(checkValue: boolean, row: DropiTableRow) {\n if (checkValue) {\n this.selectedRows.push(row);\n } else {\n this.selectedRows = this.selectedRows.filter((r) => r !== row);\n }\n this.rowsSelected.emit(this.selectedRows);\n }\n\n goToPage(page: number) {\n if (!this.dropiTableConfiguration?.backendPagination) {\n this.currentPage = Number(page);\n this.pageData();\n return;\n }\n this.onPageChange.emit(page);\n }\n\n filteredData(inputValue: string) {\n if (!inputValue) {\n this.pageData();\n return;\n }\n\n this.hidePaginator = true;\n this.dataToShow = this.data.filter((row) => {\n return Object.values(row).some(\n (val: any) =>\n val &&\n val.value &&\n String(val.value).toLowerCase().includes(inputValue.toLowerCase()),\n );\n });\n }\n\n onChangePageSize(event: any) {\n const value = event?.target?.value || event;\n this.pageSize = Number(value);\n this.currentPage = 1;\n if (!this.dropiTableConfiguration?.backendPagination) {\n this.pageData();\n } else {\n this.onSizeChange.emit(this.pageSize);\n }\n }\n\n toggleActions(index: number, ref?: any) {\n this.dataToShow.forEach((item, i) => {\n if (i === index) item.showActions = !item.showActions;\n else item.showActions = false;\n });\n }\n\n onActionClicked(\n row: DropiTableRow,\n action: DropiTableAction,\n event?: any,\n arg4?: any,\n ) {\n this.actionClicked.emit({ row, action });\n this.hideMenu();\n }\n\n hideMenu() {\n this.dataToShow.forEach((item) => {\n item.showActions = false;\n });\n }\n\n onSelectAll(selected: boolean) {\n this.dataToShow.forEach((row) => (row.selected = selected));\n this.selectedRows = selected ? [...this.dataToShow] : [];\n this.rowsSelected.emit(this.selectedRows);\n }\n\n toggleTableRow(row: any, arg2?: any, arg3?: any, arg4?: any) {\n row.expanded = !row.expanded;\n if (row.expanded) this.expandChildren.emit({ row });\n }\n}\n","<ng-container *ngIf=\"dropiTableConfiguration\">\n <div class=\"table-container\" *ngIf=\"!loading\">\n <div class=\"search-container\" *ngIf=\"dropiTableConfiguration?.showSearch\">\n <h3 class=\"table-title\">\n {{ dropiTableConfiguration?.title | translate }}\n </h3>\n <app-input\n [inputProperties]=\"{\n label: 'Search',\n placeholder: 'Search',\n formControl: searchTerm,\n }\"\n ></app-input>\n </div>\n\n <div\n class=\"table-wrapper\"\n [ngClass]=\"hasActions ? 'width-actions' : 'width-no-actions'\"\n >\n <table\n class=\"custom-table\"\n [ngClass]=\"{\n 'has-checkbox': dropiTableConfiguration?.showCheckbox,\n }\"\n >\n <thead>\n <tr>\n <th\n class=\"checkbox-header\"\n *ngIf=\"dropiTableConfiguration?.showCheckbox\"\n >\n <app-dropi-checkbox\n (onChange)=\"onSelectAll($event)\"\n ></app-dropi-checkbox>\n </th>\n <th\n *ngFor=\"let header of headers\"\n (click)=\"onSort(header)\"\n [ngClass]=\"{\n sortable: header?.sortable,\n 'low-opacity': header?.disabledColumn,\n 'highlight-column': header?.highlightColumn,\n }\"\n [style.text-align]=\"header?.align || 'left'\"\n >\n <div class=\"headers-container\">\n <ng-container *ngIf=\"header?.imageUrl\">\n <img [src]=\"header?.imageUrl\" />\n </ng-container>\n <div class=\"headers\">\n <span>\n {{ header.label | translate }}\n </span>\n\n <div *ngIf=\"header?.sortable\" class=\"order-icons\">\n <app-icon\n name=\"Caret-up\"\n width=\"12px\"\n height=\"12px\"\n [color]=\"sortAsc ? 'Gray-Gray-500' : 'Gray-Gray-200'\"\n ></app-icon>\n <app-icon\n name=\"Caret-down\"\n width=\"12px\"\n height=\"12px\"\n [color]=\"!sortAsc ? 'Gray-Gray-500' : 'Gray-Gray-200'\"\n ></app-icon>\n </div>\n </div>\n </div>\n </th>\n <th class=\"actions-header actions\" *ngIf=\"hasActions\">\n {{ \"Actions\" | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let row of dataToShow; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"recursiveRowTemplate\"\n [ngTemplateOutletContext]=\"{\n rowData: row,\n level: 0,\n parentIndex: i,\n childIndex: null,\n }\"\n ></ng-container>\n </ng-container>\n </tbody>\n </table>\n <div class=\"empty-table\" *ngIf=\"dataToShow?.length === 0 && !loading\">\n <div class=\"message-container\">\n <img src=\"\\assets\\utils\\icon-not-found.png\" alt=\"empty\" />\n <div class=\"message\">\n {{ dropiTableConfiguration.emptyMessage ?? \"no data\" | translate }}\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination\"\n *ngIf=\"\n dropiTableConfiguration?.showPaginator && !hidePaginator && !loading\n \"\n >\n <div class=\"page-size-selector\">\n <label>{{ \"Show\" | translate }}</label>\n <select (change)=\"onChangePageSize($event)\">\n <option\n *ngFor=\"let size of dropiTableConfiguration?.pageSizeConfiguration\"\n [selected]=\"pageSize === size\"\n [value]=\"size\"\n >\n {{ size }}\n </option>\n </select>\n </div>\n\n <app-dropi-paginator\n [totalPages]=\"totalPages\"\n [currentPage]=\"currentPage\"\n [isNotTotalPages]=\"isCursorPagination\"\n (pageChange)=\"goToPage($event)\"\n ></app-dropi-paginator>\n </div>\n </div>\n\n <!-- Template recursivo para filas multinivel -->\n <ng-template\n #recursiveRowTemplate\n let-rowData=\"rowData\"\n let-level=\"level\"\n let-parentIndex=\"parentIndex\"\n let-childIndex=\"childIndex\"\n >\n <tr class=\"table-row\" [ngClass]=\"{ 'sub-row': level > 0 }\">\n <td *ngIf=\"dropiTableConfiguration?.showCheckbox\">\n <app-dropi-checkbox\n [disabled]=\"rowData?.disableCheckbox\"\n [checked]=\"rowData?.selected\"\n (onChange)=\"onSelectRow($event, rowData)\"\n ></app-dropi-checkbox>\n </td>\n <td\n *ngFor=\"let header of headers\"\n [ngClass]=\"{\n 'low-opacity': header?.disabledColumn,\n 'highlight-column': header?.highlightColumn,\n }\"\n >\n <div class=\"cell-content\" [style.text-align]=\"header?.align || 'left'\">\n <ng-container\n [ngTemplateOutlet]=\"labelTypes\"\n [ngTemplateOutletContext]=\"{\n item: rowData[header.key],\n }\"\n ></ng-container>\n </div>\n </td>\n <td\n class=\"action-button actions\"\n [ngClass]=\"{\n 'short-actions': dropiTableConfiguration?.showActionsPerRow\n ? rowData.actionsPerRow && rowData.actionsPerRow.length <= 3\n : dropiTableConfiguration?.rowActions &&\n dropiTableConfiguration.rowActions.length <= 3,\n }\"\n *ngIf=\"hasActions\"\n >\n <div\n *ngIf=\"\n dropiTableConfiguration?.showActionsPerRow\n ? rowData?.actionsPerRow && rowData.actionsPerRow.length > 3\n : dropiTableConfiguration?.rowActions &&\n dropiTableConfiguration.rowActions.length > 3;\n else shortActions\n \"\n #actionsMenu\n >\n <app-icon\n class=\"action-icon\"\n (click)=\"toggleActions(level === 0 ? parentIndex : parentIndex)\"\n name=\"Menu-dots-vertical\"\n width=\"24px\"\n height=\"24px\"\n color=\"Gray-Gray-500\"\n >\n </app-icon>\n\n <div class=\"actions-menu fade-in\" *ngIf=\"rowData.showActions\">\n <div\n class=\"action-item\"\n *ngFor=\"\n let action of dropiTableConfiguration?.showActionsPerRow\n ? rowData.actionsPerRow\n : dropiTableConfiguration?.rowActions\n \"\n (click)=\"onActionClicked(rowData, action, $event)\"\n >\n <app-icon\n [name]=\"action.icon\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"action.iconColor || 'Gray-Gray-200'\"\n ></app-icon>\n {{ action.label }}\n </div>\n </div>\n </div>\n\n <ng-template #shortActions>\n <div\n *ngFor=\"\n let action of dropiTableConfiguration?.showActionsPerRow\n ? rowData.actionsPerRow\n : dropiTableConfiguration?.rowActions\n \"\n >\n <app-icon\n class=\"action-icon\"\n [name]=\"action.icon\"\n width=\"24px\"\n height=\"24px\"\n [color]=\"action.iconColor || 'Gray-Gray-500'\"\n (click)=\"onActionClicked(rowData, action, $event)\"\n [pTooltip]=\"action.label | translate\"\n tooltipPosition=\"bottom\"\n tooltipStyleClass=\"my-custom-tooltip\"\n ></app-icon>\n </div>\n </ng-template>\n \n <button\n *ngIf=\"\n rowData.tot_child?.value &&\n rowData.tot_child.value != 0 &&\n rowData.tot_child.value != null\n \"\n (click)=\"toggleTableRow(rowData, level > 0)\"\n class=\"child-arrow-btn\"\n [title]=\"\n 'Hijos: ' +\n (rowData.children?.length || 0) +\n ' | Expandido: ' +\n (rowData.expanded || false)\n \"\n >\n <i class=\"fas fa-chevron-down\" [class.rotated]=\"rowData.expanded\"></i>\n </button>\n </td>\n </tr>\n\n <!-- Renderizado recursivo de children -->\n <ng-container *ngIf=\"rowData.children && rowData.expanded\">\n <ng-container *ngFor=\"let childRow of rowData.children; let j = index\">\n <ng-container\n [ngTemplateOutlet]=\"recursiveRowTemplate\"\n [ngTemplateOutletContext]=\"{\n rowData: childRow,\n level: level + 1,\n parentIndex: parentIndex,\n childIndex: j,\n }\"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <!-- Tipos de celda -->\n\n <ng-template #labelTypes let-item=\"item\" let-type=\"type\">\n <ng-container [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'text'\">\n <div class=\"container\">\n <span class=\"table-labels\">\n {{ item.value | translate }}\n </span>\n <span class=\"table-labels\" *ngIf=\"item?.subtext\">\n {{ item.subtext | translate }}\n </span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'date'\">\n <div class=\"date-label\">\n <span>{{ item.value | date: \"dd-MM-yyyy\" }} </span>\n <span>{{ item.value | date: \"hh:mm a\" }} </span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'tag'\">\n <app-dropi-tag\n type=\"secondary\"\n [state]=\"item.typeTag\"\n showIcon=\"false\"\n [text]=\"item.value | translate\"\n >\n </app-dropi-tag>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'carrier'\">\n <div class=\"carrier-label\">\n <img [src]=\"item.value | carrierImageUrl\" alt=\"carrier\" />\n <span>{{ item.value | translate | titlecase }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'currency'\">\n <currency class=\"table-labels\" [value]=\"item.value\"></currency>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'currencyColorMode'\">\n <currency\n class=\"table-labels currency-color-mode\"\n [value]=\"item.value\"\n [ngStyle]=\"{ '--label-color-table': item.colorLabel }\"\n ></currency>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'textColorMode'\">\n <span\n [ngStyle]=\"{ '--label-color-table': item.colorLabel }\"\n class=\"table-labels currency-color-mode\"\n >{{ item.value | translate }}</span\n >\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'textIcon'\">\n <div\n class=\"text-icon-label\"\n [ngClass]=\"{ 'justify-center': !item?.value }\"\n >\n <app-icon\n [name]=\"item.icon\"\n width=\"24px\"\n height=\"24px\"\n [color]=\"item?.iconColor || 'Gray-Gray-500'\"\n ></app-icon>\n <span *ngIf=\"item?.value\">{{ item.value | translate }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'status'\">\n <div class=\"status-label\">\n <div class=\"status-dot\">\n <div\n [ngClass]=\"\n 'dot dot-' +\n (item.status ? item.status.toLowerCase() : 'unknown')\n \"\n ></div>\n <span class=\"status-text\">{{ item.status | translate }}</span>\n </div>\n <span *ngIf=\"item?.value\" class=\"status-description\">{{\n item.value\n }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'textLink'\">\n <div class=\"conteiner-tex-link\">\n <div class=\"text-link-label\">\n <span *ngIf=\"item.value\">{{ item.value | translate }}: </span>\n <a [href]=\"item?.url\" target=\"_blank\">{{ item?.urlText }}</a>\n </div>\n <app-icon\n *ngIf=\"item.icon\"\n [name]=\"item.icon\"\n width=\"18px\"\n height=\"18px\"\n color=\"Info-Info-500\"\n ></app-icon>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <div class=\"image-label\">\n <div class=\"img-container\">\n <img [src]=\"item.imageUrl\" alt=\"logo\" />\n </div>\n\n <span class=\"Body-M-Medium\">{{ item.value }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'country'\">\n <div class=\"flag-container\">\n <app-country-flags\n *ngIf=\"item.flag\"\n [width]=\"24\"\n [height]=\"24\"\n [country]=\"item.flag\"\n [style]=\"'rectangle'\"\n ></app-country-flags>\n\n <span class=\"Body-M-Regular\">{{ item.value }}</span>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n {{ item.value | translate }}\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"loading\">\n <div class=\"loading-container\">\n <app-spinner></app-spinner>\n </div>\n </ng-container>\n</ng-container>\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'dropi-favorite-button',\n standalone: true,\n imports: [CommonModule, IconComponent, NgbTooltipModule],\n templateUrl: './dropi-favorite-button.component.html',\n styleUrls: ['./dropi-favorite-button.component.scss'],\n})\nexport class DropiFavoriteButtonComponent {\n @Input() isFavorite: boolean = false;\n @Output() toggleFavorite = new EventEmitter<boolean>();\n\n isHovered: boolean = false;\n\n toggle() {\n this.isFavorite = !this.isFavorite;\n this.toggleFavorite.emit(this.isFavorite);\n }\n\n onMouseEnter() {\n this.isHovered = true;\n }\n\n onMouseLeave() {\n this.isHovered = false;\n }\n}\n","<button\n class=\"dropi-favorite-button\"\n [ngClass]=\"{ 'is-favorite': isFavorite }\"\n ngbTooltip=\"{{ isFavorite ? 'Remover de favoritos' : 'Añadir a favoritos' }}\"\n (click)=\"toggle()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <app-icon\n *ngIf=\"!isFavorite && !isHovered\"\n name=\"Heart\"\n width=\"19px\"\n height=\"19px\"\n color=\"Gray-Gray-800\"\n ></app-icon>\n <app-icon\n *ngIf=\"isFavorite || isHovered\"\n name=\"Heart-solid\"\n width=\"19px\"\n height=\"19px\"\n color=\"Primary-Primary-500\"\n ></app-icon>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { DropiCheckboxComponent } from '../dropi-checkbox/dropi-checkbox.component';\n\n@Component({\n selector: 'app-dropi-card-checkbox',\n templateUrl: './dropi-card-checkbox.component.html',\n styleUrls: ['./dropi-card-checkbox.component.scss'],\n standalone: true,\n imports: [CommonModule, DropiCheckboxComponent],\n})\nexport class DropiCardCheckboxComponent implements OnInit {\n @Input() type: 'default' | 'with card' = 'default';\n @Input() title = 'Tittle';\n @Input() description = '';\n @Input() extraInfo = '';\n @Input() extraInfoDescription = '';\n @Input() state: 'checked' | 'default' = 'checked';\n @Input() disabled: boolean = false;\n @Output() onChange = new EventEmitter<boolean>();\n\n styleLine = '';\n styleChecked = '';\n\n constructor() {}\n\n ngOnInit() {\n this.styleLine = this.type == 'default' ? 'default-card' : '';\n }\n\n changeCheck(e) {\n this.state = e ? 'checked' : 'default';\n this.onChange.emit(e);\n }\n\n clickFullWidth(e) {\n if (this.disabled) return;\n this.changeCheck(!e);\n }\n}\n","<ng-container>\n <div (click)=\"clickFullWidth(state === 'checked')\" \n class=\"container-card-check\"\n [ngClass]=\"[\n styleLine,\n (state === 'checked' && type === 'with card') ? 'is-checked' : '',\n disabled ? 'disabled' : ''\n ]\"\n >\n <app-dropi-checkbox [checked]=\"state == 'checked' ? true : false\" [disabled]=\"disabled\" />\n <div class=\"Body-M-Regular container-text\">\n <div class=\"title-check\">{{ title }}</div>\n <div *ngIf=\"description\" class=\"Body-S-Regular description-text\">\n {{ description }}\n </div>\n </div>\n <div class=\"extra-info\">\n <div *ngIf=\"extraInfo\" class=\"Body-S-Regular\">{{ extraInfo }}</div>\n <div *ngIf=\"extraInfo && extraInfoDescription\">\n <h4>{{ extraInfoDescription }}</h4>\n </div>\n </div>\n </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n selector: \"app-switch-stub\",\n standalone: true,\n template:\n '<input type=\"checkbox\" [checked]=\"isChecked\" (change)=\"onToggle($event)\">',\n imports: [CommonModule],\n})\nexport class SwitchStubComponent {\n @Input() isChecked: boolean = false;\n @Output() onChange = new EventEmitter<boolean>();\n\n onToggle(event: any) {\n this.onChange.emit(event.target.checked);\n }\n}\n\n@Component({\n selector: \"app-icon-stub\",\n standalone: true,\n template: \"<i></i>\",\n})\nexport class IconStubComponent {\n @Input() name: string = \"\";\n @Input() width: string = \"\";\n @Input() height: string = \"\";\n @Input() color: string = \"\";\n}\n\n@Component({\n selector: \"app-card-section\",\n templateUrl: \"./card-section.component.html\",\n styleUrls: [\"./card-section.component.scss\"],\n standalone: true,\n imports: [CommonModule, SwitchStubComponent, IconStubComponent],\n})\nexport class CardSectionComponent implements OnInit {\n @Input() title: string = \"title\";\n @Input() description: string = \"Description\";\n @Input() typeElement: \"dropdown\" | \"switch\" = \"dropdown\";\n @Output() onChange = new EventEmitter<boolean>();\n @Output() onClick = new EventEmitter();\n @Input() type: \"medium\" | \"important\" = \"important\";\n @Input() isChecked: boolean = false;\n\n ngOnInit() {\n if (!this.type || this.type.trim() === \"\") {\n this.type = \"important\";\n }\n }\n\n changeValue(event: any) {\n this.onChange.emit(event);\n }\n\n clickIcon() {\n this.onClick.emit();\n }\n}\n","<div class=\"container-card-section\">\n <div>\n <h5 *ngIf=\"type == 'important'\" class=\"tittle-card-section\">{{ title }}</h5>\n <h6 *ngIf=\"type == 'medium'\">{{ title }}</h6>\n <div class=\"description-card-section Body-M-Regular\">{{ description }}</div>\n </div>\n <div class=\"element-end\">\n <app-switch-stub\n [isChecked]=\"isChecked\"\n *ngIf=\"typeElement === 'switch'\"\n (onChange)=\"changeValue($event)\"\n ></app-switch-stub>\n <app-icon-stub\n (click)=\"clickIcon()\"\n *ngIf=\"typeElement === 'dropdown'\"\n name=\"Dropdown-Right\"\n [width]=\"'32px'\"\n [height]=\"'32px'\"\n [color]=\"'Gray-Gray-500'\"\n ></app-icon-stub>\n </div>\n</div>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n SimpleChanges,\n HostListener,\n Inject,\n Pipe,\n PipeTransform,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule, TitleCasePipe } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { DropiTagComponent } from \"../dropi-tag/dropi-tag.component\";\n// import { Howl } from \"howler\"; // Eliminado para evitar errores de dependencia\nimport { DropiIlustrationIconComponent } from \"../dropi-ilustration-icon/dropi-ilustration-icon.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Pipe({\n name: \"adjustName\",\n standalone: true,\n})\nexport class AdjustNamePipeStub implements PipeTransform {\n transform(value: any): any {\n return value;\n }\n}\n\n@Component({\n selector: \"currency\",\n standalone: true,\n template: \"{{value}}\",\n})\nexport class CurrencyComponentStub {\n @Input() value: any;\n @Input() class: any;\n @Input() style: any;\n}\n\n@Component({\n selector: \"app-beta-tag\",\n standalone: true,\n template: \"\",\n})\nexport class BetaTagComponentStub {}\n\nexport interface ProductData {\n id: string | number;\n sku?: string;\n name: string;\n type?: string;\n sale_price: number;\n suggested_price: number;\n private_product: boolean;\n variation_stock?: number;\n stock_simple: number;\n is_variation: boolean;\n favorite: boolean;\n supplier: {\n id: number;\n name: string;\n category_user: string;\n icon?: \"verified\" | \"premium\" | \"exclusive\";\n };\n categories: Array<{\n name: string;\n }>;\n private_user_stock?: number;\n legacy_img?: boolean;\n image: string;\n category?: string;\n stock?: number;\n supplierPrice?: number;\n suggestedPrice?: number;\n imageUrl?: string;\n isFavorite?: boolean;\n}\n\nexport type CardState = \"default\" | \"hover\" | \"select\";\n\n@Component({\n selector: \"dropi-card-product\",\n standalone: true,\n imports: [\n CommonModule,\n IconComponent,\n DropiTagComponent,\n CurrencyComponentStub,\n TitleCasePipe,\n AdjustNamePipeStub,\n BetaTagComponentStub,\n DropiIlustrationIconComponent,\n TranslateModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./card-product.component.html\",\n})\nexport class CardProductComponent implements OnInit {\n @Input() product!: ProductData;\n @Input() state: CardState = \"default\";\n @Input() aS: boolean = true;\n @Input() bettaTester: boolean = false;\n @Output() onAddToCart = new EventEmitter<ProductData>();\n @Output() onProductClick = new EventEmitter<ProductData>();\n @Output() changeFavorite = new EventEmitter<Boolean>();\n\n public imageError = false;\n public brandName: string = \"\";\n public onFavoriteHover = false;\n\n public randomClasses = {\n card: \"\",\n imageContainer: \"\",\n image: \"\",\n tags: \"\",\n tagsRow: \"\",\n favoriteButton: \"\",\n productInfo: \"\",\n productHeader: \"\",\n category: \"\",\n stockInfo: \"\",\n stockLabel: \"\",\n stockValue: \"\",\n productName: \"\",\n supplierInfo: \"\",\n supplierLabel: \"\",\n supplierName: \"\",\n priceContainer: \"\",\n priceItem: \"\",\n priceLabel: \"\",\n priceValue: \"\",\n separator: \"\",\n actionButton: \"\",\n buttonText: \"\",\n };\n\n public mixedData = {\n stockDivs: [] as Array<{ value: number; class: string; isReal: boolean }>,\n supplierPriceDivs: [] as Array<{\n value: number;\n class: string;\n isReal: boolean;\n }>,\n suggestedPriceDivs: [] as Array<{\n value: number;\n class: string;\n isReal: boolean;\n }>,\n };\n\n public fakeStyles = {\n stock: \"\",\n price: \"\",\n };\n\n public isMobile: boolean = false;\n\n constructor(\n @Inject(\"SettingsService\") private settingService: any,\n @Inject(\"ProductstService\") private favoriteService: any,\n @Inject(\"OrderManualService\") private orderManual: any,\n @Inject(\"Router\") private router: any,\n ) {}\n\n ngOnInit() {\n this.brandName =\n this.settingService?.getBrandInfo()?.name?.toLowerCase() || \"dropi\";\n this.generateRandomClasses();\n this.generateFakeStyles();\n this.generateMixedData();\n this.checkScreenSize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"product\"] || changes[\"aS\"]) {\n this.generateMixedData();\n }\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event: any) {\n this.checkScreenSize();\n }\n\n private checkScreenSize() {\n this.isMobile = window.innerWidth <= 420;\n }\n\n private generateRandomClasses() {\n this.randomClasses = {\n card: this.generateRandomClass(\"dropi-card-product\"),\n imageContainer: this.generateRandomClass(\"product-image-container\"),\n image: this.generateRandomClass(\"product-image\"),\n tags: this.generateRandomClass(\"product-tags\"),\n tagsRow: this.generateRandomClass(\"tags-row\"),\n favoriteButton: this.generateRandomClass(\"favorite-button\"),\n productInfo: this.generateRandomClass(\"product-info\"),\n productHeader: this.generateRandomClass(\"product-header\"),\n category: this.generateRandomClass(\"category\"),\n stockInfo: this.generateRandomClass(\"stock-info\"),\n stockLabel: this.generateRandomClass(\"stock-label\"),\n stockValue: this.generateRandomClass(\"stock-value\"),\n productName: this.generateRandomClass(\"product-name\"),\n supplierInfo: this.generateRandomClass(\"supplier-info\"),\n supplierLabel: this.generateRandomClass(\"supplier-label\"),\n supplierName: this.generateRandomClass(\"supplier-name\"),\n priceContainer: this.generateRandomClass(\"price-container\"),\n priceItem: this.generateRandomClass(\"price-item\"),\n priceLabel: this.generateRandomClass(\"price-label\"),\n priceValue: this.generateRandomClass(\"price-value\"),\n separator: this.generateRandomClass(\"separator\"),\n actionButton: this.generateRandomClass(\"action-button\"),\n buttonText: this.generateRandomClass(\"button-text\"),\n };\n }\n\n private generateMixedData() {\n this.mixedData.stockDivs = this.generateMixedStockDivs();\n this.mixedData.supplierPriceDivs = this.getMixedSupplierPriceDivs();\n this.mixedData.suggestedPriceDivs = this.getMixedSuggestedPriceDivs();\n }\n\n private generateFakeStyles() {\n this.fakeStyles.stock = this.generateFakeStyleVariant();\n this.fakeStyles.price = this.generateFakeStyleVariant();\n }\n\n get imageUrl(): string | undefined {\n if (this.product && this.product.image) {\n return `https://img.dropi.co/${this.product.image}`;\n }\n\n if (this.product && this.product.imageUrl) {\n return this.product.imageUrl;\n }\n\n return undefined;\n }\n\n onError(event: any) {\n this.imageError = true;\n event.target.src = \"./assets/utils/no-image.jpg\";\n }\n\n get productTags(): Array<{\n text: string;\n type: \"primary\" | \"secondary\";\n state: \"default\" | \"warning\" | \"info\";\n showIcon?: boolean;\n icon?: string;\n }> {\n const tags = [];\n\n if (this.product?.type?.includes(\"variable\")) {\n tags.push({\n text: \"Variable\",\n type: \"primary\" as const,\n state: \"default\" as const,\n });\n }\n\n if (this.product?.type?.includes(\"privado\")) {\n tags.push({\n text: \"Privado\",\n type: \"primary\" as const,\n state: \"warning\" as const,\n showIcon: true,\n icon: \"Lock\",\n });\n }\n\n if (this.product?.type?.includes(\"combo\")) {\n tags.push({\n text: \"Combo\",\n type: \"primary\" as const,\n state: \"info\" as const,\n });\n }\n\n return tags;\n }\n\n private getProductStock(): number {\n if (this.product?.type === \"VARIABLE\" && this.product?.is_variation) {\n return this.product?.variation_stock || 0;\n }\n return this.product?.stock_simple || 0;\n }\n\n get stockStatus(): \"success\" | \"warning\" | \"error\" {\n const stock = this.getProductStock();\n if (stock === 0) return \"error\";\n if (stock <= 10) return \"warning\";\n return \"success\";\n }\n\n get stockStatusClass(): string {\n switch (this.stockStatus) {\n case \"success\":\n return \"stock-success\";\n case \"warning\":\n return \"stock-warning\";\n case \"error\":\n return \"stock-error\";\n default:\n return \"stock-success\";\n }\n }\n\n handleAddToCart(): void {\n const stock = this.getProductStock();\n if (stock > 0) {\n this.onAddToCart.emit(this.product);\n if (this.orderManual) {\n this.orderManual.setModalOpen(true);\n this.orderManual.clearProductsIds();\n this.orderManual.setProductsIds(Number(this.product.id));\n }\n }\n }\n\n handleFavoriteToggle(): void {\n if (!this.product || !this.product.id) return;\n\n let body = { product_id: this.product.id };\n\n if (!this.product.favorite) {\n this.favoriteService?.addFavoriteProduct(body).subscribe({\n next: (response: any) => {\n if (response?.is_successful) {\n this.product.favorite = true;\n this.playAudio();\n this.changeFavorite.emit(true);\n }\n },\n });\n } else {\n this.favoriteService?.removeFavoriteProduct(body).subscribe({\n next: (response: any) => {\n if (response?.is_successful) {\n this.product.favorite = false;\n this.playAudio();\n this.changeFavorite.emit(false);\n }\n },\n });\n }\n }\n\n getFavoriteIconColor(): string {\n if (this.product?.favorite) {\n return \"#fff\";\n }\n return this.onFavoriteHover ? \"#f49a3d\" : \"#858ea6\";\n }\n\n playAudio() {\n // try {\n // let sound = new Howl({\n // src: [\"assets/audio/pop.mp3\"],\n // });\n // sound.volume(0.4);\n // sound.play();\n // } catch (e) {}\n }\n\n getProductDetails(): void {\n let nameProductUrl = this.product.name || \"producto\";\n const url = `/dashboard/product-details/${this.product.id}/${nameProductUrl}`;\n window.open(url, \"_blank\");\n }\n\n getProvidersDetails(): void {\n const cleanName = this.product?.supplier?.name || \"proveedor\";\n if (this.router?.url === \"/dashboard/search\") {\n const url = `/dashboard/provider/${this.product.supplier.id}/${cleanName}`;\n window.open(url, \"_blank\");\n } else {\n this.router?.navigate?.([\n \"/dashboard/provider\",\n this.product.supplier.id,\n cleanName,\n ]);\n }\n }\n\n getMixedSupplierPriceDivs() {\n return [\n {\n value: this.product?.supplierPrice || this.product?.sale_price || 0,\n class: \"price-real\",\n isReal: true,\n },\n ];\n }\n\n getMixedSuggestedPriceDivs() {\n return [\n {\n value:\n this.product?.suggestedPrice || this.product?.suggested_price || 0,\n class: \"price-real\",\n isReal: true,\n },\n ];\n }\n\n hasStock(): boolean {\n return this.getProductStock() > 0;\n }\n\n // Helper fakes for anti-scraping\n private generateRandomClass(base: string): string {\n return base + \"-\" + Math.random().toString(36).slice(2, 7);\n }\n private generateFakeStyleVariant(): string {\n return \"\";\n }\n private generateMixedStockDivs(): any[] {\n return [\n { value: this.getProductStock(), class: \"stock-real\", isReal: true },\n ];\n }\n\n // Re-added missing template methods\n getCardStyles() {\n return {};\n }\n getRandomProviderCategoryStyles() {\n return {};\n }\n getImageContainerStyles() {\n return {};\n }\n getImageStyles() {\n return {};\n }\n getTagsContainerStyles() {\n return {};\n }\n getTagsRowStyles() {\n return {};\n }\n getFavoriteButtonStyles() {\n return {};\n }\n getProductInfoStyles() {\n return {};\n }\n getProductHeaderStyles() {\n return {};\n }\n getCategoryStyles() {\n return {};\n }\n getStockInfoStyles() {\n return {};\n }\n getStockLabelStyles() {\n return {};\n }\n getStockValueStyles() {\n return {};\n }\n getProductNameStyles() {\n return {};\n }\n getSupplierInfoStyles() {\n return {};\n }\n getSupplierLabelStyles() {\n return {};\n }\n getSupplierNameStyles() {\n return {};\n }\n getPriceContainerStyles() {\n return {};\n }\n getPriceItemStyles() {\n return {};\n }\n getPriceLabelStyles() {\n return {};\n }\n getPriceValueStyles() {\n return {};\n }\n getSeparatorStyles() {\n return {};\n }\n getActionButtonStyles() {\n return {};\n }\n getButtonTextStyles() {\n return {};\n }\n getFakeStockStyles() {\n return {};\n }\n getFakePriceStyles() {\n return {};\n }\n\n getRandomCardClass() {\n return this.randomClasses.card;\n }\n getRandomImageContainerClass() {\n return this.randomClasses.imageContainer;\n }\n getRandomImageClass() {\n return this.randomClasses.image;\n }\n getRandomTagsClass() {\n return this.randomClasses.tags;\n }\n getRandomTagsRowClass() {\n return this.randomClasses.tagsRow;\n }\n getRandomFavoriteButtonClass() {\n return this.randomClasses.favoriteButton;\n }\n getRandomProductInfoClass() {\n return this.randomClasses.productInfo;\n }\n getRandomProductHeaderClass() {\n return this.randomClasses.productHeader;\n }\n getRandomCategoryClass() {\n return this.randomClasses.category;\n }\n getRandomStockInfoClass() {\n return this.randomClasses.stockInfo;\n }\n getRandomStockLabelClass() {\n return this.randomClasses.stockLabel;\n }\n getRandomProductNameClass() {\n return this.randomClasses.productName;\n }\n getRandomSupplierInfoClass() {\n return this.randomClasses.supplierInfo;\n }\n getRandomSupplierLabelClass() {\n return this.randomClasses.supplierLabel;\n }\n getRandomSupplierNameClass() {\n return this.randomClasses.supplierName;\n }\n getRandomPriceContainerClass() {\n return this.randomClasses.priceContainer;\n }\n getRandomPriceItemClass() {\n return this.randomClasses.priceItem;\n }\n getRandomPriceLabelClass() {\n return this.randomClasses.priceLabel;\n }\n getRandomPriceValueClass() {\n return this.randomClasses.priceValue;\n }\n getRandomSeparatorClass() {\n return this.randomClasses.separator;\n }\n getRandomActionButtonClass() {\n return this.randomClasses.actionButton;\n }\n getRandomButtonTextClass() {\n return this.randomClasses.buttonText;\n }\n\n getMixedStockDivs() {\n return this.generateMixedStockDivs();\n }\n}\n","<div [class]=\"getRandomCardClass()\" [style]=\"getCardStyles()\" (click)=\"getProductDetails()\">\n <app-beta-tag *ngIf=\"bettaTester\"></app-beta-tag>\n <!-- Contenedor de imagen con altura fija de 214px como en Figma -->\n <div [class]=\"getRandomImageContainerClass()\" [style]=\"getImageContainerStyles()\">\n <div [class]=\"getRandomImageClass()\" [style]=\"getImageStyles()\">\n <!-- Imagen del producto con manejo de errores -->\n <img\n [src]=\"imageUrl\"\n [alt]=\"product?.name || 'Product Image'\"\n (error)=\"onError($event)\"\n [ngClass]=\"{ 'error-img': imageError }\"\n style=\"width: 100%; height: 100%; object-fit: cover; border-radius: 8px\"\n />\n\n <!-- Tags superpuestos en la esquina superior izquierda -->\n <div\n [class]=\"getRandomTagsClass()\"\n [style]=\"getTagsContainerStyles()\"\n *ngIf=\"productTags?.length > 0\"\n >\n <div [class]=\"getRandomTagsRowClass()\" [style]=\"getTagsRowStyles()\">\n <app-dropi-tag\n *ngFor=\"let tag of productTags.slice(0, 2)\"\n [type]=\"tag?.type\"\n [state]=\"tag?.state\"\n [showIcon]=\"tag?.showIcon\"\n [icon]=\"tag?.icon\"\n [text]=\"tag?.text\"\n >\n </app-dropi-tag>\n </div>\n </div>\n\n <!-- Botón de favorito superpuesto en la esquina inferior derecha -->\n <div\n [class]=\"getRandomFavoriteButtonClass()\"\n [ngClass]=\"{ 'favorite-button': true, 'favorite-active': product?.favorite }\"\n [style]=\"getFavoriteButtonStyles()\"\n (click)=\"handleFavoriteToggle(); $event.stopPropagation()\"\n >\n <app-icon\n [name]=\"product?.favorite ? 'Heart-solid' : 'Heart'\"\n width=\"18px\"\n height=\"18px\"\n [color]=\"product?.favorite ? '#fff' : '#858ea6'\"\n [style]=\"{ display: 'flex', 'align-items': 'center', 'justify-content': 'center' }\"\n >\n </app-icon>\n </div>\n </div>\n </div>\n\n <!-- Información del producto -->\n <div [class]=\"getRandomProductInfoClass()\" [style]=\"getProductInfoStyles()\">\n <!-- Header con categoría y stock -->\n <div [class]=\"getRandomProductHeaderClass()\" [style]=\"getProductHeaderStyles()\">\n <dropi-ilustration-icon\n *ngIf=\"product?.supplier?.icon\"\n [style]=\"getRandomProviderCategoryStyles()\"\n [type]=\"'insignia'\"\n [stateInsignia]=\"product?.supplier?.icon\"\n [tagProduct]=\"true\"\n ></dropi-ilustration-icon>\n\n <span\n [class]=\"getRandomCategoryClass()\"\n [style]=\"getCategoryStyles()\"\n *ngIf=\"product?.categories && product?.categories.length > 0\"\n >{{ product?.categories[0]?.name | adjustName }}</span\n >\n\n <div [class]=\"getRandomStockInfoClass()\" [style]=\"getStockInfoStyles()\">\n <span [class]=\"getRandomStockLabelClass()\" [style]=\"getStockLabelStyles()\">{{ \"stock\" | translate }}:</span>\n\n <!-- Stocks mezclados aleatoriamente (real + falsos) -->\n <span\n *ngFor=\"let stockItem of getMixedStockDivs()\"\n [class]=\"stockItem.class\"\n [style]=\"stockItem.isReal ? getStockValueStyles() : getFakeStockStyles()\"\n >\n {{ stockItem.value }}\n </span>\n\n <span\n *ngIf=\"product?.private_user_stock && product?.private_user_stock > 0\"\n class=\"stock-private-user\"\n [style]=\"{\n 'font-weight': '500',\n padding: '0px 6px',\n 'margin-left': '6px',\n 'border-radius': '4px',\n background: 'var(--Success-Success-50, #e7f8f3)',\n color: 'var(--Success-Success-500, #0abb87)',\n 'text-align': 'center'\n }\"\n >\n {{ product?.private_user_stock }}\n </span>\n </div>\n </div>\n\n <!-- Nombre del producto -->\n <h3 [class]=\"getRandomProductNameClass()\" [style]=\"getProductNameStyles()\">\n {{ product?.name | adjustName }}\n </h3>\n\n <!-- Proveedor -->\n <div [class]=\"getRandomSupplierInfoClass()\" [style]=\"getSupplierInfoStyles()\">\n <span [class]=\"getRandomSupplierLabelClass()\" [style]=\"getSupplierLabelStyles()\"\n >{{ \"supplier\" | translate }}:</span\n >\n <span\n [class]=\"getRandomSupplierNameClass()\"\n [style]=\"getSupplierNameStyles()\"\n (click)=\"getProvidersDetails(); $event.stopPropagation()\"\n >{{ product?.supplier?.name | adjustName }}</span\n >\n </div>\n\n <!-- Precios -->\n <div [class]=\"getRandomPriceContainerClass()\" [style]=\"getPriceContainerStyles()\">\n <div [class]=\"getRandomPriceItemClass()\" [style]=\"getPriceItemStyles()\">\n <span [class]=\"getRandomPriceLabelClass()\" [style]=\"getPriceLabelStyles()\"\n >{{ \"supplier price\" | translate }}</span\n >\n\n <!-- Precios de proveedor mezclados aleatoriamente (real + falsos) -->\n <currency\n *ngFor=\"let priceItem of getMixedSupplierPriceDivs()\"\n [class]=\"priceItem.class\"\n [style]=\"priceItem.isReal ? getPriceValueStyles() : getFakePriceStyles()\"\n [value]=\"priceItem.value\"\n >\n </currency>\n </div>\n <div [class]=\"getRandomPriceItemClass()\" [style]=\"getPriceItemStyles()\">\n <span [class]=\"getRandomPriceLabelClass()\" [style]=\"getPriceLabelStyles()\"\n >{{ \"suggested price\" | translate }}</span\n >\n\n <!-- Precios sugeridos mezclados aleatoriamente (real + falsos) -->\n <currency\n *ngFor=\"let priceItem of getMixedSuggestedPriceDivs()\"\n [class]=\"priceItem.class\"\n [style]=\"priceItem.isReal ? getPriceValueStyles() : getFakePriceStyles()\"\n [value]=\"priceItem.value\"\n >\n </currency>\n </div>\n </div>\n </div>\n\n <!-- Separador horizontal -->\n <div [class]=\"getRandomSeparatorClass()\" [style]=\"getSeparatorStyles()\"></div>\n\n <!-- Botón de acción principal -->\n <div\n [class]=\"getRandomActionButtonClass()\"\n [style]=\"getActionButtonStyles()\"\n (click)=\"handleAddToCart(); $event.stopPropagation()\"\n >\n <app-icon\n name=\"Shopping-cart-arrow-rigth\"\n width=\"20px\"\n height=\"20px\"\n color=\"#f49a3d\"\n [style]=\"{ display: 'flex', 'align-items': 'center', 'justify-content': 'center' }\"\n ></app-icon>\n <span [class]=\"getRandomButtonTextClass()\" [style]=\"getButtonTextStyles()\"\n >{{ \"send to client\" | translate }}</span\n >\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n ViewChild,\n Output,\n EventEmitter,\n HostListener,\n Input,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-color-picker',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n})\nexport class ColorPickerComponent {\n @ViewChild('colorCanvas') private colorCanvas!: ElementRef<HTMLCanvasElement>;\n @ViewChild('hueCanvas') private hueCanvas!: ElementRef<HTMLCanvasElement>;\n @ViewChild('opacityCanvas') private opacityCanvas!: ElementRef<HTMLCanvasElement>;\n @ViewChild('colorPicker') private colorPicker!: ElementRef;\n\n /**\n * Indica el color (hex) por defecto que debe mostrarse.\n *\n * Valor por defecto: `#ffffff`.\n *\n * @type {string}\n */\n @Input() public currentColor: string = '#ffffff';\n /**\n * Indica la posicion del selector de color dentro del componente.\n *\n * Valor por defecto: `right`.\n *\n * @type {'left' | 'right' | 'top' | 'bottom'}\n */\n @Input() public position: 'top' | 'bottom' | 'left' | 'right' = 'right';\n /**\n * Evento que emite el color seleccionado en formato hex.\n *\n * @type {EventEmitter<string>}\n */\n @Output() public colorChange = new EventEmitter<string>();\n\n public color: string = '';\n public hue: number = 0;\n public saturation: number = 0;\n public value: number = 0;\n public opacity: number = 100;\n private isDragging: boolean = false;\n private isHueDragging: boolean = false;\n private isOpacityDragging: boolean = false;\n public showEdit: boolean = false;\n\n ngAfterViewInit() {\n this.drawHueCanvas();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(event: MouseEvent): void {\n if (this.isDragging) {\n this.updateColorFromPosition(event);\n return;\n }\n if (this.isHueDragging) {\n this.updateHueFromPosition(event);\n return;\n }\n\n if (this.isOpacityDragging) {\n this.updateOpacityFromPosition(event);\n return;\n }\n }\n\n @HostListener('document:mouseup')\n onMouseUp(): void {\n this.isDragging = false;\n this.isHueDragging = false;\n this.isOpacityDragging = false;\n }\n\n drawColorCanvas(): void {\n const canvas = this.colorCanvas.nativeElement;\n const ctx = canvas.getContext('2d')!;\n const width = canvas.width;\n const height = canvas.height;\n\n // Gradiente de saturación (eje X)\n const saturationGradient = ctx.createLinearGradient(0, 0, width, 0);\n saturationGradient.addColorStop(0, '#FFFFFF');\n saturationGradient.addColorStop(1, `hsl(${this.hue}, 100%, 50%)`);\n\n // Gradiente de valor (eje Y)\n const valueGradient = ctx.createLinearGradient(0, 0, 0, height);\n valueGradient.addColorStop(0, 'rgba(0, 0, 0, 0)');\n valueGradient.addColorStop(1, '#000000');\n\n ctx.fillStyle = saturationGradient;\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = valueGradient;\n ctx.fillRect(0, 0, width, height);\n }\n\n @HostListener('document:click', ['$event'])\n handleClickOutside(event: MouseEvent) {\n const clickedInside = this.colorPicker?.nativeElement.contains(event.target);\n if (!clickedInside && this.showEdit) {\n this.showEdit = false;\n this.currentColor = this.color;\n this.colorChange.emit(this.color);\n }\n }\n\n drawHueCanvas(): void {\n const canvas = this.hueCanvas.nativeElement;\n const ctx = canvas.getContext('2d')!;\n const width = canvas.width;\n const height = canvas.height;\n\n const hueGradient = ctx.createLinearGradient(0, 0, width, 0);\n\n for (let i = 0; i <= 360; i += 60) {\n hueGradient.addColorStop(i / 360, `hsl(${i}, 100%, 50%)`);\n }\n\n ctx.fillStyle = hueGradient;\n\n ctx.fillRect(0, 0, width, height);\n }\n\n drawOpacityCanvas(): void {\n const canvas = this.opacityCanvas.nativeElement;\n const ctx = canvas.getContext('2d')!;\n const width = canvas.width;\n const height = canvas.height;\n\n // Limpiar el canvas\n ctx.clearRect(0, 0, width, height);\n\n ctx.fillStyle = '#FFFFFF';\n ctx.fillRect(0, 0, width, height);\n\n // Obtener el color actual sin opacidad\n const rgb = this.hsvToRgb(this.hue, this.saturation, this.value);\n\n // Crear gradiente de opacidad\n const opacityGradient = ctx.createLinearGradient(0, 0, width, 0);\n opacityGradient.addColorStop(0, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`);\n opacityGradient.addColorStop(1, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`);\n\n // Dibujar el gradiente\n ctx.fillStyle = opacityGradient;\n ctx.fillRect(0, 0, width, height);\n }\n\n updateColor(): void {\n // Convertir HSV a RGB\n const rgb = this.hsvToRgb(this.hue, this.saturation, this.value);\n const hex = this.rgbToHex(rgb.r, rgb.g, rgb.b, this.opacity);\n // Color a emitir\n this.color = hex;\n // Redibujar los canvas\n this.drawColorCanvas();\n this.drawOpacityCanvas();\n }\n\n hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {\n s /= 100;\n v /= 100;\n\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n\n let r = 0,\n g = 0,\n b = 0;\n\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n } else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n } else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n } else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n } else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n } else if (h >= 300 && h < 361) {\n r = c;\n g = 0;\n b = x;\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n };\n }\n\n rgbToHex(red: number, green: number, black: number, opacity = 1) {\n const toHex = (val) => {\n const hex = Math.round(val).toString(16);\n return hex.padStart(2, '0');\n };\n\n const rHex = toHex(red);\n const gHex = toHex(green);\n const bHex = toHex(black);\n const alpha = Math.round((opacity / 100) * 255);\n const aHex = toHex(alpha);\n\n return `#${rHex}${gHex}${bHex}${aHex}`;\n }\n\n onHexInputChange(): void {\n if (/^#?[0-9A-F]{6}([0-9A-F]{2})?$/i.test(this.color)) {\n if (!this.color.startsWith('#')) {\n this.color = '#' + this.color;\n }\n\n const hex = this.color.substring(1);\n const r = parseInt(hex.substring(0, 2), 16);\n const g = parseInt(hex.substring(2, 4), 16);\n const b = parseInt(hex.substring(4, 6), 16);\n const a = hex.length === 8 ? parseInt(hex.substring(6, 8), 16) / 255 : 1;\n\n const hsv = this.rgbToHsv(r, g, b, a);\n this.hue = hsv.h;\n this.saturation = hsv.s;\n this.value = hsv.v;\n this.opacity = a * 100;\n\n this.drawColorCanvas();\n this.drawOpacityCanvas();\n }\n }\n\n rgbToHsv(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n ): { h: number; s: number; v: number; a: number } {\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n if (delta !== 0) {\n if (max === r) h = 60 * (((g - b) / delta) % 6);\n else if (max === g) h = 60 * ((b - r) / delta + 2);\n else if (max === b) h = 60 * ((r - g) / delta + 4);\n }\n\n if (h < 0) h += 360;\n\n const s = max === 0 ? 0 : (delta / max) * 100;\n const v = max * 100;\n\n return {\n h: Math.round(h),\n s: Math.round(s),\n v: Math.round(v),\n a: parseFloat(a.toFixed(3)),\n };\n }\n\n getCanvasPosition(canvas: HTMLCanvasElement, event: MouseEvent): { x: number; y: number } {\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n\n return {\n x: (event.clientX - rect.left) * scaleX,\n y: (event.clientY - rect.top) * scaleY,\n };\n }\n\n onColorMouseDown(event: MouseEvent): void {\n this.isDragging = true;\n this.updateColorFromPosition(event);\n }\n\n onHueMouseDown(event: MouseEvent): void {\n this.isHueDragging = true;\n this.updateHueFromPosition(event);\n }\n\n onOpacityMouseDown(event: MouseEvent): void {\n this.isOpacityDragging = true;\n this.updateOpacityFromPosition(event);\n }\n\n updateColorFromPosition(event: MouseEvent): void {\n const canvas = this.colorCanvas.nativeElement;\n const pos = this.getCanvasPosition(canvas, event);\n\n // Coordenadas dentro de canvas\n const x = Math.max(0, Math.min(pos.x, canvas.width));\n const y = Math.max(0, Math.min(pos.y, canvas.height));\n\n this.saturation = Math.round((x / canvas.width) * 100);\n this.value = 100 - Math.round((y / canvas.height) * 100);\n this.updateColor();\n }\n\n updateHueFromPosition(event: MouseEvent): void {\n const canvas = this.hueCanvas.nativeElement;\n const pos = this.getCanvasPosition(canvas, event);\n const x = Math.max(0, Math.min(pos.x, canvas.width));\n this.hue = Math.round((x / canvas.width) * 360);\n this.drawColorCanvas();\n this.updateColor();\n }\n\n updateOpacityFromPosition(event: MouseEvent): void {\n const canvas = this.opacityCanvas.nativeElement;\n const pos = this.getCanvasPosition(canvas, event);\n const x = Math.max(0, Math.min(pos.x, canvas.width));\n\n this.opacity = Math.round((x / canvas.width) * 100);\n this.updateColor();\n }\n\n showEditor() {\n this.showEdit = !this.showEdit;\n this.color = this.currentColor;\n if (!this.showEdit) return;\n this.onHexInputChange();\n }\n}\n","<div class=\"general-container\" #colorPicker>\n <div class=\"main-input-container\">\n <div class=\"overlay\" (click)=\"showEditor()\"></div>\n <div class=\"line-color-preview\">\n <div class=\"color-preview\" [style.background]=\"currentColor\"></div>\n </div>\n <div class=\"color-info\">\n <input type=\"text\" class=\"color-input\" [ngModel]=\"currentColor\" maxlength=\"9\" />\n </div>\n </div>\n\n <div class=\"color-picker-container position-{{position}}\" [ngClass]=\"{ show: showEdit }\">\n <div class=\"main-color-canvas-container\">\n <canvas #colorCanvas width=\"256\" height=\"150\" (mousedown)=\"onColorMouseDown($event)\"></canvas>\n <div\n class=\"color-selector-pointer\"\n [style.left]=\"(saturation / 100) * 256 + 'px'\"\n [style.top]=\"((100 - value) / 100) * 150 + 'px'\"\n ></div>\n </div>\n\n <div class=\"slider-container\">\n <div class=\"slider-group\">\n <div class=\"hue-slider-container\">\n <canvas #hueCanvas width=\"256\" height=\"20\" (mousedown)=\"onHueMouseDown($event)\"></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(hue / 360) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"slider-group\">\n <div class=\"opacity-slider-container\">\n <canvas\n #opacityCanvas\n width=\"256\"\n height=\"20\"\n (mousedown)=\"onOpacityMouseDown($event)\"\n ></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(opacity / 100) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"color-info\">\n <div class=\"color-label\">HEX</div>\n <input\n type=\"text\"\n class=\"color-input\"\n [(ngModel)]=\"color\"\n (ngModelChange)=\"onHexInputChange()\"\n maxlength=\"9\"\n />\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dropi-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n})\nexport class BadgeComponent {\n @Input() state: string;\n // pending | active | blocked | frozen\n\n stateText = {\n pending: 'Pendiente',\n active: 'Activo',\n canceled: 'Cancelado',\n frozen: 'Congelado',\n };\n}\n","<div class=\"tag-state\" [ngClass]=\"state\">\n <svg\n *ngIf=\"state === 'active'\"\n width=\"17\"\n height=\"17\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5444 5.87067L12.5389 6.88004L8.43554 10.9225C8.16142 11.1966 7.80087 11.3333 7.43892 11.3333C7.07696 11.3333 6.71287 11.1952 6.43592 10.919L4.46533 9.00929L5.45204 7.99142L7.43042 9.90887L11.5444 5.87067ZM17 8.5C17 13.187 13.187 17 8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5ZM15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5Z\"\n fill=\"#1F2937\"\n />\n </svg>\n\n <svg\n *ngIf=\"state === 'pending'\"\n width=\"17\"\n height=\"17\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.5 17C3.81296 17 0 13.187 0 8.5C0 3.81296 3.81296 0 8.5 0C13.187 0 17 3.81296 17 8.5C17 13.187 13.187 17 8.5 17ZM8.5 1.41667C4.59425 1.41667 1.41667 4.59425 1.41667 8.5C1.41667 12.4057 4.59425 15.5833 8.5 15.5833C12.4057 15.5833 15.5833 12.4057 15.5833 8.5C15.5833 4.59425 12.4057 1.41667 8.5 1.41667ZM9.20833 8.5V4.25C9.20833 3.859 8.891 3.54167 8.5 3.54167C8.109 3.54167 7.79167 3.859 7.79167 4.25V7.79167H5.66667C5.27567 7.79167 4.95833 8.109 4.95833 8.5C4.95833 8.891 5.27567 9.20833 5.66667 9.20833H8.5C8.891 9.20833 9.20833 8.891 9.20833 8.5Z\"\n fill=\"#1F2937\"\n />\n </svg>\n\n <svg\n *ngIf=\"state === 'canceled'\"\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 14 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5497 4.86859V5.76046C12.1075 6.00391 12.5823 6.40464 12.916 6.91364C13.2497 7.42264 13.4279 8.01785 13.4287 8.62648V12.3844C13.4277 13.2146 13.0974 14.0106 12.5103 14.5976C11.9233 15.1847 11.1273 15.515 10.2971 15.516H4.03392C3.20368 15.515 2.40773 15.1847 1.82066 14.5976C1.23359 14.0106 0.903338 13.2146 0.902344 12.3844V8.62648C0.903144 8.01785 1.08129 7.42264 1.41498 6.91364C1.74868 6.40464 2.22347 6.00391 2.78129 5.76046V4.86859C2.78129 3.70582 3.2432 2.59068 4.0654 1.76848C4.8876 0.946282 6.00274 0.484375 7.1655 0.484375C8.32827 0.484375 9.44341 0.946282 10.2656 1.76848C11.0878 2.59068 11.5497 3.70582 11.5497 4.86859ZM4.95114 2.65422C4.36386 3.24151 4.03392 4.03804 4.03392 4.86859V5.4949H10.2971V4.86859C10.2971 4.03804 9.96715 3.24151 9.37986 2.65422C8.79258 2.06694 7.99605 1.73701 7.1655 1.73701C6.33496 1.73701 5.53843 2.06694 4.95114 2.65422ZM11.6257 13.713C11.9781 13.3606 12.176 12.8827 12.176 12.3844V8.62648C12.176 8.12815 11.9781 7.65023 11.6257 7.29786C11.2733 6.94549 10.7954 6.74753 10.2971 6.74753H4.03392C3.53559 6.74753 3.05768 6.94549 2.70531 7.29786C2.35294 7.65023 2.15498 8.12815 2.15498 8.62648V12.3844C2.15498 12.8827 2.35294 13.3606 2.70531 13.713C3.05768 14.0654 3.53559 14.2633 4.03392 14.2633H10.2971C10.7954 14.2633 11.2733 14.0654 11.6257 13.713ZM6.72263 9.43615C6.84009 9.31869 6.99939 9.25271 7.1655 9.25271C7.33161 9.25271 7.49092 9.31869 7.60837 9.43615C7.72583 9.55361 7.79182 9.71291 7.79182 9.87902V11.1317C7.79182 11.2978 7.72583 11.4571 7.60837 11.5745C7.49092 11.692 7.33161 11.758 7.1655 11.758C6.99939 11.758 6.84009 11.692 6.72263 11.5745C6.60517 11.4571 6.53919 11.2978 6.53919 11.1317V9.87902C6.53919 9.71291 6.60517 9.55361 6.72263 9.43615Z\"\n fill=\"#585C65\"\n />\n </svg>\n\n <p>\n {{ stateText[state] }}\n </p>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonComponent } from \"../dropi-button/dropi-button.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DropiIlustrationIconComponent } from \"../dropi-ilustration-icon/dropi-ilustration-icon.component\";\n\n@Component({\n selector: \"app-empty-state\",\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n IconComponent,\n TranslateModule,\n DropiIlustrationIconComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./empty-state.component.html\",\n styleUrls: [\"./empty-state.component.scss\"],\n})\nexport class EmptyStateComponent implements OnInit {\n @Input() buttonText: string = \"\";\n @Input() description: string = \"\";\n @Input() buttonSeverity: \"primary\" | \"secondary\" | \"tertiary\" = \"tertiary\";\n @Input() title: string = \"\";\n @Output() buttonClickEvent = new EventEmitter();\n brandName: string = \"dropi\";\n @Input() dropiIcon:\n | \"success\"\n | \"error\"\n | \"warning\"\n | \"info\"\n | \"default\"\n | \"loading\"\n | \"sorry\" = \"default\";\n\n constructor(\n @Inject(\"SettingsService\") private readonly settingsService: any,\n ) {}\n\n ngOnInit(): void {\n try {\n this.brandName =\n this.settingsService?.getBrandInfo()?.name?.toLowerCase() || \"dropi\";\n } catch (e) {\n this.brandName = \"dropi\";\n }\n }\n\n buttonClick() {\n this.buttonClickEvent.emit();\n }\n}\n","<div class=\"container\">\n <div class=\"empty-container\">\n <!-- <img\n class=\"empty-dropi-icon\"\n *ngIf=\"brandName === 'dropi'\"\n src=\"\\assets\\utils\\logo-dropi-img-loader.png\"\n alt=\"\"\n /> -->\n <dropi-ilustration-icon class=\"empty-dropi-icon\" *ngIf=\"brandName === 'dropi'\" [type]=\"'dropi' \" [state]=\"dropiIcon\"\n ></dropi-ilustration-icon>\n <div class=\"icon-container\" *ngIf=\"brandName !== 'dropi'\">\n <app-icon name=\"Warning-circle\" width=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </div>\n <div class=\"text-container\">\n <div *ngIf=\"title !== ''\" class=\"empty-title Body-L-Medium\">\n {{ title | translate }}\n </div>\n <div class=\"description-container\">\n <div class=\"description Body-M-Regular\">{{ description | translate }}</div>\n </div>\n </div>\n\n <dropi-button\n *ngIf=\"buttonText !== ''\"\n [text]=\"buttonText | translate\"\n [severity]=\"buttonSeverity\"\n (onClick)=\"buttonClick()\"\n ></dropi-button>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n Inject,\n OnInit,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonComponent } from \"../../dropi-button/dropi-button.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-drop-zone\",\n standalone: true,\n imports: [CommonModule, ButtonComponent, IconComponent, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./drop-zone.component.html\",\n styleUrls: [\"./drop-zone.component.scss\"],\n})\nexport class DropZoneComponent implements OnInit {\n @Input() multiple = false;\n @Input() accept: string[] = [];\n @Input() maxFiles = 10;\n @Input() maxFileSizeMB = 10;\n @Input() title = \"\";\n @Input() label = \"\";\n @Input() viewDragAndDrop = false;\n @Input() compress: boolean = false;\n @Input() maxHeight: number = 1000;\n @Input() maxWidth: number = 1000;\n @Input() textButton: string = \"Seleccionar Imagen\";\n @Input() textFileUpload: string = \"Drop or upload an image here\";\n\n @Output() addFiles = new EventEmitter<File[]>();\n\n dragOver = false;\n\n // Propiedades requeridas por el template original\n isNotStore: boolean = true;\n size: \"default\" | \"small\" = \"default\";\n uploadStatus: \"idle\" | \"loading\" | \"error\" | \"success\" = \"idle\";\n disabled: boolean = false;\n stateButton: string = \"default\";\n fileCharged: string = \"\";\n\n get acceptedMimeTypes(): string[] {\n return this.accept || [\"image/*\"];\n }\n\n constructor(\n @Inject(\"UploadFileService\") private sharedUpload: any,\n @Inject(\"CompressImagesService\") private compressService: any,\n ) {}\n\n ngOnInit(): void {}\n\n onDragOver(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = true;\n }\n\n onDragLeave(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n }\n\n onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragOver = false;\n const files = event.dataTransfer?.files;\n if (files) {\n this.handleFiles(Array.from(files));\n }\n }\n\n onFileSelected(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (input.files) {\n this.handleFiles(Array.from(input.files));\n }\n }\n\n onFileChange(event: any): void {\n const files = event.target.files;\n if (files) {\n this.handleFiles(Array.from(files));\n }\n }\n\n clearFile(): void {\n this.fileCharged = \"\";\n this.uploadStatus = \"idle\";\n }\n\n private handleFiles(files: File[]): void {\n this.addFiles.emit(files);\n }\n}\n","<div\n class=\"file-upload\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n>\n <div *ngIf=\"!isNotStore\" class=\"file-upload__zone\" [class.drag-over]=\"dragOver\">\n <svg\n *ngIf=\"size === 'default'\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20Z\"\n fill=\"#FEF8F1\"\n />\n <g clip-path=\"url(#clip0_183_10598)\">\n <path\n d=\"M19.3379 13.7187L19.3332 24.0107C19.3332 24.1875 19.4035 24.357 19.5285 24.4821C19.6535 24.6071 19.8231 24.6773 19.9999 24.6773C20.1767 24.6773 20.3463 24.6071 20.4713 24.4821C20.5963 24.357 20.6666 24.1875 20.6666 24.0107L20.6712 13.73L22.6126 15.672C22.7376 15.797 22.9071 15.8672 23.0839 15.8672C23.2607 15.8672 23.4302 15.797 23.5552 15.672C23.6802 15.547 23.7504 15.3774 23.7504 15.2007C23.7504 15.0239 23.6802 14.8543 23.5552 14.7293L21.4145 12.586C21.2288 12.4001 21.0083 12.2527 20.7655 12.1521C20.5228 12.0515 20.2626 11.9998 19.9999 11.9998C19.7371 11.9998 19.477 12.0515 19.2342 12.1521C18.9915 12.2527 18.771 12.4001 18.5852 12.586L16.4445 14.7273C16.3196 14.8523 16.2494 15.0219 16.2494 15.1987C16.2494 15.3754 16.3196 15.545 16.4445 15.67C16.5696 15.795 16.7391 15.8652 16.9159 15.8652C17.0927 15.8652 17.2622 15.795 17.3872 15.67L19.3379 13.7187Z\"\n fill=\"#F49A3D\"\n />\n <path\n d=\"M26.6667 23.3329V25.9996C26.6667 26.1764 26.5964 26.346 26.4714 26.471C26.3464 26.596 26.1768 26.6663 26 26.6663H14C13.8232 26.6663 13.6536 26.596 13.5286 26.471C13.4036 26.346 13.3333 26.1764 13.3333 25.9996V23.3329C13.3333 23.1561 13.2631 22.9865 13.1381 22.8615C13.013 22.7365 12.8435 22.6663 12.6667 22.6663C12.4899 22.6663 12.3203 22.7365 12.1953 22.8615C12.0702 22.9865 12 23.1561 12 23.3329V25.9996C12 26.53 12.2107 27.0387 12.5858 27.4138C12.9609 27.7889 13.4696 27.9996 14 27.9996H26C26.5304 27.9996 27.0391 27.7889 27.4142 27.4138C27.7893 27.0387 28 26.53 28 25.9996V23.3329C28 23.1561 27.9298 22.9865 27.8047 22.8615C27.6797 22.7365 27.5101 22.6663 27.3333 22.6663C27.1565 22.6663 26.987 22.7365 26.8619 22.8615C26.7369 22.9865 26.6667 23.1561 26.6667 23.3329Z\"\n fill=\"#F49A3D\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_183_10598\">\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(12 12)\" />\n </clipPath>\n </defs>\n </svg>\n <div class=\"info\">\n <div [ngClass]=\"{ 'size-small-upload': size === 'small' }\">\n <div class=\"title\">{{ textFileUpload | translate }}</div>\n <dropi-button\n *ngIf=\"size !== 'default'\"\n (onClick)=\"fileInput.click()\"\n [text]=\"textButton\"\n size=\"small\"\n ></dropi-button>\n </div>\n\n <div *ngIf=\"size === 'default'\">\n <div class=\"description\">\n {{ ('Supported formats' | translate) + ': ' }} {{ accept.join(', ') }}\n </div>\n <div class=\"description\">\n {{ ('Maximum size' | translate) + ': ' }} {{ maxFileSizeMB }}MB\n </div>\n </div>\n\n <div *ngIf=\"size !== 'default'\">\n <div class=\"description\">\n {{ ('Supported formats' | translate) + ': ' }} {{ accept.join(', ') }}.\n {{ ('Maximum size' | translate) + ': ' }} {{ maxFileSizeMB }}MB\n </div>\n <div class=\"description\"></div>\n </div>\n </div>\n\n <dropi-button\n *ngIf=\"size == 'default'\"\n (onClick)=\"fileInput.click()\"\n [text]=\"textButton\"\n size=\"small\"\n ></dropi-button>\n <input\n #fileInput\n type=\"file\"\n [attr.multiple]=\"multiple ? '' : null\"\n [attr.accept]=\"acceptedMimeTypes?.join(',')\"\n (change)=\"onFileChange($event)\"\n hidden\n />\n </div>\n\n <div class=\"container-buttons-file\" *ngIf=\"isNotStore\">\n <dropi-button\n *ngIf=\"uploadStatus == 'idle' || uploadStatus == 'error' || uploadStatus == 'loading'\"\n [state]=\"disabled ? 'disabled' : stateButton\"\n preIcon=\"File-upload\"\n (onClick)=\"fileInput.click()\"\n [text]=\"textButton | translate\"\n ></dropi-button>\n <div *ngIf=\"uploadStatus == 'success'\" class=\"button-mock\">\n {{ fileCharged }}\n <div class=\"\">\n <app-icon\n (click)=\"clearFile()\"\n class=\"colse-circle-mock\"\n name=\"Close-small\"\n width=\"12px\"\n height=\"12px\"\n color=\"Primary-Primary-500\"\n ></app-icon>\n </div>\n </div>\n <input\n #fileInput\n type=\"file\"\n [attr.multiple]=\"multiple ? '' : null\"\n [attr.accept]=\"acceptedMimeTypes?.join(',')\"\n (change)=\"onFileChange($event)\"\n hidden\n />\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FileItem } from \"../../../utilities/interfaces/ui/upload.model\";\nimport { ButtonComponent } from \"../../dropi-button/dropi-button.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-card-view\",\n standalone: true,\n imports: [CommonModule, ButtonComponent, IconComponent, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./card-view.component.html\",\n styleUrls: [\"./card-view.component.scss\"],\n})\nexport class CardViewComponent {\n @Input() fileItem!: FileItem;\n @Input() onlyView: boolean = false;\n @Output() action = new EventEmitter<{\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }>();\n\n constructor(\n @Inject(\"ImageOverlayService\") private readonly imageOverlayService: any,\n ) {}\n\n onSendClick(type: \"delete\" | \"confirm-delete\" | \"cancel-delete\"): void {\n this.action.emit({ file: this.fileItem, type });\n }\n\n getFileTypeClass(file: any): string {\n return \"file-default\";\n }\n\n viewType(type: string): boolean {\n return false;\n }\n\n openPreviewImage(): void {\n if (this.fileItem?.previewUrl) {\n this.imageOverlayService?.open?.(this.fileItem.previewUrl);\n }\n }\n}\n","<div class=\"file-card\" [ngClass]=\"[fileItem.state, getFileTypeClass(fileItem.file)]\">\n <ng-container\n *ngIf=\"fileItem.previewUrl && !fileItem.previewUrl.includes('.pdf'); else iconTemplate\"\n >\n <div class=\"preview-wrapper\">\n <img\n [ngClass]=\"fileItem.state\"\n class=\"preview\"\n [src]=\"fileItem.previewUrl || './assets/utils/template-no-image.png'\"\n alt=\"fileItem.previewUrl\"\n />\n\n <ng-container *ngIf=\"fileItem.state === 'complete'\">\n <div class=\"overlay-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_5064_216)\">\n <path\n d=\"M11.1594 2.2155L4.24992 9.1245C4.20347 9.17114 4.14826 9.20815 4.08747 9.2334C4.02668 9.25865 3.9615 9.27165 3.89567 9.27165C3.82985 9.27165 3.76467 9.25865 3.70388 9.2334C3.64308 9.20815 3.58788 9.17114 3.54142 9.1245L0.869423 6.45C0.822969 6.40337 0.767762 6.36636 0.70697 6.34111C0.646179 6.31586 0.581 6.30286 0.515173 6.30286C0.449346 6.30286 0.384167 6.31586 0.323376 6.34111C0.262585 6.36636 0.207378 6.40337 0.160923 6.45C0.114285 6.49646 0.0772787 6.55167 0.0520278 6.61246C0.026777 6.67325 0.0137787 6.73843 0.0137787 6.80425C0.0137787 6.87008 0.026777 6.93526 0.0520278 6.99605C0.0772787 7.05684 0.114285 7.11205 0.160923 7.1585L2.83392 9.831C3.1159 10.1125 3.49802 10.2705 3.89642 10.2705C4.29482 10.2705 4.67695 10.1125 4.95892 9.831L11.8679 2.9235C11.9145 2.87706 11.9514 2.82188 11.9766 2.76114C12.0018 2.70039 12.0148 2.63527 12.0148 2.5695C12.0148 2.50374 12.0018 2.43862 11.9766 2.37787C11.9514 2.31713 11.9145 2.26195 11.8679 2.2155C11.8215 2.16887 11.7663 2.13186 11.7055 2.10661C11.6447 2.08136 11.5795 2.06836 11.5137 2.06836C11.4478 2.06836 11.3827 2.08136 11.3219 2.10661C11.2611 2.13186 11.2059 2.16887 11.1594 2.2155Z\"\n fill=\"#0ABB87\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_5064_216\">\n <rect width=\"12\" height=\"12\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <!--iconos de documento-->\n <ng-template #iconTemplate>\n <div class=\"file-icon\">\n <ng-container>\n <svg\n *ngIf=\"viewType('pdf')\"\n class=\"icon-pdf\"\n width=\"34\"\n height=\"34\"\n viewBox=\"0 0 34 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8C0 3.58172 3.58172 0 8 0H26C30.4183 0 34 3.58172 34 8V26C34 30.4183 30.4183 34 26 34H8C3.58172 34 0 30.4183 0 26V8Z\"\n fill=\"#FEF0F0\"\n />\n <g clip-path=\"url(#clip0_3287_1674)\">\n <path\n d=\"M24.1252 11.1167L21.2168 8.20833C20.1168 7.10833 18.6502 6.5 17.0918 6.5H13.3335C11.0335 6.5 9.16684 8.36667 9.16684 10.6667V22.3333C9.16684 24.6333 11.0335 26.5 13.3335 26.5H21.6668C23.9668 26.5 25.8335 24.6333 25.8335 22.3333V15.2417C25.8335 13.6833 25.2252 12.2167 24.1252 11.1167ZM22.9502 12.2917C23.2168 12.5583 23.4418 12.85 23.6252 13.1667H20.0085C19.5502 13.1667 19.1752 12.7917 19.1752 12.3333V8.71667C19.4918 8.9 19.7835 9.125 20.0502 9.39167L22.9585 12.3L22.9502 12.2917ZM24.1668 22.3333C24.1668 23.7083 23.0418 24.8333 21.6668 24.8333H13.3335C11.9585 24.8333 10.8335 23.7083 10.8335 22.3333V10.6667C10.8335 9.29167 11.9585 8.16667 13.3335 8.16667H17.0918C17.2252 8.16667 17.3668 8.16667 17.5002 8.18333V12.3333C17.5002 13.7083 18.6252 14.8333 20.0002 14.8333H24.1502C24.1668 14.9667 24.1668 15.1 24.1668 15.2417V22.3333ZM13.4085 17.3333H12.5002C12.0418 17.3333 11.6668 17.7083 11.6668 18.1667V21.8667C11.6668 22.1583 11.9002 22.3833 12.1835 22.3833C12.4668 22.3833 12.7002 22.15 12.7002 21.8667V20.85H13.4002C14.3835 20.85 15.1835 20.0583 15.1835 19.0917C15.1835 18.125 14.3835 17.3333 13.4002 17.3333H13.4085ZM13.4085 19.8083H12.7168V18.375H13.4168C13.8168 18.375 14.1585 18.7 14.1585 19.0917C14.1585 19.4833 13.8168 19.8083 13.4168 19.8083H13.4085ZM23.3502 17.8583C23.3502 18.15 23.1168 18.375 22.8335 18.375H21.4252V19.325H22.4585C22.7502 19.325 22.9752 19.5583 22.9752 19.8417C22.9752 20.125 22.7418 20.3583 22.4585 20.3583H21.4252V21.8583C21.4252 22.15 21.1918 22.375 20.9085 22.375C20.6252 22.375 20.3918 22.1417 20.3918 21.8583V17.85C20.3918 17.5583 20.6252 17.3333 20.9085 17.3333H22.8335C23.1252 17.3333 23.3502 17.5667 23.3502 17.85V17.8583ZM17.5752 17.3417H16.6668C16.2085 17.3417 15.8335 17.7167 15.8335 18.175V21.875C15.8335 22.1667 16.0668 22.3417 16.3502 22.3417C16.6335 22.3417 17.5668 22.3417 17.5668 22.3417C18.5502 22.3417 19.3502 21.55 19.3502 20.5833V19.1C19.3502 18.1333 18.5502 17.3417 17.5668 17.3417H17.5752ZM18.3168 20.5833C18.3168 20.975 17.9752 21.3 17.5752 21.3H16.8835V18.3833H17.5835C17.9835 18.3833 18.3252 18.7083 18.3252 19.1V20.5833H18.3168Z\"\n fill=\"#DE6061\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3287_1674\">\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(7.5 6.5)\" />\n </clipPath>\n </defs>\n </svg>\n <svg\n *ngIf=\"viewType('default')\"\n class=\"icon-default\"\n width=\"34\"\n height=\"34\"\n viewBox=\"0 0 34 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8C0 3.58172 3.58172 0 8 0H26C30.4183 0 34 3.58172 34 8V26C34 30.4183 30.4183 34 26 34H8C3.58172 34 0 30.4183 0 26V8Z\"\n fill=\"#EEF6FE\"\n />\n <g clip-path=\"url(#clip0_3287_1708)\">\n <path\n d=\"M21.1668 18.6667C21.1668 18.8877 21.079 19.0997 20.9227 19.2559C20.7664 19.4122 20.5545 19.5 20.3335 19.5H13.6668C13.4458 19.5 13.2338 19.4122 13.0775 19.2559C12.9213 19.0997 12.8335 18.8877 12.8335 18.6667C12.8335 18.4457 12.9213 18.2337 13.0775 18.0774C13.2338 17.9211 13.4458 17.8334 13.6668 17.8334H20.3335C20.5545 17.8334 20.7664 17.9211 20.9227 18.0774C21.079 18.2337 21.1668 18.4457 21.1668 18.6667ZM17.8335 21.1667H13.6668C13.4458 21.1667 13.2338 21.2545 13.0775 21.4108C12.9213 21.567 12.8335 21.779 12.8335 22C12.8335 22.221 12.9213 22.433 13.0775 22.5893C13.2338 22.7456 13.4458 22.8334 13.6668 22.8334H17.8335C18.0545 22.8334 18.2664 22.7456 18.4227 22.5893C18.579 22.433 18.6668 22.221 18.6668 22C18.6668 21.779 18.579 21.567 18.4227 21.4108C18.2664 21.2545 18.0545 21.1667 17.8335 21.1667ZM25.3335 15.7375V22.8334C25.3321 23.938 24.8927 24.9971 24.1116 25.7782C23.3305 26.5593 22.2715 26.9987 21.1668 27H12.8335C11.7288 26.9987 10.6698 26.5593 9.88864 25.7782C9.10753 24.9971 8.66812 23.938 8.66679 22.8334V11.1667C8.66812 10.062 9.10753 9.00298 9.88864 8.22187C10.6698 7.44075 11.7288 7.00134 12.8335 7.00002H16.596C17.3623 6.99805 18.1214 7.14801 18.8295 7.44124C19.5375 7.73446 20.1804 8.16513 20.721 8.70835L23.6243 11.6134C24.1678 12.1536 24.5988 12.7962 24.8921 13.5042C25.1855 14.2121 25.3355 14.9712 25.3335 15.7375ZM19.5426 9.88669C19.2804 9.63265 18.9859 9.41412 18.6668 9.23669V12.8334C18.6668 13.0544 18.7546 13.2663 18.9109 13.4226C19.0672 13.5789 19.2791 13.6667 19.5001 13.6667H23.0968C22.9193 13.3477 22.7004 13.0535 22.446 12.7917L19.5426 9.88669ZM23.6668 15.7375C23.6668 15.6 23.6401 15.4684 23.6276 15.3334H19.5001C18.8371 15.3334 18.2012 15.07 17.7324 14.6011C17.2635 14.1323 17.0001 13.4964 17.0001 12.8334V8.70585C16.8651 8.69335 16.7326 8.66669 16.596 8.66669H12.8335C12.1704 8.66669 11.5345 8.93008 11.0657 9.39892C10.5969 9.86776 10.3335 10.5036 10.3335 11.1667V22.8334C10.3335 23.4964 10.5969 24.1323 11.0657 24.6011C11.5345 25.07 12.1704 25.3334 12.8335 25.3334H21.1668C21.8298 25.3334 22.4657 25.07 22.9346 24.6011C23.4034 24.1323 23.6668 23.4964 23.6668 22.8334V15.7375Z\"\n fill=\"#4996DB\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3287_1708\">\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(7 7)\" />\n </clipPath>\n </defs>\n </svg>\n </ng-container>\n </div>\n </ng-template>\n <div class=\"info-container\" *ngIf=\"fileItem.state !== 'confirm-delete'\">\n <div class=\"file-name\">\n {{ fileItem?.file?.name ?? fileItem?.previewUrl?.split('/').pop() }}\n </div>\n <div class=\"progress-bar-container\" *ngIf=\"fileItem.state === 'uploading'\">\n <div class=\"progress-bar\" [style.width.%]=\"fileItem.progress\"></div>\n </div>\n </div>\n\n <!--Botones de eliminar y ver-->\n\n <div\n class=\"preview-image\"\n *ngIf=\"fileItem.state !== 'confirm-delete' \"\n (click)=\"openPreviewImage()\"\n >\n <app-icon name=\"Eye\" width=\"20px\" height=\"20px\" color=\"Gray-Gray-600\" />\n </div>\n <!-- <div\n class=\"preview-image\"\n *ngIf=\"fileItem.state !== 'confirm-delete' && fileItem.fileType !== 'image'\"\n (click)=\"downloadFile()\"\n >\n <app-icon name=\"Download\" width=\"20px\" height=\"20px\" color=\"Gray-Gray-600\" />\n </div> -->\n\n <div (click)=\"onSendClick('delete')\" *ngIf=\"fileItem.state !== 'confirm-delete' && !onlyView\" class=\"delete\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M16.25 4.44453H14.0972C13.936 3.66078 13.5096 2.95657 12.8897 2.45058C12.2699 1.94459 11.4946 1.66776 10.6944 1.66675H9.30554C8.5054 1.66776 7.73007 1.94459 7.11023 2.45058C6.49039 2.95657 6.06394 3.66078 5.90276 4.44453H3.74999C3.56581 4.44453 3.38917 4.51769 3.25894 4.64792C3.12871 4.77816 3.05554 4.95479 3.05554 5.13897C3.05554 5.32315 3.12871 5.49978 3.25894 5.63002C3.38917 5.76025 3.56581 5.83341 3.74999 5.83341H4.44443V14.8612C4.44553 15.7817 4.81171 16.6643 5.46264 17.3152C6.11357 17.9661 6.9961 18.3323 7.91665 18.3334H12.0833C13.0039 18.3323 13.8864 17.9661 14.5373 17.3152C15.1883 16.6643 15.5544 15.7817 15.5555 14.8612V5.83341H16.25C16.4342 5.83341 16.6108 5.76025 16.741 5.63002C16.8713 5.49978 16.9444 5.32315 16.9444 5.13897C16.9444 4.95479 16.8713 4.77816 16.741 4.64792C16.6108 4.51769 16.4342 4.44453 16.25 4.44453ZM9.30554 3.05564H10.6944C11.1252 3.05616 11.5452 3.18993 11.8969 3.43858C12.2487 3.68724 12.5149 4.03862 12.659 4.44453H7.34096C7.48511 4.03862 7.75131 3.68724 8.10303 3.43858C8.45476 3.18993 8.8748 3.05616 9.30554 3.05564ZM14.1667 14.8612C14.1667 15.4137 13.9472 15.9436 13.5565 16.3343C13.1658 16.725 12.6359 16.9445 12.0833 16.9445H7.91665C7.36412 16.9445 6.83421 16.725 6.44351 16.3343C6.05281 15.9436 5.83332 15.4137 5.83332 14.8612V5.83341H14.1667V14.8612Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M8.61115 14.1663C8.79533 14.1663 8.97197 14.0931 9.1022 13.9629C9.23243 13.8327 9.3056 13.656 9.3056 13.4719V9.30521C9.3056 9.12103 9.23243 8.94439 9.1022 8.81416C8.97197 8.68393 8.79533 8.61076 8.61115 8.61076C8.42698 8.61076 8.25034 8.68393 8.12011 8.81416C7.98988 8.94439 7.91671 9.12103 7.91671 9.30521V13.4719C7.91671 13.656 7.98988 13.8327 8.12011 13.9629C8.25034 14.0931 8.42698 14.1663 8.61115 14.1663Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M11.3888 14.1663C11.573 14.1663 11.7497 14.0931 11.8799 13.9629C12.0101 13.8327 12.0833 13.656 12.0833 13.4719V9.30521C12.0833 9.12103 12.0101 8.94439 11.8799 8.81416C11.7497 8.68393 11.573 8.61076 11.3888 8.61076C11.2047 8.61076 11.028 8.68393 10.8978 8.81416C10.7676 8.94439 10.6944 9.12103 10.6944 9.30521V13.4719C10.6944 13.656 10.7676 13.8327 10.8978 13.9629C11.028 14.0931 11.2047 14.1663 11.3888 14.1663Z\"\n fill=\"#DE6061\"\n />\n </svg>\n </div>\n\n <!--mensaje de eliminar-->\n <div class=\"delete-confirm\" *ngIf=\"fileItem.state === 'confirm-delete'\">\n <span class=\"message\">{{\n (fileItem.previewUrl ? 'delete image' : 'delete file') | translate\n }}</span>\n <div class=\"actions\">\n <dropi-button size=\"small\" text=\"Sí\" (onClick)=\"onSendClick('confirm-delete')\"></dropi-button>\n <dropi-button\n text=\"No\"\n size=\"small\"\n (onClick)=\"onSendClick('cancel-delete')\"\n severity=\"secondary\"\n ></dropi-button>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FileItem } from \"../../../utilities/interfaces/ui/upload.model\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-grid-view\",\n standalone: true,\n imports: [CommonModule, IconComponent, TranslateModule],\n templateUrl: \"./grid-view.component.html\",\n styleUrls: [\"./grid-view.component.scss\"],\n})\nexport class GridViewComponent {\n @Input() fileItem!: FileItem;\n @Output() action = new EventEmitter<{\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }>();\n\n onDelete(): void {\n this.action.emit({ file: this.fileItem, type: \"delete\" });\n }\n\n onSendClick(type: \"delete\" | \"confirm-delete\" | \"cancel-delete\"): void {\n this.action.emit({ file: this.fileItem, type });\n }\n\n getFileTypeClass(file: any): string {\n if (!file) return \"file-default\";\n const type = file.type || \"\";\n if (type.startsWith(\"image/\")) return \"file-image\";\n if (type === \"application/pdf\") return \"file-pdf\";\n return \"file-default\";\n }\n}\n","<div class=\"img-view\" [ngClass]=\"[fileItem.state, getFileTypeClass(fileItem.file)]\">\n <!-- Imagen o ícono -->\n\n <div class=\"preview-wrapper\">\n <div class=\"preview-container\">\n <img\n [ngClass]=\"fileItem.state\"\n class=\"preview\"\n [src]=\"fileItem?.previewUrl || './assets/utils/template-no-image.png'\"\n alt=\"preview\"\n />\n </div>\n\n <ng-container *ngIf=\"fileItem.state === 'complete'\">\n <div class=\"overlay-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_5064_216)\">\n <path\n d=\"M11.1594 2.2155L4.24992 9.1245C4.20347 9.17114 4.14826 9.20815 4.08747 9.2334C4.02668 9.25865 3.9615 9.27165 3.89567 9.27165C3.82985 9.27165 3.76467 9.25865 3.70388 9.2334C3.64308 9.20815 3.58788 9.17114 3.54142 9.1245L0.869423 6.45C0.822969 6.40337 0.767762 6.36636 0.70697 6.34111C0.646179 6.31586 0.581 6.30286 0.515173 6.30286C0.449346 6.30286 0.384167 6.31586 0.323376 6.34111C0.262585 6.36636 0.207378 6.40337 0.160923 6.45C0.114285 6.49646 0.0772787 6.55167 0.0520278 6.61246C0.026777 6.67325 0.0137787 6.73843 0.0137787 6.80425C0.0137787 6.87008 0.026777 6.93526 0.0520278 6.99605C0.0772787 7.05684 0.114285 7.11205 0.160923 7.1585L2.83392 9.831C3.1159 10.1125 3.49802 10.2705 3.89642 10.2705C4.29482 10.2705 4.67695 10.1125 4.95892 9.831L11.8679 2.9235C11.9145 2.87706 11.9514 2.82188 11.9766 2.76114C12.0018 2.70039 12.0148 2.63527 12.0148 2.5695C12.0148 2.50374 12.0018 2.43862 11.9766 2.37787C11.9514 2.31713 11.9145 2.26195 11.8679 2.2155C11.8215 2.16887 11.7663 2.13186 11.7055 2.10661C11.6447 2.08136 11.5795 2.06836 11.5137 2.06836C11.4478 2.06836 11.3827 2.08136 11.3219 2.10661C11.2611 2.13186 11.2059 2.16887 11.1594 2.2155Z\"\n fill=\"#0ABB87\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_5064_216\">\n <rect width=\"12\" height=\"12\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n </ng-container>\n\n <div\n (click)=\"onSendClick('confirm-delete')\"\n *ngIf=\"fileItem.state !== 'confirm-delete'\"\n class=\"delete\"\n >\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 0.5H24C28.1421 0.5 31.5 3.85786 31.5 8V24C31.5 28.1421 28.1421 31.5 24 31.5H8C3.85786 31.5 0.5 28.1421 0.5 24V8C0.5 3.85786 3.85786 0.5 8 0.5Z\"\n fill=\"white\"\n />\n <path\n d=\"M8 0.5H24C28.1421 0.5 31.5 3.85786 31.5 8V24C31.5 28.1421 28.1421 31.5 24 31.5H8C3.85786 31.5 0.5 28.1421 0.5 24V8C0.5 3.85786 3.85786 0.5 8 0.5Z\"\n stroke=\"#F7F8FA\"\n />\n <path\n d=\"M22.25 10.4445H20.0972C19.936 9.66072 19.5096 8.95651 18.8897 8.45052C18.2699 7.94453 17.4945 7.6677 16.6944 7.66669H15.3055C14.5054 7.6677 13.73 7.94453 13.1102 8.45052C12.4904 8.95651 12.0639 9.66072 11.9027 10.4445H9.74996C9.56578 10.4445 9.38914 10.5176 9.25891 10.6479C9.12868 10.7781 9.05551 10.9547 9.05551 11.1389C9.05551 11.3231 9.12868 11.4997 9.25891 11.63C9.38914 11.7602 9.56578 11.8334 9.74996 11.8334H10.4444V20.8611C10.4455 21.7817 10.8117 22.6642 11.4626 23.3151C12.1135 23.9661 12.9961 24.3323 13.9166 24.3334H18.0833C19.0038 24.3323 19.8864 23.9661 20.5373 23.3151C21.1882 22.6642 21.5544 21.7817 21.5555 20.8611V11.8334H22.25C22.4341 11.8334 22.6108 11.7602 22.741 11.63C22.8712 11.4997 22.9444 11.3231 22.9444 11.1389C22.9444 10.9547 22.8712 10.7781 22.741 10.6479C22.6108 10.5176 22.4341 10.4445 22.25 10.4445ZM15.3055 9.05558H16.6944C17.1251 9.0561 17.5452 9.18986 17.8969 9.43852C18.2486 9.68718 18.5148 10.0386 18.659 10.4445H13.3409C13.4851 10.0386 13.7513 9.68718 14.103 9.43852C14.4547 9.18986 14.8748 9.0561 15.3055 9.05558ZM20.1666 20.8611C20.1666 21.4137 19.9471 21.9436 19.5564 22.3343C19.1657 22.725 18.6358 22.9445 18.0833 22.9445H13.9166C13.3641 22.9445 12.8342 22.725 12.4435 22.3343C12.0528 21.9436 11.8333 21.4137 11.8333 20.8611V11.8334H20.1666V20.8611Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M14.6111 20.1662C14.7953 20.1662 14.9719 20.0931 15.1022 19.9628C15.2324 19.8326 15.3056 19.656 15.3056 19.4718V15.3051C15.3056 15.121 15.2324 14.9443 15.1022 14.8141C14.9719 14.6839 14.7953 14.6107 14.6111 14.6107C14.4269 14.6107 14.2503 14.6839 14.1201 14.8141C13.9898 14.9443 13.9167 15.121 13.9167 15.3051V19.4718C13.9167 19.656 13.9898 19.8326 14.1201 19.9628C14.2503 20.0931 14.4269 20.1662 14.6111 20.1662Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M17.3888 20.1662C17.573 20.1662 17.7496 20.0931 17.8799 19.9628C18.0101 19.8326 18.0833 19.656 18.0833 19.4718V15.3051C18.0833 15.121 18.0101 14.9443 17.8799 14.8141C17.7496 14.6839 17.573 14.6107 17.3888 14.6107C17.2046 14.6107 17.028 14.6839 16.8978 14.8141C16.7675 14.9443 16.6944 15.121 16.6944 15.3051V19.4718C16.6944 19.656 16.7675 19.8326 16.8978 19.9628C17.028 20.0931 17.2046 20.1662 17.3888 20.1662Z\"\n fill=\"#DE6061\"\n />\n </svg>\n </div>\n </div>\n\n <div class=\"progress-bar-container\" *ngIf=\"fileItem.state === 'uploading'\">\n <div class=\"progress-bar\" [style.width.%]=\"fileItem.progress\"></div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n Inject,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FileItem } from \"../../../utilities/interfaces/ui/upload.model\";\nimport { CardViewComponent } from \"../card-view/card-view.component\";\nimport { GridViewComponent } from \"../grid-view/grid-view.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-file-list\",\n standalone: true,\n imports: [\n CommonModule,\n CardViewComponent,\n GridViewComponent,\n TranslateModule,\n ],\n templateUrl: \"./file-list.component.html\",\n styleUrls: [\"./file-list.component.scss\"],\n})\nexport class FileListComponent implements OnChanges {\n @Input() files: FileItem[] = [];\n @Input() onlyView: boolean = false;\n @Input() previewType: \"card\" | \"grid\" = \"card\";\n @Input() maxFiles: number = 1;\n @Input() addButton: boolean = true;\n @Output() action = new EventEmitter<{\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }>();\n\n public cardFiles: FileItem[] = [];\n public gridFiles: FileItem[] = [];\n viewImageToDelete: boolean = false;\n imageTodelete: FileItem | null = null;\n imageCopyValue: FileItem | null = null;\n imageCopyValueGrid: FileItem | null = null; // Fix for grid delete\n\n constructor(@Inject(\"UploadFileService\") private uploadFileService: any) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"files\"]) {\n this.updateFileViews();\n }\n }\n\n private updateFileViews() {\n this.cardFiles = [];\n this.gridFiles = [];\n\n this.files.forEach((file) => {\n if (file.typeView === \"card\") {\n this.cardFiles.push(file);\n return;\n }\n this.gridFiles.push(file);\n });\n }\n\n onChildAction(event: {\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }) {\n this.action.emit(event);\n }\n onChildGridAction(event: {\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }) {\n this.imageTodelete = { ...event.file, state: \"confirm-delete\" };\n this.viewImageToDelete = true;\n this.imageCopyValueGrid = event.file;\n }\n\n onDeleteCardAction(event: {\n file: FileItem;\n type: \"delete\" | \"confirm-delete\" | \"cancel-delete\";\n }) {\n if (event.type == \"confirm-delete\") {\n this.action.emit({\n type: \"confirm-delete\",\n file: this.imageCopyValueGrid || event.file,\n });\n this.viewImageToDelete = false;\n this.imageCopyValueGrid = null;\n } else {\n this.imageTodelete = null;\n this.viewImageToDelete = false;\n this.imageCopyValueGrid = null;\n }\n }\n\n addImage() {\n this.uploadFileService?.triggerInput();\n }\n}\n","<div class=\"files-container\">\n <div class=\"grid-list\">\n <ng-container *ngIf=\"!viewImageToDelete\">\n <app-grid-view\n *ngFor=\"let fileItem of gridFiles\"\n [fileItem]=\"fileItem\"\n (action)=\"onChildGridAction($event)\"\n ></app-grid-view>\n </ng-container>\n\n <app-card-view\n *ngIf=\"viewImageToDelete\"\n style=\"width: 100%\"\n [fileItem]=\"imageTodelete\"\n [onlyView]=\"onlyView\"\n (action)=\"onDeleteCardAction($event)\"\n ></app-card-view>\n <div\n (click)=\"addImage()\"\n *ngIf=\"(gridFiles.length != 0 || (previewType == 'grid' && addButton)) && gridFiles.length < maxFiles && !viewImageToDelete\"\n class=\"add-img\"\n >\n <div class=\"icon\">\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.77774 6.4444H7.55551V4.22218C7.55551 4.07484 7.49698 3.93353 7.3928 3.82934C7.28861 3.72516 7.1473 3.66663 6.99996 3.66663C6.85262 3.66663 6.71131 3.72516 6.60712 3.82934C6.50294 3.93353 6.4444 4.07484 6.4444 4.22218V6.4444H4.22218C4.07484 6.4444 3.93353 6.50294 3.82934 6.60712C3.72516 6.71131 3.66663 6.85262 3.66663 6.99996C3.66663 7.1473 3.72516 7.28861 3.82934 7.3928C3.93353 7.49698 4.07484 7.55551 4.22218 7.55551H6.4444V9.77774C6.4444 9.92508 6.50294 10.0664 6.60712 10.1706C6.71131 10.2748 6.85262 10.3333 6.99996 10.3333C7.1473 10.3333 7.28861 10.2748 7.3928 10.1706C7.49698 10.0664 7.55551 9.92508 7.55551 9.77774V7.55551H9.77774C9.92508 7.55551 10.0664 7.49698 10.1706 7.3928C10.2748 7.28861 10.3333 7.1473 10.3333 6.99996C10.3333 6.85262 10.2748 6.71131 10.1706 6.60712C10.0664 6.50294 9.92508 6.4444 9.77774 6.4444Z\"\n fill=\"#32394D\"\n />\n </svg>\n </div>\n <div class=\"text\">\n {{ 'add' | translate }}\n </div>\n </div>\n </div>\n <div class=\"card-list\">\n <app-card-view\n *ngFor=\"let fileItem of cardFiles\"\n style=\"width: 100%\"\n [fileItem]=\"fileItem\"\n [onlyView]=\"onlyView\"\n (action)=\"onChildAction($event)\"\n ></app-card-view>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n NgZone,\n Output,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DropZoneComponent } from \"./drop-zone/drop-zone.component\";\nimport {\n FileItem,\n UploadFileState,\n UploadParams,\n} from \"../../utilities/interfaces/ui/upload.model\";\nimport { FileListComponent } from \"./file-list/file-list.component\";\nimport { AlertComponent } from \"../alert/alert.component\";\n\n@Component({\n selector: \"app-dropi-file-upload\",\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n DropZoneComponent,\n FileListComponent,\n AlertComponent,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: \"./dropi-file-upload.component.html\",\n styleUrls: [\"./dropi-file-upload.component.scss\"],\n})\nexport class DropiFileUploadComponent {\n @Input() params: UploadParams = {\n title: \"\",\n label: \"\",\n previewType: \"card\",\n multiple: false,\n maxFiles: 1,\n maxFileSizeMB: 10,\n accept: [],\n compress: false,\n maxHeight: 1000,\n maxWidth: 1000,\n path: \"\",\n onlyView: false,\n viewDragAndDrop: false,\n textButton: \"Seleccionar Imagen\",\n textDropZone: \"Drop or upload an image here\",\n };\n @Output() uploadedUrlsChange = new EventEmitter<string[]>();\n\n dragOver = false;\n selectedFiles: FileItem[] = [];\n error: boolean = false;\n errorMessage: string = \"\";\n\n constructor(@Inject(NgZone) private readonly zone: NgZone) {}\n\n onFilesAdded($event: any) {\n this.handleFiles($event);\n }\n\n handleFiles(files: File[]): void {\n // Implementación básica para build\n }\n\n onFileAction(event: any) {\n // Implementación básica para build\n }\n}\n","<div class=\"upload-container\">\n <!--Encabezado -->\n <div class=\"upload-header\">\n <div class=\"title text\">{{ params.title | translate }}</div>\n <div class=\"label text\">{{ params.label | translate }}</div>\n </div>\n\n <app-alert\n *ngIf=\"error\"\n [message]=\"errorMessage | translate\"\n type=\"default\"\n state=\"error\"\n [dismissable]=\"true\"\n [showButton]=\"false\"\n (onClose)=\"error = false\"\n ></app-alert>\n <!--Zona de arrastre -->\n <app-drop-zone\n *ngIf=\"selectedFiles.length < params.maxFiles\"\n [hidden]=\"params.previewType === 'grid' && (!params.viewDragAndDrop || selectedFiles.length > 0)\"\n [accept]=\"params.accept\"\n [multiple]=\"params.multiple\"\n [compress]=\"params.compress\"\n [maxHeight]=\"params.maxHeight\"\n [maxWidth]=\"params.maxWidth\"\n [maxFileSizeMB]=\"params.maxFileSizeMB\"\n [textButton]=\"params.textButton || 'Seleccionar Imagen'\"\n [textFileUpload]=\"params.textDropZone || 'Drop or upload an image here'\"\n (addFiles)=\"onFilesAdded($event)\"\n ></app-drop-zone>\n\n\n <!--Listado de archivos -->\n <app-file-list\n [onlyView]=\"params.onlyView\"\n [maxFiles]=\"params.maxFiles\"\n [files]=\"selectedFiles\"\n (action)=\"onFileAction($event)\"\n [previewType]=\"params.previewType\"\n [addButton]=\"!params.viewDragAndDrop\"\n ></app-file-list>\n</div>\n","export interface iCountryList {\n name: string;\n code: string;\n codePhone: string;\n}\n\nexport const COUNTRIES: iCountryList[] = [\n { name: \"Afghanistan\", code: \"AF\", codePhone: \"93\" },\n { name: \"Åland Islands\", code: \"AX\", codePhone: \"358\" },\n { name: \"Albania\", code: \"AL\", codePhone: \"355\" },\n { name: \"Algeria\", code: \"DZ\", codePhone: \"213\" },\n { name: \"American Samoa\", code: \"AS\", codePhone: \"1684\" },\n { name: \"AndorrA\", code: \"AD\", codePhone: \"376\" },\n { name: \"Angola\", code: \"AO\", codePhone: \"244\" },\n { name: \"Anguilla\", code: \"AI\", codePhone: \"1264\" },\n { name: \"Antarctica\", code: \"AQ\", codePhone: \"672\" },\n { name: \"Antigua and Barbuda\", code: \"AG\", codePhone: \"1268\" },\n { name: \"Argentina\", code: \"AR\", codePhone: \"54\" },\n { name: \"Armenia\", code: \"AM\", codePhone: \"374\" },\n { name: \"Aruba\", code: \"AW\", codePhone: \"297\" },\n { name: \"Australia\", code: \"AU\", codePhone: \"61\" },\n { name: \"Austria\", code: \"AT\", codePhone: \"43\" },\n { name: \"Azerbaijan\", code: \"AZ\", codePhone: \"994\" },\n { name: \"Bahamas\", code: \"BS\", codePhone: \"1242\" },\n { name: \"Bahrain\", code: \"BH\", codePhone: \"973\" },\n { name: \"Bangladesh\", code: \"BD\", codePhone: \"880\" },\n { name: \"Barbados\", code: \"BB\", codePhone: \"1246\" },\n { name: \"Belarus\", code: \"BY\", codePhone: \"375\" },\n { name: \"Belgium\", code: \"BE\", codePhone: \"32\" },\n { name: \"Belize\", code: \"BZ\", codePhone: \"501\" },\n { name: \"Benin\", code: \"BJ\", codePhone: \"229\" },\n { name: \"Bermuda\", code: \"BM\", codePhone: \"1441\" },\n { name: \"Bhutan\", code: \"BT\", codePhone: \"975\" },\n { name: \"Bolivia\", code: \"BO\", codePhone: \"591\" },\n { name: \"Bosnia and Herzegovina\", code: \"BA\", codePhone: \"387\" },\n { name: \"Botswana\", code: \"BW\", codePhone: \"267\" },\n { name: \"Brazil\", code: \"BR\", codePhone: \"55\" },\n { name: \"Brunei Darussalam\", code: \"BN\", codePhone: \"673\" },\n { name: \"Bulgaria\", code: \"BG\", codePhone: \"359\" },\n { name: \"Burkina Faso\", code: \"BF\", codePhone: \"226\" },\n { name: \"Burundi\", code: \"BI\", codePhone: \"257\" },\n { name: \"Cambodia\", code: \"KH\", codePhone: \"855\" },\n { name: \"Cameroon\", code: \"CM\", codePhone: \"237\" },\n { name: \"Canada\", code: \"CA\", codePhone: \"1\" },\n { name: \"Cape Verde\", code: \"CV\", codePhone: \"238\" },\n { name: \"Cayman Islands\", code: \"KY\", codePhone: \"1345\" },\n { name: \"Central African Republic\", code: \"CF\", codePhone: \"236\" },\n { name: \"Chad\", code: \"TD\", codePhone: \"235\" },\n { name: \"Chile\", code: \"CL\", codePhone: \"56\" },\n { name: \"China\", code: \"CN\", codePhone: \"86\" },\n { name: \"Christmas Island\", code: \"CX\", codePhone: \"61\" },\n { name: \"Cocos (Keeling) Islands\", code: \"CC\", codePhone: \"61\" },\n { name: \"Colombia\", code: \"CO\", codePhone: \"57\" },\n { name: \"Comoros\", code: \"KM\", codePhone: \"269\" },\n { name: \"Congo\", code: \"CG\", codePhone: \"242\" },\n {\n name: \"Congo, The Democratic Republic of the\",\n code: \"CD\",\n codePhone: \"243\",\n },\n { name: \"Cook Islands\", code: \"CK\", codePhone: \"682\" },\n { name: \"Costa Rica\", code: \"CR\", codePhone: \"506\" },\n { name: \"Cote D'Ivoire\", code: \"CI\", codePhone: \"225\" },\n { name: \"Croatia\", code: \"HR\", codePhone: \"385\" },\n { name: \"Cuba\", code: \"CU\", codePhone: \"53\" },\n { name: \"Cyprus\", code: \"CY\", codePhone: \"357\" },\n { name: \"Czech Republic\", code: \"CZ\", codePhone: \"420\" },\n { name: \"Denmark\", code: \"DK\", codePhone: \"45\" },\n { name: \"Djibouti\", code: \"DJ\", codePhone: \"253\" },\n { name: \"Dominica\", code: \"DM\", codePhone: \"1767\" },\n { name: \"Dominican Republic\", code: \"DO\", codePhone: \"1\" },\n { name: \"Ecuador\", code: \"EC\", codePhone: \"593\" },\n { name: \"Egypt\", code: \"EG\", codePhone: \"20\" },\n { name: \"El Salvador\", code: \"SV\", codePhone: \"503\" },\n { name: \"Equatorial Guinea\", code: \"GQ\", codePhone: \"240\" },\n { name: \"Eritrea\", code: \"ER\", codePhone: \"291\" },\n { name: \"Estonia\", code: \"EE\", codePhone: \"372\" },\n { name: \"Ethiopia\", code: \"ET\", codePhone: \"251\" },\n { name: \"Falkland Islands (Malvinas)\", code: \"FK\", codePhone: \"500\" },\n { name: \"Faroe Islands\", code: \"FO\", codePhone: \"298\" },\n { name: \"Fiji\", code: \"FJ\", codePhone: \"679\" },\n { name: \"Finland\", code: \"FI\", codePhone: \"358\" },\n { name: \"France\", code: \"FR\", codePhone: \"33\" },\n { name: \"French Guiana\", code: \"GF\", codePhone: \"594\" },\n { name: \"French Polynesia\", code: \"PF\", codePhone: \"689\" },\n { name: \"French Southern Territories\", code: \"TF\", codePhone: \"262\" },\n { name: \"Gabon\", code: \"GA\", codePhone: \"241\" },\n { name: \"Gambia\", code: \"GM\", codePhone: \"220\" },\n { name: \"Georgia\", code: \"GE\", codePhone: \"995\" },\n { name: \"Germany\", code: \"DE\", codePhone: \"49\" },\n { name: \"Ghana\", code: \"GH\", codePhone: \"233\" },\n { name: \"Gibraltar\", code: \"GI\", codePhone: \"350\" },\n { name: \"Greece\", code: \"GR\", codePhone: \"30\" },\n { name: \"Greenland\", code: \"GL\", codePhone: \"299\" },\n { name: \"Grenada\", code: \"GD\", codePhone: \"1473\" },\n { name: \"Guam\", code: \"GU\", codePhone: \"1671\" },\n { name: \"Guatemala\", code: \"GT\", codePhone: \"502\" },\n { name: \"Guernsey\", code: \"GG\", codePhone: \"44\" },\n { name: \"Guinea\", code: \"GN\", codePhone: \"224\" },\n { name: \"Guinea-Bissau\", code: \"GW\", codePhone: \"245\" },\n { name: \"Guyana\", code: \"GY\", codePhone: \"592\" },\n { name: \"Haiti\", code: \"HT\", codePhone: \"509\" },\n { name: \"Holy See (Vatican City State)\", code: \"VA\", codePhone: \"379\" },\n { name: \"Honduras\", code: \"HN\", codePhone: \"504\" },\n { name: \"Hong Kong\", code: \"HK\", codePhone: \"852\" },\n { name: \"Hungary\", code: \"HU\", codePhone: \"36\" },\n { name: \"Iceland\", code: \"IS\", codePhone: \"354\" },\n { name: \"India\", code: \"IN\", codePhone: \"91\" },\n { name: \"Indonesia\", code: \"ID\", codePhone: \"62\" },\n { name: \"Iran, Islamic Republic Of\", code: \"IR\", codePhone: \"98\" },\n { name: \"Iraq\", code: \"IQ\", codePhone: \"964\" },\n { name: \"Ireland\", code: \"IE\", codePhone: \"353\" },\n { name: \"Isle of Man\", code: \"IM\", codePhone: \"44\" },\n { name: \"Israel\", code: \"IL\", codePhone: \"972\" },\n { name: \"Italy\", code: \"IT\", codePhone: \"39\" },\n { name: \"Jamaica\", code: \"JM\", codePhone: \"1876\" },\n { name: \"Japan\", code: \"JP\", codePhone: \"81\" },\n { name: \"Jersey\", code: \"JE\", codePhone: \"44\" },\n { name: \"Jordan\", code: \"JO\", codePhone: \"962\" },\n { name: \"Kazakhstan\", code: \"KZ\", codePhone: \"7\" },\n { name: \"Kenya\", code: \"KE\", codePhone: \"254\" },\n { name: \"Kiribati\", code: \"KI\", codePhone: \"686\" },\n {\n name: \"Korea, Democratic People'S Republic of\",\n code: \"KP\",\n codePhone: \"850\",\n },\n { name: \"Korea, Republic of\", code: \"KR\", codePhone: \"82\" },\n { name: \"Kuwait\", code: \"KW\", codePhone: \"965\" },\n { name: \"Kyrgyzstan\", code: \"KG\", codePhone: \"996\" },\n { name: \"Lao People'S Democratic Republic\", code: \"LA\", codePhone: \"856\" },\n { name: \"Latvia\", code: \"LV\", codePhone: \"371\" },\n { name: \"Lebanon\", code: \"LB\", codePhone: \"961\" },\n { name: \"Lesotho\", code: \"LS\", codePhone: \"266\" },\n { name: \"Liberia\", code: \"LR\", codePhone: \"231\" },\n { name: \"Libyan Arab Jamahiriya\", code: \"LY\", codePhone: \"218\" },\n { name: \"Liechtenstein\", code: \"LI\", codePhone: \"423\" },\n { name: \"Lithuania\", code: \"LT\", codePhone: \"370\" },\n { name: \"Luxembourg\", code: \"LU\", codePhone: \"352\" },\n { name: \"Macao\", code: \"MO\", codePhone: \"853\" },\n {\n name: \"Macedonia, The Former Yugoslav Republic of\",\n code: \"MK\",\n codePhone: \"389\",\n },\n { name: \"Madagascar\", code: \"MG\", codePhone: \"261\" },\n { name: \"Malawi\", code: \"MW\", codePhone: \"265\" },\n { name: \"Malaysia\", code: \"MY\", codePhone: \"60\" },\n { name: \"Maldives\", code: \"MV\", codePhone: \"960\" },\n { name: \"Mali\", code: \"ML\", codePhone: \"223\" },\n { name: \"Malta\", code: \"MT\", codePhone: \"356\" },\n { name: \"Marshall Islands\", code: \"MH\", codePhone: \"692\" },\n { name: \"Martinique\", code: \"MQ\", codePhone: \"596\" },\n { name: \"Mauritania\", code: \"MR\", codePhone: \"222\" },\n { name: \"Mauritius\", code: \"MU\", codePhone: \"230\" },\n { name: \"Mayotte\", code: \"YT\", codePhone: \"262\" },\n { name: \"Mexico\", code: \"MX\", codePhone: \"52\" },\n { name: \"Micronesia, Federated States of\", code: \"FM\", codePhone: \"691\" },\n { name: \"Moldova, Republic of\", code: \"MD\", codePhone: \"373\" },\n { name: \"Monaco\", code: \"MC\", codePhone: \"377\" },\n { name: \"Mongolia\", code: \"MN\", codePhone: \"976\" },\n { name: \"Montserrat\", code: \"MS\", codePhone: \"1664\" },\n { name: \"Morocco\", code: \"MA\", codePhone: \"212\" },\n { name: \"Mozambique\", code: \"MZ\", codePhone: \"258\" },\n { name: \"Myanmar\", code: \"MM\", codePhone: \"95\" },\n { name: \"Namibia\", code: \"NA\", codePhone: \"264\" },\n { name: \"Nauru\", code: \"NR\", codePhone: \"674\" },\n { name: \"Nepal\", code: \"NP\", codePhone: \"977\" },\n { name: \"Netherlands\", code: \"NL\", codePhone: \"31\" },\n { name: \"Netherlands Antilles\", code: \"AN\", codePhone: \"599\" },\n { name: \"New Caledonia\", code: \"NC\", codePhone: \"687\" },\n { name: \"New Zealand\", code: \"NZ\", codePhone: \"64\" },\n { name: \"Nicaragua\", code: \"NI\", codePhone: \"505\" },\n { name: \"Niger\", code: \"NE\", codePhone: \"227\" },\n { name: \"Nigeria\", code: \"NG\", codePhone: \"234\" },\n { name: \"Niue\", code: \"NU\", codePhone: \"683\" },\n { name: \"Norfolk Island\", code: \"NF\", codePhone: \"672\" },\n { name: \"Northern Mariana Islands\", code: \"MP\", codePhone: \"1670\" },\n { name: \"Norway\", code: \"NO\", codePhone: \"47\" },\n { name: \"Oman\", code: \"OM\", codePhone: \"968\" },\n { name: \"Pakistan\", code: \"PK\", codePhone: \"92\" },\n { name: \"Palau\", code: \"PW\", codePhone: \"680\" },\n { name: \"Palestinian Territory, Occupied\", code: \"PS\", codePhone: \"970\" },\n { name: \"Panama\", code: \"PA\", codePhone: \"507\" },\n { name: \"Papua New Guinea\", code: \"PG\", codePhone: \"675\" },\n { name: \"Paraguay\", code: \"PY\", codePhone: \"595\" },\n { name: \"Peru\", code: \"PE\", codePhone: \"51\" },\n { name: \"Philippines\", code: \"PH\", codePhone: \"63\" },\n { name: \"Pitcairn\", code: \"PN\", codePhone: \"64\" },\n { name: \"Poland\", code: \"PL\", codePhone: \"48\" },\n { name: \"Portugal\", code: \"PT\", codePhone: \"351\" },\n { name: \"Puerto Rico\", code: \"PR\", codePhone: \"1\" },\n { name: \"Qatar\", code: \"QA\", codePhone: \"974\" },\n { name: \"Reunion\", code: \"RE\", codePhone: \"262\" },\n { name: \"Romania\", code: \"RO\", codePhone: \"40\" },\n { name: \"Russian Federation\", code: \"RU\", codePhone: \"7\" },\n { name: \"RWANDA\", code: \"RW\", codePhone: \"250\" },\n { name: \"Saint Helena\", code: \"SH\", codePhone: \"290\" },\n { name: \"Saint Kitts and Nevis\", code: \"KN\", codePhone: \"1869\" },\n { name: \"Saint Lucia\", code: \"LC\", codePhone: \"1758\" },\n { name: \"Saint Vincent and the Grenadines\", code: \"VC\", codePhone: \"1784\" },\n { name: \"Samoa\", code: \"WS\", codePhone: \"685\" },\n { name: \"San Marino\", code: \"SM\", codePhone: \"378\" },\n { name: \"Sao Tome and Principe\", code: \"ST\", codePhone: \"239\" },\n { name: \"Saudi Arabia\", code: \"SA\", codePhone: \"966\" },\n { name: \"Senegal\", code: \"SN\", codePhone: \"221\" },\n { name: \"Seychelles\", code: \"SC\", codePhone: \"248\" },\n { name: \"Sierra Leone\", code: \"SL\", codePhone: \"232\" },\n { name: \"Singapore\", code: \"SG\", codePhone: \"65\" },\n { name: \"Slovakia\", code: \"SK\", codePhone: \"421\" },\n { name: \"Slovenia\", code: \"SI\", codePhone: \"386\" },\n { name: \"Solomon Islands\", code: \"SB\", codePhone: \"677\" },\n { name: \"Somalia\", code: \"SO\", codePhone: \"252\" },\n { name: \"South Africa\", code: \"ZA\", codePhone: \"27\" },\n {\n name: \"South Georgia and the South Sandwich Islands\",\n code: \"GS\",\n codePhone: \"500\",\n },\n { name: \"Spain\", code: \"ES\", codePhone: \"34\" },\n { name: \"Sri Lanka\", code: \"LK\", codePhone: \"94\" },\n { name: \"Sudan\", code: \"SD\", codePhone: \"249\" },\n { name: \"Suriname\", code: \"SR\", codePhone: \"597\" },\n { name: \"Swaziland\", code: \"SZ\", codePhone: \"268\" },\n { name: \"Sweden\", code: \"SE\", codePhone: \"46\" },\n { name: \"Switzerland\", code: \"CH\", codePhone: \"41\" },\n { name: \"Syrian Arab Republic\", code: \"SY\", codePhone: \"963\" },\n { name: \"Taiwan, Province of China\", code: \"TW\", codePhone: \"886\" },\n { name: \"Tajikistan\", code: \"TJ\", codePhone: \"992\" },\n { name: \"Tanzania, United Republic of\", code: \"TZ\", codePhone: \"255\" },\n { name: \"Thailand\", code: \"TH\", codePhone: \"66\" },\n { name: \"Timor-Leste\", code: \"TL\", codePhone: \"670\" },\n { name: \"Togo\", code: \"TG\", codePhone: \"228\" },\n { name: \"Tokelau\", code: \"TK\", codePhone: \"690\" },\n { name: \"Tonga\", code: \"TO\", codePhone: \"676\" },\n { name: \"Trinidad and Tobago\", code: \"TT\", codePhone: \"1868\" },\n { name: \"Tunisia\", code: \"TN\", codePhone: \"216\" },\n { name: \"Turkey\", code: \"TR\", codePhone: \"90\" },\n { name: \"Turkmenistan\", code: \"TM\", codePhone: \"993\" },\n { name: \"Turks and Caicos Islands\", code: \"TC\", codePhone: \"1649\" },\n { name: \"Tuvalu\", code: \"TV\", codePhone: \"688\" },\n { name: \"Uganda\", code: \"UG\", codePhone: \"256\" },\n { name: \"Ukraine\", code: \"UA\", codePhone: \"380\" },\n { name: \"United Arab Emirates\", code: \"AE\", codePhone: \"971\" },\n { name: \"United Kingdom\", code: \"GB\", codePhone: \"44\" },\n { name: \"United States\", code: \"US\", codePhone: \"1\" },\n { name: \"Uruguay\", code: \"UY\", codePhone: \"598\" },\n { name: \"Uzbekistan\", code: \"UZ\", codePhone: \"998\" },\n { name: \"Vanuatu\", code: \"VU\", codePhone: \"678\" },\n { name: \"Venezuela\", code: \"VE\", codePhone: \"58\" },\n { name: \"Viet Nam\", code: \"VN\", codePhone: \"84\" },\n { name: \"Virgin Islands, British\", code: \"VG\", codePhone: \"1284\" },\n { name: \"Virgin Islands, U.S.\", code: \"VI\", codePhone: \"1340\" },\n { name: \"Wallis and Futuna\", code: \"WF\", codePhone: \"681\" },\n { name: \"Western Sahara\", code: \"EH\", codePhone: \"212\" },\n { name: \"Yemen\", code: \"YE\", codePhone: \"967\" },\n { name: \"Zambia\", code: \"ZM\", codePhone: \"260\" },\n { name: \"Zimbabwe\", code: \"ZW\", codePhone: \"263\" },\n];\n","import {\n Component,\n HostListener,\n Input,\n ElementRef,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ViewChild,\n Inject,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\ntype OptionsCountrySelect = any;\ntype SelectProperties = any;\n\nimport { IconComponent } from \"../icon/icon.component\";\nimport { COUNTRIES } from \"./countries.data\";\nimport { FormsModule, FormControl, ReactiveFormsModule } from \"@angular/forms\";\n\n@Component({\n selector: \"app-dropi-country-selector\",\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n IconComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n templateUrl: \"./dropi-country-selector.component.html\",\n styleUrls: [\"./dropi-country-selector.component.scss\"],\n})\nexport class DropiCountrySelectorComponent {\n /**\n *\n * Define las propiedades necesarias para un campo de entrada (`input`).\n *\n * Cada campo debe contener las siguientes propiedades:\n * - `label`: Texto descriptivo que se mostrará como etiqueta.\n * - `placeholder`: Texto de ejemplo dentro del campo.\n * - `options`: opciones que se mostraran en el menu desplegable que tienen los tipos:\n * - `id`: Indicativo con el cual se identifica la opcion\n * - `label`: Texto descriptivo de la opción\n * - `disabled`: Indicador de opción deshabilitada\n *\n * Propiedades opcionales:\n * - `textHelper`: Texto de ayuda que se mostrará debajo del campo.\n * - `showObligatory`: Indicador para mostrar si el campo es obligatorio\n *\n * @type {SelectProperties}\n */\n @Input() public selectProperties: SelectProperties;\n /**\n * Indica si se debe mostrar deshabilitiado el select.\n *\n * Valor por defecto: `false`.\n *\n * @type {boolean}\n */\n @Input() public disabled: boolean = false;\n /**\n * FormControl opcional para validación y mostrar errores\n * Si se proporciona, el componente mostrará borde rojo cuando tenga errores\n *\n * @type {FormControl}\n */\n @Input() public formControl: FormControl;\n /**\n * Evento que emite el valor del select cuando se selecciona\n *\n * @type {OptionsSelect}\n */\n @Output() onChangeSelect: EventEmitter<OptionsCountrySelect> =\n new EventEmitter();\n\n /**\n * Setear el pais del modelo inicial, debes enviarle el code del pais.\n *\n * @type {string}\n */\n private _currentSelection = \"\";\n\n @Input() set currentSelection(value: string) {\n this._currentSelection = value;\n if (value) {\n const found = this.countries.find(\n (propertie) => propertie.code === value,\n );\n if (found) {\n this.selectedOption = found;\n this.onChangeSelect.emit(this.selectedOption);\n this.cdr.detectChanges(); // 👈🏼 Forzar a Angular a actualizar el DOM\n }\n }\n }\n\n @Input() public searchTerm: string = \"\";\n @ViewChild(\"searchInput\") searchInput: ElementRef<HTMLInputElement>;\n\n get currentSelection() {\n return this._currentSelection;\n }\n /**\n * Indica si el select esta desplegado\n *\n * Valor por defecto: `false`.\n *\n * @type {boolean}\n */\n public isExpanded: boolean = false;\n /**\n * Almacena la opción actual seleccionada\n *\n * @type {OptionsSelect}\n */\n public selectedOption: OptionsCountrySelect;\n countries = COUNTRIES;\n public filteredCountries: OptionsCountrySelect[] = this.countries;\n\n /**\n * Verifica si el formControl tiene errores y está dirty/touched\n */\n get hasError(): boolean {\n return (\n this.formControl &&\n this.formControl.invalid &&\n (this.formControl.dirty || this.formControl.touched)\n );\n }\n\n constructor(\n @Inject(ElementRef) private elementRef: ElementRef,\n @Inject(ChangeDetectorRef) private cdr: ChangeDetectorRef,\n ) {}\n\n @HostListener(\"document:click\", [\"$event\"])\n closeDropdown(event?: MouseEvent): void {\n if (event && !this.elementRef.nativeElement.contains(event.target)) {\n this.isExpanded = false;\n }\n }\n\n selectOption(option: OptionsCountrySelect) {\n this.isExpanded = false;\n this.selectedOption = option;\n this.searchTerm = \"\";\n this.filteredCountries = this.countries;\n this.onChangeSelect.emit(option);\n }\n\n showOptions() {\n if (this.disabled) return;\n this.isExpanded = !this.isExpanded;\n\n if (this.isExpanded) {\n setTimeout(() => {\n this.searchInput?.nativeElement.focus();\n }, 0);\n }\n }\n\n setPropertyById(code: string) {\n const found = this.countries.find((propertie) => propertie.code === code);\n if (found) {\n this.selectedOption = found;\n this.onChangeSelect.emit(this.selectedOption);\n }\n }\n\n setPropertyByLabel(name: string) {\n this.selectedOption = this.countries.find(\n (propertie) => propertie.name === name,\n );\n this.onChangeSelect.emit(this.selectedOption);\n }\n\n filterCountries() {\n const term = this.searchTerm.toLowerCase();\n this.filteredCountries = this.countries.filter((country) =>\n country.name.toLowerCase().includes(term),\n );\n }\n\n clearSelection() {\n this.selectedOption = null;\n this.searchTerm = \"\";\n this.filteredCountries = this.countries;\n }\n}\n","<div class=\"custom-select\">\n <label *ngIf=\"selectProperties?.label\">\n {{ selectProperties.label | translate }}\n <span *ngIf=\"selectProperties?.showObligatory\">*</span>\n </label>\n <button\n type=\"button\"\n class=\"select-button\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'select-completed': !!selectedOption,\n 'select-invalid': hasError\n }\"\n (click)=\"showOptions()\"\n >\n <div>\n <ng-container *ngIf=\"selectedOption; else placeholder\">\n <img\n style=\"border-radius: 16px\"\n [src]=\"'https://flagsapi.com/' + selectedOption.code + '/shiny/24.png'\"\n />\n {{ selectedOption.name }}\n </ng-container>\n\n <ng-template #placeholder>\n {{ selectProperties.placeholder }}\n </ng-template>\n </div>\n\n <app-icon\n [name]=\"isExpanded ? 'Dropdown-up' : 'Dropdown-down'\"\n width=\"20px\"\n height=\"20px\"\n color=\"Gray-Gray-500\"\n ></app-icon>\n </button>\n\n <ul class=\"select-dropdown\" [ngClass]=\"isExpanded ? 'expanded-select' : 'collapsed-select'\">\n <li>\n <input\n #searchInput\n type=\"text\"\n [(ngModel)]=\"searchTerm\"\n (input)=\"filterCountries()\"\n class=\"country-search\"\n placeholder=\"{{ 'Search country' | translate }}\"\n />\n </li>\n <li *ngFor=\"let country of filteredCountries\">\n <button class=\"option\" (click)=\"selectOption(country)\" type=\"button\">\n <img\n style=\"border-radius: 16px\"\n [src]=\"'https://flagsapi.com/' + country.code + '/shiny/24.png'\"\n />\n {{ country.name }}\n </button>\n </li>\n </ul>\n</div>\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n NO_ERRORS_SCHEMA,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n Inject,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { Subscription } from \"rxjs\";\n\n// import { NgPrimeModule } from \"@app/ngprime.module\";\n// import { DrawerService } from \"@app/services/drawer.service\";\n// import { DrawerConfig } from \"@app/utilities/interfaces/ui/drawer.interface\";\n\ntype DrawerConfig = any;\nconst DrawerService = \"DrawerService\";\n\n@Component({\n selector: \"dropi-drawer\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./dropi-drawer.component.html\",\n styleUrls: [\"./dropi-drawer.component.scss\"],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class DropiDrawerComponent implements OnDestroy, AfterViewInit {\n @ViewChild(\"container\", { read: ViewContainerRef })\n container!: ViewContainerRef;\n\n drawerConfig: DrawerConfig;\n drawerTitle: string = null;\n drawerIsOpen: boolean = false;\n componentRef: ComponentRef<any> | null;\n private readonly subscriptions = new Subscription();\n\n constructor(@Inject(DrawerService) private readonly drawerService: any) {\n this.drawerConfig = this.drawerService?.defaultDrawerConfig || {};\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n this.drawerService.drawerContent$.subscribe((content) => {\n if (content && this.container) {\n this.container.clear();\n if (this.componentRef) this.componentRef.destroy();\n\n this.componentRef = this.container.createComponent(content.component);\n\n if (content.inputs) {\n Object.keys(content.inputs).forEach((key) => {\n this.componentRef.instance[key] = content.inputs[key];\n });\n }\n\n if (content.outputs) {\n Object.keys(content.outputs).forEach((key) => {\n if (this.componentRef.instance[key] instanceof EventEmitter) {\n this.subscriptions.add(\n this.componentRef.instance[key].subscribe(\n (...args: any[]) => {\n content.outputs[key](...args);\n },\n ),\n );\n }\n });\n }\n this.drawerConfig = content.config;\n this.componentRef.changeDetectorRef.detectChanges();\n }\n }),\n );\n\n this.subscriptions.add(\n this.drawerService.drawerHeader$.subscribe(\n (header) => (this.drawerTitle = header),\n ),\n );\n\n this.subscriptions.add(\n this.drawerService.drawerIsOpen$.subscribe(\n (isOpen) => (this.drawerIsOpen = isOpen),\n ),\n );\n }\n\n close() {\n this.drawerService.closeDrawer();\n }\n\n get sizeClass(): string {\n return (this.drawerConfig?.size ?? \"\").toLowerCase();\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","<div \n [class]=\"'dropi-drawer size-' + drawerConfig.size.toLowerCase()\" [ngClass]=\"{\n headless: drawerConfig.headless,\n }\"\n>\n <p-sidebar\n [(visible)]=\"drawerIsOpen\"\n (onHide)=\"close()\"\n [blockScroll]=\"true\"\n [position]=\"drawerConfig.position\"\n [showCloseIcon]=\"!drawerConfig.headless\"\n [styleClass]=\"drawerConfig.customClass\"\n style=\"z-index: 999;\"\n >\n <ng-template pTemplate=\"header\">\n <div *ngIf=\"!drawerConfig.headless\">\n <h3>{{ drawerTitle }}</h3>\n </div>\n </ng-template>\n \n <ng-container #container />\n </p-sidebar>\n</div>","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Inject,\n OnDestroy,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { NavigationEnd } from \"@angular/router\";\nimport { Subscription } from \"rxjs\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nexport interface SidebarProperties {\n id: number;\n icon: string;\n text: string;\n route: string;\n expandedMenu?: boolean;\n active?: boolean;\n subItems?: SidebarProperties[];\n}\n\n@Component({\n selector: \"app-sidebar\",\n standalone: true,\n imports: [CommonModule, IconComponent, TranslateModule],\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n})\nexport class SidebarComponent implements OnInit, OnDestroy {\n @Input() public sideBarProperties: SidebarProperties[] = [];\n @Output() public onIndexChanged: EventEmitter<SidebarProperties> =\n new EventEmitter<SidebarProperties>();\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(@Inject(\"Router\") private router: any) {}\n\n ngOnInit(): void {\n if (this.router?.url) {\n this.setActiveIndex(this.router.url);\n }\n this.handleUrlChange();\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n\n handleUrlChange() {\n if (this.router?.events) {\n this.subscriptions.add(\n this.router.events.subscribe((event: any) => {\n if (event instanceof NavigationEnd) {\n this.setActiveIndex(event.url);\n }\n }),\n );\n }\n }\n\n setActiveIndex(route: string) {\n if (!this.sideBarProperties) return;\n this.sideBarProperties.forEach((propertie) => {\n if (propertie.subItems && propertie.subItems.length > 0) {\n propertie.subItems = propertie.subItems.map((subItem) => {\n return {\n ...subItem,\n active: subItem.route && route.includes(subItem.route),\n };\n });\n }\n\n propertie.active = propertie.route && route.includes(propertie.route);\n });\n }\n\n setExpandedPropertie(id: number) {\n const propertieClicked = (this.sideBarProperties as any[]).findIndex(\n (item) => item.id === id,\n );\n if (propertieClicked !== -1) {\n this.sideBarProperties[propertieClicked].expandedMenu =\n !this.sideBarProperties[propertieClicked].expandedMenu;\n }\n }\n\n onItemClick(itemClicked: SidebarProperties) {\n this.onIndexChanged.emit(itemClicked);\n if (itemClicked.subItems && itemClicked.subItems.length > 0) {\n this.setExpandedPropertie(itemClicked.id);\n return;\n }\n\n if (itemClicked.route) {\n this.router?.navigate?.([itemClicked.route]);\n }\n }\n\n onSubItemClick(itemClicked: SidebarProperties) {\n this.onIndexChanged.emit(itemClicked);\n if (itemClicked.route) {\n this.router?.navigate?.([itemClicked.route]);\n }\n }\n}\n","<div class=\"main-sidebar-container\">\n <ng-container *ngFor=\"let item of sideBarProperties\">\n <div\n class=\"sidebar-option\"\n [ngClass]=\"item.active ? 'sidebar-active-option' : 'sidebar-default-option'\"\n (click)=\"onItemClick(item)\"\n >\n <app-icon\n [name]=\"item.icon\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n <span>{{ item.text | translate }}</span>\n <app-icon\n *ngIf=\"item.subItems && item.subItems.length > 0\"\n class=\"arrow\"\n [ngClass]=\"{\n 'arrow-expanded': item.expandedMenu\n }\"\n name=\"Dropdown-down\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n </div>\n <ng-container *ngIf=\"item.subItems && item.subItems.length > 0\">\n <div\n class=\"sidebar-sub-item\"\n *ngFor=\"let subOption of item.subItems\"\n (click)=\"onSubItemClick(subOption)\"\n [ngClass]=\"{\n 'sidebar-expanded': item.expandedMenu,\n 'sidebar-sub-item-default': !subOption.active,\n 'sidebar-sub-item-active': subOption.active\n }\"\n >\n {{ subOption.text | translate }}\n </div>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\n// import {\n// DropiTableRow,\n// } from '@app/utilities/interfaces/ui/dropi-table.interface';\ntype DropiTableRow = any;\n\n@Component({\n selector: \"app-dropi-navbar\",\n templateUrl: \"./dropi-navbar.component.html\",\n styleUrls: [\"./dropi-navbar.component.scss\"],\n imports: [CommonModule],\n standalone: true,\n})\nexport class DropiNavBarComponent implements OnInit {\n @Input() public data: DropiTableRow[] = [];\n @Input() public title: string = \"\";\n @Output() clickLoadItem = new EventEmitter<{ item: any }>();\n sidebarItems: any[] = [];\n activeItem: any;\n isLoading: boolean = true;\n\n ngOnInit(): void {\n this.updateSidebarItems();\n }\n\n ngOnChanges(): void {\n this.updateSidebarItems();\n }\n\n private updateSidebarItems(): void {\n if (this.data && this.data.length > 0) {\n this.sidebarItems = this.data.map((item) => ({\n ...item,\n expanded: false,\n }));\n } else {\n }\n this.isLoading = false;\n }\n\n handleItemClick(item: any): void {\n if (item.children && item.children.length > 0) {\n item.expanded = !item.expanded;\n }\n\n this.activeItem = item;\n if (!item.children) {\n this.clickLoadItem.emit(item);\n }\n }\n}\n","<aside class=\"sidebar\">\n <div class=\"sidebar-header\">\n <h4>{{ title }}</h4>\n <span class=\"indicator-dot\"></span>\n </div>\n <ul class=\"nav-list\">\n <li *ngFor=\"let item of sidebarItems\" class=\"nav-list-item\">\n <button\n (click)=\"handleItemClick(item)\"\n class=\"nav-item\"\n [class.parent-active]=\"\n (item.expanded && item.children && item.children.length > 0) || item === activeItem\n \"\n >\n <span class=\"font-semibold\">{{ item?.name.value }}</span>\n <i\n *ngIf=\"item.children && item.children.length > 0\"\n class=\"fas fa-chevron-right dropdown-icon\"\n [class.rotated]=\"item.expanded\"\n ></i>\n </button>\n <div\n class=\"sub-menu-container\"\n [class.open]=\"item.expanded\"\n *ngIf=\"item.children && item.children.length > 0\"\n >\n <ul class=\"sub-list\">\n <li *ngFor=\"let subItem of item.children\">\n <button\n (click)=\"handleItemClick(subItem)\"\n class=\"nav-item sub-item\"\n [class.active]=\"subItem === activeItem\"\n >\n {{ subItem?.name.value }}\n </button>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n</aside>\n","/**\n * UI Dropi Components - Barrel Exports\n *\n * Este archivo exporta todos los componentes UI standalone.\n * Uso: import { IconComponent, AlertComponent } from '@app/ui';\n *\n * Para importar todos: import * as UiComponents from '@app/ui';\n */\n\n// Date Pickers\nexport { DatePickerRangeComponent } from \"./date-picker-range/date-picker-range.component\";\nexport { DatePickerComponent } from \"./date-picker/date-picker.component\";\n\n// Tooltips\nexport { TooltipComponent } from \"./tooltip/tooltip.component\";\nexport { DropiTooltipComponent } from \"./dropi-tooltip/dropi-tooltip.component\";\n\n// Tags & Badges\nexport { TagTypeProductComponent } from \"./tag-type-product/tag-type-product.component\";\nexport { DropiTagComponent } from \"./dropi-tag/dropi-tag.component\";\nexport { DropiChipsComponent } from \"./dropi-chips/dropi-chips.component\";\n\n// Banners\nexport { DropiBannerExternalComponent } from \"./dropi-banner-external/dropi-banner-external.component\";\nexport { AlertValidationComponent } from \"./alert-validation/alert-validation.component\";\nexport { BetaTagComponent } from \"./beta-tag/beta-tag.component\";\n\n// Modals & Alerts\nexport { AlertModalComponent } from \"./alert-modal/alert-modal.component\";\nexport { AlertComponent } from \"./alert/alert.component\";\nexport { ConfirmDialogComponent } from \"./confirm-dialog/confirm-dialog.component\";\nexport { DropiModalComponent } from \"./dropi-modal/dropi-modal.component\";\nexport { PTemplateDirective } from \"./dropi-modal/p-template.directive\";\n\n// Steppers & Navigation\nexport { SimpleStepperComponent } from \"./simple-stepper/simple-stepper.component\";\nexport { BreadcrumbComponent } from \"./breadcrumb/breadcrumb.component\";\nexport { TabsComponent } from \"./tabs/tabs.component\";\nexport { DropiStepsComponent } from \"./dropi-steps/dropi-steps.component\";\nexport { VerticalStepsComponent } from \"./vertical-steps/vertical-steps.component\";\nexport type {\n VerticalStep,\n VerticalStepState,\n} from \"./vertical-steps/vertical-steps.component\";\nexport { DropiPaginatorComponent } from \"./dropi-paginator/dropi-paginator.component\";\nexport { DropiBreadcrumbComponent } from \"./dropi-breadcrumb/dropi-breadcrumb.component\";\nexport { DropiLanguagesSelectorComponent } from \"./dropi-languages-selector/dropi-languages-selector.component\";\n\n// Selectors\nexport { CitySelectorComponent } from \"./city-selector/city-selector.component\";\nexport { DropiSelectComponent } from \"./dropi-select/dropi-select.component\";\n\n// Lists & Selection\nexport { RadioSelectionListComponent } from \"./radio-selection-list/radio-selection-list.component\";\nexport { CheckboxSelectionListComponent } from \"./checkbox-selection-list/checkbox-selection-list.component\";\nexport { DropiCheckboxComponent } from \"./dropi-checkbox/dropi-checkbox.component\";\nexport { DropiRadioButtonComponent } from \"./dropi-radio-button/dropi-radio-button.component\";\n\n// Loaders & Feedback\nexport { LottieLoaderComponent } from \"./lottie-loader/lottie-loader.component\";\nexport { ToastComponent } from \"./toast/toast.component\";\nexport { FileUploadProgressBarComponent } from \"./file-upload-progress-bar/file-upload-progress-bar.component\";\nexport { DropiIlustrationIconComponent } from \"./dropi-ilustration-icon/dropi-ilustration-icon.component\";\nexport { SpinnerComponent } from \"./spinner/spinner.component\";\n\n// Accordion\nexport { AccordionComponent } from \"./accordion/accordion.component\";\nexport { AccordionItemComponent } from \"./accordion/accordion-item/accordion-item.component\";\n\n// Text & Content\nexport { ReadMoreComponent } from \"./read-more/read-more.component\";\nexport { EmptyComponent } from \"./empty/empty.component\";\n\n// Icons & Images\nexport { IconComponent } from \"./icon/icon.component\";\nexport { DropiImageOverlayComponent } from \"./dropi-image-overlay/dropi-image-overlay.component\";\nexport { DropiLogoComponent } from \"./dropi-logo/dropi-logo.component\";\nexport { DropiAvatarsComponent } from \"./dropi-avatars/dropi-avatars.component\";\nexport { CountryFlagsComponent } from \"./country-flags/country-flags.component\";\n\n// Form Controls\nexport { InputComponent } from \"./input/input.component\";\nexport { DropiSwitchComponent } from \"./dropi-switch/dropi-switch.component\";\nexport { DropiSearchComponent } from \"./dropi-search/dropi-search.component\";\nexport { OtpSendCodeComponent } from \"./otp-send-code/otp-send-code.component\";\nexport { DropiTextAreaComponent } from \"./dropi-text-area/dropi-text-area.component\";\nexport { DropiPhoneInputComponent } from \"./dropi-phone-input/dropi-phone-input.component\";\nexport { InputToggleComponent } from \"./toggle/input-toggle.component\";\n\n// Multimedia\nexport { DropiCarouselComponent } from \"./dropi-carousel/dropi-carousel.component\";\nexport { DropiYoutubeLazyVideoComponent } from \"./dropi-youtube-lazy-video/dropi-youtube-lazy-video.component\";\n\n// Buttons\nexport {\n ButtonComponent,\n ButtonComponent as DropiButtonComponent,\n} from \"./dropi-button/dropi-button.component\";\n\n// Tables\nexport { DropiTableComponent } from \"./dropi-table/dropi-table.component\";\n\n// Elements\nexport { DropiFavoriteButtonComponent } from \"./dropi-favorite-button/dropi-favorite-button.component\";\nexport { DropiCardCheckboxComponent } from \"./dropi-card-checkbox/dropi-card-checkbox.component\";\nexport { CardSectionComponent } from \"./card-section/card-section.component\";\nexport { CardProductComponent } from \"./card-product/card-product.component\";\nexport { ColorPickerComponent } from \"./color-picker/color-picker.component\";\nexport { DropiBadgeComponent } from \"./dropi-badge/dropi-badge.component\";\nexport { BadgeComponent } from \"./badge/badge.component\";\nexport { DropiSkeletonComponent } from \"./dropi-skeleton/dropi-skeleton.component\";\nexport { EmptyStateComponent } from \"./empty-state/empty-state.component\";\n\n// File Upload\nexport { DropiFileUploadComponent } from \"./dropi-file-upload/dropi-file-upload.component\";\nexport { DropZoneComponent } from \"./dropi-file-upload/drop-zone/drop-zone.component\";\n\n// Country Selector\nexport { DropiCountrySelectorComponent } from \"./dropi-country-selector/dropi-country-selector.component\";\n\n// Containers\nexport { DropiDrawerComponent } from \"./dropi-drawer/dropi-drawer.component\";\nexport { SidebarComponent } from \"./sidebar/sidebar.component\";\nexport { DropiNavBarComponent } from \"./dropi-navbar/dropi-navbar.component\";\nexport { DropiDropdownComponent } from \"./dropi-dropdown/dropi-dropdown.component\";\n\n/**\n * Array con todos los componentes UI para importar en módulos\n * Uso en imports de @NgModule o standalone component:\n * imports: [...UI_COMPONENTS]\n */\nexport const UI_COMPONENTS = [\n // Importar desde los paths relativos en el archivo que lo use\n] as const;\n","/**\n * Registro de elementos personalizados (Web Components)\n *\n * Este archivo contiene la función que registra todos los componentes Angular\n * como Custom Elements del navegador usando Angular Elements.\n */\n\nimport \"@angular/compiler\";\nimport { Injector, Type, ApplicationRef } from \"@angular/core\";\nimport { createCustomElement } from \"@angular/elements\";\n\n/**\n * Interface para definición de componentes\n */\ninterface ComponentDefinition {\n selector: string;\n component: Type<any>;\n description: string;\n}\n\n/**\n * Registra todos los componentes Dropi como custom elements\n *\n * @param injector - El injector de Angular necesario para createCustomElement\n * @param components - Array de componentes a registrar\n *\n * @example\n * ```typescript\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { registerDropiElements } from '@oropi/ui-elements';\n * import { ButtonComponent } from '@app/ui';\n *\n * const components = [\n * { selector: 'dropi-button', component: ButtonComponent }\n * ];\n *\n * platformBrowserDynamic().bootstrapModule(AppModule)\n * .then((ref) => {\n * const injector = ref.injector;\n * registerDropiElements(injector, components);\n * });\n * ```\n */\nimport { createApplication } from \"@angular/platform-browser\";\n\n// Importar todos los componentes para registro\nimport {\n ButtonComponent,\n AlertComponent,\n InputComponent,\n DropiTagComponent,\n DropiChipsComponent,\n DropiSwitchComponent,\n DropiSearchComponent,\n DropiSelectComponent,\n DropiTableComponent,\n DropiModalComponent,\n AlertModalComponent,\n ToastComponent,\n DatePickerComponent,\n DatePickerRangeComponent,\n TooltipComponent,\n DropiTooltipComponent,\n TagTypeProductComponent,\n SimpleStepperComponent,\n BreadcrumbComponent,\n TabsComponent,\n DropiStepsComponent,\n VerticalStepsComponent,\n CitySelectorComponent,\n RadioSelectionListComponent,\n CheckboxSelectionListComponent,\n LottieLoaderComponent,\n AccordionComponent,\n AccordionItemComponent,\n ReadMoreComponent,\n IconComponent,\n DropiImageOverlayComponent,\n OtpSendCodeComponent,\n DropZoneComponent,\n DropiFileUploadComponent,\n DropiCountrySelectorComponent,\n DropiCheckboxComponent,\n DropiRadioButtonComponent,\n DropiTextAreaComponent,\n DropiPhoneInputComponent,\n SidebarComponent,\n DropiNavBarComponent,\n DropiBreadcrumbComponent,\n DropiPaginatorComponent,\n DropiLogoComponent,\n DropiBadgeComponent,\n BadgeComponent,\n DropiSkeletonComponent,\n EmptyStateComponent,\n DropiAvatarsComponent,\n FileUploadProgressBarComponent,\n DropiIlustrationIconComponent,\n DropiCarouselComponent,\n DropiYoutubeLazyVideoComponent,\n DropiFavoriteButtonComponent,\n DropiCardCheckboxComponent,\n CardSectionComponent,\n CardProductComponent,\n ColorPickerComponent,\n CountryFlagsComponent,\n DropiDrawerComponent,\n DropiBannerExternalComponent,\n AlertValidationComponent,\n BetaTagComponent,\n ConfirmDialogComponent,\n SpinnerComponent,\n EmptyComponent,\n InputToggleComponent,\n DropiLanguagesSelectorComponent,\n DropiDropdownComponent,\n} from \"../components-source\";\n\n/**\n * Lista interna de todos los componentes disponibles para registro automático\n */\nconst ALL_COMPONENTS: ComponentDefinition[] = [\n {\n selector: \"dropi-wc-button\",\n component: ButtonComponent,\n description: \"Button Component\",\n },\n {\n selector: \"dropi-wc-alert\",\n component: AlertComponent,\n description: \"Alert Component\",\n },\n {\n selector: \"dropi-wc-input\",\n component: InputComponent,\n description: \"Input Component\",\n },\n {\n selector: \"dropi-wc-tag\",\n component: DropiTagComponent,\n description: \"Tag Component\",\n },\n {\n selector: \"dropi-wc-chips\",\n component: DropiChipsComponent,\n description: \"Chips Component\",\n },\n {\n selector: \"dropi-wc-switch\",\n component: DropiSwitchComponent,\n description: \"Switch Component\",\n },\n {\n selector: \"dropi-wc-search\",\n component: DropiSearchComponent,\n description: \"Search Component\",\n },\n {\n selector: \"dropi-wc-select\",\n component: DropiSelectComponent,\n description: \"Select Component\",\n },\n {\n selector: \"dropi-wc-table\",\n component: DropiTableComponent,\n description: \"Table Component\",\n },\n {\n selector: \"dropi-wc-modal\",\n component: DropiModalComponent,\n description: \"Modal Component\",\n },\n {\n selector: \"dropi-wc-alert-modal\",\n component: AlertModalComponent,\n description: \"Alert Modal Component\",\n },\n {\n selector: \"dropi-wc-toast\",\n component: ToastComponent,\n description: \"Toast Component\",\n },\n {\n selector: \"dropi-wc-date-picker\",\n component: DatePickerComponent,\n description: \"Date Picker Component\",\n },\n {\n selector: \"dropi-wc-date-picker-range\",\n component: DatePickerRangeComponent,\n description: \"Date Picker Range Component\",\n },\n {\n selector: \"dropi-wc-tooltip\",\n component: TooltipComponent,\n description: \"Tooltip Component\",\n },\n {\n selector: \"dropi-wc-tooltip-v2\",\n component: DropiTooltipComponent,\n description: \"Dropi Tooltip Component\",\n },\n {\n selector: \"dropi-wc-tag-product\",\n component: TagTypeProductComponent,\n description: \"Product Tag Component\",\n },\n {\n selector: \"dropi-wc-simple-stepper\",\n component: SimpleStepperComponent,\n description: \"Simple Stepper Component\",\n },\n {\n selector: \"dropi-wc-breadcrumb\",\n component: BreadcrumbComponent,\n description: \"Breadcrumb Component\",\n },\n {\n selector: \"dropi-wc-tabs\",\n component: TabsComponent,\n description: \"Tabs Component\",\n },\n {\n selector: \"dropi-wc-steps\",\n component: DropiStepsComponent,\n description: \"Steps Component\",\n },\n {\n selector: \"dropi-wc-vertical-steps\",\n component: VerticalStepsComponent,\n description: \"Vertical Steps Component\",\n },\n {\n selector: \"dropi-wc-city-selector\",\n component: CitySelectorComponent,\n description: \"City Selector Component\",\n },\n {\n selector: \"dropi-wc-radio-list\",\n component: RadioSelectionListComponent,\n description: \"Radio List Component\",\n },\n {\n selector: \"dropi-wc-checkbox-list\",\n component: CheckboxSelectionListComponent,\n description: \"Checkbox List Component\",\n },\n {\n selector: \"dropi-wc-lottie-loader\",\n component: LottieLoaderComponent,\n description: \"Lottie Loader Component\",\n },\n {\n selector: \"dropi-wc-accordion\",\n component: AccordionComponent,\n description: \"Accordion Component\",\n },\n {\n selector: \"dropi-wc-accordion-item\",\n component: AccordionItemComponent,\n description: \"Accordion Item Component\",\n },\n {\n selector: \"dropi-wc-read-more\",\n component: ReadMoreComponent,\n description: \"Read More Component\",\n },\n {\n selector: \"dropi-wc-icon\",\n component: IconComponent,\n description: \"Icon Component\",\n },\n {\n selector: \"dropi-wc-image-overlay\",\n component: DropiImageOverlayComponent,\n description: \"Image Overlay Component\",\n },\n {\n selector: \"dropi-wc-otp-send\",\n component: OtpSendCodeComponent,\n description: \"OTP Send Component\",\n },\n {\n selector: \"dropi-wc-dropzone\",\n component: DropZoneComponent,\n description: \"Dropzone Component\",\n },\n {\n selector: \"dropi-wc-file-upload\",\n component: DropiFileUploadComponent,\n description: \"File Upload Component\",\n },\n {\n selector: \"dropi-wc-country-selector\",\n component: DropiCountrySelectorComponent,\n description: \"Country Selector Component\",\n },\n {\n selector: \"dropi-wc-checkbox\",\n component: DropiCheckboxComponent,\n description: \"Checkbox Component\",\n },\n {\n selector: \"dropi-wc-radio-button\",\n component: DropiRadioButtonComponent,\n description: \"Radio Button Component\",\n },\n {\n selector: \"dropi-wc-text-area\",\n component: DropiTextAreaComponent,\n description: \"Text Area Component\",\n },\n {\n selector: \"dropi-wc-phone-input\",\n component: DropiPhoneInputComponent,\n description: \"Phone Input Component\",\n },\n {\n selector: \"dropi-wc-sidebar\",\n component: SidebarComponent,\n description: \"Sidebar Component\",\n },\n {\n selector: \"dropi-wc-navbar\",\n component: DropiNavBarComponent,\n description: \"Navbar Component\",\n },\n {\n selector: \"dropi-wc-breadcrumb-v2\",\n component: DropiBreadcrumbComponent,\n description: \"Breadcrumb V2 Component\",\n },\n {\n selector: \"dropi-wc-paginator\",\n component: DropiPaginatorComponent,\n description: \"Paginator Component\",\n },\n {\n selector: \"dropi-wc-logo\",\n component: DropiLogoComponent,\n description: \"Logo Component\",\n },\n {\n selector: \"dropi-wc-badge-v2\",\n component: DropiBadgeComponent,\n description: \"Dropi Badge Component\",\n },\n {\n selector: \"dropi-wc-badge\",\n component: BadgeComponent,\n description: \"Badge Component\",\n },\n {\n selector: \"dropi-wc-skeleton\",\n component: DropiSkeletonComponent,\n description: \"Skeleton Component\",\n },\n {\n selector: \"dropi-wc-empty-state\",\n component: EmptyStateComponent,\n description: \"Empty State Component\",\n },\n {\n selector: \"dropi-wc-avatars\",\n component: DropiAvatarsComponent,\n description: \"Avatars Component\",\n },\n {\n selector: \"dropi-wc-file-upload-progress\",\n component: FileUploadProgressBarComponent,\n description: \"File Upload Progress Component\",\n },\n {\n selector: \"dropi-wc-ilustration-icon\",\n component: DropiIlustrationIconComponent,\n description: \"Ilustration Icon Component\",\n },\n {\n selector: \"dropi-wc-carousel\",\n component: DropiCarouselComponent,\n description: \"Carousel Component\",\n },\n {\n selector: \"dropi-wc-youtube-video\",\n component: DropiYoutubeLazyVideoComponent,\n description: \"Youtube Video Component\",\n },\n {\n selector: \"dropi-wc-favorite-button\",\n component: DropiFavoriteButtonComponent,\n description: \"Favorite Button Component\",\n },\n {\n selector: \"dropi-wc-card-checkbox\",\n component: DropiCardCheckboxComponent,\n description: \"Card Checkbox Component\",\n },\n {\n selector: \"dropi-wc-card-section\",\n component: CardSectionComponent,\n description: \"Card Section Component\",\n },\n {\n selector: \"dropi-wc-card-product\",\n component: CardProductComponent,\n description: \"Card Product Component\",\n },\n {\n selector: \"dropi-wc-color-picker\",\n component: ColorPickerComponent,\n description: \"Color Picker Component\",\n },\n {\n selector: \"dropi-wc-country-flags\",\n component: CountryFlagsComponent,\n description: \"Country Flags Component\",\n },\n {\n selector: \"dropi-wc-drawer\",\n component: DropiDrawerComponent,\n description: \"Drawer Component\",\n },\n {\n selector: \"dropi-wc-banner-external\",\n component: DropiBannerExternalComponent,\n description: \"External Banner Component\",\n },\n {\n selector: \"dropi-wc-alert-validation\",\n component: AlertValidationComponent,\n description: \"Alert Validation Component\",\n },\n {\n selector: \"dropi-wc-beta-tag\",\n component: BetaTagComponent,\n description: \"Beta Tag Component\",\n },\n {\n selector: \"dropi-wc-confirm-dialog\",\n component: ConfirmDialogComponent,\n description: \"Confirm Dialog Component\",\n },\n {\n selector: \"dropi-wc-spinner\",\n component: SpinnerComponent,\n description: \"Spinner Component\",\n },\n {\n selector: \"dropi-wc-empty\",\n component: EmptyComponent,\n description: \"Empty Component\",\n },\n {\n selector: \"dropi-wc-toggle\",\n component: InputToggleComponent,\n description: \"Toggle Component\",\n },\n {\n selector: \"dropi-wc-languages-selector\",\n component: DropiLanguagesSelectorComponent,\n description: \"Languages Selector Component\",\n },\n {\n selector: \"dropi-wc-dropdown\",\n component: DropiDropdownComponent,\n description: \"Dropdown Component\",\n },\n];\n\nexport function registerDropiElements(\n injector: Injector,\n components: ComponentDefinition[],\n): void {\n // Registrar cada componente como custom element\n components.forEach(({ selector, component, description }) => {\n try {\n // Verificar si el custom element ya está definido\n if (!customElements.get(selector)) {\n const element = createCustomElement(component, { injector });\n customElements.define(selector, element);\n console.log(\n `✅ Web Component registrado: <${selector}> - ${description}`,\n );\n } else {\n console.warn(`⚠️ Custom element <${selector}> ya está definido`);\n }\n } catch (error) {\n console.error(`❌ Error registrando <${selector}>:`, error);\n }\n });\n}\n\n/**\n * Inicializa el entorno de Angular y registra todos los Web Components automáticamente.\n * Ideal para uso en frameworks como React, Vue, o Vanilla JS.\n */\nexport function defineCustomElements(config?: {\n providers?: any[];\n}): Promise<void> {\n const appConfig =\n config && config.providers\n ? { providers: config.providers }\n : { providers: [] };\n return createApplication(appConfig)\n .then((appRef: ApplicationRef) => {\n registerDropiElements(appRef.injector, ALL_COMPONENTS);\n console.log(\"🚀 Dropi UI Elements initialized successfully\");\n })\n .catch((err: any) =>\n console.error(\"❌ Error initializing Dropi UI Elements\", err),\n );\n}\n\n/**\n * Función auxiliar para verificar si un componente está registrado\n */\nexport function isComponentRegistered(selector: string): boolean {\n return customElements.get(selector) !== undefined;\n}\n","import \"@angular/compiler\";\n/**\n * Public API Surface de @dropi/ui-components\n */\n\n// Exportar componentes individuales desde components-source\nexport { ButtonComponent } from \"./components-source/dropi-button/dropi-button.component\";\n\n// Exportar el módulo de elementos\nexport { DropiElementsModule } from \"./lib/elements.module\";\n\n// Exportar funciones de registro\nexport {\n registerDropiElements,\n defineCustomElements,\n isComponentRegistered,\n} from \"./lib/elements-registry\";\n\n// Información de versión\nexport const DROPI_ELEMENTS_VERSION = \"1.0.0\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i2","i1","i1.AccordionComponent","NgInput","CurrencyComponentStub"],"mappings":"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"}
|