{"version":3,"mappings":"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","names":["ɵɵelement","ce","t","e","ɵɵtemplate","StandComponent_Conditional_7_info_bar_0_Template","ɵɵproperty","ɵɵpureFunction0","_c0","pe","ue","StandComponent_Conditional_8_info_bar_0_Template","n","StandComponent","_a","constructor","elementRef","standService","iconsLoader","usersService","platform","cd","dataSharingService","lockedCollapsed","routerAnimation","load","isInRole","UserRolesEnum","admin","stand_admin","overlayVisible$","subscribe","isVisible","showOverlay","ngOnInit","getCurrentCompany","pipe","take","company","$onSlideStand","untilDestroyed","opt","detectChanges","ɵfac","i","ɵɵdirectiveInject","ElementRef","StandService","IconsLoader","UsersService","Platform","ChangeDetectorRef","DataSharingService","ɵcmp","k","type","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","$","ɵɵelementEnd","StandComponent_Conditional_7_Template","StandComponent_Conditional_8_Template","r","ɵɵadvance","ɵɵpipeBind1","$onDescriptionExpanded","ɵɵclassProp","tmp_2_0","standLayout","lockCollapsed","ɵɵconditional","dependencies","RouterOutlet","RenderIfDirective","InfoBarComponent","AsyncPipe","styles","encapsulation","data","animation","trigger","transition","query","style","animate","optional","state","transform","changeDetection","__decorate","UntilDestroy","__metadata","routesFactory","path","component","StandFooterComponent","outlet","shouldReuseOnSlide","InfoBarMobileComponent","breadcrumb","resolve","resolvedData","children","StandHeaderComponent","pathMatch","loadChildren","then","m","DashboardModule","isCacheable","$localize","layout","StandLayoutEnum","complete","loadComponent","c","RequestInfoCompanyComponent","roles","basic","canLoad","NewsModule","NewsDetailsModule","detailsPage","ProductDetailsModule","StandProductsManagerModule","matcher","url","endsWith","length","PageNotFoundError","map","segment","join","consumed","ProductsModule","StandRoutingModule","ɵmod","y","ɵinj","v","providers","provide","ROUTES","useFactory","multi","deps","imports","RouterModule","_StandRoutingModule","StandModule","CommonModule","NgScrollbarModule","MatButtonModule","StandFooterModule","_StandModule","it"],"ignoreList":[],"sources":["src/app/stand/stand.component.html","src/app/stand/stand.component.ts","src/app/stand/stand-routing.module.ts","src/app/stand/stand.module.ts"],"sourcesContent":["\r\n  <router-outlet id=\"topOutlet\" name=\"topOutlet\"></router-outlet>\r\n  <!-- CONTENT -->\r\n  <div class=\"relative flex flex-col items-center\" [@descriptinonExpanded]=\"standService.$onDescriptionExpanded | async\" >\r\n    <div class=\"container w-screen flex flex-1 h-full gap-x-6 mt-5 md:mt-[40px] pb-4\" [class.collapsed]=\"standService.standLayout()?.lockCollapsed\">\r\n      <div class=\"flex flex-col flex-1 relative lg:max-w-[calc(100%-var(--infobar-width))]\"\r\n          [@routeAnimations]=\"routerAnimation\">\r\n        <router-outlet  id=\"standContent\" #outlet=\"outlet\"></router-outlet>\r\n      </div>\r\n      @if (showOverlay) {\r\n        <info-bar class=\"company-info hidden lg:block\" *renderIf=\"{mediaSelector:'gt-md'}\"></info-bar>\r\n      }\r\n      @else{\r\n        <info-bar class=\"company-info hidden lg:block z-40\" *renderIf=\"{mediaSelector:'gt-md'}\"></info-bar>\r\n      }\r\n    </div>\r\n  </div>\r\n\r\n","import { UsersService } from '@shared/services/users/users.service';\r\nimport {\r\n  Component,\r\n  OnInit,\r\n  ChangeDetectionStrategy,\r\n  ElementRef,\r\n  ViewEncapsulation,\r\n  ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { ICompany } from '@collections/companies/interfaces/company.interface';\r\nimport { StandService } from 'app/stand/stand.service';\r\nimport { IconsLoader } from '@shared/services/icons/icons-loader.service';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { UserRolesEnum } from '@collections/users/enums/user-roles.enums';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { take } from 'rxjs';\r\nimport { animate, query, state, style, transition, trigger } from '@angular/animations';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { InfoBarComponent } from './components/info-bar/info-bar.component';\r\nimport { RenderIfDirective } from '../shared/directives/render-if.directive';\r\nimport { RouterOutlet } from '@angular/router';\r\nimport { DataSharingService } from './components/data-sharing.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n    selector: 'stand',\r\n    templateUrl: './stand.component.html',\r\n    styleUrls: ['./stand.component.scss'],\r\n    encapsulation: ViewEncapsulation.None,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    animations: [\r\n        trigger('routeAnimations', [\r\n            transition('ready => void', [\r\n                // Create a sequence of animations.\r\n                query('router-outlet ~ *', [style({}), animate(800, style({}))], {\r\n                    optional: true\r\n                })\r\n            ])\r\n        ]),\r\n        trigger('descriptinonExpanded', [\r\n            state('true', style({\r\n                transform: 'translateY(var(--e-expanded-desc-ty))'\r\n            })),\r\n            state('false', style({\r\n                transform: 'translateY(0)'\r\n            })),\r\n            transition('false <=> true', [\r\n                animate('300ms')\r\n            ])\r\n        ]),\r\n    ],\r\n    standalone: true,\r\n    imports: [RouterOutlet, RenderIfDirective, InfoBarComponent, AsyncPipe]\r\n})\r\nexport class StandComponent implements OnInit {\r\n  lockedCollapsed = false;\r\n  company: ICompany;\r\n  routerAnimation = 'void';\r\n  showOverlay: boolean;\r\n  constructor(\r\n    public elementRef: ElementRef,\r\n    public standService: StandService,\r\n    private iconsLoader: IconsLoader,\r\n    private usersService: UsersService,\r\n    private platform: Platform,\r\n    private cd: ChangeDetectorRef,\r\n    private dataSharingService: DataSharingService\r\n  ) {\r\n    this.iconsLoader.load('stand');\r\n    this.iconsLoader.load('sectors');\r\n    this.iconsLoader.load('social');\r\n    this.iconsLoader.load('halls');\r\n\r\n    if (this.usersService.isInRole([UserRolesEnum.admin, UserRolesEnum.stand_admin])) {\r\n      this.iconsLoader.load('edit');\r\n    }\r\n    this.dataSharingService.overlayVisible$.subscribe(isVisible =>{\r\n      this.showOverlay = isVisible;\r\n    })\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.standService.getCurrentCompany()\r\n    .pipe(\r\n      take(1)\r\n    )\r\n    .subscribe(company => {\r\n      this.company = company;\r\n    });\r\n\r\n    this.standService.$onSlideStand\r\n    .pipe(\r\n      untilDestroyed(this)\r\n    )\r\n    .subscribe((opt: any) => {\r\n      this.routerAnimation = 'ready';\r\n      this.cd.detectChanges();\r\n    });\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, ROUTES, UrlSegment, UrlMatchResult } from '@angular/router';\r\nimport { StandComponent } from './stand.component';\r\nimport { StandService } from 'app/stand/stand.service';\r\nimport { StandHeaderComponent } from './components/header/stand-header.component';\r\nimport { UserRolesEnum } from '@collections/users/enums/user-roles.enums';\r\nimport { UsersService } from '@shared/services/users/users.service';\r\nimport { StandFooterComponent } from './components/footer/stand-footer.component';\r\nimport { InfoBarMobileComponent } from './components/info-bar/info-bar-mobile/info-bar-mobile.component';\r\nimport { StandLayoutEnum } from './stand.enums';\r\nimport { PageNotFoundError } from 'app/error-handler/custom-errors/page-not-found.error';\r\n\r\nfunction routesFactory(usersService: UsersService): Routes {\r\n  return [\r\n    {\r\n      path: '',\r\n      component: StandFooterComponent,\r\n      outlet: 'footerOutlet',\r\n      data: {\r\n        shouldReuseOnSlide: false\r\n      },\r\n    },\r\n    {\r\n      path: '',\r\n      component: InfoBarMobileComponent,\r\n      outlet: 'mobileinfoBarOutlet',\r\n      data: {\r\n        shouldReuseOnSlide: false\r\n      },\r\n    },\r\n  {\r\n    path: ':companySlug',\r\n    component: StandComponent,\r\n    data: {\r\n      breadcrumb: 'subhall',\r\n      shouldReuseOnSlide: false\r\n    },\r\n    resolve: {\r\n      resolvedData: StandService\r\n    },\r\n    children: [\r\n      {\r\n        path: '',\r\n        component: StandHeaderComponent,\r\n        outlet: 'topOutlet',\r\n        data: {\r\n          shouldReuseOnSlide: false\r\n        },\r\n      },\r\n      {\r\n        path: '',\r\n        pathMatch: 'full',\r\n        loadChildren: () => import('./pages/dashboard/dashboard.module').then(m => m.DashboardModule),\r\n        data: {\r\n          isCacheable: true,\r\n          breadcrumb: $localize`Online Stand`,\r\n          layout: StandLayoutEnum.complete\r\n        }\r\n      },\r\n      {\r\n        path: 'request-info-company/:requestType',\r\n        loadComponent: () => import('./pages/request-info-company/request-info-company.component').then(c => c.RequestInfoCompanyComponent),\r\n        data: {\r\n          roles: [UserRolesEnum.basic],\r\n          isCacheable: true,\r\n          layout: StandLayoutEnum.complete\r\n        },\r\n        canLoad: ['RoleGuard']\r\n      },\r\n      {\r\n        path: 'news',\r\n        loadChildren: () => import('./pages/news/news.module').then(m => m.NewsModule),\r\n        data: {\r\n          isCacheable: true,\r\n          breadcrumb: $localize`News`,\r\n          layout: StandLayoutEnum.complete\r\n        }\r\n      },\r\n      {\r\n        path: 'news/:slug',\r\n        loadChildren: () => import('./pages/news-details/news-details.module').then(m => m.NewsDetailsModule),\r\n        data: {\r\n          isCacheable: true,\r\n          layout: StandLayoutEnum.detailsPage\r\n        }\r\n      },\r\n      {\r\n        path: 'products/:slug',\r\n        loadChildren: () => import('./pages/product-details/product-details.module').then(m => m.ProductDetailsModule),\r\n        data: {\r\n          isCacheable: true,\r\n          layout: StandLayoutEnum.detailsPage\r\n        },\r\n      },\r\n      // https://github.com/angular/angular/issues/12088#issuecomment-907775873\r\n      // attualmente non si può caricare condizionalmente un modulo utilizzando la stessa path\r\n      // per cui la soluzione migliore al momento è quella suggerita nell'issue su github.\r\n      // Utilizzando una custom factory (useFactory) sulle routes del modulo, è possibile iniettare l'usersService,\r\n      //  e con un custom matcher nella route è possibile caricare condizionalmente un modulo diverso per gli utenti autorizzati.\r\n      // Non è l'utilizzo canonico, ad esempio non include un RoleGuard, e bisogna fare attenzione all'ordine delle routes,\r\n      // (la route products/:slug deve stare sopra, altrimenti non viene presa in considerazione), ma per il resto sembra funzionare.\r\n      {\r\n        loadChildren: () => import('../stand-administration/stand-products-manager/stand-products-manager.module').then(m => m.StandProductsManagerModule),\r\n        data: {\r\n          isCacheable: true,\r\n          breadcrumb: $localize`Products`,\r\n          roles: [UserRolesEnum.admin, UserRolesEnum.stand_admin],\r\n          layout: StandLayoutEnum.complete\r\n        },\r\n        matcher: (url: UrlSegment[]): UrlMatchResult | null => {\r\n          if (!url[0].path.endsWith('products')) {\r\n            return null;\r\n          }\r\n          if (url.length > 1) { // ammette solo url ./products\r\n            throw new PageNotFoundError(url.map(segment => segment.path).join('/'));\r\n          }\r\n          if (!usersService.isInRole([UserRolesEnum.admin, UserRolesEnum.stand_admin])) {\r\n            return null;\r\n          }\r\n          return { consumed: url };\r\n        },\r\n        // canLoad: ['RoleGuard']\r\n      },\r\n      {\r\n        loadChildren: () => import('./pages/products/products.module').then(m => m.ProductsModule),\r\n        data: {\r\n          isCacheable: true,\r\n          breadcrumb: $localize`Products`,\r\n          layout: StandLayoutEnum.complete\r\n        },\r\n        matcher: (url: UrlSegment[]): UrlMatchResult | null => {\r\n          if (!url[0].path.endsWith('products')) {\r\n            return null;\r\n          }\r\n          \r\n          // (corregge url search console: /hall/machines/machines-for-electric-cables-and-optical-fibers/stand/gloser-srl-marketing-and-technology/products/pay-off-and-take-up-machines/1000/pay-off-and-take-up-machines/tubular-strander-for-cables)\r\n          // da capire da dove arriva questo url, se da qualche parte nell'aplicazione.\r\n          if (url.length > 1) { // ammette solo url ./products \r\n            throw new PageNotFoundError(url.map(segment => segment.path).join('/'));\r\n          }\r\n          if (usersService.isInRole([UserRolesEnum.admin, UserRolesEnum.stand_admin])) {\r\n            return null;\r\n          }\r\n          return { consumed: url };\r\n        },\r\n      },\r\n      // {\r\n      //   path: 'contacts',\r\n      //   loadChildren: () => import('./pages/contacts/contacts.module').then(m => m.ContactsModule),\r\n      //   data: {\r\n      //     isCacheable: true,\r\n      //     breadcrumb: $localize`Contacts`\r\n      //   }\r\n      // },\r\n    ]\r\n  }\r\n];\r\n}\r\n@NgModule({\r\n    providers: [\r\n        {\r\n            provide: ROUTES,\r\n            useFactory: routesFactory,\r\n            multi: true,\r\n            deps: [UsersService]\r\n        },\r\n    ],\r\n    exports: [RouterModule]\r\n})\r\nexport class StandRoutingModule {\r\n}\r\n","\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { StandRoutingModule } from './stand-routing.module';\r\nimport { StandComponent } from './stand.component';\r\n\r\n\r\n\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { StandFooterModule } from './components/footer/stand-footer.module';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n    imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    StandRoutingModule,\r\n    NgScrollbarModule,\r\n    MatButtonModule,\r\n    StandFooterModule,\r\n    StandComponent\r\n]\r\n})\r\n\r\nexport class StandModule\r\n{\r\n}\r\n"]}