@esfaenza/extensions 20.3.2 → 20.3.5

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.
@@ -3,7 +3,7 @@ import { InjectionToken, Optional, Inject, Injectable, Pipe, NgModule, Injector,
3
3
  import * as i1 from '@esfaenza/localizations';
4
4
  import { LocalizationModule } from '@esfaenza/localizations';
5
5
  import { first, filter, take, map } from 'rxjs/operators';
6
- import { ReplaySubject, of, Subject, filter as filter$1 } from 'rxjs';
6
+ import { ReplaySubject, of, Subject, filter as filter$1, take as take$1, debounceTime } from 'rxjs';
7
7
  import * as i3 from '@angular/common';
8
8
  import { isPlatformBrowser } from '@angular/common';
9
9
  import { ToastrService } from 'ngx-toastr';
@@ -250,10 +250,10 @@ class DateService {
250
250
  return null;
251
251
  return date.format(small ? this.cfg.smallDate : seconds ? this.cfg.fulldateDisplay : this.cfg.fulldateDisplayNoSS);
252
252
  }
253
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: DateService, deps: [{ token: i1.BaseLocalization, optional: true }, { token: EXT_ALLOW_UTC, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
254
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: DateService, providedIn: "root" });
253
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DateService, deps: [{ token: i1.BaseLocalization, optional: true }, { token: EXT_ALLOW_UTC, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
254
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DateService, providedIn: "root" });
255
255
  }
256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: DateService, decorators: [{
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DateService, decorators: [{
257
257
  type: Injectable,
258
258
  args: [{ providedIn: "root" }]
259
259
  }], ctorParameters: () => [{ type: i1.BaseLocalization, decorators: [{
@@ -292,10 +292,10 @@ class LocDatePipe {
292
292
  var dt = this.dts.getDateConvertion(detatchedValue);
293
293
  return dt.format(format);
294
294
  }
295
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocDatePipe, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Pipe });
296
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: LocDatePipe, isStandalone: false, name: "loc_date" });
295
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: LocDatePipe, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Pipe });
296
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: LocDatePipe, isStandalone: false, name: "loc_date" });
297
297
  }
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocDatePipe, decorators: [{
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: LocDatePipe, decorators: [{
299
299
  type: Pipe,
300
300
  args: [{
301
301
  name: "loc_date", pure: true,
@@ -315,11 +315,11 @@ class ExtensionsModule {
315
315
  ]
316
316
  };
317
317
  }
318
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
319
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: ExtensionsModule, declarations: [LocDatePipe], imports: [LocalizationModule], exports: [LocDatePipe] });
320
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExtensionsModule, imports: [LocalizationModule] });
318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
319
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: ExtensionsModule, declarations: [LocDatePipe], imports: [LocalizationModule], exports: [LocDatePipe] });
320
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExtensionsModule, imports: [LocalizationModule] });
321
321
  }
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExtensionsModule, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExtensionsModule, decorators: [{
323
323
  type: NgModule,
324
324
  args: [{
325
325
  imports: [LocalizationModule],
@@ -626,10 +626,10 @@ class HashingService {
626
626
  add32(a, b) {
627
627
  return (a + b) & 0xFFFFFFFF;
628
628
  }
629
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HashingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
630
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HashingService, providedIn: "root" });
629
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HashingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
630
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HashingService, providedIn: "root" });
631
631
  }
632
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HashingService, decorators: [{
632
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: HashingService, decorators: [{
633
633
  type: Injectable,
634
634
  args: [{ providedIn: "root" }]
635
635
  }] });
@@ -1095,10 +1095,10 @@ class MessageService {
1095
1095
  postFailure();
1096
1096
  }
1097
1097
  }
1098
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: MessageService, deps: [{ token: Injector }, { token: i1.BaseLocalization, optional: true }, { token: HashingService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1099
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: MessageService, providedIn: "root" });
1098
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: MessageService, deps: [{ token: Injector }, { token: i1.BaseLocalization, optional: true }, { token: HashingService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1099
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: MessageService, providedIn: "root" });
1100
1100
  }
