@datagrok-libraries/utils 0.3.9 → 0.4.2
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/.eslintignore +1 -0
- package/.eslintrc.json +55 -36
- package/package.json +6 -4
- package/src/array-utils.d.ts.map +1 -1
- package/src/array-utils.js +3 -2
- package/src/bit-array.d.ts.map +1 -1
- package/src/bit-array.js +14 -18
- package/src/{computation-view/computation-view.d.ts → computation-view.d.ts} +5 -11
- package/src/computation-view.d.ts.map +1 -0
- package/src/computation-view.js +65 -0
- package/src/function-view.d.ts +38 -7
- package/src/function-view.d.ts.map +1 -1
- package/src/function-view.js +201 -34
- package/src/similarity-metrics.js +1 -1
- package/src/string-utils.d.ts +1 -0
- package/src/string-utils.d.ts.map +1 -1
- package/src/string-utils.js +5 -2
- package/src/table-validation.js +8 -7
- package/src/test.d.ts +7 -1
- package/src/test.d.ts.map +1 -1
- package/src/test.js +43 -15
- package/src/vector-operations.d.ts +14 -10
- package/src/vector-operations.d.ts.map +1 -1
- package/src/vector-operations.js +27 -11
- package/src/computation-view/common/inject-tokens.d.ts +0 -10
- package/src/computation-view/common/inject-tokens.d.ts.map +0 -1
- package/src/computation-view/common/inject-tokens.js +0 -10
- package/src/computation-view/common/service-interfaces.d.ts +0 -40
- package/src/computation-view/common/service-interfaces.d.ts.map +0 -1
- package/src/computation-view/common/service-interfaces.js +0 -2
- package/src/computation-view/computation-view.d.ts.map +0 -1
- package/src/computation-view/computation-view.js +0 -61
- package/src/computation-view/default-components/export-component.d.ts +0 -9
- package/src/computation-view/default-components/export-component.d.ts.map +0 -1
- package/src/computation-view/default-components/export-component.js +0 -26
- package/src/computation-view/default-components/historical-run-load-component.d.ts +0 -9
- package/src/computation-view/default-components/historical-run-load-component.d.ts.map +0 -1
- package/src/computation-view/default-components/historical-run-load-component.js +0 -37
- package/src/computation-view/default-components/input-panel-component.d.ts +0 -14
- package/src/computation-view/default-components/input-panel-component.d.ts.map +0 -1
- package/src/computation-view/default-components/input-panel-component.js +0 -40
- package/src/computation-view/default-components/output-panel-component.d.ts +0 -9
- package/src/computation-view/default-components/output-panel-component.d.ts.map +0 -1
- package/src/computation-view/default-components/output-panel-component.js +0 -23
- package/src/computation-view/default-services/export-service.d.ts +0 -16
- package/src/computation-view/default-services/export-service.d.ts.map +0 -1
- package/src/computation-view/default-services/export-service.js +0 -116
- package/src/computation-view/default-services/historical-run-service.d.ts +0 -8
- package/src/computation-view/default-services/historical-run-service.d.ts.map +0 -1
- package/src/computation-view/default-services/historical-run-service.js +0 -15
- package/src/computation-view/default-services/state-service.d.ts +0 -16
- package/src/computation-view/default-services/state-service.d.ts.map +0 -1
- package/src/computation-view/default-services/state-service.js +0 -40
|
@@ -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"}
|
|
@@ -1,116 +0,0 @@
|
|
|
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==
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"historical-run-service.d.ts","sourceRoot":"","sources":["historical-run-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAElE,qBAAa,2BAA4B,YAAW,oBAAoB;IACtE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;IAI5C,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;CAInC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class DefaultHistoricalRunService {
|
|
2
|
-
saveRun(call) {
|
|
3
|
-
throw new Error('Method is not implemented');
|
|
4
|
-
/* await grok.dapi.functions.calls.save(call);*/
|
|
5
|
-
}
|
|
6
|
-
loadRun(runId) {
|
|
7
|
-
throw new Error('Method is not implemented');
|
|
8
|
-
/* await grok.dapi.functions.calls.find(call.id);*/
|
|
9
|
-
}
|
|
10
|
-
pullRuns() {
|
|
11
|
-
throw new Error('Method is not implemented');
|
|
12
|
-
/* await grok.dapi.functions.calls.list();*/
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1ydW4tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcmljYWwtcnVuLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxPQUFPLENBQUMsSUFBaUI7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzdDLGdEQUFnRDtJQUNsRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQWE7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzdDLG1EQUFtRDtJQUNyRCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM3Qyw0Q0FBNEM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0hpc3RvcmljYWxSdW5TZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS1pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNsYXNzIERlZmF1bHRIaXN0b3JpY2FsUnVuU2VydmljZSBpbXBsZW1lbnRzIEhpc3RvcmljYWxSdW5TZXJ2aWNlIHtcbiAgc2F2ZVJ1bihjYWxsOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2QgaXMgbm90IGltcGxlbWVudGVkJyk7XG4gICAgLyogYXdhaXQgZ3Jvay5kYXBpLmZ1bmN0aW9ucy5jYWxscy5zYXZlKGNhbGwpOyovXG4gIH1cbiAgbG9hZFJ1bihydW5JZDogc3RyaW5nKTogUHJvbWlzZTxERy5GdW5jQ2FsbD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCcpO1xuICAgIC8qIGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHMuZmluZChjYWxsLmlkKTsqL1xuICB9XG4gIHB1bGxSdW5zKCk6IFByb21pc2U8REcuRnVuY0NhbGxbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCcpO1xuICAgIC8qIGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHMubGlzdCgpOyovXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
import * as rxjs from 'rxjs';
|
|
3
|
-
import { StateService } from '../common/service-interfaces';
|
|
4
|
-
export declare class DefaultStateService implements StateService {
|
|
5
|
-
name: string;
|
|
6
|
-
lastCall: DG.FuncCall | null;
|
|
7
|
-
func: DG.Func | null;
|
|
8
|
-
prepare(): void;
|
|
9
|
-
onComputationError: rxjs.Subject<DG.FuncCall>;
|
|
10
|
-
onComputationCompleted: rxjs.Subject<DG.FuncCall>;
|
|
11
|
-
/** The actual computation function. */
|
|
12
|
-
compute(call: DG.FuncCall): Promise<void>;
|
|
13
|
-
/** Maps inputs to parameters, computes, and maps output parameters to the UI. */
|
|
14
|
-
run(): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=state-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-service.d.ts","sourceRoot":"","sources":["state-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,qBAAa,mBAAoB,YAAW,YAAY;IACtD,IAAI,SAAW;IAEf,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAQ;IAE5B,OAAO;IAIA,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAsB;IACnE,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAsB;IAE9E,uCAAuC;IACjC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,iFAAiF;IAC3E,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3B"}
|
|
@@ -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 rxjs from 'rxjs';
|
|
11
|
-
export class DefaultStateService {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.name = 'Model';
|
|
14
|
-
this.lastCall = null;
|
|
15
|
-
this.func = null;
|
|
16
|
-
this.onComputationError = new rxjs.Subject();
|
|
17
|
-
this.onComputationCompleted = new rxjs.Subject();
|
|
18
|
-
}
|
|
19
|
-
prepare() {
|
|
20
|
-
this.lastCall = this.func.prepare();
|
|
21
|
-
}
|
|
22
|
-
/** The actual computation function. */
|
|
23
|
-
compute(call) {
|
|
24
|
-
return __awaiter(this, void 0, void 0, function* () { yield call.call(); });
|
|
25
|
-
}
|
|
26
|
-
/** Maps inputs to parameters, computes, and maps output parameters to the UI. */
|
|
27
|
-
run() {
|
|
28
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
this.lastCall = this.lastCall.clone();
|
|
30
|
-
try {
|
|
31
|
-
yield this.compute(this.lastCall);
|
|
32
|
-
this.onComputationCompleted.next(this.lastCall);
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
this.onComputationError.next(this.lastCall);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBSUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFHN0IsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNFLFNBQUksR0FBRyxPQUFPLENBQUM7UUFFZixhQUFRLEdBQXVCLElBQUksQ0FBQztRQUVwQyxTQUFJLEdBQW1CLElBQUksQ0FBQztRQU1yQix1QkFBa0IsR0FBOEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkUsMkJBQXNCLEdBQThCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBZ0JoRixDQUFDO0lBckJDLE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUtELHVDQUF1QztJQUNqQyxPQUFPLENBQUMsSUFBaUI7OERBQWtCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUEsQ0FBQztLQUFBO0lBRXBFLGlGQUFpRjtJQUMzRSxHQUFHOztZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV2QyxJQUFJO2dCQUNGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pEO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7UUFDSCxDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHZhbGlkLWpzZG9jICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZS1pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNsYXNzIERlZmF1bHRTdGF0ZVNlcnZpY2UgaW1wbGVtZW50cyBTdGF0ZVNlcnZpY2Uge1xuICBuYW1lID0gJ01vZGVsJztcblxuICBsYXN0Q2FsbDogREcuRnVuY0NhbGwgfCBudWxsID0gbnVsbDtcblxuICBmdW5jOiBERy5GdW5jIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJlcGFyZSgpIHtcbiAgICB0aGlzLmxhc3RDYWxsID0gdGhpcy5mdW5jIS5wcmVwYXJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db21wdXRhdGlvbkVycm9yOiByeGpzLlN1YmplY3Q8REcuRnVuY0NhbGw+ID0gbmV3IHJ4anMuU3ViamVjdCgpO1xuICBwdWJsaWMgb25Db21wdXRhdGlvbkNvbXBsZXRlZDogcnhqcy5TdWJqZWN0PERHLkZ1bmNDYWxsPiA9IG5ldyByeGpzLlN1YmplY3QoKTtcblxuICAvKiogVGhlIGFjdHVhbCBjb21wdXRhdGlvbiBmdW5jdGlvbi4gKi9cbiAgYXN5bmMgY29tcHV0ZShjYWxsOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8dm9pZD4ge2F3YWl0IGNhbGwuY2FsbCgpO31cblxuICAvKiogTWFwcyBpbnB1dHMgdG8gcGFyYW1ldGVycywgY29tcHV0ZXMsIGFuZCBtYXBzIG91dHB1dCBwYXJhbWV0ZXJzIHRvIHRoZSBVSS4gKi9cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubGFzdENhbGwgPSB0aGlzLmxhc3RDYWxsIS5jbG9uZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29tcHV0ZSh0aGlzLmxhc3RDYWxsKTtcbiAgICAgIHRoaXMub25Db21wdXRhdGlvbkNvbXBsZXRlZC5uZXh0KHRoaXMubGFzdENhbGwpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMub25Db21wdXRhdGlvbkVycm9yLm5leHQodGhpcy5sYXN0Q2FsbCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|