Skip to content

Commit

Permalink
initial setup
Browse files Browse the repository at this point in the history
Signed-off-by: ananzh <ananzh@amazon.com>
  • Loading branch information
ananzh committed Nov 16, 2023
1 parent 7def75c commit f94473e
Show file tree
Hide file tree
Showing 38 changed files with 1,614 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/plugins/vis_builder_new/common/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

export const PLUGIN_ID = 'vis-builder-new';
export const PLUGIN_NAME = 'VisBuilderNew';
export const VISUALIZE_ID = 'visualize';
export const EDIT_PATH = '/edit';
export const VIS_BUILDER_CHART_TYPE = 'VisBuilderNew';

export {
VisBuilderSavedObjectAttributes,
VISBUILDER_SAVED_OBJECT,
} from './vis_builder_saved_object_attributes';
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import { SavedObjectAttributes } from '../../../core/types';

export const VISBUILDER_SAVED_OBJECT = 'visualization-visbuilder-new';

export interface VisBuilderSavedObjectAttributes extends SavedObjectAttributes {
title: string;
description?: string;
visualizationState?: string;
updated_at?: string;
styleState?: string;
uiState?: string;
version: number;
searchSourceFields?: {
index?: string;
};
}
12 changes: 12 additions & 0 deletions src/plugins/vis_builder_new/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import { schema, TypeOf } from '@osd/config-schema';

export const configSchema = schema.object({
enabled: schema.boolean({ defaultValue: true }),
});

export type ConfigSchema = TypeOf<typeof configSchema>;
22 changes: 22 additions & 0 deletions src/plugins/vis_builder_new/opensearch_dashboards.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"id": "visBuilder-new",
"version": "1.0.0",
"opensearchDashboardsVersion": "opensearchDashboards",
"server": true,
"ui": true,
"requiredPlugins": [
"dashboard",
"data",
"dataExplorer",
"embeddable",
"expressions",
"navigation",
"savedObjects",
"visualizations",
"uiActions"
],
"requiredBundles": [
"opensearchDashboardsReact",
"opensearchDashboardsUtils"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import { TypedUseSelectorHook } from 'react-redux';
import {
RootState,
setIndexPattern as updateIndexPattern,
useTypedDispatch,
useTypedSelector,
} from '../../../../../data_explorer/public';
import { VBState } from './vb_slice';

export * from './vb_slice';

export interface VBRootState extends RootState {
vb: VBState;
}

export const useSelector: TypedUseSelectorHook<VBRootState> = useTypedSelector;
export const useDispatch = useTypedDispatch;
export { updateIndexPattern };
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { DefaultViewState } from '../../../../../data_explorer/public';
import { VisBuilderServices } from '../../../types';

export interface VBState {}

Check failure on line 9 in src/plugins/vis_builder_new/public/application/utils/state_management/vb_slice.ts

View workflow job for this annotation

GitHub Actions / Build and Verify on Linux (ciGroup1)

An empty interface is equivalent to `{}`

const initialState: VBState = {};

export const getPreloadedState = async ({
uiSettings: config,
}: VisBuilderServices): Promise<DefaultViewState<VBState>> => {
const preloadedState: DefaultViewState<VBState> = {
state: {
...initialState,
},
};

return preloadedState;
};

export const vbSlice = createSlice({
name: 'vis-builder-new',
initialState,
reducers: {
setState(state, action: PayloadAction<VBState>) {
return action.payload;
},
updateState(state, action: PayloadAction<Partial<VBState>>) {
return {
...state,
...action.payload,
};
},
// setSavedSearchId(state, action: PayloadAction<string>) {
// return {
// ...state,
// savedSearch: action.payload,
// isDirty: false,
// };
// },
},
});

// Exposing the state functions as generics
export const { setState, updateState } = vbSlice.actions;
export const { reducer } = vbSlice;
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import React from 'react';
import { EuiLoadingSpinner } from '@elastic/eui';
import { ViewProps } from '../../../../../data_explorer/public';

// eslint-disable-next-line import/no-default-export
export default function VisBuilderCanvas(props: ViewProps) {
return <EuiLoadingSpinner size="l" />;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import React from 'react';
import { DataExplorerServices, ViewProps } from '../../../../../data_explorer/public';
import {
OpenSearchDashboardsContextProvider,
useOpenSearchDashboards,
} from '../../../../../opensearch_dashboards_react/public';
import { VisBuilderServices, VisBuilderViewServices } from '../../../types';
import { useSearch, SearchContextValue } from '../utils/use_search';

const VBContext = React.createContext<SearchContextValue>({} as SearchContextValue);

// eslint-disable-next-line import/no-default-export
export default function VisBuilderContext({ children }: React.PropsWithChildren<ViewProps>) {
const { services: deServices } = useOpenSearchDashboards<DataExplorerServices>();
const { services: vbServices } = useOpenSearchDashboards<VisBuilderServices>();
const services: VisBuilderViewServices = { ...deServices, ...vbServices };
const searchParams = useSearch(services);

return (
<OpenSearchDashboardsContextProvider services={services}>
<VBContext.Provider value={searchParams}>{children}</VBContext.Provider>
</OpenSearchDashboardsContextProvider>
);
}

export const useVBContext = () => React.useContext(VBContext);
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import React from 'react';
import { EuiLoadingSpinner } from '@elastic/eui';
import { ViewProps } from '../../../../../data_explorer/public';

// eslint-disable-next-line import/no-default-export
export default function VisBuilderPanel(props: ViewProps) {
return (
<div
style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}
>
<EuiLoadingSpinner size="l" />
</div>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

import { VisBuilderViewServices } from '../../../types';

export const useSearch = (services: VisBuilderViewServices) => {
// const indexPattern = useIndexPattern(services);
return {};
};

export type SearchContextValue = ReturnType<typeof useSearch>;
Loading

0 comments on commit f94473e

Please sign in to comment.