{"version":3,"sources":["./src/environments/environment.ts","./src/app/services/product.service.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/filter/filter.component.ts","./src/app/filter/filter.component.html","./src/app/app.module.ts","./src/app/prototypes.ts","./src/app/app-routing.module.ts","./src/main.ts","./src/app/products/products.component.ts","./src/app/products/products.component.html","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { Product } from '../models/product';\r\nimport { ProductApiResponse } from '../models/api/product.response';\r\nimport { Question } from '../models/question';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService {\r\n\r\n private baseUrl = 'https://api.berkleba.nl';\r\n\r\n private filterUrl = this.baseUrl + '/api/Product/Filter'\r\n\r\n private httpOptions = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': window.location.host,\r\n 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept'\r\n }\r\n }\r\n\r\n productsList: Product[] = [];\r\n products = new BehaviorSubject(this.productsList);\r\n\r\n questionsList: Question[] = [];\r\n questions = new BehaviorSubject(this.questionsList);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n refreshProducts() {\r\n // submit with no answer id's to get everything\r\n this.submitFilter([]);\r\n }\r\n\r\n async submitFilter(answerIds: number[]) {\r\n let jsonBody = \"[]\";\r\n\r\n if (answerIds.length > 0) {\r\n jsonBody = JSON.stringify(answerIds);\r\n }\r\n\r\n var model = await this.http.post(this.filterUrl, jsonBody, this.httpOptions).toPromise();\r\n\r\n this.productsList = model.products\r\n this.products.next(this.productsList)\r\n\r\n this.questionsList = model.questions\r\n this.questions.next(this.questionsList)\r\n }\r\n}\r\n","import './prototypes';\nimport { Component } from '@angular/core';\nimport { ProductService } from '../app/services/product.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Berkleba-ProductSelector';\n\n loading = true;\n\n constructor(private productService: ProductService) {\n }\n\n ngOnInit(): void {\n this.productService.products.subscribe(products => {\n if (products != null && products.length > 0){\n this.loading = false;\n }\n })\n }\n}\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 Loading...\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Answer } from '../models/answer';\r\nimport { Question } from '../models/question';\r\nimport { ProductService } from '../services/product.service';\r\n\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.css']\r\n})\r\nexport class FilterComponent implements OnInit {\r\n\r\n questionsList: Question[] = [];\r\n page = 1;\r\n\r\n selectedAnswerIds: number[] = [];\r\n expendedQuestionIds: number[] = [];\r\n\r\n showAll = false;\r\n productCount: number = 0;\r\n\r\n constructor(private productService: ProductService) { }\r\n\r\n ngOnInit(): void {\r\n this.getFilter();\r\n }\r\n\r\n getFilter() {\r\n this.productService.questions.subscribe(list => {\r\n this.questionsList = list\r\n })\r\n\r\n this.productService.products.subscribe(list => {\r\n this.productCount = list.length;\r\n });\r\n }\r\n\r\n submitFilter() {\r\n this.productService.submitFilter(this.selectedAnswerIds);\r\n }\r\n\r\n checkboxChanged(e: any, id: number) {\r\n if (e.target.checked) {\r\n this.selectedAnswerIds.push(id);\r\n }\r\n else {\r\n const index = this.selectedAnswerIds.indexOf(id, 0);\r\n this.selectedAnswerIds.splice(index, 1);\r\n }\r\n\r\n this.productService.submitFilter(this.selectedAnswerIds);\r\n }\r\n\r\n async answerButtonClicked(id: number) {\r\n this.selectedAnswerIds.push(id);\r\n\r\n var answeredLength = this.questionAnswered;\r\n\r\n if (this.question.numberOfAnswers > answeredLength) {\r\n return;\r\n }\r\n\r\n await new Promise(f => setTimeout(f, 300));\r\n\r\n await this.productService.submitFilter(this.selectedAnswerIds);\r\n this.nextPage();\r\n }\r\n\r\n get questionAnswered(): Number {\r\n var questionAnswerIds = this.question?.answers?.map(({ id }) => id);\r\n return this.selectedAnswerIds.filter((element, index, array) => questionAnswerIds?.includes(element)).length;\r\n }\r\n\r\n previousPage(): void {\r\n if (this.page == 1) {\r\n return;\r\n }\r\n\r\n this.page = this.page - 1;\r\n }\r\n\r\n nextPage(): void {\r\n if (this.page == 3) {\r\n return;\r\n }\r\n\r\n this.page = this.page + 1;\r\n }\r\n\r\n showMore(): void {\r\n this.showAll = true;\r\n }\r\n\r\n showLess(): void {\r\n this.showAll = false;\r\n }\r\n\r\n expandQuestion(id: number): void {\r\n this.expendedQuestionIds.push(id);\r\n }\r\n\r\n collapseQuestion(id: number): void {\r\n let index = this.expendedQuestionIds.indexOf(id, 0);\r\n this.expendedQuestionIds.splice(index, 1);\r\n }\r\n\r\n resetFilter(): void {\r\n this.selectedAnswerIds = [];\r\n this.submitFilter();\r\n this.page = 1;\r\n }\r\n\r\n get isOneProduct(): Boolean {\r\n return this.productCount == 1;\r\n }\r\n\r\n get isSingle(): Boolean {\r\n return this.page == 1 || this.page == 2;\r\n }\r\n\r\n get question(): Question {\r\n let index = this.page - 1;\r\n\r\n if (this.questionsList == null || this.questionsList.length < index + 1) {\r\n return {} as Question;\r\n }\r\n\r\n return this.questionsList[this.page - 1];\r\n }\r\n\r\n get questions(): Question[] | null {\r\n if (this.questionsList == null || this.questionsList.length == 0){\r\n return null;\r\n }\r\n\r\n if (this.showAll) {\r\n return this.questionsList?.skip(2);\r\n }\r\n else {\r\n return this.questionsList?.skip(2).take(6);\r\n }\r\n\r\n }\r\n\r\n get questionsCount(): number {\r\n if (this.questions) {\r\n return this.questionsList.length;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n get answersForQuestion(): Answer[] | null {\r\n return (this.question?.answers ?? []).filter(x => x.enabled)\r\n }\r\n\r\n}\r\n","
\n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n

\n Dit is het overgebleven product na jouw selectie.\n

\n
\n\n \n
\n

\n {{ questionAnswered > 0 && question.numberOfAnswers > 1 ? question.pluralText : question.text }}\n

\n
\n \n\n \n
\n
\n\n
\n
1) ? '1' : '0'}\" (click)=\"resetFilter()\">\n  Naar begin\n
\n \n
\n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { ProductsComponent } from './products/products.component';\nimport { FilterComponent } from './filter/filter.component';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n declarations: [\n AppComponent,\n ProductsComponent,\n FilterComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n HttpClientModule,\n FormsModule,\n BrowserAnimationsModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","interface Array {\r\n take(limit: number): Array;\r\n skip(skip: number): Array;\r\n}\r\n\r\nArray.prototype.take = function (limit: number): any[] {\r\n return this.filter((x,i) => {\r\n if(i <= (limit-1)) {\r\n return true\r\n }\r\n return false\r\n })\r\n}\r\n\r\nArray.prototype.skip = function(skip: number): any[] {\r\n return this.filter((x,i) => {\r\n if(i > (skip-1)) {\r\n return true\r\n }\r\n return false\r\n })\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import { Component, OnInit } from '@angular/core';\nimport { Product } from '../models/product';\nimport { ProductService } from '../services/product.service';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\n@Component({\n selector: 'app-products',\n templateUrl: './products.component.html',\n styleUrls: ['./products.component.css'],\n animations: [\n trigger(\n 'inOutAnimation',\n [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms 500ms ease-out', style({ opacity: 1 }))\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('300ms ease-out', style({ opacity: 0 }))\n ])\n ]\n )\n ]\n})\nexport class ProductsComponent implements OnInit {\n\n // Attributes\n currentPage: number = 1;\n pageSize: number = 16;\n productsList: Product[] = [];\n\n // Properties\n get maxPage(): number {\n\n if (this.productsList == null) {\n return 1;\n }\n\n return Math.ceil(this.productsList.length / this.pageSize);\n }\n\n get products(): Product[] | null {\n let skip = this.pageSize * (this.currentPage - 1);\n let take = this.pageSize;\n\n if (this.productsList == null || this.productsList.length == 0) {\n return null;\n }\n\n return this.productsList.skip(skip).take(take);\n }\n\n get pages(): number[] {\n let numbers = this.range(this.currentPage - 1, this.currentPage + 1);\n\n if (this.maxPage == 0 || this.maxPage == 1){\n return [1];\n }\n else if (this.maxPage == 1 || this.maxPage == 2) {\n return this.range(1, 2);\n }\n else if (this.currentPage - 1 == 0) {\n for (let i = 0; i < numbers.length; i++) {\n numbers[i]++;\n }\n }\n else if (this.currentPage == this.maxPage) {\n for (let i = 0; i < numbers.length; i++) {\n numbers[i]--;\n }\n }\n\n return numbers;\n }\n\n range = (start: number, end: number) => [...Array(end - start + 1)].map((_, i) => start + i);\n\n // Constructor\n constructor(private productService: ProductService) { }\n\n // Methods\n ngOnInit(): void {\n this.getProducts();\n }\n\n getProducts(): void {\n this.productService.products.subscribe(products => {\n this.productsList = products;\n this.currentPage = 1;\n });\n this.productService.refreshProducts();\n }\n\n onProductClick(product: Product): void {\n window.open('https://berkleba.nl/producten/?artikelNummer=' + product.articleNumber, '_blank');\n }\n\n toPage(page: number): void {\n if (page <= 0) {\n page = 1;\n }\n else if (page >= this.maxPage) {\n page = this.maxPage\n }\n\n this.currentPage = page;\n }\n}\n","
\r\n
\r\n
\r\n

\r\n {{ product.productName }}\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}