@eccenca/gui-elements 23.1.0-rc.2 → 23.1.0-rc.3

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 (283) hide show
  1. package/CHANGELOG.md +54 -10
  2. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js +6 -4
  3. package/dist/cjs/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  4. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js +33 -8
  5. package/dist/cjs/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  6. package/dist/cjs/cmem/ConfidenceValue/ConfidenceValue.js +52 -0
  7. package/dist/cjs/cmem/ConfidenceValue/ConfidenceValue.js.map +1 -0
  8. package/dist/cjs/cmem/ConfidenceValue/index.js +14 -0
  9. package/dist/cjs/cmem/ConfidenceValue/index.js.map +1 -0
  10. package/dist/cjs/cmem/index.js +11 -0
  11. package/dist/cjs/cmem/index.js.map +1 -1
  12. package/dist/cjs/cmem/markdown/Markdown.js +8 -4
  13. package/dist/cjs/cmem/markdown/Markdown.js.map +1 -1
  14. package/dist/cjs/common/Intent/index.js +1 -0
  15. package/dist/cjs/common/Intent/index.js.map +1 -1
  16. package/dist/cjs/common/utils/CssCustomProperties.js.map +1 -1
  17. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +10 -1
  18. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  19. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js +8 -10
  20. package/dist/cjs/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -1
  21. package/dist/cjs/components/Card/Card.js +7 -6
  22. package/dist/cjs/components/Card/Card.js.map +1 -1
  23. package/dist/cjs/components/Card/CardContent.js +4 -2
  24. package/dist/cjs/components/Card/CardContent.js.map +1 -1
  25. package/dist/cjs/components/Card/CardHeader.js.map +1 -1
  26. package/dist/cjs/components/Depiction/Depiction.js +13 -13
  27. package/dist/cjs/components/Depiction/Depiction.js.map +1 -1
  28. package/dist/cjs/components/Icon/canonicalIconNames.js +6 -0
  29. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  30. package/dist/cjs/components/Pagination/Pagination.js +24 -9
  31. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  32. package/dist/cjs/components/ProgressBar/index.js +14 -0
  33. package/dist/cjs/components/ProgressBar/index.js.map +1 -0
  34. package/dist/cjs/components/Separation/Divider.js +20 -2
  35. package/dist/cjs/components/Separation/Divider.js.map +1 -1
  36. package/dist/cjs/components/Switch/Switch.js +2 -2
  37. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  38. package/dist/cjs/components/Table/Table.js +46 -0
  39. package/dist/cjs/components/Table/Table.js.map +1 -0
  40. package/dist/cjs/components/Table/TableCell.js +29 -0
  41. package/dist/cjs/components/Table/TableCell.js.map +1 -0
  42. package/dist/cjs/components/Table/TableContainer.js +32 -0
  43. package/dist/cjs/components/Table/TableContainer.js.map +1 -0
  44. package/dist/cjs/components/Table/TableExpandHeader.js +36 -0
  45. package/dist/cjs/components/Table/TableExpandHeader.js.map +1 -0
  46. package/dist/cjs/components/Table/TableExpandRow.js +45 -0
  47. package/dist/cjs/components/Table/TableExpandRow.js.map +1 -0
  48. package/dist/cjs/components/{SimpleTable/TableContainer.js → Table/TableRow.js} +9 -11
  49. package/dist/cjs/components/Table/TableRow.js.map +1 -0
  50. package/dist/cjs/components/Table/index.js +26 -0
  51. package/dist/cjs/components/Table/index.js.map +1 -0
  52. package/dist/cjs/components/Tag/TagList.js.map +1 -1
  53. package/dist/cjs/components/Tag/index.js +11 -0
  54. package/dist/cjs/components/Tag/index.js.map +1 -0
  55. package/dist/cjs/components/TextField/TextField.js +25 -9
  56. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  57. package/dist/cjs/components/index.js +4 -0
  58. package/dist/cjs/components/index.js.map +1 -1
  59. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js +20 -5
  60. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  61. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +74 -0
  62. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -0
  63. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js +10 -9
  64. package/dist/cjs/extensions/react-flow/edges/edgeTypes.js.map +1 -1
  65. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +14 -3
  66. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  67. package/dist/cjs/extensions/react-flow/index.js +13 -3
  68. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  69. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +113 -33
  70. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  71. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js +5 -2
  72. package/dist/cjs/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  73. package/dist/cjs/extensions/react-flow/versionsupport.js +20 -0
  74. package/dist/cjs/extensions/react-flow/versionsupport.js.map +1 -0
  75. package/dist/cjs/index.js +3 -19
  76. package/dist/cjs/index.js.map +1 -1
  77. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js +6 -4
  78. package/dist/esm/cmem/ActivityControl/ActivityControlWidget.js.map +1 -1
  79. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js +35 -10
  80. package/dist/esm/cmem/ActivityControl/SilkActivityControl.js.map +1 -1
  81. package/dist/esm/cmem/ConfidenceValue/ConfidenceValue.js +56 -0
  82. package/dist/esm/cmem/ConfidenceValue/ConfidenceValue.js.map +1 -0
  83. package/dist/esm/cmem/ConfidenceValue/index.js +2 -0
  84. package/dist/esm/cmem/ConfidenceValue/index.js.map +1 -0
  85. package/dist/esm/cmem/index.js +1 -0
  86. package/dist/esm/cmem/index.js.map +1 -1
  87. package/dist/esm/cmem/markdown/Markdown.js +8 -4
  88. package/dist/esm/cmem/markdown/Markdown.js.map +1 -1
  89. package/dist/esm/common/Intent/index.js +1 -0
  90. package/dist/esm/common/Intent/index.js.map +1 -1
  91. package/dist/esm/common/utils/CssCustomProperties.js.map +1 -1
  92. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +10 -1
  93. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  94. package/dist/esm/components/AutoSuggestion/SingleLineCodeEditor.js +8 -10
  95. package/dist/esm/components/AutoSuggestion/SingleLineCodeEditor.js.map +1 -1
  96. package/dist/esm/components/Card/Card.js +7 -6
  97. package/dist/esm/components/Card/Card.js.map +1 -1
  98. package/dist/esm/components/Card/CardContent.js +4 -2
  99. package/dist/esm/components/Card/CardContent.js.map +1 -1
  100. package/dist/esm/components/Card/CardHeader.js.map +1 -1
  101. package/dist/esm/components/Depiction/Depiction.js +15 -14
  102. package/dist/esm/components/Depiction/Depiction.js.map +1 -1
  103. package/dist/esm/components/Icon/canonicalIconNames.js +6 -0
  104. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  105. package/dist/esm/components/Pagination/Pagination.js +25 -10
  106. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  107. package/dist/esm/components/ProgressBar/index.js +2 -0
  108. package/dist/esm/components/ProgressBar/index.js.map +1 -0
  109. package/dist/esm/components/Separation/Divider.js +29 -3
  110. package/dist/esm/components/Separation/Divider.js.map +1 -1
  111. package/dist/esm/components/Switch/Switch.js +2 -2
  112. package/dist/esm/components/Switch/Switch.js.map +1 -1
  113. package/dist/esm/components/Table/Table.js +50 -0
  114. package/dist/esm/components/Table/Table.js.map +1 -0
  115. package/dist/esm/components/{SimpleTable/TableContainer.js → Table/TableCell.js} +8 -12
  116. package/dist/esm/components/Table/TableCell.js.map +1 -0
  117. package/dist/esm/components/Table/TableContainer.js +36 -0
  118. package/dist/esm/components/Table/TableContainer.js.map +1 -0
  119. package/dist/esm/components/Table/TableExpandHeader.js +40 -0
  120. package/dist/esm/components/Table/TableExpandHeader.js.map +1 -0
  121. package/dist/esm/components/Table/TableExpandRow.js +49 -0
  122. package/dist/esm/components/Table/TableExpandRow.js.map +1 -0
  123. package/dist/esm/components/Table/TableRow.js +33 -0
  124. package/dist/esm/components/Table/TableRow.js.map +1 -0
  125. package/dist/esm/components/Table/index.js +9 -0
  126. package/dist/esm/components/Table/index.js.map +1 -0
  127. package/dist/esm/components/Tag/TagList.js.map +1 -1
  128. package/dist/esm/components/Tag/index.js +4 -0
  129. package/dist/esm/components/Tag/index.js.map +1 -0
  130. package/dist/esm/components/TextField/TextField.js +26 -10
  131. package/dist/esm/components/TextField/TextField.js.map +1 -1
  132. package/dist/esm/components/index.js +4 -0
  133. package/dist/esm/components/index.js.map +1 -1
  134. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js +20 -4
  135. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  136. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +63 -0
  137. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -0
  138. package/dist/esm/extensions/react-flow/edges/edgeTypes.js +10 -9
  139. package/dist/esm/extensions/react-flow/edges/edgeTypes.js.map +1 -1
  140. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +15 -4
  141. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  142. package/dist/esm/extensions/react-flow/index.js +2 -1
  143. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  144. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +121 -38
  145. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  146. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js +5 -2
  147. package/dist/esm/extensions/react-flow/nodes/NodeDefault.js.map +1 -1
  148. package/dist/esm/extensions/react-flow/versionsupport.js +32 -0
  149. package/dist/esm/extensions/react-flow/versionsupport.js.map +1 -0
  150. package/dist/esm/index.js +3 -8
  151. package/dist/esm/index.js.map +1 -1
  152. package/dist/types/cmem/ActivityControl/ActivityControlWidget.d.ts +1 -1
  153. package/dist/types/cmem/ActivityControl/SilkActivityControl.d.ts +6 -2
  154. package/dist/types/cmem/ConfidenceValue/ConfidenceValue.d.ts +46 -0
  155. package/dist/types/cmem/ConfidenceValue/index.d.ts +1 -0
  156. package/dist/types/cmem/index.d.ts +1 -0
  157. package/dist/types/cmem/markdown/Markdown.d.ts +6 -1
  158. package/dist/types/common/Intent/index.d.ts +1 -1
  159. package/dist/types/common/utils/CssCustomProperties.d.ts +1 -1
  160. package/dist/types/components/Card/Card.d.ts +5 -1
  161. package/dist/types/components/Card/CardContent.d.ts +7 -1
  162. package/dist/types/components/Card/CardHeader.d.ts +9 -1
  163. package/dist/types/components/Grid/Grid.d.ts +1 -1
  164. package/dist/types/components/Grid/GridColumn.d.ts +1 -1
  165. package/dist/types/components/Grid/GridRow.d.ts +1 -1
  166. package/dist/types/components/Icon/IconButton.d.ts +1 -1
  167. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  168. package/dist/types/components/Pagination/Pagination.d.ts +5 -1
  169. package/dist/types/components/ProgressBar/index.d.ts +1 -0
  170. package/dist/types/components/Separation/Divider.d.ts +18 -2
  171. package/dist/types/components/Separation/Spacing.d.ts +1 -1
  172. package/dist/types/components/Switch/Switch.d.ts +5 -1
  173. package/dist/types/components/Table/Table.d.ts +32 -0
  174. package/dist/types/components/Table/TableCell.d.ts +11 -0
  175. package/dist/types/components/Table/TableContainer.d.ts +13 -0
  176. package/dist/types/components/Table/TableExpandHeader.d.ts +13 -0
  177. package/dist/types/components/Table/TableExpandRow.d.ts +17 -0
  178. package/dist/types/components/Table/TableRow.d.ts +10 -0
  179. package/dist/types/components/Table/index.d.ts +7 -0
  180. package/dist/types/components/Tag/Tag.d.ts +1 -1
  181. package/dist/types/components/Tag/TagList.d.ts +5 -2
  182. package/dist/types/components/Tag/index.d.ts +4 -0
  183. package/dist/types/components/TextField/TextField.d.ts +9 -0
  184. package/dist/types/components/index.d.ts +4 -0
  185. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +16 -1
  186. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +44 -0
  187. package/dist/types/extensions/react-flow/edges/edgeTypes.d.ts +10 -9
  188. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +11 -3
  189. package/dist/types/extensions/react-flow/index.d.ts +2 -2
  190. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +55 -8
  191. package/dist/types/extensions/react-flow/nodes/NodeDefault.d.ts +2 -1
  192. package/dist/types/extensions/react-flow/versionsupport.d.ts +7 -0
  193. package/dist/types/index.d.ts +1 -6
  194. package/package.json +2 -1
  195. package/src/cmem/ActivityControl/ActivityControlWidget.tsx +5 -5
  196. package/src/cmem/ActivityControl/SilkActivityControl.tsx +44 -17
  197. package/src/cmem/ConfidenceValue/ConfidenceValue.stories.tsx +22 -0
  198. package/src/cmem/ConfidenceValue/ConfidenceValue.tsx +116 -0
  199. package/src/cmem/ConfidenceValue/confidencevalue.scss +49 -0
  200. package/src/cmem/ConfidenceValue/index.ts +1 -0
  201. package/src/cmem/_index.scss +1 -0
  202. package/src/cmem/index.ts +2 -0
  203. package/src/cmem/markdown/Markdown.stories.tsx +3 -1
  204. package/src/cmem/markdown/Markdown.tsx +22 -10
  205. package/src/cmem/react-flow/ReactFlow/ReactFlow.stories.tsx +2 -2
  206. package/src/cmem/react-flow/_edges.scss +3 -2
  207. package/src/cmem/react-flow/configuration/_colors-workflow.scss +3 -0
  208. package/src/common/Intent/index.ts +2 -1
  209. package/src/common/utils/CssCustomProperties.ts +1 -1
  210. package/src/components/AutoSuggestion/AutoSuggestion.scss +1 -0
  211. package/src/components/AutoSuggestion/AutoSuggestion.tsx +10 -1
  212. package/src/components/AutoSuggestion/SingleLineCodeEditor.tsx +8 -10
  213. package/src/components/AutoSuggestion/tests/SingleLineCodeEditor.test.tsx +5 -0
  214. package/src/components/Badge/badge.scss +2 -5
  215. package/src/components/Card/Card.tsx +11 -5
  216. package/src/components/Card/CardContent.tsx +12 -1
  217. package/src/components/Card/CardHeader.tsx +9 -1
  218. package/src/components/Card/card.scss +108 -3
  219. package/src/components/Checkbox/checkbox.scss +6 -2
  220. package/src/components/Depiction/Depiction.tsx +11 -10
  221. package/src/components/Grid/Grid.tsx +1 -1
  222. package/src/components/Grid/GridColumn.tsx +1 -1
  223. package/src/components/Grid/GridRow.tsx +1 -1
  224. package/src/components/Icon/IconButton.tsx +1 -1
  225. package/src/components/Icon/canonicalIconNames.tsx +13 -0
  226. package/src/components/Menu/menu.scss +4 -0
  227. package/src/components/OverviewItem/overviewitem.scss +2 -2
  228. package/src/components/Pagination/Pagination.tsx +29 -9
  229. package/src/components/Pagination/pagination.scss +16 -0
  230. package/src/components/ProgressBar/index.ts +1 -0
  231. package/src/components/Separation/Divider.tsx +36 -2
  232. package/src/components/Separation/Spacing.tsx +1 -1
  233. package/src/components/Separation/Stories/Divider.stories.tsx +22 -0
  234. package/src/components/Separation/separation.scss +31 -5
  235. package/src/components/Switch/Switch.tsx +6 -2
  236. package/src/components/Table/Table.tsx +88 -0
  237. package/src/components/Table/TableCell.tsx +37 -0
  238. package/src/components/Table/TableContainer.tsx +49 -0
  239. package/src/components/Table/TableExpandHeader.tsx +51 -0
  240. package/src/components/Table/TableExpandRow.tsx +70 -0
  241. package/src/components/Table/TableRow.tsx +36 -0
  242. package/src/components/Table/index.tsx +14 -0
  243. package/src/components/Table/table.scss +323 -0
  244. package/src/components/Tag/Tag.tsx +1 -1
  245. package/src/components/Tag/TagList.tsx +5 -3
  246. package/src/components/Tag/index.ts +5 -0
  247. package/src/components/Tag/{Tag.stories.tsx → stories/Tag.stories.tsx} +3 -2
  248. package/src/components/Tag/stories/TagList.stories.tsx +28 -0
  249. package/src/components/Tag/tag.scss +1 -0
  250. package/src/components/TextField/TextField.tsx +43 -12
  251. package/src/components/TextField/stories/TextField.stories.tsx +3 -0
  252. package/src/components/TextField/textfield.scss +23 -1
  253. package/src/components/Tree/tree.scss +4 -0
  254. package/src/components/Typography/typography.scss +2 -2
  255. package/src/components/index.scss +1 -0
  256. package/src/components/index.ts +5 -0
  257. package/src/extensions/react-flow/_config.scss +8 -4
  258. package/src/extensions/react-flow/edges/EdgeDefault.tsx +60 -5
  259. package/src/extensions/react-flow/edges/EdgeLabel.tsx +127 -0
  260. package/src/extensions/react-flow/edges/_edges.scss +214 -38
  261. package/src/extensions/react-flow/edges/edgeTypes.ts +13 -9
  262. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +34 -13
  263. package/src/extensions/react-flow/edges/stories/EdgeLabel.stories.tsx +40 -0
  264. package/src/extensions/react-flow/handles/HandleDefault.tsx +41 -10
  265. package/src/extensions/react-flow/index.ts +3 -2
  266. package/src/extensions/react-flow/nodes/NodeContent.tsx +233 -60
  267. package/src/extensions/react-flow/nodes/NodeDefault.tsx +7 -2
  268. package/src/extensions/react-flow/nodes/_nodes.scss +232 -67
  269. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +67 -1
  270. package/src/extensions/react-flow/versionsupport.ts +22 -0
  271. package/src/index.scss +0 -1
  272. package/src/index.ts +5 -38
  273. package/dist/cjs/components/SimpleTable/TableContainer.js.map +0 -1
  274. package/dist/cjs/components/SimpleTable/index.js +0 -16
  275. package/dist/cjs/components/SimpleTable/index.js.map +0 -1
  276. package/dist/esm/components/SimpleTable/TableContainer.js.map +0 -1
  277. package/dist/esm/components/SimpleTable/index.js +0 -4
  278. package/dist/esm/components/SimpleTable/index.js.map +0 -1
  279. package/dist/types/components/SimpleTable/TableContainer.d.ts +0 -3
  280. package/dist/types/components/SimpleTable/index.d.ts +0 -3
  281. package/src/components/SimpleTable/TableContainer.tsx +0 -20
  282. package/src/components/SimpleTable/index.tsx +0 -4
  283. package/src/components/SimpleTable/simpletable.scss +0 -180