1101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: MessageService, decorators: [{
1101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: MessageService, decorators: [{
1102
1102
  type: Injectable,
1103
1103
  args: [{ providedIn: "root" }]
1104
1104
  }], ctorParameters: () => [{ type: i0.Injector, decorators: [{
@@ -1378,10 +1378,196 @@ class AppEmbeddingExtensions {
1378
1378
  if (left)
1379
1379
  left.style.setProperty("width", leftSpace + "px");
1380
1380
  }
1381
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: AppEmbeddingExtensions, deps: [{ token: MessageService }, { token: i2.Router }, { token: i3.Location }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1382
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: AppEmbeddingExtensions, providedIn: "root" });
1381
+ onEmbeddedDialogShow(dialog) {
1382
+ dialog._renderer.setStyle(dialog._element.nativeElement, "padding-top", "5%");
1383
+ dialog._renderer.setStyle(dialog._element.nativeElement, "margin-left", "-110px");
1384
+ dialog._renderer.setStyle(dialog._element.nativeElement, "width", "calc(100% + 110px)");
1385
+ dialog._renderer.setStyle(dialog._element.nativeElement, "overflow", "hidden");
1386
+ if (dialog._config.animated)
1387
+ setTimeout(() => { this.doFixBody(dialog._element); }, 300);
1388
+ else
1389
+ this.doFixBody(dialog._element);
1390
+ let backdropHeight = dialog.backdrop.instance.element.nativeElement.clientHeight;
1391
+ this.MainWindow.postMessage({ type: "modal-open", backdropHeight: backdropHeight }, "*");
1392
+ dialog.onHidden.pipe(take$1(1)).subscribe(() => {
1393
+ document.body.style.setProperty("overflow-y", "auto", "important");
1394
+ });
1395
+ }
1396
+ doFixBody(modalElement) {
1397
+ let body = modalElement.nativeElement.getElementsByClassName("modal-body")[0];
1398
+ // Ci prova finch� non trova il body dato che potrebbe essere creato in qualsiasi momento
1399
+ if (!body) {
1400
+ setTimeout(() => this.doFixBody(modalElement), 250);
1401
+ return;
1402
+ }
1403
+ body.style.setProperty("max-height", "600px", "important");
1404
+ body.style.setProperty("overflow-x", "hidden");
1405
+ body.style.setProperty("overflow-y", "auto");
1406
+ }
1407
+ onEmbeddedDialogHide(dialog) {
1408
+ if (dialog._config.animated)
1409
+ setTimeout(() => { this.doHide(); }, 300);
1410
+ else
1411
+ this.doHide();
1412
+ }
1413
+ doHide() {
1414
+ this.MainWindow.postMessage({ type: "modal-close" }, "*");
1415
+ }
1416
+ onComponentCreation(CompletePath, InternalNavigation, NavigationTitle) {
1417
+ // Per i componenti navigabili non embeddati è inutile mandare il messaggio di navigazione
1418
+ // Così come per quelli per cui non esiste un titolo (cioè compoennti verso cui non si è navigato direttamente)
1419
+ if (!this.Embedded || NavigationTitle)
1420
+ return;
1421
+ this.MainWindow.postMessage({ type: "navigation", url: CompletePath, internalNavigation: InternalNavigation, title: NavigationTitle }, "*");
1422
+ }
1423
+ handleBack() {
1424
+ if (this.Embedded) {
1425
+ this.MainWindow.postMessage({ type: "navigate-back" }, "*");
1426
+ setTimeout(() => { this.location.back(); });
1427
+ }
1428
+ else
1429
+ this.location.back();
1430
+ }
1431
+ handleNavigation(command, extras, EMBEDDED_ROUTE, ROUTE, basePath) {
1432
+ let commands = command;
1433
+ // Fix della path esattamente come in esRouterLink
1434
+ commands = Array.isArray(commands) ? commands : [commands];
1435
+ let route = commands[0];
1436
+ if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
1437
+ commands[0] = basePath + commands[0];
1438
+ this.router.navigate(command, extras);
1439
+ }
1440
+ // TODO: Automatizzare
1441
+ LocalhostModuleMap = {
1442
+ "crm": "31813",
1443
+ "sii": "21645",
1444
+ "pp": "1616",
1445
+ "sales": "19112"
1446
+ };
1447
+ Reloading = false;
1448
+ setupEmbedding(route, ParametersRetrieveFunction, QueryParametersRetrieveFunction, completePathRetrieveFunction, currentModuleRetrieveFunction, currentPageRetrieveFunction, onEmbeddingSuccesful) {
1449
+ route.url.subscribe(_ => { this.performNewEmbeddingOperations(ParametersRetrieveFunction, QueryParametersRetrieveFunction, null, completePathRetrieveFunction, currentModuleRetrieveFunction, currentPageRetrieveFunction, onEmbeddingSuccesful); });
1450
+ route.params.pipe(debounceTime(100)).subscribe((res) => { this.performNewEmbeddingOperations(ParametersRetrieveFunction, QueryParametersRetrieveFunction, res["module"], completePathRetrieveFunction, currentModuleRetrieveFunction, currentPageRetrieveFunction, onEmbeddingSuccesful); });
1451
+ }
1452
+ performNewEmbeddingOperations(ParametersRetrieveFunction, QueryParametersRetrieveFunction, module, completePathRetrieveFunction, currentModuleRetrieveFunction, currentPageRetrieveFunction, onEmbeddingSuccesful) {
1453
+ let Module = currentModuleRetrieveFunction();
1454
+ let Localhost;
1455
+ let Page = currentPageRetrieveFunction();
1456
+ let Pars;
1457
+ let CompletePath = completePathRetrieveFunction();
1458
+ if (!module && !Module) {
1459
+ console.log(`Module parameter missing. Ignoring embed request`);
1460
+ return;
1461
+ }
1462
+ if (this.Reloading) {
1463
+ console.log(`Already reloading. Embedding ignored`);
1464
+ return;
1465
+ }
1466
+ if (module)
1467
+ Module = module;
1468
+ Localhost = this.LocalhostModuleMap[Module];
1469
+ this.Reloading = true;
1470
+ console.log(`Recognized a new navigation to the embedding component: ${Module} - ${CompletePath}`);
1471
+ let reloadAllowed = this.IsReloadAllowed();
1472
+ if (Page && reloadAllowed) {
1473
+ Page = Pars = null;
1474
+ requestAnimationFrame(() => {
1475
+ this.assignPageLoadParameters(ParametersRetrieveFunction, QueryParametersRetrieveFunction, Localhost, Page, CompletePath, Module, true, onEmbeddingSuccesful);
1476
+ requestAnimationFrame(() => { this.Reloading = false; });
1477
+ });
1478
+ }
1479
+ else {
1480
+ this.assignPageLoadParameters(ParametersRetrieveFunction, QueryParametersRetrieveFunction, Localhost, Page, CompletePath, Module, reloadAllowed, onEmbeddingSuccesful);
1481
+ requestAnimationFrame(() => { this.Reloading = false; });
1482
+ }
1483
+ }
1484
+ assignPageLoadParameters(ParametersRetrieveFunction, QueryParametersRetrieveFunction, Localhost, _Page, CompletePath, Module, reloadAllowed, onEmbeddingSuccesful) {
1485
+ let EmbeddingSuccesfull;
1486
+ let Page = _Page;
1487
+ let Pars;
1488
+ let QueryPars;
1489
+ // Esempio di Complete path: "/pages/embed/crm/leads/leads_search"
1490
+ // Esempio di slices: ["", "pages", "embed", "crm", "leads", "leads_search"]
1491
+ // Io devo sostanzialmente prendere dal nome del modulo ("crm") in poi. Nome del modulo embeddato eslcuso
1492
+ console.log("Embedding...");
1493
+ if (reloadAllowed)
1494
+ EmbeddingSuccesfull = false;
1495
+ // Per seccare e ricreare il componente che altrimenti non prenderebbe gli input nuovi
1496
+ requestAnimationFrame(() => {
1497
+ let Parameters = ParametersRetrieveFunction();
1498
+ let QueryParameters = QueryParametersRetrieveFunction();
1499
+ Page = CompletePath.split("/").slice(4).join("/");
1500
+ console.log("Page: " + Page);
1501
+ let navParKeys = Object.keys(Parameters)?.filter(p => p != "module");
1502
+ Pars = (navParKeys?.length || 0) == 0 ? "" : ";" + navParKeys.map(t => `${t}=${Parameters[t]}`).join(";");
1503
+ console.log("Pars: " + Pars);
1504
+ let queryParKeys = Object.keys(QueryParameters);
1505
+ QueryPars = (queryParKeys?.length || 0) == 0 ? "" : "?" + queryParKeys.map(t => `${t}=${QueryParameters[t]}`).join(";");
1506
+ console.log("QueryPars: " + QueryPars);
1507
+ let QueryPAramsWithoutIgnoreStorage = queryParKeys.map(t => t == "ignoreStorage" ? null : `${t}=${QueryParameters[t]}`).filter(t => !!t).join(";");
1508
+ // Per rimuovere eventuali ignoreStorage se sto navigando a una ricerca
1509
+ this.location.replaceState(CompletePath + Pars + (QueryPAramsWithoutIgnoreStorage ? '?' + QueryPAramsWithoutIgnoreStorage : ""));
1510
+ EmbeddingSuccesfull = !!Page && !!Module && !!Localhost;
1511
+ onEmbeddingSuccesful(EmbeddingSuccesfull, Page, Pars, QueryPars, Module, Localhost);
1512
+ });
1513
+ }
1514
+ navigate(url) {
1515
+ if (this.Embedded)
1516
+ this.MainWindow.postMessage({ type: "navigate", url }, "*");
1517
+ else
1518
+ this.router.navigate([url]);
1519
+ }
1520
+ loadExternalPage(Username, Password, Tenant, EmbeddingSource, _state, currentIdentity, aac) {
1521
+ var Localhost;
1522
+ if (!this.Embedded) {
1523
+ console.log("Pagina ext richiamata in ambiente non embeddato. Sono in una nuova scheda!!");
1524
+ console.log("L'embedder originale doveva essere: " + EmbeddingSource);
1525
+ console.log("Dato che sono in una nuova scheda devo in realtà navigare a lui, con link su emb/ecc in modo da aprire una scheda embeddata su questa pagina. Se funziona già fino a qui sono a cavallo");
1526
+ Localhost = this.LocalhostModuleMap[EmbeddingSource];
1527
+ if (_state.Modules?.length > 0)
1528
+ this.afterModulesRetrieve(_state.Modules, EmbeddingSource, Localhost);
1529
+ else {
1530
+ _state.subscribe("modules.Retrieved", (modules) => {
1531
+ this.afterModulesRetrieve(modules, EmbeddingSource, Localhost);
1532
+ });
1533
+ }
1534
+ return;
1535
+ }
1536
+ console.log("Caricamento pagina nell'IFRAME completato!");
1537
+ if (Tenant || Username || Password)
1538
+ console.log("[" + Tenant + "]" + Username + " - " + Password);
1539
+ // Le info di login che ho passato sono le stesse delle info di login salvate nel token --> È un redirect da un sito esterno ma il token c'è già. Esco
1540
+ // Ho un token di login e non ho nessuna info sull'utente da usare --> È un redirect da Jace, quindi sono a posto. Esco
1541
+ if ((!(Tenant + Username + Password) || currentIdentity.Idtenant == Tenant && currentIdentity.DsUser == Username)) {
1542
+ aac.initializeIdentity(currentIdentity);
1543
+ return;
1544
+ }
1545
+ // Altrimenti devo effettuare il login
1546
+ // Non è utilizzata, porcoddinci
1547
+ // let LoginDTO = { tenant: "FX", username: Username, password: Password, client_id: "jacedev" };
1548
+ // this.http.post(`${myconfig.AuthUrl}/api/login/dologin`, LoginDTO).subscribe(t => {
1549
+ // });
1550
+ }
1551
+ afterModulesRetrieve(modules, EmbeddingSource, Localhost) {
1552
+ // Sto navigando a {sito}/#/pages_ext/{origine}/etc...
1553
+ // Devo ridirezionare a {sorgente}/#/pages/embed/{thisModule}/etc...
1554
+ let module = modules.find(t => t.altname == EmbeddingSource);
1555
+ if (!module) {
1556
+ console.error(`Impossibile trovare il modulo con altname uguale a ${this.EmbeddingSource}`);
1557
+ }
1558
+ let afterPagesExt = this.router.url.split("pages_ext")[1].substring(1).split("/").slice(1).join("/");
1559
+ let sourceModuleUrl = myconfig.AuthUrl.includes("localhost") ? `http://localhost:${Localhost}` : module.uiurl;
1560
+ let finalUrl = `${sourceModuleUrl}/#/pages/embed/${myconfig.AppData.ModuleId}/${afterPagesExt}`;
1561
+ console.log("@esfaenza/core: navigating to " + finalUrl);
1562
+ location.replace(finalUrl);
1563
+ }
1564
+ getPageRoute() {
1565
+ return this.Embedded ? "pages_ext/" : "pages/";
1566
+ }
1567
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: AppEmbeddingExtensions, deps: [{ token: MessageService }, { token: i2.Router }, { token: i3.Location }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
1568
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: AppEmbeddingExtensions, providedIn: "root" });
1383
1569
  }
1384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: AppEmbeddingExtensions, decorators: [{
1570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: AppEmbeddingExtensions, decorators: [{
1385
1571
  type: Injectable,
1386
1572
  args: [{ providedIn: "root" }]
1387
1573
  }], ctorParameters: () => [{ type: MessageService }, { type: i2.Router }, { type: i3.Location }, { type: Object, decorators: [{
@@ -1408,10 +1594,10 @@ class BaseExtensionsService {
1408
1594
  };
1409
1595
  }
1410
1596
  }
1411
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BaseExtensionsService, deps: [{ token: AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
1412
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BaseExtensionsService, providedIn: "root" });
1597
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseExtensionsService, deps: [{ token: AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Injectable });
1598
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseExtensionsService, providedIn: "root" });
1413
1599
  }
1414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BaseExtensionsService, decorators: [{
1600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: BaseExtensionsService, decorators: [{
1415
1601
  type: Injectable,
1416
1602
  args: [{ providedIn: "root" }]
1417
1603
  }], ctorParameters: () => [{ type: AppEmbeddingExtensions }] });
@@ -1719,10 +1905,10 @@ class UtilityService {
1719
1905
  //Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
1720
1906
  this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
1721
1907
  }
1722
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: UtilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1723
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: UtilityService, providedIn: "root" });
1908
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1909
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilityService, providedIn: "root" });
1724
1910
  }
