@colijnit/product 256.1.2 → 256.1.4

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.
Files changed (39) hide show
  1. package/app/components/product-addtocart/product-addtocart.component.d.ts +1 -0
  2. package/app/components/product-dialog/product-dialog.component.d.ts +27 -0
  3. package/app/components/product-dialog/product-dialog.module.d.ts +2 -0
  4. package/app/components/product-external-source/product-external-source.component.d.ts +16 -0
  5. package/app/components/product-hd/product-hd.component.d.ts +22 -0
  6. package/app/components/product-hd/product-hd.module.d.ts +2 -0
  7. package/app/components/product-page/product-page.component.d.ts +2 -0
  8. package/app/enum/icon.enum.d.ts +3 -0
  9. package/app/ione-product.component.d.ts +2 -0
  10. package/app/service/product-connector-adapter.service.d.ts +1 -1
  11. package/app/service/product-script-loader.service.d.ts +9 -0
  12. package/bundles/colijnit-product.umd.js +428 -61
  13. package/bundles/colijnit-product.umd.js.map +1 -1
  14. package/colijnit-product-256.1.3.tgz +0 -0
  15. package/colijnit-product.d.ts +6 -1
  16. package/colijnit-product.metadata.json +1 -1
  17. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +4 -2
  18. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +4 -2
  19. package/esm2015/app/components/product-dialog/product-dialog.component.js +86 -0
  20. package/esm2015/app/components/product-dialog/product-dialog.module.js +25 -0
  21. package/esm2015/app/components/product-external-source/product-external-source.component.js +82 -20
  22. package/esm2015/app/components/product-external-source/product-external-source.module.js +4 -2
  23. package/esm2015/app/components/product-hd/product-hd.component.js +99 -0
  24. package/esm2015/app/components/product-hd/product-hd.module.js +23 -0
  25. package/esm2015/app/components/product-page/product-page.component.js +8 -2
  26. package/esm2015/app/components/product-page/product-page.module.js +6 -2
  27. package/esm2015/app/components/product-related/product-related.component.js +25 -23
  28. package/esm2015/app/enum/icon.enum.js +4 -1
  29. package/esm2015/app/ione-product.component.js +8 -2
  30. package/esm2015/app/ione-product.module.js +15 -5
  31. package/esm2015/app/model/icon.js +4 -1
  32. package/esm2015/app/product-version.js +3 -3
  33. package/esm2015/app/service/product-connector-adapter.service.js +3 -3
  34. package/esm2015/app/service/product-script-loader.service.js +68 -0
  35. package/esm2015/assets/dictionary/text.properties.js +5 -3
  36. package/esm2015/colijnit-product.js +7 -2
  37. package/fesm2015/colijnit-product.js +448 -73
  38. package/fesm2015/colijnit-product.js.map +1 -1
  39. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Directive, EventEmitter, Component, ViewEncapsulation, ChangeDetectorRef, Input, Output, Renderer2, ViewChild, ElementRef, Pipe, NgModule, HostListener, HostBinding, SecurityContext, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { Injectable, Directive, EventEmitter, Component, ViewEncapsulation, ChangeDetectorRef, Input, Output, Renderer2, ViewChild, ElementRef, Pipe, NgModule, HostListener, HostBinding, SecurityContext, CUSTOM_ELEMENTS_SCHEMA, Inject, PLATFORM_ID, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import { __awaiter } from 'tslib';
4
4
  import { Subject, BehaviorSubject } from 'rxjs';
5
5
  import { Options } from '@colijnit/ioneconnector/build/model/options';
@@ -16,22 +16,22 @@ import { ArticleListObjectExtended } from '@colijnit/articleapi/build/model/arti
16
16
  import * as i1 from '@angular/common/http';
17
17
  import { HttpClient } from '@angular/common/http';
18
18
  import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
19
- import { CommonModule } from '@angular/common';
19
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
20
20
  import { trigger, state, style, transition, animate } from '@angular/animations';
21
21
  import * as i1$1 from '@angular/platform-browser';
22
22
  import { DomSanitizer } from '@angular/platform-browser';
23
23
  import { IconModule, LoaderModule, ScrollContainerModule, PriceDisplayPipeModule, NumberPickerModule, ButtonModule, FilesUploadModule, TileModule } from '@colijnit/corecomponents';
24
24
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
25
25
  import { ConfiguratorStatisticsEnvironment } from '@colijnit/articleapi/build/model/configurator-statistics-environment';
26
- import { ArticleTileModule } from '@colijnit/corecomponents_v12';
26
+ import { LoaderModule as LoaderModule$1, ArticleTileModule, ButtonModule as ButtonModule$1 } from '@colijnit/corecomponents_v12';
27
27
 
28
28
  // this file is dynamically created, do not change this
29
29
  class Version {
30
30
  constructor() {
31
31
  this.name = "@colijnit/product";
32
32
  this.description = "Product detail page project for iOne";
33
- this.symVer = "256.1.2";
34
- this.publishDate = "8-11-2024 14:14:34";
33
+ this.symVer = "256.1.4";
34
+ this.publishDate = "22-1-2025 20:45:30";
35
35
  }
36
36
  }
37
37
 
@@ -241,9 +241,9 @@ class ProductConnectorAdapterService {
241
241
  }
242
242
  });
243
243
  }
