@deviceinsight/ng-ui-components 6.18.0 → 6.19.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 (359) hide show
  1. package/lib/cjs/__mocks__/i18n.d.ts +12 -4
  2. package/lib/cjs/__mocks__/i18n.d.ts.map +1 -1
  3. package/lib/cjs/__mocks__/i18n.js +20 -7
  4. package/lib/cjs/components/chart/Chart.d.ts +1 -1
  5. package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts +1 -1
  6. package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts +2 -2
  7. package/lib/cjs/components/colorpicker/GridColorPicker.d.ts +2 -2
  8. package/lib/cjs/components/contentHeader/ContentHeader.d.ts +1 -1
  9. package/lib/cjs/components/contentHeader/ContentHeader.d.ts.map +1 -1
  10. package/lib/cjs/components/infobox/InfoBox.d.ts +1 -1
  11. package/lib/cjs/components/infobox/InfoBox.d.ts.map +1 -1
  12. package/lib/cjs/components/input/DateInput.d.ts +2 -2
  13. package/lib/cjs/components/input/DateInput.d.ts.map +1 -1
  14. package/lib/cjs/components/input/DateTimeInput.d.ts +2 -2
  15. package/lib/cjs/components/input/DateTimeInput.d.ts.map +1 -1
  16. package/lib/cjs/components/input/SelectWithSearch.d.ts +4 -1
  17. package/lib/cjs/components/input/SelectWithSearch.d.ts.map +1 -1
  18. package/lib/cjs/components/input/SelectWithSearch.js +25 -4
  19. package/lib/cjs/components/input/SelectWithSearchAsync.d.ts +1 -1
  20. package/lib/cjs/components/input/UrnInput.d.ts +1 -1
  21. package/lib/cjs/components/input/ValidatedTextInput.d.ts +1 -1
  22. package/lib/cjs/components/input/__tests__/DateInput.spec.js +24 -24
  23. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.js +5 -4
  24. package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.js +12 -11
  25. package/lib/cjs/components/link/RouteLink.d.ts +2 -2
  26. package/lib/cjs/components/link/RouteLink.d.ts.map +1 -1
  27. package/lib/cjs/components/multiMenu/MultiMenu.d.ts +1 -1
  28. package/lib/cjs/components/multiMenu/components/MultiMenuItem.d.ts +1 -1
  29. package/lib/cjs/components/pagination/Pagination.d.ts +1 -1
  30. package/lib/cjs/components/pagination/__tests__/Pagination.spec.js +70 -70
  31. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts +2 -2
  32. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts.map +1 -1
  33. package/lib/cjs/components/periodpicker/components/Inputs.d.ts +2 -2
  34. package/lib/cjs/components/periodpicker/components/Inputs.d.ts.map +1 -1
  35. package/lib/cjs/components/periodpicker/components/Menu.d.ts +2 -2
  36. package/lib/cjs/components/periodpicker/components/Menu.d.ts.map +1 -1
  37. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts +2 -2
  38. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts.map +1 -1
  39. package/lib/cjs/components/periodpicker/usePeriodName.d.ts +1 -1
  40. package/lib/cjs/components/periodpicker/usePeriodName.d.ts.map +1 -1
  41. package/lib/cjs/components/periodpicker/usePeriodName.js +2 -2
  42. package/lib/cjs/components/prompt/Prompt.d.ts +2 -2
  43. package/lib/cjs/components/prompt/Prompt.d.ts.map +1 -1
  44. package/lib/cjs/components/reactable/Reactable.d.ts +1 -1
  45. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts +1 -1
  46. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts +2 -2
  47. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  48. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts +1 -1
  49. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +1 -1
  50. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +64 -72
  51. package/lib/cjs/components/slider/Slider.d.ts +2 -2
  52. package/lib/cjs/components/slider/Slider.d.ts.map +1 -1
  53. package/lib/cjs/components/svg/SvgImage.d.ts +2 -2
  54. package/lib/cjs/components/svg/SvgImage.d.ts.map +1 -1
  55. package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.js +11 -10
  56. package/lib/cjs/components/tabs/RouteTabs.d.ts +1 -1
  57. package/lib/cjs/components/tabs/RouteTabs.d.ts.map +1 -1
  58. package/lib/cjs/components/tabs/RouteTabs.js +2 -2
  59. package/lib/cjs/components/treeview/TreeView.d.ts +1 -1
  60. package/lib/cjs/components/treeview/components/Node.d.ts +1 -1
  61. package/lib/cjs/components/treeview/components/NodeInfo.d.ts +1 -1
  62. package/lib/cjs/components/upload/FileUpload.d.ts +1 -1
  63. package/lib/cjs/components/upload/ImageUpload.d.ts +1 -1
  64. package/lib/cjs/modules/messageBox/messageBox.d.ts +2 -2
  65. package/lib/cjs/modules/messageBox/messageBox.d.ts.map +1 -1
  66. package/lib/esm/__mocks__/i18n.d.ts +12 -4
  67. package/lib/esm/__mocks__/i18n.d.ts.map +1 -1
  68. package/lib/esm/__mocks__/i18n.js +20 -5
  69. package/lib/esm/components/chart/Chart.d.ts +1 -1
  70. package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts +1 -1
  71. package/lib/esm/components/colorpicker/GradientColorPicker.d.ts +2 -2
  72. package/lib/esm/components/colorpicker/GridColorPicker.d.ts +2 -2
  73. package/lib/esm/components/contentHeader/ContentHeader.d.ts +1 -1
  74. package/lib/esm/components/contentHeader/ContentHeader.d.ts.map +1 -1
  75. package/lib/esm/components/infobox/InfoBox.d.ts +1 -1
  76. package/lib/esm/components/infobox/InfoBox.d.ts.map +1 -1
  77. package/lib/esm/components/input/DateInput.d.ts +2 -2
  78. package/lib/esm/components/input/DateInput.d.ts.map +1 -1
  79. package/lib/esm/components/input/DateTimeInput.d.ts +2 -2
  80. package/lib/esm/components/input/DateTimeInput.d.ts.map +1 -1
  81. package/lib/esm/components/input/SelectWithSearch.d.ts +4 -1
  82. package/lib/esm/components/input/SelectWithSearch.d.ts.map +1 -1
  83. package/lib/esm/components/input/SelectWithSearch.js +25 -4
  84. package/lib/esm/components/input/SelectWithSearchAsync.d.ts +1 -1
  85. package/lib/esm/components/input/UrnInput.d.ts +1 -1
  86. package/lib/esm/components/input/ValidatedTextInput.d.ts +1 -1
  87. package/lib/esm/components/input/__tests__/DateInput.spec.js +4 -4
  88. package/lib/esm/components/input/__tests__/DateTimeInput.spec.js +1 -0
  89. package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.js +3 -2
  90. package/lib/esm/components/link/RouteLink.d.ts +2 -2
  91. package/lib/esm/components/link/RouteLink.d.ts.map +1 -1
  92. package/lib/esm/components/multiMenu/MultiMenu.d.ts +1 -1
  93. package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts +1 -1
  94. package/lib/esm/components/pagination/Pagination.d.ts +1 -1
  95. package/lib/esm/components/pagination/__tests__/Pagination.spec.js +53 -53
  96. package/lib/esm/components/periodpicker/PeriodPicker.d.ts +2 -2
  97. package/lib/esm/components/periodpicker/PeriodPicker.d.ts.map +1 -1
  98. package/lib/esm/components/periodpicker/components/Inputs.d.ts +2 -2
  99. package/lib/esm/components/periodpicker/components/Inputs.d.ts.map +1 -1
  100. package/lib/esm/components/periodpicker/components/Menu.d.ts +2 -2
  101. package/lib/esm/components/periodpicker/components/Menu.d.ts.map +1 -1
  102. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts +2 -2
  103. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts.map +1 -1
  104. package/lib/esm/components/periodpicker/usePeriodName.d.ts +1 -1
  105. package/lib/esm/components/periodpicker/usePeriodName.d.ts.map +1 -1
  106. package/lib/esm/components/periodpicker/usePeriodName.js +1 -1
  107. package/lib/esm/components/prompt/Prompt.d.ts +2 -2
  108. package/lib/esm/components/prompt/Prompt.d.ts.map +1 -1
  109. package/lib/esm/components/reactable/Reactable.d.ts +1 -1
  110. package/lib/esm/components/reactable/helpers/ReactableTable.d.ts +1 -1
  111. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts +2 -2
  112. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  113. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts +1 -1
  114. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +1 -1
  115. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +55 -63
  116. package/lib/esm/components/slider/Slider.d.ts +2 -2
  117. package/lib/esm/components/slider/Slider.d.ts.map +1 -1
  118. package/lib/esm/components/svg/SvgImage.d.ts +2 -2
  119. package/lib/esm/components/svg/SvgImage.d.ts.map +1 -1
  120. package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.js +1 -0
  121. package/lib/esm/components/tabs/RouteTabs.d.ts +1 -1
  122. package/lib/esm/components/tabs/RouteTabs.d.ts.map +1 -1
  123. package/lib/esm/components/tabs/RouteTabs.js +2 -2
  124. package/lib/esm/components/treeview/TreeView.d.ts +1 -1
  125. package/lib/esm/components/treeview/components/Node.d.ts +1 -1
  126. package/lib/esm/components/treeview/components/NodeInfo.d.ts +1 -1
  127. package/lib/esm/components/upload/FileUpload.d.ts +1 -1
  128. package/lib/esm/components/upload/ImageUpload.d.ts +1 -1
  129. package/lib/esm/modules/messageBox/messageBox.d.ts +2 -2
  130. package/lib/esm/modules/messageBox/messageBox.d.ts.map +1 -1
  131. package/lib/esm/src/__mocks__/i18n.d.ts +13 -0
  132. package/lib/esm/src/__mocks__/i18n.d.ts.map +1 -0
  133. package/lib/esm/src/__mocks__/i18n.js +20 -0
  134. package/lib/esm/src/components/chart/Chart.d.ts +38 -0
  135. package/lib/esm/src/components/chart/Chart.d.ts.map +1 -0
  136. package/lib/esm/src/components/chart/Chart.js +202 -0
  137. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts +24 -0
  138. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts.map +1 -0
  139. package/lib/esm/src/components/colorpicker/ColorPickerPopper.js +46 -0
  140. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts +63 -0
  141. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts.map +1 -0
  142. package/lib/esm/src/components/colorpicker/GradientColorPicker.js +125 -0
  143. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts +41 -0
  144. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts.map +1 -0
  145. package/lib/esm/src/components/colorpicker/GridColorPicker.js +30 -0
  146. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts +25 -0
  147. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts.map +1 -0
  148. package/lib/esm/src/components/contentHeader/ContentHeader.js +53 -0
  149. package/lib/esm/src/components/infobox/InfoBox.d.ts +22 -0
  150. package/lib/esm/src/components/infobox/InfoBox.d.ts.map +1 -0
  151. package/lib/esm/src/components/infobox/InfoBox.js +36 -0
  152. package/lib/esm/src/components/input/DateInput.d.ts +28 -0
  153. package/lib/esm/src/components/input/DateInput.d.ts.map +1 -0
  154. package/lib/esm/src/components/input/DateInput.js +157 -0
  155. package/lib/esm/src/components/input/DateTimeInput.d.ts +27 -0
  156. package/lib/esm/src/components/input/DateTimeInput.d.ts.map +1 -0
  157. package/lib/esm/src/components/input/DateTimeInput.js +50 -0
  158. package/lib/esm/src/components/input/SelectWithSearch.d.ts +65 -0
  159. package/lib/esm/src/components/input/SelectWithSearch.d.ts.map +1 -0
  160. package/lib/esm/src/components/input/SelectWithSearch.js +111 -0
  161. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts +58 -0
  162. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts.map +1 -0
  163. package/lib/esm/src/components/input/SelectWithSearchAsync.js +100 -0
  164. package/lib/esm/src/components/input/UrnInput.d.ts +22 -0
  165. package/lib/esm/src/components/input/UrnInput.d.ts.map +1 -0
  166. package/lib/esm/src/components/input/UrnInput.js +33 -0
  167. package/lib/esm/src/components/input/ValidatedTextInput.d.ts +35 -0
  168. package/lib/esm/src/components/input/ValidatedTextInput.d.ts.map +1 -0
  169. package/lib/esm/src/components/input/ValidatedTextInput.js +30 -0
  170. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts +2 -0
  171. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts.map +1 -0
  172. package/lib/esm/src/components/input/__tests__/DateInput.spec.js +85 -0
  173. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts +2 -0
  174. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts.map +1 -0
  175. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.js +13 -0
  176. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +2 -0
  177. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +1 -0
  178. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.js +44 -0
  179. package/lib/esm/src/components/link/RouteLink.d.ts +31 -0
  180. package/lib/esm/src/components/link/RouteLink.d.ts.map +1 -0
  181. package/lib/esm/src/components/link/RouteLink.js +55 -0
  182. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts +27 -0
  183. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts.map +1 -0
  184. package/lib/esm/src/components/multiMenu/MultiMenu.js +30 -0
  185. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts +7 -0
  186. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts.map +1 -0
  187. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.js +5 -0
  188. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts +14 -0
  189. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts.map +1 -0
  190. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.js +24 -0
  191. package/lib/esm/src/components/pagination/Pagination.d.ts +37 -0
  192. package/lib/esm/src/components/pagination/Pagination.d.ts.map +1 -0
  193. package/lib/esm/src/components/pagination/Pagination.js +114 -0
  194. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts +2 -0
  195. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts.map +1 -0
  196. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.js +87 -0
  197. package/lib/esm/src/components/periodpicker/PeriodPicker.d.ts +23 -0
  198. package/lib/esm/src/components/periodpicker/PeriodPicker.d.ts.map +1 -0
  199. package/lib/esm/src/components/periodpicker/PeriodPicker.js +11 -0
  200. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts +12 -0
  201. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts.map +1 -0
  202. package/lib/esm/src/components/periodpicker/components/Inputs.js +59 -0
  203. package/lib/esm/src/components/periodpicker/components/Menu.d.ts +11 -0
  204. package/lib/esm/src/components/periodpicker/components/Menu.d.ts.map +1 -0
  205. package/lib/esm/src/components/periodpicker/components/Menu.js +96 -0
  206. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts +19 -0
  207. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts.map +1 -0
  208. package/lib/esm/src/components/periodpicker/components/MonthPicker.js +62 -0
  209. package/lib/esm/src/components/periodpicker/periods.d.ts +33 -0
  210. package/lib/esm/src/components/periodpicker/periods.d.ts.map +1 -0
  211. package/lib/esm/src/components/periodpicker/periods.js +56 -0
  212. package/lib/esm/src/components/periodpicker/types.d.ts +5 -0
  213. package/lib/esm/src/components/periodpicker/types.d.ts.map +1 -0
  214. package/lib/esm/src/components/periodpicker/types.js +1 -0
  215. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts +7 -0
  216. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts.map +1 -0
  217. package/lib/esm/src/components/periodpicker/usePeriodName.js +38 -0
  218. package/lib/esm/src/components/prompt/Prompt.d.ts +23 -0
  219. package/lib/esm/src/components/prompt/Prompt.d.ts.map +1 -0
  220. package/lib/esm/src/components/prompt/Prompt.js +31 -0
  221. package/lib/esm/src/components/prompt/withPrompt.d.ts +7 -0
  222. package/lib/esm/src/components/prompt/withPrompt.d.ts.map +1 -0
  223. package/lib/esm/src/components/prompt/withPrompt.js +33 -0
  224. package/lib/esm/src/components/reactable/Reactable.d.ts +38 -0
  225. package/lib/esm/src/components/reactable/Reactable.d.ts.map +1 -0
  226. package/lib/esm/src/components/reactable/Reactable.js +18 -0
  227. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts +21 -0
  228. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts.map +1 -0
  229. package/lib/esm/src/components/reactable/helpers/ReactableTable.js +33 -0
  230. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts +9 -0
  231. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -0
  232. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.js +57 -0
  233. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts +16 -0
  234. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -0
  235. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.js +52 -0
  236. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts +16 -0
  237. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -0
  238. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.js +56 -0
  239. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts +9 -0
  240. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts.map +1 -0
  241. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.js +18 -0
  242. package/lib/esm/src/components/reactable/helpers/helper.d.ts +7 -0
  243. package/lib/esm/src/components/reactable/helpers/helper.d.ts.map +1 -0
  244. package/lib/esm/src/components/reactable/helpers/helper.js +90 -0
  245. package/lib/esm/src/components/reactable/types.d.ts +38 -0
  246. package/lib/esm/src/components/reactable/types.d.ts.map +1 -0
  247. package/lib/esm/src/components/reactable/types.js +1 -0
  248. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +69 -0
  249. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -0
  250. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +155 -0
  251. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +2 -0
  252. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +1 -0
  253. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +130 -0
  254. package/lib/esm/src/components/slider/Slider.d.ts +30 -0
  255. package/lib/esm/src/components/slider/Slider.d.ts.map +1 -0
  256. package/lib/esm/src/components/slider/Slider.js +35 -0
  257. package/lib/esm/src/components/slider/useLimitStyling.d.ts +3 -0
  258. package/lib/esm/src/components/slider/useLimitStyling.d.ts.map +1 -0
  259. package/lib/esm/src/components/slider/useLimitStyling.js +49 -0
  260. package/lib/esm/src/components/svg/SvgImage.d.ts +12 -0
  261. package/lib/esm/src/components/svg/SvgImage.d.ts.map +1 -0
  262. package/lib/esm/src/components/svg/SvgImage.js +37 -0
  263. package/lib/esm/src/components/svg/storybookHelper.d.ts +7 -0
  264. package/lib/esm/src/components/svg/storybookHelper.d.ts.map +1 -0
  265. package/lib/esm/src/components/svg/storybookHelper.js +53 -0
  266. package/lib/esm/src/components/svg/types.d.ts +58 -0
  267. package/lib/esm/src/components/svg/types.d.ts.map +1 -0
  268. package/lib/esm/src/components/svg/types.js +1 -0
  269. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +2 -0
  270. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +1 -0
  271. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.js +24 -0
  272. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts +4 -0
  273. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts.map +1 -0
  274. package/lib/esm/src/components/svg/utils/createHyperlinkModification.js +35 -0
  275. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts +3 -0
  276. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts.map +1 -0
  277. package/lib/esm/src/components/svg/utils/createPositionModification.js +19 -0
  278. package/lib/esm/src/components/svg/utils/findConflicts.d.ts +2 -0
  279. package/lib/esm/src/components/svg/utils/findConflicts.d.ts.map +1 -0
  280. package/lib/esm/src/components/svg/utils/findConflicts.js +23 -0
  281. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts +3 -0
  282. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts.map +1 -0
  283. package/lib/esm/src/components/svg/utils/getMutableNodeList.js +12 -0
  284. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts +3 -0
  285. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts.map +1 -0
  286. package/lib/esm/src/components/svg/utils/getSvgElement.js +10 -0
  287. package/lib/esm/src/components/svg/utils/renderSvg.d.ts +3 -0
  288. package/lib/esm/src/components/svg/utils/renderSvg.d.ts.map +1 -0
  289. package/lib/esm/src/components/svg/utils/renderSvg.js +88 -0
  290. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts +4 -0
  291. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts.map +1 -0
  292. package/lib/esm/src/components/svg/utils/transformPositionModifications.js +42 -0
  293. package/lib/esm/src/components/svg/utils/validateSvg.d.ts +3 -0
  294. package/lib/esm/src/components/svg/utils/validateSvg.d.ts.map +1 -0
  295. package/lib/esm/src/components/svg/utils/validateSvg.js +5 -0
  296. package/lib/esm/src/components/tabs/RouteTabs.d.ts +24 -0
  297. package/lib/esm/src/components/tabs/RouteTabs.d.ts.map +1 -0
  298. package/lib/esm/src/components/tabs/RouteTabs.js +67 -0
  299. package/lib/esm/src/components/treeview/TreeView.d.ts +50 -0
  300. package/lib/esm/src/components/treeview/TreeView.d.ts.map +1 -0
  301. package/lib/esm/src/components/treeview/TreeView.js +104 -0
  302. package/lib/esm/src/components/treeview/components/Node.d.ts +37 -0
  303. package/lib/esm/src/components/treeview/components/Node.d.ts.map +1 -0
  304. package/lib/esm/src/components/treeview/components/Node.js +111 -0
  305. package/lib/esm/src/components/treeview/components/NodeInfo.d.ts +25 -0
  306. package/lib/esm/src/components/treeview/components/NodeInfo.d.ts.map +1 -0
  307. package/lib/esm/src/components/treeview/components/NodeInfo.js +64 -0
  308. package/lib/esm/src/components/treeview/constants.d.ts +6 -0
  309. package/lib/esm/src/components/treeview/constants.d.ts.map +1 -0
  310. package/lib/esm/src/components/treeview/constants.js +6 -0
  311. package/lib/esm/src/components/treeview/treeutils.d.ts +59 -0
  312. package/lib/esm/src/components/treeview/treeutils.d.ts.map +1 -0
  313. package/lib/esm/src/components/treeview/treeutils.js +158 -0
  314. package/lib/esm/src/components/treeview/types.d.ts +37 -0
  315. package/lib/esm/src/components/treeview/types.d.ts.map +1 -0
  316. package/lib/esm/src/components/treeview/types.js +1 -0
  317. package/lib/esm/src/components/upload/FileUpload.d.ts +67 -0
  318. package/lib/esm/src/components/upload/FileUpload.d.ts.map +1 -0
  319. package/lib/esm/src/components/upload/FileUpload.js +95 -0
  320. package/lib/esm/src/components/upload/ImageUpload.d.ts +21 -0
  321. package/lib/esm/src/components/upload/ImageUpload.d.ts.map +1 -0
  322. package/lib/esm/src/components/upload/ImageUpload.js +45 -0
  323. package/lib/esm/src/hoc/outsideClick.d.ts +4 -0
  324. package/lib/esm/src/hoc/outsideClick.d.ts.map +1 -0
  325. package/lib/esm/src/hoc/outsideClick.js +73 -0
  326. package/lib/esm/src/i18n/index.d.ts +16 -0
  327. package/lib/esm/src/i18n/index.d.ts.map +1 -0
  328. package/lib/esm/src/i18n/index.js +6 -0
  329. package/lib/esm/src/index.d.ts +52 -0
  330. package/lib/esm/src/index.d.ts.map +1 -0
  331. package/lib/esm/src/index.js +39 -0
  332. package/lib/esm/src/modules/messageBox/messageBox.d.ts +14 -0
  333. package/lib/esm/src/modules/messageBox/messageBox.d.ts.map +1 -0
  334. package/lib/esm/src/modules/messageBox/messageBox.js +56 -0
  335. package/lib/esm/src/modules/utils/nanoidGen.d.ts +2 -0
  336. package/lib/esm/src/modules/utils/nanoidGen.d.ts.map +1 -0
  337. package/lib/esm/src/modules/utils/nanoidGen.js +3 -0
  338. package/lib/esm/src/modules/utils/uuidGen.d.ts +2 -0
  339. package/lib/esm/src/modules/utils/uuidGen.d.ts.map +1 -0
  340. package/lib/esm/src/modules/utils/uuidGen.js +13 -0
  341. package/lib/esm/src/types/i18n.d.ts +5 -0
  342. package/lib/esm/src/types/i18n.d.ts.map +1 -0
  343. package/lib/esm/src/types/i18n.js +1 -0
  344. package/lib/esm/src/types/pagination.d.ts +19 -0
  345. package/lib/esm/src/types/pagination.d.ts.map +1 -0
  346. package/lib/esm/src/types/pagination.js +1 -0
  347. package/lib/esm/src/utils/dayjsLocales.d.ts +10 -0
  348. package/lib/esm/src/utils/dayjsLocales.d.ts.map +1 -0
  349. package/lib/esm/src/utils/dayjsLocales.js +12 -0
  350. package/lib/esm/src/utils/resolvePath.d.ts +2 -0
  351. package/lib/esm/src/utils/resolvePath.d.ts.map +1 -0
  352. package/lib/esm/src/utils/resolvePath.js +4 -0
  353. package/lib/esm/vite.config.d.mts +3 -0
  354. package/lib/esm/vite.config.d.mts.map +1 -0
  355. package/lib/esm/vite.config.mjs +9 -0
  356. package/lib/esm/vitest.setup.d.ts +3 -0
  357. package/lib/esm/vitest.setup.d.ts.map +1 -0
  358. package/lib/esm/vitest.setup.js +10 -0
  359. package/package.json +24 -54
