@datagrok-libraries/utils 2.4.3 → 3.0.0
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/package.json +1 -1
- package/src/color.d.ts +8 -1
- package/src/color.d.ts.map +1 -1
- package/src/color.js +24 -3
- package/src/computation-view.d.ts +9 -4
- package/src/computation-view.d.ts.map +1 -1
- package/src/computation-view.js +14 -49
- package/src/function-view.d.ts +9 -3
- package/src/function-view.d.ts.map +1 -1
- package/src/function-view.js +60 -21
- package/src/history-utils.d.ts +1 -1
- package/src/history-utils.d.ts.map +1 -1
- package/src/history-utils.js +7 -19
- package/src/pipeline-view.d.ts +20 -21
- package/src/pipeline-view.d.ts.map +1 -1
- package/src/pipeline-view.js +77 -59
- package/src/rich-function-view.d.ts +12 -7
- package/src/rich-function-view.d.ts.map +1 -1
- package/src/rich-function-view.js +53 -66
- package/src/shared-components/history-panel.d.ts.map +1 -1
- package/src/shared-components/history-panel.js +8 -6
- package/tsconfig.json +1 -1
package/package.json
CHANGED
package/src/color.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
/** Set alpha over {@link color} */
|
|
3
3
|
export declare function setAlpha(color: DG.ColorType, alpha: number): number;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function intToRgb(value: DG.ColorType): string;
|
|
5
|
+
export declare function intToRgba(value: DG.ColorType): string;
|
|
6
|
+
export declare function intToHtml(value: DG.ColorType): string;
|
|
7
|
+
export declare function intToHtmlA(value: DG.ColorType): string;
|
|
8
|
+
/** Converts color Hex string ('#000bff') to int number */
|
|
9
|
+
export declare function htmlToInt(value: string): number;
|
|
10
|
+
/** Converts color Hex string ('#000bff22' , alpha=0x22) to int number with alpha */
|
|
11
|
+
export declare function htmlToIntA(value: string): number;
|
|
5
12
|
//# sourceMappingURL=color.d.ts.map
|
package/src/color.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["color.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["color.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,CAErD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,CAItD;AAED,0DAA0D;AAC1D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD"}
|
package/src/color.js
CHANGED
|
@@ -7,7 +7,28 @@ export function setAlpha(color, alpha) {
|
|
|
7
7
|
DG.Color.g(color) << 8 |
|
|
8
8
|
DG.Color.b(color);
|
|
9
9
|
}
|
|
10
|
-
export function
|
|
11
|
-
return `
|
|
10
|
+
export function intToRgb(value) {
|
|
11
|
+
return `rgb(${DG.Color.r(value)}, ${DG.Color.g(value)}, ${DG.Color.b(value)})`;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
export function intToRgba(value) {
|
|
14
|
+
return `rgba(${DG.Color.r(value)}, ${DG.Color.g(value)}, ${DG.Color.b(value)}, ${DG.Color.a(value) / 255})`;
|
|
15
|
+
}
|
|
16
|
+
export function intToHtml(value) {
|
|
17
|
+
return `#${(value & 0xFFFFFF).toString(16).padStart(6, '0')}`;
|
|
18
|
+
}
|
|
19
|
+
export function intToHtmlA(value) {
|
|
20
|
+
const alpha = DG.Color.a(value);
|
|
21
|
+
return `#${(value & 0xFFFFFF).toString(16).padStart(6, '0')}` +
|
|
22
|
+
alpha.toString(16).padStart(2, '0');
|
|
23
|
+
}
|
|
24
|
+
/** Converts color Hex string ('#000bff') to int number */
|
|
25
|
+
export function htmlToInt(value) {
|
|
26
|
+
return DG.Color.fromHtml(value) & 0xFFFFFF;
|
|
27
|
+
}
|
|
28
|
+
/** Converts color Hex string ('#000bff22' , alpha=0x22) to int number with alpha */
|
|
29
|
+
export function htmlToIntA(value) {
|
|
30
|
+
/* regexp: dies sign + (group 1 six hex digits for rgb) + (group 2 two hex digits for alpha) */
|
|
31
|
+
const m = /#([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})/.exec(value);
|
|
32
|
+
return parseInt(m[1], 16) | (parseInt(m[2], 16) << 24);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRDLG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQW1CLEVBQUUsS0FBYTtJQUN6RCxPQUFPLENBQUM7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDM0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUN2QixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3RCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQW1CO0lBQzFDLE9BQU8sT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQW1CO0lBQzNDLE9BQU8sUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUM5RyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFtQjtJQUMzQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFtQjtJQUM1QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDM0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCwwREFBMEQ7QUFDMUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLCtGQUErRjtJQUMvRixNQUFNLENBQUMsR0FBb0IsbUNBQW1DLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBRSxDQUFDO0lBQzVFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbi8qKiBTZXQgYWxwaGEgb3ZlciB7QGxpbmsgY29sb3J9ICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QWxwaGEoY29sb3I6IERHLkNvbG9yVHlwZSwgYWxwaGE6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiAwIHxcbiAgICBNYXRoLnJvdW5kKERHLkNvbG9yLmEoY29sb3IpICogYWxwaGEpIDw8IDI0IHxcbiAgICBERy5Db2xvci5yKGNvbG9yKSA8PCAxNiB8XG4gICAgREcuQ29sb3IuZyhjb2xvcikgPDwgOCB8XG4gICAgREcuQ29sb3IuYihjb2xvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRUb1JnYih2YWx1ZTogREcuQ29sb3JUeXBlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGByZ2IoJHtERy5Db2xvci5yKHZhbHVlKX0sICR7REcuQ29sb3IuZyh2YWx1ZSl9LCAke0RHLkNvbG9yLmIodmFsdWUpfSlgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW50VG9SZ2JhKHZhbHVlOiBERy5Db2xvclR5cGUpOiBzdHJpbmcge1xuICByZXR1cm4gYHJnYmEoJHtERy5Db2xvci5yKHZhbHVlKX0sICR7REcuQ29sb3IuZyh2YWx1ZSl9LCAke0RHLkNvbG9yLmIodmFsdWUpfSwgJHtERy5Db2xvci5hKHZhbHVlKSAvIDI1NX0pYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludFRvSHRtbCh2YWx1ZTogREcuQ29sb3JUeXBlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAjJHsodmFsdWUgJiAweEZGRkZGRikudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDYsICcwJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludFRvSHRtbEEodmFsdWU6IERHLkNvbG9yVHlwZSk6IHN0cmluZyB7XG4gIGNvbnN0IGFscGhhID0gREcuQ29sb3IuYSh2YWx1ZSk7XG4gIHJldHVybiBgIyR7KHZhbHVlICYgMHhGRkZGRkYpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2LCAnMCcpfWAgK1xuICAgIGFscGhhLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xufVxuXG4vKiogQ29udmVydHMgY29sb3IgSGV4IHN0cmluZyAoJyMwMDBiZmYnKSB0byBpbnQgbnVtYmVyICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbFRvSW50KHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gREcuQ29sb3IuZnJvbUh0bWwodmFsdWUpICYgMHhGRkZGRkY7XG59XG5cbi8qKiBDb252ZXJ0cyBjb2xvciBIZXggc3RyaW5nICgnIzAwMGJmZjIyJyAsIGFscGhhPTB4MjIpIHRvIGludCBudW1iZXIgd2l0aCBhbHBoYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0bWxUb0ludEEodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gIC8qIHJlZ2V4cDogZGllcyBzaWduICsgKGdyb3VwIDEgc2l4IGhleCBkaWdpdHMgZm9yIHJnYikgKyAoZ3JvdXAgMiB0d28gaGV4IGRpZ2l0cyBmb3IgYWxwaGEpICovXG4gIGNvbnN0IG06IFJlZ0V4cEV4ZWNBcnJheSA9IC8jKFswLTlBLUZhLWZdezZ9KShbMC05QS1GYS1mXXsyfSkvLmV4ZWModmFsdWUpITtcbiAgcmV0dXJuIHBhcnNlSW50KG1bMV0sIDE2KSB8IChwYXJzZUludChtWzJdLCAxNikgPDwgMjQpO1xufVxuIl19
|
|
@@ -14,12 +14,18 @@ import { FunctionView } from './function-view';
|
|
|
14
14
|
* - entering the real, measured (as opposed to predicted) values manually
|
|
15
15
|
* - notifications for changing inputs, completion of computations, etc: {@link onInputChanged}
|
|
16
16
|
* */
|
|
17
|
-
export declare class ComputationView extends FunctionView {
|
|
17
|
+
export declare abstract class ComputationView extends FunctionView {
|
|
18
|
+
options: {
|
|
19
|
+
historyEnabled: boolean;
|
|
20
|
+
isTabbed: boolean;
|
|
21
|
+
};
|
|
18
22
|
/** Find the function by fully specified name, link it to the view and constructs the view.
|
|
19
|
-
* If function name is not specified, calls {@link init} and {@link build} without FuncCall linkage.
|
|
20
23
|
* @stability Stable
|
|
21
24
|
*/
|
|
22
|
-
constructor(funcName?:
|
|
25
|
+
constructor(funcName: string, options?: {
|
|
26
|
+
historyEnabled: boolean;
|
|
27
|
+
isTabbed: boolean;
|
|
28
|
+
});
|
|
23
29
|
/** Override to customize getting mocks
|
|
24
30
|
* @stability Experimental
|
|
25
31
|
*/
|
|
@@ -50,7 +56,6 @@ export declare class ComputationView extends FunctionView {
|
|
|
50
56
|
* @stability Experimental
|
|
51
57
|
*/
|
|
52
58
|
getAbout: (() => Promise<string>) | null;
|
|
53
|
-
buildIO(): HTMLElement;
|
|
54
59
|
/**
|
|
55
60
|
* Looks for {@link reportBug}, {@link getHelp} and {@link exportConfig} members and creates model menus
|
|
56
61
|
* @stability Stable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computation-view.d.ts","sourceRoot":"","sources":["computation-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"computation-view.d.ts","sourceRoot":"","sources":["computation-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAI7C;;;;;;;;;;;;;;KAcK;AACL,8BAAsB,eAAgB,SAAQ,YAAY;IAM/C,OAAO,EAAE;QAAC,cAAc,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAC;IAL9D;;MAEE;gBAEA,QAAQ,EAAE,MAAM,EACT,OAAO,GAAE;QAAC,cAAc,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAA2C;IAkBxG;;MAEE;IACF,QAAQ,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE7C;;MAEE;IACF,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE/C;;MAEE;IACF,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAEpD;;MAEE;IACF,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAGtC;IAEF;;;MAGE;IACO,eAAe;YA4DV,cAAc;CAW7B"}
|
package/src/computation-view.js
CHANGED
|
@@ -14,8 +14,6 @@ import * as ui from 'datagrok-api/ui';
|
|
|
14
14
|
import * as DG from 'datagrok-api/dg';
|
|
15
15
|
import { FunctionView } from './function-view';
|
|
16
16
|
import dayjs from 'dayjs';
|
|
17
|
-
import { historyUtils } from './history-utils';
|
|
18
|
-
const url = new URL(grok.shell.startUri);
|
|
19
17
|
/**
|
|
20
18
|
* Base class for handling Compute models (see https://github.com/datagrok-ai/public/blob/master/help/compute/compute.md).
|
|
21
19
|
* In most cases, the computation is a simple {@link Func}
|
|
@@ -33,13 +31,11 @@ const url = new URL(grok.shell.startUri);
|
|
|
33
31
|
* */
|
|
34
32
|
export class ComputationView extends FunctionView {
|
|
35
33
|
/** Find the function by fully specified name, link it to the view and constructs the view.
|
|
36
|
-
* If function name is not specified, calls {@link init} and {@link build} without FuncCall linkage.
|
|
37
34
|
* @stability Stable
|
|
38
35
|
*/
|
|
39
|
-
constructor(funcName) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
super();
|
|
36
|
+
constructor(funcName, options = { historyEnabled: true, isTabbed: false }) {
|
|
37
|
+
super(funcName, options);
|
|
38
|
+
this.options = options;
|
|
43
39
|
/** Override to customize getting mocks
|
|
44
40
|
* @stability Experimental
|
|
45
41
|
*/
|
|
@@ -67,49 +63,18 @@ export class ComputationView extends FunctionView {
|
|
|
67
63
|
const pack = (yield grok.dapi.packages.list()).find((pack) => { var _a; return pack.id === ((_a = this.func) === null || _a === void 0 ? void 0 : _a.package.id); });
|
|
68
64
|
return pack ? `${pack.friendlyName} v.${pack.version}.\nLast updated on ${dayjs(pack.updatedOn).format('YYYY MMM D, HH:mm')}` : `No package info was found`;
|
|
69
65
|
});
|
|
70
|
-
|
|
71
|
-
this.parentCall =
|
|
72
|
-
this.parentView =
|
|
73
|
-
this.basePath = `/${
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
yield this.init();
|
|
78
|
-
const urlRun = yield historyUtils.loadRun(runId);
|
|
79
|
-
this.linkFunccall(urlRun);
|
|
66
|
+
const currentCall = grok.functions.getCurrentCall();
|
|
67
|
+
this.parentCall = currentCall;
|
|
68
|
+
this.parentView = currentCall === null || currentCall === void 0 ? void 0 : currentCall.parentCall.aux['view'];
|
|
69
|
+
this.basePath = `/${currentCall === null || currentCall === void 0 ? void 0 : currentCall.func.name}`;
|
|
70
|
+
this.onFuncCallReady.subscribe({
|
|
71
|
+
complete: () => __awaiter(this, void 0, void 0, function* () {
|
|
80
72
|
yield this.getPackageUrls();
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
ui.setUpdateIndicator(this.root, false);
|
|
86
|
-
url.searchParams.delete('id');
|
|
87
|
-
}), 0);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
if (funcName) {
|
|
91
|
-
grok.functions.eval(funcName).then((func) => __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
const funccall = func.prepare({});
|
|
93
|
-
this.linkFunccall(funccall);
|
|
94
|
-
yield this.init();
|
|
95
|
-
yield this.getPackageUrls();
|
|
96
|
-
this.build();
|
|
97
|
-
})).finally(() => {
|
|
98
|
-
ui.setUpdateIndicator(this.root, false);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
yield this.init();
|
|
104
|
-
yield this.getPackageUrls();
|
|
105
|
-
this.build();
|
|
106
|
-
this.buildRibbonPanels();
|
|
107
|
-
ui.setUpdateIndicator(this.root, false);
|
|
108
|
-
}), 0);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
73
|
+
this.buildRibbonMenu();
|
|
74
|
+
this.changeViewName(currentCall.func.friendlyName);
|
|
75
|
+
})
|
|
76
|
+
});
|
|
111
77
|
}
|
|
112
|
-
buildIO() { return ui.div(); }
|
|
113
78
|
/**
|
|
114
79
|
* Looks for {@link reportBug}, {@link getHelp} and {@link exportConfig} members and creates model menus
|
|
115
80
|
* @stability Stable
|
|
@@ -178,4 +143,4 @@ export class ComputationView extends FunctionView {
|
|
|
178
143
|
});
|
|
179
144
|
}
|
|
180
145
|
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXB1dGF0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3pDOzs7Ozs7Ozs7Ozs7OztLQWNLO0FBQ0wsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQUMvQzs7O01BR0U7SUFDRixZQUFZLFFBQWlCOztRQUMzQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQTRDVjs7VUFFRTtRQUNGLGFBQVEsR0FBK0QsSUFBSSxDQUFDO1FBRTVFOztVQUVFO1FBQ0YsaUJBQVksR0FBMkQsSUFBSSxDQUFDO1FBRTVFOztVQUVFO1FBQ0YsWUFBTyxHQUFpQyxJQUFJLENBQUM7UUFFN0M7O1VBRUU7UUFDRixjQUFTLEdBQWlDLElBQUksQ0FBQztRQUUvQzs7VUFFRTtRQUNGLG1CQUFjLEdBQWlDLElBQUksQ0FBQztRQUVwRDs7VUFFRTtRQUNGLGFBQVEsR0FBbUMsR0FBUyxFQUFFO1lBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxD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QUFDO1NBQ0o7SUFDSCxDQUFDO0lBRWEsY0FBYzs7WUFDMUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBQyxPQUFBLElBQUksQ0FBQyxFQUFFLE1BQUssTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQSxDQUFBLEVBQUEsQ0FBQyxDQUFDO1lBRTVHLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxhQUFhLEVBQUUsQ0FBUSxDQUFBLENBQUMsY0FBYyxDQUFDO1lBQ3pFLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7Z0JBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBUyxFQUFFLGdEQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFFeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGFBQWEsRUFBRSxDQUFRLENBQUEsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvRSxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO2dCQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQVMsRUFBRSxnREFBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ2hGLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0Z1bmN0aW9uVmlld30gZnJvbSAnLi9mdW5jdGlvbi12aWV3JztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQge2hpc3RvcnlVdGlsc30gZnJvbSAnLi9oaXN0b3J5LXV0aWxzJztcblxuY29uc3QgdXJsID0gbmV3IFVSTChncm9rLnNoZWxsLnN0YXJ0VXJpKTtcbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgaGFuZGxpbmcgQ29tcHV0ZSBtb2RlbHMgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGF0YWdyb2stYWkvcHVibGljL2Jsb2IvbWFzdGVyL2hlbHAvY29tcHV0ZS9jb21wdXRlLm1kKS5cbiAqIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wdXRhdGlvbiBpcyBhIHNpbXBsZSB7QGxpbmsgRnVuY31cbiAqIEV4dGVuZCBpdCBpbiBjYXNlcyB3aGVyZSBhIGJlaGF2aW9yIG9yIFVJIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHtAbGluayBGdW5jdGlvblZpZXd9IGlzIG5lZWRlZC5cbiAqXG4gKiBJdCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdHkgb3V0LW9mLXRoZS1ib3gsIHdoZXJlIGVhY2ggc2VjdGlvbiBjb3VsZCBiZSBjdXN0b21pemVkOlxuICogLSBhIHN0cnVjdHVyZWQgd2F5IHRvIHJlcHJlc2VudCBpbnB1dCBhbmQgb3V0cHV0IHBhcmFtZXRlcnM6IHtAbGluayBwYXJhbWV0ZXJzfVxuICogLSBnZW5lcmljIHdheSB0byBnZW5lcmF0ZSBVSSBmb3IgaW5wdXRzLCBvdXRwdXRzLCBhbmQgaW50ZXJhY3Rpdml0eSAocnVubmluZyB0aGUgbW9kZWwsIGV0YylcbiAqICAgLSBwZXJzaXN0aW5nIGhpc3RvcmljYWwgcmVzdWx0cyB0byB0aGUgZGIgKHZpYSB7QGxpbmsgcGFyYW1ldGVyc30pXG4gKiAtIGV4cG9ydCAodG8gRXhjZWwgYW5kIFBERik6IHtAbGluayBleHBvcnR9XG4gKiAtIGVhc3kgbG9hZGluZyBvZiBoaXN0b3JpY2FsIHJ1bnNcbiAqIC0gcm91dGluZ1xuICogLSBlbnRlcmluZyB0aGUgcmVhbCwgbWVhc3VyZWQgKGFzIG9wcG9zZWQgdG8gcHJlZGljdGVkKSB2YWx1ZXMgbWFudWFsbHlcbiAqIC0gbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdpbmcgaW5wdXRzLCBjb21wbGV0aW9uIG9mIGNvbXB1dGF0aW9ucywgZXRjOiB7QGxpbmsgb25JbnB1dENoYW5nZWR9XG4gKiAqL1xuZXhwb3J0IGNsYXNzIENvbXB1dGF0aW9uVmlldyBleHRlbmRzIEZ1bmN0aW9uVmlldyB7XG4gIC8qKiBGaW5kIHRoZSBmdW5jdGlvbiBieSBmdWxseSBzcGVjaWZpZWQgbmFtZSwgbGluayBpdCB0byB0aGUgdmlldyBhbmQgY29uc3RydWN0cyB0aGUgdmlldy5cbiAgICAqIElmIGZ1bmN0aW9uIG5hbWUgaXMgbm90IHNwZWNpZmllZCwgY2FsbHMge0BsaW5rIGluaXR9IGFuZCB7QGxpbmsgYnVpbGR9IHdpdGhvdXQgRnVuY0NhbGwgbGlua2FnZS5cbiAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIGNvbnN0cnVjdG9yKGZ1bmNOYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcnVuSWQgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVE9ETzogcmVwbGFjZSBncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpIHdpdGggc2luZ2xlIGNhbGxcbiAgICB0aGlzLnBhcmVudENhbGwgPSBncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpO1xuICAgIHRoaXMucGFyZW50VmlldyA9IGdyb2suZnVuY3Rpb25zLmdldEN1cnJlbnRDYWxsKCk/LnBhcmVudENhbGwuYXV4Wyd2aWV3J107XG4gICAgdGhpcy5iYXNlUGF0aCA9IGAvJHtncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpPy5mdW5jLm5hbWV9YDtcblxuICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIHRydWUpO1xuICAgIGlmIChydW5JZCkge1xuICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgICAgICBjb25zdCB1cmxSdW4gPSBhd2FpdCBoaXN0b3J5VXRpbHMubG9hZFJ1bihydW5JZCk7XG4gICAgICAgIHRoaXMubGlua0Z1bmNjYWxsKHVybFJ1bik7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0UGFja2FnZVVybHMoKTtcbiAgICAgICAgdGhpcy5idWlsZCgpO1xuICAgICAgICBhd2FpdCB0aGlzLm9uQmVmb3JlTG9hZFJ1bigpO1xuICAgICAgICB0aGlzLmxpbmtGdW5jY2FsbCh1cmxSdW4pO1xuICAgICAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJMb2FkUnVuKHVybFJ1bik7XG4gICAgICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIGZhbHNlKTtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoJ2lkJyk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZ1bmNOYW1lKSB7XG4gICAgICAgIChncm9rLmZ1bmN0aW9ucy5ldmFsKGZ1bmNOYW1lKSBhcyBQcm9taXNlPERHLkZ1bmM+KS50aGVuKGFzeW5jIChmdW5jOiBERy5GdW5jKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnVuY2NhbGwgPSBmdW5jLnByZXBhcmUoe30pO1xuICAgICAgICAgIHRoaXMubGlua0Z1bmNjYWxsKGZ1bmNjYWxsKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFBhY2thZ2VVcmxzKCk7XG4gICAgICAgICAgdGhpcy5idWlsZCgpO1xuICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB1aS5zZXRVcGRhdGVJbmRpY2F0b3IodGhpcy5yb290LCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXRQYWNrYWdlVXJscygpO1xuICAgICAgICAgIHRoaXMuYnVpbGQoKTtcbiAgICAgICAgICB0aGlzLmJ1aWxkUmliYm9uUGFuZWxzKCk7XG4gICAgICAgICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMucm9vdCwgZmFsc2UpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgbW9ja3NcbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldE1vY2tzOiAoe21vY2tOYW1lOiBzdHJpbmcsIGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPn1bXSkgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgdGVtcGxhdGVzXG4gICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAqL1xuICBnZXRUZW1wbGF0ZXM6ICh7bmFtZTogc3RyaW5nLCBhY3Rpb246ICgpID0+IFByb21pc2U8dm9pZD59W10pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBnZXR0aW5nIGhlbHAgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgZ2V0SGVscDogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBidWcgcmVwb3J0aW5nIGZlYXR1cmVcbiAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIHJlcG9ydEJ1ZzogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBmZWF0dXJlIHJlcXVlc3QgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgcmVxdWVzdEZlYXR1cmU6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgXCJhYm91dFwiIGluZm8gb2J0YWluaW5nIGZlYXR1cmUuXG4gICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAqL1xuICBnZXRBYm91dDogKCgpID0+IFByb21pc2U8c3RyaW5nPikgfCBudWxsID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBhY2sgPSAoYXdhaXQgZ3Jvay5kYXBpLnBhY2thZ2VzLmxpc3QoKSkuZmluZCgocGFjaykgPT4gcGFjay5pZCA9PT0gdGhpcy5mdW5jPy5wYWNrYWdlLmlkKTtcbiAgICByZXR1cm4gcGFjayA/IGAke3BhY2suZnJpZW5kbHlOYW1lfSB2LiR7cGFjay52ZXJzaW9ufS5cXG5MYXN0IHVwZGF0ZWQgb24gJHtkYXlqcyhwYWNrLnVwZGF0ZWRPbikuZm9ybWF0KCdZWVlZIE1NTSBELCBISDptbScpfWA6IGBObyBwYWNrYWdlIGluZm8gd2FzIGZvdW5kYDtcbiAgfTtcblxuICBwdWJsaWMgYnVpbGRJTygpOiBIVE1MRWxlbWVudCB7IHJldHVybiB1aS5kaXYoKTsgfVxuXG4gIC8qKlxuICAgKiBMb29rcyBmb3Ige0BsaW5rIHJlcG9ydEJ1Z30sIHtAbGluayBnZXRIZWxwfSBhbmQge0BsaW5rIGV4cG9ydENvbmZpZ30gbWVtYmVycyBhbmQgY3JlYXRlcyBtb2RlbCBtZW51c1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBvdmVycmlkZSBidWlsZFJpYmJvbk1lbnUoKSB7XG4gICAgdGhpcy5yaWJib25NZW51LmNsZWFyKCk7XG5cbiAgICBzdXBlci5idWlsZFJpYmJvbk1lbnUoKTtcblxuICAgIGlmICghdGhpcy5leHBvcnRDb25maWcgJiYgIXRoaXMucmVwb3J0QnVnICYmICF0aGlzLnJlcXVlc3RGZWF0dXJlICYmICF0aGlzLmdldEhlbHAgJiYgIXRoaXMuZ2V0TW9ja3MgJiYgIXRoaXMuZ2V0VGVtcGxhdGVzKSByZXR1cm47XG5cbiAgICBjb25zdCByaWJib25NZW51ID0gdGhpcy5yaWJib25NZW51Lmdyb3VwKCdNb2RlbCcpO1xuXG4gICAgaWYgKHRoaXMuZ2V0TW9ja3MgJiYgdGhpcy5nZXRNb2Nrcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5nZXRNb2Nrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmliYm9uTWVudS5pdGVtKCdJbnB1dCBkYXRhIG1vY2snLCB0aGlzLmdldE1vY2tzWzBdLmFjdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkYXRhR3JvdXAgPSByaWJib25NZW51Lmdyb3VwKCdJbnB1dCBkYXRhIG1vY2tzJyk7XG4gICAgICAgIHRoaXMuZ2V0TW9ja3MuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm1vY2tOYW1lLCB2YWwuYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJpYmJvbk1lbnUuZW5kR3JvdXAoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRUZW1wbGF0ZXMgJiYgdGhpcy5nZXRUZW1wbGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZ2V0VGVtcGxhdGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByaWJib25NZW51Lml0ZW0oJ0lucHV0IGRhdGEgdGVtcGxhdGUnLCB0aGlzLmdldFRlbXBsYXRlc1swXS5hY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUdyb3VwID0gcmliYm9uTWVudS5ncm91cCgnSW5wdXQgZGF0YSB0ZW1wbGF0ZXMnKTtcbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm5hbWUsIHZhbC5hY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmliYm9uTWVudS5lbmRHcm91cCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmV4cG9ydENvbmZpZyAmJiB0aGlzLmV4cG9ydENvbmZpZy5zdXBwb3J0ZWRGb3JtYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJpYmJvbk1lbnVcbiAgICAgICAgLmdyb3VwKCdFeHBvcnQnKVxuICAgICAgICAuaXRlbXModGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cywgYXN5bmMgKGZvcm1hdDogc3RyaW5nKSA9PiBERy5VdGlscy5kb3dubG9hZCh0aGlzLmV4cG9ydENvbmZpZyEuZmlsZW5hbWUoZm9ybWF0KSwgYXdhaXQgdGhpcy5leHBvcnRDb25maWchLmV4cG9ydChmb3JtYXQpKSlcbiAgICAgICAgLmVuZEdyb3VwKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVwb3J0QnVnKVxuICAgICAgcmliYm9uTWVudS5pdGVtKCdSZXBvcnQgYSBidWcnLCAoKSA9PiB0aGlzLnJlcG9ydEJ1ZyEoKSk7XG5cbiAgICBpZiAodGhpcy5yZXF1ZXN0RmVhdHVyZSlcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnUmVxdWVzdCBhIGZlYXR1cmUnLCAoKSA9PiB0aGlzLnJlcXVlc3RGZWF0dXJlISgpKTtcblxuICAgIGlmICh0aGlzLmdldEhlbHApXG4gICAgICByaWJib25NZW51Lml0ZW0oJ0hlbHAnLCAoKSA9PiB0aGlzLmdldEhlbHAhKCkpO1xuXG4gICAgaWYgKHRoaXMuZ2V0QWJvdXQpIHtcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnQWJvdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IHVpLmRpYWxvZygnQ3VycmVudCB2ZXJzaW9uJyk7XG4gICAgICAgIChhd2FpdCB0aGlzLmdldEFib3V0ISgpKS5zcGxpdCgnXFxuJykuZm9yRWFjaCgobGluZSkgPT4gZGlhbG9nLmFkZCh1aS5sYWJlbChsaW5lKSkpO1xuICAgICAgICBkaWFsb2cub25PSygoKSA9PiB7fSk7XG4gICAgICAgIGRpYWxvZy5nZXRCdXR0b24oJ0NBTkNFTCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRpYWxvZy5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGFja2FnZVVybHMoKSB7XG4gICAgY29uc3QgcGFjayA9IChhd2FpdCBncm9rLmRhcGkucGFja2FnZXMubGlzdCgpKS5maW5kKChwYWNrKSA9PiBwYWNrLmlkID09PSB0aGlzLnBhcmVudENhbGw/LmZ1bmMucGFja2FnZS5pZCk7XG5cbiAgICBjb25zdCByZXBvcnRCdWdVcmwgPSAoYXdhaXQgcGFjaz8uZ2V0UHJvcGVydGllcygpIGFzIGFueSkuUkVQT1JUX0JVR19VUkw7XG4gICAgaWYgKHJlcG9ydEJ1Z1VybCAmJiAhdGhpcy5yZXBvcnRCdWcpXG4gICAgICB0aGlzLnJlcG9ydEJ1ZyA9IGFzeW5jICgpID0+IHsgd2luZG93Lm9wZW4ocmVwb3J0QnVnVXJsLCAnX2JsYW5rJyk7IH07XG5cbiAgICBjb25zdCByZXFGZWF0dXJlVXJsID0gKGF3YWl0IHBhY2s/LmdldFByb3BlcnRpZXMoKSBhcyBhbnkpLlJFUVVFU1RfRkVBVFVSRV9VUkw7XG4gICAgaWYgKHJlcUZlYXR1cmVVcmwgJiYgIXRoaXMucmVxdWVzdEZlYXR1cmUpXG4gICAgICB0aGlzLnJlcXVlc3RGZWF0dXJlID0gYXN5bmMgKCkgPT4geyB3aW5kb3cub3BlbihyZXFGZWF0dXJlVXJsLCAnX2JsYW5rJyk7IH07XG4gIH1cbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXB1dGF0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCOzs7Ozs7Ozs7Ozs7OztLQWNLO0FBQ0wsTUFBTSxPQUFnQixlQUFnQixTQUFRLFlBQVk7SUFDeEQ7O01BRUU7SUFDRixZQUNFLFFBQWdCLEVBQ1QsVUFBd0QsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUM7UUFFdEcsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUZsQixZQUFPLEdBQVAsT0FBTyxDQUF3RjtRQWtCeEc7O1VBRUU7UUFDRixhQUFRLEdBQStELElBQUksQ0FBQztRQUU1RTs7VUFFRTtRQUNGLGlCQUFZLEdBQTJELElBQUksQ0FBQztRQUU1RTs7VUFFRTtRQUNGLFlBQU8sR0FBaUMsSUFBSSxDQUFDO1FBRTdDOztVQUVFO1FBQ0YsY0FBUyxHQUFpQyxJQUFJLENBQUM7UUFFL0M7O1VBRUU7UUFDRixtQkFBYyxHQUFpQyxJQUFJLENBQUM7UUFFcEQ7O1VBRUU7UUFDRixhQUFRLEdBQW1DLEdBQVMsRUFBRTtZQUNwRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFDLE9BQUEsSUFB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LENBQUM7WUFDekUsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztnQkFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFTLEVBQUUsZ0RBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUV4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsYUFBYSxFQUFFLENBQVEsQ0FBQSxDQUFDLG1CQUFtQixDQUFDO1lBQy9FLElBQUksYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBUyxFQUFFLGdEQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDaEYsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7RnVuY3Rpb25WaWV3fSBmcm9tICcuL2Z1bmN0aW9uLXZpZXcnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7UmljaEZ1bmN0aW9uVmlld30gZnJvbSAnLi9yaWNoLWZ1bmN0aW9uLXZpZXcnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGhhbmRsaW5nIENvbXB1dGUgbW9kZWxzIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2RhdGFncm9rLWFpL3B1YmxpYy9ibG9iL21hc3Rlci9oZWxwL2NvbXB1dGUvY29tcHV0ZS5tZCkuXG4gKiBJbiBtb3N0IGNhc2VzLCB0aGUgY29tcHV0YXRpb24gaXMgYSBzaW1wbGUge0BsaW5rIEZ1bmN9XG4gKiBFeHRlbmQgaXQgaW4gY2FzZXMgd2hlcmUgYSBiZWhhdmlvciBvciBVSSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSB7QGxpbmsgRnVuY3Rpb25WaWV3fSBpcyBuZWVkZWQuXG4gKlxuICogSXQgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbmFsaXR5IG91dC1vZi10aGUtYm94LCB3aGVyZSBlYWNoIHNlY3Rpb24gY291bGQgYmUgY3VzdG9taXplZDpcbiAqIC0gYSBzdHJ1Y3R1cmVkIHdheSB0byByZXByZXNlbnQgaW5wdXQgYW5kIG91dHB1dCBwYXJhbWV0ZXJzOiB7QGxpbmsgcGFyYW1ldGVyc31cbiAqIC0gZ2VuZXJpYyB3YXkgdG8gZ2VuZXJhdGUgVUkgZm9yIGlucHV0cywgb3V0cHV0cywgYW5kIGludGVyYWN0aXZpdHkgKHJ1bm5pbmcgdGhlIG1vZGVsLCBldGMpXG4gKiAgIC0gcGVyc2lzdGluZyBoaXN0b3JpY2FsIHJlc3VsdHMgdG8gdGhlIGRiICh2aWEge0BsaW5rIHBhcmFtZXRlcnN9KVxuICogLSBleHBvcnQgKHRvIEV4Y2VsIGFuZCBQREYpOiB7QGxpbmsgZXhwb3J0fVxuICogLSBlYXN5IGxvYWRpbmcgb2YgaGlzdG9yaWNhbCBydW5zXG4gKiAtIHJvdXRpbmdcbiAqIC0gZW50ZXJpbmcgdGhlIHJlYWwsIG1lYXN1cmVkIChhcyBvcHBvc2VkIHRvIHByZWRpY3RlZCkgdmFsdWVzIG1hbnVhbGx5XG4gKiAtIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5naW5nIGlucHV0cywgY29tcGxldGlvbiBvZiBjb21wdXRhdGlvbnMsIGV0Yzoge0BsaW5rIG9uSW5wdXRDaGFuZ2VkfVxuICogKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wdXRhdGlvblZpZXcgZXh0ZW5kcyBGdW5jdGlvblZpZXcge1xuICAvKiogRmluZCB0aGUgZnVuY3Rpb24gYnkgZnVsbHkgc3BlY2lmaWVkIG5hbWUsIGxpbmsgaXQgdG8gdGhlIHZpZXcgYW5kIGNvbnN0cnVjdHMgdGhlIHZpZXcuXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBmdW5jTmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBvcHRpb25zOiB7aGlzdG9yeUVuYWJsZWQ6IGJvb2xlYW4sIGlzVGFiYmVkOiBib29sZWFufSA9IHtoaXN0b3J5RW5hYmxlZDogdHJ1ZSwgaXNUYWJiZWQ6IGZhbHNlfVxuICApIHtcbiAgICBzdXBlcihmdW5jTmFtZSwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCBjdXJyZW50Q2FsbCA9IGdyb2suZnVuY3Rpb25zLmdldEN1cnJlbnRDYWxsKCk7XG4gICAgdGhpcy5wYXJlbnRDYWxsID0gY3VycmVudENhbGw7XG4gICAgdGhpcy5wYXJlbnRWaWV3ID0gY3VycmVudENhbGw/LnBhcmVudENhbGwuYXV4Wyd2aWV3J107XG4gICAgdGhpcy5iYXNlUGF0aCA9IGAvJHtjdXJyZW50Q2FsbD8uZnVuYy5uYW1lfWA7XG5cbiAgICB0aGlzLm9uRnVuY0NhbGxSZWFkeS5zdWJzY3JpYmUoe1xuICAgICAgY29tcGxldGU6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRQYWNrYWdlVXJscygpO1xuICAgICAgICB0aGlzLmJ1aWxkUmliYm9uTWVudSgpO1xuICAgICAgICB0aGlzLmNoYW5nZVZpZXdOYW1lKGN1cnJlbnRDYWxsLmZ1bmMuZnJpZW5kbHlOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgZ2V0dGluZyBtb2Nrc1xuICAgICogQHN0YWJpbGl0eSBFeHBlcmltZW50YWxcbiAgKi9cbiAgZ2V0TW9ja3M6ICh7bW9ja05hbWU6IHN0cmluZywgYWN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+fVtdKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgZ2V0dGluZyB0ZW1wbGF0ZXNcbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldFRlbXBsYXRlczogKHtuYW1lOiBzdHJpbmcsIGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPn1bXSkgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgaGVscCBmZWF0dXJlXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBnZXRIZWxwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGJ1ZyByZXBvcnRpbmcgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgcmVwb3J0QnVnOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGZlYXR1cmUgcmVxdWVzdCBmZWF0dXJlXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICByZXF1ZXN0RmVhdHVyZTogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBcImFib3V0XCIgaW5mbyBvYnRhaW5pbmcgZmVhdHVyZS5cbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldEFib3V0OiAoKCkgPT4gUHJvbWlzZTxzdHJpbmc+KSB8IG51bGwgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFjayA9IChhd2FpdCBncm9rLmRhcGkucGFja2FnZXMubGlzdCgpKS5maW5kKChwYWNrKSA9PiBwYWNrLmlkID09PSB0aGlzLmZ1bmM/LnBhY2thZ2UuaWQpO1xuICAgIHJldHVybiBwYWNrID8gYCR7cGFjay5mcmllbmRseU5hbWV9IHYuJHtwYWNrLnZlcnNpb259Llxcbkxhc3QgdXBkYXRlZCBvbiAke2RheWpzKHBhY2sudXBkYXRlZE9uKS5mb3JtYXQoJ1lZWVkgTU1NIEQsIEhIOm1tJyl9YDogYE5vIHBhY2thZ2UgaW5mbyB3YXMgZm91bmRgO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb29rcyBmb3Ige0BsaW5rIHJlcG9ydEJ1Z30sIHtAbGluayBnZXRIZWxwfSBhbmQge0BsaW5rIGV4cG9ydENvbmZpZ30gbWVtYmVycyBhbmQgY3JlYXRlcyBtb2RlbCBtZW51c1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBvdmVycmlkZSBidWlsZFJpYmJvbk1lbnUoKSB7XG4gICAgdGhpcy5yaWJib25NZW51LmNsZWFyKCk7XG5cbiAgICBzdXBlci5idWlsZFJpYmJvbk1lbnUoKTtcblxuICAgIGlmICghdGhpcy5leHBvcnRDb25maWcgJiYgIXRoaXMucmVwb3J0QnVnICYmICF0aGlzLnJlcXVlc3RGZWF0dXJlICYmICF0aGlzLmdldEhlbHAgJiYgIXRoaXMuZ2V0TW9ja3MgJiYgIXRoaXMuZ2V0VGVtcGxhdGVzKSByZXR1cm47XG5cbiAgICBjb25zdCByaWJib25NZW51ID0gdGhpcy5yaWJib25NZW51Lmdyb3VwKCdNb2RlbCcpO1xuXG4gICAgaWYgKHRoaXMuZ2V0TW9ja3MgJiYgdGhpcy5nZXRNb2Nrcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5nZXRNb2Nrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmliYm9uTWVudS5pdGVtKCdJbnB1dCBkYXRhIG1vY2snLCB0aGlzLmdldE1vY2tzWzBdLmFjdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkYXRhR3JvdXAgPSByaWJib25NZW51Lmdyb3VwKCdJbnB1dCBkYXRhIG1vY2tzJyk7XG4gICAgICAgIHRoaXMuZ2V0TW9ja3MuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm1vY2tOYW1lLCB2YWwuYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJpYmJvbk1lbnUuZW5kR3JvdXAoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRUZW1wbGF0ZXMgJiYgdGhpcy5nZXRUZW1wbGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZ2V0VGVtcGxhdGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByaWJib25NZW51Lml0ZW0oJ0lucHV0IGRhdGEgdGVtcGxhdGUnLCB0aGlzLmdldFRlbXBsYXRlc1swXS5hY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUdyb3VwID0gcmliYm9uTWVudS5ncm91cCgnSW5wdXQgZGF0YSB0ZW1wbGF0ZXMnKTtcbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm5hbWUsIHZhbC5hY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmliYm9uTWVudS5lbmRHcm91cCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmV4cG9ydENvbmZpZyAmJiB0aGlzLmV4cG9ydENvbmZpZy5zdXBwb3J0ZWRGb3JtYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJpYmJvbk1lbnVcbiAgICAgICAgLmdyb3VwKCdFeHBvcnQnKVxuICAgICAgICAuaXRlbXModGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cywgYXN5bmMgKGZvcm1hdDogc3RyaW5nKSA9PiBERy5VdGlscy5kb3dubG9hZCh0aGlzLmV4cG9ydENvbmZpZyEuZmlsZW5hbWUoZm9ybWF0KSwgYXdhaXQgdGhpcy5leHBvcnRDb25maWchLmV4cG9ydChmb3JtYXQpKSlcbiAgICAgICAgLmVuZEdyb3VwKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVwb3J0QnVnKVxuICAgICAgcmliYm9uTWVudS5pdGVtKCdSZXBvcnQgYSBidWcnLCAoKSA9PiB0aGlzLnJlcG9ydEJ1ZyEoKSk7XG5cbiAgICBpZiAodGhpcy5yZXF1ZXN0RmVhdHVyZSlcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnUmVxdWVzdCBhIGZlYXR1cmUnLCAoKSA9PiB0aGlzLnJlcXVlc3RGZWF0dXJlISgpKTtcblxuICAgIGlmICh0aGlzLmdldEhlbHApXG4gICAgICByaWJib25NZW51Lml0ZW0oJ0hlbHAnLCAoKSA9PiB0aGlzLmdldEhlbHAhKCkpO1xuXG4gICAgaWYgKHRoaXMuZ2V0QWJvdXQpIHtcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnQWJvdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IHVpLmRpYWxvZygnQ3VycmVudCB2ZXJzaW9uJyk7XG4gICAgICAgIChhd2FpdCB0aGlzLmdldEFib3V0ISgpKS5zcGxpdCgnXFxuJykuZm9yRWFjaCgobGluZSkgPT4gZGlhbG9nLmFkZCh1aS5sYWJlbChsaW5lKSkpO1xuICAgICAgICBkaWFsb2cub25PSygoKSA9PiB7fSk7XG4gICAgICAgIGRpYWxvZy5nZXRCdXR0b24oJ0NBTkNFTCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRpYWxvZy5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGFja2FnZVVybHMoKSB7XG4gICAgY29uc3QgcGFjayA9IChhd2FpdCBncm9rLmRhcGkucGFja2FnZXMubGlzdCgpKS5maW5kKChwYWNrKSA9PiBwYWNrLmlkID09PSB0aGlzLnBhcmVudENhbGw/LmZ1bmMucGFja2FnZS5pZCk7XG5cbiAgICBjb25zdCByZXBvcnRCdWdVcmwgPSAoYXdhaXQgcGFjaz8uZ2V0UHJvcGVydGllcygpIGFzIGFueSkuUkVQT1JUX0JVR19VUkw7XG4gICAgaWYgKHJlcG9ydEJ1Z1VybCAmJiAhdGhpcy5yZXBvcnRCdWcpXG4gICAgICB0aGlzLnJlcG9ydEJ1ZyA9IGFzeW5jICgpID0+IHsgd2luZG93Lm9wZW4ocmVwb3J0QnVnVXJsLCAnX2JsYW5rJyk7IH07XG5cbiAgICBjb25zdCByZXFGZWF0dXJlVXJsID0gKGF3YWl0IHBhY2s/LmdldFByb3BlcnRpZXMoKSBhcyBhbnkpLlJFUVVFU1RfRkVBVFVSRV9VUkw7XG4gICAgaWYgKHJlcUZlYXR1cmVVcmwgJiYgIXRoaXMucmVxdWVzdEZlYXR1cmUpXG4gICAgICB0aGlzLnJlcXVlc3RGZWF0dXJlID0gYXN5bmMgKCkgPT4geyB3aW5kb3cub3BlbihyZXFGZWF0dXJlVXJsLCAnX2JsYW5rJyk7IH07XG4gIH1cbn1cbiJdfQ==
|
package/src/function-view.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
2
3
|
/**
|
|
3
4
|
* Decorator to pass all thrown errors to grok.shell.error
|
|
4
5
|
* @returns The actual funccall associated with the view
|
|
@@ -6,6 +7,7 @@ import * as DG from 'datagrok-api/dg';
|
|
|
6
7
|
*/
|
|
7
8
|
export declare const passErrorToShell: () => (target: any, memberName: string, descriptor: PropertyDescriptor) => void;
|
|
8
9
|
export declare abstract class FunctionView extends DG.ViewBase {
|
|
10
|
+
protected funcName: string;
|
|
9
11
|
options: {
|
|
10
12
|
historyEnabled: boolean;
|
|
11
13
|
isTabbed: boolean;
|
|
@@ -13,22 +15,25 @@ export declare abstract class FunctionView extends DG.ViewBase {
|
|
|
13
15
|
protected _funcCall?: DG.FuncCall;
|
|
14
16
|
protected _lastCall?: DG.FuncCall;
|
|
15
17
|
protected _type: string;
|
|
16
|
-
|
|
18
|
+
protected funcCallReplaced: Subject<true>;
|
|
19
|
+
onFuncCallReady: BehaviorSubject<false>;
|
|
20
|
+
constructor(funcName: string, options?: {
|
|
17
21
|
historyEnabled: boolean;
|
|
18
22
|
isTabbed: boolean;
|
|
19
23
|
});
|
|
24
|
+
protected changeViewName(newName: string): void;
|
|
20
25
|
/**
|
|
21
26
|
* Get current function call of the view
|
|
22
27
|
* @returns The actual funccall associated with the view
|
|
23
28
|
* @stability Stable
|
|
24
29
|
*/
|
|
25
|
-
get funcCall(): DG.FuncCall
|
|
30
|
+
get funcCall(): DG.FuncCall;
|
|
26
31
|
/**
|
|
27
32
|
* Get Func of the view
|
|
28
33
|
* @returns The actual func associated with the view
|
|
29
34
|
* @stability Stable
|
|
30
35
|
*/
|
|
31
|
-
get func(): DG.Func
|
|
36
|
+
get func(): DG.Func;
|
|
32
37
|
/**
|
|
33
38
|
* Get data of last call of associated function
|
|
34
39
|
* @returns The actual func associated with the view
|
|
@@ -84,6 +89,7 @@ export declare abstract class FunctionView extends DG.ViewBase {
|
|
|
84
89
|
* @stability Stable
|
|
85
90
|
*/
|
|
86
91
|
linkFunccall(funcCall: DG.FuncCall): void;
|
|
92
|
+
protected loadFuncCallById(): Promise<void>;
|
|
87
93
|
/**
|
|
88
94
|
* Method for custom logic that could not be placed in the constructor.
|
|
89
95
|
* Any async methods and most of the logic should be placed here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-view.d.ts","sourceRoot":"","sources":["function-view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"function-view.d.ts","sourceRoot":"","sources":["function-view.ts"],"names":[],"mappings":"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"}
|
package/src/function-view.js
CHANGED
|
@@ -12,8 +12,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
12
12
|
import * as grok from 'datagrok-api/grok';
|
|
13
13
|
import * as ui from 'datagrok-api/ui';
|
|
14
14
|
import * as DG from 'datagrok-api/dg';
|
|
15
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
15
16
|
import { historyUtils } from './history-utils';
|
|
16
17
|
import { UiUtils } from './shared-components/ui-utils';
|
|
18
|
+
const url = new URL(grok.shell.startUri);
|
|
17
19
|
/**
|
|
18
20
|
* Decorator to pass all thrown errors to grok.shell.error
|
|
19
21
|
* @returns The actual funccall associated with the view
|
|
@@ -36,10 +38,15 @@ export const passErrorToShell = () => {
|
|
|
36
38
|
};
|
|
37
39
|
};
|
|
38
40
|
export class FunctionView extends DG.ViewBase {
|
|
39
|
-
constructor(
|
|
41
|
+
constructor(funcName, options = { historyEnabled: true, isTabbed: false }) {
|
|
40
42
|
super();
|
|
43
|
+
this.funcName = funcName;
|
|
41
44
|
this.options = options;
|
|
42
45
|
this._type = 'function';
|
|
46
|
+
// emitted when after a new FuncCall is linked
|
|
47
|
+
this.funcCallReplaced = new Subject();
|
|
48
|
+
// emitted when after an initial FuncCall is linked
|
|
49
|
+
this.onFuncCallReady = new BehaviorSubject(false);
|
|
43
50
|
/** Export options. Could be overriden partially, using default implementation of each option.
|
|
44
51
|
* @stability Stable
|
|
45
52
|
*/
|
|
@@ -57,9 +64,20 @@ export class FunctionView extends DG.ViewBase {
|
|
|
57
64
|
return ['Excel'];
|
|
58
65
|
};
|
|
59
66
|
this.box = true;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
67
|
+
this.onFuncCallReady.subscribe({
|
|
68
|
+
complete: () => {
|
|
69
|
+
this.changeViewName(this.funcCall.func.friendlyName);
|
|
70
|
+
this.build();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
this.linkFunccall(grok.functions.getCurrentCall());
|
|
74
|
+
this.init();
|
|
75
|
+
}
|
|
76
|
+
changeViewName(newName) {
|
|
77
|
+
var _a;
|
|
78
|
+
this.name = newName;
|
|
79
|
+
// FIX ME: view name does not change in models
|
|
80
|
+
(_a = document.querySelector('div.d4-ribbon-name')) === null || _a === void 0 ? void 0 : _a.replaceChildren(ui.span([newName]));
|
|
63
81
|
}
|
|
64
82
|
/**
|
|
65
83
|
* Get current function call of the view
|
|
@@ -106,23 +124,38 @@ export class FunctionView extends DG.ViewBase {
|
|
|
106
124
|
* @stability Stable
|
|
107
125
|
*/
|
|
108
126
|
linkFunccall(funcCall) {
|
|
109
|
-
var _a, _b, _c
|
|
127
|
+
var _a, _b, _c;
|
|
110
128
|
const isPreviousHistorical = (_a = this._funcCall) === null || _a === void 0 ? void 0 : _a.options['isHistorical'];
|
|
111
129
|
this._funcCall = funcCall;
|
|
112
|
-
if (
|
|
113
|
-
if (
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
130
|
+
if (!this.options.isTabbed) {
|
|
131
|
+
if (funcCall.options['isHistorical']) {
|
|
132
|
+
if (!isPreviousHistorical)
|
|
133
|
+
this.changeViewName(`${this.name} — ${(_b = funcCall.options['title']) !== null && _b !== void 0 ? _b : new Date(funcCall.started.toString()).toLocaleString('en-us', { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' })}`);
|
|
134
|
+
else
|
|
135
|
+
this.changeViewName(`${this.name.substring(0, (this.name.indexOf(' — ') > 0) ? this.name.indexOf(' — ') : undefined)} — ${(_c = funcCall.options['title']) !== null && _c !== void 0 ? _c : new Date(funcCall.started.toString()).toLocaleString('en-us', { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' })}`);
|
|
136
|
+
this.path = `?id=${this._funcCall.id}`;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.path = ``;
|
|
140
|
+
this.changeViewName(`${this.name.substring(0, (this.name.indexOf(' — ') > 0) ? this.name.indexOf(' — ') : undefined)}`);
|
|
141
|
+
}
|
|
124
142
|
}
|
|
125
|
-
this.
|
|
143
|
+
this.funcCallReplaced.next(true);
|
|
144
|
+
}
|
|
145
|
+
loadFuncCallById() {
|
|
146
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const runId = url.searchParams.get('id');
|
|
148
|
+
ui.setUpdateIndicator(this.root, true);
|
|
149
|
+
if (runId && !this.options.isTabbed) {
|
|
150
|
+
this.linkFunccall(yield this.loadRun(runId));
|
|
151
|
+
url.searchParams.delete('id');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const func = yield grok.functions.eval(this.funcName);
|
|
155
|
+
this.linkFunccall(func.prepare({}));
|
|
156
|
+
}
|
|
157
|
+
ui.setUpdateIndicator(this.root, false);
|
|
158
|
+
});
|
|
126
159
|
}
|
|
127
160
|
/**
|
|
128
161
|
* Method for custom logic that could not be placed in the constructor.
|
|
@@ -130,7 +163,10 @@ export class FunctionView extends DG.ViewBase {
|
|
|
130
163
|
* @stability Stable
|
|
131
164
|
*/
|
|
132
165
|
init() {
|
|
133
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
+
yield this.loadFuncCallById();
|
|
168
|
+
this.onFuncCallReady.complete();
|
|
169
|
+
});
|
|
134
170
|
}
|
|
135
171
|
/**
|
|
136
172
|
* Override to create a fully custom UI including ribbon menus and panels
|
|
@@ -142,6 +178,7 @@ export class FunctionView extends DG.ViewBase {
|
|
|
142
178
|
if (this.options.historyEnabled)
|
|
143
179
|
this.buildHistoryBlock();
|
|
144
180
|
this.buildRibbonMenu();
|
|
181
|
+
this.buildRibbonPanels();
|
|
145
182
|
}
|
|
146
183
|
/**
|
|
147
184
|
* Override to create a custom historical runs control.
|
|
@@ -285,6 +322,7 @@ export class FunctionView extends DG.ViewBase {
|
|
|
285
322
|
return __awaiter(this, void 0, void 0, function* () {
|
|
286
323
|
yield this.onBeforeLoadRun();
|
|
287
324
|
const pulledRun = yield historyUtils.loadRun(funcCallId);
|
|
325
|
+
this.lastCall = pulledRun;
|
|
288
326
|
yield this.onAfterLoadRun(pulledRun);
|
|
289
327
|
return pulledRun;
|
|
290
328
|
});
|
|
@@ -315,8 +353,9 @@ export class FunctionView extends DG.ViewBase {
|
|
|
315
353
|
yield this.funcCall.call(); // mutates the funcCall field
|
|
316
354
|
pi.close();
|
|
317
355
|
yield this.onAfterRun(this.funcCall);
|
|
318
|
-
|
|
356
|
+
if (!this.options.isTabbed)
|
|
357
|
+
this.lastCall = yield this.saveRun(this.funcCall);
|
|
319
358
|
});
|
|
320
359
|
}
|
|
321
360
|
}
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZ1bmN0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7SUFDbkMsT0FBTyxDQUFDLE1BQVcsRUFBRSxVQUFrQixFQUFFLFVBQThCLEVBQUUsRUFBRTtRQUN6RSxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRWxDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBZSxHQUFHLElBQVc7O2dCQUM5QyxJQUFJO29CQUNGLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2lCQUMzQztnQkFBQyxPQUFPLEdBQVEsRUFBRTtvQkFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUUsR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN6QyxNQUFNLEdBQUcsQ0FBQztpQkFDWDtZQUNILENBQUM7U0FBQSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFnQixZQUFhLFNBQVEsRUFBRSxDQUFDLFFBQVE7SUFLcEQsWUFDRSxRQUFzQixFQUNmLFVBQXdELEVBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFDO1FBRXRH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O0tBS0M7SUFFWSxPQUFPLENBQUMsVUFBa0I7O1lBQ3JDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6RCxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztLQUFBO0lBRUQ7Ozs7TUFJRTtJQUNXLFdBQVcsQ0FBQyxVQUF1Qjs4REFBRyxDQUFDO0tBQUE7SUFFcEQ7Ozs7T0FJRztJQUNVLFVBQVUsQ0FBQyxPQUFvQjs4REFBRyxDQUFDO0tBQUE7SUFFbkMsR0FBRzs7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBRWxGLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsNkJBQTZCO1lBQ3pELEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7S0FBQTtDQWlCRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZhbGlkLWpzZG9jICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtoaXN0b3J5VXRpbHN9IGZyb20gJy4vaGlzdG9yeS11dGlscyc7XG5pbXBvcnQge1VpVXRpbHN9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvdWktdXRpbHMnO1xuXG4vKipcbiAgICogRGVjb3JhdG9yIHRvIHBhc3MgYWxsIHRocm93biBlcnJvcnMgdG8gZ3Jvay5zaGVsbC5lcnJvclxuICAgKiBAcmV0dXJucyBUaGUgYWN0dWFsIGZ1bmNjYWxsIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmlld1xuICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY29uc3QgcGFzc0Vycm9yVG9TaGVsbCA9ICgpID0+IHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgbWVtYmVyTmFtZTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IGRlc2NyaXB0b3IudmFsdWU7XG5cbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbC5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcigoZXJyIGFzIEVycm9yKS5tZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnVuY3Rpb25WaWV3IGV4dGVuZHMgREcuVmlld0Jhc2Uge1xuICBwcm90ZWN0ZWQgX2Z1bmNDYWxsPzogREcuRnVuY0NhbGw7XG4gIHByb3RlY3RlZCBfbGFzdENhbGw/OiBERy5GdW5jQ2FsbDtcbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmcgPSAnZnVuY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZ1bmNDYWxsPzogREcuRnVuY0NhbGwsXG4gICAgcHVibGljIG9wdGlvbnM6IHtoaXN0b3J5RW5hYmxlZDogYm9vbGVhbiwgaXNUYWJiZWQ6IGJvb2xlYW59ID0ge2hpc3RvcnlFbmFibGVkOiB0cnVlLCBpc1RhYmJlZDogZmFsc2V9XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ib3ggPSB0cnVlO1xuXG4gICAgaWYgKCFmdW5jQ2FsbCkgcmV0dXJuO1xuICAgIHRoaXMubmFtZSA9IGZ1bmNDYWxsLmZ1bmMuZnJpZW5kbHlOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IGZ1bmN0aW9uIGNhbGwgb2YgdGhlIHZpZXdcbiAgICogQHJldHVybnMgVGhlIGFjdHVhbCBmdW5jY2FsbCBhc3NvY2lhdGVkIHdpdGggdGhlIHZpZXdcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgZ2V0IGZ1bmNDYWxsKCk6IERHLkZ1bmNDYWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZnVuY0NhbGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEZ1bmMgb2YgdGhlIHZpZXdcbiAgICogQHJldHVybnMgVGhlIGFjdHVhbCBmdW5jIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmlld1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIGdldCBmdW5jKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bmNDYWxsPy5mdW5jO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIG9mIGxhc3QgY2FsbCBvZiBhc3NvY2lhdGVkIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBhY3R1YWwgZnVuYyBhc3NvY2lhdGVkIHdpdGggdGhlIHZpZXdcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBnZXQgbGFzdENhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhc3RDYWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkYXRhIG9mIGxhc3QgY2FsbCBvZiBhc3NvY2lhdGVkIGZ1bmN0aW9uXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgc2V0IGxhc3RDYWxsKGxhc3RDYWxsOiBERy5GdW5jQ2FsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2xhc3RDYWxsID0gbGFzdENhbGw7XG4gIH1cblxuICAvKipcbiAgICogVmlldyB0eXBlXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICAvKiogRXhwb3J0IG9wdGlvbnMuIENvdWxkIGJlIG92ZXJyaWRlbiBwYXJ0aWFsbHksIHVzaW5nIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgZWFjaCBvcHRpb24uXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBleHBvcnRDb25maWc6IHtcbiAgICAvKiogT3ZlcnJpZGUgdG8gcHJvdmlkZSBjdXN0b20gZXhwb3J0IGxvZ2ljLlxuICAgICAgKlxuICAgICAgKiAgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB7QGxpbmsgZGVmYXVsdEV4cG9ydH0gaGVhdmlseSByZWxpZXMgb24gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2Yge0BsaW5rIGJ1aWxkSU99LlxuICAgICAgKiBAcmV0dXJucyBCbG9iIHdpdGggZGF0YSB0byBiZSBleHBvcnRlZCBpbnRvIHRoZSBmaWxlLlxuICAgICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAgICovXG4gICAgZXhwb3J0OiAoKGZvcm1hdDogc3RyaW5nKSA9PiBQcm9taXNlPEJsb2I+KTtcblxuXG4gICAgLyoqIEZpbGVuYW1lIGZvciBleHBvcnRlZCBmaWxlcy4gT3ZlcnJpZGUgZm9yIGN1c3RvbSBmaWxlbmFtZXMuXG4gICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMge0BsaW5rIGRlZmF1bHRFeHBvcnRGaWxlbmFtZX1cbiAgICAgICogQHBhcmFtIGZvcm1hdCBGb3JtYXQgbmFtZSB0byBiZSBleHBvcnRlZFxuICAgICAgKiBAcmV0dXJucyBUaGUgYWN0dWFsIGZpbGVuYW1lIHRvIGJlIHVzZWQgZm9yIHRoZSBnZW5lcmF0ZWQgZmlsZS5cbiAgICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgICAqL1xuICAgIGZpbGVuYW1lOiAoKGZvcm1hdDogc3RyaW5nKSA9PiBzdHJpbmcpO1xuXG4gICAgLyoqIE92ZXJyaWRlIHRvIHByb3ZpZGUgY3VzdG9tIGxpc3Qgb2Ygc3VwcG9ydGVkIGV4cG9ydCBmb3JtYXRzLlxuICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMge0BsaW5rIGRlZmF1bHRTdXBwb3J0ZWRFeHBvcnRGb3JtYXRzfVxuICAgICAqIFRoZXNlIGZvcm1hdHMgYXJlIGF2YWlsYWJsZSB1bmRlciB0aGUgXCJFeHBvcnRcIiBwb3B1cCBvbiB0aGUgcmliYm9uIHBhbmVsLlxuICAgICAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiBmb3JtYXRzIGF2YWlsYWJsZSBmb3IgdGhlIGV4cG9ydC5cbiAgICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAgICovXG4gICAgc3VwcG9ydGVkRm9ybWF0czogc3RyaW5nW107XG5cbiAgICAvKiogT3ZlcnJpZGUgdG8gcHJvdmlkZSBjdXN0b20gZmlsZSBleHRlbnNpb25zIGZvciBleHBvcnRlZCBmb3JtYXRzLlxuICAgICAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB7QGxpbmsgZGVmYXVsdFN1cHBvcnRlZEV4cG9ydEV4dGVuc2lvbnN9XG4gICAgICAgKiBUaGVzZSBleHRlbnNpb25zIGFyZSB1c2VkIGluIGZpbGVuYW1lcyB7QGxpbmsgZXhwb3J0RmlsZW5hbWV9LlxuICAgICAgICogQHJldHVybnMgVGhlIG1hcHBpbmcgYmV0d2VlbiBzdXBwb3J0ZWQgZXhwb3J0IGZvcm1hdHMgYW5kIHRoZWlyIGV4dGVuc2lvbnMuXG4gICAgICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAgICAqL1xuICAgIHN1cHBvcnRlZEV4dGVuc2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIH0gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTGluayBGdW5jQ2FsbCB0byB0aGUgdmlld1xuICAgKiBAcGFyYW0gZnVuY0NhbGwgVGhlIGFjdHVhbCBmdW5jY2FsbCB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHZpZXdcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgbGlua0Z1bmNjYWxsKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIGNvbnN0IGlzUHJldmlvdXNIaXN0b3JpY2FsID0gdGhpcy5fZnVuY0NhbGw/Lm9wdGlvbnNbJ2lzSGlzdG9yaWNhbCddO1xuICAgIHRoaXMuX2Z1bmNDYWxsID0gZnVuY0NhbGw7XG5cbiAgICBpZiAoZnVuY0NhbGwub3B0aW9uc1snaXNIaXN0b3JpY2FsJ10pIHtcbiAgICAgIGlmICghaXNQcmV2aW91c0hpc3RvcmljYWwpXG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZX0g4oCUICR7ZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyBuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KX1gO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWUuc3Vic3RyaW5nKDAsIHRoaXMubmFtZS5pbmRleE9mKCcg4oCUICcpKX0g4oCUICR7ZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyBuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KX1gO1xuXG5cbiAgICAgIC8vIEZJWCBNRTogdmlldyBuYW1lIGRvZXMgbm90IGNoYW5nZSBpbiBtb2RlbHNcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5kNC1yaWJib24tbmFtZScpPy5yZXBsYWNlQ2hpbGRyZW4odWkuc3BhbihbdGhpcy5uYW1lXSkpO1xuICAgICAgdGhpcy5wYXRoID0gYD9pZD0ke3RoaXMuX2Z1bmNDYWxsLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGF0aCA9IGBgO1xuXG4gICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWUuc3Vic3RyaW5nKDAsICh0aGlzLm5hbWUuaW5kZXhPZignIOKAlCAnKSA+IDApID8gdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykgOiB1bmRlZmluZWQpfWA7XG4gICAgfVxuICAgIHRoaXMuYnVpbGRSaWJib25QYW5lbHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZm9yIGN1c3RvbSBsb2dpYyB0aGF0IGNvdWxkIG5vdCBiZSBwbGFjZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgKiBBbnkgYXN5bmMgbWV0aG9kcyBhbmQgbW9zdCBvZiB0aGUgbG9naWMgc2hvdWxkIGJlIHBsYWNlZCBoZXJlLlxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBpbml0KCkge31cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdG8gY3JlYXRlIGEgZnVsbHkgY3VzdG9tIFVJIGluY2x1ZGluZyByaWJib24gbWVudXMgYW5kIHBhbmVsc1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBidWlsZCgpOiB2b2lkIHtcbiAgICB1aS5lbXB0eSh0aGlzLnJvb3QpO1xuICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLmJ1aWxkSU8oKSk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmhpc3RvcnlFbmFibGVkKSB0aGlzLmJ1aWxkSGlzdG9yeUJsb2NrKCk7XG4gICAgdGhpcy5idWlsZFJpYmJvbk1lbnUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0byBjcmVhdGUgYSBjdXN0b20gaW5wdXQtb3V0cHV0IGJsb2NrXG4gICAqIEByZXR1cm5zIFRoZSBIVE1MRWxlbWVudCB3aXRoIHdob2xlIFVJIGV4Y2x1ZGluZyByaWJib24gbWVudXMgYW5kIHBhbmVsc1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBidWlsZElPKCk6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0byBjcmVhdGUgYSBjdXN0b20gaGlzdG9yaWNhbCBydW5zIGNvbnRyb2wuXG4gICAqIEByZXR1cm5zIFRoZSBIVE1MRWxlbWVudCB3aXRoIGhpc3RvcnkgYmxvY2sgVUlcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYnVpbGRIaXN0b3J5QmxvY2soKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IG5ld0hpc3RvcnlCbG9jayA9IFVpVXRpbHMuaGlzdG9yeVBhbmVsKHRoaXMuZnVuYyEpO1xuXG4gICAgbmV3SGlzdG9yeUJsb2NrLm9uUnVuQ2hvc2VuLnN1YnNjcmliZShhc3luYyAoaWQpID0+IHRoaXMubGlua0Z1bmNjYWxsKGF3YWl0IHRoaXMubG9hZFJ1bihpZCkpKTtcblxuICAgIHVpLmVtcHR5KHRoaXMuaGlzdG9yeVJvb3QpO1xuICAgIHRoaXMuaGlzdG9yeVJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2p1c3RpZnktY29udGVudCcpO1xuICAgIHRoaXMuaGlzdG9yeVJvb3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5oaXN0b3J5Um9vdC5hcHBlbmQobmV3SGlzdG9yeUJsb2NrLnJvb3QpO1xuICAgIHJldHVybiBuZXdIaXN0b3J5QmxvY2sucm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyBmb3Ige0BsaW5rIHN1cHBvcnRlZEV4cG9ydEZvcm1hdHN9IG1lbWJlcnMgYW5kIGNyZWF0ZXMgcmliYm9uIHBhbmVsXG4gICAqIEByZXR1cm5zIFRoZSBIVE1MRWxlbWVudHMgb2YgcmliYm9uUGFuZWxzXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgYnVpbGRSaWJib25QYW5lbHMoKTogSFRNTEVsZW1lbnRbXVtdIHtcbiAgICBjb25zdCBuZXdSaWJib25QYW5lbHM6IEhUTUxFbGVtZW50W11bXSA9IFtcbiAgICAgIFsuLi4odGhpcy5leHBvcnRDb25maWcgJiYgdGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cy5sZW5ndGggPiAwKSA/IFt1aS5kaXZIKFtcbiAgICAgICAgdWkuY29tYm9Qb3B1cChcbiAgICAgICAgICB1aS5pY29uRkEoJ2Fycm93LXRvLWJvdHRvbScpLFxuICAgICAgICAgIHRoaXMuZXhwb3J0Q29uZmlnLnN1cHBvcnRlZEZvcm1hdHMsXG4gICAgICAgICAgYXN5bmMgKGZvcm1hdDogc3RyaW5nKSA9PiBERy5VdGlscy5kb3dubG9hZCh0aGlzLmV4cG9ydENvbmZpZyEuZmlsZW5hbWUoZm9ybWF0KSwgYXdhaXQgdGhpcy5leHBvcnRDb25maWchLmV4cG9ydChmb3JtYXQpKSksXG4gICAgICBdKV06IFtdXG4gICAgICBdXTtcblxuICAgIGlmICh0aGlzLmZ1bmM/LmlkKSB7XG4gICAgICBjb25zdCBoaXN0b3J5QnV0dG9uID0gdWkuaWNvbkZBKCdoaXN0b3J5JywgKCkgPT4ge1xuICAgICAgICBncm9rLnNoZWxsLndpbmRvd3Muc2hvd1Byb3BlcnRpZXMgPSAhZ3Jvay5zaGVsbC53aW5kb3dzLnNob3dQcm9wZXJ0aWVzO1xuICAgICAgICBoaXN0b3J5QnV0dG9uLmNsYXNzTGlzdC50b2dnbGUoJ2Q0LWN1cnJlbnQnKTtcbiAgICAgICAgZ3Jvay5zaGVsbC5vID0gdGhpcy5oaXN0b3J5Um9vdDtcbiAgICAgIH0pO1xuXG4gICAgICBoaXN0b3J5QnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2Q0LXRvZ2dsZS1idXR0b24nKTtcbiAgICAgIGlmIChncm9rLnNoZWxsLndpbmRvd3Muc2hvd1Byb3BlcnRpZXMpIGhpc3RvcnlCdXR0b24uY2xhc3NMaXN0LmFkZCgnZDQtY3VycmVudCcpO1xuXG4gICAgICBuZXdSaWJib25QYW5lbHMucHVzaChbXG4gICAgICAgIGhpc3RvcnlCdXR0b25cbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0UmliYm9uUGFuZWxzKG5ld1JpYmJvblBhbmVscyk7XG4gICAgcmV0dXJuIG5ld1JpYmJvblBhbmVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0byBjcmVhdGUgYSBjdXN0b20gcmliYm9uIG1lbnUgb24gdGhlIHRvcC5cbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYnVpbGRSaWJib25NZW51KCkge1xuXG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJlZm9yZSBzYXZpbmcgdGhlIEZVbmNDYWxsIHJlc3VsdHMgdG8gdGhlIGhpc3RvcmljYWwgcmVzdWx0cywgcmV0dXJucyB0aGUgc2F2ZWQgY2FsbC4gU2VlIGFsc28ge0BsaW5rIHNhdmVSdW59LlxuICAgKiBAcGFyYW0gY2FsbFRvU2F2ZSBGdW5jQ2FsbCBvYmplY3QgdG8gc2F2ZVxuICAgKiBAcmV0dXJucyBTYXZlZCBGdW5jQ2FsbFxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBvbkJlZm9yZVNhdmVSdW4oY2FsbFRvU2F2ZTogREcuRnVuY0NhbGwpIHsgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgY29tcHV0YXRpb24gcmVzdWx0cyB0byB0aGUgaGlzdG9yaWNhbCByZXN1bHRzLCByZXR1cm5zIHRoZSBzYXZlZCBjYWxsLiBTZWUgYWxzbyB7QGxpbmsgc2F2ZVJ1bn0uXG4gICAqIEBwYXJhbSBzYXZlZENhbGwgRnVuY0NhbGwgb2JqZWN0IHRvIHNhdmVcbiAgICogQHJldHVybnMgU2F2ZWQgRnVuY0NhbGxcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYXN5bmMgb25BZnRlclNhdmVSdW4oc2F2ZWRDYWxsOiBERy5GdW5jQ2FsbCkgeyB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBjb21wdXRhdGlvbiByZXN1bHRzIHRvIHRoZSBoaXN0b3JpY2FsIHJlc3VsdHMsIHJldHVybnMgdGhlIHNhdmVkIGNhbGwuIFNlZSBhbHNvIHtAbGluayBsb2FkUnVufS5cbiAgICogQHBhcmFtIGNhbGxUb1NhdmUgRnVuY0NhbGwgb2JqZWN0IHRvIHNhdmVcbiAgICogQHJldHVybnMgU2F2ZWQgRnVuY0NhbGxcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVJ1bihjYWxsVG9TYXZlOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8REcuRnVuY0NhbGw+IHtcbiAgICBhd2FpdCB0aGlzLm9uQmVmb3JlU2F2ZVJ1bihjYWxsVG9TYXZlKTtcbiAgICBjb25zdCBzYXZlZENhbGwgPSBhd2FpdCBoaXN0b3J5VXRpbHMuc2F2ZVJ1bihjYWxsVG9TYXZlKTtcbiAgICBzYXZlZENhbGwub3B0aW9uc1snaXNIaXN0b3JpY2FsJ10gPSBmYWxzZTtcbiAgICB0aGlzLmxpbmtGdW5jY2FsbChzYXZlZENhbGwpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaGlzdG9yeUVuYWJsZWQpIHRoaXMuYnVpbGRIaXN0b3J5QmxvY2soKTtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5pc1RhYmJlZCkgdGhpcy5wYXRoID0gYD9pZD0ke3NhdmVkQ2FsbC5pZH1gO1xuICAgIGF3YWl0IHRoaXMub25BZnRlclNhdmVSdW4oc2F2ZWRDYWxsKTtcbiAgICByZXR1cm4gc2F2ZWRDYWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBiZWZvcmUgZGVsZXRpbmcgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgZnJvbSBoaXN0b3J5LCByZXR1cm5zIGl0cyBpZC4gU2VlIGFsc28ge0BsaW5rIGxvYWRSdW59LlxuICAgKiBAcGFyYW0gY2FsbFRvRGVsZXRlIEZ1bmNDYWxsIG9iamVjdCB0byBiZSBkZWxldGVkXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFzeW5jIG9uQmVmb3JlRGVsZXRlUnVuKGNhbGxUb0RlbGV0ZTogREcuRnVuY0NhbGwpIHsgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgZGVsZXRpbmcgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgZnJvbSBoaXN0b3J5LCByZXR1cm5zIGl0cyBpZC4gU2VlIGFsc28ge0BsaW5rIGxvYWRSdW59LlxuICAgKiBAcGFyYW0gZGVsZXRlZENhbGwgZGVsZXRlZCBGdW5jQ2FsbCB2YWx1ZVxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBvbkFmdGVyRGVsZXRlUnVuKGRlbGV0ZWRDYWxsOiBERy5GdW5jQ2FsbCkgeyB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgZnJvbSBoaXN0b3J5LCByZXR1cm5zIGl0cyBpZC4gU2VlIGFsc28ge0BsaW5rIGxvYWRSdW59LlxuICAgKiBAcGFyYW0gY2FsbFRvRGVsZXRlIEZ1bmNDYWxsIG9iamVjdCB0byBkZWxldGVcbiAgICogQHJldHVybnMgSUQgb2YgZGVsZXRlZCBoaXN0b3JpY2FsIHJ1blxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVJ1bihjYWxsVG9EZWxldGU6IERHLkZ1bmNDYWxsKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBhd2FpdCB0aGlzLm9uQmVmb3JlRGVsZXRlUnVuKGNhbGxUb0RlbGV0ZSk7XG4gICAgYXdhaXQgaGlzdG9yeVV0aWxzLmRlbGV0ZVJ1bihjYWxsVG9EZWxldGUpO1xuICAgIGF3YWl0IHRoaXMub25BZnRlckRlbGV0ZVJ1bihjYWxsVG9EZWxldGUpO1xuICAgIHJldHVybiBjYWxsVG9EZWxldGUuaWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJlZm9yZSBmZXRjaGluZyB0aGUgaGlzdG9yaWNhbCBydW4gZGF0YSBpbiB7QGxpbmsgbG9hZFJ1bn0uXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFzeW5jIG9uQmVmb3JlTG9hZFJ1bigpIHt9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBhZnRlciBmZXRjaGluZyB0aGUgaGlzdG9yaWNhbCBydW4gZGF0YSBpbiB7QGxpbmsgbG9hZFJ1bn0uXG4gICAqIEBwYXJhbSBmdW5jQ2FsbCBGdW5jQ2FsbCBmZXRjaGVkIGZyb20gc2VydmVyIGR1cmluZyB7QGxpbmsgbG9hZFJ1bn1cbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYXN5bmMgb25BZnRlckxvYWRSdW4oZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7fVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgc3BlY2lmaWVkIGhpc3RvcmljYWwgcnVuLiBTZWUgYWxzbyB7QGxpbmsgc2F2ZVJ1bn0uXG4gICAqIEBwYXJhbSBmdW5jQ2FsbElkIElEIG9mIEZ1bmNDYWxsIHRvIGxvb2sgZm9yLiBHZXQgaXQgdXNpbmcge0BzZWUgZnVuY0NhbGwuaWR9IGZpZWxkXG4gICAqIEByZXR1cm5zIEZ1bmNDYWxsIGF1Z2VtZW50ZWQgd2l0aCBpbnB1dHMnIGFuZCBvdXRwdXRzJyB2YWx1ZXNcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuXG4gIHB1YmxpYyBhc3luYyBsb2FkUnVuKGZ1bmNDYWxsSWQ6IHN0cmluZyk6IFByb21pc2U8REcuRnVuY0NhbGw+IHtcbiAgICBhd2FpdCB0aGlzLm9uQmVmb3JlTG9hZFJ1bigpO1xuICAgIGNvbnN0IHB1bGxlZFJ1biA9IGF3YWl0IGhpc3RvcnlVdGlscy5sb2FkUnVuKGZ1bmNDYWxsSWQpO1xuICAgIGF3YWl0IHRoaXMub25BZnRlckxvYWRSdW4ocHVsbGVkUnVuKTtcbiAgICByZXR1cm4gcHVsbGVkUnVuO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBiZWZvcmUgYWN0dWFsIGNvbXB1dGF0aW9ucyBhcmUgbWFkZSB7QGxpbmsgcnVufS5cbiAgICogQHBhcmFtIGZ1bmNUb0NhbGwgRnVuY0NhbGwgb2JqZWN0IHRvIGJlIGNhbGxlZCB7QHNlZSBERy5GdW5jQ2FsbC5jYWxsKCl9XG4gICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIHB1YmxpYyBhc3luYyBvbkJlZm9yZVJ1bihmdW5jVG9DYWxsOiBERy5GdW5jQ2FsbCkge31cblxuICAvKipcbiAgICAqIENhbGxlZCBhZnRlciBhY3R1YWwgY29tcHV0YXRpb25zIGFyZSBtYWRlIHtAbGluayBydW59LlxuICAgICogQHBhcmFtIHJ1bkZ1bmMgRnVuY0NhbGwgb2JqZWN0IGFmdGVyIGNhbGwgbWV0aG9kIHtAc2VlIERHLkZ1bmNDYWxsLmNhbGwoKX1cbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgb25BZnRlclJ1bihydW5GdW5jOiBERy5GdW5jQ2FsbCkge31cblxuICBwdWJsaWMgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5mdW5jQ2FsbCkgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29ycmVzcG9kaW5nIGZ1bmN0aW9uIGlzIG5vdCBzcGVjaWZpZWQnKTtcblxuICAgIGF3YWl0IHRoaXMub25CZWZvcmVSdW4odGhpcy5mdW5jQ2FsbCk7XG4gICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdDYWxjdWxhdGluZy4uLicpO1xuICAgIHRoaXMuZnVuY0NhbGwubmV3SWQoKTtcbiAgICBhd2FpdCB0aGlzLmZ1bmNDYWxsLmNhbGwoKTsgLy8gbXV0YXRlcyB0aGUgZnVuY0NhbGwgZmllbGRcbiAgICBwaS5jbG9zZSgpO1xuICAgIGF3YWl0IHRoaXMub25BZnRlclJ1bih0aGlzLmZ1bmNDYWxsKTtcbiAgICB0aGlzLmxhc3RDYWxsID0gYXdhaXQgdGhpcy5zYXZlUnVuKHRoaXMuZnVuY0NhbGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpc3RvcnlSb290OiBIVE1MRGl2RWxlbWVudCA9IHVpLmRpdlYoW10sIHtzdHlsZTogeydqdXN0aWZ5LWNvbnRlbnQnOiAnY2VudGVyJ319KTtcblxuICBwcm90ZWN0ZWQgZGVmYXVsdEV4cG9ydEZpbGVuYW1lID0gKGZvcm1hdDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGAke3RoaXMubmFtZX0gLSAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJykucmVwbGFjZUFsbCgvOnxcXC8vZywgJy0nKX0uJHt0aGlzLmV4cG9ydENvbmZpZyEuc3VwcG9ydGVkRXh0ZW5zaW9uc1tmb3JtYXRdfWA7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRTdXBwb3J0ZWRFeHBvcnRFeHRlbnNpb25zOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAnRXhjZWwnOiAneGxzeCdcbiAgICB9O1xuICB9O1xuXG4gIHByb3RlY3RlZCBkZWZhdWx0U3VwcG9ydGVkRXhwb3J0Rm9ybWF0cyA9ICgpID0+IHtcbiAgICByZXR1cm4gWydFeGNlbCddO1xuICB9O1xufVxuIl19
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZ1bmN0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtJQUNuQyxPQUFPLENBQUMsTUFBVyxFQUFFLFVBQWtCLEVBQUUsVUFBOEIsRUFBRSxFQUFFO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFbEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFlLEdBQUcsSUFBVzs7Z0JBQzlDLElBQUk7b0JBQ0YsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7aUJBQzNDO2dCQUFDLE9BQU8sR0FBUSxFQUFFO29CQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBRSxHQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sR0FBRyxDQUFDO2lCQUNYO1lBQ0gsQ0FBQztTQUFBLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENB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QUFDLENBQUM7WUFFbEYsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyw2QkFBNkI7WUFDekQsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0NBaUJGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge1N1YmplY3QsIEJlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2hpc3RvcnlVdGlsc30gZnJvbSAnLi9oaXN0b3J5LXV0aWxzJztcbmltcG9ydCB7VWlVdGlsc30gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy91aS11dGlscyc7XG5cbmNvbnN0IHVybCA9IG5ldyBVUkwoZ3Jvay5zaGVsbC5zdGFydFVyaSk7XG4vKipcbiAgICogRGVjb3JhdG9yIHRvIHBhc3MgYWxsIHRocm93biBlcnJvcnMgdG8gZ3Jvay5zaGVsbC5lcnJvclxuICAgKiBAcmV0dXJucyBUaGUgYWN0dWFsIGZ1bmNjYWxsIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmlld1xuICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY29uc3QgcGFzc0Vycm9yVG9TaGVsbCA9ICgpID0+IHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgbWVtYmVyTmFtZTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IGRlc2NyaXB0b3IudmFsdWU7XG5cbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbC5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcigoZXJyIGFzIEVycm9yKS5tZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnVuY3Rpb25WaWV3IGV4dGVuZHMgREcuVmlld0Jhc2Uge1xuICBwcm90ZWN0ZWQgX2Z1bmNDYWxsPzogREcuRnVuY0NhbGw7XG4gIHByb3RlY3RlZCBfbGFzdENhbGw/OiBERy5GdW5jQ2FsbDtcbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmcgPSAnZnVuY3Rpb24nO1xuXG4gIC8vIGVtaXR0ZWQgd2hlbiBhZnRlciBhIG5ldyBGdW5jQ2FsbCBpcyBsaW5rZWRcbiAgcHJvdGVjdGVkIGZ1bmNDYWxsUmVwbGFjZWQgPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuXG4gIC8vIGVtaXR0ZWQgd2hlbiBhZnRlciBhbiBpbml0aWFsIEZ1bmNDYWxsIGlzIGxpbmtlZFxuICBwdWJsaWMgb25GdW5jQ2FsbFJlYWR5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxmYWxzZT4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmdW5jTmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBvcHRpb25zOiB7aGlzdG9yeUVuYWJsZWQ6IGJvb2xlYW4sIGlzVGFiYmVkOiBib29sZWFufSA9IHtoaXN0b3J5RW5hYmxlZDogdHJ1ZSwgaXNUYWJiZWQ6IGZhbHNlfVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYm94ID0gdHJ1ZTtcblxuICAgIHRoaXMub25GdW5jQ2FsbFJlYWR5LnN1YnNjcmliZSh7XG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYW5nZVZpZXdOYW1lKHRoaXMuZnVuY0NhbGwuZnVuYy5mcmllbmRseU5hbWUpO1xuICAgICAgICB0aGlzLmJ1aWxkKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmxpbmtGdW5jY2FsbChncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VWaWV3TmFtZShuZXdOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuZXdOYW1lO1xuXG4gICAgLy8gRklYIE1FOiB2aWV3IG5hbWUgZG9lcyBub3QgY2hhbmdlIGluIG1vZGVsc1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5kNC1yaWJib24tbmFtZScpPy5yZXBsYWNlQ2hpbGRyZW4odWkuc3BhbihbbmV3TmFtZV0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBmdW5jdGlvbiBjYWxsIG9mIHRoZSB2aWV3XG4gICAqIEByZXR1cm5zIFRoZSBhY3R1YWwgZnVuY2NhbGwgYXNzb2NpYXRlZCB3aXRoIHRoZSB2aWV3XG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGdldCBmdW5jQ2FsbCgpOiBERy5GdW5jQ2FsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Z1bmNDYWxsITtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgRnVuYyBvZiB0aGUgdmlld1xuICAgKiBAcmV0dXJucyBUaGUgYWN0dWFsIGZ1bmMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2aWV3XG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgZ2V0IGZ1bmMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY0NhbGw/LmZ1bmM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRhdGEgb2YgbGFzdCBjYWxsIG9mIGFzc29jaWF0ZWQgZnVuY3Rpb25cbiAgICogQHJldHVybnMgVGhlIGFjdHVhbCBmdW5jIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmlld1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIGdldCBsYXN0Q2FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFzdENhbGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRhdGEgb2YgbGFzdCBjYWxsIG9mIGFzc29jaWF0ZWQgZnVuY3Rpb25cbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBzZXQgbGFzdENhbGwobGFzdENhbGw6IERHLkZ1bmNDYWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbGFzdENhbGwgPSBsYXN0Q2FsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWaWV3IHR5cGVcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIC8qKiBFeHBvcnQgb3B0aW9ucy4gQ291bGQgYmUgb3ZlcnJpZGVuIHBhcnRpYWxseSwgdXNpbmcgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBlYWNoIG9wdGlvbi5cbiAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIGV4cG9ydENvbmZpZzoge1xuICAgIC8qKiBPdmVycmlkZSB0byBwcm92aWRlIGN1c3RvbSBleHBvcnQgbG9naWMuXG4gICAgICAqXG4gICAgICAqICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIHtAbGluayBkZWZhdWx0RXhwb3J0fSBoZWF2aWx5IHJlbGllcyBvbiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgYnVpbGRJT30uXG4gICAgICAqIEByZXR1cm5zIEJsb2Igd2l0aCBkYXRhIHRvIGJlIGV4cG9ydGVkIGludG8gdGhlIGZpbGUuXG4gICAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICAgKi9cbiAgICBleHBvcnQ6ICgoZm9ybWF0OiBzdHJpbmcpID0+IFByb21pc2U8QmxvYj4pO1xuXG5cbiAgICAvKiogRmlsZW5hbWUgZm9yIGV4cG9ydGVkIGZpbGVzLiBPdmVycmlkZSBmb3IgY3VzdG9tIGZpbGVuYW1lcy5cbiAgICAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB7QGxpbmsgZGVmYXVsdEV4cG9ydEZpbGVuYW1lfVxuICAgICAgKiBAcGFyYW0gZm9ybWF0IEZvcm1hdCBuYW1lIHRvIGJlIGV4cG9ydGVkXG4gICAgICAqIEByZXR1cm5zIFRoZSBhY3R1YWwgZmlsZW5hbWUgdG8gYmUgdXNlZCBmb3IgdGhlIGdlbmVyYXRlZCBmaWxlLlxuICAgICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAgICovXG4gICAgZmlsZW5hbWU6ICgoZm9ybWF0OiBzdHJpbmcpID0+IHN0cmluZyk7XG5cbiAgICAvKiogT3ZlcnJpZGUgdG8gcHJvdmlkZSBjdXN0b20gbGlzdCBvZiBzdXBwb3J0ZWQgZXhwb3J0IGZvcm1hdHMuXG4gICAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB7QGxpbmsgZGVmYXVsdFN1cHBvcnRlZEV4cG9ydEZvcm1hdHN9XG4gICAgICogVGhlc2UgZm9ybWF0cyBhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBcIkV4cG9ydFwiIHBvcHVwIG9uIHRoZSByaWJib24gcGFuZWwuXG4gICAgICogQHJldHVybnMgVGhlIGFycmF5IG9mIGZvcm1hdHMgYXZhaWxhYmxlIGZvciB0aGUgZXhwb3J0LlxuICAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICAgKi9cbiAgICBzdXBwb3J0ZWRGb3JtYXRzOiBzdHJpbmdbXTtcblxuICAgIC8qKiBPdmVycmlkZSB0byBwcm92aWRlIGN1c3RvbSBmaWxlIGV4dGVuc2lvbnMgZm9yIGV4cG9ydGVkIGZvcm1hdHMuXG4gICAgICAgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIHtAbGluayBkZWZhdWx0U3VwcG9ydGVkRXhwb3J0RXh0ZW5zaW9uc31cbiAgICAgICAqIFRoZXNlIGV4dGVuc2lvbnMgYXJlIHVzZWQgaW4gZmlsZW5hbWVzIHtAbGluayBleHBvcnRGaWxlbmFtZX0uXG4gICAgICAgKiBAcmV0dXJucyBUaGUgbWFwcGluZyBiZXR3ZWVuIHN1cHBvcnRlZCBleHBvcnQgZm9ybWF0cyBhbmQgdGhlaXIgZXh0ZW5zaW9ucy5cbiAgICAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICAgICovXG4gICAgc3VwcG9ydGVkRXh0ZW5zaW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgfSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBMaW5rIEZ1bmNDYWxsIHRvIHRoZSB2aWV3XG4gICAqIEBwYXJhbSBmdW5jQ2FsbCBUaGUgYWN0dWFsIGZ1bmNjYWxsIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmlld1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBsaW5rRnVuY2NhbGwoZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7XG4gICAgY29uc3QgaXNQcmV2aW91c0hpc3RvcmljYWwgPSB0aGlzLl9mdW5jQ2FsbD8ub3B0aW9uc1snaXNIaXN0b3JpY2FsJ107XG4gICAgdGhpcy5fZnVuY0NhbGwgPSBmdW5jQ2FsbDtcblxuICAgIGlmICghdGhpcy5vcHRpb25zLmlzVGFiYmVkKSB7XG4gICAgICBpZiAoZnVuY0NhbGwub3B0aW9uc1snaXNIaXN0b3JpY2FsJ10pIHtcbiAgICAgICAgaWYgKCFpc1ByZXZpb3VzSGlzdG9yaWNhbClcbiAgICAgICAgICB0aGlzLmNoYW5nZVZpZXdOYW1lKGAke3RoaXMubmFtZX0g4oCUICR7ZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyBuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KX1gKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRoaXMuY2hhbmdlVmlld05hbWUoYCR7dGhpcy5uYW1lLnN1YnN0cmluZygwLCAodGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykgPiAwKSA/IHRoaXMubmFtZS5pbmRleE9mKCcg4oCUICcpIDogdW5kZWZpbmVkKX0g4oCUICR7ZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyBuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KX1gKTtcbiAgICAgICAgdGhpcy5wYXRoID0gYD9pZD0ke3RoaXMuX2Z1bmNDYWxsIS5pZH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXRoID0gYGA7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VWaWV3TmFtZShgJHt0aGlzLm5hbWUuc3Vic3RyaW5nKDAsICh0aGlzLm5hbWUuaW5kZXhPZignIOKAlCAnKSA+IDApID8gdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykgOiB1bmRlZmluZWQpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWRGdW5jQ2FsbEJ5SWQoKSB7XG4gICAgY29uc3QgcnVuSWQgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIHRydWUpO1xuXG4gICAgaWYgKHJ1bklkICYmICF0aGlzLm9wdGlvbnMuaXNUYWJiZWQpIHtcbiAgICAgIHRoaXMubGlua0Z1bmNjYWxsKGF3YWl0IHRoaXMubG9hZFJ1bihydW5JZCkpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoJ2lkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZ1bmM6IERHLkZ1bmMgPSBhd2FpdCBncm9rLmZ1bmN0aW9ucy5ldmFsKHRoaXMuZnVuY05hbWUpO1xuICAgICAgdGhpcy5saW5rRnVuY2NhbGwoZnVuYy5wcmVwYXJlKHt9KSk7XG4gICAgfVxuXG4gICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMucm9vdCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBmb3IgY3VzdG9tIGxvZ2ljIHRoYXQgY291bGQgbm90IGJlIHBsYWNlZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAqIEFueSBhc3luYyBtZXRob2RzIGFuZCBtb3N0IG9mIHRoZSBsb2dpYyBzaG91bGQgYmUgcGxhY2VkIGhlcmUuXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFzeW5jIGluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkRnVuY0NhbGxCeUlkKCk7XG5cbiAgICB0aGlzLm9uRnVuY0NhbGxSZWFkeS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRvIGNyZWF0ZSBhIGZ1bGx5IGN1c3RvbSBVSSBpbmNsdWRpbmcgcmliYm9uIG1lbnVzIGFuZCBwYW5lbHNcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYnVpbGQoKTogdm9pZCB7XG4gICAgdWkuZW1wdHkodGhpcy5yb290KTtcbiAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5idWlsZElPKCkpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5oaXN0b3J5RW5hYmxlZCkgdGhpcy5idWlsZEhpc3RvcnlCbG9jaygpO1xuICAgIHRoaXMuYnVpbGRSaWJib25NZW51KCk7XG4gICAgdGhpcy5idWlsZFJpYmJvblBhbmVscygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRvIGNyZWF0ZSBhIGN1c3RvbSBpbnB1dC1vdXRwdXQgYmxvY2tcbiAgICogQHJldHVybnMgVGhlIEhUTUxFbGVtZW50IHdpdGggd2hvbGUgVUkgZXhjbHVkaW5nIHJpYmJvbiBtZW51cyBhbmQgcGFuZWxzXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFic3RyYWN0IGJ1aWxkSU8oKTogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRvIGNyZWF0ZSBhIGN1c3RvbSBoaXN0b3JpY2FsIHJ1bnMgY29udHJvbC5cbiAgICogQHJldHVybnMgVGhlIEhUTUxFbGVtZW50IHdpdGggaGlzdG9yeSBibG9jayBVSVxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBidWlsZEhpc3RvcnlCbG9jaygpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgbmV3SGlzdG9yeUJsb2NrID0gVWlVdGlscy5oaXN0b3J5UGFuZWwodGhpcy5mdW5jISk7XG5cbiAgICBuZXdIaXN0b3J5QmxvY2sub25SdW5DaG9zZW4uc3Vic2NyaWJlKGFzeW5jIChpZCkgPT4gdGhpcy5saW5rRnVuY2NhbGwoYXdhaXQgdGhpcy5sb2FkUnVuKGlkKSkpO1xuXG4gICAgdWkuZW1wdHkodGhpcy5oaXN0b3J5Um9vdCk7XG4gICAgdGhpcy5oaXN0b3J5Um9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnanVzdGlmeS1jb250ZW50Jyk7XG4gICAgdGhpcy5oaXN0b3J5Um9vdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICB0aGlzLmhpc3RvcnlSb290LmFwcGVuZChuZXdIaXN0b3J5QmxvY2sucm9vdCk7XG4gICAgcmV0dXJuIG5ld0hpc3RvcnlCbG9jay5yb290O1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2tzIGZvciB7QGxpbmsgc3VwcG9ydGVkRXhwb3J0Rm9ybWF0c30gbWVtYmVycyBhbmQgY3JlYXRlcyByaWJib24gcGFuZWxcbiAgICogQHJldHVybnMgVGhlIEhUTUxFbGVtZW50cyBvZiByaWJib25QYW5lbHNcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBidWlsZFJpYmJvblBhbmVscygpOiBIVE1MRWxlbWVudFtdW10ge1xuICAgIGNvbnN0IG5ld1JpYmJvblBhbmVsczogSFRNTEVsZW1lbnRbXVtdID0gW1xuICAgICAgWy4uLih0aGlzLmV4cG9ydENvbmZpZyAmJiB0aGlzLmV4cG9ydENvbmZpZy5zdXBwb3J0ZWRGb3JtYXRzLmxlbmd0aCA+IDApID8gW3VpLmRpdkgoW1xuICAgICAgICB1aS5jb21ib1BvcHVwKFxuICAgICAgICAgIHVpLmljb25GQSgnYXJyb3ctdG8tYm90dG9tJyksXG4gICAgICAgICAgdGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cyxcbiAgICAgICAgICBhc3luYyAoZm9ybWF0OiBzdHJpbmcpID0+IERHLlV0aWxzLmRvd25sb2FkKHRoaXMuZXhwb3J0Q29uZmlnIS5maWxlbmFtZShmb3JtYXQpLCBhd2FpdCB0aGlzLmV4cG9ydENvbmZpZyEuZXhwb3J0KGZvcm1hdCkpKSxcbiAgICAgIF0pXTogW11cbiAgICAgIF1dO1xuXG4gICAgaWYgKHRoaXMuZnVuYz8uaWQpIHtcbiAgICAgIGNvbnN0IGhpc3RvcnlCdXR0b24gPSB1aS5pY29uRkEoJ2hpc3RvcnknLCAoKSA9PiB7XG4gICAgICAgIGdyb2suc2hlbGwud2luZG93cy5zaG93UHJvcGVydGllcyA9ICFncm9rLnNoZWxsLndpbmRvd3Muc2hvd1Byb3BlcnRpZXM7XG4gICAgICAgIGhpc3RvcnlCdXR0b24uY2xhc3NMaXN0LnRvZ2dsZSgnZDQtY3VycmVudCcpO1xuICAgICAgICBncm9rLnNoZWxsLm8gPSB0aGlzLmhpc3RvcnlSb290O1xuICAgICAgfSk7XG5cbiAgICAgIGhpc3RvcnlCdXR0b24uY2xhc3NMaXN0LmFkZCgnZDQtdG9nZ2xlLWJ1dHRvbicpO1xuICAgICAgaWYgKGdyb2suc2hlbGwud2luZG93cy5zaG93UHJvcGVydGllcykgaGlzdG9yeUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdkNC1jdXJyZW50Jyk7XG5cbiAgICAgIG5ld1JpYmJvblBhbmVscy5wdXNoKFtcbiAgICAgICAgaGlzdG9yeUJ1dHRvblxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRSaWJib25QYW5lbHMobmV3UmliYm9uUGFuZWxzKTtcbiAgICByZXR1cm4gbmV3UmliYm9uUGFuZWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRvIGNyZWF0ZSBhIGN1c3RvbSByaWJib24gbWVudSBvbiB0aGUgdG9wLlxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBidWlsZFJpYmJvbk1lbnUoKSB7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIHNhdmluZyB0aGUgRlVuY0NhbGwgcmVzdWx0cyB0byB0aGUgaGlzdG9yaWNhbCByZXN1bHRzLCByZXR1cm5zIHRoZSBzYXZlZCBjYWxsLiBTZWUgYWxzbyB7QGxpbmsgc2F2ZVJ1bn0uXG4gICAqIEBwYXJhbSBjYWxsVG9TYXZlIEZ1bmNDYWxsIG9iamVjdCB0byBzYXZlXG4gICAqIEByZXR1cm5zIFNhdmVkIEZ1bmNDYWxsXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFzeW5jIG9uQmVmb3JlU2F2ZVJ1bihjYWxsVG9TYXZlOiBERy5GdW5jQ2FsbCkgeyB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBjb21wdXRhdGlvbiByZXN1bHRzIHRvIHRoZSBoaXN0b3JpY2FsIHJlc3VsdHMsIHJldHVybnMgdGhlIHNhdmVkIGNhbGwuIFNlZSBhbHNvIHtAbGluayBzYXZlUnVufS5cbiAgICogQHBhcmFtIHNhdmVkQ2FsbCBGdW5jQ2FsbCBvYmplY3QgdG8gc2F2ZVxuICAgKiBAcmV0dXJucyBTYXZlZCBGdW5jQ2FsbFxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBvbkFmdGVyU2F2ZVJ1bihzYXZlZENhbGw6IERHLkZ1bmNDYWxsKSB7IH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgdG8gdGhlIGhpc3RvcmljYWwgcmVzdWx0cywgcmV0dXJucyB0aGUgc2F2ZWQgY2FsbC4gU2VlIGFsc28ge0BsaW5rIGxvYWRSdW59LlxuICAgKiBAcGFyYW0gY2FsbFRvU2F2ZSBGdW5jQ2FsbCBvYmplY3QgdG8gc2F2ZVxuICAgKiBAcmV0dXJucyBTYXZlZCBGdW5jQ2FsbFxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBzYXZlUnVuKGNhbGxUb1NhdmU6IERHLkZ1bmNDYWxsKTogUHJvbWlzZTxERy5GdW5jQ2FsbD4ge1xuICAgIGF3YWl0IHRoaXMub25CZWZvcmVTYXZlUnVuKGNhbGxUb1NhdmUpO1xuICAgIGNvbnN0IHNhdmVkQ2FsbCA9IGF3YWl0IGhpc3RvcnlVdGlscy5zYXZlUnVuKGNhbGxUb1NhdmUpO1xuICAgIHNhdmVkQ2FsbC5vcHRpb25zWydpc0hpc3RvcmljYWwnXSA9IGZhbHNlO1xuICAgIHRoaXMubGlua0Z1bmNjYWxsKHNhdmVkQ2FsbCk7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5oaXN0b3J5RW5hYmxlZCkgdGhpcy5idWlsZEhpc3RvcnlCbG9jaygpO1xuICAgIGlmICghdGhpcy5vcHRpb25zLmlzVGFiYmVkKSB0aGlzLnBhdGggPSBgP2lkPSR7c2F2ZWRDYWxsLmlkfWA7XG4gICAgYXdhaXQgdGhpcy5vbkFmdGVyU2F2ZVJ1bihzYXZlZENhbGwpO1xuICAgIHJldHVybiBzYXZlZENhbGw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJlZm9yZSBkZWxldGluZyB0aGUgY29tcHV0YXRpb24gcmVzdWx0cyBmcm9tIGhpc3RvcnksIHJldHVybnMgaXRzIGlkLiBTZWUgYWxzbyB7QGxpbmsgbG9hZFJ1bn0uXG4gICAqIEBwYXJhbSBjYWxsVG9EZWxldGUgRnVuY0NhbGwgb2JqZWN0IHRvIGJlIGRlbGV0ZWRcbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYXN5bmMgb25CZWZvcmVEZWxldGVSdW4oY2FsbFRvRGVsZXRlOiBERy5GdW5jQ2FsbCkgeyB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBhZnRlciBkZWxldGluZyB0aGUgY29tcHV0YXRpb24gcmVzdWx0cyBmcm9tIGhpc3RvcnksIHJldHVybnMgaXRzIGlkLiBTZWUgYWxzbyB7QGxpbmsgbG9hZFJ1bn0uXG4gICAqIEBwYXJhbSBkZWxldGVkQ2FsbCBkZWxldGVkIEZ1bmNDYWxsIHZhbHVlXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cbiAgcHVibGljIGFzeW5jIG9uQWZ0ZXJEZWxldGVSdW4oZGVsZXRlZENhbGw6IERHLkZ1bmNDYWxsKSB7IH1cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgY29tcHV0YXRpb24gcmVzdWx0cyBmcm9tIGhpc3RvcnksIHJldHVybnMgaXRzIGlkLiBTZWUgYWxzbyB7QGxpbmsgbG9hZFJ1bn0uXG4gICAqIEBwYXJhbSBjYWxsVG9EZWxldGUgRnVuY0NhbGwgb2JqZWN0IHRvIGRlbGV0ZVxuICAgKiBAcmV0dXJucyBJRCBvZiBkZWxldGVkIGhpc3RvcmljYWwgcnVuXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gKi9cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlUnVuKGNhbGxUb0RlbGV0ZTogREcuRnVuY0NhbGwpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGF3YWl0IHRoaXMub25CZWZvcmVEZWxldGVSdW4oY2FsbFRvRGVsZXRlKTtcbiAgICBhd2FpdCBoaXN0b3J5VXRpbHMuZGVsZXRlUnVuKGNhbGxUb0RlbGV0ZSk7XG4gICAgYXdhaXQgdGhpcy5vbkFmdGVyRGVsZXRlUnVuKGNhbGxUb0RlbGV0ZSk7XG4gICAgcmV0dXJuIGNhbGxUb0RlbGV0ZS5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGZldGNoaW5nIHRoZSBoaXN0b3JpY2FsIHJ1biBkYXRhIGluIHtAbGluayBsb2FkUnVufS5cbiAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAqL1xuICBwdWJsaWMgYXN5bmMgb25CZWZvcmVMb2FkUnVuKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGZldGNoaW5nIHRoZSBoaXN0b3JpY2FsIHJ1biBkYXRhIGluIHtAbGluayBsb2FkUnVufS5cbiAgICogQHBhcmFtIGZ1bmNDYWxsIEZ1bmNDYWxsIGZldGNoZWQgZnJvbSBzZXJ2ZXIgZHVyaW5nIHtAbGluayBsb2FkUnVufVxuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG4gIHB1YmxpYyBhc3luYyBvbkFmdGVyTG9hZFJ1bihmdW5jQ2FsbDogREcuRnVuY0NhbGwpIHt9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBzcGVjaWZpZWQgaGlzdG9yaWNhbCBydW4uIFNlZSBhbHNvIHtAbGluayBzYXZlUnVufS5cbiAgICogQHBhcmFtIGZ1bmNDYWxsSWQgSUQgb2YgRnVuY0NhbGwgdG8gbG9vayBmb3IuIEdldCBpdCB1c2luZyB7QHNlZSBmdW5jQ2FsbC5pZH0gZmllbGRcbiAgICogQHJldHVybnMgRnVuY0NhbGwgYXVnZW1lbnRlZCB3aXRoIGlucHV0cycgYW5kIG91dHB1dHMnIHZhbHVlc1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICovXG5cbiAgcHVibGljIGFzeW5jIGxvYWRSdW4oZnVuY0NhbGxJZDogc3RyaW5nKTogUHJvbWlzZTxERy5GdW5jQ2FsbD4ge1xuICAgIGF3YWl0IHRoaXMub25CZWZvcmVMb2FkUnVuKCk7XG4gICAgY29uc3QgcHVsbGVkUnVuID0gYXdhaXQgaGlzdG9yeVV0aWxzLmxvYWRSdW4oZnVuY0NhbGxJZCk7XG4gICAgdGhpcy5sYXN0Q2FsbCA9IHB1bGxlZFJ1bjtcbiAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJMb2FkUnVuKHB1bGxlZFJ1bik7XG4gICAgcmV0dXJuIHB1bGxlZFJ1bjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIGFjdHVhbCBjb21wdXRhdGlvbnMgYXJlIG1hZGUge0BsaW5rIHJ1bn0uXG4gICAqIEBwYXJhbSBmdW5jVG9DYWxsIEZ1bmNDYWxsIG9iamVjdCB0byBiZSBjYWxsZWQge0BzZWUgREcuRnVuY0NhbGwuY2FsbCgpfVxuICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAqL1xuICBwdWJsaWMgYXN5bmMgb25CZWZvcmVSdW4oZnVuY1RvQ2FsbDogREcuRnVuY0NhbGwpIHt9XG5cbiAgLyoqXG4gICAgKiBDYWxsZWQgYWZ0ZXIgYWN0dWFsIGNvbXB1dGF0aW9ucyBhcmUgbWFkZSB7QGxpbmsgcnVufS5cbiAgICAqIEBwYXJhbSBydW5GdW5jIEZ1bmNDYWxsIG9iamVjdCBhZnRlciBjYWxsIG1ldGhvZCB7QHNlZSBERy5GdW5jQ2FsbC5jYWxsKCl9XG4gICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9uQWZ0ZXJSdW4ocnVuRnVuYzogREcuRnVuY0NhbGwpIHt9XG5cbiAgcHVibGljIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZnVuY0NhbGwpIHRocm93IG5ldyBFcnJvcignVGhlIGNvcnJlc3BvZGluZyBmdW5jdGlvbiBpcyBub3Qgc3BlY2lmaWVkJyk7XG5cbiAgICBhd2FpdCB0aGlzLm9uQmVmb3JlUnVuKHRoaXMuZnVuY0NhbGwpO1xuICAgIGNvbnN0IHBpID0gREcuVGFza0JhclByb2dyZXNzSW5kaWNhdG9yLmNyZWF0ZSgnQ2FsY3VsYXRpbmcuLi4nKTtcbiAgICB0aGlzLmZ1bmNDYWxsLm5ld0lkKCk7XG4gICAgYXdhaXQgdGhpcy5mdW5jQ2FsbC5jYWxsKCk7IC8vIG11dGF0ZXMgdGhlIGZ1bmNDYWxsIGZpZWxkXG4gICAgcGkuY2xvc2UoKTtcbiAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJSdW4odGhpcy5mdW5jQ2FsbCk7XG5cbiAgICBpZiAoIXRoaXMub3B0aW9ucy5pc1RhYmJlZClcbiAgICAgIHRoaXMubGFzdENhbGwgPSBhd2FpdCB0aGlzLnNhdmVSdW4odGhpcy5mdW5jQ2FsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeVJvb3Q6IEhUTUxEaXZFbGVtZW50ID0gdWkuZGl2VihbXSwge3N0eWxlOiB7J2p1c3RpZnktY29udGVudCc6ICdjZW50ZXInfX0pO1xuXG4gIHByb3RlY3RlZCBkZWZhdWx0RXhwb3J0RmlsZW5hbWUgPSAoZm9ybWF0OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfSAtICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygnZW4tVVMnKS5yZXBsYWNlQWxsKC86fFxcLy9nLCAnLScpfS4ke3RoaXMuZXhwb3J0Q29uZmlnIS5zdXBwb3J0ZWRFeHRlbnNpb25zW2Zvcm1hdF19YDtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZGVmYXVsdFN1cHBvcnRlZEV4cG9ydEV4dGVuc2lvbnM6ICgpID0+IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdFeGNlbCc6ICd4bHN4J1xuICAgIH07XG4gIH07XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRTdXBwb3J0ZWRFeHBvcnRGb3JtYXRzID0gKCkgPT4ge1xuICAgIHJldHVybiBbJ0V4Y2VsJ107XG4gIH07XG59XG4iXX0=
|
package/src/history-utils.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare type FilterOptions = {
|
|
|
7
7
|
isShared?: boolean;
|
|
8
8
|
};
|
|
9
9
|
export declare namespace historyUtils {
|
|
10
|
-
function loadChildRuns(funcCallId: string
|
|
10
|
+
function loadChildRuns(funcCallId: string): Promise<{
|
|
11
11
|
parentRun: DG.FuncCall;
|
|
12
12
|
childRuns: DG.FuncCall[];
|
|
13
13
|
}>;
|