244
- getArticleFullObject(goodId) {
244
+ getArticleFullObject(goodId, showLoader = true) {
245
245
  return __awaiter(this, void 0, void 0, function* () {
246
- const response = yield this.articleConnector.getArticleFullObject(goodId);
246
+ const response = yield this.articleConnector.getArticleFullObject(goodId, showLoader);
247
247
  if (response && response.validationResult && response.validationResult.success) {
248
248
  return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject);
249
249
  }
@@ -331,7 +331,8 @@ class Dictionary {
331
331
  "TITLE": "Titel",
332
332
  "TURNOVERGROUP": "Omzetgroep",
333
333
  "VARIANTS": "Varianten",
334
- "WIDTH": "Breedte"
334
+ "WIDTH": "Breedte",
335
+ "SUGGESTION": "Suggesties bij",
335
336
  },
336
337
  "de": {
337
338
  "ADDITIONAL_DATA": "Extra informatie",
@@ -361,7 +362,8 @@ class Dictionary {
361
362
  "TITLE": "Titulatur",
362
363
  "TURNOVERGROUP": "Umsatzgruppe",
363
364
  "VARIANTS": "Varianten",
364
- "WIDTH": "Breite"
365
+ "WIDTH": "Breite",
366
+ "SUGGESTION": "Suggesties bij",
365
367
  }
366
368
  };
367
369
  }
@@ -660,6 +662,7 @@ class IoneProductComponent {
660
662
  this.onAddToQuote = new EventEmitter();
661
663
  this.openStockEvent = new EventEmitter();
662
664
  this.settingsLoaded = false;
665
+ this.showHD = false;
663
666
  this._subs = [];
664
667
  this._subs.push(
665
668
  // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),
@@ -715,8 +718,12 @@ IoneProductComponent.decorators = [
715
718
  <app-product-page *ngIf="settingsLoaded"
716
719
  [createFrozenArticle]="handleAddArticleInternally"
717
720
  [isReturn]="isReturn"
718
- (openStockEvent)="openStock()" [sku]="sku"
721
+ (openStockEvent)="openStock()"
722
+ [sku]="sku"
723
+ [showRelatedProductsPopup]="showRelatedProductsPopup"
719
724
  ></app-product-page>
725
+ <!-- <co-button [label]="'click'" (click)="showHD = !showHD"></co-button>
726
+ <co-product-hd [sku]="'657946ca-e1e1-41fd-7ae0-08dbf7df0cef'" *ngIf="showHD"></co-product-hd>-->
720
727
  `,
721
728
  encapsulation: ViewEncapsulation.Emulated,
722
729
  styles: [""]
@@ -733,6 +740,7 @@ IoneProductComponent.ctorParameters = () => [
733
740
  IoneProductComponent.propDecorators = {
734
741
  sku: [{ type: Input }],
735
742
  isReturn: [{ type: Input }],
743
+ showRelatedProductsPopup: [{ type: Input }],
736
744
  settings: [{ type: Input }],
737
745
  handleAddArticleInternally: [{ type: Input }],
738
746
  onAddToCart: [{ type: Output }],
@@ -764,15 +772,18 @@ var SelectorType;
764
772
  var IconEnum;
765
773
  (function (IconEnum) {
766
774
  IconEnum["AddToCartDrop"] = "add_to_cart_drop";
775
+ IconEnum["CrossSkinny"] = "cross_skinny";
767
776
  IconEnum["DeliveryTruck"] = "delivery_truck";
768
777
  IconEnum["Download"] = "download";
769
778
  IconEnum["FullScreen"] = "full_screen";
779
+ IconEnum["LinkSimpleRegular"] = "link_simple_regular";
770
780
  IconEnum["Location"] = "location";
771
781
  IconEnum["Logo"] = "logo";
772
782
  IconEnum["MagicWand"] = "magic_wand";
773
783
  IconEnum["NormalScreen"] = "normal_screen";
774
784
  IconEnum["Quote"] = "quote";
775
785
  IconEnum["Refresh"] = "refresh";
786
+ IconEnum["SaveSkinny"] = "save_skinny";
776
787
  IconEnum["ThreeD"] = "three_d";
777
788
  IconEnum["Truck"] = "truck";
778
789
  IconEnum["TwoD"] = "two_d";
@@ -782,15 +793,18 @@ var IconEnum;
782
793
  /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
783
794
  const IconSvg = {
784
795
  "add_to_cart_drop": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\" fill=\"#484f60\"/><path d=\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\" fill=\"#484f60\"/><path d=\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\" fill=\"#484f60\"/><path d=\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\" fill=\"#484f60\"/><polygon points=\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\" fill=\"#484f60\"/></svg>",
796
+ "cross_skinny": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\"><g ><polygon points=\"25.35 5.52 24.65 4.81 15 14.46 5.35 4.81 4.65 5.52 14.29 15.17 4.65 24.81 5.35 25.52 15 15.87 24.65 25.52 25.35 24.81 15.71 15.17 25.35 5.52\" fill=\"#484f60\"/></g></svg>",
785
797
  "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\" fill=\"#484f60\"/><path d=\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\" fill=\"#484f60\"/><path d=\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\" fill=\"#484f60\"/></svg>",
786
798
  "download": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"download.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"6.675088\" inkscape:cx=\"-14.056273\" inkscape:cy=\"29.806579\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
787
799
  "full_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\" fill=\"#484f60\"/></svg>",
800
+ "link_simple_regular": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M0 256C0 167.6 71.6 96 160 96l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C98.1 144 48 194.1 48 256s50.1 112 112 112l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c88.4 0 160 71.6 160 160zM184 232l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"/></svg>",
788
801
  "location": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\" fill=\"#484f60\"/></svg>",
789
802
  "logo": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"21.19\" width=\"2.04\" height=\"6.32\" fill=\"#484f60\"/><path d=\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\" fill=\"#484f60\"/><polygon points=\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\" fill=\"#484f60\"/><polygon points=\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\" fill=\"#484f60\"/></svg>",
790
803
  "magic_wand": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><title>magic_wand</title><g style=\"isolation:isolate\"><path d=\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\" fill=\"#484f60\"/></g><path d=\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\" fill=\"#484f60\"/><path d=\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\" fill=\"#484f60\"/></g><path d=\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\" fill=\"#484f60\"/><g style=\"mix-blend-mode:lighten\"><path d=\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\" fill=\"#484f60\"/></g></g></svg>",
791
804
  "normal_screen": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\" fill=\"#484f60\"/><polygon points=\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\" fill=\"#484f60\"/><polygon points=\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\" fill=\"#484f60\"/></svg>",
792
805
  "quote": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\" fill=\"#484f60\"/><path d=\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"18.5\" width=\"6\" height=\"4\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"21.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"25.5\" y=\"18.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"25.5\" width=\"6\" height=\"4\" transform=\"translate(59 55) rotate(-180)\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"28.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"25.5\" width=\"7\" height=\"1\" fill=\"#484f60\"/><rect x=\"17.5\" y=\"14.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/><rect x=\"26.5\" y=\"34.5\" width=\"6\" height=\"1\" fill=\"#484f60\"/></svg>",
793
806
  "refresh": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"refresh.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"13.990693\" inkscape:cy=\"13.961336\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg6\" /><g transform=\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\" /></g></g><path inkscape:connector-curvature=\"0\" d=\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\" style=\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\" /></svg>",
807
+ "save_skinny": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 51 51\"><polygon points=\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\" fill=\"#fff\"/></svg>",
794
808
  "three_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\" fill=\"#484f60\" opacity=\"0.5\"/><path d=\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\" fill=\"#484f60\"/><path d=\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\" fill=\"#484f60\"/></svg>",
795
809
  "truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" version=\"1.1\" sodipodi:docname=\"truck.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1\" objecttolerance=\"10\" gridtolerance=\"10\" guidetolerance=\"10\" inkscape:pageopacity=\"0\" inkscape:pageshadow=\"2\" inkscape:window-width=\"1920\" inkscape:window-height=\"1017\" showgr inkscape:zoom=\"9.44\" inkscape:cx=\"31.555563\" inkscape:cy=\"21.585628\" inkscape:window-x=\"-8\" inkscape:window-y=\"-8\" inkscape:window-maximized=\"1\" inkscape:current-layer=\"svg8\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><path inkscape:connector-curvature=\"0\" d=\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"8.533\" y=\"345.60001\" width=\"51.200001\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"179.2\" y=\"345.60001\" width=\"145.067\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"469.33301\" y=\"345.60001\" width=\"34.132999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"34.132999\" y=\"140.8\" width=\"298.66699\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"110.933\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\"><g style=\"fill:#484f60;fill-opacity:1\"><rect x=\"401.06699\" y=\"379.733\" width=\"17.066999\" height=\"17.066999\" style=\"fill:#484f60;fill-opacity:1\" /></g></g><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /><g transform=\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\" style=\"fill:#484f60;fill-opacity:1\" /></svg>",
796
810
  "two_d": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\" fill=\"#484f60\"/><path d=\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\" fill=\"#484f60\"/></svg>",
@@ -843,6 +857,7 @@ class ProductPageComponent {
843
857
  this.icon = IconEnum;
844
858
  this.createFrozenArticle = true;
845
859
  this.isReturn = false;
860
+ this.showRelatedProductsPopup = false;
846
861
  this.openStockEvent = new EventEmitter();
847
862
  this.configurable = false;
848
863
  this.threeD = false;
@@ -975,16 +990,20 @@ class ProductPageComponent {
975
990
  });
976
991
  }
977
992
  }));
993
+ this.showRelatedProductsPopup = false;
978
994
  });
979
995
  }
980
996
  openStock() {
981
997
  this.openStockEvent.emit();
982
998
  }
999
+ handlePopUpChange(event) {
1000
+ this.showRelatedProductsPopup = event;
1001
+ }
983
1002
  }
984
1003
  ProductPageComponent.decorators = [
985
1004
  { type: Component, args: [{
986
1005
  selector: 'app-product-page',
987
- template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
1006
+ template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n<!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n<!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
988
1007
  animations: [
989
1008
  trigger('toggleFullScreen', [
990
1009
  state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
@@ -1037,6 +1056,7 @@ ProductPageComponent.propDecorators = {
1037
1056
  externalSource: [{ type: Input }],
1038
1057
  createFrozenArticle: [{ type: Input }],
1039
1058
  isReturn: [{ type: Input }],
1059
+ showRelatedProductsPopup: [{ type: Input }],
1040
1060
  openStockEvent: [{ type: Output }]
1041
1061
  };
1042
1062
 
@@ -1580,6 +1600,7 @@ class ProductAddtocartComponent {
1580
1600
  this.startConfiguration = new EventEmitter();
1581
1601
  this.addToCartClick = new EventEmitter();
1582
1602
  this.addToQuoteClick = new EventEmitter();
1603
+ this.showRelatedPopup = new EventEmitter();
1583
1604
  this.showQuoteButton = false;
1584
1605
  this._quantity = 1;
1585
1606
  }
@@ -1703,7 +1724,8 @@ ProductAddtocartComponent.propDecorators = {
1703
1724
  quantity: [{ type: Input }],
1704
1725
  startConfiguration: [{ type: Output }],
1705
1726
  addToCartClick: [{ type: Output }],
1706
- addToQuoteClick: [{ type: Output }]
1727
+ addToQuoteClick: [{ type: Output }],
1728
+ showRelatedPopup: [{ type: Output }]
1707
1729
  };
1708
1730
 
1709
1731
  class ProductAddtocartModule {
@@ -1714,7 +1736,8 @@ ProductAddtocartModule.decorators = [
1714
1736
  CommonModule,
1715
1737
  NumberPickerModule,
1716
1738
  ButtonModule,
1717
- PipeModule
1739
+ PipeModule,
1740
+ LoaderModule$1
1718
1741
  ],
1719
1742
  declarations: [
1720
1743
  ProductAddtocartComponent
@@ -1761,10 +1784,12 @@ class ProductRelatedComponent {
1761
1784
  handleAddToCartClick(article) {
1762
1785
  return __awaiter(this, void 0, void 0, function* () {
1763
1786
  const quantity = 1;
1764
- const articleFull = yield this._productConnectorAdapterService.getArticleFullObject(article.goodId);
1787
+ const articleFull = yield this._productConnectorAdapterService.getArticleFullObject(article.goodId, true);
1765
1788
  if (articleFull) {
1766
1789
  if (this.createFrozenArticle) {
1767
- this._appEventService.onAddToCart.next({ article: yield this._getJSONFromArticleObject({ article: articleFull, quantity: quantity }), quantity: quantity });
1790
+ const article = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
1791
+ this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
1792
+ // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });
1768
1793
  }
1769
1794
  else {
1770
1795
  const article = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
@@ -1805,27 +1830,27 @@ ProductRelatedComponent.decorators = [
1805
1830
  { type: Component, args: [{
1806
1831
  selector: 'app-product-related',
1807
1832
  template: `
1808
- <div *ngIf="articles && articles.length > 0">
1809
- <app-header [label]="label" [amount]="articles?.length" *ngIf="label"></app-header>
1810
- <co-scroll-container>
1811
- <div class="article-wrapper" *ngFor="let article of articles">
1812
- <co-article-tile
1813
- [imageData]="article.image.documentBodyAsDataUri"
1814
- [description]="article.description"
1815
- [price]="article.price"
1816
- [level]="article.stockStatus"
1817
- [hasCartButton]="true"
1818
- [isSmallModus]="isSmallModus"
1819
- [hasConfigureButton]="article.goodType === 'B'"
1820
- (contentClick)="handleContentClick(article)"
1821
- (cartButtonClick)="handleAddToCartClick(article)"
1822
- (configureButtonClick)="handleConfigureButtonClick(article)"
1823
- (threeDButtonClick)="handleThreeDButtonClick(article)"
1824
- ></co-article-tile>
1833
+ <div *ngIf="articles && articles.length > 0">
1834
+ <app-header [label]="label" [amount]="articles?.length" *ngIf="label"></app-header>
1835
+ <co-scroll-container>
1836
+ <div class="article-wrapper" *ngFor="let article of articles">
1837
+ <co-article-tile
1838
+ [imageData]="article.image.documentBodyAsDataUri"
1839
+ [description]="article.description"
1840
+ [price]="article.price"
1841
+ [level]="article.stockStatus"
1842
+ [hasCartButton]="true"
1843
+ [isSmallModus]="isSmallModus"
1844
+ [hasConfigureButton]="article.goodType === 'B'"
1845
+ (contentClick)="handleContentClick(article)"
1846
+ (cartButtonClick)="handleAddToCartClick(article)"
1847
+ (configureButtonClick)="handleContentClick(article)"
1848
+ (threeDButtonClick)="handleThreeDButtonClick(article)"
1849
+ ></co-article-tile>
1850
+ </div>
1851
+ </co-scroll-container>
1825
1852
  </div>
1826
- </co-scroll-container>
1827
- </div>
1828
- `,
1853
+ `,
1829
1854
  styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;min-width:25%}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px 20px;display:flex;flex-direction:column;color:#171721;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;grid-gap:5px;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{max-width:189px;width:100%;height:100%;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden;grid-gap:10px;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3E7EFF;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"]
1830
1855
  },] }
1831
1856
  ];
