@axinom/mosaic-ui 0.66.0-rc.8 → 0.66.0

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.
Files changed (146) hide show
  1. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts.map +1 -1
  2. package/dist/components/FieldSelection/FieldSelection.d.ts.map +1 -1
  3. package/dist/components/Filters/Filter/Filter.d.ts.map +1 -1
  4. package/dist/components/Filters/Filters.model.d.ts +5 -0
  5. package/dist/components/Filters/Filters.model.d.ts.map +1 -1
  6. package/dist/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.d.ts +2 -0
  7. package/dist/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.d.ts.map +1 -1
  8. package/dist/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.d.ts +2 -0
  9. package/dist/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.d.ts.map +1 -1
  10. package/dist/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.d.ts +2 -0
  11. package/dist/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.d.ts.map +1 -1
  12. package/dist/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.d.ts +2 -0
  13. package/dist/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.d.ts.map +1 -1
  14. package/dist/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.d.ts +2 -0
  15. package/dist/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.d.ts.map +1 -1
  16. package/dist/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.d.ts +2 -0
  17. package/dist/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.d.ts.map +1 -1
  18. package/dist/components/FormElements/Radio/Radio.d.ts.map +1 -1
  19. package/dist/components/FormElements/ToggleButton/ToggleButton.d.ts.map +1 -1
  20. package/dist/components/Hub/Tile/Tile.d.ts.map +1 -1
  21. package/dist/components/Icons/Icons.d.ts +4 -9
  22. package/dist/components/Icons/Icons.d.ts.map +1 -1
  23. package/dist/components/LandingPageTiles/TileLarge/TileLarge.d.ts.map +1 -1
  24. package/dist/components/LandingPageTiles/TileSmall/TileSmall.d.ts.map +1 -1
  25. package/dist/components/List/ListCheckBox/ListCheckBox.d.ts.map +1 -1
  26. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts.map +1 -1
  27. package/dist/components/List/ListHeader/ListHeader.d.ts.map +1 -1
  28. package/dist/components/List/ListRow/ListRow.d.ts.map +1 -1
  29. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts +15 -0
  30. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts.map +1 -0
  31. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts +9 -0
  32. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts.map +1 -0
  33. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts.map +1 -1
  34. package/dist/components/Loaders/ImageLoader/ImageLoader.d.ts.map +1 -1
  35. package/dist/components/PageHeader/PageHeaderAction/PageHeaderAction.d.ts.map +1 -1
  36. package/dist/components/Utils/Postgraphile/CreateConnectionRenderer.d.ts +1 -1
  37. package/dist/components/Utils/Postgraphile/CreateConnectionRenderer.d.ts.map +1 -1
  38. package/dist/components/VisualElements/ImgElement.d.ts +50 -0
  39. package/dist/components/VisualElements/ImgElement.d.ts.map +1 -0
  40. package/dist/components/VisualElements/SvgElement.d.ts +14 -0
  41. package/dist/components/VisualElements/SvgElement.d.ts.map +1 -0
  42. package/dist/components/VisualElements/index.d.ts +3 -0
  43. package/dist/components/VisualElements/index.d.ts.map +1 -0
  44. package/dist/components/index.d.ts +1 -0
  45. package/dist/components/index.d.ts.map +1 -1
  46. package/dist/helpers/idleCallbackHelpers.d.ts +42 -0
  47. package/dist/helpers/idleCallbackHelpers.d.ts.map +1 -0
  48. package/dist/helpers/index.d.ts +1 -0
  49. package/dist/helpers/index.d.ts.map +1 -1
  50. package/dist/hooks/useResize/ResizeIndicator.d.ts +8 -0
  51. package/dist/hooks/useResize/ResizeIndicator.d.ts.map +1 -0
  52. package/dist/hooks/useResize/useResize.d.ts +5 -2
  53. package/dist/hooks/useResize/useResize.d.ts.map +1 -1
  54. package/dist/index.d.ts +1 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.es.js +4 -4
  57. package/dist/index.es.js.map +1 -1
  58. package/dist/index.js +4 -4
  59. package/dist/index.js.map +1 -1
  60. package/package.json +2 -2
  61. package/src/components/Accordion/Accordion.scss +1 -1
  62. package/src/components/Accordion/AccordionItem/AccordionItem.scss +2 -2
  63. package/src/components/Buttons/Button/Button.scss +5 -5
  64. package/src/components/Buttons/CompositeButton/CompositeButton.scss +7 -7
  65. package/src/components/Buttons/TextButton/TextButton.scss +6 -6
  66. package/src/components/ConfirmDialog/ConfirmDialog.scss +1 -1
  67. package/src/components/DateTime/DatePicker/DatePicker.scss +12 -12
  68. package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.scss +7 -7
  69. package/src/components/DateTime/TimePicker/TimePicker.scss +1 -1
  70. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.scss +2 -2
  71. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.spec.tsx +2 -0
  72. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.tsx +62 -50
  73. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.scss +2 -2
  74. package/src/components/FieldSelection/FieldSelection.scss +4 -0
  75. package/src/components/FieldSelection/FieldSelection.tsx +1 -0
  76. package/src/components/Filters/Filter/Filter.scss +34 -15
  77. package/src/components/Filters/Filter/Filter.spec.tsx +1 -1
  78. package/src/components/Filters/Filter/Filter.tsx +46 -34
  79. package/src/components/Filters/Filters.model.ts +6 -0
  80. package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.tsx +5 -0
  81. package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.tsx +4 -0
  82. package/src/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.scss +1 -1
  83. package/src/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.tsx +9 -1
  84. package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.tsx +5 -0
  85. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.scss +6 -10
  86. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.tsx +8 -0
  87. package/src/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.tsx +6 -1
  88. package/src/components/FormElements/Checkbox/Checkbox.scss +4 -4
  89. package/src/components/FormElements/CustomTags/CustomTags.scss +1 -1
  90. package/src/components/FormElements/FileUploadControl/FileUploadControl.scss +4 -4
  91. package/src/components/FormElements/Radio/Radio.scss +5 -5
  92. package/src/components/FormElements/Radio/Radio.tsx +3 -2
  93. package/src/components/FormElements/Select/Select.scss +11 -6
  94. package/src/components/FormElements/ToggleButton/ToggleButton.scss +7 -7
  95. package/src/components/FormElements/ToggleButton/ToggleButton.tsx +32 -27
  96. package/src/components/Hub/Hub.stories.tsx +3 -2
  97. package/src/components/Hub/Tile/Tile.spec.tsx +7 -2
  98. package/src/components/Hub/Tile/Tile.tsx +2 -1
  99. package/src/components/Icons/Icons.scss +1 -0
  100. package/src/components/Icons/Icons.spec.tsx +90 -41
  101. package/src/components/Icons/Icons.tsx +357 -765
  102. package/src/components/InfoTooltip/InfoTooltip.scss +1 -1
  103. package/src/components/InlineMenu/InlineMenu.scss +2 -2
  104. package/src/components/LandingPageTiles/LandingPageTiles.stories.tsx +3 -2
  105. package/src/components/LandingPageTiles/TileLarge/TileLarge.spec.tsx +5 -1
  106. package/src/components/LandingPageTiles/TileLarge/TileLarge.tsx +2 -1
  107. package/src/components/LandingPageTiles/TileSmall/TileSmall.spec.tsx +7 -2
  108. package/src/components/LandingPageTiles/TileSmall/TileSmall.tsx +2 -1
  109. package/src/components/List/List.scss +4 -4
  110. package/src/components/List/ListCheckBox/ListCheckBox.tsx +1 -0
  111. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.spec.tsx +6 -6
  112. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.tsx +10 -13
  113. package/src/components/List/ListHeader/ListHeader.scss +2 -3
  114. package/src/components/List/ListHeader/ListHeader.spec.tsx +2 -0
  115. package/src/components/List/ListHeader/ListHeader.tsx +57 -51
  116. package/src/components/List/ListRow/ListRow.scss +1 -28
  117. package/src/components/List/ListRow/ListRow.spec.tsx +10 -8
  118. package/src/components/List/ListRow/ListRow.tsx +20 -152
  119. package/src/components/List/ListRow/ListRowCell/ListRowCell.scss +26 -0
  120. package/src/components/List/ListRow/ListRowCell/ListRowCell.spec.tsx +491 -0
  121. package/src/components/List/ListRow/ListRowCell/ListRowCell.tsx +57 -0
  122. package/src/components/List/ListRow/ListRowCell/renderData.tsx +124 -0
  123. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.spec.tsx +191 -80
  124. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +63 -34
  125. package/src/components/Loaders/ImageLoader/ImageLoader.spec.tsx +13 -14
  126. package/src/components/Loaders/ImageLoader/ImageLoader.tsx +5 -3
  127. package/src/components/PageHeader/PageHeader.scss +1 -1
  128. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.tsx +13 -2
  129. package/src/components/Tabs/Tab/CustomTab.scss +4 -4
  130. package/src/components/Tabs/TabList/CustomTabList.scss +2 -2
  131. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.spec.ts +48 -12
  132. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.tsx +5 -4
  133. package/src/components/VisualElements/ImgElement.spec.tsx +92 -0
  134. package/src/components/VisualElements/ImgElement.tsx +72 -0
  135. package/src/components/VisualElements/SvgElement.spec.tsx +160 -0
  136. package/src/components/VisualElements/SvgElement.tsx +40 -0
  137. package/src/components/VisualElements/index.ts +7 -0
  138. package/src/components/index.ts +1 -0
  139. package/src/helpers/idleCallbackHelpers.ts +66 -0
  140. package/src/helpers/index.ts +5 -0
  141. package/src/hooks/useResize/ResizeIndicator.scss +7 -0
  142. package/src/hooks/useResize/ResizeIndicator.tsx +39 -0
  143. package/src/hooks/useResize/{useResize.ts → useResize.tsx} +38 -6
  144. package/src/index.ts +2 -0
  145. package/src/styles/branding.scss +89 -0
  146. package/src/styles/variables.scss +245 -187
