@datagrok-libraries/utils 0.2.9 → 0.3.9
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/.eslintrc.json +2 -1
- package/package.json +5 -4
- package/src/computation-view/common/inject-tokens.d.ts +10 -0
- package/src/computation-view/common/inject-tokens.d.ts.map +1 -0
- package/src/computation-view/common/inject-tokens.js +10 -0
- package/src/computation-view/common/service-interfaces.d.ts +40 -0
- package/src/computation-view/common/service-interfaces.d.ts.map +1 -0
- package/src/computation-view/common/service-interfaces.js +2 -0
- package/src/computation-view/computation-view.d.ts +30 -0
- package/src/computation-view/computation-view.d.ts.map +1 -0
- package/src/computation-view/computation-view.js +61 -0
- package/src/computation-view/default-components/export-component.d.ts +9 -0
- package/src/computation-view/default-components/export-component.d.ts.map +1 -0
- package/src/computation-view/default-components/export-component.js +26 -0
- package/src/computation-view/default-components/historical-run-load-component.d.ts +9 -0
- package/src/computation-view/default-components/historical-run-load-component.d.ts.map +1 -0
- package/src/computation-view/default-components/historical-run-load-component.js +37 -0
- package/src/computation-view/default-components/input-panel-component.d.ts +14 -0
- package/src/computation-view/default-components/input-panel-component.d.ts.map +1 -0
- package/src/computation-view/default-components/input-panel-component.js +40 -0
- package/src/computation-view/default-components/output-panel-component.d.ts +9 -0
- package/src/computation-view/default-components/output-panel-component.d.ts.map +1 -0
- package/src/computation-view/default-components/output-panel-component.js +23 -0
- package/src/computation-view/default-services/export-service.d.ts +16 -0
- package/src/computation-view/default-services/export-service.d.ts.map +1 -0
- package/src/computation-view/default-services/export-service.js +116 -0
- package/src/computation-view/default-services/historical-run-service.d.ts +8 -0
- package/src/computation-view/default-services/historical-run-service.d.ts.map +1 -0
- package/src/computation-view/default-services/historical-run-service.js +15 -0
- package/src/computation-view/default-services/state-service.d.ts +16 -0
- package/src/computation-view/default-services/state-service.d.ts.map +1 -0
- package/src/computation-view/default-services/state-service.js +40 -0
- package/src/function-view.d.ts +2 -2
- package/src/function-view.d.ts.map +1 -1
- package/src/function-view.js +1 -1
- package/src/similarity-metrics.d.ts +17 -0
- package/src/similarity-metrics.d.ts.map +1 -1
- package/src/similarity-metrics.js +59 -5
- package/src/computation-view.d.ts +0 -70
- package/src/computation-view.d.ts.map +0 -1
- package/src/computation-view.js +0 -135
package/.eslintrc.json
CHANGED
package/package.json
CHANGED
|
@@ -4,25 +4,26 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"fullName": "Utils",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.3.9",
|
|
8
8
|
"description": "Common utilities",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"cash-dom": "latest",
|
|
11
10
|
"@types/node": "^14.14.37",
|
|
11
|
+
"cash-dom": "latest",
|
|
12
12
|
"datagrok-api": "^0.148.3",
|
|
13
13
|
"dts-bundle": "^0.7.3",
|
|
14
|
+
"exceljs": "^4.3.0",
|
|
14
15
|
"node-fetch": "^2.6.0",
|
|
15
16
|
"rxjs": "^7.4.0",
|
|
16
17
|
"wu": "latest"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
20
|
+
"@types/wu": "latest",
|
|
19
21
|
"@typescript-eslint/eslint-plugin": "^5.11.0",
|
|
20
22
|
"@typescript-eslint/parser": "^5.11.0",
|
|
21
23
|
"eslint": "^8.8.0",
|
|
22
24
|
"eslint-config-google": "^0.14.0",
|
|
23
25
|
"ts-loader": "^9.2.6",
|
|
24
|
-
"typescript": "^4.2.3"
|
|
25
|
-
"@types/wu": "latest"
|
|
26
|
+
"typescript": "^4.2.3"
|
|
26
27
|
},
|
|
27
28
|
"scripts": {
|
|
28
29
|
"link": "npm link",
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-tokens.d.ts","sourceRoot":"","sources":["inject-tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;CAST,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmljZS1pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnQge1xuICByb290OiBIVE1MRWxlbWVudFxuXG4gIHJlbmRlcigpOiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0U2VydmljZSB7XG4gIGdldCBzdXBwb3J0ZWRFeHBvcnRGb3JtYXRzKCk6IHN0cmluZ1tdXG5cbiAgLyoqIE92ZXJyaWRlIHRvIHByb3ZpZGUgY3VzdG9tIGZpbGUgZXh0ZW5zaW9ucyBmb3IgZXhwb3J0ZWQgZm9ybWF0cy5cbiAgICogVGhlc2UgZm9ybWF0cyBhcmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBcIkV4cG9ydFwiIHBvcHVwIG9uIHRoZSByaWJib24gcGFuZWwuICovXG4gIGdldCBzdXBwb3J0ZWRFeHBvcnRFeHRlbnNpb25zKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cblxuICBmaWxlbmFtZShmb3JtYXQ6IHN0cmluZyk6IHN0cmluZ1xuXG4gIC8qKiBPdmVycmlkZSB0byBwcm92aWRlIGN1c3RvbSBleHBvcnQuICovXG4gIGV4cG9ydChmb3JtYXQ6IHN0cmluZyk6IFByb21pc2U8QmxvYj5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZVNlcnZpY2Uge1xuICAvKiogTmFtZSBvZiB2aWV3ICovXG4gIG5hbWU6IHN0cmluZ1xuXG4gIC8qKiBGdW5jdGlvbiBsYXN0IGNhbGwgaW5mbyAqL1xuICBsYXN0Q2FsbDogREcuRnVuY0NhbGwgfCBudWxsO1xuXG4gIC8qKiBNYWluIGZ1bmN0aW9uIG9mIENvbXB1dGF0aW9uVmlldy4gKi9cbiAgZnVuYzogREcuRnVuYyB8IG51bGw7XG5cbiAgLyoqIFRoZSBhY3R1YWwgY29tcHV0YXRpb24gZnVuY3Rpb24uICovXG4gIGNvbXB1dGUoY2FsbDogREcuRnVuY0NhbGwpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKiBNYXBzIGlucHV0cyB0byBwYXJhbWV0ZXJzLCBjb21wdXRlcywgYW5kIG1hcHMgb3V0cHV0IHBhcmFtZXRlcnMgdG8gdGhlIFVJLiAqL1xuICBydW4oKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKiogUHJlcGFyZSBmdW5jIHRvIHJ1biAqL1xuICBwcmVwYXJlKCk6IHZvaWQ7XG5cbiAgb25Db21wdXRhdGlvbkVycm9yOiBTdWJqZWN0PERHLkZ1bmNDYWxsPjtcbiAgb25Db21wdXRhdGlvbkNvbXBsZXRlZDogU3ViamVjdDxERy5GdW5jQ2FsbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yaWNhbFJ1blNlcnZpY2Uge1xuICAvKiogU2F2ZXMgdGhlIGNvbXB1dGF0aW9uIHJlc3VsdHMgdG8gdGhlIGhpc3RvcmljYWwgcmVzdWx0cywgcmV0dXJucyBpdHMgaWQuIFNlZSBhbHNvIHtAbGluayBsb2FkUnVufS4gKi9cbiAgc2F2ZVJ1bihjYWxsOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8c3RyaW5nPlxuXG4gIC8qKiBMb2FkcyB0aGUgc3BlY2lmaWVkIGhpc3RvcmljYWwgcmVzdWx0cy4gU2VlIGFsc28ge0BsaW5rIHNhdmVSdW59LiAqL1xuICBsb2FkUnVuKHJ1bklkOiBzdHJpbmcpOiBQcm9taXNlPERHLkZ1bmNDYWxsPlxuXG4gIC8qKiBQdWxscyBmdW5jdGlvbnMnIGhpc3RvcmljYWwgcnVucyBsaXN0ICovXG4gIHB1bGxSdW5zKCk6IFByb21pc2U8REcuRnVuY0NhbGxbXT5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as DG from 'datagrok-api/dg';
|
|
2
|
+
import { FunctionView } from '../function-view';
|
|
3
|
+
import { Component, StateService } from './common/service-interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for handling Compute models (see https://github.com/datagrok-ai/public/blob/master/help/compute/compute.md).
|
|
6
|
+
* In most cases, the computation is a simple {@link Func}
|
|
7
|
+
* Extend it in cases where a behavior or UI not supported by the {@link FunctionView} is needed.
|
|
8
|
+
*
|
|
9
|
+
* It provides the following functionality out-of-the-box, where each section could be customized:
|
|
10
|
+
* - a structured way to represent input and output parameters: {@link parameters}
|
|
11
|
+
* - generic way to generate UI for inputs, outputs, and interactivity (running the model, etc)
|
|
12
|
+
* - persisting historical results to the db (via {@link parameters})
|
|
13
|
+
* - export (to Excel and PDF): {@link export}
|
|
14
|
+
* - easy loading of historical runs
|
|
15
|
+
* - routing
|
|
16
|
+
* - entering the real, measured (as opposed to predicted) values manually
|
|
17
|
+
* - notifications for changing inputs, completion of computations, etc: {@link onInputChanged}
|
|
18
|
+
* */
|
|
19
|
+
export declare class ComputationView extends FunctionView {
|
|
20
|
+
state: StateService;
|
|
21
|
+
inputPanel: Component;
|
|
22
|
+
outputPanel: Component;
|
|
23
|
+
exportButton: Component;
|
|
24
|
+
static inject: readonly ["stateService", "inputPanel", "outputPanel", "exportPanel"];
|
|
25
|
+
/** Not intented to be used directly in common case. Use {@link ComputationViewBuilder} instead. */
|
|
26
|
+
constructor(state: StateService, inputPanel: Component, outputPanel: Component, exportButton: Component);
|
|
27
|
+
/** Override to provide custom initialization. {@link onViewInitialized} gets fired after that. */
|
|
28
|
+
render(func: DG.Func): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=computation-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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==
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* eslint-disable valid-jsdoc */
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
import * as DG from 'datagrok-api/dg';
|
|
12
|
+
import ExcelJS from 'exceljs';
|
|
13
|
+
import { tokens } from '../common/inject-tokens';
|
|
14
|
+
const getSheetName = (name, direction) => {
|
|
15
|
+
const idealName = `${direction} - ${name}`;
|
|
16
|
+
return (idealName.length > 31) ? name.substring(0, 32) : idealName;
|
|
17
|
+
};
|
|
18
|
+
var DIRECTION;
|
|
19
|
+
(function (DIRECTION) {
|
|
20
|
+
DIRECTION["INPUT"] = "Input";
|
|
21
|
+
DIRECTION["OUTPUT"] = "Output";
|
|
22
|
+
})(DIRECTION || (DIRECTION = {}));
|
|
23
|
+
const scalarsToSheet = (sheet, scalars) => {
|
|
24
|
+
sheet.addRow(['Parameter', 'Value', 'Units']).font = { bold: true };
|
|
25
|
+
scalars.forEach((scalar) => {
|
|
26
|
+
sheet.addRow([scalar.caption, scalar.value, scalar.units]);
|
|
27
|
+
});
|
|
28
|
+
sheet.getColumn(1).width = Math.max(...scalars.map((scalar) => scalar.caption.toString().length), 'Parameter'.length) * 1.2;
|
|
29
|
+
sheet.getColumn(2).width = Math.max(...scalars.map((scalar) => scalar.value.toString().length), 'Value'.length) * 1.2;
|
|
30
|
+
sheet.getColumn(3).width = Math.max(...scalars.map((scalar) => scalar.units.toString().length), 'Units'.length) * 1.2;
|
|
31
|
+
};
|
|
32
|
+
const dfToSheet = (sheet, df) => {
|
|
33
|
+
sheet.addRow(df.columns.names()).font = { bold: true };
|
|
34
|
+
for (let i = 0; i < df.rowCount; i++)
|
|
35
|
+
sheet.addRow([...df.row(i).cells].map((cell) => cell.value));
|
|
36
|
+
for (let i = 0; i < df.columns.length; i++) {
|
|
37
|
+
sheet.getColumn(i + 1).width =
|
|
38
|
+
Math.max(...df.columns.byIndex(i).categories.map((category) => category.toString().length), df.columns.byIndex(i).name.length) * 1.2;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export class DefaultExportService {
|
|
42
|
+
constructor(state) {
|
|
43
|
+
this.state = state;
|
|
44
|
+
}
|
|
45
|
+
filename(format) {
|
|
46
|
+
return `${this.state.name} - ${new Date().toLocaleString()}.${this.supportedExportExtensions[format]}`;
|
|
47
|
+
}
|
|
48
|
+
/** Override to provide supported export formats.
|
|
49
|
+
* These formats are available under the "Export" popup on the ribbon panel. */
|
|
50
|
+
get supportedExportFormats() {
|
|
51
|
+
return [
|
|
52
|
+
'Excel',
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
/** Override to provide custom file extensions for exported formats.
|
|
56
|
+
* These formats are available under the "Export" popup on the ribbon panel. */
|
|
57
|
+
get supportedExportExtensions() {
|
|
58
|
+
return {
|
|
59
|
+
'Excel': 'xlsx',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Override to provide custom export. */
|
|
63
|
+
export(format) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
if (!this.state.func)
|
|
66
|
+
throw new Error(`No function is associated with view`);
|
|
67
|
+
const lastCall = this.state.lastCall;
|
|
68
|
+
if (!lastCall)
|
|
69
|
+
throw new Error(`Function was not called`);
|
|
70
|
+
if (format !== 'Excel')
|
|
71
|
+
throw new Error(`Format "${format}" is not supported.`);
|
|
72
|
+
const BLOB_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
73
|
+
const exportWorkbook = new ExcelJS.Workbook();
|
|
74
|
+
const isScalarType = (type) => (DG.TYPES_SCALAR.has(type));
|
|
75
|
+
const isDataFrame = (type) => (type === DG.TYPE.DATA_FRAME);
|
|
76
|
+
const dfInputs = this.state.func.inputs.filter((input) => isDataFrame(input.propertyType));
|
|
77
|
+
const scalarInputs = this.state.func.inputs.filter((input) => isScalarType(input.propertyType));
|
|
78
|
+
const dfOutputs = this.state.func.outputs.filter((output) => isDataFrame(output.propertyType));
|
|
79
|
+
const scalarOutputs = this.state.func.outputs.filter((output) => isScalarType(output.propertyType));
|
|
80
|
+
dfInputs.forEach((dfInput) => {
|
|
81
|
+
const visibleTitle = dfInput.options.caption || dfInput.name;
|
|
82
|
+
const currentDfSheet = exportWorkbook.addWorksheet(getSheetName(visibleTitle, DIRECTION.INPUT));
|
|
83
|
+
const currentDf = lastCall.inputs[dfInput.name];
|
|
84
|
+
dfToSheet(currentDfSheet, currentDf);
|
|
85
|
+
});
|
|
86
|
+
if (scalarInputs.length) {
|
|
87
|
+
const inputScalarsSheet = exportWorkbook.addWorksheet('Input scalars');
|
|
88
|
+
scalarsToSheet(inputScalarsSheet, scalarInputs.map((scalarInput) => ({
|
|
89
|
+
caption: scalarInput.options['caption'] || scalarInput.name,
|
|
90
|
+
value: lastCall.inputs[scalarInput.name],
|
|
91
|
+
units: scalarInput.options['units'] || '',
|
|
92
|
+
})));
|
|
93
|
+
}
|
|
94
|
+
dfOutputs.forEach((dfOutput) => {
|
|
95
|
+
const visibleTitle = dfOutput.options.caption || dfOutput.name;
|
|
96
|
+
const currentDfSheet = exportWorkbook.addWorksheet(getSheetName(visibleTitle, DIRECTION.OUTPUT));
|
|
97
|
+
const currentDf = lastCall.outputs[dfOutput.name];
|
|
98
|
+
dfToSheet(currentDfSheet, currentDf);
|
|
99
|
+
});
|
|
100
|
+
if (scalarOutputs.length) {
|
|
101
|
+
const outputScalarsSheet = exportWorkbook.addWorksheet('Output scalars');
|
|
102
|
+
scalarsToSheet(outputScalarsSheet, scalarOutputs.map((scalarOutput) => ({
|
|
103
|
+
caption: scalarOutput.options['caption'] || scalarOutput.name,
|
|
104
|
+
value: lastCall.outputs[scalarOutput.name],
|
|
105
|
+
units: scalarOutput.options['units'] || '',
|
|
106
|
+
})));
|
|
107
|
+
}
|
|
108
|
+
const buffer = yield exportWorkbook.xlsx.writeBuffer();
|
|
109
|
+
return new Blob([buffer], { type: BLOB_TYPE });
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
DefaultExportService.inject = [
|
|
114
|
+
tokens.stateService,
|
|
115
|
+
];
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHBvcnQtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FBZ0M7Ozs7Ozs7Ozs7QUFJaEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFFOUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRS9DLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLFNBQW9CLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLFNBQVMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixJQUFLLFNBR0o7QUFIRCxXQUFLLFNBQVM7SUFDWiw0QkFBZSxDQUFBO0lBQ2YsOEJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhJLFNBQVMsS0FBVCxTQUFTLFFBR2I7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQXdCLEVBQUUsT0FBMEQsRUFBRSxFQUFFO0lBQzlHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lB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QyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztLQUFBOztBQXRGYSwyQkFBTSxHQUFHO0lBQ3JCLE1BQU0sQ0FBQyxZQUFZO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZhbGlkLWpzZG9jICovXG5cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgRXhjZWxKUyBmcm9tICdleGNlbGpzJztcbmltcG9ydCB7RXhwb3J0U2VydmljZSwgU3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS1pbnRlcmZhY2VzJztcbmltcG9ydCB7dG9rZW5zfSBmcm9tICcuLi9jb21tb24vaW5qZWN0LXRva2Vucyc7XG5cbmNvbnN0IGdldFNoZWV0TmFtZSA9IChuYW1lOiBzdHJpbmcsIGRpcmVjdGlvbjogRElSRUNUSU9OKSA9PiB7XG4gIGNvbnN0IGlkZWFsTmFtZSA9IGAke2RpcmVjdGlvbn0gLSAke25hbWV9YDtcbiAgcmV0dXJuIChpZGVhbE5hbWUubGVuZ3RoID4gMzEpID8gbmFtZS5zdWJzdHJpbmcoMCwgMzIpIDogaWRlYWxOYW1lO1xufTtcblxuZW51bSBESVJFQ1RJT04ge1xuICBJTlBVVCA9ICdJbnB1dCcsXG4gIE9VVFBVVCA9ICdPdXRwdXQnXG59XG5cbmNvbnN0IHNjYWxhcnNUb1NoZWV0ID0gKHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgc2NhbGFyczoge2NhcHRpb246IHN0cmluZywgdmFsdWU6IHN0cmluZywgdW5pdHM6IHN0cmluZ31bXSkgPT4ge1xuICBzaGVldC5hZGRSb3coWydQYXJhbWV0ZXInLCAnVmFsdWUnLCAnVW5pdHMnXSkuZm9udCA9IHtib2xkOiB0cnVlfTtcbiAgc2NhbGFycy5mb3JFYWNoKChzY2FsYXIpID0+IHtcbiAgICBzaGVldC5hZGRSb3coW3NjYWxhci5jYXB0aW9uLCBzY2FsYXIudmFsdWUsIHNjYWxhci51bml0c10pO1xuICB9KTtcblxuICBzaGVldC5nZXRDb2x1bW4oMSkud2lkdGggPSBNYXRoLm1heChcbiAgICAuLi5zY2FsYXJzLm1hcCgoc2NhbGFyKSA9PiBzY2FsYXIuY2FwdGlvbi50b1N0cmluZygpLmxlbmd0aCksICdQYXJhbWV0ZXInLmxlbmd0aCxcbiAgKSAqIDEuMjtcbiAgc2hlZXQuZ2V0Q29sdW1uKDIpLndpZHRoID0gTWF0aC5tYXgoLi4uc2NhbGFycy5tYXAoKHNjYWxhcikgPT4gc2NhbGFyLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1ZhbHVlJy5sZW5ndGgpICogMS4yO1xuICBzaGVldC5nZXRDb2x1bW4oMykud2lkdGggPSBNYXRoLm1heCguLi5zY2FsYXJzLm1hcCgoc2NhbGFyKSA9PiBzY2FsYXIudW5pdHMudG9TdHJpbmcoKS5sZW5ndGgpLCAnVW5pdHMnLmxlbmd0aCkgKiAxLjI7XG59O1xuXG5jb25zdCBkZlRvU2hlZXQgPSAoc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LCBkZjogREcuRGF0YUZyYW1lKSA9PiB7XG4gIHNoZWV0LmFkZFJvdygoZGYuY29sdW1ucyBhcyBERy5Db2x1bW5MaXN0KS5uYW1lcygpKS5mb250ID0ge2JvbGQ6IHRydWV9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRmLnJvd0NvdW50OyBpKyspXG4gICAgc2hlZXQuYWRkUm93KFsuLi5kZi5yb3coaSkuY2VsbHNdLm1hcCgoY2VsbDogREcuQ2VsbCkgPT4gY2VsbC52YWx1ZSkpO1xuXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZi5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgc2hlZXQuZ2V0Q29sdW1uKGkrMSkud2lkdGggPVxuICAgICAgTWF0aC5tYXgoXG4gICAgICAgIC4uLihkZi5jb2x1bW5zIGFzIERHLkNvbHVtbkxpc3QpLmJ5SW5kZXgoaSkuY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS50b1N0cmluZygpLmxlbmd0aCksXG4gICAgICAgIChkZi5jb2x1bW5zIGFzIERHLkNvbHVtbkxpc3QpLmJ5SW5kZXgoaSkubmFtZS5sZW5ndGgsXG4gICAgICApICogMS4yO1xuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdEV4cG9ydFNlcnZpY2UgaW1wbGVtZW50cyBFeHBvcnRTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyBpbmplY3QgPSBbXG4gICAgdG9rZW5zLnN0YXRlU2VydmljZSxcbiAgXSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlOiBTdGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBmaWxlbmFtZShmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3RhdGUubmFtZX0gLSAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX0uJHt0aGlzLnN1cHBvcnRlZEV4cG9ydEV4dGVuc2lvbnNbZm9ybWF0XX1gO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRvIHByb3ZpZGUgc3VwcG9ydGVkIGV4cG9ydCBmb3JtYXRzLlxuICAgKiBUaGVzZSBmb3JtYXRzIGFyZSBhdmFpbGFibGUgdW5kZXIgdGhlIFwiRXhwb3J0XCIgcG9wdXAgb24gdGhlIHJpYmJvbiBwYW5lbC4gKi9cbiAgZ2V0IHN1cHBvcnRlZEV4cG9ydEZvcm1hdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAnRXhjZWwnLFxuICAgIF07XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdG8gcHJvdmlkZSBjdXN0b20gZmlsZSBleHRlbnNpb25zIGZvciBleHBvcnRlZCBmb3JtYXRzLlxuICAgKiBUaGVzZSBmb3JtYXRzIGFyZSBhdmFpbGFibGUgdW5kZXIgdGhlIFwiRXhwb3J0XCIgcG9wdXAgb24gdGhlIHJpYmJvbiBwYW5lbC4gKi9cbiAgZ2V0IHN1cHBvcnRlZEV4cG9ydEV4dGVuc2lvbnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdFeGNlbCc6ICd4bHN4JyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRvIHByb3ZpZGUgY3VzdG9tIGV4cG9ydC4gKi9cbiAgYXN5bmMgZXhwb3J0KGZvcm1hdDogc3RyaW5nKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmZ1bmMpIHRocm93IG5ldyBFcnJvcihgTm8gZnVuY3Rpb24gaXMgYXNzb2NpYXRlZCB3aXRoIHZpZXdgKTtcblxuICAgIGNvbnN0IGxhc3RDYWxsID0gdGhpcy5zdGF0ZS5sYXN0Q2FsbDtcbiAgICBpZiAoIWxhc3RDYWxsKSB0aHJvdyBuZXcgRXJyb3IoYEZ1bmN0aW9uIHdhcyBub3QgY2FsbGVkYCk7XG5cbiAgICBpZiAoZm9ybWF0ICE9PSAnRXhjZWwnKSB0aHJvdyBuZXcgRXJyb3IoYEZvcm1hdCBcIiR7Zm9ybWF0fVwiIGlzIG5vdCBzdXBwb3J0ZWQuYCk7XG5cbiAgICBjb25zdCBCTE9CX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XG4gICAgY29uc3QgZXhwb3J0V29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpO1xuXG4gICAgY29uc3QgaXNTY2FsYXJUeXBlID0gKHR5cGU6IERHLlRZUEUpID0+IChERy5UWVBFU19TQ0FMQVIuaGFzKHR5cGUpKTtcblxuICAgIGNvbnN0IGlzRGF0YUZyYW1lID0gKHR5cGU6IERHLlRZUEUpID0+ICh0eXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuXG4gICAgY29uc3QgZGZJbnB1dHMgPSB0aGlzLnN0YXRlLmZ1bmMuaW5wdXRzLmZpbHRlcigoaW5wdXQpID0+IGlzRGF0YUZyYW1lKGlucHV0LnByb3BlcnR5VHlwZSkpO1xuICAgIGNvbnN0IHNjYWxhcklucHV0cyA9IHRoaXMuc3RhdGUuZnVuYy5pbnB1dHMuZmlsdGVyKChpbnB1dCkgPT4gaXNTY2FsYXJUeXBlKGlucHV0LnByb3BlcnR5VHlwZSkpO1xuICAgIGNvbnN0IGRmT3V0cHV0cyA9IHRoaXMuc3RhdGUuZnVuYy5vdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBpc0RhdGFGcmFtZShvdXRwdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3Qgc2NhbGFyT3V0cHV0cyA9IHRoaXMuc3RhdGUuZnVuYy5vdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBpc1NjYWxhclR5cGUob3V0cHV0LnByb3BlcnR5VHlwZSkpO1xuXG4gICAgZGZJbnB1dHMuZm9yRWFjaCgoZGZJbnB1dCkgPT4ge1xuICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZJbnB1dC5vcHRpb25zLmNhcHRpb24gfHwgZGZJbnB1dC5uYW1lO1xuICAgICAgY29uc3QgY3VycmVudERmU2hlZXQgPSBleHBvcnRXb3JrYm9vay5hZGRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLklOUFVUKSk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5pbnB1dHNbZGZJbnB1dC5uYW1lXSBhcyBERy5EYXRhRnJhbWUpO1xuICAgICAgZGZUb1NoZWV0KGN1cnJlbnREZlNoZWV0LCBjdXJyZW50RGYpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNjYWxhcklucHV0cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGlucHV0U2NhbGFyc1NoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KCdJbnB1dCBzY2FsYXJzJyk7XG4gICAgICBzY2FsYXJzVG9TaGVldChpbnB1dFNjYWxhcnNTaGVldCwgc2NhbGFySW5wdXRzLm1hcCgoc2NhbGFySW5wdXQpID0+ICh7XG4gICAgICAgIGNhcHRpb246IHNjYWxhcklucHV0Lm9wdGlvbnNbJ2NhcHRpb24nXSB8fCBzY2FsYXJJbnB1dC5uYW1lLFxuICAgICAgICB2YWx1ZTogbGFzdENhbGwuaW5wdXRzW3NjYWxhcklucHV0Lm5hbWVdLFxuICAgICAgICB1bml0czogc2NhbGFySW5wdXQub3B0aW9uc1sndW5pdHMnXSB8fCAnJyxcbiAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgZGZPdXRwdXRzLmZvckVhY2goKGRmT3V0cHV0KSA9PiB7XG4gICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZk91dHB1dC5vcHRpb25zLmNhcHRpb24gfHwgZGZPdXRwdXQubmFtZTtcbiAgICAgIGNvbnN0IGN1cnJlbnREZlNoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5PVVRQVVQpKTtcblxuICAgICAgY29uc3QgY3VycmVudERmID0gKGxhc3RDYWxsLm91dHB1dHNbZGZPdXRwdXQubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcbiAgICAgIGRmVG9TaGVldChjdXJyZW50RGZTaGVldCwgY3VycmVudERmKTtcbiAgICB9KTtcblxuICAgIGlmIChzY2FsYXJPdXRwdXRzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0U2NhbGFyc1NoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KCdPdXRwdXQgc2NhbGFycycpO1xuICAgICAgc2NhbGFyc1RvU2hlZXQob3V0cHV0U2NhbGFyc1NoZWV0LCBzY2FsYXJPdXRwdXRzLm1hcCgoc2NhbGFyT3V0cHV0KSA9PiAoe1xuICAgICAgICBjYXB0aW9uOiBzY2FsYXJPdXRwdXQub3B0aW9uc1snY2FwdGlvbiddIHx8IHNjYWxhck91dHB1dC5uYW1lLFxuICAgICAgICB2YWx1ZTogbGFzdENhbGwub3V0cHV0c1tzY2FsYXJPdXRwdXQubmFtZV0sXG4gICAgICAgIHVuaXRzOiBzY2FsYXJPdXRwdXQub3B0aW9uc1sndW5pdHMnXSB8fCAnJyxcbiAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZXhwb3J0V29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpO1xuXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtidWZmZXJdLCB7dHlwZTogQkxPQl9UWVBFfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as DG from 'datagrok-api/dg';
|
|
2
|
+
import { HistoricalRunService } from '../common/service-interfaces';
|
|
3
|
+
export declare class DefaultHistoricalRunService implements HistoricalRunService {
|
|
4
|
+
saveRun(call: DG.FuncCall): Promise<string>;
|
|
5
|
+
loadRun(runId: string): Promise<DG.FuncCall>;
|
|
6
|
+
pullRuns(): Promise<DG.FuncCall[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=historical-run-service.d.ts.map
|