@datagrok-libraries/utils 0.3.9 → 0.4.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.
Files changed (39) hide show
  1. package/package.json +3 -3
  2. package/src/{computation-view/computation-view.d.ts → computation-view.d.ts} +6 -11
  3. package/src/computation-view.d.ts.map +1 -0
  4. package/src/computation-view.js +56 -0
  5. package/src/function-view.d.ts +73 -15
  6. package/src/function-view.d.ts.map +1 -1
  7. package/src/function-view.js +334 -119
  8. package/src/test.d.ts +6 -0
  9. package/src/test.d.ts.map +1 -1
  10. package/src/test.js +36 -4
  11. package/src/computation-view/common/inject-tokens.d.ts +0 -10
  12. package/src/computation-view/common/inject-tokens.d.ts.map +0 -1
  13. package/src/computation-view/common/inject-tokens.js +0 -10
  14. package/src/computation-view/common/service-interfaces.d.ts +0 -40
  15. package/src/computation-view/common/service-interfaces.d.ts.map +0 -1
  16. package/src/computation-view/common/service-interfaces.js +0 -2
  17. package/src/computation-view/computation-view.d.ts.map +0 -1
  18. package/src/computation-view/computation-view.js +0 -61
  19. package/src/computation-view/default-components/export-component.d.ts +0 -9
  20. package/src/computation-view/default-components/export-component.d.ts.map +0 -1
  21. package/src/computation-view/default-components/export-component.js +0 -26
  22. package/src/computation-view/default-components/historical-run-load-component.d.ts +0 -9
  23. package/src/computation-view/default-components/historical-run-load-component.d.ts.map +0 -1
  24. package/src/computation-view/default-components/historical-run-load-component.js +0 -37
  25. package/src/computation-view/default-components/input-panel-component.d.ts +0 -14
  26. package/src/computation-view/default-components/input-panel-component.d.ts.map +0 -1
  27. package/src/computation-view/default-components/input-panel-component.js +0 -40
  28. package/src/computation-view/default-components/output-panel-component.d.ts +0 -9
  29. package/src/computation-view/default-components/output-panel-component.d.ts.map +0 -1
  30. package/src/computation-view/default-components/output-panel-component.js +0 -23
  31. package/src/computation-view/default-services/export-service.d.ts +0 -16
  32. package/src/computation-view/default-services/export-service.d.ts.map +0 -1
  33. package/src/computation-view/default-services/export-service.js +0 -116
  34. package/src/computation-view/default-services/historical-run-service.d.ts +0 -8
  35. package/src/computation-view/default-services/historical-run-service.d.ts.map +0 -1
  36. package/src/computation-view/default-services/historical-run-service.js +0 -15
  37. package/src/computation-view/default-services/state-service.d.ts +0 -16
  38. package/src/computation-view/default-services/state-service.d.ts.map +0 -1
  39. package/src/computation-view/default-services/state-service.js +0 -40
package/src/test.d.ts CHANGED
@@ -28,6 +28,12 @@ export declare function assertNoError(ms: number): Promise<boolean>;
28
28
  /** Tests two objects for equality, throws an exception if they are not equal. */
29
29
  export declare function expect(actual: any, expected: any): void;
30
30
  export declare function expectFloat(actual: number, expected: number, tolerance?: number): void;
31
+ export declare function expectObject(actual: {
32
+ [key: string]: any;
33
+ }, expected: {
34
+ [key: string]: any;
35
+ }): void;
36
+ export declare function expectArray(actual: any[], expected: any[]): void;
31
37
  /** Defines a test suite. */
32
38
  export declare function category(category: string, tests: () => void): void;
33
39
  /** Defines a function to be executed before the tests in this category are executed. */
