@eo-sdk/client 10.6.10 → 10.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
- package/app/eo-framework/util/services/utilities.service.d.ts +190 -0
- package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
- package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +7 -7
- package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
- package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
- package/esm2020/app/eo-framework/util/services/utilities.service.mjs +4 -1
- package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +4 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +3 -3
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +39 -37
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +3 -3
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +39 -37
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/misc/scripts/prebuild-about-state.js +2 -3
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { cloneDeep } from 'lodash-es';
|
|
2
2
|
// This class will be injected as scope into form scripts
|
|
3
3
|
export class ObjectFormScriptingScope {
|
|
4
4
|
/**
|
|
@@ -70,7 +70,7 @@ class ScopeElement {
|
|
|
70
70
|
constructor(originalElement, onScriptingModelChange) {
|
|
71
71
|
this.originalElement = originalElement;
|
|
72
72
|
this.onScriptingModelChange = onScriptingModelChange;
|
|
73
|
-
this.element =
|
|
73
|
+
this.element = cloneDeep(originalElement);
|
|
74
74
|
if (this.element.value === undefined) {
|
|
75
75
|
this.element.value = null;
|
|
76
76
|
}
|
|
@@ -88,10 +88,10 @@ class ScopeElement {
|
|
|
88
88
|
createProxy(value) {
|
|
89
89
|
const handler = {
|
|
90
90
|
set: (target, key, val) => {
|
|
91
|
-
const previousValue =
|
|
91
|
+
const previousValue = cloneDeep(this.element.value);
|
|
92
92
|
target[key] = val;
|
|
93
93
|
if (this.hasValueChanged(this.element.value, previousValue) && !key.includes('_meta')) {
|
|
94
|
-
this.onScriptingModelChange(this.element.name, { newValue:
|
|
94
|
+
this.onScriptingModelChange(this.element.name, { newValue: cloneDeep(this.element.value), name: 'value' });
|
|
95
95
|
}
|
|
96
96
|
return true;
|
|
97
97
|
},
|
|
@@ -122,7 +122,7 @@ class ScopeElement {
|
|
|
122
122
|
return entryWithoutMetadata;
|
|
123
123
|
}
|
|
124
124
|
update(value, model) {
|
|
125
|
-
const newValue =
|
|
125
|
+
const newValue = cloneDeep(value);
|
|
126
126
|
if (this.hasValueChanged(this.element.value, value)) {
|
|
127
127
|
if (this.isProxyable(newValue)) {
|
|
128
128
|
this.element.value = this.createProxy(newValue);
|
|
@@ -142,7 +142,7 @@ class ScopeElement {
|
|
|
142
142
|
else {
|
|
143
143
|
this.element.value = value;
|
|
144
144
|
}
|
|
145
|
-
this.onScriptingModelChange(this.element.name, { newValue:
|
|
145
|
+
this.onScriptingModelChange(this.element.name, { newValue: cloneDeep(this.element.value), name: 'value' });
|
|
146
146
|
}
|
|
147
147
|
get value() {
|
|
148
148
|
return this.element.value;
|
|
@@ -264,4 +264,4 @@ class ScopeElement {
|
|
|
264
264
|
return this.element.aliases;
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1Qix5REFBeUQ7QUFDekQsTUFBTSxPQUFPLHdCQUF3QjtJQXFCbkM7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQW1CLFNBQWlCLEVBQ2hCLHNCQUFzQixFQUN2QixHQUFRLEVBQ1AsZUFBeUI7UUFIMUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQUE7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUNQLG9CQUFlLEdBQWYsZUFBZSxDQUFVO1FBakM3QyxxQ0FBcUM7UUFDOUIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV2QiwwREFBMEQ7UUFDbkQsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUt0Qiw4QkFBOEI7UUFDdkIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUN6QixpREFBaUQ7UUFDakQsK0RBQStEO1FBQy9ELDJCQUEyQjtRQUMzQiw4Q0FBOEM7UUFDdkMsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQW9ELEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQWtCcEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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dCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbi8vIFRoaXMgY2xhc3Mgd2lsbCBiZSBpbmplY3RlZCBhcyBzY29wZSBpbnRvIGZvcm0gc2NyaXB0c1xuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZSB7XG5cbiAgLy8gTGlzdCBvZiBhbGwgZm9ybSBmaWVsZHMgKGVsZW1lbnRzKVxuICBwdWJsaWMgbW9kZWw6IGFueSA9IHt9O1xuXG4gIC8vIGFsbCBkYXRhIHZhbHVlcyBpbmNsdWRpbmcgaW52aXNpYmxlIGVsZW1lbnRzIChSRUFET05MWSlcbiAgcHVibGljIGRhdGE6IGFueSA9IHt9O1xuXG4gIC8vIFRoZSBpZCBvZiB0aGUgY3VycmVudCBETVMtT2JqZWN0IChSRUFET05MWSlcbiAgcHVibGljIG9iamVjdElkOiBzdHJpbmc7XG5cbiAgLy8gYWN0aW9ucyBwYXNzZWQgYnkgQlBNIGZvcm1zXG4gIHB1YmxpYyBhY3Rpb25zOiBhbnkgPSB7fTtcbiAgLy8gYWRkaXRpb25hbCBvYmplY3RzIHByb3ZpZGVkIGJ5IHRoZSBvYmplY3QgZm9ybVxuICAvLyB1c2VkIGZvciBleGFtcGxlIHRvIHBhc3MgZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gYSB3b3JrIGl0ZW1cbiAgLy8gdG8gdGhlIHNjcmlwdCAoUkVBRE9OTFkpXG4gIC8vIG1heSBjb250YWluOiBGb3JtU2NyaXB0RG1zT2JqZWN0LCBGaWxlRW50cnlcbiAgcHVibGljIG9iamVjdHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBjb250ZXh0OiB7IGlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIHR5cGVOYW1lOiBzdHJpbmcgfSA9IHtpZDogJycsIHRpdGxlOiAnJywgdHlwZU5hbWU6ICcnfTtcblxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIC0gQ3VycmVudCBmb3JtIG1vZGVsIHNpdHVhdGlvbiAoY291bGQgYmUgQ1JFQVRFLCBTRUFSQ0ggb3IgRURJVClcbiAgICogQHBhcmFtIG9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UgLSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0aW5nIG1vZGVsIGNoYW5nZWRcbiAgICogQmUgYXdhcmUgdG8gcHJvdmlkZSBhbiBpbnN0YW5jZSBtZXRob2QgYXMgY2FsbGJhY2sgZm9yIHRoZSBzY3JpcHRpbmcgc2NvcGUuXG4gICAqIEBzZWU6IGh0dHBzOi8vYmxvZy5qb2hubnlyZWlsbHkuY29tLzIwMTQvMDQvdHlwZXNjcmlwdC1pbnN0YW5jZS1tZXRob2RzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGFwaSAtIFBsdWdpbiBBUEkgcmVmZXJlbmNlXG4gICAqIEBwYXJhbSBpc1RhYmxlUm93U2NvcGUgLSBzZXQgdGhpcyB0byB0cnVlIGlmIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZSBpcyBjcmVhdGVkIGZvciBhXG4gICAqIHJvdyBlZGl0aW5nIGZvcm0gZnJvbSBhIHRhYmxlIGVsZW1lbnQuIEl0IHdpbGwgdGhlbiBwcm92aWRlIHRoZSByaWdodCBwYXJhbWV0ZXJzIGZvciB0aGUgc2NyaXB0aW5nIGZ1bmN0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHNpdHVhdGlvbjogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIG9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UsXG4gICAgICAgICAgICAgIHB1YmxpYyBhcGk6IGFueSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpc1RhYmxlUm93U2NvcGU/OiBib29sZWFuKSB7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW50ZXJuYWwgbW9kZWwgYW5kIHdyYXBzIGV2ZXJ5IG1vZGVsIGVsZW1lbnQgd2l0aCBhbiBvYnNlcnZlciB0byBiZVxuICAgKiBhYmxlIHRvIHRyYWNrIHRoZWlyIGNoYW5nZXMgZnJvbSB3aXRoaW4gYSBmb3JtIHNjcmlwdFxuICAgKiBAcGFyYW0gbW9kZWxcbiAgICovXG4gIHB1YmxpYyBzZXRNb2RlbChtb2RlbDogYW55KSB7XG4gICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgIGZvciAobGV0IGsgb2YgT2JqZWN0LmtleXMobW9kZWwpKSB7XG4gICAgICB0aGlzLm1vZGVsW2tdID0gbmV3IFNjb3BlRWxlbWVudChtb2RlbFtrXSwgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgb2JzZXJ2ZWQgbW9kZWwuIFVzZWQgZm9yIHJvdyBlZGl0aW5nIGZvcm1zIG9mIHRhYmxlIGVsZW1lbnRzIHRoYXRcbiAgICogY3JlYXRlIHRoZWlyIG93biBzY3JpcHRpbmcgc2NvcGUgaW4gY29udGV4dCBvZiB0aGVpciBwYXJlbnQgZm9ybS5cbiAgICogQHJldHVybnMgdGhlIG9ic2VydmVkIHNjcmlwdGluZyBzY29wZSBtb2RlbFxuICAgKi9cbiAgcHVibGljIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgb2JqZWN0IGZvcm0gd2hlbiB0aGUgZm9ybSBtb2RlbCBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gY2hhbmdlIC0gb2JqZWN0IHdpdGgga2V5IGVxdWFscyBuYW1lIG9mIHRoZSBlbGVtZW50XG4gICAqIHRoYXQgY2hhbmdlcyBhbmQgdmFsdWUgb2YgdGhlIG5ldyB2YWx1ZVxuICAgKi9cbiAgcHVibGljIG1vZGVsQ2hhbmdlZChjaGFuZ2U6IGFueSkge1xuXG4gICAgLy8gZmluZCB0aGUgY2hhbmdlZCBlbGVtZW50IGluIHRoZSBzY29wZXMgbW9kZWxcbiAgICBsZXQgcHJvcGVydHlOYW1lID0gT2JqZWN0LmtleXMoY2hhbmdlKVswXTtcbiAgICBpZiAoY2hhbmdlW3Byb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZGVsW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgIGxldCBlbCA9IHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXTtcbiAgICAgIGVsLnVwZGF0ZShjaGFuZ2VbcHJvcGVydHlOYW1lXSwgdGhpcy5tb2RlbCk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFNjb3BlRWxlbWVudCB7XG4gIHByaXZhdGUgZWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9yaWdpbmFsRWxlbWVudDogYW55LCBwcml2YXRlIG9uU2NyaXB0aW5nTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gXy5jbG9uZURlZXAob3JpZ2luYWxFbGVtZW50KTtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlLCBrZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAmJiB2YWx1ZSAhPT0gbnVsbFxuICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxuICAgICAgJiYgKGtleSA/ICFrZXkuaW5jbHVkZXMoJ19tZXRhJykgOiB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWUpIHtcbiAgICBjb25zdCBoYW5kbGVyID0ge1xuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gXy5jbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIGlmICh0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQudmFsdWUsIHByZXZpb3VzVmFsdWUpICYmICFrZXkuaW5jbHVkZXMoJ19tZXRhJykpIHtcbiAgICAgICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogXy5jbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJ30pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSxcbiAgICAgIC8vIFRoaXMgZ2V0IHRyYXAgaXMgb25seSB1c2VkIHRvIGZpbmQgb3V0LCBpZiBhbiBvYmplY3QgaXMgYSBwcm94eSBvciBub3QuXG4gICAgICBnZXQ6ICh0YXJnZXQsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnaXNQcm94eScpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV07XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJveHkodmFsdWUsIGhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNWYWx1ZUNoYW5nZWQodmFsdWUxLCB2YWx1ZTIpIHtcbiAgICBsZXQgdjEgPSB2YWx1ZTE7XG4gICAgbGV0IHYyID0gdmFsdWUyO1xuICAgIGlmKEFycmF5LmlzQXJyYXkodmFsdWUxKSAmJiB0eXBlb2YgdmFsdWUxWzBdID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlMikgJiYgdHlwZW9mIHZhbHVlMlswXSA9PT0gJ29iamVjdCcpey8vIHRoaXMgaXMgb25seSB0aGUgY2FzZSBpbiB0YWJsZXNcbiAgICAgIHYxID0gdmFsdWUxLm1hcChlbnRyeSA9PiB0aGlzLmNyZWF0ZUVudHJ5V2l0aG91dE1ldGFkYXRhKGVudHJ5KSk7Ly8gcmVtb3ZpbmcgbWV0YWRhdGEgZnJvbSBldmVyeSByb3csIGJlY2F1c2UgaXQncyBpbnNpZ25pZmljYW50IGZvciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICB2MiA9IHZhbHVlMi5tYXAoZW50cnkgPT4gdGhpcy5jcmVhdGVFbnRyeVdpdGhvdXRNZXRhZGF0YShlbnRyeSkpOy8vIGFuZCBjYW4gY2F1c2UgZmFsc2UgXCJ0cnVlXCItcmVzdWx0c1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodjEpICE9PSBKU09OLnN0cmluZ2lmeSh2Mik7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUVudHJ5V2l0aG91dE1ldGFkYXRhKGVudHJ5KXtcbiAgICBsZXQgZW50cnlXaXRob3V0TWV0YWRhdGEgPSB7Li4uZW50cnl9O1xuICAgIE9iamVjdC5rZXlzKGVudHJ5V2l0aG91dE1ldGFkYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBkZWxldGUgZW50cnlXaXRob3V0TWV0YWRhdGFba2V5ICsgJ19tZXRhJ107XG4gICAgfSk7XG4gICAgcmV0dXJuIGVudHJ5V2l0aG91dE1ldGFkYXRhO1xuICB9XG5cbiAgdXBkYXRlKHZhbHVlLCBtb2RlbCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gXy5jbG9uZURlZXAodmFsdWUpO1xuICAgIGlmICh0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQudmFsdWUsIHZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUobmV3VmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbGVtZW50Lm9uY2hhbmdlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSh0aGlzLCBtb2RlbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWUpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBfLmNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIHNldCBvbmNoYW5nZShvbmNoYW5nZSkge1xuICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSA9IG9uY2hhbmdlO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbmNoYW5nZSwgbmFtZTogJ29uY2hhbmdlJ30pO1xuICB9XG5cbiAgZ2V0IG9uY2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25jaGFuZ2U7XG4gIH1cblxuICBzZXQgcmVxdWlyZWQocmVxdWlyZWQpIHtcbiAgICBpZih0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQucmVxdWlyZWQsIHJlcXVpcmVkKSl7XG4gICAgICB0aGlzLmVsZW1lbnQucmVxdWlyZWQgPSByZXF1aXJlZDtcbiAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZXF1aXJlZCwgbmFtZTogJ3JlcXVpcmVkJ30pO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnJlcXVpcmVkO1xuICB9XG5cbiAgc2V0IHJlYWRvbmx5KHJlYWRvbmx5KSB7XG4gICAgdGhpcy5lbGVtZW50LnJlYWRvbmx5ID0gcmVhZG9ubHk7XG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IHJlYWRvbmx5LCBuYW1lOiAncmVhZG9ubHknfSk7XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZWFkb25seTtcbiAgfVxuXG4gIHNldCBlcnJvcihlcnJvcikge1xuICAgIGlmKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC5lcnJvciwgZXJyb3IpKXtcbiAgICAgIHRoaXMuZWxlbWVudC5lcnJvciA9IGVycm9yO1xuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGVycm9yLCBuYW1lOiAnZXJyb3InfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGVycm9yKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZXJyb3I7XG4gIH1cblxuICBzZXQgb25yb3dlZGl0KG9ucm93ZWRpdCkge1xuICAgIHRoaXMuZWxlbWVudC5vbnJvd2VkaXQgPSBvbnJvd2VkaXQ7XG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IG9ucm93ZWRpdCwgbmFtZTogJ29ucm93ZWRpdCd9KTtcbiAgfVxuXG4gIGdldCBvbnJvd2VkaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5vbnJvd2VkaXQ7XG4gIH1cblxuICBzZXQgY29udGV4dElkKGNvbnRleHRJZCkge1xuICAgIHRoaXMuZWxlbWVudC5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNvbnRleHRJZCwgbmFtZTogJ2NvbnRleHRJZCd9KTtcbiAgfVxuXG4gIGdldCBjb250ZXh0SWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb250ZXh0SWQ7XG4gIH1cblxuICBzZXRMaXN0KG9iaikge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRMaXN0KSB7XG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRMaXN0KG9iaik7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZnVuYykge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseUZpbHRlcikge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlGaWx0ZXIoZnVuYyk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlEaXNhYmxpbmdGaWx0ZXIoZnVuYykge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlcikge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIoZnVuYyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmlsdGVyKG9iaikge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldEZpbHRlcihvYmopO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5RmlsdGVycyhxdWVyeUZpbHRlcnNPYmplY3Q6IHtbZmllbGRRbmFtZTogc3RyaW5nXToge286IHN0cmluZywgdjE6IGFueSwgdjI6IGFueX19LCBvYmplY3RUeXBlcz86IHN0cmluZ1tdKSB7XG4gICAgaWYgKHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycykge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0UXVlcnlGaWx0ZXJzKHF1ZXJ5RmlsdGVyc09iamVjdCwgb2JqZWN0VHlwZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmFtZTtcbiAgfVxuXG4gIGdldCBxbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnFuYW1lO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubGFiZWw7XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudHlwZTtcbiAgfVxuXG4gIGdldCBtdWx0aXNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm11bHRpc2VsZWN0O1xuICB9XG5cbiAgZ2V0IGNvZGVzeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb2Rlc3lzdGVtO1xuICB9XG5cbiAgZ2V0IG1pbmxlbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1pbmxlbjtcbiAgfVxuXG4gIGdldCBtYXhsZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tYXhsZW47XG4gIH1cblxuICBnZXQgY2xhc3NpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbjtcbiAgfVxuXG4gIGdldCBzY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnNjYWxlO1xuICB9XG5cbiAgZ2V0IHByZWNpc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnByZWNpc2lvbjtcbiAgfVxuXG4gIGdldCB3aXRodGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LndpdGh0aW1lO1xuICB9XG5cbiAgZ2V0IGVsZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZWxlbWVudHM7XG4gIH1cblxuICBnZXQgYWxpYXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmFsaWFzZXM7XG4gIH1cbn1cbiJdfQ==
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXBDLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBbUIsU0FBaUIsRUFDaEIsc0JBQXNCLEVBQ3ZCLEdBQVEsRUFDUCxlQUF5QjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBQTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQVU7UUFqQzdDLHFDQUFxQztRQUM5QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXZCLDBEQUEwRDtRQUNuRCxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBS3RCLDhCQUE4QjtRQUN2QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlEQUFpRDtRQUNqRCwrREFBK0Q7UUFDL0QsMkJBQTJCO1FBQzNCLDhDQUE4QztRQUN2QyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBb0QsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBa0JwRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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Ly8gVGhpcyBjbGFzcyB3aWxsIGJlIGluamVjdGVkIGFzIHNjb3BlIGludG8gZm9ybSBzY3JpcHRzXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlIHtcblxuICAvLyBMaXN0IG9mIGFsbCBmb3JtIGZpZWxkcyAoZWxlbWVudHMpXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XG5cbiAgLy8gYWxsIGRhdGEgdmFsdWVzIGluY2x1ZGluZyBpbnZpc2libGUgZWxlbWVudHMgKFJFQURPTkxZKVxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XG5cbiAgLy8gVGhlIGlkIG9mIHRoZSBjdXJyZW50IERNUy1PYmplY3QgKFJFQURPTkxZKVxuICBwdWJsaWMgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvLyBhY3Rpb25zIHBhc3NlZCBieSBCUE0gZm9ybXNcbiAgcHVibGljIGFjdGlvbnM6IGFueSA9IHt9O1xuICAvLyBhZGRpdGlvbmFsIG9iamVjdHMgcHJvdmlkZWQgYnkgdGhlIG9iamVjdCBmb3JtXG4gIC8vIHVzZWQgZm9yIGV4YW1wbGUgdG8gcGFzcyBkbXMgb2JqZWN0cyBhdHRhY2hlZCB0byBhIHdvcmsgaXRlbVxuICAvLyB0byB0aGUgc2NyaXB0IChSRUFET05MWSlcbiAgLy8gbWF5IGNvbnRhaW46IEZvcm1TY3JpcHREbXNPYmplY3QsIEZpbGVFbnRyeVxuICBwdWJsaWMgb2JqZWN0czogYW55W10gPSBbXTtcbiAgcHVibGljIGNvbnRleHQ6IHsgaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZyB9ID0ge2lkOiAnJywgdGl0bGU6ICcnLCB0eXBlTmFtZTogJyd9O1xuXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gLSBDdXJyZW50IGZvcm0gbW9kZWwgc2l0dWF0aW9uIChjb3VsZCBiZSBDUkVBVEUsIFNFQVJDSCBvciBFRElUKVxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxuICAgKiBCZSBhd2FyZSB0byBwcm92aWRlIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZS5cbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYXBpIC0gUGx1Z2luIEFQSSByZWZlcmVuY2VcbiAgICogQHBhcmFtIGlzVGFibGVSb3dTY29wZSAtIHNldCB0aGlzIHRvIHRydWUgaWYgdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlIGlzIGNyZWF0ZWQgZm9yIGFcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2l0dWF0aW9uOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZSxcbiAgICAgICAgICAgICAgcHVibGljIGFwaTogYW55LFxuICAgICAgICAgICAgICBwcml2YXRlIGlzVGFibGVSb3dTY29wZT86IGJvb2xlYW4pIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXG4gICAqIGFibGUgdG8gdHJhY2sgdGhlaXIgY2hhbmdlcyBmcm9tIHdpdGhpbiBhIGZvcm0gc2NyaXB0XG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcbiAgICAgIHRoaXMubW9kZWxba10gPSBuZXcgU2NvcGVFbGVtZW50KG1vZGVsW2tdLCB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbC4gVXNlZCBmb3Igcm93IGVkaXRpbmcgZm9ybXMgb2YgdGFibGUgZWxlbWVudHMgdGhhdFxuICAgKiBjcmVhdGUgdGhlaXIgb3duIHNjcmlwdGluZyBzY29wZSBpbiBjb250ZXh0IG9mIHRoZWlyIHBhcmVudCBmb3JtLlxuICAgKiBAcmV0dXJucyB0aGUgb2JzZXJ2ZWQgc2NyaXB0aW5nIHNjb3BlIG1vZGVsXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSBvYmplY3QgZm9ybSB3aGVuIHRoZSBmb3JtIG1vZGVsIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBjaGFuZ2UgLSBvYmplY3Qgd2l0aCBrZXkgZXF1YWxzIG5hbWUgb2YgdGhlIGVsZW1lbnRcbiAgICogdGhhdCBjaGFuZ2VzIGFuZCB2YWx1ZSBvZiB0aGUgbmV3IHZhbHVlXG4gICAqL1xuICBwdWJsaWMgbW9kZWxDaGFuZ2VkKGNoYW5nZTogYW55KSB7XG5cbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSBPYmplY3Qua2V5cyhjaGFuZ2UpWzBdO1xuICAgIGlmIChjaGFuZ2VbcHJvcGVydHlOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXSkge1xuICAgICAgbGV0IGVsID0gdGhpcy5tb2RlbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgZWwudXBkYXRlKGNoYW5nZVtwcm9wZXJ0eU5hbWVdLCB0aGlzLm1vZGVsKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU2NvcGVFbGVtZW50IHtcbiAgcHJpdmF0ZSBlbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3JpZ2luYWxFbGVtZW50OiBhbnksIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24pIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBjbG9uZURlZXAob3JpZ2luYWxFbGVtZW50KTtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlLCBrZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAmJiB2YWx1ZSAhPT0gbnVsbFxuICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxuICAgICAgJiYgKGtleSA/ICFrZXkuaW5jbHVkZXMoJ19tZXRhJykgOiB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWUpIHtcbiAgICBjb25zdCBoYW5kbGVyID0ge1xuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gY2xvbmVEZWVwKHRoaXMuZWxlbWVudC52YWx1ZSk7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsO1xuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCBwcmV2aW91c1ZhbHVlKSAmJiAha2V5LmluY2x1ZGVzKCdfbWV0YScpKSB7XG4gICAgICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgLy8gVGhpcyBnZXQgdHJhcCBpcyBvbmx5IHVzZWQgdG8gZmluZCBvdXQsIGlmIGFuIG9iamVjdCBpcyBhIHByb3h5IG9yIG5vdC5cbiAgICAgIGdldDogKHRhcmdldCwga2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdpc1Byb3h5Jykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm94eSh2YWx1ZSwgaGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIGhhc1ZhbHVlQ2hhbmdlZCh2YWx1ZTEsIHZhbHVlMikge1xuICAgIGxldCB2MSA9IHZhbHVlMTtcbiAgICBsZXQgdjIgPSB2YWx1ZTI7XG4gICAgaWYoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIHR5cGVvZiB2YWx1ZTFbMF0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKSAmJiB0eXBlb2YgdmFsdWUyWzBdID09PSAnb2JqZWN0Jyl7Ly8gdGhpcyBpcyBvbmx5IHRoZSBjYXNlIGluIHRhYmxlc1xuICAgICAgdjEgPSB2YWx1ZTEubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyByZW1vdmluZyBtZXRhZGF0YSBmcm9tIGV2ZXJ5IHJvdywgYmVjYXVzZSBpdCdzIGluc2lnbmlmaWNhbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIHYyID0gdmFsdWUyLm1hcChlbnRyeSA9PiB0aGlzLmNyZWF0ZUVudHJ5V2l0aG91dE1ldGFkYXRhKGVudHJ5KSk7Ly8gYW5kIGNhbiBjYXVzZSBmYWxzZSBcInRydWVcIi1yZXN1bHRzXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2MSkgIT09IEpTT04uc3RyaW5naWZ5KHYyKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpe1xuICAgIGxldCBlbnRyeVdpdGhvdXRNZXRhZGF0YSA9IHsuLi5lbnRyeX07XG4gICAgT2JqZWN0LmtleXMoZW50cnlXaXRob3V0TWV0YWRhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBlbnRyeVdpdGhvdXRNZXRhZGF0YVtrZXkgKyAnX21ldGEnXTtcbiAgICB9KTtcbiAgICByZXR1cm4gZW50cnlXaXRob3V0TWV0YWRhdGE7XG4gIH1cblxuICB1cGRhdGUodmFsdWUsIG1vZGVsKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIGlmICh0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQudmFsdWUsIHZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUobmV3VmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbGVtZW50Lm9uY2hhbmdlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSh0aGlzLCBtb2RlbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWUpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJ30pO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZXQgb25jaGFuZ2Uob25jaGFuZ2UpIHtcbiAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UgPSBvbmNoYW5nZTtcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogb25jaGFuZ2UsIG5hbWU6ICdvbmNoYW5nZSd9KTtcbiAgfVxuXG4gIGdldCBvbmNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm9uY2hhbmdlO1xuICB9XG5cbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkKSB7XG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnJlcXVpcmVkLCByZXF1aXJlZCkpe1xuICAgICAgdGhpcy5lbGVtZW50LnJlcXVpcmVkID0gcmVxdWlyZWQ7XG4gICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogcmVxdWlyZWQsIG5hbWU6ICdyZXF1aXJlZCd9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZWFkb25seShyZWFkb25seSkge1xuICAgIHRoaXMuZWxlbWVudC5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZWFkb25seSwgbmFtZTogJ3JlYWRvbmx5J30pO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucmVhZG9ubHk7XG4gIH1cblxuICBzZXQgZXJyb3IoZXJyb3IpIHtcbiAgICBpZih0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQuZXJyb3IsIGVycm9yKSl7XG4gICAgICB0aGlzLmVsZW1lbnQuZXJyb3IgPSBlcnJvcjtcbiAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBlcnJvciwgbmFtZTogJ2Vycm9yJ30pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVycm9yO1xuICB9XG5cbiAgc2V0IG9ucm93ZWRpdChvbnJvd2VkaXQpIHtcbiAgICB0aGlzLmVsZW1lbnQub25yb3dlZGl0ID0gb25yb3dlZGl0O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbnJvd2VkaXQsIG5hbWU6ICdvbnJvd2VkaXQnfSk7XG4gIH1cblxuICBnZXQgb25yb3dlZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xuICB9XG5cbiAgc2V0IGNvbnRleHRJZChjb250ZXh0SWQpIHtcbiAgICB0aGlzLmVsZW1lbnQuY29udGV4dElkID0gY29udGV4dElkO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjb250ZXh0SWQsIG5hbWU6ICdjb250ZXh0SWQnfSk7XG4gIH1cblxuICBnZXQgY29udGV4dElkKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGV4dElkO1xuICB9XG5cbiAgc2V0TGlzdChvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdCkge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdChvYmopO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbHRlcihvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIob2JqKTtcbiAgICB9XG4gIH1cblxuICBzZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycyhxdWVyeUZpbHRlcnNPYmplY3QsIG9iamVjdFR5cGVzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hbWU7XG4gIH1cblxuICBnZXQgcW5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xbmFtZTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZGVzY3JpcHRpb247XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnR5cGU7XG4gIH1cblxuICBnZXQgbXVsdGlzZWxlY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tdWx0aXNlbGVjdDtcbiAgfVxuXG4gIGdldCBjb2Rlc3lzdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29kZXN5c3RlbTtcbiAgfVxuXG4gIGdldCBtaW5sZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5taW5sZW47XG4gIH1cblxuICBnZXQgbWF4bGVuKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWF4bGVuO1xuICB9XG5cbiAgZ2V0IGNsYXNzaWZpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY2xhc3NpZmljYXRpb247XG4gIH1cblxuICBnZXQgc2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zY2FsZTtcbiAgfVxuXG4gIGdldCBwcmVjaXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wcmVjaXNpb247XG4gIH1cblxuICBnZXQgd2l0aHRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC53aXRodGltZTtcbiAgfVxuXG4gIGdldCBlbGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVsZW1lbnRzO1xuICB9XG5cbiAgZ2V0IGFsaWFzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5hbGlhc2VzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import { Utils } from '@eo-sdk/core';
|
|
3
|
-
import
|
|
3
|
+
import { cloneDeep } from 'lodash-es';
|
|
4
4
|
import { debounceTime } from 'rxjs/operators';
|
|
5
5
|
import { ObjectFormScriptService } from './object-form-script/object-form-script.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -14,7 +14,7 @@ import * as i7 from "./object-form-group/object-form-group.component";
|
|
|
14
14
|
export class ObjectFormComponent {
|
|
15
15
|
set options(formOptions) {
|
|
16
16
|
this.defaultFormOptions = formOptions;
|
|
17
|
-
this.formOptions =
|
|
17
|
+
this.formOptions = cloneDeep(formOptions);
|
|
18
18
|
this.init();
|
|
19
19
|
}
|
|
20
20
|
constructor(logger, elementRef, formScriptService, formHelperService, cdRef) {
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
145
145
|
type: Input,
|
|
146
146
|
args: ['formOptions']
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7O0FBWXhGLE1BQU0sT0FBTyxtQkFBbUI7SUFtQjlCLElBQ0ksT0FBTyxDQUFDLFdBQThCO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFvQixNQUFjLEVBQ3hCLFVBQXNCLEVBQ3RCLGlCQUEwQyxFQUMxQyxpQkFBMEMsRUFDMUMsS0FBd0I7UUFKZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO1FBQzFDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBM0JsQyxrREFBa0Q7UUFDeEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNyRSx3REFBd0Q7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBV25DLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQWMzQyxDQUFDO0lBRUQseURBQXlEO0lBQ2pELElBQUk7UUFDVixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3pDLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFTSxXQUFXLENBQUMsSUFBSTtRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsc0NBQXNDO0lBQy9CLFNBQVM7UUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckUsQ0FBQztJQUVELG1EQUFtRDtJQUMzQyxpQkFBaUIsQ0FBQyxXQUFXO1FBQ25DLE1BQU0sVUFBVSxHQUFrQixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQ3hFLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQztRQUUxRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU87WUFDdkIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFPLEdBQUcsSUFBSTtRQUN6QyxzQ0FBc0M7UUFDdEMsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXBHLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNuQixnQkFBZ0IsRUFBRSxTQUFTO2FBQzVCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUVoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQzNDLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsb0VBQW9FO0lBQ3BFLDBFQUEwRTtJQUNsRSxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Z0hBMUpVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlNQUZuQixDQUFDLHVCQUF1QixDQUFDLDBCQzVCdEMsNGJBWUE7MkZEa0JhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxnQkFBZ0IsYUFLZixDQUFDLHVCQUF1QixDQUFDO2tPQUkzQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQWNILE9BQU87c0JBRFYsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXIsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXG4gIC8vIHdoaWNoIHdvdWxkIGNhdXNlIHRoZW0gdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgd2hvbGUgYXBwbGljYXRpb25cbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZm9ybXMgc3RhdGUgaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcbiAgLy8gaGFuZGxlciB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBzZXQgdXBcbiAgQE91dHB1dCgpIG9uRm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHB1YmxpYyBkZWZhdWx0Rm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICAvLyB0aGUgYWN0dWFsIGZvcm0gaW5zdGFuY2VcbiAgcHVibGljIGZvcm07XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuICBwcml2YXRlIHNjcmlwdGluZ1Njb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBASW5wdXQoJ2Zvcm1PcHRpb25zJylcbiAgc2V0IG9wdGlvbnMoZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zKSB7XG4gICAgdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnMgPSBmb3JtT3B0aW9ucztcbiAgICB0aGlzLmZvcm1PcHRpb25zID0gXy5jbG9uZURlZXAoZm9ybU9wdGlvbnMpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIC8vIGluaXRpYWxpemUgdGhlIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gb3B0aW9uc1xuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcbiAgICAgIHRoaXMuYnVpbGRSZWFjdGl2ZUZvcm0odGhpcy5mb3JtT3B0aW9ucyB8fCB7fSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRPcHRpb25zKCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGZvY3VzRm9ybSgpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybURhdGEoZGF0YSkge1xuICAgIHRoaXMuZm9ybU9wdGlvbnMuZGF0YSA9IGRhdGE7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0gbW9kZWwuIEVhY2ggZm9ybSB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBvbmVcbiAgICogcHJvcGVydHkgb24gdGhlIHJlc3VsdCBvYmplY3QgaG9sZGluZyB0aGUgZmllbGRzIHZhbHVlLiBUaGUga2V5cyAocHJvcGVydGllcykgYXJlIHRoZSBgbmFtZWBcbiAgICogcHJvcGVydGllcyBvZiB0aGUgZm9ybSBlbGVtZW50IChpbiBTRUFSQ0ggc2l0dWF0aW9uIHRoZSBgcW5hbWVgIGZpZWxkIGlzIHVzZWQpLlxuICAgKlxuICAgKiBIb3cgdmFsdWVzIGFyZSBleHRyYWN0ZWQgaXMgaW5mbHVlbmNlZCBieSB0aGUgZm9ybXMgc2l0dWF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIG9iamVjdCBvZiBrZXkgdmFsdWUgcGFpcnNcbiAgICovXG4gIHB1YmxpYyBnZXRGb3JtRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9ybVByaXN0aW5lKCkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgLy8gcmVzZXQgdGhlIGZvcm0gdG8gaXRzIGluaXRpYWwgc3RhdGVcbiAgcHVibGljIHJlc2V0Rm9ybSgpIHtcbiAgICB0aGlzLmluaXRPcHRpb25zKCk7XG4gICAgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICAgKiBubyBmb3JtIHNjcmlwdCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gTlVMTC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnNjcmlwdGluZ1Njb3BlID8gdGhpcy5zY3JpcHRpbmdTY29wZS5nZXRNb2RlbCgpIDogbnVsbDtcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIHJlYWN0aXZlIGZvcm0gZnJvbSB0aGUgZW5haW8gZm9ybSBtb2RlbFxuICBwcml2YXRlIGJ1aWxkUmVhY3RpdmVGb3JtKGZvcm1PcHRpb25zKSB7XG4gICAgY29uc3QgZm9ybUdlblJlczogRm9ybUdlblJlc3VsdCA9IHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuYnVpbGRSZWFjdGl2ZUZvcm0oXG4gICAgICBmb3JtT3B0aW9ucywgdGhpcy5mb3JtU2NyaXB0U2VydmljZSwgdGhpcy5pc0lubmVyVGFibGVGb3JtXG4gICAgKTtcbiAgICB0aGlzLmZvcm0gPSBmb3JtR2VuUmVzLmZvcm07XG4gICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IGZvcm1HZW5SZXMuc2NyaXB0aW5nU2NvcGU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gZm9ybUdlblJlcy5jb250cm9sVmFsdWVTdWJzY3JpcHRpb25zO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuO1xuICAgICAgbGV0IGZvcm1XYXRjaCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAhZm9ybVdhdGNoLmNsb3NlZCAmJiB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KCkpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZm9ybVdhdGNoKTtcbiAgICAgIHRoaXMub25Gb3JtUmVhZHkuZW1pdCgpO1xuICAgICAgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudChmYWxzZSk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1DaGFuZ2VkRXZlbnQoY29tcGFyZSA9IHRydWUpIHtcbiAgICAvLyBjaGVjayBpZiBpbmRleGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxuICAgIGxldCBjdXJyZW50Rm9ybURhdGEgPSB0aGlzLmdldEZvcm1EYXRhKCk7XG4gICAgbGV0IGlkeENoYW5nZSA9IGNvbXBhcmUgPyBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSA6IGZhbHNlO1xuXG4gICAgdGhpcy5mb3JtRGF0YSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKSk7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBpbnZhbGlkOiB0aGlzLmZvcm0uaW52YWxpZCxcbiAgICAgICAgZGlydHk6IHRoaXMuZm9ybS5kaXJ0eSxcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm1cbiAgICovXG4gIHByaXZhdGUgZm9ybVRvRGF0YSgpIHtcblxuICAgIHJldHVybiB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmV4dHJhY3RGb3JtRGF0YShcbiAgICAgIHRoaXMuZm9ybSxcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvbixcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMuZGF0YSxcbiAgICAgIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyB1bnN1YnNjcmliZSBmcm9tIGFsbCB2YWx1ZSBjaGFuZ2UgbGlzdGVuZXJzIGZvciB0aGUgY3VycmVudCBmb3JtXG4gIC8vIHRvIGF2b2lkIG1lbW9yeSBsZWFrcy4gVGhpcyBtZXRob2Qgd2lsbCBhbHNvIGJlIGNhbGxlZCBldmVyeSB0aW1lXG4gIC8vIGEgbmV3IGZvcm0gaXMgcmVuZGVyZWQgdG8gZ2V0IHJpZCBvZiB0aGUgb2xkIGZvcm0gZWxlbWVudCBzdWJzY3JpcHRpb25zXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1bnN1YnNjcmliZWQgZnJvbSAnICsgdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCArICcgdmFsdWUgY2hhbmdlIGxpc3RlbmVycy4nKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLW9iamVjdC1mb3JtXCIgKm5nSWY9XCJmb3JtICYmIGZvcm1PcHRpb25zXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgZW9SdGxBd2FyZT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZWxlbWVudC13cmFwIGNvcmVcIj5cbiAgICA8ZW8tZm9ybS1ncm91cCBbZ3JvdXBdPVwiZm9ybS5nZXQoJ2NvcmUnKVwiIFtzaXR1YXRpb25dPVwiZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvblwiPjwvZW8tZm9ybS1ncm91cD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBkYXRhXCI+XG4gICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImZvcm0uZ2V0KCdkYXRhJylcIiBbc2l0dWF0aW9uXT1cImZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cIj48L2VvLWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuXG5cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUFZeEYsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsSUFDSSxPQUFPLENBQUMsV0FBOEI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBb0IsTUFBYyxFQUN4QixVQUFzQixFQUN0QixpQkFBMEMsRUFDMUMsaUJBQTBDLEVBQzFDLEtBQXdCO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5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YztRQUNwQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFDakcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7O2dIQTFKVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix5TUFGbkIsQ0FBQyx1QkFBdUIsQ0FBQywwQkM1QnRDLDRiQVlBOzJGRGtCYSxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBS2YsQ0FBQyx1QkFBdUIsQ0FBQztrT0FJM0IsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFjSCxPQUFPO3NCQURWLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHQuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRpbmdTY29wZX0gZnJvbSAnLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXG4gIC8vIHdoaWNoIHdvdWxkIGNhdXNlIHRoZW0gdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgd2hvbGUgYXBwbGljYXRpb25cbiAgcHJvdmlkZXJzOiBbT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgZm9ybXMgc3RhdGUgaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXR1c0NoYW5nZWRFdmVudD4oKTtcbiAgLy8gaGFuZGxlciB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBzZXQgdXBcbiAgQE91dHB1dCgpIG9uRm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHB1YmxpYyBkZWZhdWx0Rm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICAvLyB0aGUgYWN0dWFsIGZvcm0gaW5zdGFuY2VcbiAgcHVibGljIGZvcm07XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuICBwcml2YXRlIHNjcmlwdGluZ1Njb3BlOiBPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBASW5wdXQoJ2Zvcm1PcHRpb25zJylcbiAgc2V0IG9wdGlvbnMoZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zKSB7XG4gICAgdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnMgPSBmb3JtT3B0aW9ucztcbiAgICB0aGlzLmZvcm1PcHRpb25zID0gY2xvbmVEZWVwKGZvcm1PcHRpb25zKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICAvLyBpbml0aWFsaXplIHRoZSBmb3JtIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBmb3JtIG9wdGlvbnNcbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gICAgICB0aGlzLmJ1aWxkUmVhY3RpdmVGb3JtKHRoaXMuZm9ybU9wdGlvbnMgfHwge30pO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmRlZmF1bHRGb3JtT3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0Zvcm0oKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1EYXRhKGRhdGEpIHtcbiAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSBkYXRhO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtIG1vZGVsLiBFYWNoIGZvcm0gdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkgb25lXG4gICAqIHByb3BlcnR5IG9uIHRoZSByZXN1bHQgb2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkcyB2YWx1ZS4gVGhlIGtleXMgKHByb3BlcnRpZXMpIGFyZSB0aGUgYG5hbWVgXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gZWxlbWVudCAoaW4gU0VBUkNIIHNpdHVhdGlvbiB0aGUgYHFuYW1lYCBmaWVsZCBpcyB1c2VkKS5cbiAgICpcbiAgICogSG93IHZhbHVlcyBhcmUgZXh0cmFjdGVkIGlzIGluZmx1ZW5jZWQgYnkgdGhlIGZvcm1zIHNpdHVhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiBvYmplY3Qgb2Yga2V5IHZhbHVlIHBhaXJzXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVRvRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1QcmlzdGluZSgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucygpO1xuICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcbiAgICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zY3JpcHRpbmdTY29wZSA/IHRoaXMuc2NyaXB0aW5nU2NvcGUuZ2V0TW9kZWwoKSA6IG51bGw7XG4gIH1cblxuICAvLyBDcmVhdGUgYSByZWFjdGl2ZSBmb3JtIGZyb20gdGhlIGVuYWlvIGZvcm0gbW9kZWxcbiAgcHJpdmF0ZSBidWlsZFJlYWN0aXZlRm9ybShmb3JtT3B0aW9ucykge1xuICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgZm9ybU9wdGlvbnMsIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxuICAgICk7XG4gICAgdGhpcy5mb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGZvcm1HZW5SZXMuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcbiAgICAgIGxldCBmb3JtV2F0Y2ggPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gIWZvcm1XYXRjaC5jbG9zZWQgJiYgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1XYXRjaCk7XG4gICAgICB0aGlzLm9uRm9ybVJlYWR5LmVtaXQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoZmFsc2UpO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtQ2hhbmdlZEV2ZW50KGNvbXBhcmUgPSB0cnVlKSB7XG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5nZXRGb3JtRGF0YSgpO1xuICAgIGxldCBpZHhDaGFuZ2UgPSBjb21wYXJlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkgOiBmYWxzZTtcblxuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5mb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmZvcm0uZGlydHksXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGlkeENoYW5nZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtXG4gICAqL1xuICBwcml2YXRlIGZvcm1Ub0RhdGEoKSB7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEsXG4gICAgICB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgdmFsdWUgY2hhbmdlIGxpc3RlbmVycyBmb3IgdGhlIGN1cnJlbnQgZm9ybVxuICAvLyB0byBhdm9pZCBtZW1vcnkgbGVha3MuIFRoaXMgbWV0aG9kIHdpbGwgYWxzbyBiZSBjYWxsZWQgZXZlcnkgdGltZVxuICAvLyBhIG5ldyBmb3JtIGlzIHJlbmRlcmVkIHRvIGdldCByaWQgb2YgdGhlIG9sZCBmb3JtIGVsZW1lbnQgc3Vic2NyaXB0aW9uc1xuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5zdWJzY3JpYmVkIGZyb20gJyArIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggKyAnIHZhbHVlIGNoYW5nZSBsaXN0ZW5lcnMuJyk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1vYmplY3QtZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiBmb3JtT3B0aW9uc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGVvUnRsQXdhcmU+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBjb3JlXCI+XG4gICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImZvcm0uZ2V0KCdjb3JlJylcIiBbc2l0dWF0aW9uXT1cImZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cIj48L2VvLWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50LXdyYXAgZGF0YVwiPlxuICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJmb3JtLmdldCgnZGF0YScpXCIgW3NpdHVhdGlvbl09XCJmb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uXCI+PC9lby1mb3JtLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cblxuXG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { switchMap, tap, debounceTime } from 'rxjs/operators';
|
|
2
2
|
import { Component, HostListener, HostBinding, Output, EventEmitter, Input } from '@angular/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import
|
|
4
|
+
import { groupBy } from 'lodash-es';
|
|
5
5
|
import { SearchQuery, SearchState, Utils } from '@eo-sdk/core';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@eo-sdk/core";
|
|
@@ -77,7 +77,7 @@ export class QuickSearchComponent {
|
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
// group by object type group
|
|
80
|
-
this.resultGroups =
|
|
80
|
+
this.resultGroups = groupBy(aggTypes.sort(Utils.sortValues('label')), function (t) {
|
|
81
81
|
return t.group;
|
|
82
82
|
});
|
|
83
83
|
this.resultTypes = [];
|
|
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
217
217
|
type: HostListener,
|
|
218
218
|
args: ['keydown', ['$event']]
|
|
219
219
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBa0UsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRzdIOzs7Ozs7OztHQVFHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQThCL0IscUNBQXFDO0lBRXJDLFlBQW9CLGFBQTRCLEVBQ3RDLE1BQWMsRUFDZCxVQUFzQixFQUN0QixPQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsRUFBc0I7UUFOWixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIs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QWU7UUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7aUhBN01VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtTQ3pCakMsODdEQXNDQTsyRkRiYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO2lSQXVCRyxnQkFBZ0I7c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTtnQkFLbkIsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBdUdQLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzd2l0Y2hNYXAsIHRhcCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25FeHRyYXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi9xdWljay1zZWFyY2gtcmVzdWx0LmludGVyZmFjZSc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTdGF0ZSwgU2VhcmNoU2VydmljZSwgU3lzdGVtU2VydmljZSwgT2JqZWN0VHlwZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcblxuLyoqXG4gKiBRdWlja1NlYXJjaENvbXBvbmVudCBkaXNwbGF5cyBhIHNlYXJjaCBib3ggdGhhdCB0aGUgdXNlciBjYW4gdHlwZSBoaXMgcXVlcnkgdG8uXG4gKiBJdCByZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyBvYmplY3QgdHlwZXMgZ3JvdXBlZCBieSB0aGVpciBvYmplY3QgdHlwZSBncm91cCBhbmQgdGhlXG4gKiBudW1iZXIgb2YgaGl0cyBmb3IgZWFjaCB0eXBlLiBGdXJ0aGVybW9yZSBpdCdsbCBwcm92aWRlIHlvdSB3aXRoIHRoZSB0b3RhbCBudW1iZXIgb2ZcbiAqIGhpdHMgbWF0Y2hpbmcgdGhlIHVzZXJzIHF1ZXJ5LlxuICpcbiAqIFNldHRpbmcgdGhlIGNvbXBvbmVudHMgYHNob3dSZXN1bHRzYCBmbGFnIHRvIHRydWUsIHdpbGwgbWFrZSB0aGUgY29tcG9uZW50IHJlbmRlciB0aGVcbiAqIHJlc3VsdHMgb24gaXRzIG93bi4gSWYgeW91IGRvIHdhbnQgdG8gcHJvY2VzcyByZXN1bHRzIGJ5IHlvdXJzZWxmIHVzZSB0aGUgYG9uUmVzdWx0YCBjYWxsYmFjay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1xdWljay1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVpY2stc2VhcmNoLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVpY2tTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICBhdXRvY29tcGxldGVSZXN1bHRzOiBzdHJpbmdbXTtcbiAgcXVlcnkgPSBuZXcgU2VhcmNoUXVlcnkoKTtcbiAgbGFzdFRlcm0gPSAnJztcbiAgcmVzdWx0R3JvdXBzO1xuICByZXN1bHRUeXBlcyA9IFtdO1xuICBjdHJsQ2xpY2tlZDogYm9vbGVhbjtcbiAgc2VsZWN0ZWQgPSB7XG4gICAgaW5kZXg6IC0xLFxuICAgIG5hbWU6IG51bGxcbiAgfTtcblxuICBzZWFyY2hGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpbnZhbGlkVGVybTogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlc3VsdHMnKSByZXN1bHRzQXZhaWxhYmxlO1xuXG4gIC8vIGZsYWcgd2hldGhlciBvciBub3QgdG8gcmVuZGVyIHJlc3VsdHMgYnkgdGhlIGNvbXBvbmVudCBpdHNlbGZcbiAgLy8gYnkgZGVmYXVsdCB0aGlzIGZsYXMgaXMgZmFsc2UgYW5kIHRoZSByZXN1bHQgd2lsbCBvbmx5IGJlIGVtaXR0ZWQgYnlcbiAgLy8gdGhlIGNvbXBvbmVudHMgb25SZXN1bHQgY2FsbGJhY2tcbiAgQElucHV0KCkgc2hvd1Jlc3VsdHM6IGJvb2xlYW47XG4gIC8vIHRyaWdnZXJlZCBlYWNoIHRpbWUgYSByZXN1bHQgaXMgZmV0Y2hlZFxuICBAT3V0cHV0KCkgb25SZXN1bHQ6IEV2ZW50RW1pdHRlcjxRdWlja1NlYXJjaFJlc3VsdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBzZWFyY2ggdGVybSBoYXMgYmVlbiBjaGFuZ2VkXG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBwcml2YXRlIG9iamVjdFR5cGVzOiBPYmplY3RUeXBlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcblxuXG4gICAgdGhpcy5zZWFyY2hGb3JtID0gdGhpcy5mYi5ncm91cCh7c2VhcmNoSW5wdXQ6IFsnJ119KTtcblxuICAgIHRoaXMuc2VhcmNoRm9ybVxuICAgICAgLmdldCgnc2VhcmNoSW5wdXQnKS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHRlcm0pID0+IHtcbiAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh0ZXJtKTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5LnRlcm0gPSB0ZXJtO1xuICAgICAgICAgIHRoaXMucmVzdWx0R3JvdXBzID0gW107XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucXVlcnlTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MDApLFxuICAgICAgICBzd2l0Y2hNYXAodGVybSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWdncmVnYXRlKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeVN0YXRlOiBTZWFyY2hTdGF0ZSkgPT4ge1xuXG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBxdWVyeVN0YXRlO1xuICAgICAgICAgIHRoaXMucmVzdWx0c0F2YWlsYWJsZSA9ICFxdWVyeVN0YXRlLmlzRW1wdHk7XG5cbiAgICAgICAgICAvLyBtYXAgYWdncmVnYXRpb25zIHRvIHJlYWwgdHlwZXNcbiAgICAgICAgICBsZXQgYWdnVHlwZXMgPSBbXTtcbiAgICAgICAgICBxdWVyeVN0YXRlLmFnZ3JlZ2F0aW9ucy50eXBlLmZvckVhY2goKHYsIGspID0+IHtcblxuICAgICAgICAgICAgbGV0IHR5cGU6IE9iamVjdFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShrKTtcbiAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgIGFnZ1R5cGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0eXBlLmxhYmVsIHx8IGssXG4gICAgICAgICAgICAgICAgY291bnQ6IHYsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IHR5cGUuZ3JvdXAgfHwgJzAnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHR5cGVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gZ3JvdXAgYnkgb2JqZWN0IHR5cGUgZ3JvdXBcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IF8uZ3JvdXBCeShhZ2dUeXBlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpLCBmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuZ3JvdXA7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yZXN1bHRUeXBlcyA9IFtdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzdWx0R3JvdXBzKS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gdGhpcy5yZXN1bHRUeXBlcy5jb25jYXQodGhpcy5yZXN1bHRHcm91cHNba10pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25SZXN1bHQuZW1pdCh7XG4gICAgICAgICAgICB0b3RhbDogdGhpcy5xdWVyeVN0YXRlLnRvdGFsQ291bnQsXG4gICAgICAgICAgICBncm91cHM6IHRoaXMucmVzdWx0R3JvdXBzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiAtMSxcbiAgICAgICAgICAgIGdyb3VwczogW11cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uID0gYXBwU2VhcmNoU2VydmljZS5xdWVyeSQuc3Vic2NyaWJlKChxdWVyeTogU2VhcmNoUXVlcnkpID0+IHtcbiAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50ZXJtKSB7XG4gICAgICAgIHRoaXMubGFzdFRlcm0gPSBxdWVyeS50ZXJtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0VGVybSh0ZXJtPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hGb3JtLmdldCgnc2VhcmNoSW5wdXQnKS5wYXRjaFZhbHVlKHRlcm0gfHwgJycpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZ2dyZWdhdGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hTdGF0ZT4ge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG8gPT4ge1xuICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgIC5nZXRTZWFyY2hTdGF0ZSh7YWdnczoge3R5cGU6IHt9fSwgLi4udGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKX0pXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBvLm5leHQocmVzKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0sIFV0aWxzLnRocm93KF8gPT4ge1xuICAgICAgICAgIHRoaXMuaW52YWxpZFRlcm0gPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChuZXcgU2VhcmNoU3RhdGUoKSk7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHMpIHtcbiAgICAgIGlmIChldmVudC53aGljaCA9PT0gMzgpIHtcbiAgICAgICAgLy8gdXBcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleC0tO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZC5pbmRleCA8IDApIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQubmFtZSA9IHRoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YS5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChldmVudC53aGljaCA9PT0gNDApIHtcbiAgICAgICAgLy8gZG93blxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4Kys7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ID49IHRoaXMucmVzdWx0VHlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5pbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyByZXNldCBzZWxlY3Rpb24gb24gYW55IG90aGVyIGtleVxuICAgICAgICB0aGlzLnNlbGVjdGVkID0ge1xuICAgICAgICAgIGluZGV4OiAtMSxcbiAgICAgICAgICBuYW1lOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudCkge1xuICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQud2hpY2ggPT09IDE3KSB7XG4gICAgICB0aGlzLmN0cmxDbGlja2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhlY3V0ZVNlYXJjaChvYmplY3RUeXBlPzogT2JqZWN0VHlwZSkge1xuXG4gICAgaWYgKCF0aGlzLmludmFsaWRUZXJtKSB7XG4gICAgICBpZiAob2JqZWN0VHlwZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW29iamVjdFR5cGVdO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW3RoaXMucmVzdWx0VHlwZXNbdGhpcy5zZWxlY3RlZC5pbmRleF0uZGF0YV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnF1ZXJ5LnR5cGVzID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpKTtcbiAgICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgICAgY29uc29sZS5sb2codGhpcy5jdHJsQ2xpY2tlZCk7XG4gICAgICBpZiAodGhpcy5jdHJsQ2xpY2tlZCkge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJpUGFyYW1RdWVyeS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKVxuICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnL2Rhc2hib2FyZCcpWzBdICsgJy9yZXN1bHQ/JysgcXVlcnlQYXJhbXM7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICAgICAgICB0aGlzLmN0cmxDbGlja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0lucHV0KCkge1xuICAgIC8vIGZvY3VzIHNlYXJjaCBpbnB1dFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnF1ZXJ5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWljay1zZWFyY2hcIiBlb1J0bEF3YXJlPlxuXG4gIDxmb3JtIGNsYXNzPVwic2VhcmNoLWJveFwiIChuZ1N1Ym1pdCk9XCJleGVjdXRlU2VhcmNoKClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7aW52YWxpZDogaW52YWxpZFRlcm19XCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCI+XG5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwiZXhlY3V0ZVNlYXJjaCgpXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2VhcmNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XG4gICAgICA8bGFiZWw+e3snZW8ucXVpY2tzZWFyY2gubGFiZWwnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgPGlucHV0IGF1dG9mb2N1cz1cImF1dG9mb2N1c1wiIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaElucHV0XCI+XG4gICAgPC9kaXY+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciAqbmdJZj1cImxvYWRpbmdcIiBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiBbaWNvblRpdGxlXT1cIignZW8uc2VhcmNoLmNsZWFyLnNlYXJjaCcgfCB0cmFuc2xhdGUpXCJcbiAgICAqbmdJZj1cInF1ZXJ5LnRlcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBxdWVyeS50ZXJtfVwiIChjbGljayk9XCJzZXRUZXJtKClcIj48L2VvLWljb24+XG4gICAgPGVvLWljb24gY2xhc3M9XCJzbWFsbFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2gucmVzdWx0LnRlcm0nIHwgdHJhbnNsYXRlKSArICcgOiAmcXVvdDsnICsgbGFzdFRlcm0gKyAnJnF1b3Q7J1wiXG4gICAgKm5nSWY9XCJsYXN0VGVybSAmJiAhcXVlcnkudGVybVwiIChjbGljayk9XCJzZXRUZXJtKGxhc3RUZXJtKVwiPjwvZW8taWNvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC10b3RhbFwiPnt7cXVlcnlTdGF0ZS50b3RhbENvdW50IHwgbG9jYWxlRGVjaW1hbH19PC9zcGFuPjxzcGFuIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5oaXRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5cbiAgPGRpdiBjbGFzcz1cInJlc3VsdFwiICpuZ0lmPVwic2hvd1Jlc3VsdHMgJiYgIXF1ZXJ5U3RhdGUuaXNFbXB0eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyXCI+PGRpdiBjbGFzcz1cInJpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdGb3I9XCJsZXQga2V5IG9mIHJlc3VsdEdyb3VwcyB8IGtleXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGgyICpuZ0lmPVwia2V5ICE9PSAnMCc7IGVsc2UgbWFpbmdyb3VwXCI+e3trZXl9fTwvaDI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWFpbmdyb3VwPlxuICAgICAgICAgIDxoMiB0cmFuc2xhdGU+ZW8ucXVpY2tzZWFyY2gucmVzdWx0Lmdyb3VwLmdsb2JhbDwvaDI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR5cGVcIiAqbmdGb3I9XCJsZXQgdHlwZSBvZiByZXN1bHRHcm91cHNba2V5XVwiIChjbGljayk9XCJleGVjdXRlU2VhcmNoKHR5cGUuZGF0YSlcIiBbbmdDbGFzc109XCJ7c2VsZWN0ZWQ6IHNlbGVjdGVkLm5hbWUgPT09IHR5cGUuZGF0YS5uYW1lfVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIj57e3R5cGUuY291bnR9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3t0eXBlLmxhYmVsfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3F1aWNrLXNlYXJjaC9xdWljay1zZWFyY2gvcXVpY2stc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQTZCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHdEksT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFrRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFHN0g7Ozs7Ozs7O0dBUUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBOEIvQixxQ0FBcUM7SUFFckMsWUFBb0IsYUFBNEIsRUFDdEMsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLE9BQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixFQUFzQjtRQU5aLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEs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Q2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7O2lIQTdNVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwrU0N6QmpDLDg3REFzQ0E7MkZEYmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjtpUkF1QkcsZ0JBQWdCO3NCQUE3QyxXQUFXO3VCQUFDLGVBQWU7Z0JBS25CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQXVHUCxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCakMsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c3dpdGNoTWFwLCB0YXAsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSG9zdEJpbmRpbmcsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Z3JvdXBCeX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7UXVpY2tTZWFyY2hSZXN1bHR9IGZyb20gJy4vcXVpY2stc2VhcmNoLXJlc3VsdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU3RhdGUsIFNlYXJjaFNlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIE9iamVjdFR5cGUsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5cbi8qKlxuICogUXVpY2tTZWFyY2hDb21wb25lbnQgZGlzcGxheXMgYSBzZWFyY2ggYm94IHRoYXQgdGhlIHVzZXIgY2FuIHR5cGUgaGlzIHF1ZXJ5IHRvLlxuICogSXQgcmV0dXJucyBhIGxpc3Qgb2YgbWF0Y2hpbmcgb2JqZWN0IHR5cGVzIGdyb3VwZWQgYnkgdGhlaXIgb2JqZWN0IHR5cGUgZ3JvdXAgYW5kIHRoZVxuICogbnVtYmVyIG9mIGhpdHMgZm9yIGVhY2ggdHlwZS4gRnVydGhlcm1vcmUgaXQnbGwgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdG90YWwgbnVtYmVyIG9mXG4gKiBoaXRzIG1hdGNoaW5nIHRoZSB1c2VycyBxdWVyeS5cbiAqXG4gKiBTZXR0aW5nIHRoZSBjb21wb25lbnRzIGBzaG93UmVzdWx0c2AgZmxhZyB0byB0cnVlLCB3aWxsIG1ha2UgdGhlIGNvbXBvbmVudCByZW5kZXIgdGhlXG4gKiByZXN1bHRzIG9uIGl0cyBvd24uIElmIHlvdSBkbyB3YW50IHRvIHByb2Nlc3MgcmVzdWx0cyBieSB5b3Vyc2VsZiB1c2UgdGhlIGBvblJlc3VsdGAgY2FsbGJhY2suXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcXVpY2stc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1aWNrLXNlYXJjaC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1aWNrU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHF1ZXJ5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHF1ZXJ5U3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcbiAgYXV0b2NvbXBsZXRlUmVzdWx0czogc3RyaW5nW107XG4gIHF1ZXJ5ID0gbmV3IFNlYXJjaFF1ZXJ5KCk7XG4gIGxhc3RUZXJtID0gJyc7XG4gIHJlc3VsdEdyb3VwcztcbiAgcmVzdWx0VHlwZXMgPSBbXTtcbiAgY3RybENsaWNrZWQ6IGJvb2xlYW47XG4gIHNlbGVjdGVkID0ge1xuICAgIGluZGV4OiAtMSxcbiAgICBuYW1lOiBudWxsXG4gIH07XG5cbiAgc2VhcmNoRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgaW52YWxpZFRlcm06IGJvb2xlYW47XG4gIGxvYWRpbmc6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZXN1bHRzJykgcmVzdWx0c0F2YWlsYWJsZTtcblxuICAvLyBmbGFnIHdoZXRoZXIgb3Igbm90IHRvIHJlbmRlciByZXN1bHRzIGJ5IHRoZSBjb21wb25lbnQgaXRzZWxmXG4gIC8vIGJ5IGRlZmF1bHQgdGhpcyBmbGFzIGlzIGZhbHNlIGFuZCB0aGUgcmVzdWx0IHdpbGwgb25seSBiZSBlbWl0dGVkIGJ5XG4gIC8vIHRoZSBjb21wb25lbnRzIG9uUmVzdWx0IGNhbGxiYWNrXG4gIEBJbnB1dCgpIHNob3dSZXN1bHRzOiBib29sZWFuO1xuICAvLyB0cmlnZ2VyZWQgZWFjaCB0aW1lIGEgcmVzdWx0IGlzIGZldGNoZWRcbiAgQE91dHB1dCgpIG9uUmVzdWx0OiBFdmVudEVtaXR0ZXI8UXVpY2tTZWFyY2hSZXN1bHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyB0cmlnZ2VyZWQgd2hlbiB0aGUgc2VhcmNoIHRlcm0gaGFzIGJlZW4gY2hhbmdlZFxuICBAT3V0cHV0KCkgb25JbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy8gcHJpdmF0ZSBvYmplY3RUeXBlczogT2JqZWN0VHlwZVtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRvYXN0ZXI6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG5cblxuICAgIHRoaXMuc2VhcmNoRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe3NlYXJjaElucHV0OiBbJyddfSk7XG5cbiAgICB0aGlzLnNlYXJjaEZvcm1cbiAgICAgIC5nZXQoJ3NlYXJjaElucHV0JykudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbklucHV0Q2hhbmdlLmVtaXQodGVybSk7XG4gICAgICAgICAgdGhpcy5xdWVyeS50ZXJtID0gdGVybTtcbiAgICAgICAgICB0aGlzLnJlc3VsdEdyb3VwcyA9IFtdO1xuICAgICAgICAgIHRoaXMucmVzdWx0VHlwZXMgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHNBdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxNTAwKSxcbiAgICAgICAgc3dpdGNoTWFwKHRlcm0gPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0ZSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocXVlcnlTdGF0ZTogU2VhcmNoU3RhdGUpID0+IHtcblxuICAgICAgICBpZiAodGhpcy5xdWVyeS50ZXJtKSB7XG4gICAgICAgICAgdGhpcy5xdWVyeVN0YXRlID0gcXVlcnlTdGF0ZTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHNBdmFpbGFibGUgPSAhcXVlcnlTdGF0ZS5pc0VtcHR5O1xuXG4gICAgICAgICAgLy8gbWFwIGFnZ3JlZ2F0aW9ucyB0byByZWFsIHR5cGVzXG4gICAgICAgICAgbGV0IGFnZ1R5cGVzID0gW107XG4gICAgICAgICAgcXVlcnlTdGF0ZS5hZ2dyZWdhdGlvbnMudHlwZS5mb3JFYWNoKCh2LCBrKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCB0eXBlOiBPYmplY3RUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUoayk7XG4gICAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgICBhZ2dUeXBlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdHlwZS5sYWJlbCB8fCBrLFxuICAgICAgICAgICAgICAgIGNvdW50OiB2LFxuICAgICAgICAgICAgICAgIGdyb3VwOiB0eXBlLmdyb3VwIHx8ICcwJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB0eXBlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIGdyb3VwIGJ5IG9iamVjdCB0eXBlIGdyb3VwXG4gICAgICAgICAgdGhpcy5yZXN1bHRHcm91cHMgPSBncm91cEJ5KGFnZ1R5cGVzLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSksIGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdC5ncm91cDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnJlc3VsdFR5cGVzID0gW107XG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5yZXN1bHRHcm91cHMpLmZvckVhY2goKGspID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0VHlwZXMgPSB0aGlzLnJlc3VsdFR5cGVzLmNvbmNhdCh0aGlzLnJlc3VsdEdyb3Vwc1trXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vblJlc3VsdC5lbWl0KHtcbiAgICAgICAgICAgIHRvdGFsOiB0aGlzLnF1ZXJ5U3RhdGUudG90YWxDb3VudCxcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5yZXN1bHRHcm91cHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9uUmVzdWx0LmVtaXQoe1xuICAgICAgICAgICAgdG90YWw6IC0xLFxuICAgICAgICAgICAgZ3JvdXBzOiBbXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24gPSBhcHBTZWFyY2hTZXJ2aWNlLnF1ZXJ5JC5zdWJzY3JpYmUoKHF1ZXJ5OiBTZWFyY2hRdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5LnRlcm0pIHtcbiAgICAgICAgdGhpcy5sYXN0VGVybSA9IHF1ZXJ5LnRlcm07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXRUZXJtKHRlcm0/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaEZvcm0uZ2V0KCdzZWFyY2hJbnB1dCcpLnBhdGNoVmFsdWUodGVybSB8fCAnJyk7XG4gICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIGFnZ3JlZ2F0ZSgpOiBPYnNlcnZhYmxlPFNlYXJjaFN0YXRlPiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUobyA9PiB7XG4gICAgICB0aGlzLmludmFsaWRUZXJtID0gZmFsc2U7XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldFNlYXJjaFN0YXRlKHthZ2dzOiB7dHlwZToge319LCAuLi50aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbigpfSlcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIG8ubmV4dChyZXMpO1xuICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgfSwgVXRpbHMudGhyb3coXyA9PiB7XG4gICAgICAgICAgdGhpcy5pbnZhbGlkVGVybSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgby5uZXh0KG5ldyBTZWFyY2hTdGF0ZSgpKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5zaG93UmVzdWx0cykge1xuICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAzOCkge1xuICAgICAgICAvLyB1cFxuICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4LS07XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmluZGV4IDwgMCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuaW5kZXggPSB0aGlzLnJlc3VsdFR5cGVzLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZC5uYW1lID0gdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhLm5hbWU7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LndoaWNoID09PSA0MCkge1xuICAgICAgICAvLyBkb3duXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuaW5kZXgrKztcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQuaW5kZXggPj0gdGhpcy5yZXN1bHRUeXBlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmluZGV4ID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkLm5hbWUgPSB0aGlzLnJlc3VsdFR5cGVzW3RoaXMuc2VsZWN0ZWQuaW5kZXhdLmRhdGEubmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHJlc2V0IHNlbGVjdGlvbiBvbiBhbnkgb3RoZXIga2V5XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB7XG4gICAgICAgICAgaW5kZXg6IC0xLFxuICAgICAgICAgIG5hbWU6IG51bGxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlEb3duKGV2ZW50KSB7XG4gICAgdGhpcy5jdHJsQ2xpY2tlZCA9IGZhbHNlO1xuICAgIGlmIChldmVudC53aGljaCA9PT0gMTcpIHtcbiAgICAgIHRoaXMuY3RybENsaWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBleGVjdXRlU2VhcmNoKG9iamVjdFR5cGU/OiBPYmplY3RUeXBlKSB7XG5cbiAgICBpZiAoIXRoaXMuaW52YWxpZFRlcm0pIHtcbiAgICAgIGlmIChvYmplY3RUeXBlKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbb2JqZWN0VHlwZV07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQuaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbdGhpcy5yZXN1bHRUeXBlc1t0aGlzLnNlbGVjdGVkLmluZGV4XS5kYXRhXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucXVlcnkudHlwZXMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodGhpcy5xdWVyeS5nZXRRdWVyeUpzb24oKSkpO1xuICAgICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmN0cmxDbGlja2VkKTtcbiAgICAgIGlmICh0aGlzLmN0cmxDbGlja2VkKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmlQYXJhbVF1ZXJ5LnF1ZXJ5UGFyYW1zKS50b1N0cmluZygpXG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL3Jlc3VsdD8nKyBxdWVyeVBhcmFtcztcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gICAgICAgIHRoaXMuY3RybENsaWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9yZXN1bHQnXSwgdXJpUGFyYW1RdWVyeSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSW5wdXQoKSB7XG4gICAgLy8gZm9jdXMgc2VhcmNoIGlucHV0XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1aWNrLXNlYXJjaFwiIGVvUnRsQXdhcmU+XG5cbiAgPGZvcm0gY2xhc3M9XCJzZWFyY2gtYm94XCIgKG5nU3VibWl0KT1cImV4ZWN1dGVTZWFyY2goKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBpbnZhbGlkVGVybX1cIlxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIj5cblxuICAgIDxlby1pY29uIChjbGljayk9XCJleGVjdXRlU2VhcmNoKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgIDxsYWJlbD57eydlby5xdWlja3NlYXJjaC5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgYXV0b2ZvY3VzPVwiYXV0b2ZvY3VzXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoSW5wdXRcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tbG9hZGluZy1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtzaXplXT1cIidzbWFsbCdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5zZWFyY2guY2xlYXIuc2VhcmNoJyB8IHRyYW5zbGF0ZSlcIlxuICAgICpuZ0lmPVwicXVlcnkudGVybVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHF1ZXJ5LnRlcm19XCIgKGNsaWNrKT1cInNldFRlcm0oKVwiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cInNtYWxsXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLnNlYXJjaC5yZXN1bHQudGVybScgfCB0cmFuc2xhdGUpICsgJyA6ICZxdW90OycgKyBsYXN0VGVybSArICcmcXVvdDsnXCJcbiAgICAqbmdJZj1cImxhc3RUZXJtICYmICFxdWVyeS50ZXJtXCIgKGNsaWNrKT1cInNldFRlcm0obGFzdFRlcm0pXCI+PC9lby1pY29uPlxuXG4gICAgPGRpdiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNvdW50LXRvdGFsXCI+e3txdWVyeVN0YXRlLnRvdGFsQ291bnQgfCBsb2NhbGVEZWNpbWFsfX08L3NwYW4+PHNwYW4gdHJhbnNsYXRlPmVvLnF1aWNrc2VhcmNoLmhpdHM8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cblxuICA8ZGl2IGNsYXNzPVwicmVzdWx0XCIgKm5nSWY9XCJzaG93UmVzdWx0cyAmJiAhcXVlcnlTdGF0ZS5pc0VtcHR5XCI+XG4gICAgPGRpdiBjbGFzcz1cInJcIj48ZGl2IGNsYXNzPVwicmlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cFwiICpuZ0Zvcj1cImxldCBrZXkgb2YgcmVzdWx0R3JvdXBzIHwga2V5czsgaW5kZXggYXMgaVwiPlxuICAgICAgICA8aDIgKm5nSWY9XCJrZXkgIT09ICcwJzsgZWxzZSBtYWluZ3JvdXBcIj57e2tleX19PC9oMj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtYWluZ3JvdXA+XG4gICAgICAgICAgPGgyIHRyYW5zbGF0ZT5lby5xdWlja3NlYXJjaC5yZXN1bHQuZ3JvdXAuZ2xvYmFsPC9oMj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIHJlc3VsdEdyb3Vwc1trZXldXCIgKGNsaWNrKT1cImV4ZWN1dGVTZWFyY2godHlwZS5kYXRhKVwiIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWQubmFtZSA9PT0gdHlwZS5kYXRhLm5hbWV9XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7dHlwZS5jb3VudH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57e3R5cGUubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { assign, bind, camelCase, capitalize, ceil, chunk, clone, cloneDeep, concat, debounce, each, endsWith, entries, escape, every, extend, filter, find, findIndex, findKey, first, flatMap, floor, forEach, get, groupBy, has, includes, indexOf, isArray, isDate, isEmpty, isNaN, isNumber, isObject, isString, join, keys, map, orderBy, reduce, remove, replace, reverse, set, slice, some, sortBy, split, startsWith, sum, take, uniqBy, values } from 'lodash-es';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class UtilitiesService {
|
|
4
5
|
static isEdge() {
|
|
@@ -17,9 +18,11 @@ export class UtilitiesService {
|
|
|
17
18
|
return typeof val === 'boolean' ? !val : UtilitiesService.isEmpty(val);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
21
|
+
// minimal selection of lodash functions
|
|
22
|
+
UtilitiesService.lodash = { assign, bind, camelCase, capitalize, ceil, chunk, clone, cloneDeep, concat, debounce, each, endsWith, entries, escape, every, extend, filter, find, findIndex, findKey, first, flatMap, floor, forEach, get, groupBy, has, includes, indexOf, isArray, isDate, isEmpty, isNaN, isNumber, isObject, isString, join, keys, map, orderBy, reduce, remove, replace, reverse, set, slice, some, sortBy, split, startsWith, sum, take, uniqBy, values };
|
|
20
23
|
UtilitiesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
24
|
UtilitiesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService });
|
|
22
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UtilitiesService, decorators: [{
|
|
23
26
|
type: Injectable
|
|
24
27
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUc1YyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRztRQUN2QixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkI7UUFFRCxPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUc7UUFDOUIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7QUFFRCx3Q0FBd0M7QUFDMUIsdUJBQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7NkdBdEJoYyxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzaWduLCBiaW5kLCBjYW1lbENhc2UsIGNhcGl0YWxpemUsIGNlaWwsIGNodW5rLCBjbG9uZSwgY2xvbmVEZWVwLCBjb25jYXQsIGRlYm91bmNlLCBlYWNoLCBlbmRzV2l0aCwgZW50cmllcywgZXNjYXBlLCBldmVyeSwgZXh0ZW5kLCBmaWx0ZXIsIGZpbmQsIGZpbmRJbmRleCwgZmluZEtleSwgZmlyc3QsIGZsYXRNYXAsIGZsb29yLCBmb3JFYWNoLCBnZXQsIGdyb3VwQnksIGhhcywgaW5jbHVkZXMsIGluZGV4T2YsIGlzQXJyYXksIGlzRGF0ZSwgaXNFbXB0eSwgaXNOYU4sIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIGpvaW4sIGtleXMsIG1hcCwgb3JkZXJCeSwgcmVkdWNlLCByZW1vdmUsIHJlcGxhY2UsIHJldmVyc2UsIHNldCwgc2xpY2UsIHNvbWUsIHNvcnRCeSwgc3BsaXQsIHN0YXJ0c1dpdGgsIHN1bSwgdGFrZSwgdW5pcUJ5LCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNFZGdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdFZGdlJykgPiAtMTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNFbXB0eShvYmopIHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgb2JqID09PSAnJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gaXNOYU4ob2JqKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Jvb2xlYW4nID8gZmFsc2UgOiAhT2JqZWN0LmtleXMob2JqKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzRW1wdHlPckZhbHNlKHZhbCkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyAhdmFsIDogVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbCk7XG4gIH1cblxuICAvLyBtaW5pbWFsIHNlbGVjdGlvbiBvZiBsb2Rhc2ggZnVuY3Rpb25zXG4gIHB1YmxpYyBzdGF0aWMgbG9kYXNoID0geyBhc3NpZ24sIGJpbmQsIGNhbWVsQ2FzZSwgY2FwaXRhbGl6ZSwgY2VpbCwgY2h1bmssIGNsb25lLCBjbG9uZURlZXAsIGNvbmNhdCwgZGVib3VuY2UsIGVhY2gsIGVuZHNXaXRoLCBlbnRyaWVzLCBlc2NhcGUsIGV2ZXJ5LCBleHRlbmQsIGZpbHRlciwgZmluZCwgZmluZEluZGV4LCBmaW5kS2V5LCBmaXJzdCwgZmxhdE1hcCwgZmxvb3IsIGZvckVhY2gsIGdldCwgZ3JvdXBCeSwgaGFzLCBpbmNsdWRlcywgaW5kZXhPZiwgaXNBcnJheSwgaXNEYXRlLCBpc0VtcHR5LCBpc05hTiwgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZywgam9pbiwga2V5cywgbWFwLCBvcmRlckJ5LCByZWR1Y2UsIHJlbW92ZSwgcmVwbGFjZSwgcmV2ZXJzZSwgc2V0LCBzbGljZSwgc29tZSwgc29ydEJ5LCBzcGxpdCwgc3RhcnRzV2l0aCwgc3VtLCB0YWtlLCB1bmlxQnksIHZhbHVlcyB9O1xuXG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { forkJoin as observableForkJoin, of, ReplaySubject } from 'rxjs';
|
|
|
2
2
|
import { catchError, tap, map, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { ObjectType } from '../../model/object-type.model';
|
|
5
|
-
import
|
|
5
|
+
import { cloneDeep } from 'lodash-es';
|
|
6
6
|
import { Utils } from '../../util/utils';
|
|
7
7
|
import { EnaioEvent } from '../events/events';
|
|
8
8
|
import moment from 'moment';
|
|
@@ -115,7 +115,7 @@ export class SystemService {
|
|
|
115
115
|
}
|
|
116
116
|
if (cachedForm) {
|
|
117
117
|
/** return a clone of the cached model as otherwise model changes will be added to the chached model */
|
|
118
|
-
return of(
|
|
118
|
+
return of(cloneDeep(cachedForm));
|
|
119
119
|
}
|
|
120
120
|
else {
|
|
121
121
|
let uri = `/ui/form/${objectTypeName}?situation=${situation}`;
|
|
@@ -123,7 +123,7 @@ export class SystemService {
|
|
|
123
123
|
/** fetch and cache the requested form, if no cached version was found */
|
|
124
124
|
return this.backend.getViaTempCache(uri, () => this.backend
|
|
125
125
|
.getJson(uri)
|
|
126
|
-
.pipe(tap((model) => this.objectTypeForms.push(
|
|
126
|
+
.pipe(tap((model) => this.objectTypeForms.push(cloneDeep(model)))));
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
@@ -342,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
342
342
|
providedIn: 'root'
|
|
343
343
|
}]
|
|
344
344
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.Logger }, { type: i3.EventService }, { type: i4.AppCacheService }]; } });
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVuRixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBR3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7OztBQUU1Qjs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQW9CLE9BQXVCLEVBQ3ZCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixRQUF5QjtRQUh6QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFYckMsaUJBQVksR0FBRyxJQUFJLGFBQWEsRUFBTyxDQUFDO1FBQ3pDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuRSxzQ0FBc0M7UUFDOUIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFFNUIsZ0JB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c2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NhdGNoRXJyb3IsIHRhcCwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lPcmdhbml6YXRpb25PYmplY3RzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7T3JnUm9sZX0gZnJvbSAnLi4vLi4vbW9kZWwvb3JnLm1vZGVsJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtJQ29kZVN5c3RlbX0gZnJvbSAnLi9zeXN0ZW1kZWZpbml0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIFN5c3RlbSBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TZXJ2aWNlIHtcblxuICBwcml2YXRlIF9zeXN0ZW07XG4gIHByaXZhdGUgc3lzdGVtU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpO1xuICBwdWJsaWMgc3lzdGVtJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zeXN0ZW1Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLy8gc2Vzc2lvbiBjYWNoZSBmb3Igb2JqZWN0IHR5cGUgZm9ybXNcbiAgcHJpdmF0ZSBvYmplY3RUeXBlRm9ybXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdXNlcjogRW9Vc2VyO1xuICBwcml2YXRlIGNhY2hlZFJvbGVzOiBPcmdSb2xlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfU0NIRU1BX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpO1xuICAgIH0pXG4gIH1cblxuICBzZXQgc3lzdGVtKHMpe1xuICAgIHRoaXMuX3N5c3RlbSA9IHM7XG4gIH1cblxuICBnZXQgc3lzdGVtKCl7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fc3lzdGVtKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgT2JqZWN0VHlwZXNcbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgY29udGFpbmluZyBhbGwgb2JqZWN0IHR5cGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JqZWN0VHlwZXMoKTogT2JqZWN0VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBPYmplY3RUeXBlIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHR5cGVcbiAgICogQHJldHVybnMgdGhlIE9iamVjdFR5cGUgbWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWVcbiAgICovXG4gIHB1YmxpYyBnZXRPYmplY3RUeXBlKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcpOiBPYmplY3RUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0udHlwZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gb2JqZWN0VHlwZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmb3JtIGVsZW1lbnRzIGZyb20gZm9ybSBtb2RlbC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IGhhdmUgdG8gZmV0Y2ggdGhlbVxuICAgKiBmb3IgYSBzcGVjaWFsIHNpdHVhdGlvbiBsaWtlIFNFQVJDSFxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZU5hbWUgT2JqZWN0VHlwZSB0byBmZXRjaCBlbGVtZW50cyBmb3JcbiAgICogQHBhcmFtIHNpdHVhdGlvbiBGb3JtIG1vZGVsIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBpc0NvbnRleHRUeXBlIEZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBmb3JtIG1vZGVsIHNob3VsZCBiZSBmZXRjaGVkIGZvciBhIGNvbnRleHQgbW9kZVxuICAgKi9cbiAgZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbChvYmplY3RUeXBlTmFtZTogc3RyaW5nLCBzaXR1YXRpb246IHN0cmluZywgaXNDb250ZXh0VHlwZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0VHlwZUZvcm0ob2JqZWN0VHlwZU5hbWUsIHNpdHVhdGlvbiwgaXNDb250ZXh0VHlwZSA/ICdDT05URVhUJyA6IG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtdO1xuICAgICAgICB0aGlzLnByb2Nlc3NGb3JtTW9kZWxFbGVtZW50cyhtb2RlbCwgZWxlbWVudHMpO1xuICAgICAgICByZXR1cm4gb2YoZWxlbWVudHMpO1xuICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRm9ybU1vZGVsRWxlbWVudHMobW9kZWw6IGFueSwgZWxlbWVudHM6IGFueVtdKSB7XG4gICAgbW9kZWwuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgIGlmKGUudHlwZSAhPT0gXCJvMm1Hcm91cFwiICYmIGUudHlwZSAhPT0gXCJvMm1Hcm91cFN0YWNrXCIpIHtcbiAgICAgICAgZWxlbWVudHMucHVzaChlKTtcbiAgICAgIH0gZWxzZSBpZihlLmVsZW1lbnRzICYmIGUuZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Nb2RlbEVsZW1lbnRzKGUsIGVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdHlwZSBpbXBsZW1lbnRzIGEgZ2l2ZW4gc3VwZXJ0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFR5cGUgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0gc3VwZXJUeXBlTmFtZSBOYW1lIG9mIHRoZSBzdXBlcnR5cGVcbiAgICovXG4gIHB1YmxpYyBpbXBsZW1lbnRzVHlwZSh0eXBlOiBPYmplY3RUeXBlLCBzdXBlclR5cGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZS5uYW1lID09PSBzdXBlclR5cGVOYW1lIHx8ICh0eXBlLmltcGxlbWVudHMgJiYgdHlwZS5pbXBsZW1lbnRzLmluZGV4T2Yoc3VwZXJUeXBlTmFtZSkgIT09IC0xKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29kZXN5c3RlbVxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvZGVzeXN0ZW1zIGlkXG4gICAqIEByZXR1cm5zIFRoZSBjb2Rlc3lzdGVtIG9iamVjdCBtYXRjaGluZyB0aGUgZ2l2ZW4gaWRcbiAgICovXG4gIHB1YmxpYyBnZXRDb2Rlc3lzdGVtKGlkOiBzdHJpbmcpOiBJQ29kZVN5c3RlbSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtLmNvZGVzeXN0ZW1zLmZpbmQodCA9PiB0LmlkID09PSBpZCB8fCB0Lm5hbWUgPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm0gbW9kZWwgb2YgYW4gb2JqZWN0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBUaGUgb2JqZWN0IHR5cGUgbmFtZVxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIFRoZSBmb3JtIHNpdHVhdGlvbiB0byBiZSBmZXRjaGVkXG4gICAqIEBwYXJhbSBtb2RlIEZvcm0gbW9kZSB0byBmZXRjaCAoZS5nLiBDT05URVhUKVxuICAgKiBAcmV0dXJucyBUaGUgb2JqZWN0IHR5cGUgZm9ybSBtb2RlbFxuICAgKi9cbiAgcHVibGljIGdldE9iamVjdFR5cGVGb3JtKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcsIHNpdHVhdGlvbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIC8qKiBjaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGVkIGZvcm0gZmlyc3QgKi9cbiAgICBsZXQgY2FjaGVkRm9ybTtcblxuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAoIWNhY2hlZEZvcm0gJiYgaSA8IHRoaXMub2JqZWN0VHlwZUZvcm1zLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm5hbWUgPT09IG9iamVjdFR5cGVOYW1lICYmXG4gICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldLm1vZGUgPT09IG1vZGUgJiZcbiAgICAgICAgdGhpcy5vYmplY3RUeXBlRm9ybXNbaV0uc2l0dWF0aW9uID09PSBzaXR1YXRpb24pIHtcbiAgICAgICAgY2FjaGVkRm9ybSA9IHRoaXMub2JqZWN0VHlwZUZvcm1zW2ldO1xuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cblxuICAgIGlmIChjYWNoZWRGb3JtKSB7XG4gICAgICAvKiogcmV0dXJuIGEgY2xvbmUgb2YgdGhlIGNhY2hlZCBtb2RlbCBhcyBvdGhlcndpc2UgbW9kZWwgY2hhbmdlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjaGFjaGVkIG1vZGVsICovXG4gICAgICByZXR1cm4gb2YoXy5jbG9uZURlZXAoY2FjaGVkRm9ybSkpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCB1cmkgPSBgL3VpL2Zvcm0vJHtvYmplY3RUeXBlTmFtZX0/c2l0dWF0aW9uPSR7c2l0dWF0aW9ufWA7XG4gICAgICB1cmkgKz0gISFtb2RlID8gYCZmb3JtbW9kZT0ke21vZGV9YCA6ICcnO1xuXG4gICAgICAvKiogZmV0Y2ggYW5kIGNhY2hlIHRoZSByZXF1ZXN0ZWQgZm9ybSwgaWYgbm8gY2FjaGVkIHZlcnNpb24gd2FzIGZvdW5kICovXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgobW9kZWwpID0+IHRoaXMub2JqZWN0VHlwZUZvcm1zLnB1c2goXy5jbG9uZURlZXAobW9kZWwpKSlcbiAgICAgICAgKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGJhY2tlbmRzIHN5c3RlbSBkZWZpbml0aW9uIGFuZCB1cGRhdGVzIHN5c3RlbSQgT2JzZXJ2YWJsZS5cbiAgICogU3Vic2NyaWJlIHRvIHRoZSBzeXN0ZW0kIG9ic2VydmFibGUgaW5zdGVhZCBvZiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG90aGVyd2lzZSB5b3UnbGwgdHJpZ2dlciBmZXRjaGluZyB0aGVcbiAgICogc3lzdGVtIGRlZmluaXRpb24gZXZlcnkgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gbG9hZCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm5zIHRydWUgd2hlbiBzdWNjZXNzZnVsbFxuICAgKi9cbiAgcHVibGljIGdldFN5c3RlbURlZmluaXRpb24odXNlcjogRW9Vc2VyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG5cbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgIC8vIHRvZG86IHRlbXBvcmFyeTogT3JnQ2hhbmdlcyBjb3VsZCBub3QgYmUgcmVjb2duaXplZCBidXQgYWZmZWN0IG9iamVjdCBkZWZpbml0aW9uXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuXG4gICAgLy8gdG9kbzogZW5hYmxlIGFnYWluIHdoZW4gT3JnQ2hhbmdlcyBhcmUgcmVjb2duaXphYmxlIChETyBOT1QgREVMRVRFISlcbiAgICAvLyAvLyBpcyB0aGVyZSBhIGNhY2hlZCB2ZXJzaW9uXG4gICAgLy8gcmV0dXJuIHRoaXMuYXBwQ2FjaGVcbiAgICAvLyAgIC5nZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04pXG4gICAgLy8gICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgLy8gICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBmZXRjaGluZyBjYWNoZWQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nLCBlcnJvcik7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcbiAgICAvLyAgIH0pXG4gICAgLy8gICAuZmxhdE1hcCgoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbjogYW55KSA9PiB7XG4gICAgLy9cbiAgICAvLyAgICAgLy8geWVzPyB0aGVuIGNoZWNrIGlmIGl0J3MgdXAgdG8gZGF0ZVxuICAgIC8vICAgICBpZiAoY2FjaGVkU3lzdGVtRGVmaW5pdGlvbikge1xuICAgIC8vXG4gICAgLy8gICAgICAgaWYgKFxuICAgIC8vICAgICAgICAgdXNlci5zY2hlbWEudmVyc2lvbiAhPT0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbi5pbmZvLnZlcnNpb24gfHxcbiAgICAvLyAgICAgICAgIHVzZXIuaWQgIT09IGNhY2hlZFN5c3RlbURlZmluaXRpb24uaW5mby51c2VyIHx8XG4gICAgLy8gICAgICAgICB1c2VyLmdldFNjaGVtYUxvY2FsZSgpICE9PSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uLmluZm8ubG9jYWxlXG4gICAgLy8gICAgICAgKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFN5c3RlbURlZmluaXRpb24odXNlcik7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIC8vIGNhY2hlIGlzIHVwIHRvIGRhdGUuIHJldHVybiB0aGUgY2FjaGVkIG9uZVxuICAgIC8vICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1N5c3RlbSBkZWZpbml0aW9uIGlzIHVwIHRvIGRhdGUsIHVzaW5nIGNhY2hlZCB2ZXJzaW9uLicsIGNhY2hlZFN5c3RlbURlZmluaXRpb24pO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW0gPSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uO1xuICAgIC8vICAgICAgICAgdGhpcy5zeXN0ZW1Tb3VyY2UubmV4dCh0aGlzLnN5c3RlbSk7XG4gICAgLy8gICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgIC8vIG5vIGNhY2hlZCBzeXN0ZW1EZWZpbml0aW9uIGZvdW5kXG4gICAgLy8gICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdmFsdWUgZGVwZW5kaW5nIG9uIGEgZ2l2ZW4gVHlwZVxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHZhbHVlVHlwZVxuICAgKiBAcmV0dXJucyBhbnlcbiAgICovXG4gIHB1YmxpYyBnZXREZWZhdWx0VmFsdWUodmFsdWVUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAgIGxldCBkZWZhdWx0VmFsdWU7XG4gICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgIGNhc2UgJ0NVUlJFTlRfVVNFUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy51c2VyLm5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ1VSUkVOVF9VU0VSX05BTUUnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMudXNlci50aXRsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDVVJSRU5UX0RBVEVUSU1FJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0NVUlJFTlRfREFURSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignZGF5JykuZm9ybWF0KCd5eXl5LU1NLUREJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkueWVhcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5tb250aCgpICsgMTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdEQVknOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLmRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdIT1VSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5ob3VyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTUlOVVRFJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5taW51dGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTRUNPTkQnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnNlY29uZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1dFRUtfT0ZfWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuaXNvV2VlaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9XRUVLJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdpc29XZWVrJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRklSU1RfREFZX09GX01PTlRIJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9ZRUFSJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zdGFydE9mKCd5ZWFyJykudG9EYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc3lzdGVtIGRlZmluaXRpb24gZnJvbSB0aGUgc2VydmVyLiBQcm92aWRlZCBwYXJhbXMgYXJlIHVzZWQgZm9yIHN0b3JpbmcgdGhlXG4gICAqIHJlY2VudCB2ZXJzaW9uIGluIGNhY2hlLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlciBUaGUgdXNlciB0byBmZXRjaCB0aGUgc3lzdGVtIGRlZmluaXRpb24gZm9yXG4gICAqIEByZXR1cm4gYm9vbGVhblxuICAgKi9cbiAgZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXI6IEVvVXNlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgY29uc3QgZmV0Y2hlcyA9IFtcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvc3lzdGVtL3R5cGUvbGlzdD9lbGVtZW50cz10cnVlJmJhc2V0eXBlcz10cnVlJyksXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS9jcy9saXN0P2VsZW1lbnRzPXRydWUnKVxuICAgIF07XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKGZldGNoZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gZnJvbSBzZXJ2ZXIuJywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLmVycm9yKCdFcnJvciBmZXRjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiBmcm9tIHNlcnZlci4nKTtcbiAgICAgICAgfSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcblxuICAgICAgICAgIHRoaXMub2JqZWN0VHlwZUZvcm1zID0gW107XG4gICAgICAgICAgY29uc3Qgc3lzdGVtID0ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBpbmZvIGFib3V0IHRoZSBjdXJyZW50IHN5c3RlbSBkZWZpbml0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZm86IHtcbiAgICAgICAgICAgICAgdXNlcjogdXNlci5pZCxcbiAgICAgICAgICAgICAgbG9jYWxlOiB1c2VyLmdldFNjaGVtYUxvY2FsZSgpLFxuICAgICAgICAgICAgICB2ZXJzaW9uOiB1c2VyLnNjaGVtYS52ZXJzaW9uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBzdXBwb3J0ZWQgYmFja2VuZCBsb2NhbGVzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxvY2FsZXM6IHVzZXIuc2NoZW1hLnN1cHBvcnRlZExvY2FsZXMsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIG9iamVjdCB0eXBlIGRlZmluaXRpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogY29kZXN5c3RlbXMgY2FjaGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29kZXN5c3RlbXM6IFtdXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHR5cGVzID0gZGF0YVswXTtcbiAgICAgICAgICBzeXN0ZW0udHlwZXMgPSB0eXBlcy5tYXAodCA9PiBuZXcgT2JqZWN0VHlwZSh0KSk7XG4gICAgICAgICAgc3lzdGVtLmNvZGVzeXN0ZW1zID0gZGF0YVsxXTtcblxuICAgICAgICAgIHRoaXMuc3lzdGVtID0gc3lzdGVtO1xuICAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLm5leHQoc3lzdGVtKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRmV0Y2hlZCBuZXcgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbiAodXNlcjogJyArIHVzZXIuaWQgKyAnLCB2ZXJzaW9uOiAnICsgdXNlci5zY2hlbWEudmVyc2lvbiArICcpLicpO1xuICAgICAgICAgIHRoaXMuYXBwQ2FjaGVcbiAgICAgICAgICAgIC5zZXRJdGVtKHRoaXMuYXBwQ2FjaGUuU1lTVEVNX0RFRklOSVRJT04sIHN5c3RlbSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FjaGVkIHJlY2VudCB2ZXJzaW9uJyk7XG4gICAgICAgICAgICB9LCBVdGlscy5sb2dFcnJvcihudWxsLCAnRXJyb3IgY2FjaGluZyByZWNlbnQgdmVyc2lvbiBvZiBzeXN0ZW0gZGVmaW5pdGlvbi4nKSk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFuIG9yZ2FuaXphdGlvbiBvYmplY3QgYnkgaXRzIElEXG4gICAqIEBwYXJhbSBpZCBJRCBvZiBvcmcgb2JqZWN0XG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9pZC8ke2lkfWApXG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgb3JnYW5pemF0aW9uIG9iamVjdCBmb3IgYSBnaXZlbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSB0byBmZXRjaCBvYmplY3QgZm9yXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3QobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcmdhbml6YXRpb25PYmplY3RzKFtuYW1lXSkucGlwZShtYXAocmVzID0+IHJlc1swXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgYSBjb2xsZWN0aW9uIG9mIG9yZ2FuaXphdGlvbiBvYmplY3RzXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lcyBBcnJheSBvZiBuYW1lcyB0byBmZXRjaCBvYmplY3RzIGZvclxuICAgKiBAcmV0dXJucyBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBPYmplY3RzXG4gICAqL1xuICBnZXRPcmdhbml6YXRpb25PYmplY3RzKG5hbWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHNbXT4ge1xuICAgIGNvbnN0IHRvRmV0Y2g6IE9ic2VydmFibGU8SU9yZ2FuaXphdGlvbk9iamVjdHM+W10gPSBuYW1lcy5tYXAobmFtZSA9PiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL29yZ2FuaXphdGlvbi9uYW1lLyR7bmFtZX1gKS5waXBlKGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Yoe2lkOiBuYW1lLCBhY3RpdmU6IGZhbHNlfSkpKSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0b0ZldGNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgY29sbGVjdGlvbiBvZiBvcmdhbml6YXRpb24gcm9sZXNcbiAgICpcbiAgICogQHJldHVybiBBIEFycmF5IG9mIE9yZ2FuaXphdGlvbiBSb2xlc1xuICAgKi9cbiAgZ2V0Um9sZXMoKTogT2JzZXJ2YWJsZTxPcmdSb2xlW10+IHtcbiAgICBpZiAodGhpcy5jYWNoZWRSb2xlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNhY2hlZFJvbGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0KCcvb3JnYW5pemF0aW9uL3JvbGUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAobyA9PiBvIGFzIE9yZ1JvbGVbXSksXG4gICAgICAgICAgdGFwKHJvbGVzID0+ICh0aGlzLmNhY2hlZFJvbGVzID0gcm9sZXMgYXMgT3JnUm9sZVtdKSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVuRixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBRTVCOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFXeEIsWUFBb0IsT0FBdUIsRUFDdkIsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLFFBQXlCO1FBSHpCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQVhyQyxpQkFBWSxHQUFHLElBQUksYUFBYSxFQUFPLENBQUM7UUFDekMsWUFBTyxHQUFvQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRW5FLHNDQUFzQztRQUM5QixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUU1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QUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxLQUFlO1FBQ3BDLE1BQU0sT0FBTyxHQUF1QyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkwsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTztpQkFDaEIsR0FBRyxDQUFDLG9CQUFvQixDQUFDO2lCQUN6QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBYyxDQUFDLEVBQ3hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFrQixDQUFDLENBQUMsQ0FDdEQsQ0FBQztTQUNMO0lBQ0gsQ0FBQzs7MEdBcldVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiwgb2YsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2NhdGNoRXJyb3IsIHRhcCwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lPcmdhbml6YXRpb25PYmplY3RzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtPcmdSb2xlfSBmcm9tICcuLi8uLi9tb2RlbC9vcmcubW9kZWwnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0lDb2RlU3lzdGVtfSBmcm9tICcuL3N5c3RlbWRlZmluaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgU3lzdGVtIFNlcnZpY2VzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN5c3RlbVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX3N5c3RlbTtcbiAgcHJpdmF0ZSBzeXN0ZW1Tb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBzeXN0ZW0kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnN5c3RlbVNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICAvLyBzZXNzaW9uIGNhY2hlIGZvciBvYmplY3QgdHlwZSBmb3Jtc1xuICBwcml2YXRlIG9iamVjdFR5cGVGb3JtczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXI7XG4gIHByaXZhdGUgY2FjaGVkUm9sZXM6IE9yZ1JvbGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwQ2FjaGU6IEFwcENhY2hlU2VydmljZSkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLm9uKEVuYWlvRXZlbnQuU1lTVEVNX1NUQVRVU19TQ0hFTUFfQ0hBTkdFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHRoaXMudXNlcik7XG4gICAgfSlcbiAgfVxuXG4gIHNldCBzeXN0ZW0ocyl7XG4gICAgdGhpcy5fc3lzdGVtID0gcztcbiAgfVxuXG4gIGdldCBzeXN0ZW0oKXtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9zeXN0ZW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBPYmplY3RUeXBlc1xuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBjb250YWluaW5nIGFsbCBvYmplY3QgdHlwZXNcbiAgICovXG4gIHB1YmxpYyBnZXRPYmplY3RUeXBlcygpOiBPYmplY3RUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbS50eXBlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIE9iamVjdFR5cGUgYnkgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG9iamVjdFR5cGVOYW1lIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QgdHlwZVxuICAgKiBAcmV0dXJucyB0aGUgT2JqZWN0VHlwZSBtYXRjaGluZyB0aGUgZ2l2ZW4gbmFtZVxuICAgKi9cbiAgcHVibGljIGdldE9iamVjdFR5cGUob2JqZWN0VHlwZU5hbWU6IHN0cmluZyk6IE9iamVjdFR5cGUge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbS50eXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSBvYmplY3RUeXBlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGZvcm0gZWxlbWVudHMgZnJvbSBmb3JtIG1vZGVsLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB0byBmZXRjaCB0aGVtXG4gICAqIGZvciBhIHNwZWNpYWwgc2l0dWF0aW9uIGxpa2UgU0VBUkNIXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlTmFtZSBPYmplY3RUeXBlIHRvIGZldGNoIGVsZW1lbnRzIGZvclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIEZvcm0gbW9kZWwgc2l0dWF0aW9uIHRvIGJlIGZldGNoZWRcbiAgICogQHBhcmFtIGlzQ29udGV4dFR5cGUgRmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIGZvcm0gbW9kZWwgc2hvdWxkIGJlIGZldGNoZWQgZm9yIGEgY29udGV4dCBtb2RlXG4gICAqL1xuICBnZXRGb3JtRWxlbWVudHNGcm9tRm9ybU1vZGVsKG9iamVjdFR5cGVOYW1lOiBzdHJpbmcsIHNpdHVhdGlvbjogc3RyaW5nLCBpc0NvbnRleHRUeXBlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPYmplY3RUeXBlRm9ybShvYmplY3RUeXBlTmFtZSwgc2l0dWF0aW9uLCBpc0NvbnRleHRUeXBlID8gJ0NPTlRFWFQnIDogbnVsbCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gW107XG4gICAgICAgIHRoaXMucHJvY2Vzc0Zvcm1Nb2RlbEVsZW1lbnRzKG1vZGVsLCBlbGVtZW50cyk7XG4gICAgICAgIHJldHVybiBvZihlbGVtZW50cyk7XG4gICAgfSkpXG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NGb3JtTW9kZWxFbGVtZW50cyhtb2RlbDogYW55LCBlbGVtZW50czogYW55W10pIHtcbiAgICBtb2RlbC5lbGVtZW50cy5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYoZS50eXBlICE9PSBcIm8ybUdyb3VwXCIgJiYgZS50eXBlICE9PSBcIm8ybUdyb3VwU3RhY2tcIikge1xuICAgICAgICBlbGVtZW50cy5wdXNoKGUpO1xuICAgICAgfSBlbHNlIGlmKGUuZWxlbWVudHMgJiYgZS5lbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRm9ybU1vZGVsRWxlbWVudHMoZSwgZWxlbWVudHMpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiB0eXBlIGltcGxlbWVudHMgYSBnaXZlbiBzdXBlcnR5cGVcbiAgICogQHBhcmFtIHR5cGUgVHlwZSB0byBiZSBjaGVja2VkXG4gICAqIEBwYXJhbSBzdXBlclR5cGVOYW1lIE5hbWUgb2YgdGhlIHN1cGVydHlwZVxuICAgKi9cbiAgcHVibGljIGltcGxlbWVudHNUeXBlKHR5cGU6IE9iamVjdFR5cGUsIHN1cGVyVHlwZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlLm5hbWUgPT09IHN1cGVyVHlwZU5hbWUgfHwgKHR5cGUuaW1wbGVtZW50cyAmJiB0eXBlLmltcGxlbWVudHMuaW5kZXhPZihzdXBlclR5cGVOYW1lKSAhPT0gLTEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb2Rlc3lzdGVtXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgY29kZXN5c3RlbXMgaWRcbiAgICogQHJldHVybnMgVGhlIGNvZGVzeXN0ZW0gb2JqZWN0IG1hdGNoaW5nIHRoZSBnaXZlbiBpZFxuICAgKi9cbiAgcHVibGljIGdldENvZGVzeXN0ZW0oaWQ6IHN0cmluZyk6IElDb2RlU3lzdGVtIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW0uY29kZXN5c3RlbXMuZmluZCh0ID0+IHQuaWQgPT09IGlkIHx8IHQubmFtZSA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZm9ybSBtb2RlbCBvZiBhbiBvYmplY3QgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIG9iamVjdFR5cGVOYW1lIFRoZSBvYmplY3QgdHlwZSBuYW1lXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gVGhlIGZvcm0gc2l0dWF0aW9uIHRvIGJlIGZldGNoZWRcbiAgICogQHBhcmFtIG1vZGUgRm9ybSBtb2RlIHRvIGZldGNoIChlLmcuIENPTlRFWFQpXG4gICAqIEByZXR1cm5zIFRoZSBvYmplY3QgdHlwZSBmb3JtIG1vZGVsXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JqZWN0VHlwZUZvcm0ob2JqZWN0VHlwZU5hbWU6IHN0cmluZywgc2l0dWF0aW9uOiBzdHJpbmcsIG1vZGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLyoqIGNoZWNrIGlmIHdlIGhhdmUgYSBjYWNoZWQgZm9ybSBmaXJzdCAqL1xuICAgIGxldCBjYWNoZWRGb3JtO1xuXG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlICghY2FjaGVkRm9ybSAmJiBpIDwgdGhpcy5vYmplY3RUeXBlRm9ybXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vYmplY3RUeXBlRm9ybXNbaV0ubmFtZSA9PT0gb2JqZWN0VHlwZU5hbWUgJiZcbiAgICAgICAgdGhpcy5vYmplY3RUeXBlRm9ybXNbaV0ubW9kZSA9PT0gbW9kZSAmJlxuICAgICAgICB0aGlzLm9iamVjdFR5cGVGb3Jtc1tpXS5zaXR1YXRpb24gPT09IHNpdHVhdGlvbikge1xuICAgICAgICBjYWNoZWRGb3JtID0gdGhpcy5vYmplY3RUeXBlRm9ybXNbaV07XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgaWYgKGNhY2hlZEZvcm0pIHtcbiAgICAgIC8qKiByZXR1cm4gYSBjbG9uZSBvZiB0aGUgY2FjaGVkIG1vZGVsIGFzIG90aGVyd2lzZSBtb2RlbCBjaGFuZ2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNoYWNoZWQgbW9kZWwgKi9cbiAgICAgIHJldHVybiBvZihjbG9uZURlZXAoY2FjaGVkRm9ybSkpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCB1cmkgPSBgL3VpL2Zvcm0vJHtvYmplY3RUeXBlTmFtZX0/c2l0dWF0aW9uPSR7c2l0dWF0aW9ufWA7XG4gICAgICB1cmkgKz0gISFtb2RlID8gYCZmb3JtbW9kZT0ke21vZGV9YCA6ICcnO1xuXG4gICAgICAvKiogZmV0Y2ggYW5kIGNhY2hlIHRoZSByZXF1ZXN0ZWQgZm9ybSwgaWYgbm8gY2FjaGVkIHZlcnNpb24gd2FzIGZvdW5kICovXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZSh1cmksICgpID0+IHRoaXMuYmFja2VuZFxuICAgICAgICAuZ2V0SnNvbih1cmkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgobW9kZWwpID0+IHRoaXMub2JqZWN0VHlwZUZvcm1zLnB1c2goY2xvbmVEZWVwKG1vZGVsKSkpXG4gICAgICAgICkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBiYWNrZW5kcyBzeXN0ZW0gZGVmaW5pdGlvbiBhbmQgdXBkYXRlcyBzeXN0ZW0kIE9ic2VydmFibGUuXG4gICAqIFN1YnNjcmliZSB0byB0aGUgc3lzdGVtJCBvYnNlcnZhYmxlIGluc3RlYWQgb2YgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvdGhlcndpc2UgeW91J2xsIHRyaWdnZXIgZmV0Y2hpbmcgdGhlXG4gICAqIHN5c3RlbSBkZWZpbml0aW9uIGV2ZXJ5IHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyIFRoZSB1c2VyIHRvIGxvYWQgdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZvclxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gc3VjY2Vzc2Z1bGxcbiAgICovXG4gIHB1YmxpYyBnZXRTeXN0ZW1EZWZpbml0aW9uKHVzZXI6IEVvVXNlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAvLyB0b2RvOiB0ZW1wb3Jhcnk6IE9yZ0NoYW5nZXMgY291bGQgbm90IGJlIHJlY29nbml6ZWQgYnV0IGFmZmVjdCBvYmplY3QgZGVmaW5pdGlvblxuICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcblxuICAgIC8vIHRvZG86IGVuYWJsZSBhZ2FpbiB3aGVuIE9yZ0NoYW5nZXMgYXJlIHJlY29nbml6YWJsZSAoRE8gTk9UIERFTEVURSEpXG4gICAgLy8gLy8gaXMgdGhlcmUgYSBjYWNoZWQgdmVyc2lvblxuICAgIC8vIHJldHVybiB0aGlzLmFwcENhY2hlXG4gICAgLy8gICAuZ2V0SXRlbSh0aGlzLmFwcENhY2hlLlNZU1RFTV9ERUZJTklUSU9OKVxuICAgIC8vICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIC8vICAgICB0aGlzLmxvZ2dlci5lcnJvcignRXJyb3IgZmV0Y2hpbmcgY2FjaGVkIHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24uJywgZXJyb3IpO1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5mZXRjaFN5c3RlbURlZmluaXRpb24odXNlcik7XG4gICAgLy8gICB9KVxuICAgIC8vICAgLmZsYXRNYXAoKGNhY2hlZFN5c3RlbURlZmluaXRpb246IGFueSkgPT4ge1xuICAgIC8vXG4gICAgLy8gICAgIC8vIHllcz8gdGhlbiBjaGVjayBpZiBpdCdzIHVwIHRvIGRhdGVcbiAgICAvLyAgICAgaWYgKGNhY2hlZFN5c3RlbURlZmluaXRpb24pIHtcbiAgICAvL1xuICAgIC8vICAgICAgIGlmIChcbiAgICAvLyAgICAgICAgIHVzZXIuc2NoZW1hLnZlcnNpb24gIT09IGNhY2hlZFN5c3RlbURlZmluaXRpb24uaW5mby52ZXJzaW9uIHx8XG4gICAgLy8gICAgICAgICB1c2VyLmlkICE9PSBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uLmluZm8udXNlciB8fFxuICAgIC8vICAgICAgICAgdXNlci5nZXRTY2hlbWFMb2NhbGUoKSAhPT0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbi5pbmZvLmxvY2FsZVxuICAgIC8vICAgICAgICkge1xuICAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hTeXN0ZW1EZWZpbml0aW9uKHVzZXIpO1xuICAgIC8vICAgICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAvLyBjYWNoZSBpcyB1cCB0byBkYXRlLiByZXR1cm4gdGhlIGNhY2hlZCBvbmVcbiAgICAvLyAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTeXN0ZW0gZGVmaW5pdGlvbiBpcyB1cCB0byBkYXRlLCB1c2luZyBjYWNoZWQgdmVyc2lvbi4nLCBjYWNoZWRTeXN0ZW1EZWZpbml0aW9uKTtcbiAgICAvLyAgICAgICAgIHRoaXMuc3lzdGVtID0gY2FjaGVkU3lzdGVtRGVmaW5pdGlvbjtcbiAgICAvLyAgICAgICAgIHRoaXMuc3lzdGVtU291cmNlLm5leHQodGhpcy5zeXN0ZW0pO1xuICAgIC8vICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAvLyBubyBjYWNoZWQgc3lzdGVtRGVmaW5pdGlvbiBmb3VuZFxuICAgIC8vICAgICAgIHJldHVybiB0aGlzLmZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHZhbHVlIGRlcGVuZGluZyBvbiBhIGdpdmVuIFR5cGVcbiAgICpcbiAgICogQHBhcmFtIHN0cmluZyB2YWx1ZVR5cGVcbiAgICogQHJldHVybnMgYW55XG4gICAqL1xuICBwdWJsaWMgZ2V0RGVmYXVsdFZhbHVlKHZhbHVlVHlwZTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgZGVmYXVsdFZhbHVlO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICBjYXNlICdDVVJSRU5UX1VTRVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMudXNlci5uYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0NVUlJFTlRfVVNFUl9OQU1FJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLnVzZXIudGl0bGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ1VSUkVOVF9EQVRFVElNRSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDVVJSRU5UX0RBVEUnOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnN0YXJ0T2YoJ2RheScpLmZvcm1hdCgneXl5eS1NTS1ERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1lFQVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLnllYXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdNT05USCc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkubW9udGgoKSArIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREFZJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5kYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnSE9VUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuaG91cigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ01JTlVURSc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkubWludXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnU0VDT05EJzoge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBtb21lbnQoKS5zZWNvbmQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdXRUVLX09GX1lFQVInOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IG1vbWVudCgpLmlzb1dlZWsoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGSVJTVF9EQVlfT0ZfV0VFSyc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignaXNvV2VlaycpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZJUlNUX0RBWV9PRl9NT05USCc6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGSVJTVF9EQVlfT0ZfWUVBUic6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpLnRvRGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZyb20gdGhlIHNlcnZlci4gUHJvdmlkZWQgcGFyYW1zIGFyZSB1c2VkIGZvciBzdG9yaW5nIHRoZVxuICAgKiByZWNlbnQgdmVyc2lvbiBpbiBjYWNoZS5cbiAgICpcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gZmV0Y2ggdGhlIHN5c3RlbSBkZWZpbml0aW9uIGZvclxuICAgKiBAcmV0dXJuIGJvb2xlYW5cbiAgICovXG4gIGZldGNoU3lzdGVtRGVmaW5pdGlvbih1c2VyOiBFb1VzZXIpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgIGNvbnN0IGZldGNoZXMgPSBbXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS90eXBlL2xpc3Q/ZWxlbWVudHM9dHJ1ZSZiYXNldHlwZXM9dHJ1ZScpLFxuICAgICAgdGhpcy5iYWNrZW5kLmdldEpzb24oJy9zeXN0ZW0vY3MvbGlzdD9lbGVtZW50cz10cnVlJylcbiAgICBdO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbihmZXRjaGVzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHJlY2VudCB2ZXJzaW9uIG9mIHN5c3RlbSBkZWZpbml0aW9uIGZyb20gc2VydmVyLicsIGVycm9yKTtcbiAgICAgICAgICB0aGlzLnN5c3RlbVNvdXJjZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gZnJvbSBzZXJ2ZXIuJyk7XG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XG5cbiAgICAgICAgICB0aGlzLm9iamVjdFR5cGVGb3JtcyA9IFtdO1xuICAgICAgICAgIGNvbnN0IHN5c3RlbSA9IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogaW5mbyBhYm91dCB0aGUgY3VycmVudCBzeXN0ZW0gZGVmaW5pdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbmZvOiB7XG4gICAgICAgICAgICAgIHVzZXI6IHVzZXIuaWQsXG4gICAgICAgICAgICAgIGxvY2FsZTogdXNlci5nZXRTY2hlbWFMb2NhbGUoKSxcbiAgICAgICAgICAgICAgdmVyc2lvbjogdXNlci5zY2hlbWEudmVyc2lvblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogc3VwcG9ydGVkIGJhY2tlbmQgbG9jYWxlc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsb2NhbGVzOiB1c2VyLnNjaGVtYS5zdXBwb3J0ZWRMb2NhbGVzLFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBvYmplY3QgdHlwZSBkZWZpbml0aW9uc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0eXBlczogW10sXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGNvZGVzeXN0ZW1zIGNhY2hlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvZGVzeXN0ZW1zOiBbXVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCB0eXBlcyA9IGRhdGFbMF07XG4gICAgICAgICAgc3lzdGVtLnR5cGVzID0gdHlwZXMubWFwKHQgPT4gbmV3IE9iamVjdFR5cGUodCkpO1xuICAgICAgICAgIHN5c3RlbS5jb2Rlc3lzdGVtcyA9IGRhdGFbMV07XG5cbiAgICAgICAgICB0aGlzLnN5c3RlbSA9IHN5c3RlbTtcbiAgICAgICAgICB0aGlzLnN5c3RlbVNvdXJjZS5uZXh0KHN5c3RlbSk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0ZldGNoZWQgbmV3IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24gKHVzZXI6ICcgKyB1c2VyLmlkICsgJywgdmVyc2lvbjogJyArIHVzZXIuc2NoZW1hLnZlcnNpb24gKyAnKS4nKTtcbiAgICAgICAgICB0aGlzLmFwcENhY2hlXG4gICAgICAgICAgICAuc2V0SXRlbSh0aGlzLmFwcENhY2hlLlNZU1RFTV9ERUZJTklUSU9OLCBzeXN0ZW0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NhY2hlZCByZWNlbnQgdmVyc2lvbicpO1xuICAgICAgICAgICAgfSwgVXRpbHMubG9nRXJyb3IobnVsbCwgJ0Vycm9yIGNhY2hpbmcgcmVjZW50IHZlcnNpb24gb2Ygc3lzdGVtIGRlZmluaXRpb24uJykpO1xuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBvcmdhbml6YXRpb24gb2JqZWN0IGJ5IGl0cyBJRFxuICAgKiBAcGFyYW0gaWQgSUQgb2Ygb3JnIG9iamVjdFxuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oYC9vcmdhbml6YXRpb24vaWQvJHtpZH1gKVxuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIG9yZ2FuaXphdGlvbiBvYmplY3QgZm9yIGEgZ2l2ZW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8gZmV0Y2ggb2JqZWN0IGZvclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0KG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhbbmFtZV0pLnBpcGUobWFwKHJlcyA9PiByZXNbMF0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIGEgY29sbGVjdGlvbiBvZiBvcmdhbml6YXRpb24gb2JqZWN0c1xuICAgKlxuICAgKiBAcGFyYW0gbmFtZXMgQXJyYXkgb2YgbmFtZXMgdG8gZmV0Y2ggb2JqZWN0cyBmb3JcbiAgICogQHJldHVybnMgQSBBcnJheSBvZiBPcmdhbml6YXRpb24gT2JqZWN0c1xuICAgKi9cbiAgZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhuYW1lczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPElPcmdhbml6YXRpb25PYmplY3RzW10+IHtcbiAgICBjb25zdCB0b0ZldGNoOiBPYnNlcnZhYmxlPElPcmdhbml6YXRpb25PYmplY3RzPltdID0gbmFtZXMubWFwKG5hbWUgPT4gdGhpcy5iYWNrZW5kLmdldEpzb24oYC9vcmdhbml6YXRpb24vbmFtZS8ke25hbWV9YCkucGlwZShjYXRjaEVycm9yKGVycm9yID0+IG9mKHtpZDogbmFtZSwgYWN0aXZlOiBmYWxzZX0pKSkpO1xuICAgIHJldHVybiBvYnNlcnZhYmxlRm9ya0pvaW4odG9GZXRjaCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBhIGNvbGxlY3Rpb24gb2Ygb3JnYW5pemF0aW9uIHJvbGVzXG4gICAqXG4gICAqIEByZXR1cm4gQSBBcnJheSBvZiBPcmdhbml6YXRpb24gUm9sZXNcbiAgICovXG4gIGdldFJvbGVzKCk6IE9ic2VydmFibGU8T3JnUm9sZVtdPiB7XG4gICAgaWYgKHRoaXMuY2FjaGVkUm9sZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5jYWNoZWRSb2xlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgICAgLmdldCgnL29yZ2FuaXphdGlvbi9yb2xlJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKG8gPT4gbyBhcyBPcmdSb2xlW10pLFxuICAgICAgICAgIHRhcChyb2xlcyA9PiAodGhpcy5jYWNoZWRSb2xlcyA9IHJvbGVzIGFzIE9yZ1JvbGVbXSkpXG4gICAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -12,7 +12,7 @@ import { EMPTY, throwError, Subject, of, forkJoin, Observable, ReplaySubject, Be
|
|
|
12
12
|
import { filter, map, tap, finalize, shareReplay, debounceTime, switchMap, first, catchError, expand, skipWhile, mergeMap, takeUntil } from 'rxjs/operators';
|
|
13
13
|
import { DatePipe, registerLocaleData } from '@angular/common';
|
|
14
14
|
import moment from 'moment';
|
|
15
|
-
import
|
|
15
|
+
import { cloneDeep } from 'lodash-es';
|
|
16
16
|
import * as FileSaver from 'file-saver';
|
|
17
17
|
import * as i1$2 from '@ngx-pwa/local-storage';
|
|
18
18
|
import localeDeCh from '@angular/common/locales/de-CH';
|
|
@@ -2044,7 +2044,7 @@ class SystemService {
|
|
|
2044
2044
|
}
|
|
2045
2045
|
if (cachedForm) {
|
|
2046
2046
|
/** return a clone of the cached model as otherwise model changes will be added to the chached model */
|
|
2047
|
-
return of(
|
|
2047
|
+
return of(cloneDeep(cachedForm));
|
|
2048
2048
|
}
|
|
2049
2049
|
else {
|
|
2050
2050
|
let uri = `/ui/form/${objectTypeName}?situation=${situation}`;
|
|
@@ -2052,7 +2052,7 @@ class SystemService {
|
|
|
2052
2052
|
/** fetch and cache the requested form, if no cached version was found */
|
|
2053
2053
|
return this.backend.getViaTempCache(uri, () => this.backend
|
|
2054
2054
|
.getJson(uri)
|
|
2055
|
-
.pipe(tap((model) => this.objectTypeForms.push(
|
|
2055
|
+
.pipe(tap((model) => this.objectTypeForms.push(cloneDeep(model)))));
|
|
2056
2056
|
}
|
|
2057
2057
|
}
|
|
2058
2058
|
/**
|