open_lark/card/components/
mod.rs1use serde::{Deserialize, Serialize};
2
3use crate::card::components::{
4 containers::{
5 collapsible_panel::CollapsiblePanel, column_set::ColumnSetContainer, form::FormContainer,
6 interactive::InteractiveContainer,
7 },
8 content_components::{
9 chart::FeishuCardChart, divider::FeishuCardDivider, image::FeishuCardImage,
10 multi_image_layout::FeishuCardMultiImageLayout, note::FeishuCardNote,
11 plain_text::FeishuCardText, rich_text::FeishuCardMarkdown, user_list::FeishuCardUserList,
12 user_profile::FeishuCardUserProfile,
13 },
14 interactive_components::{
15 button::FeishuCardButton, checker::Checker, date_picker::DatePicker,
16 date_time_picker::DateTimePicker, input::FeishuCardInput,
17 multi_select_person::MultiSelectPerson, multi_select_static::MultiSelectStatic,
18 picker_time::PickerTime, select_person::SelectPerson, select_static::SelectStatic,
19 },
20};
21
22pub mod containers;
23pub mod content_components;
24pub mod interactive_components;
25
26#[derive(Debug, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum CardElement {
30 ColumnSet(ColumnSetContainer),
31 FormSet(FormContainer),
32 InteractiveSet(InteractiveContainer),
33 CollapsePanelContainer(CollapsiblePanel),
34 Text(FeishuCardText),
35 Markdown(FeishuCardMarkdown),
36 Image(FeishuCardImage),
37 InputForm(FeishuCardInput),
38 MultiImage(FeishuCardMultiImageLayout),
39 Divider(FeishuCardDivider),
40 UserProfile(FeishuCardUserProfile),
41 UserList(FeishuCardUserList),
42 Chart(FeishuCardChart),
43 Note(FeishuCardNote),
44 Button(FeishuCardButton),
45 SelectStatic(SelectStatic),
46 MultiSelect(MultiSelectStatic),
47 SelectPerson(SelectPerson),
48 MultiSelectPerson(MultiSelectPerson),
49 DatePicker(DatePicker),
50 TimeSelector(PickerTime),
51 DateTimePicker(DateTimePicker),
52 Checker(Checker),
53}