1725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: UtilityService, decorators: [{
1911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilityService, decorators: [{
1726
1912
  type: Injectable,
1727
1913
  args: [{ providedIn: "root" }]
1728
1914
  }] });
@@ -2278,8 +2464,10 @@ class ExportService {
2278
2464
  for (let h = 0; h < headers.length; h++) {
2279
2465
  let head = headers[h];
2280
2466
  let val = data[d][head.key];
2467
+ if (head.type == "date" && val && !this.dates.getDateConvertion(val))
2468
+ console.error("[@esfaenza/extensions - export] Valore data che non è una data per qualche motivo: " + val);
2281
2469
  toExportItem[head.label] =
2282
- head.type == "date" ? this.dates.getDateConvertion(val).toDate() :
2470
+ head.type == "date" ? (val ? this.dates.getDateConvertion(val)?.toDate() : "") :
2283
2471
  head.type == "number" ? (isNaN(parseFloat(val.replace(',', '.'))) ? "" : parseFloat(val.replace(',', '.'))) :
2284
2472
  val;
2285
2473
  }
@@ -2317,10 +2505,10 @@ class ExportService {
2317
2505
  let headers = genericHeaders ? this.setupForGenericExport(createdItems, genericHeaders) : this.setupForExport(createdItems, columnsFilter);
2318
2506
  return (format == "CSV" ? this.exportCSVBuffer : this.exportExcelBuffer).bind(this)(fileName, headers, createdItems);
2319
2507
  }
2320
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExportService, deps: [{ token: DateService }, { token: UtilityService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
2321
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExportService, providedIn: "root" });
2508
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExportService, deps: [{ token: DateService }, { token: UtilityService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
2509
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExportService, providedIn: "root" });
2322
2510
  }