@@ -2462,6 +2487,103 @@ ProductInfoTabsModule.decorators = [
2462
2487
  },] }
2463
2488
  ];
2464
2489
 
2490
+ class ProductDialogComponent {
2491
+ constructor(iconCache, _sanitizer, _productConnectorService, _productConnectorAdapterService, _appEventService) {
2492
+ this.iconCache = iconCache;
2493
+ this._sanitizer = _sanitizer;
2494
+ this._productConnectorService = _productConnectorService;
2495
+ this._productConnectorAdapterService = _productConnectorAdapterService;
2496
+ this._appEventService = _appEventService;
2497
+ this.icon = IconEnum;
2498
+ this.closeRelatedPopup = new EventEmitter();
2499
+ this.type = SelectorType;
2500
+ }
2501
+ showClass() {
2502
+ return true;
2503
+ }
2504
+ ngOnInit() {
2505
+ }
2506
+ closeCatalog() {
2507
+ // need to emit close
2508
+ this.closeRelatedPopup.emit(false);
2509
+ }
2510
+ }
2511
+ ProductDialogComponent.decorators = [
2512
+ { type: Component, args: [{
2513
+ selector: 'co-product-dialog',
2514
+ template: `
2515
+ <div class="product-dialog-wrap">
2516
+ <div class="product-dialog-container">
2517
+ <div class="container-header">
2518
+ <div class="header-info">
2519
+ <h3>
2520
+ <co-icon [iconData]="iconCache.getIcon(icon.LinkSimpleRegular)"
2521
+ (click)="closeCatalog()"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})
2522
+ </h3>
2523
+ </div>
2524
+ <div class="close-icon" (click)="closeCatalog()">
2525
+ <co-icon class="fullscreen-button"
2526
+ [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2527
+ (click)="closeCatalog()"></co-icon>
2528
+ </div>
2529
+ </div>
2530
+ <div class="related-product-container">
2531
+ <app-product-related
2532
+ class="no-padding"
2533
+ *ngIf="articles"
2534
+ [articles]="articles">
2535
+ </app-product-related>
2536
+ </div>
2537
+ <div class="close-button-container">
2538
+ <button class="ok-button" (click)="closeCatalog()">
2539
+ <co-icon [iconData]="iconCache.getIcon(icon.SaveSkinny)"
2540
+ (click)="closeCatalog()"></co-icon>
2541
+ </button>
2542
+ <button class="close-button" (click)="closeCatalog()">
2543
+ <co-icon [iconData]="iconCache.getIcon(icon.CrossSkinny)"
2544
+ (click)="closeCatalog()"></co-icon>
2545
+ </button>
2546
+ </div>
2547
+ </div>
2548
+ </div>
2549
+ `,
2550
+ styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"]
2551
+ },] }
2552
+ ];
2553
+ ProductDialogComponent.ctorParameters = () => [
2554
+ { type: IconCacheService },
2555
+ { type: DomSanitizer },
2556
+ { type: ProductConnectorService },
2557
+ { type: ProductConnectorAdapterService },
2558
+ { type: ProductEventService }
2559
+ ];
2560
+ ProductDialogComponent.propDecorators = {
2561
+ refType: [{ type: Input }],
2562
+ mainArticle: [{ type: Input }],
2563
+ articles: [{ type: Input }],
2564
+ closeRelatedPopup: [{ type: Output }],
2565
+ showClass: [{ type: HostBinding, args: ['class.co-product-dialog',] }]
2566
+ };
2567
+
2568
+ class ProductDialogModule {
2569
+ }
2570
+ ProductDialogModule.decorators = [
2571
+ { type: NgModule, args: [{
2572
+ imports: [
2573
+ CommonModule,
2574
+ PipeModule,
2575
+ ProductRelatedModule,
2576
+ IconModule
2577
+ ],
2578
+ declarations: [
2579
+ ProductDialogComponent
2580
+ ],
2581
+ exports: [
2582
+ ProductDialogComponent
2583
+ ]
2584
+ },] }
2585
+ ];
2586
+
2465
2587
  class ProductPageModule {
2466
2588
  }
