import { LitElementWw } from '@webwriter/lit' import { CSSResult, TemplateResult, html, css } from 'lit' import { customElement } from 'lit/decorators.js' import { consume } from '@lit/context' import { globalStyles } from '@/global_styles' import { editableContext } from '@/contexts/editable_context' import type { Settings } from '@/types/settings' import { settingsContext } from '@/contexts/settings_context' import type { QAndAEntry } from '@/types/q_and_a_entry' import { qAndAContext } from '@/contexts/q_and_a_context' import type { ModelConf } from '@/types/model_conf' import { modelConfContext } from '@/contexts/model_conf_context' import type { Selected } from '@/types/selected' import type { SelectedEle } from '@/types/selected_ele' import { selectedContext } from '@/contexts/selected_context' import { selectedEleContext } from '@/contexts/selected_ele_context' import { panelContext } from '@/contexts/panels_context' import { SettingsPanel } from '@/components/panels/settings_panel' import { StartPanel } from '@/components/panels/start_panel' import { HelpPanel } from './panels/help_panel' import { NetworkPanel } from './panels/network_panel' import { DataSetPanel } from './panels/data_set_panel' import { TrainPanel } from './panels/train_panel' import { PredictPanel } from './panels/predict_panel' import { LayerPanel } from './panels/layer_panel' import { NeuronPanel } from './panels/neuron_panel' import { EdgePanel } from './panels/edge_panel' import { CTab } from './reusables/c-tab' import IconHome from "bootstrap-icons/icons/house-door-fill.svg" import IconOne from "bootstrap-icons/icons/1-circle.svg" import IconTwo from "bootstrap-icons/icons/2-circle.svg" import IconThree from "bootstrap-icons/icons/3-circle.svg" import IconSend from "bootstrap-icons/icons/send.svg" import IconLayers from "bootstrap-icons/icons/layers.svg"; import IconCpu from "bootstrap-icons/icons/cpu.svg"; import IconArrows from "bootstrap-icons/icons/arrows-angle-expand.svg"; import { SlIcon } from '@shoelace-style/shoelace' import { msg } from '@lit/localize' export class MenuArea extends LitElementWw { static scopedElements = { "c-tab": CTab, "settings-panel": SettingsPanel, "start-panel": StartPanel, "help-panel": HelpPanel, "network-panel": NetworkPanel, "data-set-panel": DataSetPanel, "train-panel": TrainPanel, "predict-panel": PredictPanel, "layer-panel": LayerPanel, "neuron-panel": NeuronPanel, "edge-panel": EdgePanel, "sl-icon": SlIcon, } @consume({ context: editableContext, subscribe: true }) accessor editable: boolean @consume({ context: settingsContext, subscribe: true }) accessor settings: Settings @consume({ context: qAndAContext, subscribe: true }) accessor qAndA: QAndAEntry[] @consume({ context: modelConfContext, subscribe: true }) accessor modelConf: ModelConf @consume({ context: selectedContext, subscribe: true }) accessor selected: Selected @consume({ context: selectedEleContext, subscribe: true }) accessor selectedEle: SelectedEle @consume({ context: panelContext, subscribe: true }) accessor panel: string // STYLES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static styles: CSSResult[] = [ globalStyles, css` #rightMenu { width: 100%; height: 100%; } #rightMenu.collapsed { transform: translate(450px, 0); } #rightMenuTabs { margin-top: 10px; margin-left: 10px; position: relative; display: flex; column-gap: 5px; row-gap: 5px; flex-wrap: wrap } #rightMenuPanel { width: 435px; height: calc(100% - 100px); overflow: auto; -ms-overflow-style: none; scrollbar-width: none; padding: 10px; } #rightMenuPanel::-webkit-scrollbar { display: none; } #rightMenuPanel.collapsed { display: none; } `, ] // RENDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - render(): TemplateResult<1> { return html`