@colijnit/product 257.1.0 → 257.1.2

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.
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export class ProductScriptLoaderService {
5
5
  constructor(platformId) {
6
6
  this.platformId = platformId;
7
+ this._scriptsOrLinksElements = [];
7
8
  }
8
9
  loadScript(url, renderer) {
9
10
  return new Promise((resolve, reject) => {
@@ -24,8 +25,15 @@ export class ProductScriptLoaderService {
24
25
  script.onload = () => resolve();
25
26
  script.onerror = (error) => reject(`Error loading script: ${url}`);
26
27
  renderer.appendChild(document.head, script);
28
+ this._scriptsOrLinksElements.push(script);
27
29
  });
28
30
  }
31
+ unloadScripts(renderer) {
32
+ for (let i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {
33
+ renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);
34
+ this._scriptsOrLinksElements.pop();
35
+ }
36
+ }
29
37
  addStyleSheet(url, renderer) {
30
38
  return new Promise((resolve, reject) => {
31
39
  if (!isPlatformBrowser(this.platformId)) {
@@ -44,6 +52,7 @@ export class ProductScriptLoaderService {
44
52
  link.onload = () => resolve();
45
53
  link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);
46
54
  renderer.appendChild(document.head, link);
55
+ this._scriptsOrLinksElements.push(link);
47
56
  });
48
57
  }
49
58
  }
@@ -56,4 +65,4 @@ ProductScriptLoaderService.decorators = [
56
65
  ProductScriptLoaderService.ctorParameters = () => [
57
66
  { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
58
67
  ];
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zY3JpcHQtbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NlcnZpY2UvcHJvZHVjdC1zY3JpcHQtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQUtsRCxNQUFNLE9BQU8sMEJBQTBCO0lBRW5DLFlBRVksVUFBZTtRQUFmLGVBQVUsR0FBVixVQUFVLENBQUs7SUFHM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXLEVBQUUsUUFBbUI7UUFDOUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDckMsT0FBTzthQUNWO1lBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLGNBQWMsRUFBRTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7Z0JBQ25DLE9BQU87YUFDVjtZQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDaEIsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDakIsTUFBTSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztZQUNoQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVwQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVuRSxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQVcsRUFBRSxRQUFtQjtRQUNqRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPO2FBQ1Y7WUFFRCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEQsSUFBSSxrQkFBa0IsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7Z0JBQ25DLE9BQU87YUFDVjtZQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUV4QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVyRSxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7O1lBN0RKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OzRDQUlRLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2NyaXB0TG9hZGVyU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRClcclxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxyXG4gICAgKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2FkU2NyaXB0KHVybDogc3RyaW5nLCByZW5kZXJlcjogUmVuZGVyZXIyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoJ05vdCBpbiBicm93c2VyIGVudmlyb25tZW50Jyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodXJsKTtcclxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nU2NyaXB0KSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7IC8vIFNjcmlwdCBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICAgICAgc2NyaXB0LmlkID0gdXJsO1xyXG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gdXJsO1xyXG4gICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG4gICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTtcclxuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChgRXJyb3IgbG9hZGluZyBzY3JpcHQ6ICR7dXJsfWApO1xyXG5cclxuICAgICAgICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuaGVhZCwgc2NyaXB0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkU3R5bGVTaGVldCh1cmw6IHN0cmluZywgcmVuZGVyZXI6IFJlbmRlcmVyMik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KCdOb3QgaW4gYnJvd3NlciBlbnZpcm9ubWVudCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ1N0eWxlU2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1cmwpO1xyXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZVNoZWV0KSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7IC8vIFNjcmlwdCBhbHJlYWR5IGxvYWRlZFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICAgICAgICBsaW5rLmlkID0gdXJsO1xyXG4gICAgICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG5cclxuICAgICAgICAgICAgbGluay5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIGxpbmsub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGBFcnJvciBsb2FkaW5nIHN0eWxlU2hlZXQ6ICR7dXJsfWApO1xyXG5cclxuICAgICAgICAgICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuaGVhZCwgbGluayk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zY3JpcHQtbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL3NlcnZpY2UvcHJvZHVjdC1zY3JpcHQtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQUtsRCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBRVUsVUFBZTtRQUFmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFKakIsNEJBQXVCLEdBQVUsRUFBRSxDQUFDO0lBTzVDLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVyxFQUFFLFFBQW1CO1FBQ2hELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQ3JDLE9BQU87YUFDUjtZQUVELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsd0JBQXdCO2dCQUNuQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWhELE1BQU0sQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFFcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFFbkUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLFFBQW1CO1FBQ3RDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRSxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxHQUFXLEVBQUUsUUFBbUI7UUFDbkQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDckMsT0FBTzthQUNSO1lBRUQsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELElBQUksa0JBQWtCLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDLENBQUMsd0JBQXdCO2dCQUNuQyxPQUFPO2FBQ1I7WUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7WUFFeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFFckUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7O1lBekVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQU1JLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNjcmlwdExvYWRlclNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9zY3JpcHRzT3JMaW5rc0VsZW1lbnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpXHJcbiAgICBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkU2NyaXB0KHVybDogc3RyaW5nLCByZW5kZXJlcjogUmVuZGVyZXIyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICByZWplY3QoJ05vdCBpbiBicm93c2VyIGVudmlyb25tZW50Jyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBleGlzdGluZ1NjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHVybCk7XHJcbiAgICAgIGlmIChleGlzdGluZ1NjcmlwdCkge1xyXG4gICAgICAgIHJlc29sdmUoKTsgLy8gU2NyaXB0IGFscmVhZHkgbG9hZGVkXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBzY3JpcHQgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuXHJcbiAgICAgIHNjcmlwdC5pZCA9IHVybDtcclxuICAgICAgc2NyaXB0LnNyYyA9IHVybDtcclxuICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcclxuXHJcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XHJcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoYEVycm9yIGxvYWRpbmcgc2NyaXB0OiAke3VybH1gKTtcclxuXHJcbiAgICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHNjcmlwdCk7XHJcbiAgICAgIHRoaXMuX3NjcmlwdHNPckxpbmtzRWxlbWVudHMucHVzaChzY3JpcHQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW5sb2FkU2NyaXB0cyhyZW5kZXJlcjogUmVuZGVyZXIyKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gdGhpcy5fc2NyaXB0c09yTGlua3NFbGVtZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICByZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5oZWFkLCB0aGlzLl9zY3JpcHRzT3JMaW5rc0VsZW1lbnRzW2ldKTtcclxuICAgICAgdGhpcy5fc2NyaXB0c09yTGlua3NFbGVtZW50cy5wb3AoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRTdHlsZVNoZWV0KHVybDogc3RyaW5nLCByZW5kZXJlcjogUmVuZGVyZXIyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgICByZWplY3QoJ05vdCBpbiBicm93c2VyIGVudmlyb25tZW50Jyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBleGlzdGluZ1N0eWxlU2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh1cmwpO1xyXG4gICAgICBpZiAoZXhpc3RpbmdTdHlsZVNoZWV0KSB7XHJcbiAgICAgICAgcmVzb2x2ZSgpOyAvLyBTY3JpcHQgYWxyZWFkeSBsb2FkZWRcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGxpbmsgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgIGxpbmsuaWQgPSB1cmw7XHJcbiAgICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XHJcblxyXG4gICAgICBsaW5rLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTtcclxuICAgICAgbGluay5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoYEVycm9yIGxvYWRpbmcgc3R5bGVTaGVldDogJHt1cmx9YCk7XHJcblxyXG4gICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBsaW5rKTtcclxuICAgICAgdGhpcy5fc2NyaXB0c09yTGlua3NFbGVtZW50cy5wdXNoKGxpbmspO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -23,15 +23,15 @@ 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 { LoaderModule as LoaderModule$1, 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 = "257.1.0";
34
- this.publishDate = "1/14/2025, 12:10:32 PM";
33
+ this.symVer = "257.1.2";
34
+ this.publishDate = "22-1-2025 21:39:03";
35
35
  }
36
36
  }
37
37
 
@@ -662,6 +662,7 @@ class IoneProductComponent {
662
662
  this.onAddToQuote = new EventEmitter();
663
663
  this.openStockEvent = new EventEmitter();
664
664
  this.settingsLoaded = false;
665
+ this.showHD = false;
665
666
  this._subs = [];
666
667
  this._subs.push(
667
668
  // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),
@@ -721,9 +722,8 @@ IoneProductComponent.decorators = [
721
722
  [sku]="sku"
722
723
  [showRelatedProductsPopup]="showRelatedProductsPopup"
723
724
  ></app-product-page>
724
- <!--
725
- <co-product-hd [sku]="'8f108aa9-f6cb-4d86-7826-08d87757dac1'"></co-product-hd>
726
- -->
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>-->
727
727
  `,
728
728
  encapsulation: ViewEncapsulation.Emulated,
729
729
  styles: [""]
@@ -2618,6 +2618,7 @@ ProductPageModule.decorators = [
2618
2618
  class ProductScriptLoaderService {
2619
2619
  constructor(platformId) {
2620
2620
  this.platformId = platformId;
2621
+ this._scriptsOrLinksElements = [];
2621
2622
  }
2622
2623
  loadScript(url, renderer) {
2623
2624
  return new Promise((resolve, reject) => {
@@ -2638,8 +2639,15 @@ class ProductScriptLoaderService {
2638
2639
  script.onload = () => resolve();
2639
2640
  script.onerror = (error) => reject(`Error loading script: ${url}`);
2640
2641
  renderer.appendChild(document.head, script);
2642
+ this._scriptsOrLinksElements.push(script);
2641
2643
  });
2642
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
+ }
2643
2651
  addStyleSheet(url, renderer) {
2644
2652
  return new Promise((resolve, reject) => {
2645
2653
  if (!isPlatformBrowser(this.platformId)) {
@@ -2658,6 +2666,7 @@ class ProductScriptLoaderService {
2658
2666
  link.onload = () => resolve();
2659
2667
  link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);
2660
2668
  renderer.appendChild(document.head, link);
2669
+ this._scriptsOrLinksElements.push(link);
2661
2670
  });
2662
2671
  }
2663
2672
  }
@@ -2675,9 +2684,10 @@ class ProductHdComponent {
2675
2684
  constructor(_scriptLoader, _renderer) {
2676
2685
  this._scriptLoader = _scriptLoader;
2677
2686
  this._renderer = _renderer;
2687
+ this.variant = '';
2688
+ this.configuratorFinished = new EventEmitter();
2689
+ this.configurationError = new EventEmitter();
2678
2690
  this.showClass = true;
2679
- this.token = "eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ";
2680
- this.variant = "";
2681
2691
  }
2682
2692
  set content(child) {
2683
2693
  this.hdeConfigurator = child;
@@ -2690,11 +2700,19 @@ class ProductHdComponent {
2690
2700
  get sku() {
2691
2701
  return this._sku;
2692
2702
  }
2703
+ ngOnDestroy() {
2704
+ this._scriptLoader.unloadScripts(this._renderer);
2705
+ }
2693
2706
  handleConfigurationFinished(event) {
2694
- console.log(event.detail);
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
+ }
2695
2713
  }
2696
2714
  handleError(event) {
2697
- console.error(event.detail);
2715
+ this.configurationError.emit(event.detail.status);
2698
2716
  }
2699
2717
  _prepareAttributes() {
2700
2718
  if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.token && (this.sku || this.variant)) {
@@ -2720,7 +2738,7 @@ class ProductHdComponent {
2720
2738
  for (let i = 0; i < scripts.length; i++) {
2721
2739
  yield this._scriptLoader.loadScript(scripts[i], this._renderer).catch((error) => console.error(error));
2722
2740
  }
2723
- yield this._scriptLoader.addStyleSheet("https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css", this._renderer);
2741
+ yield this._scriptLoader.addStyleSheet('https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css', this._renderer);
2724
2742
  });
2725
2743
  }
2726
2744
  }
@@ -2728,19 +2746,19 @@ ProductHdComponent.decorators = [
2728
2746
  { type: Component, args: [{
2729
2747
  selector: 'co-product-hd',
2730
2748
  template: `
2731
- <hde-configurator #hdeConfigurator
2732
- apiurl="https://bmsproductconfigurator-acceptance.azurewebsites.net/api/configurator/"
2733
- productVariantCommandApiUrl="https://bmsproductvariantcommand-acceptance.azurewebsites.net/"
2734
- productVariantQueryApiUrl="https://bmsproductvariantquery-acceptance.azurewebsites.net/"
2735
- language="nl"
2736
- localizationApiUrl="https://hde-cdn.azureedge.net/libs/BMS.DST.Localization/"
2737
- localizationFileExtension=".json"
2738
- (configurationFinished)="handleConfigurationFinished($event)"
2739
- (configurationFailed)="handleError($event)"
2740
- >
2741
- <hde-progress-bar></hde-progress-bar>
2742
- </hde-configurator>
2743
- `,
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
+ `,
2744
2762
  encapsulation: ViewEncapsulation.None
2745
2763
  },] }
2746
2764
  ];
@@ -2751,6 +2769,10 @@ ProductHdComponent.ctorParameters = () => [
2751
2769
  ProductHdComponent.propDecorators = {
2752
2770
  content: [{ type: ViewChild, args: ['hdeConfigurator', { read: ElementRef },] }],
2753
2771
  sku: [{ type: Input }],
2772
+ token: [{ type: Input }],
2773
+ variant: [{ type: Input }],
2774
+ configuratorFinished: [{ type: Output }],
2775
+ configurationError: [{ type: Output }],
2754
2776
  showClass: [{ type: HostBinding, args: ['class.co-product-hd',] }]
2755
2777
  };
2756
2778
 
@@ -2774,38 +2796,6 @@ ProductHdModule.decorators = [
2774
2796
  },] }
2775
2797
  ];