2467
2589
  ProductPageModule.decorators = [
@@ -2479,7 +2601,9 @@ ProductPageModule.decorators = [
2479
2601
  ProductStockModule,
2480
2602
  ProductDeliveryModule,
2481
2603
  ProductInfoTabsModule,
2482
- PipeModule
2604
+ PipeModule,
2605
+ ProductDialogModule,
2606
+ LoaderModule$1
2483
2607
  ],
2484
2608
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
2485
2609
  declarations: [
@@ -2491,29 +2615,183 @@ ProductPageModule.decorators = [
2491
2615
  },] }
2492
2616
  ];
2493
2617
 
2494
- class IoneProductModule {
2618
+ class ProductScriptLoaderService {
2619
+ constructor(platformId) {
2620
+ this.platformId = platformId;
2621
+ this._scriptsOrLinksElements = [];
2622
+ }
2623
+ loadScript(url, renderer) {
2624
+ return new Promise((resolve, reject) => {
2625
+ if (!isPlatformBrowser(this.platformId)) {
2626
+ reject('Not in browser environment');
2627
+ return;
2628
+ }
2629
+ const existingScript = document.getElementById(url);
2630
+ if (existingScript) {
2631
+ resolve(); // Script already loaded
2632
+ return;
2633
+ }
2634
+ const script = renderer.createElement('script');
2635
+ script.id = url;
2636
+ script.src = url;
2637
+ script.type = 'text/javascript';
2638
+ script.async = true;
2639
+ script.onload = () => resolve();
2640
+ script.onerror = (error) => reject(`Error loading script: ${url}`);
2641
+ renderer.appendChild(document.head, script);
2642
+ this._scriptsOrLinksElements.push(script);
2643
+ });
2644
+ }
2645
+ unloadScripts(renderer) {
2646
+ for (let i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {
2647
+ renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);
2648
+ this._scriptsOrLinksElements.pop();
2649
+ }
2650
+ }
2651
+ addStyleSheet(url, renderer) {
2652
+ return new Promise((resolve, reject) => {
2653
+ if (!isPlatformBrowser(this.platformId)) {
2654
+ reject('Not in browser environment');
2655
+ return;
2656
+ }
2657
+ const existingStyleSheet = document.getElementById(url);
2658
+ if (existingStyleSheet) {
2659
+ resolve(); // Script already loaded
2660
+ return;
2661
+ }
2662
+ const link = renderer.createElement('link');
2663
+ link.id = url;
2664
+ link.href = url;
2665
+ link.rel = 'stylesheet';
2666
+ link.onload = () => resolve();
2667
+ link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);
2668
+ renderer.appendChild(document.head, link);
2669
+ this._scriptsOrLinksElements.push(link);
2670
+ });
2671
+ }
2495
2672
  }
