Skip to content

Commit

Permalink
Compute2: Try some optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
andrey-sharapov-sc committed Jan 31, 2025
1 parent e9bed72 commit 1617599
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 39 deletions.
32 changes: 9 additions & 23 deletions libraries/webcomponents/src/Viewer/Viewer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import {
} from 'rxjs/operators';

export class Viewer<T = any> extends HTMLElement {
private viewerSetted$ = new BehaviorSubject<DG.Viewer<T> | undefined>(undefined);
private dfSetted$ = new BehaviorSubject<DG.DataFrame | undefined>(undefined);
private typeSetted$ = new BehaviorSubject<string | undefined>(undefined);
private _options: Record<string, string | boolean> = {};
Expand Down Expand Up @@ -52,24 +51,15 @@ export class Viewer<T = any> extends HTMLElement {
this.dfSetted$,
] as const);

merge(
settedParams$,
this.viewerSetted$,
).pipe(
switchMap((payload) => {
if (Array.isArray(payload)) {
const [type, df] = payload;
if (type && df) {
if (this.viewer?.type !== type || !this.viewer)
return from(this.createViewer(type, df));
else
return EMPTY;
} else
return of(undefined);
} else {
const viewer = payload;
return of(viewer);
}
settedParams$.pipe(
switchMap(([type, df]) => {
if (type && df) {
if (this.viewer?.type !== type || !this.viewer)
return from(this.createViewer(type, df));
else
return EMPTY;
} else
return of(undefined);
}),
takeUntil(this.destroyed$),
).subscribe((viewer) => {
Expand Down Expand Up @@ -102,10 +92,6 @@ export class Viewer<T = any> extends HTMLElement {
return this.viewer$.value;
}

set viewer(viewer: DG.Viewer<T> | undefined) {
this.viewerSetted$.next(viewer);
}

get dataFrame() {
return this.viewer$.value?.dataFrame ?? this.dfSetted$.value;
}
Expand Down
7 changes: 6 additions & 1 deletion packages/Compute2/src/components/RFV/RichFunctionView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,11 @@ export const RichFunctionView = Vue.defineComponent({
return scalarCardCount < 3 ? 'right': 'down';
};

const getDf = (name: string) => {
const val = currentCall.value.inputs[name] ?? currentCall.value.outputs[name];
return val ? Vue.markRaw(val) : val;
}

return (
<div class='w-full h-full flex'>
<RibbonMenu groupName='Panels'>
Expand Down Expand Up @@ -563,7 +568,7 @@ export const RichFunctionView = Vue.defineComponent({
Vue.withDirectives(<Viewer
type={options['type'] as string}
options={options}
dataFrame={currentCall.value.inputs[dfProp.name] ?? currentCall.value.outputs[dfProp.name]}
dataFrame={getDf(dfProp.name)}
class='w-full'
onViewerChanged={(v) => setViewerRef(v, dfProp.name, options['type'] as string)}
/>, [[ifOverlapping, isRunning.value, 'Recalculating...']])
Expand Down
15 changes: 0 additions & 15 deletions packages/LibTests/src/package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,27 +154,12 @@ export async function TestViewerComponent() {
viewerComponent.type = undefined;
});

const changeViewerBtn1 = ui.button('Provide histogram', () => {
viewerComponent.viewer = grok.data.demo.demog().plot.histogram();
});

const changeViewerBtn2 = ui.button('Provide barchart', () => {
viewerComponent.viewer = grok.data.demo.demog().plot.bar();
});

const changeViewerBtn3 = ui.button('Provide empty', () => {
viewerComponent.viewer = undefined;
});

view.root.insertAdjacentElement('beforeend', setSrcBtn1);
view.root.insertAdjacentElement('beforeend', setSrcBtn2);
view.root.insertAdjacentElement('beforeend', remSrcBtn);
view.root.insertAdjacentElement('beforeend', setViewerTypeBtn1);
view.root.insertAdjacentElement('beforeend', setViewerTypeBtn2);
view.root.insertAdjacentElement('beforeend', setViewerTypeBtn3);
view.root.insertAdjacentElement('beforeend', changeViewerBtn1);
view.root.insertAdjacentElement('beforeend', changeViewerBtn2);
view.root.insertAdjacentElement('beforeend', changeViewerBtn3);
view.root.insertAdjacentElement('beforeend', viewerComponent);

grok.shell.addView(view);
Expand Down

0 comments on commit 1617599

Please sign in to comment.