UNPKG

@finos/legend-data-cube

Version:
37 lines 3.52 kB
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime"; /** * 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 { cn, DataCubeIcon } from '@finos/legend-art'; import { observer } from 'mobx-react-lite'; import { DataCubeEditorColumnsSelector } from './DataCubeEditorColumnsSelector.js'; import { useEffect } from 'react'; import { FormCheckbox } from '../../core/DataCubeFormUtils.js'; import { _findCol } from '../../../stores/core/model/DataCubeColumn.js'; const ColumnLabel = observer((props) => { const { column, editor } = props; const showHiddenIndicator = editor.columnProperties.getColumnConfiguration(column.name).hideFromView; return (_jsxs(_Fragment, { children: [_jsx("div", { className: cn('items-center overflow-hidden overflow-ellipsis whitespace-nowrap pl-2', { 'text-neutral-400': showHiddenIndicator, }), children: column.name }), Boolean(_findCol(editor.leafExtendColumns, column.name)) && (_jsx("div", { className: "ml-1.5 mr-0.5 flex h-3.5 flex-shrink-0 items-center rounded-sm border border-neutral-300 bg-neutral-100 px-1 text-xs font-medium uppercase text-neutral-600", children: `Extended (Leaf Level)` })), Boolean(_findCol(editor.groupExtendColumns, column.name)) && (_jsx("div", { className: "ml-1.5 mr-0.5 flex h-3.5 flex-shrink-0 items-center rounded-sm border border-neutral-300 bg-neutral-100 px-1 text-xs font-medium uppercase text-neutral-600", children: `Extended (Group Level)` }))] })); }); export const DataCubeEditorColumnsPanel = observer((props) => { const { view } = props; const editor = view.editor; const panel = editor.columns; useEffect(() => () => panel.propagateChanges(), [panel]); return (_jsxs("div", { className: "h-full w-full select-none p-2", children: [_jsxs("div", { className: "flex h-6 justify-between", children: [_jsxs("div", { className: "flex h-full", children: [_jsx("div", { className: "flex h-6 items-center text-xl font-medium", children: _jsx(DataCubeIcon.TableColumns, {}) }), _jsx("div", { className: "ml-1 flex h-6 items-center text-xl font-medium", children: "Columns" })] }), _jsx("div", { className: "flex h-full items-center pr-2", children: _jsx(FormCheckbox, { label: "Show hidden columns?", checked: panel.selector.showHiddenColumns, onChange: () => panel.selector.setShowHiddenColumns(!panel.selector.showHiddenColumns) }) })] }), _jsx("div", { className: "flex h-[calc(100%_-_24px)] w-full", children: _jsx(DataCubeEditorColumnsSelector, { selector: panel.selector, noColumnsSelectedRenderer: () => (_jsxs("div", { className: "flex items-center border-[1.5px] border-neutral-200 p-2 font-semibold text-neutral-400", children: [_jsx("div", { children: _jsx(DataCubeIcon.Warning, { className: "mr-1 text-lg" }) }), "No columns selected"] })), columnLabelRenderer: (p) => _jsx(ColumnLabel, { ...p, editor: editor }) }) })] })); }); //# sourceMappingURL=DataCubeEditorColumnsPanel.js.map