@gobolt/genesis 0.4.13 → 0.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -85661,7 +85661,7 @@ const InfiniteScrollTable = ({
85661
85661
  [isFetchingNextPage, hasNextPage2, fetchNextPage, scrollableNode]
85662
85662
  );
85663
85663
  const dataSource = data?.pages.flatMap((page) => page.docs) ?? [];
85664
- const totalDocs = data?.pages?.[0]?.totalDocs ?? 0;
85664
+ data?.pages?.[0]?.totalDocs ?? 0;
85665
85665
  if (status === "pending") {
85666
85666
  return /* @__PURE__ */ jsxRuntime.jsx(
85667
85667
  "div",
@@ -85694,34 +85694,6 @@ const InfiniteScrollTable = ({
85694
85694
  },
85695
85695
  ref: tableContainerRef,
85696
85696
  children: [
85697
- /* @__PURE__ */ jsxRuntime.jsxs(
85698
- Typography$1.Title,
85699
- {
85700
- level: 2,
85701
- style: { marginBottom: "24px", textAlign: "center" },
85702
- children: [
85703
- title,
85704
- " (Table ",
85705
- instanceId,
85706
- ")"
85707
- ]
85708
- }
85709
- ),
85710
- /* @__PURE__ */ jsxRuntime.jsx(
85711
- Alert,
85712
- {
85713
- message: /* @__PURE__ */ jsxRuntime.jsxs(Typography$1.Text, { children: [
85714
- "Showing ",
85715
- /* @__PURE__ */ jsxRuntime.jsx("strong", { children: dataSource.length }),
85716
- " of",
85717
- " ",
85718
- /* @__PURE__ */ jsxRuntime.jsx("strong", { children: totalDocs }),
85719
- " total launches"
85720
- ] }),
85721
- type: "info",
85722
- style: { marginBottom: "16px", textAlign: "center" }
85723
- }
85724
- ),
85725
85697
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { position: "relative" }, children: [
85726
85698
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
85727
85699
  .infinite-scroll-table .ant-pagination {
@@ -85777,7 +85749,7 @@ const InfiniteScrollTable = ({
85777
85749
  padding: "20px",
85778
85750
  borderTop: "1px solid #f0f0f0"
85779
85751
  },
85780
- children: /* @__PURE__ */ jsxRuntime.jsx(Typography$1.Text, { type: "secondary", children: "You've reached the end of the launch history." })
85752
+ children: /* @__PURE__ */ jsxRuntime.jsx(Typography$1.Text, { type: "secondary", children: "No more rows to load." })
85781
85753
  }
85782
85754
  )
85783
85755
  ]
@@ -86505,10 +86477,16 @@ const TableWithControls = ({
86505
86477
  tableData,
86506
86478
  tableControlsData: tableControlsData2,
86507
86479
  onChange,
86508
- onRowClick
86480
+ onRowClick,
86481
+ tableType = "table",
86482
+ isInfiniteScroll,
86483
+ // Deprecated: use tableType instead
86484
+ infiniteScrollConfig,
86485
+ paginationStyle
86509
86486
  }) => {
86510
86487
  const { primaryTableRowData, secondaryTableRowData } = tableControlsData2;
86511
86488
  const { dataSource, columns, rowSelection, hasSettings, hasFilter } = tableData;
86489
+ const actualTableType = isInfiniteScroll ? "infiniteScroll" : tableType;
86512
86490
  const onTableControlsChange = (event) => {
86513
86491
  onChange(event);
86514
86492
  };
@@ -86518,6 +86496,60 @@ const TableWithControls = ({
86518
86496
  payload: { value: "tableChange", pagination, filters, sorter }
86519
86497
  });
86520
86498
  };
86499
+ const renderTable = () => {
86500
+ switch (actualTableType) {
86501
+ case "infiniteScroll": {
86502
+ if (!infiniteScrollConfig) {
86503
+ console.warn("InfiniteScrollTable requires infiniteScrollConfig");
86504
+ return null;
86505
+ }
86506
+ const resizableColumns = columns.map((col) => ({
86507
+ title: col.title,
86508
+ key: col.key,
86509
+ dataIndex: Array.isArray(col.dataIndex) ? col.dataIndex.join(".") : typeof col.dataIndex === "string" ? col.dataIndex : col.key,
86510
+ width: col.width || 150,
86511
+ render: col.render ? (value2, record, index2) => col.render(value2, record, index2 ?? 0) : void 0
86512
+ }));
86513
+ return /* @__PURE__ */ jsxRuntime.jsx(
86514
+ InfiniteScrollTable,
86515
+ {
86516
+ instanceId: infiniteScrollConfig.instanceId,
86517
+ columns: resizableColumns,
86518
+ fetchService: infiniteScrollConfig.fetchService,
86519
+ title: infiniteScrollConfig.title,
86520
+ scrollHeight: infiniteScrollConfig.scrollHeight,
86521
+ scrollWidth: infiniteScrollConfig.scrollWidth
86522
+ }
86523
+ );
86524
+ }
86525
+ case "pagination": {
86526
+ return /* @__PURE__ */ jsxRuntime.jsx(
86527
+ TablePagination,
86528
+ {
86529
+ dataSource,
86530
+ columns,
86531
+ rowSelection,
86532
+ onChange: onTableChange,
86533
+ onRowClick,
86534
+ paginationStyle
86535
+ }
86536
+ );
86537
+ }
86538
+ case "table":
86539
+ default: {
86540
+ return /* @__PURE__ */ jsxRuntime.jsx(
86541
+ Table,
86542
+ {
86543
+ dataSource,
86544
+ columns,
86545
+ rowSelection,
86546
+ onChange: onTableChange,
86547
+ onRowClick
86548
+ }
86549
+ );
86550
+ }
86551
+ }
86552
+ };
86521
86553
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
86522
86554
  /* @__PURE__ */ jsxRuntime.jsx(
86523
86555
  TableControls,
@@ -86527,18 +86559,845 @@ const TableWithControls = ({
86527
86559
  onChange: onTableControlsChange
86528
86560
  }
86529
86561
  ),
86530
- /* @__PURE__ */ jsxRuntime.jsx(
86531
- Table,
86532
- {
86533
- dataSource,
86534
- columns,
86535
- rowSelection,
86536
- onChange: onTableChange,
86537
- onRowClick
86538
- }
86539
- )
86562
+ renderTable()
86540
86563
  ] });
86541
86564
  };
86565
+ const staticTableData = [
86566
+ {
86567
+ id: "1",
86568
+ number: "1",
86569
+ timerange: "9:00 AM - 10:00 AM",
86570
+ status: "in_progress",
86571
+ address: {
86572
+ nickname: "Home",
86573
+ address: "123 Main St"
86574
+ },
86575
+ job_subtype: "delivery",
86576
+ progress: {
86577
+ firstBarData: {
86578
+ text: "Loading",
86579
+ status: "info",
86580
+ value: 100
86581
+ },
86582
+ secondBarData: {
86583
+ text: "Processing",
86584
+ status: "success",
86585
+ value: 25
86586
+ }
86587
+ }
86588
+ },
86589
+ {
86590
+ id: "2",
86591
+ number: "2",
86592
+ timerange: "10:00 AM - 11:00 AM",
86593
+ status: "scheduled",
86594
+ address: {
86595
+ nickname: "Work",
86596
+ address: "456 Elm St"
86597
+ },
86598
+ job_subtype: "pickup",
86599
+ progress: {
86600
+ firstBarData: {
86601
+ text: "Preparing",
86602
+ status: "info",
86603
+ value: 100
86604
+ },
86605
+ secondBarData: {
86606
+ text: "Final Check",
86607
+ status: "success",
86608
+ value: 0
86609
+ }
86610
+ }
86611
+ },
86612
+ {
86613
+ id: "3",
86614
+ number: "3",
86615
+ timerange: "11:00 AM - 12:00 PM",
86616
+ status: "scheduled",
86617
+ address: {
86618
+ nickname: "Store",
86619
+ address: "789 Oak St"
86620
+ },
86621
+ job_subtype: "delivery",
86622
+ progress: {
86623
+ firstBarData: {
86624
+ text: "Pending",
86625
+ status: "info",
86626
+ value: 0
86627
+ },
86628
+ secondBarData: {
86629
+ text: "Awaiting",
86630
+ status: "success",
86631
+ value: 0
86632
+ }
86633
+ }
86634
+ },
86635
+ {
86636
+ id: "4",
86637
+ number: "4",
86638
+ timerange: "1:00 PM - 2:00 PM",
86639
+ status: "scheduled",
86640
+ address: {
86641
+ nickname: "Office",
86642
+ address: "321 Pine St"
86643
+ },
86644
+ job_subtype: "pickup",
86645
+ progress: {
86646
+ firstBarData: {
86647
+ text: "In Progress",
86648
+ status: "info",
86649
+ value: 100
86650
+ },
86651
+ secondBarData: {
86652
+ text: "Validation",
86653
+ status: "success",
86654
+ value: 30
86655
+ }
86656
+ }
86657
+ },
86658
+ {
86659
+ id: "5",
86660
+ number: "5",
86661
+ timerange: "2:00 PM - 3:00 PM",
86662
+ status: "scheduled",
86663
+ address: {
86664
+ nickname: "Library",
86665
+ address: "555 Book Lane"
86666
+ },
86667
+ job_subtype: "delivery",
86668
+ progress: {
86669
+ firstBarData: {
86670
+ text: "Completed",
86671
+ status: "info",
86672
+ value: 100
86673
+ },
86674
+ secondBarData: {
86675
+ text: "Verified",
86676
+ status: "success",
86677
+ value: 100
86678
+ }
86679
+ }
86680
+ },
86681
+ {
86682
+ id: "6",
86683
+ number: "6",
86684
+ timerange: "3:00 PM - 4:00 PM",
86685
+ status: "scheduled",
86686
+ address: {
86687
+ nickname: "Gym",
86688
+ address: "777 Fitness Ave"
86689
+ },
86690
+ job_subtype: "pickup",
86691
+ progress: {
86692
+ firstBarData: {
86693
+ text: "Phase 1",
86694
+ status: "info",
86695
+ value: 75
86696
+ },
86697
+ secondBarData: {
86698
+ text: "Phase 2",
86699
+ status: "success",
86700
+ value: 50
86701
+ }
86702
+ }
86703
+ },
86704
+ {
86705
+ id: "7",
86706
+ number: "7",
86707
+ timerange: "4:00 PM - 5:00 PM",
86708
+ status: "scheduled",
86709
+ address: {
86710
+ nickname: "Mall",
86711
+ address: "888 Shopping Center"
86712
+ },
86713
+ job_subtype: "delivery",
86714
+ progress: {
86715
+ firstBarData: {
86716
+ text: "Queued",
86717
+ status: "info",
86718
+ value: 0
86719
+ },
86720
+ secondBarData: {
86721
+ text: "Waiting",
86722
+ status: "success",
86723
+ value: 0
86724
+ }
86725
+ }
86726
+ },
86727
+ {
86728
+ id: "8",
86729
+ number: "8",
86730
+ timerange: "9:00 AM - 10:00 AM",
86731
+ status: "completed",
86732
+ address: {
86733
+ nickname: "School",
86734
+ address: "999 Education Rd"
86735
+ },
86736
+ job_subtype: "pickup",
86737
+ progress: {
86738
+ firstBarData: {
86739
+ text: "Delivered",
86740
+ status: "info",
86741
+ value: 100
86742
+ },
86743
+ secondBarData: {
86744
+ text: "Confirmed",
86745
+ status: "success",
86746
+ value: 100
86747
+ }
86748
+ }
86749
+ },
86750
+ {
86751
+ id: "9",
86752
+ number: "9",
86753
+ timerange: "10:00 AM - 11:00 AM",
86754
+ status: "scheduled",
86755
+ address: {
86756
+ nickname: "Restaurant",
86757
+ address: "111 Food Court"
86758
+ },
86759
+ job_subtype: "delivery",
86760
+ progress: {
86761
+ firstBarData: {
86762
+ text: "Preparing",
86763
+ status: "info",
86764
+ value: 100
86765
+ },
86766
+ secondBarData: {
86767
+ text: "Quality Check",
86768
+ status: "success",
86769
+ value: 15
86770
+ }
86771
+ }
86772
+ },
86773
+ {
86774
+ id: "10",
86775
+ number: "10",
86776
+ timerange: "11:00 AM - 12:00 PM",
86777
+ status: "scheduled",
86778
+ address: {
86779
+ nickname: "Park",
86780
+ address: "222 Green Ave"
86781
+ },
86782
+ job_subtype: "pickup",
86783
+ progress: {
86784
+ firstBarData: {
86785
+ text: "Processing",
86786
+ status: "info",
86787
+ value: 80
86788
+ },
86789
+ secondBarData: {
86790
+ text: "Review",
86791
+ status: "success",
86792
+ value: 0
86793
+ }
86794
+ }
86795
+ },
86796
+ {
86797
+ id: "11",
86798
+ number: "11",
86799
+ timerange: "1:00 PM - 2:00 PM",
86800
+ status: "scheduled",
86801
+ address: {
86802
+ nickname: "Beach",
86803
+ address: "333 Shore Dr"
86804
+ },
86805
+ job_subtype: "delivery",
86806
+ progress: {
86807
+ firstBarData: {
86808
+ text: "Planning",
86809
+ status: "info",
86810
+ value: 40
86811
+ },
86812
+ secondBarData: {
86813
+ text: "Route Check",
86814
+ status: "success",
86815
+ value: 20
86816
+ }
86817
+ }
86818
+ },
86819
+ {
86820
+ id: "12",
86821
+ number: "12",
86822
+ timerange: "2:00 PM - 3:00 PM",
86823
+ status: "scheduled",
86824
+ address: {
86825
+ nickname: "Hotel",
86826
+ address: "444 Stay Blvd"
86827
+ },
86828
+ job_subtype: "pickup",
86829
+ progress: {
86830
+ firstBarData: {
86831
+ text: "Scheduled",
86832
+ status: "info",
86833
+ value: 0
86834
+ },
86835
+ secondBarData: {
86836
+ text: "Awaiting",
86837
+ status: "success",
86838
+ value: 0
86839
+ }
86840
+ }
86841
+ },
86842
+ {
86843
+ id: "13",
86844
+ number: "13",
86845
+ timerange: "3:00 PM - 4:00 PM",
86846
+ status: "scheduled",
86847
+ address: {
86848
+ nickname: "Airport",
86849
+ address: "666 Flight Way"
86850
+ },
86851
+ job_subtype: "delivery",
86852
+ progress: {
86853
+ firstBarData: {
86854
+ text: "Pre-flight",
86855
+ status: "info",
86856
+ value: 60
86857
+ },
86858
+ secondBarData: {
86859
+ text: "Security",
86860
+ status: "success",
86861
+ value: 30
86862
+ }
86863
+ }
86864
+ },
86865
+ {
86866
+ id: "14",
86867
+ number: "14",
86868
+ timerange: "4:00 PM - 5:00 PM",
86869
+ status: "cancelled",
86870
+ address: {
86871
+ nickname: "Stadium",
86872
+ address: "777 Sports Complex"
86873
+ },
86874
+ job_subtype: "pickup",
86875
+ progress: {
86876
+ firstBarData: {
86877
+ text: "Cancelled",
86878
+ status: "info",
86879
+ value: 0
86880
+ },
86881
+ secondBarData: {
86882
+ text: "Refund",
86883
+ status: "success",
86884
+ value: 100
86885
+ }
86886
+ }
86887
+ },
86888
+ {
86889
+ id: "15",
86890
+ number: "15",
86891
+ timerange: "9:00 AM - 10:00 AM",
86892
+ status: "scheduled",
86893
+ address: {
86894
+ nickname: "Theater",
86895
+ address: "888 Show Ave"
86896
+ },
86897
+ job_subtype: "delivery",
86898
+ progress: {
86899
+ firstBarData: {
86900
+ text: "Setup",
86901
+ status: "info",
86902
+ value: 25
86903
+ },
86904
+ secondBarData: {
86905
+ text: "Sound Check",
86906
+ status: "success",
86907
+ value: 0
86908
+ }
86909
+ }
86910
+ },
86911
+ {
86912
+ id: "16",
86913
+ number: "16",
86914
+ timerange: "10:00 AM - 11:00 AM",
86915
+ status: "scheduled",
86916
+ address: {
86917
+ nickname: "Museum",
86918
+ address: "999 History Lane"
86919
+ },
86920
+ job_subtype: "pickup",
86921
+ progress: {
86922
+ firstBarData: {
86923
+ text: "Exhibit Prep",
86924
+ status: "info",
86925
+ value: 70
86926
+ },
86927
+ secondBarData: {
86928
+ text: "Documentation",
86929
+ status: "success",
86930
+ value: 45
86931
+ }
86932
+ }
86933
+ },
86934
+ {
86935
+ id: "17",
86936
+ number: "17",
86937
+ timerange: "11:00 AM - 12:00 PM",
86938
+ status: "scheduled",
86939
+ address: {
86940
+ nickname: "Zoo",
86941
+ address: "123 Animal Park"
86942
+ },
86943
+ job_subtype: "delivery",
86944
+ progress: {
86945
+ firstBarData: {
86946
+ text: "Animal Care",
86947
+ status: "info",
86948
+ value: 85
86949
+ },
86950
+ secondBarData: {
86951
+ text: "Feeding",
86952
+ status: "success",
86953
+ value: 90
86954
+ }
86955
+ }
86956
+ },
86957
+ {
86958
+ id: "18",
86959
+ number: "18",
86960
+ timerange: "1:00 PM - 2:00 PM",
86961
+ status: "scheduled",
86962
+ address: {
86963
+ nickname: "Bank",
86964
+ address: "456 Money St"
86965
+ },
86966
+ job_subtype: "pickup",
86967
+ progress: {
86968
+ firstBarData: {
86969
+ text: "Transaction",
86970
+ status: "info",
86971
+ value: 50
86972
+ },
86973
+ secondBarData: {
86974
+ text: "Verification",
86975
+ status: "success",
86976
+ value: 25
86977
+ }
86978
+ }
86979
+ },
86980
+ {
86981
+ id: "19",
86982
+ number: "19",
86983
+ timerange: "2:00 PM - 3:00 PM",
86984
+ status: "scheduled",
86985
+ address: {
86986
+ nickname: "Post Office",
86987
+ address: "789 Mail Road"
86988
+ },
86989
+ job_subtype: "delivery",
86990
+ progress: {
86991
+ firstBarData: {
86992
+ text: "Sorting",
86993
+ status: "info",
86994
+ value: 100
86995
+ },
86996
+ secondBarData: {
86997
+ text: "Dispatch",
86998
+ status: "success",
86999
+ value: 75
87000
+ }
87001
+ }
87002
+ },
87003
+ {
87004
+ id: "20",
87005
+ number: "20",
87006
+ timerange: "3:00 PM - 4:00 PM",
87007
+ status: "scheduled",
87008
+ address: {
87009
+ nickname: "Church",
87010
+ address: "321 Faith Street"
87011
+ },
87012
+ job_subtype: "pickup",
87013
+ progress: {
87014
+ firstBarData: {
87015
+ text: "Service Prep",
87016
+ status: "info",
87017
+ value: 30
87018
+ },
87019
+ secondBarData: {
87020
+ text: "Community",
87021
+ status: "success",
87022
+ value: 10
87023
+ }
87024
+ }
87025
+ },
87026
+ {
87027
+ id: "21",
87028
+ number: "21",
87029
+ timerange: "4:00 PM - 5:00 PM",
87030
+ status: "scheduled",
87031
+ address: {
87032
+ nickname: "Pharmacy",
87033
+ address: "654 Health Ave"
87034
+ },
87035
+ job_subtype: "delivery",
87036
+ progress: {
87037
+ firstBarData: {
87038
+ text: "Prescription",
87039
+ status: "info",
87040
+ value: 90
87041
+ },
87042
+ secondBarData: {
87043
+ text: "Quality Check",
87044
+ status: "success",
87045
+ value: 60
87046
+ }
87047
+ }
87048
+ },
87049
+ {
87050
+ id: "22",
87051
+ number: "22",
87052
+ timerange: "2:00 PM - 3:00 PM",
87053
+ status: "scheduled",
87054
+ address: {
87055
+ nickname: "Office Complex",
87056
+ street: "789 Business Ave",
87057
+ city: "Commerce City",
87058
+ state: "CA",
87059
+ zip: "90210"
87060
+ },
87061
+ progress: {
87062
+ currentStep: 1,
87063
+ totalSteps: 4,
87064
+ steps: {
87065
+ pickup: {
87066
+ text: "Pickup Scheduled",
87067
+ status: "pending",
87068
+ value: 25
87069
+ },
87070
+ transit: {
87071
+ text: "In Transit",
87072
+ status: "pending",
87073
+ value: 0
87074
+ },
87075
+ delivery: {
87076
+ text: "Delivery",
87077
+ status: "pending",
87078
+ value: 0
87079
+ },
87080
+ quality: {
87081
+ text: "Quality Check",
87082
+ status: "pending",
87083
+ value: 0
87084
+ }
87085
+ }
87086
+ }
87087
+ },
87088
+ {
87089
+ id: "23",
87090
+ number: "23",
87091
+ timerange: "3:00 PM - 4:00 PM",
87092
+ status: "completed",
87093
+ address: {
87094
+ nickname: "Retail Store",
87095
+ street: "456 Shopping St",
87096
+ city: "Retail Town",
87097
+ state: "CA",
87098
+ zip: "90211"
87099
+ },
87100
+ progress: {
87101
+ currentStep: 4,
87102
+ totalSteps: 4,
87103
+ steps: {
87104
+ pickup: {
87105
+ text: "Pickup Complete",
87106
+ status: "success",
87107
+ value: 100
87108
+ },
87109
+ transit: {
87110
+ text: "Transit Complete",
87111
+ status: "success",
87112
+ value: 100
87113
+ },
87114
+ delivery: {
87115
+ text: "Delivery Complete",
87116
+ status: "success",
87117
+ value: 100
87118
+ },
87119
+ quality: {
87120
+ text: "Quality Check Complete",
87121
+ status: "success",
87122
+ value: 100
87123
+ }
87124
+ }
87125
+ }
87126
+ },
87127
+ {
87128
+ id: "24",
87129
+ number: "24",
87130
+ timerange: "4:00 PM - 5:00 PM",
87131
+ status: "in_progress",
87132
+ address: {
87133
+ nickname: "Warehouse",
87134
+ street: "321 Storage Blvd",
87135
+ city: "Storage City",
87136
+ state: "CA",
87137
+ zip: "90212"
87138
+ },
87139
+ progress: {
87140
+ currentStep: 2,
87141
+ totalSteps: 4,
87142
+ steps: {
87143
+ pickup: {
87144
+ text: "Pickup Complete",
87145
+ status: "success",
87146
+ value: 100
87147
+ },
87148
+ transit: {
87149
+ text: "In Transit",
87150
+ status: "active",
87151
+ value: 50
87152
+ },
87153
+ delivery: {
87154
+ text: "Delivery",
87155
+ status: "pending",
87156
+ value: 0
87157
+ },
87158
+ quality: {
87159
+ text: "Quality Check",
87160
+ status: "pending",
87161
+ value: 0
87162
+ }
87163
+ }
87164
+ }
87165
+ },
87166
+ {
87167
+ id: "25",
87168
+ number: "25",
87169
+ timerange: "5:00 PM - 6:00 PM",
87170
+ status: "cancelled",
87171
+ address: {
87172
+ nickname: "Canceled Location",
87173
+ street: "999 Cancel St",
87174
+ city: "Cancel City",
87175
+ state: "CA",
87176
+ zip: "90213"
87177
+ },
87178
+ progress: {
87179
+ currentStep: 1,
87180
+ totalSteps: 4,
87181
+ steps: {
87182
+ pickup: {
87183
+ text: "Pickup Cancelled",
87184
+ status: "error",
87185
+ value: 0
87186
+ },
87187
+ transit: {
87188
+ text: "In Transit",
87189
+ status: "pending",
87190
+ value: 0
87191
+ },
87192
+ delivery: {
87193
+ text: "Delivery",
87194
+ status: "pending",
87195
+ value: 0
87196
+ },
87197
+ quality: {
87198
+ text: "Quality Check",
87199
+ status: "pending",
87200
+ value: 0
87201
+ }
87202
+ }
87203
+ }
87204
+ },
87205
+ {
87206
+ id: "26",
87207
+ number: "26",
87208
+ timerange: "6:00 PM - 7:00 PM",
87209
+ status: "scheduled",
87210
+ address: {
87211
+ nickname: "Evening Delivery",
87212
+ street: "555 Evening Ave",
87213
+ city: "Evening City",
87214
+ state: "CA",
87215
+ zip: "90214"
87216
+ },
87217
+ progress: {
87218
+ currentStep: 1,
87219
+ totalSteps: 4,
87220
+ steps: {
87221
+ pickup: {
87222
+ text: "Pickup Scheduled",
87223
+ status: "pending",
87224
+ value: 25
87225
+ },
87226
+ transit: {
87227
+ text: "In Transit",
87228
+ status: "pending",
87229
+ value: 0
87230
+ },
87231
+ delivery: {
87232
+ text: "Delivery",
87233
+ status: "pending",
87234
+ value: 0
87235
+ },
87236
+ quality: {
87237
+ text: "Quality Check",
87238
+ status: "pending",
87239
+ value: 0
87240
+ }
87241
+ }
87242
+ }
87243
+ },
87244
+ {
87245
+ id: "27",
87246
+ number: "27",
87247
+ timerange: "7:00 PM - 8:00 PM",
87248
+ status: "in_progress",
87249
+ address: {
87250
+ nickname: "Night Shift",
87251
+ street: "777 Night St",
87252
+ city: "Night City",
87253
+ state: "CA",
87254
+ zip: "90215"
87255
+ },
87256
+ progress: {
87257
+ currentStep: 3,
87258
+ totalSteps: 4,
87259
+ steps: {
87260
+ pickup: {
87261
+ text: "Pickup Complete",
87262
+ status: "success",
87263
+ value: 100
87264
+ },
87265
+ transit: {
87266
+ text: "Transit Complete",
87267
+ status: "success",
87268
+ value: 100
87269
+ },
87270
+ delivery: {
87271
+ text: "Delivery in Progress",
87272
+ status: "active",
87273
+ value: 75
87274
+ },
87275
+ quality: {
87276
+ text: "Quality Check",
87277
+ status: "pending",
87278
+ value: 0
87279
+ }
87280
+ }
87281
+ }
87282
+ },
87283
+ {
87284
+ id: "28",
87285
+ number: "28",
87286
+ timerange: "8:00 PM - 9:00 PM",
87287
+ status: "completed",
87288
+ address: {
87289
+ nickname: "Final Delivery",
87290
+ street: "888 Final Blvd",
87291
+ city: "Final City",
87292
+ state: "CA",
87293
+ zip: "90216"
87294
+ },
87295
+ progress: {
87296
+ currentStep: 4,
87297
+ totalSteps: 4,
87298
+ steps: {
87299
+ pickup: {
87300
+ text: "Pickup Complete",
87301
+ status: "success",
87302
+ value: 100
87303
+ },
87304
+ transit: {
87305
+ text: "Transit Complete",
87306
+ status: "success",
87307
+ value: 100
87308
+ },
87309
+ delivery: {
87310
+ text: "Delivery Complete",
87311
+ status: "success",
87312
+ value: 100
87313
+ },
87314
+ quality: {
87315
+ text: "Quality Check Complete",
87316
+ status: "success",
87317
+ value: 100
87318
+ }
87319
+ }
87320
+ }
87321
+ },
87322
+ {
87323
+ id: "29",
87324
+ number: "29",
87325
+ timerange: "9:00 PM - 10:00 PM",
87326
+ status: "scheduled",
87327
+ address: {
87328
+ nickname: "Late Night",
87329
+ street: "999 Late St",
87330
+ city: "Late City",
87331
+ state: "CA",
87332
+ zip: "90217"
87333
+ },
87334
+ progress: {
87335
+ currentStep: 1,
87336
+ totalSteps: 4,
87337
+ steps: {
87338
+ pickup: {
87339
+ text: "Pickup Scheduled",
87340
+ status: "pending",
87341
+ value: 25
87342
+ },
87343
+ transit: {
87344
+ text: "In Transit",
87345
+ status: "pending",
87346
+ value: 0
87347
+ },
87348
+ delivery: {
87349
+ text: "Delivery",
87350
+ status: "pending",
87351
+ value: 0
87352
+ },
87353
+ quality: {
87354
+ text: "Quality Check",
87355
+ status: "pending",
87356
+ value: 0
87357
+ }
87358
+ }
87359
+ }
87360
+ },
87361
+ {
87362
+ id: "30",
87363
+ number: "30",
87364
+ timerange: "10:00 PM - 11:00 PM",
87365
+ status: "in_progress",
87366
+ address: {
87367
+ nickname: "Last Stop",
87368
+ street: "000 Last Ave",
87369
+ city: "Last City",
87370
+ state: "CA",
87371
+ zip: "90218"
87372
+ },
87373
+ progress: {
87374
+ currentStep: 2,
87375
+ totalSteps: 4,
87376
+ steps: {
87377
+ pickup: {
87378
+ text: "Pickup Complete",
87379
+ status: "success",
87380
+ value: 100
87381
+ },
87382
+ transit: {
87383
+ text: "In Transit",
87384
+ status: "active",
87385
+ value: 60
87386
+ },
87387
+ delivery: {
87388
+ text: "Delivery",
87389
+ status: "pending",
87390
+ value: 0
87391
+ },
87392
+ quality: {
87393
+ text: "Quality Check",
87394
+ status: "pending",
87395
+ value: 0
87396
+ }
87397
+ }
87398
+ }
87399
+ }
87400
+ ];
86542
87401
  const startCase = (string_) => {
86543
87402
  if (string_) {
86544
87403
  return string_.replaceAll(/([A-Z])/g, " $1").replace(/^./, (s) => s.toUpperCase());
@@ -86646,491 +87505,7 @@ mockColumns.map((column2) => ({
86646
87505
  ...column2
86647
87506
  }));
86648
87507
  const mockDataSource = {
86649
- appointments: [
86650
- {
86651
- id: "1",
86652
- number: "1",
86653
- timerange: "9:00 AM - 10:00 AM",
86654
- status: "in_progress",
86655
- address: {
86656
- nickname: "Home",
86657
- address: "123 Main St"
86658
- },
86659
- job_subtype: "delivery",
86660
- progress: {
86661
- firstBarData: {
86662
- text: "Loading",
86663
- status: "info",
86664
- value: 100
86665
- },
86666
- secondBarData: {
86667
- text: "Processing",
86668
- status: "success",
86669
- value: 25
86670
- }
86671
- }
86672
- },
86673
- {
86674
- id: "2",
86675
- number: "2",
86676
- timerange: "10:00 AM - 11:00 AM",
86677
- status: "scheduled",
86678
- address: {
86679
- nickname: "Work",
86680
- address: "456 Elm St"
86681
- },
86682
- job_subtype: "pickup",
86683
- progress: {
86684
- firstBarData: {
86685
- text: "Preparing",
86686
- status: "info",
86687
- value: 100
86688
- },
86689
- secondBarData: {
86690
- text: "Final Check",
86691
- status: "success",
86692
- value: 0
86693
- }
86694
- }
86695
- },
86696
- {
86697
- id: "3",
86698
- number: "3",
86699
- timerange: "11:00 AM - 12:00 PM",
86700
- status: "scheduled",
86701
- address: {
86702
- nickname: "Store",
86703
- address: "789 Oak St"
86704
- },
86705
- job_subtype: "delivery",
86706
- progress: {
86707
- firstBarData: {
86708
- text: "Pending",
86709
- status: "info",
86710
- value: 0
86711
- },
86712
- secondBarData: {
86713
- text: "Awaiting",
86714
- status: "success",
86715
- value: 0
86716
- }
86717
- }
86718
- },
86719
- {
86720
- id: "4",
86721
- number: "4",
86722
- timerange: "1:00 PM - 2:00 PM",
86723
- status: "scheduled",
86724
- address: {
86725
- nickname: "Office",
86726
- address: "321 Pine St"
86727
- },
86728
- job_subtype: "pickup",
86729
- progress: {
86730
- firstBarData: {
86731
- text: "In Progress",
86732
- status: "info",
86733
- value: 100
86734
- },
86735
- secondBarData: {
86736
- text: "Validation",
86737
- status: "success",
86738
- value: 30
86739
- }
86740
- }
86741
- },
86742
- {
86743
- id: "5",
86744
- number: "5",
86745
- timerange: "2:00 PM - 3:00 PM",
86746
- status: "scheduled",
86747
- address: {
86748
- nickname: "Library",
86749
- address: "555 Book Lane"
86750
- },
86751
- job_subtype: "delivery",
86752
- progress: {
86753
- firstBarData: {
86754
- text: "Completed",
86755
- status: "info",
86756
- value: 100
86757
- },
86758
- secondBarData: {
86759
- text: "Verified",
86760
- status: "success",
86761
- value: 100
86762
- }
86763
- }
86764
- },
86765
- {
86766
- id: "6",
86767
- number: "6",
86768
- timerange: "3:00 PM - 4:00 PM",
86769
- status: "scheduled",
86770
- address: {
86771
- nickname: "Gym",
86772
- address: "777 Fitness Ave"
86773
- },
86774
- job_subtype: "pickup",
86775
- progress: {
86776
- firstBarData: {
86777
- text: "Phase 1",
86778
- status: "info",
86779
- value: 75
86780
- },
86781
- secondBarData: {
86782
- text: "Phase 2",
86783
- status: "success",
86784
- value: 50
86785
- }
86786
- }
86787
- },
86788
- {
86789
- id: "7",
86790
- number: "7",
86791
- timerange: "4:00 PM - 5:00 PM",
86792
- status: "scheduled",
86793
- address: {
86794
- nickname: "Mall",
86795
- address: "888 Shopping Center"
86796
- },
86797
- job_subtype: "delivery",
86798
- progress: {
86799
- firstBarData: {
86800
- text: "Queued",
86801
- status: "info",
86802
- value: 0
86803
- },
86804
- secondBarData: {
86805
- text: "Waiting",
86806
- status: "success",
86807
- value: 0
86808
- }
86809
- }
86810
- },
86811
- {
86812
- id: "8",
86813
- number: "8",
86814
- timerange: "9:00 AM - 10:00 AM",
86815
- status: "completed",
86816
- address: {
86817
- nickname: "School",
86818
- address: "999 Education Rd"
86819
- },
86820
- job_subtype: "pickup",
86821
- progress: {
86822
- firstBarData: {
86823
- text: "Delivered",
86824
- status: "info",
86825
- value: 100
86826
- },
86827
- secondBarData: {
86828
- text: "Confirmed",
86829
- status: "success",
86830
- value: 100
86831
- }
86832
- }
86833
- },
86834
- {
86835
- id: "9",
86836
- number: "9",
86837
- timerange: "10:00 AM - 11:00 AM",
86838
- status: "scheduled",
86839
- address: {
86840
- nickname: "Restaurant",
86841
- address: "111 Food Court"
86842
- },
86843
- job_subtype: "delivery",
86844
- progress: {
86845
- firstBarData: {
86846
- text: "Preparing",
86847
- status: "info",
86848
- value: 100
86849
- },
86850
- secondBarData: {
86851
- text: "Quality Check",
86852
- status: "success",
86853
- value: 15
86854
- }
86855
- }
86856
- },
86857
- {
86858
- id: "10",
86859
- number: "10",
86860
- timerange: "11:00 AM - 12:00 PM",
86861
- status: "scheduled",
86862
- address: {
86863
- nickname: "Park",
86864
- address: "222 Green Ave"
86865
- },
86866
- job_subtype: "pickup",
86867
- progress: {
86868
- firstBarData: {
86869
- text: "Processing",
86870
- status: "info",
86871
- value: 80
86872
- },
86873
- secondBarData: {
86874
- text: "Review",
86875
- status: "success",
86876
- value: 0
86877
- }
86878
- }
86879
- },
86880
- {
86881
- id: "11",
86882
- number: "11",
86883
- timerange: "1:00 PM - 2:00 PM",
86884
- status: "scheduled",
86885
- address: {
86886
- nickname: "Beach",
86887
- address: "333 Shore Dr"
86888
- },
86889
- job_subtype: "delivery",
86890
- progress: {
86891
- firstBarData: {
86892
- text: "Planning",
86893
- status: "info",
86894
- value: 40
86895
- },
86896
- secondBarData: {
86897
- text: "Route Check",
86898
- status: "success",
86899
- value: 20
86900
- }
86901
- }
86902
- },
86903
- {
86904
- id: "12",
86905
- number: "12",
86906
- timerange: "2:00 PM - 3:00 PM",
86907
- status: "scheduled",
86908
- address: {
86909
- nickname: "Hotel",
86910
- address: "444 Stay Blvd"
86911
- },
86912
- job_subtype: "pickup",
86913
- progress: {
86914
- firstBarData: {
86915
- text: "Scheduled",
86916
- status: "info",
86917
- value: 0
86918
- },
86919
- secondBarData: {
86920
- text: "Awaiting",
86921
- status: "success",
86922
- value: 0
86923
- }
86924
- }
86925
- },
86926
- {
86927
- id: "13",
86928
- number: "13",
86929
- timerange: "3:00 PM - 4:00 PM",
86930
- status: "scheduled",
86931
- address: {
86932
- nickname: "Airport",
86933
- address: "666 Flight Way"
86934
- },
86935
- job_subtype: "delivery",
86936
- progress: {
86937
- firstBarData: {
86938
- text: "Pre-flight",
86939
- status: "info",
86940
- value: 60
86941
- },
86942
- secondBarData: {
86943
- text: "Security",
86944
- status: "success",
86945
- value: 30
86946
- }
86947
- }
86948
- },
86949
- {
86950
- id: "14",
86951
- number: "14",
86952
- timerange: "4:00 PM - 5:00 PM",
86953
- status: "cancelled",
86954
- address: {
86955
- nickname: "Stadium",
86956
- address: "777 Sports Complex"
86957
- },
86958
- job_subtype: "pickup",
86959
- progress: {
86960
- firstBarData: {
86961
- text: "Cancelled",
86962
- status: "info",
86963
- value: 0
86964
- },
86965
- secondBarData: {
86966
- text: "Refund",
86967
- status: "success",
86968
- value: 100
86969
- }
86970
- }
86971
- },
86972
- {
86973
- id: "15",
86974
- number: "15",
86975
- timerange: "9:00 AM - 10:00 AM",
86976
- status: "scheduled",
86977
- address: {
86978
- nickname: "Theater",
86979
- address: "888 Show Ave"
86980
- },
86981
- job_subtype: "delivery",
86982
- progress: {
86983
- firstBarData: {
86984
- text: "Setup",
86985
- status: "info",
86986
- value: 25
86987
- },
86988
- secondBarData: {
86989
- text: "Sound Check",
86990
- status: "success",
86991
- value: 0
86992
- }
86993
- }
86994
- },
86995
- {
86996
- id: "16",
86997
- number: "16",
86998
- timerange: "10:00 AM - 11:00 AM",
86999
- status: "scheduled",
87000
- address: {
87001
- nickname: "Museum",
87002
- address: "999 History Lane"
87003
- },
87004
- job_subtype: "pickup",
87005
- progress: {
87006
- firstBarData: {
87007
- text: "Exhibit Prep",
87008
- status: "info",
87009
- value: 70
87010
- },
87011
- secondBarData: {
87012
- text: "Documentation",
87013
- status: "success",
87014
- value: 45
87015
- }
87016
- }
87017
- },
87018
- {
87019
- id: "17",
87020
- number: "17",
87021
- timerange: "11:00 AM - 12:00 PM",
87022
- status: "scheduled",
87023
- address: {
87024
- nickname: "Zoo",
87025
- address: "123 Animal Park"
87026
- },
87027
- job_subtype: "delivery",
87028
- progress: {
87029
- firstBarData: {
87030
- text: "Animal Care",
87031
- status: "info",
87032
- value: 85
87033
- },
87034
- secondBarData: {
87035
- text: "Feeding",
87036
- status: "success",
87037
- value: 90
87038
- }
87039
- }
87040
- },
87041
- {
87042
- id: "18",
87043
- number: "18",
87044
- timerange: "1:00 PM - 2:00 PM",
87045
- status: "scheduled",
87046
- address: {
87047
- nickname: "Bank",
87048
- address: "456 Money St"
87049
- },
87050
- job_subtype: "pickup",
87051
- progress: {
87052
- firstBarData: {
87053
- text: "Transaction",
87054
- status: "info",
87055
- value: 50
87056
- },
87057
- secondBarData: {
87058
- text: "Verification",
87059
- status: "success",
87060
- value: 25
87061
- }
87062
- }
87063
- },
87064
- {
87065
- id: "19",
87066
- number: "19",
87067
- timerange: "2:00 PM - 3:00 PM",
87068
- status: "scheduled",
87069
- address: {
87070
- nickname: "Post Office",
87071
- address: "789 Mail Road"
87072
- },
87073
- job_subtype: "delivery",
87074
- progress: {
87075
- firstBarData: {
87076
- text: "Sorting",
87077
- status: "info",
87078
- value: 100
87079
- },
87080
- secondBarData: {
87081
- text: "Dispatch",
87082
- status: "success",
87083
- value: 75
87084
- }
87085
- }
87086
- },
87087
- {
87088
- id: "20",
87089
- number: "20",
87090
- timerange: "3:00 PM - 4:00 PM",
87091
- status: "scheduled",
87092
- address: {
87093
- nickname: "Church",
87094
- address: "321 Faith Street"
87095
- },
87096
- job_subtype: "pickup",
87097
- progress: {
87098
- firstBarData: {
87099
- text: "Service Prep",
87100
- status: "info",
87101
- value: 30
87102
- },
87103
- secondBarData: {
87104
- text: "Community",
87105
- status: "success",
87106
- value: 10
87107
- }
87108
- }
87109
- },
87110
- {
87111
- id: "21",
87112
- number: "21",
87113
- timerange: "4:00 PM - 5:00 PM",
87114
- status: "scheduled",
87115
- address: {
87116
- nickname: "Pharmacy",
87117
- address: "654 Health Ave"
87118
- },
87119
- job_subtype: "delivery",
87120
- progress: {
87121
- firstBarData: {
87122
- text: "Prescription",
87123
- status: "info",
87124
- value: 90
87125
- },
87126
- secondBarData: {
87127
- text: "Quality Check",
87128
- status: "success",
87129
- value: 60
87130
- }
87131
- }
87132
- }
87133
- ]
87508
+ appointments: staticTableData
87134
87509
  };
87135
87510
  const tableControlsData = {
87136
87511
  primaryTableRowData: {