@@ -3,6 +3,7 @@ $reactflow-color-linking-node: #0097a7 !default;
3
3
  $reactflow-color-transform-node: #40a691 !default;
4
4
  $reactflow-color-task-node: #80b67b !default;
5
5
  $reactflow-color-workflow-node: #745a85 !default;
6
+ $reactflow-color-replaceable-input: #faa854 !default;
6
7
 
7
8
  @function bright($color) {
8
9
  @return mix($color, #fff, 24%);
@@ -14,9 +15,11 @@ $reactflow-color-workflow-node: #745a85 !default;
14
15
  --transformNode: #{$reactflow-color-transform-node};
15
16
  --taskNode: #{$reactflow-color-task-node};
16
17
  --workflowNode: #{$reactflow-color-workflow-node};
18
+ --replaceableInput: #{$reactflow-color-replaceable-input};
17
19
  --datasetNodeBright: #{bright($reactflow-color-dataset-node)};
18
20
  --linkingNodeBright: #{bright($reactflow-color-linking-node)};
19
21
  --transformNodeBright: #{bright($reactflow-color-transform-node)};
20
22
  --taskNodeBright: #{bright($reactflow-color-task-node)};
21
23
  --workflowNodeBright: #{bright($reactflow-color-workflow-node)};
24
+ --replaceableInputBright: #{bright($reactflow-color-replaceable-input)};
22
25
  }
@@ -1,11 +1,12 @@
1
1
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
2
2
 
3
- export type IntentTypes = "neutral" | "primary" | "accent" | "info" | "success" | "warning" | "danger";
3
+ export type IntentTypes = "none" | "neutral" | "primary" | "accent" | "info" | "success" | "warning" | "danger";
4
4
 
5
5
  export const Definitions: { [key: string]: IntentTypes; } = {
6
6
  PRIMARY: "primary",
7
7
  ACCENT: "accent",
8
8
  NEUTRAL: "neutral",
9
+ NONE: "none",
9
10
  SUCCESS: "success",
10
11
  INFO: "info",
11
12
  WARNING: "warning",
@@ -90,7 +90,7 @@ export default class CssCustomProperties {
90
90
  const { propertyType = "all", ...otherFilters } = filter;
91
91
  return CssCustomProperties.listLocalCssStyleRules(otherFilters)
92
92
  .map((cssrule) => {
93
- return [...(cssrule as CSSStyleRule).style]
93
+ return [...(cssrule as any).style]
94
94
  .map((propertyname) => {
95
95
  return [
96
96
  propertyname.trim(),
@@ -1,5 +1,6 @@
1
1
  .#{$eccgui}-autosuggestion {
2
2
  position: relative;
3
+ width: 100%;
3
4
 
4
5
  &__dropdown {
5
6
  transition: all 300ms;
@@ -256,6 +256,15 @@ const AutoSuggestion = ({
256
256
  editorState.index = 0
257
257
  }, [suggestionResponse, editorState]);
258
258
 
259
+ const inputactionsDisplayed = React.useCallback((node) => {
260
+ if (!node) return;
261
+ const width = node.offsetWidth;
262
+ const slCodeEditor = node.parentElement.getElementsByClassName(`${eccgui}-singlelinecodeeditor`);
263
+ if (slCodeEditor.length > 0) {
264
+ slCodeEditor[0].style.paddingRight = `${width}px`;
265
+ }
266
+ }, []);
267
+
259
268
  const asyncCheckInput = useMemo(() => async (inputString: string) => {
260
269
  if(!checkInput || inputString !== value.current || validationRequestData.current.requestId === inputString) {
261
270
  return
@@ -463,7 +472,7 @@ const AutoSuggestion = ({
463
472
  />
464
473
  </ContextOverlay>
465
474
  {!!value.current && (
466
- <span className={BlueprintClassNames.INPUT_ACTION}>
475
+ <span className={BlueprintClassNames.INPUT_ACTION} ref={inputactionsDisplayed}>
467
476
  <IconButton
468
477
  data-test-id={"value-path-clear-btn"}
469
478
  name="operation-clear"
@@ -49,22 +49,21 @@ const SingleLineCodeEditor = ({
49
49
  placeholder,
50
50
  showScrollBar = true
51
51
  }: IEditorProps) => {
52
+ const singleLineInitialContent = React.useRef(initialValue.replace(/[\r\n]/g, " "))
52
53
  return (
53
54
  <div className={`${eccgui}-singlelinecodeeditor ${BlueprintClassNames.INPUT}`}>
54
55
  <UnControlledEditor
55
56
  editorDidMount={(editor: any) => {
56
57
  editor.on("beforeChange", (_: any, change: any) => {
57
58
  // Prevent the user from entering new-line characters, since this is supposed to be a one-line editor.
58
- const newText = change.text.join("").replace(/\n/g, "");
59
- //failing unexpectedly during undo and redo
60
- if (change.update && typeof change.update === "function") {
61
- change.update(change.from, change.to, [newText]);
59
+ if (change.update && typeof change.update === "function" && change.text.length > 1) {
60
+ change.update(change.from, change.to, [change.text.join("")]);
62
61
  }
63
62
  return true;
64
63
  });
65
64
  setEditorInstance(editor);
66
65
  }}
67
- value={initialValue}
66
+ value={singleLineInitialContent.current}
68
67
  onFocus={() => onFocusChange(true)}
69
68
  onBlur={() => onFocusChange(false)}
70
69
  options={{
@@ -89,11 +88,10 @@ const SingleLineCodeEditor = ({
89
88
  editor.getScrollInfo()
90
89
  );
91
90
  }}
92
- onBeforeChange={(_editor, _data, value, next) => {
93
- // Remove entered new lines
94
- const trimmedValue = value.replace(/[\r\n]/g, "");
95
- if (trimmedValue !== value) {
96
- _editor.setValue(trimmedValue)
91
+ onBeforeChange={(_editor, data, _, next) => {
92
+ // Reduce multiple lines to a single line
93
+ if (data.text.length > 1) {
94
+ _editor.setValue(data.text.join(""))
97
95
  }
98
96
  next()
99
97
  }}
@@ -53,4 +53,9 @@ describe("SingleLineCodeEditor", () => {
53
53
  .setValue("I'm entering a new line \n character");
54
54
  expect(codeMirrorEditorInstance.lineCount()).toBe(1);
55
55
  });
56
+
57
+ it("should convert multiple lines to a single line", () => {
58
+ render(<SingleLineEditor {...{...props, initialValue: "1\n2\n3"}} />);
59
+ expect(codeMirrorEditorInstance.lineCount()).toBe(1);
60
+ });
56
61
  });
@@ -14,11 +14,8 @@
14
14
  }
15
15
 
16
16
  .#{$eccgui}-badge--inline {
17
- display: inline-block;
18
-
19
- &.#{$eccgui}-badge--icon {
20
- vertical-align: middle;
21
- }
17
+ display: inline-flex;
18
+ vertical-align: middle;
22
19
  }
23
20
 
24
21
  .#{$eccgui}-badge--bottom-right {
@@ -24,6 +24,10 @@ export interface CardProps extends BlueprintCardProps {
24
24
  * Property value defined which part of the card is always scrolled in, this may important when the card is larger than the viewport.
25
25
  */
26
26
  scrollinOnFocus?: "start" | "center" | "end";
27
+ /**
28
+ * Controls how much whitespace is displayed within the card subelements.
29
+ */
30
+ whitespaceAmount?: "none" | "small" | "medium" | "large";
27
31
  }
28
32
 
29
33
  /**
@@ -38,6 +42,7 @@ function Card({
38
42
  fullHeight=false,
39
43
  elevated=false,
40
44
  scrollinOnFocus,
45
+ whitespaceAmount="medium",
41
46
  interactive,
42
47
  ...otherProps
43
48
  }: CardProps) {
@@ -55,11 +60,12 @@ function Card({
55
60
  const cardElement = (
56
61
  <BlueprintCard
57
62
  className={
58
- `${eccgui}-card ` +
59
- (fullHeight ? ` ${eccgui}-card--fullheight ` : '') +
60
- (elevated ? ` ${eccgui}-card--elevated ` : '') +
61
- (!!scrollinOnFocus ? ` ${eccgui}-card--scrollonfocus ` : '') +
62
- className
63
+ `${eccgui}-card` +
64
+ (fullHeight ? ` ${eccgui}-card--fullheight` : '') +
65
+ (elevated ? ` ${eccgui}-card--elevated` : '') +
66
+ (!!scrollinOnFocus ? ` ${eccgui}-card--scrollonfocus` : '') +
67
+ (whitespaceAmount !== "medium" ? ` ${eccgui}-card--whitespace-${whitespaceAmount}` : '') +
68
+ (!!className ? ` ${className}` : "")
63
69
  }
64
70
  elevation={elevation}
65
71
  interactive={!!otherProps.onClick ? true : interactive}
@@ -2,6 +2,12 @@ import React from 'react';
2
2
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
3
3
 
4
4
  export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ /**
6
+ * Usually `CardContent` uses all the remaining space inside a card.
7
+ * This behaviour can be changed by this option, so that the content section is not vertically grown or shrinked.
8
+ * You may use this then you have multiple content sections in one card but not all those sections should be grown or shrinked regarding the remaining space.
9
+ */
10
+ noFlexHeight?: boolean;
5
11
  }
6
12
 
7
13
  /**
@@ -11,12 +17,17 @@ export interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {
11
17
  function CardContent({
12
18
  children,
13
19
  className='',
20
+ noFlexHeight,
14
21
  ...otherProps
15
22
  }: CardContentProps) {
16
23
  return (
17
24
  <div
18
25
  {...otherProps}
19
- className={`${eccgui}-card__content ` + className}
26
+ className={
27
+ `${eccgui}-card__content` +
28
+ (noFlexHeight ? ` ${eccgui}-card__content--noflexheight` : "") +
29
+ (!!className ? ` ${className}` : "")
30
+ }
20
31
  >
21
32
  {children}
22
33
  </div>
@@ -5,8 +5,16 @@ import { CLASSPREFIX as eccgui } from "../../configuration/constants";
5
5
  import CardTitle from "./CardTitle";
6
6
  import CardOptions from "./CardOptions";
7
7
 
8
- interface CardHeaderProps extends OverviewItemProps {
8
+ interface CardHeaderProps extends Omit<OverviewItemProps, "densityHigh" | "hasSpacing"> {
9
9
  children: JSX.Element | (JSX.Element | undefined | null)[] | null | undefined;
10
+ /**
11
+ * @deprecated
12
+ */
13
+ densityHigh?: OverviewItemProps["densityHigh"];
14
+ /**
15
+ * @deprecated
16
+ */
17
+ hasSpacing?: OverviewItemProps["hasSpacing"];
10
18
  }
11
19
 
12
20
  function CardHeader({
@@ -53,6 +53,18 @@ $eccgui-size-card-spacing: $eccgui-size-typo-base !default;
53
53
  box-sizing: content-box;
54
54
  flex-grow: 0;
55
55
  flex-shrink: 0;
56
+
57
+ .#{$eccgui}-card--whitespace-none > header > & {
58
+ padding: 0
59
+ }
60
+
61
+ .#{$eccgui}-card--whitespace-small > header > & {
62
+ padding: $eccgui-size-card-spacing * 0.25 $eccgui-size-card-spacing * 0.25 $eccgui-size-card-spacing * 0.25 $eccgui-size-card-spacing * 0.5;
63
+ }
64
+
65
+ .#{$eccgui}-card--whitespace-large > header > & {
66
+ padding: $eccgui-size-card-spacing $eccgui-size-card-spacing $eccgui-size-card-spacing $eccgui-size-card-spacing * 2;
67
+ }
56
68
  }
57
69
 
58
70
  .#{$eccgui}-card__title {
@@ -82,28 +94,102 @@ $eccgui-size-card-spacing: $eccgui-size-typo-base !default;
82
94
  }
83
95
  }
84
96
 
97
+ .#{$eccgui}-card__options {
98
+ flex-shrink: 1;
99
+ max-width: calc(100% - #{$eccgui-size-card-spacing * 1.5});
100
+
101
+ & > .#{$eccgui}-button:not(.#{$eccgui}-button--icon) {
102
+ flex-shrink: 1;
103
+
104
+ .#{$ns}-button-text {
105
+ white-space: nowrap;
106
+ overflow: hidden;
107
+ text-overflow: ellipsis;
108
+ }
109
+ }
110
+ }
111
+
85
112
  .#{$eccgui}-card__content {
86
113
  padding: $eccgui-size-card-spacing * 0.5 $eccgui-size-card-spacing $eccgui-size-card-spacing $eccgui-size-card-spacing;
87
114
  flex-grow: 1;
88
115
  flex-shrink: 1;
89
116
  overflow: auto;
90
117
 
118
+ .#{$eccgui}-card--whitespace-none > & {
119
+ padding: 0;
120
+ }
121
+
122
+ .#{$eccgui}-card--whitespace-small > & {
123
+ padding: $eccgui-size-card-spacing * 0.25 $eccgui-size-card-spacing * 0.5 $eccgui-size-card-spacing * 0.5 $eccgui-size-card-spacing * 0.5;
124
+ }
125
+
126
+ .#{$eccgui}-card--whitespace-large > & {
127
+ padding: $eccgui-size-card-spacing $eccgui-size-card-spacing * 2 $eccgui-size-card-spacing * 2 $eccgui-size-card-spacing * 2;
128
+ }
129
+
91
130
  .#{$eccgui}-separation__divider-horizontal + &,
92
131
  &:first-child {
93
132
  padding-top: $eccgui-size-card-spacing;
133
+
134
+ .#{$eccgui}-card--whitespace-none > & {
135
+ padding-top: 0;
136
+ }
137
+
138
+ .#{$eccgui}-card--whitespace-small > & {
139
+ padding-top: $eccgui-size-card-spacing * 0.5;
140
+ }
141
+
142
+ .#{$eccgui}-card--whitespace-large > & {
143
+ padding-top: $eccgui-size-card-spacing * 2;
144
+ }
94
145
  }
95
146
  }
96
147
 
148
+ .#{$eccgui}-card__content--noflexheight {
149
+ flex-grow: 0;
150
+ flex-shrink: 0;
151
+ }
152
+
97
153
  .#{$eccgui}-card__actions {
98
- padding: $eccgui-size-card-spacing * 0.25;
154
+ padding: $eccgui-size-card-spacing * 0.25 $eccgui-size-card-spacing;
99
155
  flex-grow: 0;
100
156
  flex-shrink: 0;
101
157
  display: flex;
102
158
  flex-flow: row wrap;
103
159
  align-items: center;
104
160
 
161
+ .#{$eccgui}-card--whitespace-none > & {
162
+ padding: 0;
163
+ }
164
+
165
+ .#{$eccgui}-card--whitespace-small > & {
166
+ padding: $eccgui-size-card-spacing * 0.125 $eccgui-size-card-spacing * 0.5;
167
+ }
168
+
169
+ .#{$eccgui}-card--whitespace-large > & {
170
+ padding: $eccgui-size-card-spacing * 0.75 $eccgui-size-card-spacing * 2;
171
+ }
172
+
105
173
  & > * {
106
- margin: $eccgui-size-card-spacing * 0.25;
174
+ margin: $eccgui-size-card-spacing * 0.25 0;
175
+ }
176
+
177
+ &:not(.#{$eccgui}-card__actions--inversedirection) > * {
178
+ &:not(:first-child) {
179
+ margin-left: $eccgui-size-card-spacing * 0.25;
180
+ }
181
+ &:not(:last-child) {
182
+ margin-right: $eccgui-size-card-spacing * 0.25;
183
+ }
184
+ }
185
+
186
+ &.#{$eccgui}-card__actions--inversedirection > * {
187
+ &:not(:first-child) {
188
+ margin-right: $eccgui-size-card-spacing * 0.25;
189
+ }
190
+ &:not(:last-child) {
191
+ margin-left: $eccgui-size-card-spacing * 0.25;
192
+ }
107
193
  }