@@ -1,10 +1,9 @@
1
1
  import clsx from 'clsx';
2
2
  import { LocationDescriptor } from 'history';
3
- import React, { PropsWithChildren, useCallback } from 'react';
3
+ import React, { PropsWithChildren, useCallback, useMemo } from 'react';
4
4
  import { Link } from 'react-router-dom';
5
5
  import { noop } from '../../../helpers/utils';
6
6
  import { Data } from '../../../types/data';
7
- import { getTooltipText } from '../../../utils/ToolTipHelpers';
8
7
  import { ActionData } from '../../Actions/Actions.models';
9
8
  import { Button } from '../../Buttons';
10
9
  import { IconName } from '../../Icons';
@@ -12,6 +11,7 @@ import { InlineMenu } from '../../InlineMenu/InlineMenu';
12
11
  import { Column, ListSelectMode } from '../List.model';
13
12
  import { ListCheckBox } from '../ListCheckBox/ListCheckBox';
14
13
  import classes from './ListRow.scss';
14
+ import { ListRowCell } from './ListRowCell/ListRowCell';
15
15
 
16
16
  export interface ListRowProps<T extends Data> {
17
17
  /** Spacing between columns */
@@ -76,124 +76,6 @@ export const setLocale = (locale: string): void => {
76
76
 
77
77
  setLocale(navigator.language);
78
78
 
79
- const renderData = <T extends Data>(
80
- column: Column<T>,
81
- rowData: T,
82
- ): {
83
- columnData: React.ReactNode;
84
- tooltip: string | undefined;
85
- isDataTestIdSet: boolean;
86
- } => {
87
- const getTooltip = (value: unknown): string | undefined =>
88
- column.tooltip !== false ? getTooltipText(value) : undefined;
89
-
90
- if (!column.propertyName) {
91
- const columnData = column.render?.(undefined, rowData);
92
-
93
- if (typeof columnData === 'string') {
94
- return {
95
- columnData: (
96
- <span
97
- data-test-id={`list-entry-property:${
98
- column.propertyName as string
99
- }`}
100
- >
101
- {columnData}
102
- </span>
103
- ),
104
- isDataTestIdSet: true,
105
- tooltip: getTooltip(columnData),
106
- };
107
- }
108
-
109
- return {
110
- columnData,
111
- tooltip: getTooltip(columnData),
112
- isDataTestIdSet: false,
113
- };
114
- }
115
- const value: unknown = rowData[column.propertyName];
116
- if (column.render) {
117
- const columnData = column.render(value, rowData);
118
-
119
- if (typeof columnData === 'string') {
120
- return {
121
- columnData: (
122
- <span
123
- data-test-id={`list-entry-property:${
124
- column.propertyName as string
125
- }`}
126
- >
127
- {columnData}
128
- </span>
129
- ),
130
- isDataTestIdSet: true,
131
- tooltip: getTooltip(columnData),
132
- };
133
- }
134
-
135
- return {
136
- columnData,
137
- tooltip: getTooltip(columnData),
138
- isDataTestIdSet: false,
139
- };
140
- }
141
-
142
- if (value === null || value === undefined) {
143
- return {
144
- columnData: (
145
- <span
146
- data-test-id={`list-entry-property:${column.propertyName as string}`}
147
- />
148
- ),
149
- tooltip: undefined,
150
- isDataTestIdSet: true,
151
- };
152
- }
153
-
154
- if (typeof value === 'number') {
155
- const columnData = numberFormatter.format(value);
156
- return {
157
- columnData: (
158
- <span
159
- data-test-id={`list-entry-property:${column.propertyName as string}`}
160
- >
161
- {columnData}
162
- </span>
163
- ),
164
- tooltip: getTooltip(columnData),
165
- isDataTestIdSet: true,
166
- };
167
- }
168
-
169
- if (value instanceof Date) {
170
- const columnData = dateFormatter.format(value);
171
- return {
172
- columnData: (
173
- <span
174
- data-test-id={`list-entry-property:${column.propertyName as string}`}
175
- >
176
- {columnData}
177
- </span>
178
- ),
179
- tooltip: getTooltip(columnData),
180
- isDataTestIdSet: true,
181
- };
182
- }
183
-
184
- return {
185
- columnData: (
186
- <span
187
- data-test-id={`list-entry-property:${column.propertyName as string}`}
188
- >
189
- {String(value)}
190
- </span>
191
- ),
192
- tooltip: getTooltip(String(value)),
193
- isDataTestIdSet: true,
194
- };
195
- };
196
-
197
79
  /**
198
80
  * Renders the rows for the list component
199
81
  * @example
@@ -260,42 +142,28 @@ const ListRowComponent = <T extends Data>(
260
142
  selectionMode === ListSelectMode.None &&
261
143
  typeof onItemClicked !== 'function';
262
144
 
263
- const generateCells: JSX.Element[] = columns.map((column: Column<T>) => {
264
- const { columnData, tooltip, isDataTestIdSet } = renderData<T>(
265
- column,
266
- data,
267
- );
268
-
269
- return (
270
- <div
271
- key={column.key ?? (column.propertyName as string)}
272
- className={classes.cellWrapper}
273
- >
274
- <div
275
- className={clsx(classes.cell, { [classes.nowrap]: !textWrap })}
276
- title={tooltip}
277
- style={{
278
- justifySelf: column.horizontalColumnAlign, // Horizontal alignment based on column config
279
- alignSelf: verticalTextAlign, // Vertical alignment based on props
280
- textAlign: horizontalTextAlign, // Additional text alignment inside the cell
281
- }}
282
- data-test-id={
283
- isDataTestIdSet
284
- ? null
285
- : `list-entry-property:${column.propertyName as string}`
286
- }
287
- >
288
- {columnData}
289
- </div>
290
- </div>
291
- );
292
- });
145
+ const generateCells = useMemo(() => {
146
+ return columns.map((column: Column<T>) => {
147
+ return (
148
+ <ListRowCell<T>
149
+ key={column.key ?? (column.propertyName as string)}
150
+ column={column}
151
+ data={data}
152
+ horizontalTextAlign={horizontalTextAlign}
153
+ verticalTextAlign={verticalTextAlign}
154
+ textWrap={textWrap}
155
+ dateFormatter={dateFormatter}
156
+ numberFormatter={numberFormatter}
157
+ />
158
+ );
159
+ });
160
+ }, [columns, data, horizontalTextAlign, textWrap, verticalTextAlign]);
293
161
 
294
162
  const inlineActionMenuData = inlineMenuActions
295
163
  ? inlineMenuActions(data)
296
164
  : undefined;
297
165
 
298
- const Row = (
166
+ return (
299
167
  <div
300
168
  className={clsx(classes.columnsRoot, {
301
169
  [classes.selected]: itemSelected,
@@ -382,7 +250,7 @@ const ListRowComponent = <T extends Data>(
382
250
  </div>
383
251
  );
384
252
 
385
- return Row;
253
+ // return Row;
386
254
  };
387
255
 
388
256
  export const ListRow = React.forwardRef(ListRowComponent) as <T extends Data>(
@@ -0,0 +1,26 @@
1
+ .cellWrapper {
2
+ display: grid;
3
+ width: 100%;
4
+ height: 100%;
5
+ }
6
+
7
+ .cell {
8
+ max-width: 100%;
9
+ max-height: 100%;
10
+
11
+ span {
12
+ padding: 5px 0;
13
+ display: block;
14
+ width: 100%;
15
+ }
16
+
17
+ &.nowrap {
18
+ overflow: hidden;
19
+
20
+ span {
21
+ white-space: nowrap;
22
+ text-overflow: ellipsis;
23
+ overflow: hidden;
24
+ }
25
+ }
26
+ }