@@ -0,0 +1,18 @@
1
+ import React, { useState } from 'react';
2
+ import { useTranslation } from '../../../i18n';
3
+ const getInitialValueFromColumnDef = (columnDef) => {
4
+ return columnDef.filterable?.initialValue ?? '';
5
+ };
6
+ const ReactableTextFilter = ({ columnDef, changeFilter }) => {
7
+ const { t } = useTranslation();
8
+ const [value, setValue] = useState(getInitialValueFromColumnDef(columnDef));
9
+ const handleChange = (event) => {
10
+ const newValue = event.target.value;
11
+ setValue(newValue);
12
+ changeFilter(columnDef.name, newValue);
13
+ };
14
+ return (React.createElement("input", { type: "text", placeholder: t(`${columnDef.filterable?.placeholder ?? 'reactable.filter.placeholder'}`, {
15
+ defaultValue: 'Filter...'
16
+ }), onChange: handleChange, value: value }));
17
+ };
18
+ export default ReactableTextFilter;
@@ -0,0 +1,7 @@
1
+ import { Pageable, Sort, PaginationSettings } from '../../../types/pagination';
2
+ import { ReactableColumnDef, ReactableFilterSettings } from '../types';
3
+ export declare function makePageable<T>(items: Array<T> | null | undefined, columnDefs: Array<ReactableColumnDef<any>>, filterSettings: ReactableFilterSettings, paginationSettings: PaginationSettings, customSortFunction: ((items: Array<T>, sort: Sort, defaultSortItems: (items: Array<T>, sort: Sort) => Array<T>) => Array<T>) | null | undefined): Pageable<T> | null | undefined;
4
+ export declare function filterItems<T>(items: Array<T> | null | undefined, columnDefs: Array<ReactableColumnDef<any>>, filterSettings: ReactableFilterSettings): Array<T> | null | undefined;
5
+ export declare function sortItems<T>(items: Array<T>, sort: Sort): Array<T>;
6
+ export declare function extendColumnDefsWithCheckboxes<T>(columnDefs: Array<ReactableColumnDef<T>>, onSelectChange: (selected: boolean, item: T) => void, onSelectAllChange: (selected: boolean) => void, selectedAll: boolean, selectedItems: Array<any>, uniqueItemKey: (arg0: T) => any): Array<ReactableColumnDef<T>>;
7
+ //# sourceMappingURL=helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/reactable/helpers/helper.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AAErE,wBAAgB,YAAY,CAAC,CAAC,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,EACvC,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EACf,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GACxG,IAAI,GACJ,SAAS,GACV,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAehC;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,GACrC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAyB7B;AAYD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAkBlE;AAED,wBAAgB,8BAA8B,CAAC,CAAC,EAC/C,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxC,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EACpD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,EAC9C,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EACzB,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,GAC7B,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA2B9B"}
@@ -0,0 +1,90 @@
1
+ import * as React from 'react';
2
+ import { Checkbox } from '@deviceinsight/ng-ui-basic-components';
3
+ export function makePageable(items, columnDefs, filterSettings, paginationSettings, customSortFunction) {
4
+ if (!items) {
5
+ return null;
6
+ }
7
+ const { page, size, sort } = paginationSettings;
8
+ const sortedItems = customSortFunction ? customSortFunction(items, sort, sortItems) : sortItems(items, sort);
9
+ return {
10
+ content: sortedItems.slice(page * size, (page + 1) * size),
11
+ totalElements: items.length,
12
+ totalPages: Math.ceil(items.length / size),
13
+ number: page,
14
+ size,
15
+ sort: [sort]
16
+ };
17
+ }
18
+ const getDefaultFilterFn = (filterType, fieldName) => {
19
+ if (filterType === 'text') {
20
+ return (item, filterValue) => item[fieldName] && item[fieldName].toString().toLowerCase().includes(filterValue.toLowerCase());
21
+ }
22
+ else {
23
+ return (item, filterValue) => item[fieldName] === filterValue;
24
+ }
25
+ };
26
+ export function filterItems(items, columnDefs, filterSettings) {
27
+ if (items) {
28
+ return items.filter((item) => {
29
+ return Object.keys(filterSettings).every((columnName) => {
30
+ const filterValue = filterSettings[columnName];
31
+ if (filterValue && filterValue.length > 0) {
32
+ const columnDef = findColumnDefByName(columnName, columnDefs);
33
+ if (columnDef.filterable) {
34
+ const filterFn = columnDef.filterable.filterFn ||
35
+ getDefaultFilterFn(columnDef.filterable.filterType, columnDef.name);
36
+ return filterFn(item, filterValue);
37
+ }
38
+ return false;
39
+ }
40
+ return true;
41
+ });
42
+ });
43
+ }
44
+ return null;
45
+ }
46
+ function findColumnDefByName(columnName, columnDefs) {
47
+ const columnDef = columnDefs.find((cd) => cd.name === columnName);
48
+ if (!columnDef) {
49
+ throw Error(`column definition not found for ${columnName}`);
50
+ }
51
+ return columnDef;
52
+ }
53
+ export function sortItems(items, sort) {
54
+ return items.sort((itemA, itemB) => {
55
+ // eslint-disable-next-line @typescript-eslint/ban-types
56
+ const a = ((typeof itemA === 'object' && itemA?.[sort.property]) || 0);
57
+ // eslint-disable-next-line @typescript-eslint/ban-types
58
+ const b = ((typeof itemB === 'object' && itemB?.[sort.property]) || 0);
59
+ const reverseFactor = sort.direction === 'ASC' ? 1 : -1;
60
+ if (a === b) {
61
+ return 0;
62
+ }
63
+ else if (typeof a === 'string' && typeof b === 'string') {
64
+ return a.localeCompare(b) * reverseFactor;
65
+ }
66
+ else if (typeof a === 'number' && typeof b === 'number') {
67
+ return (a - b) * reverseFactor;
68
+ }
69
+ else {
70
+ return a.toString().localeCompare(b.toString()) * reverseFactor;
71
+ }
72
+ });
73
+ }
74
+ export function extendColumnDefsWithCheckboxes(columnDefs, onSelectChange, onSelectAllChange, selectedAll, selectedItems, uniqueItemKey) {
75
+ return [
76
+ {
77
+ name: 'checkbox',
78
+ label: (React.createElement(Checkbox, { value: selectedAll, onChange: onSelectAllChange, title: {
79
+ id: 'components.filtertable.selectAllItems',
80
+ defaultValue: 'Select/deselect all items in search result'
81
+ } })),
82
+ sortable: false,
83
+ render: (item) => {
84
+ return (React.createElement(Checkbox, { value: selectedItems.includes(uniqueItemKey(item)), onChange: (selected) => onSelectChange(selected, item) }));
85
+ },
86
+ width: '1%'
87
+ },
88
+ ...columnDefs
89
+ ];
90
+ }
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ import { CSSProperties } from 'react';
3
+ import { TranslationDescriptor } from '../../types/i18n';
4
+ import { SortDirection } from '../../types/pagination';
5
+ export declare type ReactableColumnLabel = string | TranslationDescriptor | React.ReactNode;
6
+ declare type ReactableColumnFilterable<T> = {
7
+ filterType: 'text' | 'options';
8
+ filterOptions?: Array<{
9
+ value: string;
10
+ label: string | TranslationDescriptor;
11
+ }>;
12
+ filterFn?: (item: T, value: string) => boolean;
13
+ initialValue?: string;
14
+ placeholder?: string;
15
+ };
16
+ export declare type ReactableColumnDef<T> = {
17
+ name: string;
18
+ label: ReactableColumnLabel;
19
+ sortable?: boolean;
20
+ defaultSortDirection?: SortDirection;
21
+ render: (element: T) => React.ReactNode;
22
+ onClick?: (element: T) => void;
23
+ width?: string;
24
+ align?: 'left' | 'right' | 'center';
25
+ whiteSpace?: string;
26
+ filterable?: ReactableColumnFilterable<T>;
27
+ };
28
+ export declare type ReactableFilterSettings = {
29
+ [columName: string]: string;
30
+ };
31
+ export declare type ReactableRowDef<T> = {
32
+ onClick?: (element: T) => void;
33
+ getRowClass?: (element: T) => string;
34
+ getRowStyle?: (element: T) => CSSProperties;
35
+ getTooltip?: (element: T) => string;
36
+ };
37
+ export {};
38
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,oBAAY,oBAAoB,GAAG,MAAM,GAAG,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC;AAEpF,aAAK,yBAAyB,CAAC,CAAC,IAAI;IACnC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,kBAAkB,CAAC,CAAC,IAAI;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,aAAa,CAAC;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,CAAC;AAEpE,oBAAY,eAAe,CAAC,CAAC,IAAI;IAChC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,aAAa,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC;CACpC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
1
+ import * as React from 'react';
2
+ import { Pageable, PaginationSettings, Sort, SortDirection } from '../../types/pagination';
3
+ import { ReactableColumnDef, ReactableRowDef, ReactableFilterSettings } from '../reactable/types';
4
+ export declare type Props<T, ID extends string | number | undefined | null = any> = {
5
+ /** Array of column definitions, each column can be configured independently */
6
+ columnDefs: Array<ReactableColumnDef<T>>;
7
+ /** (Optional) can set custom event handler and/or functions in general */
8
+ rowDef?: ReactableRowDef<T>;
9
+ /** Function, sets identifier for each element in Reactable */
10
+ uniqueItemKey: (arg0: T) => ID;
11
+ /**
12
+ * (Deprecated) This property will be removed in the future release, use paginationSettings instead
13
+ * @deprecated
14
+ */
15
+ initialPaginationSettings?: PaginationSettings;
16
+ /** (Optional) settings for paginated content */
17
+ paginationSettings?: PaginationSettings;
18
+ /** Array of elements */
19
+ items: Array<T> | null | undefined;
20
+ /** It true, shows loading indicator */
21
+ isLoading: boolean;
22
+ /** (Optional) sets custom sort function */
23
+ customSortFunction?: (items: Array<T>, sort: Sort, defaultSortItems: (items: Array<T>, sort: Sort) => Array<T>) => Array<T>;
24
+ /** (Optional) if set, resets pagination to initial state if items change */
25
+ forceResetPaginationOnItemsChange?: boolean;
26
+ /** (Optional) Function, executed on filter */
27
+ onFilter?: (filterSettings: ReactableFilterSettings) => void;
28
+ /** (Optional) Function, executed on content change */
29
+ onContentChange?: (content: Array<T>) => void;
30
+ /** (Optional) Function, executed if filtered items change */
31
+ onFilteredItemsChanged?: (filteredItems: Array<T>) => void;
32
+ /** (Optional) if true, makes rows clickable */
33
+ clickable?: boolean;
34
+ /** If equals *true* additional column with checkboxes is rendered */
35
+ selectable?: boolean;
36
+ /** (Optional) enables selection of items */
37
+ selectedItems?: Array<ID>;
38
+ /** (Optional) function, executed on change of selected items */
39
+ onSelectedItemsChange?: (selectedItems: Array<ID>) => void;
40
+ /** (Optional) function, executed if the page size changes */
41
+ onChangeSize?: (size: number) => void;
42
+ 'data-testid'?: string;
43
+ };
44
+ declare type State<T> = {
45
+ paginationSettings: PaginationSettings;
46
+ filterSettings: ReactableFilterSettings;
47
+ filteredItems: Array<T> | null | undefined;
48
+ };
49
+ /**
50
+ * Reactable displays paginated results nicely, while adding the possibility to add further functionality to each row.
51
+ * Each column can also be extended to be sortable and/or filterable.
52
+ * Also adds client-side pagination.
53
+ */
54
+ export default class ReactableWithClientSidePagination<T = any, ID extends string | number | undefined | null = any> extends React.Component<Props<T, ID>, State<T>> {
55
+ constructor(props: Props<T>);
56
+ private content;
57
+ calculatePageNumber: (items: Array<T>, paginationSettings: PaginationSettings) => void;
58
+ componentDidUpdate(prevProps: Props<T>): void;
59
+ handleChangePage: (page: number) => void;
60
+ handleSort: (property: string, direction: SortDirection) => void;
61
+ handleFilter: (filterSettings: ReactableFilterSettings) => void;
62
+ getPageable: () => Pageable<T> | null | undefined;
63
+ handleSelectChange: (selected: boolean, item: T) => void;
64
+ handleSelectAllChange: (selectedAll: boolean) => void;
65
+ areSelectedAll: () => boolean;
66
+ render(): React.JSX.Element;
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=ReactableWithClientSidePagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactableWithClientSidePagination.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import * as React from 'react';
2
+ import { isEqual, difference, uniqWith } from 'lodash';
3
+ import Reactable from '../reactable/Reactable';
4
+ import { extendColumnDefsWithCheckboxes, filterItems, makePageable } from '../reactable/helpers/helper';
5
+ const DEFAULT_PAGINATION_SETTINGS = {
6
+ page: 0,
7
+ size: 15,
8
+ sort: {
9
+ property: 'name',
10
+ direction: 'DESC'
11
+ }
12
+ };
13
+ /**
14
+ * Reactable displays paginated results nicely, while adding the possibility to add further functionality to each row.
15
+ * Each column can also be extended to be sortable and/or filterable.
16
+ * Also adds client-side pagination.
17
+ */
18
+ export default class ReactableWithClientSidePagination extends React.Component {
19
+ constructor(props) {
20
+ super(props);
21
+ this.content = [];
22
+ this.calculatePageNumber = (items, paginationSettings) => {
23
+ const { forceResetPaginationOnItemsChange } = this.props;
24
+ if (!forceResetPaginationOnItemsChange) {
25
+ const maxPageNumber = Math.floor((items.length - 1) / paginationSettings.size);
26
+ if (maxPageNumber <= 0) {
27
+ this.handleChangePage(0);
28
+ }
29
+ else if (maxPageNumber < paginationSettings.page) {
30
+ this.handleChangePage(maxPageNumber);
31
+ }
32
+ }
33
+ else {
34
+ this.handleChangePage(0);
35
+ }
36
+ };
37
+ this.handleChangePage = (page) => {
38
+ this.setState({
39
+ paginationSettings: { ...this.state.paginationSettings, page }
40
+ });
41
+ };
42
+ this.handleSort = (property, direction) => {
43
+ this.setState({
44
+ paginationSettings: {
45
+ ...this.state.paginationSettings,
46
+ sort: {
47
+ property,
48
+ direction
49
+ }
50
+ }
51
+ });
52
+ };
53
+ this.handleFilter = (filterSettings) => {
54
+ const { items, onFilter, columnDefs, onFilteredItemsChanged } = this.props;
55
+ this.setState({
56
+ paginationSettings: { ...this.state.paginationSettings, page: 0 },
57
+ filterSettings
58
+ }, () => {
59
+ onFilter && onFilter(filterSettings);
60
+ const filteredItems = filterItems(items, columnDefs, filterSettings);
61
+ this.setState({
62
+ filteredItems
63
+ });
64
+ onFilteredItemsChanged && filteredItems && onFilteredItemsChanged(filteredItems);
65
+ });
66
+ };
67
+ this.getPageable = () => {
68
+ const { customSortFunction, items, columnDefs, onContentChange } = this.props;
69
+ const { filterSettings, paginationSettings } = this.state;
70
+ const filteredItems = filterItems(items, columnDefs, filterSettings);
71
+ const pageable = makePageable(filteredItems, columnDefs, filterSettings, paginationSettings, customSortFunction);
72
+ if (pageable && pageable.content && !isEqual(pageable.content, this.content)) {
73
+ this.content = pageable.content;
74
+ if (onContentChange) {
75
+ onContentChange(this.content);
76
+ }
77
+ }
78
+ return pageable;
79
+ };
80
+ this.handleSelectChange = (selected, item) => {
81
+ const { onSelectedItemsChange, selectedItems = [], uniqueItemKey } = this.props;
82
+ if (onSelectedItemsChange) {
83
+ if (selected) {
84
+ const newSelectedItems = selectedItems.concat(uniqueItemKey(item));
85
+ onSelectedItemsChange(newSelectedItems);
86
+ }
87
+ else {
88
+ onSelectedItemsChange(selectedItems.filter((key) => key !== uniqueItemKey(item)));
89
+ }
90
+ }
91
+ else {
92
+ console.warn('ReactableWithClientSidePagination: onSelectedItemsChange property is missing');
93
+ }
94
+ };
95
+ this.handleSelectAllChange = (selectedAll) => {
96
+ const { onSelectedItemsChange, items, selectedItems = [], uniqueItemKey } = this.props;
97
+ const { filteredItems } = this.state;
98
+ const visibleItems = (filteredItems || items || []).map(uniqueItemKey);
99
+ if (onSelectedItemsChange) {
100
+ if (selectedAll) {
101
+ onSelectedItemsChange(uniqWith([...selectedItems, ...visibleItems], isEqual).sort());
102
+ }
103
+ else {
104
+ onSelectedItemsChange(difference(selectedItems, visibleItems));
105
+ }
106
+ }
107
+ else {
108
+ console.warn('ReactableWithClientSidePagination: onSelectedItemsChange property is missing');
109
+ }
110
+ };
111
+ this.areSelectedAll = () => {
112
+ const { items, selectedItems, uniqueItemKey } = this.props;
113
+ const { filteredItems } = this.state;
114
+ const visibleItems = filteredItems || items || [];
115
+ return (!!selectedItems && visibleItems.every((item) => selectedItems.some((key) => key === uniqueItemKey(item))));
116
+ };
117
+ let paginationSettings = DEFAULT_PAGINATION_SETTINGS;
118
+ if (props.paginationSettings) {
119
+ paginationSettings = props.paginationSettings;
120
+ }
121
+ else if (props.initialPaginationSettings) {
122
+ console.warn('initialPaginationSettings is deprecated! Please use "paginationSettings" instead');
123
+ paginationSettings = props.initialPaginationSettings;
124
+ }
125
+ else {
126
+ console.error('Missing pagination settings!');
127
+ }
128
+ this.state = {
129
+ paginationSettings: paginationSettings || DEFAULT_PAGINATION_SETTINGS,
130
+ filterSettings: {},
131
+ filteredItems: null
132
+ };
133
+ }
134
+ componentDidUpdate(prevProps) {
135
+ const { items } = this.props;
136
+ const { items: prevItems } = prevProps;
137
+ const settings = this.props.paginationSettings || this.props.initialPaginationSettings;
138
+ const prevSettings = prevProps.paginationSettings || prevProps.initialPaginationSettings;
139
+ if (items && prevItems && items.length !== prevItems.length) {
140
+ this.calculatePageNumber(items, this.state.paginationSettings);
141
+ }
142
+ if (settings && !isEqual(settings, prevSettings)) {
143
+ this.setState({
144
+ paginationSettings: settings
145
+ }, () => this.handleChangePage(0));
146
+ }
147
+ }
148
+ render() {
149
+ const { uniqueItemKey, isLoading, columnDefs, rowDef, clickable, selectable, selectedItems, onChangeSize } = this.props;
150
+ const finalColumnDefs = selectable
151
+ ? extendColumnDefsWithCheckboxes(columnDefs, this.handleSelectChange, this.handleSelectAllChange, this.areSelectedAll(), selectedItems || [], uniqueItemKey)
152
+ : columnDefs;
153
+ return (React.createElement(Reactable, { columnDefs: finalColumnDefs, rowDef: rowDef, uniqueItemKey: uniqueItemKey, paginationSettings: this.state.paginationSettings, onChangePage: this.handleChangePage, onChangeSize: onChangeSize, onSort: this.handleSort, onFilter: this.handleFilter, pageable: this.getPageable(), isLoading: isLoading, clickable: clickable, "data-testid": this.props['data-testid'] }));
154
+ }
155
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ReactableWithClientSidePagination.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactableWithClientSidePagination.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ import * as React from 'react';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { act, fireEvent, render } from '@testing-library/react';
4
+ import ReactableWithClientSidePagination from '../ReactableWithClientSidePagination';
5
+ const ITEMS = [
6
+ { id: 1, name: 'Hans Wurst', description: 'Lorem ipsum dolor sit amet, consectetur adipisici elit' },
7
+ { id: 2, name: 'August Tina', description: "Hopfen und Malz, Gott erhalt's" },
8
+ { id: 3, name: 'Paul Aner', description: 'Salve pater patriae' },
9
+ { id: 4, name: 'Franz Iskaner', description: 'Da braut sich was zusammen' }
10
+ ];
11
+ const INITIAL_PAGINATION_SETTINGS = {
12
+ page: 0,
13
+ size: ITEMS.length,
14
+ sort: { property: 'name', direction: 'ASC' }
15
+ };
16
+ const COLUMN_DEFS = [
17
+ {
18
+ name: 'name',
19
+ render: (item) => item.name,
20
+ filterable: {
21
+ filterType: 'text',
22
+ filterFn: (item, value) => new RegExp(value).test(item.name)
23
+ }
24
+ },
25
+ {
26
+ name: 'description',
27
+ render: (item) => item.description
28
+ }
29
+ ];
30
+ const COMMON_PROPS = {
31
+ columnDefs: COLUMN_DEFS,
32
+ uniqueItemKey: (item) => item.id,
33
+ paginationSettings: INITIAL_PAGINATION_SETTINGS,
34
+ items: ITEMS,
35
+ selectable: true,
36
+ isLoading: false
37
+ };
38
+ describe('ReactableWithClientSidePagination.js', () => {
39
+ describe('selectable feature', () => {
40
+ it('should match snapshot', () => {
41
+ const ReactableWithClientSidePaginationWrapper = render(
42
+ // @ts-ignore
43
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: [], onSelectedItemsChange: () => { } }));
44
+ expect(ReactableWithClientSidePaginationWrapper).toMatchSnapshot();
45
+ });
46
+ it('should call the callback with correct argument when checkbox is checked', async () => {
47
+ const selectedItemsBefore = [1, 2];
48
+ const selectedItemsAfter = [1, 2, 4];
49
+ const selectedItemsChangeHandler = vi.fn();
50
+ const { getAllByRole } = render(
51
+ // @ts-ignore
52
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
53
+ const checkbox = getAllByRole('checkbox')[2];
54
+ await act(async () => {
55
+ fireEvent.click(checkbox);
56
+ });
57
+ // @ts-ignore
58
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
59
+ });
60
+ it('should call the callback with correct argument when checkbox is unchecked', async () => {
61
+ const selectedItemsBefore = [1, 2, 4];
62
+ const selectedItemsAfter = [1, 2];
63
+ const selectedItemsChangeHandler = vi.fn();
64
+ const { getAllByRole } = render(
65
+ // @ts-ignore
66
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
67
+ const checkbox = getAllByRole('checkbox')[2];
68
+ await act(async () => {
69
+ fireEvent.click(checkbox);
70
+ });
71
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
72
+ });
73
+ it('should call the callback with correct argument when the selectAll checkbox is checked', async () => {
74
+ const selectedItemsBefore = [1];
75
+ const selectedItemsAfter = [1, 2, 3, 4];
76
+ const selectedItemsChangeHandler = vi.fn();
77
+ const { getByTitle } = render(
78
+ // @ts-ignore
79
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
80
+ const checkbox = getByTitle('components.filtertable.selectAllItems');
81
+ await act(async () => {
82
+ fireEvent.click(checkbox);
83
+ });
84
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
85
+ });
86
+ it('should call the callback with correct argument when the selectAll checkbox is unchecked', async () => {
87
+ const selectedItemsBefore = [1, 2, 3, 4];
88
+ const selectedItemsAfter = [];
89
+ const selectedItemsChangeHandler = vi.fn();
90
+ const { getByTitle } = render(
91
+ // @ts-ignore
92
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
93
+ const checkbox = getByTitle('components.filtertable.selectAllItems');
94
+ await act(async () => {
95
+ fireEvent.click(checkbox);
96
+ });
97
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
98
+ });
99
+ it('should select all available items if selectAll checkbox is checked and data is filtered', async () => {
100
+ const selectedItemsBefore = [1, 4];
101
+ const selectedItemsAfter = [1, 2, 4];
102
+ const selectedItemsChangeHandler = vi.fn();
103
+ const { getByTitle, getByRole } = render(
104
+ // @ts-ignore
105
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
106
+ const filterInput = getByRole('textbox');
107
+ const checkbox = getByTitle('components.filtertable.selectAllItems');
108
+ await act(async () => {
109
+ fireEvent.change(filterInput, { target: { value: ITEMS[1].name } });
110
+ fireEvent.click(checkbox);
111
+ });
112
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
113
+ });
114
+ it('should unselect all available items if selectAll checkbox is checked and data is filtered', async () => {
115
+ const selectedItemsBefore = [1, 2, 3, 4];
116
+ const selectedItemsAfter = [1, 3, 4];
117
+ const selectedItemsChangeHandler = vi.fn();
118
+ const { getByTitle, getByRole } = render(
119
+ // @ts-ignore
120
+ React.createElement(ReactableWithClientSidePagination, { ...COMMON_PROPS, selectedItems: selectedItemsBefore, onSelectedItemsChange: selectedItemsChangeHandler }));
121
+ const filterInput = getByRole('textbox');
122
+ const checkbox = getByTitle('components.filtertable.selectAllItems');
123
+ await act(async () => {
124
+ fireEvent.change(filterInput, { target: { value: ITEMS[1].name } });
125
+ fireEvent.click(checkbox);
126
+ });
127
+ expect(selectedItemsChangeHandler.mock.calls[0][0]).toEqual(selectedItemsAfter);
128
+ });
129
+ });
130
+ });
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ export declare type Props = {
3
+ /** minimum value the slider renders */
4
+ min: number;
5
+ /** maximum value the slider renders */
6
+ max: number;
7
+ /** step in which increments/decrements have to be made */
8
+ step?: number;
9
+ /** current value of the slider */
10
+ value: number;
11
+ /** show or hide tooltip (default: true) */
12
+ tooltip?: boolean;
13
+ /** object containing key-value pairs to label the slider */
14
+ labels?: Record<string, number | string>;
15
+ /** formats the value in label or tooltip */
16
+ format?: (value: number) => string;
17
+ /** gets called whenever the slider handle is being dragged or clicked */
18
+ onChange?: (value: number) => void;
19
+ /** gets called whenever the user stops dragging the slider handle */
20
+ onChangeComplete?: (value: number) => void;
21
+ /** maximum value the slider can hold */
22
+ limit?: number;
23
+ };
24
+ /**
25
+ * Enables picking the desired value from a specified range.
26
+ * Can have a tooltip and labels
27
+ */
28
+ declare const Slider: ({ min, max, step, value, tooltip, labels, format, onChange, onChangeComplete, limit }: Props) => React.JSX.Element;
29
+ export default Slider;
30
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../../../src/components/slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,oBAAY,KAAK,GAAG;IACnB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IAEZ,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IAEZ,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAEzC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEnC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAIF;;;GAGG;AACH,QAAA,MAAM,MAAM,0FAAgG,KAAK,sBAoChH,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import RcSlider, { createSliderWithTooltip } from 'rc-slider';
3
+ import useLimitStyling from './useLimitStyling';
4
+ const RcSliderWithTooltip = createSliderWithTooltip(RcSlider);
5
+ /**
6
+ * Enables picking the desired value from a specified range.
7
+ * Can have a tooltip and labels
8
+ */
9
+ const Slider = ({ min, max, step, value, tooltip = true, labels, format, onChange, onChangeComplete, limit }) => {
10
+ const setSliderRef = useLimitStyling(limit, min, max);
11
+ const handleChange = (value) => {
12
+ if (!onChange)
13
+ return;
14
+ const numericValue = typeof value === 'number' ? value : value[0];
15
+ const allowedValue = limit != null ? Math.min(numericValue, limit) : numericValue;
16
+ onChange(allowedValue);
17
+ };
18
+ const handleChangeComplete = () => {
19
+ if (!onChangeComplete) {
20
+ return;
21
+ }
22
+ onChangeComplete(value);
23
+ };
24
+ const basicProps = {
25
+ min,
26
+ max,
27
+ step,
28
+ value,
29
+ onChange: handleChange,
30
+ onAfterChange: handleChangeComplete,
31
+ marks: labels
32
+ };
33
+ return (React.createElement("div", { className: "di slider", ref: setSliderRef }, tooltip ? (React.createElement(RcSliderWithTooltip, { ...basicProps, className: "di slider with-tooltip", tipFormatter: format })) : (React.createElement(RcSlider, { ...basicProps, className: "di slider" }))));
34
+ };
35
+ export default Slider;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export default function useLimitStyling(limit: number | undefined, min: number, max: number): import("react").Dispatch<import("react").SetStateAction<HTMLDivElement | null>>;
3
+ //# sourceMappingURL=useLimitStyling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLimitStyling.d.ts","sourceRoot":"","sources":["../../../../../src/components/slider/useLimitStyling.ts"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,mFAiD1F"}