@colijnit/product 12.0.6 → 12.0.8
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.
- package/app/components/core/header/header.component.d.ts +7 -7
- package/app/components/core/header/header.module.d.ts +2 -2
- package/app/components/image-carousel/image-carousel.component.d.ts +39 -39
- package/app/components/image-carousel/image-carousel.module.d.ts +2 -2
- package/app/components/product-additional-description/product-additional-description.component.d.ts +14 -14
- package/app/components/product-additional-description/product-additional-description.module.d.ts +2 -2
- package/app/components/product-additional-info/product-additional-info.component.d.ts +21 -21
- package/app/components/product-additional-info/product-additional-info.module.d.ts +2 -2
- package/app/components/product-addtocart/product-addtocart.component.d.ts +33 -33
- package/app/components/product-addtocart/product-addtocart.module.d.ts +2 -2
- package/app/components/product-delivery/product-delivery.component.d.ts +18 -18
- package/app/components/product-delivery/product-delivery.module.d.ts +2 -2
- package/app/components/product-description/product-description.component.d.ts +7 -7
- package/app/components/product-description/product-description.module.d.ts +2 -2
- package/app/components/product-documents/product-document.module.d.ts +2 -2
- package/app/components/product-documents/product-documents.component.d.ts +10 -10
- package/app/components/product-external-source/product-external-source.component.d.ts +34 -34
- package/app/components/product-external-source/product-external-source.module.d.ts +2 -2
- package/app/components/product-info-tabs/product-info-tabs.component.d.ts +18 -18
- package/app/components/product-info-tabs/product-info-tabs.module.d.ts +2 -2
- package/app/components/product-page/product-page.component.d.ts +58 -58
- package/app/components/product-page/product-page.module.d.ts +2 -2
- package/app/components/product-price/product-price.component.d.ts +19 -19
- package/app/components/product-price/product-price.module.d.ts +2 -2
- package/app/components/product-properties/product-properties.component.d.ts +16 -16
- package/app/components/product-properties/product-properties.module.d.ts +2 -2
- package/app/components/product-related/product-related.component.d.ts +16 -16
- package/app/components/product-related/product-related.module.d.ts +2 -2
- package/app/components/product-selector-type/product-selector-type.component.d.ts +21 -21
- package/app/components/product-selector-type/product-selector-type.module.d.ts +2 -2
- package/app/components/product-stock/product-stock.component.d.ts +20 -20
- package/app/components/product-stock/product-stock.module.d.ts +2 -2
- package/app/components/product-symbols/product-symbols.component.d.ts +10 -10
- package/app/components/product-symbols/product-symbols.module.d.ts +2 -2
- package/app/enum/icon.enum.d.ts +17 -17
- package/app/enum/language-code.enum.d.ts +6 -6
- package/app/enum/selector-type.enum.d.ts +5 -5
- package/app/ione-product.component.d.ts +43 -43
- package/app/ione-product.module.d.ts +2 -2
- package/app/model/article-quantity.model.d.ts +5 -5
- package/app/model/icon.d.ts +4 -4
- package/app/model/productSettings.d.ts +30 -29
- package/app/model/render-modes.d.ts +5 -5
- package/app/model/render-parameters.d.ts +7 -7
- package/app/model/settings-options.d.ts +10 -10
- package/app/model/stock-and-delivery.d.ts +5 -5
- package/app/pipe/localize.pipe.d.ts +7 -7
- package/app/pipe/pipe.module.d.ts +2 -2
- package/app/product-version.d.ts +6 -6
- package/app/service/dictionary.service.d.ts +24 -24
- package/app/service/icon-cache.service.d.ts +17 -17
- package/app/service/product-connector-adapter.service.d.ts +34 -34
- package/app/service/product-connector.service.d.ts +38 -38
- package/app/service/product-event.service.d.ts +22 -22
- package/app/service/product-settings.service.d.ts +16 -16
- package/app/style/_scrollbars.mixins.scss +18 -18
- package/app/style/_variables.scss +21 -21
- package/app/utils/bit-utils.d.ts +7 -7
- package/app/utils/json-utils.service.d.ts +3 -3
- package/assets/dictionary/text.properties.d.ts +3 -3
- package/bundles/colijnit-product.umd.js +3108 -3108
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/colijnit-product.d.ts +41 -41
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/core/header/header.component.js +18 -18
- package/esm2015/app/components/core/header/header.module.js +19 -19
- package/esm2015/app/components/image-carousel/image-carousel.component.js +143 -143
- package/esm2015/app/components/image-carousel/image-carousel.module.js +23 -23
- package/esm2015/app/components/product-additional-description/product-additional-description.component.js +50 -50
- package/esm2015/app/components/product-additional-description/product-additional-description.module.js +21 -21
- package/esm2015/app/components/product-additional-info/product-additional-info.component.js +102 -102
- package/esm2015/app/components/product-additional-info/product-additional-info.module.js +21 -21
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +90 -90
- package/esm2015/app/components/product-addtocart/product-addtocart.module.js +24 -24
- package/esm2015/app/components/product-delivery/product-delivery.component.js +39 -39
- package/esm2015/app/components/product-delivery/product-delivery.module.js +23 -23
- package/esm2015/app/components/product-description/product-description.component.js +17 -17
- package/esm2015/app/components/product-description/product-description.module.js +19 -19
- package/esm2015/app/components/product-documents/product-document.module.js +25 -25
- package/esm2015/app/components/product-documents/product-documents.component.js +25 -25
- package/esm2015/app/components/product-external-source/product-external-source.component.js +110 -110
- package/esm2015/app/components/product-external-source/product-external-source.module.js +21 -21
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +59 -59
- package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +29 -29
- package/esm2015/app/components/product-page/product-page.component.js +215 -215
- package/esm2015/app/components/product-page/product-page.module.js +44 -44
- package/esm2015/app/components/product-price/product-price.component.js +60 -60
- package/esm2015/app/components/product-price/product-price.module.js +23 -23
- package/esm2015/app/components/product-properties/product-properties.component.js +50 -50
- package/esm2015/app/components/product-properties/product-properties.module.js +21 -21
- package/esm2015/app/components/product-related/product-related.component.js +62 -62
- package/esm2015/app/components/product-related/product-related.module.js +24 -24
- package/esm2015/app/components/product-selector-type/product-selector-type.component.js +42 -42
- package/esm2015/app/components/product-selector-type/product-selector-type.module.js +26 -26
- package/esm2015/app/components/product-stock/product-stock.component.js +59 -59
- package/esm2015/app/components/product-stock/product-stock.module.js +23 -23
- package/esm2015/app/components/product-symbols/product-symbols.component.js +34 -34
- package/esm2015/app/components/product-symbols/product-symbols.module.js +26 -26
- package/esm2015/app/enum/icon.enum.js +18 -18
- package/esm2015/app/enum/language-code.enum.js +8 -8
- package/esm2015/app/enum/selector-type.enum.js +7 -7
- package/esm2015/app/ione-product.component.js +114 -114
- package/esm2015/app/ione-product.module.js +29 -29
- package/esm2015/app/model/article-quantity.model.js +3 -3
- package/esm2015/app/model/icon.js +17 -17
- package/esm2015/app/model/productSettings.js +16 -16
- package/esm2015/app/model/render-modes.js +7 -7
- package/esm2015/app/model/render-parameters.js +10 -10
- package/esm2015/app/model/settings-options.js +13 -13
- package/esm2015/app/model/stock-and-delivery.js +8 -8
- package/esm2015/app/pipe/localize.pipe.js +27 -27
- package/esm2015/app/pipe/pipe.module.js +18 -18
- package/esm2015/app/product-version.js +10 -10
- package/esm2015/app/service/dictionary.service.js +94 -94
- package/esm2015/app/service/icon-cache.service.js +40 -40
- package/esm2015/app/service/product-connector-adapter.service.js +171 -171
- package/esm2015/app/service/product-connector.service.js +106 -106
- package/esm2015/app/service/product-event.service.js +29 -29
- package/esm2015/app/service/product-settings.service.js +86 -86
- package/esm2015/app/utils/bit-utils.js +18 -18
- package/esm2015/app/utils/json-utils.service.js +29 -29
- package/esm2015/assets/dictionary/text.properties.js +67 -67
- package/esm2015/colijnit-product.js +41 -41
- package/esm2015/public_api.js +10 -10
- package/fesm2015/colijnit-product.js +2212 -2212
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +5 -5
- package/public_api.d.ts +9 -9
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// this file is dynamically created, do not change this
|
|
2
|
-
export class Version {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.name = "@colijnit/product";
|
|
5
|
-
this.description = "Product detail page project for iOne";
|
|
6
|
-
this.symVer = "12.0.
|
|
7
|
-
this.publishDate = "
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
// this file is dynamically created, do not change this
|
|
2
|
+
export class Version {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.name = "@colijnit/product";
|
|
5
|
+
this.description = "Product detail page project for iOne";
|
|
6
|
+
this.symVer = "12.0.8";
|
|
7
|
+
this.publishDate = "4/25/2024, 5:03:50 PM";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9wcm9kdWN0LXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxPQUFPO0lBQXBCO1FBQ1MsU0FBSSxHQUFHLG1CQUFtQixDQUFDO1FBQzNCLGdCQUFXLEdBQUcsc0NBQXNDLENBQUM7UUFDckQsV0FBTSxHQUFHLFFBQVEsQ0FBQztRQUNsQixnQkFBVyxHQUFHLHVCQUF1QixDQUFDO0lBQy9DLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZmlsZSBpcyBkeW5hbWljYWxseSBjcmVhdGVkLCBkbyBub3QgY2hhbmdlIHRoaXNcbmV4cG9ydCBjbGFzcyBWZXJzaW9uIHtcbiAgcHVibGljIG5hbWUgPSBcIkBjb2xpam5pdC9wcm9kdWN0XCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiUHJvZHVjdCBkZXRhaWwgcGFnZSBwcm9qZWN0IGZvciBpT25lXCI7XG4gIHB1YmxpYyBzeW1WZXIgPSBcIjEyLjAuOFwiO1xuICBwdWJsaWMgcHVibGlzaERhdGUgPSBcIjQvMjUvMjAyNCwgNTowMzo1MCBQTVwiO1xufSJdfQ==
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { HttpClient } from '@angular/common/http';
|
|
4
|
-
import { LanguageCode } from '../enum/language-code.enum';
|
|
5
|
-
import { JsonUtilsService } from '../utils/json-utils.service';
|
|
6
|
-
import { Dictionary } from '../../assets/dictionary/text.properties';
|
|
7
|
-
import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common/http";
|
|
10
|
-
import * as i2 from "../utils/json-utils.service";
|
|
11
|
-
// The localization service, providing peers with text translation functionality.
|
|
12
|
-
export class DictionaryService {
|
|
13
|
-
constructor(_http, _jsonUtils) {
|
|
14
|
-
this._http = _http;
|
|
15
|
-
this._jsonUtils = _jsonUtils;
|
|
16
|
-
this.dictionaryUrl = 'js/browser/res/dictionary/';
|
|
17
|
-
// private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
|
|
18
|
-
this._dictionaries = new Map();
|
|
19
|
-
// Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.
|
|
20
|
-
this._placeholder = '|~';
|
|
21
|
-
}
|
|
22
|
-
get language() {
|
|
23
|
-
return this._language;
|
|
24
|
-
}
|
|
25
|
-
set rootUrl(value) {
|
|
26
|
-
this._rootUrl = value;
|
|
27
|
-
this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
|
|
28
|
-
}
|
|
29
|
-
// Loads the dictionary for given language in memory.
|
|
30
|
-
setDictionary(language) {
|
|
31
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
this._language = language || LanguageCode.Dutch;
|
|
33
|
-
if (!this._dictionaries.has(this._language)) {
|
|
34
|
-
const dictionary = new Dictionary();
|
|
35
|
-
if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
|
|
36
|
-
this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// if (!this._dictionaryPromise.has(language)) {
|
|
40
|
-
// this._dictionaryPromise.set(language,
|
|
41
|
-
// this._jsonUtils.readJsonFile(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
|
|
42
|
-
// .then((data: { [key: string]: string }) => {
|
|
43
|
-
// this._dictionaries.set(language, data);
|
|
44
|
-
// this.dictionaryLoaded.next();
|
|
45
|
-
// return data;
|
|
46
|
-
// })
|
|
47
|
-
// // this._http.get(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
|
|
48
|
-
// // .toPromise().then((data: { [key: string]: string }) => {
|
|
49
|
-
// // this._dictionaries.set(language, data);
|
|
50
|
-
// // return data;
|
|
51
|
-
// // })
|
|
52
|
-
// );
|
|
53
|
-
// } else {
|
|
54
|
-
// this.dictionaryLoaded.next();
|
|
55
|
-
// }
|
|
56
|
-
// await this._dictionaryPromise.get(language);
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Returns the localized text for the given dictionary key.
|
|
61
|
-
* @param {string} key
|
|
62
|
-
* @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val
|
|
63
|
-
* @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value
|
|
64
|
-
* @returns {string} The translated text for given dictionary key
|
|
65
|
-
*/
|
|
66
|
-
get(key, upperCaseFirst = true, ...replacementTexts) {
|
|
67
|
-
if (!StringUtils.IsStringWithLength(key)) {
|
|
68
|
-
return key || '';
|
|
69
|
-
}
|
|
70
|
-
let text = this._dictionaries.get(this.language)[key];
|
|
71
|
-
text = StringUtils.IsStringWithLength(text) ? text : key;
|
|
72
|
-
if (upperCaseFirst) {
|
|
73
|
-
text = text.charAt(0).toUpperCase() + text.slice(1);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
text = text.charAt(0).toLowerCase() + text.slice(1);
|
|
77
|
-
}
|
|
78
|
-
if (replacementTexts.length > 0) {
|
|
79
|
-
text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);
|
|
80
|
-
}
|
|
81
|
-
return text;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
|
|
85
|
-
DictionaryService.decorators = [
|
|
86
|
-
{ type: Injectable, args: [{
|
|
87
|
-
providedIn: 'root'
|
|
88
|
-
},] }
|
|
89
|
-
];
|
|
90
|
-
DictionaryService.ctorParameters = () => [
|
|
91
|
-
{ type: HttpClient },
|
|
92
|
-
{ type: JsonUtilsService }
|
|
93
|
-
];
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { LanguageCode } from '../enum/language-code.enum';
|
|
5
|
+
import { JsonUtilsService } from '../utils/json-utils.service';
|
|
6
|
+
import { Dictionary } from '../../assets/dictionary/text.properties';
|
|
7
|
+
import { StringUtils } from '@colijnit/ioneconnector/build/utils/string-utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common/http";
|
|
10
|
+
import * as i2 from "../utils/json-utils.service";
|
|
11
|
+
// The localization service, providing peers with text translation functionality.
|
|
12
|
+
export class DictionaryService {
|
|
13
|
+
constructor(_http, _jsonUtils) {
|
|
14
|
+
this._http = _http;
|
|
15
|
+
this._jsonUtils = _jsonUtils;
|
|
16
|
+
this.dictionaryUrl = 'js/browser/res/dictionary/';
|
|
17
|
+
// private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
|
|
18
|
+
this._dictionaries = new Map();
|
|
19
|
+
// Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.
|
|
20
|
+
this._placeholder = '|~';
|
|
21
|
+
}
|
|
22
|
+
get language() {
|
|
23
|
+
return this._language;
|
|
24
|
+
}
|
|
25
|
+
set rootUrl(value) {
|
|
26
|
+
this._rootUrl = value;
|
|
27
|
+
this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
|
|
28
|
+
}
|
|
29
|
+
// Loads the dictionary for given language in memory.
|
|
30
|
+
setDictionary(language) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
this._language = language || LanguageCode.Dutch;
|
|
33
|
+
if (!this._dictionaries.has(this._language)) {
|
|
34
|
+
const dictionary = new Dictionary();
|
|
35
|
+
if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
|
|
36
|
+
this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// if (!this._dictionaryPromise.has(language)) {
|
|
40
|
+
// this._dictionaryPromise.set(language,
|
|
41
|
+
// this._jsonUtils.readJsonFile(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
|
|
42
|
+
// .then((data: { [key: string]: string }) => {
|
|
43
|
+
// this._dictionaries.set(language, data);
|
|
44
|
+
// this.dictionaryLoaded.next();
|
|
45
|
+
// return data;
|
|
46
|
+
// })
|
|
47
|
+
// // this._http.get(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')
|
|
48
|
+
// // .toPromise().then((data: { [key: string]: string }) => {
|
|
49
|
+
// // this._dictionaries.set(language, data);
|
|
50
|
+
// // return data;
|
|
51
|
+
// // })
|
|
52
|
+
// );
|
|
53
|
+
// } else {
|
|
54
|
+
// this.dictionaryLoaded.next();
|
|
55
|
+
// }
|
|
56
|
+
// await this._dictionaryPromise.get(language);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the localized text for the given dictionary key.
|
|
61
|
+
* @param {string} key
|
|
62
|
+
* @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val
|
|
63
|
+
* @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value
|
|
64
|
+
* @returns {string} The translated text for given dictionary key
|
|
65
|
+
*/
|
|
66
|
+
get(key, upperCaseFirst = true, ...replacementTexts) {
|
|
67
|
+
if (!StringUtils.IsStringWithLength(key)) {
|
|
68
|
+
return key || '';
|
|
69
|
+
}
|
|
70
|
+
let text = this._dictionaries.get(this.language)[key];
|
|
71
|
+
text = StringUtils.IsStringWithLength(text) ? text : key;
|
|
72
|
+
if (upperCaseFirst) {
|
|
73
|
+
text = text.charAt(0).toUpperCase() + text.slice(1);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
text = text.charAt(0).toLowerCase() + text.slice(1);
|
|
77
|
+
}
|
|
78
|
+
if (replacementTexts.length > 0) {
|
|
79
|
+
text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);
|
|
80
|
+
}
|
|
81
|
+
return text;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
DictionaryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
|
|
85
|
+
DictionaryService.decorators = [
|
|
86
|
+
{ type: Injectable, args: [{
|
|
87
|
+
providedIn: 'root'
|
|
88
|
+
},] }
|
|
89
|
+
];
|
|
90
|
+
DictionaryService.ctorParameters = () => [
|
|
91
|
+
{ type: HttpClient },
|
|
92
|
+
{ type: JsonUtilsService }
|
|
93
|
+
];
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sa0RBQWtELENBQUM7Ozs7QUFFN0UsaUZBQWlGO0FBSWpGLE1BQU0sT0FBTyxpQkFBaUI7SUF1QjVCLFlBQ1UsS0FBaUIsRUFDakIsVUFBNEI7UUFENUIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQXhCckIsa0JBQWEsR0FBVyw0QkFBNEIsQ0FBQztRQWV0RSxtSkFBbUo7UUFDM0ksa0JBQWEsR0FBMkMsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFHN0csaUhBQWlIO1FBQ2hHLGlCQUFZLEdBQVcsSUFBSSxDQUFDO0lBTTdDLENBQUM7SUF4QkQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDaEUsQ0FBQztJQW1CRCxxREFBcUQ7SUFDeEMsYUFBYSxDQUFDLFFBQWdCOztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQy9FLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN2RzthQUNGO1lBQ0QsZ0RBQWdEO1lBQ2hELDBDQUEwQztZQUMxQyw0SEFBNEg7WUFDNUgscURBQXFEO1lBQ3JELGtEQUFrRDtZQUNsRCx3Q0FBd0M7WUFDeEMsdUJBQXVCO1lBQ3ZCLFdBQVc7WUFDWCxpSEFBaUg7WUFDakgsb0VBQW9FO1lBQ3BFLG1EQUFtRDtZQUNuRCx3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLE9BQU87WUFDUCxXQUFXO1lBQ1gsa0NBQWtDO1lBQ2xDLElBQUk7WUFDSiwrQ0FBK0M7UUFDakQsQ0FBQztLQUFBO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxpQkFBMEIsSUFBSSxFQUFFLEdBQUcsZ0JBQTBCO1FBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxJQUFJLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXpELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7WUF2RkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBRVYsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uL2VudW0vbGFuZ3VhZ2UtY29kZS5lbnVtJztcbmltcG9ydCB7IEpzb25VdGlsc1NlcnZpY2UgfSBmcm9tICcuLi91dGlscy9qc29uLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2Fzc2V0cy9kaWN0aW9uYXJ5L3RleHQucHJvcGVydGllcyc7XG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9zdHJpbmctdXRpbHMnO1xuXG4vLyBUaGUgbG9jYWxpemF0aW9uIHNlcnZpY2UsIHByb3ZpZGluZyBwZWVycyB3aXRoIHRleHQgdHJhbnNsYXRpb24gZnVuY3Rpb25hbGl0eS5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERpY3Rpb25hcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaWN0aW9uYXJ5VXJsOiBzdHJpbmcgPSAnanMvYnJvd3Nlci9yZXMvZGljdGlvbmFyeS8nO1xuXG4gIHB1YmxpYyBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJvb3RVcmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3Jvb3RVcmwgPSB2YWx1ZTtcbiAgICB0aGlzLl9kaWN0QmFzZVBhdGggPSB0aGlzLl9yb290VXJsICsgJy8nICsgdGhpcy5kaWN0aW9uYXJ5VXJsO1xuICB9XG5cbiAgLy8gcHVibGljIGRpY3Rpb25hcnlMb2FkZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2RpY3RCYXNlUGF0aDogc3RyaW5nO1xuICBwcml2YXRlIF9yb290VXJsOiBzdHJpbmc7XG4gIC8vIHByaXZhdGUgX2RpY3Rpb25hcnlQcm9taXNlOiBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PiA9IG5ldyBNYXA8TGFuZ3VhZ2VDb2RlLCBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+PigpO1xuICBwcml2YXRlIF9kaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+ID0gbmV3IE1hcDxzdHJpbmcsIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+KCk7XG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XG5cbiAgLy8gU29tZSBkaWN0aW9uYXJ5IHZhbHVlcyBoYXZlIG9uZSBvciBtb3JlICd8ficgdGV4dHMgaW4gdGhlbSwgbWVhbnQgdG8gYmUgcmVwbGFjZWQgd2l0aCBjbGllbnQtc2lkZSBnaXZlbiB0ZXh0cy5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2Vob2xkZXI6IHN0cmluZyA9ICd8fic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIF9qc29uVXRpbHM6IEpzb25VdGlsc1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICAvLyBMb2FkcyB0aGUgZGljdGlvbmFyeSBmb3IgZ2l2ZW4gbGFuZ3VhZ2UgaW4gbWVtb3J5LlxuICBwdWJsaWMgYXN5bmMgc2V0RGljdGlvbmFyeShsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fbGFuZ3VhZ2UgPSBsYW5ndWFnZSB8fCBMYW5ndWFnZUNvZGUuRHV0Y2g7XG4gICAgaWYgKCF0aGlzLl9kaWN0aW9uYXJpZXMuaGFzKHRoaXMuX2xhbmd1YWdlKSkge1xuICAgICAgY29uc3QgZGljdGlvbmFyeSA9IG5ldyBEaWN0aW9uYXJ5KCk7XG4gICAgICBpZiAoZGljdGlvbmFyeS5zdHJpbmdzW3RoaXMuX2xhbmd1YWdlLnN1YnN0cigwLCAyKS50b0xvd2VyQ2FzZSgpXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcy5zZXQodGhpcy5fbGFuZ3VhZ2UsIGRpY3Rpb25hcnkuc3RyaW5nc1t0aGlzLl9sYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKV0pO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiAoIXRoaXMuX2RpY3Rpb25hcnlQcm9taXNlLmhhcyhsYW5ndWFnZSkpIHtcbiAgICAvLyAgIHRoaXMuX2RpY3Rpb25hcnlQcm9taXNlLnNldChsYW5ndWFnZSxcbiAgICAvLyAgICAgdGhpcy5fanNvblV0aWxzLnJlYWRKc29uRmlsZSh0aGlzLl9kaWN0QmFzZVBhdGggKyAndGV4dF8nICsgbGFuZ3VhZ2Uuc3Vic3RyKDAsIDIpLnRvTG93ZXJDYXNlKCkgKyAnLnByb3BlcnRpZXMuanNvbicpXG4gICAgLy8gICAgICAgLnRoZW4oKGRhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pID0+IHtcbiAgICAvLyAgICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcy5zZXQobGFuZ3VhZ2UsIGRhdGEpO1xuICAgIC8vICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5TG9hZGVkLm5leHQoKTtcbiAgICAvLyAgICAgICAgIHJldHVybiBkYXRhO1xuICAgIC8vICAgICAgIH0pXG4gICAgLy8gICAgIC8vIHRoaXMuX2h0dHAuZ2V0KHRoaXMuX2RpY3RCYXNlUGF0aCArICd0ZXh0XycgKyBsYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKSArICcucHJvcGVydGllcy5qc29uJylcbiAgICAvLyAgICAgLy8gICAudG9Qcm9taXNlKCkudGhlbigoZGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkgPT4ge1xuICAgIC8vICAgICAvLyAgIHRoaXMuX2RpY3Rpb25hcmllcy5zZXQobGFuZ3VhZ2UsIGRhdGEpO1xuICAgIC8vICAgICAvLyAgIHJldHVybiBkYXRhO1xuICAgIC8vICAgICAvLyB9KVxuICAgIC8vICAgKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgdGhpcy5kaWN0aW9uYXJ5TG9hZGVkLm5leHQoKTtcbiAgICAvLyB9XG4gICAgLy8gYXdhaXQgdGhpcy5fZGljdGlvbmFyeVByb21pc2UuZ2V0KGxhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgdGV4dCBmb3IgdGhlIGdpdmVuIGRpY3Rpb25hcnkga2V5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3VwcGVyQ2FzZUZpcnN0ID0gdHJ1ZV0gRmFsc2UgZm9yIGZpcnN0IGxldHRlciBsb3dlcmNhc2UsIHRydWUgZm9yIGZpcnN0IGxldHRlciB1cHBlcmNhc2UgZm9yIHJldHVybmVkIGRpY3QgdmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHJlcGxhY2VtZW50VGV4dHMgUmVzdCBwYXJhbXMgZm9yIHJlcGxhY2VtZW50IG9mICd8ficgaW4gcmV0dXJuZWQgZGljdCB2YWx1ZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgdHJhbnNsYXRlZCB0ZXh0IGZvciBnaXZlbiBkaWN0aW9uYXJ5IGtleVxuICAgKi9cbiAgcHVibGljIGdldChrZXk6IHN0cmluZywgdXBwZXJDYXNlRmlyc3Q6IGJvb2xlYW4gPSB0cnVlLCAuLi5yZXBsYWNlbWVudFRleHRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKCFTdHJpbmdVdGlscy5Jc1N0cmluZ1dpdGhMZW5ndGgoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleSB8fCAnJztcbiAgICB9XG5cbiAgICBsZXQgdGV4dDogc3RyaW5nID0gdGhpcy5fZGljdGlvbmFyaWVzLmdldCh0aGlzLmxhbmd1YWdlKVtrZXldO1xuICAgIHRleHQgPSBTdHJpbmdVdGlscy5Jc1N0cmluZ1dpdGhMZW5ndGgodGV4dCkgPyB0ZXh0IDoga2V5O1xuXG4gICAgaWYgKHVwcGVyQ2FzZUZpcnN0KSB7XG4gICAgICB0ZXh0ID0gdGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHQgPSB0ZXh0LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcbiAgICB9XG5cbiAgICBpZiAocmVwbGFjZW1lbnRUZXh0cy5sZW5ndGggPiAwKSB7XG4gICAgICB0ZXh0ID0gU3RyaW5nVXRpbHMuUmVwbGFjZU9jY3VycmVuY2VzSW4odGV4dCwgdGhpcy5fcGxhY2Vob2xkZXIsIC4uLnJlcGxhY2VtZW50VGV4dHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0O1xuICB9XG5cbiAgLy8gcHJpdmF0ZSBfZGljdGlvbmFyeUxvYWRlZChsYW5ndWFnZTogTGFuZ3VhZ2VDb2RlKTogYm9vbGVhbiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcmllcy5oYXMobGFuZ3VhZ2UpO1xuICAvLyB9XG59XG4iXX0=
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
-
import { IconSvg } from '../model/icon';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/platform-browser";
|
|
6
|
-
export class IconCacheService {
|
|
7
|
-
constructor(_sanitizer) {
|
|
8
|
-
this._sanitizer = _sanitizer;
|
|
9
|
-
this._iconCache = {};
|
|
10
|
-
this._allIcons = IconSvg;
|
|
11
|
-
this.setIconCache();
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* All the icons as a large JSON object, from the all-icons.json file.
|
|
15
|
-
* The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
|
|
16
|
-
*/
|
|
17
|
-
get iconCache() {
|
|
18
|
-
return this._iconCache;
|
|
19
|
-
}
|
|
20
|
-
getIcon(iconName) {
|
|
21
|
-
return this._iconCache[iconName.toLowerCase()];
|
|
22
|
-
}
|
|
23
|
-
setIconCache() {
|
|
24
|
-
for (const key in this._allIcons) {
|
|
25
|
-
if (this._allIcons.hasOwnProperty(key)) {
|
|
26
|
-
this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
|
|
32
|
-
IconCacheService.decorators = [
|
|
33
|
-
{ type: Injectable, args: [{
|
|
34
|
-
providedIn: 'root'
|
|
35
|
-
},] }
|
|
36
|
-
];
|
|
37
|
-
IconCacheService.ctorParameters = () => [
|
|
38
|
-
{ type: DomSanitizer }
|
|
39
|
-
];
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { IconSvg } from '../model/icon';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/platform-browser";
|
|
6
|
+
export class IconCacheService {
|
|
7
|
+
constructor(_sanitizer) {
|
|
8
|
+
this._sanitizer = _sanitizer;
|
|
9
|
+
this._iconCache = {};
|
|
10
|
+
this._allIcons = IconSvg;
|
|
11
|
+
this.setIconCache();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* All the icons as a large JSON object, from the all-icons.json file.
|
|
15
|
+
* The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
|
|
16
|
+
*/
|
|
17
|
+
get iconCache() {
|
|
18
|
+
return this._iconCache;
|
|
19
|
+
}
|
|
20
|
+
getIcon(iconName) {
|
|
21
|
+
return this._iconCache[iconName.toLowerCase()];
|
|
22
|
+
}
|
|
23
|
+
setIconCache() {
|
|
24
|
+
for (const key in this._allIcons) {
|
|
25
|
+
if (this._allIcons.hasOwnProperty(key)) {
|
|
26
|
+
this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
|
|
32
|
+
IconCacheService.decorators = [
|
|
33
|
+
{ type: Injectable, args: [{
|
|
34
|
+
providedIn: 'root'
|
|
35
|
+
},] }
|
|
36
|
+
];
|
|
37
|
+
IconCacheService.ctorParameters = () => [
|
|
38
|
+
{ type: DomSanitizer }
|
|
39
|
+
];
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNeEMsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QixZQUFvQixVQUF3QjtRQUF4QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBSnBDLGVBQVUsR0FBcUMsRUFBRSxDQUFDO1FBS3RELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBZkQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBV00sT0FBTyxDQUFDLFFBQWtCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sWUFBWTtRQUNqQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuRztTQUNGO0lBQ0gsQ0FBQzs7OztZQS9CSixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQU5RLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJY29uU3ZnIH0gZnJvbSAnLi4vbW9kZWwvaWNvbic7XG5pbXBvcnQgeyBJY29uRW51bSB9IGZyb20gJy4uL2VudW0vaWNvbi5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNhY2hlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQWxsIHRoZSBpY29ucyBhcyBhIGxhcmdlIEpTT04gb2JqZWN0LCBmcm9tIHRoZSBhbGwtaWNvbnMuanNvbiBmaWxlLlxuICAgICAqIFRoZSBvYmplY3QgaGFzIHByb3BlcnR5IGtleXMgdGhhdCBhcmUgdGhlIGljb24gbmFtZXMsIGFuZCBwcm9wZXJ0eSB2YWx1ZXMgd2l0aCB0aGUgZGF0YSBzdHJpbmcgb2YgdGhlIGFjdHVhbCBzdmcgaWNvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25DYWNoZSgpOiB7IFtpY29uTmFtZTogc3RyaW5nXTogU2FmZUh0bWwgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uQ2FjaGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaWNvbkNhY2hlOiB7IFtpY29uTmFtZTogc3RyaW5nXTogU2FmZUh0bWwgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBfYWxsSWNvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyKSB7XG4gICAgICAgIHRoaXMuX2FsbEljb25zID0gSWNvblN2ZztcbiAgICAgICAgdGhpcy5zZXRJY29uQ2FjaGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWNvbihpY29uTmFtZTogSWNvbkVudW0pOiBTYWZlSHRtbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uQ2FjaGVbaWNvbk5hbWUudG9Mb3dlckNhc2UoKV07XG4gICAgfVxuXG4gICAgcHVibGljIHNldEljb25DYWNoZSgpOiB2b2lkIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2FsbEljb25zKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbGxJY29ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdGhpcy5faWNvbkNhY2hlW2tleS50b0xvd2VyQ2FzZSgpXSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLl9hbGxJY29uc1trZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|