/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { observer } from 'mobx-react-lite'; import { LegendDataCubeSourceBuilderType } from '../../stores/builder/source/LegendDataCubeSourceBuilderState.js'; import { useDropdownMenu } from '@finos/legend-art'; import { FormBadge_WIP, FormButton, FormDropdownMenu, FormDropdownMenuItem, FormDropdownMenuTrigger, } from '@finos/legend-data-cube'; import { LegendQueryDataCubeSourceBuilderState } from '../../stores/builder/source/LegendQueryDataCubeSourceBuilderState.js'; import { LegendQueryDataCubeSourceBuilder } from './source/LegendQueryDataCubeSourceBuilder.js'; import { FreeformTDSExpressionDataCubeSourceBuilder } from './source/FreeformTDSExpressionDataCubeSourceBuilder.js'; import { FreeformTDSExpressionDataCubeSourceBuilderState } from '../../stores/builder/source/FreeformTDSExpressionDataCubeSourceBuilderState.js'; import { useLegendDataCubeBuilderStore } from './LegendDataCubeBuilderStoreProvider.js'; import { LocalFileDataCubeSourceBuilderState } from '../../stores/builder/source/LocalFileDataCubeSourceBuilderState.js'; import { LocalFileDataCubeSourceBuilder } from './source/LocalFileDataCubeSourceBuilder.js'; import { UserDefinedFunctionDataCubeSourceBuilderState } from '../../stores/builder/source/UserDefinedFunctionDataCubeSourceBuilderState.js'; import { UserDefinedFunctionDataCubeSourceBuilder } from './source/UserDefinedFunctionDataCubeSourceBuilder.js'; import { LakehouseProducerDataCubeSourceBuilderState } from '../../stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.js'; import { LakehouseProducerDataCubeSourceBuilder } from './source/LakehouseProducerDataCubeSourceBuilder.js'; import { LakehouseConsumerDataCubeSourceBuilderState } from '../../stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js'; import { LakehouseConsumerDataCubeSourceBuilder } from './source/LakehouseConsumerDataCubeSourceBuilder.js'; export const LegendDataCubeCreator = observer(() => { const store = useLegendDataCubeBuilderStore(); const state = store.creator; const sourceBuilder = state.sourceBuilder; const selectedSourceType = sourceBuilder.label; const WIPSourceTypes = [LegendDataCubeSourceBuilderType.LOCAL_FILE]; const [ openSourceTypeDropdown, closeSourceTypeDropdown, sourceTypeDropdownProps, sourceTypeDropdownPropsOpen, ] = useDropdownMenu(); return ( <>