From 5b4c60d807222e64dfeeccaab324e6463f2da6aa Mon Sep 17 00:00:00 2001 From: mou <10402885@qq.com> Date: Sun, 23 Jul 2023 22:27:38 +0800 Subject: [PATCH] Add Timeline Component: 1. Supports multiple display modes 2. Supports setting titles, subtitles, labels, icons, icon colors, and all text of color 3.Support dynamic display of unfinished nodes 4. Supports reverse display of nodes 5. Support click event, expose clickedItem and clickedIndex properties --- .../src/icons/icon-timeline-comp.svg | 1 + .../lowcoder-design/src/icons/index.ts | 1 + .../src/comps/comps/timelineComp/antIcon.tsx | 1583 +++++++++++++++++ .../comps/comps/timelineComp/timelineComp.tsx | 201 +++ .../comps/timelineComp/timelineConstants.tsx | 63 + .../comps/timelineComp/timelineUtils.tsx | 22 + .../comps/controls/styleControlConstants.tsx | 22 + client/packages/lowcoder/src/comps/index.tsx | 15 + .../lowcoder/src/comps/uiCompRegistry.ts | 3 +- .../packages/lowcoder/src/i18n/locales/en.ts | 31 + .../packages/lowcoder/src/i18n/locales/zh.ts | 31 + .../src/pages/editor/editorConstants.tsx | 4 +- 12 files changed, 1975 insertions(+), 2 deletions(-) create mode 100644 client/packages/lowcoder-design/src/icons/icon-timeline-comp.svg create mode 100644 client/packages/lowcoder/src/comps/comps/timelineComp/antIcon.tsx create mode 100644 client/packages/lowcoder/src/comps/comps/timelineComp/timelineComp.tsx create mode 100644 client/packages/lowcoder/src/comps/comps/timelineComp/timelineConstants.tsx create mode 100644 client/packages/lowcoder/src/comps/comps/timelineComp/timelineUtils.tsx diff --git a/client/packages/lowcoder-design/src/icons/icon-timeline-comp.svg b/client/packages/lowcoder-design/src/icons/icon-timeline-comp.svg new file mode 100644 index 000000000..329690d6d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/icon-timeline-comp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/index.ts b/client/packages/lowcoder-design/src/icons/index.ts index a84c01278..dd55eb897 100644 --- a/client/packages/lowcoder-design/src/icons/index.ts +++ b/client/packages/lowcoder-design/src/icons/index.ts @@ -287,4 +287,5 @@ export { ReactComponent as FileFolderIcon } from "icons/icon-editor-folder.svg"; export { ReactComponent as ExpandIcon } from "icons/icon-expand.svg"; export { ReactComponent as CompressIcon } from "icons/icon-compress.svg"; export { ReactComponent as TableCellsIcon } from "icons/icon-table-cells.svg"; // Added By Aqib Mirza +export { ReactComponent as TimeLineIcon } from "icons/icon-timeline-comp.svg" export { ReactComponent as LottieIcon } from "icons/icon-lottie.svg"; \ No newline at end of file diff --git a/client/packages/lowcoder/src/comps/comps/timelineComp/antIcon.tsx b/client/packages/lowcoder/src/comps/comps/timelineComp/antIcon.tsx new file mode 100644 index 000000000..7879ff920 --- /dev/null +++ b/client/packages/lowcoder/src/comps/comps/timelineComp/antIcon.tsx @@ -0,0 +1,1583 @@ +import { + AccountBookFilled, + AccountBookOutlined, + AccountBookTwoTone, + AimOutlined, + AlertFilled, + AlertOutlined, + AlertTwoTone, + AlibabaOutlined, + AlignCenterOutlined, + AlignLeftOutlined, + AlignRightOutlined, + AlipayCircleFilled, + AlipayCircleOutlined, + AlipayOutlined, + AlipaySquareFilled, + AliwangwangFilled, + AliwangwangOutlined, + AliyunOutlined, + AmazonCircleFilled, + AmazonOutlined, + AmazonSquareFilled, + AndroidFilled, + AndroidOutlined, + AntCloudOutlined, + AntDesignOutlined, + ApartmentOutlined, + ApiFilled, + ApiOutlined, + ApiTwoTone, + AppleFilled, + AppleOutlined, + AppstoreAddOutlined, + AppstoreFilled, + AppstoreOutlined, + AppstoreTwoTone, + AreaChartOutlined, + ArrowDownOutlined, + ArrowLeftOutlined, + ArrowRightOutlined, + ArrowUpOutlined, + ArrowsAltOutlined, + AudioFilled, + AudioMutedOutlined, + AudioOutlined, + AudioTwoTone, + AuditOutlined, + BackwardFilled, + BackwardOutlined, + BankFilled, + BankOutlined, + BankTwoTone, + BarChartOutlined, + BarcodeOutlined, + BarsOutlined, + BehanceCircleFilled, + BehanceOutlined, + BehanceSquareFilled, + BehanceSquareOutlined, + BellFilled, + BellOutlined, + BellTwoTone, + BgColorsOutlined, + BlockOutlined, + BoldOutlined, + BookFilled, + BookOutlined, + BookTwoTone, + BorderBottomOutlined, + BorderHorizontalOutlined, + BorderInnerOutlined, + BorderLeftOutlined, + BorderOuterOutlined, + BorderOutlined, + BorderRightOutlined, + BorderTopOutlined, + BorderVerticleOutlined, + BorderlessTableOutlined, + BoxPlotFilled, + BoxPlotOutlined, + BoxPlotTwoTone, + BranchesOutlined, + BugFilled, + BugOutlined, + BugTwoTone, + BuildFilled, + BuildOutlined, + BuildTwoTone, + BulbFilled, + BulbOutlined, + BulbTwoTone, + CalculatorFilled, + CalculatorOutlined, + CalculatorTwoTone, + CalendarFilled, + CalendarOutlined, + CalendarTwoTone, + CameraFilled, + CameraOutlined, + CameraTwoTone, + CarFilled, + CarOutlined, + CarTwoTone, + CaretDownFilled, + CaretDownOutlined, + CaretLeftFilled, + CaretLeftOutlined, + CaretRightFilled, + CaretRightOutlined, + CaretUpFilled, + CaretUpOutlined, + CarryOutFilled, + CarryOutOutlined, + CarryOutTwoTone, + CheckCircleFilled, + CheckCircleOutlined, + CheckCircleTwoTone, + CheckOutlined, + CheckSquareFilled, + CheckSquareOutlined, + CheckSquareTwoTone, + ChromeFilled, + ChromeOutlined, + CiCircleFilled, + CiCircleOutlined, + CiCircleTwoTone, + CiOutlined, + CiTwoTone, + ClearOutlined, + ClockCircleFilled, + ClockCircleOutlined, + ClockCircleTwoTone, + CloseCircleFilled, + CloseCircleOutlined, + CloseCircleTwoTone, + CloseOutlined, + CloseSquareFilled, + CloseSquareOutlined, + CloseSquareTwoTone, + CloudDownloadOutlined, + CloudFilled, + CloudOutlined, + CloudServerOutlined, + CloudSyncOutlined, + CloudTwoTone, + CloudUploadOutlined, + ClusterOutlined, + CodeFilled, + CodeOutlined, + CodeSandboxCircleFilled, + CodeSandboxOutlined, + CodeSandboxSquareFilled, + CodeTwoTone, + CodepenCircleFilled, + CodepenCircleOutlined, + CodepenOutlined, + CodepenSquareFilled, + CoffeeOutlined, + ColumnHeightOutlined, + ColumnWidthOutlined, + CommentOutlined, + CompassFilled, + CompassOutlined, + CompassTwoTone, + CompressOutlined, + ConsoleSqlOutlined, + ContactsFilled, + ContactsOutlined, + ContactsTwoTone, + ContainerFilled, + ContainerOutlined, + ContainerTwoTone, + ControlFilled, + ControlOutlined, + ControlTwoTone, + CopyFilled, + CopyOutlined, + CopyTwoTone, + CopyrightCircleFilled, + CopyrightCircleOutlined, + CopyrightCircleTwoTone, + CopyrightOutlined, + CopyrightTwoTone, + CreditCardFilled, + CreditCardOutlined, + CreditCardTwoTone, + CrownFilled, + CrownOutlined, + CrownTwoTone, + CustomerServiceFilled, + CustomerServiceOutlined, + CustomerServiceTwoTone, + DashOutlined, + DashboardFilled, + DashboardOutlined, + DashboardTwoTone, + DatabaseFilled, + DatabaseOutlined, + DatabaseTwoTone, + DeleteColumnOutlined, + DeleteFilled, + DeleteOutlined, + DeleteRowOutlined, + DeleteTwoTone, + DeliveredProcedureOutlined, + DeploymentUnitOutlined, + DesktopOutlined, + DiffFilled, + DiffOutlined, + DiffTwoTone, + DingdingOutlined, + DingtalkCircleFilled, + DingtalkOutlined, + DingtalkSquareFilled, + DisconnectOutlined, + DislikeFilled, + DislikeOutlined, + DislikeTwoTone, + DollarCircleFilled, + DollarCircleOutlined, + DollarCircleTwoTone, + DollarOutlined, + DollarTwoTone, + DotChartOutlined, + DoubleLeftOutlined, + DoubleRightOutlined, + DownCircleFilled, + DownCircleOutlined, + DownCircleTwoTone, + DownOutlined, + DownSquareFilled, + DownSquareOutlined, + DownSquareTwoTone, + DownloadOutlined, + DragOutlined, + DribbbleCircleFilled, + DribbbleOutlined, + DribbbleSquareFilled, + DribbbleSquareOutlined, + DropboxCircleFilled, + DropboxOutlined, + DropboxSquareFilled, + EditFilled, + EditOutlined, + EditTwoTone, + EllipsisOutlined, + EnterOutlined, + EnvironmentFilled, + EnvironmentOutlined, + EnvironmentTwoTone, + EuroCircleFilled, + EuroCircleOutlined, + EuroCircleTwoTone, + EuroOutlined, + EuroTwoTone, + ExceptionOutlined, + ExclamationCircleFilled, + ExclamationCircleOutlined, + ExclamationCircleTwoTone, + ExclamationOutlined, + ExpandAltOutlined, + ExpandOutlined, + ExperimentFilled, + ExperimentOutlined, + ExperimentTwoTone, + ExportOutlined, + EyeFilled, + EyeInvisibleFilled, + EyeInvisibleOutlined, + EyeInvisibleTwoTone, + EyeOutlined, + EyeTwoTone, + FacebookFilled, + FacebookOutlined, + FallOutlined, + FastBackwardFilled, + FastBackwardOutlined, + FastForwardFilled, + FastForwardOutlined, + FieldBinaryOutlined, + FieldNumberOutlined, + FieldStringOutlined, + FieldTimeOutlined, + FileAddFilled, + FileAddOutlined, + FileAddTwoTone, + FileDoneOutlined, + FileExcelFilled, + FileExcelOutlined, + FileExcelTwoTone, + FileExclamationFilled, + FileExclamationOutlined, + FileExclamationTwoTone, + FileFilled, + FileGifOutlined, + FileImageFilled, + FileImageOutlined, + FileImageTwoTone, + FileJpgOutlined, + FileMarkdownFilled, + FileMarkdownOutlined, + FileMarkdownTwoTone, + FileOutlined, + FilePdfFilled, + FilePdfOutlined, + FilePdfTwoTone, + FilePptFilled, + FilePptOutlined, + FilePptTwoTone, + FileProtectOutlined, + FileSearchOutlined, + FileSyncOutlined, + FileTextFilled, + FileTextOutlined, + FileTextTwoTone, + FileTwoTone, + FileUnknownFilled, + FileUnknownOutlined, + FileUnknownTwoTone, + FileWordFilled, + FileWordOutlined, + FileWordTwoTone, + FileZipFilled, + FileZipOutlined, + FileZipTwoTone, + FilterFilled, + FilterOutlined, + FilterTwoTone, + FireFilled, + FireOutlined, + FireTwoTone, + FlagFilled, + FlagOutlined, + FlagTwoTone, + FolderAddFilled, + FolderAddOutlined, + FolderAddTwoTone, + FolderFilled, + FolderOpenFilled, + FolderOpenOutlined, + FolderOpenTwoTone, + FolderOutlined, + FolderTwoTone, + FolderViewOutlined, + FontColorsOutlined, + FontSizeOutlined, + ForkOutlined, + FormOutlined, + FormatPainterFilled, + FormatPainterOutlined, + ForwardFilled, + ForwardOutlined, + FrownFilled, + FrownOutlined, + FrownTwoTone, + FullscreenExitOutlined, + FullscreenOutlined, + FunctionOutlined, + FundFilled, + FundOutlined, + FundProjectionScreenOutlined, + FundTwoTone, + FundViewOutlined, + FunnelPlotFilled, + FunnelPlotOutlined, + FunnelPlotTwoTone, + GatewayOutlined, + GifOutlined, + GiftFilled, + GiftOutlined, + GiftTwoTone, + GithubFilled, + GithubOutlined, + GitlabFilled, + GitlabOutlined, + GlobalOutlined, + GoldFilled, + GoldOutlined, + GoldTwoTone, + GoldenFilled, + GoogleCircleFilled, + GoogleOutlined, + GooglePlusCircleFilled, + GooglePlusOutlined, + GooglePlusSquareFilled, + GoogleSquareFilled, + GroupOutlined, + HddFilled, + HddOutlined, + HddTwoTone, + HeartFilled, + HeartOutlined, + HeartTwoTone, + HeatMapOutlined, + HighlightFilled, + HighlightOutlined, + HighlightTwoTone, + HistoryOutlined, + HolderOutlined, + HomeFilled, + HomeOutlined, + HomeTwoTone, + HourglassFilled, + HourglassOutlined, + HourglassTwoTone, + Html5Filled, + Html5Outlined, + Html5TwoTone, + IdcardFilled, + IdcardOutlined, + IdcardTwoTone, + IeCircleFilled, + IeOutlined, + IeSquareFilled, + ImportOutlined, + InboxOutlined, + InfoCircleFilled, + InfoCircleOutlined, + InfoCircleTwoTone, + InfoOutlined, + InsertRowAboveOutlined, + InsertRowBelowOutlined, + InsertRowLeftOutlined, + InsertRowRightOutlined, + InstagramFilled, + InstagramOutlined, + InsuranceFilled, + InsuranceOutlined, + InsuranceTwoTone, + InteractionFilled, + InteractionOutlined, + InteractionTwoTone, + IssuesCloseOutlined, + ItalicOutlined, + KeyOutlined, + LaptopOutlined, + LayoutFilled, + LayoutOutlined, + LayoutTwoTone, + LeftCircleFilled, + LeftCircleOutlined, + LeftCircleTwoTone, + LeftOutlined, + LeftSquareFilled, + LeftSquareOutlined, + LeftSquareTwoTone, + LikeFilled, + LikeOutlined, + LikeTwoTone, + LineChartOutlined, + LineHeightOutlined, + LineOutlined, + LinkOutlined, + LinkedinFilled, + LinkedinOutlined, + Loading3QuartersOutlined, + LoadingOutlined, + LockFilled, + LockOutlined, + LockTwoTone, + LoginOutlined, + LogoutOutlined, + MacCommandFilled, + MacCommandOutlined, + MailFilled, + MailOutlined, + MailTwoTone, + ManOutlined, + MedicineBoxFilled, + MedicineBoxOutlined, + MedicineBoxTwoTone, + MediumCircleFilled, + MediumOutlined, + MediumSquareFilled, + MediumWorkmarkOutlined, + MehFilled, + MehOutlined, + MehTwoTone, + MenuFoldOutlined, + MenuOutlined, + MenuUnfoldOutlined, + MergeCellsOutlined, + MessageFilled, + MessageOutlined, + MessageTwoTone, + MinusCircleFilled, + MinusCircleOutlined, + MinusCircleTwoTone, + MinusOutlined, + MinusSquareFilled, + MinusSquareOutlined, + MinusSquareTwoTone, + MobileFilled, + MobileOutlined, + MobileTwoTone, + MoneyCollectFilled, + MoneyCollectOutlined, + MoneyCollectTwoTone, + MonitorOutlined, + MoreOutlined, + NodeCollapseOutlined, + NodeExpandOutlined, + NodeIndexOutlined, + NotificationFilled, + NotificationOutlined, + NotificationTwoTone, + NumberOutlined, + OneToOneOutlined, + OrderedListOutlined, + PaperClipOutlined, + PartitionOutlined, + PauseCircleFilled, + PauseCircleOutlined, + PauseCircleTwoTone, + PauseOutlined, + PayCircleFilled, + PayCircleOutlined, + PercentageOutlined, + PhoneFilled, + PhoneOutlined, + PhoneTwoTone, + PicCenterOutlined, + PicLeftOutlined, + PicRightOutlined, + PictureFilled, + PictureOutlined, + PictureTwoTone, + PieChartFilled, + PieChartOutlined, + PieChartTwoTone, + PlayCircleFilled, + PlayCircleOutlined, + PlayCircleTwoTone, + PlaySquareFilled, + PlaySquareOutlined, + PlaySquareTwoTone, + PlusCircleFilled, + PlusCircleOutlined, + PlusCircleTwoTone, + PlusOutlined, + PlusSquareFilled, + PlusSquareOutlined, + PlusSquareTwoTone, + PoundCircleFilled, + PoundCircleOutlined, + PoundCircleTwoTone, + PoundOutlined, + PoweroffOutlined, + PrinterFilled, + PrinterOutlined, + PrinterTwoTone, + ProfileFilled, + ProfileOutlined, + ProfileTwoTone, + ProjectFilled, + ProjectOutlined, + ProjectTwoTone, + PropertySafetyFilled, + PropertySafetyOutlined, + PropertySafetyTwoTone, + PullRequestOutlined, + PushpinFilled, + PushpinOutlined, + PushpinTwoTone, + QqCircleFilled, + QqOutlined, + QqSquareFilled, + QrcodeOutlined, + QuestionCircleFilled, + QuestionCircleOutlined, + QuestionCircleTwoTone, + QuestionOutlined, + RadarChartOutlined, + RadiusBottomleftOutlined, + RadiusBottomrightOutlined, + RadiusSettingOutlined, + RadiusUpleftOutlined, + RadiusUprightOutlined, + ReadFilled, + ReadOutlined, + ReconciliationFilled, + ReconciliationOutlined, + ReconciliationTwoTone, + RedEnvelopeFilled, + RedEnvelopeOutlined, + RedEnvelopeTwoTone, + RedditCircleFilled, + RedditOutlined, + RedditSquareFilled, + RedoOutlined, + ReloadOutlined, + RestFilled, + RestOutlined, + RestTwoTone, + RetweetOutlined, + RightCircleFilled, + RightCircleOutlined, + RightCircleTwoTone, + RightOutlined, + RightSquareFilled, + RightSquareOutlined, + RightSquareTwoTone, + RiseOutlined, + RobotFilled, + RobotOutlined, + RocketFilled, + RocketOutlined, + RocketTwoTone, + RollbackOutlined, + RotateLeftOutlined, + RotateRightOutlined, + SafetyCertificateFilled, + SafetyCertificateOutlined, + SafetyCertificateTwoTone, + SafetyOutlined, + SaveFilled, + SaveOutlined, + SaveTwoTone, + ScanOutlined, + ScheduleFilled, + ScheduleOutlined, + ScheduleTwoTone, + ScissorOutlined, + SearchOutlined, + SecurityScanFilled, + SecurityScanOutlined, + SecurityScanTwoTone, + SelectOutlined, + SendOutlined, + SettingFilled, + SettingOutlined, + SettingTwoTone, + ShakeOutlined, + ShareAltOutlined, + ShopFilled, + ShopOutlined, + ShopTwoTone, + ShoppingCartOutlined, + ShoppingFilled, + ShoppingOutlined, + ShoppingTwoTone, + ShrinkOutlined, + SignalFilled, + SisternodeOutlined, + SketchCircleFilled, + SketchOutlined, + SketchSquareFilled, + SkinFilled, + SkinOutlined, + SkinTwoTone, + SkypeFilled, + SkypeOutlined, + SlackCircleFilled, + SlackOutlined, + SlackSquareFilled, + SlackSquareOutlined, + SlidersFilled, + SlidersOutlined, + SlidersTwoTone, + SmallDashOutlined, + SmileFilled, + SmileOutlined, + SmileTwoTone, + SnippetsFilled, + SnippetsOutlined, + SnippetsTwoTone, + SolutionOutlined, + SortAscendingOutlined, + SortDescendingOutlined, + SoundFilled, + SoundOutlined, + SoundTwoTone, + SplitCellsOutlined, + StarFilled, + StarOutlined, + StarTwoTone, + StepBackwardFilled, + StepBackwardOutlined, + StepForwardFilled, + StepForwardOutlined, + StockOutlined, + StopFilled, + StopOutlined, + StopTwoTone, + StrikethroughOutlined, + SubnodeOutlined, + SwapLeftOutlined, + SwapOutlined, + SwapRightOutlined, + SwitcherFilled, + SwitcherOutlined, + SwitcherTwoTone, + SyncOutlined, + TableOutlined, + TabletFilled, + TabletOutlined, + TabletTwoTone, + TagFilled, + TagOutlined, + TagTwoTone, + TagsFilled, + TagsOutlined, + TagsTwoTone, + TaobaoCircleFilled, + TaobaoCircleOutlined, + TaobaoOutlined, + TaobaoSquareFilled, + TeamOutlined, + ThunderboltFilled, + ThunderboltOutlined, + ThunderboltTwoTone, + ToTopOutlined, + ToolFilled, + ToolOutlined, + ToolTwoTone, + TrademarkCircleFilled, + TrademarkCircleOutlined, + TrademarkCircleTwoTone, + TrademarkOutlined, + TransactionOutlined, + TranslationOutlined, + TrophyFilled, + TrophyOutlined, + TrophyTwoTone, + TwitterCircleFilled, + TwitterOutlined, + TwitterSquareFilled, + UnderlineOutlined, + UndoOutlined, + UngroupOutlined, + UnlockFilled, + UnlockOutlined, + UnlockTwoTone, + UnorderedListOutlined, + UpCircleFilled, + UpCircleOutlined, + UpCircleTwoTone, + UpOutlined, + UpSquareFilled, + UpSquareOutlined, + UpSquareTwoTone, + UploadOutlined, + UsbFilled, + UsbOutlined, + UsbTwoTone, + UserAddOutlined, + UserDeleteOutlined, + UserOutlined, + UserSwitchOutlined, + UsergroupAddOutlined, + UsergroupDeleteOutlined, + VerifiedOutlined, + VerticalAlignBottomOutlined, + VerticalAlignMiddleOutlined, + VerticalAlignTopOutlined, + VerticalLeftOutlined, + VerticalRightOutlined, + VideoCameraAddOutlined, + VideoCameraFilled, + VideoCameraOutlined, + VideoCameraTwoTone, + WalletFilled, + WalletOutlined, + WalletTwoTone, + WarningFilled, + WarningOutlined, + WarningTwoTone, + WechatFilled, + WechatOutlined, + WeiboCircleFilled, + WeiboCircleOutlined, + WeiboOutlined, + WeiboSquareFilled, + WeiboSquareOutlined, + WhatsAppOutlined, + WifiOutlined, + WindowsFilled, + WindowsOutlined, + WomanOutlined, + YahooFilled, + YahooOutlined, + YoutubeFilled, + YoutubeOutlined, + YuqueFilled, + YuqueOutlined, + ZhihuCircleFilled, + ZhihuOutlined, + ZhihuSquareFilled, + ZoomInOutlined, + ZoomOutOutlined, +} from "@ant-design/icons"; + +export const ANTDICON = { + accountbookfilled: , + accountbookoutlined: , + accountbooktwotone: , + aimoutlined: , + alertfilled: , + alertoutlined: , + alerttwotone: , + alibabaoutlined: , + aligncenteroutlined: , + alignleftoutlined: , + alignrightoutlined: , + alipaycirclefilled: , + alipaycircleoutlined: , + alipayoutlined: , + alipaysquarefilled: , + aliwangwangfilled: , + aliwangwangoutlined: , + aliyunoutlined: , + amazoncirclefilled: , + amazonoutlined: , + amazonsquarefilled: , + androidfilled: , + androidoutlined: , + antcloudoutlined: , + antdesignoutlined: , + apartmentoutlined: , + apifilled: , + apioutlined: , + apitwotone: , + applefilled: , + appleoutlined: , + appstoreaddoutlined: , + appstorefilled: , + appstoreoutlined: , + appstoretwotone: , + areachartoutlined: , + arrowdownoutlined: , + arrowleftoutlined: , + arrowrightoutlined: , + arrowupoutlined: , + arrowsaltoutlined: , + audiofilled: , + audiomutedoutlined: , + audiooutlined: , + audiotwotone: , + auditoutlined: , + backwardfilled: , + backwardoutlined: , + bankfilled: , + bankoutlined: , + banktwotone: , + barchartoutlined: , + barcodeoutlined: , + barsoutlined: , + behancecirclefilled: , + behanceoutlined: , + behancesquarefilled: , + behancesquareoutlined: , + bellfilled: , + belloutlined: , + belltwotone: , + bgcolorsoutlined: , + blockoutlined: , + boldoutlined: , + bookfilled: , + bookoutlined: , + booktwotone: , + borderbottomoutlined: , + borderhorizontaloutlined: , + borderinneroutlined: , + borderleftoutlined: , + borderouteroutlined: , + borderoutlined: , + borderrightoutlined: , + bordertopoutlined: , + borderverticleoutlined: , + borderlesstableoutlined: , + boxplotfilled: , + boxplotoutlined: , + boxplottwotone: , + branchesoutlined: , + bugfilled: , + bugoutlined: , + bugtwotone: , + buildfilled: , + buildoutlined: , + buildtwotone: , + bulbfilled: , + bulboutlined: , + bulbtwotone: , + calculatorfilled: , + calculatoroutlined: , + calculatortwotone: , + calendarfilled: , + calendaroutlined: , + calendartwotone: , + camerafilled: , + cameraoutlined: , + cameratwotone: , + carfilled: , + caroutlined: , + cartwotone: , + caretdownfilled: , + caretdownoutlined: , + caretleftfilled: , + caretleftoutlined: , + caretrightfilled: , + caretrightoutlined: , + caretupfilled: , + caretupoutlined: , + carryoutfilled: , + carryoutoutlined: , + carryouttwotone: , + checkcirclefilled: , + checkcircleoutlined: , + checkcircletwotone: , + checkoutlined: , + checksquarefilled: , + checksquareoutlined: , + checksquaretwotone: , + chromefilled: , + chromeoutlined: , + cicirclefilled: , + cicircleoutlined: , + cicircletwotone: , + cioutlined: , + citwotone: , + clearoutlined: , + clockcirclefilled: , + clockcircleoutlined: , + clockcircletwotone: , + closecirclefilled: , + closecircleoutlined: , + closecircletwotone: , + closeoutlined: , + closesquarefilled: , + closesquareoutlined: , + closesquaretwotone: , + clouddownloadoutlined: , + cloudfilled: , + cloudoutlined: , + cloudserveroutlined: , + cloudsyncoutlined: , + cloudtwotone: , + clouduploadoutlined: , + clusteroutlined: , + codefilled: , + codeoutlined: , + codesandboxcirclefilled: , + codesandboxoutlined: , + codesandboxsquarefilled: , + codetwotone: , + codepencirclefilled: , + codepencircleoutlined: , + codepenoutlined: , + codepensquarefilled: , + coffeeoutlined: , + columnheightoutlined: , + columnwidthoutlined: , + commentoutlined: , + compassfilled: , + compassoutlined: , + compasstwotone: , + compressoutlined: , + consolesqloutlined: , + contactsfilled: , + contactsoutlined: , + contactstwotone: , + containerfilled: , + containeroutlined: , + containertwotone: , + controlfilled: , + controloutlined: , + controltwotone: , + copyfilled: , + copyoutlined: , + copytwotone: , + copyrightcirclefilled: , + copyrightcircleoutlined: , + copyrightcircletwotone: , + copyrightoutlined: , + copyrighttwotone: , + creditcardfilled: , + creditcardoutlined: , + creditcardtwotone: , + crownfilled: , + crownoutlined: , + crowntwotone: , + customerservicefilled: , + customerserviceoutlined: , + customerservicetwotone: , + dashoutlined: , + dashboardfilled: , + dashboardoutlined: , + dashboardtwotone: , + databasefilled: , + databaseoutlined: , + databasetwotone: , + deletecolumnoutlined: , + deletefilled: , + deleteoutlined: , + deleterowoutlined: , + deletetwotone: , + deliveredprocedureoutlined: , + deploymentunitoutlined: , + desktopoutlined: , + difffilled: , + diffoutlined: , + difftwotone: , + dingdingoutlined: , + dingtalkcirclefilled: , + dingtalkoutlined: , + dingtalksquarefilled: , + disconnectoutlined: , + dislikefilled: , + dislikeoutlined: , + disliketwotone: , + dollarcirclefilled: , + dollarcircleoutlined: , + dollarcircletwotone: , + dollaroutlined: , + dollartwotone: , + dotchartoutlined: , + doubleleftoutlined: , + doublerightoutlined: , + downcirclefilled: , + downcircleoutlined: , + downcircletwotone: , + downoutlined: , + downsquarefilled: , + downsquareoutlined: , + downsquaretwotone: , + downloadoutlined: , + dragoutlined: , + dribbblecirclefilled: , + dribbbleoutlined: , + dribbblesquarefilled: , + dribbblesquareoutlined: , + dropboxcirclefilled: , + dropboxoutlined: , + dropboxsquarefilled: , + editfilled: , + editoutlined: , + edittwotone: , + ellipsisoutlined: , + enteroutlined: , + environmentfilled: , + environmentoutlined: , + environmenttwotone: , + eurocirclefilled: , + eurocircleoutlined: , + eurocircletwotone: , + eurooutlined: , + eurotwotone: , + exceptionoutlined: , + exclamationcirclefilled: , + exclamationcircleoutlined: , + exclamationcircletwotone: , + exclamationoutlined: , + expandaltoutlined: , + expandoutlined: , + experimentfilled: , + experimentoutlined: , + experimenttwotone: , + exportoutlined: , + eyefilled: , + eyeinvisiblefilled: , + eyeinvisibleoutlined: , + eyeinvisibletwotone: , + eyeoutlined: , + eyetwotone: , + facebookfilled: , + facebookoutlined: , + falloutlined: , + fastbackwardfilled: , + fastbackwardoutlined: , + fastforwardfilled: , + fastforwardoutlined: , + fieldbinaryoutlined: , + fieldnumberoutlined: , + fieldstringoutlined: , + fieldtimeoutlined: , + fileaddfilled: , + fileaddoutlined: , + fileaddtwotone: , + filedoneoutlined: , + fileexcelfilled: , + fileexceloutlined: , + fileexceltwotone: , + fileexclamationfilled: , + fileexclamationoutlined: , + fileexclamationtwotone: , + filefilled: , + filegifoutlined: , + fileimagefilled: , + fileimageoutlined: , + fileimagetwotone: , + filejpgoutlined: , + filemarkdownfilled: , + filemarkdownoutlined: , + filemarkdowntwotone: , + fileoutlined: , + filepdffilled: , + filepdfoutlined: , + filepdftwotone: , + filepptfilled: , + filepptoutlined: , + fileppttwotone: , + fileprotectoutlined: , + filesearchoutlined: , + filesyncoutlined: , + filetextfilled: , + filetextoutlined: , + filetexttwotone: , + filetwotone: , + fileunknownfilled: , + fileunknownoutlined: , + fileunknowntwotone: , + filewordfilled: , + filewordoutlined: , + filewordtwotone: , + filezipfilled: , + filezipoutlined: , + fileziptwotone: , + filterfilled: , + filteroutlined: , + filtertwotone: , + firefilled: , + fireoutlined: , + firetwotone: , + flagfilled: , + flagoutlined: , + flagtwotone: , + folderaddfilled: , + folderaddoutlined: , + folderaddtwotone: , + folderfilled: , + folderopenfilled: , + folderopenoutlined: , + folderopentwotone: , + folderoutlined: , + foldertwotone: , + folderviewoutlined: , + fontcolorsoutlined: , + fontsizeoutlined: , + forkoutlined: , + formoutlined: , + formatpainterfilled: , + formatpainteroutlined: , + forwardfilled: , + forwardoutlined: , + frownfilled: , + frownoutlined: , + frowntwotone: , + fullscreenexitoutlined: , + fullscreenoutlined: , + functionoutlined: , + fundfilled: , + fundoutlined: , + fundprojectionscreenoutlined: , + fundtwotone: , + fundviewoutlined: , + funnelplotfilled: , + funnelplotoutlined: , + funnelplottwotone: , + gatewayoutlined: , + gifoutlined: , + giftfilled: , + giftoutlined: , + gifttwotone: , + githubfilled: , + githuboutlined: , + gitlabfilled: , + gitlaboutlined: , + globaloutlined: , + goldfilled: , + goldoutlined: , + goldtwotone: , + goldenfilled: , + googlecirclefilled: , + googleoutlined: , + googlepluscirclefilled: , + googleplusoutlined: , + googleplussquarefilled: , + googlesquarefilled: , + groupoutlined: , + hddfilled: , + hddoutlined: , + hddtwotone: , + heartfilled: , + heartoutlined: , + hearttwotone: , + heatmapoutlined: , + highlightfilled: , + highlightoutlined: , + highlighttwotone: , + historyoutlined: , + holderoutlined: , + homefilled: , + homeoutlined: , + hometwotone: , + hourglassfilled: , + hourglassoutlined: , + hourglasstwotone: , + html5filled: , + html5outlined: , + html5twotone: , + idcardfilled: , + idcardoutlined: , + idcardtwotone: , + iecirclefilled: , + ieoutlined: , + iesquarefilled: , + importoutlined: , + inboxoutlined: , + infocirclefilled: , + infocircleoutlined: , + infocircletwotone: , + infooutlined: , + insertrowaboveoutlined: , + insertrowbelowoutlined: , + insertrowleftoutlined: , + insertrowrightoutlined: , + instagramfilled: , + instagramoutlined: , + insurancefilled: , + insuranceoutlined: , + insurancetwotone: , + interactionfilled: , + interactionoutlined: , + interactiontwotone: , + issuescloseoutlined: , + italicoutlined: , + keyoutlined: , + laptopoutlined: , + layoutfilled: , + layoutoutlined: , + layouttwotone: , + leftcirclefilled: , + leftcircleoutlined: , + leftcircletwotone: , + leftoutlined: , + leftsquarefilled: , + leftsquareoutlined: , + leftsquaretwotone: , + likefilled: , + likeoutlined: , + liketwotone: , + linechartoutlined: , + lineheightoutlined: , + lineoutlined: , + linkoutlined: , + linkedinfilled: , + linkedinoutlined: , + loading3quartersoutlined: , + loadingoutlined: , + lockfilled: , + lockoutlined: , + locktwotone: , + loginoutlined: , + logoutoutlined: , + maccommandfilled: , + maccommandoutlined: , + mailfilled: , + mailoutlined: , + mailtwotone: , + manoutlined: , + medicineboxfilled: , + medicineboxoutlined: , + medicineboxtwotone: , + mediumcirclefilled: , + mediumoutlined: , + mediumsquarefilled: , + mediumworkmarkoutlined: , + mehfilled: , + mehoutlined: , + mehtwotone: , + menufoldoutlined: , + menuoutlined: , + menuunfoldoutlined: , + mergecellsoutlined: , + messagefilled: , + messageoutlined: , + messagetwotone: , + minuscirclefilled: , + minuscircleoutlined: , + minuscircletwotone: , + minusoutlined: , + minussquarefilled: , + minussquareoutlined: , + minussquaretwotone: , + mobilefilled: , + mobileoutlined: , + mobiletwotone: , + moneycollectfilled: , + moneycollectoutlined: , + moneycollecttwotone: , + monitoroutlined: , + moreoutlined: , + nodecollapseoutlined: , + nodeexpandoutlined: , + nodeindexoutlined: , + notificationfilled: , + notificationoutlined: , + notificationtwotone: , + numberoutlined: , + onetooneoutlined: , + orderedlistoutlined: , + paperclipoutlined: , + partitionoutlined: , + pausecirclefilled: , + pausecircleoutlined: , + pausecircletwotone: , + pauseoutlined: , + paycirclefilled: , + paycircleoutlined: , + percentageoutlined: , + phonefilled: , + phoneoutlined: , + phonetwotone: , + piccenteroutlined: , + picleftoutlined: , + picrightoutlined: , + picturefilled: , + pictureoutlined: , + picturetwotone: , + piechartfilled: , + piechartoutlined: , + piecharttwotone: , + playcirclefilled: , + playcircleoutlined: , + playcircletwotone: , + playsquarefilled: , + playsquareoutlined: , + playsquaretwotone: , + pluscirclefilled: , + pluscircleoutlined: , + pluscircletwotone: , + plusoutlined: , + plussquarefilled: , + plussquareoutlined: , + plussquaretwotone: , + poundcirclefilled: , + poundcircleoutlined: , + poundcircletwotone: , + poundoutlined: , + poweroffoutlined: , + printerfilled: , + printeroutlined: , + printertwotone: , + profilefilled: , + profileoutlined: , + profiletwotone: , + projectfilled: , + projectoutlined: , + projecttwotone: , + propertysafetyfilled: , + propertysafetyoutlined: , + propertysafetytwotone: , + pullrequestoutlined: , + pushpinfilled: , + pushpinoutlined: , + pushpintwotone: , + qqcirclefilled: , + qqoutlined: , + qqsquarefilled: , + qrcodeoutlined: , + questioncirclefilled: , + questioncircleoutlined: , + questioncircletwotone: , + questionoutlined: , + radarchartoutlined: , + radiusbottomleftoutlined: , + radiusbottomrightoutlined: , + radiussettingoutlined: , + radiusupleftoutlined: , + radiusuprightoutlined: , + readfilled: , + readoutlined: , + reconciliationfilled: , + reconciliationoutlined: , + reconciliationtwotone: , + redenvelopefilled: , + redenvelopeoutlined: , + redenvelopetwotone: , + redditcirclefilled: , + redditoutlined: , + redditsquarefilled: , + redooutlined: , + reloadoutlined: , + restfilled: , + restoutlined: , + resttwotone: , + retweetoutlined: , + rightcirclefilled: , + rightcircleoutlined: , + rightcircletwotone: , + rightoutlined: , + rightsquarefilled: , + rightsquareoutlined: , + rightsquaretwotone: , + riseoutlined: , + robotfilled: , + robotoutlined: , + rocketfilled: , + rocketoutlined: , + rockettwotone: , + rollbackoutlined: , + rotateleftoutlined: , + rotaterightoutlined: , + safetycertificatefilled: , + safetycertificateoutlined: , + safetycertificatetwotone: , + safetyoutlined: , + savefilled: , + saveoutlined: , + savetwotone: , + scanoutlined: , + schedulefilled: , + scheduleoutlined: , + scheduletwotone: , + scissoroutlined: , + searchoutlined: , + securityscanfilled: , + securityscanoutlined: , + securityscantwotone: , + selectoutlined: , + sendoutlined: , + settingfilled: , + settingoutlined: , + settingtwotone: , + shakeoutlined: , + sharealtoutlined: , + shopfilled: , + shopoutlined: , + shoptwotone: , + shoppingcartoutlined: , + shoppingfilled: , + shoppingoutlined: , + shoppingtwotone: , + shrinkoutlined: , + signalfilled: , + sisternodeoutlined: , + sketchcirclefilled: , + sketchoutlined: , + sketchsquarefilled: , + skinfilled: , + skinoutlined: , + skintwotone: , + skypefilled: , + skypeoutlined: , + slackcirclefilled: , + slackoutlined: , + slacksquarefilled: , + slacksquareoutlined: , + slidersfilled: , + slidersoutlined: , + sliderstwotone: , + smalldashoutlined: , + smilefilled: , + smileoutlined: , + smiletwotone: , + snippetsfilled: , + snippetsoutlined: , + snippetstwotone: , + solutionoutlined: , + sortascendingoutlined: , + sortdescendingoutlined: , + soundfilled: , + soundoutlined: , + soundtwotone: , + splitcellsoutlined: , + starfilled: , + staroutlined: , + startwotone: , + stepbackwardfilled: , + stepbackwardoutlined: , + stepforwardfilled: , + stepforwardoutlined: , + stockoutlined: , + stopfilled: , + stopoutlined: , + stoptwotone: , + strikethroughoutlined: , + subnodeoutlined: , + swapleftoutlined: , + swapoutlined: , + swaprightoutlined: , + switcherfilled: , + switcheroutlined: , + switchertwotone: , + syncoutlined: , + tableoutlined: , + tabletfilled: , + tabletoutlined: , + tablettwotone: , + tagfilled: , + tagoutlined: , + tagtwotone: , + tagsfilled: , + tagsoutlined: , + tagstwotone: , + taobaocirclefilled: , + taobaocircleoutlined: , + taobaooutlined: , + taobaosquarefilled: , + teamoutlined: , + thunderboltfilled: , + thunderboltoutlined: , + thunderbolttwotone: , + totopoutlined: , + toolfilled: , + tooloutlined: , + tooltwotone: , + trademarkcirclefilled: , + trademarkcircleoutlined: , + trademarkcircletwotone: , + trademarkoutlined: , + transactionoutlined: , + translationoutlined: , + trophyfilled: , + trophyoutlined: , + trophytwotone: , + twittercirclefilled: , + twitteroutlined: , + twittersquarefilled: , + underlineoutlined: , + undooutlined: , + ungroupoutlined: , + unlockfilled: , + unlockoutlined: , + unlocktwotone: , + unorderedlistoutlined: , + upcirclefilled: , + upcircleoutlined: , + upcircletwotone: , + upoutlined: , + upsquarefilled: , + upsquareoutlined: , + upsquaretwotone: , + uploadoutlined: , + usbfilled: , + usboutlined: , + usbtwotone: , + useraddoutlined: , + userdeleteoutlined: , + useroutlined: , + userswitchoutlined: , + usergroupaddoutlined: , + usergroupdeleteoutlined: , + verifiedoutlined: , + verticalalignbottomoutlined: , + verticalalignmiddleoutlined: , + verticalaligntopoutlined: , + verticalleftoutlined: , + verticalrightoutlined: , + videocameraaddoutlined: , + videocamerafilled: , + videocameraoutlined: , + videocameratwotone: , + walletfilled: , + walletoutlined: , + wallettwotone: , + warningfilled: , + warningoutlined: , + warningtwotone: , + wechatfilled: , + wechatoutlined: , + weibocirclefilled: , + weibocircleoutlined: , + weibooutlined: , + weibosquarefilled: , + weibosquareoutlined: , + whatsappoutlined: , + wifioutlined: , + windowsfilled: , + windowsoutlined: , + womanoutlined: , + yahoofilled: , + yahoooutlined: , + youtubefilled: , + youtubeoutlined: , + yuquefilled: , + yuqueoutlined: , + zhihucirclefilled: , + zhihuoutlined: , + zhihusquarefilled: , + zoominoutlined: , + zoomoutoutlined: , +}; diff --git a/client/packages/lowcoder/src/comps/comps/timelineComp/timelineComp.tsx b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineComp.tsx new file mode 100644 index 000000000..08e1f570b --- /dev/null +++ b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineComp.tsx @@ -0,0 +1,201 @@ +import React, { useEffect, useState } from "react"; +// 渲染组件到编辑器 +import { + changeChildAction, + DispatchType, + CompAction, + RecordConstructorToView, +} from "lowcoder-core"; +// 文字国际化转换api +import { trans } from "i18n"; +// 右侧属性栏总框架 +import { UICompBuilder, withDefault } from "../../generators"; +// 右侧属性子框架 +import { Section, sectionNames } from "lowcoder-design"; +// 指示组件是否隐藏的开关 +import { hiddenPropertyView } from "comps/utils/propertyUtils"; +// 右侧属性开关 + +import { BoolControl } from "comps/controls/boolControl"; +import { stringExposingStateControl } from "comps/controls/codeStateControl"; //文本并暴露值 +import { dropdownControl } from "comps/controls/dropdownControl"; +import { styleControl } from "comps/controls/styleControl"; //样式输入框 +import { alignControl } from "comps/controls/alignControl"; +import { AutoHeightControl } from "comps/controls/autoHeightControl"; +import { jsonValueExposingStateControl } from "comps/controls/codeStateControl"; +import { + ArrayStringControl, + BoolCodeControl, + CodeControlJSONType, + jsonControl, + jsonObjectControl, + jsonValueControl, + NumberControl, + StringControl, +} from "comps/controls/codeControl"; +// 事件控制 +import { + clickEvent, + eventHandlerControl, +} from "comps/controls/eventHandlerControl"; + +// 引入样式 +import { + TimeLineStyle, + heightCalculator, + widthCalculator, + marginCalculator, +} from "comps/controls/styleControlConstants"; +// 初始化暴露值 +import { stateComp, valueComp } from "comps/generators/simpleGenerators"; +// 组件对外暴露属性的api +import { + NameConfig, + NameConfigHidden, + withExposingConfigs, +} from "comps/generators/withExposing"; + +import { timelineDate, timelineNode, TimelineDataTooltip } from "./timelineConstants"; +import { convertTimeLineData } from "./timelineUtils"; +import { Timeline } from "antd"; +import { ANTDICON } from "./antIcon"; + +const EventOptions = [ + clickEvent, +] as const; + +const modeOptions = [ + { label: trans("timeLine.left"), value: "left" }, + { label: trans("timeLine.right"), value: "right" }, + { label: trans("timeLine.alternate"), value: "alternate" }, +] as const; + +const childrenMap = { + value: jsonControl(convertTimeLineData, timelineDate), + mode: dropdownControl(modeOptions, "alternate"), + reverse: BoolControl, + pending: withDefault(StringControl, trans("timeLine.defaultPending")), + onEvent: eventHandlerControl(EventOptions), + style: styleControl(TimeLineStyle), + clickedObject: valueComp({ title: "" }), + clickedIndex: valueComp(0), +}; + +const TimelineComp = ( + props: RecordConstructorToView & { + dispatch: (action: CompAction) => void; + } +) => { + const { value, dispatch, style, mode, reverse, onEvent } = props; + // TODO:parse px string + return ( + + ); +}; + +let TimeLineBasicComp = (function () { + return new UICompBuilder(childrenMap, (props, dispatch) => ( + + )) + .setPropertyViewFn((children) => ( + <> +
+ {children.value.propertyView({ + label: trans("timeLine.value"), + tooltip: TimelineDataTooltip, + placeholder: "[]", + })} + {children.mode.propertyView({ + label: trans("timeLine.mode"), + tooltip: trans("timeLine.modeTooltip"), + })} + {children.reverse.propertyView({ + label: trans("timeLine.reverse"), + })} + {children.pending.propertyView({ + label: trans("timeLine.pending"), + })} +
+
+ {children.onEvent.getPropertyView()} + {hiddenPropertyView(children)} +
+
+ {children.style.getPropertyView()} +
+ + )) + .build(); +})(); + +TimeLineBasicComp = class extends TimeLineBasicComp { + override autoHeight(): boolean { + return false; + } +}; + +export const TimeLineComp = withExposingConfigs(TimeLineBasicComp, [ + new NameConfig("value", trans("timeLine.valueDesc")), + new NameConfig("clickedObject", trans("timeLine.clickedObjectDesc")), + new NameConfig("clickedIndex", trans("timeLine.clickedIndexDesc")), + NameConfigHidden, +]); diff --git a/client/packages/lowcoder/src/comps/comps/timelineComp/timelineConstants.tsx b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineConstants.tsx new file mode 100644 index 000000000..88eb24b80 --- /dev/null +++ b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineConstants.tsx @@ -0,0 +1,63 @@ +import { trans } from "i18n"; +export type timelineNode = { + title: string; + subTitle?: string; + color?: string; + label?: string; + dot?: string; + subTitleColor?: string; + titleColor?: string; + lableColor?: string; +}; + +export const TimelineDataTooltip = ( +
  • + {trans("timeLine.Introduction")}: +
    + 1. title - {trans("timeLine.helpTitle")} +
    + 2. subTitle - {trans("timeLine.helpsubTitle")} +
    + 3. label - {trans("timeLine.helpLabel")} +
    + 4. color - {trans("timeLine.helpColor")} +
    + 5. dot - {trans("timeLine.helpDot")} +
    + 6. titleColor - {trans("timeLine.helpTitleColor")} +
    + 7. subTitleColor - {trans("timeLine.helpSubTitleColor")} +
    + 8. lableColor - {trans("timeLine.helpLableColor")} +
  • +); + +export const timelineDate=[ + { + title: "码匠发布", + subTitle: "Majiang Published in China", + label: "2022-6-10", + }, + { + title: "openblocks开源", + subTitle: "Openblocks open source in GitHub", + label: "2022-11-28", + }, + { + title: "最后一次提交代码", + subTitle: "Openblocks project abandoned", + dot: "ExclamationCircleOutlined", + label: "2023-3-28", + color: 'red', + titleColor: "red", + subTitleColor: "red", + lableColor: "red", + }, + { + title: "Lowcoder继续前行", + subTitle: "Lowcoder, keep moving forward", + dot: "LogoutOutlined", + color: "green", + label: "2023-4-26", + }, +] \ No newline at end of file diff --git a/client/packages/lowcoder/src/comps/comps/timelineComp/timelineUtils.tsx b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineUtils.tsx new file mode 100644 index 000000000..f0657afa2 --- /dev/null +++ b/client/packages/lowcoder/src/comps/comps/timelineComp/timelineUtils.tsx @@ -0,0 +1,22 @@ +import { BoolCodeControl, jsonControl } from "comps/controls/codeControl"; +import { check } from "util/convertUtils"; +import {timelineNode} from './timelineConstants' + +export function convertTimeLineData(data: any) { + return data === "" ? [] : checkDataNodes(data) ?? []; +} + +function checkDataNodes(value: any, key?: string): timelineNode[] | undefined { + return check(value, ["array", "undefined"], key, (node, k) => { + check(node, ["object"], k); + check(node["title"], ["string"], "title"); + check(node["subTitle"], ["string", "undefined"], "subTitle"); + check(node["label"], ["string", "undefined"], "label"); + check(node["color"], ["string", "undefined"], "color"); + check(node["titleColor"], ["string", "undefined"], "titleColor"); + check(node["subTitleColor"], ["string", "undefined"], "subTitleColor"); + check(node["lableColor"], ["string", "undefined"], "lableColor"); + check(node["dot"], ["string", "undefined"], "dot"); + return node; + }); +} diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index c1485f300..5d650faea 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -790,6 +790,28 @@ export const QRCodeStyle = [ PADDING, ] as const; +export const TimeLineStyle = [ + getBackground(), + { + name: "titleColor", + label: trans("timeLine.titleColor"), + color: "#000000", + }, + { + name: "lableColor", + label: trans("timeLine.lableColor"), + color: "#000000", + }, + { + name: "subTitleColor", + label: trans("timeLine.subTitleColor"), + color: "#848484", + }, + MARGIN, + PADDING, + RADIUS +] as const; + export const TreeStyle = [ LABEL, ...getStaticBgBorderRadiusByBg(SURFACE_COLOR), diff --git a/client/packages/lowcoder/src/comps/index.tsx b/client/packages/lowcoder/src/comps/index.tsx index baf2d4b96..e2bdd418c 100644 --- a/client/packages/lowcoder/src/comps/index.tsx +++ b/client/packages/lowcoder/src/comps/index.tsx @@ -91,6 +91,7 @@ import { TreeSelectIcon, UploadCompIcon, VideoCompIcon, + TimeLineIcon, LottieIcon, } from "lowcoder-design"; @@ -117,6 +118,7 @@ import { defaultCollapsibleContainerData } from "./comps/containerComp/collapsib import { RemoteCompInfo } from "types/remoteComp"; import { ScannerComp } from "./comps/buttonComp/scannerComp"; import { SignatureComp } from "./comps/signatureComp"; +import { TimeLineComp } from "./comps/timelineComp/timelineComp"; //Added by Aqib Mirza import { JsonLottieComp } from "./comps/jsonComp/jsonLottieComp"; @@ -840,6 +842,19 @@ const uiCompMap: Registry = { h: 47, }, }, + timeline: { + name: trans("uiComp.timelineCompName"), + enName: "timeline", + description: trans("uiComp.timelineCompDesc"), + categories: ["dataDisplay"], + icon: TimeLineIcon, + keywords: trans("uiComp.timelineCompKeywords"), + comp: TimeLineComp, + layoutInfo: { + w: 13, + h: 55, + }, + }, }; export function loadComps() { diff --git a/client/packages/lowcoder/src/comps/uiCompRegistry.ts b/client/packages/lowcoder/src/comps/uiCompRegistry.ts index a571f9748..bba81c125 100644 --- a/client/packages/lowcoder/src/comps/uiCompRegistry.ts +++ b/client/packages/lowcoder/src/comps/uiCompRegistry.ts @@ -110,7 +110,8 @@ export type UICompType = | "collapsibleContainer" | "calendar" | "signature" - | "jsonLottie"; //Added By Aqib Mirza + | "jsonLottie" //Added By Aqib Mirza + | "timeline" export const uiCompRegistry = {} as Record; diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 29fd3b3c5..160955098 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -842,6 +842,9 @@ export const en = { jsonLottieCompDesc: "Lottie Animation", jsonLottieCompKeywords: "", ///////////////////// + timelineCompName: "Time Line", + timelineCompDesc: "Time Line", + timelineCompKeywords: "", }, comp: { menuViewDocs: "View documentation", @@ -2437,4 +2440,32 @@ export const en = { keepLastFrame: "Keep Last Frame", }, ///////////////////// + timeLine: { + titleColor: "title Color", + subTitleColor: "subTitle Color", + lableColor: "lable Color", + value: "value", + mode: "mode", + left: "Left", + right: "Right", + alternate: "alternate", + modeTooltip: "Set the content to appear left/right or alternately on both sides of the timeline", + reverse: "reverse", + pending: "pending", + defaultPending: "continuous improvement", + clickTitleEvent: "clickTitleEvent", + clickTitleEventDesc: "click Title Event", + Introduction: "Introduction keys", + helpTitle: "title of timeline(Required)", + helpsubTitle: "subtitle of timeline", + helpLabel: "label of timeline,be used to display dates", + helpColor: "Indicates timeline node color", + helpDot: "Rendering Timeline Nodes as Ant Design Icons", + helpTitleColor: "Individually control the color of node title", + helpSubTitleColor: "Individually control the color of node subtitle", + helpLableColor: "Individually control the color of node icon", + valueDesc: "data of timeline", + clickedObjectDesc: "clicked item data", + clickedIndexDesc: "clicked item index", + } }; diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index bf1e1fe28..f92dff893 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -825,6 +825,9 @@ uiComp: { jsonLottieCompName: "Lottie动画", jsonLottieCompDesc: "Lottie动画组件", jsonLottieCompKeywords: "", + timelineCompName: "时间线", + timelineCompDesc: "时间线组件", + timelineCompKeywords: "sjx", }, comp: { menuViewDocs: "查看文档", @@ -2412,6 +2415,34 @@ idSource: { slotControl: { configSlotView: "配置槽视图", }, +timeLine: { + titleColor: "标题颜色", + subTitleColor: "子标题颜色", + lableColor: "标签颜色", + value: "数据", + mode: "模式", + left: "左", + right: "右", + alternate: "轮流", + modeTooltip: "设置内容出现在时间轴左边/右边或左右轮流出现", + reverse: "倒置", + pending: "未完成", + defaultPending: "继续改进", + clickTitleEvent: "点击时", + clickTitleEventDesc: "点击标题时", + Introduction: "键值介绍", + helpTitle: "时间线的标题(必填)", + helpsubTitle: "时间线的副标题", + helpLabel: "时间线的标签,可用于显示日期", + helpColor: "设置时间线圆点的颜色", + helpDot: "时间线的原点渲染成AntD的图标", + helpTitleColor: "设置时间线标题颜色", + helpSubTitleColor: "设置时间线子标题颜色", + helpLableColor: "设置时间线标签颜色", + valueDesc: "时间线的数据", + clickedObjectDesc: "点击的项目数据", + clickedIndexDesc: "点击的项目序号", + }, jsonLottie: { lottieJson: "JSON数据", speed: "播放速度", diff --git a/client/packages/lowcoder/src/pages/editor/editorConstants.tsx b/client/packages/lowcoder/src/pages/editor/editorConstants.tsx index f3fa80ae9..7e23f6d99 100644 --- a/client/packages/lowcoder/src/pages/editor/editorConstants.tsx +++ b/client/packages/lowcoder/src/pages/editor/editorConstants.tsx @@ -35,7 +35,8 @@ import { LeftTime, LeftTree, LeftVideo, - LeftSignature + LeftSignature, + TimeLineIcon, } from "lowcoder-design"; export const CompStateIcon: { @@ -101,4 +102,5 @@ export const CompStateIcon: { calendar: , signature: , jsonLottie: , //Added By Aqib Mirza + timeline: , };