github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/static_source/admin/src/views/Dashboard/card_items/index.ts (about)

     1  import {Dummy, DummyEditor} from './dummy';
     2  import {Button, ButtonEditor, ItemPayloadButton} from './button';
     3  import {ItemPayloadText, Text, TextEditor} from './text';
     4  import {State, StateEditor, ItemPayloadState} from './state';
     5  import {Image, ImageEditor, ItemPayloadImage} from './image';
     6  import {Logs, LogsEditor, ItemPayloadLogs} from './logs';
     7  import {Progress, ProgressEditor, ItemPayloadProgress} from './progress';
     8  import {Chart, ChartEditor, ItemPayloadChart} from './chart';
     9  import {ChartCustom, ChartCustomEditor, ItemPayloadChartCustom} from './chart_custom';
    10  import {EntityStorage, EntityStorageEditor, ItemPayloadEntityStorage} from './entity_storage';
    11  import {Map, MapEditor, ItemPayloadMap} from './map';
    12  import {Slider, SliderEditor, ItemPayloadSlider} from './slider';
    13  import {ColorPicker, ColorPickerEditor, ItemPayloadColorPicker} from './color_picker';
    14  import {StreamPlayer, StreamPlayerEditor, ItemPayloadVideo} from './video';
    15  import {Joystick, JoystickEditor, ItemPayloadJoystick} from './joystick';
    16  import {Icon, IconEditor, ItemPayloadIcon} from './icon';
    17  import {Grid, GridEditor, ItemPayloadGrid} from './grid';
    18  import {Three, ThreeEditor, ItemPayloadThree} from './three';
    19  import {Modal, ModalEditor, ItemPayloadModal} from './modal';
    20  import {ItemPayloadJsonViewer, JsonViewer, JsonViewerEditor} from './json_viewer';
    21  import {useI18n} from "@/hooks/web/useI18n";
    22  
    23  export const CardItemName = (name: string): any => {
    24    switch (name) {
    25      case 'button':
    26        return Button;
    27      case 'text':
    28        return Text;
    29      case 'state':
    30        return State;
    31      case 'image':
    32        return Image;
    33      case 'logs':
    34        return Logs;
    35      case 'progress':
    36        return Progress;
    37      case 'chart':
    38        return Chart;
    39      case 'chart_custom':
    40      case 'chartCustom':
    41        return ChartCustom;
    42      case 'entityStorage':
    43        return EntityStorage;
    44      case 'map':
    45        return Map;
    46      case 'slider':
    47        return Slider;
    48      case 'colorPicker':
    49        return ColorPicker;
    50      case 'streamPlayer':
    51        return StreamPlayer;
    52      case 'joystick':
    53        return Joystick;
    54      case 'icon':
    55        return Icon;
    56      case 'grid':
    57        return Grid;
    58      case 'three':
    59        return Three;
    60      case 'jsonViewer':
    61        return JsonViewer;
    62      case 'modal':
    63        return Modal;
    64      default:
    65        // console.error(`unknown card name "${name}"`);
    66        return Dummy;
    67    }
    68  };
    69  
    70  export const CardEditorName = (name: string): any => {
    71    switch (name) {
    72      case 'button':
    73        return ButtonEditor;
    74      case 'text':
    75        return TextEditor;
    76      case 'state':
    77        return StateEditor;
    78      case 'image':
    79        return ImageEditor;
    80      case 'logs':
    81        return LogsEditor;
    82      case 'progress':
    83        return ProgressEditor;
    84      case 'chart':
    85        return ChartEditor;
    86      case 'chart_custom':
    87      case 'chartCustom':
    88        return ChartCustomEditor;
    89      case 'entityStorage':
    90        return EntityStorageEditor;
    91      case 'map':
    92        return MapEditor;
    93      case 'slider':
    94        return SliderEditor;
    95      case 'colorPicker':
    96        return ColorPickerEditor;
    97      case 'streamPlayer':
    98        return StreamPlayerEditor;
    99      case 'joystick':
   100        return JoystickEditor;
   101      case 'icon':
   102        return IconEditor;
   103      case 'grid':
   104        return GridEditor;
   105      case 'three':
   106        return ThreeEditor;
   107      case 'jsonViewer':
   108        return JsonViewerEditor;
   109      case 'modal':
   110        return ModalEditor;
   111      default:
   112        // console.error(`unknown card name "${name}"`);
   113        return DummyEditor;
   114    }
   115  };
   116  
   117  const {t} = useI18n()
   118  
   119  export interface ItemsType {
   120    label: string;
   121    value: string;
   122    children?: ItemsType[];
   123  }
   124  
   125  export const CardItemList: ItemsType[] = [
   126    {
   127      value: 'general',
   128      label: 'General',
   129      children: [
   130        {label: t('dashboard.editor.TEXT'), value: 'text'},
   131        {label: t('dashboard.editor.IMAGE'), value: 'image'},
   132        {label: t('dashboard.editor.PROGRESS'), value: 'progress'},
   133        {label: t('dashboard.editor.ICON'), value: 'icon'},
   134        {label: t('dashboard.editor.STATE'), value: 'state'},
   135        {label: t('dashboard.editor.GRID'), value: 'grid'},
   136        // {label: t('dashboard.editor.MODAL'), value: 'modal'},
   137      ],
   138    },
   139    {
   140      value: 'dashboard',
   141      label: 'Dashboard',
   142      children: [
   143        {label: t('dashboard.editor.LOGS'), value: 'logs'},
   144        {label: t('dashboard.editor.ENTITY_STORAGE'), value: 'entityStorage'},
   145        {label: t('dashboard.editor.JSON_VIEWER'), value: 'jsonViewer'},
   146      ],
   147    },
   148    {
   149      value: 'video',
   150      label: 'Video',
   151      children: [
   152        {label: t('dashboard.editor.STREAM_PLAYER'), value: 'streamPlayer'},
   153      ],
   154    },
   155    {
   156      value: 'control',
   157      label: 'Control',
   158      children: [
   159        {label: t('dashboard.editor.BUTTON'), value: 'button'},
   160        {label: t('dashboard.editor.JOYSTICK'), value: 'joystick'},
   161        {label: t('dashboard.editor.SLIDER'), value: 'slider'},
   162        {label: t('dashboard.editor.COLOR_PICKER'), value: 'colorPicker'},
   163      ],
   164    },
   165    {
   166      value: 'charts',
   167      label: 'Charts',
   168      children: [
   169        {label: t('dashboard.editor.CHART'), value: 'chart'},
   170      ],
   171    },
   172    {
   173      value: 'geo',
   174      label: 'Geo',
   175      children: [
   176        {label: t('dashboard.editor.MAP'), value: 'map'},
   177      ],
   178    },
   179    {
   180      value: 'experimental',
   181      label: 'Experimental',
   182      children: [
   183        // {label: t('dashboard.editor.THREE'), value: 'three'},
   184        {label: t('dashboard.editor.CHART_CUSTOM'), value: 'chartCustom'},
   185      ],
   186    }
   187  ];
   188  
   189  export interface ItemPayload {
   190    text?: ItemPayloadText;
   191    image?: ItemPayloadImage;
   192    icon?: ItemPayloadIcon;
   193    button?: ItemPayloadButton;
   194    state?: ItemPayloadState;
   195    logs?: ItemPayloadLogs;
   196    progress?: ItemPayloadProgress;
   197    chart?: ItemPayloadChart;
   198    chartCustom?: ItemPayloadChartCustom;
   199    map?: ItemPayloadMap;
   200    slider?: ItemPayloadSlider;
   201    colorPicker?: ItemPayloadColorPicker;
   202    joystick?: ItemPayloadJoystick;
   203    video?: ItemPayloadVideo;
   204    entityStorage?: ItemPayloadEntityStorage;
   205    grid?: ItemPayloadGrid;
   206    three?: ItemPayloadThree;
   207    jsonViewer?: ItemPayloadJsonViewer;
   208    modal?: ItemPayloadModal;
   209  }