108
194
 
109
195
  &.#{$eccgui}-intent--success > .#{$eccgui}-button:first-child {
@@ -131,9 +217,28 @@ $eccgui-size-card-spacing: $eccgui-size-typo-base !default;
131
217
  flex-flow: row wrap;
132
218
  justify-content: flex-end;
133
219
  align-items: center;
220
+ margin: 0;
134
221
 
135
222
  & > * {
136
- margin: $eccgui-size-card-spacing * 0.25;
223
+ margin: $eccgui-size-card-spacing * 0.25 0;
224
+ }
225
+
226
+ &:not(.#{$eccgui}-card__actions--inversedirection) > * {
227
+ &:not(:first-child) {
228
+ margin-left: $eccgui-size-card-spacing * 0.25;
229
+ }
230
+ &:not(:last-child) {
231
+ margin-right: $eccgui-size-card-spacing * 0.25;
232
+ }
233
+ }
234
+
235
+ &.#{$eccgui}-card__actions--inversedirection > * {
236
+ &:not(:first-child) {
237
+ margin-right: $eccgui-size-card-spacing * 0.25;
238
+ }
239
+ &:not(:last-child) {
240
+ margin-left: $eccgui-size-card-spacing * 0.25;
241
+ }
137
242
  }
138
243
 
