@datagrok-libraries/statistics 1.9.2 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/css/styles.css +229 -0
  2. package/package.json +3 -2
  3. package/src/fit/const.d.ts +58 -0
  4. package/src/fit/const.d.ts.map +1 -0
  5. package/src/fit/const.js +63 -0
  6. package/src/fit/fit-data.d.ts.map +1 -1
  7. package/src/fit/fit-data.js +37 -5
  8. package/src/fit/new-fit-API.d.ts +6 -0
  9. package/src/fit/new-fit-API.d.ts.map +1 -1
  10. package/src/fit/new-fit-API.js +2 -8
  11. package/src/mpo/dialogs/desirability-mode-dialog.d.ts +14 -0
  12. package/src/mpo/dialogs/desirability-mode-dialog.d.ts.map +1 -0
  13. package/src/mpo/dialogs/desirability-mode-dialog.js +198 -0
  14. package/src/mpo/editors/desirability-editor-factory.d.ts +15 -0
  15. package/src/mpo/editors/desirability-editor-factory.d.ts.map +1 -0
  16. package/src/mpo/editors/desirability-editor-factory.js +11 -0
  17. package/src/mpo/editors/mpo-categorical-editor.d.ts +24 -0
  18. package/src/mpo/editors/mpo-categorical-editor.d.ts.map +1 -0
  19. package/src/mpo/editors/mpo-categorical-editor.js +113 -0
  20. package/src/mpo/editors/mpo-line-editor.d.ts +46 -0
  21. package/src/mpo/editors/mpo-line-editor.d.ts.map +1 -0
  22. package/src/mpo/editors/mpo-line-editor.js +583 -0
  23. package/src/mpo/mpo-profile-editor.d.ts +42 -6
  24. package/src/mpo/mpo-profile-editor.d.ts.map +1 -1
  25. package/src/mpo/mpo-profile-editor.js +368 -59
  26. package/src/mpo/mpo.d.ts +53 -3
  27. package/src/mpo/mpo.d.ts.map +1 -1
  28. package/src/mpo/mpo.js +92 -16
  29. package/src/mpo/utils.d.ts +6 -0
  30. package/src/mpo/utils.d.ts.map +1 -0
  31. package/src/mpo/utils.js +17 -0
  32. package/src/mpo/mpo-line-editor.d.ts +0 -10
  33. package/src/mpo/mpo-line-editor.d.ts.map +0 -1
  34. package/src/mpo/mpo-line-editor.js +0 -258
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desirability-editor-factory.d.ts","sourceRoot":"","sources":["desirability-editor-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAC,oBAAoB,EAAc,MAAM,QAAQ,CAAC;AAIzD,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,SAAS,IAAI,IAAI,CAAC;IAClB,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,yBAAyB;IACpC,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,oBAAoB,EAC1B,KAAK,SAAM,EACX,MAAM,SAAK,EACX,MAAM,UAAQ,GACb,kBAAkB;CAMtB"}
@@ -0,0 +1,11 @@
1
+ import { isNumerical } from '../mpo';
2
+ import { MpoCategoricalEditor } from './mpo-categorical-editor';
3
+ import { MpoDesirabilityLineEditor } from './mpo-line-editor';
4
+ export class DesirabilityEditorFactory {
5
+ static create(prop, width = 300, height = 80, design = false) {
6
+ if (isNumerical(prop))
7
+ return new MpoDesirabilityLineEditor(prop, width, height);
8
+ return new MpoCategoricalEditor(prop, design, false);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaXJhYmlsaXR5LWVkaXRvci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVzaXJhYmlsaXR5LWVkaXRvci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBdUIsV0FBVyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBVzVELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FDWCxJQUEwQixFQUMxQixLQUFLLEdBQUcsR0FBRyxFQUNYLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLEtBQUs7UUFFZCxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxJQUFJLHlCQUF5QixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtQcm9wZXJ0eURlc2lyYWJpbGl0eSwgaXNOdW1lcmljYWx9IGZyb20gJy4uL21wbyc7XG5pbXBvcnQge01wb0NhdGVnb3JpY2FsRWRpdG9yfSBmcm9tICcuL21wby1jYXRlZ29yaWNhbC1lZGl0b3InO1xuaW1wb3J0IHtNcG9EZXNpcmFiaWxpdHlMaW5lRWRpdG9yfSBmcm9tICcuL21wby1saW5lLWVkaXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzaXJhYmlsaXR5RWRpdG9yPFQgPSBhbnk+IHtcbiAgc3VwcG9ydHNNb2RlRGlhbG9nOiBib29sZWFuO1xuICByb290OiBIVE1MRWxlbWVudDtcbiAgb25DaGFuZ2VkOiBTdWJqZWN0PFQ+O1xuICByZWRyYXdBbGwoKTogdm9pZDtcbiAgc2V0UmFuZ2U/KG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldENvbHVtbj8oY29sOiBERy5Db2x1bW4gfCBudWxsKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIERlc2lyYWJpbGl0eUVkaXRvckZhY3Rvcnkge1xuICBzdGF0aWMgY3JlYXRlKFxuICAgIHByb3A6IFByb3BlcnR5RGVzaXJhYmlsaXR5LFxuICAgIHdpZHRoID0gMzAwLFxuICAgIGhlaWdodCA9IDgwLFxuICAgIGRlc2lnbiA9IGZhbHNlLFxuICApOiBEZXNpcmFiaWxpdHlFZGl0b3Ige1xuICAgIGlmIChpc051bWVyaWNhbChwcm9wKSlcbiAgICAgIHJldHVybiBuZXcgTXBvRGVzaXJhYmlsaXR5TGluZUVkaXRvcihwcm9wLCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgIHJldHVybiBuZXcgTXBvQ2F0ZWdvcmljYWxFZGl0b3IocHJvcCwgZGVzaWduLCBmYWxzZSk7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,24 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import { Subject } from 'rxjs';
3
+ import { CategoricalDesirability } from '../mpo';
4
+ export declare class MpoCategoricalEditor {
5
+ root: HTMLDivElement;
6
+ onChanged: Subject<CategoricalDesirability>;
7
+ supportsModeDialog: boolean;
8
+ private _prop;
9
+ private design;
10
+ private showControls;
11
+ private desirabilityInputs;
12
+ private form;
13
+ private columnCategories;
14
+ constructor(prop: CategoricalDesirability, design?: boolean, showControls?: boolean);
15
+ private buildForm;
16
+ private createDesirabilityInput;
17
+ private buildViewForm;
18
+ private buildDesignForm;
19
+ private buildCategoryRow;
20
+ redrawAll(notify?: boolean): void;
21
+ setChoices(choices: string[]): void;
22
+ setColumn(col: DG.Column | null): void;
23
+ }
24
+ //# sourceMappingURL=mpo-categorical-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpo-categorical-editor.d.ts","sourceRoot":"","sources":["mpo-categorical-editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,uBAAuB,EAAC,MAAM,QAAQ,CAAC;AAE/C,qBAAa,oBAAoB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,mCAA0C;IACnD,kBAAkB,EAAE,OAAO,CAAQ;IAEnC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,gBAAgB,CAAyB;gBAErC,IAAI,EAAE,uBAAuB,EAAE,MAAM,UAAQ,EAAE,YAAY,UAAQ;IAQ/E,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,gBAAgB;IA0CxB,SAAS,CAAC,MAAM,GAAE,OAAc,GAAG,IAAI;IAMvC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;CAYvC"}
@@ -0,0 +1,113 @@
1
+ import * as ui from 'datagrok-api/ui';
2
+ import { Subject } from 'rxjs';
3
+ export class MpoCategoricalEditor {
4
+ constructor(prop, design = false, showControls = false) {
5
+ this.onChanged = new Subject();
6
+ this.supportsModeDialog = true;
7
+ this.desirabilityInputs = [];
8
+ this.form = null;
9
+ this.columnCategories = null;
10
+ this._prop = prop;
11
+ this.design = design;
12
+ this.showControls = showControls;
13
+ this.root = ui.divV([], 'statistics-mpo-cat-editor');
14
+ this.buildForm();
15
+ }
16
+ buildForm() {
17
+ var _a;
18
+ const categories = (_a = this._prop.categories) !== null && _a !== void 0 ? _a : [];
19
+ if (this.form) {
20
+ ui.empty(this.root);
21
+ this.form = null;
22
+ this.desirabilityInputs = [];
23
+ }
24
+ if (this.design)
25
+ this.buildDesignForm(categories);
26
+ else
27
+ this.buildViewForm(categories);
28
+ }
29
+ createDesirabilityInput(label, cat) {
30
+ var _a;
31
+ const input = ui.input.float(label, { value: (_a = cat.desirability) !== null && _a !== void 0 ? _a : 0.5, min: 0, max: 1, format: '#0.000',
32
+ onValueChanged: (value) => {
33
+ cat.desirability = value;
34
+ this.onChanged.next(this._prop);
35
+ },
36
+ });
37
+ this.desirabilityInputs.push(input);
38
+ return input;
39
+ }
40
+ buildViewForm(categories) {
41
+ for (const cat of categories)
42
+ this.createDesirabilityInput(cat.name, cat);
43
+ this.form = ui.form(this.desirabilityInputs);
44
+ this.root.append(this.form);
45
+ }
46
+ buildDesignForm(categories) {
47
+ const header = ui.divH([
48
+ ui.divText('Name', 'statistics-mpo-cat-col-header statistics-mpo-cat-name'),
49
+ ui.divText('Score', 'statistics-mpo-cat-col-header statistics-mpo-cat-desirability'),
50
+ ...(this.showControls ? [ui.div([], { style: { width: '40px' } })] : []),
51
+ ], 'statistics-mpo-cat-row statistics-mpo-cat-header-row');
52
+ const rows = categories.map((cat, idx) => this.buildCategoryRow(cat, idx));
53
+ this.form = ui.divV([header, ...rows]);
54
+ this.root.append(this.form);
55
+ }
56
+ buildCategoryRow(cat, idx) {
57
+ const nameInput = this.columnCategories ?
58
+ ui.input.choice('', { items: this.columnCategories, nullable: true, value: cat.name || null,
59
+ onValueChanged: (v) => {
60
+ cat.name = v !== null && v !== void 0 ? v : '';
61
+ this.onChanged.next(this._prop);
62
+ },
63
+ }) :
64
+ ui.input.string('', { value: cat.name, onValueChanged: (v) => {
65
+ cat.name = v;
66
+ this.onChanged.next(this._prop);
67
+ } });
68
+ nameInput.root.classList.add('statistics-mpo-cat-name');
69
+ const desInput = this.createDesirabilityInput('', cat);
70
+ desInput.root.classList.add('statistics-mpo-cat-desirability');
71
+ const elements = [nameInput.root, desInput.root];
72
+ if (this.showControls) {
73
+ const add = ui.icons.add(() => {
74
+ const newCat = { name: this.columnCategories ? '' : `Category ${this._prop.categories.length + 1}`, desirability: 1 };
75
+ this._prop.categories.splice(idx + 1, 0, newCat);
76
+ this.buildForm();
77
+ this.onChanged.next(this._prop);
78
+ });
79
+ const del = ui.icons.delete(() => {
80
+ this._prop.categories.splice(idx, 1);
81
+ this.buildForm();
82
+ this.onChanged.next(this._prop);
83
+ });
84
+ elements.push(ui.divH([add, del], 'statistics-mpo-control-buttons'));
85
+ }
86
+ return ui.divH(elements, 'statistics-mpo-cat-row');
87
+ }
88
+ redrawAll(notify = true) {
89
+ this.buildForm();
90
+ if (notify)
91
+ this.onChanged.next(this._prop);
92
+ }
93
+ setChoices(choices) {
94
+ this.columnCategories = choices;
95
+ this.buildForm();
96
+ }
97
+ setColumn(col) {
98
+ var _a, _b;
99
+ if (!col)
100
+ return;
101
+ this.columnCategories = col.isCategorical ? [...col.categories] : null;
102
+ const existing = new Map((_b = (_a = this._prop.categories) === null || _a === void 0 ? void 0 : _a.map((c) => [c.name, c.desirability])) !== null && _b !== void 0 ? _b : []);
103
+ this._prop.categories = col.categories.map((c) => {
104
+ var _a;
105
+ return ({
106
+ name: c,
107
+ desirability: (_a = existing.get(c)) !== null && _a !== void 0 ? _a : 1,
108
+ });
109
+ });
110
+ this.buildForm();
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBvLWNhdGVnb3JpY2FsLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1wby1jYXRlZ29yaWNhbC1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzdCLE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsWUFBWSxJQUE2QixFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsWUFBWSxHQUFHLEtBQUs7UUFWL0UsY0FBUyxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBQ25ELHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUszQix1QkFBa0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFvQixJQUFJLENBQUM7UUFHL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sU0FBUzs7UUFDZixNQUFNLFVBQVUsR0FBRyxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUM5QjtRQUVE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YSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBQSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTs7WUFBQyxPQUFBLENBQUM7Z0JBQ3pELElBQUksRUFBRSxDQUFDO2dCQUNQLFlBQVksRUFBRSxNQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1DQUFJLENBQUM7YUFDbkMsQ0FBQyxDQUFBO1NBQUEsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDYXRlZ29yaWNhbERlc2lyYWJpbGl0eX0gZnJvbSAnLi4vbXBvJztcblxuZXhwb3J0IGNsYXNzIE1wb0NhdGVnb3JpY2FsRWRpdG9yIHtcbiAgcm9vdDogSFRNTERpdkVsZW1lbnQ7XG4gIG9uQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PENhdGVnb3JpY2FsRGVzaXJhYmlsaXR5PigpO1xuICBzdXBwb3J0c01vZGVEaWFsb2c6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX3Byb3A6IENhdGVnb3JpY2FsRGVzaXJhYmlsaXR5O1xuICBwcml2YXRlIGRlc2lnbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBzaG93Q29udHJvbHM6IGJvb2xlYW47XG4gIHByaXZhdGUgZGVzaXJhYmlsaXR5SW5wdXRzOiBERy5JbnB1dEJhc2VbXSA9IFtdO1xuICBwcml2YXRlIGZvcm06IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29sdW1uQ2F0ZWdvcmllczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wOiBDYXRlZ29yaWNhbERlc2lyYWJpbGl0eSwgZGVzaWduID0gZmFsc2UsIHNob3dDb250cm9scyA9IGZhbHNlKSB7XG4gICAgdGhpcy5fcHJvcCA9IHByb3A7XG4gICAgdGhpcy5kZXNpZ24gPSBkZXNpZ247XG4gICAgdGhpcy5zaG93Q29udHJvbHMgPSBzaG93Q29udHJvbHM7XG4gICAgdGhpcy5yb290ID0gdWkuZGl2VihbXSwgJ3N0YXRpc3RpY3MtbXBvLWNhdC1lZGl0b3InKTtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuX3Byb3AuY2F0ZWdvcmllcyA/PyBbXTtcblxuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHVpLmVtcHR5KHRoaXMucm9vdCk7XG4gICAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgICAgdGhpcy5kZXNpcmFiaWxpdHlJbnB1dHMgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXNpZ24pXG4gICAgICB0aGlzLmJ1aWxkRGVzaWduRm9ybShjYXRlZ29yaWVzKTtcbiAgICBlbHNlXG4gICAgICB0aGlzLmJ1aWxkVmlld0Zvcm0oY2F0ZWdvcmllcyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlc2lyYWJpbGl0eUlucHV0KFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgY2F0OiB7bmFtZTogc3RyaW5nOyBkZXNpcmFiaWxpdHk6IG51bWJlcn0sXG4gICk6IERHLklucHV0QmFzZSB7XG4gICAgY29uc3QgaW5wdXQgPSB1aS5pbnB1dC5mbG9hdChsYWJlbCwge3ZhbHVlOiBjYXQuZGVzaXJhYmlsaXR5ID8/IDAuNSwgbWluOiAwLCBtYXg6IDEsIGZvcm1hdDogJyMwLjAwMCcsXG4gICAgICBvblZhbHVlQ2hhbmdlZDogKHZhbHVlOiBudW1iZXIpID0+IHtcbiAgICAgICAgY2F0LmRlc2lyYWJpbGl0eSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHRoaXMuX3Byb3ApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlc2lyYWJpbGl0eUlucHV0cy5wdXNoKGlucHV0KTtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVmlld0Zvcm0oY2F0ZWdvcmllczoge25hbWU6IHN0cmluZzsgZGVzaXJhYmlsaXR5OiBudW1iZXJ9W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGNhdCBvZiBjYXRlZ29yaWVzKVxuICAgICAgdGhpcy5jcmVhdGVEZXNpcmFiaWxpdHlJbnB1dChjYXQubmFtZSwgY2F0KTtcblxuICAgIHRoaXMuZm9ybSA9IHVpLmZvcm0odGhpcy5kZXNpcmFiaWxpdHlJbnB1dHMpO1xuICAgIHRoaXMucm9vdC5hcHBlbmQodGhpcy5mb3JtKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREZXNpZ25Gb3JtKGNhdGVnb3JpZXM6IHtuYW1lOiBzdHJpbmc7IGRlc2lyYWJpbGl0eTogbnVtYmVyfVtdKTogdm9pZCB7XG4gICAgY29uc3QgaGVhZGVyID0gdWkuZGl2SChbXG4gICAgICB1aS5kaXZUZXh0KCdOYW1lJywgJ3N0YXRpc3RpY3MtbXBvLWNhdC1jb2wtaGVhZGVyIHN0YXRpc3RpY3MtbXBvLWNhdC1uYW1lJyksXG4gICAgICB1aS5kaXZUZXh0KCdTY29yZScsICdzdGF0aXN0aWNzLW1wby1jYXQtY29sLWhlYWRlciBzdGF0aXN0aWNzLW1wby1jYXQtZGVzaXJhYmlsaXR5JyksXG4gICAgICAuLi4odGhpcy5zaG93Q29udHJvbHMgPyBbdWkuZGl2KFtdLCB7c3R5bGU6IHt3aWR0aDogJzQwcHgnfX0pXSA6IFtdKSxcbiAgICBdLCAnc3RhdGlzdGljcy1tcG8tY2F0LXJvdyBzdGF0aXN0aWNzLW1wby1jYXQtaGVhZGVyLXJvdycpO1xuXG4gICAgY29uc3Qgcm93cyA9IGNhdGVnb3JpZXMubWFwKChjYXQsIGlkeCkgPT4gdGhpcy5idWlsZENhdGVnb3J5Um93KGNhdCwgaWR4KSk7XG5cbiAgICB0aGlzLmZvcm0gPSB1aS5kaXZWKFtoZWFkZXIsIC4uLnJvd3NdKTtcbiAgICB0aGlzLnJvb3QuYXBwZW5kKHRoaXMuZm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2F0ZWdvcnlSb3coXG4gICAgY2F0OiB7bmFtZTogc3RyaW5nOyBkZXNpcmFiaWxpdHk6IG51bWJlcn0sXG4gICAgaWR4OiBudW1iZXIsXG4gICk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBuYW1lSW5wdXQgPSB0aGlzLmNvbHVtbkNhdGVnb3JpZXMgP1xuICAgICAgdWkuaW5wdXQuY2hvaWNlKCcnLCB7aXRlbXM6IHRoaXMuY29sdW1uQ2F0ZWdvcmllcywgbnVsbGFibGU6IHRydWUsIHZhbHVlOiBjYXQubmFtZSB8fCBudWxsLFxuICAgICAgICBvblZhbHVlQ2hhbmdlZDogKHYpID0+IHtcbiAgICAgICAgICBjYXQubmFtZSA9IHYgPz8gJyc7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCh0aGlzLl9wcm9wKTtcbiAgICAgICAgfSxcbiAgICAgIH0pIDpcbiAgICAgIHVpLmlucHV0LnN0cmluZygnJywge3ZhbHVlOiBjYXQubmFtZSwgb25WYWx1ZUNoYW5nZWQ6ICh2KSA9PiB7XG4gICAgICAgIGNhdC5uYW1lID0gdjtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCh0aGlzLl9wcm9wKTtcbiAgICAgIH19KTtcbiAgICBuYW1lSW5wdXQucm9vdC5jbGFzc0xpc3QuYWRkKCdzdGF0aXN0aWNzLW1wby1jYXQtbmFtZScpO1xuXG4gICAgY29uc3QgZGVzSW5wdXQgPSB0aGlzLmNyZWF0ZURlc2lyYWJpbGl0eUlucHV0KCcnLCBjYXQpO1xuICAgIGRlc0lucHV0LnJvb3QuY2xhc3NMaXN0LmFkZCgnc3RhdGlzdGljcy1tcG8tY2F0LWRlc2lyYWJpbGl0eScpO1xuXG4gICAgY29uc3QgZWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbbmFtZUlucHV0LnJvb3QsIGRlc0lucHV0LnJvb3RdO1xuXG4gICAgaWYgKHRoaXMuc2hvd0NvbnRyb2xzKSB7XG4gICAgICBjb25zdCBhZGQgPSB1aS5pY29ucy5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDYXQgPSB7bmFtZTogdGhpcy5jb2x1bW5DYXRlZ29yaWVzID8gJycgOiBgQ2F0ZWdvcnkgJHt0aGlzLl9wcm9wLmNhdGVnb3JpZXMubGVuZ3RoICsgMX1gLCBkZXNpcmFiaWxpdHk6IDF9O1xuICAgICAgICB0aGlzLl9wcm9wLmNhdGVnb3JpZXMuc3BsaWNlKGlkeCArIDEsIDAsIG5ld0NhdCk7XG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VkLm5leHQodGhpcy5fcHJvcCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZGVsID0gdWkuaWNvbnMuZGVsZXRlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcHJvcC5jYXRlZ29yaWVzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHRoaXMuX3Byb3ApO1xuICAgICAgfSk7XG5cbiAgICAgIGVsZW1lbnRzLnB1c2godWkuZGl2SChbYWRkLCBkZWxdLCAnc3RhdGlzdGljcy1tcG8tY29udHJvbC1idXR0b25zJykpO1xuICAgIH1cblxuICAgIHJldHVybiB1aS5kaXZIKGVsZW1lbnRzLCAnc3RhdGlzdGljcy1tcG8tY2F0LXJvdycpO1xuICB9XG5cbiAgcmVkcmF3QWxsKG5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICAgIGlmIChub3RpZnkpXG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHRoaXMuX3Byb3ApO1xuICB9XG5cbiAgc2V0Q2hvaWNlcyhjaG9pY2VzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uQ2F0ZWdvcmllcyA9IGNob2ljZXM7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcbiAgfVxuXG4gIHNldENvbHVtbihjb2w6IERHLkNvbHVtbiB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIWNvbClcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuY29sdW1uQ2F0ZWdvcmllcyA9IGNvbC5pc0NhdGVnb3JpY2FsID8gWy4uLmNvbC5jYXRlZ29yaWVzXSA6IG51bGw7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgTWFwKHRoaXMuX3Byb3AuY2F0ZWdvcmllcz8ubWFwKChjKSA9PiBbYy5uYW1lLCBjLmRlc2lyYWJpbGl0eV0pID8/IFtdKTtcbiAgICB0aGlzLl9wcm9wLmNhdGVnb3JpZXMgPSBjb2wuY2F0ZWdvcmllcy5tYXAoKGM6IHN0cmluZykgPT4gKHtcbiAgICAgIG5hbWU6IGMsXG4gICAgICBkZXNpcmFiaWxpdHk6IGV4aXN0aW5nLmdldChjKSA/PyAxLFxuICAgIH0pKTtcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import { DesirabilityLine, NumericalDesirability } from '../mpo';
3
+ import { Subject } from 'rxjs';
4
+ export declare class MpoDesirabilityLineEditor {
5
+ root: HTMLDivElement;
6
+ onChanged: Subject<DesirabilityLine>;
7
+ supportsModeDialog: boolean;
8
+ private _prop;
9
+ private barsLayer?;
10
+ private pendingBarValues?;
11
+ private stage?;
12
+ private layer?;
13
+ private konvaLine?;
14
+ private pointsGroup?;
15
+ private barValues?;
16
+ private redrawFn;
17
+ private specialHandle?;
18
+ onParamsChanged?: (prop: NumericalDesirability) => void;
19
+ private ignoreNextClick;
20
+ private dragScaleX;
21
+ private dragScaleY;
22
+ private _width;
23
+ private _height;
24
+ constructor(prop: NumericalDesirability, width: number, height: number);
25
+ private ensureDefaultLine;
26
+ private updateDragScales;
27
+ private isInPlotArea;
28
+ private initKonva;
29
+ get line(): DesirabilityLine;
30
+ private computeLine;
31
+ private drawAxes;
32
+ getMinX(): number;
33
+ getMaxX(): number;
34
+ getDefaultMean(): number;
35
+ getDefaultSigma(): number;
36
+ getDefaultX0(): number;
37
+ getDefaultK(): number;
38
+ redrawAll(notify?: boolean): void;
39
+ drawBars(values?: number[]): void;
40
+ private enableCurveDrag;
41
+ private addSpecialHandle;
42
+ private showPointEditor;
43
+ setRange(min: number, max: number): void;
44
+ setColumn(col: DG.Column | null): void;
45
+ }
46
+ //# sourceMappingURL=mpo-line-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpo-line-editor.d.ts","sourceRoot":"","sources":["mpo-line-editor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AA2D7B,qBAAa,yBAAyB;IACpC,IAAI,iBAAY;IAChB,SAAS,4BAAmC;IAC5C,kBAAkB,EAAE,OAAO,CAAQ;IAEnC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAW;IAEpC,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAc;IAE5B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAC,CAAW;IAE7B,OAAO,CAAC,QAAQ,CAA8B;IAE9C,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAGxD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAYtE,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,YAAY;YASN,SAAS;IAkPvB,IAAI,IAAI,IAAI,gBAAgB,CAE3B;IAED,OAAO,CAAC,WAAW;IAoCnB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,SAAS,CAAC,MAAM,GAAE,OAAc,GAAG,IAAI;IAqBvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAgE1B,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,gBAAgB;IA2DxB,OAAO,CAAC,eAAe;IAoCvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAkCxC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI;CAOvC"}