From 06257dd816368c07614a35adf3ad8a7aae244e14 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Mon, 22 Nov 2021 15:38:04 +0100 Subject: [PATCH 001/117] Use LineUp sass files Now possible since we switched from `node-sass` to `sass` (Dart Sass) https://github.com/phovea/generator-phovea/pull/439 --- dist/scss/vendors/_lineup.scss | 4 ++-- src/scss/vendors/_lineup.scss | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/scss/vendors/_lineup.scss b/dist/scss/vendors/_lineup.scss index e7989b4b1..633b05b69 100644 --- a/dist/scss/vendors/_lineup.scss +++ b/dist/scss/vendors/_lineup.scss @@ -1,9 +1,9 @@ // TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; +$lu_use_font_awesome: true !default; -// use css because importing sass file from src requires font awesome v4 dependency -@import '~lineupjs/build/LineUpJS.css'; +@import '~lineupjs/src/style.scss'; // override the font-size manually (since the SCSS variables above does not work) .lu-tooltip, diff --git a/src/scss/vendors/_lineup.scss b/src/scss/vendors/_lineup.scss index e7989b4b1..633b05b69 100644 --- a/src/scss/vendors/_lineup.scss +++ b/src/scss/vendors/_lineup.scss @@ -1,9 +1,9 @@ // TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; +$lu_use_font_awesome: true !default; -// use css because importing sass file from src requires font awesome v4 dependency -@import '~lineupjs/build/LineUpJS.css'; +@import '~lineupjs/src/style.scss'; // override the font-size manually (since the SCSS variables above does not work) .lu-tooltip, From 2b4fd40c862e7c6da4f72fb03760d967f835abb6 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Mon, 22 Nov 2021 15:55:14 +0100 Subject: [PATCH 002/117] Set missing lu-assets path --- dist/scss/vendors/_lineup.scss | 2 ++ src/scss/vendors/_lineup.scss | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dist/scss/vendors/_lineup.scss b/dist/scss/vendors/_lineup.scss index 633b05b69..060020cc1 100644 --- a/dist/scss/vendors/_lineup.scss +++ b/dist/scss/vendors/_lineup.scss @@ -1,6 +1,8 @@ // TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; + +$lu_assets: '~lineupjs/src/assets' !default; $lu_use_font_awesome: true !default; @import '~lineupjs/src/style.scss'; diff --git a/src/scss/vendors/_lineup.scss b/src/scss/vendors/_lineup.scss index 633b05b69..060020cc1 100644 --- a/src/scss/vendors/_lineup.scss +++ b/src/scss/vendors/_lineup.scss @@ -1,6 +1,8 @@ // TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; + +$lu_assets: '~lineupjs/src/assets' !default; $lu_use_font_awesome: true !default; @import '~lineupjs/src/style.scss'; From 6527d908f495f3b575675cc086059551acecd7e6 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Mon, 22 Nov 2021 15:59:47 +0100 Subject: [PATCH 003/117] Replace custom `font-size` with sass vars --- dist/scss/vendors/_lineup.scss | 12 ------------ src/scss/vendors/_lineup.scss | 12 ------------ 2 files changed, 24 deletions(-) diff --git a/dist/scss/vendors/_lineup.scss b/dist/scss/vendors/_lineup.scss index 060020cc1..465bee044 100644 --- a/dist/scss/vendors/_lineup.scss +++ b/dist/scss/vendors/_lineup.scss @@ -1,4 +1,3 @@ -// TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; @@ -10,8 +9,6 @@ $lu_use_font_awesome: true !default; // override the font-size manually (since the SCSS variables above does not work) .lu-tooltip, .lu-dialog { - font-size: $lu_dialog_font_size; - // adapt LineUp dialogs to Bootstrap v4 dialog style padding: 1rem 1rem 0.5rem; gap: 10px; @@ -47,15 +44,6 @@ $lu_use_font_awesome: true !default; margin: unset; } -.lu-hierarchy-entry, -.lu-hierarchy-adder, -.lu-toolbar, -.lu-more-options, -.lu-side-panel-rankings > i, -.lu-side-panel-ranking-label > i { - font-size: $lu_toolbar_font_size; -} - .lu-summary { font-size: inherit; diff --git a/src/scss/vendors/_lineup.scss b/src/scss/vendors/_lineup.scss index 060020cc1..465bee044 100644 --- a/src/scss/vendors/_lineup.scss +++ b/src/scss/vendors/_lineup.scss @@ -1,4 +1,3 @@ -// TODO override the following SCSS variables once SCSS import is working again $lu_dialog_font_size: 1rem !default; $lu_toolbar_font_size: 1rem !default; @@ -10,8 +9,6 @@ $lu_use_font_awesome: true !default; // override the font-size manually (since the SCSS variables above does not work) .lu-tooltip, .lu-dialog { - font-size: $lu_dialog_font_size; - // adapt LineUp dialogs to Bootstrap v4 dialog style padding: 1rem 1rem 0.5rem; gap: 10px; @@ -47,15 +44,6 @@ $lu_use_font_awesome: true !default; margin: unset; } -.lu-hierarchy-entry, -.lu-hierarchy-adder, -.lu-toolbar, -.lu-more-options, -.lu-side-panel-rankings > i, -.lu-side-panel-ranking-label > i { - font-size: $lu_toolbar_font_size; -} - .lu-summary { font-size: inherit; From ec0c443f214c298c4684e9c224003476d11fedbe Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Thu, 30 Dec 2021 00:21:49 +0100 Subject: [PATCH 004/117] Switch to lineup dep from next to version number Closes #603 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e7c85f8a..f983dcae0 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "dependencies": { "d3": "~3.5.17", "jquery": "~3.5.1", - "lineupjs": "next", + "lineupjs": "~4.3.0", "select2": "~4.0.13", "select2-bootstrap-theme": "0.1.0-beta.9", "lodash": "~4.17.20", From 3000ba4ad57cecc454a21c00617f69a570bec677 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Thu, 30 Dec 2021 00:26:12 +0100 Subject: [PATCH 005/117] Update LineUp dependency to v4.4.0 #603 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f983dcae0..f3e089fe5 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "dependencies": { "d3": "~3.5.17", "jquery": "~3.5.1", - "lineupjs": "~4.3.0", + "lineupjs": "~4.4.0", "select2": "~4.0.13", "select2-bootstrap-theme": "0.1.0-beta.9", "lodash": "~4.17.20", From ac4929fabb9b6db96b4ff6b714f417c41cafaee5 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Thu, 30 Dec 2021 10:33:22 +0100 Subject: [PATCH 006/117] Avoid FA5 import in LineUp with sass variable --- dist/scss/vendors/_lineup.scss | 2 ++ src/scss/vendors/_lineup.scss | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dist/scss/vendors/_lineup.scss b/dist/scss/vendors/_lineup.scss index 465bee044..b075516cc 100644 --- a/dist/scss/vendors/_lineup.scss +++ b/dist/scss/vendors/_lineup.scss @@ -3,6 +3,8 @@ $lu_toolbar_font_size: 1rem !default; $lu_assets: '~lineupjs/src/assets' !default; $lu_use_font_awesome: true !default; +// do not include Font Awesome files from LineUp, but use ours instead +$lu_include_font_awesome: false !default; @import '~lineupjs/src/style.scss'; diff --git a/src/scss/vendors/_lineup.scss b/src/scss/vendors/_lineup.scss index 465bee044..b075516cc 100644 --- a/src/scss/vendors/_lineup.scss +++ b/src/scss/vendors/_lineup.scss @@ -3,6 +3,8 @@ $lu_toolbar_font_size: 1rem !default; $lu_assets: '~lineupjs/src/assets' !default; $lu_use_font_awesome: true !default; +// do not include Font Awesome files from LineUp, but use ours instead +$lu_include_font_awesome: false !default; @import '~lineupjs/src/style.scss'; From cc97dc5a6c5c61ea765f83f32ee71ff16268d7cc Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Fri, 7 Jan 2022 13:59:07 +0100 Subject: [PATCH 007/117] Changes due to LineUp text sanitation in v4.4.0 With PR https://github.com/lineupjs/lineupjs/pull/480 text sanitation was introduced. The searchbox' `formatItem()` has changed. This commit changes our format function accordingly. It also converts the `…` to the unicode pendant. --- dist/lineup/ARankingView.js | 5 +++-- dist/lineup/ARankingView.js.map | 2 +- dist/locales/en/tdp.json | 2 +- src/lineup/ARankingView.ts | 5 +++-- src/locales/en/tdp.json | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/dist/lineup/ARankingView.js b/dist/lineup/ARankingView.js index 0518a7471..794f896d8 100644 --- a/dist/lineup/ARankingView.js +++ b/dist/lineup/ARankingView.js @@ -110,10 +110,11 @@ export class ARankingView extends AView { const desc = node.ownerDocument.createElement('span'); desc.textContent = summary; node.appendChild(desc); - return undefined; } } - return item.text; + else { + node.textContent = item.text; + } }, panelAddColumnBtnOptions: {} }; diff --git a/dist/lineup/ARankingView.js.map b/dist/lineup/ARankingView.js.map index 8842c827a..7c90cc4d7 100644 --- a/dist/lineup/ARankingView.js.map +++ b/dist/lineup/ARankingView.js.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/locales/en/tdp.json b/dist/locales/en/tdp.json index 5d8c90d5f..bc31e4af6 100644 --- a/dist/locales/en/tdp.json +++ b/dist/locales/en/tdp.json @@ -194,7 +194,7 @@ }, "LineupPanelActions": { "rankingPanelTabTitle": "Ranking Configuration", - "searchPlaceholder": "Add Column …", + "searchPlaceholder": "Add Column \u2026", "addColumnButton": "Add Column", "addButton": "Add", "collapseButton": "(Un)Collapse", diff --git a/src/lineup/ARankingView.ts b/src/lineup/ARankingView.ts index 7a8d4a0fe..d90985891 100644 --- a/src/lineup/ARankingView.ts +++ b/src/lineup/ARankingView.ts @@ -126,10 +126,11 @@ export abstract class ARankingView extends AView { const desc = node.ownerDocument.createElement('span'); desc.textContent = summary; node.appendChild(desc); - return undefined; } + + } else { + node.textContent = item.text; } - return item.text; }, panelAddColumnBtnOptions: {} }; diff --git a/src/locales/en/tdp.json b/src/locales/en/tdp.json index 30d350ef6..7986e3cd2 100644 --- a/src/locales/en/tdp.json +++ b/src/locales/en/tdp.json @@ -211,7 +211,7 @@ "LineupPanelActions": { "rankingPanelTabTitle": "Ranking Configuration", - "searchPlaceholder": "Add Column …", + "searchPlaceholder": "Add Column \u2026", "addColumnButton": "Add Column", "addButton": "Add", "collapseButton": "(Un)Collapse", From 781d962ac65c07426d64bec751ac6db3ac8c4462 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Fri, 7 Jan 2022 14:46:55 +0100 Subject: [PATCH 008/117] Style `.lu-dialog-mapper-warning` as Bootstrap alert Closes #606 --- dist/scss/vendors/_lineup.scss | 6 ++++++ src/scss/vendors/_lineup.scss | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/dist/scss/vendors/_lineup.scss b/dist/scss/vendors/_lineup.scss index e7989b4b1..a7eff517b 100644 --- a/dist/scss/vendors/_lineup.scss +++ b/dist/scss/vendors/_lineup.scss @@ -196,3 +196,9 @@ span.lu-mapping-hint { .lu-dialog-rename { width: 20rem; } + +.lu-dialog-mapper-warning { + @extend .alert; // apply base styles of Bootstrap alert + @extend .alert-warning; + margin-bottom: 0; // override margin +} diff --git a/src/scss/vendors/_lineup.scss b/src/scss/vendors/_lineup.scss index e7989b4b1..a7eff517b 100644 --- a/src/scss/vendors/_lineup.scss +++ b/src/scss/vendors/_lineup.scss @@ -196,3 +196,9 @@ span.lu-mapping-hint { .lu-dialog-rename { width: 20rem; } + +.lu-dialog-mapper-warning { + @extend .alert; // apply base styles of Bootstrap alert + @extend .alert-warning; + margin-bottom: 0; // override margin +} From a8d4ce52bdcc626849a1d456e27f87ebe88a7afa Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 3 Feb 2022 15:09:19 +0100 Subject: [PATCH 009/117] Remove hacky patchColumn in tdp_core --- dist/base/extensions.d.ts | 1 - dist/base/extensions.d.ts.map | 2 +- dist/base/extensions.js | 1 - dist/base/extensions.js.map | 2 +- dist/base/interfaces.d.ts | 18 +------ dist/base/interfaces.d.ts.map | 2 +- dist/lineup/ARankingView.d.ts.map | 2 +- dist/lineup/ARankingView.js.map | 2 +- dist/lineup/desc.d.ts | 1 + dist/lineup/desc.d.ts.map | 2 +- dist/lineup/desc.js | 5 +- dist/lineup/desc.js.map | 2 +- dist/lineup/internal/column.d.ts | 1 - dist/lineup/internal/column.d.ts.map | 2 +- dist/lineup/internal/column.js | 63 ----------------------- dist/lineup/internal/column.js.map | 2 +- src/base/extensions.ts | 2 - src/base/interfaces.ts | 20 +------- src/lineup/ARankingView.ts | 5 +- src/lineup/desc.ts | 5 +- src/lineup/internal/column.ts | 74 ++-------------------------- 21 files changed, 24 insertions(+), 190 deletions(-) diff --git a/dist/base/extensions.d.ts b/dist/base/extensions.d.ts index c2adeb686..503ce72ac 100644 --- a/dist/base/extensions.d.ts +++ b/dist/base/extensions.d.ts @@ -25,7 +25,6 @@ export declare const EP_TDP_CORE_LINEUP_PANEL_TAB = "epTdpCoreLineupPanelTab"; * @factoryReturns {IFormElement} An instance of the form element */ export declare const EP_TDP_CORE_FORM_ELEMENT = "epTdpCoreFormElement"; -export declare const EP_TDP_CORE_SCORE_COLUMN_PATCHER = "epTdpCoreScoreColumnPatcher"; /** * Provides the loaded provenance graph * diff --git a/dist/base/extensions.d.ts.map b/dist/base/extensions.d.ts.map index 0c3b9340e..f4dfe9398 100644 --- a/dist/base/extensions.d.ts.map +++ b/dist/base/extensions.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/base/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,8BAA8B,iBAAiB,CAAC;AAC7D,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,kCAAkC,qBAAqB,CAAC;AACrE,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,iCAAiC,oBAAoB,CAAC;AAEnE,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,+BAA+B,kBAAkB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAEtE;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;CAC/C;AAGD,eAAO,MAAM,qCAAqC,gCAAgC,CAAC;AAEnF,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,OAAO;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAE9C,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjE"} \ No newline at end of file +{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/base/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,8BAA8B,iBAAiB,CAAC;AAC7D,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,kCAAkC,qBAAqB,CAAC;AACrE,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,iCAAiC,oBAAoB,CAAC;AAEnE,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,+BAA+B,kBAAkB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAEtE;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;CAC/C;AAGD,eAAO,MAAM,qCAAqC,gCAAgC,CAAC;AAEnF,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,OAAO;IACzD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAE9C,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjE"} \ No newline at end of file diff --git a/dist/base/extensions.js b/dist/base/extensions.js index 1b4c802e6..9cd806a26 100644 --- a/dist/base/extensions.js +++ b/dist/base/extensions.js @@ -24,7 +24,6 @@ export const EP_TDP_CORE_LINEUP_PANEL_TAB = 'epTdpCoreLineupPanelTab'; * @factoryReturns {IFormElement} An instance of the form element */ export const EP_TDP_CORE_FORM_ELEMENT = 'epTdpCoreFormElement'; -export const EP_TDP_CORE_SCORE_COLUMN_PATCHER = 'epTdpCoreScoreColumnPatcher'; /** * Provides the loaded provenance graph * diff --git a/dist/base/extensions.js.map b/dist/base/extensions.js.map index 55861e8a7..9d76eb38e 100644 --- a/dist/base/extensions.js.map +++ b/dist/base/extensions.js.map @@ -1 +1 @@ -{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/base/extensions.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,8BAA8B,GAAG,cAAc,CAAC;AAC7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,kBAAkB,CAAC;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;AACnE,oBAAoB;AACpB,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,eAAe,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,CAAC,MAAM,gCAAgC,GAAG,6BAA6B,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAU7E,2BAA2B;AAC3B,MAAM,CAAC,MAAM,qCAAqC,GAAG,6BAA6B,CAAC"} \ No newline at end of file +{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/base/extensions.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,8BAA8B,GAAG,cAAc,CAAC;AAC7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,kBAAkB,CAAC;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;AACnE,oBAAoB;AACpB,MAAM,CAAC,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AACjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,eAAe,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAU7E,2BAA2B;AAC3B,MAAM,CAAC,MAAM,qCAAqC,GAAG,6BAA6B,CAAC"} \ No newline at end of file diff --git a/dist/base/interfaces.d.ts b/dist/base/interfaces.d.ts index cf2393b96..699d201b6 100644 --- a/dist/base/interfaces.d.ts +++ b/dist/base/interfaces.d.ts @@ -1,4 +1,4 @@ -import { IColumnDesc, Column, LocalDataProvider } from 'lineupjs'; +import { IColumnDesc, LocalDataProvider } from 'lineupjs'; import { AppHeader } from '../components'; import { IAuthorizationConfiguration } from '../auth'; import { PanelTab } from '../lineup/panel'; @@ -126,22 +126,6 @@ export interface IScoreLoaderExtensionDesc extends IPluginDesc { }; load(): Promise; } -/** - * Extension to patch a LineUp column generated as score. - */ -export interface IScoreColumnPatcherExtension { - /** - * Patcher function called for every column to patch. - * @param pluginDesc Description of the plugin. - * @param colDesc Description of the column. - * @param rows Rows from the score. - * @param col Column to patch. - */ - factory(pluginDesc: IPluginDesc, colDesc: IAdditionalColumnDesc, rows: IScoreRow[], col: Column): Promise; -} -export interface IScoreColumnPatcherExtensionDesc extends IPluginDesc { - load(): Promise; -} export interface IRankingButtonExtension { desc: IRankingButtonExtensionDesc; factory(desc: IRankingButtonExtensionDesc, idType: IDType, extraArgs: object): Promise; diff --git a/dist/base/interfaces.d.ts.map b/dist/base/interfaces.d.ts.map index 4efbfa803..5590407f9 100644 --- a/dist/base/interfaces.d.ts.map +++ b/dist/base/interfaces.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/base/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE;QACb;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,WAAW,GAAG,IAAI,IAAI,qBAAqB,CAE/G;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,MAAM,IAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAElE;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElF;;;OAGG;IACH,6BAA6B,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC,CAAC;CACnI;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjD,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,qBAAqB,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtH;AAED,MAAM,WAAW,gCAAiC,SAAQ,WAAW;IACnE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,4BAA4B,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrG;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,uBAAuB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACzF;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE/I;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9D;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE5C;;OAEG;IACH,qBAAqB,CAAC,IAAI,MAAM,EAAE,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;CAC/F;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;IAC5G;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;IAE/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC;IAEvG;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;CAClG;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC;CAC1F;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;CACnD"} \ No newline at end of file +{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/base/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE;QACb;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,WAAW,GAAG,IAAI,IAAI,qBAAqB,CAE/G;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,MAAM,IAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAElE;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElF;;;OAGG;IACH,6BAA6B,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC,CAAC;CACnI;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC5D,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjD,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,qBAAqB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrG;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC9D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,uBAAuB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACzF;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,kBAAkB,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE/I;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9D;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAE5C;;OAEG;IACH,qBAAqB,CAAC,IAAI,MAAM,EAAE,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;CAC/F;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;IAC5G;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;IAE/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC;IAEvG;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;CAClG;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC;CAC1F;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC7D,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;CACnD"} \ No newline at end of file diff --git a/dist/lineup/ARankingView.d.ts.map b/dist/lineup/ARankingView.d.ts.map index 084c2188a..9d2b1f2eb 100644 --- a/dist/lineup/ARankingView.d.ts.map +++ b/dist/lineup/ARankingView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.d.ts","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ARankingView.d.ts","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/lineup/ARankingView.js.map b/dist/lineup/ARankingView.js.map index a50c8cf0a..13a1f5eae 100644 --- a/dist/lineup/ARankingView.js.map +++ b/dist/lineup/ARankingView.js.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EAId,OAAO,EAGP,iBAAiB,EACjB,YAAY,EACZ,cAAc,EAEd,gBAAgB,EAChB,cAAc,GAIf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAA4B,SAAS,EAA4C,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAA0C,MAAM,QAAQ,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C;;;GAGG;AACH,MAAM,OAAgB,YAAa,SAAQ,KAAK;IA2G9C;;;;;;;;;;OAUG;IACH,YAAY,OAAqB,EAAE,SAAqB,EAAE,MAAmB,EAAE,UAAyC,EAAE;QACxH,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAtHpC;;;WAGG;QACK,SAAI,GAAgB,IAAI,CAAC;QAExB,gBAAW,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAelC;;;WAGG;QACO,YAAO,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAEjE;;;WAGG;QACO,eAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;QAEvE;;WAEG;QACO,uBAAkB,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAE/H;;;WAGG;QACO,UAAK,GAAiB,IAAI,CAAC;QAEpB,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAE1B,YAAO,GAAmC;YAC3D,QAAQ,EAAE,MAAM;YAChB,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,wBAAwB,EAAE,IAAI;YAC9B,+BAA+B,EAAE,IAAI;YACrC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/B,kBAAkB,EAAE,IAAI;YACxB,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;YACpB,iBAAiB,EAAE,IAAI;YACvB,mBAAmB,EAAE,IAAI;YACzB,0BAA0B,EAAE,KAAK;YACjC,0BAA0B,EAAE,IAAI;YAChC,4BAA4B,EAAE,IAAI;YAClC,wBAAwB,EAAE,IAAI;YAC9B,2BAA2B,EAAE,IAAI;YACjC,2BAA2B,EAAE,IAAI;YACjC,oBAAoB,EAAE,EAAE;YACxB,2BAA2B,EAAE,IAAI;YACjC,yBAAyB,EAAE,IAAI;YAC/B,eAAe,EAAE,WAAW;YAC5B,mBAAmB,EAAE,IAAI;YACzB,uBAAuB,EAAE,KAAK;YAC9B,oBAAoB,EAAE,KAAK;YAC3B,aAAa,EAAE,EAAE;YACjB,qBAAqB,EAAE;gBACrB,wBAAwB,EAAE,QAAQ;gBAClC,eAAe,EAAE,QAAQ;gBACzB,cAAc,EAAE,IAAI;gBACpB,yBAAyB,EAAE,KAAK;aACjC;YACD,mBAAmB,EAAE,CAAC,IAAqD,EAAE,IAAiB,EAAiB,EAAE;gBAC/G,iCAAiC;gBACjC,SAAS,aAAa,CAAC,CAAkD;oBACvE,OAAQ,CAAmB,CAAC,IAAI,IAAI,IAAI,CAAC;gBAC3C,CAAC;gBAED,IAAI,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;oBAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC3D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACtE,IAAI,OAAO,EAAE;wBACX,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBACvD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;wBACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBACtD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;wBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;qBACxB;iBACF;qBAAM;oBACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBAC9B;YACH,CAAC;YACD,wBAAwB,EAAE,EAAE;SAC7B,CAAC;QAkBA,sCAAsC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU;YACpC,CAAC,CAAC;gBACE,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI;gBAC5E,cAAc,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI;aACnF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ;YAC5B,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAS,OAAO,CAAC,QAAS,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,EAAE;YAC7H,CAAC,CAAC,EAAE,CAAC;QACP,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrF,2DAA2D;QAC3D,yKAAyK;QACzK,mHAAmH;QACnH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAExF,MAAM,aAAa,GAAmB,SAAS,CAAC,KAAK,CACnD,cAAc,EAAE,EAChB,IAAI,CAAC,OAAO,CAAC,aAAa,EACD;YACvB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;YAC/C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC1D,EACD,OAAO,CAAC,aAAa,CACtB,CAAC;QAEF,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE;YACpF,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;SACtD;aAAM,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YACrC,aAAa,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;gBACnC,aAAa,EAAE,aAAa,CAAC,SAAS;gBACtC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChB,MAAM,EAAE,CAAC,IAA6B,EAAE,EAAE;;oBACxC,aAAO,CAAC,CAAC,IAAI,CAAC,mCAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC1F,CAAC;aACF,CAAC,CAAC;SACJ;QAED,MAAM,YAAY,GAAgB,IAAI,CAAC,IAAI,CAAC,iBAAkB,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAC5C,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC;YAChE,CAAC,CAAC,IAAI,cAAc,CAChB,IAAI,CAAC,QAAQ,EACb,YAAY,EACZ,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC3B,gBAAgB,EAAE,CAAC,CAAQ,EAAE,SAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;aACtF,CAAC,CACH,CAAC;QAEN,yGAAyG;QACzG,uHAAuH;QACvH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3G,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACpF,wGAAwG;QACxG,0FAA0F;QAC1F,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,KAAe,EAAE,IAAY,EAAE,WAAmB,EAAE,GAAyB,EAAE,EAAE;YAC/I,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,SAAsB,EAAE,EAAE;YAC1F,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,SAAiB,EAAE,OAAe,EAAE,MAAW,EAAE,EAAE;YAC3H,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,GAAG,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,MAAW,EAAE,gBAAyB,EAAE,EAAE;gBACjG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,QAAQ,EAAE;gBAChD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;aACjE;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACnE;SACF;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,qBAAqB,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,GAAe,EAAE,EAAE;YAClG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,MAAmB,EAAE,iBAAiF;QACzG,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACrD,eAAe;YACf,MAAM,IAAI,GAAgB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;YACjE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;YACtE,MAAM,SAAS,GAAgB,IAAI,CAAC,gBAAiB,CAAC;YACtD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE;gBAC1C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;gBAC7E,SAAS,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAChE;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACO,sBAAsB;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,QAAQ;QAChB,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7G,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACvF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC/B,CAAC;IAES,gBAAgB;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACvF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,GAAG,EAAE,CAAC,IAAwB,EAAE,EAAE,CAChC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClF,CAAC,CAAC;YACJ,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE,CACzB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAe;QACzB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3C,OAAO;SACR;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,IAAI,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;wBACxB,OAAO;qBACR;oBACD,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACtB,OAAO;SACR;QAED,MAAM,CAAC,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IACE,CAAC,KAAK,WAAW;gBACjB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;gBACtB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;gBACrB,CAAC,CAAC,IAAK,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB;cACjD;gBACA,qBAAqB;aACtB;iBAAM;gBACL,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAe,EAAE,IAAY,EAAE,WAAmB,EAAE,GAAyB;QACtG,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACzH,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,+CAA+C,CAAC,EAAE,IAAI,CAAC,CAAC;QAClI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEO,SAAS,CAAC,OAA8B,EAAE,IAA+B,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,QAAiB;QAC3G,kGAAkG;QAC5F,OAAQ,CAAC,YAAY,GAAS,OAAQ,CAAC,YAAY,CAAC,CAAC,CAAO,OAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzJ,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC3E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,KAAkB,EAAE,QAAiB;QAC1D,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,KAAK,UAAU;YAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;YAChD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC;QAEnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,wDAAwD;QACxD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,MAAM,QAAQ,GAA8B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,qEAAqE;QAC5J,MAAM,KAAK,GAAG,QAAQ,YAAY,UAAU,IAAI,QAAQ,YAAY,WAAW,IAAI,QAAQ,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,gGAAgG;QACtP,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,aAAa,GAAoB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7D,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAA8B,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9D,CAAC,KAAK,IAAI,EAAE;;gBACV,wCAAwC;gBACxC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC;gBAChC;;mBAEG;gBACH,IAAI,YAAY,GAA6B,IAAI,CAAC;gBAClD,iEAAiE;gBACjE,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,OAAO,CAAC,IAAI,EAAE;oBACZ,4CAA4C;oBAC5C,MAAM,eAAe,CAAC,iBAAiB,CAAC,aAAM,KAAK,CAAC,6BAA6B,+CAAnC,KAAK,EAAkC,EAAE;wBACrF,2DAA2D;wBAC3D,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;4BACxD,MAAM,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC;4BAChC,wCAAwC;4BACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;4BAC5E,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;gCACtC,0BAA0B;gCAC1B,IAAI,GAAG,IAAI,CAAC;gCACZ,OAAO;6BACR;4BACD,4CAA4C;4BAC5C,IAAI,OAAO,GAAG,UAAU,CAAC,aAAa,CAAiB,4BAA4B,CAAC,CAAC;4BACrF,IAAI,CAAC,OAAO,EAAE;gCACZ,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gCACxD,OAAO,CAAC,SAAS,GAAG,2BAA2B,CAAC;gCAChD,wDAAwD;gCACxD,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;6BACjC;4BAED,IAAI,MAAM,KAAK,0BAA0B,CAAC,OAAO,EAAE;gCACjD,OAAO,CAAC,MAAM,EAAE,CAAC;6BAClB;iCAAM;gCACL,OAAO,CAAC,SAAS,GAAG,GAClB,CAAC;oCACC,CAAC,CAAC,oCAAoC;oCACtC,CAAC,CAAC,MAAM,KAAK,0BAA0B,CAAC,OAAO;wCAC/C,CAAC,CAAC,yCAAyC;wCAC3C,CAAC,CAAC,6BACN,uDACE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,wDAAwD,CACjH,SAAS,CAAC;gCACV,OAAO,CAAC,KAAK,GAAG,CAAC;oCACf,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;oCACd,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6DAA6D,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;gCACzI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gCACjC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;6BACnC;wBACH,CAAC;qBACF,CAAC,CAAC;oBAEH,IAAI;wBACF,YAAY,GAAG,IAAI,CAAC;wBACpB,4CAA4C;wBAC5C,OAAO,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;wBACzD,OAAO;qBACR;oBAAC,OAAO,CAAC,EAAE;wBACV,IAAI,CAAC,YAAY,iBAAiB,EAAE;4BAClC,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;4BAC/E,YAAY,GAAG,CAAC,CAAC;4BACjB,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE;gCACtB,oEAAoE;gCACpE,6FAA6F;gCAC7F,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;6BACxC;iCAAM;gCACL,wCAAwC;gCACxC,IAAI,GAAG,IAAI,CAAC;gCACZ,SAAS;6BACV;4BACD,SAAS;yBACV;6BAAM;4BACL,MAAM,CAAC,CAAC;yBACT;qBACF;iBACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAErB,0CAA0C;QAC1C,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;YACpB,MAAM,MAAM,GAA8B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,qEAAqE;YAC1J,MAAM,GAAG,GAAG,MAAM,YAAY,UAAU,IAAI,MAAM,YAAY,WAAW,IAAI,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,gGAAgG;YAC1O,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAES,YAAY,CAAC,WAAW,GAAG,KAAK;QACxC,IAAI,MAAM,GAAmC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAa,CAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAE7H,IAAI,WAAW,EAAE;YACf,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,eAAe,CAAI,CAAU;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAkB,EAAE,QAAiB;QACzD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,sBAAsB,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAW;QAC5E,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrG,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,QAAgB;QACvC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAcD;;;;OAIG;IACO,cAAc,CAAC,OAAwB;QAC/C,OAAO,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,yEAAyE;YACzE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,IAAqB,GAAI,CAAC,OAAO,IAAI,IAAI,EAAE;oBACnC,GAAI,CAAC,aAAa,GAAoB,GAAI,CAAC,OAAO,CAAC;oBACzD,OAAwB,GAAI,CAAC,OAAO,CAAC;iBACtC;aACF;YACD,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,OAAO,GAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,kBAAkB;gBAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;aACjF;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEhC,+BAA+B;YAC/B,qBAAqB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;aACjD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,WAAW,CAAC,MAAyB;QAC7C,OAAO;IACT,CAAC;IAES,oBAAoB,CAAC,MAAyB,EAAE,UAA2C,EAAE;QACrG,eAAe,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB,CAAC,OAAwB;QACjD,OAAO;IACT,CAAC;IAES,aAAa,CAAC,IAAY;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACjH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjE,CAAC;IAEO,cAAc;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACzE,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,WAAW;QACjB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;YAC3D,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAC/E,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,IAAI,KAAK,IAC3F,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EACpG,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAC5C,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC,CAAC,EAClH,EAAE,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAExC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACO,KAAK;QACb,QAAQ;QACR,OAAO,qBAAqB,CAAC,WAAW,EAAE;aACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACzB,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;CACF"} \ No newline at end of file diff --git a/dist/lineup/desc.d.ts b/dist/lineup/desc.d.ts index 39fe398fb..c5363cff6 100644 --- a/dist/lineup/desc.d.ts +++ b/dist/lineup/desc.d.ts @@ -50,6 +50,7 @@ export declare class ColumnDescUtils { * @param {(string | Partial)[]} categories description of the categories * @param {Partial} options * @returns {IAdditionalColumnDesc} + * @deprecated use `LineUpBuilder` instead, i.e. `buildCategoricalColumn(column).categories(categories).custom('initialRanking', true)`. */ static categoricalCol(column: string, categories: (string | Partial)[], options?: Partial): IAdditionalColumnDesc; static hierarchicalCol(column: string, hierarchy: ICategoryNode, options?: Partial): IAdditionalColumnDesc; diff --git a/dist/lineup/desc.d.ts.map b/dist/lineup/desc.d.ts.map index 69c7e43df..a86cd4a30 100644 --- a/dist/lineup/desc.d.ts.map +++ b/dist/lineup/desc.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"desc.d.ts","sourceRoot":"","sources":["../../src/lineup/desc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIjB,WAAW,EACX,SAAS,EACT,aAAa,EAGd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,CAAC;IACvI;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,UAAU;IAkBzB,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOpH;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOxH;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAUhJ,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAO9H;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAI9F;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOjH;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAM/F,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IA+B9C,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAyCtG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;IAkB7C,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,OAAO,CAAC,MAAM,CAAC,eAAe;CA+B/B"} \ No newline at end of file +{"version":3,"file":"desc.d.ts","sourceRoot":"","sources":["../../src/lineup/desc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAIjB,WAAW,EACX,SAAS,EACT,aAAa,EAGd,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,CAAC;IACvI;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,UAAU;IAkBzB,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOpH;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOxH;;;;;;;OAOG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAUhJ,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAO9H;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAI9F;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAOjH;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,qBAAqB;IAM/F,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IA+B9C,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAyCtG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;IAkB7C,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,OAAO,CAAC,MAAM,CAAC,eAAe;CA+B/B"} \ No newline at end of file diff --git a/dist/lineup/desc.js b/dist/lineup/desc.js index d4f9e73e2..f69ffd7f9 100644 --- a/dist/lineup/desc.js +++ b/dist/lineup/desc.js @@ -41,6 +41,7 @@ export class ColumnDescUtils { * @param {(string | Partial)[]} categories description of the categories * @param {Partial} options * @returns {IAdditionalColumnDesc} + * @deprecated use `LineUpBuilder` instead, i.e. `buildCategoricalColumn(column).categories(categories).custom('initialRanking', true)`. */ static categoricalCol(column, categories, options = {}) { if (ColumnDescUtils.isHierarchical(categories)) { @@ -174,11 +175,11 @@ export class ColumnDescUtils { }); } static isHierarchical(categories) { - if (categories.length === 0 || typeof categories[0] === 'string') { + if ((categories === null || categories === void 0 ? void 0 : categories.length) === 0 || typeof (categories === null || categories === void 0 ? void 0 : categories[0]) === 'string') { return false; } // check if any has a given parent name - return categories.some((c) => c.parent != null); + return categories === null || categories === void 0 ? void 0 : categories.some((c) => c.parent != null); } static deriveHierarchy(categories) { const lookup = new Map(); diff --git a/dist/lineup/desc.js.map b/dist/lineup/desc.js.map index 033da7ad6..65f438398 100644 --- a/dist/lineup/desc.js.map +++ b/dist/lineup/desc.js.map @@ -1 +1 @@ -{"version":3,"file":"desc.js","sourceRoot":"","sources":["../../src/lineup/desc.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EAKb,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAiCzC,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,UAAmC,EAAE;QAC7E,gDAAgD;QAChD,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,EAAE;YACT,cAAc,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAChE,KAAK,EAAE,CAAC,CAAC;YACT,UAAU,EAAE,CAAC,CAAC;YACd,eAAe,EAAE,SAAS;SAC3B,EACD,OAAO,EACP,OAAO,CAAC,MAAM,IAAI,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAc,EAAE,IAAW,EAAE,UAAmC,EAAE;QAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,UAAmC,EAAE;QAC9F,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,UAA2C,EAAE,UAAmC,EAAE;QACtH,IAAI,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;YAC9C,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAQ,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;SAC7G;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,EAAE,aAAa;YACnB,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,SAAwB,EAAE,UAAmC,EAAE;QACpG,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,EAAE,WAAW;YACjB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,UAAmC,EAAE;QACpE,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAmC,EAAE;QACvF,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAC/D,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,UAAmC,EAAE;QACrE,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YAChE,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAe;QAC9B,MAAM,CAAC,GAAQ;YACb,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;SACtB,CAAC;QACF,MAAM,IAAI,GAAQ,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACtB;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC5B;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,QAAQ,GAAG,CAAC,IAAI,EAAE;YAChB,KAAK,cAAc,CAAC,iBAAiB;gBACnC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACR,KAAK,cAAc,CAAC,sBAAsB;gBACxC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC;gBACvB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,MAAM;YACR,KAAK,cAAc,CAAC,eAAe,CAAC;YACpC,KAAK,cAAc,CAAC,cAAc;gBAChC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAClB,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;gBACrB,MAAM;YACR;gBACE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAClB,MAAM;SACT;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,QAA2B,EAAE,UAA2C,EAAE;QACpG,MAAM,CAAC,GAAqC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;QAEpH,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACtD;SACF;aAAM,IAAI,CAAC,EAAE;YACZ,CAAC,CAAC,QAAQ,EAAE,CAAC;SACd;QAED,IAAI,CAAC,CAAC,SAAS,EAAE;YACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,CAAC,SAAS,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SACtD;QAED,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,GAAkB,EAAE,CAAC;YAC/B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAO,CAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBACpE,IAAI,GAAG,EAAE;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAkB,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAyB,CAAE,CAAC,cAAc,CAAC,CAAC;QACpH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAExD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAwB;QAC3C,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CACjC,KAAK;aACF,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAChB,KAAK,aAAa;oBAChB,OAAO,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpG,KAAK,QAAQ;oBACX,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjG;oBACE,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAChF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,UAA2C;QACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAChE,OAAO,KAAK,CAAC;SACd;QACD,uCAAuC;QACvC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAO,CAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,UAA8D;QAC3F,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAChD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;YACzB,wBAAwB;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACT;gBACb,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC,CAAC,IAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAK;gBACb,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,CAAC;aACT,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAK,CAAC,IAAI,EAAE,EACzB,CAAC,CACF,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAClB,eAAe;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;aACpF;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,wBAAwB,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"desc.js","sourceRoot":"","sources":["../../src/lineup/desc.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/lineup/internal/column.d.ts b/dist/lineup/internal/column.d.ts index 936239212..49876b2ac 100644 --- a/dist/lineup/internal/column.d.ts +++ b/dist/lineup/internal/column.d.ts @@ -10,6 +10,5 @@ export declare class LazyColumn { pushDesc(col: IColumnDesc): void; }, position: number, done?: () => void): ILazyLoadedColumn; private static markLoaded; - private static patchColumn; } //# sourceMappingURL=column.d.ts.map \ No newline at end of file diff --git a/dist/lineup/internal/column.d.ts.map b/dist/lineup/internal/column.d.ts.map index 5135e0d60..bc7e240a2 100644 --- a/dist/lineup/internal/column.d.ts.map +++ b/dist/lineup/internal/column.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/lineup/internal/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAiF,MAAM,EAAgB,MAAM,UAAU,CAAC;AAG3J,OAAO,EAAE,SAAS,EAAoC,MAAM,uBAAuB,CAAC;AAKpF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAYD,qBAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAClB,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAC/B,QAAQ,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,EAC9D,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,iBAAiB;IA6DpB,OAAO,CAAC,MAAM,CAAC,UAAU;mBAYJ,WAAW;CAkDjC"} \ No newline at end of file +{"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../src/lineup/internal/column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAClB,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAC/B,QAAQ,EAAE,aAAa,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,EAC9D,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,iBAAiB;IA2DpB,OAAO,CAAC,MAAM,CAAC,UAAU;CAS1B"} \ No newline at end of file diff --git a/dist/lineup/internal/column.js b/dist/lineup/internal/column.js index c8726e5bc..795c120ca 100644 --- a/dist/lineup/internal/column.js +++ b/dist/lineup/internal/column.js @@ -1,19 +1,5 @@ -import { toCategories } from 'lineupjs'; -import { extent, min, max } from 'd3'; import { LineupUtils } from '../utils'; -import { EP_TDP_CORE_SCORE_COLUMN_PATCHER } from '../../base/extensions'; import { ErrorAlertHandler } from '../../base/ErrorAlertHandler'; -import { PluginRegistry } from '../../app'; -function extentByType(type, rows, acc) { - switch (type) { - case 'numbers': - return [min(rows, (d) => min(acc(d))), max(rows, (d) => max(acc(d)))]; - case 'boxplot': - return [min(rows, (d) => acc(d).min), max(rows, (d) => acc(d).max)]; - default: - return extent(rows, acc); - } -} export class LazyColumn { static addLazyColumn(colDesc, data, provider, position, done) { const ranking = provider.getLastRanking(); @@ -46,7 +32,6 @@ export class LazyColumn { // success const loaded = data.then(async (rows) => { accessor.setRows(rows); - await LazyColumn.patchColumn(colDesc, rows, col); LazyColumn.markLoaded(provider, colDesc, true); if (done) { done(); @@ -60,7 +45,6 @@ export class LazyColumn { // success return newData.then(async (rows) => { accessor.setRows(rows); - await LazyColumn.patchColumn(colDesc, rows, col); LazyColumn.markLoaded(provider, colDesc, true); return col; }); @@ -73,55 +57,8 @@ export class LazyColumn { const columns = ranking.flatColumns.filter((rankCol) => rankCol.desc === colDesc); columns.forEach((column) => column.setLoaded(loaded)); }); - // mark the description as loaded true // mark as lazy loaded colDesc.lazyLoaded = !loaded; } - static async patchColumn(colDesc, rows, col) { - if (colDesc.type === 'number' || colDesc.type === 'boxplot' || colDesc.type === 'numbers') { - const ncol = col; - if (!colDesc.constantDomain || colDesc.constantDomain === 'max' || colDesc.constantDomain === 'min') { - // create a dynamic range if not fixed - const domain = extentByType(colDesc.type, rows, (d) => d.score); - if (colDesc.constantDomain === 'min') { - domain[0] = colDesc.domain[0]; - } - else if (colDesc.constantDomain === 'max') { - domain[1] = colDesc.domain[1]; - } - // HACK by pass the setMapping function and set it inplace - const ori = ncol.original; - const current = ncol.mapping; - colDesc.domain = domain; - ori.domain = domain; - current.domain = domain; - } - } - if (colDesc.type === 'numbers' && rows.length > 0) { - // hack in the data length - const ncol = col; - const columns = rows._columns; - // inject labels - if (columns) { - ncol.originalLabels = colDesc.labels = columns; - } - ncol._dataLength = colDesc.dataLength = rows[0].score.length; - } - if (colDesc.type === 'categorical' && rows._categories) { - const ccol = col; - colDesc.categories = rows._categories; - const categories = toCategories(colDesc); - ccol.categories = categories; - ccol.lookup.clear(); - categories.forEach((c) => ccol.lookup.set(c.name, c)); - } - // Await all patchers to complete before returning - await Promise.all(PluginRegistry.getInstance() - .listPlugins(EP_TDP_CORE_SCORE_COLUMN_PATCHER) - .map(async (pluginDesc) => { - const plugin = await pluginDesc.load(); - plugin.factory(pluginDesc, colDesc, rows, col); - })); - } } //# sourceMappingURL=column.js.map \ No newline at end of file diff --git a/dist/lineup/internal/column.js.map b/dist/lineup/internal/column.js.map index e440eb714..ab2b99276 100644 --- a/dist/lineup/internal/column.js.map +++ b/dist/lineup/internal/column.js.map @@ -1 +1 @@ -{"version":3,"file":"column.js","sourceRoot":"","sources":["../../../src/lineup/internal/column.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"column.js","sourceRoot":"","sources":["../../../src/lineup/internal/column.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/base/extensions.ts b/src/base/extensions.ts index 1cb93a309..0962d9758 100644 --- a/src/base/extensions.ts +++ b/src/base/extensions.ts @@ -30,8 +30,6 @@ export const EP_TDP_CORE_LINEUP_PANEL_TAB = 'epTdpCoreLineupPanelTab'; */ export const EP_TDP_CORE_FORM_ELEMENT = 'epTdpCoreFormElement'; -export const EP_TDP_CORE_SCORE_COLUMN_PATCHER = 'epTdpCoreScoreColumnPatcher'; - /** * Provides the loaded provenance graph * diff --git a/src/base/interfaces.ts b/src/base/interfaces.ts index b85b72251..3e4211982 100644 --- a/src/base/interfaces.ts +++ b/src/base/interfaces.ts @@ -1,4 +1,4 @@ -import { IColumnDesc, Column, LocalDataProvider } from 'lineupjs'; +import { IColumnDesc, LocalDataProvider } from 'lineupjs'; import { AppHeader } from '../components'; import { IAuthorizationConfiguration } from '../auth'; import { PanelTab } from '../lineup/panel'; @@ -139,24 +139,6 @@ export interface IScoreLoaderExtensionDesc extends IPluginDesc { load(): Promise; } -/** - * Extension to patch a LineUp column generated as score. - */ -export interface IScoreColumnPatcherExtension { - /** - * Patcher function called for every column to patch. - * @param pluginDesc Description of the plugin. - * @param colDesc Description of the column. - * @param rows Rows from the score. - * @param col Column to patch. - */ - factory(pluginDesc: IPluginDesc, colDesc: IAdditionalColumnDesc, rows: IScoreRow[], col: Column): Promise; -} - -export interface IScoreColumnPatcherExtensionDesc extends IPluginDesc { - load(): Promise; -} - export interface IRankingButtonExtension { desc: IRankingButtonExtensionDesc; factory(desc: IRankingButtonExtensionDesc, idType: IDType, extraArgs: object): Promise; diff --git a/src/lineup/ARankingView.ts b/src/lineup/ARankingView.ts index 5dd59ebd6..e08b6bedb 100644 --- a/src/lineup/ARankingView.ts +++ b/src/lineup/ARankingView.ts @@ -15,6 +15,7 @@ import { updateLodRules, UIntTypedArray, IGroupSearchItem, + IValueColumnDesc, } from 'lineupjs'; import { AView } from '../views/AView'; import { IViewContext, ISelection, EViewMode, IScore, IScoreRow, IAdditionalColumnDesc } from '../base/interfaces'; @@ -433,9 +434,9 @@ export abstract class ARankingView extends AView { this.fire(AView.EVENT_UPDATE_ENTRY_POINT, namedSet); } - private addColumn(colDesc: any, data: Promise[]>, id = -1, position?: number): ILazyLoadedColumn { + private addColumn(colDesc: IValueColumnDesc, data: Promise[]>, id = -1, position?: number): ILazyLoadedColumn { // use `colorMapping` as default; otherwise use `color`, which is deprecated; else get a new color - colDesc.colorMapping = colDesc.colorMapping ? colDesc.colorMapping : colDesc.color ? colDesc.color : this.colors.getColumnColor(id); + (colDesc).colorMapping = (colDesc).colorMapping ? (colDesc).colorMapping : colDesc.color ? colDesc.color : this.colors.getColumnColor(id); return LazyColumn.addLazyColumn(colDesc, data, this.provider, position, () => { this.taggle.update(); }); diff --git a/src/lineup/desc.ts b/src/lineup/desc.ts index 8fc324ee7..a0efbb697 100644 --- a/src/lineup/desc.ts +++ b/src/lineup/desc.ts @@ -92,6 +92,7 @@ export class ColumnDescUtils { * @param {(string | Partial)[]} categories description of the categories * @param {Partial} options * @returns {IAdditionalColumnDesc} + * @deprecated use `LineUpBuilder` instead, i.e. `buildCategoricalColumn(column).categories(categories).custom('initialRanking', true)`. */ static categoricalCol(column: string, categories: (string | Partial)[], options: Partial = {}): IAdditionalColumnDesc { if (ColumnDescUtils.isHierarchical(categories)) { @@ -237,11 +238,11 @@ export class ColumnDescUtils { } private static isHierarchical(categories: (string | Partial)[]) { - if (categories.length === 0 || typeof categories[0] === 'string') { + if (categories?.length === 0 || typeof categories?.[0] === 'string') { return false; } // check if any has a given parent name - return categories.some((c) => (c).parent != null); + return categories?.some((c) => (c).parent != null); } private static deriveHierarchy(categories: (Partial & { parent: string | null })[]) { diff --git a/src/lineup/internal/column.ts b/src/lineup/internal/column.ts index 94ec8ba58..73e017ebd 100644 --- a/src/lineup/internal/column.ts +++ b/src/lineup/internal/column.ts @@ -1,10 +1,7 @@ -import { IDataProvider, IColumnDesc, ScaleMappingFunction, ValueColumn, NumberColumn, BoxPlotColumn, NumbersColumn, Column, toCategories } from 'lineupjs'; -import { extent, min, max } from 'd3'; +import { IDataProvider, IColumnDesc, ValueColumn, Column } from 'lineupjs'; import { LineupUtils } from '../utils'; -import { IScoreRow, IScoreColumnPatcherExtensionDesc } from '../../base/interfaces'; -import { EP_TDP_CORE_SCORE_COLUMN_PATCHER } from '../../base/extensions'; +import { IScoreRow } from '../../base/interfaces'; import { ErrorAlertHandler } from '../../base/ErrorAlertHandler'; -import { PluginRegistry } from '../../app'; export interface ILazyLoadedColumn { col: Column; @@ -12,16 +9,6 @@ export interface ILazyLoadedColumn { reload: (data: Promise[]>) => Promise; } -function extentByType(type: string, rows: any, acc: (d: any) => any): [number, number] { - switch (type) { - case 'numbers': - return [min(rows, (d) => min(acc(d))), max(rows, (d) => max(acc(d)))]; - case 'boxplot': - return [min(rows, (d) => acc(d).min), max(rows, (d) => acc(d).max)]; - default: - return extent(rows, acc); - } -} export class LazyColumn { static addLazyColumn( colDesc: any, @@ -64,7 +51,6 @@ export class LazyColumn { // success const loaded = data.then(async (rows: IScoreRow[]) => { accessor.setRows(rows); - await LazyColumn.patchColumn(colDesc, rows, col); LazyColumn.markLoaded(provider, colDesc, true); if (done) { @@ -81,7 +67,6 @@ export class LazyColumn { // success return newData.then(async (rows: IScoreRow[]) => { accessor.setRows(rows); - await LazyColumn.patchColumn(colDesc, rows, col); LazyColumn.markLoaded(provider, colDesc, true); return col; }); @@ -96,60 +81,7 @@ export class LazyColumn { const columns = ranking.flatColumns.filter((rankCol) => rankCol.desc === colDesc); columns.forEach((column) => (>column).setLoaded(loaded)); }); - - // mark the description as loaded true // mark as lazy loaded - (colDesc).lazyLoaded = !loaded; - } - - private static async patchColumn(colDesc: any, rows: IScoreRow[], col: Column): Promise { - if (colDesc.type === 'number' || colDesc.type === 'boxplot' || colDesc.type === 'numbers') { - const ncol = col; - if (!colDesc.constantDomain || colDesc.constantDomain === 'max' || colDesc.constantDomain === 'min') { - // create a dynamic range if not fixed - const domain = extentByType(colDesc.type, rows, (d) => d.score); - if (colDesc.constantDomain === 'min') { - domain[0] = colDesc.domain[0]; - } else if (colDesc.constantDomain === 'max') { - domain[1] = colDesc.domain[1]; - } - // HACK by pass the setMapping function and set it inplace - const ori = (ncol).original; - const current = (ncol).mapping; - colDesc.domain = domain; - ori.domain = domain; - current.domain = domain; - } - } - - if (colDesc.type === 'numbers' && rows.length > 0) { - // hack in the data length - const ncol = col; - const columns = (rows)._columns; - // inject labels - if (columns) { - (ncol).originalLabels = (colDesc).labels = columns; - } - (ncol)._dataLength = (colDesc).dataLength = rows[0].score.length; - } - - if (colDesc.type === 'categorical' && (rows)._categories) { - const ccol = col; - colDesc.categories = (rows)._categories; - const categories = toCategories(colDesc); - ccol.categories = categories; - ccol.lookup.clear(); - categories.forEach((c) => ccol.lookup.set(c.name, c)); - } - - // Await all patchers to complete before returning - await Promise.all( - PluginRegistry.getInstance() - .listPlugins(EP_TDP_CORE_SCORE_COLUMN_PATCHER) - .map(async (pluginDesc: IScoreColumnPatcherExtensionDesc) => { - const plugin = await pluginDesc.load(); - plugin.factory(pluginDesc, colDesc, rows, col); - }), - ); + colDesc.lazyLoaded = !loaded; } } From e73d2a72dfbda9d2e03acb0362bf4aab215f25e8 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 3 Feb 2022 15:11:29 +0100 Subject: [PATCH 010/117] Changed lineupjs to github install --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0f2a9610..50463bad3 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "dependencies": { "d3": "~3.5.17", "jquery": "~3.5.1", - "lineupjs": "~4.4.0", + "lineupjs": "github:lineupjs/lineupjs#develop", "select2": "~4.0.13", "select2-bootstrap-theme": "0.1.0-beta.9", "lodash": "~4.17.20", From 4218c06bf701b6447fa5fcf7695f47389ec48851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=BChringer?= <51900829+puehringer@users.noreply.github.com> Date: Wed, 16 Feb 2022 07:58:53 +0100 Subject: [PATCH 011/117] Switch to lineup release/v4.5.0 branch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 50463bad3..0f5c33564 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "dependencies": { "d3": "~3.5.17", "jquery": "~3.5.1", - "lineupjs": "github:lineupjs/lineupjs#develop", + "lineupjs": "github:lineupjs/lineupjs#release/v4.5.0", "select2": "~4.0.13", "select2-bootstrap-theme": "0.1.0-beta.9", "lodash": "~4.17.20", From bc369036548416dbb04c73b09f60b496dcaf4449 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 16 Feb 2022 13:17:59 +0100 Subject: [PATCH 012/117] Changed formatSearchBoxItem to allow html --- dist/lineup/ARankingView.d.ts.map | 2 +- dist/lineup/ARankingView.js | 10 +++++----- dist/lineup/ARankingView.js.map | 2 +- src/lineup/ARankingView.ts | 9 +++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/dist/lineup/ARankingView.d.ts.map b/dist/lineup/ARankingView.d.ts.map index 9dc46d78c..36ff6325f 100644 --- a/dist/lineup/ARankingView.d.ts.map +++ b/dist/lineup/ARankingView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.d.ts","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAQd,iBAAiB,EAEjB,cAAc,EAOf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAa,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAKnH,OAAO,EAAmB,sBAAsB,EAAkB,MAAM,QAAQ,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAY,iBAAiB,EAAoB,MAAM,+BAA+B,CAAC;AAE9F,OAAO,EAAc,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAY9D;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,KAAK;IAC9C;;;OAGG;IACH,OAAO,CAAC,IAAI,CAAqB;IAEjC,QAAQ,CAAC,WAAW,WAAc;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAEpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IAEzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IAExD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C;;;OAGG;IACH,SAAS,CAAC,OAAO,yBAAgD;IAEjE;;;OAGG;IACH,SAAS,CAAC,UAAU,yBAAmD;IAEvE;;OAEG;IACH,SAAS,CAAC,kBAAkB,yBAAmG;IAE/H;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAQ;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAyDxD;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAE5D;;;;;;;;;;OAUG;gBACS,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAgI1H;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IAe3G,MAAM;IAIN;;OAEG;IACH,SAAS,IAAI,cAAc,GAAG,cAAc;IAI5C;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,IAAI,iBAAiB;IAIrD;;OAEG;IACH,SAAS,CAAC,QAAQ;IAKlB;;;OAGG;IACH,IAAI,UAAU,+BAEb;IAED,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IAQjE,SAAS,CAAC,oBAAoB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IAMzD,SAAS,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IAOrD,OAAO,CAAC,aAAa;IAkBrB;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS;YAkDb,YAAY;IAO1B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,cAAc;IA+GtB,SAAS,CAAC,YAAY,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;cAY3C,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxF,OAAO,CAAC,sBAAsB;IAI9B;;;;OAIG;IACH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO5D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAE/D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAE9C;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,qBAAqB,EAAE;IAI3E,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,KAAK;IAoCb,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB;IAI/C,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAIvG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe;IAInD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;IAOpC,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,iBAAiB;IAkBjB;;OAEG;IACH,SAAS,CAAC,KAAK;CAWhB"} \ No newline at end of file +{"version":3,"file":"ARankingView.d.ts","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/lineup/ARankingView.js b/dist/lineup/ARankingView.js index 3f769abac..d3b30186e 100644 --- a/dist/lineup/ARankingView.js +++ b/dist/lineup/ARankingView.js @@ -108,16 +108,16 @@ export class ARankingView extends AView { node.classList.toggle('lu-searchbox-summary-entry', Boolean(summary)); if (summary) { const label = node.ownerDocument.createElement('span'); - label.textContent = item.desc.label; + label.innerHTML = item.desc.label; node.appendChild(label); const desc = node.ownerDocument.createElement('span'); - desc.textContent = summary; + desc.innerHTML = summary; node.appendChild(desc); + return undefined; } } - else { - node.textContent = item.text; - } + node.innerHTML = item.text; + return item.text; }, panelAddColumnBtnOptions: {}, }; diff --git a/dist/lineup/ARankingView.js.map b/dist/lineup/ARankingView.js.map index 75e74d28b..18b22be6f 100644 --- a/dist/lineup/ARankingView.js.map +++ b/dist/lineup/ARankingView.js.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lineup/ARankingView.ts b/src/lineup/ARankingView.ts index 3dae186bf..ba67abdce 100644 --- a/src/lineup/ARankingView.ts +++ b/src/lineup/ARankingView.ts @@ -143,15 +143,16 @@ export abstract class ARankingView extends AView { node.classList.toggle('lu-searchbox-summary-entry', Boolean(summary)); if (summary) { const label = node.ownerDocument.createElement('span'); - label.textContent = item.desc.label; + label.innerHTML = item.desc.label; node.appendChild(label); const desc = node.ownerDocument.createElement('span'); - desc.textContent = summary; + desc.innerHTML = summary; node.appendChild(desc); + return undefined; } - } else { - node.textContent = item.text; } + node.innerHTML = item.text; + return item.text; }, panelAddColumnBtnOptions: {}, }; From 691c9ba2db1eb96b4b85c633facc31227d365c47 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 17 Feb 2022 08:30:40 +0100 Subject: [PATCH 013/117] Switch back to #develop branch for testing --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d0ff5cd2d..9df07947c 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "d3": "~3.5.17", "i18next": "^19.8.4", "jquery": "~3.5.1", - "lineupjs": "github:lineupjs/lineupjs#release/v4.5.0", + "lineupjs": "github:lineupjs/lineupjs#develop", "lodash": "~4.17.20", "marked": "~3.0.2", "md5": "^2.3.0", From d41e3c7009490dac29f439b111aecf461bceb820 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Fri, 4 Mar 2022 12:11:49 +0100 Subject: [PATCH 014/117] Switched lineupjs to ~4.5.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9df07947c..5fdc54655 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "d3": "~3.5.17", "i18next": "^19.8.4", "jquery": "~3.5.1", - "lineupjs": "github:lineupjs/lineupjs#develop", + "lineupjs": "~4.5.0", "lodash": "~4.17.20", "marked": "~3.0.2", "md5": "^2.3.0", From 0b93981915dc2df6af433ec2791f00ed01bd3bf7 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Fri, 18 Mar 2022 12:37:54 +0100 Subject: [PATCH 015/117] Initial FastAPI migration --- .circleci/config.yml | 2 +- deploy/Dockerfile | 21 + deploy/Dockerfile_dev | 17 + deploy/docker-compose.partial.yml | 20 + dist/base/LoginUtils.d.ts | 4 +- dist/base/LoginUtils.d.ts.map | 2 +- dist/base/LoginUtils.js | 15 +- dist/base/LoginUtils.js.map | 2 +- dist/base/ThumbnailUtils.d.ts | 4 +- dist/base/ThumbnailUtils.d.ts.map | 2 +- dist/base/ThumbnailUtils.js | 46 +- dist/base/ThumbnailUtils.js.map | 2 +- dist/components/dialogs.d.ts.map | 2 +- dist/dummy/DummyReactView.d.ts | 1 + dist/dummy/DummyReactView.d.ts.map | 2 +- docs/.gitignore | 1 - package.json | 4 +- requirements.txt | 31 +- requirements_dev.txt | 3 +- src/base/LoginUtils.ts | 15 +- src/base/ThumbnailUtils.ts | 52 +- tdp_core/__init__.py | 172 +-- tdp_core/config.json | 55 - tdp_core/config.py | 27 - tdp_core/dataset/__init__.py | 0 tdp_core/dataset/dataset.py | 86 ++ tdp_core/dataset/dataset_api.py | 230 ++++ tdp_core/dataset/dataset_def.py | 134 +++ tdp_core/dataset/graph/__init__.py | 0 tdp_core/dataset/graph/graph.py | 137 +++ tdp_core/dataset/graph/graph_api.py | 132 ++ tdp_core/dataset/graph/graph_parser.py | 10 + tdp_core/db.py | 854 ++++++------- tdp_core/dbmanager.py | 222 ++-- tdp_core/dbmigration.py | 268 ----- tdp_core/dbmigration/__init__.py | 1 + tdp_core/{ => dbmigration}/dbmigration.ini | 0 .../env.py} | 14 +- tdp_core/dbmigration/manager.py | 287 +++++ tdp_core/dbmigration/router.py | 33 + tdp_core/dbmigration_api.py | 56 - tdp_core/dbview.py | 1068 +++++++++-------- tdp_core/dummy_store.py | 71 -- tdp_core/encoder/__init__.py | 0 .../{ => encoder}/bytes_to_string_encoder.py | 18 +- tdp_core/encoder/json_encoder.py | 47 + tdp_core/encoder/set_encoder.py | 18 + tdp_core/flask_login_impl.py | 200 --- tdp_core/formatter.py | 43 +- tdp_core/graph.py | 561 ++++----- tdp_core/id_mapping/__init__.py | 17 + tdp_core/id_mapping/idtype_api.py | 64 + tdp_core/id_mapping/manager.py | 208 ++++ tdp_core/mapping_table.py | 62 +- tdp_core/plugin/__init__.py | 0 tdp_core/plugin/parser.py | 302 +++++ tdp_core/plugin/reg_helper.py | 23 + tdp_core/plugin/registry.py | 171 +++ tdp_core/plugin/router.py | 31 + tdp_core/proxy.py | 67 +- tdp_core/remoteplayer.py | 236 ---- tdp_core/security/__init__.py | 29 +- tdp_core/security/constants.py | 7 + tdp_core/security/dependencies.py | 18 + tdp_core/security/manager.py | 229 ++++ tdp_core/security/model.py | 63 + tdp_core/security/permissions.py | 106 ++ tdp_core/security/router.py | 0 ...SecurityStore.py => alb_security_store.py} | 54 +- tdp_core/security/store/base_store.py | 20 + tdp_core/security/store/dummy_store.py | 83 ++ tdp_core/security/store/jwt_store.py | 56 + tdp_core/server/__init__.py | 0 tdp_core/server/cmd.py | 53 + tdp_core/server/main.py | 3 + tdp_core/server/mainapp.py | 154 +++ tdp_core/server/public/500.html | 24 + tdp_core/server/public/assets/caleydo_c.svg | 11 + .../public/assets/caleydo_text_right.svg | 58 + .../server/public/assets/icon_arrow_right.svg | 59 + tdp_core/server/public/assets/icon_github.svg | 4 + tdp_core/server/public/assets/icon_home.svg | 16 + tdp_core/server/public/assets/list.min.js | 5 + tdp_core/server/public/assets/main.js | 133 ++ tdp_core/server/public/favicon.png | Bin 0 -> 9228 bytes tdp_core/server/request_context.py | 20 + tdp_core/server/utils.py | 60 + tdp_core/server/visyn_server.py | 101 ++ tdp_core/settings/README.md | 2 + tdp_core/settings/__init__.py | 1 + tdp_core/settings/model.py | 157 +++ tdp_core/settings/router.py | 26 + tdp_core/settings/utils.py | 23 + tdp_core/sql.py | 209 ++-- tdp_core/sql_filter.py | 363 +++--- tdp_core/sql_use_gevent.py | 47 +- tdp_core/storage.py | 263 ++-- tdp_core/swagger.py | 322 ++--- tdp_core/utils.py | 269 ++++- tdp_core/xlsx.py | 226 ++-- tests/test_custom_encoders.py | 22 + tests/test_mapper.py | 139 +++ 102 files changed, 6313 insertions(+), 3295 deletions(-) create mode 100644 deploy/Dockerfile create mode 100644 deploy/Dockerfile_dev delete mode 100644 tdp_core/config.json delete mode 100644 tdp_core/config.py create mode 100644 tdp_core/dataset/__init__.py create mode 100644 tdp_core/dataset/dataset.py create mode 100644 tdp_core/dataset/dataset_api.py create mode 100644 tdp_core/dataset/dataset_def.py create mode 100644 tdp_core/dataset/graph/__init__.py create mode 100644 tdp_core/dataset/graph/graph.py create mode 100644 tdp_core/dataset/graph/graph_api.py create mode 100644 tdp_core/dataset/graph/graph_parser.py delete mode 100644 tdp_core/dbmigration.py create mode 100644 tdp_core/dbmigration/__init__.py rename tdp_core/{ => dbmigration}/dbmigration.ini (100%) rename tdp_core/{dbmigration_env.py => dbmigration/env.py} (79%) create mode 100644 tdp_core/dbmigration/manager.py create mode 100644 tdp_core/dbmigration/router.py delete mode 100644 tdp_core/dbmigration_api.py delete mode 100644 tdp_core/dummy_store.py create mode 100644 tdp_core/encoder/__init__.py rename tdp_core/{ => encoder}/bytes_to_string_encoder.py (59%) create mode 100644 tdp_core/encoder/json_encoder.py create mode 100644 tdp_core/encoder/set_encoder.py delete mode 100644 tdp_core/flask_login_impl.py create mode 100644 tdp_core/id_mapping/__init__.py create mode 100644 tdp_core/id_mapping/idtype_api.py create mode 100644 tdp_core/id_mapping/manager.py create mode 100644 tdp_core/plugin/__init__.py create mode 100644 tdp_core/plugin/parser.py create mode 100644 tdp_core/plugin/reg_helper.py create mode 100644 tdp_core/plugin/registry.py create mode 100644 tdp_core/plugin/router.py delete mode 100644 tdp_core/remoteplayer.py create mode 100644 tdp_core/security/constants.py create mode 100644 tdp_core/security/dependencies.py create mode 100644 tdp_core/security/manager.py create mode 100644 tdp_core/security/model.py create mode 100644 tdp_core/security/permissions.py create mode 100644 tdp_core/security/router.py rename tdp_core/security/store/{ALBSecurityStore.py => alb_security_store.py} (56%) create mode 100644 tdp_core/security/store/base_store.py create mode 100644 tdp_core/security/store/dummy_store.py create mode 100644 tdp_core/security/store/jwt_store.py create mode 100644 tdp_core/server/__init__.py create mode 100644 tdp_core/server/cmd.py create mode 100644 tdp_core/server/main.py create mode 100644 tdp_core/server/mainapp.py create mode 100644 tdp_core/server/public/500.html create mode 100644 tdp_core/server/public/assets/caleydo_c.svg create mode 100644 tdp_core/server/public/assets/caleydo_text_right.svg create mode 100644 tdp_core/server/public/assets/icon_arrow_right.svg create mode 100644 tdp_core/server/public/assets/icon_github.svg create mode 100644 tdp_core/server/public/assets/icon_home.svg create mode 100644 tdp_core/server/public/assets/list.min.js create mode 100644 tdp_core/server/public/assets/main.js create mode 100644 tdp_core/server/public/favicon.png create mode 100644 tdp_core/server/request_context.py create mode 100644 tdp_core/server/utils.py create mode 100644 tdp_core/server/visyn_server.py create mode 100644 tdp_core/settings/README.md create mode 100644 tdp_core/settings/__init__.py create mode 100644 tdp_core/settings/model.py create mode 100644 tdp_core/settings/router.py create mode 100644 tdp_core/settings/utils.py create mode 100644 tests/test_custom_encoders.py create mode 100644 tests/test_mapper.py diff --git a/.circleci/config.yml b/.circleci/config.yml index 3e9e439f8..964e654cc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ executors: python-executor: working_directory: ~/phovea-python docker: - - image: circleci/python:3.7-buster-node-browsers # for node version see Dockerfile on https://hub.docker.com/r/circleci/python + - image: circleci/python:3.10-buster-node-browsers # for node version see Dockerfile on https://hub.docker.com/r/circleci/python node-executor: working_directory: ~/phovea-web docker: diff --git a/deploy/Dockerfile b/deploy/Dockerfile new file mode 100644 index 000000000..fb5e7ec01 --- /dev/null +++ b/deploy/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.10-buster + +LABEL maintainer="contact@caleydo.org" +WORKDIR /phovea + +# install dependencies last step such that everything before can be cached +COPY requirements*.txt docker_packages.txt docker_script*.sh _docker_data* ./ +RUN (!(test -s docker_packages.txt) || (apt-get update && \ + (cat docker_packages.txt | xargs apt-get install -y))) && \ + (pip install --no-cache-dir -r requirements.txt) +RUN (!(test -s docker_script.sh) || (bash ./docker_script.sh)) + + +# Start directly +# ENV PYTHON_PATH /phovea/tdp_core:$PYTHON_PATH +# CMD ["uvicorn", ".main:app", "--app-dir", "/phovea/", "--host", "0.0.0.0", "--port", "80"] + +# Start tdp_core directly +CMD ["uvicorn", "tdp_core.server.main:app", "--app-dir", "/phovea/tdp_core", "--host", "0.0.0.0", "--port", "80"] + +EXPOSE 80 \ No newline at end of file diff --git a/deploy/Dockerfile_dev b/deploy/Dockerfile_dev new file mode 100644 index 000000000..fb572a42e --- /dev/null +++ b/deploy/Dockerfile_dev @@ -0,0 +1,17 @@ +FROM python:3.10-buster + +LABEL maintainer="contact@caleydo.org" +WORKDIR /phovea + +# install dependencies last step such that everything before can be cached +COPY requirements*.txt docker_packages.txt docker_script*.sh _docker_data* ./ +RUN (!(test -s docker_packages.txt) || (apt-get update && \ + (cat docker_packages.txt | xargs apt-get install -y))) && \ + (pip install --no-cache-dir -r requirements.txt) && \ + (pip install --no-cache-dir -r requirements_dev.txt) +RUN (!(test -s docker_script.sh) || (bash ./docker_script.sh)) + + +CMD [ "sh", "-c", "python -m debugpy --listen 0.0.0.0:5678 -m uvicorn tdp_core.server.main:app --app-dir /phovea/tdp_core --reload --host 0.0.0.0 --port 80"] + +EXPOSE 80 \ No newline at end of file diff --git a/deploy/docker-compose.partial.yml b/deploy/docker-compose.partial.yml index e77985d25..4056fd9a7 100644 --- a/deploy/docker-compose.partial.yml +++ b/deploy/docker-compose.partial.yml @@ -5,6 +5,26 @@ services: - db_mongo links: - db_mongo:mongo + api: + build: + context: . + dockerfile: deploy/Dockerfile_dev + args: + - http_proxy + - HTTP_PROXY + - https_proxy + - HTTPS_PROXY + - no_proxy + - NO_PROXY + ports: + - '9000:80' + # Required port for the python debugger + - '5678:5678' + volumes: + - .:/phovea + environment: + - ENV=development + - PYTHONUNBUFFERED=1 db_mongo: image: mongo:3.2 volumes: diff --git a/dist/base/LoginUtils.d.ts b/dist/base/LoginUtils.d.ts index 8c0692c29..d916b4c51 100644 --- a/dist/base/LoginUtils.d.ts +++ b/dist/base/LoginUtils.d.ts @@ -8,7 +8,7 @@ export declare class LoginUtils { * @param {boolean} remember whether to set a long term cookie * @return {Promise} the result in case of a reject it was an invalid request */ - static login(username: string, password: string, remember?: boolean): Promise; + static login(username: string, password: string): Promise; /** * logs the user out * @return {Promise} when done also from the server side @@ -16,7 +16,7 @@ export declare class LoginUtils { static logout(): Promise; static loggedInAs(): Promise; /** - * helper to bind to a login form, assuming that fields `login_username`, `login_password` and `login_remember` exists + * helper to bind to a login form, assuming that fields `login_username`, `login_password` exists * @param {HTMLFormElement} form * @param {(error: any, user: IUser) => any} callback */ diff --git a/dist/base/LoginUtils.d.ts.map b/dist/base/LoginUtils.d.ts.map index 573ef3178..f2cadd232 100644 --- a/dist/base/LoginUtils.d.ts.map +++ b/dist/base/LoginUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"LoginUtils.d.ts","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,qBAAa,UAAU;IACrB,MAAM,CAAC,gBAAgB,eAqBnB;IAEJ;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAejE;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC;IAkB7B,MAAM,CAAC,UAAU;IASjB;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;CAkC9G"} \ No newline at end of file +{"version":3,"file":"LoginUtils.d.ts","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,qBAAa,UAAU;IACrB,MAAM,CAAC,gBAAgB,eAenB;IAEJ;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAe/C;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC;IAkB7B,MAAM,CAAC,UAAU;IASjB;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;CAiC9G"} \ No newline at end of file diff --git a/dist/base/LoginUtils.js b/dist/base/LoginUtils.js index 7d21f1862..d25434f90 100644 --- a/dist/base/LoginUtils.js +++ b/dist/base/LoginUtils.js @@ -9,9 +9,9 @@ export class LoginUtils { * @param {boolean} remember whether to set a long term cookie * @return {Promise} the result in case of a reject it was an invalid request */ - static login(username, password, remember = false) { + static login(username, password) { UserSession.getInstance().reset(); - const r = Ajax.send('/login', { username, password, remember }, 'post').then((user) => { + const r = Ajax.send('/login', { username, password }, 'post').then((user) => { UserSession.getInstance().login(user); return user; }); @@ -53,7 +53,7 @@ export class LoginUtils { }); } /** - * helper to bind to a login form, assuming that fields `login_username`, `login_password` and `login_remember` exists + * helper to bind to a login form, assuming that fields `login_username`, `login_password` exists * @param {HTMLFormElement} form * @param {(error: any, user: IUser) => any} callback */ @@ -75,8 +75,7 @@ export class LoginUtils { } const username = form.login_username.value; const password = form.login_password.value; - const rememberMe = form.login_remember.checked; - LoginUtils.login(username, password, rememberMe) + LoginUtils.login(username, password) .then((user) => callback(null, user)) .catch((error) => { if (error.response && error.response.status !== 401) { @@ -102,12 +101,6 @@ LoginUtils.defaultLoginForm = () => ` `; diff --git a/dist/base/LoginUtils.js.map b/dist/base/LoginUtils.js.map index 9a36658b2..5bbc2d958 100644 --- a/dist/base/LoginUtils.js.map +++ b/dist/base/LoginUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"LoginUtils.js","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LoginUtils.js","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/base/ThumbnailUtils.d.ts b/dist/base/ThumbnailUtils.d.ts index 692392653..ca1137407 100644 --- a/dist/base/ThumbnailUtils.d.ts +++ b/dist/base/ThumbnailUtils.d.ts @@ -1,8 +1,6 @@ -import { ProvenanceGraph, StateNode, SlideNode } from '../provenance'; +import { ProvenanceGraph, StateNode } from '../provenance'; export declare class ThumbnailUtils { static thumbnail_url(graph: ProvenanceGraph, state: StateNode, options?: {}): any; - static preview_thumbnail_url(graph: ProvenanceGraph, state: SlideNode, options?: {}): any; - static screenshot_url(graph: ProvenanceGraph, state: StateNode, options?: {}): any; static areThumbnailsAvailable(graph: ProvenanceGraph): boolean; } //# sourceMappingURL=ThumbnailUtils.d.ts.map \ No newline at end of file diff --git a/dist/base/ThumbnailUtils.d.ts.map b/dist/base/ThumbnailUtils.d.ts.map index 1b8e7fc34..e33b3912f 100644 --- a/dist/base/ThumbnailUtils.d.ts.map +++ b/dist/base/ThumbnailUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ThumbnailUtils.d.ts","sourceRoot":"","sources":["../../src/base/ThumbnailUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEtE,qBAAa,cAAc;IACzB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK;IAmB3E,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK;IAkBnF,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK;IAkB5E,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,eAAe;CAIrD"} \ No newline at end of file +{"version":3,"file":"ThumbnailUtils.d.ts","sourceRoot":"","sources":["../../src/base/ThumbnailUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,qBAAa,cAAc;IACzB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK;IAoB3E,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,eAAe;CAIrD"} \ No newline at end of file diff --git a/dist/base/ThumbnailUtils.js b/dist/base/ThumbnailUtils.js index b5cba4084..bd1978fb1 100644 --- a/dist/base/ThumbnailUtils.js +++ b/dist/base/ThumbnailUtils.js @@ -1,5 +1,4 @@ import { BaseUtils } from './BaseUtils'; -import { AppContext } from '../app'; import * as not_available from '../assets/not_available.png'; export class ThumbnailUtils { static thumbnail_url(graph, state, options = {}) { @@ -11,44 +10,13 @@ export class ThumbnailUtils { if (state.hasAttr('thumbnail')) { return state.getAttr('thumbnail'); } - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`/clue/thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } - return not_available; - } - static preview_thumbnail_url(graph, state, options = {}) { - const o = { - width: 128, - format: 'jpg', - }; - if (state.hasAttr('thumbnail')) { - return state.getAttr('thumbnail'); - } - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`/clue/preview_thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } - return not_available; - } - static screenshot_url(graph, state, options = {}) { - const o = { - width: 128, - format: 'jpg', - }; - if (state.hasAttr('screenshot')) { - return state.getAttr('screenshot'); - } - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`screnshot${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } + // TODO: This feature never worked... + // const d = graph.desc; + // if (d.attrs && d.attrs.of && !d.local) { + // return AppContext.getInstance().api2absURL(`/clue/thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { + // width: o.width, + // }); + // } return not_available; } static areThumbnailsAvailable(graph) { diff --git a/dist/base/ThumbnailUtils.js.map b/dist/base/ThumbnailUtils.js.map index 39d6a0590..6d244ec83 100644 --- a/dist/base/ThumbnailUtils.js.map +++ b/dist/base/ThumbnailUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"ThumbnailUtils.js","sourceRoot":"","sources":["../../src/base/ThumbnailUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ThumbnailUtils.js","sourceRoot":"","sources":["../../src/base/ThumbnailUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAG7D,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,aAAa,CAAC,KAAsB,EAAE,KAAgB,EAAE,OAAO,GAAG,EAAE;QACzE,MAAM,CAAC,GAAG;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,KAAK;SACd,CAAC;QACF,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACnC;QAED,qCAAqC;QACrC,6BAA6B;QAC7B,2CAA2C;QAC3C,0HAA0H;QAC1H,sBAAsB;QACtB,QAAQ;QACR,IAAI;QACJ,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,KAAsB;QAClD,MAAM,CAAC,GAAQ,KAAK,CAAC,IAAI,CAAC;QAC1B,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;CACF"} \ No newline at end of file diff --git a/dist/components/dialogs.d.ts.map b/dist/components/dialogs.d.ts.map index b449506b1..23b5c9c55 100644 --- a/dist/components/dialogs.d.ts.map +++ b/dist/components/dialogs.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/components/dialogs.ts"],"names":[],"mappings":";;;;AAAA,OAAO,uBAAuB,CAAC;AAK/B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,MAAM;IACjB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,MAAM,CAAC,WAAW,SAAK;IAEvB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK,EAAE,QAAQ,GAAE,OAAO,GAAG,QAAe;IAwBhH,IAAI;IAcJ,IAAI;IAKJ,IAAI,IAAI,gBAEP;IAED,IAAI,MAAM,gBAET;IAED,IAAI,MAAM,gBAET;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;IAI5B,YAAY;IAIZ,OAAO;IAOP,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK;IAIrF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCpF;AAGD,qBAAa,oBAAqB,SAAQ,MAAM;IACI,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA7D,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAmB,MAAM,SAAiC,EAAE,oBAAoB,SAAK;IASrI,IAAI,IAAI,oBAEP;IAED,WAAW;IAIX,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO;IAIhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCtF,MAAM,CAAC,UAAU,CAAC,GAAG,SAAK,EAAE,OAAO,GAAE,kBAAkB,GAAG,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAkCzF"} \ No newline at end of file +{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/components/dialogs.ts"],"names":[],"mappings":";;;AAAA,OAAO,uBAAuB,CAAC;AAK/B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,MAAM;IACjB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,MAAM,CAAC,WAAW,SAAK;IAEvB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK,EAAE,QAAQ,GAAE,OAAO,GAAG,QAAe;IAwBhH,IAAI;IAcJ,IAAI;IAKJ,IAAI,IAAI,gBAEP;IAED,IAAI,MAAM,gBAET;IAED,IAAI,MAAM,gBAET;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;IAI5B,YAAY;IAIZ,OAAO;IAOP,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK;IAIrF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCpF;AAGD,qBAAa,oBAAqB,SAAQ,MAAM;IACI,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA7D,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAmB,MAAM,SAAiC,EAAE,oBAAoB,SAAK;IASrI,IAAI,IAAI,oBAEP;IAED,WAAW;IAIX,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO;IAIhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCtF,MAAM,CAAC,UAAU,CAAC,GAAG,SAAK,EAAE,OAAO,GAAE,kBAAkB,GAAG,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAkCzF"} \ No newline at end of file diff --git a/dist/dummy/DummyReactView.d.ts b/dist/dummy/DummyReactView.d.ts index c2dea5a61..6173e85c1 100644 --- a/dist/dummy/DummyReactView.d.ts +++ b/dist/dummy/DummyReactView.d.ts @@ -1,3 +1,4 @@ +/// import { ISelector } from '../views/AReactView'; import { AReactChooserView } from '../views/AReactChooserView'; export declare class DummyReactView extends AReactChooserView { diff --git a/dist/dummy/DummyReactView.d.ts.map b/dist/dummy/DummyReactView.d.ts.map index 8249bb434..467a31408 100644 --- a/dist/dummy/DummyReactView.d.ts.map +++ b/dist/dummy/DummyReactView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"DummyReactView.d.ts","sourceRoot":"","sources":["../../src/dummy/DummyReactView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,WAAW;IAIX,6BAA6B;;;IAM7B,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS;CAYlF"} \ No newline at end of file +{"version":3,"file":"DummyReactView.d.ts","sourceRoot":"","sources":["../../src/dummy/DummyReactView.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,WAAW;IAIX,6BAA6B;;;IAM7B,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS;CAYlF"} \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore index 324e31af0..55736c38a 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,3 +1,2 @@ /modules.rst -/phovea_server.rst /tdp_core.rst diff --git a/package.json b/package.json index 799290dea..b3e04c62a 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "scripts": { "clean": "rimraf build dist lib", "delete-dependencies": "rimraf node_modules", - "check": "flake8 --exclude=.git,venv,deploy,docs,__pycache__,node_modules", + "check": "black --line-length 160 --check tdp_core", "compile": "tsc", "compile:watch": "tsc -w", "postcompile": "npm run copy", @@ -76,7 +76,7 @@ "dist:web": "mkdir lib && cd dist && tar cvzf ../lib/tdp_core.tar.gz *", "predocker": "npm run build", "docker": "docker build -t tdp_core -f deploy/Dockerfile .", - "db-migration:base": "docker-compose run api python phovea_server/__main__.py --env dev db-migration", + "db-migration:base": "TODO docker-compose run api python phovea_server/__main__.py --env dev db-migration", "db-migration": "npm run db-migration:base exec --", "db-migration:list": "npm run db-migration:base list --" }, diff --git a/requirements.txt b/requirements.txt index d5ff6c7e1..c048f3174 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,20 +1,25 @@ -pymongo~=3.11.1 -requests~=2.25.0 -SQLAlchemy==1.3.20 -marshmallow==3.14.1 -marshmallow-sqlalchemy==0.26.1 +alembic==1.7.6 +fastapi==0.73.0 flask-smorest==0.30.0 -urllib3==1.26.5 flask-swagger-ui==3.36.0 -yamlreader==3.0.4 -alembic==1.4.3 -openpyxl~=3.0.5 +Flask==1.1.4 +json-cfg==0.4.2 +marshmallow-sqlalchemy==0.26.1 +marshmallow==3.14.1 +numpy==1.22.3 +openpyxl==3.0.5 +pandas==1.4.1 +Pillow==8.3.2 +pydantic==1.9.0 pyjwt==2.1.0 +pymongo==4.0.2 python-memcached==1.59 -flask-login==0.5.0 -cachelib==0.1.1 +python-multipart==0.0.5 +requests==2.27.1 +SQLAlchemy==1.4.32 +urllib3==1.26.8 +yamlreader==3.0.4 # Pin docutils to avoid AttributeError: 'Values' object has no attribute 'section_self_link' docutils==0.17.1 # Pin markupsafe to avoid ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py) -markupsafe==2.0.1 --e git+https://github.com/phovea/phovea_server.git@develop#egg=phovea_server \ No newline at end of file +markupsafe==2.0.1 \ No newline at end of file diff --git a/requirements_dev.txt b/requirements_dev.txt index 10476e27e..8d9bec841 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,4 +1,5 @@ -flake8==3.8.4 +black==22.1.0 +debugpy==1.5.1 pep8-naming==0.11.1 pytest==6.1.2 pytest-runner==5.2 diff --git a/src/base/LoginUtils.ts b/src/base/LoginUtils.ts index d30b3bd28..4b11b9608 100644 --- a/src/base/LoginUtils.ts +++ b/src/base/LoginUtils.ts @@ -17,12 +17,6 @@ export class LoginUtils { 'phovea:security_flask.password', )}" required="required" autocomplete="current-password"> -
-
- - -
-
`; @@ -34,9 +28,9 @@ export class LoginUtils { * @param {boolean} remember whether to set a long term cookie * @return {Promise} the result in case of a reject it was an invalid request */ - static login(username: string, password: string, remember = false) { + static login(username: string, password: string) { UserSession.getInstance().reset(); - const r = Ajax.send('/login', { username, password, remember }, 'post').then((user) => { + const r = Ajax.send('/login', { username, password }, 'post').then((user) => { UserSession.getInstance().login(user); return user; }); @@ -81,7 +75,7 @@ export class LoginUtils { } /** - * helper to bind to a login form, assuming that fields `login_username`, `login_password` and `login_remember` exists + * helper to bind to a login form, assuming that fields `login_username`, `login_password` exists * @param {HTMLFormElement} form * @param {(error: any, user: IUser) => any} callback */ @@ -103,8 +97,7 @@ export class LoginUtils { } const username = (form).login_username.value; const password = (form).login_password.value; - const rememberMe = (form).login_remember.checked; - LoginUtils.login(username, password, rememberMe) + LoginUtils.login(username, password) .then((user) => callback(null, user)) .catch((error) => { if (error.response && error.response.status !== 401) { diff --git a/src/base/ThumbnailUtils.ts b/src/base/ThumbnailUtils.ts index 4fcfcbdb5..22b2d6d89 100644 --- a/src/base/ThumbnailUtils.ts +++ b/src/base/ThumbnailUtils.ts @@ -1,7 +1,6 @@ import { BaseUtils } from './BaseUtils'; -import { AppContext } from '../app'; import * as not_available from '../assets/not_available.png'; -import { ProvenanceGraph, StateNode, SlideNode } from '../provenance'; +import { ProvenanceGraph, StateNode } from '../provenance'; export class ThumbnailUtils { static thumbnail_url(graph: ProvenanceGraph, state: StateNode, options = {}) { @@ -14,48 +13,13 @@ export class ThumbnailUtils { return state.getAttr('thumbnail'); } - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`/clue/thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } - return not_available; - } - - static preview_thumbnail_url(graph: ProvenanceGraph, state: SlideNode, options = {}) { - const o = { - width: 128, - format: 'jpg', - }; - if (state.hasAttr('thumbnail')) { - return state.getAttr('thumbnail'); - } - - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`/clue/preview_thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } - return not_available; - } - - static screenshot_url(graph: ProvenanceGraph, state: StateNode, options = {}) { - const o = { - width: 128, - format: 'jpg', - }; - if (state.hasAttr('screenshot')) { - return state.getAttr('screenshot'); - } - - const d = graph.desc; - if (d.attrs && d.attrs.of && !d.local) { - return AppContext.getInstance().api2absURL(`screnshot${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { - width: o.width, - }); - } + // TODO: This feature never worked... + // const d = graph.desc; + // if (d.attrs && d.attrs.of && !d.local) { + // return AppContext.getInstance().api2absURL(`/clue/thumbnail${d.attrs.of}/${graph.desc.id}/${state.id}.${o.format}`, { + // width: o.width, + // }); + // } return not_available; } diff --git a/tdp_core/__init__.py b/tdp_core/__init__.py index cd1b5a830..80158b8e2 100644 --- a/tdp_core/__init__.py +++ b/tdp_core/__init__.py @@ -1,84 +1,112 @@ -############################################################################### -# Caleydo - Visualization for Molecular Biology - http://caleydo.org -# Copyright (c) The Caleydo Team. All rights reserved. -# Licensed under the new BSD license, available at http://caleydo.org/license -############################################################################### +def phovea(registry): + """ + register extension points + :param registry: + """ + # generator-phovea:begin + # phovea_server + registry.append( + "namespace", + "caleydo-dataset", + "tdp_core.dataset.dataset_api", + {"namespace": "/api/dataset", "factory": "create_dataset"}, + ) + registry.append( + "namespace", + "caleydo-idtype", + "tdp_core.id_mapping.idtype_api", + {"namespace": "/api/idtype", "factory": "create_idtype"}, + ) + registry.append("json-encoder", "numpy", "tdp_core.encoder.json_encoder") + registry.append("json-encoder", "set-encoder", "tdp_core.encoder.set_encoder", {}) -def phovea(registry): - """ - register extension points - :param registry: - """ - # generator-phovea:begin - registry.append('namespace', 'tdp_core', 'tdp_core.proxy', - { - 'namespace': '/api/tdp/proxy' - }) + registry.append("manager", "mappingmanager", "tdp_core.id_mapping.manager", dict(singleton=True)) + + registry.append( + "dataset-specific-handler", + "handler-graph", + "tdp_core.dataset.graph.graph_api", + {"datatype": "graph", "factory": "add_graph_handler"}, + ) + registry.append( + "graph-formatter", + "formatter-json", + "tdp_core.dataset.graph.graph_api", + {"format": "json", "factory": "format_json"}, + ) + registry.append( + "graph-parser", + "parser-json", + "tdp_core.dataset.graph.graph_parser", + {"format": "json", "factory": "parse_json"}, + ) - registry.append('namespace', 'db_connector', 'tdp_core.sql', - { - 'namespace': '/api/tdp/db' - }) + # tdp_core + registry.append("namespace", "tdp_core", "tdp_core.proxy", {"namespace": "/api/tdp/proxy"}) - registry.append('namespace', 'tdp_storage', 'tdp_core.storage', - { - 'namespace': '/api/tdp/storage' - }) - registry.append('namespace', 'tdp_swagger', 'tdp_core.swagger', - { - 'namespace': '/api/tdp/ui' - }) - registry.append('namespace', 'tdp_config', 'tdp_core.config', - { - 'namespace': '/api/tdp/config' - }) - registry.append('namespace', 'tdp_xlsx2json', 'tdp_core.xlsx', - { - 'namespace': '/api/tdp/xlsx' - }) - registry.append('mapping_provider', 'tdp_core', 'tdp_core.mapping_table') - registry.append('greenifier', 'psycopg2', 'tdp_core.sql_use_gevent', {}) - registry.append('json-encoder', 'bytes-to-string-encoder', 'tdp_core.bytes_to_string_encoder', {}) + registry.append("namespace", "db_connector", "tdp_core.sql", {"namespace": "/api/tdp/db"}) - # DB migration plugins - registry.append('manager', 'db-migration-manager', 'tdp_core.dbmigration', {'singleton': True, 'factory': 'create_migration_manager'}) - registry.append('command', 'db-migration', 'tdp_core.dbmigration', {'factory': 'create_migration_command'}) - registry.append('json-encoder', 'db-migration-encoder', 'tdp_core.dbmigration_api', {'factory': 'create_migration_encoder'}) - registry.append('namespace', 'db-migration-api', 'tdp_core.dbmigration_api', - { - 'factory': 'create_migration_api', - 'namespace': '/api/tdp/db-migration' - }) + registry.append( + "namespace", + "tdp_storage", + "tdp_core.storage", + {"namespace": "/api/tdp/storage"}, + ) + registry.append("namespace", "tdp_swagger", "tdp_core.swagger", {"namespace": "/api/tdp/ui"}) + # TODO: + registry.append("namespace", "tdp_core_main", "tdp_core.server.mainapp", {"namespace": "/app"}) + registry.append_router("tdp_config_router", "tdp_core.settings.router", {}) + registry.append_router("tdp_plugin_router", "tdp_core.plugin.router", {}) + registry.append("namespace", "tdp_xlsx2json", "tdp_core.xlsx", {"namespace": "/api/tdp/xlsx"}) + registry.append("mapping_provider", "tdp_core", "tdp_core.mapping_table") + # TODO: Check if this is still required? + # registry.append("greenifier", "psycopg2", "tdp_core.sql_use_gevent", {}) + registry.append( + "json-encoder", + "bytes-to-string-encoder", + "tdp_core.bytes_to_string_encoder", + {}, + ) - # phovea_clue - registry.append('namespace', 'caleydo-clue-screenshot', 'tdp_core.remoteplayer', - { - 'namespace': '/api/clue', - 'factory': 'create' - }) + # DB migration plugins + registry.append( + "manager", + "db-migration-manager", + "tdp_core.dbmigration.manager", + {"singleton": True, "factory": "create_migration_manager"}, + ) + registry.append( + "command", + "db-migration", + "tdp_core.dbmigration.manager", + {"factory": "create_migration_command"}, + ) + registry.append( + "namespace", + "db-migration-api", + "tdp_core.dbmigration.router", + {"factory": "create_migration_api", "namespace": "/api/tdp/db-migration"}, + ) - # phovea_security_flask - # TODO: Add ENV variables to allow disabling - registry.append('manager', 'security_manager', 'tdp_core.flask_login_impl', dict(singleton=True)) - registry.append('user_stores', 'alb_security_store', 'tdp_core.security.store.ALBSecurityStore', {}) + # phovea_security_flask + # TODO: Add ENV variables to allow disabling + registry.append("manager", "security_manager", "tdp_core.security.manager", dict(singleton=True)) + registry.append( + "user_stores", + "alb_security_store", + "tdp_core.security.store.alb_security_store", + {}, + ) - # tdp_matomo - registry.append('tdp-config-safe-keys', 'matomo', '', { - 'configKey': 'tdp_core.matomo' - }) + # tdp_matomo + registry.append("tdp-config-safe-keys", "matomo", "", {"configKey": "tdp_core.matomo"}) - # phovea_data_mongo - registry.append('dataset-provider', 'dataset-graph', 'tdp_core.graph', {}) - # generator-phovea:end - pass + # phovea_data_mongo + registry.append("dataset-provider", "dataset-graph", "tdp_core.graph", {}) + # generator-phovea:end + pass def phovea_config(): - """ - :return: file pointer to config file - """ - from os import path - here = path.abspath(path.dirname(__file__)) - config_file = path.join(here, 'config.json') - return config_file if path.exists(config_file) else None + return None diff --git a/tdp_core/config.json b/tdp_core/config.json deleted file mode 100644 index 2c3e77fb2..000000000 --- a/tdp_core/config.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "migrations": { - "autoUpgrade": true - }, - "--phovea_clue": "comment", - "server": "http://web", - "chromeAddress": "chrome:9222", - "memcached": [ - "memcached:11211" - ], - "--phovea_security_flask": "comment", - "users": [ - { - "name": "admin", - "salt": "dcf46ce914154a44b1557eba91c1f50d", - "password": "e464485eeeca97927191bd77e38137cc5870c53efb05c8ec027faa8d47f0c0ee23e733ea5e494cb045ca46b0f3b6f695b7261a34f46ba3797cde67724d78522a", - "roles": [ - "admin" - ] - }, - { - "name": "sam", - "salt": "2338b858597b4937ad1c5db4b524f56d", - "password": "814cbf874d3da7c01327b50c96bedf7db26357e0b4be25623242a33b33861651c3efd90d5c1a6410a646f356c73adf2de473611dee158672e8ee073767dc88f2", - "roles": [ - "sam", - "admin" - ] - } - ], - "alwaysAppendDummyStore": false, - "security": { - "store": { - "alb_security_store": { - "enable": false, - "cookie_name": null, - "signout_url": null - } - } - }, - "--tdp_matomo": "comment", - "matomo": { - "--url": "comment: matomo url with a trailing slash", - "url": "", - "site": "1", - "encryptUserName": false - }, - "--phovea_data_mongo": "comment", - "mongo": { - "host": "mongo", - "port": 27017, - "db_graph": "graph", - "db_namedsets": "targid" - } -} diff --git a/tdp_core/config.py b/tdp_core/config.py deleted file mode 100644 index ccb0b8f41..000000000 --- a/tdp_core/config.py +++ /dev/null @@ -1,27 +0,0 @@ -from phovea_server.ns import Namespace, abort -from phovea_server.util import jsonify -from phovea_server.config import get as get_config -from phovea_server.plugin import list as list_plugins -import logging - -app = Namespace(__name__) -_log = logging.getLogger(__name__) - - -@app.route('/') -def _config(path): - path = path.split('/') - key = path[0] - - plugin = next((p for p in list_plugins('tdp-config-safe-keys') if p.id == key), None) - - if plugin is None: - _log.error('404: config key "{}" not found'.format(key)) - abort(404, 'config key "{}" not found'.format(key)) - - path[0] = plugin.configKey - return jsonify(get_config('.'.join(path))) - - -def create(): - return app diff --git a/tdp_core/dataset/__init__.py b/tdp_core/dataset/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/dataset/dataset.py b/tdp_core/dataset/dataset.py new file mode 100644 index 000000000..056e6eefc --- /dev/null +++ b/tdp_core/dataset/dataset.py @@ -0,0 +1,86 @@ +from builtins import str +from ..plugin.registry import list_plugins, lookup_singleton +from .dataset_def import to_idtype_description +import itertools + +_providers_r = None + + +def _providers(): + global _providers_r + if _providers_r is None: + _providers_r = [p.load().factory() for p in list_plugins("dataset-provider")] + return _providers_r + + +def iter(): + """ + an iterator of all known datasets + :return: + """ + return itertools.chain(*_providers()) + + +def list_datasets(): + """ + list all known datasets + :return: + """ + return list(iter()) + + +def get(dataset_id): + """ + :param dataset_id: + :return: returns the selected dataset identified by id + """ + for p in _providers(): + r = p[dataset_id] + if r is not None: + return r + return None + + +def add(desc, files=[], id=None): + """ + adds a new dataset to this storage + :param desc: the dict description information + :param files: a list of FileStorage + :param id: optional the unique id to use + :return: the newly created dataset or None if an error occurred + """ + for p in _providers(): + r = p.upload(desc, files, id) + if r: + return r + return None + + +def update(dataset, desc, files=[]): + """ + updates the given dataset + :param dataset: a dataset or a dataset id + :param desc: the dict description information + :param files: a list of FileStorage + :return: + """ + old = get(dataset) if isinstance(dataset, str) else dataset + if old is None: + return add(desc, files) + r = old.update(desc, files) + return r + + +def remove(dataset): + """ + removes the given dataset + :param dataset: a dataset or a dataset id + :return: boolean whether the operation was successful + """ + old = get(dataset) if isinstance(dataset, str) else dataset + if old is None: + return False + for p in _providers(): + if p.remove(old): + return True + return False diff --git a/tdp_core/dataset/dataset_api.py b/tdp_core/dataset/dataset_api.py new file mode 100644 index 000000000..fc61df12f --- /dev/null +++ b/tdp_core/dataset/dataset_api.py @@ -0,0 +1,230 @@ +from flask import Flask, abort, request, Response, make_response, jsonify +from ..utils import etag, jsonify, to_json +from builtins import str +from ..plugin.registry import list_plugins +import logging +from .dataset import iter, get, list_datasets, add, remove + + +app = Flask(__name__) + +_log = logging.getLogger(__name__) + + +@app.errorhandler(ValueError) +def on_value_error(error): + _log.error("ValueError: (" + str(error) + ") at " + str(request.environ)) + _log.error(error) + return ( + "{2} - {0}
{1}
".format("ValueError", error, 500), + 500, + ) + + +def _list_format_json(data): + return jsonify(data) + + +def _list_format_treejson(data): + r = dict() + for d in data: + levels = d["fqname"].split("/") + act = r + for level in levels[:-1]: + if level not in act: + act[level] = dict() + act = act[level] + act[d["name"]] = d + return jsonify(r, indent=1) + + +def _list_format_csv(data): + delimiter = request.args.get("f_delimiter", ";") + + def to_size(size): + if size is None: + return "" + if isinstance(size, list): + return ",".join(str(d) for d in size) + return str(size) + + def gen(): + yield delimiter.join(["ID", "Name", "FQName", "Type", "Size", "Entry"]) + for d in data: + yield "\n" + yield delimiter.join( + [ + str(d["id"]), + d["name"], + d["fqname"], + d["type"], + to_size(d.get("size", None)), + to_json(d), + ] + ) + + return Response( + gen(), + mimetype="text/csv", + headers={"Content-Disposition": "attachment;filename=dataset.csv"}, + ) + + +def _to_query(query): + keys = ["name", "id", "fqname", "type"] + act_query = {k: v for k, v in query.items() if k in keys} + if len(act_query) == 0: # no query + return lambda x: True + import re + + def filter_elem(elem): + return all((re.match(v, getattr(elem, k, "")) for k, v in act_query.items())) + + return filter_elem + + +@app.route("/", methods=["GET", "POST"]) +@etag +def _list_datasets(): + if request.method == "GET": + query = _to_query(request.values) + data = [d.to_description() for d in iter() if query(d)] + + limit = request.values.get("limit", -1) + if 0 < limit < len(data): + data = data[:limit] + + format = request.args.get("format", "json") + formats = dict(json=_list_format_json, treejson=_list_format_treejson, csv=_list_format_csv) + if format not in formats: + abort( + make_response( + 'invalid format: "{0}" possible ones: {1}'.format(format, ",".join(list(formats.keys()))), + 400, + ) + ) + return formats[format](data) + else: + return _upload_dataset(request) + + +@app.route("/", methods=["PUT", "GET", "DELETE", "POST"]) +@etag +def _get_dataset(dataset_id): + if request.method == "PUT": + return _update_dataset(dataset_id, request) + elif request.method == "POST": + return _modify_dataset(dataset_id, request) + elif request.method == "DELETE": + return _remove_dataset(dataset_id) + d = get(dataset_id) + if d is None: + return 'invalid dataset id "' + str(dataset_id) + '"', 404 + if not d.can_read(): + return "not allowed", 403 + return jsonify(d.asjson()) + + +@app.route("//desc") +@etag +def _get_dataset_desc(dataset_id): + d = get(dataset_id) + if not d: + return 'invalid dataset id "' + str(dataset_id) + '"', 404 + if not d.can_read(): + return "not allowed", 403 + return jsonify(d.to_description()) + + +def _dataset_getter(dataset_id, dataset_type): + if isinstance(dataset_id, int) and dataset_id < 0: + return [d for d in list_datasets() if d.type == dataset_type] + t = get(dataset_id) + if t is None: + abort(404, 'invalid dataset id "' + str(dataset_id) + '"') + if t.type != dataset_type: + abort(400, 'the given dataset "' + str(dataset_id) + '" is not a ' + dataset_type) + if not t.can_read(): + abort(403, "not allowed") + return t + + +def _to_upload_desc(data_dict): + if "desc" in data_dict: + import json + + return json.loads(data_dict["desc"]) + return data_dict + + +def _upload_dataset(request, id=None): + try: + # first choose the provider to handle the upload + r = add(_to_upload_desc(request.values), request.files, id) + if r: + return jsonify(r.to_description(), indent=1) + # invalid upload + return "invalid upload", 400 + except ValueError as e: + return on_value_error(e) + + +def _update_dataset(dataset_id, request): + try: + old = get(dataset_id) + if old is None: + return _upload_dataset(request, dataset_id) + if not old.can_write(): + return "not allowed", 403 + r = old.update(_to_upload_desc(request.values), request.files) + if r: + return jsonify(old.to_description(), indent=1) + # invalid upload + return "invalid upload", 400 + except ValueError as e: + return on_value_error(e) + + +def _modify_dataset(dataset_id, request): + try: + old = get(dataset_id) + if old is None: + return 'invalid dataset id "' + str(dataset_id) + '"', 404 + if not old.can_write(): + return "not allowed", 403 + r = old.modify(_to_upload_desc(request.values), request.files) + if r: + return jsonify(old.to_description(), indent=1) + # invalid upload + return "invalid upload", 400 + except ValueError as e: + return on_value_error(e) + + +def _remove_dataset(dataset_id): + dataset = get(dataset_id) + if dataset is None: + return 'invalid dataset id "' + str(dataset_id) + '"', 404 + if not dataset.can_write(): + return "not allowed", 403 + r = remove(dataset_id) + if r: + return jsonify( + dict( + state="success", + msg="Successfully deleted dataset " + dataset_id, + id=dataset_id, + ), + indent=1, + ) + return "invalid request", 400 + + +# add all specific handler +for handler in list_plugins("dataset-specific-handler"): + p = handler.load() + p(app, _dataset_getter) + + +def create_dataset(): + return app diff --git a/tdp_core/dataset/dataset_def.py b/tdp_core/dataset/dataset_def.py new file mode 100644 index 000000000..2781c226a --- /dev/null +++ b/tdp_core/dataset/dataset_def.py @@ -0,0 +1,134 @@ +from builtins import object +import abc +import sys +import importlib +import tdp_core + +importlib.reload(tdp_core) +print(sys.path) +print("TEST!23") +from ..utils import fix_id +from ..security import can_read, can_write + + +def to_plural(s): + if s[len(s) - 1] == "y": + return s[0 : len(s) - 1] + "ies" + return s + "s" + + +def to_idtype_description(id): + return dict(id=id, name=id, names=to_plural(id)) + + +class ADataSetEntry(object, metaclass=abc.ABCMeta): + """ + A basic dataset entry + """ + + def __init__(self, name, project, type, id=None): + """ + constructor for a new dataset + :param name: + :param project: the parent/folder of this dataset + :param type: the type of this dataset + :param id: optional the id to use + """ + self.name = name + self.fqname = project + "/" + name + self.type = type + self.id = id if id is not None else fix_id(self.fqname) + + def idtypes(self): + """ + :return: the list of all idtypes as string array + """ + return [] + + def to_description(self): + """ + :return: a dictionary describing this dataset in a client understandable format + """ + return dict(type=self.type, name=self.name, id=self.id, fqname=self.fqname) + + def to_idtype_descriptions(self): + """ + list of a all idtypes of this dataset + :return: + """ + + return [to_idtype_description(t) for t in self.idtypes()] + + def update(self, args, files): + """ + updates this dataset with the new data + :param args: data dict + :param files: list of FileStorage files + :return: boolean whether the operation was successful + """ + return False + + def modify(self, args, files): + """ + modifies this dataset with the given arguments + :param args: data dict + :param files: list of FileStorage files + :return: boolean whether the operation was successful + """ + return False + + def remove(self): + """ + removes itself + :return: boolean whether it was successfully removed + """ + return False + + @abc.abstractmethod + def asjson(self): + """ + converts this dataset to a json compatible format + :return: a json compatible dataset representation + """ + return dict() + + def can_read(self, user=None): + return can_read(self.to_description(), user) + + def can_write(self, user=None): + return can_write(self.to_description(), user) + + +class ADataSetProvider(object, metaclass=abc.ABCMeta): + def __len__(self): + import itertools + + return itertools.count(self) + + @abc.abstractmethod + def __iter__(self): + return iter([]) + + def __getitem__(self, dataset_id): + """ + get a specific dataset item by id + :param dataset_id: + :return: the dataset or None + """ + for elem in self: + if elem.id == dataset_id: + return elem + return None + + def remove(self, entry): + return False + + def upload(self, data, files, id=None): + """ + adds a new dataset to this provider + :param data: the description data dict object + :param files: a list of FileStorage files containing data files + :param id: optional unique id of the newly created dataset + :return: None if the element can't be uploaded else the dataset + """ + return None diff --git a/tdp_core/dataset/graph/__init__.py b/tdp_core/dataset/graph/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/dataset/graph/graph.py b/tdp_core/dataset/graph/graph.py new file mode 100644 index 000000000..3627f02b7 --- /dev/null +++ b/tdp_core/dataset/graph/graph.py @@ -0,0 +1,137 @@ +from builtins import object +from ..dataset_def import ADataSetEntry +from ...plugin.registry import list_plugins +import abc + + +class GraphNode(object): + def __init__(self, t, id, attrs=None): + self.type = t + self.id = id + self.attrs = {} if attrs is None else attrs + + def asjson(self): + return dict(type=self.type, id=self.id, attrs=self.attrs) + + +class GraphEdge(object): + def __init__(self, t, id, source=None, target=None, attrs=None): + self.type = t + self.id = id + self.source = source + self.target = target + self.attrs = {} if attrs is None else attrs + + def asjson(self): + return dict( + type=self.type, + id=self.id, + source=self.source, + target=self.target, + attrs=self.attrs, + ) + + +class AGraph(ADataSetEntry, metaclass=abc.ABCMeta): + def __init__(self, name, project, id=None, attrs=None): + super(AGraph, self).__init__(name, project, "graph", id) + self.attrs = {} if attrs is None else attrs + + @abc.abstractmethod + def nodes(self): + return [] + + @property + def nnodes(self): + return len(self.nodes()) + + @abc.abstractmethod + def edges(self): + return [] + + @property + def nedges(self): + return len(self.edges()) + + def to_description(self): + r = super(AGraph, self).to_description() + r["size"] = [self.nnodes, self.nedges] + r["attrs"] = self.attrs + return r + + def asjson(self): + nodes = [a.asjson() for a in self.nodes()] + edges = [a.asjson() for a in self.edges()] + + r = dict(nodes=nodes, edges=edges) + return r + + def add_node(self, data): + return False + + def update_node(self, data): + return False + + def get_node(self, id): + return next((n for n in self.nodes() if n.id == id), None) + + def remove_node(self, id): + return False + + def add_edge(self, data): + return False + + def get_edge(self, id): + return next((n for n in self.edges() if n.id == id), None) + + def update_edge(self, data): + return False + + def remove_edge(self, id): + return False + + def clear(self): + return False + + def incoming_edges(self, node): + return (e for e in self.edges() if e.target == node.id) + + def outgoing_edges(self, node): + return (e for e in self.edges() if e.source == node.id) + + def resolve_edges(self, edges): + to_find = set() + edges = list(edges) + for e in edges: + to_find.add(e.source) + to_find.add(e.target) + n = {n.id: n for n in self.nodes() if n.id in to_find} + return ((e, n[e.source], n[e.target]) for e in edges) + + +def _resolve_parser(format): + for p in list_plugins("graph-parser"): + if p.format == format: + return p.load() + + +def _guess_format(format_field, files): + if format_field: + return format_field + + if len(files) > 0: + # use the file extension as a hint + import os.path + + fn = files[0].filename + name, ext = os.path.splitext(fn) + return ext.lower() + return "json" # default + + +def parse(args, files): + format = _guess_format(args.get("format", None), files) + formatter = _resolve_parser(format) + if formatter: + return formatter.factory(args, files) + return None diff --git a/tdp_core/dataset/graph/graph_api.py b/tdp_core/dataset/graph/graph_api.py new file mode 100644 index 000000000..ae8691434 --- /dev/null +++ b/tdp_core/dataset/graph/graph_api.py @@ -0,0 +1,132 @@ +from flask import jsonify, request, abort +from ...utils import etag +from ...plugin.registry import list_plugins + + +def _to_desc(): + if "desc" in request.values: + import json + + n = json.loads(request.values["desc"]) + else: + n = request.values + return n + + +def format_json(dataset, args): + d = dataset.asjson() + if bool(args.get("f_pretty_print", False)): + return jsonify(d, indent=" ") + return jsonify(d) + + +def resolve_formatter(type, format): + for p in list_plugins(type + "-formatter"): + if p.format == format: + return p.load() + formats = ",".join(p.format for p in list_plugins(type + "-formatter")) + abort(400, 'unknown format "{0}" possible formats are: {1}'.format(format, formats)) + + +def _list_items(dataset_getter, name, datasetid): + d = dataset_getter(datasetid, "graph") + if request.method == "GET": + return jsonify([n.asjson() for n in getattr(d, name + "s")()]) + + if request.method == "DELETE": + if not d.can_write(): + abort(403) + if d.clear(): + return jsonify(d.to_description(), indent=1) + abort(400) + + # post + if not d.can_write(): + abort(403) + n = _to_desc() + if getattr(d, "add_" + name)(n): + return jsonify(d.to_description(), indent=1) + # invalid upload + abort(400) + + +def _handle_item(dataset_getter, name, datasetid, itemid): + d = dataset_getter(datasetid, "graph") + if request.method == "GET": + n = getattr(d, "get_" + name)(itemid) + return jsonify(n.asjson()) + + if request.method == "DELETE": + if not d.can_write(): + abort(403) + if getattr(d, "remove_" + name)(itemid): + return jsonify(d.to_description(), indent=1) + abort(400) + + # put + if not d.can_write(): + abort(403) + n = _to_desc() + n["id"] = itemid + if getattr(d, "update_" + name)(n): + return jsonify(d.to_description(), indent=1) + # invalid upload + abort(400) + + +def _list_type(dataset_getter, name="node"): + def listitem(datasetid): + return _list_items(dataset_getter, name, datasetid) + + def handleitem(datasetid, itemid): + return _handle_item(dataset_getter, name, datasetid, itemid) + + return listitem, handleitem + + +def add_graph_handler(app, dataset_getter): + @app.route("/graph/") + @etag + def list_graphs(datasetid): + d = dataset_getter(datasetid, "graph") + return jsonify(d.to_description()) + + @app.route("/graph//data") + @etag + def get_graph_data(datasetid): + d = dataset_getter(datasetid, "graph") + formatter = resolve_formatter("graph", request.args.get("format", "json")) + return formatter(d, args=request.args) + + list_nodes, handle_node = _list_type(dataset_getter, "node") + app.add_url_rule( + "/graph//node", + "list_nodes", + etag(list_nodes), + methods=["GET", "POST", "DELETE"], + ) + app.add_url_rule( + "/graph//node/", + "handle_node", + etag(handle_node), + methods=["GET", "PUT", "DELETE"], + ) + + list_edges, handle_edge = _list_type(dataset_getter, "edge") + app.add_url_rule( + "/graph//edge", + "list_edges", + etag(list_edges), + methods=["GET", "POST", "DELETE"], + ) + app.add_url_rule( + "/graph//edge/", + "handle_edge", + etag(handle_edge), + methods=["GET", "PUT", "DELETE"], + ) + + # websocket = ws.Socket(app) + # @websocket.route('/ws') + # def graph_ws(socket): + # ws.websocket_loop(socket, dict(get_graph=(payload, s))) diff --git a/tdp_core/dataset/graph/graph_parser.py b/tdp_core/dataset/graph/graph_parser.py new file mode 100644 index 000000000..f29c33183 --- /dev/null +++ b/tdp_core/dataset/graph/graph_parser.py @@ -0,0 +1,10 @@ +def parse_json(args, files): + if "desc" in args: + import json + + args = json.loads(args["desc"]) + if "nodes" not in args: + args["nodes"] = [] + if "edges" not in args: + args["edges"] = [] + return args diff --git a/tdp_core/db.py b/tdp_core/db.py index ed99246ff..13262a8b5 100644 --- a/tdp_core/db.py +++ b/tdp_core/db.py @@ -1,525 +1,559 @@ import logging from .sql_filter import filter_logic -from phovea_server.ns import abort +from flask import abort from .dbmanager import DBManager from .utils import clean_query, secure_replacements from werkzeug.datastructures import MultiDict -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) configs = DBManager() def _supports_sql_parameters(dialect): - return dialect.lower() != 'sqlite' and dialect.lower() != 'oracle' # sqlite doesn't support array parameters, postgres does + return dialect.lower() != "sqlite" and dialect.lower() != "oracle" # sqlite doesn't support array parameters, postgres does def _differentiates_empty_string_and_null(dialect): - return dialect.lower() != 'oracle' # for Oracle, an empty string is the same as a null string + return dialect.lower() != "oracle" # for Oracle, an empty string is the same as a null string def resolve(database): - """ - finds and return the connector and engine for the given database - :param database: database key to lookup - :return: (connector, engine) - """ - if database not in configs: - abort(404, 'Database with id "{}" cannot be found'.format(database)) - r = configs[database] - # derive needed columns - connector, engine = r - for view in connector.views.values(): - if view.needs_to_fill_up_columns() and view.table is not None: - _fill_up_columns(view, engine) - return r + """ + finds and return the connector and engine for the given database + :param database: database key to lookup + :return: (connector, engine) + """ + if database not in configs: + abort(404, 'Database with id "{}" cannot be found'.format(database)) + r = configs[database] + # derive needed columns + connector, engine = r + for view in connector.views.values(): + if view.needs_to_fill_up_columns() and view.table is not None: + _fill_up_columns(view, engine) + return r def resolve_engine(database): - """ - finds and return the engine for the given database - :param database: database key to lookup - :return: engine - """ - if database not in configs: - abort(404, 'Database with id "{}" cannot be found'.format(database)) - return configs.engine(database) + """ + finds and return the engine for the given database + :param database: database key to lookup + :return: engine + """ + if database not in configs: + abort(404, 'Database with id "{}" cannot be found'.format(database)) + return configs.engine(database) def resolve_view(database, view_name, check_default_security=False): - """ - finds and return the connector, engine, and view for the given database and view_name - :param database: database key to lookup - :param view_name: view name to lookup - :param check_default_security: bool; usually view.can_access returns True when no security is defined on the view. This parameter can be used to tell the method that it should check the security anyway, e.g. that the user is at least logged in - :return: (connector, engine, view) - """ - connector, engine = resolve(database) - if view_name not in connector.views: - abort(404, 'view with id "{}" cannot be found in database "{}"'.format(view_name, database)) - view = connector.views[view_name] - # TODO: improve the logic of the view.can_access function, because even for unauthorized can_access returns True, i.e. that the user can access the resource. Somewhere else the server checks whether the user is authenticated or not - if not view.can_access(check_default_security): - abort(403) - return connector, engine, view + """ + finds and return the connector, engine, and view for the given database and view_name + :param database: database key to lookup + :param view_name: view name to lookup + :param check_default_security: bool; usually view.can_access returns True when no security is defined on the view. This parameter can be used to tell the method that it should check the security anyway, e.g. that the user is at least logged in + :return: (connector, engine, view) + """ + connector, engine = resolve(database) + if view_name not in connector.views: + abort( + 404, + 'view with id "{}" cannot be found in database "{}"'.format(view_name, database), + ) + view = connector.views[view_name] + # TODO: improve the logic of the view.can_access function, because even for unauthorized can_access returns True, i.e. that the user can access the resource. Somewhere else the server checks whether the user is authenticated or not + if not view.can_access(check_default_security): + abort(403) + return connector, engine, view def to_query(q, supports_array_parameter, parameters): - """ - converts to the native SQL query using sqlalchemy + handling of array parameters - :param q: the SQL query - :param supports_array_parameter: whether array parameters are supported - :param parameters: dictionary of parameters that are going to be applied - :return: the transformed query and call by reference updated parameters - """ - import sqlalchemy - - q = q.replace('\n', ' ').replace('\r', ' ') - if supports_array_parameter: - return sqlalchemy.sql.text(q) + """ + converts to the native SQL query using sqlalchemy + handling of array parameters + :param q: the SQL query + :param supports_array_parameter: whether array parameters are supported + :param parameters: dictionary of parameters that are going to be applied + :return: the transformed query and call by reference updated parameters + """ + import sqlalchemy - # need to suffix all array parameter and wrap with () - for k, v in list(parameters.items()): - if not isinstance(v, list) and not isinstance(v, tuple): - continue - # sounds like an array - # convert from :ids to (:ids0, :ids1, :ids2) - subparameters = {(k + str(i)): vi for i, vi in enumerate(v)} - q = q.replace(':' + k, '({ids})'.format(ids=', '.join(':' + p for p in subparameters.keys()))) - del parameters[k] # delete single - parameters.update(subparameters) # add sub + q = q.replace("\n", " ").replace("\r", " ") + if supports_array_parameter: + return sqlalchemy.sql.text(q) + + # need to suffix all array parameter and wrap with () + for k, v in list(parameters.items()): + if not isinstance(v, list) and not isinstance(v, tuple): + continue + # sounds like an array + # convert from :ids to (:ids0, :ids1, :ids2) + subparameters = {(k + str(i)): vi for i, vi in enumerate(v)} + q = q.replace( + ":" + k, + "({ids})".format(ids=", ".join(":" + p for p in subparameters.keys())), + ) + del parameters[k] # delete single + parameters.update(subparameters) # add sub - return sqlalchemy.sql.text(q) + return sqlalchemy.sql.text(q) class WrappedSession(object): - def __init__(self, engine): - """ - session wrapper of sql alchemy with auto cleanup - :param engine: - """ - _log.info('creating session') - self._session = configs.create_session(engine) - self._supports_array_parameter = _supports_sql_parameters(engine.name) + def __init__(self, engine): + """ + session wrapper of sql alchemy with auto cleanup + :param engine: + """ + _log.info("creating session") + self._session = configs.create_session(engine) + self._supports_array_parameter = _supports_sql_parameters(engine.name) + + def execute(self, sql, **kwargs): + """ + execute the given query with the given args + :param sql: query + :param kwargs: additional args to replace + :return: the session result + """ + import sqlalchemy + + parsed = to_query(sql, self._supports_array_parameter, kwargs) + _log.info("%s (%s)", parsed, kwargs) + try: + return self._session.execute(parsed, kwargs) + except sqlalchemy.exc.OperationalError as error: + abort(408, error) + + def run(self, sql, **kwargs): + """ + runs the given sql statement, in contrast to execute the result will be converted to a list of dicts + :param sql: the sql query to execute + :param kwargs: args for this query + :return: list of dicts + """ + result = self.execute(sql, **kwargs) + columns = result.keys() + return [{c: r[c] for c in columns} for r in result] + + def __call__(self, sql, **kwargs): + return self.run(sql, **kwargs) + + def __enter__(self): + return self + + def commit(self): + self._session.commit() + + def flush(self): + self._session.flush() + + def rollback(self): + self._session.rollback() + + def _destroy(self): + if self._session: + _log.info("removing session again") + self._session.close() + self._session = None + + def __del__(self): + self._destroy() + + def __exit__(self, exc_type, exc_val, exc_tb): + self._destroy() - def execute(self, sql, **kwargs): + +def session(engine): + return WrappedSession(engine) + + +def get_columns(engine, table_name): """ - execute the given query with the given args - :param sql: query - :param kwargs: additional args to replace - :return: the session result + returns the set of columns (name, type: (string|categorical|number), categories: string[]) for the given table or view + :param engine: underlying engine + :param table_name: table name which may include a schema prefix + :return: the list of columns """ import sqlalchemy - parsed = to_query(sql, self._supports_array_parameter, kwargs) - _log.info('%s (%s)', parsed, kwargs) - try: - return self._session.execute(parsed, kwargs) - except sqlalchemy.exc.OperationalError as error: - abort(408, error) - def run(self, sql, **kwargs): - """ - runs the given sql statement, in contrast to execute the result will be converted to a list of dicts - :param sql: the sql query to execute - :param kwargs: args for this query - :return: list of dicts - """ - result = self.execute(sql, **kwargs) - columns = result.keys() - return [{c: r[c] for c in columns} for r in result] + schema = None + if "." in table_name: + splitted = table_name.split(".") + schema = splitted[0] + table_name = splitted[1] + inspector = sqlalchemy.inspect(engine) - def __call__(self, sql, **kwargs): - return self.run(sql, **kwargs) + columns = inspector.get_columns(table_name, schema) - def __enter__(self): - return self + def _normalize_columns(col): + from sqlalchemy import types - def commit(self): - self._session.commit() + r = dict(label=col["name"], type="string", column=col["name"]) + t = col["type"] + if isinstance(t, types.Integer) or isinstance(t, types.Numeric): + r["type"] = "number" + elif isinstance(t, types.Enum): + r["type"] = "categorical" + r["categories"] = sorted(t.enums, key=lambda s: s.lower()) + return r - def flush(self): - self._session.flush() + return map(_normalize_columns, columns) - def rollback(self): - self._session.rollback() - def _destroy(self): - if self._session: - _log.info('removing session again') - self._session.close() - self._session = None +def _handle_aggregated_score(base_view, config, replacements, args): + """ + Handle aggregation for aggregated (and inverted aggregated) score queries + :param replacements: + :return replacements: + """ + view = config.agg_score + agg = args.get("agg", "") - def __del__(self): - self._destroy() + if agg == "": + return replacements - def __exit__(self, exc_type, exc_val, exc_tb): - self._destroy() + query = view.query + # generic specific variant + if agg in view.queries: + query = view.queries[agg] -def session(engine): - return WrappedSession(engine) + # view specific variant + if ("agg_score_" + agg) in base_view.queries: + query = base_view.queries["agg_score_" + agg] + if query is None: + return replacements -def get_columns(engine, table_name): - """ - returns the set of columns (name, type: (string|categorical|number), categories: string[]) for the given table or view - :param engine: underlying engine - :param table_name: table name which may include a schema prefix - :return: the list of columns - """ - import sqlalchemy - - schema = None - if '.' in table_name: - splitted = table_name.split('.') - schema = splitted[0] - table_name = splitted[1] - inspector = sqlalchemy.inspect(engine) - - columns = inspector.get_columns(table_name, schema) - - def _normalize_columns(col): - from sqlalchemy import types - r = dict(label=col['name'], type='string', column=col['name']) - t = col['type'] - if isinstance(t, types.Integer) or isinstance(t, types.Numeric): - r['type'] = 'number' - elif isinstance(t, types.Enum): - r['type'] = 'categorical' - r['categories'] = sorted(t.enums, key=lambda s: s.lower()) - return r - - return map(_normalize_columns, columns) + replace = {} + if view.replacements is not None: + for arg in view.replacements: + replace[arg] = args.get(arg, "") + replacements["agg_score"] = query.format(**replace) -def _handle_aggregated_score(base_view, config, replacements, args): - """ - Handle aggregation for aggregated (and inverted aggregated) score queries - :param replacements: - :return replacements: - """ - view = config.agg_score - agg = args.get('agg', '') - - if agg == '': return replacements - query = view.query - # generic specific variant - if agg in view.queries: - query = view.queries[agg] +def prepare_arguments(view, config, replacements=None, arguments=None, extra_sql_argument=None): + """ + prepares for the given view the kwargs and replacements based on the given input + :param view: db view + :param config: db connector config + :param replacements: dict of generated or resolved replacements + :param arguments: dict of arguments or as fallback replacements + :param extra_sql_argument: additional unchecked kwargs + :return: (kwargs, replace) + """ + replacements = replacements or {} + arguments = arguments or {} + replacements = _handle_aggregated_score(view, config, replacements, arguments) + + # convert to index lookup + kwargs = {} + replace = {} + + if view.arguments is not None: + for arg in view.arguments: + info = view.get_argument_info(arg) + lookup_key = arg + + if lookup_key not in arguments: + if (arg + "[]") in arguments: # check if we can find the lookup key with array form + lookup_key = arg + "[]" + elif not info or not info.list_as_tuple: + _log.warn('missing argument "%s": "%s"', view.query, arg) + abort(400, "missing argument: " + arg) + parser = info.type if info and info.type is not None else lambda x: x + try: + if info and info.as_list: + vs = arguments.getlist(lookup_key) if hasattr(arguments, "getlist") else arguments.get(lookup_key) + value = tuple([parser(v) for v in vs]) # multi values need to be a tuple not a list + elif info and info.list_as_tuple: + vs = arguments.getlist(lookup_key) if hasattr(arguments, "getlist") else arguments.get(lookup_key, []) + if len(vs) == 0: + value = "(1, null)" + else: + if str(vs[0]).isdigit() and (info.type is None or info.type == int): + value = "(1,%s)" % "),(1,".join(vs) + else: + value = "(1,'%s')" % "'),(1,'".join(vs) + if view.query: + # HACK: this hack allows us to inject arguments (DBViewBuilder.args) into the query (like the replacements) but at the same time use the list_as_tuple option + # We'll replace the query's argument with a placeholder, which is then used as a replacement, i.e. replaced via str.format(...) + magic_placeholder = "magic_list_as_tuple_replacement" + replace[magic_placeholder] = value + view.query = view.query.replace(":" + lookup_key, "{" + magic_placeholder + "}") + else: + kwargs[arg] = value + continue + else: + value = parser(arguments.get(lookup_key)) + kwargs[arg] = value + except ValueError as verr: + abort(400, "invalid argument for: " + arg + " - " + str(verr)) + + if extra_sql_argument is not None: + kwargs.update(extra_sql_argument) + + if view.replacements is not None: + for arg in view.replacements: + fallback = arguments.get(arg, "") + if arg in secure_replacements: # has to be part of the replacements + value = replacements.get(arg, "") + else: + value = replacements.get(arg, fallback) # if not a secure one fallback with an argument + if not view.is_valid_replacement(arg, value): + _log.warn( + 'invalid replacement value detected "%s": "%s"="%s"', + view.query, + arg, + value, + ) + abort(400, 'the given parameter "%s" is invalid' % arg) + else: + replace[arg] = value - # view specific variant - if ('agg_score_' + agg) in base_view.queries: - query = base_view.queries['agg_score_' + agg] + return kwargs, replace - if query is None: - return replacements - replace = {} - if view.replacements is not None: - for arg in view.replacements: - replace[arg] = args.get(arg, '') +def get_data( + database, + view_name, + replacements=None, + arguments=None, + extra_sql_argument=None, + filters=None, +): + """ + executes the given view name on the given database with the given arguments + :param database: db connector name + :param view_name: view name + :param replacements: dict of replacements + :param arguments: dict of arguments + :param extra_sql_argument: additional unchecked kwargs for the query + :param filters: the dict of dynamically build filter + :return: (r, view) tuple of the resulting rows and the resolved view + """ + config, engine, view = resolve_view(database, view_name) - replacements['agg_score'] = query.format(**replace) + kwargs, replace = prepare_arguments(view, config, replacements, arguments, extra_sql_argument) - return replacements + query = view.query + if callable(query): + # callback variant + return query(engine, arguments, filters), view -def prepare_arguments(view, config, replacements=None, arguments=None, extra_sql_argument=None): - """ - prepares for the given view the kwargs and replacements based on the given input - :param view: db view - :param config: db connector config - :param replacements: dict of generated or resolved replacements - :param arguments: dict of arguments or as fallback replacements - :param extra_sql_argument: additional unchecked kwargs - :return: (kwargs, replace) - """ - replacements = replacements or {} - arguments = arguments or {} - replacements = _handle_aggregated_score(view, config, replacements, arguments) - - # convert to index lookup - kwargs = {} - replace = {} - - if view.arguments is not None: - for arg in view.arguments: - info = view.get_argument_info(arg) - lookup_key = arg - - if lookup_key not in arguments: - if (arg + '[]') in arguments: # check if we can find the lookup key with array form - lookup_key = (arg + '[]') - elif not info or not info.list_as_tuple: - _log.warn('missing argument "%s": "%s"', view.query, arg) - abort(400, 'missing argument: ' + arg) - parser = info.type if info and info.type is not None else lambda x: x - try: - if info and info.as_list: - vs = arguments.getlist(lookup_key) if hasattr(arguments, 'getlist') else arguments.get(lookup_key) - value = tuple([parser(v) for v in vs]) # multi values need to be a tuple not a list - elif info and info.list_as_tuple: - vs = arguments.getlist(lookup_key) if hasattr(arguments, 'getlist') else arguments.get(lookup_key, []) - if len(vs) == 0: - value = "(1, null)" - else: - if(str(vs[0]).isdigit() and (info.type is None or info.type == int)): - value = '(1,%s)' % '),(1,'.join(vs) - else: - value = '(1,\'%s\')' % '\'),(1,\''.join(vs) - if(view.query): - # HACK: this hack allows us to inject arguments (DBViewBuilder.args) into the query (like the replacements) but at the same time use the list_as_tuple option - # We'll replace the query's argument with a placeholder, which is then used as a replacement, i.e. replaced via str.format(...) - magic_placeholder = "magic_list_as_tuple_replacement" - replace[magic_placeholder] = value - view.query = view.query.replace(":" + lookup_key, "{" + magic_placeholder + "}") - else: - kwargs[arg] = value - continue - else: - value = parser(arguments.get(lookup_key)) - kwargs[arg] = value - except ValueError as verr: - abort(400, 'invalid argument for: ' + arg + ' - ' + str(verr)) - - if extra_sql_argument is not None: - kwargs.update(extra_sql_argument) - - if view.replacements is not None: - for arg in view.replacements: - fallback = arguments.get(arg, '') - if arg in secure_replacements: # has to be part of the replacements - value = replacements.get(arg, '') - else: - value = replacements.get(arg, fallback) # if not a secure one fallback with an argument - if not view.is_valid_replacement(arg, value): - _log.warn('invalid replacement value detected "%s": "%s"="%s"', view.query, arg, value) - abort(400, 'the given parameter "%s" is invalid' % arg) - else: - replace[arg] = value - - return kwargs, replace - - -def get_data(database, view_name, replacements=None, arguments=None, extra_sql_argument=None, filters=None): - """ - executes the given view name on the given database with the given arguments - :param database: db connector name - :param view_name: view name - :param replacements: dict of replacements - :param arguments: dict of arguments - :param extra_sql_argument: additional unchecked kwargs for the query - :param filters: the dict of dynamically build filter - :return: (r, view) tuple of the resulting rows and the resolved view - """ - config, engine, view = resolve_view(database, view_name) - - kwargs, replace = prepare_arguments(view, config, replacements, arguments, extra_sql_argument) - - query = view.query - - if callable(query): - # callback variant - return query(engine, arguments, filters), view - - with session(engine) as sess: - if config.statement_timeout is not None: - _log.info('set statement_timeout to {}'.format(config.statement_timeout)) - sess.execute(config.statement_timeout_query.format(config.statement_timeout)) - r = sess.run(query.format(**replace), **kwargs) - return r, view + with session(engine) as sess: + if config.statement_timeout is not None: + _log.info("set statement_timeout to {}".format(config.statement_timeout)) + sess.execute(config.statement_timeout_query.format(config.statement_timeout)) + r = sess.run(query.format(**replace), **kwargs) + return r, view def get_query(database, view_name, replacements=None, arguments=None, extra_sql_argument=None): - config, engine, view = resolve_view(database, view_name) + config, engine, view = resolve_view(database, view_name) - kwargs, replace = prepare_arguments(view, config, replacements, arguments, extra_sql_argument) + kwargs, replace = prepare_arguments(view, config, replacements, arguments, extra_sql_argument) - query = view.query + query = view.query - if callable(query): - return dict(query='custom function', args=kwargs) + if callable(query): + return dict(query="custom function", args=kwargs) - return dict(query=clean_query(query.format(**replace)), args=kwargs) + return dict(query=clean_query(query.format(**replace)), args=kwargs) def get_filtered_data(database, view_name, args): - config, _, view = resolve_view(database, view_name) - # convert to index lookup - # row id start with 1 - try: - replacements, processed_args, extra_args, where_clause = filter_logic(view, args) - except RuntimeError as error: - abort(400, error) + config, _, view = resolve_view(database, view_name) + # convert to index lookup + # row id start with 1 + try: + replacements, processed_args, extra_args, where_clause = filter_logic(view, args) + except RuntimeError as error: + abort(400, error) - return get_data(database, view_name, replacements, processed_args, extra_args, where_clause) + return get_data(database, view_name, replacements, processed_args, extra_args, where_clause) def get_filtered_query(database, view_name, args): - config, _, view = resolve_view(database, view_name) - # convert to index lookup - # row id start with 1 - try: - replacements, processed_args, extra_args, where_clause = filter_logic(view, args) - except RuntimeError as error: - abort(400, error) + config, _, view = resolve_view(database, view_name) + # convert to index lookup + # row id start with 1 + try: + replacements, processed_args, extra_args, where_clause = filter_logic(view, args) + except RuntimeError as error: + abort(400, error) - return get_query(database, view_name, replacements, processed_args, extra_args) + return get_query(database, view_name, replacements, processed_args, extra_args) def _get_count(database, view_name, args): - config, engine, view = resolve_view(database, view_name) + config, engine, view = resolve_view(database, view_name) - try: - replacements, processed_args, extra_args, where_clause = filter_logic(view, args) - except RuntimeError as error: - abort(400, error) + try: + replacements, processed_args, extra_args, where_clause = filter_logic(view, args) + except RuntimeError as error: + abort(400, error) - kwargs, replace = prepare_arguments(view, config, replacements, processed_args, extra_args) + kwargs, replace = prepare_arguments(view, config, replacements, processed_args, extra_args) - if 'count' in view.queries: - count_query = view.queries['count'] - elif view.table: - count_query = 'SELECT count(d.*) as count FROM {table} d {{joins}} {{where}}'.format(table=view.table) - else: - count_query = None - abort(500, 'invalid view configuration, missing count query and cannot derive it') + if "count" in view.queries: + count_query = view.queries["count"] + elif view.table: + count_query = "SELECT count(d.*) as count FROM {table} d {{joins}} {{where}}".format(table=view.table) + else: + count_query = None + abort(500, "invalid view configuration, missing count query and cannot derive it") - return config, engine, count_query, processed_args, where_clause, replace, kwargs + return config, engine, count_query, processed_args, where_clause, replace, kwargs def get_count(database, view_name, args): - """ - similar to get_data but returns the count of resulting rows - :param database: db connector name - :param view_name: view name - :return: the count of results - """ - - config, engine, count_query, processed_args, where_clause, replace, kwargs = _get_count(database, view_name, args) - - if callable(count_query): - # callback variant - return count_query(engine, processed_args, where_clause) + """ + similar to get_data but returns the count of resulting rows + :param database: db connector name + :param view_name: view name + :return: the count of results + """ - with session(engine) as sess: - if config.statement_timeout is not None: - _log.info('set statement_timeout to {}'.format(config.statement_timeout)) - sess.execute(config.statement_timeout_query.format(config.statement_timeout)) - r = sess.run(count_query.format(**replace), **kwargs) - if r: - return r[0]['count'] - return 0 + ( + config, + engine, + count_query, + processed_args, + where_clause, + replace, + kwargs, + ) = _get_count(database, view_name, args) + + if callable(count_query): + # callback variant + return count_query(engine, processed_args, where_clause) + + with session(engine) as sess: + if config.statement_timeout is not None: + _log.info("set statement_timeout to {}".format(config.statement_timeout)) + sess.execute(config.statement_timeout_query.format(config.statement_timeout)) + r = sess.run(count_query.format(**replace), **kwargs) + if r: + return r[0]["count"] + return 0 def get_count_query(database, view_name, args): - config, engine, count_query, processed_args, where_clause, replace, kwargs = _get_count(database, view_name, args) + ( + config, + engine, + count_query, + processed_args, + where_clause, + replace, + kwargs, + ) = _get_count(database, view_name, args) - if callable(count_query): - return dict(query='custom function', args=kwargs) + if callable(count_query): + return dict(query="custom function", args=kwargs) - return dict(query=count_query.format(**replace), args=kwargs) + return dict(query=count_query.format(**replace), args=kwargs) def derive_columns(table_name, engine, columns=None): - """ - helper function to derive the columns of a table - """ - columns = columns or {} - - for col in get_columns(engine, table_name): - name = col['column'] - if name in columns: - # merge - old = columns[name] - for k, v in col.items(): - if k not in old: - old[k] = v - else: - columns[name] = col - - # derive the missing domains and categories - number_columns = [k for k, col in columns.items() if - col['type'] == 'number' and ('min' not in col or 'max' not in col)] - categorical_columns = [k for k, col in columns.items() if (col['type'] == 'categorical' or col['type'] == 'set') and 'categories' not in col] - if number_columns or categorical_columns: - with session(engine) as s: - if number_columns: - template = 'min({col}) as {col}_min, max({col}) as {col}_max' - minmax = ', '.join(template.format(col=col) for col in number_columns) - row = next(iter(s.execute("""SELECT {minmax} FROM {table}""".format(table=table_name, minmax=minmax)))) - for num_col in number_columns: - columns[num_col]['min'] = row[num_col + '_min'] - columns[num_col]['max'] = row[num_col + '_max'] - for col in categorical_columns: - template = """SELECT distinct {col} as cat FROM {table} WHERE {col} is not NULL""" - if _differentiates_empty_string_and_null(engine.name): - template += """ AND {col} <> ''""" - template += """ ORDER BY {col} ASC""" - cats = s.execute(template.format(col=col, table=table_name)) - categories = [str(r['cat']) for r in cats if r['cat'] is not None] - if columns[col]['type'] == 'set': - separator = getattr(columns[col], 'separator', ';') - separated_categories = [category.split(separator) for category in categories] - # flatten array - categories = list(set([category for sublist in separated_categories for category in sublist])) - categories.sort() # sort list to avoid random order with each run - columns[col]['categories'] = categories - - return columns + """ + helper function to derive the columns of a table + """ + columns = columns or {} + + for col in get_columns(engine, table_name): + name = col["column"] + if name in columns: + # merge + old = columns[name] + for k, v in col.items(): + if k not in old: + old[k] = v + else: + columns[name] = col + + # derive the missing domains and categories + number_columns = [k for k, col in columns.items() if col["type"] == "number" and ("min" not in col or "max" not in col)] + categorical_columns = [k for k, col in columns.items() if (col["type"] == "categorical" or col["type"] == "set") and "categories" not in col] + if number_columns or categorical_columns: + with session(engine) as s: + if number_columns: + template = "min({col}) as {col}_min, max({col}) as {col}_max" + minmax = ", ".join(template.format(col=col) for col in number_columns) + row = next(iter(s.execute("""SELECT {minmax} FROM {table}""".format(table=table_name, minmax=minmax)))) + for num_col in number_columns: + columns[num_col]["min"] = row[num_col + "_min"] + columns[num_col]["max"] = row[num_col + "_max"] + for col in categorical_columns: + template = """SELECT distinct {col} as cat FROM {table} WHERE {col} is not NULL""" + if _differentiates_empty_string_and_null(engine.name): + template += """ AND {col} <> ''""" + template += """ ORDER BY {col} ASC""" + cats = s.execute(template.format(col=col, table=table_name)) + categories = [str(r["cat"]) for r in cats if r["cat"] is not None] + if columns[col]["type"] == "set": + separator = getattr(columns[col], "separator", ";") + separated_categories = [category.split(separator) for category in categories] + # flatten array + categories = list(set([category for sublist in separated_categories for category in sublist])) + categories.sort() # sort list to avoid random order with each run + columns[col]["categories"] = categories + + return columns def _fill_up_columns(view, engine): - _log.info('fill up view') - # update the real object - view.columns = derive_columns(view.table, engine, view.columns) - view.columns_filled_up = True + _log.info("fill up view") + # update the real object + view.columns = derive_columns(view.table, engine, view.columns) + view.columns_filled_up = True def _lookup(database, view_name, query, page, limit, args): - config, engine, view = resolve_view(database, view_name) + config, engine, view = resolve_view(database, view_name) - arguments = MultiDict(args) - offset = page * limit - # replace with wildcard version - arguments['query'] = '%{}%'.format(query) - arguments['query_end'] = '%{}'.format(query) - arguments['query_start'] = '{}%'.format(query) - arguments['query_match'] = '{}'.format(query) - # add 1 for checking if we have more - replacements = dict(limit=limit + 1, offset=offset, offset2=(offset + limit + 1)) + arguments = MultiDict(args) + offset = page * limit + # replace with wildcard version + arguments["query"] = "%{}%".format(query) + arguments["query_end"] = "%{}".format(query) + arguments["query_start"] = "{}%".format(query) + arguments["query_match"] = "{}".format(query) + # add 1 for checking if we have more + replacements = dict(limit=limit + 1, offset=offset, offset2=(offset + limit + 1)) - kwargs, replace = prepare_arguments(view, config, replacements, arguments) + kwargs, replace = prepare_arguments(view, config, replacements, arguments) - return engine, view, view.query, replace, kwargs + return engine, view, view.query, replace, kwargs def lookup_query(database, view_name, query, page, limit, args): - engine, _, sql, replace, kwargs = _lookup(database, view_name, query, page, limit, args) + engine, _, sql, replace, kwargs = _lookup(database, view_name, query, page, limit, args) - if callable(sql): - return dict(query='custom function', args=kwargs) + if callable(sql): + return dict(query="custom function", args=kwargs) - return dict(query=sql.format(**replace), args=kwargs) + return dict(query=sql.format(**replace), args=kwargs) def lookup(database, view_name, query, page, limit, args): - engine, view, sql, replace, kwargs = _lookup(database, view_name, query, page, limit, args) + engine, view, sql, replace, kwargs = _lookup(database, view_name, query, page, limit, args) - if callable(sql): - kwargs.update(replace) - # callback variant - return sql(engine, kwargs, None) + if callable(sql): + kwargs.update(replace) + # callback variant + return sql(engine, kwargs, None) - with session(engine) as sess: - r_items = sess.run(sql.format(**replace), **kwargs) + with session(engine) as sess: + r_items = sess.run(sql.format(**replace), **kwargs) - more = len(r_items) > limit - if more: - # hit the boundary of more remove the artificial one - del r_items[-1] + more = len(r_items) > limit + if more: + # hit the boundary of more remove the artificial one + del r_items[-1] - return r_items, more, view + return r_items, more, view diff --git a/tdp_core/dbmanager.py b/tdp_core/dbmanager.py index 77bb29074..280796f70 100644 --- a/tdp_core/dbmanager.py +++ b/tdp_core/dbmanager.py @@ -1,117 +1,119 @@ import logging -from phovea_server.config import view as configview -from phovea_server.plugin import list as list_plugins +from .plugin.registry import list_plugins +from .settings import get_global_settings -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) class DBManager(object): - def __init__(self): - self._initialized = False - - self.connectors = {} - self._plugins = {} - self._engines = dict() - self._sessionmakers = dict() - - for p in list_plugins('tdp-sql-database-definition'): - config = configview(p.configKey) - connector = p.load().factory() - if not connector.dburl: - connector.dburl = config['dburl'] - if not connector.statement_timeout: - connector.statement_timeout = config.get('statement_timeout', default=None) - if not connector.statement_timeout_query: - connector.statement_timeout_query = config.get('statement_timeout_query', default=None) - if not connector.dburl: - _log.critical('no db url defined for %s at config key %s - is your configuration up to date?', p.id, - p.configKey) - continue - - self._plugins[p.id] = p - self.connectors[p.id] = connector - - for p in list_plugins('tdp-sql-database-extension'): - base_connector = self.connectors.get(p.base) - if not base_connector: - _log.critical('invalid database extension no base found: %s base: %s' % (p.id, p.base)) - continue - connector = p.load().factory() - if not connector.statement_timeout: - connector.statement_timeout = base_connector.statement_timeout - if not connector.statement_timeout_query: - connector.statement_timeout_query = base_connector.statement_timeout_query - - self._plugins[p.id] = p - self.connectors[p.id] = connector - - def _load_engine(self, item): - if not self._initialized: - self._initialized = True - for p in list_plugins('greenifier'): - _log.info('run greenifier: %s', p.id) - p.load().factory() - if item in self._engines: - return self._engines[item] - - p = self._plugins[item] - if p.type == 'tdp-sql-database-extension': - engine = self._load_engine(p.base) - self._engines[item] = engine - return engine - - connector = self.connectors[item] - # _log.info('%s -> %s', p.id, connector.dburl) - config = configview(p.configKey) - - engine = connector.create_engine(config) - maker = connector.create_sessionmaker(engine) - - self._engines[item] = engine - self._sessionmakers[engine] = maker - - return engine - - def __getitem__(self, item): - if item not in self: - raise NotImplementedError('missing db connector: ' + item) - return self.connectors[item], self._load_engine(item) - - def connector(self, item): - if item not in self: - raise NotImplementedError('missing db connector: ' + item) - return self.connectors[item] - - def engine(self, item): - if item not in self: - raise NotImplementedError('missing db connector: ' + item) - return self._load_engine(item) - - def create_session(self, engine): - return self._sessionmakers[engine]() - - def create_web_session(self, engine): - """ - create a session that is scoped by the current flask request. - Note: if an exception occurs in the debug mode, flask for debugging reason won't destroy it - """ - from flask import after_this_request - - session = self.create_session(engine) - - @after_this_request - def close_db(response_or_exc): - session.close() - return response_or_exc - - return session - - def __contains__(self, item): - return item in self.connectors - - def get(self, item, default=None): - if item not in self: - return default - return self[item] + def __init__(self): + self._initialized = False + + self.connectors = {} + self._plugins = {} + self._engines = dict() + self._sessionmakers = dict() + + for p in list_plugins("tdp-sql-database-definition"): + config = get_global_settings().get_nested(p.configKey) + connector = p.load().factory() + if not connector.dburl: + connector.dburl = config["dburl"] + if not connector.statement_timeout: + connector.statement_timeout = config.get("statement_timeout", None) + if not connector.statement_timeout_query: + connector.statement_timeout_query = config.get("statement_timeout_query", None) + if not connector.dburl: + _log.critical( + "no db url defined for %s at config key %s - is your configuration up to date?", + p.id, + p.configKey, + ) + continue + + self._plugins[p.id] = p + self.connectors[p.id] = connector + + for p in list_plugins("tdp-sql-database-extension"): + base_connector = self.connectors.get(p.base) + if not base_connector: + _log.critical("invalid database extension no base found: %s base: %s" % (p.id, p.base)) + continue + connector = p.load().factory() + if not connector.statement_timeout: + connector.statement_timeout = base_connector.statement_timeout + if not connector.statement_timeout_query: + connector.statement_timeout_query = base_connector.statement_timeout_query + + self._plugins[p.id] = p + self.connectors[p.id] = connector + + def _load_engine(self, item): + if not self._initialized: + self._initialized = True + for p in list_plugins("greenifier"): + _log.info("run greenifier: %s", p.id) + p.load().factory() + if item in self._engines: + return self._engines[item] + + p = self._plugins[item] + if p.type == "tdp-sql-database-extension": + engine = self._load_engine(p.base) + self._engines[item] = engine + return engine + + connector = self.connectors[item] + # _log.info('%s -> %s', p.id, connector.dburl) + config = get_global_settings().get_nested(p.configKey) + + engine = connector.create_engine(config) + maker = connector.create_sessionmaker(engine) + + self._engines[item] = engine + self._sessionmakers[engine] = maker + + return engine + + def __getitem__(self, item): + if item not in self: + raise NotImplementedError("missing db connector: " + item) + return self.connectors[item], self._load_engine(item) + + def connector(self, item): + if item not in self: + raise NotImplementedError("missing db connector: " + item) + return self.connectors[item] + + def engine(self, item): + if item not in self: + raise NotImplementedError("missing db connector: " + item) + return self._load_engine(item) + + def create_session(self, engine): + return self._sessionmakers[engine]() + + def create_web_session(self, engine): + """ + create a session that is scoped by the current flask request. + Note: if an exception occurs in the debug mode, flask for debugging reason won't destroy it + """ + from flask import after_this_request + + session = self.create_session(engine) + + @after_this_request + def close_db(response_or_exc): + session.close() + return response_or_exc + + return session + + def __contains__(self, item): + return item in self.connectors + + def get(self, item, default=None): + if item not in self: + return default + return self[item] diff --git a/tdp_core/dbmigration.py b/tdp_core/dbmigration.py deleted file mode 100644 index 988faece5..000000000 --- a/tdp_core/dbmigration.py +++ /dev/null @@ -1,268 +0,0 @@ -import logging -import re - -from phovea_server.config import view as configview -from phovea_server.plugin import list as list_plugins, lookup, AExtensionDesc -from .db import configs as engines -from typing import List, Dict, Optional -import alembic.command -import alembic.config -from os import path -from argparse import REMAINDER - - -__author__ = 'Datavisyn' -_log = logging.getLogger(__name__) - -global_cfg = configview('tdp_core.migrations') -alembic_cfg = alembic.config.Config(path.join(path.abspath(path.dirname(__file__)), 'dbmigration.ini')) - - -class DBMigration(object): - """ - DBMigration object stores the required arguments to execute commands using Alembic. - """ - - def __init__(self, id: str, db_url: str, script_location: str, *, auto_upgrade: bool = False, version_table_schema: str = None): - """ - Initializes a new migration object and optionally carries out an upgrade. - :param str id: ID of the migration object - :param str db_url: DB connection url - :param str script_location: Location of the base directory (containing env.py and the versions directory) - :param bool auto_upgrade: True if the migration should automatically upgrade the database to head - :param str version_table_schema: Schema of the alembic version table - """ - if not id or not db_url or not script_location: - raise ValueError('Empty id or db_url or script_location') - - self.id: str = id - self.db_url: str = db_url - self.script_location: str = script_location - self.auto_upgrade: bool = auto_upgrade - self.version_table_schema: Optional[str] = version_table_schema - self.custom_commands: Dict[str, str] = dict() - - # Because we can't easily pass "-1" as npm argument, we add a custom command for that without the space - self.add_custom_command(r'downgrade-(\d+)', 'downgrade -{}') - - # Automatically upgrade to head (if enabled) - if self.auto_upgrade: - _log.info(f'Upgrading database {self.id}') - try: - self.execute(['upgrade', 'head']) - _log.info(f'Successfully upgraded database {self.id}') - # As alembic is actually a commandline tool, it sometimes uses sys.exit (https://github.com/sqlalchemy/alembic/blob/master/alembic/util/messaging.py#L63) - except (SystemExit, alembic.util.exc.CommandError): - _log.exception(f'Error upgrading database {self.id}') - - def __repr__(self) -> str: - return f'DBMigration({self.id})' - - def __str__(self) -> str: - return self.id - - def add_custom_command(self, pattern: str, target: str): - r""" - Adds a custom command to the migration. - - :param str pattern: Regex pattern of the command. Can include capture groups which will be used to format the target string. - :param str target: Target pattern for the command. Can include .format placeholders such as {} or {0} which will be replaced by the captured group. - - Example usage: Rewriting the command 'downgrade-' to 'downgrade -' - can be done with the pattern 'downgrade-(\d+)' and the target 'downgrade -{}'. - """ - self.custom_commands[pattern] = target - - def remove_custom_command(self, origin: str): - self.custom_commands.pop(origin, None) - - def get_custom_command(self, arguments: List[str] = []) -> Optional[List[str]]: - """ - Returns the rewritten command if it matches the pattern of a custom command. - :param List[str] arguments: Argument to rewrite. - """ - if arguments: - # Join the list with spaces - arguments = ' '.join(arguments) - # For all the command patterns we have .. - for key, value in self.custom_commands.items(): - # .. check if we can match the command pattern with the given string - matched = re.match(f"{key}$", arguments) - if matched: - # If we have a match, call format with the captured groups and split by ' ' - return value.format(*matched.groups()).split(' ') - return None - - def execute(self, arguments: List[str] = []) -> bool: - """ - Executes a command on the migration object. - :param List[str] arguments: Arguments for the underlying Alembic instance. See https://alembic.sqlalchemy.org/en/latest/api/ for details. - - Example usage: migration.execute(['upgrade', 'head']) upgrades to the database to head. - """ - # Rewrite command if possible - rewritten_arguments = self.get_custom_command(arguments) - if rewritten_arguments: - _log.info(f"Command {' '.join(arguments)} was rewritten to {' '.join(rewritten_arguments)}") - arguments = rewritten_arguments - - # Setup an alembic command line parser to parse the arguments - cmd_parser = alembic.config.CommandLine() - - # Parse the options (incl. validation) - options = cmd_parser.parser.parse_args(arguments) - - # Inject options in the configuration object - alembic_cfg.cmd_opts = options - alembic_cfg.set_main_option('script_location', self.script_location) - alembic_cfg.set_main_option('sqlalchemy.url', self.db_url) - alembic_cfg.set_main_option('migration_id', self.id) - if self.version_table_schema: - alembic_cfg.set_main_option('version_table_schema', self.version_table_schema) - - # Run the command - cmd_parser.run_cmd(alembic_cfg, options) - - return True - - -class DBMigrationManager(object): - """ - DBMigrationManager retrieves all 'tdp-sql-database-migration' plugins and initializes DBMigration objects. - The possible configuration keys for this extension point are: - - configKey: Key of the configuration entry (i.e. .migration) - - id: ID of the migration for logging purposes (passed to DBManager) - - dbKey: Key of the engine used for the migration (passed to DBManager) - - dbUrl: URL of the db connection used for the migration (passed to DBManager) - - Either dbKey or dbUrl is required, with dbUrl having precedence - - scriptLocation: Location of the alembic root folder (passed to DBManager) - - autoUpgrade: Flag which auto-upgrades to the latest revision (passed to DBManager). Defaults to config key 'tdp_core.migrations.autoUpgrade', or True if not configured. - - versionTableSchema: Schema of the alembic version table (passed to DBManager) - - The keys are retrieved from the following sources (in order): - - File configuration at configKey - - Plugin configuration - """ - - def __init__(self, plugins: List[AExtensionDesc] = []): - self._migrations: Dict[str, DBMigration] = dict() - - _log.info('Initializing DBMigrationManager') - - auto_upgrade_default = global_cfg.getboolean('autoUpgrade', default=True) - - for p in plugins: - _log.info('DBMigration found: %s', p.id) - - # Check if configKey is set, otherwise use the plugin configuration - config = configview(p.configKey) if hasattr(p, 'configKey') else {} - - # Priority of assignments: Configuration File -> Plugin Definition - id = config.get('id') or (p.id if hasattr(p, 'id') else None) - db_key = config.get('dbKey') or (p.dbKey if hasattr(p, 'dbKey') else None) - db_url = config.get('dbUrl') or (p.dbUrl if hasattr(p, 'dbUrl') else None) - script_location = config.get('scriptLocation') or (p.scriptLocation if hasattr(p, 'scriptLocation') else None) - version_table_schema = config.get('versionTableSchema') or (p.versionTableSchema if hasattr(p, 'versionTableSchema') else None) - auto_upgrade = config.get('autoUpgrade') if type(config.get('autoUpgrade')) == bool else \ - (p.autoUpgrade if hasattr(p, 'autoUpgrade') and type(p.autoUpgrade) == bool else auto_upgrade_default) - - # Validate the plugin description - missing_fields = [] - if not id: - missing_fields.append('id') - if not script_location: - missing_fields.append('scriptLocation') - if not db_key and not db_url: - missing_fields.append('dbUrl or dbKey') - - if len(missing_fields) > 0: - _log.error('No {} defined for DBMigration {} - is your configuration up to date?'.format(', '.join(missing_fields), id or '')) - continue - - if db_key and db_url: - _log.info(f'Both dbKey and dbUrl defined for DBMigration {id} - falling back to dbUrl') - elif db_key: - # Check if engine exists - if db_key not in engines: - _log.error(f'No engine called {db_key} found for DBMigration {id} - is your configuration up to date?') - continue - - # Retrieve engine and store string as db url - try: - db_url = str(engines.engine(db_key).url) - except Exception: - _log.exception(f'Error retrieving URL from engine {db_key}') - continue - - # Create new migration - migration = DBMigration(id, db_url, script_location, auto_upgrade=auto_upgrade, version_table_schema=version_table_schema) - - # Store migration - self._migrations[migration.id] = migration - - def __contains__(self, item): - return item in self._migrations - - def __getitem__(self, item): - if item not in self: - raise NotImplementedError('Missing DBMigration: ' + item) - return self._migrations[item] - - def __len__(self): - return len(self._migrations) - - @property - def ids(self) -> List[str]: - return list(self._migrations.keys()) - - @property - def migrations(self) -> List[DBMigration]: - return list(self._migrations.values()) - - -def get_db_migration_manager(): - return lookup('db-migration-manager') - - -def create_migration_manager(): - return DBMigrationManager(list_plugins('tdp-sql-database-migration')) - - -def create_migration_command(parser): - """ - Creates a migration command used by the 'command' extension point. - """ - db_migration_manager = get_db_migration_manager() - - subparsers = parser.add_subparsers(dest='action', required=True) - - subparsers.add_parser('list', help='List all available migrations') - - command_parser = subparsers.add_parser('exec', help='Execute command on migration(s)') - - # Either require individual ids or all flag - command_parser.add_argument('id', - choices=db_migration_manager.ids + ['all'], - help='ID of the migration, or all of them') - - command_parser.add_argument('command', - nargs=REMAINDER, - help='Command executed by the migration') - - def execute(args): - if args.action == 'list': - if(len(db_migration_manager) == 0): - print('No migrations found') - else: - print('Available migrations: {}'.format(', '.join(str(migration) for migration in db_migration_manager.migrations))) - elif args.action == 'exec': - if args.id == 'all': - # TODO - print('Currently, only single migrations are supported. Please execute the command for each migration individually as we are working on a fix.') - return - - # Using REMAINDER as nargs causes the argument to be be optional, but '+' does not work because it also parses additional --attr with the parser which should actually be ignored. - # Therefore, args.command might be empty and we simply pass None to trigger the error message - db_migration_manager[args.id].execute(args.command if len(args.command) > 0 else None) - - return lambda args: lambda: execute(args) diff --git a/tdp_core/dbmigration/__init__.py b/tdp_core/dbmigration/__init__.py new file mode 100644 index 000000000..494d9230d --- /dev/null +++ b/tdp_core/dbmigration/__init__.py @@ -0,0 +1 @@ +from .manager import DBMigrationManager, DBMigration, get_db_migration_manager \ No newline at end of file diff --git a/tdp_core/dbmigration.ini b/tdp_core/dbmigration/dbmigration.ini similarity index 100% rename from tdp_core/dbmigration.ini rename to tdp_core/dbmigration/dbmigration.ini diff --git a/tdp_core/dbmigration_env.py b/tdp_core/dbmigration/env.py similarity index 79% rename from tdp_core/dbmigration_env.py rename to tdp_core/dbmigration/env.py index cfcac0d38..eb85e4d0f 100644 --- a/tdp_core/dbmigration_env.py +++ b/tdp_core/dbmigration/env.py @@ -26,19 +26,19 @@ def run_migrations_online(): """ # The other configuration is fetched in the actual migration function, - # because this dbmigration_env.py file is imported only once. + # because this env.py file is imported only once. # When having multiple migrations, the config is edited inline, # such that always the most-up-to-date configuration can be loaded in the actual function call. - migration_id = config.get_main_option('migration_id') + migration_id = config.get_main_option("migration_id") if not migration_id: - raise ValueError('No migration_id in main configuration') + raise ValueError("No migration_id in main configuration") # Additional configuration to be passed to context.configure additional_configuration = {} # Add the version_table_schema parameter if it exists - version_table_schema = config.get_main_option('version_table_schema') + version_table_schema = config.get_main_option("version_table_schema") if version_table_schema: - additional_configuration['version_table_schema'] = version_table_schema + additional_configuration["version_table_schema"] = version_table_schema connectable = engine_from_config( config.get_section(config.config_ini_section), @@ -51,8 +51,8 @@ def run_migrations_online(): connection=connection, target_metadata=target_metadata, include_schemas=True, - version_table=f'{migration_id}_alembic_version', - **additional_configuration + version_table=f"{migration_id}_alembic_version", + **additional_configuration, ) with context.begin_transaction(): diff --git a/tdp_core/dbmigration/manager.py b/tdp_core/dbmigration/manager.py new file mode 100644 index 000000000..8d6ec075d --- /dev/null +++ b/tdp_core/dbmigration/manager.py @@ -0,0 +1,287 @@ +import logging +import re + +from ..plugin.registry import list_plugins, lookup_singleton, AExtensionDesc +from ..settings import get_global_settings +from ..db import configs as engines +from typing import List, Dict, Optional +import alembic.command +import alembic.config +from os import path +from argparse import REMAINDER + + +__author__ = "Datavisyn" +_log = logging.getLogger(__name__) + +alembic_cfg = alembic.config.Config(path.join(path.abspath(path.dirname(__file__)), "dbmigration.ini")) + + +class DBMigration(object): + """ + DBMigration object stores the required arguments to execute commands using Alembic. + """ + + def __init__( + self, + id: str, + db_url: str, + script_location: str, + *, + auto_upgrade: bool = False, + version_table_schema: str = None, + ): + """ + Initializes a new migration object and optionally carries out an upgrade. + :param str id: ID of the migration object + :param str db_url: DB connection url + :param str script_location: Location of the base directory (containing env.py and the versions directory) + :param bool auto_upgrade: True if the migration should automatically upgrade the database to head + :param str version_table_schema: Schema of the alembic version table + """ + if not id or not db_url or not script_location: + raise ValueError("Empty id or db_url or script_location") + + self.id: str = id + self.db_url: str = db_url + self.script_location: str = script_location + self.auto_upgrade: bool = auto_upgrade + self.version_table_schema: Optional[str] = version_table_schema + self.custom_commands: Dict[str, str] = dict() + + # Because we can't easily pass "-1" as npm argument, we add a custom command for that without the space + self.add_custom_command(r"downgrade-(\d+)", "downgrade -{}") + + # Automatically upgrade to head (if enabled) + if self.auto_upgrade: + _log.info(f"Upgrading database {self.id}") + try: + self.execute(["upgrade", "head"]) + _log.info(f"Successfully upgraded database {self.id}") + # As alembic is actually a commandline tool, it sometimes uses sys.exit (https://github.com/sqlalchemy/alembic/blob/master/alembic/util/messaging.py#L63) + except (SystemExit, alembic.util.exc.CommandError): + _log.exception(f"Error upgrading database {self.id}") + + def __repr__(self) -> str: + return f"DBMigration({self.id})" + + def __str__(self) -> str: + return self.id + + def add_custom_command(self, pattern: str, target: str): + r""" + Adds a custom command to the migration. + + :param str pattern: Regex pattern of the command. Can include capture groups which will be used to format the target string. + :param str target: Target pattern for the command. Can include .format placeholders such as {} or {0} which will be replaced by the captured group. + + Example usage: Rewriting the command 'downgrade-' to 'downgrade -' + can be done with the pattern 'downgrade-(\d+)' and the target 'downgrade -{}'. + """ + self.custom_commands[pattern] = target + + def remove_custom_command(self, origin: str): + self.custom_commands.pop(origin, None) + + def get_custom_command(self, arguments: List[str] = []) -> Optional[List[str]]: + """ + Returns the rewritten command if it matches the pattern of a custom command. + :param List[str] arguments: Argument to rewrite. + """ + if arguments: + # Join the list with spaces + arguments = " ".join(arguments) + # For all the command patterns we have .. + for key, value in self.custom_commands.items(): + # .. check if we can match the command pattern with the given string + matched = re.match(f"{key}$", arguments) + if matched: + # If we have a match, call format with the captured groups and split by ' ' + return value.format(*matched.groups()).split(" ") + return None + + def execute(self, arguments: List[str] = []) -> bool: + """ + Executes a command on the migration object. + :param List[str] arguments: Arguments for the underlying Alembic instance. See https://alembic.sqlalchemy.org/en/latest/api/ for details. + + Example usage: migration.execute(['upgrade', 'head']) upgrades to the database to head. + """ + # Rewrite command if possible + rewritten_arguments = self.get_custom_command(arguments) + if rewritten_arguments: + _log.info(f"Command {' '.join(arguments)} was rewritten to {' '.join(rewritten_arguments)}") + arguments = rewritten_arguments + + # Setup an alembic command line parser to parse the arguments + cmd_parser = alembic.config.CommandLine() + + # Parse the options (incl. validation) + options = cmd_parser.parser.parse_args(arguments) + + # Inject options in the configuration object + alembic_cfg.cmd_opts = options + alembic_cfg.set_main_option("script_location", self.script_location) + alembic_cfg.set_main_option("sqlalchemy.url", self.db_url) + alembic_cfg.set_main_option("migration_id", self.id) + if self.version_table_schema: + alembic_cfg.set_main_option("version_table_schema", self.version_table_schema) + + # Run the command + cmd_parser.run_cmd(alembic_cfg, options) + + return True + + +class DBMigrationManager(object): + """ + DBMigrationManager retrieves all 'tdp-sql-database-migration' plugins and initializes DBMigration objects. + The possible configuration keys for this extension point are: + - configKey: Key of the configuration entry (i.e. .migration) + - id: ID of the migration for logging purposes (passed to DBManager) + - dbKey: Key of the engine used for the migration (passed to DBManager) + - dbUrl: URL of the db connection used for the migration (passed to DBManager) + - Either dbKey or dbUrl is required, with dbUrl having precedence + - scriptLocation: Location of the alembic root folder (passed to DBManager) + - autoUpgrade: Flag which auto-upgrades to the latest revision (passed to DBManager). Defaults to config key 'tdp_core.migrations.autoUpgrade', or True if not configured. + - versionTableSchema: Schema of the alembic version table (passed to DBManager) + + The keys are retrieved from the following sources (in order): + - File configuration at configKey + - Plugin configuration + """ + + def __init__(self, plugins: List[AExtensionDesc] = []): + self._migrations: Dict[str, DBMigration] = dict() + + _log.info("Initializing DBMigrationManager") + + auto_upgrade_default = get_global_settings().tdp_core.migrations.autoUpgrade + + for p in plugins: + _log.info("DBMigration found: %s", p.id) + + # Check if configKey is set, otherwise use the plugin configuration + config = get_global_settings().get_nested(p.configKey, {}) if hasattr(p, "configKey") else {} + + # Priority of assignments: Configuration File -> Plugin Definition + id = config.get("id") or (p.id if hasattr(p, "id") else None) + db_key = config.get("dbKey") or (p.dbKey if hasattr(p, "dbKey") else None) + db_url = config.get("dbUrl") or (p.dbUrl if hasattr(p, "dbUrl") else None) + script_location = config.get("scriptLocation") or (p.scriptLocation if hasattr(p, "scriptLocation") else None) + version_table_schema = config.get("versionTableSchema") or (p.versionTableSchema if hasattr(p, "versionTableSchema") else None) + auto_upgrade = ( + config.get("autoUpgrade") + if type(config.get("autoUpgrade")) == bool + else (p.autoUpgrade if hasattr(p, "autoUpgrade") and type(p.autoUpgrade) == bool else auto_upgrade_default) + ) + + # Validate the plugin description + missing_fields = [] + if not id: + missing_fields.append("id") + if not script_location: + missing_fields.append("scriptLocation") + if not db_key and not db_url: + missing_fields.append("dbUrl or dbKey") + + if len(missing_fields) > 0: + _log.error("No {} defined for DBMigration {} - is your configuration up to date?".format(", ".join(missing_fields), id or "")) + continue + + if db_key and db_url: + _log.info(f"Both dbKey and dbUrl defined for DBMigration {id} - falling back to dbUrl") + elif db_key: + # Check if engine exists + if db_key not in engines: + _log.error(f"No engine called {db_key} found for DBMigration {id} - is your configuration up to date?") + continue + + # Retrieve engine and store string as db url + try: + db_url = str(engines.engine(db_key).url) + except Exception: + _log.exception(f"Error retrieving URL from engine {db_key}") + continue + + # Create new migration + migration = DBMigration( + id, + db_url, + script_location, + auto_upgrade=auto_upgrade, + version_table_schema=version_table_schema, + ) + + # Store migration + self._migrations[migration.id] = migration + + def __contains__(self, item): + return item in self._migrations + + def __getitem__(self, item): + if item not in self: + raise NotImplementedError("Missing DBMigration: " + item) + return self._migrations[item] + + def __len__(self): + return len(self._migrations) + + @property + def ids(self) -> List[str]: + return list(self._migrations.keys()) + + @property + def migrations(self) -> List[DBMigration]: + return list(self._migrations.values()) + + +def get_db_migration_manager() -> DBMigrationManager: + return lookup_singleton("db-migration-manager") + + +def create_migration_manager(): + _log.info("Creating db-migration-manager") + + return DBMigrationManager(list_plugins("tdp-sql-database-migration")) + + +def create_migration_command(parser): + """ + Creates a migration command used by the 'command' extension point. + """ + db_migration_manager = get_db_migration_manager() + + subparsers = parser.add_subparsers(dest="action", required=True) + + subparsers.add_parser("list", help="List all available migrations") + + command_parser = subparsers.add_parser("exec", help="Execute command on migration(s)") + + # Either require individual ids or all flag + command_parser.add_argument( + "id", + choices=db_migration_manager.ids + ["all"], + help="ID of the migration, or all of them", + ) + + command_parser.add_argument("command", nargs=REMAINDER, help="Command executed by the migration") + + def execute(args): + if args.action == "list": + if len(db_migration_manager) == 0: + _log.info("No migrations found") + else: + _log.info("Available migrations: {}".format(", ".join(str(migration) for migration in db_migration_manager.migrations))) + elif args.action == "exec": + if args.id == "all": + # TODO + _log.info("Currently, only single migrations are supported. Please execute the command for each migration individually as we are working on a fix.") + return + + + # Using REMAINDER as nargs causes the argument to be be optional, but '+' does not work because it also parses additional --attr with the parser which should actually be ignored. + # Therefore, args.command might be empty and we simply pass None to trigger the error message + db_migration_manager[args.id].execute(args.command if len(args.command) > 0 else None) + + return lambda args: lambda: execute(args) diff --git a/tdp_core/dbmigration/router.py b/tdp_core/dbmigration/router.py new file mode 100644 index 000000000..d13df1e2b --- /dev/null +++ b/tdp_core/dbmigration/router.py @@ -0,0 +1,33 @@ +import logging + +from flask import Flask, abort, jsonify +from ..security import login_required +from .manager import get_db_migration_manager, DBMigration + + +__author__ = "Datavisyn" +_log = logging.getLogger(__name__) + +app = Flask(__name__) + + +def _get_migration_by_id(id: str) -> DBMigration: + if id not in get_db_migration_manager(): + abort(404, "No migration with id {} found".format(id)) + return get_db_migration_manager()[id] + + +@app.route("/") +@login_required +def list_migrations(): + return jsonify([migration.id for migration in get_db_migration_manager().migrations]), 200 + + +@app.route("/") +@login_required +def list_migration(id): + return jsonify(_get_migration_by_id(id).id), 200 + + +def create_migration_api(): + return app diff --git a/tdp_core/dbmigration_api.py b/tdp_core/dbmigration_api.py deleted file mode 100644 index f631515bf..000000000 --- a/tdp_core/dbmigration_api.py +++ /dev/null @@ -1,56 +0,0 @@ -import logging - -from phovea_server.ns import Namespace, abort -from .security import tdp_login_required -from phovea_server.util import jsonify -from .dbmigration import get_db_migration_manager, DBMigration, DBMigrationManager - - -__author__ = 'Datavisyn' -_log = logging.getLogger(__name__) - -app = Namespace(__name__) - - -class DBMigrationEncoder(object): - """ - JSON encoder for DBMigrationManager and DBMigration objects. - """ - def __contains__(self, obj): - return isinstance(obj, DBMigrationManager) or isinstance(obj, DBMigration) - - def __call__(self, obj, base_encoder): - if isinstance(obj, DBMigrationManager): - return obj.migrations - if isinstance(obj, DBMigration): - return obj.__dict__ - - -# Global migration encoder -db_migration_encoder = DBMigrationEncoder() - - -def create_migration_encoder(): - return db_migration_encoder - - -def _get_migration_by_id(id: str) -> DBMigration: - if id not in get_db_migration_manager(): - abort(404, 'No migration with id {} found'.format(id)) - return get_db_migration_manager()[id] - - -@app.route('/') -@tdp_login_required -def list_migrations(): - return jsonify(get_db_migration_manager()), 200 - - -@app.route('/') -@tdp_login_required -def list_migration(id): - return jsonify(_get_migration_by_id(id)), 200 - - -def create_migration_api(): - return app diff --git a/tdp_core/dbview.py b/tdp_core/dbview.py index 905f52a61..219f3a6c2 100644 --- a/tdp_core/dbview.py +++ b/tdp_core/dbview.py @@ -1,559 +1,633 @@ import logging import re from collections import OrderedDict -from phovea_server.security import current_user, is_logged_in +from tdp_core.security import current_user, is_logged_in from .utils import clean_query -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) -REGEX_TYPE = type(re.compile('')) +REGEX_TYPE = type(re.compile("")) class ArgumentInfo(object): - def __init__(self, type=None, description='', example=None, as_list=False, is_id=None, list_as_tuple=False): - self.type = type - self.description = description - self.example = example - self.as_list = as_list - self.is_id = is_id - self.list_as_tuple = list_as_tuple + def __init__( + self, + type=None, + description="", + example=None, + as_list=False, + is_id=None, + list_as_tuple=False, + ): + self.type = type + self.description = description + self.example = example + self.as_list = as_list + self.is_id = is_id + self.list_as_tuple = list_as_tuple class DBFilterData(object): - def __init__(self, group, sub_query, join): - self.group = group - self.sub_query = sub_query - self.join = join + def __init__(self, group, sub_query, join): + self.group = group + self.sub_query = sub_query + self.join = join class DBView(object): - def __init__(self, idtype=None, query=None): - self.description = '' - self.summary = '' - self.query_type = 'generic' - self.tags = [] - self.idtype = idtype - self.query = query - self.queries = {} - self.columns = OrderedDict() - self.columns_filled_up = None - self.replacements = [] - self.valid_replacements = {} - self.arguments = [] - self.argument_infos = {} - self.filters = {} - self.table = None - self.security = None - self.no_cache = False - - def needs_to_fill_up_columns(self): - return self.columns_filled_up is False and self.table is not None - - def dump(self, name): - from collections import OrderedDict - r = OrderedDict(name=name, description=self.description, type=self.query_type) - r['idType'] = self.idtype - r['query'] = clean_query(self.query) - args = [a for a in self.arguments] - args.extend(self.replacements) - r['arguments'] = args - r['columns'] = list(self.columns.values()) if self.columns else [] # some views have no columns -> return empty array - if self.filters: - r['filters'] = list(self.filters.keys()) - if self.queries: - r['queries'] = {k: clean_query(v) for k, v in self.queries.items()} - r['no_cache'] = self.no_cache - return r - - def is_valid_filter(self, key): - if key in self.filters: - return True - if key in self.columns: - return True - # if not specified and not the columns completed - return not self.filters and not self.columns_filled_up - - def get_filter_subquery(self, key): - if key in self.filters and self.filters[key].sub_query is not None: - return self.filters[key].sub_query - if ('filter_' + key) in self.queries: # compatibility - return self.queries['filter_' + key] - return key + ' {operator} {value}' - - def get_filter_group(self, key): - if key in self.filters: - return self.filters[key].group - return None - - def get_filter_subjoin(self, key): - if key in self.filters: - return self.filters[key].join - return None - - def filter_groups(self): - r = set([v.group for v in list(self.filters.values())]) - if None in r: - r.remove(None) - return r - - def is_valid_replacement(self, key, value): - if key not in self.replacements: - return False - if key not in self.valid_replacements: - return True - v = self.valid_replacements[key] - if isinstance(v, list): - return value in v - if v == int: - try: - int(value) # try to cast value to int - return True # successful type cast - except ValueError: - return False - if v == float: - try: - float(value) # try to cast value to float - return True # successful type cast - except ValueError: - return False - if isinstance(v, REGEX_TYPE): - return v.match(value) - _log.info('unknown %s %s %s', key, value, v) - return True - - def is_valid_argument(self, key): - return key in self.arguments - - def get_argument_info(self, key): - return self.argument_infos.get(key) - - # TODO: improve the logic of this function, because even for unauthorized can_access returns True, i.e. that the user can access the resource. Somewhere else the server checks whether the user is authenticated or not - def can_access(self, check_default_security=False): - """ - check whether a user can access a DBView (DBView.security is checked and can either be a boolean, a string (=group the user must belong to) or a function) or not. - :param check_default_security: bool (default = False); True if the security should be checked by default, e.g. although self.security is None, otherwise the function will return True - :return: bool - """ - if self.security is None and check_default_security is False: - return True - if isinstance(self.security, str): - role = str(self.security) - return current_user().has_role(role) - if callable(self.security): - return self.security(current_user()) - if isinstance(self.security, bool) and self.security is False: # check if security is a boolean and if it's disabled, i.e. it's value is False - return True # return that we're allowed to access the view, because its security is disabled - return is_logged_in() # because security is not disabled check if the user is at least logged in + def __init__(self, idtype=None, query=None): + self.description = "" + self.summary = "" + self.query_type = "generic" + self.tags = [] + self.idtype = idtype + self.query = query + self.queries = {} + self.columns = OrderedDict() + self.columns_filled_up = None + self.replacements = [] + self.valid_replacements = {} + self.arguments = [] + self.argument_infos = {} + self.filters = {} + self.table = None + self.security = None + self.no_cache = False + + def needs_to_fill_up_columns(self): + return self.columns_filled_up is False and self.table is not None + + def dump(self, name): + from collections import OrderedDict + + r = OrderedDict(name=name, description=self.description, type=self.query_type) + r["idType"] = self.idtype + r["query"] = clean_query(self.query) + args = [a for a in self.arguments] + args.extend(self.replacements) + r["arguments"] = args + r["columns"] = list(self.columns.values()) if self.columns else [] # some views have no columns -> return empty array + if self.filters: + r["filters"] = list(self.filters.keys()) + if self.queries: + r["queries"] = {k: clean_query(v) for k, v in self.queries.items()} + r["no_cache"] = self.no_cache + return r + + def is_valid_filter(self, key): + if key in self.filters: + return True + if key in self.columns: + return True + # if not specified and not the columns completed + return not self.filters and not self.columns_filled_up + + def get_filter_subquery(self, key): + if key in self.filters and self.filters[key].sub_query is not None: + return self.filters[key].sub_query + if ("filter_" + key) in self.queries: # compatibility + return self.queries["filter_" + key] + return key + " {operator} {value}" + + def get_filter_group(self, key): + if key in self.filters: + return self.filters[key].group + return None + + def get_filter_subjoin(self, key): + if key in self.filters: + return self.filters[key].join + return None + + def filter_groups(self): + r = set([v.group for v in list(self.filters.values())]) + if None in r: + r.remove(None) + return r + + def is_valid_replacement(self, key, value): + if key not in self.replacements: + return False + if key not in self.valid_replacements: + return True + v = self.valid_replacements[key] + if isinstance(v, list): + return value in v + if v == int: + try: + int(value) # try to cast value to int + return True # successful type cast + except ValueError: + return False + if v == float: + try: + float(value) # try to cast value to float + return True # successful type cast + except ValueError: + return False + if isinstance(v, REGEX_TYPE): + return v.match(value) + _log.info("unknown %s %s %s", key, value, v) + return True + + def is_valid_argument(self, key): + return key in self.arguments + + def get_argument_info(self, key): + return self.argument_infos.get(key) + + # TODO: improve the logic of this function, because even for unauthorized can_access returns True, i.e. that the user can access the resource. Somewhere else the server checks whether the user is authenticated or not + def can_access(self, check_default_security=False): + """ + check whether a user can access a DBView (DBView.security is checked and can either be a boolean, a string (=group the user must belong to) or a function) or not. + :param check_default_security: bool (default = False); True if the security should be checked by default, e.g. although self.security is None, otherwise the function will return True + :return: bool + """ + if self.security is None and check_default_security is False: + return True + if isinstance(self.security, str): + role = str(self.security) + return current_user().has_role(role) + if callable(self.security): + return self.security(current_user()) + if isinstance(self.security, bool) and self.security is False: # check if security is a boolean and if it's disabled, i.e. it's value is False + return True # return that we're allowed to access the view, because its security is disabled + return is_logged_in() # because security is not disabled check if the user is at least logged in class DBViewBuilder(object): - """ - db view builder pattern implementation - """ - - def __init__(self, query_type='generic', tags=None): - """ - :param query_type: - """ - self.v = DBView() - self.v.query_type = query_type - self.v.tags = tags or [] - - def clone(self, view): """ - initializes based on a given view - :param view: the view to copy from - :return: self - """ - self.v.query_type = view.query_type - self.v.idtype = view.idtype - self.v.description = view.description - self.v.summary = view.summary - self.v.query = view.query - self.v.queries = view.queries.copy() - self.v.columns = view.columns.copy() - self.v.replacements = list(view.replacements) - self.v.arguments = list(view.arguments) - self.v.argument_infos = view.argument_infos.copy() - self.v.filters = view.filters.copy() - self.v.valid_replacements = view.valid_replacements.copy() - self.v.security = view.security - self.v.no_cache = view.no_cache - return self - - def description(self, desc, summary=None): - """ - optional description of this query - :param desc: the description text - :param summary: optional shorter summary text - :return: self - """ - self.v.description = desc - self.v.summary = summary or (desc if len(desc) < 20 else desc[0:20] + '...') - return self + db view builder pattern implementation + """ + + def __init__(self, query_type="generic", tags=None): + """ + :param query_type: + """ + self.v = DBView() + self.v.query_type = query_type + self.v.tags = tags or [] + + def clone(self, view): + """ + initializes based on a given view + :param view: the view to copy from + :return: self + """ + self.v.query_type = view.query_type + self.v.idtype = view.idtype + self.v.description = view.description + self.v.summary = view.summary + self.v.query = view.query + self.v.queries = view.queries.copy() + self.v.columns = view.columns.copy() + self.v.replacements = list(view.replacements) + self.v.arguments = list(view.arguments) + self.v.argument_infos = view.argument_infos.copy() + self.v.filters = view.filters.copy() + self.v.valid_replacements = view.valid_replacements.copy() + self.v.security = view.security + self.v.no_cache = view.no_cache + return self + + def description(self, desc, summary=None): + """ + optional description of this query + :param desc: the description text + :param summary: optional shorter summary text + :return: self + """ + self.v.description = desc + self.v.summary = summary or (desc if len(desc) < 20 else desc[0:20] + "...") + return self + + def idtype(self, idtype): + """ + specify the IDType of which the resulting rows are + :param idtype: the idtype + :return: self + """ + self.v.idtype = idtype + return self + + def table(self, table): + """ + sets the base table name of this query e.g. for generating queries + :param table: the table name + :return: self + """ + self.v.table = table + return self + + def query(self, key, query=None): + """ + sets or adds another query to this builder + :param key: optional the key of this query if not given the default query will be set + :param query: the sql query + :return: self + """ + if query is None: + query = key + self.v.query = query + else: + self.v.queries[key] = query + return self + + def callback(self, key, callback=None): + """ + instead of setting an SQL query setting a callback function that returns the result similar to executing the SQL query + :param key: optional key + :param callback: (engine: SQLAlchemyEngine, arguments: dict of query arguments, filters: dict of filters) => array of dicts + :return: + """ + if callback is None: + callback = key + self.v.query = callback + else: + self.v.queries[key] = callback + return self + + def filters(self, keys, alias=None, table=None, group=None, join=None): + """ + specify possible filter keys + :param keys: the list of possible filters + :param alias: shortcut for just specifying the left hand alias: {alias} {operator} {value} + :param table: shortcut for just specifying the table alias: {table}.{key} {operator} {value} + :param group: to inject the filter in another group and_group_where + :param join: additional join to inject + :return: + """ + for key in list(keys): + self.filter(key, alias=alias, table=table, group=group, join=join) + return self + + def filter(self, key, replacement=None, alias=None, table=None, group=None, join=None): + """ + add a possible filter with replacement strategy of type {key} {operator} {value} + :param key: filter key + :param replacement: optional the full replacement string has to inclue {operator} and {value} + :param alias: shortcut for just specifying the left hand alias: {alias} {operator} {value} + :param table: shortcut for just specifying the table alias: {table}.{key} {operator} {value} + :param group: to inject the filter in another group and_group_where + :param join: additional join to inject + :return: self + """ + if table is not None: + alias = "{}.{}".format(table, key) + if alias is not None: + replacement = alias + " {operator} {value}" + self.v.filters[key] = DBFilterData(group, replacement, join) + return self + + def append(self, key, query=None): + """ + append something to the query + :param key: optional key + :param query: the subpart to append + :return: self + """ + if query is None: + query = key + self.v.query += query + else: + self.v.queries[key] += query + return self + + def query_stats(self, query): + """ + shortcut for query('stats', query) + :param query: the query + :return: self + """ + self.v.queries["stats"] = query + return self + + def query_categories(self, query): + """ + shortcut for query('categories', query) + :param query: the query + :return: self + """ + self.v.queries["categories"] = query + return self + + def derive_columns(self): + """ + specify that the columns should be automatically derived, requires that 'table' is given + :return: self + """ + self.v.columns_filled_up = False + return self + + def column(self, name, **kwargs): + """ + specify a column along with a type for the result + :param name: name of column + :param kwargs: additional attributes such as label and type + :return: self + """ + if "label" not in kwargs: + kwargs["label"] = name + kwargs["column"] = name + self.v.columns[name] = kwargs + return self + + def replace(self, replace, valid_replacements=None): + """ + specify to replace a certain piece of the query (using {replace}) within the query + :param replace: the key to replace + :param valid_replacements: optional validation to avoid SQL injection, possible values: a list of strings, a regex, int or float + :return: self + """ + self.v.replacements.append(replace) + if valid_replacements is not None: + self.v.valid_replacements[replace] = valid_replacements + return self + + def arg( + self, + arg, + type=None, + description="", + example=None, + as_list=False, + is_id=None, + list_as_tuple=False, + ): + """ + adds another argument of this query (using :arg) which will be replaced within SQL + :param arg: the argument key + :param type: optional type of the argument, like int or float + :param description: optional argument description + :param example: optional argument example + :param as_list: optional whether the argument has to be a list + :param is_id: optional whether the argument is an id argument, the value is the idtype required + :param list_as_tuple: optional whether the argument is a list but should be submitted as tuple (f.e. in oracle; especially for IN statements); use the key with ':' in the query + :return: self + """ + self.v.arguments.append(arg) + self.v.argument_infos[arg] = ArgumentInfo(type, description, example, as_list, is_id, list_as_tuple) + return self + + def call(self, f=None): + """ + shortcut for f(self) + :param f: the function to call + :return: self + """ + if f is not None: + f(self) + return self + + def security(self, security_check): + """ + adds a security check for this view + :param security_check: either a string = role_name or a function that will get the user as first argument + :return: self + """ + self.v.security = security_check + return self + + def no_cache(self): + """ + adds a no-cache header to the response to avoid client caching of the response + """ + self.v.no_cache = True + return self + + def build(self): + """ + builds the query and end this builder + :return: the built query + """ + return self.v - def idtype(self, idtype): - """ - specify the IDType of which the resulting rows are - :param idtype: the idtype - :return: self - """ - self.v.idtype = idtype - return self - def table(self, table): - """ - sets the base table name of this query e.g. for generating queries - :param table: the table name - :return: self - """ - self.v.table = table - return self - - def query(self, key, query=None): - """ - sets or adds another query to this builder - :param key: optional the key of this query if not given the default query will be set - :param query: the sql query - :return: self - """ - if query is None: - query = key - self.v.query = query - else: - self.v.queries[key] = query - return self - - def callback(self, key, callback=None): +def limit_offset(builder): """ - instead of setting an SQL query setting a callback function that returns the result similar to executing the SQL query - :param key: optional key - :param callback: (engine: SQLAlchemyEngine, arguments: dict of query arguments, filters: dict of filters) => array of dicts + helper function to append the limit and offset suffix + :param builder: the current query builder :return: """ - if callback is None: - callback = key - self.v.query = callback - else: - self.v.queries[key] = callback - return self + return builder.append(" LIMIT {limit} OFFSET {offset}").replace("limit", int).replace("offset", int).arg("query") - def filters(self, keys, alias=None, table=None, group=None, join=None): - """ - specify possible filter keys - :param keys: the list of possible filters - :param alias: shortcut for just specifying the left hand alias: {alias} {operator} {value} - :param table: shortcut for just specifying the table alias: {table}.{key} {operator} {value} - :param group: to inject the filter in another group and_group_where - :param join: additional join to inject - :return: - """ - for key in list(keys): - self.filter(key, alias=alias, table=table, group=group, join=join) - return self - def filter(self, key, replacement=None, alias=None, table=None, group=None, join=None): - """ - add a possible filter with replacement strategy of type {key} {operator} {value} - :param key: filter key - :param replacement: optional the full replacement string has to inclue {operator} and {value} - :param alias: shortcut for just specifying the left hand alias: {alias} {operator} {value} - :param table: shortcut for just specifying the table alias: {table}.{key} {operator} {value} - :param group: to inject the filter in another group and_group_where - :param join: additional join to inject - :return: self - """ - if table is not None: - alias = '{}.{}'.format(table, key) - if alias is not None: - replacement = alias + ' {operator} {value}' - self.v.filters[key] = DBFilterData(group, replacement, join) - return self - - def append(self, key, query=None): +def inject_where_clause(builder, clause): """ - append something to the query - :param key: optional key - :param query: the subpart to append - :return: self + helper function to inject an additional where clause + :param builder: the current builder + :param clause: the clause to inject + :return: """ - if query is None: - query = key - self.v.query += query + query = builder.v.query + if callable(query): + return builder + lower = query.lower() + index = lower.find(" where ") + if index >= 0: + index += len(" where ") # get the end + builder.query("{} ({}) AND {}".format(query[:index], clause, query[index:])) else: - self.v.queries[key] += query - return self - - def query_stats(self, query): - """ - shortcut for query('stats', query) - :param query: the query - :return: self - """ - self.v.queries['stats'] = query - return self - - def query_categories(self, query): - """ - shortcut for query('categories', query) - :param query: the query - :return: self - """ - self.v.queries['categories'] = query - return self - - def derive_columns(self): - """ - specify that the columns should be automatically derived, requires that 'table' is given - :return: self - """ - self.v.columns_filled_up = False - return self - - def column(self, name, **kwargs): - """ - specify a column along with a type for the result - :param name: name of column - :param kwargs: additional attributes such as label and type - :return: self - """ - if 'label' not in kwargs: - kwargs['label'] = name - kwargs['column'] = name - self.v.columns[name] = kwargs - return self - - def replace(self, replace, valid_replacements=None): - """ - specify to replace a certain piece of the query (using {replace}) within the query - :param replace: the key to replace - :param valid_replacements: optional validation to avoid SQL injection, possible values: a list of strings, a regex, int or float - :return: self - """ - self.v.replacements.append(replace) - if valid_replacements is not None: - self.v.valid_replacements[replace] = valid_replacements - return self - - def arg(self, arg, type=None, description='', example=None, as_list=False, is_id=None, list_as_tuple=False): - """ - adds another argument of this query (using :arg) which will be replaced within SQL - :param arg: the argument key - :param type: optional type of the argument, like int or float - :param description: optional argument description - :param example: optional argument example - :param as_list: optional whether the argument has to be a list - :param is_id: optional whether the argument is an id argument, the value is the idtype required - :param list_as_tuple: optional whether the argument is a list but should be submitted as tuple (f.e. in oracle; especially for IN statements); use the key with ':' in the query - :return: self - """ - self.v.arguments.append(arg) - self.v.argument_infos[arg] = ArgumentInfo(type, description, example, as_list, is_id, list_as_tuple) - return self - - def call(self, f=None): - """ - shortcut for f(self) - :param f: the function to call - :return: self - """ - if f is not None: - f(self) - return self + before = -1 + for before_q in [" order by", " group by", " limit", " offset"]: + before = lower.find(before_q) + if before >= 0: + break + if before < 0: + # append + builder.append(" WHERE ").append(clause) + else: + builder.query("{} WHERE {} {}".format(query[:index], clause, query[index:])) + return builder - def security(self, security_check): - """ - adds a security check for this view - :param security_check: either a string = role_name or a function that will get the user as first argument - :return: self - """ - self.v.security = security_check - return self - def no_cache(self): - """ - adds a no-cache header to the response to avoid client caching of the response - """ - self.v.no_cache = True - return self - - def build(self): - """ - builds the query and end this builder - :return: the built query +def inject_where(builder): """ - return self.v - - -def limit_offset(builder): - """ - helper function to append the limit and offset suffix - :param builder: the current query builder - :return: - """ - return builder.append(' LIMIT {limit} OFFSET {offset}').replace('limit', int).replace('offset', int).arg('query') - - -def inject_where_clause(builder, clause): - """ - helper function to inject an additional where clause + helper function to append to the query the generated where clause :param builder: the current builder - :param clause: the clause to inject :return: """ - query = builder.v.query - if callable(query): - return builder - lower = query.lower() - index = lower.find(' where ') - if index >= 0: - index += len(' where ') # get the end - builder.query('{} ({}) AND {}'.format(query[:index], clause, query[index:])) - else: + query = builder.v.query + if callable(query): + return builder + lower = query.lower() + where = lower.find(" where ") before = -1 - for before_q in [' order by', ' group by', ' limit', ' offset']: - before = lower.find(before_q) - if before >= 0: - break - if before < 0: - # append - builder.append(' WHERE ').append(clause) + for before_q in [" group by", " order by", " limit", " offset"]: + before = lower.find(before_q) + if before >= 0: + break + + if where >= 0: + if before < 0: + builder.append(" {and_where}") + else: + builder.query("{} {{and_where}} {}".format(query[:before], query[before:])) + builder.replace("and_where") + query = builder.v.query + builder.query("{} {{joins}} {}".format(query[:where], query[where:])) + builder.replace("joins") else: - builder.query('{} WHERE {} {}'.format(query[:index], clause, query[index:])) - return builder + if before < 0: + builder.append("{joins} {where}") + else: + builder.query("{} {{joins}} {{where}} {}".format(query[:before], query[before:])) + builder.replace("where") + builder.replace("joins") + return builder -def inject_where(builder): - """ - helper function to append to the query the generated where clause - :param builder: the current builder - :return: - """ - query = builder.v.query - if callable(query): - return builder - lower = query.lower() - where = lower.find(' where ') - before = -1 - for before_q in [' group by', ' order by', ' limit', ' offset']: - before = lower.find(before_q) - if before >= 0: - break - - if where >= 0: - if before < 0: - builder.append(' {and_where}') - else: - builder.query('{} {{and_where}} {}'.format(query[:before], query[before:])) - builder.replace('and_where') - query = builder.v.query - builder.query('{} {{joins}} {}'.format(query[:where], query[where:])) - builder.replace('joins') - else: - if before < 0: - builder.append('{joins} {where}') - else: - builder.query('{} {{joins}} {{where}} {}'.format(query[:before], query[before:])) - builder.replace('where') - builder.replace('joins') - return builder - - -def add_common_queries(queries, table, idtype, id_query, columns=None, call_function=None, prefix=None, - name_column='name'): - """ - create a set of common queries - :param queries: dict where the queries should be stored - :param table: base table name - :param idtype: idtype of the table - :param id_query: the snippet to create the required 'id' column - :param columns: a list of columns for validation - :param call_function: another call function - :param prefix: optional prefix instead of the table name - :param name_column: name of the name column used to verify items - :return: None - """ - if prefix is None: - prefix = table - - queries[prefix + '_items'] = DBViewBuilder('lookup').idtype(idtype).table(table).query(""" +def add_common_queries( + queries, + table, + idtype, + id_query, + columns=None, + call_function=None, + prefix=None, + name_column="name", +): + """ + create a set of common queries + :param queries: dict where the queries should be stored + :param table: base table name + :param idtype: idtype of the table + :param id_query: the snippet to create the required 'id' column + :param columns: a list of columns for validation + :param call_function: another call function + :param prefix: optional prefix instead of the table name + :param name_column: name of the name column used to verify items + :return: None + """ + if prefix is None: + prefix = table + + queries[prefix + "_items"] = ( + DBViewBuilder("lookup") + .idtype(idtype) + .table(table) + .query( + """ SELECT {id}, {{column}} AS text FROM {table} WHERE LOWER({{column}}) LIKE :query - ORDER BY {{column}} ASC""".format(id=id_query, table=table)).replace('column', columns).call(call_function).call(limit_offset).arg('query').build() - - queries[prefix + '_items_verify'] = DBViewBuilder('helper').idtype(idtype).table(table).query(""" + ORDER BY {{column}} ASC""".format( + id=id_query, table=table + ) + ) + .replace("column", columns) + .call(call_function) + .call(limit_offset) + .arg("query") + .build() + ) + + queries[prefix + "_items_verify"] = ( + DBViewBuilder("helper") + .idtype(idtype) + .table(table) + .query( + """ SELECT {id}, {name} AS text - FROM {table}""".format(id=id_query, table=table, name=name_column)).call(call_function).call(inject_where).filter(name_column, 'lower({name}) {{operator}} {{value}}'.format(name=name_column)).build() - - queries[prefix + '_unique'] = DBViewBuilder('lookup').query(""" + FROM {table}""".format( + id=id_query, table=table, name=name_column + ) + ) + .call(call_function) + .call(inject_where) + .filter(name_column, "lower({name}) {{operator}} {{value}}".format(name=name_column)) + .build() + ) + + queries[prefix + "_unique"] = ( + DBViewBuilder("lookup") + .query( + """ SELECT d as id, d as text FROM ( SELECT distinct {{column}} AS d FROM {table} WHERE LOWER({{column}}) LIKE :query ) as t - ORDER BY d ASC""".format(table=table)).replace('column', columns).call(limit_offset).arg('query').build() - - queries[prefix + '_unique_all'] = DBViewBuilder('helper').query(""" + ORDER BY d ASC""".format( + table=table + ) + ) + .replace("column", columns) + .call(limit_offset) + .arg("query") + .build() + ) + + queries[prefix + "_unique_all"] = ( + DBViewBuilder("helper") + .query( + """ SELECT distinct {{column}} AS text - FROM {table} ORDER BY {{column}} ASC """.format(table=table)).replace('column', columns).build() + FROM {table} ORDER BY {{column}} ASC """.format( + table=table + ) + ) + .replace("column", columns) + .build() + ) """ default aggregation """ -default_agg_score = DBViewBuilder().query('{agg}({data_subtype})').replace('agg', ['min', 'max', 'avg']).replace('data_subtype').build() +default_agg_score = DBViewBuilder().query("{agg}({data_subtype})").replace("agg", ["min", "max", "avg"]).replace("data_subtype").build() class DBMapping(object): - """ - simple mapping based on a query of the form `select from_id as f, to_id as t from mapping_table where f in :ids` - """ + """ + simple mapping based on a query of the form `select from_id as f, to_id as t from mapping_table where f in :ids` + """ - def __init__(self, from_idtype, to_idtype, query, integer_ids=False): - self.from_idtype = from_idtype - self.to_idtype = to_idtype - self.query = query - self.integer_ids = integer_ids + def __init__(self, from_idtype, to_idtype, query, integer_ids=False): + self.from_idtype = from_idtype + self.to_idtype = to_idtype + self.query = query + self.integer_ids = integer_ids class DBConnector(object): - """ - basic connector object - """ - - def __init__(self, views, agg_score=None, mappings=None): """ - :param views: the dict of query views - :param agg_score: optional specify how aggregation should be handled - :param mappings: optional database mappings + basic connector object """ - self.agg_score = agg_score or default_agg_score - self.views = views - self.dburl = None - self.mappings = mappings - self.statement_timeout = None - self.statement_timeout_query = None - self.description = '' - - def dump(self, name): - from collections import OrderedDict - return OrderedDict(name=name, description=self.description) - - def create_engine(self, config): - import sqlalchemy - - engine_options = config.get('engine', default={}) - engine = sqlalchemy.create_engine(self.dburl, **engine_options) - # Assuming that gevent monkey patched the builtin - # threading library, we're likely good to use - # SQLAlchemy's QueuePool, which is the default - # pool class. However, we need to make it use - # threadlocal connections - # https://github.com/kljensen/async-flask-sqlalchemy-example/blob/master/server.py - engine.pool._use_threadlocal = True - - return engine - - def create_sessionmaker(self, engine): - from sqlalchemy.orm import sessionmaker - return sessionmaker(bind=engine) + + def __init__(self, views, agg_score=None, mappings=None): + """ + :param views: the dict of query views + :param agg_score: optional specify how aggregation should be handled + :param mappings: optional database mappings + """ + self.agg_score = agg_score or default_agg_score + self.views = views + self.dburl = None + self.mappings = mappings + self.statement_timeout = None + self.statement_timeout_query = None + self.description = "" + + def dump(self, name): + from collections import OrderedDict + + return OrderedDict(name=name, description=self.description) + + def create_engine(self, config): + import sqlalchemy + + engine_options = config.get("engine", {}) + engine = sqlalchemy.create_engine(self.dburl, **engine_options) + # Assuming that gevent monkey patched the builtin + # threading library, we're likely good to use + # SQLAlchemy's QueuePool, which is the default + # pool class. However, we need to make it use + # threadlocal connections + # https://github.com/kljensen/async-flask-sqlalchemy-example/blob/master/server.py + engine.pool._use_threadlocal = True + + return engine + + def create_sessionmaker(self, engine): + from sqlalchemy.orm import sessionmaker + + return sessionmaker(bind=engine) diff --git a/tdp_core/dummy_store.py b/tdp_core/dummy_store.py deleted file mode 100644 index add069b53..000000000 --- a/tdp_core/dummy_store.py +++ /dev/null @@ -1,71 +0,0 @@ -from . import flask_login_impl -import hashlib - -__author__ = 'Samuel Gratzl' - - -def hash_password(password, salt): - return hashlib.sha512((password + salt).encode('utf-8')).hexdigest() - - -class User(flask_login_impl.User): - def __init__(self, id, password, salt, roles): - super(User, self).__init__(id) - self.name = id - self._password = password - self._salt = salt - self.roles = roles - - @property - def is_authenticated(self): - return True - - @property - def is_active(self): - return True - - def is_password(self, given): - given_h = hash_password(given, self._salt) - return given_h == self._password - - -def from_env_var(k, v): - elems = v.split(';') - name = k[12:] # PHOVEA_USER_ - salt = elems[0] - password = elems[1] - roles = elems[2:] - return User(name, password, salt, roles) - - -class UserStore(object): - def __init__(self): - import phovea_server.config - import os - - # define users via env variables - env_users = [from_env_var(k, v) for k, v in os.environ.items() if k.startswith('PHOVEA_USER_')] - if env_users: - self._users = env_users - else: - self._users = [User(v['name'], v['password'], v['salt'], v['roles']) for v in - phovea_server.config.get('tdp_core.users')] - - def load(self, id): - return next((u for u in self._users if u.id == id), None) - - def load_from_key(self, api_key): - parts = api_key.split(':') - if len(parts) != 2: - return None - return next((u for u in self._users if u.id == parts[0] and u.is_password(parts[1])), None) - - def login(self, username, extra_fields={}): - return next((u for u in self._users if u.id == username and u.is_password(extra_fields['password'])), None) - - def logout(self, user): - pass - - -def create(): - return UserStore() diff --git a/tdp_core/encoder/__init__.py b/tdp_core/encoder/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/bytes_to_string_encoder.py b/tdp_core/encoder/bytes_to_string_encoder.py similarity index 59% rename from tdp_core/bytes_to_string_encoder.py rename to tdp_core/encoder/bytes_to_string_encoder.py index e17368dff..5d54b8b1b 100644 --- a/tdp_core/bytes_to_string_encoder.py +++ b/tdp_core/encoder/bytes_to_string_encoder.py @@ -5,19 +5,19 @@ class BytesToStringEncoder(object): - def __contains__(self, obj): - if isinstance(obj, bytes): - return True - return False + def __contains__(self, obj): + if isinstance(obj, bytes): + return True + return False - def __call__(self, obj, base_encoder): - if isinstance(obj, bytes): - return obj.decode('utf-8') - return None + def __call__(self, obj, base_encoder): + if isinstance(obj, bytes): + return obj.decode("utf-8") + return None encoder = BytesToStringEncoder() def create(): - return encoder + return encoder diff --git a/tdp_core/encoder/json_encoder.py b/tdp_core/encoder/json_encoder.py new file mode 100644 index 000000000..fc2c9fccc --- /dev/null +++ b/tdp_core/encoder/json_encoder.py @@ -0,0 +1,47 @@ +from builtins import range +from builtins import object +import numpy as np +import numpy.ma as ma +import datetime as dt +import decimal + + +class NumpyTablesEncoder(object): + def __contains__(self, obj): + if isinstance(obj, np.ndarray): + return True + if isinstance(obj, bytes): + return True + if isinstance(obj, np.generic): + return True + if isinstance(obj, dt.datetime): + return True + if isinstance(obj, decimal.Decimal): + return True + return False + + def __call__(self, obj, base_encoder): + if isinstance(obj, np.ndarray): + if obj.ndim == 1: + return [base_encoder.default(x) for x in obj] + else: + return [base_encoder.default(obj[i]) for i in range(obj.shape[0])] + if isinstance(obj, np.generic): + a = np.asscalar(obj) + if (isinstance(a, float) and np.isnan(a)) or ma.is_masked(a): + return None + return a + if isinstance(obj, dt.datetime): + return int(obj.timestamp() * 1000) + if isinstance(obj, decimal.Decimal): + return float(obj) + if isinstance(obj, bytes): + return obj.decode("utf-8") + return None + + +n = NumpyTablesEncoder() + + +def create(): + return n diff --git a/tdp_core/encoder/set_encoder.py b/tdp_core/encoder/set_encoder.py new file mode 100644 index 000000000..2f4072283 --- /dev/null +++ b/tdp_core/encoder/set_encoder.py @@ -0,0 +1,18 @@ +""" +This encoder is required to handle changes of data types in Python 3.7 by adding list() to set(). +""" + + +class SetEncoder(object): + def __contains__(self, obj): + return isinstance(obj, set) + + def __call__(self, obj, base_encoder): + return list(obj) + + +encoder = SetEncoder() + + +def create(): + return encoder diff --git a/tdp_core/flask_login_impl.py b/tdp_core/flask_login_impl.py deleted file mode 100644 index e4969fe12..000000000 --- a/tdp_core/flask_login_impl.py +++ /dev/null @@ -1,200 +0,0 @@ - -from typing import Dict, Optional -import phovea_server.security as security -import phovea_server.config -import flask_login -import logging - - -__author__ = 'Samuel Gratzl' -_log = logging.getLogger(__name__) - - -class User(security.User, flask_login.UserMixin): - def __init__(self, id): - self.id = id - pass - - def get_id(self): - return str(self.id) - - -class UserStore(object): - def __init__(self): - pass - - def load(self, id): - return None - - def load_from_key(self, api_key): - return None - - def login(self, username, extra_fields={}): - return None - - def logout(self, user) -> Optional[Dict]: - pass - - -class NamespaceLoginManager(security.SecurityManager): - def __init__(self): - super(NamespaceLoginManager, self).__init__() - self._manager = flask_login.LoginManager() - self._manager.user_loader(self._load_user) - self._manager.request_loader(self._load_user_from_request) - self._manager.login_view = None - - import phovea_server.plugin as plugin - self._user_stores = list(filter(None, [p.load().factory() for p in plugin.list('user_stores')])) - if len(self._user_stores) == 0 or phovea_server.config.get('phovea_security_flask.alwaysAppendDummyStore'): - _log.info('using dummy store') - from . import dummy_store - self._user_stores.append(dummy_store.create()) - - def _load_user(self, id): - for store in self._user_stores: - u = store.load(id) - if u: - return u - return None - - def init_app(self, app): - self._manager.init_app(app) - # next, init every store if any requires that - for store in self._user_stores: - # first check if the actual "init_app" method is implemented and then call it - init_store_app = getattr(store, "init_app", None) - if callable(init_store_app): - init_store_app(app) - - def add_login_routes(self, app): - from phovea_server import ns - - @app.route('/login', methods=['GET', 'POST']) - @ns.no_cache - def login(): - if ns.request.method == 'POST': - user = ns.request.values['username'] - user_obj = self.login(user, ns.request.values) - if not user_obj: - return ns.abort(401) # 401 Unauthorized - _log.debug('user login: ' + user) - return ns.jsonify(name=user_obj.name, roles=user_obj.roles) - - # return a login mask - login_mask = """ - - - -
-
-
-
-
-
- - - """ - return ns.render_template_string(login_mask) - - @app.route('/logout', methods=['POST']) - @ns.no_cache - def logout(): - payload, cookies = self.logout() - # Create response and add security store payload - response = ns.jsonify(msg='Bye Bye', **payload) - # Handle cookie changes from the security stores - for cookie in cookies: - try: - response.set_cookie(**cookie) - except Exception: - _log.exception(f'Error setting cookie {cookie} to logout response') - return response - - @app.route('/loggedinas', methods=['POST']) - def loggedinas(): - if self.is_authenticated(): - user_obj = self.current_user - _log.debug('user login: ' + user_obj.name) - return ns.jsonify(name=user_obj.name, roles=user_obj.roles) - return '"not_yet_logged_in"' - - def login_required(self, f): - return flask_login.login_required(f) - - @property - def current_user(self): - return flask_login.current_user - - def logout(self): - u = self.current_user - _log.debug('user logout: ' + (u.name if hasattr(u, 'name') else str(u))) - response_payload = {} - response_cookies = [] - for store in self._user_stores: - customizations = store.logout(u) or {} - # data is an arbitrary Dict which is added to the response payload. - response_payload.update(customizations.get('data') or {}) - # cookies is a list of Dicts which are passed 1:1 to response.set_cookie. - response_cookies.extend(customizations.get('cookies') or []) - - flask_login.logout_user() - return response_payload, response_cookies - - def login(self, username, extra_fields=None): - if extra_fields is None: - extra_fields = {} - - def str2bool(v): - return v if isinstance(v, bool) else v.lower() in ('yes', 'true', 't', '1') - - for store in self._user_stores: - u = store.login(username, extra_fields) - if u: - flask_login.login_user(u, remember=str2bool(extra_fields.get('remember', False))) - return u - return None - - def _load_user_from_key(self, api_key): - for store in self._user_stores: - u = store.load_from_key(api_key) - if u: - return u - - def _load_user_from_request(self, request): - # first, try to login using the api_key url arg - api_key = request.headers.get('apiKey') - if api_key: - user = self._load_user_from_key(api_key) - if user: - return user - - # next, try to login using Basic Auth - api_key = request.headers.get('Authorization') - if api_key: - api_key = api_key.replace('Basic ', '', 1) - try: - import base64 - api_key = base64.b64decode(api_key) - except TypeError: - pass - user = self._load_user_from_key(api_key) - if user: - return user - - # next, try to login using the actual request - for store in self._user_stores: - # first check if the actual "load_from_request" method is implemented and then call it - load_from_req = getattr(store, "load_from_request", None) - if callable(load_from_req): - user = load_from_req(request) - if user: - return user - - # finally, return None if all methods did not login the user - return None - - -def create(): - # TODO: Add setting key to enable similar to the ALBSecurityStore - return NamespaceLoginManager() diff --git a/tdp_core/formatter.py b/tdp_core/formatter.py index 4f1838f19..a8cb41189 100644 --- a/tdp_core/formatter.py +++ b/tdp_core/formatter.py @@ -1,33 +1,32 @@ -from phovea_server.ns import request, Response -from phovea_server.util import jsonify +from flask import request, Response, jsonify def _format_csv(array_of_dicts): - import pandas as pd - import io + import pandas as pd + import io - if not array_of_dicts: - return Response('', mimetype='text/csv') + if not array_of_dicts: + return Response("", mimetype="text/csv") - out = io.BytesIO() - d = pd.DataFrame.from_records(array_of_dicts) - d.to_csv(out, sep='\t', encoding='utf-8', index=False) - return Response(out.getvalue(), mimetype='text/csv') + out = io.BytesIO() + d = pd.DataFrame.from_records(array_of_dicts) + d.to_csv(out, sep="\t", encoding="utf-8", index=False) + return Response(out.getvalue(), mimetype="text/csv") def _format_json_decimal(obj): - # The Pandas JSON module has been deprecated and removed. The JSON that is used in _util.py_ of phovea_server does not support double_precision. - # return jsonify(obj, double_precision=15) - return jsonify(obj) + # The Pandas JSON module has been deprecated and removed. The JSON that is used in _util.py_ of phovea_server does not support double_precision. + # return jsonify(obj, double_precision=15) + return jsonify(obj) def formatter(view_name): - if view_name.endswith('.csv'): - return view_name[:-4], _format_csv - elif request.values.get('_format') == 'csv': - return view_name, _format_csv - elif view_name.endswith('.json'): - return view_name[:-5], _format_json_decimal - elif request.values.get('_format') == 'json': - return view_name, _format_json_decimal - return view_name, jsonify + if view_name.endswith(".csv"): + return view_name[:-4], _format_csv + elif request.values.get("_format") == "csv": + return view_name, _format_csv + elif view_name.endswith(".json"): + return view_name[:-5], _format_json_decimal + elif request.values.get("_format") == "json": + return view_name, _format_json_decimal + return view_name, jsonify diff --git a/tdp_core/graph.py b/tdp_core/graph.py index a416c5b76..14aa68dd7 100644 --- a/tdp_core/graph.py +++ b/tdp_core/graph.py @@ -1,295 +1,316 @@ -from phovea_server.dataset_def import ADataSetProvider -import phovea_server.graph - - -class MongoGraph(phovea_server.graph.AGraph): - def __init__(self, entry, db): - super(MongoGraph, self).__init__(entry['name'], 'mongodb', entry.get('id', None), entry.get('attrs', None)) - self._entry = entry - self._db = db - from bson.objectid import ObjectId - self._find_me = dict(_id=self._entry['_id']) - self._find_data = dict(_id=ObjectId(self._entry['refid'])) - - self._nodes = None - self._edges = None - - @staticmethod - def list(db): - return [MongoGraph(entry, db) for entry in db.graph.find()] - - @staticmethod - def create(data, user, id, db): - # if 'clone_from' in data: - # #clone from an existing graph - # from bson.objectid import ObjectId - # other_desc = db.graph.find_one(dict(_id=data['clone_from'])) - # other_data = db.graph_data.find_one(dict(_id=ObjectId(other_desc['refid']))) - # else - # other_desc = dict() - # other_data = dict() - - import datetime - entry = dict(name=data['name'], - description=data.get('description', ''), - creator=user.name, - nnodes=len(data['nodes']), - nedges=len(data['edges']), - attrs=data.get('attrs', {}), - ts=datetime.datetime.utcnow()) - - if 'group' in data: - entry['group'] = data['group'] - if 'permissions' in data: - entry['permissions'] = data['permissions'] - if 'buddies' in data: - entry['buddies'] = data['buddies'] - if id is not None: - entry['id'] = id - - data_entry = dict(nodes=data['nodes'], - edges=data['edges'] - ) - data_id = db.graph_data.insert_one(data_entry).inserted_id - - entry['refid'] = str(data_id) - db.graph.insert_one(entry) - - return MongoGraph(entry, db) - - def nodes(self): - if self._nodes is None: - data = self._db.graph_data.find_one(self._find_data, {'nodes': 1}) - self._nodes = [phovea_server.graph.GraphNode(n['type'], n['id'], n.get('attrs', None)) for n in data['nodes']] - - return self._nodes - - @property - def nnodes(self): - return self._entry['nnodes'] - - def edges(self): - if self._edges is None: - data = self._db.graph_data.find_one(self._find_data, {'edges': 1}) - self._edges = [phovea_server.graph.GraphEdge(n['type'], n['id'], n['source'], n['target'], n.get('attrs', None)) - for n in data['edges']] - - return self._edges - - @property - def nedges(self): - return self._entry['nedges'] - - def to_description(self): - r = super(MongoGraph, self).to_description() - - if self._entry is not None: - r['description'] = self._entry['description'] - r['creator'] = self._entry['creator'] - if 'group' in self._entry: - r['group'] = self._entry['group'] - if 'permissions' in self._entry: - r['permissions'] = self._entry['permissions'] - if 'buddies' in self._entry: - r['buddies'] = self._entry['buddies'] - r['ts'] = self._entry['ts'] - - return r - - def add_node(self, data): - if not self.can_write(): - return False - self._db.graph.update(self._find_me, {'$inc': dict(nnodes=1)}) - self._db.graph_data.update(self._find_data, {'$push': dict(nodes=data)}) - self._entry['nnodes'] += 1 - if self._nodes: - self._nodes.append(phovea_server.graph.GraphNode(data['type'], data['id'], data.get('attrs', None))) - return True - - def update_node(self, data): - if not self.can_write(): - return False - q = self._find_data.copy() - q['nodes.id'] = data['id'] - self._db.graph_data.update(q, {'$set': {'nodes.$.attrs': data.get('attrs', {})}}) - # update({ "item.two" : "24" }, - # { $set : { "item.$.two" : "" }}, false, true); - if self._nodes: - for n in self._nodes: - if n.id == id: - n.attrs = data.get('attrs', {}) - break - - return True - - def remove_node(self, id): - if not self.can_write(): - return False - if self._nodes: - n = self.get_node(id) - self._nodes.remove(n) - self._entry['nnodes'] -= 1 - # remove node and all associated edges - self._db.graph_data.update(self._find_data, {'$pull': dict(nodes=dict(id=id))}, multi=False) - - self._db.graph_data.update(self._find_data, {'$pull': dict(edges={'$or': [dict(source=id), dict(target=id)]})}, - multi=True) - - if self._edges: - self._edges = [e for e in self._edges if e.source != id and e.target != id] - self._entry['nedges'] = len(self._edges) - else: - # use a query to compute the length - self._entry['nedges'] = len(self._db.graph_data.find_one(self._find_data, {'edges': 1})['edges']) - self._db.graph.update(self._find_me, {'$inc': dict(nnodes=-1), '$set': dict(nedges=self._entry['nedges'])}) - - return True - - def get_node(self, id): - for n in self.nodes(): - if n.id == id: - return n - return None - - def get_edge(self, id): - for n in self.edges(): - if n.id == id: - return n - return None - - def clear(self): - if not self.can_write(): - return False - self._db.graph.update(self._find_me, {'$set': dict(nnodes=0, nedges=0)}) - self._db.graph_data.update(self._find_data, {'$set': dict(nodes=[], edges=[])}) - self._nodes = None - self._edges = None - self._entry['nnodes'] = 0 - self._entry['nedges'] = 0 - return True - - def add_edge(self, data): - if not self.can_write(): - return False - self._db.graph.update(self._find_me, {'$inc': dict(nedges=1)}) - self._db.graph_data.update(self._find_data, {'$push': dict(edges=data)}) - self._entry['nedges'] += 1 - if self._edges: - self._edges.append(phovea_server.graph.GraphEdge(data['type'], data['id'], data['source'], data['target'], - data.get('attrs', None))) - return True - - def update_edge(self, data): - if not self.can_write(): - return False - q = self._find_data.copy() - q['edges.id'] = data['id'] - self._db.graph_data.update(q, {'$set': {'edges.$.attrs': data.get('attrs', {})}}) - # update({ "item.two" : "24" }, - # { $set : { "item.$.two" : "" }}, false, true); - if self._edges: - for n in self._edges: - if n.id == id: - n.attrs = data.get('attrs', {}) - break - - return True - - def remove_edge(self, id): - if not self.can_write(): - return False - if self._edges: - n = self.get_edge(id) - self._edges.remove(n) - self._entry['nedges'] -= 1 - self._db.graph.update(self._find_me, {'$inc': dict(nedges=-1)}) - self._db.graph_data.update(self._find_data, {'$pull': dict(edges=dict(id=id))}) - return True - - def remove(self): - if not self.can_write(): - return False - self._db.graph.remove(self._find_me) - self._db.graph_data.remove(self._find_data) - self._nodes = None - self._edges = None - self._entry['nnodes'] = 0 - self._entry['nedges'] = 0 - return True - - def modify(self, args, files): - if not self.can_write(): - return False - op = args.get('operation', 'setmetadata') - if op == 'setmetadata': - changes = {} - for key in ['name', 'description', 'group', 'permissions', 'buddies', 'attrs']: - if key in args: - self._entry[key] = changes[key] = args[key] - self.name = self._entry['name'] - self._db.graph.update(self._find_me, {'$set': changes}, upsert=False) - return True - elif op == 'batch': - items = args.get('items', []) - for item in items: - item_type = item['type'] - item_op = item['op'] - item_id = item.get('id', None) - item_desc = item.get('desc', None) - if op == 'remove': - if not getattr(self, 'remove_' + item_type)(item_id): +from .dataset.dataset_def import ADataSetProvider +from .dataset.graph import graph +from .settings import get_global_settings +from .utils import fix_id, random_id + + +class MongoGraph(graph.AGraph): + def __init__(self, entry, db): + super(MongoGraph, self).__init__(entry["name"], "mongodb", entry.get("id", None), entry.get("attrs", None)) + self._entry = entry + self._db = db + from bson.objectid import ObjectId + + self._find_me = dict(_id=self._entry["_id"]) + self._find_data = dict(_id=ObjectId(self._entry["refid"])) + + self._nodes = None + self._edges = None + + @staticmethod + def list(db): + return [MongoGraph(entry, db) for entry in db.graph.find()] + + @staticmethod + def create(data, user, id, db): + # if 'clone_from' in data: + # #clone from an existing graph + # from bson.objectid import ObjectId + # other_desc = db.graph.find_one(dict(_id=data['clone_from'])) + # other_data = db.graph_data.find_one(dict(_id=ObjectId(other_desc['refid']))) + # else + # other_desc = dict() + # other_data = dict() + + import datetime + + entry = dict( + name=data["name"], + description=data.get("description", ""), + creator=user.name, + nnodes=len(data["nodes"]), + nedges=len(data["edges"]), + attrs=data.get("attrs", {}), + ts=datetime.datetime.utcnow(), + ) + + if "group" in data: + entry["group"] = data["group"] + if "permissions" in data: + entry["permissions"] = data["permissions"] + if "buddies" in data: + entry["buddies"] = data["buddies"] + if id is not None: + entry["id"] = id + + data_entry = dict(nodes=data["nodes"], edges=data["edges"]) + data_id = db.graph_data.insert_one(data_entry).inserted_id + + entry["refid"] = str(data_id) + db.graph.insert_one(entry) + + return MongoGraph(entry, db) + + def nodes(self): + if self._nodes is None: + data = self._db.graph_data.find_one(self._find_data, {"nodes": 1}) + self._nodes = [graph.GraphNode(n["type"], n["id"], n.get("attrs", None)) for n in data["nodes"]] + + return self._nodes + + @property + def nnodes(self): + return self._entry["nnodes"] + + def edges(self): + if self._edges is None: + data = self._db.graph_data.find_one(self._find_data, {"edges": 1}) + self._edges = [graph.GraphEdge(n["type"], n["id"], n["source"], n["target"], n.get("attrs", None)) for n in data["edges"]] + + return self._edges + + @property + def nedges(self): + return self._entry["nedges"] + + def to_description(self): + r = super(MongoGraph, self).to_description() + + if self._entry is not None: + r["description"] = self._entry["description"] + r["creator"] = self._entry["creator"] + if "group" in self._entry: + r["group"] = self._entry["group"] + if "permissions" in self._entry: + r["permissions"] = self._entry["permissions"] + if "buddies" in self._entry: + r["buddies"] = self._entry["buddies"] + r["ts"] = self._entry["ts"] + + return r + + def add_node(self, data): + if not self.can_write(): return False + self._db.graph.update(self._find_me, {"$inc": dict(nnodes=1)}) + self._db.graph_data.update(self._find_data, {"$push": dict(nodes=data)}) + self._entry["nnodes"] += 1 + if self._nodes: + self._nodes.append(graph.GraphNode(data["type"], data["id"], data.get("attrs", None))) + return True + + def update_node(self, data): + if not self.can_write(): + return False + q = self._find_data.copy() + q["nodes.id"] = data["id"] + self._db.graph_data.update(q, {"$set": {"nodes.$.attrs": data.get("attrs", {})}}) + # update({ "item.two" : "24" }, + # { $set : { "item.$.two" : "" }}, false, true); + if self._nodes: + for n in self._nodes: + if n.id == id: + n.attrs = data.get("attrs", {}) + break + + return True + + def remove_node(self, id): + if not self.can_write(): + return False + if self._nodes: + n = self.get_node(id) + self._nodes.remove(n) + self._entry["nnodes"] -= 1 + # remove node and all associated edges + self._db.graph_data.update(self._find_data, {"$pull": dict(nodes=dict(id=id))}, multi=False) + + self._db.graph_data.update( + self._find_data, + {"$pull": dict(edges={"$or": [dict(source=id), dict(target=id)]})}, + multi=True, + ) + + if self._edges: + self._edges = [e for e in self._edges if e.source != id and e.target != id] + self._entry["nedges"] = len(self._edges) else: - if not getattr(self, item_op + '_' + item_type)(item_desc): + # use a query to compute the length + self._entry["nedges"] = len(self._db.graph_data.find_one(self._find_data, {"edges": 1})["edges"]) + self._db.graph.update( + self._find_me, + {"$inc": dict(nnodes=-1), "$set": dict(nedges=self._entry["nedges"])}, + ) + + return True + + def get_node(self, id): + for n in self.nodes(): + if n.id == id: + return n + return None + + def get_edge(self, id): + for n in self.edges(): + if n.id == id: + return n + return None + + def clear(self): + if not self.can_write(): + return False + self._db.graph.update(self._find_me, {"$set": dict(nnodes=0, nedges=0)}) + self._db.graph_data.update(self._find_data, {"$set": dict(nodes=[], edges=[])}) + self._nodes = None + self._edges = None + self._entry["nnodes"] = 0 + self._entry["nedges"] = 0 + return True + + def add_edge(self, data): + if not self.can_write(): + return False + self._db.graph.update(self._find_me, {"$inc": dict(nedges=1)}) + self._db.graph_data.update(self._find_data, {"$push": dict(edges=data)}) + self._entry["nedges"] += 1 + if self._edges: + self._edges.append( + graph.GraphEdge( + data["type"], + data["id"], + data["source"], + data["target"], + data.get("attrs", None), + ) + ) + return True + + def update_edge(self, data): + if not self.can_write(): return False - return True - return False + q = self._find_data.copy() + q["edges.id"] = data["id"] + self._db.graph_data.update(q, {"$set": {"edges.$.attrs": data.get("attrs", {})}}) + # update({ "item.two" : "24" }, + # { $set : { "item.$.two" : "" }}, false, true); + if self._edges: + for n in self._edges: + if n.id == id: + n.attrs = data.get("attrs", {}) + break + + return True + + def remove_edge(self, id): + if not self.can_write(): + return False + if self._edges: + n = self.get_edge(id) + self._edges.remove(n) + self._entry["nedges"] -= 1 + self._db.graph.update(self._find_me, {"$inc": dict(nedges=-1)}) + self._db.graph_data.update(self._find_data, {"$pull": dict(edges=dict(id=id))}) + return True + + def remove(self): + if not self.can_write(): + return False + self._db.graph.remove(self._find_me) + self._db.graph_data.remove(self._find_data) + self._nodes = None + self._edges = None + self._entry["nnodes"] = 0 + self._entry["nedges"] = 0 + return True + + def modify(self, args, files): + if not self.can_write(): + return False + op = args.get("operation", "setmetadata") + if op == "setmetadata": + changes = {} + for key in [ + "name", + "description", + "group", + "permissions", + "buddies", + "attrs", + ]: + if key in args: + self._entry[key] = changes[key] = args[key] + self.name = self._entry["name"] + self._db.graph.update(self._find_me, {"$set": changes}, upsert=False) + return True + elif op == "batch": + items = args.get("items", []) + for item in items: + item_type = item["type"] + item_op = item["op"] + item_id = item.get("id", None) + item_desc = item.get("desc", None) + if op == "remove": + if not getattr(self, "remove_" + item_type)(item_id): + return False + else: + if not getattr(self, item_op + "_" + item_type)(item_desc): + return False + return True + return False def _generate_id(basename): - import phovea_server.util - return phovea_server.util.fix_id(basename + ' ' + phovea_server.util.random_id(5)) + return fix_id(basename + " " + random_id(5)) class GraphProvider(ADataSetProvider): - def __init__(self): - import phovea_server.config - from pymongo import MongoClient + def __init__(self): + from pymongo import MongoClient - c = phovea_server.config.view('tdp_core.mongo') + c = get_global_settings().tdp_core.mongo - self.client = MongoClient(c.host, c.port) - self.db = self.client[c.db_graph] + self.client = MongoClient(c.host, c.port) + self.db = self.client[c.db_graph] - def __iter__(self): - return iter((f for f in MongoGraph.list(self.db) if f.can_read())) + def __iter__(self): + return iter((f for f in MongoGraph.list(self.db) if f.can_read())) - def remove(self, entry): - if isinstance(entry, MongoGraph) and entry.can_write() and entry.remove(): - return True - return False + def remove(self, entry): + if isinstance(entry, MongoGraph) and entry.can_write() and entry.remove(): + return True + return False - def upload(self, data, files, id=None): - if not data.get('type', 'unknown') == 'graph': - return None # can't handle - from phovea_server.security import current_user - user = current_user() + def upload(self, data, files, id=None): + if not data.get("type", "unknown") == "graph": + return None # can't handle + from tdp_core.security import current_user - parsed = phovea_server.graph.parse(data, files) + user = current_user() - if parsed is None: - return None + parsed = graph.parse(data, files) - if id is None: - id = _generate_id(parsed.get('name', '')) + if parsed is None: + return None - graph = MongoGraph.create(parsed, user, id, self.db) + if id is None: + id = _generate_id(parsed.get("name", "")) - return graph + return MongoGraph.create(parsed, user, id, self.db) def create(): - return GraphProvider() + return GraphProvider() + # CLEAR DB: # bash: mongo: diff --git a/tdp_core/id_mapping/__init__.py b/tdp_core/id_mapping/__init__.py new file mode 100644 index 000000000..a1f282eac --- /dev/null +++ b/tdp_core/id_mapping/__init__.py @@ -0,0 +1,17 @@ +from ..plugin.registry import lookup_singleton +from ..dataset.dataset import list_datasets +from ..dataset.dataset_def import to_idtype_description +from .manager import get_mappingmanager + + +def list_idtypes(): + tmp = dict() + for d in list_datasets(): + for idtype in d.to_idtype_descriptions(): + tmp[idtype["id"]] = idtype + + # also include the known elements from the mapping graph + mapping = get_mappingmanager() + for idtype_id in mapping.known_idtypes(): + tmp[idtype_id] = to_idtype_description(idtype_id) + return list(tmp.values()) diff --git a/tdp_core/id_mapping/idtype_api.py b/tdp_core/id_mapping/idtype_api.py new file mode 100644 index 000000000..c80f6a184 --- /dev/null +++ b/tdp_core/id_mapping/idtype_api.py @@ -0,0 +1,64 @@ +from ..utils import etag +import logging +from . import list_idtypes +from .manager import get_mappingmanager +from flask import Flask, request, abort, jsonify + + +app_idtype = Flask(__name__) + +_log = logging.getLogger(__name__) + + +@app_idtype.route("/") +@etag +def _list_idtypes(): + return jsonify(list_idtypes()) + + +@app_idtype.route("//") +@etag +def _maps_to(idtype): + mapper = get_mappingmanager() + target_id_types = mapper.maps_to(idtype) + return jsonify(target_id_types) + + +@app_idtype.route("//", methods=["GET", "POST"]) +def _mapping_to(idtype, to_idtype): + return _do_mapping(idtype, to_idtype) + + +@app_idtype.route("///search") +def _mapping_to_search(idtype, to_idtype): + query = request.args.get("q", None) + max_results = int(request.args.get("limit", 10)) + mapper = get_mappingmanager() + if hasattr(mapper, "search"): + return jsonify(mapper.search(idtype, to_idtype, query, max_results)) + return jsonify([]) + + +def _do_mapping(idtype, to_idtype): + mapper = get_mappingmanager() + args = request.values + first_only = args.get("mode", "all") == "first" + + if "q" in args: + names = args["q"].split(",") + elif "q[]" in args: + names = args.getlist("q[]") + else: + abort(400) + return + + mapped_list = mapper(idtype, to_idtype, names) + + if first_only: + mapped_list = [None if a is None or len(a) == 0 else a[0] for a in mapped_list] + + return jsonify(mapped_list) + + +def create_idtype(): + return app_idtype diff --git a/tdp_core/id_mapping/manager.py b/tdp_core/id_mapping/manager.py new file mode 100644 index 000000000..852f86cce --- /dev/null +++ b/tdp_core/id_mapping/manager.py @@ -0,0 +1,208 @@ +from builtins import object, set +from ..plugin.registry import list_plugins as list_plugin, lookup_singleton +from itertools import chain +from typing import List +import logging + +_log = logging.getLogger(__name__) + + +class MappingManager(object): + """ + Mapping manager creating a graph of all available id-2-id mappings, allowing for transitive id-mappings. + This graph is traversed via shortest path when mapping from one id-(type) to another. + """ + + def __init__(self, providers): + self.mappers = {} + self.paths = {} + graph = {} + for (from_idtype, to_idtype, mapper) in providers: + # generate mapper mapping + from_mappings = self.mappers.get(from_idtype, {}) + self.mappers[from_idtype] = from_mappings + to_mappings = from_mappings.get(to_idtype, []) + from_mappings[to_idtype] = to_mappings + to_mappings.append(mapper) + # generate type graph + from_graph = graph.get(from_idtype, []) + from_graph.append(to_idtype) + graph[from_idtype] = from_graph + # generate path map + entries = self.known_idtypes() + for _from in entries: + # calculate all paths + all_paths = {_to: self.__find_all_paths(graph, _from, _to) for _to in entries if _to != _from} + # remove missing paths + for key, value in list(all_paths.items()): + if not value: + del all_paths[key] + self.paths[_from] = all_paths + + def known_idtypes(self): + """ + returns a set of a all known id types in this mapping graph + :return: + """ + s = set() + for from_, v in self.mappers.items(): + s.add(from_) + for to_ in list(v.keys()): + s.add(to_) + return s + + def __find_all_paths(self, graph, start, end, path=[]): + """ + Returns all possible paths in the graph from start to end + :return: Array of all possible paths (string arrays) sorted by shortest path first + """ + path = path + [start] + if start == end: + return [path] + if start not in graph: + return [] + paths = [] + for node in graph[start]: + if node not in path: + newpaths = self.__find_all_paths(graph, node, end, path) + for newpath in newpaths: + paths.append(newpath) + return sorted(paths, key=len) + + def __resolve_single(self, from_idtype, to_idtype, ids): + from_mappings = self.mappers.get(from_idtype, {}) + to_mappings = from_mappings.get(to_idtype, []) + if not to_mappings: + _log.warn("cannot find mapping from %s to %s", from_idtype, to_idtype) + return [None for _ in ids] + + def apply_mapping(mapper, ids: List[str]): + # Each mapper can define if it preserves the order of the incoming ids. + if hasattr(mapper, "preserves_order") and mapper.preserves_order: + return mapper(ids) + else: + # If this is not the case, we need to map every single id separately + return [mapper([id])[0] for id in ids] + + if len(to_mappings) == 1: + # single mapping no need for merging + return apply_mapping(to_mappings[0], ids) + + # two way to preserve the order of the results + r = [[] for _ in ids] + rset = [set() for _ in ids] + for mapper in to_mappings: + mapped_ids = apply_mapping(mapper, ids) + for mapped_id, rlist, rhash in zip(mapped_ids, r, rset): + for id in mapped_id: + if id not in rhash: + rlist.append(id) + rhash.add(id) + return r + + def merge_2d_arrays(self, source, lengths): + """ + Merges the arrays of the source array according to the lengths array + For example, [[1], [2], [3]] with lengths [2, 1] becomes [[1, 2], [3]] + :return: Merged arrays + """ + if len(lengths) == 0 and len(source) == 0: + return [] + assert len(lengths) > 0 and min(lengths) >= 1 + assert sum(lengths) == len(source) + result = [] + i = 0 + for length in lengths: + next_i = i + length + result.append(source[i] if length == 1 else list(chain.from_iterable(source[i:next_i]))) + i = next_i + return result + + def can_map(self, from_idtype, to_idtype): + return self.paths.get(from_idtype, {}).get(to_idtype) + + def maps_to(self, from_idtype): + return list(self.paths.get(from_idtype, {}).keys()) + + def __call__(self, from_idtype, to_idtype, ids): + # If both id types are the same, simply return + if from_idtype == to_idtype: + return ids + + # Get stored path instead of calculating them "on the fly" + # paths = self.__find_all_paths(self.graph, from_idtype, to_idtype) + paths = self.paths.get(from_idtype, {}).get(to_idtype) + + if not paths: + _log.warn("Cannot find mapping from %s to %s", from_idtype, to_idtype) + return [None for _ in ids] + + # Traverse shortest path only for now + path = paths[0] + if len(path) < 2: + _log.warn("Invalid path given: %s", path) + return [None for _ in ids] + + values = ids + needs_merging = False + lengths = [] + # Iterate over from, to tuples + for i in range(1, len(path)): + from_type = path[i - 1] + to_type = path[i] + result = self.__resolve_single(from_type, to_type, values) + + # Check if needs merging + if needs_merging: + result = self.merge_2d_arrays(result, lengths) + + # Return on last iteration + if i == len(path) - 1: + return result + + # Otherwise, check if every mapping was 1 to 1 + lengths = [len(x) for x in result] + # If any result array is longer than 1, we need to flatten and later merge it + needs_merging = max(lengths, default=0) > 1 + # Flatten result and assign to values + values = list(chain.from_iterable(result)) + return result + + def search(self, from_idtype, to_idtype, query, max_results=None): + """ + Searches for matches in the names of the given idtype. + This operation does not resolve transitive mappings. + :param query: + :param max_results + :return: + """ + from_mappings = self.mappers.get(from_idtype, {}) + to_mappings = from_mappings.get(to_idtype, []) + to_mappings = [m for m in to_mappings if hasattr(m, "search")] + + if not to_mappings: + _log.warn("cannot find mapping from %s to %s", from_idtype, to_idtype) + return [] + + if len(to_mappings) == 1: + # single mapping no need for merging + return to_mappings[0].search(query, max_results) + + rset = set() + for mapper in to_mappings: + results = mapper.search(query, max_results) + for r in results: + rset.add(r) + return list(rset) + + +def create(): + # Load mapping providers + providers = [] + for plugin in list_plugin("mapping_provider"): + providers = providers + list(plugin.load().factory()) + return MappingManager(providers) + + +def get_mappingmanager(): + return lookup_singleton("mappingmanager") diff --git a/tdp_core/mapping_table.py b/tdp_core/mapping_table.py index 5dfef2d3b..ff87ffe53 100644 --- a/tdp_core/mapping_table.py +++ b/tdp_core/mapping_table.py @@ -7,48 +7,48 @@ class SQLMappingTable(object): - def __init__(self, mapping: DBMapping, engine): - self.from_idtype = mapping.from_idtype - self.to_idtype = mapping.to_idtype - self._engine = engine - self._query = mapping.query - self._integer_ids = mapping.integer_ids - # Enable batch mapping operations by ensuring the correct return order - self.preserves_order = True + def __init__(self, mapping: DBMapping, engine): + self.from_idtype = mapping.from_idtype + self.to_idtype = mapping.to_idtype + self._engine = engine + self._query = mapping.query + self._integer_ids = mapping.integer_ids + # Enable batch mapping operations by ensuring the correct return order + self.preserves_order = True - def __call__(self, ids): - # ensure strings + def __call__(self, ids): + # ensure strings - if self._integer_ids: # convert to integer ids - ids = [int(i) for i in ids] + if self._integer_ids: # convert to integer ids + ids = [int(i) for i in ids] - with db.session(self._engine) as session: - mapped = session.execute(self._query, ids=ids) + with db.session(self._engine) as session: + mapped = session.execute(self._query, ids=ids) - # handle multi mappings - data = sorted(mapped, key=lambda x: x['f']) - grouped = {k: [r['t'] for r in g] for k, g in itertools.groupby(data, lambda x: x['f'])} - # Return according to the given ids to ensure that we are preserving the order correctly - return [grouped.get(id, []) for id in ids] + # handle multi mappings + data = sorted(mapped, key=lambda x: x["f"]) + grouped = {k: [r["t"] for r in g] for k, g in itertools.groupby(data, lambda x: x["f"])} + # Return according to the given ids to ensure that we are preserving the order correctly + return [grouped.get(id, []) for id in ids] def _discover_mappings(): - for k, connector in db.configs.connectors.items(): - if not connector.mappings: - continue - engine = db.configs.engine(k) - for mapping in connector.mappings: - _log.info('registering %s to %s', mapping.from_idtype, mapping.to_idtype) - yield SQLMappingTable(mapping, engine) + for k, connector in db.configs.connectors.items(): + if not connector.mappings: + continue + engine = db.configs.engine(k) + for mapping in connector.mappings: + _log.info("registering %s to %s", mapping.from_idtype, mapping.to_idtype) + yield SQLMappingTable(mapping, engine) class SQLMappingProvider(object): - def __init__(self): - self._mappings = list(_discover_mappings()) + def __init__(self): + self._mappings = list(_discover_mappings()) - def __iter__(self): - return iter(((f.from_idtype, f.to_idtype, f) for f in self._mappings)) + def __iter__(self): + return iter(((f.from_idtype, f.to_idtype, f) for f in self._mappings)) def create(): - return SQLMappingProvider() + return SQLMappingProvider() diff --git a/tdp_core/plugin/__init__.py b/tdp_core/plugin/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/plugin/parser.py b/tdp_core/plugin/parser.py new file mode 100644 index 000000000..b9a609841 --- /dev/null +++ b/tdp_core/plugin/parser.py @@ -0,0 +1,302 @@ +from abc import ABC, abstractmethod +from functools import lru_cache +from typing import Dict, List, Tuple, Type, Union +from pkg_resources import iter_entry_points +import importlib +from pydantic import BaseSettings +from .reg_helper import RegHelper +from ..settings import get_global_settings +import logging +from os import path +import json +import sys + +_log = logging.getLogger(__name__) + + +def is_disabled_plugin(p): + import re + + def check(disable): + return isinstance(disable, str) and re.match(disable, p.id) + + return any(map(check, get_global_settings().tdp_core.disable.plugins)) + + +def is_disabled_extension(extension, extension_type, p): + import re + + if is_disabled_plugin(p): + return True + + def check_elem(k, v): + vk = extension_type if k == "type" else extension[k] + return re.match(v, vk) + + def check(disable): + if isinstance(disable, str): + return re.match(disable, extension["id"]) + return all(check_elem(k, v) for k, v in disable.items()) + + return any(map(check, get_global_settings().tdp_core.disable.extensions)) + + +def _git_head(cwd): + import subprocess + + try: + output = subprocess.check_output(["git", "rev-parse", "--verify", "HEAD"], cwd=cwd) + return output.strip() + except subprocess.CalledProcessError: + return "error" + + +def _resolve_plugin(plugin): + if path.isdir(path.join(plugin.folder, ".git")) and plugin.repository: + repo = plugin.repository + if repo.endswith(".git"): + repo = repo[0:-4] + return str(repo) + "/commit/" + str(_git_head(plugin.folder)) + # not a git repo + return plugin.version + + +class APlugin(ABC): + def register(self, reg: RegHelper): + m = self.get_module() + + if hasattr(m, "phovea"): + m.phovea(reg) + else: + _log.info(f'Plugin {self.id}@{m} has no function "phovea"') + + +class EntryPointPlugin(APlugin): + def __init__(self, entry_point): + self.id = entry_point.name + self.name = self.id + self.title = self.name + self.description = '' + self.version = entry_point.dist.version + self.extensions = [] + self.repository = None + self._loader = entry_point.load + + # Fetch the folder from the module directory + self.folder = path.dirname(importlib.util.find_spec(entry_point.name).origin) + + # guess folder + if path.exists(path.join(self.folder, 'buildInfo.json')): + with open(path.join(self.folder, 'buildInfo.json')) as f: + pkg = json.load(f) + desc = pkg.get('description', '').split('\n') + self.title = desc.pop(0) if len(desc) > 1 else self.name + self.description = '\n'.join(desc) + self.homepage = pkg.get('homepage') + self.version = pkg['version'] + self.repository = pkg.get('repository', '') + + @staticmethod + def is_app(): + return False + + def config_file(self): + return None + + @lru_cache + def get_module(self): + return importlib.import_module(self.id) + + @property + def resolved(self): + return self.version + + +class DirectoryPlugin(APlugin): + def __init__(self, package_file): + folder = path.dirname(package_file) + with open(package_file) as f: + pkg = json.load(f) + self.id = pkg["name"] + self._clean_id = self.id.lower().replace("-", "_") + self.pkg = pkg + self.name = self.id + desc = pkg.get("description", "").split("\n") + self.title = desc.pop(0) if len(desc) > 1 else self.name + self.description = "\n".join(desc) + self.homepage = pkg.get("homepage") + self.version = pkg["version"] + self.extensions = [] + self.repository = pkg.get("repository", {}).get("url") + self.folder = folder + + def is_app(self): + f = path.join(self.folder, "build", "index.html") + return path.exists(f) + + def config_file(self) -> str | None: + for f in [ + path.join(self.folder, "config.json"), + path.join(self.folder, self.id, "config.json"), + path.join(self.folder, self._clean_id, "config.json"), + ]: + if path.exists(f): + return f + return None + + @lru_cache + def get_module(self): + f = path.join(self.folder, self.id, "__init__.py") + if not path.exists(f): + return False + # append path ../__init__.py + sys.path.insert(0, path.abspath(path.dirname(path.dirname(f)))) + + module = path.basename(path.dirname(f)) + return importlib.import_module(module) + + @property + def resolved(self): + return _resolve_plugin(self) + + +class DirectoryProductionPlugin(APlugin): + def __init__(self, folder): + self.folder = folder + self.extensions = [] + if path.exists(path.join(folder, "buildInfo.json")): + with open(path.join(folder, "buildInfo.json")) as f: + pkg = json.load(f) + self.id = pkg["name"] + self.name = self.id + desc = pkg.get("description", "").split("\n") + self.title = desc.pop(0) if len(desc) > 1 else self.name + self.description = "\n".join(desc) + self.homepage = pkg.get("homepage") + self.version = pkg["version"] + self.repository = pkg.get("repository", "") + else: + self.id = path.basename(folder) + self.name = self.id + self.title = self.id + self.description = "" + self.homepage = "" + self.version = "" + self.repository = "" + + @staticmethod + def is_app(): + return False + + def config_file(self) -> str | None: + f = path.join(self.folder, "config.json") + return f if path.exists(f) else None + + @lru_cache + def get_module(self): + f = path.join(self.folder, "__init__.py") + if not path.exists(f): + return False + # append path ../__init__.py + sys.path.insert(0, path.abspath(path.dirname(path.dirname(f)))) + + module = path.basename(path.dirname(f)) + return importlib.import_module(module) + + @property + def resolved(self): + return self.version + + +def _find_entry_point_plugins(): + return [EntryPointPlugin(entry_point) for entry_point in iter_entry_points(group='phovea.registry')] + +# def _find_entry_point_plugins(): +# dirs = [path.dirname(importlib.util.find_spec(ep.name).origin) for ep in iter_entry_points(group='phovea.registry')] +# dirs = [d for d in dirs if path.exists(path.join(d, "config.json"))] +# return [p for p in [DirectoryProductionPlugin(pi) for pi in dirs] if p.id != "phovea_workspace"] + + +def _find_development_neighbor_plugins() -> List[DirectoryPlugin]: + import glob + import itertools + + prefix = ["./", "../", "../../"] + suffix = ["", "p/", "public/"] + files = [] + for pre, s in itertools.product(prefix, suffix): + files.extend((path.abspath(pi) for pi in glob.glob(pre + s + "*/package.json"))) + # files contains all plugins + # This method also finds the workspace package.json, and creates a plugin from that... + return [p for p in [DirectoryPlugin(pi) for pi in files] if p.id != "phovea_workspace"] + + +def _find_production_neighbor_plugins() -> List[DirectoryProductionPlugin]: + import glob + + base_dir = path.dirname(path.dirname(__file__)) + # all dirs having both __init__.py and config.json contained + dirs = [path.dirname(path.abspath(pi)) for pi in glob.glob(base_dir + "/*/__init__.py")] + dirs = [d for d in dirs if path.exists(path.join(d, "config.json"))] + # files contains all plugins + return [p for p in [DirectoryProductionPlugin(pi) for pi in dirs] if p.id != "phovea_workspace"] + + +def load_all_plugins() -> List[APlugin]: + plugins: List[APlugin] = [] + + # TODO: Load entry point plugins + # plugins.extend(p for p in _find_entry_point_plugins() if not is_disabled_plugin(p)) + + if get_global_settings().is_development_mode: + _log.info("Looking for development neighbors") + neighbors = _find_development_neighbor_plugins() + else: + _log.info("Looking for production neighbors") + neighbors = _find_production_neighbor_plugins() + + plugins.extend(p for p in neighbors if not is_disabled_plugin(p)) + plugins.sort(key=lambda p: p.id) + + _log.info(f"Discovered {len(plugins)} plugins: {', '.join([d.id for d in plugins])}") + + return plugins + + +def get_extensions_from_plugins(plugins: List[APlugin]) -> List: + server_extensions = [] + for plugin in plugins: + reg = RegHelper(plugin) + plugin.register(reg) + ext = [r for r in reg if not is_disabled_extension(r, "python", plugin)] + logging.info(f'plugin {plugin.id} registered {len(ext)} extension(s)') + plugin.extensions = ext + server_extensions.extend(ext) + + return server_extensions + + +def get_config_from_plugins(plugins: List[APlugin]) -> Tuple[List[Dict[str, Dict]], Dict[str, Type[BaseSettings]]]: + from ..settings.utils import load_config_file + + # With all the plugins, load the corresponding configuration files and add them to the global config + files: List[Dict[str, Dict]] = [] + models: Dict[str, Type[BaseSettings]] = {} + for plugin in plugins: + plugin_module = plugin.get_module() + if hasattr(plugin_module, 'config_model'): + plugin_config_model = plugin_module.config_model() + if plugin_config_model: + logging.info(f'Plugin {plugin.id} has a settings model') + # Load the class of the config and wrap it in a tuple like (, ...), + # such that pydantic can use it as type-hint in the create_model class. + # Otherwise, it would except to be the default value... + models[plugin.id] = (plugin_config_model, ...) + else: + # Load actual config.json + f = plugin.config_file() + if f: + logging.info(f'Plugin {plugin.id} has a config.json') + files.append({f"{plugin.id}": load_config_file(f)}) + + return (files, models) diff --git a/tdp_core/plugin/reg_helper.py b/tdp_core/plugin/reg_helper.py new file mode 100644 index 000000000..f73e49ce6 --- /dev/null +++ b/tdp_core/plugin/reg_helper.py @@ -0,0 +1,23 @@ + +from typing import Any, Dict + + +class RegHelper(object): + def __init__(self, plugin): + self._items = [] + self._plugin = plugin + + def __iter__(self): + return iter(self._items) + + def append(self, type_: str, id_: str, module_: Any, desc: Dict[str, Any] = None): + desc = {} if desc is None else desc + desc["type"] = type_ + desc["id"] = id_ + desc["module"] = module_ + desc["plugin"] = self._plugin + self._items.append(desc) + + def append_router(self, id_: str, module_: Any, desc: Dict[str, Any]): + # TODO: Validate desc + return self.append("fastapi_router", id_, module_, desc) diff --git a/tdp_core/plugin/registry.py b/tdp_core/plugin/registry.py new file mode 100644 index 000000000..45a78f77d --- /dev/null +++ b/tdp_core/plugin/registry.py @@ -0,0 +1,171 @@ +from builtins import object +import logging +from functools import cmp_to_key +from typing import List +from .parser import APlugin, get_extensions_from_plugins + +__registry = None + +_log = logging.getLogger(__name__) + + +class Extension(object): + """ + the loaded plugin instance + """ + + def __init__(self, desc, impl): + self.desc = desc + self.impl = impl + self._cache = None + + def __call__(self, *args, **kwargs): + """ + access and call the factory method of this plugin + """ + if getattr(self.desc, "singleton", False) and self._cache is not None: + return self._cache + + m = getattr(self.impl, self.desc.factory) + + if hasattr(m, "__call__"): + v = m(*args, **kwargs) + else: + v = m + self._cache = v + return v + + def factory(self, *args, **kwargs): + return self(*args, **kwargs) + + +class AExtensionDesc(object): + def __init__(self, desc): + self.type = desc.get("type", "unknown") + self.id = desc["id"] + self.name = self.id + self.factory = "create" + self.file = "main" + self.version = "1.0" + self.description = "" + # copy all values + for key, value in desc.items(): + self.__dict__[key] = value + + +class ExtensionDesc(AExtensionDesc): + """ + plugin description + """ + + def __init__(self, desc): + super(ExtensionDesc, self).__init__(desc) + self._impl = None + + # from js notation to python notation + self.module = self.module.replace("/", ".") + + def load(self): + if self._impl is None: + import importlib + + m = importlib.import_module(self.module) + self._impl = Extension(self, m) + return self._impl + + +class PreLoadedExtensionDesc(AExtensionDesc): + def __init__(self, desc, impl): + super(PreLoadedExtensionDesc, self).__init__(desc) + self._wrapper = PreLoadedExtension(impl) + + def load(self): + return self._wrapper + + +class PreLoadedExtension(object): + def __init__(self, impl): + self._impl = impl + + def __call__(self, *args, **kwargs): + return self._impl + + def factory(self, *args, **kwargs): + return self._impl + + +class Registry(object): + def __init__(self, plugins: List[APlugin]): + self.plugins = plugins + self._extensions = [ExtensionDesc(p) for p in get_extensions_from_plugins(plugins)] + self._extensions.append(PreLoadedExtensionDesc(dict(type="manager", id="registry"), self)) + + self._singletons = None + + @property + def singletons(self): + import collections + + # check initialization + _log = logging.getLogger(__name__) + if self._singletons is not None: + return self._singletons + + def loader(e): + return lambda: e.load().factory() + + # select singleton impl with lowest priority default 100 + mm = collections.defaultdict(lambda: []) + for e in self._extensions: + if e.type == "manager": + mm[e.id].append(e) + + def compare(a, b): + a_prio = getattr(a, "priority", 100) + b_prio = getattr(b, "priority", 100) + return a_prio - b_prio + + def select(v): + v = sorted(v, key=cmp_to_key(compare)) + _log.info("creating singleton %s %s", v[0].id, getattr(v[0], "module", "server")) + return loader(v[0]) + + self._singletons = {k: select(v) for k, v in mm.items()} + + return self._singletons + + def __len__(self): + return len(self._extensions) + + def __getitem__(self, item): + return self._extensions[item] + + def __iter__(self): + return iter(self._extensions) + + def list(self, plugin_type=None): + if plugin_type is None: + return self + if not hasattr(plugin_type, "__call__"): # not a callable + return [x for x in self if x.type == plugin_type] + return [x for x in self if plugin_type(x)] + + def lookup(self, singleton_id): + if singleton_id in self.singletons: + return self.singletons[singleton_id]() + return None + + +def list_plugins(plugin_type=None): + return get_registry().list(plugin_type) + + +def lookup_singleton(singleton_id): + return get_registry().lookup(singleton_id) + + +def get_registry() -> Registry: + global __registry + if __registry is None: + raise Exception("Registry is not yet initialized!") + return __registry diff --git a/tdp_core/plugin/router.py b/tdp_core/plugin/router.py new file mode 100644 index 000000000..c6bf4ecb3 --- /dev/null +++ b/tdp_core/plugin/router.py @@ -0,0 +1,31 @@ +from ..plugin.registry import get_registry +from ..security.dependencies import get_current_user +from fastapi import APIRouter, Depends + + +router = APIRouter(tags=["Plugins"], prefix="/api/tdp", dependencies=[Depends(get_current_user)]) + + +@router.get("/plugin") +def get_plugins(): + # TODO: Create models out of that + return { + "plugins": [{ + "id": p.id, + "name": p.name, + "title": p.title, + "description": p.description, + "version": p.version, + } for p in get_registry().plugins], + "extensions": [{ + "type": e.type, + "id": e.id, + "name": e.name, + "description": e.description, + "version": e.version, + } for e in get_registry().list()] + } + + +def create(): + return router diff --git a/tdp_core/proxy.py b/tdp_core/proxy.py index a1034edb2..cbe10e7f4 100644 --- a/tdp_core/proxy.py +++ b/tdp_core/proxy.py @@ -1,58 +1,49 @@ -from phovea_server.ns import Namespace, Response, request, abort +from flask import Flask, Response, request, abort import requests import logging - +from .plugin.registry import list_plugins _log = logging.getLogger(__name__) -__author__ = 'Samuel Gratzl' -app = Namespace(__name__) +app = Flask(__name__) def _to_site_url(site): - import phovea_server.plugin - - proxy_defs = phovea_server.plugin.list('tdp_proxy') - for p in proxy_defs: - if p.id == site: - headers = getattr(p, 'headers') if hasattr(p, 'headers') else dict() - return p.url.format(**request.args.to_dict()), headers - # none matching found - return None, None + proxy_defs = list_plugins("tdp_proxy") + for p in proxy_defs: + if p.id == site: + headers = getattr(p, "headers") if hasattr(p, "headers") else dict() + return p.url.format(**request.args.to_dict()), headers + # none matching found + return None, None def _request_url(url, headers): - import phovea_server.plugin - import re + import re - handlers = phovea_server.plugin.list('tdp_proxy_handler') - for handler in handlers: - handles = getattr(handler, 'handles', '.*') - if re.match(handles, url, re.I): - # found matching handler instantiate - _log.info('proxy request url: %s via handler %s', url, handler.id) - return handler.load().factory(url, headers) + handlers = list_plugins("tdp_proxy_handler") + for handler in handlers: + handles = getattr(handler, "handles", ".*") + if re.match(handles, url, re.I): + # found matching handler instantiate + _log.info("proxy request url: %s via handler %s", url, handler.id) + return handler.load().factory(url, headers) - # no handler found using requests module - _log.info('proxy request url: %s', url) - return requests.get(url, headers=headers) + # no handler found using requests module + _log.info("proxy request url: %s", url) + return requests.get(url, headers=headers) -@app.route('/') +@app.route("/") def get_details(site): - url, headers = _to_site_url(site) - if not url: - abort(404) + url, headers = _to_site_url(site) + if not url: + abort(404) - r = _request_url(url, headers=headers) - _log.info('proxy response status code: %s', r.status_code) - return Response(r.text, status=r.status_code, content_type=r.headers['content-type']) + r = _request_url(url, headers=headers) + _log.info("proxy response status code: %s", r.status_code) + return Response(r.text, status=r.status_code, content_type=r.headers["content-type"]) def create(): - return app - - -if __name__ == '__main__': - app.debug = True - app.run(host='0.0.0.0') + return app diff --git a/tdp_core/remoteplayer.py b/tdp_core/remoteplayer.py deleted file mode 100644 index ec3c0d320..000000000 --- a/tdp_core/remoteplayer.py +++ /dev/null @@ -1,236 +0,0 @@ -from phovea_server import ns -from phovea_server.config import view as config_view -import memcache -import logging -import gevent -import gevent.lock - -__author__ = 'Samuel Gratzl' -app = ns.Namespace(__name__) -conf = config_view('tdp_core') - -mc = memcache.Client(conf.get('memcached'), debug=0) -mc_prefix = 'clue_' - -_log = logging.getLogger(__name__) - - -class Screenshotter(object): - def __init__(self): - self._lock = gevent.lock.BoundedSemaphore(1) - self._timeout = None - self._driver = None - pass - - def _timed_out(self): - try: - _log.info('quiting driver') - self._driver.quit() - _log.info('quitted driver') - finally: - self._driver = None - - def _get(self): - from selenium import webdriver - - if self._timeout is not None: - gevent.kill(self._timeout) - self._timeout = None - - if self._driver is None: - _log.info('create driver') - options = webdriver.ChromeOptions() - options.debugger_address = conf.chromeAddress - self._driver = webdriver.Chrome(chrome_options=options) - self._driver.implicitly_wait(30) # wait at most 30 seconds - return self._driver - - def _free(self): - # schedule that the driver will be cleaned up if not used - self._timeout = gevent.spawn_later(600, self._timed_out) - - def take(self, url, body=None): - with self._lock: - try: - driver = self._get() - _log.info('url %s', url) - driver.get(url) - - if body is not None: - try: - body(driver) - except Exception as e: - _log.exception('cannot fullfil query %s', e) - _log.info('take screenshot') - obj = driver.get_screenshot_as_png() - return obj - finally: - self._free() - - -screenshotter = Screenshotter() - - -def randomword(length): - import random - import string - return ''.join(random.choice(string.ascii_lowercase) for i in range(length)) - - -def generate_url(app, prov_id, state): - # add a random parameter to force a proper reload - base = '{s}/?clue_random={r}#clue_graph={g}&clue_state={n}&clue=P&clue_store=remote&clue_headless=Y' - return base.format(s=conf.server, g=prov_id, n=state, r=randomword(5)) - - -def generate_key(app, prov_id, state, format): - return 'a={a},p={g},s={s},f={f}'.format(a=app, g=prov_id, s=state, f=format) - - -def generate_slide_url(app, prov_id, slide): - base = '{s}/?clue_random={r}#clue_graph={g}&clue_slide={n}&clue=P&clue_store=remote&clue_headless=Y' - return base.format(s=conf.server, g=prov_id, n=slide, r=randomword(5)) - - -def generate_slide_key(app, prov_id, slide, force): - return 'a={a},p={g},u={s},f={f}'.format(a=app, g=prov_id, s=slide, f=format) - - -@app.route('/dump/') -def test(page): - obj = screenshotter.take('http://' + page) - return ns.Response(obj, mimetype='image/png') - - -def create_via_selenium(url, width, height): - def eval_clue(driver): - driver.find_element_by_css_selector('main') - found = None - tries = 0 - while not found and tries < 3: - tries += 1 - for entry in driver.get_log('browser'): - _log.info(entry) - found = driver.find_element_by_css_selector('body.clue_jumped') - - if found: - _log.info('found jumped flag: {}'.format(found.get_attribute('class'))) - else: - _log.warn('cannot find jumped flag after 3 x 30 seconds, give up and take a screenshot') - - return screenshotter.take(url, eval_clue) - - -def _create_screenshot_impl(app, prov_id, state, format, width=1920, height=1080, force=False): - url = generate_url(app, prov_id, state) - - key = mc_prefix + url + 'w' + str(width) + 'h' + str(height) - - obj = mc.get(key) if not force else None - if not obj: - _log.info('requesting url %s', url) - obj = create_via_selenium(url, width, height) - mc.set(key, obj) - return obj - - -def _create_preview_impl(app, prov_id, slide, format, width=1920, height=1080, force=False): - url = generate_slide_url(app, prov_id, slide) - - key = mc_prefix + url + 'w' + str(width) + 'h' + str(height) - - obj = mc.get(key) if not force else None - if not obj: - _log.debug('requesting url %s', url) - obj = create_via_selenium(url, width, height) - mc.set(key, obj) - return obj - - -def fix_format(format): - return 'jpeg' if format == 'jpg' else format - - -@app.route('/screenshot///.') -def create_screenshot(app, prov_id, state, format): - width = ns.request.args.get('width', 1920) - height = ns.request.args.get('height', 1080) - force = ns.request.args.get('force', None) is not None - - s = _create_screenshot_impl(app, prov_id, state, format, width, height, force) - return ns.Response(s, mimetype='image/' + fix_format(format)) - - -def to_thumbnail(s, width, format): - import PIL.Image - import io - - b = io.BytesIO(s) - img = PIL.Image.open(b) - - wpercent = (width / float(img.size[0])) - height = int(float(img.size[1]) * float(wpercent)) - img.thumbnail((width, height), PIL.Image.ANTIALIAS) - - b = io.BytesIO() - img.save(b, fix_format(format)) - b.seek(0) - obj = b.read() - return obj - - -@app.route('/thumbnail///.') -def create_thumbnail(app, prov_id, state, format): - format = fix_format(format) - width = int(ns.request.args.get('width', 128)) - force = ns.request.args.get('force', None) is not None - - key = mc_prefix + generate_key(app, prov_id, state, format) + 't' + str(width) - - obj = mc.get(key) - if not obj or force: - s = _create_screenshot_impl(app, prov_id, state, format, force=force) - obj = to_thumbnail(s, width, format) - mc.set(key, obj) - - return ns.Response(obj, mimetype='image/' + format) - - -@app.route('/preview///.') -def create_preview(app, prov_id, slide, format): - width = ns.request.args.get('width', 1920) - height = ns.request.args.get('height', 1080) - force = ns.request.args.get('force', None) is not None - - s = _create_preview_impl(app, prov_id, slide, format, width, height, force) - return ns.Response(s, mimetype='image/' + fix_format(format)) - - -@app.route('/preview_thumbnail///.') -def create_preview_thumbnail(app, prov_id, slide, format): - format = fix_format(format) - width = int(ns.request.args.get('width', 128)) - force = ns.request.args.get('force', None) is not None - - key = mc_prefix + generate_slide_key(app, prov_id, slide, format) + 't' + str(width) - - obj = mc.get(key) - if not obj or force: - s = _create_preview_impl(app, prov_id, slide, format, force=force) - obj = to_thumbnail(s, width, format) - mc.set(key, obj) - - return ns.Response(obj, mimetype='image/' + format) - - -def create(): - """ - entry point of this plugin - """ - app.debug = True - return app - - -if __name__ == '__main__': - app.debug = True - app.run(host='0.0.0.0') diff --git a/tdp_core/security/__init__.py b/tdp_core/security/__init__.py index 836ff5980..61b3d8fec 100644 --- a/tdp_core/security/__init__.py +++ b/tdp_core/security/__init__.py @@ -1,21 +1,22 @@ # TODO: This file was previously in the tdp_core/security.py file, causing a name conflict with this package. - -from phovea_server.security import login_required +from .manager import login_required, current_username, current_user, is_logged_in +from .permissions import can_execute, can_read, can_write, can, _includes from ..formatter import formatter -from ..db import resolve_view from functools import wraps # custom login_required decorator to be able to disable the login for DBViews, i.e. to make them public -def tdp_login_required(func): - @wraps(func) - def decorated_view(*args, **kwargs): - if kwargs.get('view_name', None) is not None and kwargs.get('database', None) is not None: - view_name, _ = formatter(kwargs['view_name']) - config, _, view = resolve_view(kwargs['database'], view_name) - if isinstance(view.security, bool) and view.security is False: # if security is disabled for the view just call it without checking the login - return func(*args, **kwargs) - return login_required(func)(*args, **kwargs) # call the function returned by the decorator - return login_required(func)(*args, **kwargs) +def login_required_for_dbviews(func): + from ..db import resolve_view + + @wraps(func) + def decorated_view(*args, **kwargs): + if kwargs.get("view_name", None) is not None and kwargs.get("database", None) is not None: + view_name, _ = formatter(kwargs["view_name"]) + config, _, view = resolve_view(kwargs["database"], view_name) + if isinstance(view.security, bool) and view.security is False: # if security is disabled for the view just call it without checking the login + return func(*args, **kwargs) + return login_required(func)(*args, **kwargs) # call the function returned by the decorator + return login_required(func)(*args, **kwargs) - return decorated_view + return decorated_view diff --git a/tdp_core/security/constants.py b/tdp_core/security/constants.py new file mode 100644 index 000000000..d25225ee6 --- /dev/null +++ b/tdp_core/security/constants.py @@ -0,0 +1,7 @@ +ANONYMOUS = "anonymous" + +# to get a string like this run: +# openssl rand -hex 32 +SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7" +ALGORITHM = "HS256" +ACCESS_TOKEN_EXPIRE_MINUTES = 60 * 24 diff --git a/tdp_core/security/dependencies.py b/tdp_core/security/dependencies.py new file mode 100644 index 000000000..5c176052c --- /dev/null +++ b/tdp_core/security/dependencies.py @@ -0,0 +1,18 @@ +from urllib.request import Request +from fastapi import Request +from .model import User + + +def get_current_user(request: Request) -> User: + """FastAPI dependency for the user. Ensures the user is logged in. + Usage: + ``` + ... + def route(user: User = Depends(get_current_user)): + ... + ``` + """ + from .manager import security_manager + + # Iterate through list of user providers + return security_manager().load_from_request(request) diff --git a/tdp_core/security/manager.py b/tdp_core/security/manager.py new file mode 100644 index 000000000..1bc5ce9e5 --- /dev/null +++ b/tdp_core/security/manager.py @@ -0,0 +1,229 @@ +from datetime import datetime +from typing import List, Union +from fastapi import FastAPI, Request +from .store.base_store import BaseStore +from ..server.request_context import get_request +from ..plugin import registry +from .model import ANONYMOUS_USER, LogoutReturnValue, User +from ..settings import get_global_settings +import logging +import jwt +from .constants import ANONYMOUS, SECRET_KEY, ALGORITHM +from fastapi import APIRouter +from datetime import timedelta +from fastapi import Depends, HTTPException, status +from fastapi.security import OAuth2PasswordRequestForm +from .model import Token, User +from .constants import ACCESS_TOKEN_EXPIRE_MINUTES +from fastapi.responses import HTMLResponse, JSONResponse +from functools import wraps + +_log = logging.getLogger(__name__) + + +class SecurityManager: + def __init__(self, user_stores: List[BaseStore]): + self.user_stores: List[BaseStore] = user_stores + + def login_required(self, func): + @wraps(func) + def decorated_view(*args, **kwargs): + if not self.is_logged_in: + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) + return func(*args, **kwargs) + + return decorated_view + + def login(self, username, extra_fields=None) -> Union[User, None]: + if extra_fields is None: + extra_fields = {} + + for store in self.user_stores: + user = store.login(username, extra_fields) + if user: + return user + return None + + def logout(self): + u = self.current_user + response_payload = {} + response_cookies = [] + for store in self.user_stores: + customizations = store.logout(u) or LogoutReturnValue() + # data is an arbitrary Dict which is added to the response payload. + response_payload.update(customizations.data) + # cookies is a list of Dicts which are passed 1:1 to response.set_cookie. + response_cookies.extend(customizations.cookies) + + return response_payload, response_cookies + + @property + def is_logged_in(self) -> bool: + try: + return self.current_user != None + except Exception: + return False + + @property + def current_user(self) -> User: + return self.load_from_request(get_request()) + + def has_role(self, role): + return self.current_user.has_role(role) + + def load_from_request(self, request: Request): + # Login using the request + for store in self.user_stores: + # first check if the actual "load_from_request" method is implemented and then call it + load_from_req = getattr(store, "load_from_request", None) + if callable(load_from_req): + try: + user = load_from_req(request) + except: + _log.exception(f"Error loading from request in {store}") + else: + if user: + return user + + # Raise an exception is no user could be loaded + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Could not validate credentials", + headers={"WWW-Authenticate": "Bearer"}, + ) + + def init_app(self, app: FastAPI): + # next, init every store if any requires that + for store in self.user_stores: + # first check if the actual "init_app" method is implemented and then call it + init_store_app = getattr(store, "init_app", None) + if callable(init_store_app): + init_store_app(app) + + jwt_router = APIRouter(tags=["Security"]) + + @jwt_router.get("/login", response_class=HTMLResponse) + def get_login(): + return """ + + + +
+
+
+
+
+ + + """ + + @jwt_router.post("/login", response_model=Token) + def post_login(form_data: OAuth2PasswordRequestForm = Depends()): + # TODO + user = self.login(form_data.username, {"password": form_data.password}) + if not user: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Incorrect username or password", + headers={"WWW-Authenticate": "Bearer"}, + ) + + # Define access token data + access_token_data = { + "sub": user.id, + "roles": user.roles, + "exp": datetime.utcnow() + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES), + } + # Encode the token + access_token = jwt.encode(access_token_data, SECRET_KEY, algorithm=ALGORITHM) + + # Send it back to the client in JSON + response = JSONResponse( + content={ + "name": user.name, + "roles": user.roles, + "access_token": access_token, + "token_type": "bearer", + } + ) + + # And as cookie + # TODO: Set max-age and so on + response.set_cookie("dv_jwt", access_token, httponly=True, samesite="strict") + + return response + + @jwt_router.post("/logout") + def logout(): + payload, cookies = self.logout() + + # Create response and add security store payload + response = JSONResponse(content=dict(msg="Bye Bye", **payload)) + + # Handle cookie changes from the security stores + for cookie in cookies: + try: + response.set_cookie(**cookie) + except Exception: + _log.exception(f"Error setting cookie {cookie} to logout response") + return response + + @jwt_router.get("/loggedinas") + @jwt_router.post("/loggedinas") + def loggedinas(request: Request): + user = self.current_user + if user: + return {"name": user.name, "roles": user.roles} + return '"not_yet_logged_in"' + + app.include_router(jwt_router) + + +_manager: SecurityManager = None + + +def security_manager(): + """ + :return: the security manager + """ + global _manager + if _manager is None: + _manager = registry.lookup_singleton("security_manager") + if _manager is None: + raise Exception("No security_manager found") + return _manager + + +def is_logged_in(): + return security_manager().current_user != None + + +def login_required(func): + return security_manager().login_required(func) + + +def current_username(): + u = security_manager().current_user + return u.name if hasattr(u, "name") else ANONYMOUS + + +def current_user(): + user = security_manager().current_user + if not user: + return ANONYMOUS_USER + return user + + +def create(): + _log.info("Creating security_manager") + + user_stores = list(filter(None, [p.load().factory() for p in registry.list_plugins("user_stores")])) + if len(user_stores) == 0 or get_global_settings().tdp_core.alwaysAppendDummyStore: + from .store import dummy_store + + user_stores.append(dummy_store.create()) + from .store import jwt_store + + user_stores.append(jwt_store.create()) + + return SecurityManager(user_stores=user_stores) diff --git a/tdp_core/security/model.py b/tdp_core/security/model.py new file mode 100644 index 000000000..10e7c277d --- /dev/null +++ b/tdp_core/security/model.py @@ -0,0 +1,63 @@ +import sys +from typing import Any, Dict, List, Optional +from pydantic import BaseModel +from .constants import ANONYMOUS + + +class Token(BaseModel): + access_token: str + token_type: str + + +class LogoutReturnValue(BaseModel): + data: Optional[Dict[Any, Any]] = {} + cookies: Optional[List[Dict[Any, Any]]] = [] + + +class User(BaseModel): + id: str + name: str + roles: List[str] = [] + + def get_id(self): + return str(self.id) + + @property + def is_authenticated(self): + return False + + @property + def is_active(self): + return False + + @property + def is_anonymous(self): + return self.name == ANONYMOUS + + def has_role(self, role): + return role in self.roles + + def __eq__(self, other): + """ + Checks the equality of two `UserMixin` objects using `get_id`. + """ + if isinstance(other, User): + return self.get_id() == other.get_id() + return NotImplemented + + def __ne__(self, other): + """ + Checks the inequality of two `UserMixin` objects using `get_id`. + """ + equal = self.__eq__(other) + if equal is NotImplemented: + return NotImplemented + return not equal + + if sys.version_info[0] != 2: # pragma: no cover + # Python 3 implicitly set __hash__ to None if we override __eq__ + # We set it back to its default implementation + __hash__ = object.__hash__ + + +ANONYMOUS_USER = User(id=ANONYMOUS, name=ANONYMOUS, roles=[]) diff --git a/tdp_core/security/permissions.py b/tdp_core/security/permissions.py new file mode 100644 index 000000000..32e9216e8 --- /dev/null +++ b/tdp_core/security/permissions.py @@ -0,0 +1,106 @@ +from .manager import current_user +from .constants import ANONYMOUS +from .model import User + + +PERMISSION_READ = 4 +PERMISSION_WRITE = 2 +PERMISSION_EXECUTE = 1 + + +def to_number(p_set): + return ( + (PERMISSION_READ if PERMISSION_READ in p_set else 0) + + (PERMISSION_WRITE if PERMISSION_WRITE in p_set else 0) + + (PERMISSION_EXECUTE if PERMISSION_EXECUTE in p_set else 0) + ) + + +def to_string(p_set): + return ("r" if PERMISSION_READ in p_set else "-") + ("w" if PERMISSION_WRITE in p_set else "-") + ("x" if PERMISSION_EXECUTE in p_set else "-") + + +def _from_number(p): + r = set() + if p >= 4: + r.add(PERMISSION_READ) + p -= 4 + if p >= 2: + r.add(PERMISSION_WRITE) + p -= 2 + if p >= 1: + r.add(PERMISSION_EXECUTE) + return r + + +DEFAULT_PERMISSION = 744 + + +def _decode(permission=DEFAULT_PERMISSION): + permission = int(permission) + others = _from_number(permission % 10) + group = _from_number((permission // 10) % 10) + user = _from_number((permission // 100) % 10) + buddies = _from_number((permission // 1000) % 10) + return user, group, others, buddies + + +def _is_equal(a, b): + if a == b: + return True + if not a or not b: + return False + a = a.lower() + b = b.lower() + return a == b + + +def _includes(items, item): + if not item: + return False + for check in items: + if _is_equal(check, item): + return True + return False + + +def can(item, permission: int, user: User = None): + if user is None: + user = current_user() + + if not isinstance(item, dict): + # assume we have an object + item = { + "creator": getattr(item, "creator", ANONYMOUS), + "buddies": getattr(item, "buddies", []), + "group": getattr(item, "group", ANONYMOUS), + "permissions": getattr(item, "permissions", DEFAULT_PERMISSION), + } + + owner, group, others, buddies = _decode(item.get("permissions", DEFAULT_PERMISSION)) + + # I'm the creator + if _is_equal(user.name, item.get("creator", ANONYMOUS)) and permission in owner: + return True + + # check if I'm in the buddies list + if "buddies" in item and _includes(item.get("buddies"), user.name) and permission in buddies: + return True + + # check if I'm in the group + if "group" in item and _includes(user.roles, item.get("group")) and permission in group: + return True + + return permission in others + + +def can_read(data_description, user=None): + return can(data_description, PERMISSION_READ, user) + + +def can_write(data_description, user=None): + return can(data_description, PERMISSION_WRITE, user) + + +def can_execute(data_description, user=None): + return can(data_description, PERMISSION_EXECUTE, user) diff --git a/tdp_core/security/router.py b/tdp_core/security/router.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/security/store/ALBSecurityStore.py b/tdp_core/security/store/alb_security_store.py similarity index 56% rename from tdp_core/security/store/ALBSecurityStore.py rename to tdp_core/security/store/alb_security_store.py index f8cb66547..e7852e689 100644 --- a/tdp_core/security/store/ALBSecurityStore.py +++ b/tdp_core/security/store/alb_security_store.py @@ -1,31 +1,16 @@ from typing import Optional -from phovea_server import security -from phovea_server.config import view as viewconfig + +from ...settings import get_global_settings import logging import jwt +from ..model import User _log = logging.getLogger(__name__) -_conf = viewconfig('tdp_core.security.store.alb_security_store') - - -class ALBSecurityUser(security.User): - def __init__(self, id, roles=[]): - super().__init__(id) - self.name = id - self.roles = roles - - @property - def is_authenticated(self): - return True - - @property - def is_active(self): - return True +_conf = get_global_settings().get_nested("tdp_core.security.store.alb_security_store") class ALBSecurityStore(object): - def __init__(self, cookie_name: Optional[str], signout_url: Optional[str]): self.cookie_name = cookie_name self.signout_url: Optional[str] = signout_url @@ -34,17 +19,17 @@ def load(self, id): return None def load_from_request(self, req): - if 'X-Amzn-Oidc-Identity' in req.headers and 'X-Amzn-Oidc-Accesstoken' in req.headers and 'X-Amzn-Oidc-Data' in req.headers: + if "X-Amzn-Oidc-Identity" in req.headers and "X-Amzn-Oidc-Accesstoken" in req.headers and "X-Amzn-Oidc-Data" in req.headers: try: # Get token data from header - encoded = req.headers['X-Amzn-Oidc-Data'] + encoded = req.headers["X-Amzn-Oidc-Data"] # Try to decode the oidc data jwt user = jwt.decode(encoded, options={"verify_signature": False}) # Create new user from given attributes - email = user['email'] - return ALBSecurityUser(email) + email = user["email"] + return User(id=email, name=email, roles=[]) except Exception: - _log.exception('Error in load_from_request') + _log.exception("Error in load_from_request") return None return None @@ -58,32 +43,27 @@ def logout(self, user): # https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html#authentication-logout cookies = [] if self.cookie_name: - cookies.append({'key': self.cookie_name, 'value': '', 'expires': -1}) + cookies.append({"key": self.cookie_name, "value": "", "expires": -1}) payload = {} # Redirect-URL to be triggered after logout. Makes sure to properly logout of the IdP provider. # See https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc#send-a-sign-out-request for details. if self.signout_url: - payload['alb_security_store'] = { - 'redirect': self.signout_url - } + payload["alb_security_store"] = {"redirect": self.signout_url} - return { - 'data': payload, - 'cookies': cookies - } + return {"data": payload, "cookies": cookies} def create(): # Check if the security store is enabled. # Why do we do this here and not in the __init__.py? # Because the configuration is merged after the registry is loaded, - # such that no keys are available (except phovea_server keys). - if _conf.getboolean('enable', default=False): - _log.info('Adding ALBSecurityStore') + # such that no keys are available (except tdp_core keys). + if _conf.get("enable", False): + _log.info("Adding ALBSecurityStore") # Check if the url is set first - cookie_name = _conf.get('cookie_name') - signout_url = _conf.get('signout_url') + cookie_name = _conf.get("cookie_name") + signout_url = _conf.get("signout_url") # TODO: Validation of (optional) configuration? return ALBSecurityStore(cookie_name, signout_url) diff --git a/tdp_core/security/store/base_store.py b/tdp_core/security/store/base_store.py new file mode 100644 index 000000000..8022b436a --- /dev/null +++ b/tdp_core/security/store/base_store.py @@ -0,0 +1,20 @@ +from typing import Union +from fastapi import Request +from ..model import LogoutReturnValue, User + + +class BaseStore(object): + def __init__(self): + pass + + def init_app(self, app): + return None + + def load_from_request(self, request: Request) -> User: + return None + + def login(self, username, extra_fields={}) -> User: + return None + + def logout(self, user) -> Union[LogoutReturnValue, None]: + pass diff --git a/tdp_core/security/store/dummy_store.py b/tdp_core/security/store/dummy_store.py new file mode 100644 index 000000000..d3a860b73 --- /dev/null +++ b/tdp_core/security/store/dummy_store.py @@ -0,0 +1,83 @@ +from fastapi import Request +from ..model import User +import hashlib +import logging +from ...settings import get_global_settings +from .base_store import BaseStore + +_log = logging.getLogger(__name__) + + +def hash_password(password, salt): + return hashlib.sha512((password + salt).encode("utf-8")).hexdigest() + + +class DummyUser(User): + password: str + salt: str + + def is_password(self, given): + given_h = hash_password(given, self.salt) + return given_h == self.password + + +def from_env_var(k, v): + elems = v.split(";") + name = k[12:] # PHOVEA_USER_ + salt = elems[0] + password = elems[1] + roles = elems[2:] + return DummyUser(id=name, name=name, roles=roles, password=password, salt=salt) + + +class DummyStore(BaseStore): + def __init__(self): + import os + + # define users via env variables + env_users = [from_env_var(k, v) for k, v in os.environ.items() if k.startswith("PHOVEA_USER_")] + if env_users: + self._users = env_users + else: + self._users = [ + DummyUser( + id=v["name"], + name=v["name"], + roles=v["roles"], + password=v["password"], + salt=v["salt"], + ) + for v in get_global_settings().tdp_core.users + ] + + def load_from_request(self, request: Request): + api_key = request.headers.get("Authorization") + if api_key: + api_key = api_key.replace("Basic ", "", 1) + try: + import base64 + + api_key = base64.b64decode(api_key) + except Exception: + pass + parts = api_key.split(":") + if len(parts) != 2: + return None + return next( + (u for u in self._users if u.id == parts[0] and u.is_password(parts[1])), + None, + ) + + def login(self, username, extra_fields={}): + return next( + (u for u in self._users if u.id == username and u.is_password(extra_fields["password"])), + None, + ) + + def logout(self, user): + pass + + +def create(): + _log.info("Creating dummy store") + return DummyStore() diff --git a/tdp_core/security/store/jwt_store.py b/tdp_core/security/store/jwt_store.py new file mode 100644 index 000000000..f684deda0 --- /dev/null +++ b/tdp_core/security/store/jwt_store.py @@ -0,0 +1,56 @@ +from fastapi import Request +from fastapi.security.utils import get_authorization_scheme_param +import logging + +from tdp_core.security.model import LogoutReturnValue +from .base_store import BaseStore +from ..model import User +from ..constants import SECRET_KEY, ALGORITHM +import jwt + +_log = logging.getLogger(__name__) + + +# TODO: Use schema to allow auto-doc of endpoint +# from fastapi.security import OAuth2PasswordBearer +# oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + + +def get_user_from_token(token: str) -> User: + # TODO: Verify signature should be enabled + payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM], options={"verify_signature": False}) + username: str = payload.get("sub") + if username is None: + return None + return User(id=username, name=username, roles=payload.get("roles", [])) + + +class JWTStore(BaseStore): + def __init__(self): + pass + + def load_from_request(self, request: Request): + # Load from Authorization header + scheme, token = get_authorization_scheme_param(request.headers.get("Authorization")) + if token and scheme.lower() == "bearer": + user = get_user_from_token(token) + if user: + return user + + # Load from cookie + token_from_cookie = request.cookies.get("dv_jwt") + if token_from_cookie: + return get_user_from_token(token_from_cookie) + + return None + + def login(self, username, extra_fields={}): + return None + + def logout(self, user): + return LogoutReturnValue(cookies=[{"key": "dv_jwt", "value": "", "expires": -1}]) + + +def create(): + _log.info("Creating JWT store") + return JWTStore() diff --git a/tdp_core/server/__init__.py b/tdp_core/server/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tdp_core/server/cmd.py b/tdp_core/server/cmd.py new file mode 100644 index 000000000..ce34627f2 --- /dev/null +++ b/tdp_core/server/cmd.py @@ -0,0 +1,53 @@ +from typing import Callable, Union +from ..plugin.registry import list_plugins +import logging +import shlex + +_log = logging.getLogger(__name__) + + +def parse_command_string(cmd: Union[str, None]) -> Union[Callable, None]: + """ + Parses an application command. + Example using environment variables: + ``` + START_CMD='dbmigration list' uvicorn ... + ``` + The last argument (e.g., `dbmigration`) is the command that must be registered as extension in the __init__.py and points to an execution file. + Example: + ```py + registry.append('command', 'dbmigration', 'tdp_core.dbmigration.manager', {}) + ``` + The example registers the dbmigration command that runs the `create()` factory method from the tdp_core.dbmigration.manager.py. + """ + # If we receive no command, just return None + if not cmd: + return None + + import argparse + + parser = argparse.ArgumentParser(description='Visyn Server') + + # create a subparser, with the first argument being the command id + subparsers = parser.add_subparsers(dest='cmd') + + for command in list_plugins('command'): + _log.info(f"Received an alternative starting command: {command.id}") + + # create a argument parser for this specific command + cmdparser = subparsers.add_parser(command.id) + + # use the phovea extension point loading mechanism. + # pass the parser as argument to the factory method so that the extension point (i.e., command) + # can add further arguments to the parser (e.g., the address or port of the server). + # the factory must return a launcher function, which gets the previously defined parser arguments as parameter. + instance = command.load().factory(cmdparser) + + # register the instance as argument `launcher` and the command as `launcherid` to the command parser + cmdparser.set_defaults(launcher=instance, launcherid=command.id) + + # Parse the arguments from the start command to an array + args = parser.parse_args(shlex.split(cmd)) + + # Call the launcher function, which returns another function + return args.launcher(args) diff --git a/tdp_core/server/main.py b/tdp_core/server/main.py new file mode 100644 index 000000000..73bba2d84 --- /dev/null +++ b/tdp_core/server/main.py @@ -0,0 +1,3 @@ +from .visyn_server import create_visyn_server + +app = create_visyn_server() diff --git a/tdp_core/server/mainapp.py b/tdp_core/server/mainapp.py new file mode 100644 index 000000000..726f3eec2 --- /dev/null +++ b/tdp_core/server/mainapp.py @@ -0,0 +1,154 @@ +from flask import send_from_directory, safe_join, Flask +from builtins import next +import os +import re +from ..settings import get_global_settings + + +import logging + +_log = logging.getLogger(__name__) + + +black_list = re.compile(r"(.*\.(py|pyc|gitignore|gitattributes)|(\w+)/((config|package)\.json|_deploy/.*))") +public_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "public")) + + +def _is_on_black_list(path): + # print 'check',path,black_list.match(path) is not None + return black_list.match(path) is not None + + +def _deliver_production(path): + # print path + if path.endswith("/"): + path += "index.html" + if _is_on_black_list(path): + return "This page does not exist", 404 + # serve public + return send_from_directory(public_dir, path) + + +def _deliver(path): + # print path + if path.endswith("/"): + path += "index.html" + if _is_on_black_list(path): + return "This page does not exist", 404 + + # serve public + if os.path.exists(safe_join(public_dir, path)): + return send_from_directory(public_dir, path) + + # check all plugins + elems = path.split("/") + if len(elems) > 0: + plugin_id = elems[0] + elems[0] = "build" + from ..plugin.registry import get_registry + + plugin = next((p for p in get_registry().plugins if p.id == plugin_id), None) + if plugin: + dpath = safe_join(plugin.folder, "/".join(elems)) + if os.path.exists(dpath): + # send_static_file will guess the correct MIME type + # print 'sending',dpath + return send_from_directory(plugin.folder, "/".join(elems)) + + return "This page does not exist", 404 + + +def _generate_index(): + text = [ + """ + + Caleydo Web Apps + + +
+

Caleydo Web Apps

+
+ + + """ + ) + return "\n".join(text) + + +def build_info(): + from codecs import open + from ..plugin.registry import get_registry + + dependencies = [] + all_plugins = [] + build_info = dict(plugins=all_plugins, dependencies=dependencies) + + requirements = "requirements.txt" + if os.path.exists(requirements): + with open(requirements, "r", encoding="utf-8") as f: + dependencies.extend([l.strip() for l in f.readlines()]) + + for p in get_registry().plugins: + if p.id == "tdp_core": + build_info["name"] = p.name + build_info["version"] = p.version + build_info["resolved"] = p.resolved + else: + desc = dict(name=p.name, version=p.version, resolved=p.resolved) + all_plugins.append(desc) + + return build_info + + +# health check for docker-compose, kubernetes +def health(): + return "ok", 200 + + +def create(): + # check initialization + app = Flask(__name__) + if get_global_settings().is_development_mode: + app.add_url_rule("/", "index", _generate_index) + app.add_url_rule("/index.html", "index", _generate_index) + app.add_url_rule("/", "deliver", _deliver) + else: + app.add_url_rule("/", "deliver", _deliver_production) + return app diff --git a/tdp_core/server/public/500.html b/tdp_core/server/public/500.html new file mode 100644 index 000000000..4bf8caefe --- /dev/null +++ b/tdp_core/server/public/500.html @@ -0,0 +1,24 @@ + + + + + Caleydo Web - Error 500 + + + + +
+
+

Caleydo

+
+
+

Error 500

+

Something bad happened.

+
+ +
+ + diff --git a/tdp_core/server/public/assets/caleydo_c.svg b/tdp_core/server/public/assets/caleydo_c.svg new file mode 100644 index 000000000..e1b821b09 --- /dev/null +++ b/tdp_core/server/public/assets/caleydo_c.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/tdp_core/server/public/assets/caleydo_text_right.svg b/tdp_core/server/public/assets/caleydo_text_right.svg new file mode 100644 index 000000000..23b8e5827 --- /dev/null +++ b/tdp_core/server/public/assets/caleydo_text_right.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/tdp_core/server/public/assets/icon_arrow_right.svg b/tdp_core/server/public/assets/icon_arrow_right.svg new file mode 100644 index 000000000..80253e900 --- /dev/null +++ b/tdp_core/server/public/assets/icon_arrow_right.svg @@ -0,0 +1,59 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tdp_core/server/public/assets/icon_github.svg b/tdp_core/server/public/assets/icon_github.svg new file mode 100644 index 000000000..ed10a6944 --- /dev/null +++ b/tdp_core/server/public/assets/icon_github.svg @@ -0,0 +1,4 @@ + + + + diff --git a/tdp_core/server/public/assets/icon_home.svg b/tdp_core/server/public/assets/icon_home.svg new file mode 100644 index 000000000..3dd1ab977 --- /dev/null +++ b/tdp_core/server/public/assets/icon_home.svg @@ -0,0 +1,16 @@ + + + + + + image/svg+xml + + + + + + + + + + \ No newline at end of file diff --git a/tdp_core/server/public/assets/list.min.js b/tdp_core/server/public/assets/list.min.js new file mode 100644 index 000000000..9d9325bef --- /dev/null +++ b/tdp_core/server/public/assets/list.min.js @@ -0,0 +1,5 @@ +/* +List.js 1.2.0 +By Jonny Strömberg (www.jonnystromberg.com, www.listjs.com) +*/ +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gb;b++)a.push(r.items[b].values());return a},this.add=function(a,b){if(0!==a.length){if(b)return void t(a,b);var c=[],e=!1;a[0]===d&&(a=[a]);for(var f=0,g=a.length;g>f;f++){var h=null;e=r.items.length>r.page,h=new s(a[f],d,e),r.items.push(h),c.push(h)}return r.update(),c}},this.show=function(a,b){return this.i=a,this.page=b,r.update(),r},this.remove=function(a,b,c){for(var d=0,e=0,f=r.items.length;f>e;e++)r.items[e].values()[a]==b&&(r.templater.remove(r.items[e],c),r.items.splice(e,1),f--,e--,d++);return r.update(),d},this.get=function(a,b){for(var c=[],d=0,e=r.items.length;e>d;d++){var f=r.items[d];f.values()[a]==b&&c.push(f)}return c},this.size=function(){return r.items.length},this.clear=function(){return r.templater.clear(),r.items=[],r},this.on=function(a,b){return r.handlers[a].push(b),r},this.off=function(a,b){var c=r.handlers[a],d=h(c,b);return d>-1&&c.splice(d,1),r},this.trigger=function(a){for(var b=r.handlers[a].length;b--;)r.handlers[a][b](r);return r},this.reset={filter:function(){for(var a=r.items,b=a.length;b--;)a[b].filtered=!1;return r},search:function(){for(var a=r.items,b=a.length;b--;)a[b].found=!1;return r}},this.update=function(){var a=r.items,b=a.length;r.visibleItems=[],r.matchingItems=[],r.templater.clear();for(var c=0;b>c;c++)a[c].matching()&&r.matchingItems.length+1>=r.i&&r.visibleItems.length0?setTimeout(function(){b(c,d,e)},1):(a.update(),d(e))};return b}},{}],3:[function(a,b,c){b.exports=function(a){return a.handlers.filterStart=a.handlers.filterStart||[],a.handlers.filterComplete=a.handlers.filterComplete||[],function(b){if(a.trigger("filterStart"),a.i=1,a.reset.filter(),void 0===b)a.filtered=!1;else{a.filtered=!0;for(var c=a.items,d=0,e=c.length;e>d;d++){var f=c[d];b(f)?f.filtered=!0:f.filtered=!1}}return a.update(),a.trigger("filterComplete"),a.visibleItems}}},{}],4:[function(a,b,c){b.exports=function(a){return function(b,c,d){var e=this;this._values={},this.found=!1,this.filtered=!1;var f=function(b,c,d){if(void 0===c)d?e.values(b,d):e.values(b);else{e.elm=c;var f=a.templater.get(e,b);e.values(f)}};this.values=function(b,c){if(void 0===b)return e._values;for(var d in b)e._values[d]=b[d];c!==!0&&a.templater.set(e,e.values())},this.show=function(){a.templater.show(e)},this.hide=function(){a.templater.hide(e)},this.matching=function(){return a.filtered&&a.searched&&e.found&&e.filtered||a.filtered&&!a.searched&&e.filtered||!a.filtered&&a.searched&&e.found||!a.filtered&&!a.searched},this.visible=function(){return!(!e.elm||e.elm.parentNode!=a.list)},f(b,c,d)}}},{}],5:[function(a,b,c){b.exports=function(b){var c=a("./item")(b),d=function(a){for(var b=a.childNodes,c=[],d=0,e=b.length;e>d;d++)void 0===b[d].data&&c.push(b[d]);return c},e=function(a,d){for(var e=0,f=a.length;f>e;e++)b.items.push(new c(d,a[e]))},f=function(a,c){var d=a.splice(0,50);e(d,c),a.length>0?setTimeout(function(){f(a,c)},1):(b.update(),b.trigger("parseComplete"))};return b.handlers.parseComplete=b.handlers.parseComplete||[],function(){var a=d(b.list),c=b.valueNames;b.indexAsync?f(a,c):e(a,c)}}},{"./item":4}],6:[function(a,b,c){b.exports=function(a){var b,c,d,e,f={resetList:function(){a.i=1,a.templater.clear(),e=void 0},setOptions:function(a){2==a.length&&a[1]instanceof Array?c=a[1]:2==a.length&&"function"==typeof a[1]?e=a[1]:3==a.length&&(c=a[1],e=a[2])},setColumns:function(){0!==a.items.length&&void 0===c&&(c=void 0===a.searchColumns?f.toArray(a.items[0].values()):a.searchColumns)},setSearchString:function(b){b=a.utils.toString(b).toLowerCase(),b=b.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),d=b},toArray:function(a){var b=[];for(var c in a)b.push(c);return b}},g={list:function(){for(var b=0,c=a.items.length;c>b;b++)g.item(a.items[b])},item:function(a){a.found=!1;for(var b=0,d=c.length;d>b;b++)if(g.values(a.values(),c[b]))return void(a.found=!0)},values:function(c,e){return!!(c.hasOwnProperty(e)&&(b=a.utils.toString(c[e]).toLowerCase(),""!==d&&b.search(d)>-1))},reset:function(){a.reset.search(),a.searched=!1}},h=function(b){return a.trigger("searchStart"),f.resetList(),f.setSearchString(b),f.setOptions(arguments),f.setColumns(),""===d?g.reset():(a.searched=!0,e?e(d,c):g.list()),a.update(),a.trigger("searchComplete"),a.visibleItems};return a.handlers.searchStart=a.handlers.searchStart||[],a.handlers.searchComplete=a.handlers.searchComplete||[],a.utils.events.bind(a.utils.getByClass(a.listContainer,a.searchClass),"keyup",function(b){var c=b.target||b.srcElement,d=""===c.value&&!a.searched;d||h(c.value)}),a.utils.events.bind(a.utils.getByClass(a.listContainer,a.searchClass),"input",function(a){var b=a.target||a.srcElement;""===b.value&&h("")}),h}},{}],7:[function(a,b,c){b.exports=function(a){a.sortFunction=a.sortFunction||function(b,c,d){return d.desc="desc"==d.order,a.utils.naturalSort(b.values()[d.valueName],c.values()[d.valueName],d)};var b={els:void 0,clear:function(){for(var c=0,d=b.els.length;d>c;c++)a.utils.classes(b.els[c]).remove("asc"),a.utils.classes(b.els[c]).remove("desc")},getOrder:function(b){var c=a.utils.getAttribute(b,"data-order");return"asc"==c||"desc"==c?c:a.utils.classes(b).has("desc")?"asc":a.utils.classes(b).has("asc")?"desc":"asc"},getInSensitive:function(b,c){var d=a.utils.getAttribute(b,"data-insensitive");"false"===d?c.insensitive=!1:c.insensitive=!0},setOrder:function(c){for(var d=0,e=b.els.length;e>d;d++){var f=b.els[d];if(a.utils.getAttribute(f,"data-sort")===c.valueName){var g=a.utils.getAttribute(f,"data-order");"asc"==g||"desc"==g?g==c.order&&a.utils.classes(f).add(c.order):a.utils.classes(f).add(c.order)}}}},c=function(){a.trigger("sortStart");var c={},d=arguments[0].currentTarget||arguments[0].srcElement||void 0;d?(c.valueName=a.utils.getAttribute(d,"data-sort"),b.getInSensitive(d,c),c.order=b.getOrder(d)):(c=arguments[1]||c,c.valueName=arguments[0],c.order=c.order||"asc",c.insensitive="undefined"==typeof c.insensitive?!0:c.insensitive),b.clear(),b.setOrder(c),c.sortFunction=c.sortFunction||a.sortFunction,a.items.sort(function(a,b){var d="desc"===c.order?-1:1;return c.sortFunction(a,b,c)*d}),a.update(),a.trigger("sortComplete")};return a.handlers.sortStart=a.handlers.sortStart||[],a.handlers.sortComplete=a.handlers.sortComplete||[],b.els=a.utils.getByClass(a.listContainer,a.sortClass),a.utils.events.bind(b.els,"click",c),a.on("searchStart",b.clear),a.on("filterStart",b.clear),c}},{}],8:[function(a,b,c){var d=function(a){var b,c=this,d=function(){b=c.getItemSource(a.item),b=c.clearSourceItem(b,a.valueNames)};this.clearSourceItem=function(b,c){for(var d=0,e=c.length;e>d;d++){var f;if(c[d].data)for(var g=0,h=c[d].data.length;h>g;g++)b.setAttribute("data-"+c[d].data[g],"");else c[d].attr&&c[d].name?(f=a.utils.getByClass(b,c[d].name,!0),f&&f.setAttribute(c[d].attr,"")):(f=a.utils.getByClass(b,c[d],!0),f&&(f.innerHTML=""));f=void 0}return b},this.getItemSource=function(b){if(void 0===b){for(var c=a.list.childNodes,d=0,e=c.length;e>d;d++)if(void 0===c[d].data)return c[d].cloneNode(!0)}else{if(/^tr[\s>]/.exec(b)){var f=document.createElement("table");return f.innerHTML=b,f.firstChild}if(-1!==b.indexOf("<")){var g=document.createElement("div");return g.innerHTML=b,g.firstChild}var h=document.getElementById(a.item);if(h)return h}throw new Error("The list need to have at list one item on init otherwise you'll have to add a template.")},this.get=function(b,d){c.create(b);for(var e={},f=0,g=d.length;g>f;f++){var h;if(d[f].data)for(var i=0,j=d[f].data.length;j>i;i++)e[d[f].data[i]]=a.utils.getAttribute(b.elm,"data-"+d[f].data[i]);else d[f].attr&&d[f].name?(h=a.utils.getByClass(b.elm,d[f].name,!0),e[d[f].name]=h?a.utils.getAttribute(h,d[f].attr):""):(h=a.utils.getByClass(b.elm,d[f],!0),e[d[f]]=h?h.innerHTML:"");h=void 0}return e},this.set=function(b,d){var e=function(b){for(var c=0,d=a.valueNames.length;d>c;c++)if(a.valueNames[c].data){for(var e=a.valueNames[c].data,f=0,g=e.length;g>f;f++)if(e[f]===b)return{data:b}}else{if(a.valueNames[c].attr&&a.valueNames[c].name&&a.valueNames[c].name==b)return a.valueNames[c];if(a.valueNames[c]===b)return b}},f=function(c,d){var f,g=e(c);g&&(g.data?b.elm.setAttribute("data-"+g.data,d):g.attr&&g.name?(f=a.utils.getByClass(b.elm,g.name,!0),f&&f.setAttribute(g.attr,d)):(f=a.utils.getByClass(b.elm,g,!0),f&&(f.innerHTML=d)),f=void 0)};if(!c.create(b))for(var g in d)d.hasOwnProperty(g)&&f(g,d[g])},this.create=function(a){if(void 0!==a.elm)return!1;var d=b.cloneNode(!0);return d.removeAttribute("id"),a.elm=d,c.set(a,a.values()),!0},this.remove=function(b){b.elm.parentNode===a.list&&a.list.removeChild(b.elm)},this.show=function(b){c.create(b),a.list.appendChild(b.elm)},this.hide=function(b){void 0!==b.elm&&b.elm.parentNode===a.list&&a.list.removeChild(b.elm)},this.clear=function(){if(a.list.hasChildNodes())for(;a.list.childNodes.length>=1;)a.list.removeChild(a.list.firstChild)},d()};b.exports=function(a){return new d(a)}},{}],9:[function(a,b,c){function d(a){if(!a||!a.nodeType)throw new Error("A DOM element reference is required");this.el=a,this.list=a.classList}var e=a("./index-of"),f=/\s+/,g=Object.prototype.toString;b.exports=function(a){return new d(a)},d.prototype.add=function(a){if(this.list)return this.list.add(a),this;var b=this.array(),c=e(b,a);return~c||b.push(a),this.el.className=b.join(" "),this},d.prototype.remove=function(a){if("[object RegExp]"==g.call(a))return this.removeMatching(a);if(this.list)return this.list.remove(a),this;var b=this.array(),c=e(b,a);return~c&&b.splice(c,1),this.el.className=b.join(" "),this},d.prototype.removeMatching=function(a){for(var b=this.array(),c=0;cf;f++)void 0!==b[f]&&b[f].nodeName===b&&(c=b[f].nodeValue);return c}},{}],13:[function(a,b,c){b.exports=function(){return document.getElementsByClassName?function(a,b,c){return c?a.getElementsByClassName(b)[0]:a.getElementsByClassName(b)}:document.querySelector?function(a,b,c){return b="."+b,c?a.querySelector(b):a.querySelectorAll(b)}:function(a,b,c){var d=[],e="*";null===a&&(a=document);for(var f=a.getElementsByTagName(e),g=f.length,h=new RegExp("(^|\\s)"+b+"(\\s|$)"),i=0,j=0;g>i;i++)if(h.test(f[i].className)){if(c)return f[i];d[j]=f[i],j++}return d}}()},{}],14:[function(a,b,c){var d=[].indexOf;b.exports=function(a,b){if(d)return a.indexOf(b);for(var c=0;cr)return-1;if(r>s)return 1}for(var u=0,v=p.length,w=q.length,x=Math.max(v,w);x>u;u++){if(d=t(p[u]||"",v),e=t(q[u]||"",w),isNaN(d)!==isNaN(e))return isNaN(d)?1:-1;if(/[^\x00-\x80]/.test(d+e)&&d.localeCompare){var y=d.localeCompare(e);return y/Math.abs(y)}if(e>d)return-1;if(d>e)return 1}return 0}},{}],16:[function(a,b,c){function d(a){return"[object Array]"===Object.prototype.toString.call(a)}b.exports=function(a){if("undefined"==typeof a)return[];if(null===a)return[null];if(a===window)return[window];if("string"==typeof a)return[a];if(d(a))return a;if("number"!=typeof a.length)return[a];if("function"==typeof a&&a instanceof Function)return[a];for(var b=[],c=0;c 1 && + appsList.visibleItems.filter(function(item) { return item.elm === selectedItem; }).length === 0) { + + appsList.items.map(function(item) { + removeClass(item.elm, className); + }); + selectedItem = appsList.visibleItems[0].elm; + addClass(selectedItem, className); + } + + if(keynum === ENTER && selectedItem !== null) { + //console.log(selectedItem.getAttribute('href')); + window.location.href = selectedItem.firstElementChild.getAttribute('href'); + } + }; + + // move active/selected element in list up or down + search.onkeydown = function(e) { + var keynum = getKey(e); + var selectedParent = null; + + // do nothing, if nothing is slected + if(selectedItem === null) { + return true; + } + + switch(keynum) { + case UP: + removeClass(selectedItem, className); + // use previous list element or last element, if at the end + selectedParent = selectedItem.previousElementSibling || selectedItem.parentNode.lastElementChild; + selectedItem = selectedParent; + addClass(selectedItem, className); + //selectedItem.scrollIntoView(true); + return false; + break; + + case DOWN: + removeClass(selectedItem, className); + // use next list element or first element, if at the end + selectedParent = selectedItem.nextElementSibling || selectedItem.parentNode.firstElementChild; + selectedItem = selectedParent; + addClass(selectedItem, className); + //selectedItem.scrollIntoView(true); + return false; + break; + } + }; + + search.onblur = function() { + if(selectedItem === null) { + return true; + } + removeClass(selectedItem, className); + return false; + }; + + search.onfocus = function() { + if(selectedItem === null) { + return true; + } + addClass(selectedItem, className); + selectedItem.scrollIntoView(true); + return false; + }; + + // focus by default + search.focus(); + + +}); diff --git a/tdp_core/server/public/favicon.png b/tdp_core/server/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..dd36c775a1589643ee4a82bff4d075c6de7cb3c3 GIT binary patch literal 9228 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 Request: + return _request_ctx_var.get() + + +class RequestContextMiddleware(BaseHTTPMiddleware): + async def dispatch(self, request: Request, call_next: RequestResponseEndpoint): + request_ctx_key = _request_ctx_var.set(request) + response = await call_next(request) + _request_ctx_var.reset(request_ctx_key) + return response diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py new file mode 100644 index 000000000..6d820a4e7 --- /dev/null +++ b/tdp_core/server/utils.py @@ -0,0 +1,60 @@ +import json +import logging +from ..settings import get_global_settings +import time + +_log = logging.getLogger(__name__) + + +def init_legacy_app(app): + """ + initializes an application by setting common properties and options + :param app: + :param is_default_app: + :return: + """ + if hasattr(app, "got_first_request") and app.got_first_request: + _log.warn("already inited: " + str(app)) + return + + if hasattr(app, 'debug'): + app.debug = get_global_settings().is_development_mode + + if get_global_settings().tdp_core: + app.config['SECRET_KEY'] = get_global_settings().secret_key + + @app.errorhandler(500) + def handle_exception(e): + """Return JSON instead of HTML for HTTP errors.""" + # start with the correct headers and status code from the error + response = e.get_response() + # replace the body with JSON + response.data = json.dumps({ + "status_code": e.code, + "name": e.name, + "detail": e.description, + }) + response.content_type = "application/json" + return response + + return app + + +def load_after_server_started_hooks(): + """ + Load and run all `after_server_started` extension points. + The factory method of an extension implementing this extension point should return a function which is then executed here + """ + from ..plugin.registry import list_plugins + _log = logging.getLogger(__name__) + + start = time.time() + + after_server_started_hooks = [p.load().factory() for p in list_plugins("after_server_started")] + + _log.info(f"Found {len(after_server_started_hooks)} `after_server_started` extension points to run") + + for hook in after_server_started_hooks: + hook() + + _log.info("Elapsed time for server startup hooks: %d seconds", time.time() - start) diff --git a/tdp_core/server/visyn_server.py b/tdp_core/server/visyn_server.py new file mode 100644 index 000000000..8f0f0613e --- /dev/null +++ b/tdp_core/server/visyn_server.py @@ -0,0 +1,101 @@ +import threading +from fastapi import FastAPI +from fastapi.middleware.wsgi import WSGIMiddleware +import logging +from pydantic import create_model +from pydantic.utils import deep_update +from .request_context import RequestContextMiddleware +import time +import sys + + +def create_visyn_server(*, fast_api_args: dict = {}) -> FastAPI: + from ..settings import model as settings_model, get_global_settings + from ..settings.utils import load_workspace_config + + + # Load the workspace config.json and initialize the global settings + workspace_config = load_workspace_config() + settings_model.__global_settings = settings_model.GlobalSettings(**workspace_config) + logging.config.dictConfig(get_global_settings().tdp_core.logging) + logging.info('Workspace settings successfully loaded') + + # Load the initial plugins + from ..plugin.parser import load_all_plugins, get_config_from_plugins + plugins = load_all_plugins() + # With all the plugins, load the corresponding configuration files and create a new model based on the global settings, with all plugin models as sub-models + [plugin_config_files, plugin_config_models] = get_config_from_plugins(plugins) + visyn_server_settings = create_model('VisynServerSettings', __base__=settings_model.GlobalSettings, **plugin_config_models) + # Patch the global settings by instantiating the new settings model with the global config, all config.json(s), and pydantic models + settings_model.__global_settings = visyn_server_settings(**deep_update(*plugin_config_files, workspace_config)) + logging.info('All settings successfully loaded') + + # Finally, initialize the registry as the config is now up-to-date + from ..plugin import registry + registry.__registry = registry.Registry(plugins) + logging.info('Plugin registry successfully initialized') + + # Allow custom command routine (i.e. for db-migrations) + from .cmd import parse_command_string + alternative_start_command = parse_command_string(get_global_settings().start_cmd) + if alternative_start_command: + logging.info(f"Received start command: {get_global_settings().start_cmd}") + alternative_start_command() + logging.info('Successfully executed command, exiting server...') + # TODO: How to properly exit here? Should a command support the "continuation" of the server, i.e. by returning True? + sys.exit(0) + + # Initialize global managers. TODO: Should we do that by loading all singletons in the registry? + from ..dbmigration.manager import get_db_migration_manager + get_db_migration_manager() + + app = FastAPI( + # TODO: Remove debug + debug=get_global_settings().is_development_mode, + title="Visyn Server", + # TODO: Extract version from package.json + version="1.0.0", + docs_url="/api/docs", + openapi_url="/api/openapi.json", + redoc_url="/api/redoc", + **fast_api_args + ) + # Add middleware to access Request "outside" + app.add_middleware(RequestContextMiddleware) + + # TODO: Check mainapp.py what it does and transfer them here. Currently, we cannot mount a flask app at root, such that the flask app is now mounted at /app/ + from .mainapp import build_info, health + app.add_api_route('/health', health) + app.add_api_route('/buildInfo.json', build_info) + + # Load all namespace plugins as WSGIMiddleware plugins + from ..plugin.registry import list_plugins + from .utils import init_legacy_app, load_after_server_started_hooks + namespace_plugins = list_plugins("namespace") + logging.info(f"Registering {len(namespace_plugins)} legacy namespaces via WSGIMiddleware") + for p in namespace_plugins: + logging.info(f"Registering legacy namespace: {p.namespace}") + app.mount(p.namespace, WSGIMiddleware(init_legacy_app(p.load().factory()))) + + # Load all FastAPI apis + router_plugins = list_plugins("fastapi_router") + logging.info(f"Registering {len(router_plugins)} API-routers") + # Load all namespace plugins as WSGIMiddleware plugins + for p in router_plugins: + logging.info(f"Registering router: {p.id}") + app.include_router(p.load().factory()) + + # load `after_server_started` extension points which are run immediately after server started, + # so all plugins should have been loaded at this point of time + # the hooks are run in a separate (single) thread to not block the main execution of the server + # TODO: Use FastAPI mechanism for that + t = threading.Thread(target=load_after_server_started_hooks) + t.setDaemon(True) + t.start() + + # Initialize the login routes + from ..security.manager import security_manager + + security_manager().init_app(app) + + return app diff --git a/tdp_core/settings/README.md b/tdp_core/settings/README.md new file mode 100644 index 000000000..29e82f8cf --- /dev/null +++ b/tdp_core/settings/README.md @@ -0,0 +1,2 @@ +# Settings + diff --git a/tdp_core/settings/__init__.py b/tdp_core/settings/__init__.py new file mode 100644 index 000000000..100495c21 --- /dev/null +++ b/tdp_core/settings/__init__.py @@ -0,0 +1 @@ +from .model import get_global_settings, GlobalSettings diff --git a/tdp_core/settings/model.py b/tdp_core/settings/model.py new file mode 100644 index 000000000..afc98605c --- /dev/null +++ b/tdp_core/settings/model.py @@ -0,0 +1,157 @@ +from pydantic import BaseModel, BaseSettings, Field, Extra +from typing import Dict, Any, List, Literal, Optional, Union +import logging + + +_log = logging.getLogger(__name__) + + +class DBMigrationSettings(BaseModel): + autoUpgrade: bool = True + + +class MatomoSettings(BaseModel): + url: str = "" + site: str = "1" + encryptUserName: bool = False + + +class MongoSettings(BaseModel): + host: str = "mongo" + port: int = 27017 + db_graph: str = "graph" + db_namedsets: str = "targid" + + +class DisableSettings(BaseModel): + plugins: List[str] = [] + extensions: List[str] = [] + + +class VisynServerSettings(BaseModel): + disable: DisableSettings = DisableSettings() + + # TODO: Proper typing. This is 1:1 passed to the logging.config.dictConfig(...). + logging: Dict = Field( + { + "version": 1, + "formatters": { + "simple": { + "format": "%(asctime)s %(levelname)s %(name)s: %(message)s", + "datefmt": "%H:%M:%S", + }, + "line": {"format": "%(asctime)s %(levelname)s %(name)s(%(pathname)s:%(lineno)s): %(message)s"}, + }, + "handlers": { + "console": { + "class": "logging.StreamHandler", + "formatter": "simple", + "stream": "ext://sys.stdout", + } + }, + "loggers": {"geventwebsocket.handler": {"level": "WARN", "handlers": ["console"]}}, + "root": {"level": "INFO", "handlers": ["console"]}, + } + ) + + # tdp_core + migrations: DBMigrationSettings = DBMigrationSettings() + + # phovea_security_flask + users: List[Dict[str, Any]] = Field( + [ + { + "name": "admin", + "salt": "dcf46ce914154a44b1557eba91c1f50d", + "password": "e464485eeeca97927191bd77e38137cc5870c53efb05c8ec027faa8d47f0c0ee23e733ea5e494cb045ca46b0f3b6f695b7261a34f46ba3797cde67724d78522a", + "roles": ["admin"], + }, + { + "name": "sam", + "salt": "2338b858597b4937ad1c5db4b524f56d", + "password": "814cbf874d3da7c01327b50c96bedf7db26357e0b4be25623242a33b33861651c3efd90d5c1a6410a646f356c73adf2de473611dee158672e8ee073767dc88f2", + "roles": ["sam", "admin"], + }, + ] + ) + alwaysAppendDummyStore: bool = Field(False) + security: Dict[str, Any] = Field( + { + "store": { + "alb_security_store": { + "enable": False, + "cookie_name": None, + "signout_url": None, + } + } + } + ) + + # tdp_matomo + matomo: MatomoSettings = MatomoSettings() + + # phovea_data_mongo + mongo: MongoSettings = MongoSettings() + + +class GlobalSettings(BaseSettings): + env: Literal['development', 'production'] + secret_key: str = Field("VERY_SECRET_STUFF_T0IB84wlQrdMH8RVT28w") + tdp_core: VisynServerSettings = VisynServerSettings() + start_cmd: Optional[str] = Field( + None, + title='Start command', + description='Optional start command for the server, i.e. db-migration exposes commands like `db-migration exec <..> upgrade head`.' + ) + + @property + def is_development_mode(self) -> bool: + return self.env.startswith("dev") + + def get_nested(self, key: str, default: Any = None) -> Union[Any, None]: + # TODO: Set deprecated + # TODO: Make sure that env is loaded here + keys = key.split(".") + plugin_id = keys[0] + dic = self.dict(include={plugin_id}) + for key in keys: + dic = dic.get(key, None) if dic else None + return dic if dic is not None else default + + class Config: + extra = Extra.allow + env_nested_delimiter = "__" + + +__global_settings: GlobalSettings = None + + +def get_global_settings() -> GlobalSettings: + global __global_settings + if __global_settings is None: + raise Exception("Global setting is not yet initialized!") + return __global_settings + + + +# def get_settings() -> Marketplace360Settings: + # return get_global_settings().marketplace360 + + +# # This happens in marketplace360/settings.py + +# class Marketplace360Settings(GlobalSettings): +# # Config.json equivalent +# very_import_setting: str = 'important' + + +# marketplace360_settings: Marketplace360Settings = Marketplace360Settings() + + +# # namespace /api/marketplace360 + + +# # marketplace360/api/project_api.py + +# # from ..settings import marketplace360_settings +# # marketplace360_settings.very_important_setting diff --git a/tdp_core/settings/router.py b/tdp_core/settings/router.py new file mode 100644 index 000000000..3bbf7f8cf --- /dev/null +++ b/tdp_core/settings/router.py @@ -0,0 +1,26 @@ +from . import get_global_settings +from ..plugin.registry import list_plugins +from ..security.dependencies import get_current_user +from fastapi import APIRouter, Depends, HTTPException + + +router = APIRouter(tags=["Configuration"], prefix="/api/tdp/config", dependencies=[Depends(get_current_user)]) + + +@router.get("/{path:path}") +def get_config_path(path: str): + path = path.split("/") + key = path[0] + + plugin = next((p for p in list_plugins("tdp-config-safe-keys") if p.id == key), None) + + if plugin is None: + raise HTTPException(status_code=404, detail=f'config key "{key}" not found') + + path[0] = plugin.configKey + + return get_global_settings().get_nested(".".join(path)) + + +def create(): + return router diff --git a/tdp_core/settings/utils.py b/tdp_core/settings/utils.py new file mode 100644 index 000000000..da28879d1 --- /dev/null +++ b/tdp_core/settings/utils.py @@ -0,0 +1,23 @@ +import os +from typing import Any, Dict +import jsoncfg +import codecs +import logging + +_log = logging.getLogger(__name__) + + +def load_workspace_config() -> Dict[str, Any]: + """ + Loads the global config.json placed at `PHOVEA_CONFIG_PATH` (defaults to `config.json`). + """ + global_ = os.path.abspath(os.environ.get("PHOVEA_CONFIG_PATH", "config.json")) + return load_config_file(global_) if os.path.exists(global_) else {} + + +def load_config_file(path: str) -> Dict[str, Any]: + """ + Opens any `*.json` file and loads it via `jsoncfg.loads`. + """ + with codecs.open(path, "r", "utf-8") as fi: + return jsoncfg.loads(fi.read()) diff --git a/tdp_core/sql.py b/tdp_core/sql.py index 8acc2f3b5..db80ac130 100644 --- a/tdp_core/sql.py +++ b/tdp_core/sql.py @@ -1,157 +1,158 @@ -from phovea_server.ns import Namespace, request, abort, no_cache +from .utils import no_cache from . import db from .utils import map_scores -from phovea_server.util import jsonify -from .security import tdp_login_required +from flask import jsonify, Flask, request, abort +from .security import login_required_for_dbviews from .formatter import formatter import logging from functools import wraps -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) -app = Namespace(__name__) +app = Flask(__name__) def _view_no_cache(func): - """ - wrap the function in no_cache if the view identified by view_name has the no_cache flag set - """ - @wraps(func) - def decorated_view(*args, **kwargs): - if kwargs.get('view_name', None) is not None and kwargs.get('database', None) is not None: - view_name, _ = formatter(kwargs['view_name']) - config, _, view = db.resolve_view(kwargs['database'], view_name) - if view.no_cache: - return no_cache(func)(*args, **kwargs) - return func(*args, **kwargs) - return decorated_view - - -@app.route('/') -@tdp_login_required + """ + wrap the function in no_cache if the view identified by view_name has the no_cache flag set + """ + + @wraps(func) + def decorated_view(*args, **kwargs): + if kwargs.get("view_name", None) is not None and kwargs.get("database", None) is not None: + view_name, _ = formatter(kwargs["view_name"]) + config, _, view = db.resolve_view(kwargs["database"], view_name) + if view.no_cache: + return no_cache(func)(*args, **kwargs) + return func(*args, **kwargs) + + return decorated_view + + +@app.route("/") +@login_required_for_dbviews def list_database(): - return jsonify([v.dump(k) for k, v in db.configs.connectors.items()]) + return jsonify([v.dump(k) for k, v in db.configs.connectors.items()]) -@app.route('//') -@tdp_login_required +@app.route("//") +@login_required_for_dbviews def list_view(database): - config_engine = db.resolve(database) - if not config_engine: - return abort(404, 'Not Found') - return jsonify([v.dump(k) for k, v in config_engine[0].views.items() if v.can_access()]) + config_engine = db.resolve(database) + if not config_engine: + return abort(404, "Not Found") + return jsonify([v.dump(k) for k, v in config_engine[0].views.items() if v.can_access()]) def _return_query(): - # return true if the key is given and the value doesn't start with 'f' -> no value, true, True, T - key = '_return_query' - if key not in request.values: - return False - v = request.values[key] - return not v or v.lower()[0] != 'f' + # return true if the key is given and the value doesn't start with 'f' -> no value, true, True, T + key = "_return_query" + if key not in request.values: + return False + v = request.values[key] + return not v or v.lower()[0] != "f" -@app.route('//', methods=['GET', 'POST']) -@app.route('///filter', methods=['GET', 'POST']) -@tdp_login_required +@app.route("//", methods=["GET", "POST"]) +@app.route("///filter", methods=["GET", "POST"]) +@login_required_for_dbviews @_view_no_cache def get_filtered_data(database, view_name): - """ - version of getting data in which the arguments starting with `filter_` are used to build a where clause - :param database: - :param view_name: - :return: - """ + """ + version of getting data in which the arguments starting with `filter_` are used to build a where clause + :param database: + :param view_name: + :return: + """ - view_name, format = formatter(view_name) + view_name, format = formatter(view_name) - if _return_query(): - return jsonify(db.get_filtered_query(database, view_name, request.values)) + if _return_query(): + return jsonify(db.get_filtered_query(database, view_name, request.values)) - r, view = db.get_filtered_data(database, view_name, request.values) + r, view = db.get_filtered_data(database, view_name, request.values) - return format(r) + return format(r) -@app.route('///score', methods=['GET', 'POST']) -@tdp_login_required +@app.route("///score", methods=["GET", "POST"]) +@login_required_for_dbviews @_view_no_cache def get_score_data(database, view_name): - """ - version of getting data like filter with additional mapping of score entries - :param database: - :param view_name: - :return: - """ - view_name, format = formatter(view_name) - if _return_query(): - return jsonify(db.get_filtered_query(database, view_name, request.values)) + """ + version of getting data like filter with additional mapping of score entries + :param database: + :param view_name: + :return: + """ + view_name, format = formatter(view_name) + if _return_query(): + return jsonify(db.get_filtered_query(database, view_name, request.values)) - r, view = db.get_filtered_data(database, view_name, request.values) + r, view = db.get_filtered_data(database, view_name, request.values) - data_idtype = view.idtype - target_idtype = request.values.get('target', data_idtype) + data_idtype = view.idtype + target_idtype = request.values.get("target", data_idtype) - if data_idtype != target_idtype: - mapped_scores = map_scores(r, data_idtype, target_idtype) - else: - mapped_scores = r + if data_idtype != target_idtype: + mapped_scores = map_scores(r, data_idtype, target_idtype) + else: + mapped_scores = r - return format(mapped_scores) + return format(mapped_scores) -@app.route('///count', methods=['GET', 'POST']) -@tdp_login_required +@app.route("///count", methods=["GET", "POST"]) +@login_required_for_dbviews @_view_no_cache def get_count_data(database, view_name): - """ - similar to the /filter clause but returns the count of results instead of the rows itself - :param database: - :param view_name: - :return: - """ - view_name, _ = formatter(view_name) - if _return_query(): - return jsonify(db.get_count_query(database, view_name, request.values)) + """ + similar to the /filter clause but returns the count of results instead of the rows itself + :param database: + :param view_name: + :return: + """ + view_name, _ = formatter(view_name) + if _return_query(): + return jsonify(db.get_count_query(database, view_name, request.values)) - r = db.get_count(database, view_name, request.values) + r = db.get_count(database, view_name, request.values) - return jsonify(r) + return jsonify(r) -@app.route('///desc') -@tdp_login_required +@app.route("///desc") +@login_required_for_dbviews @_view_no_cache def get_desc(database, view_name): - view_name, _ = formatter(view_name) - config, _, view = db.resolve_view(database, view_name) - return jsonify(view.dump(view_name)) + view_name, _ = formatter(view_name) + config, _, view = db.resolve_view(database, view_name) + return jsonify(view.dump(view_name)) -@app.route('///lookup', methods=['GET', 'POST']) -@tdp_login_required +@app.route("///lookup", methods=["GET", "POST"]) +@login_required_for_dbviews @_view_no_cache def lookup(database, view_name): - """ - Does the same job as search, but paginates the result set - This function is used in conjunction with Select2 form elements - """ - view_name, _ = formatter(view_name) - query = request.values.get('query', '').lower() - page = int(request.values.get('page', 0)) # zero based - limit = int(request.values.get('limit', 30)) # or 'all' + """ + Does the same job as search, but paginates the result set + This function is used in conjunction with Select2 form elements + """ + view_name, _ = formatter(view_name) + query = request.values.get("query", "").lower() + page = int(request.values.get("page", 0)) # zero based + limit = int(request.values.get("limit", 30)) # or 'all' - if _return_query(): - return db.lookup_query(database, view_name, query, page, limit, request.values) + if _return_query(): + return db.lookup_query(database, view_name, query, page, limit, request.values) - r_items, more, view = db.lookup(database, view_name, query, page, limit, request.values) + r_items, more, view = db.lookup(database, view_name, query, page, limit, request.values) - return jsonify(dict(items=r_items, more=more)) + return jsonify(dict(items=r_items, more=more)) def create(): - """ - entry point of this plugin - """ - app.debug = True - return app + """ + entry point of this plugin + """ + app.debug = True + return app diff --git a/tdp_core/sql_filter.py b/tdp_core/sql_filter.py index 794f4c3a9..8cb2cf8e6 100644 --- a/tdp_core/sql_filter.py +++ b/tdp_core/sql_filter.py @@ -1,193 +1,198 @@ import logging from werkzeug.datastructures import MultiDict +from .id_mapping.manager import get_mappingmanager _log = logging.getLogger(__name__) def _replace_named_sets_in_ids(v): - """ - replaces magic named sets references with their ids - :param v: - :return: - """ - from . import storage - - union = set() - - def add_namedset(vi): - # convert named sets to the primary ids - namedset_id = vi - namedset = storage.get_namedset_by_id(namedset_id) - ids = namedset['ids'] - for id in ids: - union.add(id) - - if isinstance(v, list): - for vi in v: - add_namedset(vi) - else: - add_namedset(v) - return list(union) + """ + replaces magic named sets references with their ids + :param v: + :return: + """ + from . import storage + + union = set() + + def add_namedset(vi): + # convert named sets to the primary ids + namedset_id = vi + namedset = storage.get_namedset_by_id(namedset_id) + ids = namedset["ids"] + for id in ids: + union.add(id) + + if isinstance(v, list): + for vi in v: + add_namedset(vi) + else: + add_namedset(v) + return list(union) def _replace_range_in_ids(v, id_type, target_id_type): - from phovea_server.dataset import get_mappingmanager - - mappingmanager = get_mappingmanager() - - union = set() - - def add_range(r): - # convert named sets to the primary ids - ids = r - if id_type != target_id_type: - # need to map the ids - mapped_ids = mappingmanager(id_type, target_id_type, ids) - for id in mapped_ids: - if id is not None and len(id) > 0: - union.add(id[0]) # just the first one for now + mappingmanager = get_mappingmanager() + + union = set() + + def add_range(r): + # convert named sets to the primary ids + ids = r + if id_type != target_id_type: + # need to map the ids + mapped_ids = mappingmanager(id_type, target_id_type, ids) + for id in mapped_ids: + if id is not None and len(id) > 0: + union.add(id[0]) # just the first one for now + else: + for id in ids: + union.add(id) + + if isinstance(v, list): + for vi in v: + add_range(vi) else: - for id in ids: - union.add(id) - - if isinstance(v, list): - for vi in v: - add_range(vi) - else: - add_range(v) - return list(union) + add_range(v) + return list(union) def filter_logic(view, args): - """ - parses the request arguments for filter - :param view: - :return: - """ - processed_args = MultiDict() - extra_args = dict() - where_clause = {} - for k, v in list(args.lists()): - if k.endswith('[]'): - k = k[:-2] - if k.startswith('filter_'): - where_clause[k[7:]] = v # remove filter_ - else: - processed_args.setlist(k, v) - - # handle special namedset4 filter types by resolve them and and the real ids as filter - for k, v in list(where_clause.items()): - if k.startswith('namedset4'): - del where_clause[k] # delete value - real_key = k[9:] # remove the namedset4 part - ids = _replace_named_sets_in_ids(v) - if real_key not in where_clause: - where_clause[real_key] = ids - else: - where_clause[real_key].extend(ids) - if k.startswith('rangeOf'): - del where_clause[k] # delete value - id_type_and_key = k[7:] - id_type = id_type_and_key[:id_type_and_key.index('4')] - real_key = id_type_and_key[id_type_and_key.index('4') + 1:] # remove the range4 part - ids = _replace_range_in_ids(v, id_type, view.idtype) - if real_key not in where_clause: - where_clause[real_key] = ids - else: - where_clause[real_key].extend(ids) - - def to_clause(k, v): - length = len(v) - kp = k.replace('.', '_') - if length == 1: # single value - operator = '=' - if kp.startswith('lt_'): - # keep the 'lt_' for kp to distinguish from the others ('lte_', 'gt_', 'gte_') in the created sub_query - k = k[3:] # remove the 'lt_' to use the right column name in the created sub_query - operator = '<' - if kp.startswith('lte_'): - # keep the 'lte_' for kp to distinguish from the others ('lt_', 'gt_', 'gte_') in the created sub_query - k = k[4:] # remove the 'lte_' to use the right column name in the created sub_query - operator = '<=' - if kp.startswith('gt_'): - # keep the 'gt_' for kp to distinguish from the others ('lt_', 'lte_' ,'gte_') in the created sub_query - k = k[3:] # remove the 'gt_' to use the right column name in the created sub_query - operator = '>' - if kp.startswith('gte_'): - # keep the 'gte_' for kp to distinguish from the others ('lt_', 'lte_' ,'gt_') in the created sub_query - k = k[4:] # remove the 'gte_' to use the right column name in the created sub_query - operator = '>=' - - extra_args[kp] = v[0] - else: - # there are no 'lt', 'lte', 'gt', and 'gte' filters with multiple values, see about 10 code lines below - extra_args[kp] = tuple(v) # multi values need to be a tuple not a list - operator = 'IN' - # find the sub query to replace, can be injected for more complex filter operations based on the input - sub_query = view.get_filter_subquery(k) - return sub_query.format(operator=operator, value=':' + kp) - - for key in list(where_clause.keys()): - # key: is the attribute/column, but for greater and less filters it also includes one of the filter prefixes ('lt_', 'lte_', 'gt_', or 'gte_') - original_key = key # is a copy of key, to keep the possible greater ('gt_', 'gte_') or less ('lt_', 'lte_') filter prefix - - is_greater_less_filter = False - check_complement_filter = False - - if key.startswith('lt_') or key.startswith('gt_'): - key = key[3:] # remove the leading identifiers ('lt_' = less than, 'gt_' = greater than) for filter parameter check in `view.is_valid_filter(key):` - is_greater_less_filter = True - - if key.startswith('lte_') or key.startswith('gte_'): - key = key[4:] # remove the leading identifiers ('lte_' = less than equals, 'gte_' = greater than equals) for filter parameter check in `view.is_valid_filter(key):` - is_greater_less_filter = True - check_complement_filter = True - - # check if key (attribute/column) does exist in view - if not view.is_valid_filter(key): - _log.warn('invalid filter key detected for view "%s" and key "%s"', view.query, key) - del where_clause[key] - # raise RuntimeError('Invalid filter key detected, "' + original_key + '"') - - # check if column type is number for one of the greater ('gt' and 'gte') or less ('lt' and 'lte') filters - column_type = view.columns.get(key, {}).get('type') - if is_greater_less_filter and column_type != 'number': - raise RuntimeError('Filters "lt","lte","gt", and "gte" are only applicable to columns of type "number", "' + key + '" is not of type "number".') - - # check if a greater ('gt' or 'gte') or less ('lt' or 'lte') filter was used on the same column more than once - if is_greater_less_filter and (len(where_clause[original_key]) > 1): - separator = '", "' - raise RuntimeError('Filter "' + original_key + '" has too many values ("' + separator.join(where_clause[original_key]) + '"), only one is allowed.') - - # check complement filter for gte or lte ('gt' or 'lt' respectively) - if check_complement_filter: - complement_filter = original_key[:2]+'_'+key # create complement filter - complement_filter_exist = complement_filter in where_clause # look if complement filter exist in the where clause - # check if complement filter exists - if complement_filter_exist: - raise RuntimeError('Filter "' + original_key + '" has a complement filter "' + complement_filter + '", only one of these filters is allowed.') - - where_default_clause = [] - where_group_clauses = {group: [] for group in view.filter_groups()} - for k, v in list(where_clause.items()): - if len(v) <= 0: - continue - clause = to_clause(k, v) - group = view.get_filter_group(k) - join = view.get_filter_subjoin(k) - if group is None: - where_default_clause.append((clause, join)) - else: - where_group_clauses[group].append((clause, join)) - - replacements = dict() - replacements['and_where'] = (' AND ' + ' AND '.join(c for c, _ in where_default_clause)) if where_default_clause else '' - replacements['where'] = (' WHERE ' + ' AND '.join(c for c, _ in where_default_clause)) if where_default_clause else '' - # unique joins - replacements['joins'] = ' '.join(set(j for _, j in where_default_clause if j is not None)) - for group, v in list(where_group_clauses.items()): - replacements['and_' + group + '_where'] = (' AND ' + ' AND '.join(c for c, _ in v)) if v else '' - replacements[group + '_where'] = (' WHERE ' + ' AND '.join(c for c, _ in v)) if v else '' - replacements[group + '_joins'] = ' '.join(set(j for _, j in v if j is not None)) - - return replacements, processed_args, extra_args, where_clause + """ + parses the request arguments for filter + :param view: + :return: + """ + processed_args = MultiDict() + extra_args = dict() + where_clause = {} + for k, v in list(args.lists()): + if k.endswith("[]"): + k = k[:-2] + if k.startswith("filter_"): + where_clause[k[7:]] = v # remove filter_ + else: + processed_args.setlist(k, v) + + # handle special namedset4 filter types by resolve them and and the real ids as filter + for k, v in list(where_clause.items()): + if k.startswith("namedset4"): + del where_clause[k] # delete value + real_key = k[9:] # remove the namedset4 part + ids = _replace_named_sets_in_ids(v) + if real_key not in where_clause: + where_clause[real_key] = ids + else: + where_clause[real_key].extend(ids) + if k.startswith("rangeOf"): + del where_clause[k] # delete value + id_type_and_key = k[7:] + id_type = id_type_and_key[: id_type_and_key.index("4")] + real_key = id_type_and_key[id_type_and_key.index("4") + 1 :] # remove the range4 part + ids = _replace_range_in_ids(v, id_type, view.idtype) + if real_key not in where_clause: + where_clause[real_key] = ids + else: + where_clause[real_key].extend(ids) + + def to_clause(k, v): + length = len(v) + kp = k.replace(".", "_") + if length == 1: # single value + operator = "=" + if kp.startswith("lt_"): + # keep the 'lt_' for kp to distinguish from the others ('lte_', 'gt_', 'gte_') in the created sub_query + k = k[3:] # remove the 'lt_' to use the right column name in the created sub_query + operator = "<" + if kp.startswith("lte_"): + # keep the 'lte_' for kp to distinguish from the others ('lt_', 'gt_', 'gte_') in the created sub_query + k = k[4:] # remove the 'lte_' to use the right column name in the created sub_query + operator = "<=" + if kp.startswith("gt_"): + # keep the 'gt_' for kp to distinguish from the others ('lt_', 'lte_' ,'gte_') in the created sub_query + k = k[3:] # remove the 'gt_' to use the right column name in the created sub_query + operator = ">" + if kp.startswith("gte_"): + # keep the 'gte_' for kp to distinguish from the others ('lt_', 'lte_' ,'gt_') in the created sub_query + k = k[4:] # remove the 'gte_' to use the right column name in the created sub_query + operator = ">=" + + extra_args[kp] = v[0] + else: + # there are no 'lt', 'lte', 'gt', and 'gte' filters with multiple values, see about 10 code lines below + extra_args[kp] = tuple(v) # multi values need to be a tuple not a list + operator = "IN" + # find the sub query to replace, can be injected for more complex filter operations based on the input + sub_query = view.get_filter_subquery(k) + return sub_query.format(operator=operator, value=":" + kp) + + for key in list(where_clause.keys()): + # key: is the attribute/column, but for greater and less filters it also includes one of the filter prefixes ('lt_', 'lte_', 'gt_', or 'gte_') + original_key = key # is a copy of key, to keep the possible greater ('gt_', 'gte_') or less ('lt_', 'lte_') filter prefix + + is_greater_less_filter = False + check_complement_filter = False + + if key.startswith("lt_") or key.startswith("gt_"): + key = key[3:] # remove the leading identifiers ('lt_' = less than, 'gt_' = greater than) for filter parameter check in `view.is_valid_filter(key):` + is_greater_less_filter = True + + if key.startswith("lte_") or key.startswith("gte_"): + key = key[ + 4: + ] # remove the leading identifiers ('lte_' = less than equals, 'gte_' = greater than equals) for filter parameter check in `view.is_valid_filter(key):` + is_greater_less_filter = True + check_complement_filter = True + + # check if key (attribute/column) does exist in view + if not view.is_valid_filter(key): + _log.warn( + 'invalid filter key detected for view "%s" and key "%s"', + view.query, + key, + ) + del where_clause[key] + # raise RuntimeError('Invalid filter key detected, "' + original_key + '"') + + # check if column type is number for one of the greater ('gt' and 'gte') or less ('lt' and 'lte') filters + column_type = view.columns.get(key, {}).get("type") + if is_greater_less_filter and column_type != "number": + raise RuntimeError('Filters "lt","lte","gt", and "gte" are only applicable to columns of type "number", "' + key + '" is not of type "number".') + + # check if a greater ('gt' or 'gte') or less ('lt' or 'lte') filter was used on the same column more than once + if is_greater_less_filter and (len(where_clause[original_key]) > 1): + separator = '", "' + raise RuntimeError('Filter "' + original_key + '" has too many values ("' + separator.join(where_clause[original_key]) + '"), only one is allowed.') + + # check complement filter for gte or lte ('gt' or 'lt' respectively) + if check_complement_filter: + complement_filter = original_key[:2] + "_" + key # create complement filter + complement_filter_exist = complement_filter in where_clause # look if complement filter exist in the where clause + # check if complement filter exists + if complement_filter_exist: + raise RuntimeError('Filter "' + original_key + '" has a complement filter "' + complement_filter + '", only one of these filters is allowed.') + + where_default_clause = [] + where_group_clauses = {group: [] for group in view.filter_groups()} + for k, v in list(where_clause.items()): + if len(v) <= 0: + continue + clause = to_clause(k, v) + group = view.get_filter_group(k) + join = view.get_filter_subjoin(k) + if group is None: + where_default_clause.append((clause, join)) + else: + where_group_clauses[group].append((clause, join)) + + replacements = dict() + replacements["and_where"] = (" AND " + " AND ".join(c for c, _ in where_default_clause)) if where_default_clause else "" + replacements["where"] = (" WHERE " + " AND ".join(c for c, _ in where_default_clause)) if where_default_clause else "" + # unique joins + replacements["joins"] = " ".join(set(j for _, j in where_default_clause if j is not None)) + for group, v in list(where_group_clauses.items()): + replacements["and_" + group + "_where"] = (" AND " + " AND ".join(c for c, _ in v)) if v else "" + replacements[group + "_where"] = (" WHERE " + " AND ".join(c for c, _ in v)) if v else "" + replacements[group + "_joins"] = " ".join(set(j for _, j in v if j is not None)) + + return replacements, processed_args, extra_args, where_clause diff --git a/tdp_core/sql_use_gevent.py b/tdp_core/sql_use_gevent.py index 26ed90251..dfdedf77b 100644 --- a/tdp_core/sql_use_gevent.py +++ b/tdp_core/sql_use_gevent.py @@ -4,45 +4,42 @@ """ import logging -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) def make_psycopg_green(): - """Configure Psycopg to be used with gevent in non-blocking way.""" - if not hasattr(extensions, 'set_wait_callback'): - raise ImportError( - 'support for coroutines not available in this Psycopg version (%s)' - % psycopg2.__version__) + """Configure Psycopg to be used with gevent in non-blocking way.""" + if not hasattr(extensions, "set_wait_callback"): + raise ImportError("support for coroutines not available in this Psycopg version (%s)" % psycopg2.__version__) - extensions.set_wait_callback(gevent_wait_callback) + extensions.set_wait_callback(gevent_wait_callback) def gevent_wait_callback(conn, timeout=None): - """A wait callback useful to allow gevent to work with Psycopg.""" - while True: - state = conn.poll() - if state == extensions.POLL_OK: - break - elif state == extensions.POLL_READ: - wait_read(conn.fileno(), timeout=timeout) - elif state == extensions.POLL_WRITE: - wait_write(conn.fileno(), timeout=timeout) - else: - raise psycopg2.OperationalError('Bad result from poll: %r' % state) + """A wait callback useful to allow gevent to work with Psycopg.""" + while True: + state = conn.poll() + if state == extensions.POLL_OK: + break + elif state == extensions.POLL_READ: + wait_read(conn.fileno(), timeout=timeout) + elif state == extensions.POLL_WRITE: + wait_write(conn.fileno(), timeout=timeout) + else: + raise psycopg2.OperationalError("Bad result from poll: %r" % state) try: - import psycopg2 - from psycopg2 import extensions + import psycopg2 + from psycopg2 import extensions - from gevent.socket import wait_read, wait_write + from gevent.socket import wait_read, wait_write - _log.info('patching psycopg2 to be green') - make_psycopg_green() + _log.info("patching psycopg2 to be green") + make_psycopg_green() except ImportError: - pass # nothing to do + pass # nothing to do def create(): - pass + pass diff --git a/tdp_core/storage.py b/tdp_core/storage.py index 4bab92142..6e76d24dc 100644 --- a/tdp_core/storage.py +++ b/tdp_core/storage.py @@ -1,162 +1,169 @@ -import phovea_server.config from pymongo import MongoClient from pymongo.collection import ReturnDocument -from phovea_server.ns import Namespace, request, abort, etag -from phovea_server.util import jsonify -import phovea_server.security as security +from .utils import etag, fix_id, random_id +from flask import Flask, request, abort, jsonify +import tdp_core.security as security import logging +from .settings import get_global_settings -__author__ = 'Samuel Gratzl' -c = phovea_server.config.view('tdp_core.mongo') +c = get_global_settings().tdp_core.mongo _log = logging.getLogger(__name__) -app = Namespace(__name__) +app = Flask(__name__) -@app.route('/namedsets/', methods=['GET', 'POST']) +@app.route("/namedsets/", methods=["GET", "POST"]) @etag def list_namedset(): - db = MongoClient(c.host, c.port)[c.db_namedsets] - - if request.method == 'GET': - q = dict(idType=request.args['idType']) if 'idType' in request.args else {} - return jsonify(list((d for d in db.namedsets.find(q, {'_id': 0}) if security.can_read(d)))) - - if request.method == 'POST': - id = _generate_id() - name = request.values.get('name', 'NoName') - creator = request.values.get('creator', security.current_username()) - permissions = int(request.values.get('permissions', security.DEFAULT_PERMISSION)) - id_type = request.values.get('idType', '') - ids = request.values.getlist('ids[]') or [] - description = request.values.get('description', '') - sub_type_key = request.values.get('subTypeKey', '') - sub_type_value = request.values.get('subTypeValue', '') - type = int(request.values.get('type', '0')) - entry = dict(id=id, name=name, creator=creator, permissions=permissions, ids=ids, idType=id_type, - description=description, - subTypeKey=sub_type_key, subTypeValue=sub_type_value, type=type) - db.namedsets.insert_one(entry) - del entry['_id'] - return jsonify(entry) - - -@app.route('/namedset/', methods=['GET', 'DELETE', 'PUT']) + db = MongoClient(c.host, c.port)[c.db_namedsets] + + if request.method == "GET": + q = dict(idType=request.args["idType"]) if "idType" in request.args else {} + return jsonify(list((d for d in db.namedsets.find(q, {"_id": 0}) if security.can_read(d)))) + + if request.method == "POST": + id = _generate_id() + name = request.values.get("name", "NoName") + creator = request.values.get("creator", security.current_username()) + permissions = int(request.values.get("permissions", security.DEFAULT_PERMISSION)) + id_type = request.values.get("idType", "") + ids = request.values.getlist("ids[]") or [] + description = request.values.get("description", "") + sub_type_key = request.values.get("subTypeKey", "") + sub_type_value = request.values.get("subTypeValue", "") + type = int(request.values.get("type", "0")) + entry = dict( + id=id, + name=name, + creator=creator, + permissions=permissions, + ids=ids, + idType=id_type, + description=description, + subTypeKey=sub_type_key, + subTypeValue=sub_type_value, + type=type, + ) + db.namedsets.insert_one(entry) + del entry["_id"] + return jsonify(entry) + + +@app.route("/namedset/", methods=["GET", "DELETE", "PUT"]) @etag def get_namedset(namedset_id): - db = MongoClient(c.host, c.port)[c.db_namedsets] - result = list(db.namedsets.find(dict(id=namedset_id), {'_id': 0})) - entry = result[0] if len(result) > 0 else None - - if not entry: - abort(404, u'Namedset with id "{}" cannot be found'.format(namedset_id)) - - if request.method == 'GET': - if not security.can_read(entry): - abort(403, u'Namedset with id "{}" is protected'.format(namedset_id)) - return jsonify(entry) - - if request.method == 'DELETE': - if not security.can_write(entry): - abort(403, u'Namedset with id "{}" is write protected'.format(namedset_id)) - q = dict(id=namedset_id) - result = db.namedsets.remove(q) - return jsonify(result['n']) # number of deleted documents - - if request.method == 'PUT': - if not security.can_write(entry): - abort(403, u'Namedset with id "{}" is write protected'.format(namedset_id)) - filter = dict(id=namedset_id) - values = dict() - for key in ['name', 'idType', 'description', 'subTypeKey', 'subTypeValue']: - if key in request.form: - values[key] = request.form[key] - if 'ids' in request.form: - values['ids'] = request.form['ids'] - for key in ['permissions', 'type']: - if key in request.form: - values[key] = int(request.form[key]) - query = {'$set': values} - result = db.namedsets.find_one_and_update(filter, query, return_document=ReturnDocument.AFTER) - del result['_id'] - return jsonify(result) + db = MongoClient(c.host, c.port)[c.db_namedsets] + result = list(db.namedsets.find(dict(id=namedset_id), {"_id": 0})) + entry = result[0] if len(result) > 0 else None + + if not entry: + abort(404, 'Namedset with id "{}" cannot be found'.format(namedset_id)) + + if request.method == "GET": + if not security.can_read(entry): + abort(403, 'Namedset with id "{}" is protected'.format(namedset_id)) + return jsonify(entry) + + if request.method == "DELETE": + if not security.can_write(entry): + abort(403, 'Namedset with id "{}" is write protected'.format(namedset_id)) + q = dict(id=namedset_id) + result = db.namedsets.remove(q) + return jsonify(result["n"]) # number of deleted documents + + if request.method == "PUT": + if not security.can_write(entry): + abort(403, 'Namedset with id "{}" is write protected'.format(namedset_id)) + filter = dict(id=namedset_id) + values = dict() + for key in ["name", "idType", "description", "subTypeKey", "subTypeValue"]: + if key in request.form: + values[key] = request.form[key] + if "ids" in request.form: + values["ids"] = request.form["ids"] + for key in ["permissions", "type"]: + if key in request.form: + values[key] = int(request.form[key]) + query = {"$set": values} + result = db.namedsets.find_one_and_update(filter, query, return_document=ReturnDocument.AFTER) + del result["_id"] + return jsonify(result) def get_namedset_by_id(namedset_id): - db = MongoClient(c.host, c.port)[c.db_namedsets] - q = dict(id=namedset_id) - result = list(db.namedsets.find(q, {'_id': 0})) - if not result: - abort(404, u'Namedset with id "{}" cannot be found'.format(namedset_id)) - if not security.can_read(result[0]): - abort(403, u'Namedset with id "{}" is protected'.format(namedset_id)) + db = MongoClient(c.host, c.port)[c.db_namedsets] + q = dict(id=namedset_id) + result = list(db.namedsets.find(q, {"_id": 0})) + if not result: + abort(404, 'Namedset with id "{}" cannot be found'.format(namedset_id)) + if not security.can_read(result[0]): + abort(403, 'Namedset with id "{}" is protected'.format(namedset_id)) - return result[0] + return result[0] def _generate_id(): - import phovea_server.util - return phovea_server.util.fix_id(phovea_server.util.random_id(10)) + return fix_id(random_id(10)) -@app.route('/attachment/', methods=['POST']) +@app.route("/attachment/", methods=["POST"]) @etag def post_attachment(): - """ - simple attachment management - :return: - """ - db = MongoClient(c.host, c.port)[c.db_namedsets] + """ + simple attachment management + :return: + """ + db = MongoClient(c.host, c.port)[c.db_namedsets] - id = _generate_id() - # keep the encoded string - creator = security.current_username() - permissions = security.DEFAULT_PERMISSION + id = _generate_id() + # keep the encoded string + creator = security.current_username() + permissions = security.DEFAULT_PERMISSION - entry = dict(id=id, creator=creator, permissions=permissions, data=request.data) - db.attachments.insert_one(entry) - return id + entry = dict(id=id, creator=creator, permissions=permissions, data=request.data) + db.attachments.insert_one(entry) + return id -@app.route('/attachment/', methods=['GET', 'DELETE', 'PUT']) +@app.route("/attachment/", methods=["GET", "DELETE", "PUT"]) @etag def get_attachment(attachment_id): - db = MongoClient(c.host, c.port)[c.db_namedsets] - result = list(db.attachments.find(dict(id=attachment_id), {'_id': 0})) - entry = result[0] if len(result) > 0 else None - - if not entry: - abort(404, u'Attachment with id "{}" cannot be found'.format(attachment_id)) - - if request.method == 'GET': - if not security.can_read(entry): - abort(403, u'Attachment with id "{}" is protected'.format(attachment_id)) - return entry['data'] - - if request.method == 'DELETE': - if not security.can_write(entry): - abort(403, u'Attachment with id "{}" is write protected'.format(attachment_id)) - q = dict(id=attachment_id) - result = db.attachments.remove(q) - return jsonify(result['n']) # number of deleted documents - - if request.method == 'PUT': - if not security.can_write(entry): - abort(403, u'Attachment with id "{}" is write protected'.format(attachment_id)) - filter = dict(id=attachment_id) - # keep the encoded string - query = {'$set': dict(data=request.data)} - db.attachments.find_one_and_update(filter, query) - return attachment_id + db = MongoClient(c.host, c.port)[c.db_namedsets] + result = list(db.attachments.find(dict(id=attachment_id), {"_id": 0})) + entry = result[0] if len(result) > 0 else None + + if not entry: + abort(404, 'Attachment with id "{}" cannot be found'.format(attachment_id)) + + if request.method == "GET": + if not security.can_read(entry): + abort(403, 'Attachment with id "{}" is protected'.format(attachment_id)) + return entry["data"] + + if request.method == "DELETE": + if not security.can_write(entry): + abort(403, 'Attachment with id "{}" is write protected'.format(attachment_id)) + q = dict(id=attachment_id) + result = db.attachments.remove(q) + return jsonify(result["n"]) # number of deleted documents + + if request.method == "PUT": + if not security.can_write(entry): + abort(403, 'Attachment with id "{}" is write protected'.format(attachment_id)) + filter = dict(id=attachment_id) + # keep the encoded string + query = {"$set": dict(data=request.data)} + db.attachments.find_one_and_update(filter, query) + return attachment_id def create(): - """ - entry point of this plugin - """ - return app + """ + entry point of this plugin + """ + return app -if __name__ == '__main__': - app.debug = True - app.run(host='0.0.0.0') +if __name__ == "__main__": + app.debug = True + app.run(host="0.0.0.0") diff --git a/tdp_core/swagger.py b/tdp_core/swagger.py index a29f2dce0..b7b204a48 100644 --- a/tdp_core/swagger.py +++ b/tdp_core/swagger.py @@ -4,169 +4,193 @@ from collections import OrderedDict from flask import render_template from jinja2 import Template -from phovea_server.ns import Namespace, Response +from flask import Flask, Response from . import db from .utils import secure_replacements +from .plugin.registry import list_plugins -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) -app = Namespace('flask_swagger_ui', - static_folder='dist', - template_folder='templates') +app = Flask("flask_swagger_ui", static_folder="dist", template_folder="templates") def _gen(): - from yamlreader import yaml_load, data_merge - from yaml import safe_load - from os import path - from phovea_server import plugin - import io - - here = path.abspath(path.dirname(__file__)) - - files = [path.join(here, 'swagger', p) for p in ['swagger.yml', 'db.yml']] # , 'proxy.yml', 'storage.yml']] - base = yaml_load(files) - base['paths'] = OrderedDict(sorted(base['paths'].items(), key=lambda t: t[0])) - - with io.open(path.join(here, 'swagger', 'view.tmpl.yml'), 'r', encoding='utf-8') as f: - template = Template(str(f.read())) - - tags = base['tags'] - - def to_type(t): - if t is None: - return 'string' - if t is int: - return 'integer' - if t is float: - return 'number' - - # integrate all views using the template - for database, connector in db.configs.connectors.items(): - - db.resolve(database) # trigger filling up columns - - # add database tag - tags.append(dict(name='db_' + database, description=connector.description or '')) - - for view, dbview in connector.views.items(): - if not dbview.can_access() or dbview.query_type == 'private': - continue - # if database != u'dummy' or view != u'b_items_verify': - # continue - - for tag in dbview.tags: - if tag not in tags: - tags.append(tag) - - args = [] - for arg in dbview.arguments: - info = dbview.get_argument_info(arg) - args.append(dict(name=arg, type=to_type(info.type), as_list=info.as_list, enum_values=None, description=info.description, example=info.example)) - - for arg in (a for a in dbview.replacements if a not in secure_replacements): - extra = dbview.valid_replacements.get(arg) - arg_type = 'string' - enum_values = None - if isinstance(extra, list): - enum_values = extra - if extra == int or extra == float: - arg_type = to_type(extra) - args.append(dict(name=arg, type=arg_type, as_list=False, enum=enum_values, description='')) - - filters = set() - - if 'where' in dbview.replacements or 'and_where' in dbview.replacements: - # filter possible - for k in dbview.filters.keys(): - filters.add(k) - if not filters: - for k in list(dbview.columns.keys()): - filters.add(k) - - if 'agg_score' in dbview.replacements: - # score query magic handling - agg_score = connector.agg_score - args.append(dict(name='agg', type='string', as_list=False, enum=agg_score.valid_replacements.get('agg'))) - - props = [] - for k, prop in dbview.columns.items(): - p = prop.copy() - p['name'] = k - if 'type' not in p or p['type'] == 'categorical': - p['type'] = 'string' - props.append(p) - - if dbview.idtype: - # assume when id type given then we have ids - props.append(dict(name='_id', type='integer')) - if not any((p['name'] == 'id' for p in props)): - props.append(dict(name='id', type='string')) - - features = { - 'generic': dbview.query_type in ['generic', 'helper', 'table'], - 'desc': dbview.query_type in ['table'], - 'lookup': dbview.query_type in ['lookup'], - 'score': dbview.query_type in ['score'] - } - - keys = { - 'database': database, - 'view': view, - 'type': dbview.query_type, - 'description': dbview.description or '', - 'summary': dbview.summary or '', - 'args': args, - 'empty': not args and not filters, - 'filters': filters, - 'features': features, - 'tags': dbview.tags or [], - 'props': props, - 'propsempty': not props - } - - view_yaml = template.render(**keys) - # _log.info(view_yaml) - part = safe_load(view_yaml) - base = data_merge(base, part) - - # post process using extensions - for p in plugin.list('tdp-swagger-postprocessor'): - base = p.load().factory(base) - - return base - - -@app.route('/swagger.yaml') + from yamlreader import yaml_load, data_merge + from yaml import safe_load + from os import path + import io + + here = path.abspath(path.dirname(__file__)) + + files = [path.join(here, "swagger", p) for p in ["swagger.yml", "db.yml"]] # , 'proxy.yml', 'storage.yml']] + base = yaml_load(files) + base["paths"] = OrderedDict(sorted(base["paths"].items(), key=lambda t: t[0])) + + with io.open(path.join(here, "swagger", "view.tmpl.yml"), "r", encoding="utf-8") as f: + template = Template(str(f.read())) + + tags = base["tags"] + + def to_type(t): + if t is None: + return "string" + if t is int: + return "integer" + if t is float: + return "number" + + # integrate all views using the template + for database, connector in db.configs.connectors.items(): + + db.resolve(database) # trigger filling up columns + + # add database tag + tags.append(dict(name="db_" + database, description=connector.description or "")) + + for view, dbview in connector.views.items(): + if not dbview.can_access() or dbview.query_type == "private": + continue + # if database != u'dummy' or view != u'b_items_verify': + # continue + + for tag in dbview.tags: + if tag not in tags: + tags.append(tag) + + args = [] + for arg in dbview.arguments: + info = dbview.get_argument_info(arg) + args.append( + dict( + name=arg, + type=to_type(info.type), + as_list=info.as_list, + enum_values=None, + description=info.description, + example=info.example, + ) + ) + + for arg in (a for a in dbview.replacements if a not in secure_replacements): + extra = dbview.valid_replacements.get(arg) + arg_type = "string" + enum_values = None + if isinstance(extra, list): + enum_values = extra + if extra == int or extra == float: + arg_type = to_type(extra) + args.append( + dict( + name=arg, + type=arg_type, + as_list=False, + enum=enum_values, + description="", + ) + ) + + filters = set() + + if "where" in dbview.replacements or "and_where" in dbview.replacements: + # filter possible + for k in dbview.filters.keys(): + filters.add(k) + if not filters: + for k in list(dbview.columns.keys()): + filters.add(k) + + if "agg_score" in dbview.replacements: + # score query magic handling + agg_score = connector.agg_score + args.append( + dict( + name="agg", + type="string", + as_list=False, + enum=agg_score.valid_replacements.get("agg"), + ) + ) + + props = [] + for k, prop in dbview.columns.items(): + p = prop.copy() + p["name"] = k + if "type" not in p or p["type"] == "categorical": + p["type"] = "string" + props.append(p) + + if dbview.idtype: + # assume when id type given then we have ids + props.append(dict(name="_id", type="integer")) + if not any((p["name"] == "id" for p in props)): + props.append(dict(name="id", type="string")) + + features = { + "generic": dbview.query_type in ["generic", "helper", "table"], + "desc": dbview.query_type in ["table"], + "lookup": dbview.query_type in ["lookup"], + "score": dbview.query_type in ["score"], + } + + keys = { + "database": database, + "view": view, + "type": dbview.query_type, + "description": dbview.description or "", + "summary": dbview.summary or "", + "args": args, + "empty": not args and not filters, + "filters": filters, + "features": features, + "tags": dbview.tags or [], + "props": props, + "propsempty": not props, + } + + view_yaml = template.render(**keys) + # _log.info(view_yaml) + part = safe_load(view_yaml) + base = data_merge(base, part) + + # post process using extensions + for p in list_plugins("tdp-swagger-postprocessor"): + base = p.load().factory(base) + + return base + + +@app.route("/swagger.yaml") def _generate_swagger_yml(): - from yaml import dump - return Response(dump(_gen()), mimetype='text/vnd.yaml') + from yaml import dump + return Response(dump(_gen()), mimetype="text/vnd.yaml") -@app.route('/swagger.json') + +@app.route("/swagger.json") def _generate_swagger_json(): - return Response(json.dumps(_gen()), mimetype='application/json') + return Response(json.dumps(_gen()), mimetype="application/json") -@app.route('/') -@app.route('/') +@app.route("/") +@app.route("/") def show(path=None): - if not path or path == 'index.html': - fields = { - # Some fields are used directly in template - 'base_url': '.', - 'app_name': 'Target Discovery Platform API', - # Rest are just serialized into json string for inclusion in the .js file - 'config_json': json.dumps({ - 'app_name': 'Swagger UI', - 'dom_id': '#swagger-ui', - 'url': './swagger.json', - 'layout': 'StandaloneLayout' - }), - } - return render_template('index.template.html', **fields) - return app.send_static_file(path) + if not path or path == "index.html": + fields = { + # Some fields are used directly in template + "base_url": ".", + "app_name": "Target Discovery Platform API", + # Rest are just serialized into json string for inclusion in the .js file + "config_json": json.dumps( + { + "app_name": "Swagger UI", + "dom_id": "#swagger-ui", + "url": "./swagger.json", + "layout": "StandaloneLayout", + } + ), + } + return render_template("index.template.html", **fields) + return app.send_static_file(path) def create(): - return app + return app diff --git a/tdp_core/utils.py b/tdp_core/utils.py index 40787b73e..b1dc2daa9 100644 --- a/tdp_core/utils.py +++ b/tdp_core/utils.py @@ -1,41 +1,242 @@ -from phovea_server.ns import abort +from typing import Union +import json +from builtins import range +from flask import abort, make_response, request, Response +import logging -secure_replacements = ['where', 'and_where', 'agg_score', 'joins'] # has to be part of the computed replacements + +_log = logging.getLogger(__name__) + + +secure_replacements = [ + "where", + "and_where", + "agg_score", + "joins", +] # has to be part of the computed replacements def map_scores(scores, from_idtype, to_idtype): - """ - maps the given scores from idtype to to idtype - :param scores: - :param from_idtype: - :param to_idtype: - :return: a mapped version of the scores - """ - from phovea_server.dataset import get_mappingmanager - - if len(scores) == 0: - return [] - - manager = get_mappingmanager() - if not manager.can_map(from_idtype, to_idtype): - abort(400, 'score cannot be mapped to target') - mapped_ids = manager(from_idtype, to_idtype, [r['id'] for r in scores]) - - mapped_scores = [] - for score, mapped in zip(scores, mapped_ids): - if not mapped: - continue - for target_id in mapped: - clone = score.copy() - clone['id'] = target_id - mapped_scores.append(clone) - return mapped_scores + """ + maps the given scores from idtype to to idtype + :param scores: + :param from_idtype: + :param to_idtype: + :return: a mapped version of the scores + """ + if len(scores) == 0: + return [] + from .id_mapping.manager import get_mappingmanager + + manager = get_mappingmanager() + if not manager.can_map(from_idtype, to_idtype): + abort(400, "score cannot be mapped to target") + mapped_ids = manager(from_idtype, to_idtype, [r["id"] for r in scores]) + + mapped_scores = [] + for score, mapped in zip(scores, mapped_ids): + if not mapped: + continue + for target_id in mapped: + clone = score.copy() + clone["id"] = target_id + mapped_scores.append(clone) + return mapped_scores def clean_query(query): - if callable(query): - return 'custom function' - import re - q = query.strip() - q_clean = re.sub(r'(\s)+', ' ', q) - return q_clean + if callable(query): + return "custom function" + import re + + q = query.strip() + q_clean = re.sub(r"(\s)+", " ", q) + return q_clean + + +# based on https://github.com/miguelgrinberg/oreilly-flask-apis-video/blob/master/orders/app/decorators/caching.py +def cache_control(*directives): + """Insert a Cache-Control header with the given directives.""" + import functools + + def decorator(f): + @functools.wraps(f) + def wrapped(*args, **kwargs): + # invoke the wrapped function + rv = f(*args, **kwargs) + + # convert the returned value to a response object + rv = make_response(rv) + + # insert the Cache-Control header and return response + rv.headers["Cache-Control"] = ", ".join(directives) + return rv + + return wrapped + + return decorator + + +def no_cache(f): + """Insert a no-cache directive in the response. This decorator just + invokes the cache-control decorator with the specific directives.""" + return cache_control("private", "no-cache", "no-store", "max-age=0")(f) + + +def etag(f): + """Add entity tag (etag) handling to the decorated route.""" + import functools + + @functools.wraps(f) + def wrapped(*args, **kwargs): + if request.method not in ["GET", "HEAD"]: + # etags only make sense for request that are cacheable, so only + # GET and HEAD requests are allowed + return f(*args, **kwargs) + + # invoke the wrapped function and generate a response object from + # its result + rv = f(*args, **kwargs) + rv = make_response(rv) + + # if the response is not a code 200 OK then we let it through + # unchanged + if rv.status_code != 200 or rv.direct_passthrough or not rv.implicit_sequence_conversion: + return rv + + rv.add_etag() + return rv.make_conditional(request) + + return wrapped + + +def fix_id(id): + """ + fixes the id such that is it a resource identifier + :param id: + :return: + """ + import re + + # convert strange characters to space + r = re.sub(r"""[!#$%&'\(\)\*\+,\./:;<=>\?@\[\\\]\^`\{\|}~_]+""", " ", id) + # title case all words + r = r.title() + r = r[0].lower() + r[1:] + # remove white spaces + r = re.sub(r"\s+", "", r, flags=re.UNICODE) + return r + + +def random_id(length): + import string + import random + + s = string.ascii_lowercase + string.digits + id = "" + for i in range(0, length): + id += random.choice(s) + return id + + +class JSONExtensibleEncoder(json.JSONEncoder): + """ + json encoder with extension point extensions + """ + + from .plugin.registry import list_plugins + + def __init__(self, *args, **kwargs): + super(JSONExtensibleEncoder, self).__init__(*args, **kwargs) + + self.encoders = [p.load().factory() for p in list_plugins("json-encoder")] + + def default(self, o): + for encoder in self.encoders: + if o in encoder: + return encoder(o, self) + return super(JSONExtensibleEncoder, self).default(o) + + +def to_json(obj, *args, **kwargs): + """ + convert the given object ot json using the extensible encoder + :param obj: + :param args: + :param kwargs: + :return: + """ + if "allow_nan" in kwargs: + del kwargs["allow_nan"] + if "indent" in kwargs: + del kwargs["indent"] + kwargs["ensure_ascii"] = False + + # Pandas JSON module has been deprecated and removed. UJson cannot convert numpy arrays, so it cannot be used here. The JSON used here does not support the `double_precision` keyword. + if isinstance(obj, float) or isinstance(obj, dict) or isinstance(obj, list): + obj = _handle_nan_values(obj) + return json.dumps(obj, cls=JSONExtensibleEncoder, *args, **kwargs) + + +def _handle_nan_values(obj_to_convert: Union[dict, list, float]) -> Union[dict, list, None]: + """ + Convert any NaN values in the given object to None. Previously, Pandas was used to encode NaN to null. This feature has been deprecated and removed, therefore + the standard JSON encoder is used which parses NaN instead of null. A custom JSON encoder does not work for converting these values to None because python's + JSON encoder already knows how to serialize NaN values. + :param obj_to_convert: + :return dict, list or None: + """ + import math + + converted_dict = {} + converted_list = [] + # primitive value + if isinstance(obj_to_convert, float) and math.isnan(obj_to_convert): + return None + # convert dictionaries + if isinstance(obj_to_convert, dict): + for k, v in obj_to_convert.items(): + # value is dictionary or list + if isinstance(v, dict) or isinstance(v, list): + converted_dict[k] = _handle_nan_values(v) + else: + # value is NaN + if isinstance(v, float) and math.isnan(v): + converted_dict[k] = None + else: + converted_dict[k] = v + return converted_dict + # convert lists + elif isinstance(obj_to_convert, list): + for elem in obj_to_convert: + # list element is dictionary + if isinstance(elem, dict): + converted_list.append(_handle_nan_values(elem)) + # list element is NaN value + elif isinstance(elem, float) and math.isnan(elem): + converted_list.append(None) + else: + converted_list.append(elem) + return converted_list + + +def jsonify(obj, *args, **kwargs): + """ + similar to flask.jsonify but uses the extended json encoder and an arbitrary object + :param obj: + :param args: + :param kwargs: + :return: + """ + return Response(to_json(obj, *args, **kwargs), mimetype="application/json; charset=utf-8") + + +def glob_recursivly(path, match): + import os + import fnmatch + + for dirpath, dirnames, files in os.walk(path): + if match is None: + return None + for f in fnmatch.filter(files, match): + yield os.path.join(dirpath, f) diff --git a/tdp_core/xlsx.py b/tdp_core/xlsx.py index acb6c3faf..6732795bd 100644 --- a/tdp_core/xlsx.py +++ b/tdp_core/xlsx.py @@ -1,5 +1,4 @@ -from phovea_server.ns import Namespace, request, abort, Response -from phovea_server.util import jsonify +from flask import Flask, request, abort, Response, jsonify from openpyxl import Workbook, load_workbook from openpyxl.cell import WriteOnlyCell from openpyxl.styles import Font @@ -9,153 +8,156 @@ import logging -__author__ = 'Samuel Gratzl' _log = logging.getLogger(__name__) -app = Namespace(__name__) +app = Flask(__name__) -_types = dict(b='boolean', s='string') +_types = dict(b="boolean", s="string") def to_type(cell): - if not cell: - return 'string' - if cell.is_date: - return 'date' - if cell.data_type in _types: - return _types[cell.data_type] - v = cell.value - if isinstance(v, int) or isinstance(v, int): - return 'int' - if isinstance(v, float): - return 'float' - return 'string' + if not cell: + return "string" + if cell.is_date: + return "date" + if cell.data_type in _types: + return _types[cell.data_type] + v = cell.value + if isinstance(v, int) or isinstance(v, int): + return "int" + if isinstance(v, float): + return "float" + return "string" def _convert_value(v): - if isinstance(v, datetime): - return v.isoformat() - return v + if isinstance(v, datetime): + return v.isoformat() + return v -@app.route('/to_json', methods=['POST']) +@app.route("/to_json", methods=["POST"]) def _xlsx2json(): - file = request.files.get('file') - if not file: - abort(403, 'missing file') + file = request.files.get("file") + if not file: + abort(403, "missing file") - wb = load_workbook(file, read_only=True, data_only=True) + wb = load_workbook(file, read_only=True, data_only=True) - def convert_row(row, cols): - result = {} + def convert_row(row, cols): + result = {} - for r, c in zip(cols, row): - result[c['name']] = _convert_value(r.value) + for r, c in zip(cols, row): + result[c["name"]] = _convert_value(r.value) - return result + return result - def convert_sheet(ws): + def convert_sheet(ws): - ws_rows = ws.iter_rows() - ws_cols = next(ws_rows, []) - ws_first_row = next(ws_rows, []) + ws_rows = ws.iter_rows() + ws_cols = next(ws_rows, []) + ws_first_row = next(ws_rows, []) - cols = [dict(name=h.value, type=to_type(r)) for h, r in zip(ws_cols, ws_first_row)] + cols = [dict(name=h.value, type=to_type(r)) for h, r in zip(ws_cols, ws_first_row)] - rows = [] - rows.append(convert_row(cols, ws_first_row)) - for row in ws_rows: - rows.append(str(convert_row(cols, row))) + rows = [] + rows.append(convert_row(cols, ws_first_row)) + for row in ws_rows: + rows.append(str(convert_row(cols, row))) - return dict(title=ws.title, columns=cols, rows=rows) + return dict(title=ws.title, columns=cols, rows=rows) - data = dict( - sheets=[convert_sheet(ws) for ws in wb.worksheets] - ) + data = dict(sheets=[convert_sheet(ws) for ws in wb.worksheets]) - return jsonify(data) + return jsonify(data) -@app.route('/to_json_array', methods=['POST']) +@app.route("/to_json_array", methods=["POST"]) def _xlsx2json_array(): - file = request.files.get('file') - if not file: - abort(403, 'missing file') + file = request.files.get("file") + if not file: + abort(403, "missing file") - wb = load_workbook(file, read_only=True, data_only=True) + wb = load_workbook(file, read_only=True, data_only=True) - def convert_row(row): - return [_convert_value(cell.value) for cell in row] + def convert_row(row): + return [_convert_value(cell.value) for cell in row] - if not wb.worksheets: - return jsonify([]) + if not wb.worksheets: + return jsonify([]) - ws = wb.worksheets[0] + ws = wb.worksheets[0] - rows = [convert_row(row) for row in ws.iter_rows()] - return jsonify(rows) + rows = [convert_row(row) for row in ws.iter_rows()] + return jsonify(rows) -@app.route('/from_json', methods=['POST']) +@app.route("/from_json", methods=["POST"]) def _json2xlsx(): - data = request.json - wb = Workbook(write_only=True) - - bold = Font(bold=True) - - def to_cell(v): - # If the native value cannot be used as Excel value, used the stringified version instead. - try: - return WriteOnlyCell(ws, value=v) - except ValueError: - return WriteOnlyCell(ws, value=str(v)) - - def to_header(v): - c = to_cell(v) - c.font = bold - return c - - def to_value(v, coltype): - if coltype == 'date': - if isinstance(v, int): - v = datetime.fromtimestamp(v) - elif isinstance(v, str) and len(v) > 0: - v = dateutil.parser.parse(v) - return to_cell(v) - - for sheet in data.get('sheets', []): - ws = wb.create_sheet(title=sheet['title']) - cols = sheet['columns'] - ws.append(to_header(col['name']) for col in cols) - - for row in sheet['rows']: - ws.append(to_value(row.get(col['name'], None), col['type']) for col in cols) - - with NamedTemporaryFile() as tmp: - wb.save(tmp.name) - tmp.seek(0) - s = tmp.read() - return Response(s, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') - - -@app.route('/from_json_array', methods=['POST']) + data = request.json + wb = Workbook(write_only=True) + + bold = Font(bold=True) + + def to_cell(v): + # If the native value cannot be used as Excel value, used the stringified version instead. + try: + return WriteOnlyCell(ws, value=v) + except ValueError: + return WriteOnlyCell(ws, value=str(v)) + + def to_header(v): + c = to_cell(v) + c.font = bold + return c + + def to_value(v, coltype): + if coltype == "date": + if isinstance(v, int): + v = datetime.fromtimestamp(v) + elif isinstance(v, str) and len(v) > 0: + v = dateutil.parser.parse(v) + return to_cell(v) + + for sheet in data.get("sheets", []): + ws = wb.create_sheet(title=sheet["title"]) + cols = sheet["columns"] + ws.append(to_header(col["name"]) for col in cols) + + for row in sheet["rows"]: + ws.append(to_value(row.get(col["name"], None), col["type"]) for col in cols) + + with NamedTemporaryFile() as tmp: + wb.save(tmp.name) + tmp.seek(0) + s = tmp.read() + return Response( + s, + mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ) + + +@app.route("/from_json_array", methods=["POST"]) def _json_array2xlsx(): - data = request.json - wb = Workbook(write_only=True) - ws = wb.create_sheet() + data = request.json + wb = Workbook(write_only=True) + ws = wb.create_sheet() - for row in data: - ws.append(row) + for row in data: + ws.append(row) - with NamedTemporaryFile() as tmp: - wb.save(tmp.name) - tmp.seek(0) - s = tmp.read() - return Response(s, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') + with NamedTemporaryFile() as tmp: + wb.save(tmp.name) + tmp.seek(0) + s = tmp.read() + return Response( + s, + mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ) def create(): - """ - entry point of this plugin - """ - return app + """ + entry point of this plugin + """ + return app diff --git a/tests/test_custom_encoders.py b/tests/test_custom_encoders.py new file mode 100644 index 000000000..11a1722a6 --- /dev/null +++ b/tests/test_custom_encoders.py @@ -0,0 +1,22 @@ +from tdp_core.utils import to_json + + +class TestCustomEncoders: + def test_nan_values(self): + # single variable + test_var = float('nan') + # simple list + test_list_simple = [13, 5, 7, 12, test_var, 22] + # simple dictionary + test_dict = {'first': [4, 6, 2, test_var], 'second': 3, 'third': [test_var, 3, 78, 6, 3, 2]} + # list that contains dictionary + test_list_nested = [13, 5, 7, 12, test_dict, 22] + # convert with to_json + test_result_simple = to_json(dict(myNum=test_var)) + test_result_list_simple = to_json(dict(myNum=test_list_simple)) + test_result_list_nested = to_json(dict(myNum=test_list_nested)) + + # make assertions + assert test_result_simple == '{"myNum": null}' + assert test_result_list_simple == '{"myNum": [13, 5, 7, 12, null, 22]}' + assert test_result_list_nested == '{"myNum": [13, 5, 7, 12, {"first": [4, 6, 2, null], "second": 3, "third": [null, 3, 78, 6, 3, 2]}, 22]}' diff --git a/tests/test_mapper.py b/tests/test_mapper.py new file mode 100644 index 000000000..2a627eda5 --- /dev/null +++ b/tests/test_mapper.py @@ -0,0 +1,139 @@ +import pytest +from tdp_core.id_mapping.manager import MappingManager + + +@pytest.fixture(scope="module") +def mapper(): + mapper = MappingManager([ + ('ID1', 'ID2', OneToTwoMappingTable('ID1', 'ID2')), + ('ID2', 'ID1', TwoToOneMappingTable('ID1', 'ID2')), + + ('ID2', 'ID3', TwoToOneMappingTable('ID2', 'ID3')), + ('ID3', 'ID2', OneToTwoMappingTable('ID3', 'ID2')), + + ('ID1', 'ID4', OneToTwoMappingTable('ID1', 'ID4')), + ('ID4', 'ID1', TwoToOneMappingTable('ID4', 'ID1')), + + ('ID3', 'ID4', OneToTwoMappingTable('ID3', 'ID4')), + ('ID4', 'ID3', TwoToOneMappingTable('ID4', 'ID3')), + + ('ID5', 'ID6', OneToMoreMappingTable('ID5', 'ID6')), + ('ID6', 'ID7', OneToMoreMappingTable('ID6', 'ID7')) + ]) + yield mapper + + +def test_merge_2d_arrays(mapper): + # Simple cases + assert mapper.merge_2d_arrays([], []) == [] + assert mapper.merge_2d_arrays([[]], [1]) == [[]] + assert mapper.merge_2d_arrays([[], []], [2]) == [[]] + assert mapper.merge_2d_arrays([[], []], [1, 1]) == [[], []] + # Number cases + assert mapper.merge_2d_arrays([[1]], [1]) == [[1]] + assert mapper.merge_2d_arrays([[1], [2]], [2]) == [[1, 2]] + assert mapper.merge_2d_arrays([[1], [2]], [1, 1]) == [[1], [2]] + # Nested array cases + assert mapper.merge_2d_arrays([[[1]]], [1]) == [[[1]]] + assert mapper.merge_2d_arrays([[1], [[2]]], [2]) == [[1, [2]]] + # Longer cases + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [2, 1, 1]) == [[1, 2], [3], [4]] + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [1, 2, 1]) == [[1], [2, 3], [4]] + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [1, 1, 2]) == [[1], [2], [3, 4]] + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [3, 1]) == [[1, 2, 3], [4]] + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [1, 3]) == [[1], [2, 3, 4]] + assert mapper.merge_2d_arrays([[1], [2], [3], [4]], [4]) == [[1, 2, 3, 4]] + + +def test_merge_2d_arrays_length_mismatch(mapper): + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([], [1]) + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[]], []) + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[]], [2]) + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[], []], [1, 2]) + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[], []], [1, 1, 1]) + + +def test_merge_2d_arrays_invalid_length(mapper): + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[]], [0, 1]) + with pytest.raises(AssertionError): + mapper.merge_2d_arrays([[]], [-1, 1]) + + +def test_known_idtypes(mapper): + assert mapper.known_idtypes() == set(['ID1', 'ID2', 'ID3', 'ID4', 'ID5', 'ID6', 'ID7']) + + +def test_maps_to(mapper): + assert set(mapper.maps_to('ID1')) == set(['ID2', 'ID3', 'ID4']) + assert set(mapper.maps_to('ID2')) == set(['ID1', 'ID3', 'ID4']) + assert set(mapper.maps_to('ID3')) == set(['ID1', 'ID2', 'ID4']) + assert set(mapper.maps_to('ID4')) == set(['ID1', 'ID2', 'ID3']) + assert set(mapper.maps_to('ID5')) == set(['ID6', 'ID7']) + assert set(mapper.maps_to('ID6')) == set(['ID7']) + + +def test_single_mapping(mapper): + assert mapper('ID1', 'ID2', [2]) == [[4]] + assert mapper('ID1', 'ID4', [2]) == [[4]] + assert mapper('ID2', 'ID1', [4]) == [[2]] + assert mapper('ID4', 'ID1', [4]) == [[2]] + + assert mapper('ID1', 'ID2', [2, 4]) == [[4], [8]] + assert mapper('ID1', 'ID4', [2, 4]) == [[4], [8]] + assert mapper('ID2', 'ID1', [2, 4]) == [[1], [2]] + assert mapper('ID4', 'ID1', [2, 4]) == [[1], [2]] + + assert mapper('ID5', 'ID6', [2, 4]) == [[2, 4, 6], [4, 8, 12]] + assert mapper('ID6', 'ID7', [2, 4, 6]) == [[2, 4, 6], [4, 8, 12], [6, 12, 18]] + assert mapper('ID6', 'ID7', [4, 8, 12]) == [[4, 8, 12], [8, 16, 24], [12, 24, 36]] + + +def test_transitive_mapping(mapper): + assert mapper('ID1', 'ID3', [2]) == [[2]] + assert mapper('ID3', 'ID1', [2]) == [[2]] + + +def test_transitive_merge_mapping(mapper): + assert mapper('ID5', 'ID7', [2, 4]) == [[2, 4, 6, 4, 8, 12, 6, 12, 18], [4, 8, 12, 8, 16, 24, 12, 24, 36]] + + +class OneToOneMappingTable(object): + def __init__(self, from_idtype, to_idtype): + self.from_idtype = from_idtype + self.to_idtype = to_idtype + + def __call__(self, ids): + return [[id] for id in ids] + + +class OneToTwoMappingTable(object): + def __init__(self, from_idtype, to_idtype): + self.from_idtype = from_idtype + self.to_idtype = to_idtype + + def __call__(self, ids): + return [[id*2] for id in ids] + + +class TwoToOneMappingTable(object): + def __init__(self, from_idtype, to_idtype): + self.from_idtype = from_idtype + self.to_idtype = to_idtype + + def __call__(self, ids): + return [[id/2] for id in ids] + + +class OneToMoreMappingTable(object): + def __init__(self, from_idtype, to_idtype): + self.from_idtype = from_idtype + self.to_idtype = to_idtype + + def __call__(self, ids): + return [[id, id*2, id*3] for id in ids] From d4892faaa85347ace57b9971686de21d9a859fa5 Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Fri, 18 Mar 2022 15:29:47 +0100 Subject: [PATCH 016/117] Use `scheduled` task executor for ARankingView --- dist/lineup/ARankingView.js | 5 +++++ dist/lineup/ARankingView.js.map | 2 +- src/lineup/ARankingView.ts | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dist/lineup/ARankingView.js b/dist/lineup/ARankingView.js index d3b30186e..d3d02d5cb 100644 --- a/dist/lineup/ARankingView.js +++ b/dist/lineup/ARankingView.js @@ -96,6 +96,11 @@ export class ARankingView extends AView { maxGroupColumns: Infinity, filterGlobally: true, propagateAggregationState: false, + /** + * Specify the task executor to use `direct` = no delay, `scheduled` = run when idle + * `scheduled` also improve scalability and performance by using web workers + */ + taskExecutor: 'scheduled', }, formatSearchBoxItem: (item, node) => { // TypeScript type guard function diff --git a/dist/lineup/ARankingView.js.map b/dist/lineup/ARankingView.js.map index 18b22be6f..6c15eb363 100644 --- a/dist/lineup/ARankingView.js.map +++ b/dist/lineup/ARankingView.js.map @@ -1 +1 @@ -{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ARankingView.js","sourceRoot":"","sources":["../../src/lineup/ARankingView.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lineup/ARankingView.ts b/src/lineup/ARankingView.ts index ba67abdce..d5b923f15 100644 --- a/src/lineup/ARankingView.ts +++ b/src/lineup/ARankingView.ts @@ -130,6 +130,11 @@ export abstract class ARankingView extends AView { maxGroupColumns: Infinity, filterGlobally: true, propagateAggregationState: false, + /** + * Specify the task executor to use `direct` = no delay, `scheduled` = run when idle + * `scheduled` also improve scalability and performance by using web workers + */ + taskExecutor: 'scheduled', }, formatSearchBoxItem: (item: ISearchOption | IGroupSearchItem, node: HTMLElement): string | void => { // TypeScript type guard function From c70c1d791d038cd25c1dba3500a1aef941a7f702 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 23 Mar 2022 13:13:41 +0100 Subject: [PATCH 017/117] Updated all deps in requirements.txt --- requirements.txt | 29 ++++++++++++++++------------- tdp_core/__init__.py | 6 ------ tdp_core/dataset/dataset_def.py | 7 ------- tdp_core/plugin/parser.py | 8 ++++---- tdp_core/security/__init__.py | 3 ++- tdp_core/server/visyn_server.py | 4 ++-- tdp_core/utils.py | 4 +--- 7 files changed, 25 insertions(+), 36 deletions(-) diff --git a/requirements.txt b/requirements.txt index c048f3174..819c05bf2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,25 +1,28 @@ -alembic==1.7.6 -fastapi==0.73.0 -flask-smorest==0.30.0 +alembic==1.7.7 +fastapi==0.75.0 +flask-smorest==0.37.0 flask-swagger-ui==3.36.0 -Flask==1.1.4 +Flask==2.0.3 json-cfg==0.4.2 -marshmallow-sqlalchemy==0.26.1 -marshmallow==3.14.1 +marshmallow-sqlalchemy==0.28.0 +marshmallow==3.15.0 numpy==1.22.3 -openpyxl==3.0.5 +openpyxl==3.0.9 pandas==1.4.1 -Pillow==8.3.2 +Pillow==9.0.1 pydantic==1.9.0 -pyjwt==2.1.0 -pymongo==4.0.2 +pyjwt==2.3.0 +pymongo~=3.11.1 python-memcached==1.59 python-multipart==0.0.5 requests==2.27.1 SQLAlchemy==1.4.32 -urllib3==1.26.8 +urllib3==1.26.9 +uvicorn==0.17.6 yamlreader==3.0.4 # Pin docutils to avoid AttributeError: 'Values' object has no attribute 'section_self_link' -docutils==0.17.1 +# docutils==0.17.1 +docutils==0.18.1 # Pin markupsafe to avoid ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py) -markupsafe==2.0.1 \ No newline at end of file +# markupsafe==2.0.1 +markupsafe==2.1.1 \ No newline at end of file diff --git a/tdp_core/__init__.py b/tdp_core/__init__.py index 80158b8e2..edbfda725 100644 --- a/tdp_core/__init__.py +++ b/tdp_core/__init__.py @@ -62,12 +62,6 @@ def phovea(registry): registry.append("mapping_provider", "tdp_core", "tdp_core.mapping_table") # TODO: Check if this is still required? # registry.append("greenifier", "psycopg2", "tdp_core.sql_use_gevent", {}) - registry.append( - "json-encoder", - "bytes-to-string-encoder", - "tdp_core.bytes_to_string_encoder", - {}, - ) # DB migration plugins registry.append( diff --git a/tdp_core/dataset/dataset_def.py b/tdp_core/dataset/dataset_def.py index 2781c226a..9c2f6eea5 100644 --- a/tdp_core/dataset/dataset_def.py +++ b/tdp_core/dataset/dataset_def.py @@ -1,12 +1,5 @@ from builtins import object import abc -import sys -import importlib -import tdp_core - -importlib.reload(tdp_core) -print(sys.path) -print("TEST!23") from ..utils import fix_id from ..security import can_read, can_write diff --git a/tdp_core/plugin/parser.py b/tdp_core/plugin/parser.py index b9a609841..214864bec 100644 --- a/tdp_core/plugin/parser.py +++ b/tdp_core/plugin/parser.py @@ -284,14 +284,14 @@ def get_config_from_plugins(plugins: List[APlugin]) -> Tuple[List[Dict[str, Dict models: Dict[str, Type[BaseSettings]] = {} for plugin in plugins: plugin_module = plugin.get_module() - if hasattr(plugin_module, 'config_model'): - plugin_config_model = plugin_module.config_model() - if plugin_config_model: + if hasattr(plugin_module, 'visyn_settings_model'): + plugin_settings_model = plugin_module.visyn_settings_model() + if plugin_settings_model: logging.info(f'Plugin {plugin.id} has a settings model') # Load the class of the config and wrap it in a tuple like (, ...), # such that pydantic can use it as type-hint in the create_model class. # Otherwise, it would except to be the default value... - models[plugin.id] = (plugin_config_model, ...) + models[plugin.id] = (plugin_settings_model, ...) else: # Load actual config.json f = plugin.config_file() diff --git a/tdp_core/security/__init__.py b/tdp_core/security/__init__.py index 61b3d8fec..9527f8ba1 100644 --- a/tdp_core/security/__init__.py +++ b/tdp_core/security/__init__.py @@ -1,7 +1,8 @@ # TODO: This file was previously in the tdp_core/security.py file, causing a name conflict with this package. from .manager import login_required, current_username, current_user, is_logged_in -from .permissions import can_execute, can_read, can_write, can, _includes +from .permissions import can_execute, can_read, can_write, can, _includes, DEFAULT_PERMISSION from ..formatter import formatter +from .model import User from functools import wraps diff --git a/tdp_core/server/visyn_server.py b/tdp_core/server/visyn_server.py index 8f0f0613e..6c33aa4af 100644 --- a/tdp_core/server/visyn_server.py +++ b/tdp_core/server/visyn_server.py @@ -24,8 +24,8 @@ def create_visyn_server(*, fast_api_args: dict = {}) -> FastAPI: from ..plugin.parser import load_all_plugins, get_config_from_plugins plugins = load_all_plugins() # With all the plugins, load the corresponding configuration files and create a new model based on the global settings, with all plugin models as sub-models - [plugin_config_files, plugin_config_models] = get_config_from_plugins(plugins) - visyn_server_settings = create_model('VisynServerSettings', __base__=settings_model.GlobalSettings, **plugin_config_models) + [plugin_config_files, plugin_settings_models] = get_config_from_plugins(plugins) + visyn_server_settings = create_model('VisynServerSettings', __base__=settings_model.GlobalSettings, **plugin_settings_models) # Patch the global settings by instantiating the new settings model with the global config, all config.json(s), and pydantic models settings_model.__global_settings = visyn_server_settings(**deep_update(*plugin_config_files, workspace_config)) logging.info('All settings successfully loaded') diff --git a/tdp_core/utils.py b/tdp_core/utils.py index b1dc2daa9..87a82b8e6 100644 --- a/tdp_core/utils.py +++ b/tdp_core/utils.py @@ -3,7 +3,7 @@ from builtins import range from flask import abort, make_response, request, Response import logging - +from .plugin.registry import list_plugins _log = logging.getLogger(__name__) @@ -144,8 +144,6 @@ class JSONExtensibleEncoder(json.JSONEncoder): json encoder with extension point extensions """ - from .plugin.registry import list_plugins - def __init__(self, *args, **kwargs): super(JSONExtensibleEncoder, self).__init__(*args, **kwargs) From e3ed4ef6ab8178309277d29e1bc4ba06d0a66307 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 23 Mar 2022 13:59:01 +0100 Subject: [PATCH 018/117] Added support for testing via pytest --- package.json | 4 +-- requirements_dev.txt | 12 +++---- tdp_core/dataset/dataset.py | 3 +- tdp_core/dataset/dataset_api.py | 2 +- tdp_core/dataset/dataset_def.py | 2 +- tdp_core/dbmigration/__init__.py | 2 +- tdp_core/dbmigration/manager.py | 1 - tdp_core/id_mapping/__init__.py | 17 ---------- tdp_core/id_mapping/idtype_api.py | 14 ++++++-- tdp_core/plugin/parser.py | 4 +-- tdp_core/security/__init__.py | 6 ++-- tdp_core/security/dependencies.py | 1 - tdp_core/security/manager.py | 9 +++-- tdp_core/security/permissions.py | 4 +-- tdp_core/server/mainapp.py | 14 ++------ tdp_core/server/visyn_server.py | 14 ++++---- tdp_core/settings/__init__.py | 2 +- tdp_core/settings/model.py | 34 +++---------------- tdp_core/sql_filter.py | 2 +- tdp_core/tests/__init__.py | 0 tdp_core/tests/conftest.py | 27 +++++++++++++++ .../tests}/test_custom_encoders.py | 3 +- tdp_core/tests/test_main_app.py | 12 +++++++ {tests => tdp_core/tests}/test_mapper.py | 0 tox.ini | 4 +-- 25 files changed, 92 insertions(+), 101 deletions(-) create mode 100644 tdp_core/tests/__init__.py create mode 100644 tdp_core/tests/conftest.py rename {tests => tdp_core/tests}/test_custom_encoders.py (94%) create mode 100644 tdp_core/tests/test_main_app.py rename {tests => tdp_core/tests}/test_mapper.py (100%) diff --git a/package.json b/package.json index 4ec3670d6..8ebeefe29 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "scripts": { "clean": "rimraf build dist lib", "delete-dependencies": "rimraf node_modules", - "check": "black --line-length 160 --check tdp_core", + "check": "flake8 --exclude=.git,venv,deploy,docs,__pycache__,node_modules", "compile": "tsc", "compile:watch": "tsc -w", "postcompile": "npm run copy", @@ -49,7 +49,7 @@ "posttest:web": "npm run lint", "pretest": "echo hybrid", "test:web": "test ! $(find tests -name \"*.ts\") || jest -w=1", - "test:python": "test ! $(find tests -name \"*.py\") || python setup.py test", + "test:python": "pytest tdp_core", "test": "npm run test:web && npm run test:python", "lint": "eslint --cache src/**/*.ts{,x} tests/**/*.ts{,x}", "lint:fix": "eslint --fix --cache src/**/*.ts{,x} tests/**/*.ts{,x}", diff --git a/requirements_dev.txt b/requirements_dev.txt index 8d9bec841..9c8f4811b 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,7 +1,7 @@ -black==22.1.0 debugpy==1.5.1 -pep8-naming==0.11.1 -pytest==6.1.2 -pytest-runner==5.2 -Sphinx==3.3.1 -recommonmark==0.6.0 +flake8==4.0.1 +pep8-naming==0.12.1 +pytest-runner==6.0.0 +pytest==7.1.1 +recommonmark==0.7.1 +Sphinx==4.4.0 diff --git a/tdp_core/dataset/dataset.py b/tdp_core/dataset/dataset.py index 056e6eefc..73671c1b2 100644 --- a/tdp_core/dataset/dataset.py +++ b/tdp_core/dataset/dataset.py @@ -1,6 +1,5 @@ from builtins import str -from ..plugin.registry import list_plugins, lookup_singleton -from .dataset_def import to_idtype_description +from ..plugin.registry import list_plugins import itertools _providers_r = None diff --git a/tdp_core/dataset/dataset_api.py b/tdp_core/dataset/dataset_api.py index fc61df12f..b069279bf 100644 --- a/tdp_core/dataset/dataset_api.py +++ b/tdp_core/dataset/dataset_api.py @@ -1,4 +1,4 @@ -from flask import Flask, abort, request, Response, make_response, jsonify +from flask import Flask, abort, request, Response, make_response from ..utils import etag, jsonify, to_json from builtins import str from ..plugin.registry import list_plugins diff --git a/tdp_core/dataset/dataset_def.py b/tdp_core/dataset/dataset_def.py index 9c2f6eea5..19fdf2f9d 100644 --- a/tdp_core/dataset/dataset_def.py +++ b/tdp_core/dataset/dataset_def.py @@ -6,7 +6,7 @@ def to_plural(s): if s[len(s) - 1] == "y": - return s[0 : len(s) - 1] + "ies" + return s[0:len(s) - 1] + "ies" return s + "s" diff --git a/tdp_core/dbmigration/__init__.py b/tdp_core/dbmigration/__init__.py index 494d9230d..853090b73 100644 --- a/tdp_core/dbmigration/__init__.py +++ b/tdp_core/dbmigration/__init__.py @@ -1 +1 @@ -from .manager import DBMigrationManager, DBMigration, get_db_migration_manager \ No newline at end of file +from .manager import DBMigrationManager, DBMigration, get_db_migration_manager # NOQA diff --git a/tdp_core/dbmigration/manager.py b/tdp_core/dbmigration/manager.py index 8d6ec075d..45b542ce7 100644 --- a/tdp_core/dbmigration/manager.py +++ b/tdp_core/dbmigration/manager.py @@ -279,7 +279,6 @@ def execute(args): _log.info("Currently, only single migrations are supported. Please execute the command for each migration individually as we are working on a fix.") return - # Using REMAINDER as nargs causes the argument to be be optional, but '+' does not work because it also parses additional --attr with the parser which should actually be ignored. # Therefore, args.command might be empty and we simply pass None to trigger the error message db_migration_manager[args.id].execute(args.command if len(args.command) > 0 else None) diff --git a/tdp_core/id_mapping/__init__.py b/tdp_core/id_mapping/__init__.py index a1f282eac..e69de29bb 100644 --- a/tdp_core/id_mapping/__init__.py +++ b/tdp_core/id_mapping/__init__.py @@ -1,17 +0,0 @@ -from ..plugin.registry import lookup_singleton -from ..dataset.dataset import list_datasets -from ..dataset.dataset_def import to_idtype_description -from .manager import get_mappingmanager - - -def list_idtypes(): - tmp = dict() - for d in list_datasets(): - for idtype in d.to_idtype_descriptions(): - tmp[idtype["id"]] = idtype - - # also include the known elements from the mapping graph - mapping = get_mappingmanager() - for idtype_id in mapping.known_idtypes(): - tmp[idtype_id] = to_idtype_description(idtype_id) - return list(tmp.values()) diff --git a/tdp_core/id_mapping/idtype_api.py b/tdp_core/id_mapping/idtype_api.py index c80f6a184..cd70019e8 100644 --- a/tdp_core/id_mapping/idtype_api.py +++ b/tdp_core/id_mapping/idtype_api.py @@ -1,6 +1,6 @@ +from ..dataset.dataset_def import to_idtype_description from ..utils import etag import logging -from . import list_idtypes from .manager import get_mappingmanager from flask import Flask, request, abort, jsonify @@ -13,7 +13,17 @@ @app_idtype.route("/") @etag def _list_idtypes(): - return jsonify(list_idtypes()) + tmp = dict() + # TODO: We probably don't want to have these idtypes as "all" idtypes + # for d in list_datasets(): + # for idtype in d.to_idtype_descriptions(): + # tmp[idtype["id"]] = idtype + + # also include the known elements from the mapping graph + mapping = get_mappingmanager() + for idtype_id in mapping.known_idtypes(): + tmp[idtype_id] = to_idtype_description(idtype_id) + return jsonify(list(tmp.values())) @app_idtype.route("//") diff --git a/tdp_core/plugin/parser.py b/tdp_core/plugin/parser.py index 214864bec..18e60a4e5 100644 --- a/tdp_core/plugin/parser.py +++ b/tdp_core/plugin/parser.py @@ -1,6 +1,6 @@ -from abc import ABC, abstractmethod +from abc import ABC from functools import lru_cache -from typing import Dict, List, Tuple, Type, Union +from typing import Dict, List, Tuple, Type from pkg_resources import iter_entry_points import importlib from pydantic import BaseSettings diff --git a/tdp_core/security/__init__.py b/tdp_core/security/__init__.py index 9527f8ba1..f8e0178c0 100644 --- a/tdp_core/security/__init__.py +++ b/tdp_core/security/__init__.py @@ -1,8 +1,8 @@ # TODO: This file was previously in the tdp_core/security.py file, causing a name conflict with this package. -from .manager import login_required, current_username, current_user, is_logged_in -from .permissions import can_execute, can_read, can_write, can, _includes, DEFAULT_PERMISSION +from .manager import login_required, current_username, current_user, is_logged_in # NOQA +from .permissions import can_execute, can_read, can_write, can, _includes, DEFAULT_PERMISSION # NOQA from ..formatter import formatter -from .model import User +from .model import User # NOQA from functools import wraps diff --git a/tdp_core/security/dependencies.py b/tdp_core/security/dependencies.py index 5c176052c..bcd93311b 100644 --- a/tdp_core/security/dependencies.py +++ b/tdp_core/security/dependencies.py @@ -1,4 +1,3 @@ -from urllib.request import Request from fastapi import Request from .model import User diff --git a/tdp_core/security/manager.py b/tdp_core/security/manager.py index 1bc5ce9e5..73d03e058 100644 --- a/tdp_core/security/manager.py +++ b/tdp_core/security/manager.py @@ -4,7 +4,7 @@ from .store.base_store import BaseStore from ..server.request_context import get_request from ..plugin import registry -from .model import ANONYMOUS_USER, LogoutReturnValue, User +from .model import ANONYMOUS_USER, LogoutReturnValue, Token, User from ..settings import get_global_settings import logging import jwt @@ -13,7 +13,6 @@ from datetime import timedelta from fastapi import Depends, HTTPException, status from fastapi.security import OAuth2PasswordRequestForm -from .model import Token, User from .constants import ACCESS_TOKEN_EXPIRE_MINUTES from fastapi.responses import HTMLResponse, JSONResponse from functools import wraps @@ -60,7 +59,7 @@ def logout(self): @property def is_logged_in(self) -> bool: try: - return self.current_user != None + return self.current_user is not None except Exception: return False @@ -79,7 +78,7 @@ def load_from_request(self, request: Request): if callable(load_from_req): try: user = load_from_req(request) - except: + except Exception: _log.exception(f"Error loading from request in {store}") else: if user: @@ -195,7 +194,7 @@ def security_manager(): def is_logged_in(): - return security_manager().current_user != None + return security_manager().current_user is not None def login_required(func): diff --git a/tdp_core/security/permissions.py b/tdp_core/security/permissions.py index 32e9216e8..49f128d90 100644 --- a/tdp_core/security/permissions.py +++ b/tdp_core/security/permissions.py @@ -10,9 +10,7 @@ def to_number(p_set): return ( - (PERMISSION_READ if PERMISSION_READ in p_set else 0) - + (PERMISSION_WRITE if PERMISSION_WRITE in p_set else 0) - + (PERMISSION_EXECUTE if PERMISSION_EXECUTE in p_set else 0) + (PERMISSION_READ if PERMISSION_READ in p_set else 0) + (PERMISSION_WRITE if PERMISSION_WRITE in p_set else 0) + (PERMISSION_EXECUTE if PERMISSION_EXECUTE in p_set else 0) ) diff --git a/tdp_core/server/mainapp.py b/tdp_core/server/mainapp.py index 726f3eec2..cdf26e47f 100644 --- a/tdp_core/server/mainapp.py +++ b/tdp_core/server/mainapp.py @@ -81,15 +81,7 @@ def _generate_index(): for app in apps: text.append("
  • ") text.append( - '' - + app.title - + '' - + app.name - + '' - + app.description - + "" + '' + app.title + '' + app.name + '' + app.description + "" ) text.append('
  • ") text.append( - '' + app.title + '' + app.name + '' + app.description + "" + '' + + app.title + + '' + + app.name + + '' + + app.description + + "" ) text.append('
  • ") @@ -115,7 +115,7 @@ def _generate_index(): def build_info(): from codecs import open - from ..plugin.registry import get_registry + from .. import manager dependencies = [] all_plugins = [] @@ -126,7 +126,7 @@ def build_info(): with open(requirements, "r", encoding="utf-8") as f: dependencies.extend([line.strip() for line in f.readlines()]) - for p in get_registry().plugins: + for p in manager.registry.plugins: if p.id == "tdp_core": build_info["name"] = p.name build_info["version"] = p.version @@ -146,7 +146,7 @@ def health(): def create(): # check initialization app = Flask(__name__) - if get_global_settings().is_development_mode: + if manager.settings.is_development_mode: app.add_url_rule("/", "index", _generate_index) app.add_url_rule("/index.html", "index", _generate_index) app.add_url_rule("/", "deliver", _deliver) diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py index 177f05ceb..6ad63b7a0 100644 --- a/tdp_core/server/utils.py +++ b/tdp_core/server/utils.py @@ -2,7 +2,7 @@ import logging import time -from ..settings import get_global_settings +from .. import manager _log = logging.getLogger(__name__) @@ -15,14 +15,13 @@ def init_legacy_app(app): :return: """ if hasattr(app, "got_first_request") and app.got_first_request: - _log.warn("already inited: " + str(app)) return if hasattr(app, "debug"): - app.debug = get_global_settings().is_development_mode + app.debug = manager.settings.is_development_mode - if get_global_settings().tdp_core: - app.config["SECRET_KEY"] = get_global_settings().secret_key + if manager.settings.tdp_core: + app.config["SECRET_KEY"] = manager.settings.secret_key @app.errorhandler(500) def handle_exception(e): @@ -48,13 +47,13 @@ def load_after_server_started_hooks(): Load and run all `after_server_started` extension points. The factory method of an extension implementing this extension point should return a function which is then executed here """ - from ..plugin.registry import list_plugins + from .. import manager _log = logging.getLogger(__name__) start = time.time() - after_server_started_hooks = [p.load().factory() for p in list_plugins("after_server_started")] + after_server_started_hooks = [p.load().factory() for p in manager.registry.list("after_server_started")] _log.info(f"Found {len(after_server_started_hooks)} `after_server_started` extension points to run") diff --git a/tdp_core/server/visyn_server.py b/tdp_core/server/visyn_server.py index bc6e0be01..e48a23763 100644 --- a/tdp_core/server/visyn_server.py +++ b/tdp_core/server/visyn_server.py @@ -23,13 +23,14 @@ def create_visyn_server( start_cmd: Optional start command for the server, i.e. db-migration exposes commands like `db-migration exec <..> upgrade head`. workspace_config: Optional override for the workspace configuration. If nothing is provided `load_workspace_config()` is used instead. """ - from ..settings import get_global_settings, model as settings_model + from .. import manager + from ..settings.model import GlobalSettings from ..settings.utils import load_workspace_config # Load the workspace config.json and initialize the global settings workspace_config = workspace_config if isinstance(workspace_config, dict) else load_workspace_config() - settings_model.__global_settings = settings_model.GlobalSettings(**workspace_config) - logging.config.dictConfig(get_global_settings().tdp_core.logging) + manager.settings = GlobalSettings(**workspace_config) + logging.config.dictConfig(manager.settings.tdp_core.logging) logging.info("Workspace settings successfully loaded") # Load the initial plugins @@ -38,14 +39,14 @@ def create_visyn_server( plugins = load_all_plugins() # With all the plugins, load the corresponding configuration files and create a new model based on the global settings, with all plugin models as sub-models [plugin_config_files, plugin_settings_models] = get_config_from_plugins(plugins) - visyn_server_settings = create_model("VisynServerSettings", __base__=settings_model.GlobalSettings, **plugin_settings_models) + visyn_server_settings = create_model("VisynServerSettings", __base__=GlobalSettings, **plugin_settings_models) # Patch the global settings by instantiating the new settings model with the global config, all config.json(s), and pydantic models - settings_model.__global_settings = visyn_server_settings(**deep_update(*plugin_config_files, workspace_config)) + manager.settings = visyn_server_settings(**deep_update(*plugin_config_files, workspace_config)) logging.info("All settings successfully loaded") app = FastAPI( # TODO: Remove debug - debug=get_global_settings().is_development_mode, + debug=manager.settings.is_development_mode, title="Visyn Server", # TODO: Extract version from package.json version="1.0.0", @@ -55,22 +56,35 @@ def create_visyn_server( **fast_api_args, ) - # Initialize global managers. TODO: Should we do that by loading all singletons in the registry? - from ..plugin.registry import get_registry, list_plugins + # Store all globals also in app.state. to allow access in FastAPI routes via request.app.state.. + app.state.settings = manager.settings + + # Initialize global managers. + from ..plugin.registry import Registry + + app.state.registry = manager.registry = Registry() + manager.registry.init_app(app, plugins) - get_registry().init_app(app, plugins) logging.info("Plugin registry successfully initialized") - from ..dbmanager import db_manager + from ..dbmanager import DBManager + + app.state.db_manager = manager.db = DBManager() + manager.db.init_app(app) + + from ..dbmigration.manager import DBMigrationManager + + app.state.db_migration_manager = manager.db_migration = DBMigrationManager() + manager.db_migration.init_app(app, manager.registry.list("tdp-sql-database-migration")) + + from ..security.manager import create_security_manager - db_manager().init_app(app) - from ..dbmigration.manager import db_migration_manager + app.state.security_manager = manager.security = create_security_manager() + manager.security.init_app(app) - db_migration_manager().init_app(app, list_plugins("tdp-sql-database-migration")) - from ..plugin.registry import list_plugins - from ..security.manager import security_manager + from ..id_mapping.manager import create_id_mapping_manager - security_manager().init_app(app) + app.state.id_mapping_manager = manager.id_mapping = create_id_mapping_manager() # TODO: Allow custom command routine (i.e. for db-migrations) from .cmd import parse_command_string @@ -86,14 +100,14 @@ def create_visyn_server( # Load all namespace plugins as WSGIMiddleware plugins from .utils import init_legacy_app, load_after_server_started_hooks - namespace_plugins = list_plugins("namespace") + namespace_plugins = manager.registry.list("namespace") logging.info(f"Registering {len(namespace_plugins)} legacy namespaces via WSGIMiddleware") for p in namespace_plugins: logging.info(f"Registering legacy namespace: {p.namespace}") app.mount(p.namespace, WSGIMiddleware(init_legacy_app(p.load().factory()))) # Load all FastAPI apis - router_plugins = list_plugins("fastapi_router") + router_plugins = manager.registry.list("fastapi_router") logging.info(f"Registering {len(router_plugins)} API-routers") # Load all namespace plugins as WSGIMiddleware plugins for p in router_plugins: diff --git a/tdp_core/settings/__init__.py b/tdp_core/settings/__init__.py index ec8575d14..e69de29bb 100644 --- a/tdp_core/settings/__init__.py +++ b/tdp_core/settings/__init__.py @@ -1 +0,0 @@ -from .model import GlobalSettings, get_global_settings # NOQA diff --git a/tdp_core/settings/model.py b/tdp_core/settings/model.py index 7629353ce..040e1738c 100644 --- a/tdp_core/settings/model.py +++ b/tdp_core/settings/model.py @@ -98,6 +98,13 @@ class VisynServerSettings(BaseModel): class GlobalSettings(BaseSettings): env: Literal["development", "production"] = "development" secret_key: str = "VERY_SECRET_STUFF_T0IB84wlQrdMH8RVT28w" + jwt_expire_in_seconds: int = 24 * 60 * 60 + jwt_refresh_if_expiring_in_seconds: int = 30 * 60 + jwt_algorithm: str = "HS256" + jwt_access_cookie_name: str = "dv_access_token" + jwt_cookie_secure: bool = False + jwt_cookie_samesite: str = "Strict" + jwt_access_cookie_path: str = "/" tdp_core: VisynServerSettings = VisynServerSettings() @property @@ -106,7 +113,6 @@ def is_development_mode(self) -> bool: def get_nested(self, key: str, default: Any = None) -> Union[Any, None]: # TODO: Set deprecated - # TODO: Make sure that env is loaded here keys = key.split(".") plugin_id = keys[0] dic = self.dict(include={plugin_id}) @@ -117,13 +123,3 @@ def get_nested(self, key: str, default: Any = None) -> Union[Any, None]: class Config: extra = Extra.allow env_nested_delimiter = "__" - - -__global_settings: GlobalSettings = None - - -def get_global_settings() -> GlobalSettings: - global __global_settings - if __global_settings is None: - raise Exception("Global setting is not yet initialized!") - return __global_settings diff --git a/tdp_core/settings/router.py b/tdp_core/settings/router.py index 68cf1e232..a65b0e0a9 100644 --- a/tdp_core/settings/router.py +++ b/tdp_core/settings/router.py @@ -1,8 +1,7 @@ from fastapi import APIRouter, Depends, HTTPException -from ..plugin.registry import list_plugins +from .. import manager from ..security.dependencies import get_current_user -from . import get_global_settings router = APIRouter(tags=["Configuration"], prefix="/api/tdp/config", dependencies=[Depends(get_current_user)]) @@ -12,14 +11,14 @@ def get_config_path(path: str): path = path.split("/") key = path[0] - plugin = next((p for p in list_plugins("tdp-config-safe-keys") if p.id == key), None) + plugin = next((p for p in manager.registry.list("tdp-config-safe-keys") if p.id == key), None) if plugin is None: raise HTTPException(status_code=404, detail=f'config key "{key}" not found') path[0] = plugin.configKey - return get_global_settings().get_nested(".".join(path)) + return manager.settings.get_nested(".".join(path)) def create(): diff --git a/tdp_core/sql.py b/tdp_core/sql.py index 552738178..04d68462a 100644 --- a/tdp_core/sql.py +++ b/tdp_core/sql.py @@ -3,7 +3,7 @@ from flask import Flask, abort, jsonify, request -from . import db +from . import db, manager from .formatter import formatter from .security import login_required_for_dbviews from .utils import map_scores, no_cache @@ -32,7 +32,7 @@ def decorated_view(*args, **kwargs): @app.route("/") @login_required_for_dbviews def list_database(): - return jsonify([v.dump(k) for k, v in db.db_manager().connectors.items()]) + return jsonify([v.dump(k) for k, v in manager.db.connectors.items()]) @app.route("//") diff --git a/tdp_core/sql_filter.py b/tdp_core/sql_filter.py index 1e3d8e50c..ad2831715 100644 --- a/tdp_core/sql_filter.py +++ b/tdp_core/sql_filter.py @@ -2,7 +2,7 @@ from werkzeug.datastructures import MultiDict -from .id_mapping.manager import mapping_manager +from . import manager _log = logging.getLogger(__name__) @@ -34,8 +34,6 @@ def add_namedset(vi): def _replace_range_in_ids(v, id_type, target_id_type): - mappingmanager = mapping_manager() - union = set() def add_range(r): @@ -43,7 +41,7 @@ def add_range(r): ids = r if id_type != target_id_type: # need to map the ids - mapped_ids = mappingmanager(id_type, target_id_type, ids) + mapped_ids = manager.id_mapping(id_type, target_id_type, ids) for id in mapped_ids: if id is not None and len(id) > 0: union.add(id[0]) # just the first one for now diff --git a/tdp_core/storage.py b/tdp_core/storage.py index ff5f96741..85798b0c3 100644 --- a/tdp_core/storage.py +++ b/tdp_core/storage.py @@ -6,10 +6,10 @@ import tdp_core.security as security -from .settings import get_global_settings +from . import manager from .utils import etag, fix_id, random_id -c = get_global_settings().tdp_core.mongo +c = manager.settings.tdp_core.mongo _log = logging.getLogger(__name__) app = Flask(__name__) diff --git a/tdp_core/swagger.py b/tdp_core/swagger.py index ec0847b3d..dd46a6c60 100644 --- a/tdp_core/swagger.py +++ b/tdp_core/swagger.py @@ -5,8 +5,7 @@ from flask import Flask, Response, render_template from jinja2 import Template -from . import db -from .plugin.registry import list_plugins +from . import db, manager from .utils import secure_replacements _log = logging.getLogger(__name__) @@ -40,7 +39,7 @@ def to_type(t): return "number" # integrate all views using the template - for database, connector in db.db_manager().connectors.items(): + for database, connector in manager.db.connectors.items(): db.resolve(database) # trigger filling up columns @@ -153,7 +152,7 @@ def to_type(t): base = data_merge(base, part) # post process using extensions - for p in list_plugins("tdp-swagger-postprocessor"): + for p in manager.registry.list("tdp-swagger-postprocessor"): base = p.load().factory(base) return base diff --git a/tdp_core/tests/fixtures/app.py b/tdp_core/tests/fixtures/app.py index c3c71317e..a69b1ed77 100644 --- a/tdp_core/tests/fixtures/app.py +++ b/tdp_core/tests/fixtures/app.py @@ -12,7 +12,7 @@ @pytest.fixture def mock_plugins(monkeypatch): def mock_current_user_in_manager(self): - return permissions.User(id="admin", name="admin") + return permissions.User(id="admin") monkeypatch.setattr(SecurityManager, "current_user", property(mock_current_user_in_manager)) diff --git a/tdp_core/tests/test_security_login.py b/tdp_core/tests/test_security_login.py new file mode 100644 index 000000000..0548c35ea --- /dev/null +++ b/tdp_core/tests/test_security_login.py @@ -0,0 +1,80 @@ +from typing import Dict + +from fastapi.testclient import TestClient + +from tdp_core import manager +from tdp_core.security.model import User + + +def test_api_key(client: TestClient): + assert client.get("/loggedinas", headers={"apiKey": "invalid_user:password"}).json() == '"not_yet_logged_in"' + assert client.get("/loggedinas", headers={"apiKey": "admin:admin"}).json()["name"] == "admin" + + +def test_basic_authorization(client: TestClient): + assert client.get("/loggedinas", auth=("invalid_user", "password")).json() == '"not_yet_logged_in"' + assert client.get("/loggedinas", auth=("admin", "admin")).json()["name"] == "admin" + + +def test_jwt_login(client: TestClient): + # Add additional claims loaders + @manager.security.jwt_claims_loader + def claims_loader_1(user: User): + return {"hello": "world"} + + @manager.security.jwt_claims_loader + def claims_loader_2(user: User): + return {"username": user.name} + + # Check if we are actually not logged in + response = client.get("/loggedinas") + assert response.status_code == 200 + assert response.json() == '"not_yet_logged_in"' + + # Login with the dummy user + response = client.post("/login", data={"username": "admin", "password": "admin"}) + assert response.status_code == 200 + user: Dict = response.json() + assert user["name"] == "admin" + assert user["roles"] == ["admin"] + assert user["payload"]["hello"] == "world" + assert user["payload"]["username"] == "admin" + + # Check if we are logged in and get the same response as from the login + response = client.get("/loggedinas") + assert response.status_code == 200 + assert user == response.json() + assert ( + client.cookies.get(manager.settings.jwt_access_cookie_name) == user["access_token"] + ) # Access token is equal in response and cookies + + # Now, we set the timeout to refresh artificially high to force a jwt refresh + original_jwt_refresh_if_expiring_in_seconds = manager.settings.jwt_refresh_if_expiring_in_seconds + manager.settings.jwt_refresh_if_expiring_in_seconds = manager.settings.jwt_expire_in_seconds + 5 + + # Check if we are still logged in and get the same response as the refresh happens *after* the request + assert user == client.get("/loggedinas").json() + assert ( + client.cookies.get(manager.settings.jwt_access_cookie_name) != user["access_token"] + ) # Access token is different in response and cookies + + # Restore the original jwt refresh timeout + manager.settings.jwt_refresh_if_expiring_in_seconds = original_jwt_refresh_if_expiring_in_seconds + + # Check if we are logged in and get a different response as the cookie was auto-refreshed in the last request + refreshed_user = client.get("/loggedinas").json() + assert user["name"] == refreshed_user["name"] # Same user + assert user["access_token"] != refreshed_user["access_token"] # But different token + assert user["payload"]["exp"] < refreshed_user["payload"]["exp"] # With longer expiry date + assert ( + client.cookies.get(manager.settings.jwt_access_cookie_name) == refreshed_user["access_token"] + ) # Access token is equal in new response and cookies + + # Logout + response = client.post("/logout") + assert response.status_code == 200 + + # Check if we are actually not logged in anymore + response = client.get("/loggedinas") + assert response.status_code == 200 + assert response.json() == '"not_yet_logged_in"' diff --git a/tdp_core/utils.py b/tdp_core/utils.py index 1251dcf5b..a90d4d603 100644 --- a/tdp_core/utils.py +++ b/tdp_core/utils.py @@ -5,7 +5,7 @@ from flask import Response, abort, make_response, request -from .plugin.registry import list_plugins +from . import manager _log = logging.getLogger(__name__) @@ -28,12 +28,10 @@ def map_scores(scores, from_idtype, to_idtype): """ if len(scores) == 0: return [] - from .id_mapping.manager import mapping_manager - manager = mapping_manager() - if not manager.can_map(from_idtype, to_idtype): + if not manager.id_mapping.can_map(from_idtype, to_idtype): abort(400, "score cannot be mapped to target") - mapped_ids = manager(from_idtype, to_idtype, [r["id"] for r in scores]) + mapped_ids = manager.id_mapping(from_idtype, to_idtype, [r["id"] for r in scores]) mapped_scores = [] for score, mapped in zip(scores, mapped_ids): @@ -149,7 +147,7 @@ class JSONExtensibleEncoder(json.JSONEncoder): def __init__(self, *args, **kwargs): super(JSONExtensibleEncoder, self).__init__(*args, **kwargs) - self.encoders = [p.load().factory() for p in list_plugins("json-encoder")] + self.encoders = [p.load().factory() for p in manager.registry.list("json-encoder")] def default(self, o): for encoder in self.encoders: From 665b0641312b3527fd6b2fafb356fa9c16cd8248 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Tue, 19 Apr 2022 10:32:45 +0200 Subject: [PATCH 057/117] prettier --- dist/views/scatterplot/base/AScatterplot.d.ts | 3 +-- dist/views/scatterplot/base/AScatterplot.d.ts.map | 2 +- dist/views/visyn/demo/VisynDemoView.d.ts | 1 + dist/views/visyn/demo/VisynDemoView.d.ts.map | 2 +- dist/vis/Vis.d.ts | 1 + dist/vis/Vis.d.ts.map | 2 +- dist/vis/Vis.js.map | 2 +- dist/vis/VisSidebar.d.ts | 1 + dist/vis/VisSidebar.d.ts.map | 2 +- src/vis/Vis.tsx | 2 +- 10 files changed, 10 insertions(+), 8 deletions(-) diff --git a/dist/views/scatterplot/base/AScatterplot.d.ts b/dist/views/scatterplot/base/AScatterplot.d.ts index 80d61e564..ea519c1ca 100644 --- a/dist/views/scatterplot/base/AScatterplot.d.ts +++ b/dist/views/scatterplot/base/AScatterplot.d.ts @@ -1,4 +1,3 @@ -/// import { AxisScale, Axis } from 'd3-axis'; import { ZoomScale, ZoomTransform, ZoomBehavior } from 'd3-zoom'; import { Quadtree } from 'd3-quadtree'; @@ -304,7 +303,7 @@ export declare abstract class AScatterplot> * adapt the current translation (is absolute in pixels) and consider if the dimensions of the canvas element have changed */ private adaptMaxTranslation; - protected rescale(axis: EScaleAxes, scale: IScale): any; + protected rescale(axis: EScaleAxes, scale: IScale): IScale; protected mousePosAtCanvas(): number[]; private setTransform; private window2transform; diff --git a/dist/views/scatterplot/base/AScatterplot.d.ts.map b/dist/views/scatterplot/base/AScatterplot.d.ts.map index 6aa108a08..c32dc382f 100644 --- a/dist/views/scatterplot/base/AScatterplot.d.ts.map +++ b/dist/views/scatterplot/base/AScatterplot.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"AScatterplot.d.ts","sourceRoot":"","sources":["../../../../src/views/scatterplot/base/AScatterplot.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"AScatterplot.d.ts","sourceRoot":"","sources":["../../../../src/views/scatterplot/base/AScatterplot.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/views/visyn/demo/VisynDemoView.d.ts b/dist/views/visyn/demo/VisynDemoView.d.ts index 4df3855fd..6e4ff5068 100644 --- a/dist/views/visyn/demo/VisynDemoView.d.ts +++ b/dist/views/visyn/demo/VisynDemoView.d.ts @@ -1,3 +1,4 @@ +/// import { DemoVisynViewPluginType } from './interfaces'; export declare function VisynDemoView({ desc, parameters, onParametersChanged }: DemoVisynViewPluginType['props']): JSX.Element; export declare function VisynDemoViewSidebar({ parameters, onParametersChanged }: DemoVisynViewPluginType['props']): JSX.Element; diff --git a/dist/views/visyn/demo/VisynDemoView.d.ts.map b/dist/views/visyn/demo/VisynDemoView.d.ts.map index 54d6675d1..d3da0fa6e 100644 --- a/dist/views/visyn/demo/VisynDemoView.d.ts.map +++ b/dist/views/visyn/demo/VisynDemoView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisynDemoView.d.ts","sourceRoot":"","sources":["../../../../src/views/visyn/demo/VisynDemoView.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAkEvD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eA0BxG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiBzG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiCnH;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAY3E"} \ No newline at end of file +{"version":3,"file":"VisynDemoView.d.ts","sourceRoot":"","sources":["../../../../src/views/visyn/demo/VisynDemoView.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAkEvD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eA0BxG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiBzG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiCnH;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAY3E"} \ No newline at end of file diff --git a/dist/vis/Vis.d.ts b/dist/vis/Vis.d.ts index bbb7a5b86..60a0db221 100644 --- a/dist/vis/Vis.d.ts +++ b/dist/vis/Vis.d.ts @@ -1,3 +1,4 @@ +/// import { IVisConfig, VisColumn, EFilterOptions } from './interfaces'; export declare function Vis({ columns, selected, colors, shapes, selectionCallback, filterCallback, setExternalConfig, externalConfig, hideSidebar, }: { /** diff --git a/dist/vis/Vis.d.ts.map b/dist/vis/Vis.d.ts.map index 6ac13b134..8f674486e 100644 --- a/dist/vis/Vis.d.ts.map +++ b/dist/vis/Vis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAQf,MAAM,cAAc,CAAC;AAwBtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAAuB,EACvB,MAAuB,EACvB,iBAA8B,EAC9B,cAA2B,EAC3B,iBAA8B,EAC9B,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAiKA"} \ No newline at end of file +{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAQf,MAAM,cAAc,CAAC;AAwBtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAAuB,EACvB,MAAuB,EACvB,iBAA8B,EAC9B,cAA2B,EAC3B,iBAA8B,EAC9B,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAiKA"} \ No newline at end of file diff --git a/dist/vis/Vis.js.map b/dist/vis/Vis.js.map index ff25d6877..2c54fa4e6 100644 --- a/dist/vis/Vis.js.map +++ b/dist/vis/Vis.js.map @@ -1 +1 @@ -{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/VisSidebar.d.ts b/dist/vis/VisSidebar.d.ts index a354f7263..a0d76cd45 100644 --- a/dist/vis/VisSidebar.d.ts +++ b/dist/vis/VisSidebar.d.ts @@ -1,3 +1,4 @@ +/// import { IVisConfig, VisColumn, ICommonVisSideBarProps } from './interfaces'; export declare type VisSidebarProps = { /** diff --git a/dist/vis/VisSidebar.d.ts.map b/dist/vis/VisSidebar.d.ts.map index 1910646d5..63c5bf3fa 100644 --- a/dist/vis/VisSidebar.d.ts.map +++ b/dist/vis/VisSidebar.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisSidebar.d.ts","sourceRoot":"","sources":["../../src/vis/VisSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAU7E,oBAAY,eAAe,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,UAAU,CAAC;IAC3B,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C,GAAG,sBAAsB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,cAA2B,EAAE,cAAqB,EAAE,iBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,eAmDtJ"} \ No newline at end of file +{"version":3,"file":"VisSidebar.d.ts","sourceRoot":"","sources":["../../src/vis/VisSidebar.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAU7E,oBAAY,eAAe,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,UAAU,CAAC;IAC3B,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C,GAAG,sBAAsB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,cAA2B,EAAE,cAAqB,EAAE,iBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,eAmDtJ"} \ No newline at end of file diff --git a/src/vis/Vis.tsx b/src/vis/Vis.tsx index c4c9b8483..dfa69dfbc 100644 --- a/src/vis/Vis.tsx +++ b/src/vis/Vis.tsx @@ -119,7 +119,7 @@ export function Vis({ const setExternalConfigRef = useSyncedRef(setExternalConfig); useEffect(() => { setExternalConfigRef.current?.(visConfig); - // eslint-disable-next-line react-hooks/exhaustive-deps + // eslint-disable-next-line react-hooks/exhaustive-deps }, [JSON.stringify(visConfig), setExternalConfigRef]); const setVisConfig = React.useCallback((newConfig: IVisConfig) => { From 9ebbe12c3effb988326ab317c490fe218e8dfd64 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Tue, 19 Apr 2022 14:02:41 +0200 Subject: [PATCH 058/117] removing columns from dependency --- dist/vis/Vis.js | 2 +- dist/vis/Vis.js.map | 2 +- src/vis/Vis.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/vis/Vis.js b/dist/vis/Vis.js index bf843f1b8..5be09a5c8 100644 --- a/dist/vis/Vis.js +++ b/dist/vis/Vis.js @@ -93,7 +93,7 @@ export function Vis({ columns, selected = [], colors = DEFAULT_COLORS, shapes = } // DANGER:: this useEffect should only occur when the visConfig.type changes. adding visconfig into the dep array will cause an infinite loop. // eslint-disable-next-line react-hooks/exhaustive-deps - }, [inconsistentVisConfig.type, columns]); + }, [inconsistentVisConfig.type]); useEffect(() => { if (externalConfig) { setVisConfig(externalConfig); diff --git a/dist/vis/Vis.js.map b/dist/vis/Vis.js.map index 2c54fa4e6..764afbe6e 100644 --- a/dist/vis/Vis.js.map +++ b/dist/vis/Vis.js.map @@ -1 +1 @@ -{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/Vis.tsx b/src/vis/Vis.tsx index dfa69dfbc..88472bea3 100644 --- a/src/vis/Vis.tsx +++ b/src/vis/Vis.tsx @@ -154,7 +154,7 @@ export function Vis({ } // DANGER:: this useEffect should only occur when the visConfig.type changes. adding visconfig into the dep array will cause an infinite loop. // eslint-disable-next-line react-hooks/exhaustive-deps - }, [inconsistentVisConfig.type, columns]); + }, [inconsistentVisConfig.type]); useEffect(() => { if (externalConfig) { From c4f87d732e728505b824d56984d76b88e71de351 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Tue, 19 Apr 2022 16:46:19 +0200 Subject: [PATCH 059/117] increasing size of selected points when color is applied --- dist/base/rest.d.ts | 2 +- dist/utils/TDPApplicationUtils.d.ts | 6 ++++-- dist/utils/TDPApplicationUtils.d.ts.map | 2 +- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 8 ++++---- dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/utils.ts | 12 ++++-------- 7 files changed, 16 insertions(+), 18 deletions(-) diff --git a/dist/base/rest.d.ts b/dist/base/rest.d.ts index c5d627419..fdf2099ee 100644 --- a/dist/base/rest.d.ts +++ b/dist/base/rest.d.ts @@ -165,7 +165,7 @@ export declare class RestBaseUtils { * @param filters URL filter parameters */ static mergeParamAndFilters(params: IParams, filters: IParams): { - [x: string]: string | number | boolean | string[] | boolean[] | number[]; + [x: string]: string | number | boolean | string[] | number[] | boolean[]; }; /** * query the TDP rest api to read data with additional given filters diff --git a/dist/utils/TDPApplicationUtils.d.ts b/dist/utils/TDPApplicationUtils.d.ts index 34cb07273..1fda5a116 100644 --- a/dist/utils/TDPApplicationUtils.d.ts +++ b/dist/utils/TDPApplicationUtils.d.ts @@ -41,8 +41,10 @@ export declare class TDPApplicationUtils { inverse: import("../clue/provenance").IAction; }; static initSession(map: object): import("../clue/provenance").IAction; - static setParameterImpl(inputs: IObjectRef[], parameter: any, graph: ProvenanceGraph): any; - static setParameter(view: IObjectRef, name: string, value: any, previousValue: any): any; + static setParameterImpl(inputs: IObjectRef[], parameter: any, graph: ProvenanceGraph): Promise<{ + inverse: import("../clue/provenance").IAction; + }>; + static setParameter(view: IObjectRef, name: string, value: any, previousValue: any): import("../clue/provenance").IAction; static compressSetParameter(path: ActionNode[]): ActionNode[]; /** * @deprecated diff --git a/dist/utils/TDPApplicationUtils.d.ts.map b/dist/utils/TDPApplicationUtils.d.ts.map index 2519180d4..6dd16dbe9 100644 --- a/dist/utils/TDPApplicationUtils.d.ts.map +++ b/dist/utils/TDPApplicationUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"TDPApplicationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/TDPApplicationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1H,OAAO,EAAe,WAAW,EAAyB,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAEhC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAE;CAC5C;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAiC;IAGpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oBAAoB;IAEpD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,qBAAqB;IAEtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CA2B1E;IAEF;;;OAGG;IAEH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAalC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM;IAIlD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;;wBAsLnE,QAAQ,KAAG,QAAQ,WAAW,CAAC;;IAyBnD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM;;;IAerE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;WAcjB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,KAAA,EAAE,KAAK,EAAE,eAAe;IAW1F,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmBlG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE;CAGlD"} \ No newline at end of file +{"version":3,"file":"TDPApplicationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/TDPApplicationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1H,OAAO,EAAe,WAAW,EAAyB,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAEhC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAE;CAC5C;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAiC;IAGpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oBAAoB;IAEpD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,qBAAqB;IAEtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CA2B1E;IAEF;;;OAGG;IAEH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAalC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM;IAIlD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;;wBAsLnE,QAAQ,KAAG,QAAQ,WAAW,CAAC;;IAyBnD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM;;;IAerE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;WAcjB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,KAAA,EAAE,KAAK,EAAE,eAAe;;;IAW1F,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmBlG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE;CAGlD"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index cc0410924..5b0c8a026 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA0PrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAsPrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 7a1719ea9..26d835a3f 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -106,10 +106,10 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => selected[v.id] ? '#E29609' : colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val)) + ? validCols[0].resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: 8, + size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, }, }, xLabel: validCols[0].info.name, @@ -162,10 +162,10 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => selected[v.id] ? '#E29609' : colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val)) + ? xCurr.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: 8, + size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, }, }, xLabel: xCurr.info.name, diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 01867af5b..211961adf 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index d8b816eb7..64e328585 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -152,12 +152,10 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => - selected[v.id] ? '#E29609' : colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val), - ) + ? validCols[0].resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: 8, + size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, }, }, xLabel: validCols[0].info.name, @@ -208,12 +206,10 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => - selected[v.id] ? '#E29609' : colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val), - ) + ? xCurr.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: 8, + size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, }, }, xLabel: xCurr.info.name, From 948c1fb760adf8c93e4c40bac384eb8ebe0d7955 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Wed, 20 Apr 2022 14:20:58 +0200 Subject: [PATCH 060/117] code improvements to remove duplicate sidebar code --- dist/vis/VisSidebarWrapper.d.ts | 6 +++++ dist/vis/VisSidebarWrapper.d.ts.map | 1 + dist/vis/VisSidebarWrapper.js | 8 +++++++ dist/vis/VisSidebarWrapper.js.map | 1 + dist/vis/bar/BarVis.d.ts.map | 2 +- dist/vis/bar/BarVis.js | 8 +++---- dist/vis/bar/BarVis.js.map | 2 +- dist/vis/pcp/PCPVis.d.ts.map | 2 +- dist/vis/pcp/PCPVis.js | 8 +++---- dist/vis/pcp/PCPVis.js.map | 2 +- dist/vis/scatter/ScatterVis.d.ts.map | 2 +- dist/vis/scatter/ScatterVis.js | 8 +++---- dist/vis/scatter/ScatterVis.js.map | 2 +- dist/vis/strip/StripVis.d.ts.map | 2 +- dist/vis/strip/StripVis.js | 8 +++---- dist/vis/strip/StripVis.js.map | 2 +- dist/vis/violin/ViolinVis.d.ts.map | 2 +- dist/vis/violin/ViolinVis.js | 8 +++---- dist/vis/violin/ViolinVis.js.map | 2 +- src/vis/VisSidebarWrapper.tsx | 22 +++++++++++++++++++ src/vis/bar/BarVis.tsx | 19 ++++------------ src/vis/pcp/PCPVis.tsx | 19 ++++------------ src/vis/scatter/ScatterVis.tsx | 33 ++++++++++------------------ src/vis/strip/StripVis.tsx | 19 ++++------------ src/vis/violin/ViolinVis.tsx | 19 ++++------------ 25 files changed, 90 insertions(+), 117 deletions(-) create mode 100644 dist/vis/VisSidebarWrapper.d.ts create mode 100644 dist/vis/VisSidebarWrapper.d.ts.map create mode 100644 dist/vis/VisSidebarWrapper.js create mode 100644 dist/vis/VisSidebarWrapper.js.map create mode 100644 src/vis/VisSidebarWrapper.tsx diff --git a/dist/vis/VisSidebarWrapper.d.ts b/dist/vis/VisSidebarWrapper.d.ts new file mode 100644 index 000000000..1c96974f4 --- /dev/null +++ b/dist/vis/VisSidebarWrapper.d.ts @@ -0,0 +1,6 @@ +import { ReactNode } from 'react'; +export declare function VisSidebarWrapper({ id, children }: { + id: string; + children: ReactNode; +}): JSX.Element; +//# sourceMappingURL=VisSidebarWrapper.d.ts.map \ No newline at end of file diff --git a/dist/vis/VisSidebarWrapper.d.ts.map b/dist/vis/VisSidebarWrapper.d.ts.map new file mode 100644 index 000000000..53345d80f --- /dev/null +++ b/dist/vis/VisSidebarWrapper.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"VisSidebarWrapper.d.ts","sourceRoot":"","sources":["../../src/vis/VisSidebarWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,eAkBtF"} \ No newline at end of file diff --git a/dist/vis/VisSidebarWrapper.js b/dist/vis/VisSidebarWrapper.js new file mode 100644 index 000000000..b798e784c --- /dev/null +++ b/dist/vis/VisSidebarWrapper.js @@ -0,0 +1,8 @@ +import * as React from 'react'; +export function VisSidebarWrapper({ id, children }) { + return (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto" }, + React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, + React.createElement("i", { className: "fas fa-bars" })), + React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, children))); +} +//# sourceMappingURL=VisSidebarWrapper.js.map \ No newline at end of file diff --git a/dist/vis/VisSidebarWrapper.js.map b/dist/vis/VisSidebarWrapper.js.map new file mode 100644 index 000000000..a088eeac0 --- /dev/null +++ b/dist/vis/VisSidebarWrapper.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VisSidebarWrapper.js","sourceRoot":"","sources":["../../src/vis/VisSidebarWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,UAAU,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAuC;IACrF,OAAO,CACL,6BAAK,SAAS,EAAC,8DAA8D;QAC3E,gCACE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,QAAQ,oBACE,UAAU,oBACT,wBAAwB,EAAE,EAAE,mBAC9B,MAAM,mBACN,sBAAsB;YAEpC,2BAAG,SAAS,EAAC,aAAa,GAAG,CACtB;QACT,6BAAK,SAAS,EAAC,mCAAmC,EAAC,EAAE,EAAE,uBAAuB,EAAE,EAAE,IAC/E,QAAQ,CACL,CACF,CACP,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/dist/vis/bar/BarVis.d.ts.map b/dist/vis/bar/BarVis.d.ts.map index f182d735c..e0d83a78c 100644 --- a/dist/vis/bar/BarVis.d.ts.map +++ b/dist/vis/bar/BarVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BarVis.d.ts","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAQ5F,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,YAAY,CAAC,EAAE;YACb,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,WAAW,eAkGzH"} \ No newline at end of file +{"version":3,"file":"BarVis.d.ts","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAS5F,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,YAAY,CAAC,EAAE;YACb,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,WAAW,eAsFzH"} \ No newline at end of file diff --git a/dist/vis/bar/BarVis.js b/dist/vis/bar/BarVis.js index ea733d244..5cf47051a 100644 --- a/dist/vis/bar/BarVis.js +++ b/dist/vis/bar/BarVis.js @@ -9,6 +9,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { useAsync } from '../../hooks'; import { createBarTraces } from './utils'; import { BarVisSidebar } from './BarVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, postPlot: null, @@ -67,10 +68,7 @@ export function BarVis({ config, optionsConfig, extensions, columns, setConfig, } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, mergedExtensions.postPlot), - !hideSidebar ? (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto mt-2" }, - React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, - React.createElement("i", { className: "fas fa-bars" })), - React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, - React.createElement(BarVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig })))) : null)); + !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, + React.createElement(BarVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } //# sourceMappingURL=BarVis.js.map \ No newline at end of file diff --git a/dist/vis/bar/BarVis.js.map b/dist/vis/bar/BarVis.js.map index 73c305f81..f7027fb29 100644 --- a/dist/vis/bar/BarVis.js.map +++ b/dist/vis/bar/BarVis.js.map @@ -1 +1 @@ -{"version":3,"file":"BarVis.js","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BarVis.js","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.d.ts.map b/dist/vis/pcp/PCPVis.d.ts.map index 6d3215bc4..c2f74c42d 100644 --- a/dist/vis/pcp/PCPVis.d.ts.map +++ b/dist/vis/pcp/PCPVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"PCPVis.d.ts","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAOlE,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAa,EAAE,WAAmB,EAAE,EAAE,WAAW,eAkFjH"} \ No newline at end of file +{"version":3,"file":"PCPVis.d.ts","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQlE,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAa,EAAE,WAAmB,EAAE,EAAE,WAAW,eAsEjH"} \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.js b/dist/vis/pcp/PCPVis.js index fceef569c..2ed2aaf75 100644 --- a/dist/vis/pcp/PCPVis.js +++ b/dist/vis/pcp/PCPVis.js @@ -6,6 +6,7 @@ import { InvalidCols } from '../general'; import { createPCPTraces } from './utils'; import { useAsync } from '../../hooks'; import { PCPVisSidebar } from './PCPVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, postPlot: null, @@ -49,10 +50,7 @@ export function PCPVis({ config, extensions, columns, setConfig, selected = {}, mergedExtensions.prePlot, traceStatus === 'success' && (traces === null || traces === void 0 ? void 0 : traces.plots.length) > 0 ? (React.createElement(PlotlyComponent, { divId: `plotlyDiv${id}`, data: [...traces.plots.map((p) => p.data), ...traces.legendPlots.map((p) => p.data)], layout: layout, config: { responsive: true, displayModeBar: false }, useResizeHandler: true, style: { width: '100%', height: '100%' } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, mergedExtensions.postPlot), - !hideSidebar ? (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto mt-2" }, - React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, - React.createElement("i", { className: "fas fa-bars" })), - React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, - React.createElement(PCPVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig })))) : null)); + !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, + React.createElement(PCPVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } //# sourceMappingURL=PCPVis.js.map \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.js.map b/dist/vis/pcp/PCPVis.js.map index 9ecbd9daa..d1c335eea 100644 --- a/dist/vis/pcp/PCPVis.js.map +++ b/dist/vis/pcp/PCPVis.js.map @@ -1 +1 @@ -{"version":3,"file":"PCPVis.js","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgBhD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAe;IAChH,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzH,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,OAAO;SACR;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAgC,GAAG,EAAE;QAC/D,OAAO,MAAM;YACX,CAAC,CAAC;gBACE,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE;gBACpF,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;iBACjB;gBACD,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,CAAC;aACb;YACH,CAAC,CAAC,IAAI,CAAC;IACX,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,6BAAK,SAAS,EAAC,6BAA6B,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QACtE,6BACE,SAAS,EAAE,kFACT,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAC3D,EAAE;YAED,gBAAgB,CAAC,OAAO;YACxB,WAAW,KAAK,SAAS,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,CACvD,oBAAC,eAAe,IACd,KAAK,EAAE,YAAY,EAAE,EAAE,EACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACpF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACnD,gBAAgB,QAChB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAGxC,CACH,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAC9B,oBAAC,WAAW,IAAC,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAA,GAAI,CACrH,CAAC,CAAC,CAAC,IAAI;YACP,gBAAgB,CAAC,QAAQ,CACtB;QACL,CAAC,WAAW,CAAC,CAAC,CAAC,CACd,6BAAK,SAAS,EAAC,mEAAmE;YAChF,gCACE,SAAS,EAAC,yBAAyB,EACnC,IAAI,EAAC,QAAQ,oBACE,UAAU,oBACT,wBAAwB,EAAE,EAAE,mBAC9B,MAAM,mBACN,sBAAsB;gBAEpC,2BAAG,SAAS,EAAC,aAAa,GAAG,CACtB;YACT,6BAAK,SAAS,EAAC,mCAAmC,EAAC,EAAE,EAAE,uBAAuB,EAAE,EAAE;gBAChF,oBAAC,aAAa,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7F,CACF,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"PCPVis.js","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.d.ts.map b/dist/vis/scatter/ScatterVis.d.ts.map index d59ec48aa..fa4557535 100644 --- a/dist/vis/scatter/ScatterVis.d.ts.map +++ b/dist/vis/scatter/ScatterVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAiBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAiIA"} \ No newline at end of file +{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAkBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAqHA"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.js b/dist/vis/scatter/ScatterVis.js index 86b3d7e38..c7b30b641 100644 --- a/dist/vis/scatter/ScatterVis.js +++ b/dist/vis/scatter/ScatterVis.js @@ -10,6 +10,7 @@ import { OpacitySlider } from '../sidebar/OpacitySlider'; import { ScatterVisSidebar } from './ScatterVisSidebar'; import { PlotlyComponent, Plotly } from '../Plot'; import { useAsync } from '../../hooks'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, postPlot: null, @@ -87,10 +88,7 @@ export function ScatterVis({ config, optionsConfig, extensions, columns, shapes React.createElement(BrushOptionButtons, { callback: (dragMode) => setConfig({ ...config, dragMode }), dragMode: config.dragMode }), React.createElement(OpacitySlider, { callback: (e) => setConfig({ ...config, alphaSliderVal: e }), currentValue: config.alphaSliderVal })), mergedExtensions.postPlot), - !hideSidebar ? (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto mt-2" }, - React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, - React.createElement("i", { className: "fas fa-bars" })), - React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, - React.createElement(ScatterVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, filterCallback: filterCallback, setConfig: setConfig })))) : null)); + !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, + React.createElement(ScatterVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, filterCallback: filterCallback, setConfig: setConfig }))) : null)); } //# sourceMappingURL=ScatterVis.js.map \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.js.map b/dist/vis/scatter/ScatterVis.js.map index 8484ef5d6..ba24f0b57 100644 --- a/dist/vis/scatter/ScatterVis.js.map +++ b/dist/vis/scatter/ScatterVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/strip/StripVis.d.ts.map b/dist/vis/strip/StripVis.d.ts.map index a3ade54dc..96efc6fd1 100644 --- a/dist/vis/strip/StripVis.d.ts.map +++ b/dist/vis/strip/StripVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"StripVis.d.ts","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQ5E,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,iBAA8B,EAC9B,QAAa,EACb,MAAM,EACN,WAAmB,GACpB,EAAE,aAAa,eAsGf"} \ No newline at end of file +{"version":3,"file":"StripVis.d.ts","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAS5E,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,iBAA8B,EAC9B,QAAa,EACb,MAAM,EACN,WAAmB,GACpB,EAAE,aAAa,eA0Ff"} \ No newline at end of file diff --git a/dist/vis/strip/StripVis.js b/dist/vis/strip/StripVis.js index aa501bbb2..0654a6fd3 100644 --- a/dist/vis/strip/StripVis.js +++ b/dist/vis/strip/StripVis.js @@ -8,6 +8,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { createStripTraces } from './utils'; import { useAsync } from '../../hooks'; import { StripVisSidebar } from './StripVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, postPlot: null, @@ -68,10 +69,7 @@ export function StripVis({ config, extensions, columns, setConfig, selectionCall } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, mergedExtensions.postPlot), - !hideSidebar ? (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto mt-2" }, - React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, - React.createElement("i", { className: "fas fa-bars" })), - React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, - React.createElement(StripVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig })))) : null)); + !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, + React.createElement(StripVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } //# sourceMappingURL=StripVis.js.map \ No newline at end of file diff --git a/dist/vis/strip/StripVis.js.map b/dist/vis/strip/StripVis.js.map index 29ee3d32f..72a11b966 100644 --- a/dist/vis/strip/StripVis.js.map +++ b/dist/vis/strip/StripVis.js.map @@ -1 +1 @@ -{"version":3,"file":"StripVis.js","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StripVis.js","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.d.ts.map b/dist/vis/violin/ViolinVis.d.ts.map index 149950d74..5edc49871 100644 --- a/dist/vis/violin/ViolinVis.d.ts.map +++ b/dist/vis/violin/ViolinVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ViolinVis.d.ts","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQ7E,UAAU,cAAc;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,cAAc,eAkG/H"} \ No newline at end of file +{"version":3,"file":"ViolinVis.d.ts","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS7E,UAAU,cAAc;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,cAAc,eAsF/H"} \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.js b/dist/vis/violin/ViolinVis.js index c00eca4e4..3bc850455 100644 --- a/dist/vis/violin/ViolinVis.js +++ b/dist/vis/violin/ViolinVis.js @@ -8,6 +8,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { createViolinTraces } from './utils'; import { useAsync } from '../../hooks'; import { ViolinVisSidebar } from './ViolinVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, postPlot: null, @@ -65,10 +66,7 @@ export function ViolinVis({ config, optionsConfig, extensions, columns, setConfi } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, mergedExtensions.postPlot), - !hideSidebar ? (React.createElement("div", { className: "position-relative h-100 flex-shrink-1 bg-light overflow-auto mt-2" }, - React.createElement("button", { className: "btn btn-primary-outline", type: "button", "data-bs-toggle": "collapse", "data-bs-target": `#generalVisBurgerMenu${id}`, "aria-expanded": "true", "aria-controls": "generalVisBurgerMenu" }, - React.createElement("i", { className: "fas fa-bars" })), - React.createElement("div", { className: "collapse show collapse-horizontal", id: `generalVisBurgerMenu${id}` }, - React.createElement(ViolinVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig })))) : null)); + !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, + React.createElement(ViolinVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } //# sourceMappingURL=ViolinVis.js.map \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.js.map b/dist/vis/violin/ViolinVis.js.map index 8abc5acae..785495f43 100644 --- a/dist/vis/violin/ViolinVis.js.map +++ b/dist/vis/violin/ViolinVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ViolinVis.js","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ViolinVis.js","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/VisSidebarWrapper.tsx b/src/vis/VisSidebarWrapper.tsx new file mode 100644 index 000000000..0f8de9804 --- /dev/null +++ b/src/vis/VisSidebarWrapper.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; +import { ReactNode } from 'react'; + +export function VisSidebarWrapper({ id, children }: { id: string; children: ReactNode }) { + return ( +
    + +
    + {children} +
    +
    + ); +} diff --git a/src/vis/bar/BarVis.tsx b/src/vis/bar/BarVis.tsx index 00b2aff10..a15484c3f 100644 --- a/src/vis/bar/BarVis.tsx +++ b/src/vis/bar/BarVis.tsx @@ -9,6 +9,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { useAsync } from '../../hooks'; import { createBarTraces } from './utils'; import { BarVisSidebar } from './BarVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; interface BarVisProps { config: IBarConfig; @@ -133,21 +134,9 @@ export function BarVis({ config, optionsConfig, extensions, columns, setConfig, {mergedExtensions.postPlot} {!hideSidebar ? ( -
    - -
    - -
    -
    + + + ) : null} ); diff --git a/src/vis/pcp/PCPVis.tsx b/src/vis/pcp/PCPVis.tsx index ef0258237..209244404 100644 --- a/src/vis/pcp/PCPVis.tsx +++ b/src/vis/pcp/PCPVis.tsx @@ -7,6 +7,7 @@ import { InvalidCols } from '../general'; import { createPCPTraces } from './utils'; import { useAsync } from '../../hooks'; import { PCPVisSidebar } from './PCPVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; interface PCPVisProps { config: IPCPConfig; @@ -93,21 +94,9 @@ export function PCPVis({ config, extensions, columns, setConfig, selected = {}, {mergedExtensions.postPlot} {!hideSidebar ? ( -
    - -
    - -
    -
    + + + ) : null} ); diff --git a/src/vis/scatter/ScatterVis.tsx b/src/vis/scatter/ScatterVis.tsx index e50bf45ac..36f7ca822 100644 --- a/src/vis/scatter/ScatterVis.tsx +++ b/src/vis/scatter/ScatterVis.tsx @@ -11,6 +11,7 @@ import { OpacitySlider } from '../sidebar/OpacitySlider'; import { ScatterVisSidebar } from './ScatterVisSidebar'; import { PlotlyComponent, Plotly } from '../Plot'; import { useAsync } from '../../hooks'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; const defaultExtensions = { prePlot: null, @@ -167,28 +168,16 @@ export function ScatterVis({ {mergedExtensions.postPlot} {!hideSidebar ? ( -
    - -
    - -
    -
    + + + ) : null} ); diff --git a/src/vis/strip/StripVis.tsx b/src/vis/strip/StripVis.tsx index 85213f4ed..2706a7a1b 100644 --- a/src/vis/strip/StripVis.tsx +++ b/src/vis/strip/StripVis.tsx @@ -9,6 +9,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { createStripTraces } from './utils'; import { useAsync } from '../../hooks'; import { StripVisSidebar } from './StripVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; interface StripVisProps { config: IStripConfig; @@ -126,21 +127,9 @@ export function StripVis({ {mergedExtensions.postPlot} {!hideSidebar ? ( -
    - -
    - -
    -
    + + + ) : null} ); diff --git a/src/vis/violin/ViolinVis.tsx b/src/vis/violin/ViolinVis.tsx index df93287a3..78908c483 100644 --- a/src/vis/violin/ViolinVis.tsx +++ b/src/vis/violin/ViolinVis.tsx @@ -9,6 +9,7 @@ import { beautifyLayout } from '../general/layoutUtils'; import { createViolinTraces } from './utils'; import { useAsync } from '../../hooks'; import { ViolinVisSidebar } from './ViolinVisSidebar'; +import { VisSidebarWrapper } from '../VisSidebarWrapper'; interface ViolinVisProps { config: IViolinConfig; @@ -117,21 +118,9 @@ export function ViolinVis({ config, optionsConfig, extensions, columns, setConfi {mergedExtensions.postPlot} {!hideSidebar ? ( -
    - -
    - -
    -
    + + + ) : null} ); From 6b5d5f13533d96ff923ccb7d48d924b39550430a Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Wed, 20 Apr 2022 14:46:31 +0200 Subject: [PATCH 061/117] adding optional close button with custom callback --- dist/vis/LineupVisWrapper.d.ts.map | 2 +- dist/vis/LineupVisWrapper.js | 3 ++- dist/vis/LineupVisWrapper.js.map | 2 +- dist/vis/Vis.d.ts | 4 +++- dist/vis/Vis.d.ts.map | 2 +- dist/vis/Vis.js | 12 +++++----- dist/vis/Vis.js.map | 2 +- dist/vis/bar/BarVis.d.ts | 4 +++- dist/vis/bar/BarVis.d.ts.map | 2 +- dist/vis/bar/BarVis.js | 6 +++-- dist/vis/bar/BarVis.js.map | 2 +- dist/vis/pcp/PCPVis.d.ts | 4 +++- dist/vis/pcp/PCPVis.d.ts.map | 2 +- dist/vis/pcp/PCPVis.js | 6 +++-- dist/vis/pcp/PCPVis.js.map | 2 +- dist/vis/scatter/ScatterVis.d.ts | 4 +++- dist/vis/scatter/ScatterVis.d.ts.map | 2 +- dist/vis/scatter/ScatterVis.js | 6 +++-- dist/vis/scatter/ScatterVis.js.map | 2 +- dist/vis/sidebar/CloseButton.d.ts | 5 ++++ dist/vis/sidebar/CloseButton.d.ts.map | 1 + dist/vis/sidebar/CloseButton.js | 7 ++++++ dist/vis/sidebar/CloseButton.js.map | 1 + dist/vis/strip/StripVis.d.ts | 4 +++- dist/vis/strip/StripVis.d.ts.map | 2 +- dist/vis/strip/StripVis.js | 6 +++-- dist/vis/strip/StripVis.js.map | 2 +- dist/vis/violin/ViolinVis.d.ts | 4 +++- dist/vis/violin/ViolinVis.d.ts.map | 2 +- dist/vis/violin/ViolinVis.js | 6 +++-- dist/vis/violin/ViolinVis.js.map | 2 +- src/vis/LineupVisWrapper.ts | 3 ++- src/vis/Vis.tsx | 34 +++++++++++++++++++++++++-- src/vis/bar/BarVis.tsx | 17 +++++++++++++- src/vis/pcp/PCPVis.tsx | 15 +++++++++++- src/vis/scatter/ScatterVis.tsx | 8 +++++++ src/vis/sidebar/CloseButton.tsx | 11 +++++++++ src/vis/strip/StripVis.tsx | 6 +++++ src/vis/violin/ViolinVis.tsx | 17 +++++++++++++- 39 files changed, 179 insertions(+), 43 deletions(-) create mode 100644 dist/vis/sidebar/CloseButton.d.ts create mode 100644 dist/vis/sidebar/CloseButton.d.ts.map create mode 100644 dist/vis/sidebar/CloseButton.js create mode 100644 dist/vis/sidebar/CloseButton.js.map create mode 100644 src/vis/sidebar/CloseButton.tsx diff --git a/dist/vis/LineupVisWrapper.d.ts.map b/dist/vis/LineupVisWrapper.d.ts.map index 467ccac60..8a6cf4e74 100644 --- a/dist/vis/LineupVisWrapper.d.ts.map +++ b/dist/vis/LineupVisWrapper.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"LineupVisWrapper.d.ts","sourceRoot":"","sources":["../../src/vis/LineupVisWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuC,iBAAiB,EAAsC,MAAM,UAAU,CAAC;AAKtH,qBAAa,gBAAgB;IAWzB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;QACxB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B;;;WAGG;QACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC5C,GAAG,EAAE,QAAQ,CAAC;KACf;IAlBH;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAAQ;IAEvD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAU;gBAGL,KAAK,EAAE;QACxB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B;;;WAGG;QACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC5C,GAAG,EAAE,QAAQ,CAAC;KACf;IAQH,eAAe,QAAO,MAAM,EAAE,CAI5B;IAEF,cAAc,MAAO,MAAM,UAazB;IAEF,eAAe,aAiEb;IAEF,eAAe,aASb;IAEF,IAAI,aAIF;CACH"} \ No newline at end of file +{"version":3,"file":"LineupVisWrapper.d.ts","sourceRoot":"","sources":["../../src/vis/LineupVisWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuC,iBAAiB,EAAsC,MAAM,UAAU,CAAC;AAKtH,qBAAa,gBAAgB;IAWzB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;QACxB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B;;;WAGG;QACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC5C,GAAG,EAAE,QAAQ,CAAC;KACf;IAlBH;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAAQ;IAEvD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAU;gBAGL,KAAK,EAAE;QACxB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B;;;WAGG;QACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC5C,GAAG,EAAE,QAAQ,CAAC;KACf;IAQH,eAAe,QAAO,MAAM,EAAE,CAI5B;IAEF,cAAc,MAAO,MAAM,UAazB;IAEF,eAAe,aAmEb;IAEF,eAAe,aASb;IAEF,IAAI,aAGF;CACH"} \ No newline at end of file diff --git a/dist/vis/LineupVisWrapper.js b/dist/vis/LineupVisWrapper.js index 929671a3c..fd1277357 100644 --- a/dist/vis/LineupVisWrapper.js +++ b/dist/vis/LineupVisWrapper.js @@ -74,6 +74,8 @@ export class LineupVisWrapper { selected: selectedList, selectionCallback: (visynIds) => this.props.selectionCallback(visynIds), filterCallback: (s) => this.filterCallback(s), + showCloseButton: true, + closeCallback: () => this.hide(), }), this.node); }; this.toggleCustomVis = () => { @@ -85,7 +87,6 @@ export class LineupVisWrapper { this.updateCustomVis(); }; this.hide = () => { - ReactDOM.unmountComponentAtNode(this.node); this.viewable = false; this.node.style.display = 'none'; }; diff --git a/dist/vis/LineupVisWrapper.js.map b/dist/vis/LineupVisWrapper.js.map index 486f64bfd..66adf665f 100644 --- a/dist/vis/LineupVisWrapper.js.map +++ b/dist/vis/LineupVisWrapper.js.map @@ -1 +1 @@ -{"version":3,"file":"LineupVisWrapper.js","sourceRoot":"","sources":["../../src/vis/LineupVisWrapper.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LineupVisWrapper.js","sourceRoot":"","sources":["../../src/vis/LineupVisWrapper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/Vis.d.ts b/dist/vis/Vis.d.ts index e7918449d..37444eb9a 100644 --- a/dist/vis/Vis.d.ts +++ b/dist/vis/Vis.d.ts @@ -1,6 +1,6 @@ /// import { IVisConfig, VisColumn, EFilterOptions } from './interfaces'; -export declare function Vis({ columns, selected, colors, shapes, selectionCallback, filterCallback, externalConfig, hideSidebar, }: { +export declare function Vis({ columns, selected, colors, shapes, selectionCallback, filterCallback, closeCallback, showCloseButton, externalConfig, hideSidebar, }: { /** * Required data columns which are displayed. */ @@ -25,6 +25,8 @@ export declare function Vis({ columns, selected, colors, shapes, selectionCallba * Optional Prop which is called when a filter is applied. Returns a string identifying what type of filter is desired. This logic will be simplified in the future. */ filterCallback?: (s: EFilterOptions) => void; + closeCallback?: () => void; + showCloseButton?: boolean; externalConfig?: IVisConfig; hideSidebar?: boolean; }): JSX.Element; diff --git a/dist/vis/Vis.d.ts.map b/dist/vis/Vis.d.ts.map index 966dfce92..5b3781c5d 100644 --- a/dist/vis/Vis.d.ts.map +++ b/dist/vis/Vis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAOf,MAAM,cAAc,CAAC;AAQtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAWC,EACD,MAAoD,EACpD,iBAA8B,EAC9B,cAA2B,EAC3B,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eA0HA"} \ No newline at end of file +{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAOf,MAAM,cAAc,CAAC;AAQtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAWC,EACD,MAAoD,EACpD,iBAA8B,EAC9B,cAA2B,EAC3B,aAA0B,EAC1B,eAAuB,EACvB,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAoJA"} \ No newline at end of file diff --git a/dist/vis/Vis.js b/dist/vis/Vis.js index 6d452a10e..2504643f4 100644 --- a/dist/vis/Vis.js +++ b/dist/vis/Vis.js @@ -19,7 +19,7 @@ export function Vis({ columns, selected = [], colors = [ getCssValue('visyn-c8'), getCssValue('visyn-c9'), getCssValue('visyn-c10'), -], shapes = ['circle', 'square', 'triangle-up', 'star'], selectionCallback = () => null, filterCallback = () => null, externalConfig = null, hideSidebar = false, }) { +], shapes = ['circle', 'square', 'triangle-up', 'star'], selectionCallback = () => null, filterCallback = () => null, closeCallback = () => null, showCloseButton = false, externalConfig = null, hideSidebar = false, }) { const [visConfig, setVisConfig] = React.useState(externalConfig || columns.filter((c) => c.type === EColumnTypes.NUMERICAL).length > 1 ? { type: ESupportedPlotlyVis.SCATTER, @@ -82,14 +82,14 @@ export function Vis({ columns, selected = [], colors = [ color: { enable: true, }, - }, shapes: shapes, setConfig: setVisConfig, filterCallback: filterCallback, selectionCallback: selectionCallback, selectedMap: selectedMap, selectedList: selected, columns: columns, scales: scales, hideSidebar: hideSidebar })) : null, + }, shapes: shapes, setConfig: setVisConfig, filterCallback: filterCallback, selectionCallback: selectionCallback, selectedMap: selectedMap, selectedList: selected, columns: columns, scales: scales, hideSidebar: hideSidebar, showCloseButton: showCloseButton, closeButtonCallback: closeCallback })) : null, isViolin(visConfig) ? (React.createElement(ViolinVis, { config: visConfig, optionsConfig: { overlay: { enable: true, }, - }, setConfig: setVisConfig, columns: columns, scales: scales, hideSidebar: hideSidebar })) : null, - isStrip(visConfig) ? (React.createElement(StripVis, { config: visConfig, selectionCallback: selectionCallback, setConfig: setVisConfig, selected: selectedMap, columns: columns, scales: scales, hideSidebar: hideSidebar })) : null, - isPCP(visConfig) ? React.createElement(PCPVis, { config: visConfig, selected: selectedMap, setConfig: setVisConfig, columns: columns, hideSidebar: hideSidebar }) : null, - isBar(visConfig) ? React.createElement(BarVis, { config: visConfig, setConfig: setVisConfig, columns: columns, scales: scales, hideSidebar: hideSidebar }) : null)); + }, setConfig: setVisConfig, columns: columns, scales: scales, hideSidebar: hideSidebar, showCloseButton: showCloseButton, closeButtonCallback: closeCallback })) : null, + isStrip(visConfig) ? (React.createElement(StripVis, { config: visConfig, selectionCallback: selectionCallback, setConfig: setVisConfig, selected: selectedMap, columns: columns, scales: scales, hideSidebar: hideSidebar, showCloseButton: showCloseButton, closeButtonCallback: closeCallback })) : null, + isPCP(visConfig) ? (React.createElement(PCPVis, { config: visConfig, selected: selectedMap, setConfig: setVisConfig, columns: columns, hideSidebar: hideSidebar, showCloseButton: showCloseButton, closeButtonCallback: closeCallback })) : null, + isBar(visConfig) ? (React.createElement(BarVis, { config: visConfig, setConfig: setVisConfig, columns: columns, scales: scales, hideSidebar: hideSidebar, showCloseButton: showCloseButton, closeButtonCallback: closeCallback })) : null)); } //# sourceMappingURL=Vis.js.map \ No newline at end of file diff --git a/dist/vis/Vis.js.map b/dist/vis/Vis.js.map index f930bde19..3429b3425 100644 --- a/dist/vis/Vis.js.map +++ b/dist/vis/Vis.js.map @@ -1 +1 @@ -{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,mBAAmB,EAKnB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG;IACP,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,WAAW,CAAC;CACzB,EACD,MAAM,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EACpD,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,EAC3B,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAC1B,eAAe,GAAG,KAAK,EACvB,cAAc,GAAG,IAAI,EACrB,WAAW,GAAG,KAAK,GA8BpB;IACC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC9C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QACnF,CAAC,CAAC;YACE,IAAI,EAAE,mBAAmB,CAAC,OAAO;YACjC,kBAAkB,EAAE,EAAE;YACtB,KAAK,EAAE,IAAI;YACX,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;YACtD,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;YAC1C,cAAc,EAAE,GAAG;SACpB;QACH,CAAC,CAAC;YACE,IAAI,EAAE,mBAAmB,CAAC,GAAG;YAC7B,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,aAAa,CAAC,QAAQ;YACjC,OAAO,EAAE,eAAe,CAAC,QAAQ;YACjC,SAAS,EAAE,gBAAgB,CAAC,KAAK;YACjC,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,IAAI;SACxB,CACN,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;YACxB,YAAY,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SAC7D;QACD,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;YACvB,YAAY,CAAC,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SAC5D;QACD,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,YAAY,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;YACpB,YAAY,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SACzD;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;YACpB,YAAY,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;SACzD;QACD,8IAA8I;QAC9I,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc,EAAE;YAClB,YAAY,CAAC,cAAc,CAAC,CAAC;SAC9B;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,MAAM,GAAW,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO;YACL,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL;QACG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACtB,oBAAC,UAAU,IACT,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,EACD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,aAAa,GAClC,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACrB,oBAAC,SAAS,IACR,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE;gBACb,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI;iBACb;aACF,EACD,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,aAAa,GAClC,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACpB,oBAAC,QAAQ,IACP,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,aAAa,GAClC,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAClB,oBAAC,MAAM,IACL,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,aAAa,GAClC,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAClB,oBAAC,MAAM,IACL,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,aAAa,GAClC,CACH,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/dist/vis/bar/BarVis.d.ts b/dist/vis/bar/BarVis.d.ts index b134481c8..8f889f333 100644 --- a/dist/vis/bar/BarVis.d.ts +++ b/dist/vis/bar/BarVis.d.ts @@ -31,10 +31,12 @@ interface BarVisProps { postSidebar?: React.ReactNode; }; columns: VisColumn[]; + closeButtonCallback?: () => void; + showCloseButton?: boolean; setConfig: (config: IVisConfig) => void; scales: Scales; hideSidebar?: boolean; } -export declare function BarVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar }: BarVisProps): JSX.Element; +export declare function BarVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar, showCloseButton, closeButtonCallback, }: BarVisProps): JSX.Element; export {}; //# sourceMappingURL=BarVis.d.ts.map \ No newline at end of file diff --git a/dist/vis/bar/BarVis.d.ts.map b/dist/vis/bar/BarVis.d.ts.map index e0d83a78c..be812205a 100644 --- a/dist/vis/bar/BarVis.d.ts.map +++ b/dist/vis/bar/BarVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BarVis.d.ts","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAS5F,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,YAAY,CAAC,EAAE;YACb,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,WAAW,eAsFzH"} \ No newline at end of file +{"version":3,"file":"BarVis.d.ts","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAU5F,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,YAAY,CAAC,EAAE;YACb,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,GACjC,EAAE,WAAW,eAuFb"} \ No newline at end of file diff --git a/dist/vis/bar/BarVis.js b/dist/vis/bar/BarVis.js index 5cf47051a..e5c2b2b8a 100644 --- a/dist/vis/bar/BarVis.js +++ b/dist/vis/bar/BarVis.js @@ -10,13 +10,14 @@ import { useAsync } from '../../hooks'; import { createBarTraces } from './utils'; import { BarVisSidebar } from './BarVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, postPlot: null, preSidebar: null, postSidebar: null, }; -export function BarVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false }) { +export function BarVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false, showCloseButton = false, closeButtonCallback = () => null, }) { const mergedExtensions = React.useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -67,7 +68,8 @@ export function BarVis({ config, optionsConfig, extensions, columns, setConfig, d3.select(`g .${p.data.yaxis}title`).style('pointer-events', 'all').append('title').text(p.yLabel); } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, - mergedExtensions.postPlot), + mergedExtensions.postPlot, + showCloseButton ? React.createElement(CloseButton, { closeCallback: closeButtonCallback }) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(BarVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/bar/BarVis.js.map b/dist/vis/bar/BarVis.js.map index f7027fb29..52c08bba7 100644 --- a/dist/vis/bar/BarVis.js.map +++ b/dist/vis/bar/BarVis.js.map @@ -1 +1 @@ -{"version":3,"file":"BarVis.js","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"BarVis.js","sourceRoot":"","sources":["../../../src/vis/bar/BarVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAA6C,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAyCrD,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EACrB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,KAAK,EACvB,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,GACpB;IACZ,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,OAAO,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvH,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,OAAO;SACR;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,MAAM,WAAW,GAAkB;YACjC,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE;gBACN,aAAa;gBACb,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,KAAK;aACvB;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE;YACpF,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;SACzE,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/B,OAAO,CACL,6BAAK,SAAS,EAAC,6BAA6B,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QACtE,6BACE,SAAS,EAAE,kFACT,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAC3D,EAAE;YAED,gBAAgB,CAAC,OAAO;YACxB,WAAW,KAAK,SAAS,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,CACvD,oBAAC,eAAe,IACd,KAAK,EAAE,YAAY,EAAE,EAAE,EACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACpF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EACnD,gBAAgB,QAChB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;gBACxC,0EAA0E;gBAC1E,QAAQ,EAAE,GAAG,EAAE;oBACb,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE;wBAC5B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;wBAEnG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qBACpG;gBACH,CAAC,GACD,CACH,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAC9B,oBAAC,WAAW,IAAC,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAA,GAAI,CACrH,CAAC,CAAC,CAAC,IAAI;YACP,gBAAgB,CAAC,QAAQ;YACzB,eAAe,CAAC,CAAC,CAAC,oBAAC,WAAW,IAAC,aAAa,EAAE,mBAAmB,GAAI,CAAC,CAAC,CAAC,IAAI,CACzE;QACL,CAAC,WAAW,CAAC,CAAC,CAAC,CACd,oBAAC,iBAAiB,IAAC,EAAE,EAAE,EAAE;YACvB,oBAAC,aAAa,IAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7G,CACrB,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.d.ts b/dist/vis/pcp/PCPVis.d.ts index 9b0b29e22..36dba41a4 100644 --- a/dist/vis/pcp/PCPVis.d.ts +++ b/dist/vis/pcp/PCPVis.d.ts @@ -14,7 +14,9 @@ interface PCPVisProps { [key: string]: boolean; }; hideSidebar?: boolean; + closeButtonCallback?: () => void; + showCloseButton?: boolean; } -export declare function PCPVis({ config, extensions, columns, setConfig, selected, hideSidebar }: PCPVisProps): JSX.Element; +export declare function PCPVis({ config, extensions, columns, setConfig, showCloseButton, closeButtonCallback, selected, hideSidebar, }: PCPVisProps): JSX.Element; export {}; //# sourceMappingURL=PCPVis.d.ts.map \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.d.ts.map b/dist/vis/pcp/PCPVis.d.ts.map index c2f74c42d..79d90a06a 100644 --- a/dist/vis/pcp/PCPVis.d.ts.map +++ b/dist/vis/pcp/PCPVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"PCPVis.d.ts","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQlE,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAa,EAAE,WAAmB,EAAE,EAAE,WAAW,eAsEjH"} \ No newline at end of file +{"version":3,"file":"PCPVis.d.ts","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AASlE,UAAU,WAAW;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,eAAuB,EACvB,mBAAgC,EAChC,QAAa,EACb,WAAmB,GACpB,EAAE,WAAW,eAuEb"} \ No newline at end of file diff --git a/dist/vis/pcp/PCPVis.js b/dist/vis/pcp/PCPVis.js index 2ed2aaf75..8dde3d742 100644 --- a/dist/vis/pcp/PCPVis.js +++ b/dist/vis/pcp/PCPVis.js @@ -7,13 +7,14 @@ import { createPCPTraces } from './utils'; import { useAsync } from '../../hooks'; import { PCPVisSidebar } from './PCPVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, postPlot: null, preSidebar: null, postSidebar: null, }; -export function PCPVis({ config, extensions, columns, setConfig, selected = {}, hideSidebar = false }) { +export function PCPVis({ config, extensions, columns, setConfig, showCloseButton = false, closeButtonCallback = () => null, selected = {}, hideSidebar = false, }) { const mergedExtensions = useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -49,7 +50,8 @@ export function PCPVis({ config, extensions, columns, setConfig, selected = {}, React.createElement("div", { className: `position-relative d-flex justify-content-center align-items-center flex-grow-1 ${traceStatus === 'pending' ? 'tdp-busy-partial-overlay' : ''}` }, mergedExtensions.prePlot, traceStatus === 'success' && (traces === null || traces === void 0 ? void 0 : traces.plots.length) > 0 ? (React.createElement(PlotlyComponent, { divId: `plotlyDiv${id}`, data: [...traces.plots.map((p) => p.data), ...traces.legendPlots.map((p) => p.data)], layout: layout, config: { responsive: true, displayModeBar: false }, useResizeHandler: true, style: { width: '100%', height: '100%' } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, - mergedExtensions.postPlot), + mergedExtensions.postPlot, + showCloseButton ? React.createElement(CloseButton, { closeCallback: closeButtonCallback }) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(PCPVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/pcp/PCPVis.js.map b/dist/vis/pcp/PCPVis.js.map index d1c335eea..360872497 100644 --- a/dist/vis/pcp/PCPVis.js.map +++ b/dist/vis/pcp/PCPVis.js.map @@ -1 +1 @@ -{"version":3,"file":"PCPVis.js","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PCPVis.js","sourceRoot":"","sources":["../../../src/vis/pcp/PCPVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.d.ts b/dist/vis/scatter/ScatterVis.d.ts index 4aacb418c..a8c25fbb0 100644 --- a/dist/vis/scatter/ScatterVis.d.ts +++ b/dist/vis/scatter/ScatterVis.d.ts @@ -1,6 +1,6 @@ import * as React from 'react'; import { EFilterOptions, IVisConfig, Scales, IScatterConfig, VisColumn } from '../interfaces'; -export declare function ScatterVis({ config, optionsConfig, extensions, columns, shapes, filterCallback, selectionCallback, selectedMap, selectedList, setConfig, hideSidebar, scales, }: { +export declare function ScatterVis({ config, optionsConfig, extensions, columns, shapes, filterCallback, selectionCallback, selectedMap, selectedList, setConfig, hideSidebar, showCloseButton, closeButtonCallback, scales, }: { config: IScatterConfig; optionsConfig?: { color?: { @@ -26,6 +26,7 @@ export declare function ScatterVis({ config, optionsConfig, extensions, columns, columns: VisColumn[]; filterCallback?: (s: EFilterOptions) => void; selectionCallback?: (ids: string[]) => void; + closeButtonCallback?: () => void; selectedMap?: { [key: string]: boolean; }; @@ -33,5 +34,6 @@ export declare function ScatterVis({ config, optionsConfig, extensions, columns, setConfig: (config: IVisConfig) => void; scales: Scales; hideSidebar?: boolean; + showCloseButton?: boolean; }): JSX.Element; //# sourceMappingURL=ScatterVis.d.ts.map \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.d.ts.map b/dist/vis/scatter/ScatterVis.d.ts.map index fa4557535..c12a9725a 100644 --- a/dist/vis/scatter/ScatterVis.d.ts.map +++ b/dist/vis/scatter/ScatterVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAkBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAqHA"} \ No newline at end of file +{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAmBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,EAChC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,eAwHA"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.js b/dist/vis/scatter/ScatterVis.js index c7b30b641..c42722544 100644 --- a/dist/vis/scatter/ScatterVis.js +++ b/dist/vis/scatter/ScatterVis.js @@ -11,13 +11,14 @@ import { ScatterVisSidebar } from './ScatterVisSidebar'; import { PlotlyComponent, Plotly } from '../Plot'; import { useAsync } from '../../hooks'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, postPlot: null, preSidebar: null, postSidebar: null, }; -export function ScatterVis({ config, optionsConfig, extensions, columns, shapes = ['circle', 'square', 'triangle-up', 'star'], filterCallback = () => null, selectionCallback = () => null, selectedMap = {}, selectedList = [], setConfig, hideSidebar = false, scales, }) { +export function ScatterVis({ config, optionsConfig, extensions, columns, shapes = ['circle', 'square', 'triangle-up', 'star'], filterCallback = () => null, selectionCallback = () => null, selectedMap = {}, selectedList = [], setConfig, hideSidebar = false, showCloseButton = false, closeButtonCallback = () => null, scales, }) { const id = React.useMemo(() => uniqueId('ScatterVis'), []); useEffect(() => { if (hideSidebar) { @@ -87,7 +88,8 @@ export function ScatterVis({ config, optionsConfig, extensions, columns, shapes React.createElement("div", { className: "position-absolute d-flex justify-content-center align-items-center top-0 start-50 translate-middle-x" }, React.createElement(BrushOptionButtons, { callback: (dragMode) => setConfig({ ...config, dragMode }), dragMode: config.dragMode }), React.createElement(OpacitySlider, { callback: (e) => setConfig({ ...config, alphaSliderVal: e }), currentValue: config.alphaSliderVal })), - mergedExtensions.postPlot), + mergedExtensions.postPlot, + showCloseButton ? (React.createElement(CloseButton, { closeCallback: closeButtonCallback })) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(ScatterVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, filterCallback: filterCallback, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/scatter/ScatterVis.js.map b/dist/vis/scatter/ScatterVis.js.map index ba24f0b57..8ac931fdf 100644 --- a/dist/vis/scatter/ScatterVis.js.map +++ b/dist/vis/scatter/ScatterVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/sidebar/CloseButton.d.ts b/dist/vis/sidebar/CloseButton.d.ts new file mode 100644 index 000000000..fb72491b9 --- /dev/null +++ b/dist/vis/sidebar/CloseButton.d.ts @@ -0,0 +1,5 @@ +/// +export declare function CloseButton({ closeCallback }: { + closeCallback: () => void; +}): JSX.Element; +//# sourceMappingURL=CloseButton.d.ts.map \ No newline at end of file diff --git a/dist/vis/sidebar/CloseButton.d.ts.map b/dist/vis/sidebar/CloseButton.d.ts.map new file mode 100644 index 000000000..f6afd912e --- /dev/null +++ b/dist/vis/sidebar/CloseButton.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"CloseButton.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/CloseButton.tsx"],"names":[],"mappings":";AAEA,wBAAgB,WAAW,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,MAAM,IAAI,CAAA;CAAE,eAQ3E"} \ No newline at end of file diff --git a/dist/vis/sidebar/CloseButton.js b/dist/vis/sidebar/CloseButton.js new file mode 100644 index 000000000..be7f2f6f6 --- /dev/null +++ b/dist/vis/sidebar/CloseButton.js @@ -0,0 +1,7 @@ +import * as React from 'react'; +export function CloseButton({ closeCallback }) { + return (React.createElement("div", { className: "position-absolute end-0 top-0" }, + React.createElement("button", { onClick: () => closeCallback(), className: "btn btn-primary-outline", type: "button" }, + React.createElement("i", { className: "fas fa-times" })))); +} +//# sourceMappingURL=CloseButton.js.map \ No newline at end of file diff --git a/dist/vis/sidebar/CloseButton.js.map b/dist/vis/sidebar/CloseButton.js.map new file mode 100644 index 000000000..7b4ca8edd --- /dev/null +++ b/dist/vis/sidebar/CloseButton.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CloseButton.js","sourceRoot":"","sources":["../../../src/vis/sidebar/CloseButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,UAAU,WAAW,CAAC,EAAE,aAAa,EAAiC;IAC1E,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC5C,gCAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAC,QAAQ;YACvF,2BAAG,SAAS,EAAC,cAAc,GAAG,CACvB,CACL,CACP,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/dist/vis/strip/StripVis.d.ts b/dist/vis/strip/StripVis.d.ts index 4c1fb0e68..85eec2f80 100644 --- a/dist/vis/strip/StripVis.d.ts +++ b/dist/vis/strip/StripVis.d.ts @@ -12,11 +12,13 @@ interface StripVisProps { setConfig: (config: IVisConfig) => void; scales: Scales; selectionCallback?: (s: string[]) => void; + closeButtonCallback?: () => void; selected?: { [key: string]: boolean; }; hideSidebar?: boolean; + showCloseButton?: boolean; } -export declare function StripVis({ config, extensions, columns, setConfig, selectionCallback, selected, scales, hideSidebar, }: StripVisProps): JSX.Element; +export declare function StripVis({ config, extensions, columns, setConfig, selectionCallback, selected, scales, hideSidebar, showCloseButton, closeButtonCallback, }: StripVisProps): JSX.Element; export {}; //# sourceMappingURL=StripVis.d.ts.map \ No newline at end of file diff --git a/dist/vis/strip/StripVis.d.ts.map b/dist/vis/strip/StripVis.d.ts.map index 96efc6fd1..25d1e19fe 100644 --- a/dist/vis/strip/StripVis.d.ts.map +++ b/dist/vis/strip/StripVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"StripVis.d.ts","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAS5E,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,iBAA8B,EAC9B,QAAa,EACb,MAAM,EACN,WAAmB,GACpB,EAAE,aAAa,eA0Ff"} \ No newline at end of file +{"version":3,"file":"StripVis.d.ts","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAU5E,UAAU,aAAa;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,iBAA8B,EAC9B,QAAa,EACb,MAAM,EACN,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,GACjC,EAAE,aAAa,eA2Ff"} \ No newline at end of file diff --git a/dist/vis/strip/StripVis.js b/dist/vis/strip/StripVis.js index 0654a6fd3..3a2d15761 100644 --- a/dist/vis/strip/StripVis.js +++ b/dist/vis/strip/StripVis.js @@ -9,13 +9,14 @@ import { createStripTraces } from './utils'; import { useAsync } from '../../hooks'; import { StripVisSidebar } from './StripVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, postPlot: null, preSidebar: null, postSidebar: null, }; -export function StripVis({ config, extensions, columns, setConfig, selectionCallback = () => null, selected = {}, scales, hideSidebar = false, }) { +export function StripVis({ config, extensions, columns, setConfig, selectionCallback = () => null, selected = {}, scales, hideSidebar = false, showCloseButton = false, closeButtonCallback = () => null, }) { const mergedExtensions = useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -68,7 +69,8 @@ export function StripVis({ config, extensions, columns, setConfig, selectionCall d3.select(`g .${p.data.yaxis}title`).style('pointer-events', 'all').append('title').text(p.yLabel); } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, - mergedExtensions.postPlot), + mergedExtensions.postPlot, + showCloseButton ? React.createElement(CloseButton, { closeCallback: closeButtonCallback }) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(StripVisSidebar, { config: config, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/strip/StripVis.js.map b/dist/vis/strip/StripVis.js.map index 72a11b966..3fd6ee74f 100644 --- a/dist/vis/strip/StripVis.js.map +++ b/dist/vis/strip/StripVis.js.map @@ -1 +1 @@ -{"version":3,"file":"StripVis.js","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"StripVis.js","sourceRoot":"","sources":["../../../src/vis/strip/StripVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.d.ts b/dist/vis/violin/ViolinVis.d.ts index bbbe4f292..5c1a2bc2a 100644 --- a/dist/vis/violin/ViolinVis.d.ts +++ b/dist/vis/violin/ViolinVis.d.ts @@ -16,9 +16,11 @@ interface ViolinVisProps { }; columns: VisColumn[]; setConfig: (config: IVisConfig) => void; + closeButtonCallback?: () => void; scales: Scales; hideSidebar?: boolean; + showCloseButton?: boolean; } -export declare function ViolinVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar }: ViolinVisProps): JSX.Element; +export declare function ViolinVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar, showCloseButton, closeButtonCallback, }: ViolinVisProps): JSX.Element; export {}; //# sourceMappingURL=ViolinVis.d.ts.map \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.d.ts.map b/dist/vis/violin/ViolinVis.d.ts.map index 5edc49871..b5fcf8bde 100644 --- a/dist/vis/violin/ViolinVis.d.ts.map +++ b/dist/vis/violin/ViolinVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ViolinVis.d.ts","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS7E,UAAU,cAAc;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAmB,EAAE,EAAE,cAAc,eAsF/H"} \ No newline at end of file +{"version":3,"file":"ViolinVis.d.ts","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAU7E,UAAU,cAAc;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,GACjC,EAAE,cAAc,eAuFhB"} \ No newline at end of file diff --git a/dist/vis/violin/ViolinVis.js b/dist/vis/violin/ViolinVis.js index 3bc850455..58dc31276 100644 --- a/dist/vis/violin/ViolinVis.js +++ b/dist/vis/violin/ViolinVis.js @@ -9,13 +9,14 @@ import { createViolinTraces } from './utils'; import { useAsync } from '../../hooks'; import { ViolinVisSidebar } from './ViolinVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, postPlot: null, preSidebar: null, postSidebar: null, }; -export function ViolinVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false }) { +export function ViolinVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false, showCloseButton = false, closeButtonCallback = () => null, }) { const mergedExtensions = React.useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -65,7 +66,8 @@ export function ViolinVis({ config, optionsConfig, extensions, columns, setConfi d3.select(`g .${p.data.yaxis}title`).style('pointer-events', 'all').append('title').text(p.yLabel); } } })) : traceStatus !== 'pending' ? (React.createElement(InvalidCols, { headerMessage: traces === null || traces === void 0 ? void 0 : traces.errorMessageHeader, bodyMessage: (traceError === null || traceError === void 0 ? void 0 : traceError.message) || (traces === null || traces === void 0 ? void 0 : traces.errorMessage) })) : null, - mergedExtensions.postPlot), + mergedExtensions.postPlot, + showCloseButton ? React.createElement(CloseButton, { closeCallback: closeButtonCallback }) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(ViolinVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/violin/ViolinVis.js.map b/dist/vis/violin/ViolinVis.js.map index 785495f43..78e81c2e0 100644 --- a/dist/vis/violin/ViolinVis.js.map +++ b/dist/vis/violin/ViolinVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ViolinVis.js","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ViolinVis.js","sourceRoot":"","sources":["../../../src/vis/violin/ViolinVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/LineupVisWrapper.ts b/src/vis/LineupVisWrapper.ts index fa41a65a1..01e3fbebf 100644 --- a/src/vis/LineupVisWrapper.ts +++ b/src/vis/LineupVisWrapper.ts @@ -115,6 +115,8 @@ export class LineupVisWrapper { selected: selectedList, selectionCallback: (visynIds) => this.props.selectionCallback(visynIds), filterCallback: (s: string) => this.filterCallback(s), + showCloseButton: true, + closeCallback: () => this.hide(), }), this.node, ); @@ -132,7 +134,6 @@ export class LineupVisWrapper { }; hide = () => { - ReactDOM.unmountComponentAtNode(this.node); this.viewable = false; this.node.style.display = 'none'; }; diff --git a/src/vis/Vis.tsx b/src/vis/Vis.tsx index a43cac97d..0541787f1 100644 --- a/src/vis/Vis.tsx +++ b/src/vis/Vis.tsx @@ -39,6 +39,8 @@ export function Vis({ shapes = ['circle', 'square', 'triangle-up', 'star'], selectionCallback = () => null, filterCallback = () => null, + closeCallback = () => null, + showCloseButton = false, externalConfig = null, hideSidebar = false, }: { @@ -66,6 +68,8 @@ export function Vis({ * Optional Prop which is called when a filter is applied. Returns a string identifying what type of filter is desired. This logic will be simplified in the future. */ filterCallback?: (s: EFilterOptions) => void; + closeCallback?: () => void; + showCloseButton?: boolean; externalConfig?: IVisConfig; hideSidebar?: boolean; }) { @@ -155,6 +159,8 @@ export function Vis({ columns={columns} scales={scales} hideSidebar={hideSidebar} + showCloseButton={showCloseButton} + closeButtonCallback={closeCallback} /> ) : null} @@ -170,6 +176,8 @@ export function Vis({ columns={columns} scales={scales} hideSidebar={hideSidebar} + showCloseButton={showCloseButton} + closeButtonCallback={closeCallback} /> ) : null} @@ -182,12 +190,34 @@ export function Vis({ columns={columns} scales={scales} hideSidebar={hideSidebar} + showCloseButton={showCloseButton} + closeButtonCallback={closeCallback} /> ) : null} - {isPCP(visConfig) ? : null} + {isPCP(visConfig) ? ( + + ) : null} - {isBar(visConfig) ? : null} + {isBar(visConfig) ? ( + + ) : null} ); } diff --git a/src/vis/bar/BarVis.tsx b/src/vis/bar/BarVis.tsx index a15484c3f..cbaae93b4 100644 --- a/src/vis/bar/BarVis.tsx +++ b/src/vis/bar/BarVis.tsx @@ -10,6 +10,7 @@ import { useAsync } from '../../hooks'; import { createBarTraces } from './utils'; import { BarVisSidebar } from './BarVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; interface BarVisProps { config: IBarConfig; @@ -42,6 +43,9 @@ interface BarVisProps { postSidebar?: React.ReactNode; }; columns: VisColumn[]; + closeButtonCallback?: () => void; + showCloseButton?: boolean; + setConfig: (config: IVisConfig) => void; scales: Scales; hideSidebar?: boolean; @@ -54,7 +58,17 @@ const defaultExtensions = { postSidebar: null, }; -export function BarVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false }: BarVisProps) { +export function BarVis({ + config, + optionsConfig, + extensions, + columns, + setConfig, + scales, + hideSidebar = false, + showCloseButton = false, + closeButtonCallback = () => null, +}: BarVisProps) { const mergedExtensions = React.useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -132,6 +146,7 @@ export function BarVis({ config, optionsConfig, extensions, columns, setConfig, ) : null} {mergedExtensions.postPlot} + {showCloseButton ? : null} {!hideSidebar ? ( diff --git a/src/vis/pcp/PCPVis.tsx b/src/vis/pcp/PCPVis.tsx index 209244404..50432e183 100644 --- a/src/vis/pcp/PCPVis.tsx +++ b/src/vis/pcp/PCPVis.tsx @@ -8,6 +8,7 @@ import { createPCPTraces } from './utils'; import { useAsync } from '../../hooks'; import { PCPVisSidebar } from './PCPVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; interface PCPVisProps { config: IPCPConfig; @@ -21,6 +22,8 @@ interface PCPVisProps { setConfig: (config: IVisConfig) => void; selected?: { [key: string]: boolean }; hideSidebar?: boolean; + closeButtonCallback?: () => void; + showCloseButton?: boolean; } const defaultExtensions = { @@ -30,7 +33,16 @@ const defaultExtensions = { postSidebar: null, }; -export function PCPVis({ config, extensions, columns, setConfig, selected = {}, hideSidebar = false }: PCPVisProps) { +export function PCPVis({ + config, + extensions, + columns, + setConfig, + showCloseButton = false, + closeButtonCallback = () => null, + selected = {}, + hideSidebar = false, +}: PCPVisProps) { const mergedExtensions = useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -92,6 +104,7 @@ export function PCPVis({ config, extensions, columns, setConfig, selected = {}, ) : null} {mergedExtensions.postPlot} + {showCloseButton ? : null} {!hideSidebar ? ( diff --git a/src/vis/scatter/ScatterVis.tsx b/src/vis/scatter/ScatterVis.tsx index 36f7ca822..a48e281a1 100644 --- a/src/vis/scatter/ScatterVis.tsx +++ b/src/vis/scatter/ScatterVis.tsx @@ -12,6 +12,7 @@ import { ScatterVisSidebar } from './ScatterVisSidebar'; import { PlotlyComponent, Plotly } from '../Plot'; import { useAsync } from '../../hooks'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import {CloseButton} from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, @@ -32,6 +33,8 @@ export function ScatterVis({ selectedList = [], setConfig, hideSidebar = false, + showCloseButton = false, + closeButtonCallback = () => null scales, }: { config: IScatterConfig; @@ -59,11 +62,13 @@ export function ScatterVis({ columns: VisColumn[]; filterCallback?: (s: EFilterOptions) => void; selectionCallback?: (ids: string[]) => void; + closeButtonCallback?: () => void; selectedMap?: { [key: string]: boolean }; selectedList: string[]; setConfig: (config: IVisConfig) => void; scales: Scales; hideSidebar?: boolean; + showCloseButton?: boolean; }) { const id = React.useMemo(() => uniqueId('ScatterVis'), []); @@ -166,6 +171,9 @@ export function ScatterVis({ setConfig({ ...config, alphaSliderVal: e })} currentValue={config.alphaSliderVal} /> {mergedExtensions.postPlot} + {showCloseButton ? ( + + ) : null} {!hideSidebar ? ( diff --git a/src/vis/sidebar/CloseButton.tsx b/src/vis/sidebar/CloseButton.tsx new file mode 100644 index 000000000..4b5f54ade --- /dev/null +++ b/src/vis/sidebar/CloseButton.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export function CloseButton({ closeCallback }: { closeCallback: () => void }) { + return ( +
    + +
    + ); +} diff --git a/src/vis/strip/StripVis.tsx b/src/vis/strip/StripVis.tsx index 2706a7a1b..e3a21d60c 100644 --- a/src/vis/strip/StripVis.tsx +++ b/src/vis/strip/StripVis.tsx @@ -10,6 +10,7 @@ import { createStripTraces } from './utils'; import { useAsync } from '../../hooks'; import { StripVisSidebar } from './StripVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; interface StripVisProps { config: IStripConfig; @@ -23,8 +24,10 @@ interface StripVisProps { setConfig: (config: IVisConfig) => void; scales: Scales; selectionCallback?: (s: string[]) => void; + closeButtonCallback?: () => void; selected?: { [key: string]: boolean }; hideSidebar?: boolean; + showCloseButton?: boolean; } const defaultExtensions = { @@ -43,6 +46,8 @@ export function StripVis({ selected = {}, scales, hideSidebar = false, + showCloseButton = false, + closeButtonCallback = () => null, }: StripVisProps) { const mergedExtensions = useMemo(() => { return merge({}, defaultExtensions, extensions); @@ -125,6 +130,7 @@ export function StripVis({ ) : null} {mergedExtensions.postPlot} + {showCloseButton ? : null} {!hideSidebar ? ( diff --git a/src/vis/violin/ViolinVis.tsx b/src/vis/violin/ViolinVis.tsx index 78908c483..a01d4b4dd 100644 --- a/src/vis/violin/ViolinVis.tsx +++ b/src/vis/violin/ViolinVis.tsx @@ -10,6 +10,7 @@ import { createViolinTraces } from './utils'; import { useAsync } from '../../hooks'; import { ViolinVisSidebar } from './ViolinVisSidebar'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; +import { CloseButton } from '../sidebar/CloseButton'; interface ViolinVisProps { config: IViolinConfig; @@ -27,8 +28,11 @@ interface ViolinVisProps { }; columns: VisColumn[]; setConfig: (config: IVisConfig) => void; + closeButtonCallback?: () => void; + scales: Scales; hideSidebar?: boolean; + showCloseButton?: boolean; } const defaultExtensions = { @@ -38,7 +42,17 @@ const defaultExtensions = { postSidebar: null, }; -export function ViolinVis({ config, optionsConfig, extensions, columns, setConfig, scales, hideSidebar = false }: ViolinVisProps) { +export function ViolinVis({ + config, + optionsConfig, + extensions, + columns, + setConfig, + scales, + hideSidebar = false, + showCloseButton = false, + closeButtonCallback = () => null, +}: ViolinVisProps) { const mergedExtensions = React.useMemo(() => { return merge({}, defaultExtensions, extensions); }, [extensions]); @@ -116,6 +130,7 @@ export function ViolinVis({ config, optionsConfig, extensions, columns, setConfi ) : null} {mergedExtensions.postPlot} + {showCloseButton ? : null} {!hideSidebar ? ( From 49ed64052cc0a7fb40b265ecd6c3be75a5f56229 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Wed, 20 Apr 2022 15:27:10 +0200 Subject: [PATCH 062/117] fixing color bug in scatterplot --- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 8 ++++++-- dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/utils.ts | 9 +++++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index 5b0c8a026..5afdcc424 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAsPrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA2PrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 26d835a3f..4f1a20167 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -62,6 +62,9 @@ export async function createScatterTraces(columns, selected, config, scales, sha validCols.forEach((c) => { c.resolvedValues = moveSelectedToFront(c.resolvedValues, selected); }); + if (colorCol) { + colorCol.resolvedValues = moveSelectedToFront(colorCol.resolvedValues, selected); + } const shapeScale = config.shape ? d3.scale .ordinal() @@ -87,6 +90,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha if (validCols.length === 1) { return emptyVal; } + console.log(validCols, colorCol, scales.color.range(), scales.color.domain()); // if exactly 2 then return just one plot. otherwise, loop over and create n*n plots. TODO:: make the diagonal plots that have identical axis a histogram if (validCols.length === 2) { plots.push({ @@ -106,7 +110,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? validCols[0].resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) + ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, @@ -162,7 +166,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? xCurr.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) + ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 211961adf..03c90288b 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index 64e328585..df186c194 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -100,6 +100,10 @@ export async function createScatterTraces( c.resolvedValues = moveSelectedToFront(c.resolvedValues, selected); }); + if (colorCol) { + colorCol.resolvedValues = moveSelectedToFront(colorCol.resolvedValues, selected); + } + const shapeScale = config.shape ? d3.scale .ordinal() @@ -133,6 +137,7 @@ export async function createScatterTraces( return emptyVal; } + console.log(validCols, colorCol, scales.color.range(), scales.color.domain()); // if exactly 2 then return just one plot. otherwise, loop over and create n*n plots. TODO:: make the diagonal plots that have identical axis a histogram if (validCols.length === 2) { plots.push({ @@ -152,7 +157,7 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? validCols[0].resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) + ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, @@ -206,7 +211,7 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? xCurr.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) + ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, From 14c24906cdc8c588b43c2cdbf8ad2c6e2902e903 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Wed, 20 Apr 2022 16:14:40 +0200 Subject: [PATCH 063/117] prettier, fixing wrong typing --- dist/vis/scatter/ScatterVis.d.ts.map | 2 +- dist/vis/scatter/ScatterVis.js | 2 +- dist/vis/scatter/ScatterVis.js.map | 2 +- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 1 - dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/ScatterVis.tsx | 10 ++++------ src/vis/scatter/utils.ts | 1 - 8 files changed, 9 insertions(+), 13 deletions(-) diff --git a/dist/vis/scatter/ScatterVis.d.ts.map b/dist/vis/scatter/ScatterVis.d.ts.map index c12a9725a..ddbb873ed 100644 --- a/dist/vis/scatter/ScatterVis.d.ts.map +++ b/dist/vis/scatter/ScatterVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAmBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,EAChC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,eAwHA"} \ No newline at end of file +{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAmBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,EAChC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,eAsHA"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.js b/dist/vis/scatter/ScatterVis.js index c42722544..7e9feacf4 100644 --- a/dist/vis/scatter/ScatterVis.js +++ b/dist/vis/scatter/ScatterVis.js @@ -89,7 +89,7 @@ export function ScatterVis({ config, optionsConfig, extensions, columns, shapes React.createElement(BrushOptionButtons, { callback: (dragMode) => setConfig({ ...config, dragMode }), dragMode: config.dragMode }), React.createElement(OpacitySlider, { callback: (e) => setConfig({ ...config, alphaSliderVal: e }), currentValue: config.alphaSliderVal })), mergedExtensions.postPlot, - showCloseButton ? (React.createElement(CloseButton, { closeCallback: closeButtonCallback })) : null), + showCloseButton ? React.createElement(CloseButton, { closeCallback: closeButtonCallback }) : null), !hideSidebar ? (React.createElement(VisSidebarWrapper, { id: id }, React.createElement(ScatterVisSidebar, { config: config, optionsConfig: optionsConfig, extensions: extensions, columns: columns, filterCallback: filterCallback, setConfig: setConfig }))) : null)); } diff --git a/dist/vis/scatter/ScatterVis.js.map b/dist/vis/scatter/ScatterVis.js.map index 8ac931fdf..7baefeec7 100644 --- a/dist/vis/scatter/ScatterVis.js.map +++ b/dist/vis/scatter/ScatterVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index 5afdcc424..cc0410924 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA2PrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA0PrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 4f1a20167..4c80ca887 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -90,7 +90,6 @@ export async function createScatterTraces(columns, selected, config, scales, sha if (validCols.length === 1) { return emptyVal; } - console.log(validCols, colorCol, scales.color.range(), scales.color.domain()); // if exactly 2 then return just one plot. otherwise, loop over and create n*n plots. TODO:: make the diagonal plots that have identical axis a histogram if (validCols.length === 2) { plots.push({ diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 03c90288b..06117373a 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/ScatterVis.tsx b/src/vis/scatter/ScatterVis.tsx index a48e281a1..8d946680a 100644 --- a/src/vis/scatter/ScatterVis.tsx +++ b/src/vis/scatter/ScatterVis.tsx @@ -12,7 +12,7 @@ import { ScatterVisSidebar } from './ScatterVisSidebar'; import { PlotlyComponent, Plotly } from '../Plot'; import { useAsync } from '../../hooks'; import { VisSidebarWrapper } from '../VisSidebarWrapper'; -import {CloseButton} from '../sidebar/CloseButton'; +import { CloseButton } from '../sidebar/CloseButton'; const defaultExtensions = { prePlot: null, @@ -34,7 +34,7 @@ export function ScatterVis({ setConfig, hideSidebar = false, showCloseButton = false, - closeButtonCallback = () => null + closeButtonCallback = () => null, scales, }: { config: IScatterConfig; @@ -136,7 +136,7 @@ export function ScatterVis({ useResizeHandler style={{ width: '100%', height: '100%' }} onClick={(event) => { - const clickedId = event.points[0].id; + const clickedId = (event.points[0] as any).id; if (selectedMap[clickedId]) { selectionCallback(selectedList.filter((s) => s !== clickedId)); } else { @@ -171,9 +171,7 @@ export function ScatterVis({ setConfig({ ...config, alphaSliderVal: e })} currentValue={config.alphaSliderVal} /> {mergedExtensions.postPlot} - {showCloseButton ? ( - - ) : null} + {showCloseButton ? : null} {!hideSidebar ? ( diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index df186c194..0b3e77051 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -137,7 +137,6 @@ export async function createScatterTraces( return emptyVal; } - console.log(validCols, colorCol, scales.color.range(), scales.color.domain()); // if exactly 2 then return just one plot. otherwise, loop over and create n*n plots. TODO:: make the diagonal plots that have identical axis a histogram if (validCols.length === 2) { plots.push({ From 97e6deba101ca61519843b1a0ba7f2f8afc177e0 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 21 Apr 2022 10:15:27 +0200 Subject: [PATCH 064/117] Format and added path usage to setup.py --- Makefile | 6 +-- setup.py | 113 +++++++++++++++++++++++++------------------------------ 2 files changed, 55 insertions(+), 64 deletions(-) diff --git a/Makefile b/Makefile index efcccabd7..929e3c57b 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ .DEFAULT_GOAL := help pkg_src = tdp_core -flake8 = flake8 $(pkg_src) -isort = isort $(pkg_src) -black = black --line-length 140 $(pkg_src) +flake8 = flake8 $(pkg_src) setup.py +isort = isort $(pkg_src) setup.py +black = black --line-length 140 $(pkg_src) setup.py .PHONY: all ## Perform the most common development-time rules all: format lint test diff --git a/setup.py b/setup.py index e2c385f10..2921a2eb2 100644 --- a/setup.py +++ b/setup.py @@ -1,72 +1,63 @@ -from setuptools import setup, find_packages -from codecs import open -from os import path -import json +from json import load +from pathlib import Path -here = path.abspath(path.dirname(__file__)) +from setuptools import find_packages, setup + +here = Path(__file__).parent +pkg = load((here / "package.json").open()) def read_it(name): - with open(path.join(here, name), encoding='utf-8') as f: - return f.read() + fn = here / name + return fn.read_text() if fn.exists() else "" def requirements(file): - return [r.strip() for r in read_it(file).strip().split('\n')] - - -pkg = json.loads(read_it('package.json')) + return [r.strip() for r in read_it(file).strip().split("\n")] setup( - name=pkg['name'].lower(), - version=pkg['version'].replace('-SNAPSHOT', '.dev0'), - url=pkg['homepage'], - description=pkg['description'], - long_description=read_it('README.md'), - long_description_content_type='text/markdown', - keywords=pkg.get('keywords', ''), - author=pkg['author']['name'], - author_email=pkg['author']['email'], - license=pkg['license'], - zip_safe=False, - - entry_points={ - 'visyn.plugin': ['{0} = {0}:VisynPlugin'.format(pkg['name'])], - }, - - # See https://pypi.python.org/pypi?%3Aaction=list_classifiers - classifiers=[ - 'Intended Audience :: Developers', - 'Operating System :: OS Independent', - # Pick your license as you wish (should match "license" above) - 'License :: OSI Approved :: ' + ('BSD License' if pkg['license'] == 'BSD-3-Clause' else pkg['license']), - 'Programming Language :: Python', - 'Programming Language :: Python :: 3.10' - ], - - python_requires='>=3.10', - - # You can just specify the packages manually here if your project is - # simple. Or you can use find_packages(). - packages=find_packages(exclude=['docs', 'tests*']), - - # List run-time dependencies here. These will be installed by pip when - # your project is installed. For an analysis of "install_requires" vs pip's - # requirements files see: - # https://packaging.python.org/en/latest/requirements.html - install_requires=requirements('requirements.txt'), - extras_require={ - 'develop': requirements('requirements_dev.txt'), - }, - - # Include all files from the MANIFEST.in file. - include_package_data=True, - package_data={}, - - # Although 'package_data' is the preferred approach, in some case you may - # need to place data files outside of your packages. See: - # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa - # In this case, 'data_file' will be installed into '/my_data' - data_files=[] # [('my_data', ['data/data_file'])], + name=pkg["name"].lower(), + version=pkg["version"].replace("-SNAPSHOT", ".dev0"), + url=pkg["homepage"], + description=pkg["description"], + long_description=read_it("README.md"), + long_description_content_type="text/markdown", + keywords=pkg.get("keywords", ""), + author=pkg["author"]["name"], + author_email=pkg["author"]["email"], + license=pkg["license"], + zip_safe=False, + entry_points={ + "visyn.plugin": ["{0} = {0}:VisynPlugin".format(pkg["name"])], + }, + # See https://pypi.python.org/pypi?%3Aaction=list_classifiers + classifiers=[ + "Intended Audience :: Developers", + "Operating System :: OS Independent", + # Pick your license as you wish (should match "license" above) + "License :: OSI Approved :: " + ("BSD License" if pkg["license"] == "BSD-3-Clause" else pkg["license"]), + "Programming Language :: Python", + "Programming Language :: Python :: 3.10", + ], + python_requires=">=3.10", + # You can just specify the packages manually here if your project is + # simple. Or you can use find_packages(). + packages=find_packages(exclude=["docs", "tests*"]), + # List run-time dependencies here. These will be installed by pip when + # your project is installed. For an analysis of "install_requires" vs pip's + # requirements files see: + # https://packaging.python.org/en/latest/requirements.html + install_requires=requirements("requirements.txt"), + extras_require={ + "develop": requirements("requirements_dev.txt"), + }, + # Include all files from the MANIFEST.in file. + include_package_data=True, + package_data={}, + # Although 'package_data' is the preferred approach, in some case you may + # need to place data files outside of your packages. See: + # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files # noqa + # In this case, 'data_file' will be installed into '/my_data' + data_files=[], # [('my_data', ['data/data_file'])], ) From f0daa1882fa591965b4333a1bdb39a1793762ddd Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 21 Apr 2022 11:14:48 +0200 Subject: [PATCH 065/117] Updated app.state. aliases --- tdp_core/server/visyn_server.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tdp_core/server/visyn_server.py b/tdp_core/server/visyn_server.py index e48a23763..e638ee3e1 100644 --- a/tdp_core/server/visyn_server.py +++ b/tdp_core/server/visyn_server.py @@ -69,22 +69,22 @@ def create_visyn_server( from ..dbmanager import DBManager - app.state.db_manager = manager.db = DBManager() + app.state.db = manager.db = DBManager() manager.db.init_app(app) from ..dbmigration.manager import DBMigrationManager - app.state.db_migration_manager = manager.db_migration = DBMigrationManager() + app.state.db_migration = manager.db_migration = DBMigrationManager() manager.db_migration.init_app(app, manager.registry.list("tdp-sql-database-migration")) from ..security.manager import create_security_manager - app.state.security_manager = manager.security = create_security_manager() + app.state.security = manager.security = create_security_manager() manager.security.init_app(app) from ..id_mapping.manager import create_id_mapping_manager - app.state.id_mapping_manager = manager.id_mapping = create_id_mapping_manager() + app.state.id_mapping = manager.id_mapping = create_id_mapping_manager() # TODO: Allow custom command routine (i.e. for db-migrations) from .cmd import parse_command_string From 586c9a900ffe5bcf504f33d682b9124de75e7030 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 21 Apr 2022 11:17:20 +0200 Subject: [PATCH 066/117] Switch settings to BaseModel --- tdp_core/plugin/model.py | 4 ++-- tdp_core/plugin/parser.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tdp_core/plugin/model.py b/tdp_core/plugin/model.py index b47d6efac..a9ed32e77 100644 --- a/tdp_core/plugin/model.py +++ b/tdp_core/plugin/model.py @@ -2,7 +2,7 @@ from typing import Any, Dict, Type from fastapi import FastAPI -from pydantic import BaseSettings +from pydantic import BaseModel class RegHelper(object): @@ -35,5 +35,5 @@ def init_app(self, app: FastAPI): pass @property - def setting_class(self) -> Type[BaseSettings]: + def setting_class(self) -> Type[BaseModel]: return None diff --git a/tdp_core/plugin/parser.py b/tdp_core/plugin/parser.py index 47ecb1444..cb2d869df 100644 --- a/tdp_core/plugin/parser.py +++ b/tdp_core/plugin/parser.py @@ -4,7 +4,7 @@ from importlib.metadata import EntryPoint, entry_points from typing import Dict, List, Tuple, Type -from pydantic import BaseSettings +from pydantic import BaseModel from .. import manager from .model import AVisynPlugin, RegHelper @@ -102,12 +102,12 @@ def get_extensions_from_plugins(plugins: List[EntryPointPlugin]) -> List: return server_extensions -def get_config_from_plugins(plugins: List[EntryPointPlugin]) -> Tuple[List[Dict[str, Dict]], Dict[str, Type[BaseSettings]]]: +def get_config_from_plugins(plugins: List[EntryPointPlugin]) -> Tuple[List[Dict[str, Dict]], Dict[str, Type[BaseModel]]]: # from ..settings.utils import load_config_file # With all the plugins, load the corresponding configuration files and add them to the global config files: List[Dict[str, Dict]] = [] - models: Dict[str, Type[BaseSettings]] = {} + models: Dict[str, Type[BaseModel]] = {} for plugin in plugins: plugin_settings_model = plugin.plugin.setting_class if plugin_settings_model: From 9770dbc7e2c288289a7e3f10d1762c9e4ed283a7 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Fri, 22 Apr 2022 12:10:03 +0200 Subject: [PATCH 067/117] Removed old backend files from package.json --- package.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package.json b/package.json index 42d2b3540..99f9b64d1 100644 --- a/package.json +++ b/package.json @@ -24,12 +24,8 @@ "phovea_registry.js", "dist", "tdp_core", - "__init__.py", - "__main__.py", "requirements.txt", - "requirements_dev.txt", - "docker_packages.txt", - "redhat_packages.txt" + "requirements_dev.txt" ], "engines": { "npm": ">= 6.12", From 58bb997a29f68db2a9f8c6eb8fa09520264a4811 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Fri, 22 Apr 2022 12:51:07 +0200 Subject: [PATCH 068/117] Added tests for settings --- tdp_core/security/store/alb_security_store.py | 14 +++---- tdp_core/settings/model.py | 39 +++++++++++-------- tdp_core/tests/test_settings.py | 38 ++++++++++++++++++ 3 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 tdp_core/tests/test_settings.py diff --git a/tdp_core/security/store/alb_security_store.py b/tdp_core/security/store/alb_security_store.py index 8c8b8d2fd..b473b4e01 100644 --- a/tdp_core/security/store/alb_security_store.py +++ b/tdp_core/security/store/alb_security_store.py @@ -7,7 +7,6 @@ from ..model import User _log = logging.getLogger(__name__) -_conf = manager.settings.get_nested("tdp_core.security.store.alb_security_store") class ALBSecurityStore(object): @@ -52,14 +51,11 @@ def create(): # Why do we do this here and not in the __init__.py? # Because the configuration is merged after the registry is loaded, # such that no keys are available (except tdp_core keys). - if _conf.get("enable", False): + if manager.settings.tdp_core.security.store.alb_security_store.enable: _log.info("Adding ALBSecurityStore") - - # Check if the url is set first - cookie_name = _conf.get("cookie_name") - signout_url = _conf.get("signout_url") - # TODO: Validation of (optional) configuration? - - return ALBSecurityStore(cookie_name, signout_url) + return ALBSecurityStore( + manager.settings.tdp_core.security.store.alb_security_store.cookie_name, + manager.settings.tdp_core.security.store.alb_security_store.signout_url, + ) return None diff --git a/tdp_core/settings/model.py b/tdp_core/settings/model.py index 040e1738c..da2d9d4f3 100644 --- a/tdp_core/settings/model.py +++ b/tdp_core/settings/model.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Dict, List, Literal, Union +from typing import Any, Dict, List, Literal, Optional from pydantic import BaseModel, BaseSettings, Extra, Field @@ -28,7 +28,21 @@ class DisableSettings(BaseModel): extensions: List[str] = [] -class VisynServerSettings(BaseModel): +class SecurityStoreSettings(BaseModel): + enable: bool = False + cookie_name: Optional[str] = None + signout_url: Optional[str] = None + + +class SecurityStoreSettings(BaseModel): + alb_security_store: SecurityStoreSettings = SecurityStoreSettings() + + +class SecuritySettings(BaseModel): + store: SecurityStoreSettings = SecurityStoreSettings() + + +class VisynServerSettings(BaseSettings): disable: DisableSettings = DisableSettings() enabled_plugins: List[str] = [] @@ -75,18 +89,8 @@ class VisynServerSettings(BaseModel): }, ] ) - alwaysAppendDummyStore: bool = Field(False) # NOQA - security: Dict[str, Any] = Field( - { - "store": { - "alb_security_store": { - "enable": False, - "cookie_name": None, - "signout_url": None, - } - } - } - ) + alwaysAppendDummyStore: bool = False # NOQA + security: SecuritySettings = SecuritySettings() # tdp_matomo matomo: MatomoSettings = MatomoSettings() @@ -111,8 +115,11 @@ class GlobalSettings(BaseSettings): def is_development_mode(self) -> bool: return self.env.startswith("dev") - def get_nested(self, key: str, default: Any = None) -> Union[Any, None]: - # TODO: Set deprecated + def get_nested(self, key: str, default: Any = None) -> Optional[Any]: + """ + Retrieves the value at the position of the key from the dict-ified settings, or `default` if `None` is found. + This method is for legacy purposes only, you should in most cases just use the settings directly. + """ keys = key.split(".") plugin_id = keys[0] dic = self.dict(include={plugin_id}) diff --git a/tdp_core/tests/test_settings.py b/tdp_core/tests/test_settings.py new file mode 100644 index 000000000..607998034 --- /dev/null +++ b/tdp_core/tests/test_settings.py @@ -0,0 +1,38 @@ +import os +from unittest import mock + +from tdp_core.settings.model import GlobalSettings + + +def test_env_substitution(): + settings = GlobalSettings() + + assert settings.secret_key != "Custom_Secret_Key" + assert settings.tdp_core.security.store.alb_security_store.enable != True # NOQA: E712 + assert settings.tdp_core.logging["version"] == 1 + assert settings.tdp_core.logging["root"]["level"] == "INFO" + + with mock.patch.dict( + os.environ, + { + # Basic top-level key substitution + "SECRET_KEY": "Custom_Secret_Key", + # Deeply nested key substitution of properly typed model (includes automatic typecast) + "TDP_CORE__SECURITY__STORE__ALB_SECURITY_STORE__ENABLE": "True", + # Deeply nested key substitution of model typed via Dict (does not include automatic typecast) + "TDP_CORE__LOGGING__VERSION": "2", + "TDP_CORE__LOGGING__ROOT__LEVEL": "DEBUG", + }, + clear=True, + ): + env_settings = GlobalSettings() + + assert env_settings.secret_key == "Custom_Secret_Key" + assert env_settings.tdp_core.security.store.alb_security_store.enable == True # NOQA: E712 + assert env_settings.tdp_core.logging["version"] == "2" # Note that this is a string, as it cannot infer the type of Dict + assert env_settings.tdp_core.logging["root"]["level"] == "DEBUG" + + assert env_settings.get_nested("secret_key") == "Custom_Secret_Key" + assert env_settings.get_nested("tdp_core.security.store.alb_security_store.enable") == True # NOQA: E712 + assert env_settings.get_nested("tdp_core.logging.version") == "2" # Note that this is a string, as it cannot infer the type of Dict + assert env_settings.get_nested("tdp_core.logging.root.level") == "DEBUG" From 2fd56990430fde0c27b632c8c713f0fa05fb4995 Mon Sep 17 00:00:00 2001 From: Daniela Date: Mon, 25 Apr 2022 13:41:51 +0200 Subject: [PATCH 069/117] Pin numpy to version 1.21.6 for numba support --- requirements.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 009231c91..f12261993 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,9 @@ Flask==2.0.3 json-cfg==0.4.2 marshmallow-sqlalchemy==0.28.0 marshmallow==3.15.0 -numpy==1.22.3 +numba==0.55.1 +# numba 0.55.1 does not support numpy >= 1.22 yet +numpy==1.21.6 openpyxl==3.0.9 pandas==1.4.1 Pillow==9.0.1 From ce2346e9cde143e113c6613d9f14deeb98e70974 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 08:39:30 +0200 Subject: [PATCH 070/117] Made TDPCoreSettings BaseModel --- tdp_core/settings/model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tdp_core/settings/model.py b/tdp_core/settings/model.py index da2d9d4f3..edfb24969 100644 --- a/tdp_core/settings/model.py +++ b/tdp_core/settings/model.py @@ -42,7 +42,7 @@ class SecuritySettings(BaseModel): store: SecurityStoreSettings = SecurityStoreSettings() -class VisynServerSettings(BaseSettings): +class TDPCoreSettings(BaseModel): disable: DisableSettings = DisableSettings() enabled_plugins: List[str] = [] @@ -109,7 +109,7 @@ class GlobalSettings(BaseSettings): jwt_cookie_secure: bool = False jwt_cookie_samesite: str = "Strict" jwt_access_cookie_path: str = "/" - tdp_core: VisynServerSettings = VisynServerSettings() + tdp_core: TDPCoreSettings = TDPCoreSettings() @property def is_development_mode(self) -> bool: From 13a9438746f04f92cfe552ba99ca79ba994f2bff Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 12:09:09 +0200 Subject: [PATCH 071/117] Updated /phovea to /visyn --- .circleci/config.yml | 8 ++++---- deploy/Dockerfile | 12 ------------ deploy/Dockerfile_dev | 4 ++-- deploy/docker-compose.partial.yml | 2 +- tdp_core/security/manager.py | 2 +- tdp_core/security/store/alb_security_store.py | 6 ++---- tdp_core/settings/utils.py | 4 ++-- 7 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 deploy/Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml index e7508cabc..501bfacdd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,11 +2,11 @@ version: 2.1 executors: python-executor: - working_directory: ~/phovea-python + working_directory: ~/visyn-python docker: - image: circleci/python:3.10-buster node-executor: - working_directory: ~/phovea-web + working_directory: ~/visyn-web docker: - image: circleci/node:14.17-buster @@ -57,7 +57,7 @@ jobs: destination: dist-python - persist_to_workspace: root: ~/. - paths: phovea-python + paths: visyn-python python-publish: executor: python-executor steps: @@ -117,7 +117,7 @@ jobs: destination: dist-web - persist_to_workspace: root: ~/. - paths: phovea-web + paths: visyn-web web-publish: executor: node-executor steps: diff --git a/deploy/Dockerfile b/deploy/Dockerfile deleted file mode 100644 index 958a20255..000000000 --- a/deploy/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM python:3.10-buster - -LABEL maintainer="contact@datavisyn.io" -WORKDIR /phovea - -# install dependencies last step such that everything before can be cached -COPY requirements*.txt . -RUN apt-get update && pip install --no-cache-dir -r requirements.txt - -CMD ["uvicorn", "tdp_core.server.main:app", "--host", "0.0.0.0", "--port", "9000"] - -EXPOSE 9000 \ No newline at end of file diff --git a/deploy/Dockerfile_dev b/deploy/Dockerfile_dev index d248af528..1541b0163 100644 --- a/deploy/Dockerfile_dev +++ b/deploy/Dockerfile_dev @@ -1,7 +1,7 @@ FROM python:3.10-buster LABEL maintainer="contact@datavisyn.io" -WORKDIR /phovea +WORKDIR /visyn COPY requirements*.txt ./ RUN (apt-get update) && \ @@ -9,7 +9,7 @@ RUN (apt-get update) && \ (pip install --no-cache-dir -r requirements_dev.txt) # Create entrypoint installing the volume-mounted workspace repos -RUN echo '#!/bin/sh\npip install --no-cache-dir --no-deps -r /phovea/requirements_workspace.txt\n$@' > /tmp/entrypoint.sh +RUN echo '#!/bin/sh\npip install --no-cache-dir --no-deps -r /visyn/requirements_workspace.txt\n$@' > /tmp/entrypoint.sh RUN chmod +x /tmp/entrypoint.sh ENTRYPOINT [ "/tmp/entrypoint.sh" ] diff --git a/deploy/docker-compose.partial.yml b/deploy/docker-compose.partial.yml index 92e99e586..d8ee893fa 100644 --- a/deploy/docker-compose.partial.yml +++ b/deploy/docker-compose.partial.yml @@ -21,7 +21,7 @@ services: # Required port for the python debugger - '5678:5678' volumes: - - .:/phovea + - .:/visyn environment: - ENV=development - PYTHONUNBUFFERED=1 diff --git a/tdp_core/security/manager.py b/tdp_core/security/manager.py index 890458dff..b101662ae 100644 --- a/tdp_core/security/manager.py +++ b/tdp_core/security/manager.py @@ -117,7 +117,7 @@ def current_user(self) -> Optional[User]: try: return self.load_from_request(get_request()) except Exception: - _log.info("Error loading user from request") + _log.exception("Error loading user from request") return None def load_from_request(self, request: Request): diff --git a/tdp_core/security/store/alb_security_store.py b/tdp_core/security/store/alb_security_store.py index b473b4e01..aa9c53e73 100644 --- a/tdp_core/security/store/alb_security_store.py +++ b/tdp_core/security/store/alb_security_store.py @@ -4,12 +4,13 @@ import jwt from ... import manager +from .base_store import BaseStore from ..model import User _log = logging.getLogger(__name__) -class ALBSecurityStore(object): +class ALBSecurityStore(BaseStore): def __init__(self, cookie_name: Optional[str], signout_url: Optional[str]): self.cookie_name = cookie_name self.signout_url: Optional[str] = signout_url @@ -29,9 +30,6 @@ def load_from_request(self, req): return None return None - def login(self, username, extra_fields={}): - return None - def logout(self, user): # https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html#authentication-logout cookies = [] diff --git a/tdp_core/settings/utils.py b/tdp_core/settings/utils.py index a91562dd9..3157b32e6 100644 --- a/tdp_core/settings/utils.py +++ b/tdp_core/settings/utils.py @@ -10,9 +10,9 @@ def load_workspace_config() -> Dict[str, Any]: """ - Loads the global config.json placed at `PHOVEA_CONFIG_PATH` (defaults to `config.json`). + Loads the global config.json placed at `VISYN_CONFIG_PATH` (defaults to `config.json`). """ - global_ = os.path.abspath(os.environ.get("PHOVEA_CONFIG_PATH", "/phovea/config.json")) + global_ = os.path.abspath(os.environ.get("VISYN_CONFIG_PATH", "/visyn/config.json")) return load_config_file(global_) if os.path.exists(global_) else {} From 7061605c23f14aa2d44c2e4cde704596eed6cb25 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 12:28:01 +0200 Subject: [PATCH 072/117] Updated /visyn to /phovea --- deploy/Dockerfile_dev | 4 ++-- deploy/docker-compose.partial.yml | 2 +- tdp_core/settings/utils.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/Dockerfile_dev b/deploy/Dockerfile_dev index 1541b0163..d248af528 100644 --- a/deploy/Dockerfile_dev +++ b/deploy/Dockerfile_dev @@ -1,7 +1,7 @@ FROM python:3.10-buster LABEL maintainer="contact@datavisyn.io" -WORKDIR /visyn +WORKDIR /phovea COPY requirements*.txt ./ RUN (apt-get update) && \ @@ -9,7 +9,7 @@ RUN (apt-get update) && \ (pip install --no-cache-dir -r requirements_dev.txt) # Create entrypoint installing the volume-mounted workspace repos -RUN echo '#!/bin/sh\npip install --no-cache-dir --no-deps -r /visyn/requirements_workspace.txt\n$@' > /tmp/entrypoint.sh +RUN echo '#!/bin/sh\npip install --no-cache-dir --no-deps -r /phovea/requirements_workspace.txt\n$@' > /tmp/entrypoint.sh RUN chmod +x /tmp/entrypoint.sh ENTRYPOINT [ "/tmp/entrypoint.sh" ] diff --git a/deploy/docker-compose.partial.yml b/deploy/docker-compose.partial.yml index d8ee893fa..92e99e586 100644 --- a/deploy/docker-compose.partial.yml +++ b/deploy/docker-compose.partial.yml @@ -21,7 +21,7 @@ services: # Required port for the python debugger - '5678:5678' volumes: - - .:/visyn + - .:/phovea environment: - ENV=development - PYTHONUNBUFFERED=1 diff --git a/tdp_core/settings/utils.py b/tdp_core/settings/utils.py index 3157b32e6..a91562dd9 100644 --- a/tdp_core/settings/utils.py +++ b/tdp_core/settings/utils.py @@ -10,9 +10,9 @@ def load_workspace_config() -> Dict[str, Any]: """ - Loads the global config.json placed at `VISYN_CONFIG_PATH` (defaults to `config.json`). + Loads the global config.json placed at `PHOVEA_CONFIG_PATH` (defaults to `config.json`). """ - global_ = os.path.abspath(os.environ.get("VISYN_CONFIG_PATH", "/visyn/config.json")) + global_ = os.path.abspath(os.environ.get("PHOVEA_CONFIG_PATH", "/phovea/config.json")) return load_config_file(global_) if os.path.exists(global_) else {} From c628f8e680830dfcc06ba9b2cd04ed6f8093a93b Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 12:43:06 +0200 Subject: [PATCH 073/117] Added proper error handling to current_user --- tdp_core/security/manager.py | 2 ++ tdp_core/security/store/alb_security_store.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tdp_core/security/manager.py b/tdp_core/security/manager.py index b101662ae..d0e44c6ec 100644 --- a/tdp_core/security/manager.py +++ b/tdp_core/security/manager.py @@ -116,6 +116,8 @@ def _delegate_stores_until_not_none(self, store_method_name: str, *args): def current_user(self) -> Optional[User]: try: return self.load_from_request(get_request()) + except HTTPException: + return None except Exception: _log.exception("Error loading user from request") return None diff --git a/tdp_core/security/store/alb_security_store.py b/tdp_core/security/store/alb_security_store.py index aa9c53e73..417a89312 100644 --- a/tdp_core/security/store/alb_security_store.py +++ b/tdp_core/security/store/alb_security_store.py @@ -4,8 +4,8 @@ import jwt from ... import manager -from .base_store import BaseStore from ..model import User +from .base_store import BaseStore _log = logging.getLogger(__name__) From a63e3ed10c6da2226983a90a54726ad40385dad2 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 13:37:06 +0200 Subject: [PATCH 074/117] Changed /visyn to /phovea again --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 501bfacdd..e7508cabc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,11 +2,11 @@ version: 2.1 executors: python-executor: - working_directory: ~/visyn-python + working_directory: ~/phovea-python docker: - image: circleci/python:3.10-buster node-executor: - working_directory: ~/visyn-web + working_directory: ~/phovea-web docker: - image: circleci/node:14.17-buster @@ -57,7 +57,7 @@ jobs: destination: dist-python - persist_to_workspace: root: ~/. - paths: visyn-python + paths: phovea-python python-publish: executor: python-executor steps: @@ -117,7 +117,7 @@ jobs: destination: dist-web - persist_to_workspace: root: ~/. - paths: visyn-web + paths: phovea-web web-publish: executor: node-executor steps: From f61a122b29c7050bd63702a07765bc6552436173 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Tue, 26 Apr 2022 13:57:22 +0200 Subject: [PATCH 075/117] Removed unfinished docs folder --- docs/ID-Mapping/index.md | 54 ------------------------ docs/commands/command-extension-point.md | 29 ------------- docs/commands/index.md | 2 - docs/database/index.md | 2 - docs/development/index.md | 33 --------------- docs/development/workspaces.md | 1 - docs/index.md | 3 -- docs/middleware/index.md | 2 - docs/plugins/index.md | 2 - docs/plugins/write-your-own-plugin.md | 1 - docs/security/index.md | 1 - docs/settings/index.md | 1 - 12 files changed, 131 deletions(-) delete mode 100644 docs/ID-Mapping/index.md delete mode 100644 docs/commands/command-extension-point.md delete mode 100644 docs/commands/index.md delete mode 100644 docs/database/index.md delete mode 100644 docs/development/index.md delete mode 100644 docs/development/workspaces.md delete mode 100644 docs/index.md delete mode 100644 docs/middleware/index.md delete mode 100644 docs/plugins/index.md delete mode 100644 docs/plugins/write-your-own-plugin.md delete mode 100644 docs/security/index.md delete mode 100644 docs/settings/index.md diff --git a/docs/ID-Mapping/index.md b/docs/ID-Mapping/index.md deleted file mode 100644 index f62ea8fc6..000000000 --- a/docs/ID-Mapping/index.md +++ /dev/null @@ -1,54 +0,0 @@ -# ID-Mapping introduction - -## What is an ID-type? - -## Adding a mapping between two ID-types - -In your `__init__.py` of your plugin, you can add a new mapping via the `mapping_provider` extension point: - -```python -registry.append('mapping_provider', '', '.my_mapping_provider') -``` - -The new file `.my_mapping_provider.py` containing the mapping provider, i.e. a create -function returning mapping tuples (these can be dynamically generated, coming from a db, request, ...): - -```python -def create(): - return [ - ('from', 'to', lambda ids: [[f'converted_{id}'] for id in ids]), - ('to', 'from', lambda ids: [[id[10:]] for id in ids]), - ] -``` - -Each tuple is basically `(from_idtype, to_idtype, mapping_function receiving multiple ids returning multiple ids for each id)`. Generally, the first id returned by the mapping function is preferred, however all are returned by default. - -!!! note - - By simply defining tuples between id-types, powerful transitive mappings can be resolved by traversing the resulting graph. Visyn Core utilizing such a graph to allow for transitive mappings. - - Example: - Imagine registering the tuples `IDTypeA -> IDTypeB` and `IDTypeB -> IDTypeC`. With that, the transitive connection between `ÃŒDTypeA -> IDTypeC` is possible by first executing `IDTypeA -> IDTypeB`, followed by `IDTypeB -> IDTypeC`. - -## Mapping between two ID-types - - * You can test it by showing all possible idtypes: - -[http://localhost:9000/api/idtype](http://localhost:9000/api/idtype) - - * Or where 'from' can be mapped to: - -[http://localhost:9000/api/idtype/from](http://localhost:9000/api/idtype/from) - - * Or mapping 'from' to 'to' for some ids: - -[http://localhost:9000/api/idtype/from/to?q=1,2,3](http://localhost:9000/api/idtype/from/to?q=1,2,3) - - * Or mapping 'to' to 'from' for some ids: - -[http://localhost:9000/api/idtype/to/from?q=converted_1,converted_2,converted_3](http://localhost:9000/api/idtype/to/from?q=converted_1,converted_2,converted_3) - - * Or mapping 'from' to 'to' for some ids and only wanting the first mapped id each: - -[http://localhost:9000/api/idtype/from/to?q=1,2,3&mode=first](http://localhost:9000/api/idtype/from/to?q=1,2,3&mode=first -) diff --git a/docs/commands/command-extension-point.md b/docs/commands/command-extension-point.md deleted file mode 100644 index a657c68a9..000000000 --- a/docs/commands/command-extension-point.md +++ /dev/null @@ -1,29 +0,0 @@ -# `command` Extension Point - -The `command` extension point supports adding custom commands which are executed within the server context, i.e. with loaded plugin registry, migrations, etc. These command override the default server startup and execute the command only. - -## Register a custom command - -Registering custom commands is considered legacy and will not be discussed thoroughly. - -## Running a custom command - -The python module `tdp_core.cmd` can be used as executable module to run any registered command. The corresponding call (executed in the same bash where the server is usually executed, i.e. docker if in dockerized environment) looks like this: - -```bash -python -m tdp_core.cmd <...> -``` - -More concretely, one can trigger a database upgrade using the following command: - -```bash -python -m tdp_core.cmd db-migration upgrade head -``` - -And a complete downgrade using following command: - -```bash -python -m tdp_core.cmd db-migration downgrade base -``` - -Please see the official alembic documentation regarding database migrations: [https://alembic.sqlalchemy.org/en/latest/api/commands.html](https://alembic.sqlalchemy.org/en/latest/api/commands.html). diff --git a/docs/commands/index.md b/docs/commands/index.md deleted file mode 100644 index 913953ca2..000000000 --- a/docs/commands/index.md +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: Commands introduction - diff --git a/docs/database/index.md b/docs/database/index.md deleted file mode 100644 index 3bace34fc..000000000 --- a/docs/database/index.md +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: Databases introduction - diff --git a/docs/development/index.md b/docs/development/index.md deleted file mode 100644 index 49a6510ce..000000000 --- a/docs/development/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# TODO: Development Introduction - -All important scripts are exposed via the Makefile. Use `make help` to show all available commands. - -## Formatting - -Use `make format` to reformat all corresponding files. - -## Linting - -Use `make lint` to check for linting issues. - -## Testing - -Use `make test` to run the available test-suites using pytest. - -## Writing documentation - -[mkdocs-material](https://squidfunk.github.io/mkdocs-material/) is used to write this documentation. - -### Commands - -* `mkdocs new [dir-name]` - Create a new project. -* `mkdocs serve` - Start the live-reloading docs server. -* `mkdocs build` - Build the documentation site. -* `mkdocs -h` - Print help message and exit. - -### Project layout - - mkdocs.yml # The configuration file. - docs/ - index.md # The documentation homepage. - ... # Other markdown pages, images and other files. diff --git a/docs/development/workspaces.md b/docs/development/workspaces.md deleted file mode 100644 index 008edccec..000000000 --- a/docs/development/workspaces.md +++ /dev/null @@ -1 +0,0 @@ -# TODO: Developer Workspace \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index e27a4d8c4..000000000 --- a/docs/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Welcome to Visyn Core - -Visyn Core is the core of the Visyn Platform, an open-source platform for developing scalable web-based visual ananlytics platforms. diff --git a/docs/middleware/index.md b/docs/middleware/index.md deleted file mode 100644 index b2692c98c..000000000 --- a/docs/middleware/index.md +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: Middleware - diff --git a/docs/plugins/index.md b/docs/plugins/index.md deleted file mode 100644 index 22cfc9fcf..000000000 --- a/docs/plugins/index.md +++ /dev/null @@ -1,2 +0,0 @@ -# TODO: Plugins and Extensions - diff --git a/docs/plugins/write-your-own-plugin.md b/docs/plugins/write-your-own-plugin.md deleted file mode 100644 index 84a162ba5..000000000 --- a/docs/plugins/write-your-own-plugin.md +++ /dev/null @@ -1 +0,0 @@ -# TODO: Write your own plugin diff --git a/docs/security/index.md b/docs/security/index.md deleted file mode 100644 index 45442c217..000000000 --- a/docs/security/index.md +++ /dev/null @@ -1 +0,0 @@ -# TODO: Security diff --git a/docs/settings/index.md b/docs/settings/index.md deleted file mode 100644 index 88886f17e..000000000 --- a/docs/settings/index.md +++ /dev/null @@ -1 +0,0 @@ -# TODO: Settings From 4693851e183a0276c6abb7d09a8abc76b0789d41 Mon Sep 17 00:00:00 2001 From: dvvanessastoiber Date: Wed, 27 Apr 2022 08:05:30 +0200 Subject: [PATCH 076/117] prepare next dev version --- package.json | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e0a1c9c8b..02a5e8378 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tdp_core", "description": "Target discovery platform for exploring rankings of genes, disease models, and other entities.", - "version": "14.0.2", + "version": "14.0.3-SNAPSHOT", "author": { "name": "datavisyn GmbH", "email": "contact@datavisyn.io", diff --git a/requirements.txt b/requirements.txt index f69ae0424..de0c9a67f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,4 +15,4 @@ flask-login==0.5.0 cachelib==0.1.1 docutils==0.17.1 markupsafe==2.0.1 -phovea_server>=9.0.0,<10.0.0 \ No newline at end of file +-e git+https://github.com/phovea/phovea_server.git@develop#egg=phovea_server \ No newline at end of file From 7ec7c4b0c219b9af8321b9078cbcbcf893b375d4 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 27 Apr 2022 09:43:50 +0200 Subject: [PATCH 077/117] Added proper error handling to Flask apps --- dist/base/ajax.d.ts | 8 +++++++- dist/base/ajax.d.ts.map | 2 +- dist/base/ajax.js | 31 ++++++++++++++++++++++++++----- dist/base/ajax.js.map | 2 +- dist/components/Errors.d.ts.map | 2 +- dist/components/Errors.js | 3 ++- dist/components/Errors.js.map | 2 +- src/base/ajax.ts | 31 ++++++++++++++++++++++++++----- src/components/Errors.ts | 3 ++- tdp_core/server/utils.py | 28 ++++++++++++---------------- 10 files changed, 79 insertions(+), 33 deletions(-) diff --git a/dist/base/ajax.d.ts b/dist/base/ajax.d.ts index 4b74737c5..7a8f4876b 100644 --- a/dist/base/ajax.d.ts +++ b/dist/base/ajax.d.ts @@ -9,7 +9,13 @@ export declare class Ajax { * Maximum number of characters of a valid URL */ static MAX_URL_LENGTH: number; - static checkStatus(response: Response): Response; + /** + * Tries to get a proper message from a response by checking the `json()` content for `detail`, the `text()`, or the `statusText`. + * @param response Response where the error message is contained. + * @returns The extracted error message. + */ + static getErrorMessageFromResponse(response: Response): Promise; + static checkStatus(response: Response): Promise; static parseType(expectedDataType: string, response: Response): Promise; /** * sends an XML http request to the server diff --git a/dist/base/ajax.d.ts.map b/dist/base/ajax.d.ts.map index c97c24c8a..a52500308 100644 --- a/dist/base/ajax.d.ts.map +++ b/dist/base/ajax.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAU,SAAQ,KAAK;aACN,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM;CAKjE;AAED,qBAAa,IAAI;IACf,OAAc,0BAA0B,SAAiB;IAEzD,OAAc,2BAA2B,SAAkB;IAE3D;;OAEG;IACH,OAAc,cAAc,SAAQ;IAEpC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAOrC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAiB7D;;;;;;;;OAQG;WACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAQ,EACd,MAAM,SAAQ,EACd,gBAAgB,SAAS,EACzB,WAAW,SAAa,EACxB,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC;IA+Db;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,EAAE,gBAAgB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,GAAU;CAyCrC"} \ No newline at end of file +{"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAU,SAAQ,KAAK;aACN,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM;CAGjE;AAED,qBAAa,IAAI;IACf,OAAc,0BAA0B,SAAiB;IAEzD,OAAc,2BAA2B,SAAkB;IAE3D;;OAEG;IACH,OAAc,cAAc,SAAQ;IAEpC;;;;OAIG;WACU,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;WAiBhE,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAQ3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAiB7D;;;;;;;;OAQG;WACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAQ,EACd,MAAM,SAAQ,EACd,gBAAgB,SAAS,EACzB,WAAW,SAAa,EACxB,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC;IA+Db;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,EAAE,gBAAgB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,GAAU;CAyCrC"} \ No newline at end of file diff --git a/dist/base/ajax.js b/dist/base/ajax.js index bdfe6fa32..a46288416 100644 --- a/dist/base/ajax.js +++ b/dist/base/ajax.js @@ -4,16 +4,37 @@ export class AjaxError extends Error { constructor(response, message) { super(message || response.statusText); this.response = response; - // Set the prototype explicitly. needed for Typescript 2.1 - Object.setPrototypeOf(this, AjaxError.prototype); } } export class Ajax { - static checkStatus(response) { + /** + * Tries to get a proper message from a response by checking the `json()` content for `detail`, the `text()`, or the `statusText`. + * @param response Response where the error message is contained. + * @returns The extracted error message. + */ + static async getErrorMessageFromResponse(response) { + // try to get a message from the response, either via json detail, the text, or the status text. + let message = ''; + try { + message = message || (await response.json()).detail; + } + catch (e) { + // ignore + } + try { + message = message || (await response.text()); + } + catch (e) { + // ignore + } + message = message || response.statusText; + return message; + } + static async checkStatus(response) { if (response.ok) { return response; } - throw new AjaxError(response); + throw new AjaxError(response, await Ajax.getErrorMessageFromResponse(response)); } static parseType(expectedDataType, response) { switch (expectedDataType.trim().toLowerCase()) { @@ -91,7 +112,7 @@ export class Ajax { } // there are no typings for fetch so far GlobalEventHandler.getInstance().fire(Ajax.GLOBAL_EVENT_AJAX_PRE_SEND, url, mergedOptions); - const r = Ajax.checkStatus(await window.fetch(url, mergedOptions)); + const r = await Ajax.checkStatus(await window.fetch(url, mergedOptions)); const output = Ajax.parseType(expectedDataType, r); GlobalEventHandler.getInstance().fire(Ajax.GLOBAL_EVENT_AJAX_POST_SEND, url, mergedOptions, r, output); return output; diff --git a/dist/base/ajax.js.map b/dist/base/ajax.js.map index 3610f523b..e884a63bb 100644 --- a/dist/base/ajax.js.map +++ b/dist/base/ajax.js.map @@ -1 +1 @@ -{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAA4B,QAAkB,EAAE,OAAgB;QAC9D,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QADZ,aAAQ,GAAR,QAAQ,CAAU;IAE9C,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IAUf;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,QAAkB;QACzD,gGAAgG;QAChG,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI;YACF,OAAO,GAAG,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;SACrD;QAAC,OAAO,CAAC,EAAE;YACV,SAAS;SACV;QACD,IAAI;YACF,OAAO,GAAG,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,SAAS;SACV;QACD,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB;QACzC,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,gBAAwB,EAAE,QAAkB;QAC3D,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YAC7C,KAAK,MAAM,CAAC;YACZ,KAAK,kBAAkB;gBACrB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC;YACZ,KAAK,YAAY;gBACf,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,aAAa;gBAChB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;YAChC;gBACE,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,gCAAgC,gBAAgB,GAAG,CAAC,CAAC;SACtF;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,GAAW,EACX,OAAY,EAAE,EACd,MAAM,GAAG,KAAK,EACd,gBAAgB,GAAG,MAAM,EACzB,WAAW,GAAG,UAAU,EACxB,UAAgC,EAAE;QAElC,oBAAoB;QACpB,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE;YACzC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;YAChD,IAAI,IAAI,EAAE;gBACR,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC3C,IAAI,GAAG,IAAI,CAAC;aACb;SACF;QAED,MAAM,aAAa,GAAgB,KAAK,CACtC;YACE,WAAW,EAAE,aAAa;YAC1B,MAAM;YACN,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,EACD,OAAO,CACR,CAAC;QAEF,IAAI,IAAI,EAAE;YACR,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;gBACxC,KAAK,MAAM,CAAC;gBACZ,KAAK,kBAAkB;oBACrB,QAAQ,GAAG,kBAAkB,CAAC;oBAC9B,aAAa,CAAC,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC5E,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY;oBACf,QAAQ,GAAG,YAAY,CAAC;oBACxB,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClC,MAAM;gBACR,KAAK,MAAM,CAAC;gBACZ,KAAK,aAAa;oBAChB,QAAQ,GAAG,0BAA0B,CAAC;oBACtC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC1B,MAAM;gBACR;oBACE,IAAI,IAAI,YAAY,QAAQ,EAAE;wBAC5B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;qBAC3B;yBAAM;wBACL,QAAQ,GAAG,mCAAmC,CAAC;wBAC/C,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;qBAC9C;aACJ;YACD,IAAI,QAAQ,EAAE;gBACZ,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;aAClD;SACF;QAED,wCAAwC;QACxC,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QAC3F,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACnD,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAW,EAAE,OAAY,EAAE;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAW,EAAE,OAAY,EAAE,EAAE,gBAAgB,GAAG,MAAM;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAY,IAAI;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,CAAC,GAAa,EAAE,CAAC;QAEvB,SAAS,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,KAAU;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;wBACzB,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;qBAChC;yBAAM;wBACL,qCAAqC;wBACrC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;qBAC5B;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,KAAK,IAAI,IAAI,EAAE;gBACxB,OAAO;aACR;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/B,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5E;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;;AAzMa,+BAA0B,GAAG,aAAa,CAAC;AAE3C,gCAA2B,GAAG,cAAc,CAAC;AAE3D;;GAEG;AACW,mBAAc,GAAG,IAAI,CAAC"} \ No newline at end of file diff --git a/dist/components/Errors.d.ts.map b/dist/components/Errors.d.ts.map index f5b917791..cdaee8635 100644 --- a/dist/components/Errors.d.ts.map +++ b/dist/components/Errors.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,qBAAa,MAAM;IACjB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAInE;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,oBAAoB,SAAK;8BAIZ,MAAM,kBAAkB,MAAM,yBAAyB,MAAM,GAAG,MAAM;;CAuC5H"} \ No newline at end of file +{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,qBAAa,MAAM;IACjB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAInE;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,oBAAoB,SAAK;8BAIZ,MAAM,kBAAkB,MAAM,yBAAyB,MAAM,GAAG,MAAM;;CAuC5H"} \ No newline at end of file diff --git a/dist/components/Errors.js b/dist/components/Errors.js index 92dff23ce..1991ea35f 100644 --- a/dist/components/Errors.js +++ b/dist/components/Errors.js @@ -1,3 +1,4 @@ +import { Ajax } from '../base/ajax'; import { I18nextManager } from '../i18n'; let globalErrorTemplate = (details) => details; export class Errors { @@ -42,7 +43,7 @@ export class Errors { } if (error instanceof Response || error.response instanceof Response) { const xhr = error instanceof Response ? error : error.response; - return xhr.text().then((body) => { + return Ajax.getErrorMessageFromResponse(xhr).then((body) => { const title = I18nextManager.getInstance().i18n.t('phovea:ui.errorHeader', { status: xhr.status, statusText: xhr.statusText }); if (xhr.status !== 400) { body = `${body}
    diff --git a/dist/components/Errors.js.map b/dist/components/Errors.js.map index 82752faa0..aca6a1284 100644 --- a/dist/components/Errors.js.map +++ b/dist/components/Errors.js.map @@ -1 +1 @@ -{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,IAAI,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC;AAEvD,MAAM,OAAO,MAAM;IACjB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAqC;QACjE,mBAAmB,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAU,EAAE,oBAAoB,GAAG,EAAE;QAC/D,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;YAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC7B,GAAG,EAAE,CACH,CAAC,EAAE,cAAc,EAAoG,EAAE,EAAE,CACvH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAErH,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAElD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACnB,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;oBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CACP,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,QAAQ,YAAY,QAAQ,EAAE;YACnE,MAAM,GAAG,GAAa,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/H,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,IAAI,GAAG,GAAG,IAAI;YACZ,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,CAAC,GAAG,qBACjF,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GACjE,MAAM,CAAC;iBACR;gBACD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,OAAO,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,IAAI,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC;AAEvD,MAAM,OAAO,MAAM;IACjB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAqC;QACjE,mBAAmB,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAU,EAAE,oBAAoB,GAAG,EAAE;QAC/D,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;YAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC7B,GAAG,EAAE,CACH,CAAC,EAAE,cAAc,EAAoG,EAAE,EAAE,CACvH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAErH,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAElD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACnB,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;oBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CACP,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,QAAQ,YAAY,QAAQ,EAAE;YACnE,MAAM,GAAG,GAAa,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzE,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE;gBACjE,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/H,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,IAAI,GAAG,GAAG,IAAI;YACZ,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,CAAC,GAAG,qBACjF,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GACjE,MAAM,CAAC;iBACR;gBACD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,OAAO,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;CACF"} \ No newline at end of file diff --git a/src/base/ajax.ts b/src/base/ajax.ts index d7c76e6d1..17ed9a771 100644 --- a/src/base/ajax.ts +++ b/src/base/ajax.ts @@ -4,8 +4,6 @@ import { GlobalEventHandler } from './event'; export class AjaxError extends Error { constructor(public readonly response: Response, message?: string) { super(message || response.statusText); - // Set the prototype explicitly. needed for Typescript 2.1 - Object.setPrototypeOf(this, AjaxError.prototype); } } @@ -19,11 +17,34 @@ export class Ajax { */ public static MAX_URL_LENGTH = 4096; - static checkStatus(response: Response) { + /** + * Tries to get a proper message from a response by checking the `json()` content for `detail`, the `text()`, or the `statusText`. + * @param response Response where the error message is contained. + * @returns The extracted error message. + */ + static async getErrorMessageFromResponse(response: Response): Promise { + // try to get a message from the response, either via json detail, the text, or the status text. + let message = ''; + try { + message = message || (await response.json()).detail; + } catch (e) { + // ignore + } + try { + message = message || (await response.text()); + } catch (e) { + // ignore + } + message = message || response.statusText; + return message; + } + + static async checkStatus(response: Response) { if (response.ok) { return response; } - throw new AjaxError(response); + + throw new AjaxError(response, await Ajax.getErrorMessageFromResponse(response)); } static parseType(expectedDataType: string, response: Response) { @@ -116,7 +137,7 @@ export class Ajax { // there are no typings for fetch so far GlobalEventHandler.getInstance().fire(Ajax.GLOBAL_EVENT_AJAX_PRE_SEND, url, mergedOptions); - const r = Ajax.checkStatus(await window.fetch(url, mergedOptions)); + const r = await Ajax.checkStatus(await window.fetch(url, mergedOptions)); const output = Ajax.parseType(expectedDataType, r); GlobalEventHandler.getInstance().fire(Ajax.GLOBAL_EVENT_AJAX_POST_SEND, url, mergedOptions, r, output); return output; diff --git a/src/components/Errors.ts b/src/components/Errors.ts index a1a645fe5..020408c0e 100644 --- a/src/components/Errors.ts +++ b/src/components/Errors.ts @@ -1,3 +1,4 @@ +import { Ajax } from '../base/ajax'; import { I18nextManager } from '../i18n'; import { Dialog } from './dialogs'; @@ -55,7 +56,7 @@ export class Errors { if (error instanceof Response || error.response instanceof Response) { const xhr: Response = error instanceof Response ? error : error.response; - return xhr.text().then((body: string) => { + return Ajax.getErrorMessageFromResponse(xhr).then((body: string) => { const title = I18nextManager.getInstance().i18n.t('phovea:ui.errorHeader', { status: xhr.status, statusText: xhr.statusText }); if (xhr.status !== 400) { body = `${body}
    diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py index 6ad63b7a0..b47dade61 100644 --- a/tdp_core/server/utils.py +++ b/tdp_core/server/utils.py @@ -1,13 +1,16 @@ -import json import logging import time +from fastapi import HTTPException +from flask import Flask +import werkzeug + from .. import manager _log = logging.getLogger(__name__) -def init_legacy_app(app): +def init_legacy_app(app: Flask): """ initializes an application by setting common properties and options :param app: @@ -23,21 +26,14 @@ def init_legacy_app(app): if manager.settings.tdp_core: app.config["SECRET_KEY"] = manager.settings.secret_key - @app.errorhandler(500) + @app.errorhandler(werkzeug.exceptions.HTTPException) + @app.errorhandler(Exception) def handle_exception(e): - """Return JSON instead of HTML for HTTP errors.""" - # start with the correct headers and status code from the error - response = e.get_response() - # replace the body with JSON - response.data = json.dumps( - { - "status_code": e.code, - "name": e.name, - "detail": e.description, - } - ) - response.content_type = "application/json" - return response + """Raises a proper fastapi#HTTPException instead of HTML for HTTP errors and exceptions.""" + _log.exception('An exception in a Flask app', exc_info=e) + if isinstance(e, werkzeug.exceptions.HTTPException): + raise HTTPException(status_code=e.code, detail=e.description) + raise HTTPException(status_code=500, detail=str(e)) return app From a1d9464b25ad40f20e44ddaffb2f272e7cfdd20c Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 27 Apr 2022 10:34:54 +0200 Subject: [PATCH 078/117] Fixed import order in utils.py --- tdp_core/server/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py index b47dade61..1c0913b59 100644 --- a/tdp_core/server/utils.py +++ b/tdp_core/server/utils.py @@ -1,9 +1,9 @@ import logging import time +import werkzeug from fastapi import HTTPException from flask import Flask -import werkzeug from .. import manager @@ -30,7 +30,7 @@ def init_legacy_app(app: Flask): @app.errorhandler(Exception) def handle_exception(e): """Raises a proper fastapi#HTTPException instead of HTML for HTTP errors and exceptions.""" - _log.exception('An exception in a Flask app', exc_info=e) + _log.exception("An exception in a Flask app", exc_info=e) if isinstance(e, werkzeug.exceptions.HTTPException): raise HTTPException(status_code=e.code, detail=e.description) raise HTTPException(status_code=500, detail=str(e)) From d28b8ca12effb6e59da486ae6ae287dfff79f6b0 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Wed, 27 Apr 2022 12:03:55 +0200 Subject: [PATCH 079/117] Disabled error message if in production mode --- dist/base/ErrorAlertHandler.d.ts.map | 2 +- dist/base/ErrorAlertHandler.js | 9 +++++---- dist/base/ErrorAlertHandler.js.map | 2 +- dist/base/ajax.d.ts | 1 + dist/base/ajax.d.ts.map | 2 +- dist/base/ajax.js | 19 ++++++++++++------- dist/base/ajax.js.map | 2 +- dist/components/Errors.js | 6 +++--- dist/components/Errors.js.map | 2 +- src/base/ErrorAlertHandler.ts | 11 ++++++----- src/base/ajax.ts | 18 ++++++++++++------ src/components/Errors.ts | 6 +++--- tdp_core/server/utils.py | 2 +- 13 files changed, 48 insertions(+), 34 deletions(-) diff --git a/dist/base/ErrorAlertHandler.d.ts.map b/dist/base/ErrorAlertHandler.d.ts.map index 975db0507..d758eb841 100644 --- a/dist/base/ErrorAlertHandler.d.ts.map +++ b/dist/base/ErrorAlertHandler.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ErrorAlertHandler.d.ts","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"AAGA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAuBvB;IAEK,oBAAoB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAItD,UAAU,CAAC,KAAK,EAAE,GAAG;IAIrB,YAAY,CAAC,KAAK,EAAE,GAAG;IAW9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;WAE7B,WAAW,IAAI,iBAAiB;CAM/C"} \ No newline at end of file +{"version":3,"file":"ErrorAlertHandler.d.ts","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"AAIA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAuBvB;IAEK,oBAAoB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAItD,UAAU,CAAC,KAAK,EAAE,GAAG;IAIrB,YAAY,CAAC,KAAK,EAAE,GAAG;IAW9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;WAE7B,WAAW,IAAI,iBAAiB;CAM/C"} \ No newline at end of file diff --git a/dist/base/ErrorAlertHandler.js b/dist/base/ErrorAlertHandler.js index 2953c6c02..64f90d882 100644 --- a/dist/base/ErrorAlertHandler.js +++ b/dist/base/ErrorAlertHandler.js @@ -1,11 +1,12 @@ import { I18nextManager } from '../i18n'; +import { Ajax, isAjaxError } from './ajax'; import { NotificationHandler } from './NotificationHandler'; export class ErrorAlertHandler { constructor() { this.errorAlertHandler = (error) => { - if (error instanceof Response || error.response instanceof Response) { + if (error instanceof Response || isAjaxError(error)) { const xhr = error instanceof Response ? error : error.response; - return xhr.text().then((body) => { + return Promise.resolve(isAjaxError(error) ? error.message : Ajax.getErrorMessageFromResponse(xhr)).then((body) => { if (xhr.status === 408) { body = I18nextManager.getInstance().i18n.t('tdp:core.timeoutMessage'); } @@ -28,9 +29,9 @@ export class ErrorAlertHandler { return ErrorAlertHandler.getInstance().errorAlertHandler(error); } errorMessage(error) { - if (error instanceof Response || error.response instanceof Response) { + if (error instanceof Response || isAjaxError(error)) { const xhr = error instanceof Response ? error : error.response; - return `${error.message.replace('\n', '
    ')}

    ${xhr.status} (${xhr.statusText})`; + return `${(isAjaxError(error) ? error.message : error.statusText).replace('\n', '
    ')}

    ${xhr.status} (${xhr.statusText})`; } if (error instanceof Error) { return `${error.name}: ${error.message.replace('\n', '
    ')}`; diff --git a/dist/base/ErrorAlertHandler.js.map b/dist/base/ErrorAlertHandler.js.map index 9a39b7106..36273a2bf 100644 --- a/dist/base/ErrorAlertHandler.js.map +++ b/dist/base/ErrorAlertHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"ErrorAlertHandler.js","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ErrorAlertHandler.js","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/base/ajax.d.ts b/dist/base/ajax.d.ts index 7a8f4876b..72cb73791 100644 --- a/dist/base/ajax.d.ts +++ b/dist/base/ajax.d.ts @@ -2,6 +2,7 @@ export declare class AjaxError extends Error { readonly response: Response; constructor(response: Response, message?: string); } +export declare function isAjaxError(error: any): error is AjaxError; export declare class Ajax { static GLOBAL_EVENT_AJAX_PRE_SEND: string; static GLOBAL_EVENT_AJAX_POST_SEND: string; diff --git a/dist/base/ajax.d.ts.map b/dist/base/ajax.d.ts.map index a52500308..96df5649d 100644 --- a/dist/base/ajax.d.ts.map +++ b/dist/base/ajax.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAU,SAAQ,KAAK;aACN,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM;CAGjE;AAED,qBAAa,IAAI;IACf,OAAc,0BAA0B,SAAiB;IAEzD,OAAc,2BAA2B,SAAkB;IAE3D;;OAEG;IACH,OAAc,cAAc,SAAQ;IAEpC;;;;OAIG;WACU,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;WAiBhE,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAQ3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAiB7D;;;;;;;;OAQG;WACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAQ,EACd,MAAM,SAAQ,EACd,gBAAgB,SAAS,EACzB,WAAW,SAAa,EACxB,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC;IA+Db;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,EAAE,gBAAgB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,GAAU;CAyCrC"} \ No newline at end of file +{"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAU,SAAQ,KAAK;aACN,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM;CAGjE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AAED,qBAAa,IAAI;IACf,OAAc,0BAA0B,SAAiB;IAEzD,OAAc,2BAA2B,SAAkB;IAE3D;;OAEG;IACH,OAAc,cAAc,SAAQ;IAEpC;;;;OAIG;WACU,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;WAmBhE,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAQ3C,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAiB7D;;;;;;;;OAQG;WACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAQ,EACd,MAAM,SAAQ,EACd,gBAAgB,SAAS,EACzB,WAAW,SAAa,EACxB,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GACjC,OAAO,CAAC,CAAC,CAAC;IA+Db;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,EAAE,gBAAgB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,GAAU;CAyCrC"} \ No newline at end of file diff --git a/dist/base/ajax.js b/dist/base/ajax.js index a46288416..7c87b1dc0 100644 --- a/dist/base/ajax.js +++ b/dist/base/ajax.js @@ -6,6 +6,9 @@ export class AjaxError extends Error { this.response = response; } } +export function isAjaxError(error) { + return (error === null || error === void 0 ? void 0 : error.response) instanceof Response; +} export class Ajax { /** * Tries to get a proper message from a response by checking the `json()` content for `detail`, the `text()`, or the `statusText`. @@ -16,13 +19,15 @@ export class Ajax { // try to get a message from the response, either via json detail, the text, or the status text. let message = ''; try { - message = message || (await response.json()).detail; - } - catch (e) { - // ignore - } - try { - message = message || (await response.text()); + // Read the stream and try to parse it + const text = await response.text(); + try { + message = message || JSON.parse(text).detail; + } + catch (e) { + // ignore + } + message = message || text; } catch (e) { // ignore diff --git a/dist/base/ajax.js.map b/dist/base/ajax.js.map index e884a63bb..85d0f3380 100644 --- a/dist/base/ajax.js.map +++ b/dist/base/ajax.js.map @@ -1 +1 @@ -{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ajax.js","sourceRoot":"","sources":["../../src/base/ajax.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/components/Errors.js b/dist/components/Errors.js index 1991ea35f..1cd1ec31b 100644 --- a/dist/components/Errors.js +++ b/dist/components/Errors.js @@ -1,4 +1,4 @@ -import { Ajax } from '../base/ajax'; +import { Ajax, isAjaxError } from '../base/ajax'; import { I18nextManager } from '../i18n'; let globalErrorTemplate = (details) => details; export class Errors { @@ -41,9 +41,9 @@ export class Errors { dialog.show(); })); } - if (error instanceof Response || error.response instanceof Response) { + if (error instanceof Response || isAjaxError(error)) { const xhr = error instanceof Response ? error : error.response; - return Ajax.getErrorMessageFromResponse(xhr).then((body) => { + return Promise.resolve(isAjaxError(error) ? error.message : Ajax.getErrorMessageFromResponse(xhr)).then((body) => { const title = I18nextManager.getInstance().i18n.t('phovea:ui.errorHeader', { status: xhr.status, statusText: xhr.statusText }); if (xhr.status !== 400) { body = `${body}
    diff --git a/dist/components/Errors.js.map b/dist/components/Errors.js.map index aca6a1284..0031c8cda 100644 --- a/dist/components/Errors.js.map +++ b/dist/components/Errors.js.map @@ -1 +1 @@ -{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,IAAI,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC;AAEvD,MAAM,OAAO,MAAM;IACjB;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAqC;QACjE,mBAAmB,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAU,EAAE,oBAAoB,GAAG,EAAE;QAC/D,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;YAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC7B,GAAG,EAAE,CACH,CAAC,EAAE,cAAc,EAAoG,EAAE,EAAE,CACvH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAErH,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAElD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACnB,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;oBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CACP,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,QAAQ,YAAY,QAAQ,EAAE;YACnE,MAAM,GAAG,GAAa,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzE,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE;gBACjE,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/H,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACtB,IAAI,GAAG,GAAG,IAAI;YACZ,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,GAAG,CAAC,GAAG,qBACjF,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GACjE,MAAM,CAAC;iBACR;gBACD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,OAAO,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;CACF"} \ No newline at end of file +{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../../src/components/Errors.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/base/ErrorAlertHandler.ts b/src/base/ErrorAlertHandler.ts index 969c70195..94a17ce82 100644 --- a/src/base/ErrorAlertHandler.ts +++ b/src/base/ErrorAlertHandler.ts @@ -1,11 +1,12 @@ import { I18nextManager } from '../i18n'; +import {Ajax, AjaxError, isAjaxError} from './ajax'; import { NotificationHandler } from './NotificationHandler'; export class ErrorAlertHandler { - private errorAlertHandler = (error: any) => { - if (error instanceof Response || error.response instanceof Response) { + private errorAlertHandler = (error: Error | AjaxError) => { + if (error instanceof Response || isAjaxError(error)) { const xhr: Response = error instanceof Response ? error : error.response; - return xhr.text().then((body: string) => { + return Promise.resolve(isAjaxError(error) ? error.message : Ajax.getErrorMessageFromResponse(xhr)).then((body: string) => { if (xhr.status === 408) { body = I18nextManager.getInstance().i18n.t('tdp:core.timeoutMessage'); } @@ -36,9 +37,9 @@ export class ErrorAlertHandler { } public errorMessage(error: any) { - if (error instanceof Response || error.response instanceof Response) { + if (error instanceof Response || isAjaxError(error)) { const xhr: Response = error instanceof Response ? error : error.response; - return `${error.message.replace('\n', '
    ')}

    ${xhr.status} (${xhr.statusText})`; + return `${(isAjaxError(error) ? error.message : error.statusText).replace('\n', '
    ')}

    ${xhr.status} (${xhr.statusText})`; } if (error instanceof Error) { return `${error.name}: ${error.message.replace('\n', '
    ')}`; diff --git a/src/base/ajax.ts b/src/base/ajax.ts index 17ed9a771..332b10004 100644 --- a/src/base/ajax.ts +++ b/src/base/ajax.ts @@ -7,6 +7,10 @@ export class AjaxError extends Error { } } +export function isAjaxError(error: any): error is AjaxError { + return error?.response instanceof Response; +} + export class Ajax { public static GLOBAL_EVENT_AJAX_PRE_SEND = 'ajaxPreSend'; @@ -26,12 +30,14 @@ export class Ajax { // try to get a message from the response, either via json detail, the text, or the status text. let message = ''; try { - message = message || (await response.json()).detail; - } catch (e) { - // ignore - } - try { - message = message || (await response.text()); + // Read the stream and try to parse it + const text = await response.text(); + try { + message = message || JSON.parse(text).detail; + } catch (e) { + // ignore + } + message = message || text; } catch (e) { // ignore } diff --git a/src/components/Errors.ts b/src/components/Errors.ts index 020408c0e..dcd4087b4 100644 --- a/src/components/Errors.ts +++ b/src/components/Errors.ts @@ -1,4 +1,4 @@ -import { Ajax } from '../base/ajax'; +import { Ajax, isAjaxError } from '../base/ajax'; import { I18nextManager } from '../i18n'; import { Dialog } from './dialogs'; @@ -54,9 +54,9 @@ export class Errors { ); } - if (error instanceof Response || error.response instanceof Response) { + if (error instanceof Response || isAjaxError(error)) { const xhr: Response = error instanceof Response ? error : error.response; - return Ajax.getErrorMessageFromResponse(xhr).then((body: string) => { + return Promise.resolve(isAjaxError(error) ? error.message : Ajax.getErrorMessageFromResponse(xhr)).then((body: string) => { const title = I18nextManager.getInstance().i18n.t('phovea:ui.errorHeader', { status: xhr.status, statusText: xhr.statusText }); if (xhr.status !== 400) { body = `${body}
    diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py index 1c0913b59..77abe177a 100644 --- a/tdp_core/server/utils.py +++ b/tdp_core/server/utils.py @@ -33,7 +33,7 @@ def handle_exception(e): _log.exception("An exception in a Flask app", exc_info=e) if isinstance(e, werkzeug.exceptions.HTTPException): raise HTTPException(status_code=e.code, detail=e.description) - raise HTTPException(status_code=500, detail=str(e)) + raise HTTPException(status_code=500, detail=str(e) if manager.settings.is_development_mode else 'Internal server error') return app From 4ab91bdcd4b36e03ee0e424dc3def9a1f886e564 Mon Sep 17 00:00:00 2001 From: Michael Puehringer Date: Thu, 28 Apr 2022 11:28:43 +0200 Subject: [PATCH 080/117] Fixed linting of new error utils --- dist/base/ErrorAlertHandler.d.ts.map | 2 +- dist/base/ErrorAlertHandler.js.map | 2 +- src/base/ErrorAlertHandler.ts | 6 ++++-- tdp_core/server/utils.py | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/dist/base/ErrorAlertHandler.d.ts.map b/dist/base/ErrorAlertHandler.d.ts.map index d758eb841..9117f3218 100644 --- a/dist/base/ErrorAlertHandler.d.ts.map +++ b/dist/base/ErrorAlertHandler.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ErrorAlertHandler.d.ts","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"AAIA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAuBvB;IAEK,oBAAoB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAItD,UAAU,CAAC,KAAK,EAAE,GAAG;IAIrB,YAAY,CAAC,KAAK,EAAE,GAAG;IAW9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;WAE7B,WAAW,IAAI,iBAAiB;CAM/C"} \ No newline at end of file +{"version":3,"file":"ErrorAlertHandler.d.ts","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"AAIA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,iBAAiB,CAuBvB;IAEK,oBAAoB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAItD,UAAU,CAAC,KAAK,EAAE,GAAG;IAIrB,YAAY,CAAC,KAAK,EAAE,GAAG;IAa9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;WAE7B,WAAW,IAAI,iBAAiB;CAM/C"} \ No newline at end of file diff --git a/dist/base/ErrorAlertHandler.js.map b/dist/base/ErrorAlertHandler.js.map index 36273a2bf..49976e98c 100644 --- a/dist/base/ErrorAlertHandler.js.map +++ b/dist/base/ErrorAlertHandler.js.map @@ -1 +1 @@ -{"version":3,"file":"ErrorAlertHandler.js","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ErrorAlertHandler.js","sourceRoot":"","sources":["../../src/base/ErrorAlertHandler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/base/ErrorAlertHandler.ts b/src/base/ErrorAlertHandler.ts index 94a17ce82..2b17cb6f6 100644 --- a/src/base/ErrorAlertHandler.ts +++ b/src/base/ErrorAlertHandler.ts @@ -1,5 +1,5 @@ import { I18nextManager } from '../i18n'; -import {Ajax, AjaxError, isAjaxError} from './ajax'; +import { Ajax, AjaxError, isAjaxError } from './ajax'; import { NotificationHandler } from './NotificationHandler'; export class ErrorAlertHandler { @@ -39,7 +39,9 @@ export class ErrorAlertHandler { public errorMessage(error: any) { if (error instanceof Response || isAjaxError(error)) { const xhr: Response = error instanceof Response ? error : error.response; - return `${(isAjaxError(error) ? error.message : error.statusText).replace('\n', '
    ')}

    ${xhr.status} (${xhr.statusText})`; + return `${(isAjaxError(error) ? error.message : error.statusText).replace('\n', '
    ')}

    ${xhr.status} (${ + xhr.statusText + })`; } if (error instanceof Error) { return `${error.name}: ${error.message.replace('\n', '
    ')}`; diff --git a/tdp_core/server/utils.py b/tdp_core/server/utils.py index 77abe177a..4e775a9b9 100644 --- a/tdp_core/server/utils.py +++ b/tdp_core/server/utils.py @@ -33,7 +33,7 @@ def handle_exception(e): _log.exception("An exception in a Flask app", exc_info=e) if isinstance(e, werkzeug.exceptions.HTTPException): raise HTTPException(status_code=e.code, detail=e.description) - raise HTTPException(status_code=500, detail=str(e) if manager.settings.is_development_mode else 'Internal server error') + raise HTTPException(status_code=500, detail=str(e) if manager.settings.is_development_mode else "Internal server error") return app From 86d9fa454b88b9cb11c2a0aab9c14d54011e1591 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 11:13:28 +0200 Subject: [PATCH 081/117] color selection changes, tooltip improvement --- dist/vis/scatter/ScatterVis.d.ts.map | 2 +- dist/vis/scatter/ScatterVis.js | 8 ++++++-- dist/vis/scatter/ScatterVis.js.map | 2 +- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 17 +++++++++++------ dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/ScatterVis.tsx | 8 ++++++-- src/vis/scatter/utils.ts | 25 +++++++++++++++++++------ 8 files changed, 46 insertions(+), 20 deletions(-) diff --git a/dist/vis/scatter/ScatterVis.d.ts.map b/dist/vis/scatter/ScatterVis.d.ts.map index ddbb873ed..202a5cfda 100644 --- a/dist/vis/scatter/ScatterVis.d.ts.map +++ b/dist/vis/scatter/ScatterVis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAmBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,EAChC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,eAsHA"} \ No newline at end of file +{"version":3,"file":"ScatterVis.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAmBtH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAoD,EACpD,cAA2B,EAC3B,iBAA8B,EAC9B,WAAgB,EAChB,YAAiB,EACjB,SAAS,EACT,WAAmB,EACnB,eAAuB,EACvB,mBAAgC,EAChC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,KAAK,CAAC,EAAE;YACN,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;QACF,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,eA0HA"} \ No newline at end of file diff --git a/dist/vis/scatter/ScatterVis.js b/dist/vis/scatter/ScatterVis.js index 7e9feacf4..7690d21fa 100644 --- a/dist/vis/scatter/ScatterVis.js +++ b/dist/vis/scatter/ScatterVis.js @@ -46,6 +46,10 @@ export function ScatterVis({ config, optionsConfig, extensions, columns, shapes // @ts-ignore itemclick: false, itemdoubleclick: false, + font: { + // same as default label font size in the sidebar + size: 13.4, + }, }, font: { family: 'Roboto', @@ -76,10 +80,10 @@ export function ScatterVis({ config, optionsConfig, extensions, columns, shapes // change opacity on update, instead of just in a use effect onInitialized: () => { d3.selectAll('g .traces').style('opacity', 1); - d3.selectAll('.scatterpts').style('opacity', config.alphaSliderVal); + d3.selectAll('.scatterpts').style('opacity', selectedList.length > 0 ? 1 : config.alphaSliderVal); }, onUpdate: () => { d3.selectAll('g .traces').style('opacity', 1); - d3.selectAll('.scatterpts').style('opacity', config.alphaSliderVal); + d3.selectAll('.scatterpts').style('opacity', selectedList.length > 0 ? 1 : config.alphaSliderVal); for (const p of traces.plots) { d3.select(`g .${p.data.xaxis}title`).style('pointer-events', 'all').append('title').text(p.xLabel); d3.select(`g .${p.data.yaxis}title`).style('pointer-events', 'all').append('title').text(p.yLabel); diff --git a/dist/vis/scatter/ScatterVis.js.map b/dist/vis/scatter/ScatterVis.js.map index 7baefeec7..17f9ece02 100644 --- a/dist/vis/scatter/ScatterVis.js.map +++ b/dist/vis/scatter/ScatterVis.js.map @@ -1 +1 @@ -{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScatterVis.js","sourceRoot":"","sources":["../../../src/vis/scatter/ScatterVis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index cc0410924..1fb745898 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA0PrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAuQrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 4c80ca887..2680ea0e2 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -54,6 +54,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha if (!config.numColumnsSelected) { return emptyVal; } + const hasSelected = Object.values(selected).includes(true); const numCols = config.numColumnsSelected.map((c) => columns.find((col) => col.info.id === c.id)); const plots = []; const validCols = await resolveColumnValues(numCols); @@ -102,6 +103,8 @@ export async function createScatterTraces(columns, selected, config, scales, sha type: 'scattergl', mode: 'markers', showlegend: false, + hovertext: validCols[0].resolvedValues.map((v, i) => `${v.id}
    x: ${v.val}
    y: ${validCols[1].resolvedValues[i].val}
    ${colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : ''}`), + hoverinfo: 'text', text: validCols[0].resolvedValues.map((v) => v.id.toString()), marker: { line: { @@ -109,10 +112,12 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) + ? hasSelected + ? colorCol.resolvedValues.map((v) => selected[v.id] ? (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val)) : '#2e2e2e') + : colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), - opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, + opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : hasSelected && colorCol ? 0.2 : config.alphaSliderVal)), + size: 8, }, }, xLabel: validCols[0].info.name, @@ -168,7 +173,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, + size: 8, }, }, xLabel: xCurr.info.name, @@ -194,7 +199,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha legendgroup: 'color', // @ts-ignore legendgrouptitle: { - text: 'Color', + text: colorCol.info.name, }, marker: { line: { @@ -237,7 +242,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha legendgroup: 'shape', // @ts-ignore legendgrouptitle: { - text: 'Shape', + text: shapeCol.info.name, }, marker: { line: { diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 06117373a..b8e37944a 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAGL,YAAY,EAIZ,mBAAmB,EAGnB,wBAAwB,EAGxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,aAAa,GAAmB;IACpC,IAAI,EAAE,mBAAmB,CAAC,OAAO;IACjC,kBAAkB,EAAE,EAAE;IACtB,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;IACtD,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;IAC1C,cAAc,EAAE,GAAG;CACpB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,OAAoB,EAAE,MAAsB;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClE;SAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;aAAM;YACL,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAgD,EAChD,WAAuC;IAEvC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAoB,EACpB,QAAoC,EACpC,MAAsB,EACtB,MAAc,EACd,MAAuB;IAEvB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAEnF,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;KAClD,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,OAAO,GAAyB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAuB,CAAC,CAAC;IAC9I,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;KAClF;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK;QAC7B,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,OAAO,EAAU;aACjB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAa,CAAC;aAC3E,KAAK,CAAC,MAAM,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnF,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;KACpF;IAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK;QACtC,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,MAAM,EAAkB;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;aACnC,KAAK,CACJ,MAAM,CAAC,iBAAiB,KAAK,wBAAwB,CAAC,UAAU;YAC9D,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAClE;QACL,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,oCAAoC;IACpC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,QAAQ,CAAC;KACjB;IAED,yJAAyJ;IACzJ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7D,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,QAAQ;wBACb,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC7I,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACpF,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAC7F,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;gBAC7B,wCAAwC;gBACxC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;oBACnC,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE;gCACN,KAAK,EAAE,SAAS;6BACjB;4BACD,OAAO,EAAE,MAAM,CAAC,cAAc;yBAC/B;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;oBACH,gCAAgC;iBACjC;qBAAM;oBACL,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BACrD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,SAAS;4BACf,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BAC7D,MAAM,EAAE;gCACN,IAAI,EAAE;oCACJ,KAAK,EAAE,CAAC;iCACT;gCACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;gCAC7F,KAAK,EAAE,QAAQ;oCACb,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCAC7I,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gCAC7E,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gCACtF,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BAChF;yBACF;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;iBACJ;gBAED,WAAW,IAAI,CAAC,CAAC;aAClB;SACF;KACF;IAED,2GAA2G;IAC3G,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAClF,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,OAAO;iBACd;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrF,OAAO,EAAE,MAAM,CAAC,cAAc;iBAC/B;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,6EAA6E;IAC7E,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,OAAO;iBACd;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,OAAO,EAAE,MAAM,CAAC,cAAc;oBAC9B,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,SAAS;iBACjB;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;KACpF,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/ScatterVis.tsx b/src/vis/scatter/ScatterVis.tsx index 8d946680a..07a864ba0 100644 --- a/src/vis/scatter/ScatterVis.tsx +++ b/src/vis/scatter/ScatterVis.tsx @@ -105,6 +105,10 @@ export function ScatterVis({ // @ts-ignore itemclick: false, itemdoubleclick: false, + font: { + // same as default label font size in the sidebar + size: 13.4, + }, }, font: { family: 'Roboto', @@ -150,11 +154,11 @@ export function ScatterVis({ // change opacity on update, instead of just in a use effect onInitialized={() => { d3.selectAll('g .traces').style('opacity', 1); - d3.selectAll('.scatterpts').style('opacity', config.alphaSliderVal); + d3.selectAll('.scatterpts').style('opacity', selectedList.length > 0 ? 1 : config.alphaSliderVal); }} onUpdate={() => { d3.selectAll('g .traces').style('opacity', 1); - d3.selectAll('.scatterpts').style('opacity', config.alphaSliderVal); + d3.selectAll('.scatterpts').style('opacity', selectedList.length > 0 ? 1 : config.alphaSliderVal); for (const p of traces.plots) { d3.select(`g .${p.data.xaxis}title`).style('pointer-events', 'all').append('title').text(p.xLabel); diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index 0b3e77051..9bd8291c1 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -89,6 +89,8 @@ export async function createScatterTraces( return emptyVal; } + const hasSelected = Object.values(selected).includes(true); + const numCols: VisNumericalColumn[] = config.numColumnsSelected.map((c) => columns.find((col) => col.info.id === c.id) as VisNumericalColumn); const plots: PlotlyData[] = []; @@ -149,6 +151,13 @@ export async function createScatterTraces( type: 'scattergl', mode: 'markers', showlegend: false, + hovertext: validCols[0].resolvedValues.map( + (v, i) => + `${v.id}
    x: ${v.val}
    y: ${validCols[1].resolvedValues[i].val}
    ${ + colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : '' + }`, + ), + hoverinfo: 'text', text: validCols[0].resolvedValues.map((v) => v.id.toString()), marker: { line: { @@ -156,10 +165,14 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) + ? hasSelected + ? colorCol.resolvedValues.map((v) => + selected[v.id] ? (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val)) : '#2e2e2e', + ) + : colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : validCols[0].resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), - opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: colorCol ? validCols[0].resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, + opacity: validCols[0].resolvedValues.map((v) => (selected[v.id] ? 1 : hasSelected && colorCol ? 0.2 : config.alphaSliderVal)), + size: 8, }, }, xLabel: validCols[0].info.name, @@ -213,7 +226,7 @@ export async function createScatterTraces( ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), - size: colorCol ? xCurr.resolvedValues.map((v) => (selected[v.id] ? 12 : 8)) : 8, + size: 8, }, }, xLabel: xCurr.info.name, @@ -241,7 +254,7 @@ export async function createScatterTraces( legendgroup: 'color', // @ts-ignore legendgrouptitle: { - text: 'Color', + text: colorCol.info.name, }, marker: { line: { @@ -285,7 +298,7 @@ export async function createScatterTraces( legendgroup: 'shape', // @ts-ignore legendgrouptitle: { - text: 'Shape', + text: shapeCol.info.name, }, marker: { line: { From 1bdb20ca6b8167d9ef385442417499f750154282 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 11:21:30 +0200 Subject: [PATCH 082/117] added hover improvements to small multiples --- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 2 ++ dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/utils.ts | 7 +++++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index 1fb745898..f20b3890e 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAuQrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA8QrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 2680ea0e2..ccec4beb6 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -159,6 +159,8 @@ export async function createScatterTraces(columns, selected, config, scales, sha yaxis: plotCounter === 1 ? 'y' : `y${plotCounter}`, type: 'scattergl', mode: 'markers', + hovertext: xCurr.resolvedValues.map((v, i) => `${v.id}
    x: ${v.val}
    y: ${yCurr.resolvedValues[i].val}
    ${colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : ''}`), + hoverinfo: 'text', hoverlabel: { namelength: 5, }, diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index b8e37944a..8148baeb0 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAGL,YAAY,EAIZ,mBAAmB,EAGnB,wBAAwB,EAGxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,aAAa,GAAmB;IACpC,IAAI,EAAE,mBAAmB,CAAC,OAAO;IACjC,kBAAkB,EAAE,EAAE;IACtB,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;IACtD,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;IAC1C,cAAc,EAAE,GAAG;CACpB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,OAAoB,EAAE,MAAsB;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClE;SAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;aAAM;YACL,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAgD,EAChD,WAAuC;IAEvC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAoB,EACpB,QAAoC,EACpC,MAAsB,EACtB,MAAc,EACd,MAAuB;IAEvB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAEnF,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;KAClD,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAyB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAuB,CAAC,CAAC;IAC9I,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;KAClF;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK;QAC7B,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,OAAO,EAAU;aACjB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAa,CAAC;aAC3E,KAAK,CAAC,MAAM,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnF,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;KACpF;IAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK;QACtC,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,MAAM,EAAkB;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;aACnC,KAAK,CACJ,MAAM,CAAC,iBAAiB,KAAK,wBAAwB,CAAC,UAAU;YAC9D,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAClE;QACL,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,oCAAoC;IACpC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,QAAQ,CAAC;KACjB;IAED,yJAAyJ;IACzJ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OAChE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAC1E,EAAE,CACL;gBACD,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7D,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,QAAQ;wBACb,CAAC,CAAC,WAAW;4BACX,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACrI;4BACH,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/I,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACpF,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAC7H,IAAI,EAAE,CAAC;iBACR;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;gBAC7B,wCAAwC;gBACxC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;oBACnC,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE;gCACN,KAAK,EAAE,SAAS;6BACjB;4BACD,OAAO,EAAE,MAAM,CAAC,cAAc;yBAC/B;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;oBACH,gCAAgC;iBACjC;qBAAM;oBACL,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BACrD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,SAAS;4BACf,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BAC7D,MAAM,EAAE;gCACN,IAAI,EAAE;oCACJ,KAAK,EAAE,CAAC;iCACT;gCACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;gCAC7F,KAAK,EAAE,QAAQ;oCACb,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCAC7I,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gCAC7E,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gCACtF,IAAI,EAAE,CAAC;6BACR;yBACF;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;iBACJ;gBAED,WAAW,IAAI,CAAC,CAAC;aAClB;SACF;KACF;IAED,2GAA2G;IAC3G,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAClF,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;iBACzB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrF,OAAO,EAAE,MAAM,CAAC,cAAc;iBAC/B;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,6EAA6E;IAC7E,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;iBACzB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,OAAO,EAAE,MAAM,CAAC,cAAc;oBAC9B,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,SAAS;iBACjB;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;KACpF,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAGL,YAAY,EAIZ,mBAAmB,EAGnB,wBAAwB,EAGxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,CAAa;IACrC,OAAO,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,aAAa,GAAmB;IACpC,IAAI,EAAE,mBAAmB,CAAC,OAAO;IACjC,kBAAkB,EAAE,EAAE;IACtB,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;IACtD,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;IAC1C,cAAc,EAAE,GAAG;CACpB,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,OAAoB,EAAE,MAAsB;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC;IAEzE,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClE;SAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3E,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;aAAM;YACL,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAClE;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAgD,EAChD,WAAuC;IAEvC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAoB,EACpB,QAAoC,EACpC,MAAsB,EACtB,MAAc,EACd,MAAuB;IAEvB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAEnF,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;KAClD,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC9B,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAyB,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAuB,CAAC,CAAC;IAC9I,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1E,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;KAClF;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK;QAC7B,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,OAAO,EAAU;aACjB,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAa,CAAC;aAC3E,KAAK,CAAC,MAAM,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACnF,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;KACpF;IAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK;QACtC,CAAC,CAAC,EAAE,CAAC,KAAK;aACL,MAAM,EAAkB;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;aACnC,KAAK,CACJ,MAAM,CAAC,iBAAiB,KAAK,wBAAwB,CAAC,UAAU;YAC9D,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAClE;QACL,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,oCAAoC;IACpC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,QAAQ,CAAC;KACjB;IAED,yJAAyJ;IACzJ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;gBAClD,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OAChE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAC1E,EAAE,CACL;gBACD,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC7D,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,QAAQ;wBACb,CAAC,CAAC,WAAW;4BACX,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACrI;4BACH,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/I,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACpF,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAC7H,IAAI,EAAE,CAAC;iBACR;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;SAAM;QACL,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;gBAC7B,wCAAwC;gBACxC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;oBACnC,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE;gCACN,KAAK,EAAE,SAAS;6BACjB;4BACD,OAAO,EAAE,MAAM,CAAC,cAAc;yBAC/B;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;oBACH,gCAAgC;iBACjC;qBAAM;oBACL,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;4BACzC,GAAG,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BACrD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,KAAK,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE;4BAClD,IAAI,EAAE,WAAW;4BACjB,IAAI,EAAE,SAAS;4BACf,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,OACzD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAC1E,EAAE,CACL;4BACD,SAAS,EAAE,MAAM;4BACjB,UAAU,EAAE;gCACV,UAAU,EAAE,CAAC;6BACd;4BACD,UAAU,EAAE,KAAK;4BACjB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;4BAC7D,MAAM,EAAE;gCACN,IAAI,EAAE;oCACJ,KAAK,EAAE,CAAC;iCACT;gCACD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;gCAC7F,KAAK,EAAE,QAAQ;oCACb,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oCAC7I,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gCAC7E,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gCACtF,IAAI,EAAE,CAAC;6BACR;yBACF;wBACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;qBACxB,CAAC,CAAC;iBACJ;gBAED,WAAW,IAAI,CAAC,CAAC;aAClB;SACF;KACF;IAED,2GAA2G;IAC3G,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAClF,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;iBACzB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrF,OAAO,EAAE,MAAM,CAAC,cAAc;iBAC/B;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,6EAA6E;IAC7E,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5D,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,OAAO;gBACpB,aAAa;gBACb,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;iBACzB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;qBACT;oBACD,OAAO,EAAE,MAAM,CAAC,cAAc;oBAC9B,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC7F,KAAK,EAAE,SAAS;iBACjB;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAa,CAAC;wBAC3D,MAAM,EAAE;4BACN,GAAG,CAAC,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACvF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;KACJ;IAED,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC9E,kBAAkB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;KACpF,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index 9bd8291c1..e18676c64 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -212,6 +212,13 @@ export async function createScatterTraces( yaxis: plotCounter === 1 ? 'y' : `y${plotCounter}`, type: 'scattergl', mode: 'markers', + hovertext: xCurr.resolvedValues.map( + (v, i) => + `${v.id}
    x: ${v.val}
    y: ${yCurr.resolvedValues[i].val}
    ${ + colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : '' + }`, + ), + hoverinfo: 'text', hoverlabel: { namelength: 5, }, From 2456f0d9cb8a2a02cd8fae251f8b207c869cd0a1 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 11:24:07 +0200 Subject: [PATCH 083/117] adding color select changes to small mutliples --- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 6 ++++-- dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/utils.ts | 10 ++++++++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index f20b3890e..c89c3fdb2 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CA8QrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAoRrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index ccec4beb6..252941f41 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -172,9 +172,11 @@ export async function createScatterTraces(columns, selected, config, scales, sha }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val))) + ? hasSelected + ? colorCol.resolvedValues.map((v) => selected[v.id] ? (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val)) : '#2e2e2e') + : colorCol.resolvedValues.map((v) => colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val) : scales.color(v.val)) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), - opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), + opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : hasSelected && colorCol ? 0.2 : config.alphaSliderVal)), size: 8, }, }, diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 8148baeb0..348bc2e6e 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index e18676c64..f52b77eef 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -230,9 +230,15 @@ export async function createScatterTraces( }, symbol: shapeCol ? shapeCol.resolvedValues.map((v) => shapeScale(v.val as string)) : 'circle', color: colorCol - ? colorCol.resolvedValues.map((v) => (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val))) + ? hasSelected + ? colorCol.resolvedValues.map((v) => + selected[v.id] ? (colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val)) : '#2e2e2e', + ) + : colorCol.resolvedValues.map((v) => + colorCol.type === EColumnTypes.NUMERICAL ? numericalColorScale(v.val as number) : scales.color(v.val), + ) : xCurr.resolvedValues.map((v) => (selected[v.id] ? '#E29609' : '#2e2e2e')), - opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : config.alphaSliderVal)), + opacity: xCurr.resolvedValues.map((v) => (selected[v.id] ? 1 : hasSelected && colorCol ? 0.2 : config.alphaSliderVal)), size: 8, }, }, From 14d3441ff99930aac30826e19d4d80fd5592b9c1 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 11:30:09 +0200 Subject: [PATCH 084/117] removing background color from tooltips --- dist/vis/scatter/utils.d.ts.map | 2 +- dist/vis/scatter/utils.js | 5 ++++- dist/vis/scatter/utils.js.map | 2 +- src/vis/scatter/utils.ts | 5 ++++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dist/vis/scatter/utils.d.ts.map b/dist/vis/scatter/utils.d.ts.map index c89c3fdb2..d343ea518 100644 --- a/dist/vis/scatter/utils.d.ts.map +++ b/dist/vis/scatter/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAoRrB"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EAIV,UAAU,EACV,MAAM,EAEN,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,eAAe,CAAC;AAMvB,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,cAAc,CAE5D;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,UAAU,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,EAChD,WAAW,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACtC,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,EAAE,CAO7C;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,OAAO,CAAC,UAAU,CAAC,CAuRrB"} \ No newline at end of file diff --git a/dist/vis/scatter/utils.js b/dist/vis/scatter/utils.js index 252941f41..2ec364053 100644 --- a/dist/vis/scatter/utils.js +++ b/dist/vis/scatter/utils.js @@ -103,6 +103,9 @@ export async function createScatterTraces(columns, selected, config, scales, sha type: 'scattergl', mode: 'markers', showlegend: false, + hoverlabel: { + bgcolor: 'black', + }, hovertext: validCols[0].resolvedValues.map((v, i) => `${v.id}
    x: ${v.val}
    y: ${validCols[1].resolvedValues[i].val}
    ${colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : ''}`), hoverinfo: 'text', text: validCols[0].resolvedValues.map((v) => v.id.toString()), @@ -162,7 +165,7 @@ export async function createScatterTraces(columns, selected, config, scales, sha hovertext: xCurr.resolvedValues.map((v, i) => `${v.id}
    x: ${v.val}
    y: ${yCurr.resolvedValues[i].val}
    ${colorCol ? `${colorCol.info.name}: ${colorCol.resolvedValues[i].val}` : ''}`), hoverinfo: 'text', hoverlabel: { - namelength: 5, + bgcolor: 'black', }, showlegend: false, text: validCols[0].resolvedValues.map((v) => v.id.toString()), diff --git a/dist/vis/scatter/utils.js.map b/dist/vis/scatter/utils.js.map index 348bc2e6e..b1121ee12 100644 --- a/dist/vis/scatter/utils.js.map +++ b/dist/vis/scatter/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/vis/scatter/utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index f52b77eef..6da9a2624 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -151,6 +151,9 @@ export async function createScatterTraces( type: 'scattergl', mode: 'markers', showlegend: false, + hoverlabel: { + bgcolor: 'black', + }, hovertext: validCols[0].resolvedValues.map( (v, i) => `${v.id}
    x: ${v.val}
    y: ${validCols[1].resolvedValues[i].val}
    ${ @@ -220,7 +223,7 @@ export async function createScatterTraces( ), hoverinfo: 'text', hoverlabel: { - namelength: 5, + bgcolor: 'black', }, showlegend: false, text: validCols[0].resolvedValues.map((v) => v.id.toString()), From 67bb68775cae9632724031ded8ef623de702886b Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 12:10:54 +0200 Subject: [PATCH 085/117] adding dist files --- dist/components/dialogs.d.ts | 2 +- dist/cypress/utils/utils.d.ts | 14 +++++--------- dist/cypress/utils/utils.d.ts.map | 2 +- dist/lineup/Ranking.d.ts | 1 + dist/lineup/Ranking.d.ts.map | 2 +- dist/lineup/RankingViewComponent.d.ts | 1 + dist/lineup/RankingViewComponent.d.ts.map | 2 +- dist/utils/TDPApplicationUtils.d.ts | 6 ++---- dist/utils/TDPApplicationUtils.d.ts.map | 2 +- dist/vis/sidebar/AllColumnSelect.d.ts | 1 + dist/vis/sidebar/AllColumnSelect.d.ts.map | 2 +- dist/vis/sidebar/BarDirectionButtons.d.ts | 1 + dist/vis/sidebar/BarDirectionButtons.d.ts.map | 2 +- dist/vis/sidebar/BarDisplayTypeButtons.d.ts | 1 + dist/vis/sidebar/BarDisplayTypeButtons.d.ts.map | 2 +- dist/vis/sidebar/BarGroupTypeButtons.d.ts | 1 + dist/vis/sidebar/BarGroupTypeButtons.d.ts.map | 2 +- dist/vis/sidebar/BrushOptionButtons.d.ts | 1 + dist/vis/sidebar/BrushOptionButtons.d.ts.map | 2 +- dist/vis/sidebar/CategoricalColumnSelect.d.ts | 1 + dist/vis/sidebar/CategoricalColumnSelect.d.ts.map | 2 +- dist/vis/sidebar/ColorSelect.d.ts | 1 + dist/vis/sidebar/ColorSelect.d.ts.map | 2 +- dist/vis/sidebar/FilterButtons.d.ts | 1 + dist/vis/sidebar/FilterButtons.d.ts.map | 2 +- dist/vis/sidebar/GroupSelect.d.ts | 11 ++++++++--- dist/vis/sidebar/GroupSelect.d.ts.map | 2 +- dist/vis/sidebar/MultiplesSelect.d.ts | 1 + dist/vis/sidebar/MultiplesSelect.d.ts.map | 2 +- dist/vis/sidebar/NumericalColorButtons.d.ts | 1 + dist/vis/sidebar/NumericalColorButtons.d.ts.map | 2 +- dist/vis/sidebar/NumericalColumnSelect.d.ts | 1 + dist/vis/sidebar/NumericalColumnSelect.d.ts.map | 2 +- dist/vis/sidebar/ShapeSelect.d.ts | 1 + dist/vis/sidebar/ShapeSelect.d.ts.map | 2 +- dist/vis/sidebar/ViolinOverlayButtons.d.ts | 1 + dist/vis/sidebar/ViolinOverlayButtons.d.ts.map | 2 +- dist/vis/sidebar/VisTypeSelect.d.ts | 1 + dist/vis/sidebar/VisTypeSelect.d.ts.map | 2 +- 39 files changed, 51 insertions(+), 36 deletions(-) diff --git a/dist/components/dialogs.d.ts b/dist/components/dialogs.d.ts index 17bedab07..5c2b8e4a0 100644 --- a/dist/components/dialogs.d.ts +++ b/dist/components/dialogs.d.ts @@ -1,6 +1,6 @@ /// /// -/// +/// /// import '../webpack/_bootstrap'; export interface IDialogOptions { diff --git a/dist/cypress/utils/utils.d.ts b/dist/cypress/utils/utils.d.ts index 80f0cf186..1c9bf3405 100644 --- a/dist/cypress/utils/utils.d.ts +++ b/dist/cypress/utils/utils.d.ts @@ -1,7 +1,3 @@ -/// -/// -/// -/// /** * Check if typing text in form input element has been completed * @param {string} input - input string that should be inserted @@ -18,7 +14,7 @@ export declare function fillInForm(selector: string, text: string): void; * Clear all text in a form input element * @param {string} selector - the selector of the element as returned by cypress studio */ -export declare function clearInputForm(selector: string): Cypress.Chainable>; +export declare function clearInputForm(selector: string): any; /** * This function must be used to select elements from selet2 multi select form elements. * @param {string} id - data-testid of wrapping div (can be deducted from the title by making it lowercase and replacing space by -). For select2 search filds in the form map it must be given as: row-[row number starting from 1] (no brackets) @@ -36,21 +32,21 @@ export declare function select2SingleSelect(id: string, searchString: string): v * @param {string} rowId - In a form select multiple rows can be added. This input must be given as: row-[row number starting from 1] (no brackets) * @param {string} selectOption - either a single string or an array of strings if multiselect is possible */ -export declare function formSelect(rowId: string, selectOption: string): Cypress.Chainable>; +export declare function formSelect(rowId: string, selectOption: string): any; /** * Wait until phovea-busy and loading icon are hidden */ -export declare function waitPhoveaNotBusy(): Cypress.Chainable>; +export declare function waitPhoveaNotBusy(): any; /** * Wait until phovea-busy and loading icon are hidden */ -export declare function waitTdpNotBusy(): Cypress.Chainable>; +export declare function waitTdpNotBusy(): any; /** * Scroll an Element into the center of the viewport (mainly for presentation purposes) * @param {string} selector - the selector of the element as returned by cypress studio * @param {number} waitAfterScroll - specifies how long to wait after scrolling to an element */ -export declare function scrollElementIntoCenter(selector?: string, waitAfterScroll?: number): Cypress.Chainable>; +export declare function scrollElementIntoCenter(selector?: string, waitAfterScroll?: number): any; /** * Submit Login Form of Ordino Public */ diff --git a/dist/cypress/utils/utils.d.ts.map b/dist/cypress/utils/utils.d.ts.map index e390389b9..674ca5007 100644 --- a/dist/cypress/utils/utils.d.ts.map +++ b/dist/cypress/utils/utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cypress/utils/utils.ts"],"names":[],"mappings":";;;;AAEA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAOpE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAIxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,0CAE9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,QAuB7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAGnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,0CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,2CAEhC;AAED;;GAEG;AACH,wBAAgB,cAAc,2CAE7B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,SAAK,EAAE,eAAe,SAAO,0CAQ5E;AAED;;GAEG;AACH,wBAAgB,WAAW,SAU1B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,KAAA,QAOvC"} \ No newline at end of file +{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cypress/utils/utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAOpE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAIxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,OAE9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,QAuB7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAGnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,OAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,QAEhC;AAED;;GAEG;AACH,wBAAgB,cAAc,QAE7B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,SAAK,EAAE,eAAe,SAAO,OAQ5E;AAED;;GAEG;AACH,wBAAgB,WAAW,SAU1B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,KAAA,QAOvC"} \ No newline at end of file diff --git a/dist/lineup/Ranking.d.ts b/dist/lineup/Ranking.d.ts index 8905d9138..a2510c020 100644 --- a/dist/lineup/Ranking.d.ts +++ b/dist/lineup/Ranking.d.ts @@ -1,3 +1,4 @@ +/// import { LocalDataProvider, IColumnDesc } from 'lineupjs'; import { ILazyLoadedColumn } from './internal/column'; import { EViewMode, IAdditionalColumnDesc, IScoreRow, ISelection } from '../base/interfaces'; diff --git a/dist/lineup/Ranking.d.ts.map b/dist/lineup/Ranking.d.ts.map index 6f06358d8..eda38256f 100644 --- a/dist/lineup/Ranking.d.ts.map +++ b/dist/lineup/Ranking.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Ranking.d.ts","sourceRoot":"","sources":["../../src/lineup/Ranking.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,iBAAiB,EAajB,WAAW,EAGZ,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAc,MAAM,mBAAmB,CAAC;AAKlE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAU,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAoB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoB9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,aAAa,EAAE,UAAU,CAAC;IAC1B,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAElE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAE/C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AA+DD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,EACtB,IAAS,EACT,aAAyC,EACzC,UAAe,EACf,OAAO,EAAE,IAAS,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa;AACb;;GAEG;AACH,gBAAgB,GACjB,EAAE,aAAa,eAuYf"} \ No newline at end of file +{"version":3,"file":"Ranking.d.ts","sourceRoot":"","sources":["../../src/lineup/Ranking.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,iBAAiB,EAajB,WAAW,EAGZ,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,iBAAiB,EAAc,MAAM,mBAAmB,CAAC;AAKlE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAU,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAoB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoB9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,WAAW,GAAG;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,aAAa,EAAE,UAAU,CAAC;IAC1B,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAElE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClF,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAE/C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACvD;AA+DD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,EACtB,IAAS,EACT,aAAyC,EACzC,UAAe,EACf,OAAO,EAAE,IAAS,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa;AACb;;GAEG;AACH,gBAAgB,GACjB,EAAE,aAAa,eAuYf"} \ No newline at end of file diff --git a/dist/lineup/RankingViewComponent.d.ts b/dist/lineup/RankingViewComponent.d.ts index 83e84acd4..56b84fd55 100644 --- a/dist/lineup/RankingViewComponent.d.ts +++ b/dist/lineup/RankingViewComponent.d.ts @@ -1,3 +1,4 @@ +/// import { IRankingProps } from './Ranking'; import { ISelection } from '../base/interfaces'; import { ISelectionAdapter } from './selection/ISelectionAdapter'; diff --git a/dist/lineup/RankingViewComponent.d.ts.map b/dist/lineup/RankingViewComponent.d.ts.map index 2124c80c9..ccebdc50d 100644 --- a/dist/lineup/RankingViewComponent.d.ts.map +++ b/dist/lineup/RankingViewComponent.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"RankingViewComponent.d.ts","sourceRoot":"","sources":["../../src/lineup/RankingViewComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAW,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAY,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAA8B,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAO7F;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC;CACxG;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAS,EACT,SAAS,EAAE,cAAc,EACzB,aAAyC,EACzC,UAAe,EACf,UAAkB,EAClB,gBAAuB,EACvB,OAAY,EACZ,aAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,kBAAkB;AAClB;;GAEG;AACH,gBAAgB,GACjB,EAAE,0BAA0B,eAqH5B"} \ No newline at end of file +{"version":3,"file":"RankingViewComponent.d.ts","sourceRoot":"","sources":["../../src/lineup/RankingViewComponent.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAW,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAY,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAA8B,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAO7F;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,GAAG,IAAI,CAAC;CACxG;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAS,EACT,SAAS,EAAE,cAAc,EACzB,aAAyC,EACzC,UAAe,EACf,UAAkB,EAClB,gBAAuB,EACvB,OAAY,EACZ,aAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,kBAAkB;AAClB;;GAEG;AACH,gBAAgB,GACjB,EAAE,0BAA0B,eAqH5B"} \ No newline at end of file diff --git a/dist/utils/TDPApplicationUtils.d.ts b/dist/utils/TDPApplicationUtils.d.ts index 1fda5a116..34cb07273 100644 --- a/dist/utils/TDPApplicationUtils.d.ts +++ b/dist/utils/TDPApplicationUtils.d.ts @@ -41,10 +41,8 @@ export declare class TDPApplicationUtils { inverse: import("../clue/provenance").IAction; }; static initSession(map: object): import("../clue/provenance").IAction; - static setParameterImpl(inputs: IObjectRef[], parameter: any, graph: ProvenanceGraph): Promise<{ - inverse: import("../clue/provenance").IAction; - }>; - static setParameter(view: IObjectRef, name: string, value: any, previousValue: any): import("../clue/provenance").IAction; + static setParameterImpl(inputs: IObjectRef[], parameter: any, graph: ProvenanceGraph): any; + static setParameter(view: IObjectRef, name: string, value: any, previousValue: any): any; static compressSetParameter(path: ActionNode[]): ActionNode[]; /** * @deprecated diff --git a/dist/utils/TDPApplicationUtils.d.ts.map b/dist/utils/TDPApplicationUtils.d.ts.map index 6dd16dbe9..2519180d4 100644 --- a/dist/utils/TDPApplicationUtils.d.ts.map +++ b/dist/utils/TDPApplicationUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"TDPApplicationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/TDPApplicationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1H,OAAO,EAAe,WAAW,EAAyB,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAEhC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAE;CAC5C;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAiC;IAGpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oBAAoB;IAEpD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,qBAAqB;IAEtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CA2B1E;IAEF;;;OAGG;IAEH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAalC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM;IAIlD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;;wBAsLnE,QAAQ,KAAG,QAAQ,WAAW,CAAC;;IAyBnD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM;;;IAerE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;WAcjB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,KAAA,EAAE,KAAK,EAAE,eAAe;;;IAW1F,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmBlG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE;CAGlD"} \ No newline at end of file +{"version":3,"file":"TDPApplicationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/TDPApplicationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI1H,OAAO,EAAe,WAAW,EAAyB,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAEhC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAE;CAC5C;AAED,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAgC;IAEpD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAiC;IAGpD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oBAAoB;IAEpD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,qBAAqB;IAEtD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CA2B1E;IAEF;;;OAGG;IAEH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAalC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM;IAIlD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;;wBAsLnE,QAAQ,KAAG,QAAQ,WAAW,CAAC;;IAyBnD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM;;;IAerE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;WAcjB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,KAAA,EAAE,KAAK,EAAE,eAAe;IAW1F,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmBlG,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE;IAI9C;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE;CAGlD"} \ No newline at end of file diff --git a/dist/vis/sidebar/AllColumnSelect.d.ts b/dist/vis/sidebar/AllColumnSelect.d.ts index 58f78ab41..71e8a333c 100644 --- a/dist/vis/sidebar/AllColumnSelect.d.ts +++ b/dist/vis/sidebar/AllColumnSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn } from '../interfaces'; interface AllColumnSelectProps { callback: (allCols: ColumnInfo[]) => void; diff --git a/dist/vis/sidebar/AllColumnSelect.d.ts.map b/dist/vis/sidebar/AllColumnSelect.d.ts.map index 2983f8e85..f5ed8f74d 100644 --- a/dist/vis/sidebar/AllColumnSelect.d.ts.map +++ b/dist/vis/sidebar/AllColumnSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"AllColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/AllColumnSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGtD,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAwBD,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,oBAAoB,eAqC3F"} \ No newline at end of file +{"version":3,"file":"AllColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/AllColumnSelect.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGtD,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAwBD,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,oBAAoB,eAqC3F"} \ No newline at end of file diff --git a/dist/vis/sidebar/BarDirectionButtons.d.ts b/dist/vis/sidebar/BarDirectionButtons.d.ts index fff9ff84e..6388a51c2 100644 --- a/dist/vis/sidebar/BarDirectionButtons.d.ts +++ b/dist/vis/sidebar/BarDirectionButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EBarDirection } from '../interfaces'; interface BarDirectionProps { callback: (s: EBarDirection) => void; diff --git a/dist/vis/sidebar/BarDirectionButtons.d.ts.map b/dist/vis/sidebar/BarDirectionButtons.d.ts.map index 564d2064c..de7eb9a05 100644 --- a/dist/vis/sidebar/BarDirectionButtons.d.ts.map +++ b/dist/vis/sidebar/BarDirectionButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BarDirectionButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarDirectionButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,aAAa,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,eAwBnF"} \ No newline at end of file +{"version":3,"file":"BarDirectionButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarDirectionButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,aAAa,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,eA4BnF"} \ No newline at end of file diff --git a/dist/vis/sidebar/BarDisplayTypeButtons.d.ts b/dist/vis/sidebar/BarDisplayTypeButtons.d.ts index 28ca4d9b4..45929e2e5 100644 --- a/dist/vis/sidebar/BarDisplayTypeButtons.d.ts +++ b/dist/vis/sidebar/BarDisplayTypeButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EBarDisplayType } from '../interfaces'; interface BarDisplayProps { callback: (s: EBarDisplayType) => void; diff --git a/dist/vis/sidebar/BarDisplayTypeButtons.d.ts.map b/dist/vis/sidebar/BarDisplayTypeButtons.d.ts.map index 94251178e..1a24c6c85 100644 --- a/dist/vis/sidebar/BarDisplayTypeButtons.d.ts.map +++ b/dist/vis/sidebar/BarDisplayTypeButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BarDisplayTypeButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarDisplayTypeButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,eAAe;IACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,eAAe,eAwB/E"} \ No newline at end of file +{"version":3,"file":"BarDisplayTypeButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarDisplayTypeButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,eAAe;IACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,eAAe,eAwB/E"} \ No newline at end of file diff --git a/dist/vis/sidebar/BarGroupTypeButtons.d.ts b/dist/vis/sidebar/BarGroupTypeButtons.d.ts index 9056cb568..53dd8590e 100644 --- a/dist/vis/sidebar/BarGroupTypeButtons.d.ts +++ b/dist/vis/sidebar/BarGroupTypeButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EBarGroupingType } from '../interfaces'; interface BarGroupTypeProps { callback: (s: EBarGroupingType) => void; diff --git a/dist/vis/sidebar/BarGroupTypeButtons.d.ts.map b/dist/vis/sidebar/BarGroupTypeButtons.d.ts.map index e4960fd65..47cde432c 100644 --- a/dist/vis/sidebar/BarGroupTypeButtons.d.ts.map +++ b/dist/vis/sidebar/BarGroupTypeButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BarGroupTypeButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarGroupTypeButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,gBAAgB,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,eAwBnF"} \ No newline at end of file +{"version":3,"file":"BarGroupTypeButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BarGroupTypeButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,gBAAgB,CAAC;CACnC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,iBAAiB,eAwBnF"} \ No newline at end of file diff --git a/dist/vis/sidebar/BrushOptionButtons.d.ts b/dist/vis/sidebar/BrushOptionButtons.d.ts index 6aaf3bf0a..c539d16a6 100644 --- a/dist/vis/sidebar/BrushOptionButtons.d.ts +++ b/dist/vis/sidebar/BrushOptionButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EScatterSelectSettings } from '../interfaces'; interface BrushOptionProps { callback: (dragMode: EScatterSelectSettings) => void; diff --git a/dist/vis/sidebar/BrushOptionButtons.d.ts.map b/dist/vis/sidebar/BrushOptionButtons.d.ts.map index 6970bbf15..a88ea4336 100644 --- a/dist/vis/sidebar/BrushOptionButtons.d.ts.map +++ b/dist/vis/sidebar/BrushOptionButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"BrushOptionButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BrushOptionButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,eAkD1E"} \ No newline at end of file +{"version":3,"file":"BrushOptionButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/BrushOptionButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,eAkD1E"} \ No newline at end of file diff --git a/dist/vis/sidebar/CategoricalColumnSelect.d.ts b/dist/vis/sidebar/CategoricalColumnSelect.d.ts index 56ae3a95c..9f9b53fe6 100644 --- a/dist/vis/sidebar/CategoricalColumnSelect.d.ts +++ b/dist/vis/sidebar/CategoricalColumnSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn } from '../interfaces'; interface CategoricalColumnSelectProps { callback: (s: ColumnInfo[]) => void; diff --git a/dist/vis/sidebar/CategoricalColumnSelect.d.ts.map b/dist/vis/sidebar/CategoricalColumnSelect.d.ts.map index ec1c77c79..420c4ef01 100644 --- a/dist/vis/sidebar/CategoricalColumnSelect.d.ts.map +++ b/dist/vis/sidebar/CategoricalColumnSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"CategoricalColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/CategoricalColumnSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,4BAA4B;IACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,4BAA4B,eAqB3G"} \ No newline at end of file +{"version":3,"file":"CategoricalColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/CategoricalColumnSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,4BAA4B;IACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,4BAA4B,eAqB3G"} \ No newline at end of file diff --git a/dist/vis/sidebar/ColorSelect.d.ts b/dist/vis/sidebar/ColorSelect.d.ts index 9eb2a52cf..bb8cbff18 100644 --- a/dist/vis/sidebar/ColorSelect.d.ts +++ b/dist/vis/sidebar/ColorSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn, ENumericalColorScaleType } from '../interfaces'; interface ColorSelectProps { callback: (c: ColumnInfo) => void; diff --git a/dist/vis/sidebar/ColorSelect.d.ts.map b/dist/vis/sidebar/ColorSelect.d.ts.map index c25cb86cd..4bd8192f9 100644 --- a/dist/vis/sidebar/ColorSelect.d.ts.map +++ b/dist/vis/sidebar/ColorSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ColorSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ColorSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9F,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,eAA4B,EAAE,cAAqB,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,eAmBxI"} \ No newline at end of file +{"version":3,"file":"ColorSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ColorSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9F,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,eAA4B,EAAE,cAAqB,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,eAmBxI"} \ No newline at end of file diff --git a/dist/vis/sidebar/FilterButtons.d.ts b/dist/vis/sidebar/FilterButtons.d.ts index 301a7cc26..d94e567bf 100644 --- a/dist/vis/sidebar/FilterButtons.d.ts +++ b/dist/vis/sidebar/FilterButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EFilterOptions } from '../interfaces'; interface FilterButtonsProps { callback: (s: EFilterOptions) => void; diff --git a/dist/vis/sidebar/FilterButtons.d.ts.map b/dist/vis/sidebar/FilterButtons.d.ts.map index 3e6dc109f..3384abbac 100644 --- a/dist/vis/sidebar/FilterButtons.d.ts.map +++ b/dist/vis/sidebar/FilterButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"FilterButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/FilterButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACvC;AAOD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,eA0C7D"} \ No newline at end of file +{"version":3,"file":"FilterButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/FilterButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACvC;AAOD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,eA0C7D"} \ No newline at end of file diff --git a/dist/vis/sidebar/GroupSelect.d.ts b/dist/vis/sidebar/GroupSelect.d.ts index 93a426c64..39761c0e8 100644 --- a/dist/vis/sidebar/GroupSelect.d.ts +++ b/dist/vis/sidebar/GroupSelect.d.ts @@ -1,9 +1,14 @@ -import { ColumnInfo, VisColumn } from '../interfaces'; +/// +import { ColumnInfo, EBarDisplayType, EBarGroupingType, VisColumn } from '../interfaces'; interface GroupSelectProps { - callback: (c: ColumnInfo) => void; + groupColumnSelectCallback: (c: ColumnInfo) => void; + groupTypeSelectCallback: (c: EBarGroupingType) => void; + groupDisplaySelectCallback: (c: EBarDisplayType) => void; + groupType: EBarGroupingType; + displayType: EBarDisplayType; columns: VisColumn[]; currentSelected: ColumnInfo | null; } -export declare function GroupSelect({ callback, columns, currentSelected }: GroupSelectProps): JSX.Element; +export declare function GroupSelect({ groupColumnSelectCallback, groupTypeSelectCallback, groupDisplaySelectCallback, groupType, displayType, columns, currentSelected, }: GroupSelectProps): JSX.Element; export {}; //# sourceMappingURL=GroupSelect.d.ts.map \ No newline at end of file diff --git a/dist/vis/sidebar/GroupSelect.d.ts.map b/dist/vis/sidebar/GroupSelect.d.ts.map index 5e82f652e..e9b010e2d 100644 --- a/dist/vis/sidebar/GroupSelect.d.ts.map +++ b/dist/vis/sidebar/GroupSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/GroupSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,eAgBnF"} \ No newline at end of file +{"version":3,"file":"GroupSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/GroupSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAKvG,UAAU,gBAAgB;IACxB,yBAAyB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACnD,uBAAuB,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvD,0BAA0B,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,SAAS,EACT,WAAW,EACX,OAAO,EACP,eAAe,GAChB,EAAE,gBAAgB,eAsBlB"} \ No newline at end of file diff --git a/dist/vis/sidebar/MultiplesSelect.d.ts b/dist/vis/sidebar/MultiplesSelect.d.ts index add9cbc5f..656b4773c 100644 --- a/dist/vis/sidebar/MultiplesSelect.d.ts +++ b/dist/vis/sidebar/MultiplesSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn } from '../interfaces'; interface MultiplesSelectProps { callback: (c: ColumnInfo) => void; diff --git a/dist/vis/sidebar/MultiplesSelect.d.ts.map b/dist/vis/sidebar/MultiplesSelect.d.ts.map index 5b215f8b2..65e7bd40f 100644 --- a/dist/vis/sidebar/MultiplesSelect.d.ts.map +++ b/dist/vis/sidebar/MultiplesSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"MultiplesSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/MultiplesSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,oBAAoB,eAgB3F"} \ No newline at end of file +{"version":3,"file":"MultiplesSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/MultiplesSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,oBAAoB,eAgB3F"} \ No newline at end of file diff --git a/dist/vis/sidebar/NumericalColorButtons.d.ts b/dist/vis/sidebar/NumericalColorButtons.d.ts index 88d7c01a1..dac655c71 100644 --- a/dist/vis/sidebar/NumericalColorButtons.d.ts +++ b/dist/vis/sidebar/NumericalColorButtons.d.ts @@ -1,3 +1,4 @@ +/// import { ENumericalColorScaleType } from '../interfaces'; interface NumericalColorButtonsProps { callback: (s: ENumericalColorScaleType) => void; diff --git a/dist/vis/sidebar/NumericalColorButtons.d.ts.map b/dist/vis/sidebar/NumericalColorButtons.d.ts.map index 85a0b18be..0b5013e51 100644 --- a/dist/vis/sidebar/NumericalColorButtons.d.ts.map +++ b/dist/vis/sidebar/NumericalColorButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"NumericalColorButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/NumericalColorButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,UAAU,0BAA0B;IAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,wBAAwB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,0BAA0B,eA0D9F"} \ No newline at end of file +{"version":3,"file":"NumericalColorButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/NumericalColorButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,UAAU,0BAA0B;IAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,wBAAwB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,0BAA0B,eA0D9F"} \ No newline at end of file diff --git a/dist/vis/sidebar/NumericalColumnSelect.d.ts b/dist/vis/sidebar/NumericalColumnSelect.d.ts index 760636a9f..7795ef747 100644 --- a/dist/vis/sidebar/NumericalColumnSelect.d.ts +++ b/dist/vis/sidebar/NumericalColumnSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn } from '../interfaces'; interface NumericalColumnSelectProps { callback: (s: ColumnInfo[]) => void; diff --git a/dist/vis/sidebar/NumericalColumnSelect.d.ts.map b/dist/vis/sidebar/NumericalColumnSelect.d.ts.map index 90fb33066..ab63dfaff 100644 --- a/dist/vis/sidebar/NumericalColumnSelect.d.ts.map +++ b/dist/vis/sidebar/NumericalColumnSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"NumericalColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/NumericalColumnSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,0BAA0B;IAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAwBD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,0BAA0B,eAqCvG"} \ No newline at end of file +{"version":3,"file":"NumericalColumnSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/NumericalColumnSelect.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,0BAA0B;IAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAwBD,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,0BAA0B,eAqCvG"} \ No newline at end of file diff --git a/dist/vis/sidebar/ShapeSelect.d.ts b/dist/vis/sidebar/ShapeSelect.d.ts index 35f82a963..64c274d10 100644 --- a/dist/vis/sidebar/ShapeSelect.d.ts +++ b/dist/vis/sidebar/ShapeSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ColumnInfo, VisColumn } from '../interfaces'; interface ShapeSelectProps { callback: (shape: ColumnInfo) => void; diff --git a/dist/vis/sidebar/ShapeSelect.d.ts.map b/dist/vis/sidebar/ShapeSelect.d.ts.map index 5136ba18f..0003a7287 100644 --- a/dist/vis/sidebar/ShapeSelect.d.ts.map +++ b/dist/vis/sidebar/ShapeSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ShapeSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ShapeSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,eAgBnF"} \ No newline at end of file +{"version":3,"file":"ShapeSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ShapeSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,eAgBnF"} \ No newline at end of file diff --git a/dist/vis/sidebar/ViolinOverlayButtons.d.ts b/dist/vis/sidebar/ViolinOverlayButtons.d.ts index 152022a4b..c3b08a08a 100644 --- a/dist/vis/sidebar/ViolinOverlayButtons.d.ts +++ b/dist/vis/sidebar/ViolinOverlayButtons.d.ts @@ -1,3 +1,4 @@ +/// import { EViolinOverlay } from '../interfaces'; interface ViolinOverlayProps { callback: (s: EViolinOverlay) => void; diff --git a/dist/vis/sidebar/ViolinOverlayButtons.d.ts.map b/dist/vis/sidebar/ViolinOverlayButtons.d.ts.map index aaa87793c..b78f22f95 100644 --- a/dist/vis/sidebar/ViolinOverlayButtons.d.ts.map +++ b/dist/vis/sidebar/ViolinOverlayButtons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ViolinOverlayButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ViolinOverlayButtons.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,cAAc,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,kBAAkB,eA2BrF"} \ No newline at end of file +{"version":3,"file":"ViolinOverlayButtons.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/ViolinOverlayButtons.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,cAAc,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,kBAAkB,eA2BrF"} \ No newline at end of file diff --git a/dist/vis/sidebar/VisTypeSelect.d.ts b/dist/vis/sidebar/VisTypeSelect.d.ts index 7f072c1f8..509616240 100644 --- a/dist/vis/sidebar/VisTypeSelect.d.ts +++ b/dist/vis/sidebar/VisTypeSelect.d.ts @@ -1,3 +1,4 @@ +/// import { ESupportedPlotlyVis } from '../interfaces'; interface VisTypeSelectProps { callback: (s: ESupportedPlotlyVis) => void; diff --git a/dist/vis/sidebar/VisTypeSelect.d.ts.map b/dist/vis/sidebar/VisTypeSelect.d.ts.map index 501f6aac8..88a9289a7 100644 --- a/dist/vis/sidebar/VisTypeSelect.d.ts.map +++ b/dist/vis/sidebar/VisTypeSelect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisTypeSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/VisTypeSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,kBAAkB,eAmB9E"} \ No newline at end of file +{"version":3,"file":"VisTypeSelect.d.ts","sourceRoot":"","sources":["../../../src/vis/sidebar/VisTypeSelect.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAe,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,kBAAkB,eAmB9E"} \ No newline at end of file From 472f4102cb3ccca95adcfc71695a98e5c675ec83 Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 13:47:31 +0200 Subject: [PATCH 086/117] removed unnecessary JSON.stringify --- dist/views/visyn/demo/VisynDemoView.d.ts | 1 - dist/views/visyn/demo/VisynDemoView.d.ts.map | 2 +- dist/vis/Vis.d.ts | 1 - dist/vis/Vis.d.ts.map | 2 +- dist/vis/Vis.js | 2 +- dist/vis/Vis.js.map | 2 +- dist/vis/VisSidebar.d.ts | 1 - dist/vis/VisSidebar.d.ts.map | 2 +- src/vis/Vis.tsx | 2 +- 9 files changed, 6 insertions(+), 9 deletions(-) diff --git a/dist/views/visyn/demo/VisynDemoView.d.ts b/dist/views/visyn/demo/VisynDemoView.d.ts index 6e4ff5068..4df3855fd 100644 --- a/dist/views/visyn/demo/VisynDemoView.d.ts +++ b/dist/views/visyn/demo/VisynDemoView.d.ts @@ -1,4 +1,3 @@ -/// import { DemoVisynViewPluginType } from './interfaces'; export declare function VisynDemoView({ desc, parameters, onParametersChanged }: DemoVisynViewPluginType['props']): JSX.Element; export declare function VisynDemoViewSidebar({ parameters, onParametersChanged }: DemoVisynViewPluginType['props']): JSX.Element; diff --git a/dist/views/visyn/demo/VisynDemoView.d.ts.map b/dist/views/visyn/demo/VisynDemoView.d.ts.map index d3da0fa6e..54d6675d1 100644 --- a/dist/views/visyn/demo/VisynDemoView.d.ts.map +++ b/dist/views/visyn/demo/VisynDemoView.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisynDemoView.d.ts","sourceRoot":"","sources":["../../../../src/views/visyn/demo/VisynDemoView.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAkEvD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eA0BxG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiBzG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiCnH;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAY3E"} \ No newline at end of file +{"version":3,"file":"VisynDemoView.d.ts","sourceRoot":"","sources":["../../../../src/views/visyn/demo/VisynDemoView.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAkEvD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eA0BxG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiBzG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,eAiCnH;AAED,wBAAgB,mBAAmB,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAY3E"} \ No newline at end of file diff --git a/dist/vis/Vis.d.ts b/dist/vis/Vis.d.ts index 60a0db221..bbb7a5b86 100644 --- a/dist/vis/Vis.d.ts +++ b/dist/vis/Vis.d.ts @@ -1,4 +1,3 @@ -/// import { IVisConfig, VisColumn, EFilterOptions } from './interfaces'; export declare function Vis({ columns, selected, colors, shapes, selectionCallback, filterCallback, setExternalConfig, externalConfig, hideSidebar, }: { /** diff --git a/dist/vis/Vis.d.ts.map b/dist/vis/Vis.d.ts.map index 8f674486e..6ac13b134 100644 --- a/dist/vis/Vis.d.ts.map +++ b/dist/vis/Vis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":";AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAQf,MAAM,cAAc,CAAC;AAwBtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAAuB,EACvB,MAAuB,EACvB,iBAA8B,EAC9B,cAA2B,EAC3B,iBAA8B,EAC9B,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAiKA"} \ No newline at end of file +{"version":3,"file":"Vis.d.ts","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,cAAc,EAQf,MAAM,cAAc,CAAC;AAwBtB,wBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,QAAa,EACb,MAAuB,EACvB,MAAuB,EACvB,iBAA8B,EAC9B,cAA2B,EAC3B,iBAA8B,EAC9B,cAAqB,EACrB,WAAmB,GACpB,EAAE;IACD;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,eAiKA"} \ No newline at end of file diff --git a/dist/vis/Vis.js b/dist/vis/Vis.js index 5be09a5c8..6db1d78da 100644 --- a/dist/vis/Vis.js +++ b/dist/vis/Vis.js @@ -61,7 +61,7 @@ export function Vis({ columns, selected = [], colors = DEFAULT_COLORS, shapes = var _a; (_a = setExternalConfigRef.current) === null || _a === void 0 ? void 0 : _a.call(setExternalConfigRef, visConfig); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [JSON.stringify(visConfig), setExternalConfigRef]); + }, [visConfig, setExternalConfigRef]); const setVisConfig = React.useCallback((newConfig) => { _setVisConfig((oldConfig) => { return { diff --git a/dist/vis/Vis.js.map b/dist/vis/Vis.js.map index 764afbe6e..b354e93a6 100644 --- a/dist/vis/Vis.js.map +++ b/dist/vis/Vis.js.map @@ -1 +1 @@ -{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Vis.js","sourceRoot":"","sources":["../../src/vis/Vis.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EACL,mBAAmB,EAKnB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,cAAc,GAAG;IACrB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,UAAU,CAAC;IACvB,WAAW,CAAC,WAAW,CAAC;CACzB,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG,cAAc,EACvB,MAAM,GAAG,cAAc,EACvB,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,EAC3B,iBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC9B,cAAc,GAAG,IAAI,EACrB,WAAW,GAAG,KAAK,GA6BpB;IACC,qLAAqL;IACrL,qIAAqI;IACrI,gEAAgE;IAChE,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAI/F,cAAc;QACZ,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;QAC/C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;YACrE,CAAC,CAAC;gBACE,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP,IAAI,EAAE,mBAAmB,CAAC,OAAO;oBACjC,kBAAkB,EAAE,EAAE;oBACtB,KAAK,EAAE,IAAI;oBACX,iBAAiB,EAAE,wBAAwB,CAAC,UAAU;oBACtD,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,sBAAsB,CAAC,SAAS;oBAC1C,cAAc,EAAE,GAAG;iBACpB;aACF;YACH,CAAC,CAAC;gBACE,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP,IAAI,EAAE,mBAAmB,CAAC,GAAG;oBAC7B,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,aAAa,CAAC,UAAU;oBACnC,OAAO,EAAE,eAAe,CAAC,QAAQ;oBACjC,SAAS,EAAE,gBAAgB,CAAC,KAAK;oBACjC,kBAAkB,EAAE,EAAE;oBACtB,iBAAiB,EAAE,IAAI;oBACvB,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,eAAe,CAAC,KAAK;iBACrC;aACF,CACN,CAAC;IAEF,MAAM,oBAAoB,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;;QACb,MAAA,oBAAoB,CAAC,OAAO,qEAAG,SAAS,CAAC,CAAC;QAC1C,uDAAuD;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,SAAqB,EAAE,EAAE;QAC/D,aAAa,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aACzF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,CAAC,qBAAqB,CAAC,EAAE;YACpC,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC5E,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9D;QACD,IAAI,QAAQ,CAAC,qBAAqB,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC3E,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9D;QACD,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAClC,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC1E,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9D;QACD,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YACxE,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9D;QACD,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YACxE,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;SAC9D;QACD,8IAA8I;QAC9I,uDAAuD;IACzD,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc,EAAE;YAClB,YAAY,CAAC,cAAc,CAAC,CAAC;SAC9B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,MAAM,GAAW,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO;YACL,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,6BAAK,SAAS,EAAC,UAAU,GAAG,CAAC;KACrC;IAED,OAAO,CACL;QACG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACtB,oBAAC,UAAU,IACT,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,EACD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACrB,oBAAC,SAAS,IACR,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE;gBACb,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI;iBACb;aACF,EACD,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACpB,oBAAC,QAAQ,IACP,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,IAAI;QAEP,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAC,MAAM,IAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI;QAEnJ,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAC,MAAM,IAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI,CAC5I,CACJ,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/dist/vis/VisSidebar.d.ts b/dist/vis/VisSidebar.d.ts index a0d76cd45..a354f7263 100644 --- a/dist/vis/VisSidebar.d.ts +++ b/dist/vis/VisSidebar.d.ts @@ -1,4 +1,3 @@ -/// import { IVisConfig, VisColumn, ICommonVisSideBarProps } from './interfaces'; export declare type VisSidebarProps = { /** diff --git a/dist/vis/VisSidebar.d.ts.map b/dist/vis/VisSidebar.d.ts.map index 63c5bf3fa..1910646d5 100644 --- a/dist/vis/VisSidebar.d.ts.map +++ b/dist/vis/VisSidebar.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisSidebar.d.ts","sourceRoot":"","sources":["../../src/vis/VisSidebar.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAU7E,oBAAY,eAAe,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,UAAU,CAAC;IAC3B,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C,GAAG,sBAAsB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,cAA2B,EAAE,cAAqB,EAAE,iBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,eAmDtJ"} \ No newline at end of file +{"version":3,"file":"VisSidebar.d.ts","sourceRoot":"","sources":["../../src/vis/VisSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAU7E,oBAAY,eAAe,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,UAAU,CAAC;IAC3B,iBAAiB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C,GAAG,sBAAsB,CAAC;AAE3B,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,cAA2B,EAAE,cAAqB,EAAE,iBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,eAmDtJ"} \ No newline at end of file diff --git a/src/vis/Vis.tsx b/src/vis/Vis.tsx index 88472bea3..7dd570ecd 100644 --- a/src/vis/Vis.tsx +++ b/src/vis/Vis.tsx @@ -120,7 +120,7 @@ export function Vis({ useEffect(() => { setExternalConfigRef.current?.(visConfig); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [JSON.stringify(visConfig), setExternalConfigRef]); + }, [visConfig, setExternalConfigRef]); const setVisConfig = React.useCallback((newConfig: IVisConfig) => { _setVisConfig((oldConfig) => { From 13dd1a87845f3e35b9b55b482031fbca473d83bc Mon Sep 17 00:00:00 2001 From: dvzacharycutler Date: Mon, 2 May 2022 14:10:37 +0200 Subject: [PATCH 087/117] updating error message --- dist/locales/en/tdp.json | 2 +- src/locales/en/tdp.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/locales/en/tdp.json b/dist/locales/en/tdp.json index ed9ee6334..fe893d55a 100644 --- a/dist/locales/en/tdp.json +++ b/dist/locales/en/tdp.json @@ -168,7 +168,7 @@ "stripError": "To create a Strip plot, please select at least 1 numerical column.", "barError": "To create a Bar chart, please select 1 categorical column.", "pcpError": "To create a Parallel Coordinates Plot, please select at least 2 numerical or categorical columns.", - "errorHeader": "Invalid Columns Selected", + "errorHeader": "Invalid Settings", "missingValue": "n/a" }, "lineup": { diff --git a/src/locales/en/tdp.json b/src/locales/en/tdp.json index 340d82d09..b85f22156 100644 --- a/src/locales/en/tdp.json +++ b/src/locales/en/tdp.json @@ -182,7 +182,7 @@ "stripError": "To create a Strip plot, please select at least 1 numerical column.", "barError": "To create a Bar chart, please select 1 categorical column.", "pcpError": "To create a Parallel Coordinates Plot, please select at least 2 numerical or categorical columns.", - "errorHeader": "Invalid Columns Selected", + "errorHeader": "Invalid Settings", "missingValue": "n/a" }, From f169aae7247a015ad9dc98355bca82160cef9eac Mon Sep 17 00:00:00 2001 From: Holger Stitz Date: Tue, 3 May 2022 14:19:10 +0200 Subject: [PATCH 088/117] Update to lineupjs to version ~4.6.0 #603 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1966aa8e2..647471950 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "eventemitter3": "^4.0.7", "i18next": "^19.8.4", "jquery": "~3.5.1", - "lineupjs": "~4.5.0", + "lineupjs": "~4.6.0", "lodash": "~4.17.20", "marked": "~3.0.2", "md5": "^2.3.0", From 7522f0598c22996d59f6015dd9c6381ff7774de4 Mon Sep 17 00:00:00 2001 From: Vanessa Stoiber <52395160+dvvanessastoiber@users.noreply.github.com> Date: Wed, 4 May 2022 09:40:36 +0200 Subject: [PATCH 089/117] Cypress testing (#622) * add login * add data-testid to modals * destroy modals when closed * add data-testid to modals * add data-testid to logo in tabs * add data-testid to user and logout link * fix lint and add id for addcolumn btn * add data-testid to form checkbox * add data-testid to panel buttons * add data-testid to form selects * select 2 and 3 - options * fix linting * add data-testid * add ids for select labels * add handling of single options * add data-testid options FormSelect2 * fix ids * update dist * remove data-testid from select2 and 3 options * change logo data-testid * add data-testid dtiles start page * add data-testid for dTiles * add data-testid dtiles * update dist * fix lint * add data-testid for dTiles * add data-testid provenance button * fix lint * update dist * update dist Co-authored-by: Florian Engertsberger Co-authored-by: Michael Puehringer --- dist/base/LoginMenu.d.ts.map | 2 +- dist/base/LoginMenu.js | 4 +- dist/base/LoginMenu.js.map | 2 +- dist/base/LoginUtils.js | 8 ++-- dist/base/LoginUtils.js.map | 2 +- dist/base/rest.d.ts | 2 +- dist/clue/provvis/provvis.js | 2 +- dist/clue/provvis/provvis.js.map | 2 +- dist/clue/utils/EditProvenanceGraphMenu.js | 16 ++++---- .../clue/utils/EditProvenanceGraphMenu.js.map | 2 +- dist/clue/utils/ProvenanceGraphMenuUtils.js | 6 +-- .../utils/ProvenanceGraphMenuUtils.js.map | 2 +- dist/clue/utils/SessionList.js | 11 +++--- dist/clue/utils/SessionList.js.map | 2 +- dist/components/dialogs.d.ts.map | 2 +- dist/components/dialogs.js | 12 ++++-- dist/components/dialogs.js.map | 2 +- dist/components/header.d.ts.map | 2 +- dist/components/header.js | 10 ++--- dist/components/header.js.map | 2 +- dist/cypress/utils/utils.d.ts | 1 + dist/cypress/utils/utils.d.ts.map | 2 +- dist/form/elements/AFormElement.d.ts.map | 2 +- dist/form/elements/AFormElement.js | 7 +++- dist/form/elements/AFormElement.js.map | 2 +- dist/form/elements/FormCheckBox.js | 2 +- dist/form/elements/FormCheckBox.js.map | 2 +- dist/form/elements/FormMap.d.ts.map | 2 +- dist/form/elements/FormMap.js | 33 ++++++++++------ dist/form/elements/FormMap.js.map | 2 +- dist/form/elements/FormSelect.d.ts.map | 2 +- dist/form/elements/FormSelect.js | 11 +++++- dist/form/elements/FormSelect.js.map | 2 +- dist/form/elements/FormSelect2.d.ts.map | 2 +- dist/form/elements/FormSelect2.js | 16 +++++++- dist/form/elements/FormSelect2.js.map | 2 +- dist/form/elements/FormSelect3.d.ts.map | 2 +- dist/form/elements/FormSelect3.js | 10 ++++- dist/form/elements/FormSelect3.js.map | 2 +- .../internal/LineUpPanelActions.d.ts.map | 2 +- dist/lineup/internal/LineUpPanelActions.js | 1 + .../lineup/internal/LineUpPanelActions.js.map | 2 +- dist/lineup/internal/ScoreUtils.d.ts | 16 +++----- dist/lineup/internal/ScoreUtils.d.ts.map | 2 +- .../panel/PanelAddColumnButton.d.ts.map | 2 +- dist/lineup/panel/PanelAddColumnButton.js | 1 + dist/lineup/panel/PanelAddColumnButton.js.map | 2 +- dist/lineup/panel/PanelButton.d.ts.map | 2 +- dist/lineup/panel/PanelButton.js | 1 + dist/lineup/panel/PanelButton.js.map | 2 +- dist/lineup/panel/PanelDownloadButton.js | 2 +- dist/lineup/panel/PanelSaveNamedSetButton.js | 2 +- dist/storage/StoreUtils.js | 4 +- dist/storage/StoreUtils.js.map | 2 +- dist/utils/TDPApplicationUtils.d.ts | 6 ++- dist/utils/TDPApplicationUtils.d.ts.map | 2 +- dist/utils/TDPApplicationUtils.js | 39 +++++++++---------- dist/utils/TDPApplicationUtils.js.map | 2 +- dist/vis/Vis.d.ts.map | 2 +- src/base/LoginMenu.ts | 6 ++- src/base/LoginUtils.ts | 8 ++-- src/clue/provvis/provvis.ts | 2 +- src/clue/utils/EditProvenanceGraphMenu.ts | 16 ++++---- src/clue/utils/ProvenanceGraphMenuUtils.ts | 6 +-- src/clue/utils/SessionList.ts | 12 +++--- src/components/dialogs.ts | 14 +++++-- src/components/header.ts | 14 ++++--- src/form/elements/AFormElement.ts | 7 +++- src/form/elements/FormCheckBox.ts | 2 +- src/form/elements/FormMap.ts | 35 +++++++++++------ src/form/elements/FormSelect.ts | 11 +++++- src/form/elements/FormSelect2.ts | 18 ++++++++- src/form/elements/FormSelect3.ts | 10 ++++- src/lineup/internal/LineUpPanelActions.ts | 1 + src/lineup/panel/PanelAddColumnButton.ts | 1 + src/lineup/panel/PanelButton.ts | 1 + src/lineup/panel/PanelDownloadButton.ts | 2 +- src/lineup/panel/PanelSaveNamedSetButton.ts | 2 +- src/storage/StoreUtils.ts | 4 +- src/utils/TDPApplicationUtils.ts | 39 +++++++++---------- 80 files changed, 307 insertions(+), 195 deletions(-) diff --git a/dist/base/LoginMenu.d.ts.map b/dist/base/LoginMenu.d.ts.map index 4790b6c3b..ae2f25ad9 100644 --- a/dist/base/LoginMenu.d.ts.map +++ b/dist/base/LoginMenu.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"LoginMenu.d.ts","sourceRoot":"","sources":["../../src/base/LoginMenu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAY;IAe7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdnC,MAAM,CAAC,QAAQ,CAAC,eAAe,cAAc;IAE7C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,eAAe;IAE/C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;gBAEjC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,iBAAsB;IAc/E,OAAO,CAAC,IAAI;IAiCZ,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,aAAa;IAMrB,eAAe;IAOf,OAAO,CAAC,eAAe;CAiFxB"} \ No newline at end of file +{"version":3,"file":"LoginMenu.d.ts","sourceRoot":"","sources":["../../src/base/LoginMenu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAY;IAe7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdnC,MAAM,CAAC,QAAQ,CAAC,eAAe,cAAc;IAE7C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,eAAe;IAE/C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;gBAEjC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,iBAAsB;IAc/E,OAAO,CAAC,IAAI;IAmCZ,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,aAAa;IAMrB,eAAe;IAOf,OAAO,CAAC,eAAe;CAiFxB"} \ No newline at end of file diff --git a/dist/base/LoginMenu.js b/dist/base/LoginMenu.js index 95d9327bb..586073520 100644 --- a/dist/base/LoginMenu.js +++ b/dist/base/LoginMenu.js @@ -38,10 +38,10 @@ export class LoginMenu extends EventHandler {
  • `; ul.querySelector('#logout_link').addEventListener('click', (evt) => { diff --git a/dist/base/LoginMenu.js.map b/dist/base/LoginMenu.js.map index ea0ecdec1..1b0a208e8 100644 --- a/dist/base/LoginMenu.js.map +++ b/dist/base/LoginMenu.js.map @@ -1 +1 @@ -{"version":3,"file":"LoginMenu.js","sourceRoot":"","sources":["../../src/base/LoginMenu.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LoginMenu.js","sourceRoot":"","sources":["../../src/base/LoginMenu.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/base/LoginUtils.js b/dist/base/LoginUtils.js index d25434f90..96a293318 100644 --- a/dist/base/LoginUtils.js +++ b/dist/base/LoginUtils.js @@ -92,16 +92,16 @@ export class LoginUtils { }; } } -LoginUtils.defaultLoginForm = () => ` `; //# sourceMappingURL=LoginUtils.js.map \ No newline at end of file diff --git a/dist/base/LoginUtils.js.map b/dist/base/LoginUtils.js.map index 5bbc2d958..865a06d5e 100644 --- a/dist/base/LoginUtils.js.map +++ b/dist/base/LoginUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"LoginUtils.js","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"LoginUtils.js","sourceRoot":"","sources":["../../src/base/LoginUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,UAAU;IAkBrB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,QAAgB,EAAE,QAAgB;QAC7C,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,sCAAsC;QACtC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACX,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;gBAC/B,GAAG,EAAE,mBAAmB;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM;QACX,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC;iBACpC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;oBAC/B,GAAG,EAAE,qDAAqD;iBAC3D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACN;QACD,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;YAC/B,GAAG,EAAE,6BAA6B;SACnC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACb;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAqB,EAAE,QAA0C,EAAE,QAAqB;QAC3G,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;YACrC,UAAU,CAAC,UAAU,EAAE;iBACpB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,2BAA2B;YAC7B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;YACxB,IAAI,QAAQ,EAAE;gBACZ,QAAQ,EAAE,CAAC;aACZ;YACD,MAAM,QAAQ,GAAS,IAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAClD,MAAM,QAAQ,GAAS,IAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAClD,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;iBACjC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACpC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;oBACnD,qBAAqB;oBACrB,eAAe;oBACf,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;iBACjC;qBAAM;oBACL,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBACvB;YACH,CAAC,CAAC,CAAC;YACL,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;;AA3GM,2BAAgB,GAAG,GAAG,EAAE,CAAC;;uDAEqB,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC;oHACR,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC/I,gCAAgC,CACjC;;;wDAGiD,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC;wHACL,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACnJ,gCAAgC,CACjC;;gFAEyE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;;KAE9I,CAAC"} \ No newline at end of file diff --git a/dist/base/rest.d.ts b/dist/base/rest.d.ts index fdf2099ee..23fc930f5 100644 --- a/dist/base/rest.d.ts +++ b/dist/base/rest.d.ts @@ -165,7 +165,7 @@ export declare class RestBaseUtils { * @param filters URL filter parameters */ static mergeParamAndFilters(params: IParams, filters: IParams): { - [x: string]: string | number | boolean | string[] | number[] | boolean[]; + [x: string]: string | number | boolean | number[] | string[] | boolean[]; }; /** * query the TDP rest api to read data with additional given filters diff --git a/dist/clue/provvis/provvis.js b/dist/clue/provvis/provvis.js index b700b9263..b8db28433 100644 --- a/dist/clue/provvis/provvis.js +++ b/dist/clue/provvis/provvis.js @@ -405,7 +405,7 @@ export class LayoutedProvVis extends AVisInstance { d3.select('header.clue-modeselector').classed('collapsed', true); } $p.html(` -
    diff --git a/dist/clue/provvis/provvis.js.map b/dist/clue/provvis/provvis.js.map index f71c2fe13..616562506 100644 --- a/dist/clue/provvis/provvis.js.map +++ b/dist/clue/provvis/provvis.js.map @@ -1 +1 @@ -{"version":3,"file":"provvis.js","sourceRoot":"","sources":["../../../src/clue/provvis/provvis.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"provvis.js","sourceRoot":"","sources":["../../../src/clue/provvis/provvis.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/clue/utils/EditProvenanceGraphMenu.js b/dist/clue/utils/EditProvenanceGraphMenu.js index af19d623d..82b824923 100644 --- a/dist/clue/utils/EditProvenanceGraphMenu.js +++ b/dist/clue/utils/EditProvenanceGraphMenu.js @@ -51,20 +51,20 @@ export class EditProvenanceGraphMenu { const li = parent.ownerDocument.createElement('li'); li.classList.add('nav-item', 'dropdown'); li.innerHTML = ` - `; li.querySelector('a[data-action="edit"]').addEventListener('click', (event) => { event.preventDefault(); diff --git a/dist/clue/utils/EditProvenanceGraphMenu.js.map b/dist/clue/utils/EditProvenanceGraphMenu.js.map index 9cd1833a9..97f95f164 100644 --- a/dist/clue/utils/EditProvenanceGraphMenu.js.map +++ b/dist/clue/utils/EditProvenanceGraphMenu.js.map @@ -1 +1 @@ -{"version":3,"file":"EditProvenanceGraphMenu.js","sourceRoot":"","sources":["../../../src/clue/utils/EditProvenanceGraphMenu.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EditProvenanceGraphMenu.js","sourceRoot":"","sources":["../../../src/clue/utils/EditProvenanceGraphMenu.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/clue/utils/ProvenanceGraphMenuUtils.js b/dist/clue/utils/ProvenanceGraphMenuUtils.js index 4887ba031..9ce3bdce7 100644 --- a/dist/clue/utils/ProvenanceGraphMenuUtils.js +++ b/dist/clue/utils/ProvenanceGraphMenuUtils.js @@ -36,15 +36,15 @@ export class ProvenanceGraphMenuUtils { dialog.form.innerHTML = `
    - +
    - +
    - +
    diff --git a/dist/clue/utils/ProvenanceGraphMenuUtils.js.map b/dist/clue/utils/ProvenanceGraphMenuUtils.js.map index 642042b53..9a600e2eb 100644 --- a/dist/clue/utils/ProvenanceGraphMenuUtils.js.map +++ b/dist/clue/utils/ProvenanceGraphMenuUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"ProvenanceGraphMenuUtils.js","sourceRoot":"","sources":["../../../src/clue/utils/ProvenanceGraphMenuUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ProvenanceGraphMenuUtils.js","sourceRoot":"","sources":["../../../src/clue/utils/ProvenanceGraphMenuUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/clue/utils/SessionList.js b/dist/clue/utils/SessionList.js index 490f00117..1ae5af305 100644 --- a/dist/clue/utils/SessionList.js +++ b/dist/clue/utils/SessionList.js @@ -23,15 +23,15 @@ class ASessionList { static createButton(type) { switch (type) { case 'delete': - return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.delete')}`; + return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.delete')}`; case 'select': - return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.continue')}`; + return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.continue')}`; case 'clone': - return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.cloneToTemporary')}`; + return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.cloneToTemporary')}`; case 'persist': - return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.saveSession')}`; + return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.saveSession')}`; case 'edit': - return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.editSession')}`; + return `${I18nextManager.getInstance().i18n.t('tdp:core.SessionList.editSession')}`; default: return undefined; } @@ -158,6 +158,7 @@ export class TemporarySessionList extends ASessionList { .attr('class', (d) => ProvenanceGraphMenuUtils.isPublic(d) ? I18nextManager.getInstance().i18n.t('tdp:core.SessionList.status') : I18nextManager.getInstance().i18n.t('tdp:core.SessionList.status', { context: 'private' })); + $tr.select('td:nth-of-type(3)').attr('data-testid', (d) => d.id); $tr .select('td:nth-of-type(2)') .text((d) => (d.ts ? TDPApplicationUtils.fromNow(d.ts) : I18nextManager.getInstance().i18n.t('tdp:core.SessionList.unknown'))) diff --git a/dist/clue/utils/SessionList.js.map b/dist/clue/utils/SessionList.js.map index 547e8e0e2..0b5b73769 100644 --- a/dist/clue/utils/SessionList.js.map +++ b/dist/clue/utils/SessionList.js.map @@ -1 +1 @@ -{"version":3,"file":"SessionList.js","sourceRoot":"","sources":["../../../src/clue/utils/SessionList.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SessionList.js","sourceRoot":"","sources":["../../../src/clue/utils/SessionList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,KAAK,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAe,YAAY;IAGzB,YAA6B,MAAmB,EAAE,YAA8B,EAAqB,OAAyB,OAAO;QAAxG,WAAM,GAAN,MAAM,CAAa;QAAqD,SAAI,GAAJ,IAAI,CAA4B;QACnI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,kBAAkB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxG,CAAC;IAES,MAAM,CAAC,YAAY,CAAC,IAAwD;QACpF,QAAQ,IAAI,EAAE;YACZ,KAAK,QAAQ;gBACX,OAAO,qEAAqE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC7G,oCAAoC,CACrC,mFAAmF,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACrH,6BAA6B,CAC9B,aAAa,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,qEAAqE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC7G,sCAAsC,CACvC,wFAAwF,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC1H,+BAA+B,CAChC,aAAa,CAAC;YACjB,KAAK,OAAO;gBACV,OAAO,mEAAmE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC3G,uCAAuC,CACxC,kFAAkF,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACpH,uCAAuC,CACxC,aAAa,CAAC;YACjB,KAAK,SAAS;gBACZ,OAAO,uEAAuE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAC/G,kCAAkC,CACnC,kFAAkF,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACpH,kCAAkC,CACnC,aAAa,CAAC;YACjB,KAAK,MAAM;gBACT,OAAO,iEAAiE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACzG,kCAAkC,CACnC,iFAAiF,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACnH,kCAAkC,CACnC,aAAa,CAAC;YACjB;gBACE,OAAO,SAAS,CAAC;SACpB;IACH,CAAC;IAES,sBAAsB,CAAC,OAAyB,EAAE,MAAkD;QAC5G,MAAM,SAAS,GAAG,GAAG,EAAE;YACb,KAAM,CAAC,cAAc,EAAE,CAAC;YACxB,KAAM,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC;YACpE,SAAS,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/I,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrH,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gBAC5C,EAAE,CAAC,MAAM,EAAE,CAAC;aACb;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACxD,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACzD,SAAS,EAAE,CAAC;YACZ,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACzC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACvB;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAmC,CAAC;YACrF,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAgB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC/E,MAAM,OAAO,GAAgB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5F,wBAAwB,CAAC,2BAA2B,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACpJ,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;yBAClD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBACb,kBAAkB;wBAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC7B,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtH,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;wBAC7F,OAAO,CAAC,YAAY,CAClB,OAAO,EACP,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAClC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC;4BACpE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAC/F,CAAC;oBACJ,CAAC,CAAC;yBACD,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;iBACtD;YACH,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1D,SAAS,EAAE,CAAC;YACZ,wBAAwB,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE;gBAC9E,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;iBAChG;YACH,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAES,YAAY;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;;;wCAGvB,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC;aAClG,CAAC,CAAC;IACb,CAAC;CAGF;AAED,SAAS,UAAU,CAAC,CAAM,EAAE,CAAM;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAG1C,KAAK,CAAC,OAAO,CAAC,OAAyB;QAC/C,IAAI,UAAU,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElH,4BAA4B;QAC5B,IAAI,UAAU,CAAC,MAAM,GAAG,oBAAoB,CAAC,qCAAqC,EAAE;YAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;YAC9F,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClE,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,OAAyB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,+BAA+B;QAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG;;;cAGJ,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;cAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;cAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;;;;;;WAMtE,CAAC;QACR,MAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,kBAAkB;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;OACzB,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,qCAAqC,EAAE,CAAC;eAC1I,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,CAAC,IAAuC,EAAE,EAAE;YAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;;;gBAGrC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,YAAY,CACnJ,QAAQ,CACT,OAAO,CAAC,CAAC;YAEV,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,GAAG;iBACA,MAAM,CAAC,IAAI,CAAC;iBACZ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACnB,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAY;gBAChF,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAY,CAC3G,CAAC;YACJ,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,GAAG;iBACA,MAAM,CAAC,mBAAmB,CAAC;iBAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAY,CAAC,CAAC;iBACzI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,IAAuC,EAAE,EAAE;YAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;;;kBAGlE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,YAAY,CACrJ,QAAQ,CACT,SAAS,CAAC,CAAC;YAEZ,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,GAAG;iBACA,MAAM,CAAC,MAAM,CAAC;iBACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACnB,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAY;gBAChF,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAY,CAC3G,CAAC;YACJ,GAAG;iBACA,MAAM,CAAC,qBAAqB,CAAC;iBAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAY,CAAC,CAAC;iBACzI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;;AAlGsB,0DAAqC,GAAG,EAAE,CAAC;AAqGpE;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAC3C,KAAK,CAAC,OAAO,CAAC,OAAyB;QAC/C,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzG,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,OAAyB;QAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAG,gBAAgB,QAAQ,EAAE,CAAC;QACnD,MAAM,kBAAkB,GAAG,kBAAkB,QAAQ,EAAE,CAAC;QAExD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,+BAA+B;QAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG;;;0BAGI,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;0BAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC;0BAClE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;0BAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;;;;;;uBAMtE,CAAC;QACpB,MAAM,WAAW,GAAG;;;0BAGE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;0BAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;0BACnE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;0BAChE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC;;;;;;uBAMtE,CAAC;QAEpB,OAAO,CAAC,IAAI,CAAC;MACX,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC;;;kDAG7B,eAAe,oEAAoE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAClK,iCAAiC,CAClC;2CACsC,kBAAkB,8DAA8D,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACxJ,oCAAoC,CACrC;;;uBAGkB,eAAe;kBACpB,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;uBAEjC,kBAAkB;kBACvB,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;;cAE5C,CAAC,CAAC;QAEZ,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;YACrC,KAAM,CAAC,cAAc,EAAE,CAAC;YAChC,4DAA4D;YAC5D,aAAa;YACb,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,IAAuC,EAAE,EAAE;YACzD,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,0BAA0B,EAAE,CAAC;YAClE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAE7D,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;YACvF,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAChH,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAExF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzB;oBACE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,eAAe,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAE3F,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;;;;kBAIvC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,YAAY,CAC9I,QAAQ,CACT,OAAO,CAAC,CAAC;oBAEV,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrC,GAAG;yBACA,MAAM,CAAC,qBAAqB,CAAC;yBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;yBAC7F,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC7F,GAAG;yBACA,MAAM,CAAC,mBAAmB,CAAC;yBAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;yBACrE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEtE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;iBACrB;gBACD;oBACE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAEjG,MAAM,QAAQ,GAAG,GAAG;yBACjB,KAAK,EAAE;yBACP,MAAM,CAAC,IAAI,CAAC;yBACZ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACV,IAAI,OAAO,GAAG,EAAE,CAAC;wBACjB,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;4BACzC,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;yBAChD;wBACD,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;wBAE9C,OAAO;;;;kBAIH,OAAO,OAAO,CAAC;oBACrB,CAAC,CAAC,CAAC;oBAEL,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACvD,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAE/F,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;iBACrB;aACF;iBAAM;gBACL;oBACE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAEhF,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;;;;oBAIpE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,YAAY,CAChJ,QAAQ,CACT,SAAS,CAAC,CAAC;oBAEZ,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACvC,GAAG;yBACA,MAAM,CAAC,uBAAuB,CAAC;yBAC/B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;yBAC7F,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC7F,GAAG;yBACA,MAAM,CAAC,qBAAqB,CAAC;yBAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;yBACrE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEtE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;iBACrB;gBACD;oBACE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAE5F,MAAM,QAAQ,GAAG,GAAG;yBACjB,KAAK,EAAE;yBACP,MAAM,CAAC,KAAK,CAAC;yBACb,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;yBAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACV,IAAI,OAAO,GAAG,EAAE,CAAC;wBACjB,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;4BACzC,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;yBAChD;wBACD,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;wBAE9C,OAAO;;;;sBAIC,OAAO,SAAS,CAAC;oBAC3B,CAAC,CAAC,CAAC;oBAEL,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACvC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACzD,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;oBAEnG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;iBACrB;aACF;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACF"} \ No newline at end of file diff --git a/dist/components/dialogs.d.ts.map b/dist/components/dialogs.d.ts.map index 57d7f16f1..f3179283b 100644 --- a/dist/components/dialogs.d.ts.map +++ b/dist/components/dialogs.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/components/dialogs.ts"],"names":[],"mappings":";;;;AAAA,OAAO,uBAAuB,CAAC;AAM/B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,MAAM;IACjB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,MAAM,CAAC,WAAW,SAAK;IAEvB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK,EAAE,QAAQ,GAAE,OAAO,GAAG,QAAe;IAwBhH,IAAI;IAcJ,IAAI;IAKJ,IAAI,IAAI,gBAEP;IAED,IAAI,MAAM,gBAET;IAED,IAAI,MAAM,gBAET;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;IAI5B,YAAY;IAIZ,OAAO;IAOP,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK;IAIrF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCpF;AAGD,qBAAa,oBAAqB,SAAQ,MAAM;gBAClC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,MAAM,SAAiC,EAAE,oBAAoB,SAAK;IASpH,IAAI,IAAI,oBAEP;IAED,WAAW;IAIX,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO;IAIhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCtF,MAAM,CAAC,UAAU,CAAC,GAAG,SAAK,EAAE,OAAO,GAAE,kBAAkB,GAAG,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAkCzF"} \ No newline at end of file +{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/components/dialogs.ts"],"names":[],"mappings":";;;;AAAA,OAAO,uBAAuB,CAAC;AAM/B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,MAAM;IACjB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,kBAAkB,CAAoC;IAE9D,MAAM,CAAC,WAAW,SAAK;IAEvB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK,EAAE,QAAQ,GAAE,OAAO,GAAG,QAAe;IA8BhH,IAAI;IAcJ,IAAI;IAKJ,IAAI,IAAI,gBAEP;IAED,IAAI,MAAM,gBAET;IAED,IAAI,MAAM,gBAET;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG;IAI5B,YAAY;IAIZ,OAAO;IAOP,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,oBAAoB,SAAK;IAIrF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAsCpF;AAGD,qBAAa,oBAAqB,SAAQ,MAAM;gBAClC,KAAK,EAAE,MAAM,EAAE,cAAc,SAAO,EAAE,MAAM,SAAiC,EAAE,oBAAoB,SAAK;IASpH,IAAI,IAAI,oBAEP;IAED,WAAW;IAIX,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO;IAIhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAc,GAAG,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCtF,MAAM,CAAC,UAAU,CAAC,GAAG,SAAK,EAAE,OAAO,GAAE,kBAAkB,GAAG,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAkCzF"} \ No newline at end of file diff --git a/dist/components/dialogs.js b/dist/components/dialogs.js index c9b8f948e..f0d9c0a1d 100644 --- a/dist/components/dialogs.js +++ b/dist/components/dialogs.js @@ -25,16 +25,20 @@ export class Dialog { // $(dialog).modal({backdrop}); dialog.innerHTML = ` `; diff --git a/src/clue/utils/ProvenanceGraphMenuUtils.ts b/src/clue/utils/ProvenanceGraphMenuUtils.ts index 386c74929..40c7d8ae3 100644 --- a/src/clue/utils/ProvenanceGraphMenuUtils.ts +++ b/src/clue/utils/ProvenanceGraphMenuUtils.ts @@ -46,15 +46,15 @@ export class ProvenanceGraphMenuUtils { dialog.form.innerHTML = `
    - +
    - +
    - +