2776
2798
 
2777
- class IoneProductModule {
2778
- }
2779
- IoneProductModule.decorators = [
2780
- { type: NgModule, args: [{
2781
- imports: [
2782
- // BrowserAnimationsModule,
2783
- CommonModule,
2784
- ProductPageModule,
2785
- ProductHdModule
2786
- ],
2787
- declarations: [
2788
- IoneProductComponent
2789
- ],
2790
- exports: [
2791
- IoneProductComponent
2792
- ],
2793
- schemas: [
2794
- CUSTOM_ELEMENTS_SCHEMA,
2795
- NO_ERRORS_SCHEMA
2796
- ],
2797
- bootstrap: [
2798
- IoneProductComponent
2799
- ],
2800
- providers: [
2801
- ProductSettingsService,
2802
- ProductConnectorService,
2803
- ProductEventService,
2804
- ProductConnectorAdapterService
2805
- ]
2806
- },] }
2807
- ];
2808
-
2809
2799
  class ProductExternalSourceComponent {
2810
2800
  constructor(_sanitizer, _productConnectorService, _appEventService) {
2811
2801
  this._sanitizer = _sanitizer;
@@ -2814,9 +2804,14 @@ class ProductExternalSourceComponent {
2814
2804
  this.addToCart = new EventEmitter();
2815
2805
  this.addToQuote = new EventEmitter();
2816
2806
  this.alternativeClick = new EventEmitter();
2807
+ this.configuratorFinished = new EventEmitter();
2817
2808
  this.showProduct = false;
2809
+ this.showConfigurator = false;
2810
+ this.showSource = false;
2818
2811
  this.loaded = false;
2819
2812
  this.externalSettings = {};
2813
+ this.token = ""; //= "eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ";
2814
+ this.variant = "";
2820
2815
  this._subs = [];
2821
2816
  }
2822
2817
  set externalSource(value) {
@@ -2827,6 +2822,15 @@ class ProductExternalSourceComponent {
2827
2822
  get externalSource() {
2828
2823
  return this._externalSource;
2829
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
+ }
2830
2834
  showClass() {
2831
2835
  return true;
2832
2836
  }
@@ -2850,6 +2854,9 @@ class ProductExternalSourceComponent {
2850
2854
  ngOnDestroy() {
2851
2855
  this._subs.forEach(s => s.unsubscribe());
2852
2856
  }
2857
+ handleConfigurationFinished(variantString) {
2858
+ this.configuratorFinished.emit(variantString);
2859
+ }
2853
2860
  _prepareExternalSource() {
2854
2861
  return __awaiter(this, void 0, void 0, function* () {
2855
2862
  if (!this._externalSource) {
@@ -2858,30 +2865,66 @@ class ProductExternalSourceComponent {
2858
2865
  this.externalUrl = undefined;
2859
2866
  this.externalSettings = {};
2860
2867
  if (this.externalSource.type === 'CATF') {
2861
- // get bundle settings from external source
2862
- const bundleSettings = yield this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));
2863
- this.externalSettings = JSON.parse(bundleSettings);
2864
- if (this.options) {
2865
- this.externalSettings.options = this.options;
2866
- }
2867
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
2868
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
2869
- if (this.externalSource.username && this.externalSource.password) {
2870
- this.externalSettings.useLoginEncryption = true;
2871
- this.externalSettings.username = this.externalSource.username;
2872
- this.externalSettings.password = this.externalSource.password;
2873
- }
2874
- // finally show the catalog
2875
- this.showProduct = true;
2868
+ yield this._prepareCatFarm();
2869
+ }
2870
+ else if (this.externalSource.type === 'HTDL') {
2871
+ this._prepareConfigurator();
2876
2872
  }
2877
2873
  else {
2878
- this.externalUrl = this.externalSource.url;
2879
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
2880
- this.showProduct = false;
2874
+ this._prepareSource();
2881
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();
2882
2895
  this.loaded = true;
2883
2896
  });
2884
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
+ }
2885
2928
  }
2886
2929
  ProductExternalSourceComponent.decorators = [
2887
2930
  { type: Component, args: [{
@@ -2895,9 +2938,16 @@ ProductExternalSourceComponent.decorators = [
2895
2938
  [externalSource]="externalSource"
2896
2939
  ></app-product-page>
2897
2940
  </ng-container>
2898
- <ng-container *ngIf="!showProduct">
2941
+ <ng-container *ngIf="showSource">
2899
2942
  <iframe width="100%" height="100%" [src]="safeUrl" frameborder="0" allowfullscreen></iframe>
2900
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>
2901
2951
  </ng-container>
2902
2952
  `,
2903
2953
  providers: [
@@ -2917,10 +2967,12 @@ ProductExternalSourceComponent.propDecorators = {
2917
2967
  sku: [{ type: Input }],
2918
2968
  catalogDefinition: [{ type: Input }],
2919
2969
  externalSource: [{ type: Input }],
2970
+ externalCatalogStartupInfo: [{ type: Input }],
2920
2971
  options: [{ type: Input }],
2921
2972
  addToCart: [{ type: Output }],
2922
2973
  addToQuote: [{ type: Output }],
2923
2974
  alternativeClick: [{ type: Output }],
2975
+ configuratorFinished: [{ type: Output }],
2924
2976
  showClass: [{ type: HostBinding, args: ['class.co-product-external-source',] }]
2925
2977
  };
2926
2978
 
@@ -2930,7 +2982,8 @@ ProductExternalSourceModule.decorators = [
2930
2982
  { type: NgModule, args: [{
2931
2983
  imports: [
2932
2984
  CommonModule,
2933
- ProductPageModule
2985
+ ProductPageModule,
2986
+ ProductHdModule
2934
2987
  ],
2935
2988
  declarations: [
2936
2989
  ProductExternalSourceComponent
@@ -2941,6 +2994,40 @@ ProductExternalSourceModule.decorators = [
2941
2994
  },] }
2942
2995
  ];
2943
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
+
2944
3031
  /**
2945
3032
  * Generated bundle index. Do not edit.
2946
3033
  */