139
244
  .#{$eccgui}-card__actions--inversedirection > & {
@@ -28,6 +28,8 @@ $switch-checked-background-color-disabled: rgba($switch-checked-background-color
28
28
  @import "~@blueprintjs/core/src/components/forms/controls"; // Checkbox, Radio, Switch
29
29
 
30
30
  .#{$ns}-control {
31
+ max-width: 100%;
32
+
31
33
  &.#{$ns}-checkbox {
32
34
  input ~ .#{$ns}-control-indicator,
33
35
  input:checked ~ .#{$ns}-control-indicator,
@@ -64,6 +66,8 @@ $switch-checked-background-color-disabled: rgba($switch-checked-background-color
64
66
  }
65
67
  }
66
68
 
67
- .#{$ns}-control-indicator + * {
68
- margin-top: -1 * $eccgui-size-typo-text * $eccgui-size-typo-text-lineheight;
69
+ .#{$ns}-control-indicator + *,
70
+ .#{$ns}-control-indicator + .#{$eccgui}-typography__overflowtext {
71
+ display: inline-block;
72
+ vertical-align: text-top;
69
73
  }
@@ -92,18 +92,18 @@ export function Depiction({
92
92
  }: DepictionProps) {
93
93
  const containerRef = useRef<HTMLDivElement>(null);
94
94
 
95
- useEffect(() => {
96
- if (!!backgroundColor && backgroundColor !== "light" && backgroundColor !== "dark") {
97
- let color = Color("#ffffff")
98
- try {
99
- color = Color(backgroundColor);
100
- } catch(ex) {
101
- console.warn("Received invalid background color for depiction: " + backgroundColor)
95
+ let styleDepictionColors = {};
96
+ if (!!backgroundColor && backgroundColor !== "light" && backgroundColor !== "dark") {
97
+ try {
98
+ const color = Color(backgroundColor);
99
+ styleDepictionColors = {
100
+ [`--${eccgui}-depiction-background`]: color.rgb().toString(),
101
+ [`--${eccgui}-depiction-color`]: decideContrastColorValue({testColor: color})
102
102
  }
103
- containerRef.current!.style.setProperty(`--${eccgui}-depiction-background`, color.rgb().toString());
104
- containerRef.current!.style.setProperty(`--${eccgui}-depiction-color`, decideContrastColorValue({testColor: color}));
103
+ } catch(ex) {
104
+ console.warn("Received invalid background color for depiction: " + backgroundColor)
105
105
  }
106
- }, [backgroundColor]);
106
+ }
107
107
 
108
108
  const updateSvgResizing = React.useCallback((el: SVGElement) => {
109
109
  let preserveAspectRatio = "";
@@ -164,6 +164,7 @@ export function Depiction({
164
164
  (rounded ? ` ${eccgui}-depiction__image--roundedborder` : '') +
165
165
  (padding && padding !== "none" ? ` ${eccgui}-depiction__image--padding-${padding}` : '')
166
166
  }
167
+ style={styleDepictionColors as React.CSSProperties}
167
168
  >
168
169
  {depiction}
169
170
  </div>
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import { FlexGrid as CarbonGrid, GridDefaultProps } from "carbon-components-react";
4
4
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
5
5
 
6
- interface GridProps extends Omit<GridDefaultProps, "fullWidth"> {
6
+ interface GridProps extends Omit<GridDefaultProps, "fullWidth" | "columns" | "narrow"> {
7
7
  /**
8
8
  * The available grid height can be distributed between multiple rows.
9
9
  * To do so the `verticalStretched` property must be set for the `<GridRow />` element that need to be stretched.
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import { Column as CarbonColumn, ColumnDefaultProps } from "carbon-components-react";
4
4
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
5
5
 
6
- interface GridColumnProps extends ColumnDefaultProps {
6
+ interface GridColumnProps extends Omit<ColumnDefaultProps, "max" | "xlg" | "lg" | "md" | "sm"> {
7
7
  /**
8
8
  * Column width is small, using 3 (or 2, on medium viewports) parts out of 16.
9
9
  * This boolean property is basically a quick switch for setting `{ md:2, lg:3 }`.
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import { Row as CarbonRow, RowDefaultProps } from "carbon-components-react";
4
4
  import { CLASSPREFIX as eccgui } from "../../configuration/constants";
5
5
 
6
- interface GridRowProps extends RowDefaultProps {
6
+ interface GridRowProps extends Omit<RowDefaultProps, "narrow"> {
7
7
  /**
8
8
  * Do not wrap column children when there is not enough space available.
9
9
  * This only works for grids on medium sized and larger viewports.
@@ -5,7 +5,7 @@ import Icon from "./Icon";
5
5
  import { TestIconProps } from "./TestIcon";
6
6
  import {ValidIconName} from "./canonicalIconNames";
7
7
 
8
- interface IconButtonProps extends Omit<ButtonProps, "icon" | "rightIcon" | "text" | "minimal" | "tooltip"> {
8
+ export interface IconButtonProps extends Omit<ButtonProps, "icon" | "rightIcon" | "text" | "minimal" | "tooltip"> {
9
9
  /**
10
10
  * Canonical icon name, or an array of strings.
11
11
  * In case of the array the first valid icon name is used.
@@ -62,6 +62,7 @@ export type ValidIconName =
62
62
  | "item-save"
63
63
  | "item-settings"
64
64
  | "item-shuffle"
65
+ | "item-skip-forward"
65
66
  | "item-start"
66
67
  | "item-stop"
67
68
  | "item-upload"
@@ -116,15 +117,20 @@ export type ValidIconName =
116
117
  | "state-unchecked"
117
118
  | "state-warning"
118
119
  | "toggler-caret"
120
+ | "toggler-caretright"
121
+ | "toggler-caretdown"
119
122
  | "toggler-maximize"
120
123
  | "toggler-minimize"
121
124
  | "toggler-moveleft"
122
125
  | "toggler-moveright"
126
+ | "toggler-rowexpand"
127
+ | "toggler-rowcollapse"
123
128
  | "toggler-showless"
124
129
  | "toggler-showmore"
125
130
  | "toggler-star-empty"
126
131
  | "toggler-star-filled"
127
132
  | "toggler-tree"
133
+ | "form-template"
128
134
  | "undefined";
129
135
 
130
136
  export type CarbonIconType = React.ComponentType<CarbonIconProps>;
@@ -198,6 +204,7 @@ const canonicalIconNames: Record<ValidIconName, CarbonIconType> = {
198
204
  "item-save": icons.Save,
199
205
  "item-settings": icons.Settings,
200
206
  "item-shuffle": icons.Shuffle,
207
+ "item-skip-forward": icons.SkipForwardFilled,
201
208
  "item-start": icons.PlayFilledAlt,
202
209
  "item-stop": icons.StopFilledAlt,
203
210
  "item-upload": icons.Upload,
@@ -258,16 +265,22 @@ const canonicalIconNames: Record<ValidIconName, CarbonIconType> = {
258
265
  "state-warning": icons.WarningAltFilled,
259
266
 
260
267
  "toggler-caret": icons.CaretSort,
268
+ "toggler-caretright": icons.CaretRight,
269
+ "toggler-caretdown": icons.CaretDown,
261
270
  "toggler-maximize": icons.Maximize,
262
271
  "toggler-minimize": icons.Minimize,
263
272
  "toggler-moveleft": icons.ChevronLeft,
264
273
  "toggler-moveright": icons.ChevronRight,
274
+ "toggler-rowexpand": icons.RowExpand,
275
+ "toggler-rowcollapse": icons.RowCollapse,
265
276
  "toggler-showless": icons.ChevronUp,
266
277
  "toggler-showmore": icons.ChevronDown,
267
278
  "toggler-star-empty": icons.Star,
268
279
  "toggler-star-filled": icons.StarFilled,
269
280
  "toggler-tree": icons.TreeViewAlt,
270
281
 
282
+ "form-template": icons.Parameter,
283
+
271
284
  undefined: icons.Undefined,
272
285
  };
273
286
 
@@ -55,6 +55,10 @@ $menu-background-color: transparent !default;
55
55
  }
56
56
  }
57
57
 
58
+ span.#{$ns}-menu-item-icon:empty {
59
+ display: none;
60
+ }
61
+
58
62
  .#{$prefix}--side-nav--rail {
59
63
  .#{$ns}-menu-item {
60
64
  white-space: nowrap;
@@ -176,9 +176,9 @@ $eccgui-size-overviewitem-line-typo-large-lineheight: $eccgui-size-typo-subtitle
176
176
  justify-content: flex-end;
177
177
  align-items: center;
178
178
 
179
- //.#{$eccgui}-overviewitem__description + & {
179
+ &:not(:first-child) {
180
180
  margin-left: mini-units(1);
181
- //}
181
+ }
182
182
  }
183
183
 
184
184
  .#{$eccgui}-overviewitem__actions--hiddeninteractions {
@@ -26,6 +26,10 @@ export interface PaginationProps extends CarbonPaginationProps {
26
26
  * Hide prev/next arrows to navigate through the pages.
27
27
  */
28
28
  hideNavigationArrows?: boolean;
29
+ /**
30
+ * Element is displayed with dividing borders.
31
+ */
32
+ hideBorders?: boolean;
29
33
  }
30
34
 
31
35
  function Pagination({
@@ -34,6 +38,7 @@ function Pagination({
34
38
  hideInfoText = false,
35
39
  hidePageSelect = false,
36
40
  hideNavigationArrows = false,
41
+ hideBorders = false,
37
42
  ...otherProps
38
43
  }: PaginationProps) {
39
44
  return (
@@ -45,7 +50,8 @@ function Pagination({
45
50
  (hidePageSizeConfiguration ? ` ${eccgui}-pagination--hidepagesize` : "") +
46
51
  (hideInfoText ? ` ${eccgui}-pagination--hideinfotext` : "") +
47
52
  (hidePageSelect ? ` ${eccgui}-pagination--hidepageselect` : "") +
48
- (hideNavigationArrows ? ` ${eccgui}-pagination--hidenavigation` : "")
53
+ (hideNavigationArrows ? ` ${eccgui}-pagination--hidenavigation` : "") +
54
+ (hideBorders ? ` ${eccgui}-pagination--hideborders` : "")
49
55
  }
50
56
  />
51
57
  );
@@ -74,19 +80,33 @@ export const usePagination = ({
74
80
  initialPageSize,
75
81
  }: IPaginationOptions) => {
76
82
  const minSize = Math.min(...pageSizes);
77
- const [pagination, setPagination] = useState<IPaginationDetails>({
83
+ const _pagination = React.useRef<IPaginationDetails>({
78
84
  total: 0,
79
85
  current: 1,
80
86
  limit: initialPageSize ? initialPageSize : minSize,
81
87
  minPageSize: minSize,
82
- });
83
- const onPaginationChange = ({ page, pageSize }: {page: any, pageSize: any}) => {
84
- setPagination({ ...pagination, current: page, limit: pageSize });
85
- };
88
+ })
89
+ const [pagination, _setPagination] = useState<IPaginationDetails>(_pagination.current);
90
+ const setPagination = React.useCallback((newPagination: IPaginationDetails) => {
91
+ // Check if pagination has actually changed
92
+ const current = _pagination.current
93
+ if (newPagination.current !== current.current ||
94
+ newPagination.minPageSize !== current.minPageSize ||
95
+ newPagination.limit !== current.limit ||
96
+ newPagination.total !== current.total) {
97
+ _pagination.current = newPagination
98
+ _setPagination(newPagination)
99
+ }
100
+ }, [])
101
+ const onPaginationChange = React.useCallback(({ page, pageSize }: {page: any, pageSize: any}) => {
102
+ setPagination({ ..._pagination.current, current: page, limit: pageSize });
103
+ }, [setPagination]);
86
104
  // When the total number of pageable items changes, this function must be called
87
- const onTotalChange = (total: number): void => {
88
- setPagination({ ...pagination, total: total, current: 1 });
89
- };
105
+ const onTotalChange = React.useCallback((total: number): void => {
106
+ if(_pagination.current.total !== total) {
107
+ setPagination({ ..._pagination.current, total: total, current: 1 });
108
+ }
109
+ }, [setPagination]);
90
110
  const paginationElement = (
91
111
  <Pagination
92
112
  onChange={onPaginationChange}