{ "version": 3, "sources": ["src/@omnial/shared/product-collections/product-collections.component.ts", "src/app/shared/product-collections/product-collections.component.html", "src/@omnial/shared/product-collections/product-collections.module.ts"], "sourcesContent": ["import { Component, Input, AfterViewInit, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProductCollection, ProductCollectionTab } from 'src/@omnial/_models/catalog/product.collection.model';\r\nimport { Product, ProductDetail } from 'src/@omnial/_models/catalog/product.model';\r\nimport { CatalogService } from 'src/@omnial/_services/catalog/catalog.service';\r\nimport { SevenSpikesService } from 'src/@omnial/_services/catalog/seven.spikes.service';\r\nimport { AppSettings } from 'src/app/app.settings';\r\nimport { ProductDialogComponent } from '../product-dialog/product-dialog.component';\r\n\r\n@Component({\n selector: 'app-product-collections',\n templateUrl: './../../../app/shared/product-collections/product-collections.component.html',\n styleUrls: ['./../../../app/shared/product-collections/product-collections.component.scss'],\n standalone: false\n})\r\nexport class ProductCollectionsComponent implements OnInit, OnDestroy {\r\n @Input() widgetZone: string;\r\n @Input() collectionId: number;\r\n @Input() count1700 = 4;\r\n @Input() count1280 = 4;\r\n @Input() count960 = 4;\r\n @Input() count740 = 3;\r\n @Input() count480 = 2;\r\n public collectionTitle: string;\r\n public collections: ProductCollection[] = [];\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public router: Router,\r\n public sevenSpikesService: SevenSpikesService,\r\n public catalogService: CatalogService,\r\n public settings: AppSettings,\r\n public spinner: NgxSpinnerService) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscriptions && this.subscriptions.length > 0) {\r\n this.subscriptions.forEach((sub) => { sub.unsubscribe(); });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.widgetZone) {\r\n this.subscriptions.push(this.sevenSpikesService.getProductCollections(this.widgetZone).subscribe(\r\n res => {\r\n this.collections = this.filterCollection(res);\r\n this.initialiseTabs();\r\n }\r\n ));\r\n } else if (this.collectionId) {\r\n this.subscriptions.push(this.sevenSpikesService.getProductCollectionById(this.collectionId).subscribe(\r\n res => {\r\n this.collections = this.filterCollection(res);\r\n this.initialiseTabs();\r\n }\r\n ));\r\n }\r\n }\r\n\r\n public filterCollection(collections: ProductCollection[]): ProductCollection[] {\r\n collections.forEach((collection) => {\r\n // Only show active tabs and published products\r\n const tabs: ProductCollectionTab[] = []\r\n collection.tabs?.forEach((collectionTab) => {\r\n const products: Product[] = []\r\n const productIds: number[] = []\r\n let noProducts = 0;\r\n collectionTab.products.forEach((product) => {\r\n if (product.published) {\r\n products.push(product);\r\n productIds.push(product.id);\r\n noProducts++;\r\n }\r\n });\r\n collectionTab.products = products;\r\n collectionTab.productIds = productIds;\r\n collectionTab.noProducts = noProducts;\r\n if (collectionTab.active) {\r\n tabs.push(collectionTab);\r\n }\r\n collection.tabs = tabs;\r\n });\r\n });\r\n return collections;\r\n }\r\n\r\n public initialiseTabs() {\r\n if (this.collections[0]?.tabs[0]?.products) {\r\n this.collectionTitle = this.collections[0].title;\r\n }\r\n }\r\n\r\n public openProductDialog(productSimple: Product): void {\r\n this.spinner.show();\r\n this.subscriptions.push(this.catalogService.getProductDetail(productSimple.id).subscribe(\r\n res => {\r\n this.spinner.hide();\r\n const product = res as ProductDetail;\r\n const dialogRef = this.dialog.open(ProductDialogComponent, {\r\n data: { product, category: null, listId: this.widgetZone },\r\n panelClass: 'product-dialog',\r\n direction: (this.settings.rtl) ? 'rtl' : 'ltr'\r\n });\r\n dialogRef.afterClosed().subscribe(productDialog => {\r\n if (productDialog) {\r\n this.router.navigate([productSimple.canonical, product.seName]);\r\n }\r\n });\r\n }));\r\n }\r\n}\r\n", "
\r\n
\r\n

Products Loading

\r\n
 
\r\n
\r\n
\r\n
\r\n \"Loading\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

0 && collectionTitle\">{{collectionTitle}}

\r\n
\r\n
\r\n
1\" class=\"mat-tab-no-border\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\nimport { MaterialBaseModule } from 'src/@omnial/material.base.module';\nimport { ProductDialogModule } from 'src/@omnial/shared/product-dialog/product-dialog.module';\nimport { RatingModule } from 'src/@omnial/shared/rating/rating.module';\nimport { ControlsListModule } from 'src/@omnial/product-controls/controls-list/controls-list.module';\nimport { ProductsCarouselModule } from 'src/@omnial/shared/products-carousel/products-carousel.module';\nimport { ProductCollectionsComponent } from './product-collections.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n MaterialBaseModule,\n ProductDialogModule,\n RatingModule,\n ControlsListModule,\n ProductsCarouselModule,\n LazyLoadImageModule\n ],\n declarations: [ProductCollectionsComponent],\n exports: [ProductCollectionsComponent]\n})\nexport class ProductCollectionsModule { }\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r0", "settings", "holdingImage", "small", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "collectionTitle", "tab_r2", "title", "products", "\u0275\u0275template", "ProductCollectionsComponent_div_2_div_1_div_1_mat_tab_2_Template", "collection_r3", "tabs", "collections", "ProductCollectionsComponent_div_2_div_1_div_1_Template", "ProductCollectionsComponent_div_2_div_1_div_2_Template", "length", "ProductCollectionsComponent_div_2_div_1_Template", "ProductCollectionsComponent", "constructor", "dialog", "router", "sevenSpikesService", "catalogService", "spinner", "count1700", "count1280", "count960", "count740", "count480", "subscriptions", "ngOnDestroy", "forEach", "sub", "unsubscribe", "ngOnInit", "widgetZone", "push", "getProductCollections", "subscribe", "res", "filterCollection", "initialiseTabs", "collectionId", "getProductCollectionById", "collection", "collectionTab", "productIds", "noProducts", "product", "published", "id", "active", "openProductDialog", "productSimple", "show", "getProductDetail", "hide", "open", "ProductDialogComponent", "data", "category", "listId", "panelClass", "direction", "rtl", "afterClosed", "productDialog", "navigate", "canonical", "seName", "\u0275\u0275directiveInject", "MatDialog", "Router", "SevenSpikesService", "CatalogService", "AppSettings", "NgxSpinnerService", "selectors", "inputs", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "ProductCollectionsComponent_div_0_Template", "ProductCollectionsComponent_h2_1_Template", "ProductCollectionsComponent_div_2_Template", "ProductCollectionsModule", "CommonModule", "RouterModule", "MaterialBaseModule", "ProductDialogModule", "RatingModule", "ControlsListModule", "ProductsCarouselModule", "LazyLoadImageModule"] }