@esolve/ng-esolve-connect 0.15.2 → 0.16.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.
- package/esm2020/lib/account/registration/esolve-registration-data.interface.mjs +1 -1
- package/esm2020/lib/manufacturers/esolve-manufacturer-image-size.type.mjs +2 -0
- package/esm2020/lib/manufacturers/esolve-manufacturer.model.mjs +30 -13
- package/esm2020/lib/manufacturers/esolve-manufacturers.service.mjs +2 -2
- package/esm2020/lib/manufacturers/index.mjs +7 -2
- package/esm2020/lib/media/esolve-media.service.mjs +3 -3
- package/esm2020/lib/news/esolve-news-article-options.interface.mjs +1 -1
- package/esm2020/lib/news/esolve-news-article-record.interface.mjs +1 -1
- package/esm2020/lib/news/esolve-news-article.model.mjs +66 -13
- package/esm2020/lib/news/esolve-news.service.mjs +56 -46
- package/esm2020/lib/news/index.mjs +1 -3
- package/esm2020/lib/ranges/esolve-range.model.mjs +35 -14
- package/esm2020/lib/ranges/esolve-ranges.service.mjs +2 -2
- package/esm2020/lib/shared/assets/esolve-asset-list.type.mjs +2 -0
- package/esm2020/lib/shared/assets/esolve-asset-options.interface.mjs +2 -0
- package/esm2020/lib/shared/assets/esolve-asset-record.interface.mjs +2 -0
- package/esm2020/lib/shared/assets/esolve-asset.model.mjs +77 -0
- package/esm2020/lib/shared/assets/esolve-assets.service.mjs +102 -0
- package/esm2020/lib/shared/assets/index.mjs +11 -2
- package/esm2020/lib/shared/sort/esolve-sort-order.type.mjs +2 -0
- package/esm2020/lib/shared/sort/esolve-sort.interface.mjs +2 -0
- package/esm2020/lib/shared/sort/index.mjs +5 -0
- package/esm2020/lib/stock/classes/esolve-additional-stock-image.model.mjs +21 -0
- package/esm2020/lib/stock/classes/esolve-colour.model.mjs +8 -0
- package/esm2020/lib/stock/classes/esolve-linked-stock-item.model.mjs +9 -0
- package/esm2020/lib/stock/classes/esolve-media-stock-item.model.mjs +7 -0
- package/esm2020/lib/stock/classes/esolve-recipe-stock-item.model.mjs +9 -0
- package/esm2020/lib/stock/classes/esolve-stock-badge.model.mjs +11 -0
- package/esm2020/lib/stock/classes/esolve-stock-group-item.model.mjs +7 -0
- package/esm2020/lib/stock/classes/esolve-stock-group.model.mjs +13 -0
- package/esm2020/lib/stock/classes/esolve-stock-image-collection.model.mjs +26 -0
- package/esm2020/lib/stock/classes/esolve-stock-image.model.mjs +45 -0
- package/esm2020/lib/stock/classes/esolve-stock-item-base.model.mjs +224 -0
- package/esm2020/lib/stock/classes/esolve-stock-item-list.model.mjs +11 -0
- package/esm2020/lib/stock/classes/esolve-stock-item.model.mjs +17 -0
- package/esm2020/lib/stock/classes/esolve-stock-lead-times.model.mjs +9 -0
- package/esm2020/lib/stock/classes/esolve-stock-price.model.mjs +43 -0
- package/esm2020/lib/stock/classes/index.mjs +17 -0
- package/esm2020/lib/stock/esolve-stock.service.mjs +40 -9
- package/esm2020/lib/stock/index.mjs +4 -35
- package/esm2020/lib/stock/interfaces/esolve-additional-stock-image-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-colour-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-linked-stock-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-media-stock-item-options.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-media-stock-item-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-recipe-item-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-recipe-stock-options.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-badge-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-base-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-group-item-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-image-collection-record.interface.mjs +3 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-item-options.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-lead-times-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-linked-category-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/esolve-stock-record.interface.mjs +2 -0
- package/esm2020/lib/stock/interfaces/index.mjs +17 -0
- package/esm2020/lib/stock/types/esolve-media-stock-item-list.type.mjs +2 -0
- package/esm2020/lib/stock/types/esolve-media-stock-sort-field.type.mjs +2 -0
- package/esm2020/lib/stock/types/esolve-stock-image-size.type.mjs +2 -0
- package/esm2020/lib/stock/types/esolve-stock-sort-field.type.mjs +2 -0
- package/esm2020/lib/stock/types/esolve-stock-unit-of-measure.type.mjs +2 -0
- package/esm2020/lib/stock/types/index.mjs +7 -0
- package/esm2020/lib/tags/esolve-tag-options.interface.mjs +2 -0
- package/esm2020/lib/tags/esolve-tag-phrase-match-mode.type.mjs +2 -0
- package/esm2020/lib/tags/esolve-tag-record.interface.mjs +1 -1
- package/esm2020/lib/tags/esolve-tag.model.mjs +32 -6
- package/esm2020/lib/tags/esolve-tags.service.mjs +76 -0
- package/esm2020/lib/tags/index.mjs +9 -2
- package/esm2020/lib/topics/esolve-topic.model.mjs +12 -6
- package/esm2020/lib/topics/esolve-topic.service.mjs +2 -2
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/esolve-ng-esolve-connect.mjs +1902 -1452
- package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
- package/fesm2020/esolve-ng-esolve-connect.mjs +1875 -1437
- package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
- package/lib/account/registration/esolve-registration-data.interface.d.ts +3 -0
- package/lib/manufacturers/esolve-manufacturer-image-size.type.d.ts +1 -0
- package/lib/manufacturers/esolve-manufacturer.model.d.ts +4 -3
- package/lib/manufacturers/index.d.ts +2 -1
- package/lib/news/esolve-news-article-options.interface.d.ts +1 -0
- package/lib/news/esolve-news-article-record.interface.d.ts +8 -4
- package/lib/news/esolve-news-article.model.d.ts +13 -2
- package/lib/news/esolve-news.service.d.ts +2 -1
- package/lib/news/index.d.ts +0 -2
- package/lib/ranges/esolve-range.model.d.ts +2 -2
- package/lib/shared/assets/esolve-asset-list.type.d.ts +3 -0
- package/lib/shared/assets/esolve-asset-options.interface.d.ts +15 -0
- package/lib/shared/assets/esolve-asset-record.interface.d.ts +27 -0
- package/lib/shared/assets/esolve-asset.model.d.ts +39 -0
- package/lib/shared/assets/esolve-assets.service.d.ts +19 -0
- package/lib/shared/assets/index.d.ts +6 -1
- package/lib/shared/sort/esolve-sort-order.type.d.ts +1 -0
- package/lib/shared/sort/esolve-sort.interface.d.ts +5 -0
- package/lib/shared/sort/index.d.ts +2 -0
- package/lib/stock/{esolve-additional-stock-image.model.d.ts → classes/esolve-additional-stock-image.model.d.ts} +1 -1
- package/lib/stock/{esolve-colour.model.d.ts → classes/esolve-colour.model.d.ts} +1 -1
- package/lib/stock/{esolve-linked-stock-item.model.d.ts → classes/esolve-linked-stock-item.model.d.ts} +2 -2
- package/lib/stock/{esolve-media-stock-item.model.d.ts → classes/esolve-media-stock-item.model.d.ts} +2 -2
- package/lib/stock/{esolve-recipe-stock-item.model.d.ts → classes/esolve-recipe-stock-item.model.d.ts} +2 -2
- package/lib/stock/{esolve-stock-badge.model.d.ts → classes/esolve-stock-badge.model.d.ts} +0 -0
- package/lib/stock/{esolve-stock-group-item.model.d.ts → classes/esolve-stock-group-item.model.d.ts} +2 -2
- package/lib/stock/{esolve-stock-group.model.d.ts → classes/esolve-stock-group.model.d.ts} +2 -2
- package/lib/stock/{esolve-stock-image-collection.model.d.ts → classes/esolve-stock-image-collection.model.d.ts} +1 -1
- package/lib/stock/{esolve-stock-image.model.d.ts → classes/esolve-stock-image.model.d.ts} +1 -1
- package/lib/stock/{esolve-stock-item-base.model.d.ts → classes/esolve-stock-item-base.model.d.ts} +29 -9
- package/lib/stock/{esolve-stock-item-list.model.d.ts → classes/esolve-stock-item-list.model.d.ts} +1 -1
- package/lib/stock/{esolve-stock-item.model.d.ts → classes/esolve-stock-item.model.d.ts} +2 -2
- package/lib/stock/{esolve-stock-lead-times.model.d.ts → classes/esolve-stock-lead-times.model.d.ts} +1 -1
- package/lib/stock/{esolve-stock-price.model.d.ts → classes/esolve-stock-price.model.d.ts} +0 -0
- package/lib/stock/classes/index.d.ts +15 -0
- package/lib/stock/esolve-stock.service.d.ts +4 -9
- package/lib/stock/index.d.ts +3 -31
- package/lib/stock/{esolve-additional-stock-image-record.interface.d.ts → interfaces/esolve-additional-stock-image-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-colour-record.interface.d.ts → interfaces/esolve-colour-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-linked-stock-record.interface.d.ts → interfaces/esolve-linked-stock-record.interface.d.ts} +1 -1
- package/lib/stock/{esolve-media-stock-item-options.interface.d.ts → interfaces/esolve-media-stock-item-options.interface.d.ts} +3 -0
- package/lib/stock/{esolve-media-stock-item-record.interface.d.ts → interfaces/esolve-media-stock-item-record.interface.d.ts} +1 -1
- package/lib/stock/{esolve-recipe-item-record.interface.d.ts → interfaces/esolve-recipe-item-record.interface.d.ts} +1 -1
- package/lib/stock/interfaces/esolve-recipe-stock-options.interface.d.ts +7 -0
- package/lib/stock/{esolve-stock-badge-record.interface.d.ts → interfaces/esolve-stock-badge-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-stock-base-record.interface.d.ts → interfaces/esolve-stock-base-record.interface.d.ts} +12 -6
- package/lib/stock/{esolve-stock-group-item-record.interface.d.ts → interfaces/esolve-stock-group-item-record.interface.d.ts} +1 -1
- package/lib/stock/{esolve-stock-image-collection-record.interface.d.ts → interfaces/esolve-stock-image-collection-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-stock-item-options.interface.d.ts → interfaces/esolve-stock-item-options.interface.d.ts} +3 -0
- package/lib/stock/{esolve-stock-lead-times-record.interface.d.ts → interfaces/esolve-stock-lead-times-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-stock-linked-category-record.interface.d.ts → interfaces/esolve-stock-linked-category-record.interface.d.ts} +0 -0
- package/lib/stock/{esolve-stock-record.interface.d.ts → interfaces/esolve-stock-record.interface.d.ts} +1 -1
- package/lib/stock/interfaces/index.d.ts +15 -0
- package/lib/stock/types/esolve-media-stock-item-list.type.d.ts +7 -0
- package/lib/stock/types/esolve-media-stock-sort-field.type.d.ts +2 -0
- package/lib/stock/{esolve-stock-image-size.type.d.ts → types/esolve-stock-image-size.type.d.ts} +0 -0
- package/lib/stock/types/esolve-stock-sort-field.type.d.ts +1 -0
- package/lib/stock/types/esolve-stock-unit-of-measure.type.d.ts +1 -0
- package/lib/stock/types/index.d.ts +5 -0
- package/lib/tags/esolve-tag-options.interface.d.ts +6 -0
- package/lib/tags/esolve-tag-phrase-match-mode.type.d.ts +1 -0
- package/lib/tags/esolve-tag-record.interface.d.ts +1 -0
- package/lib/tags/esolve-tag.model.d.ts +14 -3
- package/lib/tags/esolve-tags.service.d.ts +22 -0
- package/lib/tags/index.d.ts +4 -1
- package/lib/topics/esolve-topic.model.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2020/lib/news/esolve-news-manufacturer-record.interface.mjs +0 -2
- package/esm2020/lib/news/esolve-news-range-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-additional-stock-image-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-additional-stock-image.model.mjs +0 -21
- package/esm2020/lib/stock/esolve-colour-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-colour.model.mjs +0 -8
- package/esm2020/lib/stock/esolve-linked-stock-item.model.mjs +0 -9
- package/esm2020/lib/stock/esolve-linked-stock-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-media-stock-item-list.type.mjs +0 -2
- package/esm2020/lib/stock/esolve-media-stock-item-options.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-media-stock-item-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-media-stock-item.model.mjs +0 -7
- package/esm2020/lib/stock/esolve-recipe-item-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-recipe-stock-item.model.mjs +0 -9
- package/esm2020/lib/stock/esolve-stock-badge-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-badge.model.mjs +0 -11
- package/esm2020/lib/stock/esolve-stock-base-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-group-item-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-group-item.model.mjs +0 -7
- package/esm2020/lib/stock/esolve-stock-group.model.mjs +0 -13
- package/esm2020/lib/stock/esolve-stock-image-collection-record.interface.mjs +0 -3
- package/esm2020/lib/stock/esolve-stock-image-collection.model.mjs +0 -26
- package/esm2020/lib/stock/esolve-stock-image-size.type.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-image.model.mjs +0 -45
- package/esm2020/lib/stock/esolve-stock-item-base.model.mjs +0 -197
- package/esm2020/lib/stock/esolve-stock-item-list.model.mjs +0 -11
- package/esm2020/lib/stock/esolve-stock-item-options.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-item.model.mjs +0 -17
- package/esm2020/lib/stock/esolve-stock-lead-times-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-lead-times.model.mjs +0 -9
- package/esm2020/lib/stock/esolve-stock-linked-category-record.interface.mjs +0 -2
- package/esm2020/lib/stock/esolve-stock-price.model.mjs +0 -43
- package/esm2020/lib/stock/esolve-stock-record.interface.mjs +0 -2
- package/lib/news/esolve-news-manufacturer-record.interface.d.ts +0 -8
- package/lib/news/esolve-news-range-record.interface.d.ts +0 -9
- package/lib/stock/esolve-media-stock-item-list.type.d.ts +0 -7
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { EsolveSeoInfo } from '../../shared/seo';
|
|
2
|
+
import { EsolveCategoryTreeItem } from '../../category-tree';
|
|
3
|
+
import { EsolveManufacturer } from '../../manufacturers';
|
|
4
|
+
import { EsolveRange } from '../../ranges';
|
|
5
|
+
import { EsolveTag } from '../../tags';
|
|
6
|
+
import { EsolveTopic } from '../../topics';
|
|
7
|
+
import { EsolveStockBadge } from './esolve-stock-badge.model';
|
|
8
|
+
import { EsolveStockPrice } from './esolve-stock-price.model';
|
|
9
|
+
import { EsolveColour } from './esolve-colour.model';
|
|
10
|
+
import { EsolveStockLeadTimes } from './esolve-stock-lead-times.model';
|
|
11
|
+
export class EsolveStockItemBase {
|
|
12
|
+
constructor(record = {}) {
|
|
13
|
+
/**
|
|
14
|
+
* eSolve Generated ID
|
|
15
|
+
*/
|
|
16
|
+
this.id = 0;
|
|
17
|
+
/**
|
|
18
|
+
* Code identifying the stock item
|
|
19
|
+
*/
|
|
20
|
+
this.code = '';
|
|
21
|
+
/**
|
|
22
|
+
* Name of the stock item
|
|
23
|
+
*/
|
|
24
|
+
this.name = '';
|
|
25
|
+
/**
|
|
26
|
+
* Search engine friendly name
|
|
27
|
+
*/
|
|
28
|
+
this.sef_name = '';
|
|
29
|
+
/**
|
|
30
|
+
* Short description of stock item
|
|
31
|
+
*/
|
|
32
|
+
this.description = '';
|
|
33
|
+
/**
|
|
34
|
+
* Full description of stock item
|
|
35
|
+
*/
|
|
36
|
+
this.extended_description = '';
|
|
37
|
+
/**
|
|
38
|
+
* Active state
|
|
39
|
+
*/
|
|
40
|
+
this.active = false;
|
|
41
|
+
/**
|
|
42
|
+
* Featured state
|
|
43
|
+
*/
|
|
44
|
+
this.featured = false;
|
|
45
|
+
/**
|
|
46
|
+
* Height measured in meters (m)
|
|
47
|
+
*/
|
|
48
|
+
this.height = 0;
|
|
49
|
+
/**
|
|
50
|
+
* Width measured in meters (m)
|
|
51
|
+
*/
|
|
52
|
+
this.width = 0;
|
|
53
|
+
/**
|
|
54
|
+
* Length / depth measured in meters (m)
|
|
55
|
+
*/
|
|
56
|
+
this.length = 0;
|
|
57
|
+
/**
|
|
58
|
+
* Weight measured in kilograms (kg)
|
|
59
|
+
*/
|
|
60
|
+
this.weight = 0;
|
|
61
|
+
/**
|
|
62
|
+
* Units used to measure the quantity
|
|
63
|
+
*/
|
|
64
|
+
this.unit_of_measure = 'unit';
|
|
65
|
+
/**
|
|
66
|
+
* ID of default category linked to the stock item
|
|
67
|
+
*
|
|
68
|
+
* @deprecated Use `category.esolve_id` field instead
|
|
69
|
+
*/
|
|
70
|
+
this.category_id = '';
|
|
71
|
+
/**
|
|
72
|
+
* ID of default subcategory linked to the stock item
|
|
73
|
+
*
|
|
74
|
+
* @deprecated Use `subcategory.esolve_id` field instead
|
|
75
|
+
*/
|
|
76
|
+
this.subcategory_id = 0;
|
|
77
|
+
/**
|
|
78
|
+
* ID of linked manufacturer
|
|
79
|
+
*
|
|
80
|
+
* @deprecated Use `manufacturer.id` field instead
|
|
81
|
+
*/
|
|
82
|
+
this.manufacturers_id = 0;
|
|
83
|
+
/**
|
|
84
|
+
* ID of linked range
|
|
85
|
+
*
|
|
86
|
+
* @deprecated Use `range.id` field instead
|
|
87
|
+
*/
|
|
88
|
+
this.ranges_id = 0;
|
|
89
|
+
/**
|
|
90
|
+
* Linked tags
|
|
91
|
+
*/
|
|
92
|
+
this.tags = [];
|
|
93
|
+
/**
|
|
94
|
+
* Linked topics
|
|
95
|
+
*/
|
|
96
|
+
this.topics = [];
|
|
97
|
+
/**
|
|
98
|
+
* Stock badges
|
|
99
|
+
*/
|
|
100
|
+
this.badges = [];
|
|
101
|
+
/**
|
|
102
|
+
* Colours
|
|
103
|
+
*/
|
|
104
|
+
this.colours = [];
|
|
105
|
+
/**
|
|
106
|
+
* Image filename
|
|
107
|
+
*/
|
|
108
|
+
this.image_name = '';
|
|
109
|
+
let seo_title = '';
|
|
110
|
+
let seo_keywords = '';
|
|
111
|
+
let base_price = 0;
|
|
112
|
+
let base_price_with_tax = 0;
|
|
113
|
+
let sell_price = 0;
|
|
114
|
+
let sell_price_with_tax = 0;
|
|
115
|
+
if (record) {
|
|
116
|
+
this.id = +(record.id ?? 0);
|
|
117
|
+
this.code = record.code ?? '';
|
|
118
|
+
this.name = record.name ?? '';
|
|
119
|
+
this.sef_name = record.sef_name ?? '';
|
|
120
|
+
this.description = record.description ?? '';
|
|
121
|
+
this.extended_description = record.extended_description ?? '';
|
|
122
|
+
this.image_name = record.image_name ?? '';
|
|
123
|
+
this.category_id = record.category_id ?? '';
|
|
124
|
+
this.subcategory_id = +(record.subcategory_id ?? 0);
|
|
125
|
+
this.manufacturers_id = +(record.manufacturers_id ?? 0);
|
|
126
|
+
this.ranges_id = +(record.ranges_id ?? 0);
|
|
127
|
+
this.active = !!+(record.is_active ?? false);
|
|
128
|
+
this.featured = !!+(record.is_featured ?? false);
|
|
129
|
+
this.height = +(record.height ?? 0);
|
|
130
|
+
this.width = +(record.width ?? 0);
|
|
131
|
+
this.length = +(record.length ?? 0);
|
|
132
|
+
this.weight = +(record.weight ?? 0);
|
|
133
|
+
if (record.unit_of_measure) {
|
|
134
|
+
this.unit_of_measure = record.unit_of_measure;
|
|
135
|
+
}
|
|
136
|
+
base_price = +(record.regular_sellprice ?? 0);
|
|
137
|
+
base_price_with_tax = +(record.regular_sellprice_inclusive ?? 0);
|
|
138
|
+
sell_price = +(record.sellprice ?? 0);
|
|
139
|
+
sell_price_with_tax = +(record.sellprice_inclusive ?? 0);
|
|
140
|
+
if ((record.tags) && (record.tags.length > 0)) {
|
|
141
|
+
for (const tag of record.tags) {
|
|
142
|
+
this.tags.push(new EsolveTag(tag));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if ((record.topics) && (record.topics.length > 0)) {
|
|
146
|
+
for (const topic of record.topics) {
|
|
147
|
+
this.topics.push(new EsolveTopic(topic));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if ((record.badges) && (record.badges.length > 0)) {
|
|
151
|
+
for (const badge of record.badges) {
|
|
152
|
+
this.badges.push(new EsolveStockBadge(+badge.id, badge.text, badge.identifier, badge.font_colour, badge.badge_colour, +badge.sort_priority));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (record.category) {
|
|
156
|
+
this.category = new EsolveCategoryTreeItem(record.category.type, record.category.id, record.category.parent_id, record.category.description, record.category.sef_description, record.category.short_description, record.category.sort_priority, record.category.active, record.category.display_only, record.category.image, record.category.seo_page_title, record.category.seo_keywords, record.category.seo_description);
|
|
157
|
+
}
|
|
158
|
+
if (record.subcategory) {
|
|
159
|
+
this.subcategory = new EsolveCategoryTreeItem(record.subcategory.type, record.subcategory.id, record.subcategory.parent_id, record.subcategory.description, record.subcategory.sef_description, record.subcategory.short_description, record.subcategory.sort_priority, record.subcategory.active, record.subcategory.display_only, record.subcategory.image, record.subcategory.seo_page_title, record.subcategory.seo_keywords, record.subcategory.seo_description);
|
|
160
|
+
}
|
|
161
|
+
if (record.manufacturer) {
|
|
162
|
+
this.manufacturer = new EsolveManufacturer(record.manufacturer);
|
|
163
|
+
}
|
|
164
|
+
if (record.range) {
|
|
165
|
+
this.range = new EsolveRange(record.range);
|
|
166
|
+
}
|
|
167
|
+
if (record.colours && record.colours.length > 0) {
|
|
168
|
+
for (const colour of record.colours) {
|
|
169
|
+
this.colours.push(new EsolveColour(colour));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (record.lead_times) {
|
|
173
|
+
this.lead_times = new EsolveStockLeadTimes(record.lead_times);
|
|
174
|
+
}
|
|
175
|
+
if (record.custom_fields) {
|
|
176
|
+
this.custom_fields = record.custom_fields;
|
|
177
|
+
}
|
|
178
|
+
seo_title = record.seo_page_title ?? '';
|
|
179
|
+
seo_keywords = record.seo_keywords ?? '';
|
|
180
|
+
}
|
|
181
|
+
this.price = new EsolveStockPrice(base_price, base_price_with_tax, sell_price, sell_price_with_tax);
|
|
182
|
+
if (seo_title.trim() === '') {
|
|
183
|
+
seo_title = this.name;
|
|
184
|
+
}
|
|
185
|
+
this.seo_details = new EsolveSeoInfo(seo_title, this.description, seo_keywords);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Path to tiny stock image
|
|
189
|
+
*/
|
|
190
|
+
get tiny_image_src() {
|
|
191
|
+
return this.getImagePath('tiny');
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Path to thumbnail stock image
|
|
195
|
+
*/
|
|
196
|
+
get thumbnail_image_src() {
|
|
197
|
+
return this.getImagePath('thumb');
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Path to small stock image
|
|
201
|
+
*/
|
|
202
|
+
get small_image_src() {
|
|
203
|
+
return this.getImagePath('small');
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Path to big stock image
|
|
207
|
+
*/
|
|
208
|
+
get big_image_src() {
|
|
209
|
+
return this.getImagePath('big');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Path to original stock image
|
|
213
|
+
*/
|
|
214
|
+
get original_image_src() {
|
|
215
|
+
return this.getImagePath('original');
|
|
216
|
+
}
|
|
217
|
+
getImagePath(image_size) {
|
|
218
|
+
if (this.image_name !== '') {
|
|
219
|
+
return `/images/stock/${image_size}/${this.image_name}`;
|
|
220
|
+
}
|
|
221
|
+
return '';
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staXRlbS1iYXNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxtQkFBbUI7SUFzSzVCLFlBQVksU0FBNEMsRUFBRTtRQXJLMUQ7O1dBRUc7UUFDSSxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCOztXQUVHO1FBQ0ksU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUN6Qjs7V0FFRztRQUNJLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDekI7O1dBRUc7UUFDSSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQzdCOztXQUVHO1FBQ0ksZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFDekM7O1dBRUc7UUFDSSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQy9COztXQUVHO1FBQ0ksYUFBUSxHQUFZLEtBQUssQ0FBQztRQUNqQzs7V0FFRztRQUNJLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDMUI7O1dBRUc7UUFDSSxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCOztXQUVHO1FBQ0ksV0FBTSxHQUFXLENBQUMsQ0FBQztRQUMxQjs7V0FFRztRQUNJLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDMUI7O1dBRUc7UUFDSSxvQkFBZSxHQUE2QixNQUFNLENBQUM7UUFDMUQ7Ozs7V0FJRztRQUNJLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBS2hDOzs7O1dBSUc7UUFDSSxtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUtsQzs7OztXQUlHO1FBQ0kscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBS3BDOzs7O1dBSUc7UUFDSSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBYTdCOztXQUVHO1FBQ0ksU0FBSSxHQUFnQixFQUFFLENBQUM7UUFDOUI7O1dBRUc7UUFDSSxXQUFNLEdBQWtCLEVBQUUsQ0FBQztRQUNsQzs7V0FFRztRQUNJLFdBQU0sR0FBdUIsRUFBRSxDQUFDO1FBS3ZDOztXQUVHO1FBQ0ksWUFBTyxHQUFtQixFQUFFLENBQUM7UUFNcEM7O1dBRUc7UUFDSyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBc0M1QixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFFNUIsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUUxQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsQ0FBQztZQUVqRCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXBDLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO2FBQ2pEO1lBRUQsVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV6RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtvQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUM1QzthQUNKO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQ2pDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDVCxLQUFLLENBQUMsSUFBSSxFQUNWLEtBQUssQ0FBQyxVQUFVLEVBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQ2pCLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDdkIsQ0FBQyxDQUFDO2lCQUNOO2FBQ0o7WUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxzQkFBc0IsQ0FDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUNsQixNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUMvQixNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDbEMsQ0FBQzthQUNMO1lBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksc0JBQXNCLENBQ3pDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUN2QixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFDckIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQzVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUM5QixNQUFNLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFDbEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFDcEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ2hDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUN6QixNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksRUFDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQ3hCLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUNqQyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksRUFDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQ3JDLENBQUM7YUFDTDtZQUVELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuRTtZQUVELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QztZQUVELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdDLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztpQkFDL0M7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNqRTtZQUVELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO2FBQzdDO1lBRUQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQ3hDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDN0IsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsbUJBQW1CLENBQ3RCLENBQUM7UUFFRixJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekIsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxDQUNoQyxTQUFTLEVBQ1QsSUFBSSxDQUFDLFdBQVcsRUFDaEIsWUFBWSxDQUNmLENBQUM7SUFDTixDQUFDO0lBaExEOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBaUpNLFlBQVksQ0FBQyxVQUFnQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0Q7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcywgRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscywgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZW8nO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZVNpemUsIEVzb2x2ZVN0b2NrVW5pdE9mTWVhc3VyZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYXNlUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrQmFkZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrUHJpY2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbG91ciB9IGZyb20gJy4vZXNvbHZlLWNvbG91ci5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtQmFzZTxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4gaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogZVNvbHZlIEdlbmVyYXRlZCBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIENvZGUgaWRlbnRpZnlpbmcgdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvZGU6IHN0cmluZyA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBuYW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWZfbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHN0b2NrIGl0ZW1cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRnVsbCBkZXNjcmlwdGlvbiBvZiBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBleHRlbmRlZF9kZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIEZlYXR1cmVkIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBIZWlnaHQgbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGVuZ3RoIC8gZGVwdGggbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZWlnaHQgbWVhc3VyZWQgaW4ga2lsb2dyYW1zIChrZylcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogVW5pdHMgdXNlZCB0byBtZWFzdXJlIHRoZSBxdWFudGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgPSAndW5pdCc7XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5X2lkOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBsaW5rZWQgY2F0ZWdvcnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5PzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbTtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgZGVmYXVsdCBzdWJjYXRlZ29yeSBsaW5rZWQgdG8gdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHN1YmNhdGVnb3J5LmVzb2x2ZV9pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIHN1YmNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGxpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1hbnVmYWN0dXJlci5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyc19pZDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBsaW5rZWQgcmFuZ2VcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJhbmdlLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZXNfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCByYW5nZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmFuZ2U/OiBFc29sdmVSYW5nZTtcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBwcmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJpY2U6IEVzb2x2ZVN0b2NrUHJpY2U7XHJcbiAgICAvKipcclxuICAgICAqIFNFTyBwYWdlIGRldGFpbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgdGFnc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHRvcGljc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9waWNzOiBFc29sdmVUb3BpY1tdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIGJhZGdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYmFkZ2VzOiBFc29sdmVTdG9ja0JhZGdlW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgaXRlbSBjdXN0b20gZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3VzdG9tX2ZpZWxkcz86IEVzb2x2ZUN1c3RvbUZpZWxkczxUPjtcclxuICAgIC8qKlxyXG4gICAgICogQ29sb3Vyc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sb3VyczogRXNvbHZlQ29sb3VyW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgSXRlbSBMZWFkIFRpbWVzIGZvciBzdXBwbHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxlYWRfdGltZXM/OiBFc29sdmVTdG9ja0xlYWRUaW1lcztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltYWdlIGZpbGVuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIHRpbnkgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aW55X2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aHVtYm5haWwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBzbWFsbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnc21hbGwnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gYmlnIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYmlnX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnYmlnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIG9yaWdpbmFsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogUGFydGlhbDxFc29sdmVTdG9ja0Jhc2VSZWNvcmQ8VD4+ID0ge30pIHtcclxuICAgICAgICBsZXQgc2VvX3RpdGxlID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19rZXl3b3JkcyA9ICcnO1xyXG4gICAgICAgIGxldCBiYXNlX3ByaWNlID0gMDtcclxuICAgICAgICBsZXQgYmFzZV9wcmljZV93aXRoX3RheCA9IDA7XHJcbiAgICAgICAgbGV0IHNlbGxfcHJpY2UgPSAwO1xyXG4gICAgICAgIGxldCBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gKyhyZWNvcmQuaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHJlY29yZC5jb2RlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQubmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zZWZfbmFtZSA9IHJlY29yZC5zZWZfbmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHJlY29yZC5kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5leHRlbmRlZF9kZXNjcmlwdGlvbiA9IHJlY29yZC5leHRlbmRlZF9kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gcmVjb3JkLmltYWdlX25hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlfaWQgPSByZWNvcmQuY2F0ZWdvcnlfaWQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnlfaWQgPSArKHJlY29yZC5zdWJjYXRlZ29yeV9pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5tYW51ZmFjdHVyZXJzX2lkID0gKyhyZWNvcmQubWFudWZhY3R1cmVyc19pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXNfaWQgPSArKHJlY29yZC5yYW5nZXNfaWQgPz8gMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICEhKyhyZWNvcmQuaXNfYWN0aXZlID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5mZWF0dXJlZCA9ICEhKyhyZWNvcmQuaXNfZmVhdHVyZWQgPz8gZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSArKHJlY29yZC5oZWlnaHQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSArKHJlY29yZC53aWR0aCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSArKHJlY29yZC5sZW5ndGggPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2VpZ2h0ID0gKyhyZWNvcmQud2VpZ2h0ID8/IDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC51bml0X29mX21lYXN1cmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5pdF9vZl9tZWFzdXJlID0gcmVjb3JkLnVuaXRfb2ZfbWVhc3VyZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYmFzZV9wcmljZSA9ICsocmVjb3JkLnJlZ3VsYXJfc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBiYXNlX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQucmVndWxhcl9zZWxscHJpY2VfaW5jbHVzaXZlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlID0gKyhyZWNvcmQuc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQuc2VsbHByaWNlX2luY2x1c2l2ZSA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICgocmVjb3JkLnRhZ3MpICYmIChyZWNvcmQudGFncy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChuZXcgRXNvbHZlVGFnKHRhZykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC50b3BpY3MpICYmIChyZWNvcmQudG9waWNzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRvcGljIG9mIHJlY29yZC50b3BpY3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcGljcy5wdXNoKG5ldyBFc29sdmVUb3BpYyh0b3BpYykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC5iYWRnZXMpICYmIChyZWNvcmQuYmFkZ2VzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJhZGdlIG9mIHJlY29yZC5iYWRnZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhZGdlcy5wdXNoKG5ldyBFc29sdmVTdG9ja0JhZGdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArYmFkZ2UuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLnRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmZvbnRfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5iYWRnZV9jb2xvdXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtiYWRnZS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuc3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnkgPSBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnBhcmVudF9pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlZl9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5tYW51ZmFjdHVyZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFudWZhY3R1cmVyID0gbmV3IEVzb2x2ZU1hbnVmYWN0dXJlcihyZWNvcmQubWFudWZhY3R1cmVyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5yYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZSA9IG5ldyBFc29sdmVSYW5nZShyZWNvcmQucmFuZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNvbG91cnMgJiYgcmVjb3JkLmNvbG91cnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2xvdXIgb2YgcmVjb3JkLmNvbG91cnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbG91cnMucHVzaChuZXcgRXNvbHZlQ29sb3VyKGNvbG91cikpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmxlYWRfdGltZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVhZF90aW1lcyA9IG5ldyBFc29sdmVTdG9ja0xlYWRUaW1lcyhyZWNvcmQubGVhZF90aW1lcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuY3VzdG9tX2ZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21fZmllbGRzID0gcmVjb3JkLmN1c3RvbV9maWVsZHM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHJlY29yZC5zZW9fcGFnZV90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzID0gcmVjb3JkLnNlb19rZXl3b3JkcyA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpY2UgPSBuZXcgRXNvbHZlU3RvY2tQcmljZShcclxuICAgICAgICAgICAgYmFzZV9wcmljZSxcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgc2VsbF9wcmljZSxcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoc2VvX3RpdGxlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgc2VvX3RpdGxlID0gdGhpcy5uYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZW9fZGV0YWlscyA9IG5ldyBFc29sdmVTZW9JbmZvKFxyXG4gICAgICAgICAgICBzZW9fdGl0bGUsXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVBhdGgoaW1hZ2Vfc2l6ZTogRXNvbHZlU3RvY2tJbWFnZVNpemUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgL2ltYWdlcy9zdG9jay8ke2ltYWdlX3NpemV9LyR7dGhpcy5pbWFnZV9uYW1lfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stock item object list
|
|
3
|
+
*/
|
|
4
|
+
export class EsolveStockItemList {
|
|
5
|
+
constructor(stock_items, total, page) {
|
|
6
|
+
this.stock_items = stock_items;
|
|
7
|
+
this.total = total;
|
|
8
|
+
this.page = page;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tbGlzdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staXRlbS1saXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNXLFdBQWlDLEVBQ2pDLEtBQWEsRUFDYixJQUFZO1FBRlosZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ25CLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUdlbmVyaWNDdXN0b21GaWVsZHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0l0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBTdG9jayBpdGVtIG9iamVjdCBsaXN0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtTGlzdDxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHN0b2NrX2l0ZW1zOiBFc29sdmVTdG9ja0l0ZW08VD5bXSxcclxuICAgICAgICBwdWJsaWMgdG90YWw6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgcGFnZTogbnVtYmVyLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EsolveStockItemBase } from './esolve-stock-item-base.model';
|
|
2
|
+
import { EsolveStockGroup } from './esolve-stock-group.model';
|
|
3
|
+
/**
|
|
4
|
+
* Stock Item object. It can be a service or a product (physical and/or digital).
|
|
5
|
+
*/
|
|
6
|
+
export class EsolveStockItem extends EsolveStockItemBase {
|
|
7
|
+
/**
|
|
8
|
+
* Constructs an instance of EsolveStockItem
|
|
9
|
+
*/
|
|
10
|
+
constructor(record) {
|
|
11
|
+
super(record);
|
|
12
|
+
if (record?.group && record.grouped_items) {
|
|
13
|
+
this.group = new EsolveStockGroup(record.group, record.grouped_items);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBK0MsU0FBUSxtQkFBc0I7SUFHdEY7O09BRUc7SUFDSCxZQUFZLE1BQXNDO1FBQzlDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVkLElBQUksTUFBTSxFQUFFLEtBQUssSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDN0IsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsYUFBYSxDQUN2QixDQUFDO1NBQ0w7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVHZW5lcmljQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtQmFzZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrR3JvdXAgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1ncm91cC5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU3RvY2sgSXRlbSBvYmplY3QuIEl0IGNhbiBiZSBhIHNlcnZpY2Ugb3IgYSBwcm9kdWN0IChwaHlzaWNhbCBhbmQvb3IgZGlnaXRhbCkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtPFQgPSBFc29sdmVHZW5lcmljQ3VzdG9tRmllbGRzPiBleHRlbmRzIEVzb2x2ZVN0b2NrSXRlbUJhc2U8VD4ge1xyXG4gICAgcHVibGljIGdyb3VwPzogRXNvbHZlU3RvY2tHcm91cDxUPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYW4gaW5zdGFuY2Ugb2YgRXNvbHZlU3RvY2tJdGVtXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlU3RvY2tSZWNvcmQ8VD4+KSB7XHJcbiAgICAgICAgc3VwZXIocmVjb3JkKTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZD8uZ3JvdXAgJiYgcmVjb3JkLmdyb3VwZWRfaXRlbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cCA9IG5ldyBFc29sdmVTdG9ja0dyb3VwKFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmdyb3VwLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmdyb3VwZWRfaXRlbXMsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class EsolveStockLeadTimes {
|
|
2
|
+
constructor(lead_times) {
|
|
3
|
+
this.min = 0;
|
|
4
|
+
this.max = 0;
|
|
5
|
+
this.min = lead_times.min;
|
|
6
|
+
this.max = lead_times.max;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWxlYWQtdGltZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLWxlYWQtdGltZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QixZQUFZLFVBQXNDO1FBSDNDLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFDaEIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUduQixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0b2NrTGVhZFRpbWVzUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tMZWFkVGltZXMge1xyXG4gICAgcHVibGljIG1pbjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBtYXg6IG51bWJlciA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IobGVhZF90aW1lczogRXNvbHZlU3RvY2tMZWFkVGltZXNSZWNvcmQpIHtcclxuICAgICAgICB0aGlzLm1pbiA9IGxlYWRfdGltZXMubWluO1xyXG4gICAgICAgIHRoaXMubWF4ID0gbGVhZF90aW1lcy5tYXg7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Price of eSolve stock item
|
|
3
|
+
*/
|
|
4
|
+
export class EsolveStockPrice {
|
|
5
|
+
/**
|
|
6
|
+
* Create stock price instance
|
|
7
|
+
* @param base_price Price without tax
|
|
8
|
+
* @param base_price_with_tax Price with tax
|
|
9
|
+
* @param sell_price Price without tax and with discounts applied if applicable
|
|
10
|
+
* @param sell_price_with_tax Price with tax and with discounts applied if applicable
|
|
11
|
+
*/
|
|
12
|
+
constructor(
|
|
13
|
+
/**
|
|
14
|
+
* Price without tax
|
|
15
|
+
*/
|
|
16
|
+
base_price = 0,
|
|
17
|
+
/**
|
|
18
|
+
* Price with tax
|
|
19
|
+
*/
|
|
20
|
+
base_price_with_tax = 0,
|
|
21
|
+
/**
|
|
22
|
+
* Price without tax and with discounts applied if applicable
|
|
23
|
+
*/
|
|
24
|
+
sell_price = 0,
|
|
25
|
+
/**
|
|
26
|
+
* Price with tax and with discounts applied if applicable
|
|
27
|
+
*/
|
|
28
|
+
sell_price_with_tax = 0) {
|
|
29
|
+
this.base_price = base_price;
|
|
30
|
+
this.base_price_with_tax = base_price_with_tax;
|
|
31
|
+
this.sell_price = sell_price;
|
|
32
|
+
this.sell_price_with_tax = sell_price_with_tax;
|
|
33
|
+
if ((this.base_price === 0) && (this.sell_price > 0)) {
|
|
34
|
+
this.base_price = this.sell_price;
|
|
35
|
+
this.base_price_with_tax = this.sell_price_with_tax;
|
|
36
|
+
}
|
|
37
|
+
else if ((this.base_price > 0) && (this.sell_price === 0)) {
|
|
38
|
+
this.sell_price = this.base_price;
|
|
39
|
+
this.sell_price_with_tax = this.base_price_with_tax;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLXByaWNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1zdG9jay1wcmljZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekI7Ozs7OztPQU1HO0lBQ0g7SUFDSTs7T0FFRztJQUNJLGFBQXFCLENBQUM7SUFFN0I7O09BRUc7SUFDSSxzQkFBOEIsQ0FBQztJQUV0Qzs7T0FFRztJQUNJLGFBQXFCLENBQUM7SUFFN0I7O09BRUc7SUFDSSxzQkFBOEIsQ0FBQztRQWYvQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBS3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBWTtRQUsvQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBS3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBWTtRQUV0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDdkQ7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDdkQ7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogUHJpY2Ugb2YgZVNvbHZlIHN0b2NrIGl0ZW1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja1ByaWNlIHtcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIHN0b2NrIHByaWNlIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gYmFzZV9wcmljZSBQcmljZSB3aXRob3V0IHRheFxyXG4gICAgICogQHBhcmFtIGJhc2VfcHJpY2Vfd2l0aF90YXggUHJpY2Ugd2l0aCB0YXhcclxuICAgICAqIEBwYXJhbSBzZWxsX3ByaWNlIFByaWNlIHdpdGhvdXQgdGF4IGFuZCB3aXRoIGRpc2NvdW50cyBhcHBsaWVkIGlmIGFwcGxpY2FibGVcclxuICAgICAqIEBwYXJhbSBzZWxsX3ByaWNlX3dpdGhfdGF4IFByaWNlIHdpdGggdGF4IGFuZCB3aXRoIGRpc2NvdW50cyBhcHBsaWVkIGlmIGFwcGxpY2FibGVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aG91dCB0YXhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgYmFzZV9wcmljZTogbnVtYmVyID0gMCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aCB0YXhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgYmFzZV9wcmljZV93aXRoX3RheDogbnVtYmVyID0gMCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aG91dCB0YXggYW5kIHdpdGggZGlzY291bnRzIGFwcGxpZWQgaWYgYXBwbGljYWJsZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzZWxsX3ByaWNlOiBudW1iZXIgPSAwLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcmljZSB3aXRoIHRheCBhbmQgd2l0aCBkaXNjb3VudHMgYXBwbGllZCBpZiBhcHBsaWNhYmxlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNlbGxfcHJpY2Vfd2l0aF90YXg6IG51bWJlciA9IDAsXHJcbiAgICApIHtcclxuICAgICAgICBpZiAoKHRoaXMuYmFzZV9wcmljZSA9PT0gMCkgJiYgKHRoaXMuc2VsbF9wcmljZSA+IDApKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzZV9wcmljZSA9IHRoaXMuc2VsbF9wcmljZTtcclxuICAgICAgICAgICAgdGhpcy5iYXNlX3ByaWNlX3dpdGhfdGF4ID0gdGhpcy5zZWxsX3ByaWNlX3dpdGhfdGF4O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuYmFzZV9wcmljZSA+IDApICYmICh0aGlzLnNlbGxfcHJpY2UgPT09IDApKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsbF9wcmljZSA9IHRoaXMuYmFzZV9wcmljZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxsX3ByaWNlX3dpdGhfdGF4ID0gdGhpcy5iYXNlX3ByaWNlX3dpdGhfdGF4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Classes
|
|
2
|
+
export * from './esolve-colour.model';
|
|
3
|
+
export * from './esolve-stock-item.model';
|
|
4
|
+
export * from './esolve-stock-price.model';
|
|
5
|
+
export * from './esolve-stock-badge.model';
|
|
6
|
+
export * from './esolve-stock-group.model';
|
|
7
|
+
export * from './esolve-stock-item-base.model';
|
|
8
|
+
export * from './esolve-stock-item-list.model';
|
|
9
|
+
export * from './esolve-stock-group-item.model';
|
|
10
|
+
export * from './esolve-recipe-stock-item.model';
|
|
11
|
+
export * from './esolve-linked-stock-item.model';
|
|
12
|
+
export * from './esolve-stock-lead-times.model';
|
|
13
|
+
export * from './esolve-media-stock-item.model';
|
|
14
|
+
export * from './esolve-stock-image.model';
|
|
15
|
+
export * from './esolve-stock-image-collection.model';
|
|
16
|
+
export * from './esolve-additional-stock-image.model';
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2xhc3Nlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jb2xvdXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stcHJpY2UubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYWRnZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS1iYXNlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS1saXN0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stZ3JvdXAtaXRlbS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXJlY2lwZS1zdG9jay1pdGVtLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbGlua2VkLXN0b2NrLWl0ZW0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1sZWFkLXRpbWVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWVkaWEtc3RvY2staXRlbS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWltYWdlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staW1hZ2UtY29sbGVjdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWFkZGl0aW9uYWwtc3RvY2staW1hZ2UubW9kZWwnO1xyXG4iXX0=
|
|
@@ -3,12 +3,7 @@ import { HttpParams } from '@angular/common/http';
|
|
|
3
3
|
import { map } from 'rxjs/operators';
|
|
4
4
|
import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';
|
|
5
5
|
import { EsolveList } from '../shared/esolve-list.model';
|
|
6
|
-
import { EsolveStockItem } from './
|
|
7
|
-
import { EsolveStockItemList } from './esolve-stock-item-list.model';
|
|
8
|
-
import { EsolveRecipeStockItem } from './esolve-recipe-stock-item.model';
|
|
9
|
-
import { EsolveLinkedStockItem } from './esolve-linked-stock-item.model';
|
|
10
|
-
import { EsolveMediaStockItem } from './esolve-media-stock-item.model';
|
|
11
|
-
import { EsolveStockImageCollection } from './esolve-stock-image-collection.model';
|
|
6
|
+
import { EsolveStockItem, EsolveStockItemList, EsolveMediaStockItem, EsolveRecipeStockItem, EsolveLinkedStockItem, EsolveStockImageCollection, } from './classes';
|
|
12
7
|
import * as i0 from "@angular/core";
|
|
13
8
|
import * as i1 from "@angular/common/http";
|
|
14
9
|
export class EsolveStockService {
|
|
@@ -69,6 +64,15 @@ export class EsolveStockService {
|
|
|
69
64
|
if (options.rows) {
|
|
70
65
|
params = params.set('rows', options.rows);
|
|
71
66
|
}
|
|
67
|
+
if (options.sort) {
|
|
68
|
+
const sort = options.sort;
|
|
69
|
+
if (sort.field) {
|
|
70
|
+
params = params.set('sort', sort.field);
|
|
71
|
+
}
|
|
72
|
+
if (sort.order) {
|
|
73
|
+
params = params.set('order', sort.order);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
72
76
|
if (options.search_phrase) {
|
|
73
77
|
params = params.set('search_phrase', options.search_phrase);
|
|
74
78
|
}
|
|
@@ -136,9 +140,27 @@ export class EsolveStockService {
|
|
|
136
140
|
*
|
|
137
141
|
* @param code Stock item code
|
|
138
142
|
*/
|
|
139
|
-
getRecipeItems(code) {
|
|
143
|
+
getRecipeItems(code, options) {
|
|
144
|
+
let params = new HttpParams().set('code', code);
|
|
145
|
+
if (options) {
|
|
146
|
+
if (options.page) {
|
|
147
|
+
params = params.set('page', options.page);
|
|
148
|
+
}
|
|
149
|
+
if (options.rows) {
|
|
150
|
+
params = params.set('rows', options.rows);
|
|
151
|
+
}
|
|
152
|
+
if (options.sort) {
|
|
153
|
+
const sort = options.sort;
|
|
154
|
+
if (sort.field) {
|
|
155
|
+
params = params.set('sort', sort.field);
|
|
156
|
+
}
|
|
157
|
+
if (sort.order) {
|
|
158
|
+
params = params.set('order', sort.order);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
140
162
|
return this.http
|
|
141
|
-
.get(`${this.config.api_url}/get-recipe-items.php`, { params
|
|
163
|
+
.get(`${this.config.api_url}/get-recipe-items.php`, { params })
|
|
142
164
|
.pipe(map((response) => {
|
|
143
165
|
if ((response.records === undefined) ||
|
|
144
166
|
(response.records.length <= 0)) {
|
|
@@ -163,6 +185,15 @@ export class EsolveStockService {
|
|
|
163
185
|
is_active: options.is_active ?? true,
|
|
164
186
|
},
|
|
165
187
|
});
|
|
188
|
+
if (options.sort) {
|
|
189
|
+
const sort = options.sort;
|
|
190
|
+
if (sort.field) {
|
|
191
|
+
params = params.set('sort', sort.field);
|
|
192
|
+
}
|
|
193
|
+
if (sort.order) {
|
|
194
|
+
params = params.set('order', sort.order);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
166
197
|
if (options.media_identifier) {
|
|
167
198
|
params = params.append('media_identifier', options.media_identifier);
|
|
168
199
|
}
|
|
@@ -265,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
265
296
|
type: Inject,
|
|
266
297
|
args: [ESOLVE_CONNECT_CONFIG]
|
|
267
298
|
}] }, { type: i1.HttpClient }]; } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2Vzb2x2ZS1zdG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUt6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBS25GLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLElBQVk7UUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNSLElBQUk7YUFDUDtTQUNKLENBQUMs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QVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVMaXN0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVHZW5lcmljQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtIH0gZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrSXRlbUxpc3QgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVSZWNpcGVTdG9ja0l0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1yZWNpcGUtc3RvY2staXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLWxpbmtlZC1zdG9jay1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVMaW5rZWRTdG9ja1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLWxpbmtlZC1zdG9jay1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVjaXBlSXRlbVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXJlY2lwZS1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVNZWRpYVN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLW1lZGlhLXN0b2NrLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVNZWRpYVN0b2NrSXRlbVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW1lZGlhLXN0b2NrLWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhU3RvY2tJdGVtT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLW1lZGlhLXN0b2NrLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVNZWRpYVN0b2NrSXRlbUxpc3QgfSBmcm9tICcuL2Vzb2x2ZS1tZWRpYS1zdG9jay1pdGVtLWxpc3QudHlwZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtc3RvY2staW1hZ2UtY29sbGVjdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24gfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pbWFnZS1jb2xsZWN0aW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrU2VydmljZTxUID0gRXNvbHZlR2VuZXJpY0N1c3RvbUZpZWxkcz4ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHN0b2NrIHJlY29yZCBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgdGhlIGNvZGUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgZVNvbHZlIHN0b2NrIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrSXRlbShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbTxUPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RvY2sgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgU0VGIG5hbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNlZl9uYW1lIFNFRiBuYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW1Gcm9tU0VGKHNlZl9uYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbTxUPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgc2VmX25hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja1JlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgbGlzdCBvZiBzdG9jayBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgaW5mbyBwcm92aWRlZFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFN0b2NrIGZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW1zKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbUxpc3Q8VD4+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucGFnZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zZWFyY2hfcGhyYXNlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaF9waHJhc2UnLCBvcHRpb25zLnNlYXJjaF9waHJhc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuZGlzcGxheV9vbmx5KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Rpc3BsYXlfb25seScsIG9wdGlvbnMuZGlzcGxheV9vbmx5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmlzX2FjdGl2ZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpc19hY3RpdmUnLCBvcHRpb25zLmlzX2FjdGl2ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5jYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjYXRlZ29yeV9pZCcsIG9wdGlvbnMuY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3ViY2F0ZWdvcnlfaWQnLCBvcHRpb25zLnN1YmNhdGVnb3J5X2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbWFudWZhY3R1cmVyc19pZCcsIG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yYW5nZXNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncmFuZ2VzX2lkJywgb3B0aW9ucy5yYW5nZXNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc3BlY2lhbHNfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3BlY2lhbHNfaWQnLCBvcHRpb25zLnNwZWNpYWxzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRhZ19pZF9saXN0KSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRhZ19pZF9saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RhZ19pZCcsIG9wdGlvbnMudGFnX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMudG9waWNfaWRfbGlzdCkge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy50b3BpY19pZF9saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RvcGljX2lkJywgb3B0aW9ucy50b3BpY19pZF9saXN0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrSXRlbXM6IEVzb2x2ZVN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkcy5mb3JFYWNoKHN0b2NrUmVjb3JkID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0l0ZW1zLnB1c2godGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbUxpc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tJdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBsaW5rZWQgdG8gYSBzdG9jayBpdGVtIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldExpbmtlZEl0ZW1zKFxyXG4gICAgICAgIGNvZGU6IHN0cmluZ1xyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD5bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVMaW5rZWRTdG9ja1JlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbGlua2VkLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjb2RlIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaW5rZWRJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBvbiBhIHJlY2lwZSBmcm9tIHRoZSBlU29sdmUgQVBJXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgU3RvY2sgaXRlbSBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRSZWNpcGVJdGVtcyhcclxuICAgICAgICBjb2RlOiBzdHJpbmdcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+W10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcmVjaXBlLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjb2RlIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSZWNpcGVJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBsaW5rZWQgdG8gYSBzdG9jayBpdGVtIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVkaWFMaW5rZWRJdGVtcyhcclxuICAgICAgICBvcHRpb25zOiBFc29sdmVNZWRpYVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZU1lZGlhU3RvY2tJdGVtTGlzdDxUPj4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIHJvd3M6IG9wdGlvbnMucm93cyA/PyAwLFxyXG4gICAgICAgICAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgICAgICByYW5nZXNfaWQ6IG9wdGlvbnMucmFuZ2VzX2lkID8/IDAsXHJcbiAgICAgICAgICAgICAgICBtYW51ZmFjdHVyZXJzX2lkOiBvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlfb25seTogb3B0aW9ucy5kaXNwbGF5X29ubHkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IG9wdGlvbnMuaXNfYWN0aXZlID8/IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1lZGlhX2lkZW50aWZpZXIpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbWVkaWFfaWRlbnRpZmllcicsIG9wdGlvbnMubWVkaWFfaWRlbnRpZmllcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tZWRpYV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtZWRpYV9pZCcsIG9wdGlvbnMubWVkaWFfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1tZWRpYS1saW5rZWQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVMaXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnJvd3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGZ1bGwgaW1hZ2UgY29sbGVjdGlvbiBvZiBhIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrSW1hZ2VDb2xsZWN0aW9uKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb25SZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1pdGVtLWltYWdlLWNvbGxlY3Rpb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNvZGUgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gbmV3IEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkIGFuZCBjb252ZXJ0cyBpdCB0byBhbiBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzU3RvY2tJdGVtKHJlY29yZDogRXNvbHZlU3RvY2tSZWNvcmQ8VD4pOiBFc29sdmVTdG9ja0l0ZW08VD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlU3RvY2tJdGVtPFQ+KHJlY29yZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGxpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgTGlua2VkIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTGlua2VkSXRlbXMoXHJcbiAgICAgICAgcmVjb3JkczogRXNvbHZlTGlua2VkU3RvY2tSZWNvcmQ8VD5bXSxcclxuICAgICk6IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdIHtcclxuICAgICAgICBjb25zdCBpdGVtczogRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD4ocmVjb3JkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgcmVjaXBlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHMgYW5kIGNvbnZlcnRzIHRoZW0gdG8gb2JqZWN0cy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNpcGUgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3Jkc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NSZWNpcGVJdGVtcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVSZWNpcGVJdGVtUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChuZXcgRXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGxpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgTGlua2VkIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTWVkaWFTdG9ja0l0ZW1zKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVNZWRpYVN0b2NrSXRlbTxUPltdIHtcclxuICAgICAgICBjb25zdCBpdGVtczogRXNvbHZlTWVkaWFTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZU1lZGlhU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgc3RvY2sgcmVjb3JkcyBmcm9tIEhUVFAgcGFyYW1zLlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBIVFRQIGNsaWVudCBwYXJhbWV0ZXJzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0U3RvY2tSZWNvcmRzKFxyXG4gICAgICAgIHBhcmFtczogSHR0cFBhcmFtcyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVTdG9ja1JlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1pdGVtcy5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2Vzb2x2ZS1zdG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZXpELE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUM3QixNQUFNLFdBQVcsQ0FBQzs7O0FBS25CLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLElBQVk7UUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNSLElBQUk7YUFDUDtTQUNKLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNYLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFD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QU0sRUFBRSxDQUNiLENBQUM7SUFDTixDQUFDOzsrR0F2WlEsa0JBQWtCLGtCQUVmLHFCQUFxQjttSEFGeEIsa0JBQWtCLGNBRmYsTUFBTTsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUxpc3QgfSBmcm9tICcuLi9zaGFyZWQvZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUdlbmVyaWNDdXN0b21GaWVsZHMgfSBmcm9tICcuLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVNZWRpYVN0b2NrSXRlbUxpc3QgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVN0b2NrUmVjb3JkLFxyXG4gICAgRXNvbHZlU3RvY2tJdGVtT3B0aW9ucyxcclxuICAgIEVzb2x2ZVJlY2lwZUl0ZW1SZWNvcmQsXHJcbiAgICBFc29sdmVMaW5rZWRTdG9ja1JlY29yZCxcclxuICAgIEVzb2x2ZVJlY2lwZVN0b2NrT3B0aW9ucyxcclxuICAgIEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkLFxyXG4gICAgRXNvbHZlTWVkaWFTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb25SZWNvcmQsXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVN0b2NrSXRlbSxcclxuICAgIEVzb2x2ZVN0b2NrSXRlbUxpc3QsXHJcbiAgICBFc29sdmVNZWRpYVN0b2NrSXRlbSxcclxuICAgIEVzb2x2ZVJlY2lwZVN0b2NrSXRlbSxcclxuICAgIEVzb2x2ZUxpbmtlZFN0b2NrSXRlbSxcclxuICAgIEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uLFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja1NlcnZpY2U8VCA9IEVzb2x2ZUdlbmVyaWNDdXN0b21GaWVsZHM+IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBzdG9jayByZWNvcmQgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIHRoZSBjb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2RlIGVTb2x2ZSBzdG9jayBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW0oY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW08VD4+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja1JlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHN0b2NrIHJlY29yZCBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgdGhlIFNFRiBuYW1lLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzZWZfbmFtZSBTRUYgbmFtZSBvZiB0aGUgc3RvY2sgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtRnJvbVNFRihzZWZfbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW08VD4+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIHNlZl9uYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RvY2tSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvY2tSZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NTdG9ja0l0ZW0oc3RvY2tSZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGxpc3Qgb2Ygc3RvY2sgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIGluZm8gcHJvdmlkZWRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBTdG9jayBmaWx0ZXIgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtcyhcclxuICAgICAgICBvcHRpb25zOiBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW1MaXN0PFQ+PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNlYXJjaF9waHJhc2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2VhcmNoX3BocmFzZScsIG9wdGlvbnMuc2VhcmNoX3BocmFzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5kaXNwbGF5X29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGlzcGxheV9vbmx5Jywgb3B0aW9ucy5kaXNwbGF5X29ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuaXNfYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2lzX2FjdGl2ZScsIG9wdGlvbnMuaXNfYWN0aXZlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmNhdGVnb3J5X2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhdGVnb3J5X2lkJywgb3B0aW9ucy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zdWJjYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzdWJjYXRlZ29yeV9pZCcsIG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zcGVjaWFsc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzcGVjaWFsc19pZCcsIG9wdGlvbnMuc3BlY2lhbHNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMudGFnX2lkX2xpc3QpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudGFnX2lkX2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndGFnX2lkJywgb3B0aW9ucy50YWdfaWRfbGlzdC5qb2luKCcsJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy50b3BpY19pZF9saXN0KSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvcGljX2lkX2xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9waWNfaWQnLCBvcHRpb25zLnRvcGljX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RvY2tSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvY2tJdGVtczogRXNvbHZlU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmZvckVhY2goc3RvY2tSZWNvcmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrSXRlbXMucHVzaCh0aGlzLnByb2Nlc3NTdG9ja0l0ZW0oc3RvY2tSZWNvcmQpKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlU3RvY2tJdGVtTGlzdChcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0l0ZW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnBhZ2UgPz8gMCxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBsaXN0IG9mIHN0b2NrIGl0ZW1zIGxpbmtlZCB0byBhIHN0b2NrIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIEFQSVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb2RlIFN0b2NrIGl0ZW0gY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TGlua2VkSXRlbXMoXHJcbiAgICAgICAgY29kZTogc3RyaW5nLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD5bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVMaW5rZWRTdG9ja1JlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbGlua2VkLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjb2RlIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NMaW5rZWRJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBvbiBhIHJlY2lwZSBmcm9tIHRoZSBlU29sdmUgQVBJXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgU3RvY2sgaXRlbSBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRSZWNpcGVJdGVtcyhcclxuICAgICAgICBjb2RlOiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9ucz86IEVzb2x2ZVJlY2lwZVN0b2NrT3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+W10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2NvZGUnLCBjb2RlKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFnZSkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zb3J0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzb3J0LmZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQuZmllbGQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzb3J0Lm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnb3JkZXInLCBzb3J0Lm9yZGVyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVJlY2lwZUl0ZW1SZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXJlY2lwZS1pdGVtcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSZWNpcGVJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgbGlzdCBvZiBzdG9jayBpdGVtcyBsaW5rZWQgdG8gYSBzdG9jayBpdGVtIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVkaWFMaW5rZWRJdGVtcyhcclxuICAgICAgICBvcHRpb25zOiBFc29sdmVNZWRpYVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZU1lZGlhU3RvY2tJdGVtTGlzdDxUPj4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIHJvd3M6IG9wdGlvbnMucm93cyA/PyAwLFxyXG4gICAgICAgICAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgICAgICByYW5nZXNfaWQ6IG9wdGlvbnMucmFuZ2VzX2lkID8/IDAsXHJcbiAgICAgICAgICAgICAgICBtYW51ZmFjdHVyZXJzX2lkOiBvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlfb25seTogb3B0aW9ucy5kaXNwbGF5X29ubHkgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IG9wdGlvbnMuaXNfYWN0aXZlID8/IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNvcnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydCA9IG9wdGlvbnMuc29ydDtcclxuXHJcbiAgICAgICAgICAgIGlmIChzb3J0LmZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChzb3J0Lm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvcmRlcicsIHNvcnQub3JkZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tZWRpYV9pZGVudGlmaWVyKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ21lZGlhX2lkZW50aWZpZXInLCBvcHRpb25zLm1lZGlhX2lkZW50aWZpZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWVkaWFfaWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbWVkaWFfaWQnLCBvcHRpb25zLm1lZGlhX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZWRpYVN0b2NrSXRlbVJlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbWVkaWEtbGlua2VkLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NNZWRpYVN0b2NrSXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlTGlzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucGFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5yb3dzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBmdWxsIGltYWdlIGNvbGxlY3Rpb24gb2YgYSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgU3RvY2sgaXRlbSBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0ltYWdlQ29sbGVjdGlvbihjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uUmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbS1pbWFnZS1jb2xsZWN0aW9uLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBjb2RlIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IG5ldyBFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkc1xyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZCBhbmQgY29udmVydHMgaXQgdG8gYW4gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1N0b2NrSXRlbShyZWNvcmQ6IEVzb2x2ZVN0b2NrUmVjb3JkPFQ+KTogRXNvbHZlU3RvY2tJdGVtPFQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbTxUPihyZWNvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0xpbmtlZEl0ZW1zKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChuZXcgRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIHJlY2lwZSBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjaXBlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUmVjaXBlSXRlbXMoXHJcbiAgICAgICAgcmVjb3JkczogRXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+W10ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVNZWRpYVN0b2NrSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlTWVkaWFTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBFc29sdmVNZWRpYVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHN0b2NrIHJlY29yZHMgZnJvbSBIVFRQIHBhcmFtcy5cclxuICAgICAqIEBwYXJhbSBwYXJhbXMgSFRUUCBjbGllbnQgcGFyYW1ldGVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFN0b2NrUmVjb3JkcyhcclxuICAgICAgICBwYXJhbXM6IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrUmVjb3JkPFQ+W10+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|