uni-app-fe 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/fesm2022/uni-app-fe.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import { config } from 'devextreme-angular/common';
|
|
|
6
6
|
import { locale, loadMessages } from 'devextreme-angular/common/core/localization';
|
|
7
7
|
import esMessages from 'devextreme/localization/messages/es.json';
|
|
8
8
|
import itMessages from 'devextreme/localization/messages/it.json';
|
|
9
|
+
import { firstValueFrom } from 'rxjs';
|
|
9
10
|
import { UniLocaleManager, UniHttpManager, UniTypeStringManager, UniTypeNumberManager, UniToastManager } from 'uni-manager';
|
|
10
11
|
import * as i0 from '@angular/core';
|
|
11
12
|
import { Pipe, Injectable, input, ChangeDetectionStrategy, Component, output, inject, computed, ElementRef, signal, HostListener } from '@angular/core';
|
|
@@ -82,18 +83,13 @@ class UniLocaleManagerAngular {
|
|
|
82
83
|
* Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
|
|
83
84
|
* tramite il metodo setTranslations.
|
|
84
85
|
*/
|
|
85
|
-
static fetch() {
|
|
86
|
-
const
|
|
87
|
-
UniHttpManager.read$({
|
|
86
|
+
static async fetch() {
|
|
87
|
+
const res = await firstValueFrom(UniHttpManager.read$({
|
|
88
88
|
ref: 'locale',
|
|
89
|
-
path: `/Locale/${locale}`,
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
UniLocaleManager.setLocalesSupported(res?.localesSupported);
|
|
95
|
-
UniLocaleManager.setTranslations(Object.fromEntries(Object.entries(res?.translations).map((x) => [x[0].toLowerCase(), x[1]])));
|
|
96
|
-
});
|
|
89
|
+
path: `/Locale/${UniLocaleManager.locale}`,
|
|
90
|
+
}));
|
|
91
|
+
UniLocaleManager.setLocalesSupported(res?.localesSupported);
|
|
92
|
+
UniLocaleManager.setTranslations(Object.fromEntries(Object.entries(res?.translations ?? {}).map((x) => [x[0].toLowerCase(), x[1]])));
|
|
97
93
|
}
|
|
98
94
|
}
|
|
99
95
|
|
|
@@ -779,6 +775,7 @@ var LedStatus;
|
|
|
779
775
|
LedStatus[LedStatus["WARNING"] = 1] = "WARNING";
|
|
780
776
|
LedStatus[LedStatus["ERROR"] = 2] = "ERROR";
|
|
781
777
|
})(LedStatus || (LedStatus = {}));
|
|
778
|
+
|
|
782
779
|
class UniLed {
|
|
783
780
|
constructor() {
|
|
784
781
|
/* Inputs */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uni-app-fe.mjs","sources":["../../../projects/uni-app-fe/src/manager/locale.manager.ts","../../../projects/uni-app-fe/src/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/src/service/uni-loader.service.ts","../../../projects/uni-app-fe/src/service/uni-popup.service.ts","../../../projects/uni-app-fe/src/service/uni-toast.service.ts","../../../projects/uni-app-fe/src/ui/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/src/ui/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/src/ui/uni-header/uni-header.ts","../../../projects/uni-app-fe/src/ui/uni-header/uni-header.html","../../../projects/uni-app-fe/src/ui/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/src/ui/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/src/ui/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/src/ui/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/src/ui/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/src/ui/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/src/ui/uni-led/uni-led.ts","../../../projects/uni-app-fe/src/ui/uni-led/uni-led.html","../../../projects/uni-app-fe/src/ui/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/src/ui/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/src/public-api.ts","../../../projects/uni-app-fe/src/uni-app-fe.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 { 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 /* Imposta il locale per DevExtreme */\r\n locale(UniLocaleManager.locale);\r\n\r\n /* Configura la logica di raggruppamento per valuta */\r\n if (UniLocaleManager.locale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (UniLocaleManager.locale === '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 default: {\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 fetch(): void {\r\n const locale = UniLocaleManager.locale;\r\n\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/${locale}`,\r\n }).subscribe((res) => {\r\n if (!res?.localesSupported.includes(locale)) {\r\n throw new Error(`Locale \"'${locale}'\" not supported`);\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}\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\n\r\nimport { Combo } from '../model';\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', keysToRemove: string[] = []): string {\r\n if (!key) return '';\r\n\r\n // Chiave finale\r\n let fixedKey = key.trim();\r\n\r\n // Rimuove le parole iniziali (case-insensitive)\r\n const lowerKey = fixedKey.toLowerCase();\r\n for (const toRemove of keysToRemove) {\r\n if (lowerKey.startsWith(toRemove.toLowerCase())) {\r\n fixedKey = fixedKey.slice(toRemove.length);\r\n break;\r\n }\r\n }\r\n\r\n return UniTypeStringManager.toLabelize(fixedKey, 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\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): string {\r\n if (!key) return '';\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 interpolateParameters?: Record<string, string | number | Date>,\r\n ): string {\r\n if (!key) return '';\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolateParameters);\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 { 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 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: () => void;\r\n}>;\r\n\r\nexport type PopupContent = { message: string; html?: never } | { message?: never; html: string };\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 creation -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: () => 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 {\r\n text: UniLocaleManager.translate('Confirm', 'btn'),\r\n onClick: onConfirm,\r\n },\r\n {\r\n text: UniLocaleManager.translate('Delete', 'btn'),\r\n onClick: (): void => undefined,\r\n },\r\n ],\r\n }).show();\r\n }\r\n\r\n public createPopup(\r\n args: PopupContent & {\r\n id: string;\r\n type: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): void {\r\n /* Recupera args */\r\n const { id, type, message, html, title, detail, closable } = args;\r\n\r\n /* Aggiunge pulsante il dettaglio dell'errore */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail && message) {\r\n toolbarItems.push(\r\n ...this.createErrorItems(id, message, detail.message, detail.messageToCopy),\r\n );\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable || closable === undefined) {\r\n toolbarItems.push(this.createCloseItem(id));\r\n }\r\n\r\n /* Crea popup */\r\n this.createPopupInstance({\r\n id,\r\n type,\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message: message ?? html,\r\n toolbarItems,\r\n });\r\n }\r\n\r\n /* -------------------------------- Methods: popup error/warning -------------------------------- */\r\n public createPopupError(args: {\r\n message: string;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n ref?: string;\r\n }): void {\r\n /* Recupera args */\r\n const { message, title, detail, closable, ref } = args;\r\n\r\n this.createPopup({\r\n id: `popup-${ref ?? Date.now()}`,\r\n type: 'ERROR',\r\n message,\r\n title,\r\n detail,\r\n closable,\r\n });\r\n }\r\n\r\n public createPopupWarning(args: {\r\n message: string;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n ref?: string;\r\n }): void {\r\n /* Recupera args */\r\n const { message, title, detail, closable, ref } = args;\r\n\r\n this.createPopup({\r\n id: `popup-${ref ?? Date.now()}`,\r\n type: 'WARNING',\r\n message,\r\n title,\r\n detail,\r\n closable,\r\n });\r\n }\r\n\r\n public async createPopupErrorHttp(args: { err: HttpErrorResponse; ref?: string }): Promise<void> {\r\n /* Recupera args */\r\n const { err, ref } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.isPopupAlreadyExisting(ref)) return;\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 /* Creazione popup */\r\n this.createPopupError({\r\n message: UniLocaleManager.translate(`error${err.status}`), // es: error404, error500\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n detail: { message: errorDetail, messageToCopy: JSON.stringify(err) },\r\n ref,\r\n });\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n label: string;\r\n interpolateParams?: Record<string, string | number | Date>;\r\n ref?: string;\r\n }): Promise<void> {\r\n /* Recupera args */\r\n const { label, interpolateParams, ref } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.isPopupAlreadyExisting(ref)) return;\r\n\r\n this.createPopupError({\r\n message: UniLocaleManager.translate(label, 'lbl', interpolateParams),\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n detail: undefined,\r\n closable: true,\r\n ref,\r\n });\r\n }\r\n\r\n /* -------------------------------- Methods: popup close -------------------------------- */\r\n public closePopupError(ref: string): void {\r\n const id = `popup-${ref}`;\r\n const instance = this.instances.get(id);\r\n if (!instance) return;\r\n\r\n instance.dispose();\r\n instance.element()?.remove();\r\n this.instances.delete(id);\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseItem(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: (): void => {\r\n const popup = id ? this.instances.get(id) : undefined;\r\n popup?.hide();\r\n },\r\n },\r\n };\r\n }\r\n\r\n private createErrorItems(\r\n id: string,\r\n initialMessage: string,\r\n detailMessage: string,\r\n messageToCopy?: string,\r\n ): ToolbarItem[] {\r\n let inShow = false; // Variabile di stato per i dettagli\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: (e: { component: any }): void => {\r\n const popup = this.instances.get(id);\r\n if (!popup) return;\r\n const content = popup.content().firstElementChild as HTMLElement;\r\n if (!content) return;\r\n inShow = !inShow;\r\n content.textContent = inShow ? detailMessage : initialMessage;\r\n if (inShow) {\r\n // Modalità dettaglio\r\n content.style.display = 'block';\r\n content.style.textAlign = 'left';\r\n } else {\r\n // Modalità principal\r\n content.style.display = 'flex';\r\n content.style.alignItems = 'center';\r\n content.style.justifyContent = 'center';\r\n content.style.textAlign = 'center';\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 if (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: (): void => {\r\n try {\r\n navigator?.clipboard?.writeText(messageToCopy);\r\n } catch (error) {\r\n console.error('Failed to copy text:', error);\r\n }\r\n },\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private createPopupInstance(args: {\r\n id: string;\r\n type: PopupType;\r\n title: string;\r\n message: string;\r\n toolbarItems: ToolbarItem[];\r\n }): void {\r\n /* Recupera argomenti */\r\n const { id, type, title, message, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.instances.has(id)) {\r\n this.instances.get(id)?.show();\r\n return;\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 classe css */\r\n let cssClass = '';\r\n switch (type) {\r\n case 'WARNING': {\r\n cssClass = 'uni-popup-warning';\r\n break;\r\n }\r\n case 'ERROR': {\r\n cssClass = 'uni-popup-error';\r\n break;\r\n }\r\n case 'INFO': {\r\n cssClass = 'uni-popup-info';\r\n break;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const popup = new Popup(container, {\r\n 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 ...(cssClass && { class: cssClass }),\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const messageContainer = document.createElement('div');\r\n messageContainer.style.display = 'flex';\r\n messageContainer.style.alignItems = 'center';\r\n messageContainer.style.justifyContent = 'center';\r\n messageContainer.style.whiteSpace = 'pre-line';\r\n messageContainer.style.wordBreak = 'break-all';\r\n messageContainer.style.height = '100%';\r\n messageContainer.style.textAlign = 'center';\r\n messageContainer.textContent = message;\r\n return messageContainer;\r\n },\r\n onHidden: (): void => {\r\n popup.dispose();\r\n container.remove();\r\n this.instances.delete(id);\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, popup);\r\n popup.show();\r\n }\r\n\r\n private isPopupAlreadyExisting(ref?: string): boolean {\r\n if (!ref) return false;\r\n\r\n const id = `popup-${ref}`;\r\n const existingPopup = this.instances.get(id);\r\n\r\n if (existingPopup) {\r\n existingPopup.show();\r\n return true;\r\n }\r\n\r\n return false;\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","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 '../../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';\r\nimport { UniTranslatePipe } from '../../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 ItemFieldWithHightContrast {\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';\r\nimport { UniLocaleManager, UniToastManager } from 'uni-manager';\r\nimport { UniTranslatePipe } from '../../pipe';\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 const msg = UniLocaleManager.translate('ValueCopied');\r\n UniToastManager.show(msg, {}, 'info');\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';\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 ItemFieldWithLensTooltip {\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","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\n\r\nexport enum LedStatus {\r\n OK,\r\n WARNING,\r\n ERROR,\r\n}\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\nimport { UniTranslatePipe } from '../../pipe';\r\nimport { UniLoaderService } from '../../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","/*\r\n * Public API Surface of uni-app-fe\r\n */\r\n\r\nexport * from './manager';\r\nexport * from './model';\r\nexport * from './pipe';\r\nexport * from './service';\r\nexport * from './ui';\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.mjs","sources":["../../../projects/uni-app-fe/src/manager/locale.manager.ts","../../../projects/uni-app-fe/src/pipe/fa-icon-transform.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-capitalize.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-control-validity.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-get-combo.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-labelize.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-pad.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-translate-inline-parameters.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-translate.pipe.ts","../../../projects/uni-app-fe/src/pipe/uni-truncate-number.pipe.ts","../../../projects/uni-app-fe/src/service/uni-loader.service.ts","../../../projects/uni-app-fe/src/service/uni-popup.service.ts","../../../projects/uni-app-fe/src/service/uni-toast.service.ts","../../../projects/uni-app-fe/src/ui/uni-banner-alert/uni-banner-alert.ts","../../../projects/uni-app-fe/src/ui/uni-banner-alert/uni-banner-alert.html","../../../projects/uni-app-fe/src/ui/uni-header/uni-header.ts","../../../projects/uni-app-fe/src/ui/uni-header/uni-header.html","../../../projects/uni-app-fe/src/ui/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.ts","../../../projects/uni-app-fe/src/ui/uni-item-field-with-hight-contrast/uni-item-field-with-hight-contrast.html","../../../projects/uni-app-fe/src/ui/uni-item-field/uni-item-field.ts","../../../projects/uni-app-fe/src/ui/uni-item-field/uni-item-field.html","../../../projects/uni-app-fe/src/ui/uni-item-field-with-lens-tooltip/uni-uni-item-field-with-lens-tooltip.ts","../../../projects/uni-app-fe/src/ui/uni-item-field-with-lens-tooltip/uni-item-field-with-lens-tooltip.html","../../../projects/uni-app-fe/src/ui/uni-led/model.ts","../../../projects/uni-app-fe/src/ui/uni-led/uni-led.ts","../../../projects/uni-app-fe/src/ui/uni-led/uni-led.html","../../../projects/uni-app-fe/src/ui/uni-side-menu/uni-side-menu.ts","../../../projects/uni-app-fe/src/ui/uni-side-menu/uni-side-menu.html","../../../projects/uni-app-fe/src/public-api.ts","../../../projects/uni-app-fe/src/uni-app-fe.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 /* Imposta il locale per DevExtreme */\r\n locale(UniLocaleManager.locale);\r\n\r\n /* Configura la logica di raggruppamento per valuta */\r\n if (UniLocaleManager.locale === 'it-IT') {\r\n config({ defaultCurrency: 'EUR' });\r\n } else if (UniLocaleManager.locale === '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 default: {\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\n\r\nimport { Combo } from '../model';\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', keysToRemove: string[] = []): string {\r\n if (!key) return '';\r\n\r\n // Chiave finale\r\n let fixedKey = key.trim();\r\n\r\n // Rimuove le parole iniziali (case-insensitive)\r\n const lowerKey = fixedKey.toLowerCase();\r\n for (const toRemove of keysToRemove) {\r\n if (lowerKey.startsWith(toRemove.toLowerCase())) {\r\n fixedKey = fixedKey.slice(toRemove.length);\r\n break;\r\n }\r\n }\r\n\r\n return UniTypeStringManager.toLabelize(fixedKey, 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\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): string {\r\n if (!key) return '';\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 interpolateParameters?: Record<string, string | number | Date>,\r\n ): string {\r\n if (!key) return '';\r\n\r\n return UniLocaleManager.translate(key, prefix, interpolateParameters);\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 { 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 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: () => void;\r\n}>;\r\n\r\nexport type PopupContent = { message: string; html?: never } | { message?: never; html: string };\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 creation -------------------------------- */\r\n public async createPopupConfirm(\r\n args: PopupContent & {\r\n onConfirm: () => 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 {\r\n text: UniLocaleManager.translate('Confirm', 'btn'),\r\n onClick: onConfirm,\r\n },\r\n {\r\n text: UniLocaleManager.translate('Delete', 'btn'),\r\n onClick: (): void => undefined,\r\n },\r\n ],\r\n }).show();\r\n }\r\n\r\n public createPopup(\r\n args: PopupContent & {\r\n id: string;\r\n type: PopupType;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n },\r\n ): void {\r\n /* Recupera args */\r\n const { id, type, message, html, title, detail, closable } = args;\r\n\r\n /* Aggiunge pulsante il dettaglio dell'errore */\r\n const toolbarItems: ToolbarItem[] = [];\r\n if (detail && message) {\r\n toolbarItems.push(\r\n ...this.createErrorItems(id, message, detail.message, detail.messageToCopy),\r\n );\r\n }\r\n\r\n /* Aggiunge pulsante per la chiusura del popup (possibile poi solo da qui) */\r\n if (closable || closable === undefined) {\r\n toolbarItems.push(this.createCloseItem(id));\r\n }\r\n\r\n /* Crea popup */\r\n this.createPopupInstance({\r\n id,\r\n type,\r\n title: title ?? UniLocaleManager.translate('ErrorFrontend'),\r\n message: message ?? html,\r\n toolbarItems,\r\n });\r\n }\r\n\r\n /* -------------------------------- Methods: popup error/warning -------------------------------- */\r\n public createPopupError(args: {\r\n message: string;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n ref?: string;\r\n }): void {\r\n /* Recupera args */\r\n const { message, title, detail, closable, ref } = args;\r\n\r\n this.createPopup({\r\n id: `popup-${ref ?? Date.now()}`,\r\n type: 'ERROR',\r\n message,\r\n title,\r\n detail,\r\n closable,\r\n });\r\n }\r\n\r\n public createPopupWarning(args: {\r\n message: string;\r\n title?: string;\r\n detail?: { message: string; messageToCopy?: string };\r\n closable?: boolean;\r\n ref?: string;\r\n }): void {\r\n /* Recupera args */\r\n const { message, title, detail, closable, ref } = args;\r\n\r\n this.createPopup({\r\n id: `popup-${ref ?? Date.now()}`,\r\n type: 'WARNING',\r\n message,\r\n title,\r\n detail,\r\n closable,\r\n });\r\n }\r\n\r\n public async createPopupErrorHttp(args: { err: HttpErrorResponse; ref?: string }): Promise<void> {\r\n /* Recupera args */\r\n const { err, ref } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.isPopupAlreadyExisting(ref)) return;\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 /* Creazione popup */\r\n this.createPopupError({\r\n message: UniLocaleManager.translate(`error${err.status}`), // es: error404, error500\r\n title: UniLocaleManager.translate(`ErrorBackend`),\r\n detail: { message: errorDetail, messageToCopy: JSON.stringify(err) },\r\n ref,\r\n });\r\n }\r\n\r\n public async createPopupErrorCustom(args: {\r\n label: string;\r\n interpolateParams?: Record<string, string | number | Date>;\r\n ref?: string;\r\n }): Promise<void> {\r\n /* Recupera args */\r\n const { label, interpolateParams, ref } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.isPopupAlreadyExisting(ref)) return;\r\n\r\n this.createPopupError({\r\n message: UniLocaleManager.translate(label, 'lbl', interpolateParams),\r\n title: UniLocaleManager.translate('ErrorBackendCustom'),\r\n detail: undefined,\r\n closable: true,\r\n ref,\r\n });\r\n }\r\n\r\n /* -------------------------------- Methods: popup close -------------------------------- */\r\n public closePopupError(ref: string): void {\r\n const id = `popup-${ref}`;\r\n const instance = this.instances.get(id);\r\n if (!instance) return;\r\n\r\n instance.dispose();\r\n instance.element()?.remove();\r\n this.instances.delete(id);\r\n }\r\n\r\n /* -------------------------------- Methods: utils -------------------------------- */\r\n private createCloseItem(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: (): void => {\r\n const popup = id ? this.instances.get(id) : undefined;\r\n popup?.hide();\r\n },\r\n },\r\n };\r\n }\r\n\r\n private createErrorItems(\r\n id: string,\r\n initialMessage: string,\r\n detailMessage: string,\r\n messageToCopy?: string,\r\n ): ToolbarItem[] {\r\n let inShow = false; // Variabile di stato per i dettagli\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: (e: { component: any }): void => {\r\n const popup = this.instances.get(id);\r\n if (!popup) return;\r\n const content = popup.content().firstElementChild as HTMLElement;\r\n if (!content) return;\r\n inShow = !inShow;\r\n content.textContent = inShow ? detailMessage : initialMessage;\r\n if (inShow) {\r\n // Modalità dettaglio\r\n content.style.display = 'block';\r\n content.style.textAlign = 'left';\r\n } else {\r\n // Modalità principal\r\n content.style.display = 'flex';\r\n content.style.alignItems = 'center';\r\n content.style.justifyContent = 'center';\r\n content.style.textAlign = 'center';\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 if (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: (): void => {\r\n try {\r\n navigator?.clipboard?.writeText(messageToCopy);\r\n } catch (error) {\r\n console.error('Failed to copy text:', error);\r\n }\r\n },\r\n },\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n private createPopupInstance(args: {\r\n id: string;\r\n type: PopupType;\r\n title: string;\r\n message: string;\r\n toolbarItems: ToolbarItem[];\r\n }): void {\r\n /* Recupera argomenti */\r\n const { id, type, title, message, toolbarItems = [] } = args;\r\n\r\n /* Evita doppia istanza con lo stesso id */\r\n if (this.instances.has(id)) {\r\n this.instances.get(id)?.show();\r\n return;\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 classe css */\r\n let cssClass = '';\r\n switch (type) {\r\n case 'WARNING': {\r\n cssClass = 'uni-popup-warning';\r\n break;\r\n }\r\n case 'ERROR': {\r\n cssClass = 'uni-popup-error';\r\n break;\r\n }\r\n case 'INFO': {\r\n cssClass = 'uni-popup-info';\r\n break;\r\n }\r\n }\r\n\r\n /* Crea popup */\r\n const popup = new Popup(container, {\r\n 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 ...(cssClass && { class: cssClass }),\r\n },\r\n toolbarItems,\r\n contentTemplate: (): HTMLDivElement => {\r\n const messageContainer = document.createElement('div');\r\n messageContainer.style.display = 'flex';\r\n messageContainer.style.alignItems = 'center';\r\n messageContainer.style.justifyContent = 'center';\r\n messageContainer.style.whiteSpace = 'pre-line';\r\n messageContainer.style.wordBreak = 'break-all';\r\n messageContainer.style.height = '100%';\r\n messageContainer.style.textAlign = 'center';\r\n messageContainer.textContent = message;\r\n return messageContainer;\r\n },\r\n onHidden: (): void => {\r\n popup.dispose();\r\n container.remove();\r\n this.instances.delete(id);\r\n },\r\n });\r\n\r\n /* Mostra popup */\r\n this.instances.set(id, popup);\r\n popup.show();\r\n }\r\n\r\n private isPopupAlreadyExisting(ref?: string): boolean {\r\n if (!ref) return false;\r\n\r\n const id = `popup-${ref}`;\r\n const existingPopup = this.instances.get(id);\r\n\r\n if (existingPopup) {\r\n existingPopup.show();\r\n return true;\r\n }\r\n\r\n return false;\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","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 '../../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';\r\nimport { UniTranslatePipe } from '../../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 ItemFieldWithHightContrast {\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';\r\nimport { UniLocaleManager, UniToastManager } from 'uni-manager';\r\nimport { UniTranslatePipe } from '../../pipe';\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 const msg = UniLocaleManager.translate('ValueCopied');\r\n UniToastManager.show(msg, {}, 'info');\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';\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 ItemFieldWithLensTooltip {\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\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\nimport { UniTranslatePipe } from '../../pipe';\r\nimport { UniLoaderService } from '../../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","/*\r\n * Public API Surface of uni-app-fe\r\n */\r\n\r\nexport * from './manager';\r\nexport * from './model';\r\nexport * from './pipe';\r\nexport * from './service';\r\nexport * from './ui';\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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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uni-app-fe",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=21.0.0",
|
|
6
6
|
"@angular/core": ">=21.0.0",
|
|
7
7
|
"devextreme": ">=25.0.0",
|
|
8
8
|
"devextreme-angular": ">=25.0.0",
|
|
9
|
-
"uni-manager": ">= 0.0.
|
|
9
|
+
"uni-manager": ">= 0.0.68"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"tslib": "^2.3.0"
|
package/types/uni-app-fe.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ declare class UniLocaleManagerAngular {
|
|
|
27
27
|
* Una volta completata la chiamata HTTP, aggiorna automaticamente lo store interno
|
|
28
28
|
* tramite il metodo setTranslations.
|
|
29
29
|
*/
|
|
30
|
-
static fetch(): void
|
|
30
|
+
static fetch(): Promise<void>;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
interface Combo {
|
|
@@ -206,7 +206,7 @@ declare class UniToastService implements IToastManager {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
declare class UniBannerAlert {
|
|
209
|
-
type: i0.InputSignal<"
|
|
209
|
+
type: i0.InputSignal<"warning" | "error">;
|
|
210
210
|
lblTitle: i0.InputSignal<string>;
|
|
211
211
|
lblDescription: i0.InputSignal<string>;
|
|
212
212
|
icon: i0.InputSignal<IconDefinition | undefined>;
|
|
@@ -247,7 +247,7 @@ declare class UniItemField {
|
|
|
247
247
|
label: i0.InputSignal<string>;
|
|
248
248
|
value: i0.InputSignal<string | number | Date | null | undefined>;
|
|
249
249
|
udm: i0.InputSignal<string | undefined>;
|
|
250
|
-
dateFormat: i0.InputSignal<"
|
|
250
|
+
dateFormat: i0.InputSignal<"short" | "medium" | "shortDate" | "mediumDate" | "longDate" | "fullDate">;
|
|
251
251
|
valueFormatted: i0.Signal<string | null>;
|
|
252
252
|
onCopyValue(): Promise<void>;
|
|
253
253
|
private isValidDateString;
|
|
@@ -260,6 +260,7 @@ declare enum LedStatus {
|
|
|
260
260
|
WARNING = 1,
|
|
261
261
|
ERROR = 2
|
|
262
262
|
}
|
|
263
|
+
|
|
263
264
|
declare class UniLed {
|
|
264
265
|
description: i0.InputSignal<string>;
|
|
265
266
|
status: i0.InputSignal<boolean | LedStatus | null | undefined>;
|