{"version":3,"file":"page-utility.js","sourceRoot":"","sources":["../../../Scripts/commons/page-utility.ts"],"names":[],"mappings":"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","sourcesContent":["namespace Seac.Pages {\r\n\texport class PageUtility {\r\n\t\tprivate static _isHiddenByResize: boolean = false;\r\n\t\t/** Identificativo della classe dell'overlay che viene mostrato nel caso in cui la risoluzione dello schermo non sia supportata per la pagina */\r\n\t\tprivate static _resolutionOverlayClass: string = 'resolution-overlay';\r\n\t\t/** Identificativo del pulsante che rimuove l'overlay che viene mostrato nel caso in cui la risoluzione dello schermo non sia supportata per la pagina */\r\n\t\tprivate static _removeOverlayButtonId: string = 'remove-overlay-button';\r\n\t\t/** Dimensione minima in pixel per la visualizzazione automatica del menu */\r\n\t\tpublic minWidthToViewMenu: number = 1280\r\n\r\n\t\t/** Metodo che ritorna se l'applicazione è in esecuzione su un mobile device */\r\n\t\tpublic static get isMobileDevice(): boolean {\r\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\t\t}\r\n\r\n\t\tconstructor() {\r\n\t\t\t// Imposto il comportamento di default per i componenti DevExpress\r\n\t\t\t// questo comportamento può essere sovrascritto dal singolo componente\r\n\t\t\tDevExpress.ui.dxNumberBox.defaultOptions({\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t// Imposto tutte le input numeric in modo che al focus venga selezionato tutto il testo\r\n\t\t\t\t\tonFocusIn: (event: Seac.Commons.DxEvents.DxNumberBoxFocusInEvent) => {\r\n\t\t\t\t\t\t$(event.element).find('input.dx-texteditor-input').select();\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// Imposto la classe in modo che il testo venga sempre allineato a destra\r\n\t\t\t\t\tinputAttr: {\r\n\t\t\t\t\t\t 'class' : 'text-right' \r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tDevExpress.ui.dxDateBox.defaultOptions({\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t// Imposto tutte le input date in modo che al focus venga selezionato tutto il testo\r\n\t\t\t\t\tonFocusIn: (event: Seac.Commons.DxEvents.DxNumberBoxValueChangeEvent) => {\r\n\t\t\t\t\t\t$(event.element).find('input.dx-texteditor-input').select();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdisplayFormat: Seac.Resources.Common.data_formato_GMA\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tDevExpress.ui.dxSelectBox.defaultOptions({\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t// Imposto tutte le input selectbox in modo che al focus venga selezionato tutto il testo\r\n\t\t\t\t\tonFocusIn: (event: Seac.Commons.DxEvents.DxNumberBoxValueChangeEvent) => {\r\n\t\t\t\t\t\t$(event.element).find('input.dx-texteditor-input').select();\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// Imposto il filtro su tutti i componenti selectBox\r\n\t\t\t\t\tsearchEnabled: true,\r\n\t\t\t\t\tsearchTimeout: 0\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tDevExpress.ui.dxDropDownBox.defaultOptions({\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t// Imposto tutte le input dropdownbox in modo che al focus venga selezionato tutto il testo\r\n\t\t\t\t\tonFocusIn: (event: Seac.Commons.DxEvents.DxNumberBoxValueChangeEvent) => {\r\n\t\t\t\t\t\t$(event.element).find('input.dx-texteditor-input').select();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tDevExpress.ui.dxDataGrid.defaultOptions({\r\n\t\t\t\toptions: {\r\n\t\t\t\t\t// Nel caso sia un dispositovo mobile abilito l'hiding delle colonne\r\n\t\t\t\t\tcolumnHidingEnabled\t\t: Seac.Pages.PageUtility.isMobileDevice,\r\n\t\t\t\t\t// Abilito il resize delle colonne solo se non sono su un dispositivo mobile\r\n\t\t\t\t\tallowColumnResizing\t\t: !Seac.Pages.PageUtility.isMobileDevice,\r\n\t\t\t\t\tcolumnResizingMode\t\t: 'nextColumn',\r\n\t\t\t\t\t// Imposto alcune altre proprietà che sono uguali per tutte le griglie\r\n\t\t\t\t\tshowBorders\t\t\t\t: true,\r\n\t\t\t\t\trowAlternationEnabled\t: true,\r\n\t\t\t\t\tkeyboardNavigation\t\t: {\r\n\t\t\t\t\t\tenabled\t\t\t\t: false\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Metodo che viene richiamato nelle colonne delle griglie `Seac.PTAZ.Helpers.DxComponents.DxGridExtensions.cs` per abilitare l'hiding delle colonne in base al device su cui è in esecuzione l'applicazione\r\n\t\t * @param priority Priorità con cui la colonna viene nascosta\r\n\t\t */\r\n\t\tpublic static hidingPriority(priority: number): number {\r\n\t\t\treturn Seac.Pages.PageUtility.isMobileDevice ? priority : undefined;\r\n\t\t}\r\n\r\n\t\t/** Metodo che si occupa di nascondere il menu nel caso la pagina risulti essere troppo stretta */\r\n\t\tpublic static hideMenuOnSmallPage(): void {\r\n\t\t\tconst minWidthToViewMenu: number = Seac.Pages.pageUtility && Seac.Pages.pageUtility.minWidthToViewMenu\r\n\t\t\t\t? Seac.Pages.pageUtility.minWidthToViewMenu\r\n\t\t\t\t: 1280\r\n\t\t\t;\r\n\t\t\t// 18.75 è la larghezza del menu in rem (300 px) impostata dal css, attenzione se viene modificata (_variables.scss)\r\n\t\t\tconst leftMenuWidth: number = this._convertRemToPixels(18.75);\r\n\t\t\tconst hideMenuBreakpoint: number = minWidthToViewMenu - leftMenuWidth - (this._convertRemToPixels(2.188) * 2);\r\n\t\t\t// Ricavo la larghezza dell'app-container compreso padding e margin\r\n\t\t\tconst appContainerWidth: number = $(`#${Seac.Commons.Constants.appContainerId}`).width();\r\n\t\t\t// Devo applicare un timeout, perché al \"primo giro\" leftMenuComponent non è ancora inizializzato\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\t// Utilizzo ElvisOperator perché nel caso della visualizzazione da mobile app il leftMenuComponent non è definito\r\n\t\t\t\tif (Seac.Components.leftMenuComponent?.isOpened()) {\r\n\t\t\t\t\tif (appContainerWidth < hideMenuBreakpoint) {\r\n\t\t\t\t\t\t// Se il menu è aperto e la largehezza dell'app-container è minore di `hideMenuBreakpoint`\r\n\t\t\t\t\t\t// Nascondo il menu e applico lo stile in modo che il menu appaia sopra al contenuto quando aperto\r\n\t\t\t\t\t\tSeac.Components.leftMenuComponent.hideMenu();\r\n\t\t\t\t\t\t$(`#${Seac.Commons.Constants.appContainerId}`).addClass('small-page');\r\n\t\t\t\t\t\tthis._isHiddenByResize = true;\r\n\t\t\t\t\t} \r\n\t\t\t\t}else {\r\n\t\t\t\t\tif (appContainerWidth - leftMenuWidth > hideMenuBreakpoint) {\r\n\t\t\t\t\t\t// Se il menu è chiuso, ma la larghezza dell'app-container + la larghezza del menu superano i `hideMenuBreakpoint`\r\n\t\t\t\t\t\t// rimuovo lo stile che mostrerebbe il menu sopra il contenuto e se il menu è stato chiuso in seguito ad un resize lo riapro\r\n\t\t\t\t\t\t$(`#${Seac.Commons.Constants.appContainerId}`).removeClass('small-page');\r\n\t\t\t\t\t\tif (this._isHiddenByResize) {\r\n\t\t\t\t\t\t\tSeac.Components.leftMenuComponent.showMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\t// Altrimenti iposto solamente lo stile in modo che il menu appaia sopra al contenuto\r\n\t\t\t\t\t\t$(`#${Seac.Commons.Constants.appContainerId}`).addClass('small-page');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Converte da un valore rem a px\r\n\t\t * @param rem valore rem (solo numerico)\r\n\t\t */\r\n\t\tprivate static _convertRemToPixels(rem: number) {\r\n\t\t\treturn rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Estrae il valore di un query param dall'URL della pagina\r\n\t\t * @param queryParamName Nome del parametro da estrarre\r\n\t\t */\r\n\t\tpublic static getQueryParamValue(queryParamName: string): string {\r\n\t\t\tconst queryParams: string = window.location.search.substring(1);\r\n\t\t\tconst splittedQueryParams : Array = queryParams.split('&');\r\n\r\n\t\t\tfor (let paramIndex = 0; paramIndex < splittedQueryParams.length; paramIndex++) {\r\n\t\t\t\tconst splittedParam: Array = splittedQueryParams[paramIndex].split('=');\r\n\r\n\t\t\t\tif (splittedParam[0] === queryParamName) {\r\n\t\t\t\t\tlet queryParamValue: string = '';\r\n\t\t\t\t\t// Nel caso in cui il valore contenesse un uguale e non fosse codificato sarebbe splittato in più stringhe,\r\n\t\t\t\t\t// quindi faccio il merge in una stringa sola\r\n\t\t\t\t\tfor (let splitteParamIndex = 1; splitteParamIndex < splittedParam.length; splitteParamIndex++) {\r\n\t\t\t\t\t\tif (queryParamValue) {\r\n\t\t\t\t\t\t\t// Riaggiungo l'uguale che era stato tolto dallo split\r\n\t\t\t\t\t\t\tqueryParamValue+= '=';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tqueryParamValue += splittedParam[splitteParamIndex];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn decodeURIComponent(queryParamValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Mostra un overlay sopra la pagina nel caso in cui la risoluzione dello schermo non sia supportata dalla pagina\r\n\t\t * @param resolutionOverlayType Tipo di overlay da mostrare (Ruota dispositivo oppure pagina no supportata)\r\n\t\t */\r\n\t\tpublic static showResolutionOverlay(resolutionOverlayType: ResolutionOverlayType): void {\r\n\t\t\tlet resolutionIcon: string = resolutionOverlayType === ResolutionOverlayType.RotateDevice ? 'fa-sync' : 'fa-eye-slash';\r\n\t\t\tlet resolutionMessage: string = resolutionOverlayType === ResolutionOverlayType.RotateDevice ? Resources.Common.ruotare_dispositivo_per_visualizzare_pagina : Resources.Common.risoluzione_non_supportata_pagina;\r\n\t\t\t\r\n\t\t\tif ($(`.${this._resolutionOverlayClass}.overlay-${resolutionIcon}`).length) {\r\n\t\t\t\t// Se l'overlay è già presente esco senza fare nulla\r\n\t\t\t\treturn;\r\n\t\t\t}else if ($(`.${this._resolutionOverlayClass}`).length) {\r\n\t\t\t\t// Se è presente un'altro tipo di overlay lo nascondo\r\n\t\t\t\tthis.removeResolutionOverlay();\r\n\t\t\t}\r\n\t\t\tlet overlayContent: string = \r\n`
` +\r\n\t`
` +\r\n\t\t`` +\r\n\t\t`
${resolutionMessage}
`;\r\n\t\t\t\r\n\t\t\tif (resolutionOverlayType === ResolutionOverlayType.NotSupported) {\r\n\t\t\t\t// Aggiungo un pulsante che permette di visualizzare comunque la pagina\r\n\t\t\t\toverlayContent += ``;\r\n\t\t\t}\r\n\t\t\toverlayContent +=\r\n`
`;\r\n\r\n\t\t\t$(overlayContent).appendTo($('.app-container'));\r\n\r\n\t\t\tif (resolutionOverlayType === ResolutionOverlayType.NotSupported) {\r\n\t\t\t\t// Lego l'evento al pulsante di rimozione dell'overlay\r\n\t\t\t\t$(`#${this._removeOverlayButtonId}`).on(Seac.Commons.Constants.clickEvent, () => {\r\n\t\t\t\t\tthis.removeResolutionOverlay();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\twindow.scrollTo(0, 0);\r\n\r\n\t\t\t// Blocco lo scroll della pagina nel caso in cui ci sia l'overlay\r\n\t\t\t$(Seac.Commons.Constants.body).addClass('no-overflow');\r\n\t\t}\r\n\r\n\t\t/** Rimuove l'overlay della risoluzione dello schermo */\r\n\t\tpublic static removeResolutionOverlay(): void {\r\n\t\t\t$(Seac.Commons.Constants.body).removeClass('no-overflow');\r\n\t\t\t$(`#${this._removeOverlayButtonId}`).off(Seac.Commons.Constants.clickEvent);\r\n\t\t\t$(`.${this._resolutionOverlayClass}`).remove();\r\n\t\t}\r\n\t}\r\n\r\n\texport enum ResolutionOverlayType {\r\n\t\tRotateDevice\t= 1,\r\n\t\tNotSupported\t= 2\r\n\t}\r\n\r\n\texport const pageUtility: PageUtility = new PageUtility();\r\n}\r\n"]}