@yibozhang/pro-table 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -55
- package/bundles/yibozhang-pro-table.umd.js +312 -374
- package/bundles/yibozhang-pro-table.umd.js.map +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js.map +1 -1
- package/esm2015/lib/components/colmuns-setting/colmuns-setting.component.js +1 -1
- package/esm2015/lib/components/dynamic-search-field/dynamic-search-field.component.js +1 -1
- package/esm2015/lib/constants.js +1 -1
- package/esm2015/lib/page-container/page-container.component.js +1 -1
- package/esm2015/lib/page-container/page-container.module.js +1 -1
- package/esm2015/lib/page-public/antd-form.js +35 -360
- package/esm2015/lib/page-public/array-form.js +269 -0
- package/esm2015/lib/plate-input/plate-input.component.js +1 -1
- package/esm2015/lib/plate-input/plate-input.module.js +1 -1
- package/esm2015/lib/plate-input/plate-prefix-load.service.js +1 -1
- package/esm2015/lib/pro-table.component.js +1 -1
- package/esm2015/lib/pro-table.module.js +1 -1
- package/esm2015/lib/table-search-bar/table-search-bar-module.js +1 -1
- package/esm2015/lib/table-search-bar/table-search-bar.component.js +1 -1
- package/esm2015/lib/tokens.js +1 -1
- package/esm2015/lib/type.js +1 -1
- package/esm2015/public-api.js +4 -2
- package/esm2015/yibozhang-pro-table.js +1 -1
- package/fesm2015/yibozhang-pro-table.js +303 -360
- package/fesm2015/yibozhang-pro-table.js.map +1 -1
- package/lib/components/colmuns-setting/colmuns-setting.component.d.ts.map +1 -1
- package/lib/components/dynamic-search-field/dynamic-search-field.component.d.ts.map +1 -1
- package/lib/constants.d.ts.map +1 -1
- package/lib/page-container/page-container.component.d.ts.map +1 -1
- package/lib/page-container/page-container.module.d.ts.map +1 -1
- package/lib/page-public/antd-form.d.ts +1 -20
- package/lib/page-public/antd-form.d.ts.map +1 -1
- package/lib/page-public/array-form.d.ts +186 -0
- package/lib/page-public/array-form.d.ts.map +1 -0
- package/lib/plate-input/plate-input.component.d.ts.map +1 -1
- package/lib/plate-input/plate-input.module.d.ts.map +1 -1
- package/lib/plate-input/plate-prefix-load.service.d.ts.map +1 -1
- package/lib/pro-table.component.d.ts.map +1 -1
- package/lib/pro-table.module.d.ts.map +1 -1
- package/lib/table-search-bar/table-search-bar-module.d.ts.map +1 -1
- package/lib/table-search-bar/table-search-bar.component.d.ts.map +1 -1
- package/lib/tokens.d.ts.map +1 -1
- package/lib/type.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -2
- package/public-api.d.ts.map +1 -1
- package/yibozhang-pro-table.d.ts.map +1 -1
- package/yibozhang-pro-table.metadata.json +1 -1
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { v4 as uuidv4 } from "uuid";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* 数组型数据收集基础服务
|
|
6
|
+
*
|
|
7
|
+
* 功能:
|
|
8
|
+
* 1. 支持通过 ngModel 绑定对应行的数据源
|
|
9
|
+
* 2. 自动为数组数据添加 isEdit 和 uid 字段
|
|
10
|
+
* 3. 支持每个字段的自定义校验方法,返回 'success' | 'warning' | 'error'
|
|
11
|
+
* 4. 提供公共方法支持删除、新增、编辑等操作
|
|
12
|
+
*/
|
|
13
|
+
export class ArrayFormService {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.formStore = {};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 初始化数组数据
|
|
19
|
+
* 为现有数据添加 uid 和 isEdit 字段
|
|
20
|
+
*
|
|
21
|
+
* @param data 原始数据数组
|
|
22
|
+
* @param config 表单配置
|
|
23
|
+
* @returns 初始化后的数据数组
|
|
24
|
+
*/
|
|
25
|
+
initializeData(data) {
|
|
26
|
+
return data.map((item) => this.enrichRow(item));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 为单行数据添加 uid 和 isEdit 字段
|
|
30
|
+
*
|
|
31
|
+
* @param row 原始行数据
|
|
32
|
+
* @returns 增强后的行数据
|
|
33
|
+
*/
|
|
34
|
+
enrichRow(row) {
|
|
35
|
+
return Object.assign(Object.assign({}, row), { uid: row.uid || uuidv4(), isEdit: row.isEdit !== undefined ? row.isEdit : false });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 新增一行数据
|
|
39
|
+
*
|
|
40
|
+
* @param data 数据数组引用
|
|
41
|
+
* @param defaultValues 默认值
|
|
42
|
+
* @returns 新增的行数据
|
|
43
|
+
*/
|
|
44
|
+
addRow(data, defaultValues) {
|
|
45
|
+
const newRow = Object.assign(Object.assign({}, defaultValues), { uid: uuidv4(), isEdit: true, isAdd: true });
|
|
46
|
+
data.push(newRow);
|
|
47
|
+
return newRow;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 校验单个字段
|
|
51
|
+
*
|
|
52
|
+
* @param row 行数据
|
|
53
|
+
* @param fieldName 字段名
|
|
54
|
+
* @param config 表单配置
|
|
55
|
+
* @returns 校验结果
|
|
56
|
+
*/
|
|
57
|
+
validateField(row, fieldName, config) {
|
|
58
|
+
const fieldConfig = config.fields.find((f) => f.name === fieldName);
|
|
59
|
+
if (!fieldConfig) {
|
|
60
|
+
return "";
|
|
61
|
+
}
|
|
62
|
+
if (fieldConfig.validator) {
|
|
63
|
+
return fieldConfig.validator(row[fieldName], row, fieldName);
|
|
64
|
+
}
|
|
65
|
+
return "";
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 校验整行数据
|
|
69
|
+
*
|
|
70
|
+
* @param row 行数据
|
|
71
|
+
* @param config 表单配置
|
|
72
|
+
* @returns 校验结果对象,key为字段名,value为校验结果
|
|
73
|
+
*/
|
|
74
|
+
validateRow(row, config) {
|
|
75
|
+
const results = {};
|
|
76
|
+
config.fields.forEach((fieldConfig) => {
|
|
77
|
+
results[fieldConfig.name] = this.validateField(row, fieldConfig.name, config);
|
|
78
|
+
});
|
|
79
|
+
return results;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* 校验整个数组
|
|
83
|
+
*
|
|
84
|
+
* @param data 数据数组
|
|
85
|
+
* @param config 表单配置
|
|
86
|
+
* @returns 校验结果对象,key为行的uid,value为该行的校验结果
|
|
87
|
+
*/
|
|
88
|
+
validateData(data, config) {
|
|
89
|
+
const results = {};
|
|
90
|
+
data.forEach((row) => {
|
|
91
|
+
results[row.uid] = this.validateRow(row, config);
|
|
92
|
+
});
|
|
93
|
+
return results;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 注册表单到存储
|
|
97
|
+
* 如果表单已存在,则更新其配置
|
|
98
|
+
*
|
|
99
|
+
* @param formName 表单名称
|
|
100
|
+
* @param data 数据数组
|
|
101
|
+
* @param config 表单配置
|
|
102
|
+
*/
|
|
103
|
+
registerForm(formName, data, config) {
|
|
104
|
+
this.formStore[formName] = {
|
|
105
|
+
data: this.initializeData(data),
|
|
106
|
+
config,
|
|
107
|
+
validationResults: {},
|
|
108
|
+
};
|
|
109
|
+
// 如果配置了自动更新,立即更新一次
|
|
110
|
+
this.autoUpdateArrayReference(formName);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 从存储中获取表单
|
|
114
|
+
*
|
|
115
|
+
* @param formName 表单名称
|
|
116
|
+
* @returns 表单存储项或undefined
|
|
117
|
+
*/
|
|
118
|
+
getForm(formName) {
|
|
119
|
+
return this.formStore[formName];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 向表单添加行
|
|
123
|
+
*
|
|
124
|
+
* @param formName 表单名称
|
|
125
|
+
* @param defaultValues 默认值
|
|
126
|
+
* @returns 新增的行数据或undefined
|
|
127
|
+
*/
|
|
128
|
+
addRowToForm(formName, defaultValues) {
|
|
129
|
+
const form = this.formStore[formName];
|
|
130
|
+
if (!form) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const newRow = this.addRow(form.data, defaultValues);
|
|
134
|
+
// 自动更新外部数组引用
|
|
135
|
+
this.autoUpdateArrayReference(formName);
|
|
136
|
+
return newRow;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* 校验表单
|
|
140
|
+
*
|
|
141
|
+
* @param formName 表单名称
|
|
142
|
+
* @returns 校验结果或undefined
|
|
143
|
+
*/
|
|
144
|
+
validateForm(formName) {
|
|
145
|
+
const form = this.formStore[formName];
|
|
146
|
+
if (!form) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
const results = this.validateData(form.data, form.config);
|
|
150
|
+
form.validationResults = results;
|
|
151
|
+
return results;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 开启指定行的编辑模式
|
|
155
|
+
*
|
|
156
|
+
* @param row 行数据
|
|
157
|
+
*/
|
|
158
|
+
enableEdit(row) {
|
|
159
|
+
row.isEdit = true;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 关闭指定行的编辑模式
|
|
163
|
+
*
|
|
164
|
+
* @param row 行数据
|
|
165
|
+
*/
|
|
166
|
+
disableEdit(row) {
|
|
167
|
+
row.isEdit = false;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* 从表单中删除指定行
|
|
171
|
+
*
|
|
172
|
+
* @param formName 表单名称
|
|
173
|
+
* @param row 行的uid
|
|
174
|
+
* @returns 是否删除成功
|
|
175
|
+
*/
|
|
176
|
+
deleteRowFromForm(formName, row) {
|
|
177
|
+
const form = this.formStore[formName];
|
|
178
|
+
if (!form) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
const index = form.data.findIndex((item) => item.uid === row.uid);
|
|
182
|
+
if (index === -1) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
form.data.splice(index, 1);
|
|
186
|
+
if (form.validationResults && form.validationResults[row.uid]) {
|
|
187
|
+
delete form.validationResults[row.uid];
|
|
188
|
+
}
|
|
189
|
+
// 自动更新外部数组引用
|
|
190
|
+
this.autoUpdateArrayReference(formName);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 校验指定行的指定字段并返回校验结果
|
|
195
|
+
* 实时执行校验,用于模板中的实时校验显示
|
|
196
|
+
*
|
|
197
|
+
* @param formName 表单名称
|
|
198
|
+
* @param row 行数据
|
|
199
|
+
* @param fieldName 字段名
|
|
200
|
+
* @returns 校验结果
|
|
201
|
+
*/
|
|
202
|
+
validateFieldInRow(formName, row, fieldName) {
|
|
203
|
+
const form = this.formStore[formName];
|
|
204
|
+
if (!form) {
|
|
205
|
+
return "success";
|
|
206
|
+
}
|
|
207
|
+
const fieldConfig = form.config.fields.find((f) => f.name === fieldName);
|
|
208
|
+
if (!fieldConfig) {
|
|
209
|
+
return "success";
|
|
210
|
+
}
|
|
211
|
+
let result = "";
|
|
212
|
+
if (fieldConfig.validator) {
|
|
213
|
+
result = fieldConfig.validator(row[fieldName], row, fieldName);
|
|
214
|
+
}
|
|
215
|
+
// 更新校验结果存储
|
|
216
|
+
if (!form.validationResults) {
|
|
217
|
+
form.validationResults = {};
|
|
218
|
+
}
|
|
219
|
+
if (!form.validationResults[row.uid]) {
|
|
220
|
+
form.validationResults[row.uid] = {};
|
|
221
|
+
}
|
|
222
|
+
form.validationResults[row.uid][fieldName] = result;
|
|
223
|
+
return result ? "error" : "success";
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* 校验指定行的所有字段
|
|
227
|
+
*
|
|
228
|
+
* @param formName 表单名称
|
|
229
|
+
* @param row 行数据
|
|
230
|
+
* @returns 是否所有字段都通过校验
|
|
231
|
+
*/
|
|
232
|
+
validateRowAllFields(formName, row) {
|
|
233
|
+
const form = this.formStore[formName];
|
|
234
|
+
if (!form) {
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
let hasError = false;
|
|
238
|
+
form.config.fields.forEach((fieldConfig) => {
|
|
239
|
+
const result = this.validateFieldInRow(formName, row, fieldConfig.name);
|
|
240
|
+
if (result === "error") {
|
|
241
|
+
hasError = true;
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
return !hasError;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* 自动更新外部数组引用(如果配置了)
|
|
248
|
+
* 私有方法,在数据变化时自动调用
|
|
249
|
+
*
|
|
250
|
+
* @param formName 表单名称
|
|
251
|
+
*/
|
|
252
|
+
autoUpdateArrayReference(formName) {
|
|
253
|
+
const form = this.formStore[formName];
|
|
254
|
+
if (!form || !form.config.targetObject || !form.config.arrayPropertyName) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const newArray = form.data ? [...form.data] : [];
|
|
258
|
+
// 更新目标对象的数组属性为新数组引用
|
|
259
|
+
form.config.targetObject[form.config.arrayPropertyName] = newArray;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
ArrayFormService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ArrayFormService_Factory() { return new ArrayFormService(); }, token: ArrayFormService, providedIn: "root" });
|
|
263
|
+
ArrayFormService.decorators = [
|
|
264
|
+
{ type: Injectable, args: [{
|
|
265
|
+
providedIn: "root",
|
|
266
|
+
},] }
|
|
267
|
+
];
|
|
268
|
+
ArrayFormService.ctorParameters = () => [];
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJEOi9wcm9qZWN0cy92cHMtZnJvbnQvRnJvbnQvRGFzUE1TV2ViL2xpYi9wcm8tdGFibGUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2UtcHVibGljL2FycmF5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUE2RHBDOzs7Ozs7OztHQVFHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUZRLGNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFaEI7Ozs7Ozs7T0FPRztJQUNLLGNBQWMsQ0FBQyxJQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFNBQVMsQ0FBQyxHQUFRO1FBQ3hCLHVDQUNLLEdBQUcsS0FDTixHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsRUFDeEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQ3JEO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLE1BQU0sQ0FDWixJQUFvQixFQUNwQixhQUFtQztRQUVuQyxNQUFNLE1BQU0sbUNBQ1AsYUFBYSxLQUNoQixHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQ2IsTUFBTSxFQUFFLElBQUksRUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8s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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xyXG5cclxuLyoqXHJcbiAqIOWtl+auteagoemqjOe7k+aenOexu+Wei1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiDlrZfmrrXmoKHpqozmlrnms5XnsbvlnotcclxuICovXHJcbmV4cG9ydCB0eXBlIEZpZWxkVmFsaWRhdG9yID0gKFxyXG4gIHZhbHVlOiBhbnksXHJcbiAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgZmllbGROYW1lOiBzdHJpbmdcclxuKSA9PiBWYWxpZGF0aW9uUmVzdWx0O1xyXG5cclxuLyoqXHJcbiAqIOWtl+autemFjee9ruaOpeWPo1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZENvbmZpZyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcj86IEZpZWxkVmFsaWRhdG9yO1xyXG59XHJcblxyXG4vKipcclxuICog5pWw57uE6KGo5Y2V6KGM5pWw5o2u5o6l5Y+jXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybVJvdyB7XHJcbiAgdWlkOiBzdHJpbmc7XHJcbiAgaXNFZGl0OiBib29sZWFuO1xyXG4gIGlzQWRkPzogYm9vbGVhbjtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDmlbDnu4TooajljZXphY3nva7mjqXlj6NcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlGb3JtQ29uZmlnIHtcclxuICBmaWVsZHM6IEZpZWxkQ29uZmlnW107XHJcbiAgZGVmYXVsdFZhbHVlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgLy8g6Ieq5Yqo5pu05paw55uu5qCH5a+56LGh5ZKM5bGe5oCn5ZCN77yM55So5LqO6Kem5Y+RIEFuZ3VsYXIg5Y+Y5YyW5qOA5rWLXHJcbiAgdGFyZ2V0T2JqZWN0PzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICBhcnJheVByb3BlcnR5TmFtZT86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIOihqOWNleWtmOWCqOmhueaOpeWPo1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUZvcm1TdG9yZUl0ZW0ge1xyXG4gIGRhdGE6IEFycmF5Rm9ybVJvd1tdO1xyXG4gIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnO1xyXG4gIHZhbGlkYXRpb25SZXN1bHRzPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4+O1xyXG59XHJcblxyXG4vKipcclxuICog6KGo5Y2V5a2Y5YKo5o6l5Y+jXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFycmF5Rm9ybVN0b3JlIHtcclxuICBbZm9ybU5hbWU6IHN0cmluZ106IEFycmF5Rm9ybVN0b3JlSXRlbTtcclxufVxyXG5cclxuLyoqXHJcbiAqIOaVsOe7hOWei+aVsOaNruaUtumbhuWfuuehgOacjeWKoVxyXG4gKlxyXG4gKiDlip/og73vvJpcclxuICogMS4g5pSv5oyB6YCa6L+HIG5nTW9kZWwg57uR5a6a5a+55bqU6KGM55qE5pWw5o2u5rqQXHJcbiAqIDIuIOiHquWKqOS4uuaVsOe7hOaVsOaNrua3u+WKoCBpc0VkaXQg5ZKMIHVpZCDlrZfmrrVcclxuICogMy4g5pSv5oyB5q+P5Liq5a2X5q6155qE6Ieq5a6a5LmJ5qCh6aqM5pa55rOV77yM6L+U5ZueICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcidcclxuICogNC4g5o+Q5L6b5YWs5YWx5pa55rOV5pSv5oyB5Yig6Zmk44CB5paw5aKe44CB57yW6L6R562J5pON5L2cXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1TZXJ2aWNlIHtcclxuICBwcml2YXRlIGZvcm1TdG9yZTogQXJyYXlGb3JtU3RvcmUgPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICAvKipcclxuICAgKiDliJ3lp4vljJbmlbDnu4TmlbDmja5cclxuICAgKiDkuLrnjrDmnInmlbDmja7mt7vliqAgdWlkIOWSjCBpc0VkaXQg5a2X5q61XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSDljp/lp4vmlbDmja7mlbDnu4RcclxuICAgKiBAcGFyYW0gY29uZmlnIOihqOWNlemFjee9rlxyXG4gICAqIEByZXR1cm5zIOWIneWni+WMluWQjueahOaVsOaNruaVsOe7hFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoZGF0YTogYW55W10pOiBBcnJheUZvcm1Sb3dbXSB7XHJcbiAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW0pID0+IHRoaXMuZW5yaWNoUm93KGl0ZW0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOS4uuWNleihjOaVsOaNrua3u+WKoCB1aWQg5ZKMIGlzRWRpdCDlrZfmrrVcclxuICAgKlxyXG4gICAqIEBwYXJhbSByb3cg5Y6f5aeL6KGM5pWw5o2uXHJcbiAgICogQHJldHVybnMg5aKe5by65ZCO55qE6KGM5pWw5o2uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbnJpY2hSb3cocm93OiBhbnkpOiBBcnJheUZvcm1Sb3cge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucm93LFxyXG4gICAgICB1aWQ6IHJvdy51aWQgfHwgdXVpZHY0KCksXHJcbiAgICAgIGlzRWRpdDogcm93LmlzRWRpdCAhPT0gdW5kZWZpbmVkID8gcm93LmlzRWRpdCA6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaWsOWinuS4gOihjOaVsOaNrlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRhdGEg5pWw5o2u5pWw57uE5byV55SoXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZXMg6buY6K6k5YC8XHJcbiAgICogQHJldHVybnMg5paw5aKe55qE6KGM5pWw5o2uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRSb3coXHJcbiAgICBkYXRhOiBBcnJheUZvcm1Sb3dbXSxcclxuICAgIGRlZmF1bHRWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogQXJyYXlGb3JtUm93IHtcclxuICAgIGNvbnN0IG5ld1JvdzogQXJyYXlGb3JtUm93ID0ge1xyXG4gICAgICAuLi5kZWZhdWx0VmFsdWVzLFxyXG4gICAgICB1aWQ6IHV1aWR2NCgpLFxyXG4gICAgICBpc0VkaXQ6IHRydWUsXHJcbiAgICAgIGlzQWRkOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGRhdGEucHVzaChuZXdSb3cpO1xyXG4gICAgcmV0dXJuIG5ld1JvdztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagoemqjOWNleS4quWtl+autVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdyDooYzmlbDmja5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIOWtl+auteWQjVxyXG4gICAqIEBwYXJhbSBjb25maWcg6KGo5Y2V6YWN572uXHJcbiAgICogQHJldHVybnMg5qCh6aqM57uT5p6cXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgcm93OiBBcnJheUZvcm1Sb3csXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogVmFsaWRhdGlvblJlc3VsdCB7XHJcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IGNvbmZpZy5maWVsZHMuZmluZCgoZikgPT4gZi5uYW1lID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIGlmICghZmllbGRDb25maWcpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkQ29uZmlnLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmllbGRDb25maWcudmFsaWRhdG9yKHJvd1tmaWVsZE5hbWVdLCByb3csIGZpZWxkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoKHpqozmlbTooYzmlbDmja5cclxuICAgKlxyXG4gICAqIEBwYXJhbSByb3cg6KGM5pWw5o2uXHJcbiAgICogQHBhcmFtIGNvbmZpZyDooajljZXphY3nva5cclxuICAgKiBAcmV0dXJucyDmoKHpqoznu5Pmnpzlr7nosaHvvIxrZXnkuLrlrZfmrrXlkI3vvIx2YWx1ZeS4uuagoemqjOe7k+aenFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVSb3coXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGNvbmZpZzogQXJyYXlGb3JtQ29uZmlnXHJcbiAgKTogUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgY29uc3QgcmVzdWx0czogUmVjb3JkPHN0cmluZywgVmFsaWRhdGlvblJlc3VsdD4gPSB7fTtcclxuXHJcbiAgICBjb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgIHJlc3VsdHNbZmllbGRDb25maWcubmFtZV0gPSB0aGlzLnZhbGlkYXRlRmllbGQoXHJcbiAgICAgICAgcm93LFxyXG4gICAgICAgIGZpZWxkQ29uZmlnLm5hbWUsXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagoemqjOaVtOS4quaVsOe7hFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRhdGEg5pWw5o2u5pWw57uEXHJcbiAgICogQHBhcmFtIGNvbmZpZyDooajljZXphY3nva5cclxuICAgKiBAcmV0dXJucyDmoKHpqoznu5Pmnpzlr7nosaHvvIxrZXnkuLrooYznmoR1aWTvvIx2YWx1ZeS4uuivpeihjOeahOagoemqjOe7k+aenFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRhKFxyXG4gICAgZGF0YTogQXJyYXlGb3JtUm93W10sXHJcbiAgICBjb25maWc6IEFycmF5Rm9ybUNvbmZpZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiB7XHJcbiAgICBjb25zdCByZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBWYWxpZGF0aW9uUmVzdWx0Pj4gPSB7fTtcclxuXHJcbiAgICBkYXRhLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgICByZXN1bHRzW3Jvdy51aWRdID0gdGhpcy52YWxpZGF0ZVJvdyhyb3csIGNvbmZpZyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOazqOWGjOihqOWNleWIsOWtmOWCqFxyXG4gICAqIOWmguaenOihqOWNleW3suWtmOWcqO+8jOWImeabtOaWsOWFtumFjee9rlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1OYW1lIOihqOWNleWQjeensFxyXG4gICAqIEBwYXJhbSBkYXRhIOaVsOaNruaVsOe7hFxyXG4gICAqIEBwYXJhbSBjb25maWcg6KGo5Y2V6YWN572uXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJGb3JtKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcclxuICAgIGRhdGE6IEFycmF5Rm9ybVJvd1tdLFxyXG4gICAgY29uZmlnOiBBcnJheUZvcm1Db25maWdcclxuICApOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXSA9IHtcclxuICAgICAgZGF0YTogdGhpcy5pbml0aWFsaXplRGF0YShkYXRhKSxcclxuICAgICAgY29uZmlnLFxyXG4gICAgICB2YWxpZGF0aW9uUmVzdWx0czoge30sXHJcbiAgICB9O1xyXG4gICAgLy8g5aaC5p6c6YWN572u5LqG6Ieq5Yqo5pu05paw77yM56uL5Y2z5pu05paw5LiA5qyhXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDku47lrZjlgqjkuK3ojrflj5booajljZVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtTmFtZSDooajljZXlkI3np7BcclxuICAgKiBAcmV0dXJucyDooajljZXlrZjlgqjpobnmiJZ1bmRlZmluZWRcclxuICAgKi9cclxuICBnZXRGb3JtKGZvcm1OYW1lOiBzdHJpbmcpOiBBcnJheUZvcm1TdG9yZUl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWQkeihqOWNlea3u+WKoOihjFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1OYW1lIOihqOWNleWQjeensFxyXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVzIOm7mOiupOWAvFxyXG4gICAqIEByZXR1cm5zIOaWsOWinueahOihjOaVsOaNruaIlnVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIGFkZFJvd1RvRm9ybShcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICBkZWZhdWx0VmFsdWVzPzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IEFycmF5Rm9ybVJvdyB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdSb3cgPSB0aGlzLmFkZFJvdyhmb3JtLmRhdGEsIGRlZmF1bHRWYWx1ZXMpO1xyXG4gICAgLy8g6Ieq5Yqo5pu05paw5aSW6YOo5pWw57uE5byV55SoXHJcbiAgICB0aGlzLmF1dG9VcGRhdGVBcnJheVJlZmVyZW5jZShmb3JtTmFtZSk7XHJcbiAgICByZXR1cm4gbmV3Um93O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qCh6aqM6KGo5Y2VXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9ybU5hbWUg6KGo5Y2V5ZCN56ewXHJcbiAgICogQHJldHVybnMg5qCh6aqM57uT5p6c5oiWdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgdmFsaWRhdGVGb3JtKFxyXG4gICAgZm9ybU5hbWU6IHN0cmluZ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFZhbGlkYXRpb25SZXN1bHQ+PiB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy52YWxpZGF0ZURhdGEoZm9ybS5kYXRhLCBmb3JtLmNvbmZpZyk7XHJcbiAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzID0gcmVzdWx0cztcclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5byA5ZCv5oyH5a6a6KGM55qE57yW6L6R5qih5byPXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcm93IOihjOaVsOaNrlxyXG4gICAqL1xyXG4gIGVuYWJsZUVkaXQocm93OiBBcnJheUZvcm1Sb3cpOiB2b2lkIHtcclxuICAgIHJvdy5pc0VkaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5oyH5a6a6KGM55qE57yW6L6R5qih5byPXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcm93IOihjOaVsOaNrlxyXG4gICAqL1xyXG4gIGRpc2FibGVFZGl0KHJvdzogQXJyYXlGb3JtUm93KTogdm9pZCB7XHJcbiAgICByb3cuaXNFZGl0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDku47ooajljZXkuK3liKDpmaTmjIflrprooYxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtTmFtZSDooajljZXlkI3np7BcclxuICAgKiBAcGFyYW0gcm93IOihjOeahHVpZFxyXG4gICAqIEByZXR1cm5zIOaYr+WQpuWIoOmZpOaIkOWKn1xyXG4gICAqL1xyXG4gIGRlbGV0ZVJvd0Zyb21Gb3JtKGZvcm1OYW1lOiBzdHJpbmcsIHJvdzogQXJyYXlGb3JtUm93KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtU3RvcmVbZm9ybU5hbWVdO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gZm9ybS5kYXRhLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS51aWQgPT09IHJvdy51aWQpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBmb3JtLmRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGlmIChmb3JtLnZhbGlkYXRpb25SZXN1bHRzICYmIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZF0pIHtcclxuICAgICAgZGVsZXRlIGZvcm0udmFsaWRhdGlvblJlc3VsdHNbcm93LnVpZF07XHJcbiAgICB9XHJcbiAgICAvLyDoh6rliqjmm7TmlrDlpJbpg6jmlbDnu4TlvJXnlKhcclxuICAgIHRoaXMuYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qCh6aqM5oyH5a6a6KGM55qE5oyH5a6a5a2X5q615bm26L+U5Zue5qCh6aqM57uT5p6cXHJcbiAgICog5a6e5pe25omn6KGM5qCh6aqM77yM55So5LqO5qih5p2/5Lit55qE5a6e5pe25qCh6aqM5pi+56S6XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9ybU5hbWUg6KGo5Y2V5ZCN56ewXHJcbiAgICogQHBhcmFtIHJvdyDooYzmlbDmja5cclxuICAgKiBAcGFyYW0gZmllbGROYW1lIOWtl+auteWQjVxyXG4gICAqIEByZXR1cm5zIOagoemqjOe7k+aenFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmllbGRJblJvdyhcclxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXHJcbiAgICByb3c6IEFycmF5Rm9ybVJvdyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nXHJcbiAgKTogXCJzdWNjZXNzXCIgfCBcImVycm9yXCIge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gXCJzdWNjZXNzXCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmllbGRDb25maWcgPSBmb3JtLmNvbmZpZy5maWVsZHMuZmluZCgoZikgPT4gZi5uYW1lID09PSBmaWVsZE5hbWUpO1xyXG4gICAgaWYgKCFmaWVsZENvbmZpZykge1xyXG4gICAgICByZXR1cm4gXCJzdWNjZXNzXCI7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IFwiXCI7XHJcbiAgICBpZiAoZmllbGRDb25maWcudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJlc3VsdCA9IGZpZWxkQ29uZmlnLnZhbGlkYXRvcihyb3dbZmllbGROYW1lXSwgcm93LCBmaWVsZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOabtOaWsOagoemqjOe7k+aenOWtmOWCqFxyXG4gICAgaWYgKCFmb3JtLnZhbGlkYXRpb25SZXN1bHRzKSB7XHJcbiAgICAgIGZvcm0udmFsaWRhdGlvblJlc3VsdHMgPSB7fTtcclxuICAgIH1cclxuICAgIGlmICghZm9ybS52YWxpZGF0aW9uUmVzdWx0c1tyb3cudWlkXSkge1xyXG4gICAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdID0ge307XHJcbiAgICB9XHJcbiAgICBmb3JtLnZhbGlkYXRpb25SZXN1bHRzW3Jvdy51aWRdW2ZpZWxkTmFtZV0gPSByZXN1bHQ7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdCA/IFwiZXJyb3JcIiA6IFwic3VjY2Vzc1wiO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qCh6aqM5oyH5a6a6KGM55qE5omA5pyJ5a2X5q61XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9ybU5hbWUg6KGo5Y2V5ZCN56ewXHJcbiAgICogQHBhcmFtIHJvdyDooYzmlbDmja5cclxuICAgKiBAcmV0dXJucyDmmK/lkKbmiYDmnInlrZfmrrXpg73pgJrov4fmoKHpqoxcclxuICAgKi9cclxuICB2YWxpZGF0ZVJvd0FsbEZpZWxkcyhmb3JtTmFtZTogc3RyaW5nLCByb3c6IEFycmF5Rm9ybVJvdyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0b3JlW2Zvcm1OYW1lXTtcclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaGFzRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICBmb3JtLmNvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGRDb25maWcpID0+IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy52YWxpZGF0ZUZpZWxkSW5Sb3coZm9ybU5hbWUsIHJvdywgZmllbGRDb25maWcubmFtZSk7XHJcbiAgICAgIGlmIChyZXN1bHQgPT09IFwiZXJyb3JcIikge1xyXG4gICAgICAgIGhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuICFoYXNFcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiHquWKqOabtOaWsOWklumDqOaVsOe7hOW8leeUqO+8iOWmguaenOmFjee9ruS6hu+8iVxyXG4gICAqIOengeacieaWueazle+8jOWcqOaVsOaNruWPmOWMluaXtuiHquWKqOiwg+eUqFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1OYW1lIOihqOWNleWQjeensFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXV0b1VwZGF0ZUFycmF5UmVmZXJlbmNlKGZvcm1OYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdG9yZVtmb3JtTmFtZV07XHJcbiAgICBpZiAoIWZvcm0gfHwgIWZvcm0uY29uZmlnLnRhcmdldE9iamVjdCB8fCAhZm9ybS5jb25maWcuYXJyYXlQcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBmb3JtLmRhdGEgPyBbLi4uZm9ybS5kYXRhXSA6IFtdO1xyXG4gICAgLy8g5pu05paw55uu5qCH5a+56LGh55qE5pWw57uE5bGe5oCn5Li65paw5pWw57uE5byV55SoXHJcbiAgICAoZm9ybS5jb25maWcudGFyZ2V0T2JqZWN0IGFzIGFueSlbZm9ybS5jb25maWcuYXJyYXlQcm9wZXJ0eU5hbWVdID0gbmV3QXJyYXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -152,4 +152,4 @@ PlateInputComponent.ctorParameters = () => [
|
|
|
152
152
|
{ type: ElementRef },
|
|
153
153
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [PLATE_PREFIX_LOAD_SERVICE,] }] }
|
|
154
154
|
];
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L3Byb2plY3RzL3Zwcy1mcm9udC9Gcm9udC9EYXNQTVNXZWIvcHJvamVjdHMvcHJvLXRhYmxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wbGF0ZS1pbnB1dC9wbGF0ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQTZDLE1BQU0sV0FBVyxDQUFDO0FBY2pHLE1BQU0sT0FBTyxtQkFBbUI7SUFXOUIsWUFDVSxHQUFzQixFQUN0QixVQUFzQixFQUN5QixzQkFBK0M7UUFGOUYsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXlCO1FBYnhHLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix1QkFBa0IsR0FBNkIsRUFBRSxDQUFDO1FBQ2xELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVExQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLG9CQUFvQjtZQUNwQixJQUFJLENBQUMsc0JBQXNCO2lCQUN4QixpQkFBaUIsRUFBRTtpQkFDbkIsSUFBSSxDQUFDLENBQUMsSUFBOEIsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLO2lCQUNyQixLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNiO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTNCLDZCQUE2QjtRQUM3QixJQUFJLGdCQUFnQixLQUFLLFVBQVUsRUFBRTtZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2xDLFNBQVM7WUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUM5QixPQUFPO1NBQ1I7UUFDRCx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRS9DLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3BDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztTQUNuQztRQUVELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFNBQVM7SUFDcEMsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDL0MsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFFM0Msd0JBQXdCO1lBQ3hCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUN0RSxNQUFNLGdCQUFnQixHQUFHLGNBQWMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTNFLG9CQUFvQjtZQUNwQixNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFMUQsMkNBQTJDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQztRQUVGLHVCQUF1QjtRQUN2QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQVU7UUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7OztZQWxLRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsbXBEQUEyQztnQkFFM0MsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGOzthQUNGOzs7WUFma0QsaUJBQWlCO1lBQUUsVUFBVTs0Q0E4QjNFLFFBQVEsWUFBSSxNQUFNLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgZm9yd2FyZFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUExBVEVfUFJFRklYX0xPQURfU0VSVklDRSwgUGxhdGVQcmVmaXhMb2FkU2VydmljZSwgUGxhdGVQcmVmaXhPcHRpb24gfSBmcm9tIFwiLi4vdG9rZW5zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtcGxhdGUtaW5wdXRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3BsYXRlLWlucHV0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3BsYXRlLWlucHV0LmNvbXBvbmVudC5sZXNzXCJdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGxhdGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhdGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgbnpQb3BvdmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBsYXRlUHJlZml4OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHBsYXRlU3VmZml4OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHBsYXRlUHJlZml4T3B0aW9uczogQXJyYXk8UGxhdGVQcmVmaXhPcHRpb24+ID0gW107XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIHByaXZhdGUgY2xpY2tPdXRzaWRlSGFuZGxlcj86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBMQVRFX1BSRUZJWF9MT0FEX1NFUlZJQ0UpIHByaXZhdGUgcGxhdGVQcmVmaXhMb2FkU2VydmljZT86IFBsYXRlUHJlZml4TG9hZFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGxhdGVQcmVmaXhMb2FkU2VydmljZSkge1xyXG4gICAgICAvLyDkvb/nlKjms6jlhaXnmoTlhajlsYDmnI3liqHliqDovb3ovabniYzliY3nvIDpgInpoblcclxuICAgICAgdGhpcy5wbGF0ZVByZWZpeExvYWRTZXJ2aWNlXHJcbiAgICAgICAgLmxvYWRQcmVmaXhPcHRpb25zKClcclxuICAgICAgICAudGhlbigoZGF0YTogQXJyYXk8UGxhdGVQcmVmaXhPcHRpb24+KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBsYXRlUHJlZml4T3B0aW9ucyA9IGRhdGE7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbGF0ZVByZWZpeE9wdGlvbnMgPSBbXTtcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIOWmguaenOayoeacieazqOWFpeacjeWKoe+8jOWImeS/neaMgeepuuaVsOe7hFxyXG4gICAgICB0aGlzLnBsYXRlUHJlZml4T3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUGxhdGVQcmVmaXgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5wbGF0ZVByZWZpeCA9IHZhbHVlO1xyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgIHRoaXMubnpQb3BvdmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5wbGF0ZVByZWZpeCA9IHZhbHVlLnNwbGl0KFwiXCIpWzBdO1xyXG4gICAgICB0aGlzLnBsYXRlU3VmZml4ID0gdmFsdWVcclxuICAgICAgICAuc3BsaXQoXCJcIilcclxuICAgICAgICAuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gaW5kZXggPiAwKVxyXG4gICAgICAgIC5qb2luKFwiXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF0ZVByZWZpeCA9IFwiXCI7XHJcbiAgICAgIHRoaXMucGxhdGVTdWZmaXggPSBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmV2aW91c0Rpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgXHJcbiAgICAvLyDlpoLmnpznpoHnlKjnirbmgIHmlLnlj5jvvIzlhbPpl60gcG9wb3ZlciDlubbnp7vpmaTnm5HlkKzlmahcclxuICAgIGlmIChwcmV2aW91c0Rpc2FibGVkICE9PSBpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMubnpQb3BvdmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XHJcbiAgICAgIC8vIOW8uuWItuWPmOabtOajgOa1i1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQcmVmaXhDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLm56UG9wb3ZlclZpc2libGUgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8g5omL5Yqo5YiH5o2iIHBvcG92ZXIg55qE5pi+56S6L+makOiXj+eKtuaAgVxyXG4gICAgdGhpcy5uelBvcG92ZXJWaXNpYmxlID0gIXRoaXMubnpQb3BvdmVyVmlzaWJsZTtcclxuICAgIFxyXG4gICAgLy8g5aaC5p6c5omT5byA5LqGIHBvcG92ZXLvvIzmt7vliqDmlofmoaPngrnlh7vnm5HlkKzlmahcclxuICAgIGlmICh0aGlzLm56UG9wb3ZlclZpc2libGUpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hDbGlja091dHNpZGVMaXN0ZW5lcigpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIOmYu+atouS6i+S7tuWGkuazoVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhdHRhY2hDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIFxyXG4gICAgICAvLyDmo4Dmn6XmmK/lkKbngrnlh7vlnKggcG9wb3ZlciDlhoXlrrnljLrln5/lhoVcclxuICAgICAgY29uc3QgcG9wb3ZlckNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGxhdGUtaW5wdXQtcG9wb3ZlcicpO1xyXG4gICAgICBjb25zdCBjbGlja2VkSW5Qb3BvdmVyID0gcG9wb3ZlckNvbnRlbnQgJiYgcG9wb3ZlckNvbnRlbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgXHJcbiAgICAgIC8vIOajgOafpeaYr+WQpueCueWHu+WcqOe7hOS7tuWGhemDqO+8iOWJjee8gOaMiemSru+8iVxyXG4gICAgICBjb25zdCBjbGlja2VkSW5Db21wb25lbnQgPSBuYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyDlpoLmnpzngrnlh7vml6LkuI3lnKjnu4Tku7blhoXpg6jvvIzkuZ/kuI3lnKggcG9wb3ZlciDlhoXlrrnljLrln5/vvIzliJnlhbPpl60gcG9wb3ZlclxyXG4gICAgICBpZiAoIWNsaWNrZWRJbkNvbXBvbmVudCAmJiAhY2xpY2tlZEluUG9wb3Zlcikge1xyXG4gICAgICAgIHRoaXMubnpQb3BvdmVyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBcclxuICAgIC8vIOS9v+eUqOaNleiOt+mYtuaute+8jOehruS/neWcqOWFtuS7luS6i+S7tuWkhOeQhuS5i+WJjeaJp+ihjFxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIpIHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIsIHRydWUpO1xyXG4gICAgICB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdFZhbHVlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZnVsbFBsYXRlID0gdGhpcy5wbGF0ZVByZWZpeCArIHRoaXMucGxhdGVTdWZmaXg7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGZ1bGxQbGF0ZSk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQW50ZFBsYXRlU3VmZml4Qmx1cihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWUudG9VcHBlckNhc2UoKTtcclxuICAgIHRoaXMucGxhdGVTdWZmaXggPSB2YWx1ZTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L3Byb2plY3RzL3Zwcy1mcm9udC9Gcm9udC9EYXNQTVNXZWIvbGliL3Byby10YWJsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcGxhdGUtaW5wdXQvcGxhdGUtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUE2QyxNQUFNLFdBQVcsQ0FBQztBQWNqRyxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQ1UsR0FBc0IsRUFDdEIsVUFBc0IsRUFDeUIsc0JBQStDO1FBRjlGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF5QjtRQWJ4RyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsdUJBQWtCLEdBQTZCLEVBQUUsQ0FBQztRQUNsRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFRMUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLHNCQUFzQjtpQkFDeEIsaUJBQWlCLEVBQUU7aUJBQ25CLElBQUksQ0FBQyxDQUFDLElBQThCLEVBQUUs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QUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFVO1FBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7WUFsS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLG1wREFBMkM7Z0JBRTNDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O1lBZmtELGlCQUFpQjtZQUFFLFVBQVU7NENBOEIzRSxRQUFRLFlBQUksTUFBTSxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIGZvcndhcmRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFBMQVRFX1BSRUZJWF9MT0FEX1NFUlZJQ0UsIFBsYXRlUHJlZml4TG9hZFNlcnZpY2UsIFBsYXRlUHJlZml4T3B0aW9uIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXBsYXRlLWlucHV0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wbGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9wbGF0ZS1pbnB1dC5jb21wb25lbnQubGVzc1wiXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBsYXRlSW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBsYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIG56UG9wb3ZlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwbGF0ZVByZWZpeDogc3RyaW5nID0gXCJcIjtcclxuICBwbGF0ZVN1ZmZpeDogc3RyaW5nID0gXCJcIjtcclxuICBwbGF0ZVByZWZpeE9wdGlvbnM6IEFycmF5PFBsYXRlUHJlZml4T3B0aW9uPiA9IFtdO1xyXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICBwcml2YXRlIGNsaWNrT3V0c2lkZUhhbmRsZXI/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChQTEFURV9QUkVGSVhfTE9BRF9TRVJWSUNFKSBwcml2YXRlIHBsYXRlUHJlZml4TG9hZFNlcnZpY2U/OiBQbGF0ZVByZWZpeExvYWRTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBsYXRlUHJlZml4TG9hZFNlcnZpY2UpIHtcclxuICAgICAgLy8g5L2/55So5rOo5YWl55qE5YWo5bGA5pyN5Yqh5Yqg6L296L2m54mM5YmN57yA6YCJ6aG5XHJcbiAgICAgIHRoaXMucGxhdGVQcmVmaXhMb2FkU2VydmljZVxyXG4gICAgICAgIC5sb2FkUHJlZml4T3B0aW9ucygpXHJcbiAgICAgICAgLnRoZW4oKGRhdGE6IEFycmF5PFBsYXRlUHJlZml4T3B0aW9uPikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wbGF0ZVByZWZpeE9wdGlvbnMgPSBkYXRhO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGxhdGVQcmVmaXhPcHRpb25zID0gW107XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyDlpoLmnpzmsqHmnInms6jlhaXmnI3liqHvvIzliJnkv53mjIHnqbrmlbDnu4RcclxuICAgICAgdGhpcy5wbGF0ZVByZWZpeE9wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVBsYXRlUHJlZml4KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucGxhdGVQcmVmaXggPSB2YWx1ZTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgICB0aGlzLm56UG9wb3ZlclZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMucGxhdGVQcmVmaXggPSB2YWx1ZS5zcGxpdChcIlwiKVswXTtcclxuICAgICAgdGhpcy5wbGF0ZVN1ZmZpeCA9IHZhbHVlXHJcbiAgICAgICAgLnNwbGl0KFwiXCIpXHJcbiAgICAgICAgLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IGluZGV4ID4gMClcclxuICAgICAgICAuam9pbihcIlwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGxhdGVQcmVmaXggPSBcIlwiO1xyXG4gICAgICB0aGlzLnBsYXRlU3VmZml4ID0gXCJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldmlvdXNEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIFxyXG4gICAgLy8g5aaC5p6c56aB55So54q25oCB5pS55Y+Y77yM5YWz6ZetIHBvcG92ZXIg5bm256e76Zmk55uR5ZCs5ZmoXHJcbiAgICBpZiAocHJldmlvdXNEaXNhYmxlZCAhPT0gaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLm56UG9wb3ZlclZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xyXG4gICAgICAvLyDlvLrliLblj5jmm7Tmo4DmtYtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUHJlZml4Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5uelBvcG92ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIOaJi+WKqOWIh+aNoiBwb3BvdmVyIOeahOaYvuekui/pmpDol4/nirbmgIFcclxuICAgIHRoaXMubnpQb3BvdmVyVmlzaWJsZSA9ICF0aGlzLm56UG9wb3ZlclZpc2libGU7XHJcbiAgICBcclxuICAgIC8vIOWmguaenOaJk+W8gOS6hiBwb3BvdmVy77yM5re75Yqg5paH5qGj54K55Ye755uR5ZCs5ZmoXHJcbiAgICBpZiAodGhpcy5uelBvcG92ZXJWaXNpYmxlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXR0YWNoQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyDpmLvmraLkuovku7blhpLms6FcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXR0YWNoQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jbGlja091dHNpZGVIYW5kbGVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBcclxuICAgICAgLy8g5qOA5p+l5piv5ZCm54K55Ye75ZyoIHBvcG92ZXIg5YaF5a655Yy65Z+f5YaFXHJcbiAgICAgIGNvbnN0IHBvcG92ZXJDb250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBsYXRlLWlucHV0LXBvcG92ZXInKTtcclxuICAgICAgY29uc3QgY2xpY2tlZEluUG9wb3ZlciA9IHBvcG92ZXJDb250ZW50ICYmIHBvcG92ZXJDb250ZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAgIFxyXG4gICAgICAvLyDmo4Dmn6XmmK/lkKbngrnlh7vlnKjnu4Tku7blhoXpg6jvvIjliY3nvIDmjInpkq7vvIlcclxuICAgICAgY29uc3QgY2xpY2tlZEluQ29tcG9uZW50ID0gbmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xyXG4gICAgICBcclxuICAgICAgLy8g5aaC5p6c54K55Ye75pei5LiN5Zyo57uE5Lu25YaF6YOo77yM5Lmf5LiN5ZyoIHBvcG92ZXIg5YaF5a655Yy65Z+f77yM5YiZ5YWz6ZetIHBvcG92ZXJcclxuICAgICAgaWYgKCFjbGlja2VkSW5Db21wb25lbnQgJiYgIWNsaWNrZWRJblBvcG92ZXIpIHtcclxuICAgICAgICB0aGlzLm56UG9wb3ZlclZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICAvLyDkvb/nlKjmjZXojrfpmLbmrrXvvIznoa7kv53lnKjlhbbku5bkuovku7blpITnkIbkuYvliY3miafooYxcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jbGlja091dHNpZGVIYW5kbGVyKSB7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyLCB0cnVlKTtcclxuICAgICAgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZ1bGxQbGF0ZSA9IHRoaXMucGxhdGVQcmVmaXggKyB0aGlzLnBsYXRlU3VmZml4O1xyXG4gICAgdGhpcy5vbkNoYW5nZShmdWxsUGxhdGUpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUFudGRQbGF0ZVN1ZmZpeEJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICB0aGlzLnBsYXRlU3VmZml4ID0gdmFsdWU7XHJcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -23,4 +23,4 @@ PlateInputModule.decorators = [
|
|
|
23
23
|
exports: [PlateInputComponent],
|
|
24
24
|
},] }
|
|
25
25
|
];
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L3Byb2plY3RzL3Zwcy1mcm9udC9Gcm9udC9EYXNQTVNXZWIvbGliL3Byby10YWJsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcGxhdGUtaW5wdXQvcGxhdGUtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFlOUQsTUFBTSxPQUFPLGdCQUFnQjs7O1lBYjVCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixlQUFlO29CQUNmLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxFQUFFO2dCQUNiLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE56R3JpZE1vZHVsZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkL2dyaWRcIjtcclxuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvaWNvblwiO1xyXG5pbXBvcnQgeyBOeklucHV0TW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvaW5wdXRcIjtcclxuaW1wb3J0IHsgTnpQb3BvdmVyTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvcG9wb3ZlclwiO1xyXG5pbXBvcnQgeyBQbGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4vcGxhdGUtaW5wdXQuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTnpHcmlkTW9kdWxlLFxyXG4gICAgTnpJbnB1dE1vZHVsZSxcclxuICAgIE56UG9wb3Zlck1vZHVsZSxcclxuICAgIE56SWNvbk1vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1BsYXRlSW5wdXRDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW10sXHJcbiAgZXhwb3J0czogW1BsYXRlSW5wdXRDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhdGVJbnB1dE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -38,4 +38,4 @@ DefaultPlatePrefixLoadService.decorators = [
|
|
|
38
38
|
DefaultPlatePrefixLoadService.ctorParameters = () => [
|
|
39
39
|
{ type: HttpClient }
|
|
40
40
|
];
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGUtcHJlZml4LWxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9wcm9qZWN0cy92cHMtZnJvbnQvRnJvbnQvRGFzUE1TV2ViL2xpYi9wcm8tdGFibGUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BsYXRlLWlucHV0L3BsYXRlLXByZWZpeC1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUd4QyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRm5CLGtCQUFhLEdBQUcsbUNBQW1DLENBQUM7SUFFOUIsQ0FBQztJQUV4QyxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFXLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzthQUNsRSxTQUFTLEVBQUU7YUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFjLEVBQUUsRUFBRTtZQUN2QixNQUFNLE9BQU8sR0FBd0IsRUFBRSxDQUFDO1lBQ3hDLGlCQUFpQjtZQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxTQUFTO1lBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ2YsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsYUFBYTtZQUNiLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUEzQkYsVUFBVTs7O1lBUEYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFBsYXRlUHJlZml4TG9hZFNlcnZpY2UsIFBsYXRlUHJlZml4T3B0aW9uIH0gZnJvbSBcIi4uL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIOm7mOiupOeahOi9pueJjOWJjee8gOWKoOi9veacjeWKoeWunueOsFxyXG4gKiDkvb/nlKggSHR0cENsaWVudCDosIPnlKggQVBJIOiOt+WPlui9pueJjOWJjee8gOmAiemhuVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBsYXRlUHJlZml4TG9hZFNlcnZpY2UgaW1wbGVtZW50cyBQbGF0ZVByZWZpeExvYWRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBcGlVcmwgPSBcIi9QbGF0ZUZpcnN0V29yZC9HZXRQbGF0ZUZpcnN0V29yZFwiO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XHJcblxyXG4gIGxvYWRQcmVmaXhPcHRpb25zKCk6IFByb21pc2U8UGxhdGVQcmVmaXhPcHRpb25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxzdHJpbmdbXT4odGhpcy5kZWZhdWx0QXBpVXJsLCB7IGRpY3RDb2RlOiBcIlBsYXRlRmlyc3RXb3JkXCIgfSlcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKChsaXN0OiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IFBsYXRlUHJlZml4T3B0aW9uW10gPSBbXTtcclxuICAgICAgICAvLyDmt7vliqDnqbrpgInpobnvvIjkuI7ml6fniYjkv53mjIHkuIDoh7TvvIlcclxuICAgICAgICBvcHRpb25zLnB1c2goeyBsYWJlbDogXCJcIiwgdmFsdWU6IFwiXCIgfSk7XHJcbiAgICAgICAgLy8g6L2s5o2i5pWw5o2u5qC85byPXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBvcHRpb25zLnB1c2goe1xyXG4gICAgICAgICAgICBsYWJlbDogbGlzdFtpXSxcclxuICAgICAgICAgICAgdmFsdWU6IGxpc3RbaV0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgLy8g5Y+R55Sf6ZSZ6K+v5pe26L+U5Zue56m65pWw57uEXHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|