@rio-cloud/uikit-mcp 1.1.8 → 1.1.10
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/README.md +17 -7
- package/dist/doc-metadata.json +325 -85
- package/dist/docs/components/accentBar.md +110 -116
- package/dist/docs/components/activity.md +1 -1
- package/dist/docs/components/analyticsAnalysisOverlay.md +628 -0
- package/dist/docs/components/animatedNumber.md +2 -2
- package/dist/docs/components/animatedTextReveal.md +53 -55
- package/dist/docs/components/animations.md +22 -22
- package/dist/docs/components/appHeader.md +27 -38
- package/dist/docs/components/appLayout.md +38 -42
- package/dist/docs/components/appNavigationBar.md +1 -1
- package/dist/docs/components/areaCharts.md +57 -63
- package/dist/docs/components/aspectRatioPlaceholder.md +1 -1
- package/dist/docs/components/assetTree.md +200 -167
- package/dist/docs/components/autosuggests.md +1 -1
- package/dist/docs/components/avatar.md +1 -1
- package/dist/docs/components/banner.md +2 -2
- package/dist/docs/components/barCharts.md +531 -417
- package/dist/docs/components/barList.md +9 -9
- package/dist/docs/components/basicMap.md +60 -39
- package/dist/docs/components/bottomSheet.md +2 -2
- package/dist/docs/components/button.md +8 -2
- package/dist/docs/components/buttonToolbar.md +1 -1
- package/dist/docs/components/calendarStripe.md +57 -65
- package/dist/docs/components/card.md +1 -1
- package/dist/docs/components/carousel.md +1 -1
- package/dist/docs/components/chartColors.md +1 -3
- package/dist/docs/components/chartsGettingStarted.md +1 -3
- package/dist/docs/components/chat.md +2 -2
- package/dist/docs/components/checkbox.md +15 -12
- package/dist/docs/components/circularProgress.md +8 -8
- package/dist/docs/components/clearableInput.md +1 -1
- package/dist/docs/components/collapse.md +2 -4
- package/dist/docs/components/composedCharts.md +63 -53
- package/dist/docs/components/contentLoader.md +1 -1
- package/dist/docs/components/dataTabs.md +33 -33
- package/dist/docs/components/datepickers.md +693 -687
- package/dist/docs/components/dayPicker.md +5574 -0
- package/dist/docs/components/dayPickerCalendar.md +5269 -0
- package/dist/docs/components/dialogs.md +17 -19
- package/dist/docs/components/divider.md +1 -1
- package/dist/docs/components/dropdowns.md +3252 -3276
- package/dist/docs/components/editableContent.md +91 -91
- package/dist/docs/components/expander.md +4 -1
- package/dist/docs/components/fade.md +1 -1
- package/dist/docs/components/fadeExpander.md +1 -1
- package/dist/docs/components/fadeUp.md +32 -36
- package/dist/docs/components/feedback.md +1 -1
- package/dist/docs/components/filePickers.md +1 -1
- package/dist/docs/components/formLabel.md +29 -31
- package/dist/docs/components/groupedItemList.md +3 -7
- package/dist/docs/components/htmlTable.md +5074 -0
- package/dist/docs/components/iconList.md +4 -4
- package/dist/docs/components/imagePreloader.md +1 -1
- package/dist/docs/components/labeledElement.md +1 -1
- package/dist/docs/components/licensePlate.md +1 -1
- package/dist/docs/components/lineCharts.md +172 -172
- package/dist/docs/components/listMenu.md +15 -12
- package/dist/docs/components/loadMore.md +4 -2
- package/dist/docs/components/mainNavigation.md +1 -1
- package/dist/docs/components/mapCircle.md +10 -1
- package/dist/docs/components/mapCluster.md +23 -1
- package/dist/docs/components/mapContext.md +12 -4
- package/dist/docs/components/mapDraggableMarker.md +12 -1
- package/dist/docs/components/mapGettingStarted.md +1 -1
- package/dist/docs/components/mapInfoBubble.md +129 -2
- package/dist/docs/components/mapLayerGroup.md +10 -1
- package/dist/docs/components/mapMarker.md +10 -3
- package/dist/docs/components/mapPolygon.md +288 -85
- package/dist/docs/components/mapRoute.md +262 -172
- package/dist/docs/components/mapRouteGenerator.md +1 -1
- package/dist/docs/components/mapSettings.md +23 -1
- package/dist/docs/components/mapUtils.md +1 -1
- package/dist/docs/components/multiselects.md +211 -18
- package/dist/docs/components/noData.md +1 -1
- package/dist/docs/components/notifications.md +2 -2
- package/dist/docs/components/numbercontrol.md +15 -15
- package/dist/docs/components/onboarding.md +1 -1
- package/dist/docs/components/page.md +1 -1
- package/dist/docs/components/pager.md +1 -1
- package/dist/docs/components/pieCharts.md +237 -213
- package/dist/docs/components/popover.md +1 -1
- package/dist/docs/components/position.md +1 -1
- package/dist/docs/components/radialBarCharts.md +446 -400
- package/dist/docs/components/radioCardGroup.md +1 -1
- package/dist/docs/components/radiobutton.md +96 -98
- package/dist/docs/components/releaseNotes.md +1 -1
- package/dist/docs/components/resizer.md +1 -3
- package/dist/docs/components/responsiveColumnStripe.md +1 -3
- package/dist/docs/components/responsiveVideo.md +1 -1
- package/dist/docs/components/rioglyph.md +1 -1
- package/dist/docs/components/rules.md +41 -47
- package/dist/docs/components/saveableInput.md +252 -252
- package/dist/docs/components/selects.md +165 -111
- package/dist/docs/components/sidebar.md +1 -1
- package/dist/docs/components/sliders.md +1 -1
- package/dist/docs/components/smoothScrollbars.md +19 -15
- package/dist/docs/components/spinners.md +1 -1
- package/dist/docs/components/states.md +1 -1
- package/dist/docs/components/statsWidgets.md +1 -1
- package/dist/docs/components/statusBar.md +1 -1
- package/dist/docs/components/stepButton.md +1 -1
- package/dist/docs/components/steppedProgressBars.md +9 -11
- package/dist/docs/components/subNavigation.md +1 -1
- package/dist/docs/components/supportMarker.md +1 -1
- package/dist/docs/components/svgImage.md +1 -1
- package/dist/docs/components/switch.md +3 -1
- package/dist/docs/components/table.md +19584 -0
- package/dist/docs/components/tableControls.md +982 -0
- package/dist/docs/components/tagManager.md +1 -1
- package/dist/docs/components/tags.md +1 -1
- package/dist/docs/components/teaser.md +1 -3
- package/dist/docs/components/textTruncateMiddle.md +1 -1
- package/dist/docs/components/timeline.md +1 -1
- package/dist/docs/components/timepicker.md +1 -1
- package/dist/docs/components/toggleButton.md +3 -1
- package/dist/docs/components/tooltip.md +4 -2
- package/dist/docs/components/tracker.md +1 -1
- package/dist/docs/components/virtualList.md +56 -56
- package/dist/docs/foundations.md +640 -3122
- package/dist/docs/start/changelog.md +53 -3
- package/dist/docs/start/goodtoknow.md +2 -4
- package/dist/docs/start/guidelines/color-combinations.md +1 -1
- package/dist/docs/start/guidelines/custom-css.md +1 -1
- package/dist/docs/start/guidelines/custom-rioglyph.md +1 -1
- package/dist/docs/start/guidelines/formatting.md +1 -3
- package/dist/docs/start/guidelines/iframe.md +17 -19
- package/dist/docs/start/guidelines/obfuscate-data.md +2 -4
- package/dist/docs/start/guidelines/print-css.md +1 -1
- package/dist/docs/start/guidelines/spinner.md +1 -1
- package/dist/docs/start/guidelines/state-in-url.md +1 -1
- package/dist/docs/start/guidelines/supported-browsers.md +1 -1
- package/dist/docs/start/guidelines/writing.md +1 -1
- package/dist/docs/start/howto.md +12 -20
- package/dist/docs/start/intro.md +1 -1
- package/dist/docs/start/responsiveness.md +1 -3
- package/dist/docs/templates/ai-assistant.md +311 -0
- package/dist/docs/templates/common-table.md +814 -0
- package/dist/docs/templates/detail-views.md +846 -0
- package/dist/docs/templates/expandable-details.md +214 -0
- package/dist/docs/templates/feature-cards.md +479 -0
- package/dist/docs/templates/form-summary.md +179 -0
- package/dist/docs/templates/form-toggle.md +329 -0
- package/dist/docs/templates/list-blocks.md +872 -0
- package/dist/docs/templates/loading-progress.md +100 -0
- package/dist/docs/templates/options-panel.md +132 -0
- package/dist/docs/templates/panel-variants.md +137 -0
- package/dist/docs/templates/progress-cards.md +541 -0
- package/dist/docs/templates/progress-success.md +125 -0
- package/dist/docs/templates/settings-form.md +401 -0
- package/dist/docs/templates/stats-blocks.md +1245 -0
- package/dist/docs/templates/table-panel.md +310 -0
- package/dist/docs/templates/usage-cards.md +199 -0
- package/dist/docs/utilities/classNames.md +1 -1
- package/dist/docs/utilities/deviceUtils.md +2 -2
- package/dist/docs/utilities/featureToggles.md +1 -1
- package/dist/docs/utilities/fuelTypeUtils.md +27 -29
- package/dist/docs/utilities/getTrackingAttributes.md +277 -0
- package/dist/docs/utilities/routeUtils.md +2 -2
- package/dist/docs/utilities/useAfterMount.md +1 -1
- package/dist/docs/utilities/useAutoAnimate.md +1 -1
- package/dist/docs/utilities/useAverage.md +1 -1
- package/dist/docs/utilities/useClickOutside.md +1 -1
- package/dist/docs/utilities/useClipboard.md +2 -2
- package/dist/docs/utilities/useCookies.md +1 -1
- package/dist/docs/utilities/useCount.md +1 -1
- package/dist/docs/utilities/useDarkMode.md +5 -4
- package/dist/docs/utilities/useDebugInfo.md +3 -3
- package/dist/docs/utilities/useDraggableElement.md +281 -0
- package/dist/docs/utilities/useEffectOnce.md +1 -1
- package/dist/docs/utilities/useElapsedTime.md +1 -1
- package/dist/docs/utilities/useElementSize.md +1 -1
- package/dist/docs/utilities/useEsc.md +1 -1
- package/dist/docs/utilities/useEvent.md +1 -1
- package/dist/docs/utilities/useFocusTrap.md +1 -1
- package/dist/docs/utilities/useFullscreen.md +1 -1
- package/dist/docs/utilities/useHover.md +1 -1
- package/dist/docs/utilities/useIncomingPostMessages.md +1 -1
- package/dist/docs/utilities/useInterval.md +1 -1
- package/dist/docs/utilities/useIsFocusWithin.md +1 -1
- package/dist/docs/utilities/useKey.md +8 -10
- package/dist/docs/utilities/useLocalStorage.md +1 -1
- package/dist/docs/utilities/useLocationSuggestions.md +1 -1
- package/dist/docs/utilities/useMax.md +1 -1
- package/dist/docs/utilities/useMin.md +1 -1
- package/dist/docs/utilities/useMutationObserver.md +1 -1
- package/dist/docs/utilities/useOnScreen.md +1 -1
- package/dist/docs/utilities/useOnlineStatus.md +1 -1
- package/dist/docs/utilities/usePostMessage.md +2 -2
- package/dist/docs/utilities/usePostMessageSender.md +1 -1
- package/dist/docs/utilities/usePrevious.md +2 -4
- package/dist/docs/utilities/useResizeObserver.md +35 -15
- package/dist/docs/utilities/useRioCookieConsent.md +1 -1
- package/dist/docs/utilities/useScrollPosition.md +3 -6
- package/dist/docs/utilities/useSearch.md +1 -3
- package/dist/docs/utilities/useSearchHighlight.md +1 -1
- package/dist/docs/utilities/useSorting.md +370 -239
- package/dist/docs/utilities/useStateWithValidation.md +1 -1
- package/dist/docs/utilities/useSum.md +1 -1
- package/dist/docs/utilities/useTableExport.md +364 -288
- package/dist/docs/utilities/useTableSelection.md +88 -92
- package/dist/docs/utilities/useTimeout.md +1 -1
- package/dist/docs/utilities/useToggle.md +1 -1
- package/dist/docs/utilities/useUrlState.md +1 -1
- package/dist/docs/utilities/useWindowResize.md +1 -1
- package/dist/index.mjs +2 -8
- package/dist/search-synonyms.json +2 -2
- package/dist/version.json +2 -2
- package/package.json +15 -9
- package/dist/docs/components/tables.md +0 -8
|
@@ -0,0 +1,982 @@
|
|
|
1
|
+
# Table controls
|
|
2
|
+
|
|
3
|
+
*Category:* Components
|
|
4
|
+
*Section:* Table
|
|
5
|
+
*Source:* https://uikit.developers.rio.cloud/#/components/tableControls
|
|
6
|
+
*Captured:* 2026-04-20T12:54:36.257Z
|
|
7
|
+
|
|
8
|
+
The toolbar and its content has to be implemented by each team itself. Please use the sample as a reference and adapt it accordingly.
|
|
9
|
+
|
|
10
|
+
## Table controls
|
|
11
|
+
|
|
12
|
+
> These controls can be used with both Table component and HTML table components.
|
|
13
|
+
|
|
14
|
+
## TableToolbar
|
|
15
|
+
|
|
16
|
+
### Example: Example 1
|
|
17
|
+
|
|
18
|
+
TableToolbar label
|
|
19
|
+
|
|
20
|
+
‹ April 2026 ›
|
|
21
|
+
Su Mo Tu We Th Fr Sa
|
|
22
|
+
|
|
23
|
+
29 30 31 1 2 3 4
|
|
24
|
+
5 6 7 8 9 10 11
|
|
25
|
+
12 13 14 15 16 17 18
|
|
26
|
+
19 20 21 22 23 24 25
|
|
27
|
+
26 27 28 29 30 1 2
|
|
28
|
+
3 4 5 6 7 8 9
|
|
29
|
+
|
|
30
|
+
12:00 AM
|
|
31
|
+
|
|
32
|
+
TableToolbar button
|
|
33
|
+
|
|
34
|
+
TableToolbar label
|
|
35
|
+
|
|
36
|
+
Table view
|
|
37
|
+
Cards view
|
|
38
|
+
List view
|
|
39
|
+
|
|
40
|
+
#### React (tsx)
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import TableToolbar, { TableToolbarColumn } from '@rio-cloud/rio-uikit/TableToolbar';
|
|
44
|
+
import TableSearch from '@rio-cloud/rio-uikit/TableSearch';
|
|
45
|
+
import DatePicker from '@rio-cloud/rio-uikit/DatePicker';
|
|
46
|
+
import Button from '@rio-cloud/rio-uikit/Button';
|
|
47
|
+
import TableViewToggles, { type TableViewTogglesViewType } from '@rio-cloud/rio-uikit/TableViewToggles';
|
|
48
|
+
|
|
49
|
+
const TableToolbarDemo = () => (
|
|
50
|
+
<TableToolbar>
|
|
51
|
+
<TableToolbarColumn label='TableToolbar label' className='min-width-200'>
|
|
52
|
+
<DatePicker inputProps={{ placeholder: 'Select Date' }} />
|
|
53
|
+
</TableToolbarColumn>
|
|
54
|
+
<TableToolbarColumn>
|
|
55
|
+
<Button bsStyle={Button.PRIMARY}>TableToolbar button</Button>
|
|
56
|
+
</TableToolbarColumn>
|
|
57
|
+
<TableToolbarColumn horizontalAlign='right' label='TableToolbar label'>
|
|
58
|
+
<TableSearch placeholder='Search in table' />
|
|
59
|
+
</TableToolbarColumn>
|
|
60
|
+
<TableToolbarColumn horizontalAlign='right' separator>
|
|
61
|
+
<TableViewToggles
|
|
62
|
+
initialViewType={TableViewToggles.VIEW_TYPE_TABLE}
|
|
63
|
+
tableViewLabel='Table view'
|
|
64
|
+
singleCardViewLabel='List view'
|
|
65
|
+
multiCardsViewLabel='Cards view'
|
|
66
|
+
onViewTypeChange={(viewType: TableViewTogglesViewType) => console.log(viewType)}
|
|
67
|
+
/>
|
|
68
|
+
</TableToolbarColumn>
|
|
69
|
+
<TableToolbarColumn horizontalAlign='right'>
|
|
70
|
+
<Button iconOnly iconName='rioglyph-settings' />
|
|
71
|
+
</TableToolbarColumn>
|
|
72
|
+
</TableToolbar>
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
export default TableToolbarDemo;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### HTML (html)
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<div class="table-toolbar">
|
|
82
|
+
<div class="table-toolbar-container">
|
|
83
|
+
<div class="table-toolbar-group-left">
|
|
84
|
+
<div class="table-toolbar-column align-self-end min-width-200">
|
|
85
|
+
<label class="table-toolbar-label">TableToolbar label</label>
|
|
86
|
+
<div class="rdt DatePicker form-group">
|
|
87
|
+
<div class="input-group">
|
|
88
|
+
<span class="input-group-addon">
|
|
89
|
+
<span class="rioglyph rioglyph-calendar" aria-hidden="true">
|
|
90
|
+
</span>
|
|
91
|
+
</span>
|
|
92
|
+
<div class="ClearableInput input-group">
|
|
93
|
+
<input type="text" class="form-control" placeholder="Select Date" value="">
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="rdtPicker">
|
|
97
|
+
<div class="rdtDays">
|
|
98
|
+
<table>
|
|
99
|
+
<thead>
|
|
100
|
+
<tr>
|
|
101
|
+
<th class="rdtPrev">
|
|
102
|
+
<span>‹</span>
|
|
103
|
+
</th>
|
|
104
|
+
<th class="rdtSwitch" colspan="5" data-value="3">April 2026</th>
|
|
105
|
+
<th class="rdtNext">
|
|
106
|
+
<span>›</span>
|
|
107
|
+
</th>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr>
|
|
110
|
+
<th class="dow">Su</th>
|
|
111
|
+
<th class="dow">Mo</th>
|
|
112
|
+
<th class="dow">Tu</th>
|
|
113
|
+
<th class="dow">We</th>
|
|
114
|
+
<th class="dow">Th</th>
|
|
115
|
+
<th class="dow">Fr</th>
|
|
116
|
+
<th class="dow">Sa</th>
|
|
117
|
+
</tr>
|
|
118
|
+
</thead>
|
|
119
|
+
<tbody>
|
|
120
|
+
<tr>
|
|
121
|
+
<td data-value="29" data-month="2" data-year="2026" class="rdtDay rdtOld">29</td>
|
|
122
|
+
<td data-value="30" data-month="2" data-year="2026" class="rdtDay rdtOld">30</td>
|
|
123
|
+
<td data-value="31" data-month="2" data-year="2026" class="rdtDay rdtOld">31</td>
|
|
124
|
+
<td data-value="1" data-month="3" data-year="2026" class="rdtDay">1</td>
|
|
125
|
+
<td data-value="2" data-month="3" data-year="2026" class="rdtDay">2</td>
|
|
126
|
+
<td data-value="3" data-month="3" data-year="2026" class="rdtDay">3</td>
|
|
127
|
+
<td data-value="4" data-month="3" data-year="2026" class="rdtDay">4</td>
|
|
128
|
+
</tr>
|
|
129
|
+
<tr>
|
|
130
|
+
<td data-value="5" data-month="3" data-year="2026" class="rdtDay">5</td>
|
|
131
|
+
<td data-value="6" data-month="3" data-year="2026" class="rdtDay">6</td>
|
|
132
|
+
<td data-value="7" data-month="3" data-year="2026" class="rdtDay">7</td>
|
|
133
|
+
<td data-value="8" data-month="3" data-year="2026" class="rdtDay">8</td>
|
|
134
|
+
<td data-value="9" data-month="3" data-year="2026" class="rdtDay">9</td>
|
|
135
|
+
<td data-value="10" data-month="3" data-year="2026" class="rdtDay">10</td>
|
|
136
|
+
<td data-value="11" data-month="3" data-year="2026" class="rdtDay">11</td>
|
|
137
|
+
</tr>
|
|
138
|
+
<tr>
|
|
139
|
+
<td data-value="12" data-month="3" data-year="2026" class="rdtDay">12</td>
|
|
140
|
+
<td data-value="13" data-month="3" data-year="2026" class="rdtDay">13</td>
|
|
141
|
+
<td data-value="14" data-month="3" data-year="2026" class="rdtDay">14</td>
|
|
142
|
+
<td data-value="15" data-month="3" data-year="2026" class="rdtDay">15</td>
|
|
143
|
+
<td data-value="16" data-month="3" data-year="2026" class="rdtDay">16</td>
|
|
144
|
+
<td data-value="17" data-month="3" data-year="2026" class="rdtDay">17</td>
|
|
145
|
+
<td data-value="18" data-month="3" data-year="2026" class="rdtDay">18</td>
|
|
146
|
+
</tr>
|
|
147
|
+
<tr>
|
|
148
|
+
<td data-value="19" data-month="3" data-year="2026" class="rdtDay">19</td>
|
|
149
|
+
<td data-value="20" data-month="3" data-year="2026" class="rdtDay rdtToday">20</td>
|
|
150
|
+
<td data-value="21" data-month="3" data-year="2026" class="rdtDay">21</td>
|
|
151
|
+
<td data-value="22" data-month="3" data-year="2026" class="rdtDay">22</td>
|
|
152
|
+
<td data-value="23" data-month="3" data-year="2026" class="rdtDay">23</td>
|
|
153
|
+
<td data-value="24" data-month="3" data-year="2026" class="rdtDay">24</td>
|
|
154
|
+
<td data-value="25" data-month="3" data-year="2026" class="rdtDay">25</td>
|
|
155
|
+
</tr>
|
|
156
|
+
<tr>
|
|
157
|
+
<td data-value="26" data-month="3" data-year="2026" class="rdtDay">26</td>
|
|
158
|
+
<td data-value="27" data-month="3" data-year="2026" class="rdtDay">27</td>
|
|
159
|
+
<td data-value="28" data-month="3" data-year="2026" class="rdtDay">28</td>
|
|
160
|
+
<td data-value="29" data-month="3" data-year="2026" class="rdtDay">29</td>
|
|
161
|
+
<td data-value="30" data-month="3" data-year="2026" class="rdtDay">30</td>
|
|
162
|
+
<td data-value="1" data-month="4" data-year="2026" class="rdtDay rdtNew">1</td>
|
|
163
|
+
<td data-value="2" data-month="4" data-year="2026" class="rdtDay rdtNew">2</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td data-value="3" data-month="4" data-year="2026" class="rdtDay rdtNew">3</td>
|
|
167
|
+
<td data-value="4" data-month="4" data-year="2026" class="rdtDay rdtNew">4</td>
|
|
168
|
+
<td data-value="5" data-month="4" data-year="2026" class="rdtDay rdtNew">5</td>
|
|
169
|
+
<td data-value="6" data-month="4" data-year="2026" class="rdtDay rdtNew">6</td>
|
|
170
|
+
<td data-value="7" data-month="4" data-year="2026" class="rdtDay rdtNew">7</td>
|
|
171
|
+
<td data-value="8" data-month="4" data-year="2026" class="rdtDay rdtNew">8</td>
|
|
172
|
+
<td data-value="9" data-month="4" data-year="2026" class="rdtDay rdtNew">9</td>
|
|
173
|
+
</tr>
|
|
174
|
+
</tbody>
|
|
175
|
+
<tfoot>
|
|
176
|
+
<tr>
|
|
177
|
+
<td colspan="7" class="rdtTimeToggle">12:00 AM</td>
|
|
178
|
+
</tr>
|
|
179
|
+
</tfoot>
|
|
180
|
+
</table>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
<div class="table-toolbar-column align-self-end">
|
|
186
|
+
<button type="button" class="btn btn-primary btn-component" tabindex="0">TableToolbar button</button>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="table-toolbar-group-right">
|
|
190
|
+
<div class="table-toolbar-column align-self-end">
|
|
191
|
+
<label class="table-toolbar-label">TableToolbar label</label>
|
|
192
|
+
<div class="table-toolbar-search input-group">
|
|
193
|
+
<span class="input-group-addon">
|
|
194
|
+
<span class="rioglyph rioglyph-search">
|
|
195
|
+
</span>
|
|
196
|
+
</span>
|
|
197
|
+
<div class="ClearableInput input-group">
|
|
198
|
+
<input placeholder="Search in table" class="form-control" type="text" tabindex="0" value="">
|
|
199
|
+
<span class="clearButton hide">
|
|
200
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
201
|
+
</span>
|
|
202
|
+
</span>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="table-toolbar-column align-self-end table-toolbar-column-separator">
|
|
207
|
+
<div class="TableViewToggles">
|
|
208
|
+
<div class="form-group margin-bottom-0">
|
|
209
|
+
<div class="select dropdown">
|
|
210
|
+
<button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
|
|
211
|
+
<span class="selected-option-text">
|
|
212
|
+
<span>
|
|
213
|
+
<span class="rioglyph rioglyph-table-view">
|
|
214
|
+
</span>
|
|
215
|
+
</span>
|
|
216
|
+
</span>
|
|
217
|
+
<span class="select-toggle-actions">
|
|
218
|
+
<span class="clearButton hide pointer-events-none">
|
|
219
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
220
|
+
</span>
|
|
221
|
+
</span>
|
|
222
|
+
<span class="caret">
|
|
223
|
+
</span>
|
|
224
|
+
</span>
|
|
225
|
+
</button>
|
|
226
|
+
<ul class="dropdown-menu pull-right" role="menu">
|
|
227
|
+
<li class="" role="listitem">
|
|
228
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="TABLE" data-item-index="0">
|
|
229
|
+
<span class="selected-option-dropdown-item">
|
|
230
|
+
<span class="rioglyph rioglyph-table-view">
|
|
231
|
+
</span>Table view</span>
|
|
232
|
+
<input type="hidden" value="TABLE">
|
|
233
|
+
</a>
|
|
234
|
+
</li>
|
|
235
|
+
<li class="" role="listitem">
|
|
236
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="MULTI_CARDS" data-item-index="1">
|
|
237
|
+
<span class="selected-option-dropdown-item">
|
|
238
|
+
<span class="rioglyph rioglyph-split-view">
|
|
239
|
+
</span>Cards view</span>
|
|
240
|
+
<input type="hidden" value="MULTI_CARDS">
|
|
241
|
+
</a>
|
|
242
|
+
</li>
|
|
243
|
+
<li class="" role="listitem">
|
|
244
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="SINGLE_CARD" data-item-index="2">
|
|
245
|
+
<span class="selected-option-dropdown-item">
|
|
246
|
+
<span class="rioglyph rioglyph-th-list">
|
|
247
|
+
</span>List view</span>
|
|
248
|
+
<input type="hidden" value="SINGLE_CARD">
|
|
249
|
+
</a>
|
|
250
|
+
</li>
|
|
251
|
+
</ul>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="table-toolbar-column align-self-end">
|
|
257
|
+
<button type="button" class="btn btn-default btn-icon-only btn-component" tabindex="0">
|
|
258
|
+
<span class="rioglyph rioglyph-settings">
|
|
259
|
+
</span>
|
|
260
|
+
</button>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### Props: TableToolbar
|
|
268
|
+
|
|
269
|
+
### TableToolbar
|
|
270
|
+
|
|
271
|
+
| Name | Type | Default | Description |
|
|
272
|
+
| --- | --- | --- | --- |
|
|
273
|
+
| className | string | — | Optional class names for the wrapper element. |
|
|
274
|
+
| collapseCardClassName | string | — | Optional class names for the card that wraps collapsed toolbar controls in the compact mobile layout. |
|
|
275
|
+
| responsiveCollapseBreakpoint | number | 544 | Optional toolbar width in pixels at which the toolbar switches into its compact mobile/collapsible layout. |
|
|
276
|
+
| disableResponsiveCollapse | boolean | false | Disables the compact mobile/collapsible toolbar layout. Use this as an escape hatch when a consuming service needs to keep the default wrapping toolbar behavior regardless of the available toolbar width. |
|
|
277
|
+
|
|
278
|
+
#### Props: TableCardsSorting
|
|
279
|
+
|
|
280
|
+
### TableCardsSorting
|
|
281
|
+
|
|
282
|
+
| Name | Type | Default | Description |
|
|
283
|
+
| --- | --- | --- | --- |
|
|
284
|
+
| sortName | string | — | "Name", "Key", or "Id" of the current sorted column. |
|
|
285
|
+
| sortOrder | 'asc' \| 'desc' | 'asc' | Defines the sort direction. |
|
|
286
|
+
| selectOptions | TableCardsSortingOption[] | — | List of objects for the column name select component. |
|
|
287
|
+
| └id | string | — | ID to use for the select option. |
|
|
288
|
+
| └label | string \| React.ReactNode | — | Translated column label to be shown in the select. |
|
|
289
|
+
| └selected | boolean | — | Defines the column which is currently sorted by. |
|
|
290
|
+
| └disabled | boolean | — | Defines if the column can be sorted. Hence, it will be disabled in the select. |
|
|
291
|
+
| onSortChange | (name: string, order: 'asc' \| 'desc') => void | noop | Function that is called when the sort key or direction changes. |
|
|
292
|
+
| className | string | — | Optional class names for the wrapper element. |
|
|
293
|
+
|
|
294
|
+
## TableSearch
|
|
295
|
+
|
|
296
|
+
### Example: Example 2
|
|
297
|
+
|
|
298
|
+
ID
|
|
299
|
+
|
|
300
|
+
Name
|
|
301
|
+
|
|
302
|
+
Status
|
|
303
|
+
|
|
304
|
+
7354
|
|
305
|
+
|
|
306
|
+
Vehicle 7354
|
|
307
|
+
|
|
308
|
+
Active
|
|
309
|
+
|
|
310
|
+
233
|
|
311
|
+
|
|
312
|
+
Vehicle 233
|
|
313
|
+
|
|
314
|
+
Inactive
|
|
315
|
+
|
|
316
|
+
895
|
|
317
|
+
|
|
318
|
+
Vehicle 895
|
|
319
|
+
|
|
320
|
+
Active
|
|
321
|
+
|
|
322
|
+
3456
|
|
323
|
+
|
|
324
|
+
Vehicle 3456
|
|
325
|
+
|
|
326
|
+
Active
|
|
327
|
+
|
|
328
|
+
#### React (tsx)
|
|
329
|
+
|
|
330
|
+
```tsx
|
|
331
|
+
import { useState } from 'react';
|
|
332
|
+
|
|
333
|
+
import Table, { TableBody, TableColumn, TableHeader, TableHeaderColumn, TableRow } from '@rio-cloud/rio-uikit/Table';
|
|
334
|
+
import TableToolbar, { TableToolbarColumn } from '@rio-cloud/rio-uikit/TableToolbar';
|
|
335
|
+
import TableSearch from '@rio-cloud/rio-uikit/TableSearch';
|
|
336
|
+
|
|
337
|
+
const demoItems = [
|
|
338
|
+
{ id: '7354', name: 'Vehicle 7354', status: 'Active' },
|
|
339
|
+
{ id: '233', name: 'Vehicle 233', status: 'Inactive' },
|
|
340
|
+
{ id: '895', name: 'Vehicle 895', status: 'Active' },
|
|
341
|
+
{ id: '3456', name: 'Vehicle 3456', status: 'Active' },
|
|
342
|
+
];
|
|
343
|
+
|
|
344
|
+
const TableSearchDemo = () => {
|
|
345
|
+
const [searchValue, setSearchValue] = useState('');
|
|
346
|
+
|
|
347
|
+
const normalizedSearchValue = searchValue.toLowerCase();
|
|
348
|
+
const filteredItems = demoItems.filter(
|
|
349
|
+
item =>
|
|
350
|
+
item.id.toLowerCase().includes(normalizedSearchValue) ||
|
|
351
|
+
item.name.toLowerCase().includes(normalizedSearchValue) ||
|
|
352
|
+
item.status.toLowerCase().includes(normalizedSearchValue)
|
|
353
|
+
);
|
|
354
|
+
|
|
355
|
+
return (
|
|
356
|
+
<div>
|
|
357
|
+
<TableToolbar>
|
|
358
|
+
<TableToolbarColumn horizontalAlign='right'>
|
|
359
|
+
<TableSearch value={searchValue} onChange={setSearchValue} placeholder='Search in table' />
|
|
360
|
+
</TableToolbarColumn>
|
|
361
|
+
</TableToolbar>
|
|
362
|
+
<Table hover>
|
|
363
|
+
<TableHeader>
|
|
364
|
+
<TableHeaderColumn columnKey='id'>ID</TableHeaderColumn>
|
|
365
|
+
<TableHeaderColumn columnKey='name'>Name</TableHeaderColumn>
|
|
366
|
+
<TableHeaderColumn columnKey='status'>Status</TableHeaderColumn>
|
|
367
|
+
</TableHeader>
|
|
368
|
+
<TableBody>
|
|
369
|
+
{filteredItems.map(item => (
|
|
370
|
+
<TableRow key={item.id} id={item.id}>
|
|
371
|
+
<TableColumn>
|
|
372
|
+
<span>{item.id}</span>
|
|
373
|
+
</TableColumn>
|
|
374
|
+
<TableColumn>
|
|
375
|
+
<span>{item.name}</span>
|
|
376
|
+
</TableColumn>
|
|
377
|
+
<TableColumn>
|
|
378
|
+
<span>{item.status}</span>
|
|
379
|
+
</TableColumn>
|
|
380
|
+
</TableRow>
|
|
381
|
+
))}
|
|
382
|
+
</TableBody>
|
|
383
|
+
</Table>
|
|
384
|
+
</div>
|
|
385
|
+
);
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
export default TableSearchDemo;
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
#### HTML (html)
|
|
392
|
+
|
|
393
|
+
```html
|
|
394
|
+
<div>
|
|
395
|
+
<div class="table-toolbar">
|
|
396
|
+
<div class="table-toolbar-container">
|
|
397
|
+
<div class="table-toolbar-group-right">
|
|
398
|
+
<div class="table-toolbar-column align-self-end">
|
|
399
|
+
<div class="table-toolbar-search input-group">
|
|
400
|
+
<span class="input-group-addon">
|
|
401
|
+
<span class="rioglyph rioglyph-search">
|
|
402
|
+
</span>
|
|
403
|
+
</span>
|
|
404
|
+
<div class="ClearableInput input-group">
|
|
405
|
+
<input placeholder="Search in table" class="form-control" type="text" tabindex="0" value="">
|
|
406
|
+
<span class="clearButton hide">
|
|
407
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
408
|
+
</span>
|
|
409
|
+
</span>
|
|
410
|
+
</div>
|
|
411
|
+
</div>
|
|
412
|
+
</div>
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
<div class="table table-view-table table-hover border table-rounded table-has-head" role="table" style="--table-columns: minmax(50px, 1fr) minmax(50px, 1fr) minmax(50px, 1fr); --table-areas: "table-col-1 table-col-2 table-col-3"; --table-column-count: 3; --table-sticky-reference-top: var(--table-sticky-offset); --table-width: 908px;" aria-colcount="3">
|
|
417
|
+
<div class="table-head" role="rowgroup">
|
|
418
|
+
<div class="table-head-grid" role="row" style="grid-template-rows: repeat(1, auto);">
|
|
419
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="id" role="columnheader" aria-colindex="1" aria-rowindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
420
|
+
<div class="table-head-cell-content">
|
|
421
|
+
<div class="table-head-cell-content-row">
|
|
422
|
+
<span class="table-head-label-wrapper">
|
|
423
|
+
<span class="table-head-label">ID</span>
|
|
424
|
+
</span>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="name" role="columnheader" aria-colindex="2" aria-rowindex="1" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
429
|
+
<div class="table-head-cell-content">
|
|
430
|
+
<div class="table-head-cell-content-row">
|
|
431
|
+
<span class="table-head-label-wrapper">
|
|
432
|
+
<span class="table-head-label">Name</span>
|
|
433
|
+
</span>
|
|
434
|
+
</div>
|
|
435
|
+
</div>
|
|
436
|
+
</div>
|
|
437
|
+
<div class="table-head-cell table-align-left table-vertical-align-middle" data-column="status" role="columnheader" aria-colindex="3" aria-rowindex="1" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
438
|
+
<div class="table-head-cell-content">
|
|
439
|
+
<div class="table-head-cell-content-row">
|
|
440
|
+
<span class="table-head-label-wrapper">
|
|
441
|
+
<span class="table-head-label">Status</span>
|
|
442
|
+
</span>
|
|
443
|
+
</div>
|
|
444
|
+
</div>
|
|
445
|
+
</div>
|
|
446
|
+
</div>
|
|
447
|
+
</div>
|
|
448
|
+
<div class="table-body" role="rowgroup">
|
|
449
|
+
<div id="7354" class="table-row" data-index="0" data-row-id="0" role="row">
|
|
450
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
451
|
+
<div class="table-cell-content overflow-hidden">
|
|
452
|
+
<span>7354</span>
|
|
453
|
+
</div>
|
|
454
|
+
</div>
|
|
455
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
456
|
+
<div class="table-cell-content overflow-hidden">
|
|
457
|
+
<span>Vehicle 7354</span>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
461
|
+
<div class="table-cell-content overflow-hidden">
|
|
462
|
+
<span>Active</span>
|
|
463
|
+
</div>
|
|
464
|
+
</div>
|
|
465
|
+
</div>
|
|
466
|
+
<div id="233" class="table-row" data-index="1" data-row-id="1" role="row">
|
|
467
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
468
|
+
<div class="table-cell-content overflow-hidden">
|
|
469
|
+
<span>233</span>
|
|
470
|
+
</div>
|
|
471
|
+
</div>
|
|
472
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
473
|
+
<div class="table-cell-content overflow-hidden">
|
|
474
|
+
<span>Vehicle 233</span>
|
|
475
|
+
</div>
|
|
476
|
+
</div>
|
|
477
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
478
|
+
<div class="table-cell-content overflow-hidden">
|
|
479
|
+
<span>Inactive</span>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
</div>
|
|
483
|
+
<div id="895" class="table-row" data-index="2" data-row-id="2" role="row">
|
|
484
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
485
|
+
<div class="table-cell-content overflow-hidden">
|
|
486
|
+
<span>895</span>
|
|
487
|
+
</div>
|
|
488
|
+
</div>
|
|
489
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
490
|
+
<div class="table-cell-content overflow-hidden">
|
|
491
|
+
<span>Vehicle 895</span>
|
|
492
|
+
</div>
|
|
493
|
+
</div>
|
|
494
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
495
|
+
<div class="table-cell-content overflow-hidden">
|
|
496
|
+
<span>Active</span>
|
|
497
|
+
</div>
|
|
498
|
+
</div>
|
|
499
|
+
</div>
|
|
500
|
+
<div id="3456" class="table-row" data-index="3" data-row-id="3" role="row">
|
|
501
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
502
|
+
<div class="table-cell-content overflow-hidden">
|
|
503
|
+
<span>3456</span>
|
|
504
|
+
</div>
|
|
505
|
+
</div>
|
|
506
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
507
|
+
<div class="table-cell-content overflow-hidden">
|
|
508
|
+
<span>Vehicle 3456</span>
|
|
509
|
+
</div>
|
|
510
|
+
</div>
|
|
511
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
512
|
+
<div class="table-cell-content overflow-hidden">
|
|
513
|
+
<span>Active</span>
|
|
514
|
+
</div>
|
|
515
|
+
</div>
|
|
516
|
+
</div>
|
|
517
|
+
</div>
|
|
518
|
+
</div>
|
|
519
|
+
</div>
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
#### Props: TableSearch
|
|
523
|
+
|
|
524
|
+
### TableSearch
|
|
525
|
+
|
|
526
|
+
| Name | Type | Default | Description |
|
|
527
|
+
| --- | --- | --- | --- |
|
|
528
|
+
| className | string | — | Optional class names for the wrapper. |
|
|
529
|
+
| ...additional props | | — | As this component is using the ClearableInput component internally, checkout all possible props there. |
|
|
530
|
+
|
|
531
|
+
## TableViewToggles
|
|
532
|
+
|
|
533
|
+
### Example: Example 3
|
|
534
|
+
|
|
535
|
+
Table view
|
|
536
|
+
Cards view
|
|
537
|
+
List view
|
|
538
|
+
|
|
539
|
+
ID
|
|
540
|
+
|
|
541
|
+
Name
|
|
542
|
+
|
|
543
|
+
Status
|
|
544
|
+
|
|
545
|
+
7354
|
|
546
|
+
|
|
547
|
+
Vehicle 7354
|
|
548
|
+
|
|
549
|
+
Active
|
|
550
|
+
|
|
551
|
+
233
|
|
552
|
+
|
|
553
|
+
Vehicle 233
|
|
554
|
+
|
|
555
|
+
Inactive
|
|
556
|
+
|
|
557
|
+
895
|
|
558
|
+
|
|
559
|
+
Vehicle 895
|
|
560
|
+
|
|
561
|
+
Maintenance
|
|
562
|
+
|
|
563
|
+
#### React (tsx)
|
|
564
|
+
|
|
565
|
+
```tsx
|
|
566
|
+
import { useState } from 'react';
|
|
567
|
+
|
|
568
|
+
import Table, { TableBody, TableColumn, TableHeader, TableHeaderColumn, TableRow } from '@rio-cloud/rio-uikit/Table';
|
|
569
|
+
import TableToolbar, { TableToolbarColumn } from '@rio-cloud/rio-uikit/TableToolbar';
|
|
570
|
+
import TableViewToggles, { type TableViewTogglesViewType } from '@rio-cloud/rio-uikit/TableViewToggles';
|
|
571
|
+
|
|
572
|
+
const demoItems = [
|
|
573
|
+
{ id: '7354', name: 'Vehicle 7354', status: 'Active' },
|
|
574
|
+
{ id: '233', name: 'Vehicle 233', status: 'Inactive' },
|
|
575
|
+
{ id: '895', name: 'Vehicle 895', status: 'Maintenance' },
|
|
576
|
+
];
|
|
577
|
+
|
|
578
|
+
const statusLabelClassNames: Record<(typeof demoItems)[number]['status'], string> = {
|
|
579
|
+
Active: 'label label-success label-filled label-condensed',
|
|
580
|
+
Inactive: 'label label-warning label-filled label-condensed',
|
|
581
|
+
Maintenance: 'label label-info label-filled label-condensed',
|
|
582
|
+
};
|
|
583
|
+
|
|
584
|
+
const TableViewTogglesDemo = () => {
|
|
585
|
+
const [viewType, setViewType] = useState<TableViewTogglesViewType>(TableViewToggles.VIEW_TYPE_TABLE);
|
|
586
|
+
|
|
587
|
+
return (
|
|
588
|
+
<div>
|
|
589
|
+
<TableToolbar>
|
|
590
|
+
<TableToolbarColumn horizontalAlign='right'>
|
|
591
|
+
<TableViewToggles
|
|
592
|
+
viewType={viewType}
|
|
593
|
+
onViewTypeChange={setViewType}
|
|
594
|
+
tableViewLabel='Table view'
|
|
595
|
+
singleCardViewLabel='List view'
|
|
596
|
+
multiCardsViewLabel='Cards view'
|
|
597
|
+
/>
|
|
598
|
+
</TableToolbarColumn>
|
|
599
|
+
</TableToolbar>
|
|
600
|
+
<Table viewType={viewType} hover>
|
|
601
|
+
<TableHeader>
|
|
602
|
+
<TableHeaderColumn columnKey='id'>ID</TableHeaderColumn>
|
|
603
|
+
<TableHeaderColumn columnKey='name'>Name</TableHeaderColumn>
|
|
604
|
+
<TableHeaderColumn columnKey='status'>Status</TableHeaderColumn>
|
|
605
|
+
</TableHeader>
|
|
606
|
+
<TableBody>
|
|
607
|
+
{demoItems.map(item => (
|
|
608
|
+
<TableRow key={item.id} id={item.id}>
|
|
609
|
+
<TableColumn>
|
|
610
|
+
<span>{item.id}</span>
|
|
611
|
+
</TableColumn>
|
|
612
|
+
<TableColumn>
|
|
613
|
+
<span>{item.name}</span>
|
|
614
|
+
</TableColumn>
|
|
615
|
+
<TableColumn>
|
|
616
|
+
<span className={statusLabelClassNames[item.status]}>{item.status}</span>
|
|
617
|
+
</TableColumn>
|
|
618
|
+
</TableRow>
|
|
619
|
+
))}
|
|
620
|
+
</TableBody>
|
|
621
|
+
</Table>
|
|
622
|
+
</div>
|
|
623
|
+
);
|
|
624
|
+
};
|
|
625
|
+
|
|
626
|
+
export default TableViewTogglesDemo;
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
#### HTML (html)
|
|
630
|
+
|
|
631
|
+
```html
|
|
632
|
+
<div>
|
|
633
|
+
<div class="table-toolbar">
|
|
634
|
+
<div class="table-toolbar-container">
|
|
635
|
+
<div class="table-toolbar-group-right">
|
|
636
|
+
<div class="table-toolbar-column align-self-end">
|
|
637
|
+
<div class="TableViewToggles">
|
|
638
|
+
<div class="form-group margin-bottom-0">
|
|
639
|
+
<div class="select dropdown">
|
|
640
|
+
<button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
|
|
641
|
+
<span class="selected-option-text">
|
|
642
|
+
<span>
|
|
643
|
+
<span class="rioglyph rioglyph-table-view">
|
|
644
|
+
</span>
|
|
645
|
+
</span>
|
|
646
|
+
</span>
|
|
647
|
+
<span class="select-toggle-actions">
|
|
648
|
+
<span class="clearButton hide pointer-events-none">
|
|
649
|
+
<span class="clearButtonIcon rioglyph rioglyph-remove-sign">
|
|
650
|
+
</span>
|
|
651
|
+
</span>
|
|
652
|
+
<span class="caret">
|
|
653
|
+
</span>
|
|
654
|
+
</span>
|
|
655
|
+
</button>
|
|
656
|
+
<ul class="dropdown-menu pull-right" role="menu">
|
|
657
|
+
<li class="" role="listitem">
|
|
658
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="TABLE" data-item-index="0">
|
|
659
|
+
<span class="selected-option-dropdown-item">
|
|
660
|
+
<span class="rioglyph rioglyph-table-view">
|
|
661
|
+
</span>Table view</span>
|
|
662
|
+
<input type="hidden" value="TABLE">
|
|
663
|
+
</a>
|
|
664
|
+
</li>
|
|
665
|
+
<li class="" role="listitem">
|
|
666
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="MULTI_CARDS" data-item-index="1">
|
|
667
|
+
<span class="selected-option-dropdown-item">
|
|
668
|
+
<span class="rioglyph rioglyph-split-view">
|
|
669
|
+
</span>Cards view</span>
|
|
670
|
+
<input type="hidden" value="MULTI_CARDS">
|
|
671
|
+
</a>
|
|
672
|
+
</li>
|
|
673
|
+
<li class="" role="listitem">
|
|
674
|
+
<a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="SINGLE_CARD" data-item-index="2">
|
|
675
|
+
<span class="selected-option-dropdown-item">
|
|
676
|
+
<span class="rioglyph rioglyph-th-list">
|
|
677
|
+
</span>List view</span>
|
|
678
|
+
<input type="hidden" value="SINGLE_CARD">
|
|
679
|
+
</a>
|
|
680
|
+
</li>
|
|
681
|
+
</ul>
|
|
682
|
+
</div>
|
|
683
|
+
</div>
|
|
684
|
+
</div>
|
|
685
|
+
</div>
|
|
686
|
+
</div>
|
|
687
|
+
</div>
|
|
688
|
+
</div>
|
|
689
|
+
<div class="table table-view-table table-hover border table-rounded table-has-head" role="table" style="--table-columns: minmax(50px, 1fr) minmax(50px, 1fr) minmax(50px, 1fr); --table-areas: "table-col-1 table-col-2 table-col-3"; --table-column-count: 3; --table-sticky-reference-top: var(--table-sticky-offset); --table-width: 908px;" aria-colcount="3">
|
|
690
|
+
<div class="table-head" role="rowgroup">
|
|
691
|
+
<div class="table-head-grid" role="row" style="grid-template-rows: repeat(1, auto);">
|
|
692
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="id" role="columnheader" aria-colindex="1" aria-rowindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
693
|
+
<div class="table-head-cell-content">
|
|
694
|
+
<div class="table-head-cell-content-row">
|
|
695
|
+
<span class="table-head-label-wrapper">
|
|
696
|
+
<span class="table-head-label">ID</span>
|
|
697
|
+
</span>
|
|
698
|
+
</div>
|
|
699
|
+
</div>
|
|
700
|
+
</div>
|
|
701
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="name" role="columnheader" aria-colindex="2" aria-rowindex="1" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
702
|
+
<div class="table-head-cell-content">
|
|
703
|
+
<div class="table-head-cell-content-row">
|
|
704
|
+
<span class="table-head-label-wrapper">
|
|
705
|
+
<span class="table-head-label">Name</span>
|
|
706
|
+
</span>
|
|
707
|
+
</div>
|
|
708
|
+
</div>
|
|
709
|
+
</div>
|
|
710
|
+
<div class="table-head-cell table-align-left table-vertical-align-middle" data-column="status" role="columnheader" aria-colindex="3" aria-rowindex="1" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
711
|
+
<div class="table-head-cell-content">
|
|
712
|
+
<div class="table-head-cell-content-row">
|
|
713
|
+
<span class="table-head-label-wrapper">
|
|
714
|
+
<span class="table-head-label">Status</span>
|
|
715
|
+
</span>
|
|
716
|
+
</div>
|
|
717
|
+
</div>
|
|
718
|
+
</div>
|
|
719
|
+
</div>
|
|
720
|
+
</div>
|
|
721
|
+
<div class="table-body" role="rowgroup">
|
|
722
|
+
<div id="7354" class="table-row" data-index="0" data-row-id="0" role="row">
|
|
723
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
724
|
+
<div class="table-cell-content overflow-hidden">
|
|
725
|
+
<span>7354</span>
|
|
726
|
+
</div>
|
|
727
|
+
</div>
|
|
728
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
729
|
+
<div class="table-cell-content overflow-hidden">
|
|
730
|
+
<span>Vehicle 7354</span>
|
|
731
|
+
</div>
|
|
732
|
+
</div>
|
|
733
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
734
|
+
<div class="table-cell-content overflow-hidden">
|
|
735
|
+
<span class="label label-success label-filled label-condensed">Active</span>
|
|
736
|
+
</div>
|
|
737
|
+
</div>
|
|
738
|
+
</div>
|
|
739
|
+
<div id="233" class="table-row" data-index="1" data-row-id="1" role="row">
|
|
740
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
741
|
+
<div class="table-cell-content overflow-hidden">
|
|
742
|
+
<span>233</span>
|
|
743
|
+
</div>
|
|
744
|
+
</div>
|
|
745
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
746
|
+
<div class="table-cell-content overflow-hidden">
|
|
747
|
+
<span>Vehicle 233</span>
|
|
748
|
+
</div>
|
|
749
|
+
</div>
|
|
750
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
751
|
+
<div class="table-cell-content overflow-hidden">
|
|
752
|
+
<span class="label label-warning label-filled label-condensed">Inactive</span>
|
|
753
|
+
</div>
|
|
754
|
+
</div>
|
|
755
|
+
</div>
|
|
756
|
+
<div id="895" class="table-row" data-index="2" data-row-id="2" role="row">
|
|
757
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="id" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
758
|
+
<div class="table-cell-content overflow-hidden">
|
|
759
|
+
<span>895</span>
|
|
760
|
+
</div>
|
|
761
|
+
</div>
|
|
762
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="name" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
763
|
+
<div class="table-cell-content overflow-hidden">
|
|
764
|
+
<span>Vehicle 895</span>
|
|
765
|
+
</div>
|
|
766
|
+
</div>
|
|
767
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="status" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
768
|
+
<div class="table-cell-content overflow-hidden">
|
|
769
|
+
<span class="label label-info label-filled label-condensed">Maintenance</span>
|
|
770
|
+
</div>
|
|
771
|
+
</div>
|
|
772
|
+
</div>
|
|
773
|
+
</div>
|
|
774
|
+
</div>
|
|
775
|
+
</div>
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
#### Props: TableViewToggles
|
|
779
|
+
|
|
780
|
+
### TableViewToggles
|
|
781
|
+
|
|
782
|
+
| Name | Type | Default | Description |
|
|
783
|
+
| --- | --- | --- | --- |
|
|
784
|
+
| viewType | TableViewTogglesViewType | — | The current viewType for controlling the TablesViewToggles component. Possible values are: 'SINGLE_CARD' 'MULTI_CARDS' 'TABLE' TableViewToggles.VIEW_TYPE_TABLE TableViewToggles.VIEW_TYPE_SINGLE_CARD TableViewToggles.VIEW_TYPE_MULTI_CARDS |
|
|
785
|
+
| initialViewType | TableViewTogglesViewType | TableViewToggles.VIEW_TYPE_TABLE | Defines the initial viewType (when viewType is not controlled from the outside). Possible values are: 'SINGLE_CARD' 'MULTI_CARDS' 'TABLE' TableViewToggles.VIEW_TYPE_TABLE TableViewToggles.VIEW_TYPE_SINGLE_CARD TableViewToggles.VIEW_TYPE_MULTI_CARDS |
|
|
786
|
+
| disabledViewTypes | TableViewTogglesViewType[] | [] | Defines the view types which shall not be supported and are omitted. |
|
|
787
|
+
| onViewTypeChange | (viewType: TableViewTogglesViewType) => void | — | Callback function for when the user wants to change the viewType. Receives the new type as an argument. |
|
|
788
|
+
| tableViewTooltipContent(deprecated) | string \| ReactNode | — | Optional tooltip content for table view button. |
|
|
789
|
+
| tableViewLabel | string \| ReactNode | — | Optional label content for the table view select item. |
|
|
790
|
+
| singleCardViewTooltipContent(deprecated) | string \| ReactNode | — | Optional tooltip content for single card view button. |
|
|
791
|
+
| singleCardViewLabel | string \| ReactNode | — | Optional label content for the single card view select item. |
|
|
792
|
+
| multiCardsViewTooltipContent(deprecated) | string \| ReactNode | — | Optional tooltip content for multi card view button. |
|
|
793
|
+
| multiCardsViewLabel | string \| ReactNode | — | Optional label content for the multi cards view select item. |
|
|
794
|
+
| disabled | boolean | false | Disables all buttons. This means the buttons cannot be clicked. Used when disabling toolbar buttons during loading state or when the corresponding table is empty. |
|
|
795
|
+
| className | string | — | Optional class names for the wrapper element. |
|
|
796
|
+
|
|
797
|
+
## TableRowActionsDropdown
|
|
798
|
+
|
|
799
|
+
Use TableRowActionsDropdown as the standardized overflow trigger for secondary row actions. It keeps the horizontal options icon and button styling consistent across different table implementations.
|
|
800
|
+
|
|
801
|
+
### Example: Example 4
|
|
802
|
+
|
|
803
|
+
Workflow
|
|
804
|
+
|
|
805
|
+
When to use it
|
|
806
|
+
|
|
807
|
+
Actions
|
|
808
|
+
|
|
809
|
+
Archived order
|
|
810
|
+
|
|
811
|
+
Secondary actions in a compact overflow trigger.
|
|
812
|
+
|
|
813
|
+
Delivery run
|
|
814
|
+
|
|
815
|
+
Uses the same trigger for consistent row-action menus.
|
|
816
|
+
|
|
817
|
+
#### React (tsx)
|
|
818
|
+
|
|
819
|
+
```tsx
|
|
820
|
+
import Notification from '@rio-cloud/rio-uikit/Notification';
|
|
821
|
+
import Table, { TableBody, TableColumn, TableHeader, TableHeaderColumn, TableRow } from '@rio-cloud/rio-uikit/Table';
|
|
822
|
+
import TableRowActionsDropdown from '@rio-cloud/rio-uikit/TableRowActionsDropdown';
|
|
823
|
+
|
|
824
|
+
const rows = [
|
|
825
|
+
{
|
|
826
|
+
id: 'archived-order',
|
|
827
|
+
workflow: 'Archived order',
|
|
828
|
+
intent: 'Secondary actions in a compact overflow trigger.',
|
|
829
|
+
items: [
|
|
830
|
+
{
|
|
831
|
+
value: 'Share',
|
|
832
|
+
onSelect: () => Notification.info('Share archived order'),
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
value: 'Duplicate',
|
|
836
|
+
onSelect: () => Notification.info('Duplicate archived order'),
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
divider: true,
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
value: 'Archive',
|
|
843
|
+
onSelect: () => Notification.info('Archive archived order'),
|
|
844
|
+
},
|
|
845
|
+
],
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
id: 'delivery-run',
|
|
849
|
+
workflow: 'Delivery run',
|
|
850
|
+
intent: 'Uses the same trigger for consistent row-action menus.',
|
|
851
|
+
ariaLabel: 'Delivery run actions',
|
|
852
|
+
items: [
|
|
853
|
+
{
|
|
854
|
+
value: 'Assign',
|
|
855
|
+
onSelect: () => Notification.info('Assign delivery run'),
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
value: 'Reschedule',
|
|
859
|
+
onSelect: () => Notification.info('Reschedule delivery run'),
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
divider: true,
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
value: 'Cancel',
|
|
866
|
+
onSelect: () => Notification.info('Cancel delivery run'),
|
|
867
|
+
},
|
|
868
|
+
],
|
|
869
|
+
},
|
|
870
|
+
];
|
|
871
|
+
|
|
872
|
+
const TableRowActionsDropdownDemo = () => (
|
|
873
|
+
<Table hover>
|
|
874
|
+
<TableHeader>
|
|
875
|
+
<TableHeaderColumn columnKey='workflow' width='25%'>
|
|
876
|
+
Workflow
|
|
877
|
+
</TableHeaderColumn>
|
|
878
|
+
<TableHeaderColumn columnKey='intent'>When to use it</TableHeaderColumn>
|
|
879
|
+
<TableHeaderColumn columnKey='actions' width={120} horizontalAlign='right' className='padding-10'>
|
|
880
|
+
Actions
|
|
881
|
+
</TableHeaderColumn>
|
|
882
|
+
</TableHeader>
|
|
883
|
+
<TableBody>
|
|
884
|
+
{rows.map(row => (
|
|
885
|
+
<TableRow key={row.id} id={row.id}>
|
|
886
|
+
<TableColumn>{row.workflow}</TableColumn>
|
|
887
|
+
<TableColumn>{row.intent}</TableColumn>
|
|
888
|
+
<TableColumn columnKey='actions' horizontalAlign='right' className='padding-10'>
|
|
889
|
+
<TableRowActionsDropdown aria-label={row.ariaLabel} items={row.items} />
|
|
890
|
+
</TableColumn>
|
|
891
|
+
</TableRow>
|
|
892
|
+
))}
|
|
893
|
+
</TableBody>
|
|
894
|
+
</Table>
|
|
895
|
+
);
|
|
896
|
+
|
|
897
|
+
export default TableRowActionsDropdownDemo;
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
#### HTML (html)
|
|
901
|
+
|
|
902
|
+
```html
|
|
903
|
+
<div class="table table-view-table table-hover border table-rounded table-has-head" role="table" style="--table-columns: minmax(0, calc(var(--table-width) * 25 / 100)) minmax(50px, 1fr) minmax(0, 120px); --table-areas: "table-col-1 table-col-2 table-col-3"; --table-column-count: 3; --table-sticky-reference-top: var(--table-sticky-offset); --table-width: 908px;" aria-colcount="3">
|
|
904
|
+
<div class="table-head" role="rowgroup">
|
|
905
|
+
<div class="table-head-grid" role="row" style="grid-template-rows: repeat(1, auto);">
|
|
906
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="workflow" role="columnheader" aria-colindex="1" aria-rowindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
907
|
+
<div class="table-head-cell-content">
|
|
908
|
+
<div class="table-head-cell-content-row">
|
|
909
|
+
<span class="table-head-label-wrapper">
|
|
910
|
+
<span class="table-head-label">Workflow</span>
|
|
911
|
+
</span>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
</div>
|
|
915
|
+
<div class="table-head-cell table-head-cell-has-column-divider table-align-left table-vertical-align-middle" data-column="intent" role="columnheader" aria-colindex="2" aria-rowindex="1" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
916
|
+
<div class="table-head-cell-content">
|
|
917
|
+
<div class="table-head-cell-content-row">
|
|
918
|
+
<span class="table-head-label-wrapper">
|
|
919
|
+
<span class="table-head-label">When to use it</span>
|
|
920
|
+
</span>
|
|
921
|
+
</div>
|
|
922
|
+
</div>
|
|
923
|
+
</div>
|
|
924
|
+
<div class="table-head-cell table-align-right table-vertical-align-middle padding-10" data-column="actions" role="columnheader" aria-colindex="3" aria-rowindex="1" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
925
|
+
<div class="table-head-cell-content">
|
|
926
|
+
<div class="table-head-cell-content-row">
|
|
927
|
+
<span class="table-head-label-wrapper">
|
|
928
|
+
<span class="table-head-label">Actions</span>
|
|
929
|
+
</span>
|
|
930
|
+
</div>
|
|
931
|
+
</div>
|
|
932
|
+
</div>
|
|
933
|
+
</div>
|
|
934
|
+
</div>
|
|
935
|
+
<div class="table-body" role="rowgroup">
|
|
936
|
+
<div id="archived-order" class="table-row" data-index="0" data-row-id="0" role="row">
|
|
937
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="workflow" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
938
|
+
<div class="table-cell-content overflow-hidden">Archived order</div>
|
|
939
|
+
</div>
|
|
940
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="intent" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
941
|
+
<div class="table-cell-content overflow-hidden">Secondary actions in a compact overflow trigger.</div>
|
|
942
|
+
</div>
|
|
943
|
+
<div class="table-cell table-align-right table-vertical-align-middle padding-10" data-column="actions" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
944
|
+
<div class="table-cell-content overflow-hidden">
|
|
945
|
+
<div class="dropdown btn-group">
|
|
946
|
+
<button type="button" aria-label="Row actions" id="mqlkojnyu3" class="btn btn-muted btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
|
|
947
|
+
<span class="rioglyph rioglyph-option-horizontal" aria-hidden="true">
|
|
948
|
+
</span>
|
|
949
|
+
</button>
|
|
950
|
+
</div>
|
|
951
|
+
</div>
|
|
952
|
+
</div>
|
|
953
|
+
</div>
|
|
954
|
+
<div id="delivery-run" class="table-row" data-index="1" data-row-id="1" role="row">
|
|
955
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="workflow" role="cell" aria-colindex="1" style="grid-area: 1 / 1 / span 1 / span 1;">
|
|
956
|
+
<div class="table-cell-content overflow-hidden">Delivery run</div>
|
|
957
|
+
</div>
|
|
958
|
+
<div class="table-cell table-align-left table-vertical-align-middle" data-column="intent" role="cell" aria-colindex="2" style="grid-area: 1 / 2 / span 1 / span 1;">
|
|
959
|
+
<div class="table-cell-content overflow-hidden">Uses the same trigger for consistent row-action menus.</div>
|
|
960
|
+
</div>
|
|
961
|
+
<div class="table-cell table-align-right table-vertical-align-middle padding-10" data-column="actions" role="cell" aria-colindex="3" style="grid-area: 1 / 3 / span 1 / span 1;">
|
|
962
|
+
<div class="table-cell-content overflow-hidden">
|
|
963
|
+
<div class="dropdown btn-group">
|
|
964
|
+
<button type="button" aria-label="Delivery run actions" id="8t0kb8e4cl" class="btn btn-muted btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
|
|
965
|
+
<span class="rioglyph rioglyph-option-horizontal" aria-hidden="true">
|
|
966
|
+
</span>
|
|
967
|
+
</button>
|
|
968
|
+
</div>
|
|
969
|
+
</div>
|
|
970
|
+
</div>
|
|
971
|
+
</div>
|
|
972
|
+
</div>
|
|
973
|
+
</div>
|
|
974
|
+
```
|
|
975
|
+
|
|
976
|
+
#### Props: TableRowActionsDropdown
|
|
977
|
+
|
|
978
|
+
### TableRowActionsDropdown
|
|
979
|
+
|
|
980
|
+
| Name | Type | Default | Description |
|
|
981
|
+
| --- | --- | --- | --- |
|
|
982
|
+
| aria-label | string | 'Row actions' | Accessible label applied to the icon-only trigger button. |
|