2496
- IoneProductModule.decorators = [
2673
+ ProductScriptLoaderService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProductScriptLoaderService_Factory() { return new ProductScriptLoaderService(i0.ɵɵinject(i0.PLATFORM_ID)); }, token: ProductScriptLoaderService, providedIn: "root" });
2674
+ ProductScriptLoaderService.decorators = [
2675
+ { type: Injectable, args: [{
2676
+ providedIn: 'root'
2677
+ },] }
2678
+ ];
2679
+ ProductScriptLoaderService.ctorParameters = () => [
2680
+ { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
2681
+ ];
2682
+
2683
+ class ProductHdComponent {
2684
+ constructor(_scriptLoader, _renderer) {
2685
+ this._scriptLoader = _scriptLoader;
2686
+ this._renderer = _renderer;
2687
+ this.variant = '';
2688
+ this.configuratorFinished = new EventEmitter();
2689
+ this.configurationError = new EventEmitter();
2690
+ this.showClass = true;
2691
+ }
2692
+ set content(child) {
2693
+ this.hdeConfigurator = child;
2694
+ this._prepareAttributes();
2695
+ }
2696
+ set sku(value) {
2697
+ this._sku = value;
2698
+ this._prepareAttributes();
2699
+ }
2700
+ get sku() {
2701
+ return this._sku;
2702
+ }
2703
+ ngOnDestroy() {
2704
+ this._scriptLoader.unloadScripts(this._renderer);
2705
+ }
2706
+ handleConfigurationFinished(event) {
2707
+ if (event.detail.variant && typeof event.detail.variant === 'string') {
2708
+ this.configuratorFinished.emit(event.detail.variant);
2709
+ }
2710
+ else {
2711
+ this.configuratorFinished.emit(this.variant);
2712
+ }
2713
+ }
2714
+ handleError(event) {
2715
+ this.configurationError.emit(event.detail.status);
2716
+ }
2717
+ _prepareAttributes() {
2718
+ if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.token && (this.sku || this.variant)) {
2719
+ this.hdeConfigurator.nativeElement.setAttribute('bearerToken', this.token);
2720
+ if (this._sku) {
2721
+ this.hdeConfigurator.nativeElement.setAttribute('data-productId', this._sku);
2722
+ }
2723
+ if (this.variant) {
2724
+ this.hdeConfigurator.nativeElement.setAttribute('data-productVariantId', this.variant);
2725
+ }
2726
+ this._loadTheScripts();
2727
+ }
2728
+ }
2729
+ // load external scripts
2730
+ _loadTheScripts() {
2731
+ return __awaiter(this, void 0, void 0, function* () {
2732
+ const scripts = [
2733
+ // hard-coded for now, should come from the external source
2734
+ 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js',
2735
+ 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js',
2736
+ 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js'
2737
+ ];
2738
+ for (let i = 0; i < scripts.length; i++) {
2739
+ yield this._scriptLoader.loadScript(scripts[i], this._renderer).catch((error) => console.error(error));
2740
+ }
2741
+ yield this._scriptLoader.addStyleSheet('https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css', this._renderer);
2742
+ });
2743
+ }
2744
+ }
2745
+ ProductHdComponent.decorators = [
2746
+ { type: Component, args: [{
2747
+ selector: 'co-product-hd',
2748
+ template: `
2749
+ <hde-configurator #hdeConfigurator
2750
+ apiurl="https://bmsproductconfigurator-acceptance.azurewebsites.net/api/configurator/"
2751
+ productVariantCommandApiUrl="https://bmsproductvariantcommand-acceptance.azurewebsites.net/"
2752
+ productVariantQueryApiUrl="https://bmsproductvariantquery-acceptance.azurewebsites.net/"
2753
+ language="nl"
2754
+ localizationApiUrl="https://hde-cdn.azureedge.net/libs/BMS.DST.Localization/"
2755
+ localizationFileExtension=".json"
2756
+ (configurationFinished)="handleConfigurationFinished($event)"
2757
+ (configurationFailed)="handleError($event)"
2758
+ >
2759
+ <hde-progress-bar></hde-progress-bar>
2760
+ </hde-configurator>
2761
+ `,
2762
+ encapsulation: ViewEncapsulation.None
2763
+ },] }
2764
+ ];
2765
+ ProductHdComponent.ctorParameters = () => [
2766
+ { type: ProductScriptLoaderService },
2767
+ { type: Renderer2 }
2768
+ ];
2769
+ ProductHdComponent.propDecorators = {
2770
+ content: [{ type: ViewChild, args: ['hdeConfigurator', { read: ElementRef },] }],
2771
+ sku: [{ type: Input }],
2772
+ token: [{ type: Input }],
2773
+ variant: [{ type: Input }],
2774
+ configuratorFinished: [{ type: Output }],
2775
+ configurationError: [{ type: Output }],
2776
+ showClass: [{ type: HostBinding, args: ['class.co-product-hd',] }]
2777
+ };
2778
+
2779
+ class ProductHdModule {
2780
+ }
2781
+ ProductHdModule.decorators = [
2497
2782
  { type: NgModule, args: [{
2498
2783
  imports: [
2499
- // BrowserAnimationsModule,
2500
- CommonModule,
2501
- ProductPageModule
2784
+ CommonModule
2502
2785
  ],
2503
2786
  declarations: [
2504
- IoneProductComponent
2787
+ ProductHdComponent
2505
2788
  ],
2506
- exports: [
2507
- IoneProductComponent
2508
- ],
2509
- bootstrap: [
2510
- IoneProductComponent
2789
+ schemas: [
2790
+ CUSTOM_ELEMENTS_SCHEMA,
2791
+ NO_ERRORS_SCHEMA
2511
2792
  ],
2512
- providers: [
2513
- ProductSettingsService,
2514
- ProductConnectorService,
2515
- ProductEventService,
2516
- ProductConnectorAdapterService
2793
+ exports: [
2794
+ ProductHdComponent
2517
2795
  ]
2518
2796
  },] }
2519
2797
  ];
@@ -2526,9 +2804,14 @@ class ProductExternalSourceComponent {
2526
2804
  this.addToCart = new EventEmitter();
2527
2805
  this.addToQuote = new EventEmitter();
2528
2806
  this.alternativeClick = new EventEmitter();
2807
+ this.configuratorFinished = new EventEmitter();
2529
2808
  this.showProduct = false;
2809
+ this.showConfigurator = false;
2810
+ this.showSource = false;
2530
2811
  this.loaded = false;
2531
2812
  this.externalSettings = {};
2813
+ this.token = ""; //= "eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ";
2814
+ this.variant = "";
2532
2815
  this._subs = [];
2533
2816
  }
2534
2817
  set externalSource(value) {
@@ -2539,6 +2822,15 @@ class ProductExternalSourceComponent {
2539
2822
  get externalSource() {
2540
2823
  return this._externalSource;
2541
2824
  }
2825
+ set externalCatalogStartupInfo(value) {
2826
+ this._externalCatalogStartupInfo = value;
2827
+ this.externalSource = value.externalSource;
2828
+ this.loaded = false;
2829
+ this._prepareExternalSource();
2830
+ }
2831
+ get externalCatalogStartupInfo() {
2832
+ return this._externalCatalogStartupInfo;
2833
+ }
2542
2834
  showClass() {
2543
2835
  return true;
2544
2836
  }
@@ -2562,6 +2854,9 @@ class ProductExternalSourceComponent {
2562
2854
  ngOnDestroy() {
2563
2855
  this._subs.forEach(s => s.unsubscribe());
2564
2856
  }
2857
+ handleConfigurationFinished(variantString) {
2858
+ this.configuratorFinished.emit(variantString);
2859
+ }
2565
2860
  _prepareExternalSource() {
2566
2861
  return __awaiter(this, void 0, void 0, function* () {
2567
2862
  if (!this._externalSource) {
@@ -2570,30 +2865,66 @@ class ProductExternalSourceComponent {
2570
2865
  this.externalUrl = undefined;
2571
2866
  this.externalSettings = {};
2572
2867
  if (this.externalSource.type === 'CATF') {
2573
- // get bundle settings from external source
2574
- const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
2575
- this.externalSettings = JSON.parse(bundleSettings);
2576
- if (this.options) {
2577
- this.externalSettings.options = this.options;
2578
- }
2579
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
2580
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
2581
- if (this.externalSource.username && this.externalSource.password) {
2582
- this.externalSettings.useLoginEncryption = true;
2583
- this.externalSettings.username = this.externalSource.username;
2584
- this.externalSettings.password = this.externalSource.password;
2585
- }
2586
- // finally show the catalog
2587
- this.showProduct = true;
2868
+ yield this._prepareCatFarm();
2869
+ }
2870
+ else if (this.externalSource.type === 'HTDL') {
2871
+ this._prepareConfigurator();
2588
2872
  }
2589
2873
  else {
2590
- this.externalUrl = this.externalSource.url;
2591
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
2592
- this.showProduct = false;
2874
+ this._prepareSource();
2593
2875
  }
2876
+ });
2877
+ }
2878
+ _prepareCatFarm() {
2879
+ return __awaiter(this, void 0, void 0, function* () {
2880
+ // get bundle settings from external source
2881
+ const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
2882
+ this.externalSettings = JSON.parse(bundleSettings);
2883
+ if (this.options) {
2884
+ this.externalSettings.options = this.options;
2885
+ }
2886
+ // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
2887
+ // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
2888
+ if (this.externalSource.username && this.externalSource.password) {
2889
+ this.externalSettings.useLoginEncryption = true;
2890
+ this.externalSettings.username = this.externalSource.username;
2891
+ this.externalSettings.password = this.externalSource.password;
2892
+ }
2893
+ // finally show the catalog
2894
+ this.switchToProduct();
2594
2895
  this.loaded = true;
2595
2896
  });
2596
2897
  }
2898
+ _prepareConfigurator() {
2899
+ if (this.externalCatalogStartupInfo) {
2900
+ this.token = this.externalCatalogStartupInfo.token;
2901
+ this.sku = this.externalCatalogStartupInfo.externalGoodId;
2902
+ this.variant = this.externalCatalogStartupInfo.flattenedGoodId;
2903
+ this.switchToConfigurator();
2904
+ this.loaded = true;
2905
+ }
2906
+ }
2907
+ _prepareSource() {
2908
+ this.externalUrl = this.externalSource.url;
2909
+ this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
2910
+ this.switchToSource();
2911
+ this.loaded = true;
2912
+ }
2913
+ switchToProduct() {
2914
+ this.showProduct = true;
2915
+ this.showConfigurator = false;
2916
+ this.showSource = false;
2917
+ }
2918
+ switchToConfigurator() {
2919
+ this.showProduct = false;
2920
+ this.showConfigurator = true;
2921
+ this.showSource = false;
2922
+ }
2923
+ switchToSource() {
2924
+ this.showProduct = false;
2925
+ this.showConfigurator = false;
2926
+ this.showSource = true;
2927
+ }
2597
2928
  }
2598
2929
  ProductExternalSourceComponent.decorators = [
2599
2930
  { type: Component, args: [{
@@ -2607,9 +2938,16 @@ ProductExternalSourceComponent.decorators = [
2607
2938
  [externalSource]="externalSource"
2608
2939
  ></app-product-page>
2609
2940
  </ng-container>
2610
- <ng-container *ngIf="!showProduct">
2941
+ <ng-container *ngIf="showSource">
2611
2942
  <iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
2612
2943
  </ng-container>
2944
+ <ng-container *ngIf="showConfigurator">
2945
+ <co-product-hd width="100%" height="100%"
2946
+ [sku]="sku"
2947
+ [variant]="variant"
2948
+ [token]="token"
2949
+ (configuratorFinished)="handleConfigurationFinished($event)"></co-product-hd>
2950
+ </ng-container>
2613
2951
  </ng-container>
2614
2952
  `,
2615
2953
  providers: [
@@ -2629,10 +2967,12 @@ ProductExternalSourceComponent.propDecorators = {
2629
2967
  sku: [{ type: Input }],
2630
2968
  catalogDefinition: [{ type: Input }],
2631
2969
  externalSource: [{ type: Input }],
2970
+ externalCatalogStartupInfo: [{ type: Input }],
2632
2971
  options: [{ type: Input }],
2633
2972
  addToCart: [{ type: Output }],
2634
2973
  addToQuote: [{ type: Output }],
2635
2974
  alternativeClick: [{ type: Output }],
2975
+ configuratorFinished: [{ type: Output }],
2636
2976
  showClass: [{ type: HostBinding, args: ['class.co-product-external-source',] }]
2637
2977
  };
2638
2978
 
@@ -2642,7 +2982,8 @@ ProductExternalSourceModule.decorators = [
2642
2982
  { type: NgModule, args: [{
2643
2983
  imports: [
2644
2984
  CommonModule,
2645
- ProductPageModule
2985
+ ProductPageModule,
2986
+ ProductHdModule
2646
2987
  ],
2647
2988
  declarations: [
2648
2989
  ProductExternalSourceComponent
@@ -2653,9 +2994,43 @@ ProductExternalSourceModule.decorators = [
2653
2994
  },] }
2654
2995
  ];
2655
2996
 
2997
+ class IoneProductModule {
2998
+ }
2999
+ IoneProductModule.decorators = [
3000
+ { type: NgModule, args: [{
3001
+ imports: [
3002
+ //BrowserAnimationsModule,
3003
+ CommonModule,
3004
+ ProductPageModule,
3005
+ ProductHdModule,
3006
+ ProductExternalSourceModule,
3007
+ ButtonModule$1
3008
+ ],
3009
+ declarations: [
3010
+ IoneProductComponent
3011
+ ],
3012
+ exports: [
3013
+ IoneProductComponent
3014
+ ],
3015
+ schemas: [
3016
+ CUSTOM_ELEMENTS_SCHEMA,
3017
+ NO_ERRORS_SCHEMA
3018
+ ],
3019
+ bootstrap: [
3020
+ IoneProductComponent
3021
+ ],
3022
+ providers: [
3023
+ ProductSettingsService,
3024
+ ProductConnectorService,
3025
+ ProductEventService,
3026
+ ProductConnectorAdapterService
3027
+ ]
3028
+ },] }
3029
+ ];
3030
+
2656
3031
  /**
2657
3032
  * Generated bundle index. Do not edit.
2658
3033
  */
2659
3034
 
2660
- export { IoneProductComponent, IoneProductModule, ProductConnectorAdapterService, ProductConnectorService, ProductEventService, ProductExternalSourceComponent, ProductExternalSourceModule, ProductSettingsService, Version, ProductPageModule as ɵa, ProductSelectorTypeModule as ɵb, ProductInfoTabsModule as ɵba, ProductAdditionalInfoModule as ɵbb, ProductAdditionalInfoComponent as ɵbc, ProductPropertiesModule as ɵbd, ProductPropertiesComponent as ɵbe, ProductDocumentModule as ɵbf, ProductDocumentsComponent as ɵbg, ProductSymbolsModule as ɵbh, ProductSymbolsComponent as ɵbi, ProductInfoTabsComponent as ɵbj, ProductPageComponent as ɵbk, PipeModule as ɵc, LocalizePipe as ɵd, DictionaryService as ɵe, JsonUtilsService as ɵf, ProductSelectorTypeComponent as ɵg, IconCacheService as ɵh, ImageCarouselModule as ɵi, ImageCarouselComponent as ɵj, ProductDescriptionModule as ɵk, ProductDescriptionComponent as ɵl, ProductAdditionalDescriptionModule as ɵm, ProductAdditionalDescriptionComponent as ɵn, ProductPriceModule as ɵo, ProductPriceComponent as ɵp, ProductAddtocartModule as ɵq, ProductAddtocartComponent as ɵr, ProductRelatedModule as ɵs, HeaderModule as ɵt, HeaderComponent as ɵu, ProductRelatedComponent as ɵv, ProductStockModule as ɵw, ProductStockComponent as ɵx, ProductDeliveryModule as ɵy, ProductDeliveryComponent as ɵz };
3035
+ export { IoneProductComponent, IoneProductModule, ProductConnectorAdapterService, ProductConnectorService, ProductEventService, ProductExternalSourceComponent, ProductExternalSourceModule, ProductSettingsService, Version, ProductPageModule as ɵa, ProductSelectorTypeModule as ɵb, ProductInfoTabsModule as ɵba, ProductAdditionalInfoModule as ɵbb, ProductAdditionalInfoComponent as ɵbc, ProductPropertiesModule as ɵbd, ProductPropertiesComponent as ɵbe, ProductDocumentModule as ɵbf, ProductDocumentsComponent as ɵbg, ProductSymbolsModule as ɵbh, ProductSymbolsComponent as ɵbi, ProductInfoTabsComponent as ɵbj, ProductDialogModule as ɵbk, ProductDialogComponent as ɵbl, ProductPageComponent as ɵbm, ProductHdModule as ɵbn, ProductHdComponent as ɵbo, ProductScriptLoaderService as ɵbp, PipeModule as ɵc, LocalizePipe as ɵd, DictionaryService as ɵe, JsonUtilsService as ɵf, ProductSelectorTypeComponent as ɵg, IconCacheService as ɵh, ImageCarouselModule as ɵi, ImageCarouselComponent as ɵj, ProductDescriptionModule as ɵk, ProductDescriptionComponent as ɵl, ProductAdditionalDescriptionModule as ɵm, ProductAdditionalDescriptionComponent as ɵn, ProductPriceModule as ɵo, ProductPriceComponent as ɵp, ProductAddtocartModule as ɵq, ProductAddtocartComponent as ɵr, ProductRelatedModule as ɵs, HeaderModule as ɵt, HeaderComponent as ɵu, ProductRelatedComponent as ɵv, ProductStockModule as ɵw, ProductStockComponent as ɵx, ProductDeliveryModule as ɵy, ProductDeliveryComponent as ɵz };
2661
3036
  //# sourceMappingURL=colijnit-product.js.map