package/src/test.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAEA,eAAO,IAAI,KAAK,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG;QAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAM,CAAC;AAEjK,eAAO,IAAI,eAAe,EAAE,MAAM,CAAC;AAEnC,yBAAiB,MAAM,CAAC;IAEtB,SAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,QAGhD;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAG,MAAM,CAAC;CACrC;AAED,qBAAa,IAAI;IACf,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;gBAEV,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;CAsB5F;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAMxF;AAED,mEAAmE;AACnE,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAGvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,IAAI,CAIrF;AAED,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAGlE;AAED,wFAAwF;AACxF,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAIxD;AAED,uFAAuF;AACvF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAItD;AAGD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC;;;aACf,OAAO;YAAU,MAAM;KAkClF;AAiBD,8BAA8B;AAC9B,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,iBAErC"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAEA,eAAO,IAAI,KAAK,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG;QAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAM,CAAC;AAEjK,eAAO,IAAI,eAAe,EAAE,MAAM,CAAC;AAEnC,yBAAiB,MAAM,CAAC;IAEtB,SAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,QAGhD;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAG,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAG,MAAM,CAAC;CACrC;AAED,qBAAa,IAAI;IACf,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;gBAEV,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;CAsB5F;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAMxF;AAED,mEAAmE;AACnE,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAGvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,IAAI,CAIrF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,EAAE,QAAQ,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,QAaxF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAkBzD;AAED,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAGlE;AAED,wFAAwF;AACxF,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAIxD;AAED,uFAAuF;AACvF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAItD;AAGD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC;;;aACf,OAAO;YAAU,MAAM;KAkClF;AAiBD,8BAA8B;AAC9B,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,iBAErC"}
package/src/test.js CHANGED
@@ -65,12 +65,44 @@ export function assertNoError(ms) {
65
65
  /** Tests two objects for equality, throws an exception if they are not equal. */
66
66
  export function expect(actual, expected) {
67
67
  if (actual !== expected)
68
- throw `Expected "${expected}", got "${actual}"`;
68
+ throw new Error(`Expected "${expected}", got "${actual}"`);
69
69
  }
70
70
  export function expectFloat(actual, expected, tolerance = 0.001) {
71
- const areEqual = Math.abs(actual - expected) < 0.001;
71
+ const areEqual = Math.abs(actual - expected) < tolerance;
72
72
  if (!areEqual)
73
- throw `Expected ${expected}, got ${actual} (tolerance = ${tolerance})`;
73
+ throw new Error(`Expected ${expected}, got ${actual} (tolerance = ${tolerance})`);
74
+ }
75
+ export function expectObject(actual, expected) {
76
+ for (const [expectedKey, expectedValue] of Object.entries(expected)) {
77
+ if (!actual.hasOwnProperty(expectedKey))
78
+ throw new Error(`Expected property "${expectedKey}" not found`);
79
+ const actualValue = actual[expectedKey];
80
+ if (actualValue instanceof Array && expectedValue instanceof Array)
81
+ expectArray(actualValue, expectedValue);
82
+ else if (actualValue instanceof Object && expectedValue instanceof Object)
83
+ expectObject(actualValue, expectedValue);
84
+ else if (actualValue != expectedValue)
85
+ throw new Error(`Expected ${expectedValue} for key ${expectedKey}, got ${actualValue}`);
86
+ }
87
+ }
88
+ export function expectArray(actual, expected) {
89
+ const actualLength = actual.length;
90
+ const expectedLength = expected.length;
91
+ if (actualLength != expectedLength) {
92
+ throw new Error(`Arrays are of different length: actual array length is ${actualLength} ` +
93
+ `and expected array length is ${expectedLength}`);
94
+ }
95
+ for (let i = 0; i < actualLength; i++) {
96
+ if (actual[i] instanceof Array && expected[i] instanceof Array) {
97
+ expectArray(actual[i], expected[i]);
98
+ }
99
+ else if (actual[i] instanceof Object && expected[i] instanceof Object) {
100
+ expectObject(actual[i], expected[i]);
101
+ }
102
+ else if (actual[i] != expected[i]) {
103
+ throw new Error(`Expected ${expected[i]} at position ${i}, got ${actual[i]}`);
104
+ }
105
+ }
74
106
  }
75
107
  /** Defines a test suite. */
76
108
  export function category(category, tests) {
@@ -151,4 +183,4 @@ export function delay(ms) {
151
183
  yield new Promise(r => setTimeout(r, ms));
152
184
  });
153
185
  }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxtQkFBbUIsQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBSSxLQUFLLEdBQThJLEVBQUUsQ0FBQztBQUVqSyxNQUFNLENBQUMsSUFBSSxlQUF1QixDQUFDO0FBRW5DLE1BQU0sS0FBVyxNQUFNLENBTXRCO0FBTkQsV0FBaUIsTUFBTTtJQUVyQixTQUFnQixPQUFPLENBQUMsS0FBVSxFQUFFLElBQWE7UUFDL0MsSUFBSSxLQUFLLElBQUksSUFBSTtZQUNmLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDO0lBQ3pELENBQUM7SUFIZSxjQUFPLFVBR3RCLENBQUE7QUFDSCxDQUFDLEVBTmdCLE1BQU0sS0FBTixNQUFNLFFBTXRCO0FBT0QsTUFBTSxPQUFPLElBQUk7SUFNZixZQUFZLFFBQWdCLEVBQUUsSUFBWSxFQUFFLElBQXdCLEVBQUUsT0FBcUI7O1FBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxJQUFQLE9BQU8sR0FBSyxFQUFFLEVBQUM7UUFDZixNQUFBLE9BQU8sQ0FBQyxPQUFPLG9DQUFmLE9BQU8sQ0FBQyxPQUFPLEdBQUssS0FBSyxFQUFDO1FBQzFCLE1BQUEsT0FBTyxDQUFDLHlCQUF5QixvQ0FBakMsT0FBTyxDQUFDLHlCQUF5QixHQUFLLElBQUksRUFBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQXVCLEVBQUU7WUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFPLE9BQU8s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QUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsQ0FBQzs7Z0JBRXZDLENBQUMsR0FBRyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQUEsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLG1DQUFJLElBQUksRUFBQyxDQUFDO1NBQ3ZEO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixDQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUMsQ0FBQztTQUM1QztRQUNELENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN4QixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7O0NBQ1Y7QUFFRCw4QkFBOEI7QUFDOUIsTUFBTSxVQUFnQixLQUFLLENBQUMsRUFBVTs7UUFDcEMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gXCJkYXRhZ3Jvay1hcGkvZ3Jva1wiO1xuXG5leHBvcnQgbGV0IHRlc3RzOiB7W2tleTogc3RyaW5nXToge3Rlc3RzPzogVGVzdFtdLCBiZWZvcmU/OiAoKSA9PiBQcm9taXNlPHZvaWQ+LCBhZnRlcj86ICgpID0+IFByb21pc2U8dm9pZD4sIGJlZm9yZVN0YXR1cz86IHN0cmluZywgYWZ0ZXJTdGF0dXM/OiBzdHJpbmd9fSA9IHt9O1xuXG5leHBvcnQgbGV0IGN1cnJlbnRDYXRlZ29yeTogc3RyaW5nO1xuXG5leHBvcnQgbmFtZXNwYWNlIGFzc3VyZSB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG5vdE51bGwodmFsdWU6IGFueSwgbmFtZT86IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKVxuICAgICAgdGhyb3cgYCR7bmFtZSA9PSBudWxsID8gJ1ZhbHVlJyA6IG5hbWV9IG5vdCBkZWZpbmVkYDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgdGltZW91dD8gOiBudW1iZXI7XG4gIHVuaGFuZGxlZEV4Y2VwdGlvblRpbWVvdXQ/IDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgVGVzdCB7XG4gIHRlc3Q6ICgpID0+IFByb21pc2U8YW55PjtcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBvcHRpb25zPzogVGVzdE9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoY2F0ZWdvcnk6IHN0cmluZywgbmFtZTogc3RyaW5nLCB0ZXN0OiAoKSA9PiBQcm9taXNlPGFueT4sIG9wdGlvbnM/OiBUZXN0T3B0aW9ucykge1xuICAgIHRoaXMuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIG9wdGlvbnMgPz89IHt9O1xuICAgIG9wdGlvbnMudGltZW91dCA/Pz0gMzAwMDA7XG4gICAgb3B0aW9ucy51bmhhbmRsZWRFeGNlcHRpb25UaW1lb3V0ID8/PSAyMDAwO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy50ZXN0ID0gYXN5bmMgKCk6IFByb21pc2U8YW55PiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZ3Jvay5zaGVsbC5sYXN0RXJyb3IgPSAnJztcbiAgICAgICAgICByZXN1bHQgPSBhd2FpdCB0ZXN0KCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShhd2FpdCBhc3NlcnROb0Vycm9yKG9wdGlvbnMhLnVuaGFuZGxlZEV4Y2VwdGlvblRpbWVvdXQhKSkpXG4gICAgICAgICAgcmVqZWN0KGBVbmhhbmRsZWQgZXhjZXB0aW9uIGR1cmluZyB0ZXN0OiAke2dyb2suc2hlbGwubGFzdEVycm9yfWApO1xuICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0KG5hbWU6IHN0cmluZywgdGVzdDogKCkgPT4gUHJvbWlzZTxhbnk+LCBvcHRpb25zPzogVGVzdE9wdGlvbnMpOiB2b2lkIHtcbiAgaWYgKHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0gPT0gdW5kZWZpbmVkKVxuICAgIHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0gPSB7fTtcbiAgaWYgKHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0udGVzdHMgPT0gdW5kZWZpbmVkKVxuICAgIHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0udGVzdHMgPSBbXTtcbiAgdGVzdHNbY3VycmVudENhdGVnb3J5XS50ZXN0cyEucHVzaChuZXcgVGVzdChjdXJyZW50Q2F0ZWdvcnksIG5hbWUsIHRlc3QsIG9wdGlvbnMpKTtcbn1cblxuLyoqIEF3YWl0cyBmb3IgYSB3aGlsZSBjaGVja2luZyB0aGUgZXJyb3Igc3RhdHVzIG9mIHRoZSBwbGF0Zm9ybSAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VydE5vRXJyb3IobXM6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG1zIC8gNTAwOyArK2kpIHtcbiAgICBhd2FpdCBkZWxheSg1MDApO1xuICAgIGlmIChncm9rLnNoZWxsLmxhc3RFcnJvci5sZW5ndGggIT09IDApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKiBUZXN0cyB0d28gb2JqZWN0cyBmb3IgZXF1YWxpdHksIHRocm93cyBhbiBleGNlcHRpb24gaWYgdGhleSBhcmUgbm90IGVxdWFsLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdChhY3R1YWw6IGFueSwgZXhwZWN0ZWQ6IGFueSk6IHZvaWQge1xuICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZClcbiAgICB0aHJvdyBgRXhwZWN0ZWQgXCIke2V4cGVjdGVkfVwiLCBnb3QgXCIke2FjdHVhbH1cImA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBlY3RGbG9hdChhY3R1YWw6IG51bWJlciwgZXhwZWN0ZWQ6IG51bWJlciwgdG9sZXJhbmNlID0gMC4wMDEpOiB2b2lkIHtcbiAgY29uc3QgYXJlRXF1YWwgPSBNYXRoLmFicyhhY3R1YWwgLSBleHBlY3RlZCkgPCAwLjAwMTtcbiAgaWYgKCFhcmVFcXVhbClcbiAgICB0aHJvdyBgRXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH0gKHRvbGVyYW5jZSA9ICR7dG9sZXJhbmNlfSlgO1xufVxuXG4vKiogRGVmaW5lcyBhIHRlc3Qgc3VpdGUuICovXG5leHBvcnQgZnVuY3Rpb24gY2F0ZWdvcnkoY2F0ZWdvcnk6IHN0cmluZywgdGVzdHM6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgY3VycmVudENhdGVnb3J5ID0gY2F0ZWdvcnk7XG4gIHRlc3RzKCk7XG59XG5cbi8qKiBEZWZpbmVzIGEgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSB0ZXN0cyBpbiB0aGlzIGNhdGVnb3J5IGFyZSBleGVjdXRlZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiZWZvcmUoYmVmb3JlOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogdm9pZCB7XG4gIGlmICh0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldID09IHVuZGVmaW5lZClcbiAgICB0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldID0ge307XG4gIHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0uYmVmb3JlID0gYmVmb3JlO1xufVxuXG4vKiogRGVmaW5lcyBhIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSB0ZXN0cyBpbiB0aGlzIGNhdGVnb3J5IGFyZSBleGVjdXRlZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZnRlcihhZnRlcjogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICBpZiAodGVzdHNbY3VycmVudENhdGVnb3J5XSA9PSB1bmRlZmluZWQpXG4gICAgdGVzdHNbY3VycmVudENhdGVnb3J5XSA9IHt9O1xuICB0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldLmFmdGVyID0gYWZ0ZXI7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3RzKG9wdGlvbnM/OiB7Y2F0ZWdvcnk/OiBzdHJpbmcsIHRlc3Q/OiBzdHJpbmd9KSB7XG4gIGxldCByZXN1bHRzOiB7IGNhdGVnb3J5Pzogc3RyaW5nLCBuYW1lPzogc3RyaW5nLCBzdWNjZXNzOiBib29sZWFuLCByZXN1bHQ6IHN0cmluZ31bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRlc3RzKSkge1xuICAgIGlmIChvcHRpb25zPy5jYXRlZ29yeSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICgha2V5LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChvcHRpb25zPy5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBpZiAodmFsdWUuYmVmb3JlKVxuICAgICAgICBhd2FpdCB2YWx1ZS5iZWZvcmUoKTtcbiAgICB9IGNhdGNoICh4OiBhbnkpIHtcbiAgICAgIHZhbHVlLmJlZm9yZVN0YXR1cyA9IHgudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgbGV0IHQgPSB2YWx1ZS50ZXN0cyA/PyBbXTtcbiAgICBsZXQgcmVzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcy5wdXNoKGF3YWl0IGV4ZWNUZXN0KHRbaV0sIG9wdGlvbnM/LnRlc3QpKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YSA9IChhd2FpdCBQcm9taXNlLmFsbChyZXMpKS5maWx0ZXIoKGQpID0+IGQucmVzdWx0ICE9ICdza2lwcGVkJyk7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh2YWx1ZS5hZnRlcilcbiAgICAgICAgYXdhaXQgdmFsdWUuYWZ0ZXIoKTtcbiAgICB9IGNhdGNoICh4OiBhbnkpIHtcbiAgICAgIHZhbHVlLmFmdGVyU3RhdHVzID0geC50b1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAodmFsdWUuYWZ0ZXJTdGF0dXMpXG4gICAgICBkYXRhLnB1c2goe2NhdGVnb3J5OiBrZXksIG5hbWU6ICdpbml0JywgcmVzdWx0OiB2YWx1ZS5hZnRlclN0YXR1cywgc3VjY2VzczogZmFsc2V9KTtcbiAgICBpZiAodmFsdWUuYmVmb3JlU3RhdHVzKVxuICAgICAgZGF0YS5wdXNoKHtjYXRlZ29yeToga2V5LCBuYW1lOiAnaW5pdCcsIHJlc3VsdDogdmFsdWUuYmVmb3JlU3RhdHVzLCBzdWNjZXNzOiBmYWxzZX0pO1xuICAgIHJlc3VsdHMucHVzaCguLi5kYXRhKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleGVjVGVzdCh0OiBUZXN0LCBwcmVkaWNhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICBsZXQgcjogeyBjYXRlZ29yeT86IHN0cmluZywgbmFtZT86IHN0cmluZywgc3VjY2VzczogYm9vbGVhbiwgcmVzdWx0OiBzdHJpbmcgfTtcbiAgdHJ5IHtcbiAgICBpZiAocHJlZGljYXRlICE9IHVuZGVmaW5lZCAmJiAoIXQubmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZGljYXRlLnRvTG93ZXJDYXNlKCkpKSlcbiAgICAgIHIgPSB7c3VjY2VzczogdHJ1ZSwgcmVzdWx0OiAnc2tpcHBlZCd9O1xuICAgIGVsc2VcbiAgICAgIHIgPSB7c3VjY2VzczogdHJ1ZSwgcmVzdWx0OiBhd2FpdCB0LnRlc3QoKSA/PyAnT0snfTtcbiAgfSBjYXRjaCAoeDogYW55KSB7XG4gICAgciA9IHtzdWNjZXNzOiBmYWxzZSwgcmVzdWx0OiB4LnRvU3RyaW5nKCl9O1xuICB9XG4gIHIuY2F0ZWdvcnkgPSB0LmNhdGVnb3J5O1xuICByLm5hbWUgPSB0Lm5hbWU7XG4gIHJldHVybiByO1xufVxuXG4vKiogV2FpdHMgW21zXSBtaWxsaXNlY29uZHMgKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxheShtczogbnVtYmVyKSB7XG4gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCBtcykpO1xufVxuIl19
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxtQkFBbUIsQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBSSxLQUFLLEdBQThJLEVBQUUsQ0FBQztBQUVqSyxNQUFNLENBQUMsSUFBSSxlQUF1QixDQUFDO0FBRW5DLE1BQU0sS0FBVyxNQUFNLENBTXRCO0FBTkQsV0FBaUIsTUFBTTtJQUVyQixTQUFnQixPQUFPLENBQUMsS0FBVSxFQUFFLElBQWE7UUFDL0MsSUFBSSxLQUFLLElBQUksSUFBSTtZQUNmLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDO0lBQ3pELENBQUM7SUFIZSxjQUFPLFVBR3RCLENBQUE7QUFDSCxDQUFDLEVBTmdCLE1BQU0sS0FBTixNQUFNLFFBTXRCO0FBT0QsTUFBTSxPQUFPLElBQUk7SUFNZixZQUFZLFFBQWdCLEVBQUUsSUFBWSxFQUFFLElBQXdCLEVBQUUsT0FBcUI7O1FBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxJQUFQLE9BQU8sR0FBSyxFQUFFLEVBQUM7UUFDZixNQUFBLE9BQU8sQ0FBQyxPQUFPLG9DQUFmLE9BQU8sQ0FBQyxPQUFPLEdBQUssS0FBSyxFQUFDO1FBQzFCLE1BQUEsT0FBTyxDQUFDLHlCQUF5QixvQ0FBakMsT0FBTyxDQUFDLHlCQUF5QixHQUFLLElBQUksRUFBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQXVCLEVBQUU7WUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFPLE9BQU8s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QVcsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNyQyxJQUFJLFdBQVcsWUFBWSxNQUFNLElBQUksYUFBYSxZQUFZLE1BQU07WUFDdkUsWUFBWSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUN0QyxJQUFJLFdBQVcsSUFBSSxhQUFhO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxhQUFhLFlBQVksV0FBVyxTQUFTLFdBQVcsRUFBRSxDQUFDLENBQUM7S0FDM0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFhLEVBQUUsUUFBZTtJQUN4RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25DLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFFdkMsSUFBSSxZQUFZLElBQUksY0FBYyxFQUFFO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELFlBQVksR0FBRztZQUN2RixnQ0FBZ0MsY0FBYyxFQUFFLENBQUMsQ0FBQztLQUN2RDtJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLEVBQUU7WUFDOUQsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQzthQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFO1lBQ3ZFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVB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VUFBZ0IsS0FBSyxDQUFDLEVBQVU7O1FBQ3BDLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tIFwiZGF0YWdyb2stYXBpL2dyb2tcIjtcblxuZXhwb3J0IGxldCB0ZXN0czoge1trZXk6IHN0cmluZ106IHt0ZXN0cz86IFRlc3RbXSwgYmVmb3JlPzogKCkgPT4gUHJvbWlzZTx2b2lkPiwgYWZ0ZXI/OiAoKSA9PiBQcm9taXNlPHZvaWQ+LCBiZWZvcmVTdGF0dXM/OiBzdHJpbmcsIGFmdGVyU3RhdHVzPzogc3RyaW5nfX0gPSB7fTtcblxuZXhwb3J0IGxldCBjdXJyZW50Q2F0ZWdvcnk6IHN0cmluZztcblxuZXhwb3J0IG5hbWVzcGFjZSBhc3N1cmUge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBub3ROdWxsKHZhbHVlOiBhbnksIG5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbClcbiAgICAgIHRocm93IGAke25hbWUgPT0gbnVsbCA/ICdWYWx1ZScgOiBuYW1lfSBub3QgZGVmaW5lZGA7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXN0T3B0aW9ucyB7XG4gIHRpbWVvdXQ/IDogbnVtYmVyO1xuICB1bmhhbmRsZWRFeGNlcHRpb25UaW1lb3V0PyA6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFRlc3Qge1xuICB0ZXN0OiAoKSA9PiBQcm9taXNlPGFueT47XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgb3B0aW9ucz86IFRlc3RPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKGNhdGVnb3J5OiBzdHJpbmcsIG5hbWU6IHN0cmluZywgdGVzdDogKCkgPT4gUHJvbWlzZTxhbnk+LCBvcHRpb25zPzogVGVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICBvcHRpb25zID8/PSB7fTtcbiAgICBvcHRpb25zLnRpbWVvdXQgPz89IDMwMDAwO1xuICAgIG9wdGlvbnMudW5oYW5kbGVkRXhjZXB0aW9uVGltZW91dCA/Pz0gMjAwMDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMudGVzdCA9IGFzeW5jICgpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGdyb2suc2hlbGwubGFzdEVycm9yID0gJyc7XG4gICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGVzdCgpO1xuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoYXdhaXQgYXNzZXJ0Tm9FcnJvcihvcHRpb25zIS51bmhhbmRsZWRFeGNlcHRpb25UaW1lb3V0ISkpKVxuICAgICAgICAgIHJlamVjdChgVW5oYW5kbGVkIGV4Y2VwdGlvbiBkdXJpbmcgdGVzdDogJHtncm9rLnNoZWxsLmxhc3RFcnJvcn1gKTtcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChuYW1lOiBzdHJpbmcsIHRlc3Q6ICgpID0+IFByb21pc2U8YW55Piwgb3B0aW9ucz86IFRlc3RPcHRpb25zKTogdm9pZCB7XG4gIGlmICh0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldID09IHVuZGVmaW5lZClcbiAgICB0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldID0ge307XG4gIGlmICh0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldLnRlc3RzID09IHVuZGVmaW5lZClcbiAgICB0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldLnRlc3RzID0gW107XG4gIHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0udGVzdHMhLnB1c2gobmV3IFRlc3QoY3VycmVudENhdGVnb3J5LCBuYW1lLCB0ZXN0LCBvcHRpb25zKSk7XG59XG5cbi8qKiBBd2FpdHMgZm9yIGEgd2hpbGUgY2hlY2tpbmcgdGhlIGVycm9yIHN0YXR1cyBvZiB0aGUgcGxhdGZvcm0gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlcnROb0Vycm9yKG1zOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtcyAvIDUwMDsgKytpKSB7XG4gICAgYXdhaXQgZGVsYXkoNTAwKTtcbiAgICBpZiAoZ3Jvay5zaGVsbC5sYXN0RXJyb3IubGVuZ3RoICE9PSAwKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKiogVGVzdHMgdHdvIG9iamVjdHMgZm9yIGVxdWFsaXR5LCB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZXkgYXJlIG5vdCBlcXVhbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBlY3QoYWN0dWFsOiBhbnksIGV4cGVjdGVkOiBhbnkpOiB2b2lkIHtcbiAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpXG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBcIiR7ZXhwZWN0ZWR9XCIsIGdvdCBcIiR7YWN0dWFsfVwiYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBlY3RGbG9hdChhY3R1YWw6IG51bWJlciwgZXhwZWN0ZWQ6IG51bWJlciwgdG9sZXJhbmNlID0gMC4wMDEpOiB2b2lkIHtcbiAgY29uc3QgYXJlRXF1YWwgPSBNYXRoLmFicyhhY3R1YWwgLSBleHBlY3RlZCkgPCB0b2xlcmFuY2U7XG4gIGlmICghYXJlRXF1YWwpXG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2V4cGVjdGVkfSwgZ290ICR7YWN0dWFsfSAodG9sZXJhbmNlID0gJHt0b2xlcmFuY2V9KWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwZWN0T2JqZWN0KGFjdHVhbDoge1trZXk6IHN0cmluZ106IGFueX0sIGV4cGVjdGVkOiB7W2tleTogc3RyaW5nXTogYW55fSkge1xuICBmb3IgKGNvbnN0IFtleHBlY3RlZEtleSwgZXhwZWN0ZWRWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZXhwZWN0ZWQpKSB7XG4gICAgaWYgKCFhY3R1YWwuaGFzT3duUHJvcGVydHkoZXhwZWN0ZWRLZXkpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBwcm9wZXJ0eSBcIiR7ZXhwZWN0ZWRLZXl9XCIgbm90IGZvdW5kYCk7XG5cbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGFjdHVhbFtleHBlY3RlZEtleV07XG4gICAgaWYgKGFjdHVhbFZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgZXhwZWN0ZWRWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KVxuICAgICAgZXhwZWN0QXJyYXkoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpO1xuICAgIGVsc2UgaWYgKGFjdHVhbFZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIGV4cGVjdGVkVmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgICBleHBlY3RPYmplY3QoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpO1xuICAgIGVsc2UgaWYgKGFjdHVhbFZhbHVlICE9IGV4cGVjdGVkVmFsdWUpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXhwZWN0ZWRWYWx1ZX0gZm9yIGtleSAke2V4cGVjdGVkS2V5fSwgZ290ICR7YWN0dWFsVmFsdWV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdEFycmF5KGFjdHVhbDogYW55W10sIGV4cGVjdGVkOiBhbnlbXSkge1xuICBjb25zdCBhY3R1YWxMZW5ndGggPSBhY3R1YWwubGVuZ3RoO1xuICBjb25zdCBleHBlY3RlZExlbmd0aCA9IGV4cGVjdGVkLmxlbmd0aDtcblxuICBpZiAoYWN0dWFsTGVuZ3RoICE9IGV4cGVjdGVkTGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFycmF5cyBhcmUgb2YgZGlmZmVyZW50IGxlbmd0aDogYWN0dWFsIGFycmF5IGxlbmd0aCBpcyAke2FjdHVhbExlbmd0aH0gYCArXG4gICAgICAgIGBhbmQgZXhwZWN0ZWQgYXJyYXkgbGVuZ3RoIGlzICR7ZXhwZWN0ZWRMZW5ndGh9YCk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdHVhbExlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFjdHVhbFtpXSBpbnN0YW5jZW9mIEFycmF5ICYmIGV4cGVjdGVkW2ldIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGV4cGVjdEFycmF5KGFjdHVhbFtpXSwgZXhwZWN0ZWRbaV0pO1xuICAgIH0gZWxzZSBpZiAoYWN0dWFsW2ldIGluc3RhbmNlb2YgT2JqZWN0ICYmIGV4cGVjdGVkW2ldIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICBleHBlY3RPYmplY3QoYWN0dWFsW2ldLCBleHBlY3RlZFtpXSk7XG4gICAgfSBlbHNlIGlmIChhY3R1YWxbaV0gIT0gZXhwZWN0ZWRbaV0pIHsgXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXhwZWN0ZWRbaV19IGF0IHBvc2l0aW9uICR7aX0sIGdvdCAke2FjdHVhbFtpXX1gKTsgICBcbiAgICB9XG4gIH1cbn1cblxuLyoqIERlZmluZXMgYSB0ZXN0IHN1aXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcsIHRlc3RzOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGN1cnJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5O1xuICB0ZXN0cygpO1xufVxuXG4vKiogRGVmaW5lcyBhIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGJlZm9yZSB0aGUgdGVzdHMgaW4gdGhpcyBjYXRlZ29yeSBhcmUgZXhlY3V0ZWQuICovXG5leHBvcnQgZnVuY3Rpb24gYmVmb3JlKGJlZm9yZTogKCkgPT4gUHJvbWlzZTx2b2lkPik6IHZvaWQge1xuICBpZiAodGVzdHNbY3VycmVudENhdGVnb3J5XSA9PSB1bmRlZmluZWQpXG4gICAgdGVzdHNbY3VycmVudENhdGVnb3J5XSA9IHt9O1xuICB0ZXN0c1tjdXJyZW50Q2F0ZWdvcnldLmJlZm9yZSA9IGJlZm9yZTtcbn1cblxuLyoqIERlZmluZXMgYSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgdGVzdHMgaW4gdGhpcyBjYXRlZ29yeSBhcmUgZXhlY3V0ZWQuICovXG5leHBvcnQgZnVuY3Rpb24gYWZ0ZXIoYWZ0ZXI6ICgpID0+IFByb21pc2U8dm9pZD4pOiB2b2lkIHtcbiAgaWYgKHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0gPT0gdW5kZWZpbmVkKVxuICAgIHRlc3RzW2N1cnJlbnRDYXRlZ29yeV0gPSB7fTtcbiAgdGVzdHNbY3VycmVudENhdGVnb3J5XS5hZnRlciA9IGFmdGVyO1xufVxuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5UZXN0cyhvcHRpb25zPzoge2NhdGVnb3J5Pzogc3RyaW5nLCB0ZXN0Pzogc3RyaW5nfSkge1xuICBsZXQgcmVzdWx0czogeyBjYXRlZ29yeT86IHN0cmluZywgbmFtZT86IHN0cmluZywgc3VjY2VzczogYm9vbGVhbiwgcmVzdWx0OiBzdHJpbmd9W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0ZXN0cykpIHtcbiAgICBpZiAob3B0aW9ucz8uY2F0ZWdvcnkgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIWtleS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgob3B0aW9ucz8uY2F0ZWdvcnkudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYgKHZhbHVlLmJlZm9yZSlcbiAgICAgICAgYXdhaXQgdmFsdWUuYmVmb3JlKCk7XG4gICAgfSBjYXRjaCAoeDogYW55KSB7XG4gICAgICB2YWx1ZS5iZWZvcmVTdGF0dXMgPSB4LnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGxldCB0ID0gdmFsdWUudGVzdHMgPz8gW107XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXMucHVzaChhd2FpdCBleGVjVGVzdCh0W2ldLCBvcHRpb25zPy50ZXN0KSk7XG4gICAgfVxuXG4gICAgbGV0IGRhdGEgPSAoYXdhaXQgUHJvbWlzZS5hbGwocmVzKSkuZmlsdGVyKChkKSA9PiBkLnJlc3VsdCAhPSAnc2tpcHBlZCcpO1xuICAgIHRyeSB7XG4gICAgICBpZiAodmFsdWUuYWZ0ZXIpXG4gICAgICAgIGF3YWl0IHZhbHVlLmFmdGVyKCk7XG4gICAgfSBjYXRjaCAoeDogYW55KSB7XG4gICAgICB2YWx1ZS5hZnRlclN0YXR1cyA9IHgudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmFmdGVyU3RhdHVzKVxuICAgICAgZGF0YS5wdXNoKHtjYXRlZ29yeToga2V5LCBuYW1lOiAnaW5pdCcsIHJlc3VsdDogdmFsdWUuYWZ0ZXJTdGF0dXMsIHN1Y2Nlc3M6IGZhbHNlfSk7XG4gICAgaWYgKHZhbHVlLmJlZm9yZVN0YXR1cylcbiAgICAgIGRhdGEucHVzaCh7Y2F0ZWdvcnk6IGtleSwgbmFtZTogJ2luaXQnLCByZXN1bHQ6IHZhbHVlLmJlZm9yZVN0YXR1cywgc3VjY2VzczogZmFsc2V9KTtcbiAgICByZXN1bHRzLnB1c2goLi4uZGF0YSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhlY1Rlc3QodDogVGVzdCwgcHJlZGljYXRlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgbGV0IHI6IHsgY2F0ZWdvcnk/OiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcsIHN1Y2Nlc3M6IGJvb2xlYW4sIHJlc3VsdDogc3RyaW5nIH07XG4gIHRyeSB7XG4gICAgaWYgKHByZWRpY2F0ZSAhPSB1bmRlZmluZWQgJiYgKCF0Lm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHByZWRpY2F0ZS50b0xvd2VyQ2FzZSgpKSkpXG4gICAgICByID0ge3N1Y2Nlc3M6IHRydWUsIHJlc3VsdDogJ3NraXBwZWQnfTtcbiAgICBlbHNlXG4gICAgICByID0ge3N1Y2Nlc3M6IHRydWUsIHJlc3VsdDogYXdhaXQgdC50ZXN0KCkgPz8gJ09LJ307XG4gIH0gY2F0Y2ggKHg6IGFueSkge1xuICAgIHIgPSB7c3VjY2VzczogZmFsc2UsIHJlc3VsdDogeC50b1N0cmluZygpfTtcbiAgfVxuICByLmNhdGVnb3J5ID0gdC5jYXRlZ29yeTtcbiAgci5uYW1lID0gdC5uYW1lO1xuICByZXR1cm4gcjtcbn1cblxuLyoqIFdhaXRzIFttc10gbWlsbGlzZWNvbmRzICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsYXkobXM6IG51bWJlcikge1xuICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKTtcbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- export declare const tokens: {
2
- readonly stateService: "stateService";
3
- readonly historyService: "historyService";
4
- readonly exportService: "exportService";
5
- readonly inputPanel: "inputPanel";
6
- readonly outputPanel: "outputPanel";
7
- readonly exportPanel: "exportPanel";
8
- readonly historyPanel: "historyPanel";
9
- };
10
- //# sourceMappingURL=inject-tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inject-tokens.d.ts","sourceRoot":"","sources":["inject-tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;CAST,CAAC"}
@@ -1,10 +0,0 @@
1
- export const tokens = {
2
- stateService: 'stateService',
3
- historyService: 'historyService',
4
- exportService: 'exportService',
5
- inputPanel: 'inputPanel',
6
- outputPanel: 'outputPanel',
7
- exportPanel: 'exportPanel',
8
- historyPanel: 'historyPanel',
9
- };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluamVjdC10b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsYUFBYSxFQUFFLGVBQWU7SUFFOUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsWUFBWSxFQUFFLGNBQWM7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0b2tlbnMgPSB7XG4gIHN0YXRlU2VydmljZTogJ3N0YXRlU2VydmljZScsXG4gIGhpc3RvcnlTZXJ2aWNlOiAnaGlzdG9yeVNlcnZpY2UnLFxuICBleHBvcnRTZXJ2aWNlOiAnZXhwb3J0U2VydmljZScsXG5cbiAgaW5wdXRQYW5lbDogJ2lucHV0UGFuZWwnLFxuICBvdXRwdXRQYW5lbDogJ291dHB1dFBhbmVsJyxcbiAgZXhwb3J0UGFuZWw6ICdleHBvcnRQYW5lbCcsXG4gIGhpc3RvcnlQYW5lbDogJ2hpc3RvcnlQYW5lbCcsXG59IGFzIGNvbnN0O1xuIl19
@@ -1,40 +0,0 @@
1
- import * as DG from 'datagrok-api/dg';
2
- import { Subject } from 'rxjs';
3
- export interface Component {
4
- root: HTMLElement;
5
- render(): void;
6
- }
7
- export interface ExportService {
8
- get supportedExportFormats(): string[];
9
- /** Override to provide custom file extensions for exported formats.
10
- * These formats are available under the "Export" popup on the ribbon panel. */
11
- get supportedExportExtensions(): Record<string, string>;
12
- filename(format: string): string;
13
- /** Override to provide custom export. */
14
- export(format: string): Promise<Blob>;
15
- }
16
- export interface StateService {
17
- /** Name of view */
18
- name: string;
19
- /** Function last call info */
20
- lastCall: DG.FuncCall | null;
21
- /** Main function of ComputationView. */
22
- func: DG.Func | null;
23
- /** The actual computation function. */
24
- compute(call: DG.FuncCall): Promise<void>;
25
- /** Maps inputs to parameters, computes, and maps output parameters to the UI. */
26
- run(): Promise<void>;
27
- /** Prepare func to run */
28
- prepare(): void;
29
- onComputationError: Subject<DG.FuncCall>;
30
- onComputationCompleted: Subject<DG.FuncCall>;
31
- }
32
- export interface HistoricalRunService {
33
- /** Saves the computation results to the historical results, returns its id. See also {@link loadRun}. */
34
- saveRun(call: DG.FuncCall): Promise<string>;
35
- /** Loads the specified historical results. See also {@link saveRun}. */
36
- loadRun(runId: string): Promise<DG.FuncCall>;
37
- /** Pulls functions' historical runs list */
38
- pullRuns(): Promise<DG.FuncCall[]>;
39
- }
40
- //# sourceMappingURL=service-interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-interfaces.d.ts","sourceRoot":"","sources":["service-interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAA;IAEjB,MAAM,IAAI,IAAI,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAAA;IAEtC;mFAC+E;IAC/E,IAAI,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IAEhC,yCAAyC;IACzC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAA;IAEZ,8BAA8B;IAC9B,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE7B,wCAAwC;IACxC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;IAErB,uCAAuC;IACvC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,iFAAiF;IACjF,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErB,0BAA0B;IAC1B,OAAO,IAAI,IAAI,CAAC;IAEhB,kBAAkB,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzC,sBAAsB,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAoB;IACnC,yGAAyG;IACzG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE3C,wEAAwE;IACxE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;IAE5C,4CAA4C;IAC5C,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;CACnC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmljZS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnQge1xuICByb290OiBIVE1MRWxlbWVudFxuXG4gIHJlbmRlcigpOiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0U2VydmljZSB7XG4gIGdldCBzdXBwb3J0ZWRFeHBvcnRGb3JtYXRzKCk6IHN0cmluZ1tdXG5cbiAgLyoqIE92ZXJyaWRlIHRvIHByb3ZpZGUgY3VzdG9tIGZpbGUgZXh0ZW5zaW9ucyBmb3IgZXhwb3J0ZWQgZm9ybWF0cy5cbiAgICogVGhlc2UgZm9ybWF0cyBhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBcIkV4cG9ydFwiIHBvcHVwIG9uIHRoZSByaWJib24gcGFuZWwuICovXG4gIGdldCBzdXBwb3J0ZWRFeHBvcnRFeHRlbnNpb25zKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cblxuICBmaWxlbmFtZShmb3JtYXQ6IHN0cmluZyk6IHN0cmluZ1xuXG4gIC8qKiBPdmVycmlkZSB0byBwcm92aWRlIGN1c3RvbSBleHBvcnQuICovXG4gIGV4cG9ydChmb3JtYXQ6IHN0cmluZyk6IFByb21pc2U8QmxvYj5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZVNlcnZpY2Uge1xuICAvKiogTmFtZSBvZiB2aWV3ICovXG4gIG5hbWU6IHN0cmluZ1xuXG4gIC8qKiBGdW5jdGlvbiBsYXN0IGNhbGwgaW5mbyAqL1xuICBsYXN0Q2FsbDogREcuRnVuY0NhbGwgfCBudWxsO1xuXG4gIC8qKiBNYWluIGZ1bmN0aW9uIG9mIENvbXB1dGF0aW9uVmlldy4gKi9cbiAgZnVuYzogREcuRnVuYyB8IG51bGw7XG5cbiAgLyoqIFRoZSBhY3R1YWwgY29tcHV0YXRpb24gZnVuY3Rpb24uICovXG4gIGNvbXB1dGUoY2FsbDogREcuRnVuY0NhbGwpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKiBNYXBzIGlucHV0cyB0byBwYXJhbWV0ZXJzLCBjb21wdXRlcywgYW5kIG1hcHMgb3V0cHV0IHBhcmFtZXRlcnMgdG8gdGhlIFVJLiAqL1xuICBydW4oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKiogUHJlcGFyZSBmdW5jIHRvIHJ1biAqL1xuICBwcmVwYXJlKCk6IHZvaWQ7XG5cbiAgb25Db21wdXRhdGlvbkVycm9yOiBTdWJqZWN0PERHLkZ1bmNDYWxsPjtcbiAgb25Db21wdXRhdGlvbkNvbXBsZXRlZDogU3ViamVjdDxERy5GdW5jQ2FsbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yaWNhbFJ1blNlcnZpY2Uge1xuICAvKiogU2F2ZXMgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgdG8gdGhlIGhpc3RvcmljYWwgcmVzdWx0cywgcmV0dXJucyBpdHMgaWQuIFNlZSBhbHNvIHtAbGluayBsb2FkUnVufS4gKi9cbiAgc2F2ZVJ1bihjYWxsOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8c3RyaW5nPlxuXG4gIC8qKiBMb2FkcyB0aGUgc3BlY2lmaWVkIGhpc3RvcmljYWwgcmVzdWx0cy4gU2VlIGFsc28ge0BsaW5rIHNhdmVSdW59LiAqL1xuICBsb2FkUnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPERHLkZ1bmNDYWxsPlxuXG4gIC8qKiBQdWxscyBmdW5jdGlvbnMnIGhpc3RvcmljYWwgcnVucyBsaXN0ICovXG4gIHB1bGxSdW5zKCk6IFByb21pc2U8REcuRnVuY0NhbGxbXT5cbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"computation-view.d.ts","sourceRoot":"","sources":["computation-view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAGpE;;;;;;;;;;;;;;KAcK;AACL,qBAAa,eAAgB,SAAQ,YAAY;IAUtC,KAAK,EAAE,YAAY;IACnB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IAZhC,OAAc,MAAM,wEAKT;IAEX,mGAAmG;gBAE1F,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,EACrB,WAAW,EAAE,SAAS,EACtB,YAAY,EAAE,SAAS;IAQhC,kGAAkG;IACrF,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAWlD"}
@@ -1,61 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import * as ui from 'datagrok-api/ui';
11
- import { FunctionView } from '../function-view';
12
- import { tokens } from './common/inject-tokens';
13
- /**
14
- * Base class for handling Compute models (see https://github.com/datagrok-ai/public/blob/master/help/compute/compute.md).
15
- * In most cases, the computation is a simple {@link Func}
16
- * Extend it in cases where a behavior or UI not supported by the {@link FunctionView} is needed.
17
- *
18
- * It provides the following functionality out-of-the-box, where each section could be customized:
19
- * - a structured way to represent input and output parameters: {@link parameters}
20
- * - generic way to generate UI for inputs, outputs, and interactivity (running the model, etc)
21
- * - persisting historical results to the db (via {@link parameters})
22
- * - export (to Excel and PDF): {@link export}
23
- * - easy loading of historical runs
24
- * - routing
25
- * - entering the real, measured (as opposed to predicted) values manually
26
- * - notifications for changing inputs, completion of computations, etc: {@link onInputChanged}
27
- * */
28
- export class ComputationView extends FunctionView {
29
- /** Not intented to be used directly in common case. Use {@link ComputationViewBuilder} instead. */
30
- constructor(state, inputPanel, outputPanel, exportButton) {
31
- super(state.func);
32
- this.state = state;
33
- this.inputPanel = inputPanel;
34
- this.outputPanel = outputPanel;
35
- this.exportButton = exportButton;
36
- if (this.state.func != null)
37
- this.render(this.state.func);
38
- }
39
- /** Override to provide custom initialization. {@link onViewInitialized} gets fired after that. */
40
- render(func) {
41
- const _super = Object.create(null, {
42
- init: { get: () => super.init }
43
- });
44
- return __awaiter(this, void 0, void 0, function* () {
45
- this.state.func = func;
46
- yield _super.init.call(this, this.state.func);
47
- this.root.innerHTML = '';
48
- this.root.append(ui.divH([this.inputPanel.root, this.outputPanel.root]));
49
- this.setRibbonPanels([[
50
- this.exportButton.root,
51
- ]]);
52
- });
53
- }
54
- }
55
- ComputationView.inject = [
56
- tokens.stateService,
57
- tokens.inputPanel,
58
- tokens.outputPanel,
59
- tokens.exportPanel,
60
- ];
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXB1dGF0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlDOzs7Ozs7Ozs7Ozs7OztLQWNLO0FBQ0wsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQVEvQyxtR0FBbUc7SUFDbkcsWUFDUyxLQUFtQixFQUNuQixVQUFxQixFQUNyQixXQUFzQixFQUN0QixZQUF1QjtRQUU5QixLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBTFgsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFXO1FBSTlCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGtHQUFrRztJQUNyRixNQUFNLENBQUMsSUFBYTs7Ozs7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRXZCLE1BQU0sT0FBTSxJQUFJLFlBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO2lCQUN2QixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7S0FBQTs7QUEvQmEsc0JBQU0sR0FBRztJQUNyQixNQUFNLENBQUMsWUFBWTtJQUNuQixNQUFNLENBQUMsVUFBVTtJQUNqQixNQUFNLENBQUMsV0FBVztJQUNsQixNQUFNLENBQUMsV0FBVztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG4vKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7RnVuY3Rpb25WaWV3fSBmcm9tICcuLi9mdW5jdGlvbi12aWV3JztcbmltcG9ydCB7Q29tcG9uZW50LCBTdGF0ZVNlcnZpY2V9IGZyb20gJy4vY29tbW9uL3NlcnZpY2UtaW50ZXJmYWNlcyc7XG5pbXBvcnQge3Rva2Vuc30gZnJvbSAnLi9jb21tb24vaW5qZWN0LXRva2Vucyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgaGFuZGxpbmcgQ29tcHV0ZSBtb2RlbHMgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGF0YWdyb2stYWkvcHVibGljL2Jsb2IvbWFzdGVyL2hlbHAvY29tcHV0ZS9jb21wdXRlLm1kKS5cbiAqIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wdXRhdGlvbiBpcyBhIHNpbXBsZSB7QGxpbmsgRnVuY31cbiAqIEV4dGVuZCBpdCBpbiBjYXNlcyB3aGVyZSBhIGJlaGF2aW9yIG9yIFVJIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHtAbGluayBGdW5jdGlvblZpZXd9IGlzIG5lZWRlZC5cbiAqXG4gKiBJdCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdHkgb3V0LW9mLXRoZS1ib3gsIHdoZXJlIGVhY2ggc2VjdGlvbiBjb3VsZCBiZSBjdXN0b21pemVkOlxuICogLSBhIHN0cnVjdHVyZWQgd2F5IHRvIHJlcHJlc2VudCBpbnB1dCBhbmQgb3V0cHV0IHBhcmFtZXRlcnM6IHtAbGluayBwYXJhbWV0ZXJzfVxuICogLSBnZW5lcmljIHdheSB0byBnZW5lcmF0ZSBVSSBmb3IgaW5wdXRzLCBvdXRwdXRzLCBhbmQgaW50ZXJhY3Rpdml0eSAocnVubmluZyB0aGUgbW9kZWwsIGV0YylcbiAqICAgLSBwZXJzaXN0aW5nIGhpc3RvcmljYWwgcmVzdWx0cyB0byB0aGUgZGIgKHZpYSB7QGxpbmsgcGFyYW1ldGVyc30pXG4gKiAtIGV4cG9ydCAodG8gRXhjZWwgYW5kIFBERik6IHtAbGluayBleHBvcnR9XG4gKiAtIGVhc3kgbG9hZGluZyBvZiBoaXN0b3JpY2FsIHJ1bnNcbiAqIC0gcm91dGluZ1xuICogLSBlbnRlcmluZyB0aGUgcmVhbCwgbWVhc3VyZWQgKGFzIG9wcG9zZWQgdG8gcHJlZGljdGVkKSB2YWx1ZXMgbWFudWFsbHlcbiAqIC0gbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdpbmcgaW5wdXRzLCBjb21wbGV0aW9uIG9mIGNvbXB1dGF0aW9ucywgZXRjOiB7QGxpbmsgb25JbnB1dENoYW5nZWR9XG4gKiAqL1xuZXhwb3J0IGNsYXNzIENvbXB1dGF0aW9uVmlldyBleHRlbmRzIEZ1bmN0aW9uVmlldyB7XG4gIHB1YmxpYyBzdGF0aWMgaW5qZWN0ID0gW1xuICAgIHRva2Vucy5zdGF0ZVNlcnZpY2UsXG4gICAgdG9rZW5zLmlucHV0UGFuZWwsXG4gICAgdG9rZW5zLm91dHB1dFBhbmVsLFxuICAgIHRva2Vucy5leHBvcnRQYW5lbCxcbiAgXSBhcyBjb25zdDtcblxuICAvKiogTm90IGludGVudGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgaW4gY29tbW9uIGNhc2UuIFVzZSB7QGxpbmsgQ29tcHV0YXRpb25WaWV3QnVpbGRlcn0gaW5zdGVhZC4gKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YXRlOiBTdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGlucHV0UGFuZWw6IENvbXBvbmVudCxcbiAgICBwdWJsaWMgb3V0cHV0UGFuZWw6IENvbXBvbmVudCxcbiAgICBwdWJsaWMgZXhwb3J0QnV0dG9uOiBDb21wb25lbnQsXG4gICkge1xuICAgIHN1cGVyKHN0YXRlLmZ1bmMpO1xuXG4gICAgaWYgKHRoaXMuc3RhdGUuZnVuYyAhPSBudWxsKVxuICAgICAgdGhpcy5yZW5kZXIodGhpcy5zdGF0ZS5mdW5jKTtcbiAgfVxuXG4gIC8qKiBPdmVycmlkZSB0byBwcm92aWRlIGN1c3RvbSBpbml0aWFsaXphdGlvbi4ge0BsaW5rIG9uVmlld0luaXRpYWxpemVkfSBnZXRzIGZpcmVkIGFmdGVyIHRoYXQuICovXG4gIHB1YmxpYyBhc3luYyByZW5kZXIoZnVuYzogREcuRnVuYyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc3RhdGUuZnVuYyA9IGZ1bmM7XG5cbiAgICBhd2FpdCBzdXBlci5pbml0KHRoaXMuc3RhdGUuZnVuYyk7XG4gICAgdGhpcy5yb290LmlubmVySFRNTCA9ICcnO1xuICAgIHRoaXMucm9vdC5hcHBlbmQodWkuZGl2SChbdGhpcy5pbnB1dFBhbmVsLnJvb3QsIHRoaXMub3V0cHV0UGFuZWwucm9vdF0pKTtcblxuICAgIHRoaXMuc2V0UmliYm9uUGFuZWxzKFtbXG4gICAgICB0aGlzLmV4cG9ydEJ1dHRvbi5yb290LFxuICAgIF1dKTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { Component, ExportService } from '../common/service-interfaces';
2
- export declare class DefaultExportComponent implements Component {
3
- private exportService;
4
- root: HTMLElement;
5
- static inject: readonly ["exportService"];
6
- constructor(exportService: ExportService);
7
- render(): void;
8
- }
9
- //# sourceMappingURL=export-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-component.d.ts","sourceRoot":"","sources":["export-component.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAGtE,qBAAa,sBAAuB,YAAW,SAAS;IAQpD,OAAO,CAAC,aAAa;IAPhB,IAAI,EAAE,WAAW,CAAY;IAEpC,OAAc,MAAM,6BAET;gBAGD,aAAa,EAAE,aAAa;IAKtC,MAAM,IAAI,IAAI;CAQf"}
@@ -1,26 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import * as ui from 'datagrok-api/ui';
11
- import * as DG from 'datagrok-api/dg';
12
- import { tokens } from '../common/inject-tokens';
13
- export class DefaultExportComponent {
14
- constructor(exportService) {
15
- this.exportService = exportService;
16
- this.root = ui.div();
17
- this.render();
18
- }
19
- render() {
20
- this.root = ui.comboPopup(ui.icons.save(null, 'Export'), this.exportService.supportedExportFormats, (format) => __awaiter(this, void 0, void 0, function* () { return DG.Utils.download(this.exportService.filename(format), yield this.exportService.export(format)); }));
21
- }
22
- }
23
- DefaultExportComponent.inject = [
24
- tokens.exportService,
25
- ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV4cG9ydC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLFlBQ1UsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFQL0IsU0FBSSxHQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFTbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsVUFBVSxDQUN2QixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQ3pDLENBQU8sTUFBYyxFQUFFLEVBQUUsZ0RBQ3ZCLE9BQUEsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBLEdBQUEsQ0FDbEcsQ0FBQztJQUNKLENBQUM7O0FBakJhLDZCQUFNLEdBQUc7SUFDckIsTUFBTSxDQUFDLGFBQWE7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0NvbXBvbmVudCwgRXhwb3J0U2VydmljZX0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2UtaW50ZXJmYWNlcyc7XG5pbXBvcnQge3Rva2Vuc30gZnJvbSAnLi4vY29tbW9uL2luamVjdC10b2tlbnMnO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdEV4cG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByb290OiBIVE1MRWxlbWVudCA9IHVpLmRpdigpO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5qZWN0ID0gW1xuICAgIHRva2Vucy5leHBvcnRTZXJ2aWNlLFxuICBdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRXhwb3J0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHJlbmRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJvb3QgPSB1aS5jb21ib1BvcHVwKFxuICAgICAgdWkuaWNvbnMuc2F2ZShudWxsLCAnRXhwb3J0JyksXG4gICAgICB0aGlzLmV4cG9ydFNlcnZpY2Uuc3VwcG9ydGVkRXhwb3J0Rm9ybWF0cyxcbiAgICAgIGFzeW5jIChmb3JtYXQ6IHN0cmluZykgPT5cbiAgICAgICAgREcuVXRpbHMuZG93bmxvYWQodGhpcy5leHBvcnRTZXJ2aWNlLmZpbGVuYW1lKGZvcm1hdCksIGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnQoZm9ybWF0KSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { Component, HistoricalRunService } from '../common/service-interfaces';
2
- export declare class DefaultHistoricalRunComponent implements Component {
3
- private historicalRunService;
4
- root: HTMLElement;
5
- static inject: readonly ["historyService"];
6
- constructor(historicalRunService: HistoricalRunService);
7
- render(): void;
8
- }
9
- //# sourceMappingURL=historical-run-load-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"historical-run-load-component.d.ts","sourceRoot":"","sources":["historical-run-load-component.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,SAAS,EAAE,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAG7E,qBAAa,6BAA8B,YAAW,SAAS;IAOjD,OAAO,CAAC,oBAAoB;IANjC,IAAI,EAAE,WAAW,CAAY;IAEpC,OAAc,MAAM,8BAET;gBAES,oBAAoB,EAAE,oBAAoB;IAI9D,MAAM,IAAI,IAAI;CAcf"}
@@ -1,37 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import * as ui from 'datagrok-api/ui';
11
- import * as DG from 'datagrok-api/dg';
12
- import { tokens } from '../common/inject-tokens';
13
- export class DefaultHistoricalRunComponent {
14
- constructor(historicalRunService) {
15
- this.historicalRunService = historicalRunService;
16
- this.root = ui.div();
17
- this.render();
18
- }
19
- render() {
20
- this.root = ui.iconFA('history', () => {
21
- this.historicalRunService.pullRuns().then((historicalRuns) => __awaiter(this, void 0, void 0, function* () {
22
- const menu = DG.Menu.popup();
23
- let i = 0;
24
- for (const run of historicalRuns) {
25
- //@ts-ignore
26
- menu.item(`${run.func.friendlyName} — ${i}`, () => __awaiter(this, void 0, void 0, function* () { return this.historicalRunService.loadRun(run.id); }));
27
- i++;
28
- }
29
- menu.show();
30
- }));
31
- });
32
- }
33
- }
34
- DefaultHistoricalRunComponent.inject = [
35
- tokens.historyService,
36
- ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1ydW4tbG9hZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJoaXN0b3JpY2FsLXJ1bi1sb2FkLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRS9DLE1BQU0sT0FBTyw2QkFBNkI7SUFPeEMsWUFBb0Isb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFOdkQsU0FBSSxHQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFPbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFPLGNBQWMsRUFBRSxFQUFFO2dCQUNqRSxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1YsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLEVBQUU7b0JBQ2hDLFlBQVk7b0JBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQVMsRUFBRSxnREFBQyxPQUFBLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBLEdBQUEsQ0FBQyxDQUFDO29CQUNwRyxDQUFDLEVBQUUsQ0FBQztpQkFDTDtnQkFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJCYSxvQ0FBTSxHQUFHO0lBQ3JCLE1BQU0sQ0FBQyxjQUFjO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZhbGlkLWpzZG9jICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtDb21wb25lbnQsIEhpc3RvcmljYWxSdW5TZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS1pbnRlcmZhY2VzJztcbmltcG9ydCB7dG9rZW5zfSBmcm9tICcuLi9jb21tb24vaW5qZWN0LXRva2Vucyc7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0SGlzdG9yaWNhbFJ1bkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByb290OiBIVE1MRWxlbWVudCA9IHVpLmRpdigpO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5qZWN0ID0gW1xuICAgIHRva2Vucy5oaXN0b3J5U2VydmljZSxcbiAgXSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhpc3RvcmljYWxSdW5TZXJ2aWNlOiBIaXN0b3JpY2FsUnVuU2VydmljZSkge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICByZW5kZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yb290ID0gdWkuaWNvbkZBKCdoaXN0b3J5JywgKCkgPT4ge1xuICAgICAgdGhpcy5oaXN0b3JpY2FsUnVuU2VydmljZS5wdWxsUnVucygpLnRoZW4oYXN5bmMgKGhpc3RvcmljYWxSdW5zKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbnUgPSBERy5NZW51LnBvcHVwKCk7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBydW4gb2YgaGlzdG9yaWNhbFJ1bnMpIHtcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICBtZW51Lml0ZW0oYCR7cnVuLmZ1bmMuZnJpZW5kbHlOYW1lfSDigJQgJHtpfWAsIGFzeW5jICgpID0+IHRoaXMuaGlzdG9yaWNhbFJ1blNlcnZpY2UubG9hZFJ1bihydW4uaWQpKTtcbiAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgbWVudS5zaG93KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,14 +0,0 @@
1
- import * as DG from 'datagrok-api/dg';
2
- import { Component, StateService } from '../common/service-interfaces';
3
- export declare class DefaultInputPanelComponent implements Component {
4
- private state;
5
- private loadRunsButton;
6
- root: HTMLElement;
7
- /** All inputs that are bound to fields */
8
- inputFields: Record<string, DG.InputBase>;
9
- static inject: readonly ["stateService", "historyPanel"];
10
- constructor(state: StateService, loadRunsButton: Component);
11
- render(): void;
12
- renderRunSection(call: DG.FuncCall): HTMLElement;
13
- }
14
- //# sourceMappingURL=input-panel-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-panel-component.d.ts","sourceRoot":"","sources":["input-panel-component.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAGrE,qBAAa,0BAA2B,YAAW,SAAS;IAYxD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IAZjB,IAAI,EAAE,WAAW,CAAY;IAEpC,0CAA0C;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAM;IAEtD,OAAc,MAAM,4CAGT;gBAGD,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,SAAS;IAKnC,MAAM;IAIN,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,WAAW;CAWjD"}
@@ -1,40 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import * as ui from 'datagrok-api/ui';
11
- import { tokens } from '../common/inject-tokens';
12
- export class DefaultInputPanelComponent {
13
- constructor(state, loadRunsButton) {
14
- this.state = state;
15
- this.loadRunsButton = loadRunsButton;
16
- this.root = ui.div();
17
- /** All inputs that are bound to fields */
18
- this.inputFields = {};
19
- this.render();
20
- }
21
- render() {
22
- this.root = ui.div([this.renderRunSection(this.state.lastCall)], 'ui-div');
23
- }
24
- renderRunSection(call) {
25
- return ui.wait(() => __awaiter(this, void 0, void 0, function* () {
26
- const runButton = ui.bigButton('Run', () => __awaiter(this, void 0, void 0, function* () {
27
- yield this.state.run();
28
- }));
29
- const editor = ui.div([], 'ui-form');
30
- const inputs = yield call.buildEditor(editor, { condensed: true });
31
- editor.appendChild(ui.divH([ui.divV([this.loadRunsButton.root], { style: { 'justify-content': 'center' } }), runButton], { style: { 'justify-content': 'space-between' } }));
32
- return ui.panel([editor]);
33
- }));
34
- }
35
- }
36
- DefaultInputPanelComponent.inject = [
37
- tokens.stateService,
38
- tokens.historyPanel,
39
- ];
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGFuZWwtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5wdXQtcGFuZWwtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHdEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRS9DLE1BQU0sT0FBTywwQkFBMEI7SUFXckMsWUFDVSxLQUFtQixFQUNuQixjQUF5QjtRQUR6QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFXO1FBWjVCLFNBQUksR0FBZ0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXBDLDBDQUEwQztRQUNuQyxnQkFBVyxHQUFpQyxFQUFFLENBQUM7UUFXcEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUI7UUFDaEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQVMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFTLEVBQUU7Z0JBQy9DLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUEsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQW1CLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNqRixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxFQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JLLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBMUJhLGlDQUFNLEdBQUc7SUFDckIsTUFBTSxDQUFDLFlBQVk7SUFDbkIsTUFBTSxDQUFDLFlBQVk7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0NvbXBvbmVudCwgU3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS1pbnRlcmZhY2VzJztcbmltcG9ydCB7dG9rZW5zfSBmcm9tICcuLi9jb21tb24vaW5qZWN0LXRva2Vucyc7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0SW5wdXRQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByb290OiBIVE1MRWxlbWVudCA9IHVpLmRpdigpO1xuXG4gIC8qKiBBbGwgaW5wdXRzIHRoYXQgYXJlIGJvdW5kIHRvIGZpZWxkcyAqL1xuICBwdWJsaWMgaW5wdXRGaWVsZHM6IFJlY29yZDxzdHJpbmcsIERHLklucHV0QmFzZT4gPSB7fTtcblxuICBwdWJsaWMgc3RhdGljIGluamVjdCA9IFtcbiAgICB0b2tlbnMuc3RhdGVTZXJ2aWNlLFxuICAgIHRva2Vucy5oaXN0b3J5UGFuZWwsXG4gIF0gYXMgY29uc3Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdGF0ZTogU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9hZFJ1bnNCdXR0b246IENvbXBvbmVudCxcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICB0aGlzLnJvb3QgPSB1aS5kaXYoW3RoaXMucmVuZGVyUnVuU2VjdGlvbih0aGlzLnN0YXRlLmxhc3RDYWxsISldLCAndWktZGl2Jyk7XG4gIH1cblxuICByZW5kZXJSdW5TZWN0aW9uKGNhbGw6IERHLkZ1bmNDYWxsKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB1aS53YWl0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJ1bkJ1dHRvbiA9IHVpLmJpZ0J1dHRvbignUnVuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnN0YXRlLnJ1bigpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBlZGl0b3IgPSB1aS5kaXYoW10sICd1aS1mb3JtJyk7XG4gICAgICBjb25zdCBpbnB1dHM6IERHLklucHV0QmFzZVtdID0gYXdhaXQgY2FsbC5idWlsZEVkaXRvcihlZGl0b3IsIHtjb25kZW5zZWQ6IHRydWV9KTtcbiAgICAgIGVkaXRvci5hcHBlbmRDaGlsZCh1aS5kaXZIKFt1aS5kaXZWKFt0aGlzLmxvYWRSdW5zQnV0dG9uLnJvb3RdLCB7c3R5bGU6IHsnanVzdGlmeS1jb250ZW50JzogJ2NlbnRlcid9fSksIHJ1bkJ1dHRvbl0sIHtzdHlsZTogeydqdXN0aWZ5LWNvbnRlbnQnOiAnc3BhY2UtYmV0d2Vlbid9fSkpO1xuICAgICAgcmV0dXJuIHVpLnBhbmVsKFtlZGl0b3JdKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { Component, StateService } from '../common/service-interfaces';
2
- export declare class DefaultOutputPanelComponent implements Component {
3
- private state;
4
- root: HTMLElement;
5
- static inject: readonly ["stateService"];
6
- constructor(state: StateService);
7
- render(): void;
8
- }
9
- //# sourceMappingURL=output-panel-component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-panel-component.d.ts","sourceRoot":"","sources":["output-panel-component.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAGrE,qBAAa,2BAA4B,YAAW,SAAS;IAQzD,OAAO,CAAC,KAAK;IAPR,IAAI,EAAE,WAAW,CAAc;IAEtC,OAAc,MAAM,4BAET;gBAGD,KAAK,EAAE,YAAY;IAK7B,MAAM,IAAI,IAAI;CAWf"}
@@ -1,23 +0,0 @@
1
- import * as ui from 'datagrok-api/ui';
2
- import { tokens } from '../common/inject-tokens';
3
- export class DefaultOutputPanelComponent {
4
- constructor(state) {
5
- this.state = state;
6
- this.root = ui.div([]);
7
- this.state.onComputationCompleted.subscribe(() => this.render());
8
- }
9
- render() {
10
- var _a;
11
- const outputs = (_a = this.state.lastCall) === null || _a === void 0 ? void 0 : _a.outputs;
12
- console.log(Object.entries(outputs));
13
- const panel = ui.accordion('Output data');
14
- panel.addPane('Output data', () => {
15
- return ui.divV(Object.entries(outputs).map(([key, val]) => ui.span([`${key}: `, `${val}`])));
16
- });
17
- this.root.replaceWith(panel.root);
18
- }
19
- }
20
- DefaultOutputPanelComponent.inject = [
21
- tokens.stateService,
22
- ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXBhbmVsLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm91dHB1dC1wYW5lbC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFL0MsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNVLEtBQW1CO1FBQW5CLFVBQUssR0FBTCxLQUFLLENBQWM7UUFQdEIsU0FBSSxHQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBU3BDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNOztRQUNKLE1BQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLDBDQUFFLE9BQThCLENBQUM7UUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7WUFDaEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzdFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQXBCYSxrQ0FBTSxHQUFHO0lBQ3JCLE1BQU0sQ0FBQyxZQUFZO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZhbGlkLWpzZG9jICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtDb21wb25lbnQsIFN0YXRlU2VydmljZX0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2UtaW50ZXJmYWNlcyc7XG5pbXBvcnQge3Rva2Vuc30gZnJvbSAnLi4vY29tbW9uL2luamVjdC10b2tlbnMnO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdE91dHB1dFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJvb3Q6IEhUTUxFbGVtZW50ID0gdWkuZGl2KFtdKTtcblxuICBwdWJsaWMgc3RhdGljIGluamVjdCA9IFtcbiAgICB0b2tlbnMuc3RhdGVTZXJ2aWNlLFxuICBdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RhdGU6IFN0YXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5zdGF0ZS5vbkNvbXB1dGF0aW9uQ29tcGxldGVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlcigpKTtcbiAgfVxuXG4gIHJlbmRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRwdXRzID0gdGhpcy5zdGF0ZS5sYXN0Q2FsbD8ub3V0cHV0cyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnNvbGUubG9nKE9iamVjdC5lbnRyaWVzKG91dHB1dHMpKTtcbiAgICBjb25zdCBwYW5lbCA9IHVpLmFjY29yZGlvbignT3V0cHV0IGRhdGEnKTtcbiAgICBwYW5lbC5hZGRQYW5lKCdPdXRwdXQgZGF0YScsICgpID0+IHtcbiAgICAgIHJldHVybiB1aS5kaXZWKFxuICAgICAgICBPYmplY3QuZW50cmllcyhvdXRwdXRzKS5tYXAoKFtrZXksIHZhbF0pID0+IHVpLnNwYW4oW2Ake2tleX06IGAsIGAke3ZhbH1gXSkpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvb3QucmVwbGFjZVdpdGgocGFuZWwucm9vdCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { ExportService, StateService } from '../common/service-interfaces';
2
- export declare class DefaultExportService implements ExportService {
3
- private state;
4
- static inject: readonly ["stateService"];
5
- constructor(state: StateService);
6
- filename(format: string): string;
7
- /** Override to provide supported export formats.
8
- * These formats are available under the "Export" popup on the ribbon panel. */
9
- get supportedExportFormats(): string[];
10
- /** Override to provide custom file extensions for exported formats.
11
- * These formats are available under the "Export" popup on the ribbon panel. */
12
- get supportedExportExtensions(): Record<string, string>;
13
- /** Override to provide custom export. */
14
- export(format: string): Promise<Blob>;
15
- }
16
- //# sourceMappingURL=export-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-service.d.ts","sourceRoot":"","sources":["export-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAyCzE,qBAAa,oBAAqB,YAAW,aAAa;IAMtD,OAAO,CAAC,KAAK;IALf,OAAc,MAAM,4BAET;gBAGD,KAAK,EAAE,YAAY;IAG7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhC;mFAC+E;IAC/E,IAAI,sBAAsB,IAAI,MAAM,EAAE,CAIrC;IAED;mFAC+E;IAC/E,IAAI,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAItD;IAED,yCAAyC;IACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0D5C"}