2323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ExportService, decorators: [{
2511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ExportService, decorators: [{
2324
2512
  type: Injectable,
2325
2513
  args: [{ providedIn: "root" }]
2326
2514
  }], ctorParameters: () => [{ type: DateService }, { type: UtilityService }, { type: i1.LocalizationService }] });
@@ -2540,10 +2728,10 @@ class ClipboardService {
2540
2728
  }
2541
2729
  document.body.removeChild(textArea);
2542
2730
  }
2543
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClipboardService, deps: [{ token: MessageService }, { token: i1.BaseLocalization, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2544
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClipboardService, providedIn: "root" });
2731
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClipboardService, deps: [{ token: MessageService }, { token: i1.BaseLocalization, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2732
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClipboardService, providedIn: "root" });
2545
2733
  }
2546
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ClipboardService, decorators: [{
2734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ClipboardService, decorators: [{
2547
2735
  type: Injectable,
2548
2736
  args: [{ providedIn: "root" }]
2549
2737
  }], ctorParameters: () => [{ type: MessageService }, { type: i1.BaseLocalization, decorators: [{
@@ -2674,10 +2862,10 @@ class InterComService {
2674
2862
  throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
2675
2863
  this.outbounds[key] = new Subject();
2676
2864
  }
2677
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: InterComService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2678
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: InterComService, providedIn: "root" });
2865
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InterComService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2866
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InterComService, providedIn: "root" });
2679
2867
  }
2680
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: InterComService, decorators: [{
2868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: InterComService, decorators: [{
2681
2869
  type: Injectable,
2682
2870
  args: [{ providedIn: "root" }]
2683
2871
  }] });