uni-app-fe 0.0.31 → 0.1.0

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.
@@ -10,12 +10,13 @@ import { DxButtonModule } from 'devextreme-angular/ui/button';
10
10
  import * as i1$2 from 'devextreme-angular/ui/tooltip';
11
11
  import { DxTooltipModule } from 'devextreme-angular/ui/tooltip';
12
12
  import * as i2 from 'devextreme-angular/core';
13
- import { UniToastManager, UniLocaleManager } from 'uni-manager';
13
+ import { UniToastManager } from 'uni-manager/toast';
14
14
  import { RouterLink, RouterLinkActive } from '@angular/router';
15
15
  import * as i3 from 'devextreme-angular/ui/select-box';
16
16
  import { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';
17
17
  import * as i4 from 'devextreme-angular/ui/switch';
18
18
  import { DxSwitchModule } from 'devextreme-angular/ui/switch';
19
+ import { UniLocaleManager } from 'uni-manager/locale';
19
20
  import { UniLoaderService } from 'uni-app-fe/service';
20
21
 
21
22
  class UniBannerAlert {
@@ -234,5 +235,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
234
235
  * Generated bundle index. Do not edit.
235
236
  */
236
237
 
237
- export { UniBannerAlert, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLed, UniSideMenu };
238
+ export { LedStatus, UniBannerAlert, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLed, UniSideMenu };
238
239
  //# sourceMappingURL=uni-app-fe-component.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"uni-app-fe-component.mjs","sources":["../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/component/uni-header/uni-header.ts","../../../projects/uni-app-fe/component/uni-header/uni-header.html","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/component/uni-led/model.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.html","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/component/uni-app-fe-component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faTriangleExclamation, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-banner-alert',\r\n imports: [CommonModule, FaIconComponent, UniTranslatePipe],\r\n templateUrl: './uni-banner-alert.html',\r\n styleUrls: ['./uni-banner-alert.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniBannerAlert {\r\n /* Icons */\r\n type = input.required<'warning' | 'error'>();\r\n lblTitle = input.required<string>();\r\n lblDescription = input.required<string>();\r\n icon = input<IconDefinition>();\r\n\r\n /* Icons */\r\n readonly ICON_WARNING = faTriangleExclamation;\r\n}\r\n","<div\r\n class=\"flex w-full flex-col gap-6 rounded-2xl border-2 p-4 text-center shadow-lg backdrop-blur-md\"\r\n [ngClass]=\"{\r\n 'bg-amber-500/25 border-amber-500 dark:text-amber-100 text-amber-500': type() === 'warning',\r\n 'bg-rose-500/25 border-rose-500 dark:text-rose-200 text-rose-500': type() === 'error'\r\n }\">\r\n <div class=\"flex flex-col items-center gap-4\">\r\n <h1 class=\"text-lg! font-semibold\">{{ lblTitle() | translate }}</h1>\r\n @if(icon(); as icon) {\r\n <fa-icon class=\"text-5xl\" [icon]=\"icon\"></fa-icon>\r\n }\r\n <p class=\"text-sm leading-relaxed text-white!\">{{ lblDescription() | translate }}</p>\r\n </div>\r\n</div>\r\n","import { NgOptimizedImage } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\n\r\n@Component({\r\n selector: 'uni-header',\r\n standalone: true,\r\n imports: [DxButtonModule, NgOptimizedImage],\r\n templateUrl: './uni-header.html',\r\n styleUrls: ['./uni-header.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniHeader {\r\n /* Input */\r\n title = input.required<string>();\r\n version = input.required<string>();\r\n pathBrandLogo = input.required<string>();\r\n pathAppLogo = input<string>();\r\n sideMenu = input<boolean>(false);\r\n\r\n /* Output */\r\n evtToggleMenu = output<true>();\r\n}\r\n","<div\r\n class=\"dark:bg-theme-dark-800 flex h-16 items-center gap-4 overflow-hidden rounded-xl bg-blue-300 px-4 py-3 text-white\">\r\n <!-- App logo -->\r\n @if (pathAppLogo(); as pathAppLogo) {\r\n <img\r\n [ngSrc]=\"pathAppLogo\"\r\n width=\"40\"\r\n height=\"40\"\r\n priority\r\n class=\"aspect-square h-full w-auto\"\r\n alt=\"App logo\" />\r\n }\r\n\r\n <!-- Info -->\r\n <div class=\"flex flex-1 flex-col overflow-hidden\">\r\n <p class=\"truncate text-xl font-semibold uppercase leading-tight\">{{ title() }}</p>\r\n <p class=\"text-xs opacity-75\">{{ version() }}</p>\r\n </div>\r\n\r\n <div class=\"flex h-full items-center gap-2\">\r\n <!-- Brand Logo -->\r\n <div class=\"2xs:block relative hidden h-full w-24\">\r\n <img\r\n [ngSrc]=\"pathBrandLogo()\"\r\n fill\r\n priority\r\n class=\"object-contain object-right\"\r\n alt=\"Brand logo\" />\r\n </div>\r\n\r\n <!-- Button menu -->\r\n @if (sideMenu()) {\r\n <dx-button class=\"shadow-none!\" [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\">\r\n </dx-button>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-hight-contrast',\r\n imports: [DxTooltipModule, UniTranslatePipe],\r\n templateUrl: './uni-item-field-with-hight-contrast.html',\r\n styleUrl: './uni-item-field-with-hight-contrast.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithHightContrast {\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | null | undefined>();\r\n}\r\n","<div class=\"flex flex-col items-start\">\r\n <span class=\"max-w-full min-w-0 truncate text-lg text-nowrap text-gray-500 dark:text-gray-300\">\r\n {{ label() | translate }}\r\n </span>\r\n <span #tooltipTarget class=\"max-w-full min-w-0 cursor-help truncate text-3xl font-semibold\">\r\n {{ value() || '-' }}\r\n </span>\r\n</div>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ value() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniToastManager } from 'uni-manager';\r\n\r\n@Component({\r\n selector: 'uni-item-field',\r\n imports: [CommonModule, DxTooltipModule, UniTranslatePipe],\r\n providers: [DatePipe],\r\n templateUrl: './uni-item-field.html',\r\n styleUrl: './uni-item-field.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemField {\r\n /* Pipe */\r\n readonly datePipe = inject(DatePipe);\r\n\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n udm = input<string>();\r\n dateFormat = input<'short' | 'medium' | 'shortDate' | 'mediumDate' | 'longDate' | 'fullDate'>(\r\n 'longDate',\r\n );\r\n\r\n /* Variable */\r\n valueFormatted = computed(() => {\r\n const value = this.value();\r\n if (!value) return '';\r\n\r\n if (\r\n (value instanceof Date && !Number.isNaN(value.getTime())) ||\r\n (typeof value === 'string' && this.isValidDateString(value))\r\n ) {\r\n return this.datePipe.transform(new Date(value), this.dateFormat());\r\n }\r\n return `${value}${this.udm() ?? ''}`;\r\n });\r\n\r\n /* ---------------- Methods: event ---------------- */\r\n async onCopyValue(): Promise<void> {\r\n const value = this.valueFormatted();\r\n if (!value) return;\r\n\r\n // Controllo se l'API è disponibile e il contesto è sicuro (HTTPS/Localhost)\r\n if (navigator.clipboard && globalThis.isSecureContext) {\r\n await navigator.clipboard.writeText(value);\r\n UniToastManager.show({ label: 'ValueCopied' });\r\n }\r\n }\r\n\r\n /* ---------------- Methods: utils ---------------- */\r\n private isValidDateString(value: unknown): value is string {\r\n if (typeof value !== 'string') return false;\r\n\r\n // ISO 8601 (con o senza timezone)\r\n const isoRegex =\r\n /^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n\r\n if (!isoRegex.test(value)) return false;\r\n\r\n const date = new Date(value);\r\n return !Number.isNaN(date.getTime());\r\n }\r\n}\r\n","<li class=\"flex items-center gap-2 text-sm!\">\r\n <span class=\"text-nowrap text-gray-500 dark:text-gray-300\"> {{ label() | translate }}: </span>\r\n <span\r\n #tooltipTarget\r\n [ngClass]=\"{'text-gray-500/50 dark:text-gray-300/50': !valueFormatted() }\"\r\n class=\"max-w-full min-w-0 cursor-help truncate font-semibold transition duration-100 ease-in-out hover:opacity-75 active:scale-95\"\r\n (click)=\"onCopyValue()\">\r\n {{ valueFormatted() || '-' }}\r\n </span>\r\n</li>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ valueFormatted() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faCircleInfo } from '@fortawesome/free-solid-svg-icons';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\n\r\nimport { UniItemField } from '../uni-item-field/uni-item-field';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-lens-tooltip',\r\n imports: [DxTooltipModule, FaIconComponent, UniItemField],\r\n templateUrl: './uni-item-field-with-lens-tooltip.html',\r\n styleUrl: './uni-item-field-with-lens-tooltip.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithLensTooltip {\r\n /* Input */\r\n id = input.required<string>();\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n\r\n /* Icon */\r\n readonly ICON_INFO = faCircleInfo;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <uni-item-field [label]=\"label()\" [value]=\"value()\" />\r\n\r\n <div #tooltipInfoTarget>\r\n <fa-icon\r\n class=\"text-theme-200 cursor-help rounded px-1 text-xs! transition duration-150 ease-in-out hover:opacity-75\"\r\n [icon]=\"ICON_INFO\">\r\n </fa-icon>\r\n </div>\r\n\r\n <dx-tooltip\r\n [target]=\"tooltipInfoTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dx-tooltip>\r\n</div>\r\n","export enum LedStatus {\r\n OK,\r\n WARNING,\r\n ERROR,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { LedStatus } from './model';\r\n\r\n@Component({\r\n selector: 'uni-led',\r\n imports: [CommonModule],\r\n templateUrl: './uni-led.html',\r\n styleUrls: ['./uni-led.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniLed {\r\n /* Inputs */\r\n public description = input.required<string>();\r\n public status = input.required<LedStatus | boolean | null | undefined>();\r\n\r\n /* Enum */\r\n protected readonly LED_STATUS = LedStatus;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <div\r\n class=\"led\"\r\n [ngClass]=\"{\r\n ok: status() === true || status() === LED_STATUS.OK,\r\n warning: status() === LED_STATUS.WARNING,\r\n error: status() === false || status() === LED_STATUS.ERROR,\r\n }\"></div>\r\n <p class=\"truncate text-sm\">{{ description() }}</p>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faArrowRightFromBracket,\r\n faArrowRightToBracket,\r\n faBell,\r\n faLanguage,\r\n faMoon,\r\n faSun,\r\n faUser,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { DxSwitchModule } from 'devextreme-angular/ui/switch';\r\nimport { ValueChangedEvent as SelectBoxValueChangedEvent } from 'devextreme/ui/select_box_types';\r\nimport { ValueChangedEvent as SwitchValueChangedEvent } from 'devextreme/ui/switch_types';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniLoaderService } from 'uni-app-fe/service';\r\nimport { MenuInteraction, MenuItem } from './model';\r\n\r\n@Component({\r\n selector: 'uni-side-menu',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n DxButtonModule,\r\n DxSelectBoxModule,\r\n DxSwitchModule,\r\n UniTranslatePipe,\r\n FaIconComponent,\r\n NgOptimizedImage,\r\n ],\r\n templateUrl: './uni-side-menu.html',\r\n styleUrls: ['./uni-side-menu.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniSideMenu {\r\n /* Service */\r\n readonly elementRef = inject(ElementRef);\r\n readonly uniLoader = inject(UniLoaderService);\r\n\r\n /* Input */\r\n readonly pathUnitecLogo = input.required<string>();\r\n readonly menuItems = input<MenuItem[]>([]);\r\n readonly menuInteractions = input<MenuInteraction[]>([]);\r\n\r\n /* Output */\r\n evtToggleMenu = output<false>();\r\n\r\n /* Variables */\r\n locale = UniLocaleManager.locale;\r\n localesSupported = UniLocaleManager.localesSupported;\r\n darkMode = signal<boolean>(\r\n !localStorage.getItem('uni-theme') || localStorage.getItem('uni-theme') === 'dark',\r\n );\r\n\r\n /* Icons */\r\n readonly ICON = {\r\n USER: faUser,\r\n LOGIN: faArrowRightToBracket,\r\n LOGOUT: faArrowRightFromBracket,\r\n LIGHT_MODE: faSun,\r\n DARK_MODE: faMoon,\r\n LANGUAGE: faLanguage,\r\n NOTIFICATION: faBell,\r\n };\r\n\r\n /* ---------------------- Host listener ---------------------- */\r\n @HostListener('document:click', ['$event'])\r\n protected onClickOutside(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n\r\n // Controlla se il click è avvenuto dentro il menu principale\r\n const clickedInsideMenu = this.elementRef.nativeElement.contains(target);\r\n\r\n // Controlla se il click è avvenuto dentro un popup/dropdown aperto\r\n const clickedInsideOverlay = !!target.closest(\r\n '.dx-overlay-wrapper, .dx-dropdowneditor-overlay',\r\n );\r\n\r\n // Se il click è fuori da entrambi, allora chiude il menu\r\n if (!clickedInsideMenu && !clickedInsideOverlay) {\r\n this.evtToggleMenu.emit(false);\r\n }\r\n }\r\n\r\n /* ---------------------- Methods ---------------------- */\r\n updateTheme(e: SwitchValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-theme', e.value ? 'dark' : 'light');\r\n globalThis.location.reload();\r\n }\r\n\r\n updateLocale(e: SelectBoxValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-locale', e.value);\r\n globalThis.location.reload();\r\n }\r\n}\r\n","<aside\r\n class=\"dark:bg-theme-dark-800 dark:border-theme-dark-900 flex h-screen w-[80vw] max-w-75 flex-col gap-6 overflow-hidden rounded-l border-b-2 border-l-2 border-blue-400/33 bg-blue-300 p-4 shadow-2xl\">\r\n <!-- Header: User/Close -->\r\n <div class=\"flex h-8 w-full shrink-0 items-center\">\r\n <dx-button class=\"ml-auto rounded-full!\" [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\">\r\n </dx-button>\r\n </div>\r\n\r\n <div class=\"custom-scrollbar flex flex-1 flex-col overflow-x-hidden overflow-y-auto pr-1\">\r\n <!-- Sezione Menu Principale -->\r\n @if (menuItems().length) {\r\n <ul class=\"flex flex-col gap-1.5\">\r\n @for (item of menuItems(); track item.id) { @if (item.visible !== false) {\r\n <li>\r\n <a\r\n class=\"group flex h-12 items-center gap-3 rounded-lg px-3 text-white! transition-colors dark:text-gray-300!\"\r\n [ngClass]=\"{\r\n 'dark:hover:bg-theme-dark-700 hover:bg-blue-400': !item.badge && !item.disabled,\r\n 'hover:bg-red-500/50': item.badge && !item.disabled,\r\n 'pointer-events-none opacity-30 grayscale': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n [routerLinkActive]=\"item.badge ?\r\n 'bg-red-500/60 *:text-white! *:font-semibold!' :\r\n 'bg-blue-400/75 dark:bg-theme-dark-700 *:text-white! *:font-semibold!'\r\n \"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon [icon]=\"item.icon\" class=\"w-6 text-center text-lg\"></fa-icon>\r\n <span class=\"flex-1 truncate font-medium\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div\r\n class=\"flex size-6 animate-pulse items-center justify-center rounded bg-red-500 shadow-lg\">\r\n <fa-icon class=\"text-xs\" [icon]=\"ICON.NOTIFICATION\"></fa-icon>\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Sezione Interazioni Dinamiche -->\r\n @if (menuInteractions().length) {\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <ul class=\"flex flex-col gap-2 text-white\">\r\n @for (item of menuInteractions(); track item.id) { @if (item.data.type === 'button') {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"flex h-12 w-full items-center gap-3 rounded-lg px-3 transition-all active:scale-95\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"w-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate text-left font-medium\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li\r\n class=\"dark:bg-theme-dark-700 flex flex-col gap-1 rounded-lg bg-blue-400/75 p-3 shadow-sm\">\r\n <span class=\"text-xs font-bold uppercase opacity-60\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"w-full\"\r\n valueExpr=\"id\"\r\n displayExpr=\"description\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\">\r\n </dx-select-box>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Settings Statici -->\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <div class=\"flex flex-col gap-3\">\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'DarkMode' | translate }}</span>\r\n </div>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </div>\r\n\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'Language' | translate }}</span>\r\n </div>\r\n <dx-select-box\r\n class=\"w-24\"\r\n [items]=\"localesSupported\"\r\n [value]=\"locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer Logo -->\r\n <div class=\"mt-auto border-t border-white/20 pt-4\">\r\n <img\r\n class=\"ml-auto opacity-90 transition-opacity hover:opacity-100\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n priority\r\n alt=\"Brand logo\"\r\n height=\"32\"\r\n width=\"88\" />\r\n </div>\r\n</aside>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}
1
+ {"version":3,"file":"uni-app-fe-component.mjs","sources":["../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/component/uni-header/uni-header.ts","../../../projects/uni-app-fe/component/uni-header/uni-header.html","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/component/uni-led/model.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.html","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/component/uni-app-fe-component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faTriangleExclamation, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-banner-alert',\r\n imports: [CommonModule, FaIconComponent, UniTranslatePipe],\r\n templateUrl: './uni-banner-alert.html',\r\n styleUrls: ['./uni-banner-alert.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniBannerAlert {\r\n /* Icons */\r\n type = input.required<'warning' | 'error'>();\r\n lblTitle = input.required<string>();\r\n lblDescription = input.required<string>();\r\n icon = input<IconDefinition>();\r\n\r\n /* Icons */\r\n readonly ICON_WARNING = faTriangleExclamation;\r\n}\r\n","<div\r\n class=\"flex w-full flex-col gap-6 rounded-2xl border-2 p-4 text-center shadow-lg backdrop-blur-md\"\r\n [ngClass]=\"{\r\n 'bg-amber-500/25 border-amber-500 dark:text-amber-100 text-amber-500': type() === 'warning',\r\n 'bg-rose-500/25 border-rose-500 dark:text-rose-200 text-rose-500': type() === 'error'\r\n }\">\r\n <div class=\"flex flex-col items-center gap-4\">\r\n <h1 class=\"text-lg! font-semibold\">{{ lblTitle() | translate }}</h1>\r\n @if(icon(); as icon) {\r\n <fa-icon class=\"text-5xl\" [icon]=\"icon\"></fa-icon>\r\n }\r\n <p class=\"text-sm leading-relaxed text-white!\">{{ lblDescription() | translate }}</p>\r\n </div>\r\n</div>\r\n","import { NgOptimizedImage } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\n\r\n@Component({\r\n selector: 'uni-header',\r\n standalone: true,\r\n imports: [DxButtonModule, NgOptimizedImage],\r\n templateUrl: './uni-header.html',\r\n styleUrls: ['./uni-header.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniHeader {\r\n /* Input */\r\n title = input.required<string>();\r\n version = input.required<string>();\r\n pathBrandLogo = input.required<string>();\r\n pathAppLogo = input<string>();\r\n sideMenu = input<boolean>(false);\r\n\r\n /* Output */\r\n evtToggleMenu = output<true>();\r\n}\r\n","<div\r\n class=\"dark:bg-theme-dark-800 flex h-16 items-center gap-4 overflow-hidden rounded-xl bg-blue-300 px-4 py-3 text-white\">\r\n <!-- App logo -->\r\n @if (pathAppLogo(); as pathAppLogo) {\r\n <img\r\n [ngSrc]=\"pathAppLogo\"\r\n width=\"40\"\r\n height=\"40\"\r\n priority\r\n class=\"aspect-square h-full w-auto\"\r\n alt=\"App logo\" />\r\n }\r\n\r\n <!-- Info -->\r\n <div class=\"flex flex-1 flex-col overflow-hidden\">\r\n <p class=\"truncate text-xl font-semibold uppercase leading-tight\">{{ title() }}</p>\r\n <p class=\"text-xs opacity-75\">{{ version() }}</p>\r\n </div>\r\n\r\n <div class=\"flex h-full items-center gap-2\">\r\n <!-- Brand Logo -->\r\n <div class=\"2xs:block relative hidden h-full w-24\">\r\n <img\r\n [ngSrc]=\"pathBrandLogo()\"\r\n fill\r\n priority\r\n class=\"object-contain object-right\"\r\n alt=\"Brand logo\" />\r\n </div>\r\n\r\n <!-- Button menu -->\r\n @if (sideMenu()) {\r\n <dx-button class=\"shadow-none!\" [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\">\r\n </dx-button>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-hight-contrast',\r\n imports: [DxTooltipModule, UniTranslatePipe],\r\n templateUrl: './uni-item-field-with-hight-contrast.html',\r\n styleUrl: './uni-item-field-with-hight-contrast.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithHightContrast {\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | null | undefined>();\r\n}\r\n","<div class=\"flex flex-col items-start\">\r\n <span class=\"max-w-full min-w-0 truncate text-lg text-nowrap text-gray-500 dark:text-gray-300\">\r\n {{ label() | translate }}\r\n </span>\r\n <span #tooltipTarget class=\"max-w-full min-w-0 cursor-help truncate text-3xl font-semibold\">\r\n {{ value() || '-' }}\r\n </span>\r\n</div>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ value() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniToastManager } from 'uni-manager/toast';\r\n\r\n@Component({\r\n selector: 'uni-item-field',\r\n imports: [CommonModule, DxTooltipModule, UniTranslatePipe],\r\n providers: [DatePipe],\r\n templateUrl: './uni-item-field.html',\r\n styleUrl: './uni-item-field.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemField {\r\n /* Pipe */\r\n readonly datePipe = inject(DatePipe);\r\n\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n udm = input<string>();\r\n dateFormat = input<'short' | 'medium' | 'shortDate' | 'mediumDate' | 'longDate' | 'fullDate'>(\r\n 'longDate',\r\n );\r\n\r\n /* Variable */\r\n valueFormatted = computed(() => {\r\n const value = this.value();\r\n if (!value) return '';\r\n\r\n if (\r\n (value instanceof Date && !Number.isNaN(value.getTime())) ||\r\n (typeof value === 'string' && this.isValidDateString(value))\r\n ) {\r\n return this.datePipe.transform(new Date(value), this.dateFormat());\r\n }\r\n return `${value}${this.udm() ?? ''}`;\r\n });\r\n\r\n /* ---------------- Methods: event ---------------- */\r\n async onCopyValue(): Promise<void> {\r\n const value = this.valueFormatted();\r\n if (!value) return;\r\n\r\n // Controllo se l'API è disponibile e il contesto è sicuro (HTTPS/Localhost)\r\n if (navigator.clipboard && globalThis.isSecureContext) {\r\n await navigator.clipboard.writeText(value);\r\n UniToastManager.show({ label: 'ValueCopied' });\r\n }\r\n }\r\n\r\n /* ---------------- Methods: utils ---------------- */\r\n private isValidDateString(value: unknown): value is string {\r\n if (typeof value !== 'string') return false;\r\n\r\n // ISO 8601 (con o senza timezone)\r\n const isoRegex =\r\n /^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n\r\n if (!isoRegex.test(value)) return false;\r\n\r\n const date = new Date(value);\r\n return !Number.isNaN(date.getTime());\r\n }\r\n}\r\n","<li class=\"flex items-center gap-2 text-sm!\">\r\n <span class=\"text-nowrap text-gray-500 dark:text-gray-300\"> {{ label() | translate }}: </span>\r\n <span\r\n #tooltipTarget\r\n [ngClass]=\"{'text-gray-500/50 dark:text-gray-300/50': !valueFormatted() }\"\r\n class=\"max-w-full min-w-0 cursor-help truncate font-semibold transition duration-100 ease-in-out hover:opacity-75 active:scale-95\"\r\n (click)=\"onCopyValue()\">\r\n {{ valueFormatted() || '-' }}\r\n </span>\r\n</li>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ valueFormatted() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faCircleInfo } from '@fortawesome/free-solid-svg-icons';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\n\r\nimport { UniItemField } from '../uni-item-field/uni-item-field';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-lens-tooltip',\r\n imports: [DxTooltipModule, FaIconComponent, UniItemField],\r\n templateUrl: './uni-item-field-with-lens-tooltip.html',\r\n styleUrl: './uni-item-field-with-lens-tooltip.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithLensTooltip {\r\n /* Input */\r\n id = input.required<string>();\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n\r\n /* Icon */\r\n readonly ICON_INFO = faCircleInfo;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <uni-item-field [label]=\"label()\" [value]=\"value()\" />\r\n\r\n <div #tooltipInfoTarget>\r\n <fa-icon\r\n class=\"text-theme-200 cursor-help rounded px-1 text-xs! transition duration-150 ease-in-out hover:opacity-75\"\r\n [icon]=\"ICON_INFO\">\r\n </fa-icon>\r\n </div>\r\n\r\n <dx-tooltip\r\n [target]=\"tooltipInfoTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dx-tooltip>\r\n</div>\r\n","export enum LedStatus {\r\n OK,\r\n WARNING,\r\n ERROR,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { LedStatus } from './model';\r\n\r\n@Component({\r\n selector: 'uni-led',\r\n imports: [CommonModule],\r\n templateUrl: './uni-led.html',\r\n styleUrls: ['./uni-led.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniLed {\r\n /* Inputs */\r\n public description = input.required<string>();\r\n public status = input.required<LedStatus | boolean | null | undefined>();\r\n\r\n /* Enum */\r\n protected readonly LED_STATUS = LedStatus;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <div\r\n class=\"led\"\r\n [ngClass]=\"{\r\n ok: status() === true || status() === LED_STATUS.OK,\r\n warning: status() === LED_STATUS.WARNING,\r\n error: status() === false || status() === LED_STATUS.ERROR,\r\n }\"></div>\r\n <p class=\"truncate text-sm\">{{ description() }}</p>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faArrowRightFromBracket,\r\n faArrowRightToBracket,\r\n faBell,\r\n faLanguage,\r\n faMoon,\r\n faSun,\r\n faUser,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { DxSwitchModule } from 'devextreme-angular/ui/switch';\r\nimport { ValueChangedEvent as SelectBoxValueChangedEvent } from 'devextreme/ui/select_box_types';\r\nimport { ValueChangedEvent as SwitchValueChangedEvent } from 'devextreme/ui/switch_types';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniLoaderService } from 'uni-app-fe/service';\r\nimport { MenuInteraction, MenuItem } from './model';\r\n\r\n@Component({\r\n selector: 'uni-side-menu',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n DxButtonModule,\r\n DxSelectBoxModule,\r\n DxSwitchModule,\r\n UniTranslatePipe,\r\n FaIconComponent,\r\n NgOptimizedImage,\r\n ],\r\n templateUrl: './uni-side-menu.html',\r\n styleUrls: ['./uni-side-menu.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniSideMenu {\r\n /* Service */\r\n readonly elementRef = inject(ElementRef);\r\n readonly uniLoader = inject(UniLoaderService);\r\n\r\n /* Input */\r\n readonly pathUnitecLogo = input.required<string>();\r\n readonly menuItems = input<MenuItem[]>([]);\r\n readonly menuInteractions = input<MenuInteraction[]>([]);\r\n\r\n /* Output */\r\n evtToggleMenu = output<false>();\r\n\r\n /* Variables */\r\n locale = UniLocaleManager.locale;\r\n localesSupported = UniLocaleManager.localesSupported;\r\n darkMode = signal<boolean>(\r\n !localStorage.getItem('uni-theme') || localStorage.getItem('uni-theme') === 'dark',\r\n );\r\n\r\n /* Icons */\r\n readonly ICON = {\r\n USER: faUser,\r\n LOGIN: faArrowRightToBracket,\r\n LOGOUT: faArrowRightFromBracket,\r\n LIGHT_MODE: faSun,\r\n DARK_MODE: faMoon,\r\n LANGUAGE: faLanguage,\r\n NOTIFICATION: faBell,\r\n };\r\n\r\n /* ---------------------- Host listener ---------------------- */\r\n @HostListener('document:click', ['$event'])\r\n protected onClickOutside(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n\r\n // Controlla se il click è avvenuto dentro il menu principale\r\n const clickedInsideMenu = this.elementRef.nativeElement.contains(target);\r\n\r\n // Controlla se il click è avvenuto dentro un popup/dropdown aperto\r\n const clickedInsideOverlay = !!target.closest(\r\n '.dx-overlay-wrapper, .dx-dropdowneditor-overlay',\r\n );\r\n\r\n // Se il click è fuori da entrambi, allora chiude il menu\r\n if (!clickedInsideMenu && !clickedInsideOverlay) {\r\n this.evtToggleMenu.emit(false);\r\n }\r\n }\r\n\r\n /* ---------------------- Methods ---------------------- */\r\n updateTheme(e: SwitchValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-theme', e.value ? 'dark' : 'light');\r\n globalThis.location.reload();\r\n }\r\n\r\n updateLocale(e: SelectBoxValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-locale', e.value);\r\n globalThis.location.reload();\r\n }\r\n}\r\n","<aside\r\n class=\"dark:bg-theme-dark-800 dark:border-theme-dark-900 flex h-screen w-[80vw] max-w-75 flex-col gap-6 overflow-hidden rounded-l border-b-2 border-l-2 border-blue-400/33 bg-blue-300 p-4 shadow-2xl\">\r\n <!-- Header: User/Close -->\r\n <div class=\"flex h-8 w-full shrink-0 items-center\">\r\n <dx-button class=\"ml-auto rounded-full!\" [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\">\r\n </dx-button>\r\n </div>\r\n\r\n <div class=\"custom-scrollbar flex flex-1 flex-col overflow-x-hidden overflow-y-auto pr-1\">\r\n <!-- Sezione Menu Principale -->\r\n @if (menuItems().length) {\r\n <ul class=\"flex flex-col gap-1.5\">\r\n @for (item of menuItems(); track item.id) { @if (item.visible !== false) {\r\n <li>\r\n <a\r\n class=\"group flex h-12 items-center gap-3 rounded-lg px-3 text-white! transition-colors dark:text-gray-300!\"\r\n [ngClass]=\"{\r\n 'dark:hover:bg-theme-dark-700 hover:bg-blue-400': !item.badge && !item.disabled,\r\n 'hover:bg-red-500/50': item.badge && !item.disabled,\r\n 'pointer-events-none opacity-30 grayscale': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n [routerLinkActive]=\"item.badge ?\r\n 'bg-red-500/60 *:text-white! *:font-semibold!' :\r\n 'bg-blue-400/75 dark:bg-theme-dark-700 *:text-white! *:font-semibold!'\r\n \"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon [icon]=\"item.icon\" class=\"w-6 text-center text-lg\"></fa-icon>\r\n <span class=\"flex-1 truncate font-medium\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div\r\n class=\"flex size-6 animate-pulse items-center justify-center rounded bg-red-500 shadow-lg\">\r\n <fa-icon class=\"text-xs\" [icon]=\"ICON.NOTIFICATION\"></fa-icon>\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Sezione Interazioni Dinamiche -->\r\n @if (menuInteractions().length) {\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <ul class=\"flex flex-col gap-2 text-white\">\r\n @for (item of menuInteractions(); track item.id) { @if (item.data.type === 'button') {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"flex h-12 w-full items-center gap-3 rounded-lg px-3 transition-all active:scale-95\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"w-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate text-left font-medium\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li\r\n class=\"dark:bg-theme-dark-700 flex flex-col gap-1 rounded-lg bg-blue-400/75 p-3 shadow-sm\">\r\n <span class=\"text-xs font-bold uppercase opacity-60\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"w-full\"\r\n valueExpr=\"id\"\r\n displayExpr=\"description\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\">\r\n </dx-select-box>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Settings Statici -->\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <div class=\"flex flex-col gap-3\">\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'DarkMode' | translate }}</span>\r\n </div>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </div>\r\n\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'Language' | translate }}</span>\r\n </div>\r\n <dx-select-box\r\n class=\"w-24\"\r\n [items]=\"localesSupported\"\r\n [value]=\"locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer Logo -->\r\n <div class=\"mt-auto border-t border-white/20 pt-4\">\r\n <img\r\n class=\"ml-auto opacity-90 transition-opacity hover:opacity-100\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n priority\r\n alt=\"Brand logo\"\r\n height=\"32\"\r\n width=\"88\" />\r\n </div>\r\n</aside>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}
@@ -5,8 +5,9 @@ import { config } from 'devextreme-angular/common';
5
5
  import { locale, loadMessages } from 'devextreme-angular/common/core/localization';
6
6
  import esMessages from 'devextreme/localization/messages/es.json';
7
7
  import itMessages from 'devextreme/localization/messages/it.json';
8
- import { firstValueFrom } from 'rxjs';
9
- import { UniLocaleManager, UniHttpManager } from 'uni-manager';
8
+ import { firstValueFrom } from 'rxjs/internal/firstValueFrom';
9
+ import { UniHttpManager } from 'uni-manager/http';
10
+ import { UniLocaleManager } from 'uni-manager/locale';
10
11
 
11
12
  class UniLocaleManagerAngular {
12
13
  /* ------------------------------------------------------------------------------- */
@@ -16,9 +17,10 @@ class UniLocaleManagerAngular {
16
17
  * Registra i dati specifici del locale nel framework Angular.
17
18
  * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.
18
19
  */
19
- static setLocaleAngular() {
20
+ static setLocaleAngular(currentLocale) {
21
+ if (!currentLocale)
22
+ return;
20
23
  /* Imposta i dati del locale corrente in Angular necessari per le pipe */
21
- const currentLocale = UniLocaleManager.locale;
22
24
  if (currentLocale === 'it-IT') {
23
25
  registerLocaleData(localeIt, 'it-IT');
24
26
  }
@@ -30,8 +32,7 @@ class UniLocaleManagerAngular {
30
32
  * Inizializza la localizzazione specifica per i componenti DevExtreme.
31
33
  * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.
32
34
  */
33
- static setLocaleDevextreme() {
34
- const currentLocale = UniLocaleManager.locale;
35
+ static setLocaleDevextreme(currentLocale) {
35
36
  if (!currentLocale)
36
37
  return;
37
38
  /* Imposta la lingua */
@@ -63,10 +64,12 @@ class UniLocaleManagerAngular {
63
64
  * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
64
65
  * tramite il metodo setTranslations.
65
66
  */
66
- static async fetch() {
67
+ static async fetchTranslation(currentLocale) {
68
+ if (!currentLocale)
69
+ return;
67
70
  const res = await firstValueFrom(UniHttpManager.read$({
68
71
  ref: 'locale',
69
- path: `/Locale/${UniLocaleManager.locale}`,
72
+ path: `/Locale/${currentLocale}`,
70
73
  }));
71
74
  UniLocaleManager.setLocalesSupported(res?.localesSupported);
72
75
  UniLocaleManager.setTranslations(Object.fromEntries(Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]])));
@@ -78,4 +81,4 @@ class UniLocaleManagerAngular {
78
81
  */
79
82
 
80
83
  export { UniLocaleManagerAngular };
81
- //# sourceMappingURL=manager.mjs.map
84
+ //# sourceMappingURL=uni-app-fe-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uni-app-fe-manager.mjs","sources":["../../../projects/uni-app-fe/manager/locale.manager.ts","../../../projects/uni-app-fe/manager/uni-app-fe-manager.ts"],"sourcesContent":["import { registerLocaleData } from '@angular/common';\r\nimport localeEsCl from '@angular/common/locales/es-CL';\r\nimport localeIt from '@angular/common/locales/it';\r\nimport { config } from 'devextreme-angular/common';\r\nimport { loadMessages, locale } from 'devextreme-angular/common/core/localization';\r\nimport esMessages from 'devextreme/localization/messages/es.json';\r\nimport itMessages from 'devextreme/localization/messages/it.json';\r\nimport { firstValueFrom } from 'rxjs/internal/firstValueFrom';\r\nimport { UniHttpManager } from 'uni-manager/http';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nexport class UniLocaleManagerAngular {\r\n /* ------------------------------------------------------------------------------- */\r\n /* ----------------------------------- Config ------------------------------------ */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Registra i dati specifici del locale nel framework Angular.\r\n * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.\r\n */\r\n public static setLocaleAngular(currentLocale: string): void {\r\n if (!currentLocale) return;\r\n\r\n /* Imposta i dati del locale corrente in Angular necessari per le pipe */\r\n if (currentLocale === 'it-IT') {\r\n registerLocaleData(localeIt, 'it-IT');\r\n } else if (currentLocale === 'es-CL') {\r\n registerLocaleData(localeEsCl, 'es-CL');\r\n }\r\n }\r\n\r\n /**\r\n * Inizializza la localizzazione specifica per i componenti DevExtreme.\r\n * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.\r\n */\r\n public static setLocaleDevextreme(currentLocale: string): void {\r\n if (!currentLocale) return;\r\n\r\n /* Imposta la lingua */\r\n locale(currentLocale);\r\n\r\n /* Forza la valuta a mano in base alla stringa esatta */\r\n if (currentLocale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (currentLocale === 'es-CL') {\r\n config({ defaultCurrency: 'CLP' });\r\n }\r\n\r\n /* Carica i messaggi di traduzione */\r\n switch (UniLocaleManager.language) {\r\n case 'it': {\r\n loadMessages(itMessages);\r\n break;\r\n }\r\n case 'es': {\r\n loadMessages(esMessages);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /* ------------------------------------------------------------------------------- */\r\n /* ------------------------------------ Http ------------------------------------- */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.\r\n * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno\r\n * tramite il metodo setTranslations.\r\n */\r\n public static async fetchTranslation(currentLocale: string): Promise<void> {\r\n if (!currentLocale) return;\r\n\r\n const res = await firstValueFrom(\r\n UniHttpManager.read$<{\r\n locale: string;\r\n localesSupported: string[];\r\n translations: Record<string, string>;\r\n }>({\r\n ref: 'locale',\r\n path: `/Locale/${currentLocale}`,\r\n }),\r\n );\r\n\r\n UniLocaleManager.setLocalesSupported(res?.localesSupported);\r\n UniLocaleManager.setTranslations(\r\n Object.fromEntries(\r\n Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]]),\r\n ),\r\n );\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MAWa,uBAAuB,CAAA;;;;AAIlC;;;AAGG;IACI,OAAO,gBAAgB,CAAC,aAAqB,EAAA;AAClD,QAAA,IAAI,CAAC,aAAa;YAAE;;AAGpB,QAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AAC7B,YAAA,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvC;AAAO,aAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AACpC,YAAA,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC;QACzC;IACF;AAEA;;;AAGG;IACI,OAAO,mBAAmB,CAAC,aAAqB,EAAA;AACrD,QAAA,IAAI,CAAC,aAAa;YAAE;;QAGpB,MAAM,CAAC,aAAa,CAAC;;AAGrB,QAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AAC7B,YAAA,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QACpC;AAAO,aAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AACpC,YAAA,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QACpC;;AAGA,QAAA,QAAQ,gBAAgB,CAAC,QAAQ;YAC/B,KAAK,IAAI,EAAE;gBACT,YAAY,CAAC,UAAU,CAAC;gBACxB;YACF;YACA,KAAK,IAAI,EAAE;gBACT,YAAY,CAAC,UAAU,CAAC;gBACxB;YACF;;IAEJ;;;;AAKA;;;;AAIG;AACI,IAAA,aAAa,gBAAgB,CAAC,aAAqB,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa;YAAE;QAEpB,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,cAAc,CAAC,KAAK,CAIjB;AACD,YAAA,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,CAAA,QAAA,EAAW,aAAa,CAAA,CAAE;AACjC,SAAA,CAAC,CACH;AAED,QAAA,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC3D,QAAA,gBAAgB,CAAC,eAAe,CAC9B,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/E,CACF;IACH;AACD;;ACzFD;;AAEG;;;;"}
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe } from '@angular/core';
3
3
  import { icon } from '@fortawesome/fontawesome-svg-core';
4
- import { UniTypeStringManager, UniLocaleManager, UniTypeNumberManager } from 'uni-manager';
4
+ import { UniTypeStringManager, UniTypeNumberManager } from 'uni-manager/type';
5
+ import { UniLocaleManager } from 'uni-manager/locale';
5
6
 
6
7
  class FaIconTransformPipe {
7
8
  transform(iconDefinition) {
@@ -192,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
192
193
  */
193
194
 
194
195
  export { FaIconTransformPipe, UniCapitalizePipe, UniControlValidityPipe, UniGetComboPipe, UniLabelizePipe, UniPadPipe, UniReplacePipe, UniTranslateInlineParametersPipe, UniTranslatePipe, UniTruncateNumberPipe };
195
- //# sourceMappingURL=pipe.mjs.map
196
+ //# sourceMappingURL=uni-app-fe-pipe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uni-app-fe-pipe.mjs","sources":["../../../projects/uni-app-fe/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/pipe/uni-replace.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/pipe/uni-app-fe-pipe.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { icon } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Pipe({\r\n name: 'icon_transform',\r\n standalone: true,\r\n})\r\nexport class FaIconTransformPipe implements PipeTransform {\r\n transform(iconDefinition: IconDefinition): string {\r\n return icon(iconDefinition).html[0];\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'capitalize',\r\n standalone: true,\r\n})\r\nexport class UniCapitalizePipe implements PipeTransform {\r\n transform(key: string | null | undefined): string {\r\n if (!key) return '';\r\n\r\n return UniTypeStringManager.toCapitalize(key);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { ValidationError } from '@angular/forms/signals';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'control_validity',\r\n standalone: true,\r\n})\r\nexport class UniControlValidityPipe implements PipeTransform {\r\n transform(\r\n errors: ValidationError.WithFieldTree[] | null | undefined,\r\n ): { message: string; type: string }[] {\r\n if (!errors || errors.length === 0) return [];\r\n\r\n return errors.map((error) => {\r\n return {\r\n type: error.kind,\r\n message: UniLocaleManager.translate(UniTypeStringManager.toLabelize(error.kind)),\r\n };\r\n });\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { Combo } from 'uni-model-type';\r\n\r\n@Pipe({\r\n name: 'get_combo',\r\n standalone: true,\r\n})\r\nexport class UniGetComboPipe implements PipeTransform {\r\n transform(id: number | null | undefined, combos: Combo[] | undefined): Combo | undefined {\r\n if (!id) return undefined;\r\n\r\n return combos?.find((x) => x.id === id);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'labelize',\r\n standalone: true,\r\n})\r\nexport class UniLabelizePipe implements PipeTransform {\r\n transform(key: string | null | undefined, prefix = 'lbl', isToLabelize?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToLabelize === false) return key;\r\n\r\n return UniTypeStringManager.toLabelize(key, prefix);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'pad',\r\n standalone: true,\r\n})\r\nexport class UniPadPipe implements PipeTransform {\r\n transform(value: string | number | null | undefined, count: number, character = '0'): string {\r\n if (!value) return '';\r\n\r\n return UniTypeNumberManager.toPad(value, count, character);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace',\r\n standalone: true,\r\n})\r\nexport class UniReplacePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n values: { searchValue: string; replaceValue?: string }[],\r\n ): string {\r\n if (!key) return '';\r\n\r\n let fixedKey = key.trim();\r\n\r\n for (const value of values) {\r\n fixedKey = fixedKey.replaceAll(value.searchValue, value.replaceValue ?? '');\r\n }\r\n\r\n return fixedKey;\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\n@Pipe({\r\n name: 'translate_inline_parameters',\r\n standalone: true,\r\n})\r\nexport class UniTranslateInlineParametersPipe implements PipeTransform {\r\n transform(key: string | null | undefined, splitChar: string, isToTranslate?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translateInlineParams(key, splitChar);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true,\r\n})\r\nexport class UniTranslatePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n prefix = 'lbl',\r\n interpolationParameters?: Record<string, string | number | Date>,\r\n isToTranslate?: boolean,\r\n ): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolationParameters);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'truncate_number',\r\n standalone: true,\r\n})\r\nexport class UniTruncateNumberPipe implements PipeTransform {\r\n transform(\r\n value: number | null | undefined,\r\n decimalDigits = 0,\r\n maxIntegerDigits?: number,\r\n ): string {\r\n if (value === null || value === undefined || Number.isNaN(value)) {\r\n return '';\r\n }\r\n\r\n return UniTypeNumberManager.toTruncateAndAdUdm(value, decimalDigits, maxIntegerDigits);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
3
3
  import LoadPanel from 'devextreme/ui/load_panel';
4
4
  import { custom } from 'devextreme/ui/dialog';
5
5
  import Popup from 'devextreme/ui/popup';
6
- import { UniLocaleManager } from 'uni-manager';
6
+ import { UniLocaleManager } from 'uni-manager/locale';
7
7
  import notify from 'devextreme/ui/notify';
8
8
 
9
9
  class UniLoaderService {
@@ -398,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
398
398
  */
399
399
 
400
400
  export { UniLoaderService, UniPopupService, UniToastService };
401
- //# sourceMappingURL=service.mjs.map
401
+ //# sourceMappingURL=uni-app-fe-service.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uni-app-fe-service.mjs","sources":["../../../projects/uni-app-fe/service/uni-loader.service.ts","../../../projects/uni-app-fe/service/uni-popup.service.ts","../../../projects/uni-app-fe/service/uni-toast.service.ts","../../../projects/uni-app-fe/service/uni-app-fe-service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport LoadPanel from 'devextreme/ui/load_panel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniLoaderService {\r\n /* Load Panel */\r\n private loadPanel: LoadPanel;\r\n\r\n constructor() {\r\n const container = document.querySelector('body');\r\n const content: HTMLDivElement = document.createElement('div');\r\n container!.append(content);\r\n\r\n this.loadPanel = new LoadPanel(content, {\r\n showIndicator: true,\r\n showPane: true,\r\n shading: true,\r\n shadingColor: 'rgba(0,0,0,0.4)',\r\n });\r\n }\r\n\r\n /* ------------------------------------- Methods ------------------------------------- */\r\n public show(): void {\r\n this.loadPanel.show();\r\n }\r\n\r\n public hide(): void {\r\n this.loadPanel.hide();\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ClickEvent } from 'devextreme/ui/button_types';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport Popup, { ToolbarItem } from 'devextreme/ui/popup';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nexport type PopupType = 'info' | 'warning' | 'error';\r\n\r\nexport type Instance = Popup<{\r\n title: string;\r\n showTitle: boolean;\r\n deferRendering: boolean;\r\n maxHeight: number;\r\n maxWidth: number;\r\n dragEnabled: boolean;\r\n showCloseButton: boolean;\r\n hideOnOutsideClick: boolean;\r\n shading: boolean;\r\n wrapperAttr: { id: string; class: string };\r\n toolbarItems: ToolbarItem[];\r\n contentTemplate: () => HTMLDivElement;\r\n onHidden: () => Promise<void>;\r\n}>;\r\n\r\nexport type PopupContent =\r\n | {\r\n message: string;\r\n html?: never;\r\n }\r\n | {\r\n message?: never;\r\n html: string;\r\n };\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniPopupService {\r\n /* Variables */\r\n private instances = new Map<string, Instance>();\r\n\r\n /* -------------------------------- Methods: popup -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: (e: ClickEvent) => void;\r\n lblTitle?: string;\r\n maxWidth?: number;\r\n },\r\n ): Promise<void> {\r\n const { message, html, onConfirm, lblTitle, maxWidth } = args;\r\n\r\n // Creazione del contenuto come stringa HTML\r\n const messageHtml =\r\n html ??\r\n `\r\n <div style=\"\r\n white-space: pre-line;\r\n word-break: break-all;\r\n padding: 0rem 1rem 1rem 1rem;\r\n max-width: ${typeof maxWidth === 'number' ? maxWidth + 'px' : '800px'};\r\n \">\r\n ${message ?? ''}\r\n </div>\r\n `;\r\n\r\n await custom({\r\n title: lblTitle && UniLocaleManager.translate(lblTitle),\r\n dragEnabled: false,\r\n showTitle: !!lblTitle,\r\n messageHtml,\r\n buttons: [\r\n { text: UniLocaleManager.translate('Confirm', 'btn'), onClick: onConfirm },\r\n { text: UniLocaleManager.translate('Cancel', 'btn'), onClick: undefined },\r\n ],\r\n }).show();\r\n }\r\n\r\n public async createPopup(\r\n id: string,\r\n args: PopupContent & {\r\n type?: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { type, message, html, title, detail, closable } = args;\r\n\r\n /* Pulsanti: dettaglio (errore o altro) */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail) {\r\n const detailsButtons = this.createDetailsButtons(\r\n id,\r\n message ?? html,\r\n html !== undefined,\r\n detail,\r\n );\r\n toolbarItems.push(...detailsButtons);\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable !== false) {\r\n const closeButton = this.createCloseButton(id);\r\n toolbarItems.push(closeButton);\r\n }\r\n\r\n /* Crea popup passando esplicitamente l'informazione sul formato del contenuto */\r\n const instance = await this.createPopupInstance(id, {\r\n type,\r\n title,\r\n content: message ?? html,\r\n isContentHtml: !!html,\r\n toolbarItems,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupError(\r\n id: string | undefined = undefined,\r\n args: {\r\n title?: string;\r\n message: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { title, message, detail, closable } = args;\r\n\r\n /* Crea popup */\r\n const instance = await this.createPopup(id ?? `popup-${Date.now()}`, {\r\n type: 'error',\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message,\r\n detail,\r\n closable,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorHttp(args: {\r\n ref?: string;\r\n err: HttpErrorResponse;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, err } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Message detail */\r\n const { status, statusText, message, error: errorResponse } = err;\r\n let errorDetail = `[${status} - ${statusText}]: ${message}`;\r\n if (errorResponse) {\r\n try {\r\n if (errorResponse instanceof Blob) {\r\n errorDetail += `\\n ${await errorResponse.text()}`;\r\n } else if (typeof errorResponse === 'string') {\r\n errorDetail += `\\n ${errorResponse}`;\r\n } else if (typeof errorResponse === 'object') {\r\n errorDetail += `\\n ${JSON.stringify(errorResponse, undefined, 2)}`;\r\n } else {\r\n errorDetail += `\\n ${String(errorResponse)}`;\r\n }\r\n } catch (error) {\r\n errorDetail += `\\n Error processing the error message: ${error}`;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n message: UniLocaleManager.translate(`error${err.status}`),\r\n detail: {\r\n message: errorDetail,\r\n messageToCopy: JSON.stringify(err),\r\n },\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n ref?: string;\r\n label: string;\r\n interpolationParameters?: Record<string, string | number | Date>;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, label, interpolationParameters } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n message: UniLocaleManager.translate(label, 'lbl', interpolationParameters),\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async updateContentPopup(id: string, content: PopupContent): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Recupero elemento html del popup */\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n /* Selezione del metodo di rendering e del layout in base alla proprietà definita */\r\n if (content.html === undefined) {\r\n this.setContentCenter(element, content.message);\r\n } else {\r\n this.setContent(element, content.html, true);\r\n }\r\n }\r\n\r\n public async closePopup(id: string): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Esecuzione del processo di chiusura asincrona del componente DevExtreme */\r\n await popup.hide();\r\n }\r\n\r\n /* -------------------------------- Methods: instance -------------------------------- */\r\n private async createPopupInstance(\r\n id: string,\r\n args: {\r\n type?: PopupType;\r\n title?: string;\r\n content: string;\r\n isContentHtml: boolean;\r\n toolbarItems: ToolbarItem[];\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera argomenti */\r\n const { type, title, content, isContentHtml, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n const popup = this.instances.get(id);\r\n if (popup) {\r\n popup.show();\r\n return popup;\r\n }\r\n\r\n /* Crea container del popup */\r\n const container = document.createElement('div');\r\n document.body.append(container);\r\n\r\n /* Crea popup */\r\n const instance = new Popup(container, {\r\n title: title ?? '',\r\n showTitle: !!title,\r\n deferRendering: false,\r\n maxHeight: 500,\r\n maxWidth: 1000,\r\n dragEnabled: false,\r\n showCloseButton: false,\r\n hideOnOutsideClick: false,\r\n shading: true,\r\n wrapperAttr: {\r\n id,\r\n class: `uni-popup-${type ?? 'info'}`,\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const element = document.createElement('div');\r\n element.style.whiteSpace = 'pre-line';\r\n element.style.wordBreak = 'break-all';\r\n element.style.height = '100%';\r\n\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n\r\n return element;\r\n },\r\n onHidden: async (): Promise<void> => {\r\n // Rimozione del riferimento dalla mappa per prevenire interazioni concorrenti\r\n this.instances.delete(id);\r\n\r\n // Rilascio delle risorse allocate dal widget al termine dell'animazione di uscita\r\n instance.dispose();\r\n\r\n // Rimozione definitiva dell'elemento HTML dal Document Object Model (DOM)\r\n instance.element()?.remove();\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, instance);\r\n await instance.show();\r\n\r\n return instance;\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseButton(id: string): ToolbarItem {\r\n return {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'close',\r\n text: UniLocaleManager.translate('Close', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => this.closePopup(id),\r\n },\r\n };\r\n }\r\n\r\n private createDetailsButtons(\r\n id: string,\r\n content: string,\r\n isContentHtml: boolean,\r\n detail: { message: string; messageToCopy?: string },\r\n ): ToolbarItem[] {\r\n // Variabile di stato per i dettagli\r\n let inShow = false;\r\n\r\n /* Pulsanti: 'dettagli' e 'indietro */\r\n const items: ToolbarItem[] = [\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'find',\r\n text: UniLocaleManager.translate('Details', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: async (e: { component: any }): Promise<void> => {\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n inShow = !inShow;\r\n\r\n if (inShow) {\r\n this.setContent(element, detail.message, false);\r\n } else {\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n }\r\n\r\n e.component.option({\r\n text: UniLocaleManager.translate(inShow ? 'Back' : 'Details', 'btn'),\r\n icon: inShow ? 'back' : 'find',\r\n });\r\n },\r\n },\r\n },\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'refresh',\r\n text: UniLocaleManager.translate('Refresh', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): void => location.reload(),\r\n },\r\n },\r\n ];\r\n\r\n /* Pulsanti: 'copiare dettagli' */\r\n if (detail.messageToCopy) {\r\n items.push({\r\n visible: globalThis.isSecureContext,\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'copy',\r\n text: UniLocaleManager.translate('Copy', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => navigator?.clipboard?.writeText(detail.messageToCopy!),\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private setContent(element: HTMLElement, content: string, isContentHtml: boolean): void {\r\n if (isContentHtml) {\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n element.style.display = 'block';\r\n element.style.textAlign = 'left';\r\n element.style.alignItems = ''; // Reset flexbox\r\n element.style.justifyContent = ''; // Reset flexbox\r\n }\r\n\r\n private setContentCenter(element: HTMLElement, content: string): void {\r\n element.textContent = content;\r\n element.style.display = 'flex';\r\n element.style.alignItems = 'center';\r\n element.style.justifyContent = 'center';\r\n element.style.textAlign = 'center';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { ToastType } from 'devextreme/ui/toast_types';\r\nimport { IToastManager, ToastConfig } from 'uni-manager/toast';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniToastService implements IToastManager {\r\n public success(message: string, config?: ToastConfig): void {\r\n this.show(message, 'success', config);\r\n }\r\n\r\n public info(message: string, config?: ToastConfig): void {\r\n this.show(message, 'info', config);\r\n }\r\n\r\n public warning(message: string, config?: ToastConfig): void {\r\n this.show(message, 'warning', config);\r\n }\r\n\r\n public error(message: string, config?: ToastConfig): void {\r\n this.show(message, 'error', config);\r\n }\r\n\r\n /* ----------------------- Metodi: utils ----------------------- */\r\n private show(message: string, type: ToastType, config?: ToastConfig): void {\r\n notify(\r\n {\r\n message,\r\n type,\r\n height: 50,\r\n width: 400,\r\n displayTime: config?.duration ?? 4000,\r\n animation: {\r\n show: { type: 'fade', duration: 400, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 300, from: 1, to: 0 },\r\n },\r\n },\r\n { position: 'bottom center', direction: 'up-push' },\r\n );\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -10,12 +10,13 @@ import { DxButtonModule } from 'devextreme-angular/ui/button';
10
10
  import * as i1$2 from 'devextreme-angular/ui/tooltip';
11
11
  import { DxTooltipModule } from 'devextreme-angular/ui/tooltip';
12
12
  import * as i2 from 'devextreme-angular/core';
13
- import { UniToastManager, UniLocaleManager, UniHttpManager, UniTypeStringManager, UniTypeNumberManager } from 'uni-manager';
13
+ import { UniToastManager } from 'uni-manager/toast';
14
14
  import { RouterLink, RouterLinkActive } from '@angular/router';
15
15
  import * as i3 from 'devextreme-angular/ui/select-box';
16
16
  import { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';
17
17
  import * as i4 from 'devextreme-angular/ui/switch';
18
18
  import { DxSwitchModule } from 'devextreme-angular/ui/switch';
19
+ import { UniLocaleManager } from 'uni-manager/locale';
19
20
  import { UniLoaderService as UniLoaderService$1 } from 'uni-app-fe/service';
20
21
  import localeEsCl from '@angular/common/locales/es-CL';
21
22
  import localeIt from '@angular/common/locales/it';
@@ -23,8 +24,10 @@ import { config } from 'devextreme-angular/common';
23
24
  import { locale, loadMessages } from 'devextreme-angular/common/core/localization';
24
25
  import esMessages from 'devextreme/localization/messages/es.json';
25
26
  import itMessages from 'devextreme/localization/messages/it.json';
26
- import { firstValueFrom } from 'rxjs';
27
+ import { firstValueFrom } from 'rxjs/internal/firstValueFrom';
28
+ import { UniHttpManager } from 'uni-manager/http';
27
29
  import { icon } from '@fortawesome/fontawesome-svg-core';
30
+ import { UniTypeStringManager, UniTypeNumberManager } from 'uni-manager/type';
28
31
  import LoadPanel from 'devextreme/ui/load_panel';
29
32
  import { custom } from 'devextreme/ui/dialog';
30
33
  import Popup from 'devextreme/ui/popup';
@@ -250,9 +253,10 @@ class UniLocaleManagerAngular {
250
253
  * Registra i dati specifici del locale nel framework Angular.
251
254
  * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.
252
255
  */
253
- static setLocaleAngular() {
256
+ static setLocaleAngular(currentLocale) {
257
+ if (!currentLocale)
258
+ return;
254
259
  /* Imposta i dati del locale corrente in Angular necessari per le pipe */
255
- const currentLocale = UniLocaleManager.locale;
256
260
  if (currentLocale === 'it-IT') {
257
261
  registerLocaleData(localeIt, 'it-IT');
258
262
  }
@@ -264,8 +268,7 @@ class UniLocaleManagerAngular {
264
268
  * Inizializza la localizzazione specifica per i componenti DevExtreme.
265
269
  * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.
266
270
  */
267
- static setLocaleDevextreme() {
268
- const currentLocale = UniLocaleManager.locale;
271
+ static setLocaleDevextreme(currentLocale) {
269
272
  if (!currentLocale)
270
273
  return;
271
274
  /* Imposta la lingua */
@@ -297,10 +300,12 @@ class UniLocaleManagerAngular {
297
300
  * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
298
301
  * tramite il metodo setTranslations.
299
302
  */
300
- static async fetch() {
303
+ static async fetchTranslation(currentLocale) {
304
+ if (!currentLocale)
305
+ return;
301
306
  const res = await firstValueFrom(UniHttpManager.read$({
302
307
  ref: 'locale',
303
- path: `/Locale/${UniLocaleManager.locale}`,
308
+ path: `/Locale/${currentLocale}`,
304
309
  }));
305
310
  UniLocaleManager.setLocalesSupported(res?.localesSupported);
306
311
  UniLocaleManager.setTranslations(Object.fromEntries(Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]])));
@@ -886,5 +891,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
886
891
  * Generated bundle index. Do not edit.
887
892
  */
888
893
 
889
- export { FaIconTransformPipe, UniBannerAlert, UniCapitalizePipe, UniControlValidityPipe, UniGetComboPipe, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLabelizePipe, UniLed, UniLoaderService, UniLocaleManagerAngular, UniPadPipe, UniPopupService, UniReplacePipe, UniSideMenu, UniToastService, UniTranslateInlineParametersPipe, UniTranslatePipe, UniTruncateNumberPipe };
894
+ export { FaIconTransformPipe, LedStatus, UniBannerAlert, UniCapitalizePipe, UniControlValidityPipe, UniGetComboPipe, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLabelizePipe, UniLed, UniLoaderService, UniLocaleManagerAngular, UniPadPipe, UniPopupService, UniReplacePipe, UniSideMenu, UniToastService, UniTranslateInlineParametersPipe, UniTranslatePipe, UniTruncateNumberPipe };
890
895
  //# sourceMappingURL=uni-app-fe.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"uni-app-fe.mjs","sources":["../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/component/uni-header/uni-header.ts","../../../projects/uni-app-fe/component/uni-header/uni-header.html","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/component/uni-led/model.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.html","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/manager/locale.manager.ts","../../../projects/uni-app-fe/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/pipe/uni-replace.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/service/uni-loader.service.ts","../../../projects/uni-app-fe/service/uni-popup.service.ts","../../../projects/uni-app-fe/service/uni-toast.service.ts","../../../projects/uni-app-fe/public-api.ts","../../../projects/uni-app-fe/uni-app-fe.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faTriangleExclamation, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-banner-alert',\r\n imports: [CommonModule, FaIconComponent, UniTranslatePipe],\r\n templateUrl: './uni-banner-alert.html',\r\n styleUrls: ['./uni-banner-alert.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniBannerAlert {\r\n /* Icons */\r\n type = input.required<'warning' | 'error'>();\r\n lblTitle = input.required<string>();\r\n lblDescription = input.required<string>();\r\n icon = input<IconDefinition>();\r\n\r\n /* Icons */\r\n readonly ICON_WARNING = faTriangleExclamation;\r\n}\r\n","<div\r\n class=\"flex w-full flex-col gap-6 rounded-2xl border-2 p-4 text-center shadow-lg backdrop-blur-md\"\r\n [ngClass]=\"{\r\n 'bg-amber-500/25 border-amber-500 dark:text-amber-100 text-amber-500': type() === 'warning',\r\n 'bg-rose-500/25 border-rose-500 dark:text-rose-200 text-rose-500': type() === 'error'\r\n }\">\r\n <div class=\"flex flex-col items-center gap-4\">\r\n <h1 class=\"text-lg! font-semibold\">{{ lblTitle() | translate }}</h1>\r\n @if(icon(); as icon) {\r\n <fa-icon class=\"text-5xl\" [icon]=\"icon\"></fa-icon>\r\n }\r\n <p class=\"text-sm leading-relaxed text-white!\">{{ lblDescription() | translate }}</p>\r\n </div>\r\n</div>\r\n","import { NgOptimizedImage } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\n\r\n@Component({\r\n selector: 'uni-header',\r\n standalone: true,\r\n imports: [DxButtonModule, NgOptimizedImage],\r\n templateUrl: './uni-header.html',\r\n styleUrls: ['./uni-header.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniHeader {\r\n /* Input */\r\n title = input.required<string>();\r\n version = input.required<string>();\r\n pathBrandLogo = input.required<string>();\r\n pathAppLogo = input<string>();\r\n sideMenu = input<boolean>(false);\r\n\r\n /* Output */\r\n evtToggleMenu = output<true>();\r\n}\r\n","<div\r\n class=\"dark:bg-theme-dark-800 flex h-16 items-center gap-4 overflow-hidden rounded-xl bg-blue-300 px-4 py-3 text-white\">\r\n <!-- App logo -->\r\n @if (pathAppLogo(); as pathAppLogo) {\r\n <img\r\n [ngSrc]=\"pathAppLogo\"\r\n width=\"40\"\r\n height=\"40\"\r\n priority\r\n class=\"aspect-square h-full w-auto\"\r\n alt=\"App logo\" />\r\n }\r\n\r\n <!-- Info -->\r\n <div class=\"flex flex-1 flex-col overflow-hidden\">\r\n <p class=\"truncate text-xl font-semibold uppercase leading-tight\">{{ title() }}</p>\r\n <p class=\"text-xs opacity-75\">{{ version() }}</p>\r\n </div>\r\n\r\n <div class=\"flex h-full items-center gap-2\">\r\n <!-- Brand Logo -->\r\n <div class=\"2xs:block relative hidden h-full w-24\">\r\n <img\r\n [ngSrc]=\"pathBrandLogo()\"\r\n fill\r\n priority\r\n class=\"object-contain object-right\"\r\n alt=\"Brand logo\" />\r\n </div>\r\n\r\n <!-- Button menu -->\r\n @if (sideMenu()) {\r\n <dx-button class=\"shadow-none!\" [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\">\r\n </dx-button>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-hight-contrast',\r\n imports: [DxTooltipModule, UniTranslatePipe],\r\n templateUrl: './uni-item-field-with-hight-contrast.html',\r\n styleUrl: './uni-item-field-with-hight-contrast.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithHightContrast {\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | null | undefined>();\r\n}\r\n","<div class=\"flex flex-col items-start\">\r\n <span class=\"max-w-full min-w-0 truncate text-lg text-nowrap text-gray-500 dark:text-gray-300\">\r\n {{ label() | translate }}\r\n </span>\r\n <span #tooltipTarget class=\"max-w-full min-w-0 cursor-help truncate text-3xl font-semibold\">\r\n {{ value() || '-' }}\r\n </span>\r\n</div>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ value() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniToastManager } from 'uni-manager';\r\n\r\n@Component({\r\n selector: 'uni-item-field',\r\n imports: [CommonModule, DxTooltipModule, UniTranslatePipe],\r\n providers: [DatePipe],\r\n templateUrl: './uni-item-field.html',\r\n styleUrl: './uni-item-field.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemField {\r\n /* Pipe */\r\n readonly datePipe = inject(DatePipe);\r\n\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n udm = input<string>();\r\n dateFormat = input<'short' | 'medium' | 'shortDate' | 'mediumDate' | 'longDate' | 'fullDate'>(\r\n 'longDate',\r\n );\r\n\r\n /* Variable */\r\n valueFormatted = computed(() => {\r\n const value = this.value();\r\n if (!value) return '';\r\n\r\n if (\r\n (value instanceof Date && !Number.isNaN(value.getTime())) ||\r\n (typeof value === 'string' && this.isValidDateString(value))\r\n ) {\r\n return this.datePipe.transform(new Date(value), this.dateFormat());\r\n }\r\n return `${value}${this.udm() ?? ''}`;\r\n });\r\n\r\n /* ---------------- Methods: event ---------------- */\r\n async onCopyValue(): Promise<void> {\r\n const value = this.valueFormatted();\r\n if (!value) return;\r\n\r\n // Controllo se l'API è disponibile e il contesto è sicuro (HTTPS/Localhost)\r\n if (navigator.clipboard && globalThis.isSecureContext) {\r\n await navigator.clipboard.writeText(value);\r\n UniToastManager.show({ label: 'ValueCopied' });\r\n }\r\n }\r\n\r\n /* ---------------- Methods: utils ---------------- */\r\n private isValidDateString(value: unknown): value is string {\r\n if (typeof value !== 'string') return false;\r\n\r\n // ISO 8601 (con o senza timezone)\r\n const isoRegex =\r\n /^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n\r\n if (!isoRegex.test(value)) return false;\r\n\r\n const date = new Date(value);\r\n return !Number.isNaN(date.getTime());\r\n }\r\n}\r\n","<li class=\"flex items-center gap-2 text-sm!\">\r\n <span class=\"text-nowrap text-gray-500 dark:text-gray-300\"> {{ label() | translate }}: </span>\r\n <span\r\n #tooltipTarget\r\n [ngClass]=\"{'text-gray-500/50 dark:text-gray-300/50': !valueFormatted() }\"\r\n class=\"max-w-full min-w-0 cursor-help truncate font-semibold transition duration-100 ease-in-out hover:opacity-75 active:scale-95\"\r\n (click)=\"onCopyValue()\">\r\n {{ valueFormatted() || '-' }}\r\n </span>\r\n</li>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ valueFormatted() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faCircleInfo } from '@fortawesome/free-solid-svg-icons';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\n\r\nimport { UniItemField } from '../uni-item-field/uni-item-field';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-lens-tooltip',\r\n imports: [DxTooltipModule, FaIconComponent, UniItemField],\r\n templateUrl: './uni-item-field-with-lens-tooltip.html',\r\n styleUrl: './uni-item-field-with-lens-tooltip.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithLensTooltip {\r\n /* Input */\r\n id = input.required<string>();\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n\r\n /* Icon */\r\n readonly ICON_INFO = faCircleInfo;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <uni-item-field [label]=\"label()\" [value]=\"value()\" />\r\n\r\n <div #tooltipInfoTarget>\r\n <fa-icon\r\n class=\"text-theme-200 cursor-help rounded px-1 text-xs! transition duration-150 ease-in-out hover:opacity-75\"\r\n [icon]=\"ICON_INFO\">\r\n </fa-icon>\r\n </div>\r\n\r\n <dx-tooltip\r\n [target]=\"tooltipInfoTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dx-tooltip>\r\n</div>\r\n","export enum LedStatus {\r\n OK,\r\n WARNING,\r\n ERROR,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { LedStatus } from './model';\r\n\r\n@Component({\r\n selector: 'uni-led',\r\n imports: [CommonModule],\r\n templateUrl: './uni-led.html',\r\n styleUrls: ['./uni-led.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniLed {\r\n /* Inputs */\r\n public description = input.required<string>();\r\n public status = input.required<LedStatus | boolean | null | undefined>();\r\n\r\n /* Enum */\r\n protected readonly LED_STATUS = LedStatus;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <div\r\n class=\"led\"\r\n [ngClass]=\"{\r\n ok: status() === true || status() === LED_STATUS.OK,\r\n warning: status() === LED_STATUS.WARNING,\r\n error: status() === false || status() === LED_STATUS.ERROR,\r\n }\"></div>\r\n <p class=\"truncate text-sm\">{{ description() }}</p>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faArrowRightFromBracket,\r\n faArrowRightToBracket,\r\n faBell,\r\n faLanguage,\r\n faMoon,\r\n faSun,\r\n faUser,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { DxSwitchModule } from 'devextreme-angular/ui/switch';\r\nimport { ValueChangedEvent as SelectBoxValueChangedEvent } from 'devextreme/ui/select_box_types';\r\nimport { ValueChangedEvent as SwitchValueChangedEvent } from 'devextreme/ui/switch_types';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniLoaderService } from 'uni-app-fe/service';\r\nimport { MenuInteraction, MenuItem } from './model';\r\n\r\n@Component({\r\n selector: 'uni-side-menu',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n DxButtonModule,\r\n DxSelectBoxModule,\r\n DxSwitchModule,\r\n UniTranslatePipe,\r\n FaIconComponent,\r\n NgOptimizedImage,\r\n ],\r\n templateUrl: './uni-side-menu.html',\r\n styleUrls: ['./uni-side-menu.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniSideMenu {\r\n /* Service */\r\n readonly elementRef = inject(ElementRef);\r\n readonly uniLoader = inject(UniLoaderService);\r\n\r\n /* Input */\r\n readonly pathUnitecLogo = input.required<string>();\r\n readonly menuItems = input<MenuItem[]>([]);\r\n readonly menuInteractions = input<MenuInteraction[]>([]);\r\n\r\n /* Output */\r\n evtToggleMenu = output<false>();\r\n\r\n /* Variables */\r\n locale = UniLocaleManager.locale;\r\n localesSupported = UniLocaleManager.localesSupported;\r\n darkMode = signal<boolean>(\r\n !localStorage.getItem('uni-theme') || localStorage.getItem('uni-theme') === 'dark',\r\n );\r\n\r\n /* Icons */\r\n readonly ICON = {\r\n USER: faUser,\r\n LOGIN: faArrowRightToBracket,\r\n LOGOUT: faArrowRightFromBracket,\r\n LIGHT_MODE: faSun,\r\n DARK_MODE: faMoon,\r\n LANGUAGE: faLanguage,\r\n NOTIFICATION: faBell,\r\n };\r\n\r\n /* ---------------------- Host listener ---------------------- */\r\n @HostListener('document:click', ['$event'])\r\n protected onClickOutside(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n\r\n // Controlla se il click è avvenuto dentro il menu principale\r\n const clickedInsideMenu = this.elementRef.nativeElement.contains(target);\r\n\r\n // Controlla se il click è avvenuto dentro un popup/dropdown aperto\r\n const clickedInsideOverlay = !!target.closest(\r\n '.dx-overlay-wrapper, .dx-dropdowneditor-overlay',\r\n );\r\n\r\n // Se il click è fuori da entrambi, allora chiude il menu\r\n if (!clickedInsideMenu && !clickedInsideOverlay) {\r\n this.evtToggleMenu.emit(false);\r\n }\r\n }\r\n\r\n /* ---------------------- Methods ---------------------- */\r\n updateTheme(e: SwitchValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-theme', e.value ? 'dark' : 'light');\r\n globalThis.location.reload();\r\n }\r\n\r\n updateLocale(e: SelectBoxValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-locale', e.value);\r\n globalThis.location.reload();\r\n }\r\n}\r\n","<aside\r\n class=\"dark:bg-theme-dark-800 dark:border-theme-dark-900 flex h-screen w-[80vw] max-w-75 flex-col gap-6 overflow-hidden rounded-l border-b-2 border-l-2 border-blue-400/33 bg-blue-300 p-4 shadow-2xl\">\r\n <!-- Header: User/Close -->\r\n <div class=\"flex h-8 w-full shrink-0 items-center\">\r\n <dx-button class=\"ml-auto rounded-full!\" [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\">\r\n </dx-button>\r\n </div>\r\n\r\n <div class=\"custom-scrollbar flex flex-1 flex-col overflow-x-hidden overflow-y-auto pr-1\">\r\n <!-- Sezione Menu Principale -->\r\n @if (menuItems().length) {\r\n <ul class=\"flex flex-col gap-1.5\">\r\n @for (item of menuItems(); track item.id) { @if (item.visible !== false) {\r\n <li>\r\n <a\r\n class=\"group flex h-12 items-center gap-3 rounded-lg px-3 text-white! transition-colors dark:text-gray-300!\"\r\n [ngClass]=\"{\r\n 'dark:hover:bg-theme-dark-700 hover:bg-blue-400': !item.badge && !item.disabled,\r\n 'hover:bg-red-500/50': item.badge && !item.disabled,\r\n 'pointer-events-none opacity-30 grayscale': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n [routerLinkActive]=\"item.badge ?\r\n 'bg-red-500/60 *:text-white! *:font-semibold!' :\r\n 'bg-blue-400/75 dark:bg-theme-dark-700 *:text-white! *:font-semibold!'\r\n \"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon [icon]=\"item.icon\" class=\"w-6 text-center text-lg\"></fa-icon>\r\n <span class=\"flex-1 truncate font-medium\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div\r\n class=\"flex size-6 animate-pulse items-center justify-center rounded bg-red-500 shadow-lg\">\r\n <fa-icon class=\"text-xs\" [icon]=\"ICON.NOTIFICATION\"></fa-icon>\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Sezione Interazioni Dinamiche -->\r\n @if (menuInteractions().length) {\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <ul class=\"flex flex-col gap-2 text-white\">\r\n @for (item of menuInteractions(); track item.id) { @if (item.data.type === 'button') {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"flex h-12 w-full items-center gap-3 rounded-lg px-3 transition-all active:scale-95\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"w-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate text-left font-medium\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li\r\n class=\"dark:bg-theme-dark-700 flex flex-col gap-1 rounded-lg bg-blue-400/75 p-3 shadow-sm\">\r\n <span class=\"text-xs font-bold uppercase opacity-60\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"w-full\"\r\n valueExpr=\"id\"\r\n displayExpr=\"description\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\">\r\n </dx-select-box>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Settings Statici -->\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <div class=\"flex flex-col gap-3\">\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'DarkMode' | translate }}</span>\r\n </div>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </div>\r\n\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'Language' | translate }}</span>\r\n </div>\r\n <dx-select-box\r\n class=\"w-24\"\r\n [items]=\"localesSupported\"\r\n [value]=\"locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer Logo -->\r\n <div class=\"mt-auto border-t border-white/20 pt-4\">\r\n <img\r\n class=\"ml-auto opacity-90 transition-opacity hover:opacity-100\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n priority\r\n alt=\"Brand logo\"\r\n height=\"32\"\r\n width=\"88\" />\r\n </div>\r\n</aside>\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeEsCl from '@angular/common/locales/es-CL';\r\nimport localeIt from '@angular/common/locales/it';\r\nimport { config } from 'devextreme-angular/common';\r\nimport { loadMessages, locale } from 'devextreme-angular/common/core/localization';\r\nimport esMessages from 'devextreme/localization/messages/es.json';\r\nimport itMessages from 'devextreme/localization/messages/it.json';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { UniHttpManager, UniLocaleManager } from 'uni-manager';\r\n\r\nexport class UniLocaleManagerAngular {\r\n /* ------------------------------------------------------------------------------- */\r\n /* ----------------------------------- Config ------------------------------------ */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Registra i dati specifici del locale nel framework Angular.\r\n * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.\r\n */\r\n public static setLocaleAngular(): void {\r\n /* Imposta i dati del locale corrente in Angular necessari per le pipe */\r\n const currentLocale = UniLocaleManager.locale;\r\n if (currentLocale === 'it-IT') {\r\n registerLocaleData(localeIt, 'it-IT');\r\n } else if (currentLocale === 'es-CL') {\r\n registerLocaleData(localeEsCl, 'es-CL');\r\n }\r\n }\r\n\r\n /**\r\n * Inizializza la localizzazione specifica per i componenti DevExtreme.\r\n * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.\r\n */\r\n public static setLocaleDevextreme(): void {\r\n const currentLocale = UniLocaleManager.locale;\r\n if (!currentLocale) return;\r\n\r\n /* Imposta la lingua */\r\n locale(currentLocale);\r\n\r\n /* Forza la valuta a mano in base alla stringa esatta */\r\n if (currentLocale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (currentLocale === 'es-CL') {\r\n config({ defaultCurrency: 'CLP' });\r\n }\r\n\r\n /* Carica i messaggi di traduzione */\r\n switch (UniLocaleManager.language) {\r\n case 'it': {\r\n loadMessages(itMessages);\r\n break;\r\n }\r\n case 'es': {\r\n loadMessages(esMessages);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /* ------------------------------------------------------------------------------- */\r\n /* ------------------------------------ Http ------------------------------------- */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.\r\n * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno\r\n * tramite il metodo setTranslations.\r\n */\r\n public static async fetch(): Promise<void> {\r\n const res = await firstValueFrom(\r\n UniHttpManager.read$<{\r\n locale: string;\r\n localesSupported: string[];\r\n translations: Record<string, string>;\r\n }>({\r\n ref: 'locale',\r\n path: `/Locale/${UniLocaleManager.locale}`,\r\n }),\r\n );\r\n\r\n UniLocaleManager.setLocalesSupported(res?.localesSupported);\r\n UniLocaleManager.setTranslations(\r\n Object.fromEntries(\r\n Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]]),\r\n ),\r\n );\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { icon } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Pipe({\r\n name: 'icon_transform',\r\n standalone: true,\r\n})\r\nexport class FaIconTransformPipe implements PipeTransform {\r\n transform(iconDefinition: IconDefinition): string {\r\n return icon(iconDefinition).html[0];\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'capitalize',\r\n standalone: true,\r\n})\r\nexport class UniCapitalizePipe implements PipeTransform {\r\n transform(key: string | null | undefined): string {\r\n if (!key) return '';\r\n\r\n return UniTypeStringManager.toCapitalize(key);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { ValidationError } from '@angular/forms/signals';\r\nimport { UniLocaleManager, UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'control_validity',\r\n standalone: true,\r\n})\r\nexport class UniControlValidityPipe implements PipeTransform {\r\n transform(\r\n errors: ValidationError.WithFieldTree[] | null | undefined,\r\n ): { message: string; type: string }[] {\r\n if (!errors || errors.length === 0) return [];\r\n\r\n return errors.map((error) => {\r\n return {\r\n type: error.kind,\r\n message: UniLocaleManager.translate(UniTypeStringManager.toLabelize(error.kind)),\r\n };\r\n });\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { Combo } from 'uni-model-type';\r\n\r\n@Pipe({\r\n name: 'get_combo',\r\n standalone: true,\r\n})\r\nexport class UniGetComboPipe implements PipeTransform {\r\n transform(id: number | null | undefined, combos: Combo[] | undefined): Combo | undefined {\r\n if (!id) return undefined;\r\n\r\n return combos?.find((x) => x.id === id);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'labelize',\r\n standalone: true,\r\n})\r\nexport class UniLabelizePipe implements PipeTransform {\r\n transform(key: string | null | undefined, prefix = 'lbl', isToLabelize?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToLabelize === false) return key;\r\n\r\n return UniTypeStringManager.toLabelize(key, prefix);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'pad',\r\n standalone: true,\r\n})\r\nexport class UniPadPipe implements PipeTransform {\r\n transform(value: string | number | null | undefined, count: number, character = '0'): string {\r\n if (!value) return '';\r\n\r\n return UniTypeNumberManager.toPad(value, count, character);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace',\r\n standalone: true,\r\n})\r\nexport class UniReplacePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n values: { searchValue: string; replaceValue?: string }[],\r\n ): string {\r\n if (!key) return '';\r\n\r\n let fixedKey = key.trim();\r\n\r\n for (const value of values) {\r\n fixedKey = fixedKey.replaceAll(value.searchValue, value.replaceValue ?? '');\r\n }\r\n\r\n return fixedKey;\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'translate_inline_parameters',\r\n standalone: true,\r\n})\r\nexport class UniTranslateInlineParametersPipe implements PipeTransform {\r\n transform(key: string | null | undefined, splitChar: string, isToTranslate?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translateInlineParams(key, splitChar);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true,\r\n})\r\nexport class UniTranslatePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n prefix = 'lbl',\r\n interpolationParameters?: Record<string, string | number | Date>,\r\n isToTranslate?: boolean,\r\n ): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolationParameters);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'truncate_number',\r\n standalone: true,\r\n})\r\nexport class UniTruncateNumberPipe implements PipeTransform {\r\n transform(\r\n value: number | null | undefined,\r\n decimalDigits = 0,\r\n maxIntegerDigits?: number,\r\n ): string {\r\n if (value === null || value === undefined || Number.isNaN(value)) {\r\n return '';\r\n }\r\n\r\n return UniTypeNumberManager.toTruncateAndAdUdm(value, decimalDigits, maxIntegerDigits);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport LoadPanel from 'devextreme/ui/load_panel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniLoaderService {\r\n /* Load Panel */\r\n private loadPanel: LoadPanel;\r\n\r\n constructor() {\r\n const container = document.querySelector('body');\r\n const content: HTMLDivElement = document.createElement('div');\r\n container!.append(content);\r\n\r\n this.loadPanel = new LoadPanel(content, {\r\n showIndicator: true,\r\n showPane: true,\r\n shading: true,\r\n shadingColor: 'rgba(0,0,0,0.4)',\r\n });\r\n }\r\n\r\n /* ------------------------------------- Methods ------------------------------------- */\r\n public show(): void {\r\n this.loadPanel.show();\r\n }\r\n\r\n public hide(): void {\r\n this.loadPanel.hide();\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ClickEvent } from 'devextreme/ui/button_types';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport Popup, { ToolbarItem } from 'devextreme/ui/popup';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\nexport type PopupType = 'info' | 'warning' | 'error';\r\n\r\nexport type Instance = Popup<{\r\n title: string;\r\n showTitle: boolean;\r\n deferRendering: boolean;\r\n maxHeight: number;\r\n maxWidth: number;\r\n dragEnabled: boolean;\r\n showCloseButton: boolean;\r\n hideOnOutsideClick: boolean;\r\n shading: boolean;\r\n wrapperAttr: { id: string; class: string };\r\n toolbarItems: ToolbarItem[];\r\n contentTemplate: () => HTMLDivElement;\r\n onHidden: () => Promise<void>;\r\n}>;\r\n\r\nexport type PopupContent =\r\n | {\r\n message: string;\r\n html?: never;\r\n }\r\n | {\r\n message?: never;\r\n html: string;\r\n };\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniPopupService {\r\n /* Variables */\r\n private instances = new Map<string, Instance>();\r\n\r\n /* -------------------------------- Methods: popup -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: (e: ClickEvent) => void;\r\n lblTitle?: string;\r\n maxWidth?: number;\r\n },\r\n ): Promise<void> {\r\n const { message, html, onConfirm, lblTitle, maxWidth } = args;\r\n\r\n // Creazione del contenuto come stringa HTML\r\n const messageHtml =\r\n html ??\r\n `\r\n <div style=\"\r\n white-space: pre-line;\r\n word-break: break-all;\r\n padding: 0rem 1rem 1rem 1rem;\r\n max-width: ${typeof maxWidth === 'number' ? maxWidth + 'px' : '800px'};\r\n \">\r\n ${message ?? ''}\r\n </div>\r\n `;\r\n\r\n await custom({\r\n title: lblTitle && UniLocaleManager.translate(lblTitle),\r\n dragEnabled: false,\r\n showTitle: !!lblTitle,\r\n messageHtml,\r\n buttons: [\r\n { text: UniLocaleManager.translate('Confirm', 'btn'), onClick: onConfirm },\r\n { text: UniLocaleManager.translate('Cancel', 'btn'), onClick: undefined },\r\n ],\r\n }).show();\r\n }\r\n\r\n public async createPopup(\r\n id: string,\r\n args: PopupContent & {\r\n type?: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { type, message, html, title, detail, closable } = args;\r\n\r\n /* Pulsanti: dettaglio (errore o altro) */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail) {\r\n const detailsButtons = this.createDetailsButtons(\r\n id,\r\n message ?? html,\r\n html !== undefined,\r\n detail,\r\n );\r\n toolbarItems.push(...detailsButtons);\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable !== false) {\r\n const closeButton = this.createCloseButton(id);\r\n toolbarItems.push(closeButton);\r\n }\r\n\r\n /* Crea popup passando esplicitamente l'informazione sul formato del contenuto */\r\n const instance = await this.createPopupInstance(id, {\r\n type,\r\n title,\r\n content: message ?? html,\r\n isContentHtml: !!html,\r\n toolbarItems,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupError(\r\n id: string | undefined = undefined,\r\n args: {\r\n title?: string;\r\n message: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { title, message, detail, closable } = args;\r\n\r\n /* Crea popup */\r\n const instance = await this.createPopup(id ?? `popup-${Date.now()}`, {\r\n type: 'error',\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message,\r\n detail,\r\n closable,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorHttp(args: {\r\n ref?: string;\r\n err: HttpErrorResponse;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, err } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Message detail */\r\n const { status, statusText, message, error: errorResponse } = err;\r\n let errorDetail = `[${status} - ${statusText}]: ${message}`;\r\n if (errorResponse) {\r\n try {\r\n if (errorResponse instanceof Blob) {\r\n errorDetail += `\\n ${await errorResponse.text()}`;\r\n } else if (typeof errorResponse === 'string') {\r\n errorDetail += `\\n ${errorResponse}`;\r\n } else if (typeof errorResponse === 'object') {\r\n errorDetail += `\\n ${JSON.stringify(errorResponse, undefined, 2)}`;\r\n } else {\r\n errorDetail += `\\n ${String(errorResponse)}`;\r\n }\r\n } catch (error) {\r\n errorDetail += `\\n Error processing the error message: ${error}`;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n message: UniLocaleManager.translate(`error${err.status}`),\r\n detail: {\r\n message: errorDetail,\r\n messageToCopy: JSON.stringify(err),\r\n },\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n ref?: string;\r\n label: string;\r\n interpolationParameters?: Record<string, string | number | Date>;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, label, interpolationParameters } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n message: UniLocaleManager.translate(label, 'lbl', interpolationParameters),\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async updateContentPopup(id: string, content: PopupContent): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Recupero elemento html del popup */\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n /* Selezione del metodo di rendering e del layout in base alla proprietà definita */\r\n if (content.html === undefined) {\r\n this.setContentCenter(element, content.message);\r\n } else {\r\n this.setContent(element, content.html, true);\r\n }\r\n }\r\n\r\n public async closePopup(id: string): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Esecuzione del processo di chiusura asincrona del componente DevExtreme */\r\n await popup.hide();\r\n }\r\n\r\n /* -------------------------------- Methods: instance -------------------------------- */\r\n private async createPopupInstance(\r\n id: string,\r\n args: {\r\n type?: PopupType;\r\n title?: string;\r\n content: string;\r\n isContentHtml: boolean;\r\n toolbarItems: ToolbarItem[];\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera argomenti */\r\n const { type, title, content, isContentHtml, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n const popup = this.instances.get(id);\r\n if (popup) {\r\n popup.show();\r\n return popup;\r\n }\r\n\r\n /* Crea container del popup */\r\n const container = document.createElement('div');\r\n document.body.append(container);\r\n\r\n /* Crea popup */\r\n const instance = new Popup(container, {\r\n title: title ?? '',\r\n showTitle: !!title,\r\n deferRendering: false,\r\n maxHeight: 500,\r\n maxWidth: 1000,\r\n dragEnabled: false,\r\n showCloseButton: false,\r\n hideOnOutsideClick: false,\r\n shading: true,\r\n wrapperAttr: {\r\n id,\r\n class: `uni-popup-${type ?? 'info'}`,\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const element = document.createElement('div');\r\n element.style.whiteSpace = 'pre-line';\r\n element.style.wordBreak = 'break-all';\r\n element.style.height = '100%';\r\n\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n\r\n return element;\r\n },\r\n onHidden: async (): Promise<void> => {\r\n // Rimozione del riferimento dalla mappa per prevenire interazioni concorrenti\r\n this.instances.delete(id);\r\n\r\n // Rilascio delle risorse allocate dal widget al termine dell'animazione di uscita\r\n instance.dispose();\r\n\r\n // Rimozione definitiva dell'elemento HTML dal Document Object Model (DOM)\r\n instance.element()?.remove();\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, instance);\r\n await instance.show();\r\n\r\n return instance;\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseButton(id: string): ToolbarItem {\r\n return {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'close',\r\n text: UniLocaleManager.translate('Close', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => this.closePopup(id),\r\n },\r\n };\r\n }\r\n\r\n private createDetailsButtons(\r\n id: string,\r\n content: string,\r\n isContentHtml: boolean,\r\n detail: { message: string; messageToCopy?: string },\r\n ): ToolbarItem[] {\r\n // Variabile di stato per i dettagli\r\n let inShow = false;\r\n\r\n /* Pulsanti: 'dettagli' e 'indietro */\r\n const items: ToolbarItem[] = [\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'find',\r\n text: UniLocaleManager.translate('Details', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: async (e: { component: any }): Promise<void> => {\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n inShow = !inShow;\r\n\r\n if (inShow) {\r\n this.setContent(element, detail.message, false);\r\n } else {\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n }\r\n\r\n e.component.option({\r\n text: UniLocaleManager.translate(inShow ? 'Back' : 'Details', 'btn'),\r\n icon: inShow ? 'back' : 'find',\r\n });\r\n },\r\n },\r\n },\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'refresh',\r\n text: UniLocaleManager.translate('Refresh', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): void => location.reload(),\r\n },\r\n },\r\n ];\r\n\r\n /* Pulsanti: 'copiare dettagli' */\r\n if (detail.messageToCopy) {\r\n items.push({\r\n visible: globalThis.isSecureContext,\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'copy',\r\n text: UniLocaleManager.translate('Copy', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => navigator?.clipboard?.writeText(detail.messageToCopy!),\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private setContent(element: HTMLElement, content: string, isContentHtml: boolean): void {\r\n if (isContentHtml) {\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n element.style.display = 'block';\r\n element.style.textAlign = 'left';\r\n element.style.alignItems = ''; // Reset flexbox\r\n element.style.justifyContent = ''; // Reset flexbox\r\n }\r\n\r\n private setContentCenter(element: HTMLElement, content: string): void {\r\n element.textContent = content;\r\n element.style.display = 'flex';\r\n element.style.alignItems = 'center';\r\n element.style.justifyContent = 'center';\r\n element.style.textAlign = 'center';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { ToastType } from 'devextreme/ui/toast_types';\r\nimport { IToastManager, ToastConfig } from 'uni-manager';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniToastService implements IToastManager {\r\n public success(message: string, config?: ToastConfig): void {\r\n this.show(message, 'success', config);\r\n }\r\n\r\n public info(message: string, config?: ToastConfig): void {\r\n this.show(message, 'info', config);\r\n }\r\n\r\n public warning(message: string, config?: ToastConfig): void {\r\n this.show(message, 'warning', config);\r\n }\r\n\r\n public error(message: string, config?: ToastConfig): void {\r\n this.show(message, 'error', config);\r\n }\r\n\r\n /* ----------------------- Metodi: utils ----------------------- */\r\n private show(message: string, type: ToastType, config?: ToastConfig): void {\r\n notify(\r\n {\r\n message,\r\n type,\r\n height: 50,\r\n width: 400,\r\n displayTime: config?.duration ?? 4000,\r\n animation: {\r\n show: { type: 'fade', duration: 400, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 300, from: 1, to: 0 },\r\n },\r\n },\r\n { position: 'bottom center', direction: 'up-push' },\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of uni-app-fe\r\n */\r\n\r\nexport * from './component/public-api';\r\nexport * from './manager/public-api';\r\nexport * from './pipe/public-api';\r\nexport * from './service/public-api';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["UniTranslatePipe","i2","i3","i1","UniLoaderService"],"mappings":"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"}
1
+ {"version":3,"file":"uni-app-fe.mjs","sources":["../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/component/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/component/uni-header/uni-header.ts","../../../projects/uni-app-fe/component/uni-header/uni-header.html","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/component/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/component/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/component/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/component/uni-led/model.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.ts","../../../projects/uni-app-fe/component/uni-led/uni-led.html","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/component/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/manager/locale.manager.ts","../../../projects/uni-app-fe/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/pipe/uni-replace.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/service/uni-loader.service.ts","../../../projects/uni-app-fe/service/uni-popup.service.ts","../../../projects/uni-app-fe/service/uni-toast.service.ts","../../../projects/uni-app-fe/public-api.ts","../../../projects/uni-app-fe/uni-app-fe.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faTriangleExclamation, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-banner-alert',\r\n imports: [CommonModule, FaIconComponent, UniTranslatePipe],\r\n templateUrl: './uni-banner-alert.html',\r\n styleUrls: ['./uni-banner-alert.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniBannerAlert {\r\n /* Icons */\r\n type = input.required<'warning' | 'error'>();\r\n lblTitle = input.required<string>();\r\n lblDescription = input.required<string>();\r\n icon = input<IconDefinition>();\r\n\r\n /* Icons */\r\n readonly ICON_WARNING = faTriangleExclamation;\r\n}\r\n","<div\r\n class=\"flex w-full flex-col gap-6 rounded-2xl border-2 p-4 text-center shadow-lg backdrop-blur-md\"\r\n [ngClass]=\"{\r\n 'bg-amber-500/25 border-amber-500 dark:text-amber-100 text-amber-500': type() === 'warning',\r\n 'bg-rose-500/25 border-rose-500 dark:text-rose-200 text-rose-500': type() === 'error'\r\n }\">\r\n <div class=\"flex flex-col items-center gap-4\">\r\n <h1 class=\"text-lg! font-semibold\">{{ lblTitle() | translate }}</h1>\r\n @if(icon(); as icon) {\r\n <fa-icon class=\"text-5xl\" [icon]=\"icon\"></fa-icon>\r\n }\r\n <p class=\"text-sm leading-relaxed text-white!\">{{ lblDescription() | translate }}</p>\r\n </div>\r\n</div>\r\n","import { NgOptimizedImage } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\n\r\n@Component({\r\n selector: 'uni-header',\r\n standalone: true,\r\n imports: [DxButtonModule, NgOptimizedImage],\r\n templateUrl: './uni-header.html',\r\n styleUrls: ['./uni-header.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniHeader {\r\n /* Input */\r\n title = input.required<string>();\r\n version = input.required<string>();\r\n pathBrandLogo = input.required<string>();\r\n pathAppLogo = input<string>();\r\n sideMenu = input<boolean>(false);\r\n\r\n /* Output */\r\n evtToggleMenu = output<true>();\r\n}\r\n","<div\r\n class=\"dark:bg-theme-dark-800 flex h-16 items-center gap-4 overflow-hidden rounded-xl bg-blue-300 px-4 py-3 text-white\">\r\n <!-- App logo -->\r\n @if (pathAppLogo(); as pathAppLogo) {\r\n <img\r\n [ngSrc]=\"pathAppLogo\"\r\n width=\"40\"\r\n height=\"40\"\r\n priority\r\n class=\"aspect-square h-full w-auto\"\r\n alt=\"App logo\" />\r\n }\r\n\r\n <!-- Info -->\r\n <div class=\"flex flex-1 flex-col overflow-hidden\">\r\n <p class=\"truncate text-xl font-semibold uppercase leading-tight\">{{ title() }}</p>\r\n <p class=\"text-xs opacity-75\">{{ version() }}</p>\r\n </div>\r\n\r\n <div class=\"flex h-full items-center gap-2\">\r\n <!-- Brand Logo -->\r\n <div class=\"2xs:block relative hidden h-full w-24\">\r\n <img\r\n [ngSrc]=\"pathBrandLogo()\"\r\n fill\r\n priority\r\n class=\"object-contain object-right\"\r\n alt=\"Brand logo\" />\r\n </div>\r\n\r\n <!-- Button menu -->\r\n @if (sideMenu()) {\r\n <dx-button class=\"shadow-none!\" [icon]=\"'menu'\" (onClick)=\"evtToggleMenu.emit(true)\">\r\n </dx-button>\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-hight-contrast',\r\n imports: [DxTooltipModule, UniTranslatePipe],\r\n templateUrl: './uni-item-field-with-hight-contrast.html',\r\n styleUrl: './uni-item-field-with-hight-contrast.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithHightContrast {\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | null | undefined>();\r\n}\r\n","<div class=\"flex flex-col items-start\">\r\n <span class=\"max-w-full min-w-0 truncate text-lg text-nowrap text-gray-500 dark:text-gray-300\">\r\n {{ label() | translate }}\r\n </span>\r\n <span #tooltipTarget class=\"max-w-full min-w-0 cursor-help truncate text-3xl font-semibold\">\r\n {{ value() || '-' }}\r\n </span>\r\n</div>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ value() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniToastManager } from 'uni-manager/toast';\r\n\r\n@Component({\r\n selector: 'uni-item-field',\r\n imports: [CommonModule, DxTooltipModule, UniTranslatePipe],\r\n providers: [DatePipe],\r\n templateUrl: './uni-item-field.html',\r\n styleUrl: './uni-item-field.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemField {\r\n /* Pipe */\r\n readonly datePipe = inject(DatePipe);\r\n\r\n /* Input */\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n udm = input<string>();\r\n dateFormat = input<'short' | 'medium' | 'shortDate' | 'mediumDate' | 'longDate' | 'fullDate'>(\r\n 'longDate',\r\n );\r\n\r\n /* Variable */\r\n valueFormatted = computed(() => {\r\n const value = this.value();\r\n if (!value) return '';\r\n\r\n if (\r\n (value instanceof Date && !Number.isNaN(value.getTime())) ||\r\n (typeof value === 'string' && this.isValidDateString(value))\r\n ) {\r\n return this.datePipe.transform(new Date(value), this.dateFormat());\r\n }\r\n return `${value}${this.udm() ?? ''}`;\r\n });\r\n\r\n /* ---------------- Methods: event ---------------- */\r\n async onCopyValue(): Promise<void> {\r\n const value = this.valueFormatted();\r\n if (!value) return;\r\n\r\n // Controllo se l'API è disponibile e il contesto è sicuro (HTTPS/Localhost)\r\n if (navigator.clipboard && globalThis.isSecureContext) {\r\n await navigator.clipboard.writeText(value);\r\n UniToastManager.show({ label: 'ValueCopied' });\r\n }\r\n }\r\n\r\n /* ---------------- Methods: utils ---------------- */\r\n private isValidDateString(value: unknown): value is string {\r\n if (typeof value !== 'string') return false;\r\n\r\n // ISO 8601 (con o senza timezone)\r\n const isoRegex =\r\n /^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n\r\n if (!isoRegex.test(value)) return false;\r\n\r\n const date = new Date(value);\r\n return !Number.isNaN(date.getTime());\r\n }\r\n}\r\n","<li class=\"flex items-center gap-2 text-sm!\">\r\n <span class=\"text-nowrap text-gray-500 dark:text-gray-300\"> {{ label() | translate }}: </span>\r\n <span\r\n #tooltipTarget\r\n [ngClass]=\"{'text-gray-500/50 dark:text-gray-300/50': !valueFormatted() }\"\r\n class=\"max-w-full min-w-0 cursor-help truncate font-semibold transition duration-100 ease-in-out hover:opacity-75 active:scale-95\"\r\n (click)=\"onCopyValue()\">\r\n {{ valueFormatted() || '-' }}\r\n </span>\r\n</li>\r\n\r\n<dx-tooltip\r\n [target]=\"tooltipTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">{{ valueFormatted() || '-' }}</div>\r\n</dx-tooltip>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { faCircleInfo } from '@fortawesome/free-solid-svg-icons';\r\nimport { DxTooltipModule } from 'devextreme-angular/ui/tooltip';\r\n\r\nimport { UniItemField } from '../uni-item-field/uni-item-field';\r\n\r\n@Component({\r\n selector: 'uni-item-field-with-lens-tooltip',\r\n imports: [DxTooltipModule, FaIconComponent, UniItemField],\r\n templateUrl: './uni-item-field-with-lens-tooltip.html',\r\n styleUrl: './uni-item-field-with-lens-tooltip.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniItemFieldWithLensTooltip {\r\n /* Input */\r\n id = input.required<string>();\r\n label = input.required<string>();\r\n value = input.required<string | number | Date | null | undefined>();\r\n\r\n /* Icon */\r\n readonly ICON_INFO = faCircleInfo;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <uni-item-field [label]=\"label()\" [value]=\"value()\" />\r\n\r\n <div #tooltipInfoTarget>\r\n <fa-icon\r\n class=\"text-theme-200 cursor-help rounded px-1 text-xs! transition duration-150 ease-in-out hover:opacity-75\"\r\n [icon]=\"ICON_INFO\">\r\n </fa-icon>\r\n </div>\r\n\r\n <dx-tooltip\r\n [target]=\"tooltipInfoTarget\"\r\n showEvent=\"mouseenter\"\r\n hideEvent=\"mouseleave\"\r\n [hideOnOutsideClick]=\"false\">\r\n <div *dxTemplate=\"let data = data; of: 'content'\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dx-tooltip>\r\n</div>\r\n","export enum LedStatus {\r\n OK,\r\n WARNING,\r\n ERROR,\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nimport { LedStatus } from './model';\r\n\r\n@Component({\r\n selector: 'uni-led',\r\n imports: [CommonModule],\r\n templateUrl: './uni-led.html',\r\n styleUrls: ['./uni-led.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniLed {\r\n /* Inputs */\r\n public description = input.required<string>();\r\n public status = input.required<LedStatus | boolean | null | undefined>();\r\n\r\n /* Enum */\r\n protected readonly LED_STATUS = LedStatus;\r\n}\r\n","<div class=\"flex items-center gap-1\">\r\n <div\r\n class=\"led\"\r\n [ngClass]=\"{\r\n ok: status() === true || status() === LED_STATUS.OK,\r\n warning: status() === LED_STATUS.WARNING,\r\n error: status() === false || status() === LED_STATUS.ERROR,\r\n }\"></div>\r\n <p class=\"truncate text-sm\">{{ description() }}</p>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faArrowRightFromBracket,\r\n faArrowRightToBracket,\r\n faBell,\r\n faLanguage,\r\n faMoon,\r\n faSun,\r\n faUser,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { DxButtonModule } from 'devextreme-angular/ui/button';\r\nimport { DxSelectBoxModule } from 'devextreme-angular/ui/select-box';\r\nimport { DxSwitchModule } from 'devextreme-angular/ui/switch';\r\nimport { ValueChangedEvent as SelectBoxValueChangedEvent } from 'devextreme/ui/select_box_types';\r\nimport { ValueChangedEvent as SwitchValueChangedEvent } from 'devextreme/ui/switch_types';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nimport { UniTranslatePipe } from 'uni-app-fe/pipe';\r\nimport { UniLoaderService } from 'uni-app-fe/service';\r\nimport { MenuInteraction, MenuItem } from './model';\r\n\r\n@Component({\r\n selector: 'uni-side-menu',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n RouterLink,\r\n RouterLinkActive,\r\n DxButtonModule,\r\n DxSelectBoxModule,\r\n DxSwitchModule,\r\n UniTranslatePipe,\r\n FaIconComponent,\r\n NgOptimizedImage,\r\n ],\r\n templateUrl: './uni-side-menu.html',\r\n styleUrls: ['./uni-side-menu.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UniSideMenu {\r\n /* Service */\r\n readonly elementRef = inject(ElementRef);\r\n readonly uniLoader = inject(UniLoaderService);\r\n\r\n /* Input */\r\n readonly pathUnitecLogo = input.required<string>();\r\n readonly menuItems = input<MenuItem[]>([]);\r\n readonly menuInteractions = input<MenuInteraction[]>([]);\r\n\r\n /* Output */\r\n evtToggleMenu = output<false>();\r\n\r\n /* Variables */\r\n locale = UniLocaleManager.locale;\r\n localesSupported = UniLocaleManager.localesSupported;\r\n darkMode = signal<boolean>(\r\n !localStorage.getItem('uni-theme') || localStorage.getItem('uni-theme') === 'dark',\r\n );\r\n\r\n /* Icons */\r\n readonly ICON = {\r\n USER: faUser,\r\n LOGIN: faArrowRightToBracket,\r\n LOGOUT: faArrowRightFromBracket,\r\n LIGHT_MODE: faSun,\r\n DARK_MODE: faMoon,\r\n LANGUAGE: faLanguage,\r\n NOTIFICATION: faBell,\r\n };\r\n\r\n /* ---------------------- Host listener ---------------------- */\r\n @HostListener('document:click', ['$event'])\r\n protected onClickOutside(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n\r\n // Controlla se il click è avvenuto dentro il menu principale\r\n const clickedInsideMenu = this.elementRef.nativeElement.contains(target);\r\n\r\n // Controlla se il click è avvenuto dentro un popup/dropdown aperto\r\n const clickedInsideOverlay = !!target.closest(\r\n '.dx-overlay-wrapper, .dx-dropdowneditor-overlay',\r\n );\r\n\r\n // Se il click è fuori da entrambi, allora chiude il menu\r\n if (!clickedInsideMenu && !clickedInsideOverlay) {\r\n this.evtToggleMenu.emit(false);\r\n }\r\n }\r\n\r\n /* ---------------------- Methods ---------------------- */\r\n updateTheme(e: SwitchValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-theme', e.value ? 'dark' : 'light');\r\n globalThis.location.reload();\r\n }\r\n\r\n updateLocale(e: SelectBoxValueChangedEvent): void {\r\n this.uniLoader.show();\r\n localStorage.setItem('uni-locale', e.value);\r\n globalThis.location.reload();\r\n }\r\n}\r\n","<aside\r\n class=\"dark:bg-theme-dark-800 dark:border-theme-dark-900 flex h-screen w-[80vw] max-w-75 flex-col gap-6 overflow-hidden rounded-l border-b-2 border-l-2 border-blue-400/33 bg-blue-300 p-4 shadow-2xl\">\r\n <!-- Header: User/Close -->\r\n <div class=\"flex h-8 w-full shrink-0 items-center\">\r\n <dx-button class=\"ml-auto rounded-full!\" [icon]=\"'close'\" (onClick)=\"evtToggleMenu.emit(false)\">\r\n </dx-button>\r\n </div>\r\n\r\n <div class=\"custom-scrollbar flex flex-1 flex-col overflow-x-hidden overflow-y-auto pr-1\">\r\n <!-- Sezione Menu Principale -->\r\n @if (menuItems().length) {\r\n <ul class=\"flex flex-col gap-1.5\">\r\n @for (item of menuItems(); track item.id) { @if (item.visible !== false) {\r\n <li>\r\n <a\r\n class=\"group flex h-12 items-center gap-3 rounded-lg px-3 text-white! transition-colors dark:text-gray-300!\"\r\n [ngClass]=\"{\r\n 'dark:hover:bg-theme-dark-700 hover:bg-blue-400': !item.badge && !item.disabled,\r\n 'hover:bg-red-500/50': item.badge && !item.disabled,\r\n 'pointer-events-none opacity-30 grayscale': item.disabled,\r\n }\"\r\n [routerLink]=\"item.disabled ? null : item.path\"\r\n [routerLinkActive]=\"item.badge ?\r\n 'bg-red-500/60 *:text-white! *:font-semibold!' :\r\n 'bg-blue-400/75 dark:bg-theme-dark-700 *:text-white! *:font-semibold!'\r\n \"\r\n (click)=\"evtToggleMenu.emit(false)\">\r\n <fa-icon [icon]=\"item.icon\" class=\"w-6 text-center text-lg\"></fa-icon>\r\n <span class=\"flex-1 truncate font-medium\">{{ item.label }}</span>\r\n @if (item.badge) {\r\n <div\r\n class=\"flex size-6 animate-pulse items-center justify-center rounded bg-red-500 shadow-lg\">\r\n <fa-icon class=\"text-xs\" [icon]=\"ICON.NOTIFICATION\"></fa-icon>\r\n </div>\r\n }\r\n </a>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Sezione Interazioni Dinamiche -->\r\n @if (menuInteractions().length) {\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <ul class=\"flex flex-col gap-2 text-white\">\r\n @for (item of menuInteractions(); track item.id) { @if (item.data.type === 'button') {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"flex h-12 w-full items-center gap-3 rounded-lg px-3 transition-all active:scale-95\"\r\n [class]=\"item.class\"\r\n (click)=\"item.data.onClick()\">\r\n <fa-icon class=\"w-6\" [icon]=\"item.data.icon\"></fa-icon>\r\n <span class=\"flex-1 truncate text-left font-medium\">{{ item.label }}</span>\r\n </button>\r\n </li>\r\n } @else if (item.data.type === 'select') {\r\n <li\r\n class=\"dark:bg-theme-dark-700 flex flex-col gap-1 rounded-lg bg-blue-400/75 p-3 shadow-sm\">\r\n <span class=\"text-xs font-bold uppercase opacity-60\">{{ item.label }}</span>\r\n <dx-select-box\r\n class=\"w-full\"\r\n valueExpr=\"id\"\r\n displayExpr=\"description\"\r\n [items]=\"item.data.combos\"\r\n [value]=\"item.data.value\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"item.data.onValueChanged($event)\">\r\n </dx-select-box>\r\n </li>\r\n } }\r\n </ul>\r\n }\r\n\r\n <!-- Settings Statici -->\r\n <hr class=\"dark:border-theme-dark-900 my-6 border-blue-400/30\" />\r\n <div class=\"flex flex-col gap-3\">\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"darkMode() ? ICON.DARK_MODE : ICON.LIGHT_MODE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'DarkMode' | translate }}</span>\r\n </div>\r\n <dx-switch [value]=\"darkMode()\" (onValueChanged)=\"updateTheme($event)\"></dx-switch>\r\n </div>\r\n\r\n <div\r\n class=\"dark:bg-theme-dark-700 flex h-14 items-center justify-between rounded-lg bg-blue-400/75 px-4 text-white shadow-sm\">\r\n <div class=\"flex items-center gap-3\">\r\n <fa-icon [icon]=\"ICON.LANGUAGE\"></fa-icon>\r\n <span class=\"truncate\">{{ 'Language' | translate }}</span>\r\n </div>\r\n <dx-select-box\r\n class=\"w-24\"\r\n [items]=\"localesSupported\"\r\n [value]=\"locale\"\r\n stylingMode=\"underlined\"\r\n (onValueChanged)=\"updateLocale($event)\">\r\n </dx-select-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer Logo -->\r\n <div class=\"mt-auto border-t border-white/20 pt-4\">\r\n <img\r\n class=\"ml-auto opacity-90 transition-opacity hover:opacity-100\"\r\n [ngSrc]=\"pathUnitecLogo()\"\r\n priority\r\n alt=\"Brand logo\"\r\n height=\"32\"\r\n width=\"88\" />\r\n </div>\r\n</aside>\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeEsCl from '@angular/common/locales/es-CL';\r\nimport localeIt from '@angular/common/locales/it';\r\nimport { config } from 'devextreme-angular/common';\r\nimport { loadMessages, locale } from 'devextreme-angular/common/core/localization';\r\nimport esMessages from 'devextreme/localization/messages/es.json';\r\nimport itMessages from 'devextreme/localization/messages/it.json';\r\nimport { firstValueFrom } from 'rxjs/internal/firstValueFrom';\r\nimport { UniHttpManager } from 'uni-manager/http';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nexport class UniLocaleManagerAngular {\r\n /* ------------------------------------------------------------------------------- */\r\n /* ----------------------------------- Config ------------------------------------ */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Registra i dati specifici del locale nel framework Angular.\r\n * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.\r\n */\r\n public static setLocaleAngular(currentLocale: string): void {\r\n if (!currentLocale) return;\r\n\r\n /* Imposta i dati del locale corrente in Angular necessari per le pipe */\r\n if (currentLocale === 'it-IT') {\r\n registerLocaleData(localeIt, 'it-IT');\r\n } else if (currentLocale === 'es-CL') {\r\n registerLocaleData(localeEsCl, 'es-CL');\r\n }\r\n }\r\n\r\n /**\r\n * Inizializza la localizzazione specifica per i componenti DevExtreme.\r\n * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.\r\n */\r\n public static setLocaleDevextreme(currentLocale: string): void {\r\n if (!currentLocale) return;\r\n\r\n /* Imposta la lingua */\r\n locale(currentLocale);\r\n\r\n /* Forza la valuta a mano in base alla stringa esatta */\r\n if (currentLocale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (currentLocale === 'es-CL') {\r\n config({ defaultCurrency: 'CLP' });\r\n }\r\n\r\n /* Carica i messaggi di traduzione */\r\n switch (UniLocaleManager.language) {\r\n case 'it': {\r\n loadMessages(itMessages);\r\n break;\r\n }\r\n case 'es': {\r\n loadMessages(esMessages);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /* ------------------------------------------------------------------------------- */\r\n /* ------------------------------------ Http ------------------------------------- */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.\r\n * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno\r\n * tramite il metodo setTranslations.\r\n */\r\n public static async fetchTranslation(currentLocale: string): Promise<void> {\r\n if (!currentLocale) return;\r\n\r\n const res = await firstValueFrom(\r\n UniHttpManager.read$<{\r\n locale: string;\r\n localesSupported: string[];\r\n translations: Record<string, string>;\r\n }>({\r\n ref: 'locale',\r\n path: `/Locale/${currentLocale}`,\r\n }),\r\n );\r\n\r\n UniLocaleManager.setLocalesSupported(res?.localesSupported);\r\n UniLocaleManager.setTranslations(\r\n Object.fromEntries(\r\n Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]]),\r\n ),\r\n );\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { icon } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Pipe({\r\n name: 'icon_transform',\r\n standalone: true,\r\n})\r\nexport class FaIconTransformPipe implements PipeTransform {\r\n transform(iconDefinition: IconDefinition): string {\r\n return icon(iconDefinition).html[0];\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'capitalize',\r\n standalone: true,\r\n})\r\nexport class UniCapitalizePipe implements PipeTransform {\r\n transform(key: string | null | undefined): string {\r\n if (!key) return '';\r\n\r\n return UniTypeStringManager.toCapitalize(key);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { ValidationError } from '@angular/forms/signals';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'control_validity',\r\n standalone: true,\r\n})\r\nexport class UniControlValidityPipe implements PipeTransform {\r\n transform(\r\n errors: ValidationError.WithFieldTree[] | null | undefined,\r\n ): { message: string; type: string }[] {\r\n if (!errors || errors.length === 0) return [];\r\n\r\n return errors.map((error) => {\r\n return {\r\n type: error.kind,\r\n message: UniLocaleManager.translate(UniTypeStringManager.toLabelize(error.kind)),\r\n };\r\n });\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { Combo } from 'uni-model-type';\r\n\r\n@Pipe({\r\n name: 'get_combo',\r\n standalone: true,\r\n})\r\nexport class UniGetComboPipe implements PipeTransform {\r\n transform(id: number | null | undefined, combos: Combo[] | undefined): Combo | undefined {\r\n if (!id) return undefined;\r\n\r\n return combos?.find((x) => x.id === id);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'labelize',\r\n standalone: true,\r\n})\r\nexport class UniLabelizePipe implements PipeTransform {\r\n transform(key: string | null | undefined, prefix = 'lbl', isToLabelize?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToLabelize === false) return key;\r\n\r\n return UniTypeStringManager.toLabelize(key, prefix);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'pad',\r\n standalone: true,\r\n})\r\nexport class UniPadPipe implements PipeTransform {\r\n transform(value: string | number | null | undefined, count: number, character = '0'): string {\r\n if (!value) return '';\r\n\r\n return UniTypeNumberManager.toPad(value, count, character);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace',\r\n standalone: true,\r\n})\r\nexport class UniReplacePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n values: { searchValue: string; replaceValue?: string }[],\r\n ): string {\r\n if (!key) return '';\r\n\r\n let fixedKey = key.trim();\r\n\r\n for (const value of values) {\r\n fixedKey = fixedKey.replaceAll(value.searchValue, value.replaceValue ?? '');\r\n }\r\n\r\n return fixedKey;\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\n@Pipe({\r\n name: 'translate_inline_parameters',\r\n standalone: true,\r\n})\r\nexport class UniTranslateInlineParametersPipe implements PipeTransform {\r\n transform(key: string | null | undefined, splitChar: string, isToTranslate?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translateInlineParams(key, splitChar);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true,\r\n})\r\nexport class UniTranslatePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n prefix = 'lbl',\r\n interpolationParameters?: Record<string, string | number | Date>,\r\n isToTranslate?: boolean,\r\n ): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolationParameters);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager/type';\r\n\r\n@Pipe({\r\n name: 'truncate_number',\r\n standalone: true,\r\n})\r\nexport class UniTruncateNumberPipe implements PipeTransform {\r\n transform(\r\n value: number | null | undefined,\r\n decimalDigits = 0,\r\n maxIntegerDigits?: number,\r\n ): string {\r\n if (value === null || value === undefined || Number.isNaN(value)) {\r\n return '';\r\n }\r\n\r\n return UniTypeNumberManager.toTruncateAndAdUdm(value, decimalDigits, maxIntegerDigits);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport LoadPanel from 'devextreme/ui/load_panel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniLoaderService {\r\n /* Load Panel */\r\n private loadPanel: LoadPanel;\r\n\r\n constructor() {\r\n const container = document.querySelector('body');\r\n const content: HTMLDivElement = document.createElement('div');\r\n container!.append(content);\r\n\r\n this.loadPanel = new LoadPanel(content, {\r\n showIndicator: true,\r\n showPane: true,\r\n shading: true,\r\n shadingColor: 'rgba(0,0,0,0.4)',\r\n });\r\n }\r\n\r\n /* ------------------------------------- Methods ------------------------------------- */\r\n public show(): void {\r\n this.loadPanel.show();\r\n }\r\n\r\n public hide(): void {\r\n this.loadPanel.hide();\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ClickEvent } from 'devextreme/ui/button_types';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport Popup, { ToolbarItem } from 'devextreme/ui/popup';\r\nimport { UniLocaleManager } from 'uni-manager/locale';\r\n\r\nexport type PopupType = 'info' | 'warning' | 'error';\r\n\r\nexport type Instance = Popup<{\r\n title: string;\r\n showTitle: boolean;\r\n deferRendering: boolean;\r\n maxHeight: number;\r\n maxWidth: number;\r\n dragEnabled: boolean;\r\n showCloseButton: boolean;\r\n hideOnOutsideClick: boolean;\r\n shading: boolean;\r\n wrapperAttr: { id: string; class: string };\r\n toolbarItems: ToolbarItem[];\r\n contentTemplate: () => HTMLDivElement;\r\n onHidden: () => Promise<void>;\r\n}>;\r\n\r\nexport type PopupContent =\r\n | {\r\n message: string;\r\n html?: never;\r\n }\r\n | {\r\n message?: never;\r\n html: string;\r\n };\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniPopupService {\r\n /* Variables */\r\n private instances = new Map<string, Instance>();\r\n\r\n /* -------------------------------- Methods: popup -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: (e: ClickEvent) => void;\r\n lblTitle?: string;\r\n maxWidth?: number;\r\n },\r\n ): Promise<void> {\r\n const { message, html, onConfirm, lblTitle, maxWidth } = args;\r\n\r\n // Creazione del contenuto come stringa HTML\r\n const messageHtml =\r\n html ??\r\n `\r\n <div style=\"\r\n white-space: pre-line;\r\n word-break: break-all;\r\n padding: 0rem 1rem 1rem 1rem;\r\n max-width: ${typeof maxWidth === 'number' ? maxWidth + 'px' : '800px'};\r\n \">\r\n ${message ?? ''}\r\n </div>\r\n `;\r\n\r\n await custom({\r\n title: lblTitle && UniLocaleManager.translate(lblTitle),\r\n dragEnabled: false,\r\n showTitle: !!lblTitle,\r\n messageHtml,\r\n buttons: [\r\n { text: UniLocaleManager.translate('Confirm', 'btn'), onClick: onConfirm },\r\n { text: UniLocaleManager.translate('Cancel', 'btn'), onClick: undefined },\r\n ],\r\n }).show();\r\n }\r\n\r\n public async createPopup(\r\n id: string,\r\n args: PopupContent & {\r\n type?: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { type, message, html, title, detail, closable } = args;\r\n\r\n /* Pulsanti: dettaglio (errore o altro) */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail) {\r\n const detailsButtons = this.createDetailsButtons(\r\n id,\r\n message ?? html,\r\n html !== undefined,\r\n detail,\r\n );\r\n toolbarItems.push(...detailsButtons);\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable !== false) {\r\n const closeButton = this.createCloseButton(id);\r\n toolbarItems.push(closeButton);\r\n }\r\n\r\n /* Crea popup passando esplicitamente l'informazione sul formato del contenuto */\r\n const instance = await this.createPopupInstance(id, {\r\n type,\r\n title,\r\n content: message ?? html,\r\n isContentHtml: !!html,\r\n toolbarItems,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupError(\r\n id: string | undefined = undefined,\r\n args: {\r\n title?: string;\r\n message: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { title, message, detail, closable } = args;\r\n\r\n /* Crea popup */\r\n const instance = await this.createPopup(id ?? `popup-${Date.now()}`, {\r\n type: 'error',\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message,\r\n detail,\r\n closable,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorHttp(args: {\r\n ref?: string;\r\n err: HttpErrorResponse;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, err } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Message detail */\r\n const { status, statusText, message, error: errorResponse } = err;\r\n let errorDetail = `[${status} - ${statusText}]: ${message}`;\r\n if (errorResponse) {\r\n try {\r\n if (errorResponse instanceof Blob) {\r\n errorDetail += `\\n ${await errorResponse.text()}`;\r\n } else if (typeof errorResponse === 'string') {\r\n errorDetail += `\\n ${errorResponse}`;\r\n } else if (typeof errorResponse === 'object') {\r\n errorDetail += `\\n ${JSON.stringify(errorResponse, undefined, 2)}`;\r\n } else {\r\n errorDetail += `\\n ${String(errorResponse)}`;\r\n }\r\n } catch (error) {\r\n errorDetail += `\\n Error processing the error message: ${error}`;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n message: UniLocaleManager.translate(`error${err.status}`),\r\n detail: {\r\n message: errorDetail,\r\n messageToCopy: JSON.stringify(err),\r\n },\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n ref?: string;\r\n label: string;\r\n interpolationParameters?: Record<string, string | number | Date>;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, label, interpolationParameters } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n message: UniLocaleManager.translate(label, 'lbl', interpolationParameters),\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async updateContentPopup(id: string, content: PopupContent): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Recupero elemento html del popup */\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n /* Selezione del metodo di rendering e del layout in base alla proprietà definita */\r\n if (content.html === undefined) {\r\n this.setContentCenter(element, content.message);\r\n } else {\r\n this.setContent(element, content.html, true);\r\n }\r\n }\r\n\r\n public async closePopup(id: string): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Esecuzione del processo di chiusura asincrona del componente DevExtreme */\r\n await popup.hide();\r\n }\r\n\r\n /* -------------------------------- Methods: instance -------------------------------- */\r\n private async createPopupInstance(\r\n id: string,\r\n args: {\r\n type?: PopupType;\r\n title?: string;\r\n content: string;\r\n isContentHtml: boolean;\r\n toolbarItems: ToolbarItem[];\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera argomenti */\r\n const { type, title, content, isContentHtml, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n const popup = this.instances.get(id);\r\n if (popup) {\r\n popup.show();\r\n return popup;\r\n }\r\n\r\n /* Crea container del popup */\r\n const container = document.createElement('div');\r\n document.body.append(container);\r\n\r\n /* Crea popup */\r\n const instance = new Popup(container, {\r\n title: title ?? '',\r\n showTitle: !!title,\r\n deferRendering: false,\r\n maxHeight: 500,\r\n maxWidth: 1000,\r\n dragEnabled: false,\r\n showCloseButton: false,\r\n hideOnOutsideClick: false,\r\n shading: true,\r\n wrapperAttr: {\r\n id,\r\n class: `uni-popup-${type ?? 'info'}`,\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const element = document.createElement('div');\r\n element.style.whiteSpace = 'pre-line';\r\n element.style.wordBreak = 'break-all';\r\n element.style.height = '100%';\r\n\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n\r\n return element;\r\n },\r\n onHidden: async (): Promise<void> => {\r\n // Rimozione del riferimento dalla mappa per prevenire interazioni concorrenti\r\n this.instances.delete(id);\r\n\r\n // Rilascio delle risorse allocate dal widget al termine dell'animazione di uscita\r\n instance.dispose();\r\n\r\n // Rimozione definitiva dell'elemento HTML dal Document Object Model (DOM)\r\n instance.element()?.remove();\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, instance);\r\n await instance.show();\r\n\r\n return instance;\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseButton(id: string): ToolbarItem {\r\n return {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'close',\r\n text: UniLocaleManager.translate('Close', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => this.closePopup(id),\r\n },\r\n };\r\n }\r\n\r\n private createDetailsButtons(\r\n id: string,\r\n content: string,\r\n isContentHtml: boolean,\r\n detail: { message: string; messageToCopy?: string },\r\n ): ToolbarItem[] {\r\n // Variabile di stato per i dettagli\r\n let inShow = false;\r\n\r\n /* Pulsanti: 'dettagli' e 'indietro */\r\n const items: ToolbarItem[] = [\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'find',\r\n text: UniLocaleManager.translate('Details', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: async (e: { component: any }): Promise<void> => {\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n inShow = !inShow;\r\n\r\n if (inShow) {\r\n this.setContent(element, detail.message, false);\r\n } else {\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n }\r\n\r\n e.component.option({\r\n text: UniLocaleManager.translate(inShow ? 'Back' : 'Details', 'btn'),\r\n icon: inShow ? 'back' : 'find',\r\n });\r\n },\r\n },\r\n },\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'refresh',\r\n text: UniLocaleManager.translate('Refresh', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): void => location.reload(),\r\n },\r\n },\r\n ];\r\n\r\n /* Pulsanti: 'copiare dettagli' */\r\n if (detail.messageToCopy) {\r\n items.push({\r\n visible: globalThis.isSecureContext,\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'copy',\r\n text: UniLocaleManager.translate('Copy', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => navigator?.clipboard?.writeText(detail.messageToCopy!),\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private setContent(element: HTMLElement, content: string, isContentHtml: boolean): void {\r\n if (isContentHtml) {\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n element.style.display = 'block';\r\n element.style.textAlign = 'left';\r\n element.style.alignItems = ''; // Reset flexbox\r\n element.style.justifyContent = ''; // Reset flexbox\r\n }\r\n\r\n private setContentCenter(element: HTMLElement, content: string): void {\r\n element.textContent = content;\r\n element.style.display = 'flex';\r\n element.style.alignItems = 'center';\r\n element.style.justifyContent = 'center';\r\n element.style.textAlign = 'center';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { ToastType } from 'devextreme/ui/toast_types';\r\nimport { IToastManager, ToastConfig } from 'uni-manager/toast';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniToastService implements IToastManager {\r\n public success(message: string, config?: ToastConfig): void {\r\n this.show(message, 'success', config);\r\n }\r\n\r\n public info(message: string, config?: ToastConfig): void {\r\n this.show(message, 'info', config);\r\n }\r\n\r\n public warning(message: string, config?: ToastConfig): void {\r\n this.show(message, 'warning', config);\r\n }\r\n\r\n public error(message: string, config?: ToastConfig): void {\r\n this.show(message, 'error', config);\r\n }\r\n\r\n /* ----------------------- Metodi: utils ----------------------- */\r\n private show(message: string, type: ToastType, config?: ToastConfig): void {\r\n notify(\r\n {\r\n message,\r\n type,\r\n height: 50,\r\n width: 400,\r\n displayTime: config?.duration ?? 4000,\r\n animation: {\r\n show: { type: 'fade', duration: 400, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 300, from: 1, to: 0 },\r\n },\r\n },\r\n { position: 'bottom center', direction: 'up-push' },\r\n );\r\n }\r\n}\r\n","/*\r\n * Public API Surface of uni-app-fe\r\n */\r\n\r\nexport * from './component/public-api';\r\nexport * from './manager/public-api';\r\nexport * from './pipe/public-api';\r\nexport * from './service/public-api';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["UniTranslatePipe","i2","i3","i1","UniLoaderService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "uni-app-fe",
3
- "version": "0.0.31",
3
+ "version": "0.1.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=21.2.0",
6
6
  "@angular/core": ">=21.2.0",
7
7
  "devextreme": ">=25.2.0",
8
8
  "devextreme-angular": ">=25.2.0",
9
- "uni-manager": ">=0.0.79"
9
+ "uni-manager": ">=0.1.0"
10
10
  },
11
11
  "dependencies": {
12
12
  "tslib": "^2.3.0"
@@ -27,16 +27,16 @@
27
27
  "default": "./fesm2022/uni-app-fe-component.mjs"
28
28
  },
29
29
  "./manager": {
30
- "types": "./types/manager.d.ts",
31
- "default": "./fesm2022/manager.mjs"
30
+ "types": "./types/uni-app-fe-manager.d.ts",
31
+ "default": "./fesm2022/uni-app-fe-manager.mjs"
32
32
  },
33
33
  "./pipe": {
34
- "types": "./types/pipe.d.ts",
35
- "default": "./fesm2022/pipe.mjs"
34
+ "types": "./types/uni-app-fe-pipe.d.ts",
35
+ "default": "./fesm2022/uni-app-fe-pipe.mjs"
36
36
  },
37
37
  "./service": {
38
- "types": "./types/service.d.ts",
39
- "default": "./fesm2022/service.mjs"
38
+ "types": "./types/uni-app-fe-service.d.ts",
39
+ "default": "./fesm2022/uni-app-fe-service.mjs"
40
40
  }
41
41
  },
42
42
  "type": "module"
@@ -3,11 +3,11 @@ import { ElementRef } from '@angular/core';
3
3
  import { IconDefinition } from '@fortawesome/free-solid-svg-icons';
4
4
  import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
5
5
  import { DatePipe } from '@angular/common';
6
+ import { IconDefinition as IconDefinition$1 } from '@fortawesome/fontawesome-svg-core';
6
7
  import { ValueChangedEvent } from 'devextreme/ui/select_box_types';
8
+ import { Combo } from 'uni-model-type';
7
9
  import { ValueChangedEvent as ValueChangedEvent$1 } from 'devextreme/ui/switch_types';
8
10
  import { UniLoaderService } from 'uni-app-fe/service';
9
- import { IconDefinition as IconDefinition$1 } from '@fortawesome/fontawesome-svg-core';
10
- import { Combo } from 'uni-model-type';
11
11
 
12
12
  declare class UniBannerAlert {
13
13
  type: _angular_core.InputSignal<"warning" | "error">;
@@ -127,4 +127,5 @@ declare class UniSideMenu {
127
127
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<UniSideMenu, "uni-side-menu", never, { "pathUnitecLogo": { "alias": "pathUnitecLogo"; "required": true; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "menuInteractions": { "alias": "menuInteractions"; "required": false; "isSignal": true; }; }, { "evtToggleMenu": "evtToggleMenu"; }, never, never, true, never>;
128
128
  }
129
129
 
130
- export { UniBannerAlert, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLed, UniSideMenu };
130
+ export { LedStatus, UniBannerAlert, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLed, UniSideMenu };
131
+ export type { MenuInteraction, MenuItem };
@@ -3,18 +3,18 @@ declare class UniLocaleManagerAngular {
3
3
  * Registra i dati specifici del locale nel framework Angular.
4
4
  * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.
5
5
  */
6
- static setLocaleAngular(): void;
6
+ static setLocaleAngular(currentLocale: string): void;
7
7
  /**
8
8
  * Inizializza la localizzazione specifica per i componenti DevExtreme.
9
9
  * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.
10
10
  */
11
- static setLocaleDevextreme(): void;
11
+ static setLocaleDevextreme(currentLocale: string): void;
12
12
  /**
13
13
  * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.
14
14
  * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
15
15
  * tramite il metodo setTranslations.
16
16
  */
17
- static fetch(): Promise<void>;
17
+ static fetchTranslation(currentLocale: string): Promise<void>;
18
18
  }
19
19
 
20
20
  export { UniLocaleManagerAngular };
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { HttpErrorResponse } from '@angular/common/http';
3
3
  import { ClickEvent } from 'devextreme/ui/button_types';
4
4
  import Popup, { ToolbarItem } from 'devextreme/ui/popup';
5
- import { IToastManager, ToastConfig } from 'uni-manager';
5
+ import { IToastManager, ToastConfig } from 'uni-manager/toast';
6
6
 
7
7
  declare class UniLoaderService {
8
8
  private loadPanel;
@@ -3,16 +3,16 @@ import { ElementRef, PipeTransform } from '@angular/core';
3
3
  import { IconDefinition } from '@fortawesome/free-solid-svg-icons';
4
4
  import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
5
5
  import { DatePipe } from '@angular/common';
6
+ import { IconDefinition as IconDefinition$1 } from '@fortawesome/fontawesome-svg-core';
6
7
  import { ValueChangedEvent } from 'devextreme/ui/select_box_types';
8
+ import { Combo } from 'uni-model-type';
7
9
  import { ValueChangedEvent as ValueChangedEvent$1 } from 'devextreme/ui/switch_types';
8
10
  import { UniLoaderService as UniLoaderService$1 } from 'uni-app-fe/service';
9
- import { IconDefinition as IconDefinition$1 } from '@fortawesome/fontawesome-svg-core';
10
- import { Combo } from 'uni-model-type';
11
11
  import { ValidationError } from '@angular/forms/signals';
12
12
  import { HttpErrorResponse } from '@angular/common/http';
13
13
  import { ClickEvent } from 'devextreme/ui/button_types';
14
14
  import Popup, { ToolbarItem } from 'devextreme/ui/popup';
15
- import { IToastManager, ToastConfig } from 'uni-manager';
15
+ import { IToastManager, ToastConfig } from 'uni-manager/toast';
16
16
 
17
17
  declare class UniBannerAlert {
18
18
  type: i0.InputSignal<"warning" | "error">;
@@ -137,18 +137,18 @@ declare class UniLocaleManagerAngular {
137
137
  * Registra i dati specifici del locale nel framework Angular.
138
138
  * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.
139
139
  */
140
- static setLocaleAngular(): void;
140
+ static setLocaleAngular(currentLocale: string): void;
141
141
  /**
142
142
  * Inizializza la localizzazione specifica per i componenti DevExtreme.
143
143
  * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.
144
144
  */
145
- static setLocaleDevextreme(): void;
145
+ static setLocaleDevextreme(currentLocale: string): void;
146
146
  /**
147
147
  * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.
148
148
  * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
149
149
  * tramite il metodo setTranslations.
150
150
  */
151
- static fetch(): Promise<void>;
151
+ static fetchTranslation(currentLocale: string): Promise<void>;
152
152
  }
153
153
 
154
154
  declare class FaIconTransformPipe implements PipeTransform {
@@ -307,5 +307,5 @@ declare class UniToastService implements IToastManager {
307
307
  static ɵprov: i0.ɵɵInjectableDeclaration<UniToastService>;
308
308
  }
309
309
 
310
- export { FaIconTransformPipe, UniBannerAlert, UniCapitalizePipe, UniControlValidityPipe, UniGetComboPipe, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLabelizePipe, UniLed, UniLoaderService, UniLocaleManagerAngular, UniPadPipe, UniPopupService, UniReplacePipe, UniSideMenu, UniToastService, UniTranslateInlineParametersPipe, UniTranslatePipe, UniTruncateNumberPipe };
311
- export type { Instance, PopupContent, PopupType };
310
+ export { FaIconTransformPipe, LedStatus, UniBannerAlert, UniCapitalizePipe, UniControlValidityPipe, UniGetComboPipe, UniHeader, UniItemField, UniItemFieldWithHightContrast, UniItemFieldWithLensTooltip, UniLabelizePipe, UniLed, UniLoaderService, UniLocaleManagerAngular, UniPadPipe, UniPopupService, UniReplacePipe, UniSideMenu, UniToastService, UniTranslateInlineParametersPipe, UniTranslatePipe, UniTruncateNumberPipe };
311
+ export type { Instance, MenuInteraction, MenuItem, PopupContent, PopupType };
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.mjs","sources":["../../../projects/uni-app-fe/manager/locale.manager.ts","../../../projects/uni-app-fe/manager/manager.ts"],"sourcesContent":["import { registerLocaleData } from '@angular/common';\r\nimport localeEsCl from '@angular/common/locales/es-CL';\r\nimport localeIt from '@angular/common/locales/it';\r\nimport { config } from 'devextreme-angular/common';\r\nimport { loadMessages, locale } from 'devextreme-angular/common/core/localization';\r\nimport esMessages from 'devextreme/localization/messages/es.json';\r\nimport itMessages from 'devextreme/localization/messages/it.json';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { UniHttpManager, UniLocaleManager } from 'uni-manager';\r\n\r\nexport class UniLocaleManagerAngular {\r\n /* ------------------------------------------------------------------------------- */\r\n /* ----------------------------------- Config ------------------------------------ */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Registra i dati specifici del locale nel framework Angular.\r\n * Necessario per garantire che le pipe built-in (es. DatePipe, CurrencyPipe) operino secondo le convenzioni del paese corrente.\r\n */\r\n public static setLocaleAngular(): void {\r\n /* Imposta i dati del locale corrente in Angular necessari per le pipe */\r\n const currentLocale = UniLocaleManager.locale;\r\n if (currentLocale === 'it-IT') {\r\n registerLocaleData(localeIt, 'it-IT');\r\n } else if (currentLocale === 'es-CL') {\r\n registerLocaleData(localeEsCl, 'es-CL');\r\n }\r\n }\r\n\r\n /**\r\n * Inizializza la localizzazione specifica per i componenti DevExtreme.\r\n * Imposta il locale per le formattazioni native dei widget e carica i file di messaggi JSON per la traduzione dei testi di sistema.\r\n */\r\n public static setLocaleDevextreme(): void {\r\n const currentLocale = UniLocaleManager.locale;\r\n if (!currentLocale) return;\r\n\r\n /* Imposta la lingua */\r\n locale(currentLocale);\r\n\r\n /* Forza la valuta a mano in base alla stringa esatta */\r\n if (currentLocale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (currentLocale === 'es-CL') {\r\n config({ defaultCurrency: 'CLP' });\r\n }\r\n\r\n /* Carica i messaggi di traduzione */\r\n switch (UniLocaleManager.language) {\r\n case 'it': {\r\n loadMessages(itMessages);\r\n break;\r\n }\r\n case 'es': {\r\n loadMessages(esMessages);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /* ------------------------------------------------------------------------------- */\r\n /* ------------------------------------ Http ------------------------------------- */\r\n /* ------------------------------------------------------------------------------- */\r\n /**\r\n * Recupera il dizionario delle traduzioni dal server remoto in base al locale corrente.\r\n * Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno\r\n * tramite il metodo setTranslations.\r\n */\r\n public static async fetch(): Promise<void> {\r\n const res = await firstValueFrom(\r\n UniHttpManager.read$<{\r\n locale: string;\r\n localesSupported: string[];\r\n translations: Record<string, string>;\r\n }>({\r\n ref: 'locale',\r\n path: `/Locale/${UniLocaleManager.locale}`,\r\n }),\r\n );\r\n\r\n UniLocaleManager.setLocalesSupported(res?.localesSupported);\r\n UniLocaleManager.setTranslations(\r\n Object.fromEntries(\r\n Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]]),\r\n ),\r\n );\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MAUa,uBAAuB,CAAA;;;;AAIlC;;;AAGG;AACI,IAAA,OAAO,gBAAgB,GAAA;;AAE5B,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM;AAC7C,QAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AAC7B,YAAA,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvC;AAAO,aAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AACpC,YAAA,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC;QACzC;IACF;AAEA;;;AAGG;AACI,IAAA,OAAO,mBAAmB,GAAA;AAC/B,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM;AAC7C,QAAA,IAAI,CAAC,aAAa;YAAE;;QAGpB,MAAM,CAAC,aAAa,CAAC;;AAGrB,QAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AAC7B,YAAA,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QACpC;AAAO,aAAA,IAAI,aAAa,KAAK,OAAO,EAAE;AACpC,YAAA,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QACpC;;AAGA,QAAA,QAAQ,gBAAgB,CAAC,QAAQ;YAC/B,KAAK,IAAI,EAAE;gBACT,YAAY,CAAC,UAAU,CAAC;gBACxB;YACF;YACA,KAAK,IAAI,EAAE;gBACT,YAAY,CAAC,UAAU,CAAC;gBACxB;YACF;;IAEJ;;;;AAKA;;;;AAIG;IACI,aAAa,KAAK,GAAA;QACvB,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,cAAc,CAAC,KAAK,CAIjB;AACD,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,IAAI,EAAE,CAAA,QAAA,EAAW,gBAAgB,CAAC,MAAM,CAAA,CAAE;AAC3C,SAAA,CAAC,CACH;AAED,QAAA,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAC3D,QAAA,gBAAgB,CAAC,eAAe,CAC9B,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/E,CACF;IACH;AACD;;ACtFD;;AAEG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipe.mjs","sources":["../../../projects/uni-app-fe/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/pipe/uni-replace.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/pipe/pipe.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { icon } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Pipe({\r\n name: 'icon_transform',\r\n standalone: true,\r\n})\r\nexport class FaIconTransformPipe implements PipeTransform {\r\n transform(iconDefinition: IconDefinition): string {\r\n return icon(iconDefinition).html[0];\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'capitalize',\r\n standalone: true,\r\n})\r\nexport class UniCapitalizePipe implements PipeTransform {\r\n transform(key: string | null | undefined): string {\r\n if (!key) return '';\r\n\r\n return UniTypeStringManager.toCapitalize(key);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { ValidationError } from '@angular/forms/signals';\r\nimport { UniLocaleManager, UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'control_validity',\r\n standalone: true,\r\n})\r\nexport class UniControlValidityPipe implements PipeTransform {\r\n transform(\r\n errors: ValidationError.WithFieldTree[] | null | undefined,\r\n ): { message: string; type: string }[] {\r\n if (!errors || errors.length === 0) return [];\r\n\r\n return errors.map((error) => {\r\n return {\r\n type: error.kind,\r\n message: UniLocaleManager.translate(UniTypeStringManager.toLabelize(error.kind)),\r\n };\r\n });\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { Combo } from 'uni-model-type';\r\n\r\n@Pipe({\r\n name: 'get_combo',\r\n standalone: true,\r\n})\r\nexport class UniGetComboPipe implements PipeTransform {\r\n transform(id: number | null | undefined, combos: Combo[] | undefined): Combo | undefined {\r\n if (!id) return undefined;\r\n\r\n return combos?.find((x) => x.id === id);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeStringManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'labelize',\r\n standalone: true,\r\n})\r\nexport class UniLabelizePipe implements PipeTransform {\r\n transform(key: string | null | undefined, prefix = 'lbl', isToLabelize?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToLabelize === false) return key;\r\n\r\n return UniTypeStringManager.toLabelize(key, prefix);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'pad',\r\n standalone: true,\r\n})\r\nexport class UniPadPipe implements PipeTransform {\r\n transform(value: string | number | null | undefined, count: number, character = '0'): string {\r\n if (!value) return '';\r\n\r\n return UniTypeNumberManager.toPad(value, count, character);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'replace',\r\n standalone: true,\r\n})\r\nexport class UniReplacePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n values: { searchValue: string; replaceValue?: string }[],\r\n ): string {\r\n if (!key) return '';\r\n\r\n let fixedKey = key.trim();\r\n\r\n for (const value of values) {\r\n fixedKey = fixedKey.replaceAll(value.searchValue, value.replaceValue ?? '');\r\n }\r\n\r\n return fixedKey;\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'translate_inline_parameters',\r\n standalone: true,\r\n})\r\nexport class UniTranslateInlineParametersPipe implements PipeTransform {\r\n transform(key: string | null | undefined, splitChar: string, isToTranslate?: boolean): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translateInlineParams(key, splitChar);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true,\r\n})\r\nexport class UniTranslatePipe implements PipeTransform {\r\n transform(\r\n key: string | null | undefined,\r\n prefix = 'lbl',\r\n interpolationParameters?: Record<string, string | number | Date>,\r\n isToTranslate?: boolean,\r\n ): string {\r\n if (!key) return '';\r\n\r\n if (isToTranslate === false) return key;\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolationParameters);\r\n }\r\n}\r\n","import { Pipe, type PipeTransform } from '@angular/core';\r\nimport { UniTypeNumberManager } from 'uni-manager';\r\n\r\n@Pipe({\r\n name: 'truncate_number',\r\n standalone: true,\r\n})\r\nexport class UniTruncateNumberPipe implements PipeTransform {\r\n transform(\r\n value: number | null | undefined,\r\n decimalDigits = 0,\r\n maxIntegerDigits?: number,\r\n ): string {\r\n if (value === null || value === undefined || Number.isNaN(value)) {\r\n return '';\r\n }\r\n\r\n return UniTypeNumberManager.toTruncateAndAdUdm(value, decimalDigits, maxIntegerDigits);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.mjs","sources":["../../../projects/uni-app-fe/service/uni-loader.service.ts","../../../projects/uni-app-fe/service/uni-popup.service.ts","../../../projects/uni-app-fe/service/uni-toast.service.ts","../../../projects/uni-app-fe/service/service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport LoadPanel from 'devextreme/ui/load_panel';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniLoaderService {\r\n /* Load Panel */\r\n private loadPanel: LoadPanel;\r\n\r\n constructor() {\r\n const container = document.querySelector('body');\r\n const content: HTMLDivElement = document.createElement('div');\r\n container!.append(content);\r\n\r\n this.loadPanel = new LoadPanel(content, {\r\n showIndicator: true,\r\n showPane: true,\r\n shading: true,\r\n shadingColor: 'rgba(0,0,0,0.4)',\r\n });\r\n }\r\n\r\n /* ------------------------------------- Methods ------------------------------------- */\r\n public show(): void {\r\n this.loadPanel.show();\r\n }\r\n\r\n public hide(): void {\r\n this.loadPanel.hide();\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ClickEvent } from 'devextreme/ui/button_types';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nimport Popup, { ToolbarItem } from 'devextreme/ui/popup';\r\nimport { UniLocaleManager } from 'uni-manager';\r\n\r\nexport type PopupType = 'info' | 'warning' | 'error';\r\n\r\nexport type Instance = Popup<{\r\n title: string;\r\n showTitle: boolean;\r\n deferRendering: boolean;\r\n maxHeight: number;\r\n maxWidth: number;\r\n dragEnabled: boolean;\r\n showCloseButton: boolean;\r\n hideOnOutsideClick: boolean;\r\n shading: boolean;\r\n wrapperAttr: { id: string; class: string };\r\n toolbarItems: ToolbarItem[];\r\n contentTemplate: () => HTMLDivElement;\r\n onHidden: () => Promise<void>;\r\n}>;\r\n\r\nexport type PopupContent =\r\n | {\r\n message: string;\r\n html?: never;\r\n }\r\n | {\r\n message?: never;\r\n html: string;\r\n };\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniPopupService {\r\n /* Variables */\r\n private instances = new Map<string, Instance>();\r\n\r\n /* -------------------------------- Methods: popup -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: (e: ClickEvent) => void;\r\n lblTitle?: string;\r\n maxWidth?: number;\r\n },\r\n ): Promise<void> {\r\n const { message, html, onConfirm, lblTitle, maxWidth } = args;\r\n\r\n // Creazione del contenuto come stringa HTML\r\n const messageHtml =\r\n html ??\r\n `\r\n <div style=\"\r\n white-space: pre-line;\r\n word-break: break-all;\r\n padding: 0rem 1rem 1rem 1rem;\r\n max-width: ${typeof maxWidth === 'number' ? maxWidth + 'px' : '800px'};\r\n \">\r\n ${message ?? ''}\r\n </div>\r\n `;\r\n\r\n await custom({\r\n title: lblTitle && UniLocaleManager.translate(lblTitle),\r\n dragEnabled: false,\r\n showTitle: !!lblTitle,\r\n messageHtml,\r\n buttons: [\r\n { text: UniLocaleManager.translate('Confirm', 'btn'), onClick: onConfirm },\r\n { text: UniLocaleManager.translate('Cancel', 'btn'), onClick: undefined },\r\n ],\r\n }).show();\r\n }\r\n\r\n public async createPopup(\r\n id: string,\r\n args: PopupContent & {\r\n type?: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { type, message, html, title, detail, closable } = args;\r\n\r\n /* Pulsanti: dettaglio (errore o altro) */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail) {\r\n const detailsButtons = this.createDetailsButtons(\r\n id,\r\n message ?? html,\r\n html !== undefined,\r\n detail,\r\n );\r\n toolbarItems.push(...detailsButtons);\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable !== false) {\r\n const closeButton = this.createCloseButton(id);\r\n toolbarItems.push(closeButton);\r\n }\r\n\r\n /* Crea popup passando esplicitamente l'informazione sul formato del contenuto */\r\n const instance = await this.createPopupInstance(id, {\r\n type,\r\n title,\r\n content: message ?? html,\r\n isContentHtml: !!html,\r\n toolbarItems,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupError(\r\n id: string | undefined = undefined,\r\n args: {\r\n title?: string;\r\n message: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera args */\r\n const { title, message, detail, closable } = args;\r\n\r\n /* Crea popup */\r\n const instance = await this.createPopup(id ?? `popup-${Date.now()}`, {\r\n type: 'error',\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message,\r\n detail,\r\n closable,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorHttp(args: {\r\n ref?: string;\r\n err: HttpErrorResponse;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, err } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Message detail */\r\n const { status, statusText, message, error: errorResponse } = err;\r\n let errorDetail = `[${status} - ${statusText}]: ${message}`;\r\n if (errorResponse) {\r\n try {\r\n if (errorResponse instanceof Blob) {\r\n errorDetail += `\\n ${await errorResponse.text()}`;\r\n } else if (typeof errorResponse === 'string') {\r\n errorDetail += `\\n ${errorResponse}`;\r\n } else if (typeof errorResponse === 'object') {\r\n errorDetail += `\\n ${JSON.stringify(errorResponse, undefined, 2)}`;\r\n } else {\r\n errorDetail += `\\n ${String(errorResponse)}`;\r\n }\r\n } catch (error) {\r\n errorDetail += `\\n Error processing the error message: ${error}`;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n message: UniLocaleManager.translate(`error${err.status}`),\r\n detail: {\r\n message: errorDetail,\r\n messageToCopy: JSON.stringify(err),\r\n },\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n ref?: string;\r\n label: string;\r\n interpolationParameters?: Record<string, string | number | Date>;\r\n }): Promise<Instance> {\r\n /* Recupera args */\r\n const { ref, label, interpolationParameters } = args;\r\n\r\n /* Creazione id */\r\n const id = `popup-${ref ?? Date.now()}`;\r\n\r\n /* Crea popup */\r\n const instance = this.createPopupError(id, {\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n message: UniLocaleManager.translate(label, 'lbl', interpolationParameters),\r\n closable: true,\r\n });\r\n return instance;\r\n }\r\n\r\n public async updateContentPopup(id: string, content: PopupContent): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Recupero elemento html del popup */\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n /* Selezione del metodo di rendering e del layout in base alla proprietà definita */\r\n if (content.html === undefined) {\r\n this.setContentCenter(element, content.message);\r\n } else {\r\n this.setContent(element, content.html, true);\r\n }\r\n }\r\n\r\n public async closePopup(id: string): Promise<void> {\r\n /* Recupero popup */\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n /* Esecuzione del processo di chiusura asincrona del componente DevExtreme */\r\n await popup.hide();\r\n }\r\n\r\n /* -------------------------------- Methods: instance -------------------------------- */\r\n private async createPopupInstance(\r\n id: string,\r\n args: {\r\n type?: PopupType;\r\n title?: string;\r\n content: string;\r\n isContentHtml: boolean;\r\n toolbarItems: ToolbarItem[];\r\n },\r\n ): Promise<Instance> {\r\n /* Recupera argomenti */\r\n const { type, title, content, isContentHtml, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n const popup = this.instances.get(id);\r\n if (popup) {\r\n popup.show();\r\n return popup;\r\n }\r\n\r\n /* Crea container del popup */\r\n const container = document.createElement('div');\r\n document.body.append(container);\r\n\r\n /* Crea popup */\r\n const instance = new Popup(container, {\r\n title: title ?? '',\r\n showTitle: !!title,\r\n deferRendering: false,\r\n maxHeight: 500,\r\n maxWidth: 1000,\r\n dragEnabled: false,\r\n showCloseButton: false,\r\n hideOnOutsideClick: false,\r\n shading: true,\r\n wrapperAttr: {\r\n id,\r\n class: `uni-popup-${type ?? 'info'}`,\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const element = document.createElement('div');\r\n element.style.whiteSpace = 'pre-line';\r\n element.style.wordBreak = 'break-all';\r\n element.style.height = '100%';\r\n\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n\r\n return element;\r\n },\r\n onHidden: async (): Promise<void> => {\r\n // Rimozione del riferimento dalla mappa per prevenire interazioni concorrenti\r\n this.instances.delete(id);\r\n\r\n // Rilascio delle risorse allocate dal widget al termine dell'animazione di uscita\r\n instance.dispose();\r\n\r\n // Rimozione definitiva dell'elemento HTML dal Document Object Model (DOM)\r\n instance.element()?.remove();\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, instance);\r\n await instance.show();\r\n\r\n return instance;\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseButton(id: string): ToolbarItem {\r\n return {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'close',\r\n text: UniLocaleManager.translate('Close', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => this.closePopup(id),\r\n },\r\n };\r\n }\r\n\r\n private createDetailsButtons(\r\n id: string,\r\n content: string,\r\n isContentHtml: boolean,\r\n detail: { message: string; messageToCopy?: string },\r\n ): ToolbarItem[] {\r\n // Variabile di stato per i dettagli\r\n let inShow = false;\r\n\r\n /* Pulsanti: 'dettagli' e 'indietro */\r\n const items: ToolbarItem[] = [\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'find',\r\n text: UniLocaleManager.translate('Details', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: async (e: { component: any }): Promise<void> => {\r\n const popup = this.instances.get(id);\r\n if (!popup) {\r\n throw new Error(`Popup not found (id: ${id}`);\r\n }\r\n\r\n const element = popup.content().firstElementChild as HTMLElement;\r\n if (!element) return;\r\n\r\n inShow = !inShow;\r\n\r\n if (inShow) {\r\n this.setContent(element, detail.message, false);\r\n } else {\r\n // Sceglie il metodo di iniezione e lo stile corretto in base al tipo di contenuto\r\n if (isContentHtml) {\r\n this.setContent(element, content, true);\r\n } else {\r\n this.setContentCenter(element, content);\r\n }\r\n }\r\n\r\n e.component.option({\r\n text: UniLocaleManager.translate(inShow ? 'Back' : 'Details', 'btn'),\r\n icon: inShow ? 'back' : 'find',\r\n });\r\n },\r\n },\r\n },\r\n {\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'before',\r\n options: {\r\n type: 'normal',\r\n icon: 'refresh',\r\n text: UniLocaleManager.translate('Refresh', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): void => location.reload(),\r\n },\r\n },\r\n ];\r\n\r\n /* Pulsanti: 'copiare dettagli' */\r\n if (detail.messageToCopy) {\r\n items.push({\r\n visible: globalThis.isSecureContext,\r\n widget: 'dxButton',\r\n toolbar: 'bottom',\r\n location: 'after',\r\n options: {\r\n type: 'normal',\r\n icon: 'copy',\r\n text: UniLocaleManager.translate('Copy', 'btn'),\r\n stylingMode: 'contained',\r\n onClick: (): Promise<void> => navigator?.clipboard?.writeText(detail.messageToCopy!),\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private setContent(element: HTMLElement, content: string, isContentHtml: boolean): void {\r\n if (isContentHtml) {\r\n element.innerHTML = content;\r\n } else {\r\n element.textContent = content;\r\n }\r\n element.style.display = 'block';\r\n element.style.textAlign = 'left';\r\n element.style.alignItems = ''; // Reset flexbox\r\n element.style.justifyContent = ''; // Reset flexbox\r\n }\r\n\r\n private setContentCenter(element: HTMLElement, content: string): void {\r\n element.textContent = content;\r\n element.style.display = 'flex';\r\n element.style.alignItems = 'center';\r\n element.style.justifyContent = 'center';\r\n element.style.textAlign = 'center';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { ToastType } from 'devextreme/ui/toast_types';\r\nimport { IToastManager, ToastConfig } from 'uni-manager';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UniToastService implements IToastManager {\r\n public success(message: string, config?: ToastConfig): void {\r\n this.show(message, 'success', config);\r\n }\r\n\r\n public info(message: string, config?: ToastConfig): void {\r\n this.show(message, 'info', config);\r\n }\r\n\r\n public warning(message: string, config?: ToastConfig): void {\r\n this.show(message, 'warning', config);\r\n }\r\n\r\n public error(message: string, config?: ToastConfig): void {\r\n this.show(message, 'error', config);\r\n }\r\n\r\n /* ----------------------- Metodi: utils ----------------------- */\r\n private show(message: string, type: ToastType, config?: ToastConfig): void {\r\n notify(\r\n {\r\n message,\r\n type,\r\n height: 50,\r\n width: 400,\r\n displayTime: config?.duration ?? 4000,\r\n animation: {\r\n show: { type: 'fade', duration: 400, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 300, from: 1, to: 0 },\r\n },\r\n },\r\n { position: 'bottom center', direction: 'up-push' },\r\n );\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
File without changes