@deviceinsight/ng-ui-components 6.30.0 → 7.1.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 (871) hide show
  1. package/dist/index.cjs +2 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.js +3027 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/style.css +1 -0
  6. package/dist/types/__mocks__/i18n.d.ts +13 -0
  7. package/dist/types/__mocks__/i18n.d.ts.map +1 -0
  8. package/{lib/esm/src → dist/types}/components/chart/Chart.d.ts +5 -5
  9. package/dist/types/components/chart/Chart.d.ts.map +1 -0
  10. package/dist/types/components/chart/Chart.stories.d.ts +25 -0
  11. package/dist/types/components/chart/Chart.stories.d.ts.map +1 -0
  12. package/dist/types/components/colorpicker/ColorPickerPopper.d.ts +13 -0
  13. package/dist/types/components/colorpicker/ColorPickerPopper.d.ts.map +1 -0
  14. package/dist/types/components/colorpicker/ColorTextInput.d.ts +11 -0
  15. package/dist/types/components/colorpicker/ColorTextInput.d.ts.map +1 -0
  16. package/dist/types/components/colorpicker/GradientColorPicker.d.ts +33 -0
  17. package/dist/types/components/colorpicker/GradientColorPicker.d.ts.map +1 -0
  18. package/dist/types/components/colorpicker/GradientColorPicker.stories.d.ts +9 -0
  19. package/dist/types/components/colorpicker/GradientColorPicker.stories.d.ts.map +1 -0
  20. package/{lib/esm → dist/types}/components/colorpicker/GridColorPicker.d.ts +4 -11
  21. package/dist/types/components/colorpicker/GridColorPicker.d.ts.map +1 -0
  22. package/dist/types/components/colorpicker/GridColorPicker.stories.d.ts +17 -0
  23. package/dist/types/components/colorpicker/GridColorPicker.stories.d.ts.map +1 -0
  24. package/{lib/cjs → dist/types}/components/contentHeader/ContentHeader.d.ts +3 -3
  25. package/dist/types/components/contentHeader/ContentHeader.d.ts.map +1 -0
  26. package/dist/types/components/contentHeader/ContentHeader.stories.d.ts +7 -0
  27. package/dist/types/components/contentHeader/ContentHeader.stories.d.ts.map +1 -0
  28. package/{lib/esm → dist/types}/components/infobox/InfoBox.d.ts +3 -3
  29. package/dist/types/components/infobox/InfoBox.d.ts.map +1 -0
  30. package/dist/types/components/infobox/InfoBox.stories.d.ts +55 -0
  31. package/dist/types/components/infobox/InfoBox.stories.d.ts.map +1 -0
  32. package/{lib/esm → dist/types}/components/input/DateInput.d.ts +10 -7
  33. package/dist/types/components/input/DateInput.d.ts.map +1 -0
  34. package/dist/types/components/input/DateInput.stories.d.ts +34 -0
  35. package/dist/types/components/input/DateInput.stories.d.ts.map +1 -0
  36. package/{lib/esm → dist/types}/components/input/DateTimeInput.d.ts +3 -5
  37. package/dist/types/components/input/DateTimeInput.d.ts.map +1 -0
  38. package/dist/types/components/input/DateTimeInput.stories.d.ts +32 -0
  39. package/dist/types/components/input/DateTimeInput.stories.d.ts.map +1 -0
  40. package/{lib/cjs → dist/types}/components/input/SelectWithSearch.d.ts +9 -9
  41. package/dist/types/components/input/SelectWithSearch.d.ts.map +1 -0
  42. package/dist/types/components/input/SelectWithSearch.stories.d.ts +13 -0
  43. package/dist/types/components/input/SelectWithSearch.stories.d.ts.map +1 -0
  44. package/{lib/cjs → dist/types}/components/input/SelectWithSearchAsync.d.ts +9 -8
  45. package/dist/types/components/input/SelectWithSearchAsync.d.ts.map +1 -0
  46. package/dist/types/components/input/SelectWithSearchAsync.stories.d.ts +8 -0
  47. package/dist/types/components/input/SelectWithSearchAsync.stories.d.ts.map +1 -0
  48. package/{lib/esm/src → dist/types}/components/input/UrnInput.d.ts +3 -3
  49. package/dist/types/components/input/UrnInput.d.ts.map +1 -0
  50. package/dist/types/components/input/UrnInput.stories.d.ts +7 -0
  51. package/dist/types/components/input/UrnInput.stories.d.ts.map +1 -0
  52. package/{lib/esm → dist/types}/components/input/ValidatedTextInput.d.ts +3 -3
  53. package/dist/types/components/input/ValidatedTextInput.d.ts.map +1 -0
  54. package/dist/types/components/input/ValidatedTextInput.stories.d.ts +7 -0
  55. package/dist/types/components/input/ValidatedTextInput.stories.d.ts.map +1 -0
  56. package/{lib/esm/src → dist/types}/components/link/RouteLink.d.ts +3 -4
  57. package/dist/types/components/link/RouteLink.d.ts.map +1 -0
  58. package/dist/types/components/link/RouteLink.stories.d.ts +11 -0
  59. package/dist/types/components/link/RouteLink.stories.d.ts.map +1 -0
  60. package/dist/types/components/multiMenu/MultiMenu.d.ts +21 -0
  61. package/dist/types/components/multiMenu/MultiMenu.d.ts.map +1 -0
  62. package/dist/types/components/multiMenu/MultiMenu.stories.d.ts +12 -0
  63. package/dist/types/components/multiMenu/MultiMenu.stories.d.ts.map +1 -0
  64. package/{lib/cjs → dist/types}/components/multiMenu/components/MultiMenuContext.d.ts +2 -2
  65. package/dist/types/components/multiMenu/components/MultiMenuContext.d.ts.map +1 -0
  66. package/{lib/cjs → dist/types}/components/multiMenu/components/MultiMenuItem.d.ts +2 -2
  67. package/dist/types/components/multiMenu/components/MultiMenuItem.d.ts.map +1 -0
  68. package/dist/types/components/pagination/Pagination.d.ts +17 -0
  69. package/dist/types/components/pagination/Pagination.d.ts.map +1 -0
  70. package/dist/types/components/pagination/Pagination.stories.d.ts +8 -0
  71. package/dist/types/components/pagination/Pagination.stories.d.ts.map +1 -0
  72. package/{lib/esm/src → dist/types}/components/periodpicker/PeriodPicker.d.ts +2 -3
  73. package/dist/types/components/periodpicker/PeriodPicker.d.ts.map +1 -0
  74. package/dist/types/components/periodpicker/PeriodPicker.stories.d.ts +10 -0
  75. package/dist/types/components/periodpicker/PeriodPicker.stories.d.ts.map +1 -0
  76. package/{lib/cjs → dist/types}/components/periodpicker/components/Inputs.d.ts +2 -3
  77. package/dist/types/components/periodpicker/components/Inputs.d.ts.map +1 -0
  78. package/{lib/esm/src → dist/types}/components/periodpicker/components/Menu.d.ts +2 -3
  79. package/dist/types/components/periodpicker/components/Menu.d.ts.map +1 -0
  80. package/dist/types/components/periodpicker/components/MonthPicker.d.ts +19 -0
  81. package/dist/types/components/periodpicker/components/MonthPicker.d.ts.map +1 -0
  82. package/dist/types/components/periodpicker/types.d.ts +5 -0
  83. package/{lib/cjs → dist/types}/components/periodpicker/types.d.ts.map +1 -1
  84. package/{lib/esm/src → dist/types}/components/prompt/Prompt.d.ts +2 -3
  85. package/dist/types/components/prompt/Prompt.d.ts.map +1 -0
  86. package/dist/types/components/prompt/Prompt.stories.d.ts +7 -0
  87. package/dist/types/components/prompt/Prompt.stories.d.ts.map +1 -0
  88. package/{lib/esm/src → dist/types}/components/prompt/withPrompt.d.ts +1 -1
  89. package/dist/types/components/prompt/withPrompt.d.ts.map +1 -0
  90. package/{lib/esm/src → dist/types}/components/reactable/Reactable.d.ts +5 -5
  91. package/dist/types/components/reactable/Reactable.d.ts.map +1 -0
  92. package/dist/types/components/reactable/Reactable.stories.d.ts +11 -0
  93. package/dist/types/components/reactable/Reactable.stories.d.ts.map +1 -0
  94. package/{lib/esm → dist/types}/components/reactable/helpers/ReactableTable.d.ts +3 -4
  95. package/dist/types/components/reactable/helpers/ReactableTable.d.ts.map +1 -0
  96. package/{lib/esm → dist/types}/components/reactable/helpers/ReactableTableFilterRow.d.ts +2 -2
  97. package/dist/types/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -0
  98. package/dist/types/components/reactable/helpers/ReactableTableHeader.d.ts +17 -0
  99. package/dist/types/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -0
  100. package/{lib/esm/src → dist/types}/components/reactable/helpers/ReactableTableRow.d.ts +5 -5
  101. package/dist/types/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -0
  102. package/{lib/esm → dist/types}/components/reactable/helpers/ReactableTextFilter.d.ts +2 -2
  103. package/dist/types/components/reactable/helpers/ReactableTextFilter.d.ts.map +1 -0
  104. package/{lib/cjs → dist/types}/components/reactable/helpers/helper.d.ts +1 -1
  105. package/dist/types/components/reactable/helpers/helper.d.ts.map +1 -0
  106. package/{lib/esm/src → dist/types}/components/reactable/types.d.ts +5 -5
  107. package/dist/types/components/reactable/types.d.ts.map +1 -0
  108. package/{lib/esm/src → dist/types}/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +5 -5
  109. package/dist/types/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -0
  110. package/dist/types/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.stories.d.ts +9 -0
  111. package/dist/types/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.stories.d.ts.map +1 -0
  112. package/dist/types/components/slider/RcSliderWithTooltip.d.ts +11 -0
  113. package/dist/types/components/slider/RcSliderWithTooltip.d.ts.map +1 -0
  114. package/{lib/esm → dist/types}/components/slider/Slider.d.ts +2 -3
  115. package/dist/types/components/slider/Slider.d.ts.map +1 -0
  116. package/dist/types/components/slider/Slider.stories.d.ts +10 -0
  117. package/dist/types/components/slider/Slider.stories.d.ts.map +1 -0
  118. package/{lib/cjs → dist/types}/components/slider/useLimitStyling.d.ts +0 -1
  119. package/dist/types/components/slider/useLimitStyling.d.ts.map +1 -0
  120. package/{lib/cjs → dist/types}/components/svg/SvgImage.d.ts +2 -3
  121. package/dist/types/components/svg/SvgImage.d.ts.map +1 -0
  122. package/dist/types/components/svg/SvgImage.stories.d.ts +16 -0
  123. package/dist/types/components/svg/SvgImage.stories.d.ts.map +1 -0
  124. package/{lib/esm/src → dist/types}/components/svg/types.d.ts +11 -11
  125. package/dist/types/components/svg/types.d.ts.map +1 -0
  126. package/dist/types/components/svg/utils/getMutableNodeList.d.ts.map +1 -0
  127. package/{lib/cjs → dist/types}/components/svg/utils/getSvgElement.d.ts.map +1 -1
  128. package/{lib/cjs → dist/types}/components/svg/utils/transformPositionModifications.d.ts.map +1 -1
  129. package/{lib/cjs → dist/types}/components/svg/utils/validateSvg.d.ts.map +1 -1
  130. package/{lib/esm → dist/types}/components/tabs/RouteTabs.d.ts +4 -4
  131. package/dist/types/components/tabs/RouteTabs.d.ts.map +1 -0
  132. package/dist/types/components/tabs/RouteTabs.stories.d.ts +9 -0
  133. package/dist/types/components/tabs/RouteTabs.stories.d.ts.map +1 -0
  134. package/{lib/esm/src → dist/types}/components/treeview/TreeView.d.ts +5 -5
  135. package/dist/types/components/treeview/TreeView.d.ts.map +1 -0
  136. package/dist/types/components/treeview/TreeView.stories.d.ts +9 -0
  137. package/dist/types/components/treeview/TreeView.stories.d.ts.map +1 -0
  138. package/{lib/cjs → dist/types}/components/treeview/components/Node.d.ts +5 -5
  139. package/dist/types/components/treeview/components/Node.d.ts.map +1 -0
  140. package/{lib/esm/src → dist/types}/components/treeview/components/NodeInfo.d.ts +2 -2
  141. package/{lib/cjs → dist/types}/components/treeview/components/NodeInfo.d.ts.map +1 -1
  142. package/{lib/esm/src → dist/types}/components/treeview/types.d.ts +6 -6
  143. package/dist/types/components/treeview/types.d.ts.map +1 -0
  144. package/{lib/esm → dist/types}/components/upload/FileUpload.d.ts +12 -9
  145. package/dist/types/components/upload/FileUpload.d.ts.map +1 -0
  146. package/dist/types/components/upload/FileUpload.stories.d.ts +26 -0
  147. package/dist/types/components/upload/FileUpload.stories.d.ts.map +1 -0
  148. package/{lib/esm → dist/types}/components/upload/ImageUpload.d.ts +5 -5
  149. package/dist/types/components/upload/ImageUpload.d.ts.map +1 -0
  150. package/dist/types/components/upload/ImageUpload.stories.d.ts +32 -0
  151. package/dist/types/components/upload/ImageUpload.stories.d.ts.map +1 -0
  152. package/dist/types/i18n/index.d.ts +9 -0
  153. package/dist/types/i18n/index.d.ts.map +1 -0
  154. package/{lib/esm/src → dist/types}/index.d.ts +5 -3
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/modules/messageBox/MessageBox.stories.d.ts +8 -0
  157. package/dist/types/modules/messageBox/MessageBox.stories.d.ts.map +1 -0
  158. package/{lib/esm/src → dist/types}/modules/messageBox/messageBox.d.ts +2 -4
  159. package/dist/types/modules/messageBox/messageBox.d.ts.map +1 -0
  160. package/{lib/cjs → dist/types}/modules/utils/uuidGen.d.ts.map +1 -1
  161. package/dist/types/types/i18n.d.ts +5 -0
  162. package/dist/types/types/i18n.d.ts.map +1 -0
  163. package/{lib/esm/src → dist/types}/types/pagination.d.ts +4 -4
  164. package/dist/types/types/pagination.d.ts.map +1 -0
  165. package/package.json +75 -87
  166. package/lib/cjs/__mocks__/i18n.d.ts +0 -13
  167. package/lib/cjs/__mocks__/i18n.d.ts.map +0 -1
  168. package/lib/cjs/__mocks__/i18n.js +0 -22
  169. package/lib/cjs/assets/img/icon-arrow-back.png +0 -0
  170. package/lib/cjs/assets/img/icon_folder_closed.png +0 -0
  171. package/lib/cjs/assets/img/icon_folder_closed_light.png +0 -0
  172. package/lib/cjs/assets/img/icon_folder_open.png +0 -0
  173. package/lib/cjs/assets/img/icon_folder_open_light.png +0 -0
  174. package/lib/cjs/assets/img/icon_help_light_24.png +0 -0
  175. package/lib/cjs/assets/img/icon_variablenode.png +0 -0
  176. package/lib/cjs/assets/img/icon_variablenode_light.png +0 -0
  177. package/lib/cjs/assets/img/toastify_msg_error_24.png +0 -0
  178. package/lib/cjs/assets/img/toastify_msg_success_24.png +0 -0
  179. package/lib/cjs/assets/react-datepicker-custom.css +0 -43
  180. package/lib/cjs/assets/react-select-custom.css +0 -13
  181. package/lib/cjs/assets/react-select.css +0 -428
  182. package/lib/cjs/assets/react-toastify-custom.css +0 -16
  183. package/lib/cjs/assets/search-box.css +0 -29
  184. package/lib/cjs/assets/style.css +0 -256
  185. package/lib/cjs/assets/svg/icon_add.svg +0 -3
  186. package/lib/cjs/assets/svg/icon_calendar.svg +0 -50
  187. package/lib/cjs/assets/svg/icon_chevron_left.svg +0 -6
  188. package/lib/cjs/assets/svg/icon_chevron_right.svg +0 -6
  189. package/lib/cjs/assets/svg/icon_cross.svg +0 -3
  190. package/lib/cjs/assets/svg/icon_download.svg +0 -5
  191. package/lib/cjs/assets/svg/icon_duplicate.svg +0 -10
  192. package/lib/cjs/assets/svg/icon_edit.svg +0 -6
  193. package/lib/cjs/assets/svg/icon_folder_loading.svg +0 -21
  194. package/lib/cjs/assets/svg/icon_fullscreen.svg +0 -6
  195. package/lib/cjs/assets/svg/icon_gear.svg +0 -5
  196. package/lib/cjs/assets/svg/icon_help_light.svg +0 -3
  197. package/lib/cjs/assets/svg/icon_key.svg +0 -3
  198. package/lib/cjs/assets/svg/icon_lupe.svg +0 -14
  199. package/lib/cjs/assets/svg/icon_menu_horizontal.svg +0 -5
  200. package/lib/cjs/assets/svg/icon_menu_vertical.svg +0 -5
  201. package/lib/cjs/assets/svg/icon_reload.svg +0 -6
  202. package/lib/cjs/assets/svg/icon_upload.svg +0 -7
  203. package/lib/cjs/assets/svg/icon_warning_triangle.svg +0 -12
  204. package/lib/cjs/assets/svg/triangle_down.svg +0 -3
  205. package/lib/cjs/assets/svg/triangle_left.svg +0 -3
  206. package/lib/cjs/assets/svg/triangle_right.svg +0 -3
  207. package/lib/cjs/assets/svg/triangle_up.svg +0 -3
  208. package/lib/cjs/assets/svg/triangle_up_and_down.svg +0 -4
  209. package/lib/cjs/components/chart/Chart.d.ts +0 -38
  210. package/lib/cjs/components/chart/Chart.d.ts.map +0 -1
  211. package/lib/cjs/components/chart/Chart.js +0 -231
  212. package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts +0 -24
  213. package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts.map +0 -1
  214. package/lib/cjs/components/colorpicker/ColorPickerPopper.js +0 -72
  215. package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts +0 -63
  216. package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts.map +0 -1
  217. package/lib/cjs/components/colorpicker/GradientColorPicker.js +0 -154
  218. package/lib/cjs/components/colorpicker/GridColorPicker.d.ts +0 -41
  219. package/lib/cjs/components/colorpicker/GridColorPicker.d.ts.map +0 -1
  220. package/lib/cjs/components/colorpicker/GridColorPicker.js +0 -36
  221. package/lib/cjs/components/contentHeader/ContentHeader.d.ts.map +0 -1
  222. package/lib/cjs/components/contentHeader/ContentHeader.js +0 -58
  223. package/lib/cjs/components/infobox/InfoBox.d.ts +0 -22
  224. package/lib/cjs/components/infobox/InfoBox.d.ts.map +0 -1
  225. package/lib/cjs/components/infobox/InfoBox.js +0 -61
  226. package/lib/cjs/components/input/DateInput.d.ts +0 -30
  227. package/lib/cjs/components/input/DateInput.d.ts.map +0 -1
  228. package/lib/cjs/components/input/DateInput.js +0 -207
  229. package/lib/cjs/components/input/DateTimeInput.d.ts +0 -27
  230. package/lib/cjs/components/input/DateTimeInput.d.ts.map +0 -1
  231. package/lib/cjs/components/input/DateTimeInput.js +0 -81
  232. package/lib/cjs/components/input/SelectWithSearch.d.ts.map +0 -1
  233. package/lib/cjs/components/input/SelectWithSearch.js +0 -140
  234. package/lib/cjs/components/input/SelectWithSearchAsync.d.ts.map +0 -1
  235. package/lib/cjs/components/input/SelectWithSearchAsync.js +0 -126
  236. package/lib/cjs/components/input/UrnInput.d.ts +0 -22
  237. package/lib/cjs/components/input/UrnInput.d.ts.map +0 -1
  238. package/lib/cjs/components/input/UrnInput.js +0 -59
  239. package/lib/cjs/components/input/ValidatedTextInput.d.ts +0 -35
  240. package/lib/cjs/components/input/ValidatedTextInput.d.ts.map +0 -1
  241. package/lib/cjs/components/input/ValidatedTextInput.js +0 -36
  242. package/lib/cjs/components/input/__tests__/DateInput.spec.d.ts +0 -2
  243. package/lib/cjs/components/input/__tests__/DateInput.spec.d.ts.map +0 -1
  244. package/lib/cjs/components/input/__tests__/DateInput.spec.js +0 -99
  245. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.d.ts +0 -2
  246. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.d.ts.map +0 -1
  247. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.js +0 -39
  248. package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +0 -2
  249. package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +0 -1
  250. package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.js +0 -49
  251. package/lib/cjs/components/link/RouteLink.d.ts +0 -31
  252. package/lib/cjs/components/link/RouteLink.d.ts.map +0 -1
  253. package/lib/cjs/components/link/RouteLink.js +0 -81
  254. package/lib/cjs/components/multiMenu/MultiMenu.d.ts +0 -27
  255. package/lib/cjs/components/multiMenu/MultiMenu.d.ts.map +0 -1
  256. package/lib/cjs/components/multiMenu/MultiMenu.js +0 -59
  257. package/lib/cjs/components/multiMenu/components/MultiMenuContext.d.ts.map +0 -1
  258. package/lib/cjs/components/multiMenu/components/MultiMenuContext.js +0 -10
  259. package/lib/cjs/components/multiMenu/components/MultiMenuItem.d.ts.map +0 -1
  260. package/lib/cjs/components/multiMenu/components/MultiMenuItem.js +0 -53
  261. package/lib/cjs/components/pagination/Pagination.d.ts +0 -37
  262. package/lib/cjs/components/pagination/Pagination.d.ts.map +0 -1
  263. package/lib/cjs/components/pagination/Pagination.js +0 -143
  264. package/lib/cjs/components/pagination/__tests__/Pagination.spec.d.ts +0 -2
  265. package/lib/cjs/components/pagination/__tests__/Pagination.spec.d.ts.map +0 -1
  266. package/lib/cjs/components/pagination/__tests__/Pagination.spec.js +0 -115
  267. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts +0 -23
  268. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts.map +0 -1
  269. package/lib/cjs/components/periodpicker/PeriodPicker.js +0 -40
  270. package/lib/cjs/components/periodpicker/components/Inputs.d.ts.map +0 -1
  271. package/lib/cjs/components/periodpicker/components/Inputs.js +0 -95
  272. package/lib/cjs/components/periodpicker/components/Menu.d.ts +0 -11
  273. package/lib/cjs/components/periodpicker/components/Menu.d.ts.map +0 -1
  274. package/lib/cjs/components/periodpicker/components/Menu.js +0 -125
  275. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts +0 -19
  276. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts.map +0 -1
  277. package/lib/cjs/components/periodpicker/components/MonthPicker.js +0 -91
  278. package/lib/cjs/components/periodpicker/periods.js +0 -71
  279. package/lib/cjs/components/periodpicker/types.d.ts +0 -5
  280. package/lib/cjs/components/periodpicker/types.js +0 -2
  281. package/lib/cjs/components/periodpicker/usePeriodName.js +0 -41
  282. package/lib/cjs/components/prompt/Prompt.d.ts +0 -23
  283. package/lib/cjs/components/prompt/Prompt.d.ts.map +0 -1
  284. package/lib/cjs/components/prompt/Prompt.js +0 -57
  285. package/lib/cjs/components/prompt/withPrompt.d.ts +0 -7
  286. package/lib/cjs/components/prompt/withPrompt.d.ts.map +0 -1
  287. package/lib/cjs/components/prompt/withPrompt.js +0 -62
  288. package/lib/cjs/components/reactable/Reactable.d.ts +0 -41
  289. package/lib/cjs/components/reactable/Reactable.d.ts.map +0 -1
  290. package/lib/cjs/components/reactable/Reactable.js +0 -59
  291. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts +0 -20
  292. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts.map +0 -1
  293. package/lib/cjs/components/reactable/helpers/ReactableTable.js +0 -107
  294. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts +0 -10
  295. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +0 -1
  296. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.js +0 -113
  297. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts +0 -17
  298. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts.map +0 -1
  299. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.js +0 -80
  300. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts +0 -17
  301. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts.map +0 -1
  302. package/lib/cjs/components/reactable/helpers/ReactableTableRow.js +0 -83
  303. package/lib/cjs/components/reactable/helpers/ReactableTextFilter.d.ts +0 -9
  304. package/lib/cjs/components/reactable/helpers/ReactableTextFilter.d.ts.map +0 -1
  305. package/lib/cjs/components/reactable/helpers/ReactableTextFilter.js +0 -43
  306. package/lib/cjs/components/reactable/helpers/helper.d.ts.map +0 -1
  307. package/lib/cjs/components/reactable/helpers/helper.js +0 -124
  308. package/lib/cjs/components/reactable/types.d.ts +0 -39
  309. package/lib/cjs/components/reactable/types.d.ts.map +0 -1
  310. package/lib/cjs/components/reactable/types.js +0 -2
  311. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +0 -71
  312. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +0 -1
  313. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +0 -184
  314. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +0 -2
  315. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +0 -1
  316. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +0 -158
  317. package/lib/cjs/components/slider/Slider.d.ts +0 -30
  318. package/lib/cjs/components/slider/Slider.d.ts.map +0 -1
  319. package/lib/cjs/components/slider/Slider.js +0 -63
  320. package/lib/cjs/components/slider/useLimitStyling.d.ts.map +0 -1
  321. package/lib/cjs/components/slider/useLimitStyling.js +0 -52
  322. package/lib/cjs/components/svg/SvgImage.d.ts.map +0 -1
  323. package/lib/cjs/components/svg/SvgImage.js +0 -66
  324. package/lib/cjs/components/svg/storybookHelper.js +0 -56
  325. package/lib/cjs/components/svg/types.d.ts +0 -58
  326. package/lib/cjs/components/svg/types.d.ts.map +0 -1
  327. package/lib/cjs/components/svg/types.js +0 -2
  328. package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +0 -2
  329. package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +0 -1
  330. package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.js +0 -49
  331. package/lib/cjs/components/svg/utils/createHyperlinkModification.js +0 -39
  332. package/lib/cjs/components/svg/utils/createPositionModification.js +0 -22
  333. package/lib/cjs/components/svg/utils/findConflicts.js +0 -26
  334. package/lib/cjs/components/svg/utils/getMutableNodeList.d.ts.map +0 -1
  335. package/lib/cjs/components/svg/utils/getMutableNodeList.js +0 -17
  336. package/lib/cjs/components/svg/utils/getSvgElement.js +0 -12
  337. package/lib/cjs/components/svg/utils/renderSvg.js +0 -94
  338. package/lib/cjs/components/svg/utils/transformPositionModifications.js +0 -44
  339. package/lib/cjs/components/svg/utils/validateSvg.js +0 -10
  340. package/lib/cjs/components/tabs/RouteTabs.d.ts +0 -24
  341. package/lib/cjs/components/tabs/RouteTabs.d.ts.map +0 -1
  342. package/lib/cjs/components/tabs/RouteTabs.js +0 -96
  343. package/lib/cjs/components/treeview/TreeView.d.ts +0 -50
  344. package/lib/cjs/components/treeview/TreeView.d.ts.map +0 -1
  345. package/lib/cjs/components/treeview/TreeView.js +0 -133
  346. package/lib/cjs/components/treeview/components/Node.d.ts.map +0 -1
  347. package/lib/cjs/components/treeview/components/Node.js +0 -140
  348. package/lib/cjs/components/treeview/components/NodeInfo.d.ts +0 -25
  349. package/lib/cjs/components/treeview/components/NodeInfo.js +0 -93
  350. package/lib/cjs/components/treeview/constants.js +0 -9
  351. package/lib/cjs/components/treeview/treeutils.js +0 -171
  352. package/lib/cjs/components/treeview/types.d.ts +0 -37
  353. package/lib/cjs/components/treeview/types.d.ts.map +0 -1
  354. package/lib/cjs/components/treeview/types.js +0 -2
  355. package/lib/cjs/components/upload/FileUpload.d.ts +0 -81
  356. package/lib/cjs/components/upload/FileUpload.d.ts.map +0 -1
  357. package/lib/cjs/components/upload/FileUpload.js +0 -132
  358. package/lib/cjs/components/upload/ImageUpload.d.ts +0 -22
  359. package/lib/cjs/components/upload/ImageUpload.d.ts.map +0 -1
  360. package/lib/cjs/components/upload/ImageUpload.js +0 -81
  361. package/lib/cjs/hoc/outsideClick.d.ts +0 -4
  362. package/lib/cjs/hoc/outsideClick.d.ts.map +0 -1
  363. package/lib/cjs/hoc/outsideClick.js +0 -101
  364. package/lib/cjs/i18n/index.d.ts +0 -16
  365. package/lib/cjs/i18n/index.d.ts.map +0 -1
  366. package/lib/cjs/i18n/index.js +0 -8
  367. package/lib/cjs/index.d.ts +0 -52
  368. package/lib/cjs/index.d.ts.map +0 -1
  369. package/lib/cjs/index.js +0 -88
  370. package/lib/cjs/modules/messageBox/messageBox.d.ts +0 -14
  371. package/lib/cjs/modules/messageBox/messageBox.d.ts.map +0 -1
  372. package/lib/cjs/modules/messageBox/messageBox.js +0 -71
  373. package/lib/cjs/modules/utils/nanoidGen.js +0 -6
  374. package/lib/cjs/modules/utils/uuidGen.js +0 -17
  375. package/lib/cjs/types/i18n.d.ts +0 -5
  376. package/lib/cjs/types/i18n.d.ts.map +0 -1
  377. package/lib/cjs/types/i18n.js +0 -2
  378. package/lib/cjs/types/pagination.d.ts +0 -19
  379. package/lib/cjs/types/pagination.d.ts.map +0 -1
  380. package/lib/cjs/types/pagination.js +0 -2
  381. package/lib/cjs/utils/dayjsLocales.js +0 -16
  382. package/lib/cjs/utils/resolvePath.js +0 -7
  383. package/lib/esm/__mocks__/i18n.d.ts +0 -13
  384. package/lib/esm/__mocks__/i18n.d.ts.map +0 -1
  385. package/lib/esm/__mocks__/i18n.js +0 -20
  386. package/lib/esm/assets/img/icon-arrow-back.png +0 -0
  387. package/lib/esm/assets/img/icon_folder_closed.png +0 -0
  388. package/lib/esm/assets/img/icon_folder_closed_light.png +0 -0
  389. package/lib/esm/assets/img/icon_folder_open.png +0 -0
  390. package/lib/esm/assets/img/icon_folder_open_light.png +0 -0
  391. package/lib/esm/assets/img/icon_help_light_24.png +0 -0
  392. package/lib/esm/assets/img/icon_variablenode.png +0 -0
  393. package/lib/esm/assets/img/icon_variablenode_light.png +0 -0
  394. package/lib/esm/assets/img/toastify_msg_error_24.png +0 -0
  395. package/lib/esm/assets/img/toastify_msg_success_24.png +0 -0
  396. package/lib/esm/assets/react-datepicker-custom.css +0 -43
  397. package/lib/esm/assets/react-select-custom.css +0 -13
  398. package/lib/esm/assets/react-select.css +0 -428
  399. package/lib/esm/assets/react-toastify-custom.css +0 -16
  400. package/lib/esm/assets/search-box.css +0 -29
  401. package/lib/esm/assets/style.css +0 -256
  402. package/lib/esm/assets/svg/icon_add.svg +0 -3
  403. package/lib/esm/assets/svg/icon_calendar.svg +0 -50
  404. package/lib/esm/assets/svg/icon_chevron_left.svg +0 -6
  405. package/lib/esm/assets/svg/icon_chevron_right.svg +0 -6
  406. package/lib/esm/assets/svg/icon_cross.svg +0 -3
  407. package/lib/esm/assets/svg/icon_download.svg +0 -5
  408. package/lib/esm/assets/svg/icon_duplicate.svg +0 -10
  409. package/lib/esm/assets/svg/icon_edit.svg +0 -6
  410. package/lib/esm/assets/svg/icon_folder_loading.svg +0 -21
  411. package/lib/esm/assets/svg/icon_fullscreen.svg +0 -6
  412. package/lib/esm/assets/svg/icon_gear.svg +0 -5
  413. package/lib/esm/assets/svg/icon_help_light.svg +0 -3
  414. package/lib/esm/assets/svg/icon_key.svg +0 -3
  415. package/lib/esm/assets/svg/icon_lupe.svg +0 -14
  416. package/lib/esm/assets/svg/icon_menu_horizontal.svg +0 -5
  417. package/lib/esm/assets/svg/icon_menu_vertical.svg +0 -5
  418. package/lib/esm/assets/svg/icon_reload.svg +0 -6
  419. package/lib/esm/assets/svg/icon_upload.svg +0 -7
  420. package/lib/esm/assets/svg/icon_warning_triangle.svg +0 -12
  421. package/lib/esm/assets/svg/triangle_down.svg +0 -3
  422. package/lib/esm/assets/svg/triangle_left.svg +0 -3
  423. package/lib/esm/assets/svg/triangle_right.svg +0 -3
  424. package/lib/esm/assets/svg/triangle_up.svg +0 -3
  425. package/lib/esm/assets/svg/triangle_up_and_down.svg +0 -4
  426. package/lib/esm/components/chart/Chart.d.ts +0 -38
  427. package/lib/esm/components/chart/Chart.d.ts.map +0 -1
  428. package/lib/esm/components/chart/Chart.js +0 -202
  429. package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts +0 -24
  430. package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts.map +0 -1
  431. package/lib/esm/components/colorpicker/ColorPickerPopper.js +0 -46
  432. package/lib/esm/components/colorpicker/GradientColorPicker.d.ts +0 -63
  433. package/lib/esm/components/colorpicker/GradientColorPicker.d.ts.map +0 -1
  434. package/lib/esm/components/colorpicker/GradientColorPicker.js +0 -125
  435. package/lib/esm/components/colorpicker/GridColorPicker.d.ts.map +0 -1
  436. package/lib/esm/components/colorpicker/GridColorPicker.js +0 -30
  437. package/lib/esm/components/contentHeader/ContentHeader.d.ts +0 -25
  438. package/lib/esm/components/contentHeader/ContentHeader.d.ts.map +0 -1
  439. package/lib/esm/components/contentHeader/ContentHeader.js +0 -53
  440. package/lib/esm/components/infobox/InfoBox.d.ts.map +0 -1
  441. package/lib/esm/components/infobox/InfoBox.js +0 -36
  442. package/lib/esm/components/input/DateInput.d.ts.map +0 -1
  443. package/lib/esm/components/input/DateInput.js +0 -178
  444. package/lib/esm/components/input/DateTimeInput.d.ts.map +0 -1
  445. package/lib/esm/components/input/DateTimeInput.js +0 -52
  446. package/lib/esm/components/input/SelectWithSearch.d.ts +0 -65
  447. package/lib/esm/components/input/SelectWithSearch.d.ts.map +0 -1
  448. package/lib/esm/components/input/SelectWithSearch.js +0 -111
  449. package/lib/esm/components/input/SelectWithSearchAsync.d.ts +0 -58
  450. package/lib/esm/components/input/SelectWithSearchAsync.d.ts.map +0 -1
  451. package/lib/esm/components/input/SelectWithSearchAsync.js +0 -100
  452. package/lib/esm/components/input/UrnInput.d.ts +0 -22
  453. package/lib/esm/components/input/UrnInput.d.ts.map +0 -1
  454. package/lib/esm/components/input/UrnInput.js +0 -33
  455. package/lib/esm/components/input/ValidatedTextInput.d.ts.map +0 -1
  456. package/lib/esm/components/input/ValidatedTextInput.js +0 -30
  457. package/lib/esm/components/input/__tests__/DateInput.spec.d.ts +0 -2
  458. package/lib/esm/components/input/__tests__/DateInput.spec.d.ts.map +0 -1
  459. package/lib/esm/components/input/__tests__/DateInput.spec.js +0 -71
  460. package/lib/esm/components/input/__tests__/DateTimeInput.spec.d.ts +0 -2
  461. package/lib/esm/components/input/__tests__/DateTimeInput.spec.d.ts.map +0 -1
  462. package/lib/esm/components/input/__tests__/DateTimeInput.spec.js +0 -34
  463. package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +0 -2
  464. package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +0 -1
  465. package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.js +0 -44
  466. package/lib/esm/components/link/RouteLink.d.ts +0 -31
  467. package/lib/esm/components/link/RouteLink.d.ts.map +0 -1
  468. package/lib/esm/components/link/RouteLink.js +0 -55
  469. package/lib/esm/components/multiMenu/MultiMenu.d.ts +0 -27
  470. package/lib/esm/components/multiMenu/MultiMenu.d.ts.map +0 -1
  471. package/lib/esm/components/multiMenu/MultiMenu.js +0 -30
  472. package/lib/esm/components/multiMenu/components/MultiMenuContext.d.ts +0 -7
  473. package/lib/esm/components/multiMenu/components/MultiMenuContext.d.ts.map +0 -1
  474. package/lib/esm/components/multiMenu/components/MultiMenuContext.js +0 -5
  475. package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts +0 -14
  476. package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts.map +0 -1
  477. package/lib/esm/components/multiMenu/components/MultiMenuItem.js +0 -24
  478. package/lib/esm/components/pagination/Pagination.d.ts +0 -37
  479. package/lib/esm/components/pagination/Pagination.d.ts.map +0 -1
  480. package/lib/esm/components/pagination/Pagination.js +0 -114
  481. package/lib/esm/components/pagination/__tests__/Pagination.spec.d.ts +0 -2
  482. package/lib/esm/components/pagination/__tests__/Pagination.spec.d.ts.map +0 -1
  483. package/lib/esm/components/pagination/__tests__/Pagination.spec.js +0 -87
  484. package/lib/esm/components/periodpicker/PeriodPicker.d.ts +0 -23
  485. package/lib/esm/components/periodpicker/PeriodPicker.d.ts.map +0 -1
  486. package/lib/esm/components/periodpicker/PeriodPicker.js +0 -11
  487. package/lib/esm/components/periodpicker/components/Inputs.d.ts +0 -12
  488. package/lib/esm/components/periodpicker/components/Inputs.d.ts.map +0 -1
  489. package/lib/esm/components/periodpicker/components/Inputs.js +0 -66
  490. package/lib/esm/components/periodpicker/components/Menu.d.ts +0 -11
  491. package/lib/esm/components/periodpicker/components/Menu.d.ts.map +0 -1
  492. package/lib/esm/components/periodpicker/components/Menu.js +0 -96
  493. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts +0 -19
  494. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts.map +0 -1
  495. package/lib/esm/components/periodpicker/components/MonthPicker.js +0 -62
  496. package/lib/esm/components/periodpicker/periods.d.ts +0 -33
  497. package/lib/esm/components/periodpicker/periods.d.ts.map +0 -1
  498. package/lib/esm/components/periodpicker/periods.js +0 -56
  499. package/lib/esm/components/periodpicker/types.d.ts +0 -5
  500. package/lib/esm/components/periodpicker/types.d.ts.map +0 -1
  501. package/lib/esm/components/periodpicker/types.js +0 -1
  502. package/lib/esm/components/periodpicker/usePeriodName.d.ts +0 -7
  503. package/lib/esm/components/periodpicker/usePeriodName.d.ts.map +0 -1
  504. package/lib/esm/components/periodpicker/usePeriodName.js +0 -38
  505. package/lib/esm/components/prompt/Prompt.d.ts +0 -23
  506. package/lib/esm/components/prompt/Prompt.d.ts.map +0 -1
  507. package/lib/esm/components/prompt/Prompt.js +0 -31
  508. package/lib/esm/components/prompt/withPrompt.d.ts +0 -7
  509. package/lib/esm/components/prompt/withPrompt.d.ts.map +0 -1
  510. package/lib/esm/components/prompt/withPrompt.js +0 -33
  511. package/lib/esm/components/reactable/Reactable.d.ts +0 -41
  512. package/lib/esm/components/reactable/Reactable.d.ts.map +0 -1
  513. package/lib/esm/components/reactable/Reactable.js +0 -30
  514. package/lib/esm/components/reactable/helpers/ReactableTable.d.ts.map +0 -1
  515. package/lib/esm/components/reactable/helpers/ReactableTable.js +0 -78
  516. package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +0 -1
  517. package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.js +0 -85
  518. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts +0 -17
  519. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts.map +0 -1
  520. package/lib/esm/components/reactable/helpers/ReactableTableHeader.js +0 -54
  521. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts +0 -17
  522. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts.map +0 -1
  523. package/lib/esm/components/reactable/helpers/ReactableTableRow.js +0 -57
  524. package/lib/esm/components/reactable/helpers/ReactableTextFilter.d.ts.map +0 -1
  525. package/lib/esm/components/reactable/helpers/ReactableTextFilter.js +0 -18
  526. package/lib/esm/components/reactable/helpers/helper.d.ts +0 -8
  527. package/lib/esm/components/reactable/helpers/helper.d.ts.map +0 -1
  528. package/lib/esm/components/reactable/helpers/helper.js +0 -93
  529. package/lib/esm/components/reactable/types.d.ts +0 -39
  530. package/lib/esm/components/reactable/types.d.ts.map +0 -1
  531. package/lib/esm/components/reactable/types.js +0 -1
  532. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +0 -71
  533. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +0 -1
  534. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +0 -155
  535. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +0 -2
  536. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +0 -1
  537. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +0 -130
  538. package/lib/esm/components/slider/Slider.d.ts.map +0 -1
  539. package/lib/esm/components/slider/Slider.js +0 -35
  540. package/lib/esm/components/slider/useLimitStyling.d.ts +0 -3
  541. package/lib/esm/components/slider/useLimitStyling.d.ts.map +0 -1
  542. package/lib/esm/components/slider/useLimitStyling.js +0 -49
  543. package/lib/esm/components/svg/SvgImage.d.ts +0 -12
  544. package/lib/esm/components/svg/SvgImage.d.ts.map +0 -1
  545. package/lib/esm/components/svg/SvgImage.js +0 -37
  546. package/lib/esm/components/svg/storybookHelper.d.ts +0 -7
  547. package/lib/esm/components/svg/storybookHelper.d.ts.map +0 -1
  548. package/lib/esm/components/svg/storybookHelper.js +0 -53
  549. package/lib/esm/components/svg/types.d.ts +0 -58
  550. package/lib/esm/components/svg/types.d.ts.map +0 -1
  551. package/lib/esm/components/svg/types.js +0 -1
  552. package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +0 -2
  553. package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +0 -1
  554. package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.js +0 -24
  555. package/lib/esm/components/svg/utils/createHyperlinkModification.d.ts +0 -4
  556. package/lib/esm/components/svg/utils/createHyperlinkModification.d.ts.map +0 -1
  557. package/lib/esm/components/svg/utils/createHyperlinkModification.js +0 -35
  558. package/lib/esm/components/svg/utils/createPositionModification.d.ts +0 -3
  559. package/lib/esm/components/svg/utils/createPositionModification.d.ts.map +0 -1
  560. package/lib/esm/components/svg/utils/createPositionModification.js +0 -19
  561. package/lib/esm/components/svg/utils/findConflicts.d.ts +0 -2
  562. package/lib/esm/components/svg/utils/findConflicts.d.ts.map +0 -1
  563. package/lib/esm/components/svg/utils/findConflicts.js +0 -23
  564. package/lib/esm/components/svg/utils/getMutableNodeList.d.ts +0 -3
  565. package/lib/esm/components/svg/utils/getMutableNodeList.d.ts.map +0 -1
  566. package/lib/esm/components/svg/utils/getMutableNodeList.js +0 -12
  567. package/lib/esm/components/svg/utils/getSvgElement.d.ts +0 -3
  568. package/lib/esm/components/svg/utils/getSvgElement.d.ts.map +0 -1
  569. package/lib/esm/components/svg/utils/getSvgElement.js +0 -10
  570. package/lib/esm/components/svg/utils/renderSvg.d.ts +0 -3
  571. package/lib/esm/components/svg/utils/renderSvg.d.ts.map +0 -1
  572. package/lib/esm/components/svg/utils/renderSvg.js +0 -88
  573. package/lib/esm/components/svg/utils/transformPositionModifications.d.ts +0 -4
  574. package/lib/esm/components/svg/utils/transformPositionModifications.d.ts.map +0 -1
  575. package/lib/esm/components/svg/utils/transformPositionModifications.js +0 -42
  576. package/lib/esm/components/svg/utils/validateSvg.d.ts +0 -3
  577. package/lib/esm/components/svg/utils/validateSvg.d.ts.map +0 -1
  578. package/lib/esm/components/svg/utils/validateSvg.js +0 -5
  579. package/lib/esm/components/tabs/RouteTabs.d.ts.map +0 -1
  580. package/lib/esm/components/tabs/RouteTabs.js +0 -67
  581. package/lib/esm/components/treeview/TreeView.d.ts +0 -50
  582. package/lib/esm/components/treeview/TreeView.d.ts.map +0 -1
  583. package/lib/esm/components/treeview/TreeView.js +0 -104
  584. package/lib/esm/components/treeview/components/Node.d.ts +0 -37
  585. package/lib/esm/components/treeview/components/Node.d.ts.map +0 -1
  586. package/lib/esm/components/treeview/components/Node.js +0 -111
  587. package/lib/esm/components/treeview/components/NodeInfo.d.ts +0 -25
  588. package/lib/esm/components/treeview/components/NodeInfo.d.ts.map +0 -1
  589. package/lib/esm/components/treeview/components/NodeInfo.js +0 -64
  590. package/lib/esm/components/treeview/constants.d.ts +0 -6
  591. package/lib/esm/components/treeview/constants.d.ts.map +0 -1
  592. package/lib/esm/components/treeview/constants.js +0 -6
  593. package/lib/esm/components/treeview/treeutils.d.ts +0 -59
  594. package/lib/esm/components/treeview/treeutils.d.ts.map +0 -1
  595. package/lib/esm/components/treeview/treeutils.js +0 -158
  596. package/lib/esm/components/treeview/types.d.ts +0 -37
  597. package/lib/esm/components/treeview/types.d.ts.map +0 -1
  598. package/lib/esm/components/treeview/types.js +0 -1
  599. package/lib/esm/components/upload/FileUpload.d.ts.map +0 -1
  600. package/lib/esm/components/upload/FileUpload.js +0 -103
  601. package/lib/esm/components/upload/ImageUpload.d.ts.map +0 -1
  602. package/lib/esm/components/upload/ImageUpload.js +0 -52
  603. package/lib/esm/hoc/outsideClick.d.ts +0 -4
  604. package/lib/esm/hoc/outsideClick.d.ts.map +0 -1
  605. package/lib/esm/hoc/outsideClick.js +0 -73
  606. package/lib/esm/i18n/index.d.ts +0 -16
  607. package/lib/esm/i18n/index.d.ts.map +0 -1
  608. package/lib/esm/i18n/index.js +0 -6
  609. package/lib/esm/index.d.ts +0 -52
  610. package/lib/esm/index.d.ts.map +0 -1
  611. package/lib/esm/index.js +0 -39
  612. package/lib/esm/modules/messageBox/messageBox.d.ts +0 -14
  613. package/lib/esm/modules/messageBox/messageBox.d.ts.map +0 -1
  614. package/lib/esm/modules/messageBox/messageBox.js +0 -56
  615. package/lib/esm/modules/utils/nanoidGen.d.ts +0 -2
  616. package/lib/esm/modules/utils/nanoidGen.d.ts.map +0 -1
  617. package/lib/esm/modules/utils/nanoidGen.js +0 -3
  618. package/lib/esm/modules/utils/uuidGen.d.ts +0 -2
  619. package/lib/esm/modules/utils/uuidGen.d.ts.map +0 -1
  620. package/lib/esm/modules/utils/uuidGen.js +0 -13
  621. package/lib/esm/src/__mocks__/i18n.d.ts +0 -13
  622. package/lib/esm/src/__mocks__/i18n.d.ts.map +0 -1
  623. package/lib/esm/src/__mocks__/i18n.js +0 -20
  624. package/lib/esm/src/components/chart/Chart.d.ts.map +0 -1
  625. package/lib/esm/src/components/chart/Chart.js +0 -202
  626. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts +0 -24
  627. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts.map +0 -1
  628. package/lib/esm/src/components/colorpicker/ColorPickerPopper.js +0 -46
  629. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts +0 -63
  630. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts.map +0 -1
  631. package/lib/esm/src/components/colorpicker/GradientColorPicker.js +0 -125
  632. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts +0 -41
  633. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts.map +0 -1
  634. package/lib/esm/src/components/colorpicker/GridColorPicker.js +0 -30
  635. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts +0 -25
  636. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts.map +0 -1
  637. package/lib/esm/src/components/contentHeader/ContentHeader.js +0 -53
  638. package/lib/esm/src/components/infobox/InfoBox.d.ts +0 -22
  639. package/lib/esm/src/components/infobox/InfoBox.d.ts.map +0 -1
  640. package/lib/esm/src/components/infobox/InfoBox.js +0 -36
  641. package/lib/esm/src/components/input/DateInput.d.ts +0 -30
  642. package/lib/esm/src/components/input/DateInput.d.ts.map +0 -1
  643. package/lib/esm/src/components/input/DateInput.js +0 -178
  644. package/lib/esm/src/components/input/DateTimeInput.d.ts +0 -27
  645. package/lib/esm/src/components/input/DateTimeInput.d.ts.map +0 -1
  646. package/lib/esm/src/components/input/DateTimeInput.js +0 -52
  647. package/lib/esm/src/components/input/SelectWithSearch.d.ts +0 -65
  648. package/lib/esm/src/components/input/SelectWithSearch.d.ts.map +0 -1
  649. package/lib/esm/src/components/input/SelectWithSearch.js +0 -111
  650. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts +0 -58
  651. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts.map +0 -1
  652. package/lib/esm/src/components/input/SelectWithSearchAsync.js +0 -100
  653. package/lib/esm/src/components/input/UrnInput.d.ts.map +0 -1
  654. package/lib/esm/src/components/input/UrnInput.js +0 -33
  655. package/lib/esm/src/components/input/ValidatedTextInput.d.ts +0 -35
  656. package/lib/esm/src/components/input/ValidatedTextInput.d.ts.map +0 -1
  657. package/lib/esm/src/components/input/ValidatedTextInput.js +0 -30
  658. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts +0 -2
  659. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts.map +0 -1
  660. package/lib/esm/src/components/input/__tests__/DateInput.spec.js +0 -71
  661. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts +0 -2
  662. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts.map +0 -1
  663. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.js +0 -34
  664. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +0 -2
  665. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +0 -1
  666. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.js +0 -44
  667. package/lib/esm/src/components/link/RouteLink.d.ts.map +0 -1
  668. package/lib/esm/src/components/link/RouteLink.js +0 -55
  669. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts +0 -27
  670. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts.map +0 -1
  671. package/lib/esm/src/components/multiMenu/MultiMenu.js +0 -30
  672. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts +0 -7
  673. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts.map +0 -1
  674. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.js +0 -5
  675. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts +0 -14
  676. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts.map +0 -1
  677. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.js +0 -24
  678. package/lib/esm/src/components/pagination/Pagination.d.ts +0 -37
  679. package/lib/esm/src/components/pagination/Pagination.d.ts.map +0 -1
  680. package/lib/esm/src/components/pagination/Pagination.js +0 -114
  681. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts +0 -2
  682. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts.map +0 -1
  683. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.js +0 -87
  684. package/lib/esm/src/components/periodpicker/PeriodPicker.d.ts.map +0 -1
  685. package/lib/esm/src/components/periodpicker/PeriodPicker.js +0 -11
  686. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts +0 -12
  687. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts.map +0 -1
  688. package/lib/esm/src/components/periodpicker/components/Inputs.js +0 -66
  689. package/lib/esm/src/components/periodpicker/components/Menu.d.ts.map +0 -1
  690. package/lib/esm/src/components/periodpicker/components/Menu.js +0 -96
  691. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts +0 -19
  692. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts.map +0 -1
  693. package/lib/esm/src/components/periodpicker/components/MonthPicker.js +0 -62
  694. package/lib/esm/src/components/periodpicker/periods.d.ts +0 -33
  695. package/lib/esm/src/components/periodpicker/periods.d.ts.map +0 -1
  696. package/lib/esm/src/components/periodpicker/periods.js +0 -56
  697. package/lib/esm/src/components/periodpicker/types.d.ts +0 -5
  698. package/lib/esm/src/components/periodpicker/types.d.ts.map +0 -1
  699. package/lib/esm/src/components/periodpicker/types.js +0 -1
  700. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts +0 -7
  701. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts.map +0 -1
  702. package/lib/esm/src/components/periodpicker/usePeriodName.js +0 -38
  703. package/lib/esm/src/components/prompt/Prompt.d.ts.map +0 -1
  704. package/lib/esm/src/components/prompt/Prompt.js +0 -31
  705. package/lib/esm/src/components/prompt/withPrompt.d.ts.map +0 -1
  706. package/lib/esm/src/components/prompt/withPrompt.js +0 -33
  707. package/lib/esm/src/components/reactable/Reactable.d.ts.map +0 -1
  708. package/lib/esm/src/components/reactable/Reactable.js +0 -30
  709. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts +0 -20
  710. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts.map +0 -1
  711. package/lib/esm/src/components/reactable/helpers/ReactableTable.js +0 -78
  712. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts +0 -10
  713. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +0 -1
  714. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.js +0 -85
  715. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts +0 -17
  716. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts.map +0 -1
  717. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.js +0 -54
  718. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts.map +0 -1
  719. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.js +0 -57
  720. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts +0 -9
  721. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts.map +0 -1
  722. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.js +0 -18
  723. package/lib/esm/src/components/reactable/helpers/helper.d.ts +0 -8
  724. package/lib/esm/src/components/reactable/helpers/helper.d.ts.map +0 -1
  725. package/lib/esm/src/components/reactable/helpers/helper.js +0 -93
  726. package/lib/esm/src/components/reactable/types.d.ts.map +0 -1
  727. package/lib/esm/src/components/reactable/types.js +0 -1
  728. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +0 -1
  729. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +0 -155
  730. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +0 -2
  731. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +0 -1
  732. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +0 -130
  733. package/lib/esm/src/components/slider/Slider.d.ts +0 -30
  734. package/lib/esm/src/components/slider/Slider.d.ts.map +0 -1
  735. package/lib/esm/src/components/slider/Slider.js +0 -35
  736. package/lib/esm/src/components/slider/useLimitStyling.d.ts +0 -3
  737. package/lib/esm/src/components/slider/useLimitStyling.d.ts.map +0 -1
  738. package/lib/esm/src/components/slider/useLimitStyling.js +0 -49
  739. package/lib/esm/src/components/svg/SvgImage.d.ts +0 -12
  740. package/lib/esm/src/components/svg/SvgImage.d.ts.map +0 -1
  741. package/lib/esm/src/components/svg/SvgImage.js +0 -37
  742. package/lib/esm/src/components/svg/storybookHelper.d.ts +0 -7
  743. package/lib/esm/src/components/svg/storybookHelper.d.ts.map +0 -1
  744. package/lib/esm/src/components/svg/storybookHelper.js +0 -53
  745. package/lib/esm/src/components/svg/types.d.ts.map +0 -1
  746. package/lib/esm/src/components/svg/types.js +0 -1
  747. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +0 -2
  748. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +0 -1
  749. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.js +0 -24
  750. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts +0 -4
  751. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts.map +0 -1
  752. package/lib/esm/src/components/svg/utils/createHyperlinkModification.js +0 -35
  753. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts +0 -3
  754. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts.map +0 -1
  755. package/lib/esm/src/components/svg/utils/createPositionModification.js +0 -19
  756. package/lib/esm/src/components/svg/utils/findConflicts.d.ts +0 -2
  757. package/lib/esm/src/components/svg/utils/findConflicts.d.ts.map +0 -1
  758. package/lib/esm/src/components/svg/utils/findConflicts.js +0 -23
  759. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts +0 -3
  760. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts.map +0 -1
  761. package/lib/esm/src/components/svg/utils/getMutableNodeList.js +0 -12
  762. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts +0 -3
  763. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts.map +0 -1
  764. package/lib/esm/src/components/svg/utils/getSvgElement.js +0 -10
  765. package/lib/esm/src/components/svg/utils/renderSvg.d.ts +0 -3
  766. package/lib/esm/src/components/svg/utils/renderSvg.d.ts.map +0 -1
  767. package/lib/esm/src/components/svg/utils/renderSvg.js +0 -88
  768. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts +0 -4
  769. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts.map +0 -1
  770. package/lib/esm/src/components/svg/utils/transformPositionModifications.js +0 -42
  771. package/lib/esm/src/components/svg/utils/validateSvg.d.ts +0 -3
  772. package/lib/esm/src/components/svg/utils/validateSvg.d.ts.map +0 -1
  773. package/lib/esm/src/components/svg/utils/validateSvg.js +0 -5
  774. package/lib/esm/src/components/tabs/RouteTabs.d.ts +0 -24
  775. package/lib/esm/src/components/tabs/RouteTabs.d.ts.map +0 -1
  776. package/lib/esm/src/components/tabs/RouteTabs.js +0 -67
  777. package/lib/esm/src/components/treeview/TreeView.d.ts.map +0 -1
  778. package/lib/esm/src/components/treeview/TreeView.js +0 -104
  779. package/lib/esm/src/components/treeview/components/Node.d.ts +0 -37
  780. package/lib/esm/src/components/treeview/components/Node.d.ts.map +0 -1
  781. package/lib/esm/src/components/treeview/components/Node.js +0 -111
  782. package/lib/esm/src/components/treeview/components/NodeInfo.d.ts.map +0 -1
  783. package/lib/esm/src/components/treeview/components/NodeInfo.js +0 -64
  784. package/lib/esm/src/components/treeview/constants.d.ts +0 -6
  785. package/lib/esm/src/components/treeview/constants.d.ts.map +0 -1
  786. package/lib/esm/src/components/treeview/constants.js +0 -6
  787. package/lib/esm/src/components/treeview/treeutils.d.ts +0 -59
  788. package/lib/esm/src/components/treeview/treeutils.d.ts.map +0 -1
  789. package/lib/esm/src/components/treeview/treeutils.js +0 -158
  790. package/lib/esm/src/components/treeview/types.d.ts.map +0 -1
  791. package/lib/esm/src/components/treeview/types.js +0 -1
  792. package/lib/esm/src/components/upload/FileUpload.d.ts +0 -81
  793. package/lib/esm/src/components/upload/FileUpload.d.ts.map +0 -1
  794. package/lib/esm/src/components/upload/FileUpload.js +0 -103
  795. package/lib/esm/src/components/upload/ImageUpload.d.ts +0 -22
  796. package/lib/esm/src/components/upload/ImageUpload.d.ts.map +0 -1
  797. package/lib/esm/src/components/upload/ImageUpload.js +0 -52
  798. package/lib/esm/src/hoc/outsideClick.d.ts +0 -4
  799. package/lib/esm/src/hoc/outsideClick.d.ts.map +0 -1
  800. package/lib/esm/src/hoc/outsideClick.js +0 -73
  801. package/lib/esm/src/i18n/index.d.ts +0 -16
  802. package/lib/esm/src/i18n/index.d.ts.map +0 -1
  803. package/lib/esm/src/i18n/index.js +0 -6
  804. package/lib/esm/src/index.d.ts.map +0 -1
  805. package/lib/esm/src/index.js +0 -39
  806. package/lib/esm/src/modules/messageBox/messageBox.d.ts.map +0 -1
  807. package/lib/esm/src/modules/messageBox/messageBox.js +0 -56
  808. package/lib/esm/src/modules/utils/nanoidGen.d.ts +0 -2
  809. package/lib/esm/src/modules/utils/nanoidGen.d.ts.map +0 -1
  810. package/lib/esm/src/modules/utils/nanoidGen.js +0 -3
  811. package/lib/esm/src/modules/utils/uuidGen.d.ts +0 -2
  812. package/lib/esm/src/modules/utils/uuidGen.d.ts.map +0 -1
  813. package/lib/esm/src/modules/utils/uuidGen.js +0 -13
  814. package/lib/esm/src/types/i18n.d.ts +0 -5
  815. package/lib/esm/src/types/i18n.d.ts.map +0 -1
  816. package/lib/esm/src/types/i18n.js +0 -1
  817. package/lib/esm/src/types/pagination.d.ts.map +0 -1
  818. package/lib/esm/src/types/pagination.js +0 -1
  819. package/lib/esm/src/utils/dayjsLocales.d.ts +0 -10
  820. package/lib/esm/src/utils/dayjsLocales.d.ts.map +0 -1
  821. package/lib/esm/src/utils/dayjsLocales.js +0 -12
  822. package/lib/esm/src/utils/resolvePath.d.ts +0 -2
  823. package/lib/esm/src/utils/resolvePath.d.ts.map +0 -1
  824. package/lib/esm/src/utils/resolvePath.js +0 -4
  825. package/lib/esm/types/i18n.d.ts +0 -5
  826. package/lib/esm/types/i18n.d.ts.map +0 -1
  827. package/lib/esm/types/i18n.js +0 -1
  828. package/lib/esm/types/pagination.d.ts +0 -19
  829. package/lib/esm/types/pagination.d.ts.map +0 -1
  830. package/lib/esm/types/pagination.js +0 -1
  831. package/lib/esm/utils/dayjsLocales.d.ts +0 -10
  832. package/lib/esm/utils/dayjsLocales.d.ts.map +0 -1
  833. package/lib/esm/utils/dayjsLocales.js +0 -12
  834. package/lib/esm/utils/resolvePath.d.ts +0 -2
  835. package/lib/esm/utils/resolvePath.d.ts.map +0 -1
  836. package/lib/esm/utils/resolvePath.js +0 -4
  837. package/lib/esm/vite.config.d.mts +0 -3
  838. package/lib/esm/vite.config.d.mts.map +0 -1
  839. package/lib/esm/vite.config.mjs +0 -9
  840. package/lib/esm/vitest.setup.d.ts +0 -3
  841. package/lib/esm/vitest.setup.d.ts.map +0 -1
  842. package/lib/esm/vitest.setup.js +0 -10
  843. /package/{lib/cjs → dist/types}/components/periodpicker/periods.d.ts +0 -0
  844. /package/{lib/cjs → dist/types}/components/periodpicker/periods.d.ts.map +0 -0
  845. /package/{lib/cjs → dist/types}/components/periodpicker/usePeriodName.d.ts +0 -0
  846. /package/{lib/cjs → dist/types}/components/periodpicker/usePeriodName.d.ts.map +0 -0
  847. /package/{lib/cjs → dist/types}/components/svg/storybookHelper.d.ts +0 -0
  848. /package/{lib/cjs → dist/types}/components/svg/storybookHelper.d.ts.map +0 -0
  849. /package/{lib/cjs → dist/types}/components/svg/utils/createHyperlinkModification.d.ts +0 -0
  850. /package/{lib/cjs → dist/types}/components/svg/utils/createHyperlinkModification.d.ts.map +0 -0
  851. /package/{lib/cjs → dist/types}/components/svg/utils/createPositionModification.d.ts +0 -0
  852. /package/{lib/cjs → dist/types}/components/svg/utils/createPositionModification.d.ts.map +0 -0
  853. /package/{lib/cjs → dist/types}/components/svg/utils/findConflicts.d.ts +0 -0
  854. /package/{lib/cjs → dist/types}/components/svg/utils/findConflicts.d.ts.map +0 -0
  855. /package/{lib/cjs → dist/types}/components/svg/utils/getMutableNodeList.d.ts +0 -0
  856. /package/{lib/cjs → dist/types}/components/svg/utils/getSvgElement.d.ts +0 -0
  857. /package/{lib/cjs → dist/types}/components/svg/utils/renderSvg.d.ts +0 -0
  858. /package/{lib/cjs → dist/types}/components/svg/utils/renderSvg.d.ts.map +0 -0
  859. /package/{lib/cjs → dist/types}/components/svg/utils/transformPositionModifications.d.ts +0 -0
  860. /package/{lib/cjs → dist/types}/components/svg/utils/validateSvg.d.ts +0 -0
  861. /package/{lib/cjs → dist/types}/components/treeview/constants.d.ts +0 -0
  862. /package/{lib/cjs → dist/types}/components/treeview/constants.d.ts.map +0 -0
  863. /package/{lib/cjs → dist/types}/components/treeview/treeutils.d.ts +0 -0
  864. /package/{lib/cjs → dist/types}/components/treeview/treeutils.d.ts.map +0 -0
  865. /package/{lib/cjs → dist/types}/modules/utils/nanoidGen.d.ts +0 -0
  866. /package/{lib/cjs → dist/types}/modules/utils/nanoidGen.d.ts.map +0 -0
  867. /package/{lib/cjs → dist/types}/modules/utils/uuidGen.d.ts +0 -0
  868. /package/{lib/cjs → dist/types}/utils/dayjsLocales.d.ts +0 -0
  869. /package/{lib/cjs → dist/types}/utils/dayjsLocales.d.ts.map +0 -0
  870. /package/{lib/cjs → dist/types}/utils/resolvePath.d.ts +0 -0
  871. /package/{lib/cjs → dist/types}/utils/resolvePath.d.ts.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/modules/messageBox/messageBox.tsx","../src/modules/utils/uuidGen.ts","../src/modules/utils/nanoidGen.ts","../src/i18n/index.ts","../src/components/treeview/treeutils.ts","../src/components/colorpicker/ColorPickerPopper.tsx","../src/components/colorpicker/GridColorPicker.tsx","../src/components/input/ValidatedTextInput.tsx","../src/components/colorpicker/ColorTextInput.tsx","../src/components/colorpicker/GradientColorPicker.tsx","../src/utils/dayjsLocales.ts","../src/components/input/DateInput.tsx","../src/components/input/UrnInput.tsx","../src/components/prompt/Prompt.tsx","../src/components/prompt/withPrompt.tsx","../src/components/link/RouteLink.tsx","../src/components/infobox/InfoBox.tsx","../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../src/utils/resolvePath.ts","../src/components/tabs/RouteTabs.tsx","../src/assets/img/icon_folder_open.png","../src/assets/img/icon_folder_closed.png","../src/assets/svg/icon_folder_loading.svg","../src/assets/img/icon_variablenode.png","../src/components/treeview/constants.ts","../src/components/treeview/components/NodeInfo.tsx","../src/components/treeview/components/Node.tsx","../src/components/treeview/TreeView.tsx","../src/assets/svg/icon_menu_vertical.svg","../src/components/multiMenu/components/MultiMenuContext.ts","../src/components/multiMenu/MultiMenu.tsx","../src/components/pagination/Pagination.tsx","../src/components/reactable/helpers/ReactableTextFilter.tsx","../src/components/reactable/helpers/helper.tsx","../src/components/input/SelectWithSearch.tsx","../src/components/reactable/helpers/ReactableTableFilterRow.tsx","../src/components/reactable/helpers/ReactableTableHeader.tsx","../src/components/reactable/helpers/ReactableTableRow.tsx","../src/components/reactable/helpers/ReactableTable.tsx","../src/components/reactable/Reactable.tsx","../src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.tsx","../src/components/upload/FileUpload.tsx","../src/components/upload/ImageUpload.tsx","../src/assets/img/icon-arrow-back.png","../src/components/contentHeader/ContentHeader.tsx","../src/components/input/DateTimeInput.tsx","../src/components/input/SelectWithSearchAsync.tsx","../src/components/multiMenu/components/MultiMenuItem.tsx","../src/components/periodpicker/components/Inputs.tsx","../src/components/periodpicker/components/MonthPicker.tsx","../src/assets/svg/icon_calendar.svg","../src/assets/svg/triangle_down.svg","../src/components/periodpicker/periods.ts","../src/components/periodpicker/components/Menu.tsx","../src/components/periodpicker/usePeriodName.ts","../src/components/periodpicker/PeriodPicker.tsx","../src/components/svg/utils/findConflicts.ts","../src/components/svg/utils/createHyperlinkModification.ts","../src/components/svg/utils/getMutableNodeList.ts","../src/components/svg/utils/transformPositionModifications.ts","../src/components/svg/utils/createPositionModification.ts","../src/components/svg/utils/renderSvg.ts","../src/components/svg/SvgImage.tsx","../src/components/svg/utils/getSvgElement.ts","../src/components/svg/utils/validateSvg.ts","../src/components/chart/Chart.tsx","../node_modules/@rc-component/util/lib/raf.js","../src/components/slider/RcSliderWithTooltip.tsx","../src/components/slider/useLimitStyling.ts","../src/components/slider/Slider.tsx"],"sourcesContent":["import {toast, ToastContent, ToastOptions, ToastContainer, Slide} from 'react-toastify';\n\nimport './react-toastify-custom.css';\n\nlet groupNamesToToastIds: Record<string, Array<string | number>> = {};\n\nlet globalErrorMessageBoxOptions: ToastOptions = {\n\tautoClose: false\n};\n\nexport const setGlobalErrorMessageBoxOptions = (options: ToastOptions): void => {\n\tglobalErrorMessageBoxOptions = options;\n};\n\nconst storeGroupName = (groupName: string, toastId: string | number) => {\n\tif (groupName) {\n\t\tif (groupNamesToToastIds[groupName]) {\n\t\t\tgroupNamesToToastIds[groupName] = [...groupNamesToToastIds[groupName], toastId];\n\t\t} else {\n\t\t\tgroupNamesToToastIds[groupName] = [toastId];\n\t\t}\n\t}\n};\n\nexport const messageBoxSuccess = (content: ToastContent, options?: ToastOptions, groupName?: string): void => {\n\tconst toastId = toast.success(content, options);\n\tif (groupName) storeGroupName(groupName, toastId);\n};\n\nexport const messageBoxInfo = (content: ToastContent, options?: ToastOptions, groupName?: string): void => {\n\tconst toastId = toast.info(content, options);\n\tif (groupName) storeGroupName(groupName, toastId);\n};\n\nexport const messageBoxWarn = (content: ToastContent, options?: ToastOptions, groupName?: string): void => {\n\tconst toastId = toast.warn(content, options);\n\tif (groupName) storeGroupName(groupName, toastId);\n};\n\nexport const messageBoxError = (content: ToastContent, options?: ToastOptions, groupName?: string): void => {\n\t// default is autoClose=false to force the user to close errors\n\tconst toastId = toast.error(content, {...globalErrorMessageBoxOptions, ...options});\n\tif (groupName) storeGroupName(groupName, toastId);\n};\n\nexport const messageBoxDismissSingle = (id: number): void => {\n\ttoast.dismiss(id);\n};\n\nexport const messageBoxDismissGroup = (groupName: string): void => {\n\tif (groupNamesToToastIds[groupName]) {\n\t\tgroupNamesToToastIds[groupName].forEach((toastId) => toast.dismiss(toastId));\n\t\tdelete groupNamesToToastIds[groupName];\n\t}\n};\n\nexport const messageBoxDismissAll = (): void => {\n\tgroupNamesToToastIds = {};\n\ttoast.dismiss();\n};\n\nexport const MessageBoxContainer = () => (\n\t<ToastContainer position=\"top-center\" theme=\"colored\" autoClose={30000} hideProgressBar={true} transition={Slide} />\n);\n","export const uuidV4 = (length = 32): string => {\n\tlet uuid = '';\n\n\tfor (let i = 0; i < length; i++) {\n\t\tconst random = (Math.random() * 16) | 0;\n\n\t\tif (i === 8 || i === 12 || i === 16 || i === 20) {\n\t\t\tuuid += '-';\n\t\t}\n\n\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n\t}\n\n\treturn uuid;\n};\n","import {customAlphabet} from 'nanoid';\n\nconst alphabet = '0123456789abcdefghijklmnopqrstuvwxyz';\n\nexport const nanoid10: () => string = customAlphabet(alphabet, 10);\n","import {TOptions} from 'i18next';\nimport {useTranslation as useReactI18NextTranslation, Trans as ReactTrans} from 'react-i18next';\n\nexport let Trans: typeof ReactTrans;\nexport let useTranslation: UseTranslation;\n\ntype UseTranslation = typeof useReactI18NextTranslation;\n\nexport type TFunction = (key: string, options?: TOptions, context?: any) => string;\n\nexport function initializeTranslation(transComponent: typeof ReactTrans, useTranslationHook: UseTranslation) {\n\tTrans = transComponent;\n\tuseTranslation = useTranslationHook;\n}\n","/* eslint-disable */\nimport {Tree, NodeId, DataSetConfig} from './types';\n\nexport function removeDuplicatesFromArray<T>(arr: Array<T>): Array<T> {\n\treturn arr.filter((id, index, arr) => arr.indexOf(id) === index);\n}\n\nexport function removeNodeIds(nodeIds: Array<NodeId>, nodeIdsToRemove: Array<NodeId>): Array<NodeId> {\n\treturn nodeIds.filter((id) => !nodeIdsToRemove.includes(id));\n}\n\n/**\n * Returns the union of two arrays. Examples\n * [1,2,3] u [2,3,4,5] -> [1,2,3,4,5]\n * @param {Array<NodeId>} nodeIds1 An array of string or integers defining the nodeid\n * @param {Array<NodeId>} nodeIds2 An array of string or integers defining the nodeid\n */\nexport function mergeNodeIdArrays(nodeIds1: Array<NodeId>, nodeIds2: Array<NodeId>): Array<NodeId> {\n\treturn removeDuplicatesFromArray([...nodeIds1, ...nodeIds2]);\n}\n\n/**\n * Returns the intersection of two arrays. Example\n * [1,2,3] n [2,3,4,5] -> [2,3]\n * @param {Array} array1\n * @param {Array} array2\n */\nexport function intersectArrays<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n\treturn array1.filter((value) => array2.includes(value));\n}\n\n/**\n * Returns the count of all leaves in the tree @node\n * @param {Tree} node tree to calculate the treesize for\n */\nexport function getTreeSize(node: Tree): number {\n\tif (node.children) {\n\t\tconst numberOfChildren = node.children.length;\n\t\treturn numberOfChildren + node.children.reduce((l, child) => l + getTreeSize(child), 0);\n\t}\n\n\treturn 0;\n}\n\n/**\n * Returns the leaves of the tree given by @node\n * @param {Tree} node The root node of the tree that should be processed\n */\nexport function getAllLeaves(node: Tree): Array<Tree> {\n\tif (node.children) {\n\t\treturn node.children.reduce((childNodes: Array<Tree>, child) => [...childNodes, ...getAllLeaves(child)], []);\n\t}\n\n\treturn [node];\n}\n\n/**\n * Returns the ids of all leaves of the tree given by @node\n * @param {Tree} node The root node of the tree that should be processed\n */\nexport function getAllLeafIds(node: Tree): Array<NodeId> {\n\treturn getAllLeaves(node).map((node) => node.id);\n}\n\n/**\n * Returns a function that converts an arbitrary hierarchical tree data structure into a treestructure\n * that is processable by the * @Node component. The properties defined in @childNodeKey , @idKey ,\n * @displayNameKey , @typeKey are injected into the returned function @convert . The @convert function\n * returns a new tree of the same structure of smaller size with different parameters.\n *\n * @param {string} childNodeKey The name of the property that holds child nodes\n * @param {string} idKey The name of the property of the node identifier\n * @param {string} displayNameKey The name of the property of the node's name\n * @param {string} typeKey The name of the property to decide if it is a leaf or a \"folder\" node\n * @param {string} lazyLoadableKey\n * @param {ExpandableNode} nodeMetaData An object containing the value for the node's property @typeKey as well as image paths\n * @param {Leaf} leafMetaData An object containing the value for the node's property @typeKey as well as image paths\n */\nexport function convertToTree<T>({\n\tchildNodeKey,\n\tidKey,\n\tdisplayNameKey,\n\ttypeKey,\n\tlazyLoadableKey,\n\tnodeMetaData,\n\tleafMetaData\n}: DataSetConfig): (hierarchicalData: Array<any>, nodePath?: string) => Array<Tree> {\n\tconst {typeValue: leafTypeValue, image, resolver: leafResolver} = leafMetaData;\n\tconst {typeValue: nodeTypeValue, expandedImage, closedImage, resolver: nodeResolver} = nodeMetaData;\n\treturn function convert(hierarchicalData: Array<any>, nodePath = ''): Array<Tree> {\n\t\treturn hierarchicalData.map((rootNode) => {\n\t\t\tconst id = rootNode[idKey];\n\t\t\tconst name = rootNode[displayNameKey];\n\t\t\tconst children = rootNode[childNodeKey];\n\t\t\tconst lazyLoadable = rootNode[lazyLoadableKey];\n\t\t\tconst isNode = nodeResolver ? nodeResolver(rootNode) : rootNode[typeKey] === nodeTypeValue;\n\t\t\tconst isLeaf = leafResolver ? leafResolver(rootNode) : rootNode[typeKey] === leafTypeValue;\n\t\t\tconst path = `${nodePath}/${name}`;\n\t\t\tconst originalNode = rootNode;\n\n\t\t\tif (isNode) {\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\tname,\n\t\t\t\t\tchildren: convert(children || [], path),\n\t\t\t\t\tlazyLoadable,\n\t\t\t\t\texpandedImage,\n\t\t\t\t\tclosedImage,\n\t\t\t\t\tpath,\n\t\t\t\t\toriginalNode\n\t\t\t\t};\n\t\t\t} else if (isLeaf) {\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\tname,\n\t\t\t\t\timage,\n\t\t\t\t\tpath,\n\t\t\t\t\toriginalNode\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('unknown node or leaf type provided');\n\t\t});\n\t};\n}\n\n/**\n * Merges the properties of @node with the properties of @patch .\n * @param {Tree} node The single node to apply the patch against\n * @param {Tree} patch An object holding new properties and additional children for the node\n */\nfunction patchNode(node: Tree, patch: Partial<Tree>) {\n\tlet patchedChildren;\n\n\tif (patch.children !== undefined) {\n\t\tif (node.children !== undefined) {\n\t\t\tpatchedChildren = [...node.children, ...patch.children];\n\t\t} else {\n\t\t\tpatchedChildren = [...patch.children];\n\t\t}\n\t}\n\n\treturn {...node, ...patch, children: patchedChildren || undefined};\n}\n\n/**\n * Find the node with @nodeId in the tree @node and replace properties defined in the provided @patch .\n * If the node with id @nodeId is not found the tree is returned with the same structure.\n * In any case (@nodeId is found or not found) a new object is created and returned, containing the resulting tree.\n *\n * @param {Tree} node The initial tree to add children on\n * @param {NodeId} nodeId The specific node id of the node to add the children\n * @param {Array<Tree>} patch An object containing Tree properties to change on the node with id @nodeId\n */\nexport function findNodeAndApplyPatch(node: Tree, nodeId: NodeId, patch: Partial<Tree>): Tree {\n\tif (node.children === undefined) {\n\t\treturn node;\n\t}\n\n\tif (node.id === nodeId) {\n\t\treturn patchNode(node, patch);\n\t}\n\n\treturn {...node, children: node.children.map((childNode) => findNodeAndApplyPatch(childNode, nodeId, patch))};\n}\n\nfunction getTreeNodePathByIdArray(\n\tcurrentNode: any,\n\tidToFind: string,\n\tidKey: string,\n\tchildNodeKey: string,\n\tdisplayNameKey: string\n): Array<string> | null | undefined {\n\tif (currentNode[idKey] === idToFind) {\n\t\treturn [currentNode[displayNameKey]];\n\t} else if (currentNode[childNodeKey]) {\n\t\tfor (let i = 0; i < currentNode[childNodeKey].length; i++) {\n\t\t\tconst path = getTreeNodePathByIdArray(\n\t\t\t\tcurrentNode[childNodeKey][i],\n\t\t\t\tidToFind,\n\t\t\t\tidKey,\n\t\t\t\tchildNodeKey,\n\t\t\t\tdisplayNameKey\n\t\t\t);\n\n\t\t\tif (path) {\n\t\t\t\tpath.unshift(currentNode[displayNameKey]);\n\t\t\t\treturn path;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function getTreeNodePathById(\n\tcurrentNode: any,\n\tidToFind: string,\n\tidKey: string,\n\tchildNodeKey: string,\n\tdisplayNameKey: string\n): null | string {\n\tconst nodePathArray = getTreeNodePathByIdArray(currentNode, idToFind, idKey, childNodeKey, displayNameKey);\n\treturn nodePathArray ? nodePathArray.join('.') : null;\n}\n","import {Placement, Popup} from '@deviceinsight/ng-ui-basic-components';\nimport {CSSProperties, PropsWithChildren} from 'react';\n\ntype Props = {\n\tisOpen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tvalue?: string;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tplacement?: Placement;\n};\n\nexport default function ColorPickerPopper({\n\tisOpen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tvalue,\n\tplacement,\n\tchildren\n}: PropsWithChildren<Props>) {\n\treturn (\n\t\t<Popup\n\t\t\thandler={\n\t\t\t\t<div className={`di color-picker-popper ${className || ''}`} style={style}>\n\t\t\t\t\t<div className=\"trigger\" style={{...style, backgroundColor: value}} />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\topen={isOpen}\n\t\t\tonOpenChange={onOpenChange}\n\t\t\tplacement={placement}\n\t\t>\n\t\t\t<div className=\"color-picker-box\">\n\t\t\t\t<div className=\"content\">{children}</div>\n\t\t\t</div>\n\t\t</Popup>\n\t);\n}\n","import {useState} from 'react';\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport {Placement} from '@deviceinsight/ng-ui-basic-components';\n\nimport ColorPickerPopper from './ColorPickerPopper';\n\nexport type Props = {\n\t/** if set to false, a popper component will be shown */\n\tinline?: boolean;\n\n\t/** the current value - only RGB(A) */\n\tvalue?: string;\n\n\t/** an array of colors, e.g. `['#88cc00', '#ffeb3c', '#fec107']` */\n\tcolors: Array<string>;\n\n\t/** callback function that is executed when the user picks a color */\n\tonPick: (color: string) => void;\n\n\t/** if true and inline is false, the color picker popup will be shown on init */\n\tisOpen?: boolean;\n\n\t/** if a function is provided and inline is false, the function will be called when the popper open state changes */\n\tonOpenStateChange?: (arg0: boolean) => void;\n\n\t/** styles for the popper component */\n\tstyle?: React.CSSProperties;\n\n\t/** styles for the colorpicker */\n\tpickerStyle?: React.CSSProperties;\n\n\t/** class for the popper component */\n\tclassName?: string;\n\n\t/** class for the colorpicker */\n\tpickerClassName?: string;\n\n\t/** where to align the popper component */\n\tdirection?: Placement;\n};\n\n/**\n * Unlike the GradientColorPicker, the GridColorPicker uses a predefined set of colors.\n * The colors can be defined individually for each GridColorPicker and passed in as prop.\n * Each line can take up to five cells.\n * The cell width within the grid is then calculated automatically via the `styles` prop.\n */\nexport default function GridColorPicker({\n\tvalue,\n\tisOpen,\n\tonOpenStateChange,\n\tdirection,\n\tcolors,\n\tonPick,\n\tpickerStyle,\n\tpickerClassName,\n\tinline = true,\n\tclassName,\n\tstyle\n}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\tconst picker = (\n\t\t<div className={classNames('di color-picker grid-color-picker clearfix', pickerClassName)} style={pickerStyle}>\n\t\t\t{colors.map((color) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={color}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonPick(color);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={`color ${color === value ? 'selected' : ''}`}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackground: color\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n\n\tif (inline) {\n\t\treturn picker;\n\t}\n\n\treturn (\n\t\t<ColorPickerPopper\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tisOpen={isOpen ?? open}\n\t\t\tonOpenChange={onOpenStateChange ?? setOpen}\n\t\t\tplacement={direction}\n\t\t>\n\t\t\t{picker}\n\t\t</ColorPickerPopper>\n\t);\n}\n","import * as React from 'react';\n\nconst isValid = (value: string, pattern: RegExp, required: boolean): boolean => {\n\tif (!value.length) {\n\t\treturn !required;\n\t}\n\n\treturn pattern.test(value);\n};\n\nexport type Props = {\n\t/** Value of the input field */\n\tvalue: string;\n\n\t/** Function, executed on change, takes value and valid as arguments */\n\tonChange: (value: string, valid: boolean) => void;\n\n\t/** Pattern to validate the input */\n\tpattern: RegExp;\n\n\t/** If true, marks the input field as mandatory */\n\trequired: boolean;\n\n\t/** Placeholder */\n\tplaceholder: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tonBlur?: () => void;\n\n\t/** @ignore */\n\tdisabled?: boolean;\n\n\t/** (Optional) sets custom styles if the input field's value isn't valid */\n\tinvalidStyle?: React.CSSProperties;\n};\n\n/**\n * ValidatedTextInput provides an easy way to validate a text inputs value for a certain pattern.\n * This is best used for any form of forms.\n */\nexport default class ValidatedTextInput extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\trequired: boolean;\n\t} = {\n\t\trequired: false\n\t};\n\n\thandleChange = (e: React.SyntheticEvent<HTMLInputElement>) => {\n\t\tconst {value} = e.target as HTMLInputElement;\n\t\tconst {pattern, required, onChange} = this.props;\n\t\tconst valid = isValid(value, pattern, required);\n\t\tonChange(value, valid);\n\t};\n\n\trender() {\n\t\tconst {style, invalidStyle, value, ...props} = this.props;\n\t\tconst {pattern, required, ...otherProps} = props;\n\t\treturn (\n\t\t\t<input\n\t\t\t\t{...otherProps}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={this.handleChange}\n\t\t\t\tstyle={isValid(value, pattern, required) ? style : {...style, ...invalidStyle}}\n\t\t\t\ttype=\"text\"\n\t\t\t/>\n\t\t);\n\t}\n}\n","import {CSSProperties, useEffect, useState} from 'react';\nimport ValidatedTextInput from '../input/ValidatedTextInput';\n\ntype Props = {\n\tvalue: string;\n\tpattern: RegExp;\n\tonChange: (color: string) => void;\n\tplaceholder: string;\n\tstyle?: CSSProperties;\n};\n\nexport function ColorTextInput({value, pattern, onChange, placeholder, style}: Props) {\n\tconst [text, setText] = useState(value);\n\n\tfunction handleChange(value: string, valid: boolean) {\n\t\tsetText(value);\n\t\tif (valid) {\n\t\t\tonChange(value);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tsetText(value);\n\t}, [value]);\n\n\treturn (\n\t\t<ValidatedTextInput\n\t\t\tvalue={text}\n\t\t\tonChange={handleChange}\n\t\t\tpattern={pattern}\n\t\t\tinvalidStyle={{\n\t\t\t\tborderColor: 'red'\n\t\t\t}}\n\t\t\tplaceholder={placeholder}\n\t\t\trequired\n\t\t\tstyle={style}\n\t\t/>\n\t);\n}\n","import {useState} from 'react';\nimport {convert, parse} from 'pure-color';\nimport classNames from 'classnames';\nimport {RgbaStringColorPicker, RgbStringColorPicker, HexColorPicker} from 'react-colorful';\n\nimport ColorPickerPopper from './ColorPickerPopper';\nimport {ColorTextInput} from './ColorTextInput';\nimport {Placement} from '@deviceinsight/ng-ui-basic-components';\n\nconst VALIDATE_HEX_COLOR_REGEX = /^#([A-Fa-f0-9]{6})$/;\nconst VALIDATE_RGB_COLOR_REGEX = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/;\n\nexport type Props = {\n\t/** if set to false, a popper component will be shown */\n\tinline?: boolean;\n\n\t/** the current value - only RGB(A) */\n\tvalue?: string;\n\n\t/** shows the opacity slider */\n\topacitySlider?: boolean;\n\n\t/** callback function that is executed when the user picks a color */\n\tonPick: (color: string) => void;\n\n\t/** if true and inline is false, the colorpicker popup will be shown on init */\n\tisOpen?: boolean;\n\n\t/** if a function is provided and inline is false, the function will be called when the popper open state changes */\n\tonOpenStateChange?: (arg0: boolean) => void;\n\n\t/** if true, the user can also add hex color via text input - cannot be used with opacity slider */\n\tallowTextInput?: boolean;\n\n\t/** styles for the popper component */\n\tstyle?: React.CSSProperties;\n\n\t/** styles for the colorpicker */\n\tpickerStyle?: React.CSSProperties;\n\n\t/** class for the popper component */\n\tclassName?: string;\n\n\t/** class for the colorpicker */\n\tpickerClassName?: string;\n\n\t/** where to align the popper component */\n\tdirection?: Placement;\n};\n\nconst convertRgbaToRgb = (color: string): Array<number> => {\n\treturn parse(color).splice(0, 3);\n};\n\nconst convertToHex = (color?: string): string => {\n\treturn color && color.length > 6 ? convert.rgb.hex(convertRgbaToRgb(color)) : '';\n};\n\nconst convertToRgb = (color?: string): string => {\n\treturn color ? convert.rgb.string(convertRgbaToRgb(color)) : '';\n};\n\n/**\n * The GradientColorPicker provides the functionality to generate any valid RGB color.\n * This is especially useful for setting and defining a custom color.\n */\nexport default function GradientColorPicker({\n\tonOpenStateChange,\n\tonPick,\n\tallowTextInput,\n\tclassName,\n\tdirection,\n\tinline = true,\n\tisOpen,\n\topacitySlider,\n\tpickerClassName,\n\tpickerStyle,\n\tstyle,\n\tvalue\n}: Props) {\n\tconst [open, setOpen] = useState(false);\n\tconst hexValue = convertToHex(value);\n\tconst rgbValue = convertToRgb(value);\n\n\tconst ColorPicker =\n\t\tvalue === hexValue\n\t\t\t? HexColorPicker\n\t\t\t: opacitySlider && !allowTextInput\n\t\t\t\t? RgbaStringColorPicker\n\t\t\t\t: RgbStringColorPicker;\n\n\tconst picker = (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t'di gradient-color-picker',\n\t\t\t\t{\n\t\t\t\t\t'with-textfield': allowTextInput\n\t\t\t\t},\n\t\t\t\tpickerClassName\n\t\t\t)}\n\t\t\tstyle={pickerStyle}\n\t\t>\n\t\t\t<ColorPicker color={value} onChange={onPick} />\n\t\t\t{allowTextInput && (\n\t\t\t\t<div className=\"inputs\">\n\t\t\t\t\t<ColorTextInput\n\t\t\t\t\t\tvalue={hexValue}\n\t\t\t\t\t\tonChange={onPick}\n\t\t\t\t\t\tpattern={VALIDATE_HEX_COLOR_REGEX}\n\t\t\t\t\t\tplaceholder=\"#FF00FF\"\n\t\t\t\t\t\tstyle={{width: 60}}\n\t\t\t\t\t/>\n\t\t\t\t\t<ColorTextInput\n\t\t\t\t\t\tvalue={rgbValue}\n\t\t\t\t\t\tonChange={onPick}\n\t\t\t\t\t\tpattern={VALIDATE_RGB_COLOR_REGEX}\n\t\t\t\t\t\tplaceholder=\"rgb(255,0,255)\"\n\t\t\t\t\t\tstyle={{width: 115}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n\n\tif (inline) {\n\t\treturn picker;\n\t}\n\n\treturn (\n\t\t<ColorPickerPopper\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tisOpen={isOpen ?? open}\n\t\t\tonOpenChange={onOpenStateChange ?? setOpen}\n\t\t\tplacement={direction}\n\t\t>\n\t\t\t{picker}\n\t\t</ColorPickerPopper>\n\t);\n}\n","import 'dayjs/locale/en';\nimport 'dayjs/locale/en-gb';\nimport 'dayjs/locale/en-ca';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/de-at';\nimport 'dayjs/locale/de-ch';\nimport 'dayjs/locale/it';\nimport 'dayjs/locale/ja';\n\nconst supportedLocales = ['en', 'en-gb', 'en-ca', 'de', 'de-at', 'de-ch', 'it', 'ja'];\n\nexport function isLocaleSupported(locale: string) {\n\treturn supportedLocales.includes(locale);\n}\n","import {CSSProperties, forwardRef, useCallback, useEffect, useMemo, useState} from 'react';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport DatePicker, {registerLocale} from 'react-datepicker';\nimport {debounce} from 'lodash';\nimport dayjs from 'dayjs';\nimport localeData from 'dayjs/plugin/localeData';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport i18n from 'i18next';\nimport cx from 'classnames';\nimport {useTranslation} from '../../i18n';\nimport * as Locales from 'date-fns/locale';\n\nimport {Button, Icon, Popup} from '@deviceinsight/ng-ui-basic-components';\n\nimport 'react-datepicker/dist/react-datepicker.css';\nimport './react-datepicker-custom.css';\nimport {isLocaleSupported} from '../../utils/dayjsLocales';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(localeData);\ndayjs.extend(localizedFormat);\ndayjs.extend(customParseFormat);\n\nfunction registerLanguage(locale: string) {\n\tconst [localeSegment1, localeSegment2] = locale.split('-');\n\n\tlet module;\n\tif (localeSegment1 && localeSegment2) {\n\t\t// @ts-ignore\n\t\tmodule = Locales[`${localeSegment1}${localeSegment2}`] ?? Locales[localeSegment1];\n\t} else if (localeSegment1) {\n\t\t// @ts-ignore\n\t\tmodule = Locales[localeSegment1];\n\t} else {\n\t\tmodule = null;\n\t}\n\n\tif (module) {\n\t\tregisterLocale(locale, module);\n\t}\n}\n\nasync function changeDayjsLocale(locale: string) {\n\tlet dayjsLocale = null;\n\tconst [localeSegment1] = locale.split('-');\n\tif (isLocaleSupported(locale.toLowerCase())) {\n\t\tdayjsLocale = locale.toLowerCase();\n\t} else if (isLocaleSupported(localeSegment1.toLowerCase())) {\n\t\tdayjsLocale = localeSegment1.toLowerCase();\n\t}\n\n\tif (dayjsLocale) {\n\t\tdayjs.locale(dayjsLocale);\n\t}\n}\n\ntype Props = {\n\t/** the current value (millis since 1970-01-01 or formatted string) */\n\tvalue: number | string | null | undefined;\n\n\t/** (optional) timezone */\n\ttimezone?: string;\n\n\t/** callback function that is executed when the user picks a date */\n\tonChange: (date: number | null | undefined, fromTextField?: boolean) => void;\n\n\t/** makes the input field clearable */\n\tclearable?: boolean;\n\n\t/** displays the date picker inline */\n\tinline?: boolean;\n\n\t/** displays the DateInput read only */\n\treadOnly?: boolean;\n\n\t/** (optional) class name for the wrapping elements */\n\twrapperClassName?: string;\n\n\t/** (optional) locale, if not set, the i18next.language is taken */\n\tlocale?: string;\n\n\t/** (optional) minimum selectable date */\n\tminDate?: Date;\n\n\t/** (optional) maximum selectable date */\n\tmaxDate?: Date;\n\n\tstyle?: CSSProperties;\n};\n\nfunction isInputValid(value: number | string | null | undefined, pattern: string) {\n\tif (value == null || value === '') {\n\t\treturn true;\n\t}\n\tif (typeof value === 'number') {\n\t\treturn !isNaN(value);\n\t}\n\tif (typeof value === 'string') {\n\t\treturn dayjs(value, pattern, true).isValid();\n\t}\n\treturn false;\n}\n\nfunction inputToDate(\n\tvalue: number | string | null | undefined,\n\tpattern: string,\n\ttimezone: string | undefined\n): Date | null {\n\tif (typeof value === 'number' && !Number.isNaN(value)) {\n\t\treturn new Date(value);\n\t}\n\tif (typeof value === 'string' && dayjs(value, pattern, true).isValid()) {\n\t\treturn dayjs.tz(value, pattern, timezone).toDate();\n\t}\n\treturn null;\n}\n\nfunction inputToTzDate(\n\tvalue: number | string | null | undefined,\n\tpattern: string,\n\ttimezone: string | undefined\n): dayjs.Dayjs | null {\n\tif (typeof value === 'number') {\n\t\treturn dayjs.tz(value, timezone);\n\t}\n\tif (typeof value === 'string' && dayjs(value, pattern, true).isValid()) {\n\t\treturn dayjs.tz(value, pattern, timezone);\n\t}\n\treturn null;\n}\n\n/**\n * DateInput is used to let users set a date conveniently.\n * Usually the user's locale is used for displaying the correct date format.\n */\nconst DateInput = forwardRef<HTMLInputElement, Props>(\n\t({value, clearable, inline, readOnly, wrapperClassName, onChange, locale, timezone, ...otherProps}, ref) => {\n\t\tconst [pattern, setPattern] = useState<string>(dayjs.localeData().longDateFormat('L'));\n\t\tconst {t} = useTranslation();\n\t\tconst [valid, setValid] = useState(false);\n\t\tconst [popupOpen, setPopupOpen] = useState(false);\n\t\tconst [inputText, setInputText] = useState('');\n\n\t\tconst debouncedSetPopupActive = useMemo(() => debounce(setPopupOpen, 30), []);\n\n\t\tuseEffect(() => {\n\t\t\tconst language = locale ?? i18n.language;\n\n\t\t\tif (language) {\n\t\t\t\tregisterLanguage(language);\n\t\t\t\tchangeDayjsLocale(language).then(() => setPattern(dayjs.localeData().longDateFormat('L')));\n\t\t\t}\n\t\t}, [locale]);\n\n\t\tconst formattedDate = useCallback(\n\t\t\t(value: number | string | null | undefined) => {\n\t\t\t\tif (value == null || value == '') {\n\t\t\t\t\treturn '';\n\t\t\t\t} else if (!isInputValid(value, pattern)) {\n\t\t\t\t\treturn t('dateInput.invalidDate', {\n\t\t\t\t\t\tdefaultValue: 'invalid date'\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn typeof value === 'number' ? dayjs.tz(value, timezone).format(pattern) : value;\n\t\t\t\t}\n\t\t\t},\n\t\t\t[pattern, t, timezone]\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (value == null) {\n\t\t\t\tsetInputText('');\n\t\t\t} else {\n\t\t\t\tsetInputText(formattedDate(value));\n\t\t\t}\n\t\t}, [formattedDate, value]);\n\n\t\tuseEffect(() => {\n\t\t\tsetValid(isInputValid(value, pattern));\n\t\t}, [pattern, value]);\n\n\t\tuseEffect(() => {\n\t\t\tdayjs.locale(locale ?? i18n.language);\n\t\t\tsetPattern(dayjs.localeData().longDateFormat('L'));\n\t\t}, [locale]);\n\n\t\tconst handleInputTextChange = (text: string) => {\n\t\t\tsetInputText(text);\n\n\t\t\tif (text) {\n\t\t\t\tconst valid = dayjs(text, pattern, true).isValid();\n\n\t\t\t\tif (valid) {\n\t\t\t\t\tconst prevDate = inputToTzDate(value, pattern, timezone);\n\t\t\t\t\tconst newDate = dayjs.tz(text, pattern, timezone ?? dayjs.tz.guess());\n\t\t\t\t\tif (prevDate) {\n\t\t\t\t\t\tnewDate.set('hour', prevDate.hour());\n\t\t\t\t\t\tnewDate.set('minute', prevDate.minute());\n\t\t\t\t\t\tnewDate.set('second', prevDate.second());\n\t\t\t\t\t\tnewDate.set('millisecond', prevDate.millisecond());\n\t\t\t\t\t}\n\t\t\t\t\tonChange(newDate.valueOf(), true);\n\t\t\t\t}\n\n\t\t\t\tsetValid(valid);\n\t\t\t} else {\n\t\t\t\tonChange(null, true);\n\t\t\t\tsetValid(true);\n\t\t\t}\n\t\t};\n\n\t\tconst handlePickerChange = (date: Date | null | undefined) => {\n\t\t\tonChange(date ? date.valueOf() : null);\n\t\t\tsetInputText(formattedDate(date ? date.getTime() : null));\n\t\t\tsetPopupOpen(false);\n\t\t};\n\n\t\tconst handleClear = () => handleInputTextChange('');\n\n\t\tif (inline) {\n\t\t\treturn (\n\t\t\t\t<DatePicker\n\t\t\t\t\t{...otherProps}\n\t\t\t\t\tonChange={handlePickerChange}\n\t\t\t\t\tselected={inputToDate(value, pattern, timezone)}\n\t\t\t\t\tlocale={locale ?? i18n.language}\n\t\t\t\t\tisClearable={clearable}\n\t\t\t\t\tplaceholderText={pattern}\n\t\t\t\t\tclassName={cx('date', {invalid: !valid})}\n\t\t\t\t\tinline\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (readOnly) {\n\t\t\treturn (\n\t\t\t\t<DatePicker\n\t\t\t\t\t{...otherProps}\n\t\t\t\t\tonChange={() => {}}\n\t\t\t\t\tselected={inputToDate(value, pattern, timezone)}\n\t\t\t\t\tlocale={locale ?? i18n.language}\n\t\t\t\t\tcustomInput={\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<input type=\"text\" value={formattedDate(value)} readOnly />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t\tplaceholderText={pattern}\n\t\t\t\t\treadOnly\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Popup\n\t\t\t\thandler={\n\t\t\t\t\t<span className=\"di date-input-wrapper\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\tdata-testid=\"date-input\"\n\t\t\t\t\t\t\tclassName={cx('date', {invalid: !valid})}\n\t\t\t\t\t\t\tonChange={(e) => handleInputTextChange(e.target.value)}\n\t\t\t\t\t\t\tvalue={inputText}\n\t\t\t\t\t\t\tplaceholder={pattern}\n\t\t\t\t\t\t\tonBlur={() => {\n\t\t\t\t\t\t\t\thandleInputTextChange(formattedDate(value));\n\t\t\t\t\t\t\t\tdebouncedSetPopupActive(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{clearable && (\n\t\t\t\t\t\t\t<Button naked small onClick={handleClear}>\n\t\t\t\t\t\t\t\t<Icon del />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t\tmode={['click', 'focus']}\n\t\t\t\tclassName=\"date-input\"\n\t\t\t\thandlerWrapperClassName={wrapperClassName}\n\t\t\t\topen={popupOpen}\n\t\t\t\tonOpenChange={setPopupOpen}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"di date-picker-popup-wrapper\"\n\t\t\t\t\ttabIndex={0}\n\t\t\t\t\tonFocus={() => {\n\t\t\t\t\t\tdebouncedSetPopupActive(true);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t{...otherProps}\n\t\t\t\t\t\tselected={inputToDate(value, pattern, timezone)}\n\t\t\t\t\t\tonChange={handlePickerChange}\n\t\t\t\t\t\tlocale={locale ?? i18n.language}\n\t\t\t\t\t\tisClearable={clearable}\n\t\t\t\t\t\tplaceholderText={pattern}\n\t\t\t\t\t\tclassName={cx('date', {invalid: !valid})}\n\t\t\t\t\t\tinline\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t);\n\t}\n);\n\nexport default DateInput;\n","import * as React from 'react';\n\nimport {Button, Icon} from '@deviceinsight/ng-ui-basic-components';\n\nexport type Props = {\n\t/** Current value of input field */\n\tvalue: string;\n\n\t/** Function, executed on change */\n\tonChange: (value: string) => any;\n};\n\ntype State = {\n\teditMode: boolean;\n};\n\n/**\n * UrnInput offers a convenient way to add or edit Asset URNs.\n * Usually, a generated default value is passed in as prop.\n */\nexport default class UrnInput extends React.Component<Props, State> {\n\tstate: State = {\n\t\teditMode: false\n\t};\n\n\thandleEdit: () => void = () =>\n\t\tthis.setState({\n\t\t\teditMode: true\n\t\t});\n\n\thandleChangeValue: (event: React.SyntheticEvent<HTMLInputElement>) => any = (\n\t\tevent: React.SyntheticEvent<HTMLInputElement>\n\t) => this.props.onChange((event.target as HTMLInputElement).value);\n\n\trender() {\n\t\tconst {editMode} = this.state;\n\t\tconst {value} = this.props;\n\n\t\tif (editMode) {\n\t\t\treturn (\n\t\t\t\t<input\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tonChange={this.handleChangeValue}\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tmarginRight: 10\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button small onClick={this.handleEdit}>\n\t\t\t\t\t\t<Icon edit />\n\t\t\t\t\t</Button>\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t}\n}\n","import {useEffect, useRef, useState} from 'react';\nimport {Trans, useTranslation} from '../../i18n';\n\nimport {Button, Modal} from '@deviceinsight/ng-ui-basic-components';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Title of the Prompt's content */\n\ttitle: TranslationDescriptor;\n\n\t/** Label of the Prompt's input field */\n\tmessage: TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (arg0: string) => void;\n\n\t/** @ignore */\n\tonCancel: (...args: Array<any>) => any;\n\n\t/** (Optional) if sets, returns custom label for the accept button */\n\tacceptButtonLabel?: TranslationDescriptor;\n\n\t/** (Optional) if sets, returns custom label for the cancel button */\n\tcancelButtonLabel?: TranslationDescriptor;\n\n\t/** (Optional) if sets, returns custom placeholder for the input field */\n\tinputPlaceholder?: TranslationDescriptor;\n};\n\n/**\n * This component should not be used directly, instead use `@withPrompt` to inject a promise-based prompt method\n */\nexport default function Prompt({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonCancel,\n\tinputPlaceholder,\n\tcancelButtonLabel,\n\tacceptButtonLabel\n}: Props) {\n\tconst {t} = useTranslation();\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst [value, setValue] = useState('');\n\n\tuseEffect(() => {\n\t\tinputRef.current?.focus();\n\t});\n\n\treturn (\n\t\t<Modal\n\t\t\theader={t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})}\n\t\t\tcontent={\n\t\t\t\t<div className=\"di form\">\n\t\t\t\t\t<div className=\"field\">\n\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t<Trans i18nKey={message.id}>{message.defaultValue}</Trans>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: 250\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\tinputPlaceholder\n\t\t\t\t\t\t\t\t\t? t(inputPlaceholder.id, {\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue: inputPlaceholder.defaultValue\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={(event) => setValue(event.target.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tonAccept(value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisabled={!value.length}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\t<Trans i18nKey={acceptButtonLabel.id}>{acceptButtonLabel.defaultValue}</Trans>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onCancel}>\n\t\t\t\t\t\t{cancelButtonLabel ? (\n\t\t\t\t\t\t\t<Trans i18nKey={cancelButtonLabel.id}>{cancelButtonLabel.defaultValue}</Trans>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.cancel\">Cancel</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={600}\n\t\t/>\n\t);\n}\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport Prompt from './Prompt';\n\nexport type PromptProps = {\n\tprompt: (\n\t\ttitle: TranslationDescriptor,\n\t\tmessage: TranslationDescriptor,\n\t\tinputPlaceholder?: TranslationDescriptor,\n\t\tacceptButtonLabel?: TranslationDescriptor,\n\t\tcancelButtonLabel?: TranslationDescriptor\n\t) => Promise<string>;\n};\n\ntype State = {\n\tshow: boolean;\n\tpromptElement?: React.ReactElement<typeof Prompt>;\n};\n\nexport default function withPrompt<P>(WrappedComponent: React.ComponentType<P & PromptProps>): React.ComponentType<P> {\n\treturn class WithPromptWrapper extends React.Component<P, State> {\n\t\tstate: State = {\n\t\t\tshow: false\n\t\t};\n\t\tprompt = (\n\t\t\ttitle: TranslationDescriptor,\n\t\t\tmessage: TranslationDescriptor,\n\t\t\tinputPlaceholder?: TranslationDescriptor,\n\t\t\tacceptButtonLabel?: TranslationDescriptor,\n\t\t\tcancelButtonLabel?: TranslationDescriptor\n\t\t): Promise<string> =>\n\t\t\tnew Promise((resolve) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\tshow: true,\n\t\t\t\t\tpromptElement: (\n\t\t\t\t\t\t<Prompt\n\t\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\t\tmessage={message}\n\t\t\t\t\t\t\tonAccept={(value) => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tshow: false\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonCancel={() => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\tshow: false\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tinputPlaceholder={inputPlaceholder}\n\t\t\t\t\t\t\tacceptButtonLabel={acceptButtonLabel}\n\t\t\t\t\t\t\tcancelButtonLabel={cancelButtonLabel}\n\t\t\t\t\t\t\tkey=\"1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t});\n\t\t\t});\n\n\t\trender() {\n\t\t\treturn [\n\t\t\t\t<WrappedComponent {...this.props} prompt={this.prompt} key=\"0\" />,\n\t\t\t\tthis.state.show ? this.state.promptElement : null\n\t\t\t];\n\t\t}\n\t};\n}\n","/* eslint no-unused-vars: 0 */\nimport {useCallback, useEffect} from 'react';\n\nimport * as React from 'react';\nimport {useTranslation} from '../../i18n';\nimport {RouteComponentProps, useHistory} from 'react-router-dom';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\ntype LocationShape = RouteComponentProps['location'];\n\nconst isModifiedEvent = (event: React.MouseEvent<HTMLAnchorElement> | KeyboardEvent) =>\n\t!!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport type Props = {\n\tto: string | LocationShape;\n\n\t/** a title tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** a keyboard shortcut that activates the link */\n\tkeyboardShortcut?: string;\n\n\t/**\n\t * a function called before the link is activated, should return a promise that either\n\t * - rejects: to abort the navigation\n\t * - resolves: to continue the navigation with\n\t * - resolves with a new location: to continue the navigation with a new path\n\t * */\n\tconfirm?: () => Promise<(string | null | undefined) | (LocationShape | null | undefined)>;\n\n\t/** @ignore */\n\tchildren?: any;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * RouteLink enables the possibility to add new links to existing routes.\n * Those routes can also be accessed via `keyboardShortcut`\n */\nexport default function RouteLink({to, confirm, className, title, children, keyboardShortcut, ...otherProps}: Props) {\n\tconst history = useHistory();\n\tconst {t} = useTranslation();\n\n\tconst pushRoute = useCallback(() => {\n\t\tif (confirm) {\n\t\t\tconfirm()\n\t\t\t\t.then((location) => history.push(location || to))\n\t\t\t\t.catch(() => {\n\t\t\t\t\t// Exception means that the user didn't confirm, we don't need to react for that.\n\t\t\t\t});\n\t\t} else {\n\t\t\thistory.push(to);\n\t\t}\n\t}, [confirm, history, to]);\n\n\tconst handleKeyEvent = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tkeyboardShortcut &&\n\t\t\t\tevent.key === keyboardShortcut &&\n\t\t\t\t!isModifiedEvent(event) && // @ts-ignore EventTarget is a Node and has a tagName\n\t\t\t\tevent.target.tagName && // @ts-ignore EventTarget is a Node and has a tagName\n\t\t\t\t!['INPUT', 'SELECT', 'TEXTAREA'].includes(event.target.tagName)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tpushRoute();\n\t\t\t}\n\t\t},\n\t\t[keyboardShortcut, pushRoute]\n\t);\n\n\tuseEffect(() => {\n\t\tif (keyboardShortcut) {\n\t\t\twindow.addEventListener('keydown', handleKeyEvent);\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('keydown', handleKeyEvent);\n\t\t\t};\n\t\t}\n\t}, [keyboardShortcut, handleKeyEvent]);\n\n\tconst handleClickEvent = (event: React.MouseEvent<HTMLAnchorElement>) => {\n\t\tif (event.button === 0 && !isModifiedEvent(event)) {\n\t\t\tevent.preventDefault();\n\t\t\tpushRoute();\n\t\t}\n\t};\n\tconst href = history.createHref(typeof to === 'string' ? {pathname: to} : to);\n\n\treturn (\n\t\t<a\n\t\t\thref={href}\n\t\t\tonClick={handleClickEvent}\n\t\t\tclassName={`di route-link ${className || ''}`}\n\t\t\ttitle={\n\t\t\t\ttitle\n\t\t\t\t\t? t(title.id, {\n\t\t\t\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t\t\t\t})\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\t{...otherProps}\n\t\t>\n\t\t\t{children}\n\t\t</a>\n\t);\n}\n","import {useState} from 'react';\nimport * as React from 'react';\nimport {useTranslation} from '../../i18n';\n\nimport {Icon} from '@deviceinsight/ng-ui-basic-components';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nconst colors = {\n\tinfo: '#ffffff',\n\tsuccess: '#cce0cc',\n\twarning: '#fed254',\n\terror: '#d66961'\n};\nexport type Props = {\n\t/** Color scheme type based on InfoBox purpose */\n\ttype?: 'info' | 'success' | 'warning' | 'error';\n\n\t/** The message to display in the InfoBox */\n\tmessage: TranslationDescriptor | string;\n\n\t/** Optional icon of the InfoBox */\n\ticon?: string;\n\n\t/** Optional flag whether the InfoBox should be hideable */\n\thideable?: boolean;\n\n\t/** Optional additional classnames for the parent div container */\n\tclassName?: string;\n\n\t/** Optional additional information to display under the info header */\n\tchildren?: React.ReactNode;\n};\n\n/**\n * InfoBox is best used for highlighting information, especially if a warning and/or an error shall be displayed.\n */\nfunction InfoBox({type = 'info', hideable = false, className, icon, message: inputMessage, children}: Props) {\n\tconst [visible, setVisible] = useState(true);\n\tconst {t} = useTranslation();\n\n\tfunction getMessage(): string {\n\t\tif (typeof inputMessage !== 'string') {\n\t\t\tconst {id, defaultValue, ...rest} = inputMessage;\n\t\t\treturn t(id, {...rest, defaultValue});\n\t\t}\n\n\t\treturn inputMessage;\n\t}\n\n\tconst message = getMessage();\n\n\treturn visible ? (\n\t\t<div className={`infobox ${className ? className : ''}`}>\n\t\t\t<div\n\t\t\t\tclassName=\"infobox-header\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: colors[type]\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"infobox-header-content\">\n\t\t\t\t\t{icon && (\n\t\t\t\t\t\t<div className=\"infobox-iconcontainer\">\n\t\t\t\t\t\t\t<img src={icon} alt=\"info-icon\" style={{width: 16, height: 16}} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className=\"infobox-message\">{message}</div>\n\t\t\t\t</div>\n\t\t\t\t{hideable && (\n\t\t\t\t\t<button className=\"infobox-closebutton\" onClick={() => setVisible(false)}>\n\t\t\t\t\t\t<Icon del large />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{children}\n\t\t</div>\n\t) : null;\n}\n\nexport default InfoBox;\n","import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","export default function resolvePath(basePath: string, match: string): string {\n\tconst divider = basePath.endsWith('/') ? '' : '/';\n\treturn `${basePath}${divider}${match}`;\n}\n","import {useState} from 'react';\nimport * as React from 'react';\nimport {Link, Redirect, Route, Switch, useLocation} from 'react-router-dom';\nimport {CSS} from '@dnd-kit/utilities';\nimport {closestCenter, DndContext, DragEndEvent} from '@dnd-kit/core';\nimport {horizontalListSortingStrategy, SortableContext, useSortable} from '@dnd-kit/sortable';\nimport {restrictToHorizontalAxis} from '@dnd-kit/modifiers';\nimport cx from 'classnames';\n\nimport resolvePath from '../../utils/resolvePath';\n\ntype Page = {\n\tpath: string;\n\trenderHeading: (props: unknown) => React.ReactNode;\n\theadingTitle?: string;\n\trenderBody: (props: any) => React.ReactNode;\n\tdraggingDisabled?: boolean;\n\tdisabled?: boolean;\n};\n\nexport type Props = {\n\t/** Path of the page where this component is rendered */\n\tbasePath?: string;\n\n\t/** Array of pages to be displayed */\n\tpages: Page[];\n\n\t/** (Optional) function, executed if the order of the tabs get changed */\n\tonOrderChange?: (oldIndex: number, newIndex: number) => void;\n};\n\ntype TabHeaderProps = {\n\tid: string | number;\n\tdraggingDisabled: boolean;\n};\n\nconst TabHeader = ({\n\tid,\n\tto,\n\tclassName,\n\ttitle,\n\tchildren,\n\tdraggingDisabled\n}: React.ComponentProps<Link> & TabHeaderProps) => {\n\tconst {attributes, listeners, setNodeRef, transform, transition} = useSortable({\n\t\tid,\n\t\tdisabled: draggingDisabled,\n\t\tstrategy: horizontalListSortingStrategy\n\t});\n\n\tconst style = {\n\t\ttransform: transform ? CSS.Transform.toString({...transform, scaleX: 1}) : undefined,\n\t\ttransition\n\t};\n\n\tconst {pathname} = useLocation();\n\tconst isActive = pathname.endsWith(to.toString());\n\n\tif (isActive) {\n\t\treturn (\n\t\t\t<button\n\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\tclassName={cx('tab-header item active', className)}\n\t\t\t\ttitle={title}\n\t\t\t\tref={setNodeRef}\n\t\t\t\tstyle={style}\n\t\t\t\ttype=\"button\"\n\t\t\t\t{...attributes}\n\t\t\t\t{...listeners}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Link\n\t\t\tdata-testid=\"tab-button\"\n\t\t\tto={to}\n\t\t\ttitle={title}\n\t\t\tclassName={cx('tab-header item', className)}\n\t\t\tref={setNodeRef}\n\t\t\tstyle={style}\n\t\t\t{...attributes}\n\t\t\t{...listeners}\n\t\t>\n\t\t\t{children}\n\t\t</Link>\n\t);\n};\n\n/**\n * RouteTabs add the possibility to unite several homogeneous pages into one.\n * Each tab can be accessed individually via the browser's history\n */\nexport default function RouteTabs({pages, onOrderChange, basePath, ...otherProps}: Props) {\n\tconst [dragging, setDragging] = useState(false);\n\tconst {pathname, state} = useLocation();\n\n\tfunction determineBasePath() {\n\t\tconst lastPathSegment = pathname.split('/').reverse()[0];\n\n\t\tif (pages.some((page) => page.path === lastPathSegment)) {\n\t\t\treturn pathname.substring(0, pathname.lastIndexOf('/'));\n\t\t} else {\n\t\t\treturn pathname;\n\t\t}\n\t}\n\n\tfunction handleDragEnd(event: DragEndEvent) {\n\t\tsetDragging(false);\n\t\tconst {active, over} = event;\n\n\t\tif (active.id !== over?.id && onOrderChange) {\n\t\t\tconst oldIndex = pages.findIndex((page) => page.path === active.id);\n\t\t\tconst newIndex = pages.findIndex((page) => page.path === over?.id);\n\t\t\tonOrderChange(oldIndex, newIndex);\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className={dragging ? 'draggable-area' : ''}>\n\t\t\t<DndContext\n\t\t\t\tcollisionDetection={closestCenter}\n\t\t\t\tonDragEnd={handleDragEnd}\n\t\t\t\tonDragStart={() => setDragging(true)}\n\t\t\t\tmodifiers={[restrictToHorizontalAxis]}\n\t\t\t>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t<SortableContext\n\t\t\t\t\t\titems={pages.map((page) => ({...page, id: page.path}))}\n\t\t\t\t\t\tstrategy={horizontalListSortingStrategy}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pages.map(({path, renderHeading, headingTitle, draggingDisabled, disabled: pageDisabled}) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TabHeader\n\t\t\t\t\t\t\t\t\tid={path}\n\t\t\t\t\t\t\t\t\tkey={path}\n\t\t\t\t\t\t\t\t\tto={resolvePath(basePath || determineBasePath(), path)}\n\t\t\t\t\t\t\t\t\ttitle={headingTitle}\n\t\t\t\t\t\t\t\t\tdraggingDisabled={\n\t\t\t\t\t\t\t\t\t\tpageDisabled ||\n\t\t\t\t\t\t\t\t\t\tdraggingDisabled ||\n\t\t\t\t\t\t\t\t\t\t!onOrderChange ||\n\t\t\t\t\t\t\t\t\t\t(!dragging && !pathname.endsWith(path))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading(otherProps)}\n\t\t\t\t\t\t\t\t</TabHeader>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</SortableContext>\n\t\t\t\t</div>\n\t\t\t</DndContext>\n\t\t\t<Switch>\n\t\t\t\t{pages.map(({renderBody, path}) => (\n\t\t\t\t\t<Route\n\t\t\t\t\t\tkey={path}\n\t\t\t\t\t\tpath={resolvePath(basePath || determineBasePath(), path)}\n\t\t\t\t\t\trender={() => renderBody(otherProps)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t\t<Route>\n\t\t\t\t\t<Redirect\n\t\t\t\t\t\tto={{\n\t\t\t\t\t\t\tpathname: resolvePath(basePath || determineBasePath(), pages[0].path),\n\t\t\t\t\t\t\tstate\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</Route>\n\t\t\t</Switch>\n\t\t</div>\n\t);\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMZJREFUeNpi/P//PwMtARMDjcHQt4ABGgchQPwKxMWBzwKxKFlmQy14g8dwGL5MqiXIFvynEgb5VJmWFoDwImQLWNB8pQ/EjyiM1j/IHHQLPgHxB3ok00dUCKpnuCzQAmJZKjh+Jy4L3KkUOjgtcKNG/gXi3cg5GRZuGkD8jQrhfwpmNroPbIGYkwo+2IErFXlQKfx3oRd2MK99oELwfIDlL+Qgegul+ang+u0ouRnqg0ACxTWx+CIQKyGbzThaJw+4BQABBgBH38BkTQm7ZwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGpJREFUeNpi/P//PwMtARMDjcHQt4ABFAfQeAgH4jcgIRy4gyxzkSzAZzjJlmCz4D+VMMih4TBzGWHJlJGRkZrp9S3QXBGwuTSyAOR6xtF8MGrBqAUDYMFbahYV5BTXlBV2o5E8YBYABBgAxQJ9mxTaZMQAAAAASUVORK5CYII=\"","export default \"data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20style='enable-background:new%200%200%2050%2050;'%20xml:space='preserve'%3e%3crect%20x='0'%20y='0'%20width='5'%20height='10'%20fill='%23000'%3e%3canimateTransform%20attributeType='xml'%20attributeName='transform'%20type='translate'%20values='0%200;%200%2014;%200%200'%20begin='0'%20dur='0.6s'%20repeatCount='indefinite'%20/%3e%3c/rect%3e%3crect%20x='9'%20y='0'%20width='5'%20height='10'%20fill='%23000'%3e%3canimateTransform%20attributeType='xml'%20attributeName='transform'%20type='translate'%20values='0%200;%200%2014;%200%200'%20begin='0.2s'%20dur='0.6s'%20repeatCount='indefinite'%20/%3e%3c/rect%3e%3crect%20x='19'%20y='0'%20width='5'%20height='10'%20fill='%23000'%3e%3canimateTransform%20attributeType='xml'%20attributeName='transform'%20type='translate'%20values='0%200;%200%2014;%200%200'%20begin='0.4s'%20dur='0.6s'%20repeatCount='indefinite'%20/%3e%3c/rect%3e%3c/svg%3e\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwNDI3RTg2NEQxQjExRTc4OEM3RTkwQjYwNjA2OTk5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwNDI3RTg3NEQxQjExRTc4OEM3RTkwQjYwNjA2OTk5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjA0MjdFODQ0RDFCMTFFNzg4QzdFOTBCNjA2MDY5OTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjA0MjdFODU0RDFCMTFFNzg4QzdFOTBCNjA2MDY5OTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5FrZPxAAAA5UlEQVR42qzTvQ7BUBTA8UpEYraJWAwSNVgMHsDIZvUEngWDisTiBTyA4A3EJEiMYrBJGBBf/yO3UlVNq07y63Cbc3rvuaea9hkZ1LHAUZmrtYzmEhG0cMX9C3nXQdQpeeiSaDdSOa8wfCSbWmayjssPBSRHD/EoqzMtscEeN8SQQwVVhB361pRHDX1VYGf5whZjlJDHymEXclPaycN2e4hjYFs/eS0gJkiibVmT4z634bVxaxRQxBQzKdDw2X0Zpi7SSEiBbIBrTAUZJOOvoxz4Z7KGriZMBuuMg+p2U/XrLR4CDACHu7RW+98pzwAAAABJRU5ErkJggg==\"","export enum SelectionState {\n\tALL = 'all',\n\tSOME = 'some',\n\tNONE = 'none'\n}\n","import * as React from 'react';\n\nimport defaultIconFolderOpen from '../../../assets/img/icon_folder_open.png';\nimport defaultIconFolderClosed from '../../../assets/img/icon_folder_closed.png';\nimport defaultIconFolderLoading from '../../../assets/svg/icon_folder_loading.svg';\nimport defaultIconLeafNode from '../../../assets/img/icon_variablenode.png';\nimport {SelectionState} from '../constants';\nimport {Tree} from '../types';\n\ntype NodeImageProps = {\n\tnode: Tree;\n\tleafNode: boolean;\n\texpanded: boolean;\n\tisLoading: boolean;\n\tonExpand?: (event: React.SyntheticEvent<HTMLImageElement>) => void;\n};\n\ntype NodeInfoProps = {\n\tnode: Tree;\n\tdisplayName: string;\n\tleafNode: boolean;\n\texpanded: boolean;\n\tisLastChild?: boolean;\n\tselectionState: SelectionState;\n\tisLoading: boolean;\n\tonExpand: () => void;\n\tonSelect: (toggled: boolean) => void;\n};\n\nconst Skeleton = ({lastChild}: {lastChild: boolean}) => (\n\t<div className=\"skeleton\">\n\t\t<div className=\"skeleton-cell top\" />\n\t\t<div\n\t\t\tclassName=\"skeleton-cell bottom\"\n\t\t\tstyle={{\n\t\t\t\tvisibility: lastChild ? 'hidden' : 'initial'\n\t\t\t}}\n\t\t/>\n\t</div>\n);\n\nconst NodeImage = ({node, leafNode, expanded, isLoading, onExpand}: NodeImageProps) => {\n\tlet imageSrc;\n\n\tif (leafNode) {\n\t\timageSrc = node.image || defaultIconLeafNode;\n\t} else {\n\t\tif (isLoading) {\n\t\t\timageSrc = defaultIconFolderLoading;\n\t\t} else if (expanded) {\n\t\t\timageSrc = node.expandedImage || defaultIconFolderOpen;\n\t\t} else {\n\t\t\timageSrc = node.closedImage || defaultIconFolderClosed;\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className=\"icon-container\">\n\t\t\t<img src={imageSrc} alt=\"node\" onClick={onExpand} />\n\t\t</div>\n\t);\n};\n\nexport default class NodeInfo extends React.PureComponent<NodeInfoProps> {\n\tinputRef: HTMLInputElement | null | undefined;\n\n\tcomponentDidMount() {\n\t\tthis.updateSelectionState();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updateSelectionState();\n\t}\n\n\tupdateSelectionState() {\n\t\tconst {selectionState} = this.props;\n\n\t\tif (this.inputRef) {\n\t\t\tthis.inputRef.indeterminate = selectionState === SelectionState.SOME;\n\t\t}\n\t}\n\n\tonSelect = (event: React.SyntheticEvent<HTMLInputElement>): void => {\n\t\tconst {onSelect, selectionState} = this.props;\n\t\tonSelect(selectionState === SelectionState.SOME ? false : event.currentTarget.checked);\n\t};\n\n\tonLabelClick = (): void => {\n\t\tconst {onSelect, selectionState} = this.props;\n\t\tonSelect(selectionState === SelectionState.SOME ? false : this.inputRef ? !this.inputRef.checked : false);\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tnode,\n\t\t\tnode: {name},\n\t\t\tleafNode,\n\t\t\texpanded,\n\t\t\tisLastChild,\n\t\t\tonExpand,\n\t\t\tselectionState,\n\t\t\tisLoading\n\t\t} = this.props;\n\t\tconst selected = selectionState === SelectionState.ALL;\n\t\treturn (\n\t\t\t<div className={`node-info ${selected ? 'selected' : ''}`}>\n\t\t\t\t{isLastChild !== undefined && <Skeleton lastChild={isLastChild} />}\n\t\t\t\t<NodeImage\n\t\t\t\t\tnode={node}\n\t\t\t\t\tleafNode={leafNode}\n\t\t\t\t\texpanded={expanded}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tonExpand={onExpand}\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\tref={(ref) => {\n\t\t\t\t\t\tthis.inputRef = ref;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tchecked={selectionState === SelectionState.ALL}\n\t\t\t\t\tonChange={this.onSelect}\n\t\t\t\t/>\n\t\t\t\t<div className=\"name\" onClick={this.onLabelClick}>\n\t\t\t\t\t{name}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import {Component} from 'react';\n\nimport NodeInfo from './NodeInfo';\nimport {SelectionState} from '../constants';\nimport {getAllLeafIds, getAllLeaves, intersectArrays} from '../treeutils';\nimport {NodeId, Tree} from '../types';\n\ntype Props = {\n\tselectedNodes: Array<NodeId>;\n\tnode: Tree;\n\tisLastChild?: boolean;\n\ttreeSize: number;\n\tselectNodes: (ids: Array<Tree>) => void;\n\tdeselectNodes: (ids: Array<Tree>) => void;\n\tlazyLoadingFunction: (node: Tree) => Promise<any>;\n};\n\ntype State = {\n\texpanded: boolean;\n\tselectionState: SelectionState;\n\tisLoading: boolean;\n};\n\nexport default class Node extends Component<Props, State> {\n\tstate: State = {\n\t\texpanded: false,\n\t\tselectionState: this.getSelectionState(),\n\t\tisLoading: false\n\t};\n\n\t/**\n\t * Update folder nodes only if the selection changed, or expanded changed\n\t * Update leaf nodes only if the previously selected nodes include this leaf and the currently\n\t * selected nodes do not include this leaf, and vice versa.\n\t * @param {Props} prevProps\n\t * @param {State} prevState\n\t */\n\tshouldComponentUpdate(prevProps: Props, prevState: State): boolean {\n\t\tconst {selectedNodes: prevSelectedNodes, treeSize: prevTreeSize} = prevProps;\n\t\tconst {expanded: prevExpanded, selectionState: prevSelectionState, isLoading: prevIsLoading} = prevState;\n\t\tconst {selectedNodes, node, treeSize} = this.props;\n\t\tconst {expanded, selectionState, isLoading} = this.state;\n\t\tif (prevIsLoading !== isLoading) return true;\n\t\tif (prevTreeSize !== treeSize) return true;\n\n\t\tif (this.isLeaf()) {\n\t\t\tconst selectionChangedForLeaf =\n\t\t\t\t(prevSelectedNodes.includes(node.id) && !selectedNodes.includes(node.id)) ||\n\t\t\t\t(!prevSelectedNodes.includes(node.id) && selectedNodes.includes(node.id));\n\t\t\treturn selectionChangedForLeaf || prevSelectionState !== selectionState;\n\t\t} else {\n\t\t\treturn (\n\t\t\t\tprevSelectedNodes.length !== selectedNodes.length ||\n\t\t\t\tprevExpanded !== expanded ||\n\t\t\t\tprevSelectionState !== selectionState\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setState({\n\t\t\tselectionState: this.getSelectionState()\n\t\t});\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.setState({\n\t\t\tselectionState: this.getSelectionState()\n\t\t});\n\t}\n\n\tisLeaf(): boolean {\n\t\tconst {node} = this.props;\n\t\treturn node.children === undefined;\n\t}\n\n\tgetSelectionState() {\n\t\tconst {node, selectedNodes} = this.props;\n\n\t\tif (this.isLeaf()) {\n\t\t\treturn selectedNodes.includes(node.id) ? SelectionState.ALL : SelectionState.NONE;\n\t\t} else {\n\t\t\tconst leafIds = getAllLeafIds(node);\n\t\t\tconst intersection = intersectArrays(leafIds, selectedNodes);\n\n\t\t\tif (intersection.length === leafIds.length && leafIds.length !== 0) {\n\t\t\t\treturn SelectionState.ALL;\n\t\t\t} else if (intersection.length === 0) {\n\t\t\t\treturn SelectionState.NONE;\n\t\t\t}\n\n\t\t\treturn SelectionState.SOME;\n\t\t}\n\t}\n\n\t// handle this the same way as selection?\n\ttoggleExpand: () => void = () => {\n\t\tconst {node, lazyLoadingFunction} = this.props;\n\n\t\tif (node.lazyLoadable) {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tisLoading: true\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tlazyLoadingFunction(node).then(() =>\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\texpanded: true,\n\t\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\texpanded: !this.state.expanded\n\t\t\t});\n\t\t}\n\t};\n\tonSelect: (toggled: boolean) => void = (toggled: boolean) => {\n\t\tconst {node, selectNodes, deselectNodes, selectedNodes} = this.props;\n\n\t\tif (toggled) {\n\t\t\tconst childNodes = getAllLeaves(node).filter((node) => !selectedNodes.includes(node.id));\n\t\t\tselectNodes(childNodes);\n\t\t} else {\n\t\t\tconst childNodes = getAllLeaves(node).filter((node) => selectedNodes.includes(node.id));\n\t\t\tdeselectNodes(childNodes);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {node, isLastChild, ...commonNodeProps} = this.props;\n\t\tconst {expanded, selectionState, isLoading} = this.state;\n\t\treturn (\n\t\t\t<div className=\"node\">\n\t\t\t\t<NodeInfo\n\t\t\t\t\tnode={node}\n\t\t\t\t\tdisplayName={node.name}\n\t\t\t\t\tleafNode={this.isLeaf()}\n\t\t\t\t\texpanded={expanded}\n\t\t\t\t\tisLastChild={isLastChild}\n\t\t\t\t\tonExpand={this.toggleExpand}\n\t\t\t\t\tonSelect={this.onSelect}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\tselectionState={selectionState}\n\t\t\t\t/>\n\t\t\t\t{expanded &&\n\t\t\t\t\tnode.children &&\n\t\t\t\t\tnode.children.map((childNode, i) => (\n\t\t\t\t\t\t<Node\n\t\t\t\t\t\t\t{...commonNodeProps}\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tnode={childNode}\n\t\t\t\t\t\t\tisLastChild={i === (node.children || []).length - 1}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import {Component} from 'react';\n\nimport {Tree, NodeId, DataSetConfig, SelectionItem} from './types';\nimport Node from './components/Node';\nimport {convertToTree, mergeNodeIdArrays, removeNodeIds, getTreeSize, findNodeAndApplyPatch} from './treeutils';\n\nexport type Props = {\n\t/** Configuration of keys for id, name, children, node/leaf images and lazy loading */\n\tdataSetConfig: DataSetConfig;\n\n\t/** Function executed when selecting nodes or folders */\n\tonSelect: (arg0: Array<SelectionItem>) => void;\n\n\t/** Function executed when deselecting nodes or folders */\n\tonDeselect: (arg0: Array<SelectionItem>) => void;\n\n\t/** Arbitrary hierarchical initial data set to render */\n\ttreeData: Array<any>;\n\n\t/** Array of initially selected nodes in the tree */\n\tselectedNodes?: Array<NodeId>;\n\n\t/** Function to execute on a lazy loadable node */\n\tlazyLoadingFunction?: (nodeData: any) => Promise<any>;\n};\n\ntype State = {\n\ttree: Tree;\n\ttreeData: Array<any>;\n\tselectedNodes: Array<NodeId>;\n\ttreeSize: number;\n};\n\n/**\n * TreeView adds the functionality to display \"folders\" and their content.\n * This can come in handy for several data structures.\n */\nexport default class TreeView extends Component<Props, State> {\n\tstate: State = {\n\t\ttreeData: this.props.treeData,\n\t\ttree: {\n\t\t\tid: 'virtualRootNode',\n\t\t\tname: '',\n\t\t\tchildren: [],\n\t\t\tpath: '/',\n\t\t\toriginalNode: {}\n\t\t},\n\t\ttreeSize: 0,\n\t\tselectedNodes: this.props.selectedNodes || []\n\t};\n\n\tconvert: (hierarchicalData: Array<any>, nodePath?: string) => Array<Tree> = convertToTree(this.props.dataSetConfig);\n\n\tcomponentDidMount() {\n\t\tconst {treeData} = this.props;\n\t\tconst tree = this.initTree(treeData);\n\t\tconst treeSize = getTreeSize(tree);\n\t\tthis.setState({\n\t\t\ttree,\n\t\t\ttreeSize\n\t\t});\n\t}\n\n\tcomponentDidUpdate(prevProps: Props) {\n\t\tconst {selectedNodes: prevNodes} = prevProps;\n\t\tconst {selectedNodes} = this.props;\n\n\t\tif (selectedNodes && prevNodes && prevNodes.length !== selectedNodes.length) {\n\t\t\tthis.setState({\n\t\t\t\tselectedNodes\n\t\t\t});\n\t\t}\n\t}\n\n\tinitTree(treeData: Array<any>): {\n\t\tchildren?: Array<Tree>;\n\t\tclosedImage?: string;\n\t\texpandedImage?: string;\n\t\tid: string;\n\t\timage?: string;\n\t\tlazyLoadable?: boolean;\n\t\tname: string;\n\t\toriginalNode: any;\n\t\tpath: string;\n\t} {\n\t\treturn {\n\t\t\tid: 'virtualRootNode',\n\t\t\tname: '',\n\t\t\tchildren: this.convert(treeData),\n\t\t\tpath: '/',\n\t\t\toriginalNode: {}\n\t\t};\n\t}\n\n\tselectNodes: (nodes: Array<Tree>) => void = (nodes: Array<Tree>) => {\n\t\tconst {onSelect} = this.props;\n\t\tconst {selectedNodes} = this.state;\n\t\tthis.setState({\n\t\t\tselectedNodes: mergeNodeIdArrays(\n\t\t\t\tselectedNodes,\n\t\t\t\tnodes.map(({id}) => id)\n\t\t\t)\n\t\t});\n\t\tonSelect(nodes.map(({originalNode, path}) => ({...originalNode, $$path: path})));\n\t};\n\n\tdeselectNodes: (nodes: Array<Tree>) => void = (nodes: Array<Tree>) => {\n\t\tconst {onDeselect} = this.props;\n\t\tconst {selectedNodes} = this.state;\n\t\tthis.setState({\n\t\t\tselectedNodes: removeNodeIds(\n\t\t\t\tselectedNodes,\n\t\t\t\tnodes.map(({id}) => id)\n\t\t\t)\n\t\t});\n\t\tonDeselect(nodes.map(({originalNode, path}) => ({...originalNode, $$path: path})));\n\t};\n\n\taddTreeData = (dataSet: Array<any>, underNode: Tree) => {\n\t\tconst {tree} = this.state;\n\t\tconst subTree = this.convert(dataSet, underNode.path);\n\t\tconst newTree = {\n\t\t\tid: 'virtualRootNode',\n\t\t\tname: '',\n\t\t\tchildren: (tree.children || []).map((rootNode) =>\n\t\t\t\tfindNodeAndApplyPatch(rootNode, underNode.id, {\n\t\t\t\t\tlazyLoadable: false,\n\t\t\t\t\tchildren: subTree\n\t\t\t\t})\n\t\t\t),\n\t\t\tpath: '/',\n\t\t\toriginalNode: {}\n\t\t};\n\t\tconst newTreeSize = getTreeSize(newTree);\n\t\tthis.setState({\n\t\t\ttree: newTree,\n\t\t\ttreeSize: newTreeSize\n\t\t});\n\t};\n\n\tlazyLoadingFunction: (node: Tree) => Promise<void> = (node: Tree): Promise<void> => {\n\t\tconst {lazyLoadingFunction} = this.props;\n\t\tif (!lazyLoadingFunction) return Promise.resolve();\n\t\treturn lazyLoadingFunction(node.originalNode)\n\t\t\t.then((dataSet) => {\n\t\t\t\tthis.addTreeData(dataSet, node);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\treturn Promise.resolve();\n\t\t\t});\n\t};\n\n\trender() {\n\t\tconst {tree, selectedNodes, treeSize} = this.state;\n\t\treturn (\n\t\t\t<div className=\"treeview\">\n\t\t\t\t{tree.children &&\n\t\t\t\t\ttree.children.map((item, i) => (\n\t\t\t\t\t\t<Node\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tnode={item}\n\t\t\t\t\t\t\tselectedNodes={selectedNodes}\n\t\t\t\t\t\t\tselectNodes={this.selectNodes}\n\t\t\t\t\t\t\tdeselectNodes={this.deselectNodes}\n\t\t\t\t\t\t\ttreeSize={treeSize}\n\t\t\t\t\t\t\tlazyLoadingFunction={this.lazyLoadingFunction}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3ccircle%20cx='7.5'%20cy='3.5'%20r='1.5'/%3e%3ccircle%20cx='7.5'%20cy='7.5'%20r='1.5'/%3e%3ccircle%20cx='7.5'%20cy='11.5'%20r='1.5'/%3e%3c/svg%3e\"","import * as React from 'react';\n\ntype ContextType = {\n\ttoggleMenu: () => void;\n};\n\nconst MultiMenuContext: React.Context<ContextType> = React.createContext<ContextType>({\n\ttoggleMenu: () => {}\n});\n\nexport default MultiMenuContext;\n","import {ReactNode, useState} from 'react';\nimport {Placement, Popup} from '@deviceinsight/ng-ui-basic-components';\n\nimport Context from './components/MultiMenuContext';\n\nexport type Props = {\n\t/** Enabler for the Multimenu */\n\tmenuButton: ReactNode;\n\n\t/** (Optional) if set, sets the direction in which the MultiMenu should open */\n\tdirection?: Placement;\n\n\t/** Should contain several &lt;MultiMenuItem/&gt; elements */\n\tchildren?: ReactNode;\n\n\t/** (Optional) sets additional (css) classes */\n\tclassName?: string;\n\n\t/** (Optional) if set, controls the open state of the MultiMenu */\n\topen?: boolean;\n\n\t/** (Optional) if set, is called when the open state of the MultiMenu changes */\n\tonOpenChange?: (open: boolean) => void;\n};\n\n/**\n * MultiMenu enables a toggleable menu to either show more content and further functionality.\n */\nexport default function MultiMenuFunctional({menuButton, children, direction, className, open, onOpenChange}: Props) {\n\tconst [contentVisible, setContentVisible] = useState(false);\n\n\tconst toggleMenu = () => {\n\t\tsetContentVisible(!contentVisible);\n\t};\n\n\treturn (\n\t\t<span>\n\t\t\t<Popup\n\t\t\t\topen={open ?? contentVisible}\n\t\t\t\tonOpenChange={onOpenChange ?? setContentVisible}\n\t\t\t\thandler={menuButton}\n\t\t\t\tplacement={direction}\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t<div className=\"di multimenu\">\n\t\t\t\t\t<div className={`drop ${direction ? direction : 'bottom'} ${contentVisible ? 'show' : ''}`}>\n\t\t\t\t\t\t<Context.Provider value={{toggleMenu}}>{children}</Context.Provider>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</span>\n\t);\n}\n","import * as React from 'react';\nimport {Trans} from '../../i18n';\nimport {debounce} from 'lodash';\n\nimport {Button} from '@deviceinsight/ng-ui-basic-components';\n\nimport iconSettings from '../../assets/svg/icon_menu_vertical.svg';\nimport MultiMenu from '../multiMenu/MultiMenu';\nimport {useEffect, useRef, useState} from 'react';\n\nexport type Props = {\n\t/** Current page */\n\tpage: number;\n\n\t/** Total number of pages */\n\ttotalPages: number;\n\n\t/** Function, executed when the current page changes */\n\tonChangePage: (page: number) => void;\n\n\t/** (Optional) Function, executed when the number of elements per page changes */\n\tonChangeSize?: (size: number) => void;\n\n\t/** (Optional) Number of elements per page*/\n\tsize?: number;\n};\n\nconst sizeOptions = [5, 10, 15, 20, 50];\n\n/**\n * Pagination enables a convenient way to display and navigate through a paginated search result\n */\nexport default function Pagination({onChangePage, page, totalPages, onChangeSize, size}: Props) {\n\tconst changePageDebouncedRef = useRef<typeof onChangePage | null>(null);\n\tconst {current: changePageDebounced} = changePageDebouncedRef;\n\tconst [pageRaw, setPageRaw] = useState(`${page + 1}`);\n\tconst [menuOpen, setMenuOpen] = useState(false);\n\n\tuseEffect(() => {\n\t\tchangePageDebouncedRef.current = debounce(onChangePage, 500);\n\t}, [onChangePage]);\n\n\tuseEffect(() => {\n\t\tsetPageRaw(`${page + 1}`);\n\t}, [page]);\n\n\tfunction goToFirstPage() {\n\t\tonChangePage(0);\n\t}\n\n\tfunction goToPrevPage() {\n\t\tif (page > 0) {\n\t\t\tonChangePage(page - 1);\n\t\t}\n\t}\n\n\tfunction goToNextPage() {\n\t\tif (page < totalPages - 1) {\n\t\t\tonChangePage(page + 1);\n\t\t}\n\t}\n\n\tfunction goToLastPage() {\n\t\tonChangePage(totalPages - 1);\n\t}\n\n\tfunction handleChangeSize(event: React.ChangeEvent<HTMLSelectElement>) {\n\t\tif (onChangeSize) {\n\t\t\tconst newSize = parseInt(event.target.value, 10);\n\t\t\tonChangeSize(newSize);\n\t\t\tsetMenuOpen(false);\n\t\t}\n\t}\n\n\tfunction handlePageInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n\t\tconst rawValue = event.target.value;\n\t\tif (rawValue.trim() === '') {\n\t\t\tsetPageRaw(rawValue);\n\t\t\treturn;\n\t\t}\n\t\tconst parsedPage = Number(event.target.value);\n\t\tif (!Number.isNaN(parsedPage) && parsedPage >= 1 && parsedPage <= totalPages) {\n\t\t\tchangePageDebounced?.(parsedPage - 1);\n\t\t\tsetPageRaw(rawValue);\n\t\t}\n\t}\n\n\tfunction handlePageInputBlur() {\n\t\tsetPageRaw(`${page + 1}`);\n\t}\n\n\tconst isLastPage = page >= totalPages - 1;\n\treturn (\n\t\t<div className=\"di pagination-holder\">\n\t\t\t<div className=\"di pagination\">\n\t\t\t\t<span className={`prev ${page === 0 ? 'disabled' : ''}`} onClick={goToFirstPage}>\n\t\t\t\t\t«\n\t\t\t\t</span>\n\t\t\t\t<span className={`prev ${page === 0 ? 'disabled' : ''}`} onClick={goToPrevPage}>\n\t\t\t\t\t‹\n\t\t\t\t</span>\n\t\t\t\t<span className=\"info\">\n\t\t\t\t\t<Trans i18nKey=\"reactable.pagination.page\">Page</Trans>\n\t\t\t\t\t<input value={pageRaw} onChange={handlePageInputChange} onBlur={handlePageInputBlur} />\n\n\t\t\t\t\t{typeof process !== 'undefined' && process?.env?.STORYBOOK_MODE ? (\n\t\t\t\t\t\t<>of &nbsp; {totalPages}</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Trans i18nKey=\"reactable.pagination.ofTotal\"> of &nbsp; {{totalPages}}</Trans>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t\t<span className={`next ${isLastPage ? 'disabled' : ''}`} onClick={goToNextPage}>\n\t\t\t\t\t›\n\t\t\t\t</span>\n\t\t\t\t<span className={`next ${isLastPage ? 'disabled' : ''}`} onClick={goToLastPage}>\n\t\t\t\t\t»\n\t\t\t\t</span>\n\t\t\t\t{onChangeSize && (\n\t\t\t\t\t<div className=\"options\">\n\t\t\t\t\t\t<MultiMenu\n\t\t\t\t\t\t\tdirection=\"left\"\n\t\t\t\t\t\t\topen={menuOpen}\n\t\t\t\t\t\t\tonOpenChange={setMenuOpen}\n\t\t\t\t\t\t\tmenuButton={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tnaked\n\t\t\t\t\t\t\t\t\ttitle={{\n\t\t\t\t\t\t\t\t\t\tid: 'trend.settings.buttonTitle',\n\t\t\t\t\t\t\t\t\t\tdefaultValue: 'Settings'\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img src={iconSettings} alt=\"settings icon\" style={{width: 16, height: 16}} />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"di form\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: 200,\n\t\t\t\t\t\t\t\t\tpadding: 10\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"field\">\n\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"reactable.pagination.entriesPerPage\">Entries per page</Trans>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<select onChange={handleChangeSize} value={size}>\n\t\t\t\t\t\t\t\t\t\t{sizeOptions.map((sizeOption) => (\n\t\t\t\t\t\t\t\t\t\t\t<option key={sizeOption} value={sizeOption}>\n\t\t\t\t\t\t\t\t\t\t\t\t{sizeOption}\n\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"reactable.pagination.changePageWillBeStored\">\n\t\t\t\t\t\t\t\t\t\tYour changes will be stored for view.\n\t\t\t\t\t\t\t\t\t</Trans>\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</MultiMenu>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import {useState} from 'react';\nimport * as React from 'react';\nimport {useTranslation} from '../../../i18n';\nimport {ReactableColumnDef} from '../types';\n\ntype Props = {\n\tcolumnDef: ReactableColumnDef<any>;\n\tchangeFilter: (columnName: string, value: any) => void;\n};\n\nconst getInitialValueFromColumnDef = (columnDef: ReactableColumnDef<any>) => {\n\treturn columnDef.filterable?.initialValue ?? '';\n};\n\nconst ReactableTextFilter: React.FC<Props> = ({columnDef, changeFilter}) => {\n\tconst {t} = useTranslation();\n\n\tconst [value, setValue] = useState(getInitialValueFromColumnDef(columnDef));\n\n\tconst handleChange = (event: React.SyntheticEvent<HTMLInputElement>) => {\n\t\tconst newValue = (event.target as HTMLInputElement).value;\n\t\tsetValue(newValue);\n\t\tchangeFilter(columnDef.name, newValue);\n\t};\n\n\treturn (\n\t\t<input\n\t\t\ttype=\"text\"\n\t\t\tplaceholder={t(`${columnDef.filterable?.placeholder ?? 'reactable.filter.placeholder'}`, {\n\t\t\t\tdefaultValue: 'Filter...'\n\t\t\t})}\n\t\t\tonChange={handleChange}\n\t\t\tvalue={value}\n\t\t/>\n\t);\n};\n\nexport default ReactableTextFilter;\n","import {Checkbox} from '@deviceinsight/ng-ui-basic-components';\n\nimport {Pageable, Sort, PaginationSettings} from '../../../types/pagination';\nimport {ReactableColumnDef, ReactableFilterSettings} from '../types';\n\nexport function makePageable<T>(\n\titems: Array<T> | null | undefined,\n\tpaginationSettings: PaginationSettings,\n\tcustomSortFunction:\n\t\t| ((items: Array<T>, sort: Sort, defaultSortItems: (items: Array<T>, sort: Sort) => Array<T>) => Array<T>)\n\t\t| null\n\t\t| undefined\n): Pageable<T> | null | undefined {\n\tif (!items) {\n\t\treturn null;\n\t}\n\n\tconst {page, size, sort} = paginationSettings;\n\tconst sortedItems = customSortFunction ? customSortFunction(items, sort, sortItems) : sortItems(items, sort);\n\treturn {\n\t\tcontent: sortedItems.slice(page * size, (page + 1) * size),\n\t\ttotalElements: items.length,\n\t\ttotalPages: Math.ceil(items.length / size),\n\t\tnumber: page,\n\t\tsize,\n\t\tsort: [sort]\n\t};\n}\n\nconst getDefaultFilterFn = (filterType: string, fieldName: string) => {\n\tif (filterType === 'text') {\n\t\treturn (item: any, filterValue: string) =>\n\t\t\titem[fieldName] && item[fieldName].toString().toLowerCase().includes(filterValue.toLowerCase());\n\t} else {\n\t\treturn (item: any, filterValue: string) => item[fieldName] === filterValue;\n\t}\n};\n\nexport function filterItems<T>(\n\titems: Array<T> | null | undefined,\n\tcolumnDefs: Array<ReactableColumnDef<any>>,\n\tfilterSettings: ReactableFilterSettings\n): Array<T> | null | undefined {\n\tif (items) {\n\t\treturn items.filter((item) => {\n\t\t\treturn Object.keys(filterSettings).every((columnName) => {\n\t\t\t\tconst filterValue = filterSettings[columnName];\n\n\t\t\t\tif (filterValue && filterValue.length > 0) {\n\t\t\t\t\tconst columnDef = findColumnDefByName(columnName, columnDefs);\n\n\t\t\t\t\tif (columnDef.filterable) {\n\t\t\t\t\t\tconst filterFn =\n\t\t\t\t\t\t\tcolumnDef.filterable.filterFn ||\n\t\t\t\t\t\t\tgetDefaultFilterFn(columnDef.filterable.filterType, columnDef.name);\n\t\t\t\t\t\treturn filterFn(item as any, filterValue);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t});\n\t\t});\n\t}\n\n\treturn null;\n}\n\nfunction findColumnDefByName(columnName: string, columnDefs: Array<ReactableColumnDef<any>>): ReactableColumnDef<any> {\n\tconst columnDef = columnDefs.find((cd) => cd.name === columnName);\n\n\tif (!columnDef) {\n\t\tthrow Error(`column definition not found for ${columnName}`);\n\t}\n\n\treturn columnDef;\n}\n\nexport function sortItems<T>(items: Array<T>, sort: Sort): Array<T> {\n\treturn items.sort((itemA: T, itemB: T) => {\n\t\tconst a = (typeof itemA === 'object' && (itemA as Record<string, unknown>)?.[sort.property]) || 0;\n\t\tconst b = (typeof itemB === 'object' && (itemB as Record<string, unknown>)?.[sort.property]) || 0;\n\t\tconst reverseFactor = sort.direction === 'ASC' ? 1 : -1;\n\n\t\tif (a === b) {\n\t\t\treturn 0;\n\t\t} else if (typeof a === 'string' && typeof b === 'string') {\n\t\t\treturn a.localeCompare(b) * reverseFactor;\n\t\t} else if (typeof a === 'number' && typeof b === 'number') {\n\t\t\treturn (a - b) * reverseFactor;\n\t\t} else {\n\t\t\treturn a.toString().localeCompare(b.toString()) * reverseFactor;\n\t\t}\n\t});\n}\n\nexport function extendColumnDefsWithCheckboxes<T>(\n\tcolumnDefs: Array<ReactableColumnDef<T>>,\n\tonSelectChange: (selected: boolean, item: T) => void,\n\tonSelectAllChange: (selected: boolean) => void,\n\tselectedAll: boolean,\n\tselectedItems: Array<any>,\n\tuniqueItemKey: (arg0: T) => any\n): Array<ReactableColumnDef<T>> {\n\treturn [\n\t\t{\n\t\t\tname: 'checkbox',\n\t\t\tlabel: (\n\t\t\t\t<Checkbox\n\t\t\t\t\tvalue={selectedAll}\n\t\t\t\t\tonChange={onSelectAllChange}\n\t\t\t\t\ttitle={{\n\t\t\t\t\t\tid: 'components.filtertable.selectAllItems',\n\t\t\t\t\t\tdefaultValue: 'Select/deselect all items in search result'\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tsortable: false,\n\t\t\trender: (item: T) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tvalue={selectedItems.includes(uniqueItemKey(item))}\n\t\t\t\t\t\tonChange={(selected) => onSelectChange(selected, item)}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t\twidth: '1%'\n\t\t},\n\t\t...columnDefs\n\t];\n}\n\nexport function getClassName(tableName: string | undefined, columnName: string): string {\n\treturn `${tableName || 'unnamedTable'}-${columnName}`;\n}\n","import {createRef, Component} from 'react';\nimport Select from 'react-select';\nimport {orderBy, isEqual} from 'lodash';\n\nimport './react-select.css';\nimport './react-select-custom.css';\n\nexport type Item = {\n\ttype: 'item';\n\tvalue: string;\n\tlabel: string;\n};\n\nexport type Group = {\n\ttype: 'group';\n\tlabel: string;\n\toptions: Array<Item>;\n};\n\nexport type Props = {\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: Item | null | undefined;\n\n\t/** Function, executed when selecting value */\n\tonChange: (arg0: Item | null | undefined) => void;\n\n\t/** Array of select options values */\n\toptions: Array<Item> | Array<Group>;\n\n\t/** Array of special select options values */\n\tspecialOptions?: Array<Item> | null | undefined;\n\n\t/** Message displayed when no results found by search feature */\n\tnoResultsMessage?: string;\n\n\t/** Placeholder */\n\tplaceholder?: string;\n\n\t/** Clearable */\n\tclearable?: boolean;\n\n\t/** Loading */\n\tloading?: boolean;\n\n\t/** Function comparing two options - used for sorting */\n\tcompareOptions?: (value1: Item, value2: Item) => number;\n\n\t/** (Optional) Whether the menu should use a portal, and where it should attach */\n\tmenuPortalTarget?: HTMLElement;\n\n\t/** (Optional) indicates if the component is disabled or not */\n\tdisabled?: boolean;\n\n\t/** Enables free-form input mode */\n\tfreeForm?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\ntype State = {\n\toptions: Array<Item> | Array<Group>;\n\tinputValue: string | null;\n};\n\nfunction getSortedOptions(\n\toptions: Array<Item> | Array<Group>,\n\tcompareOptions?: (value1: Item, value2: Item) => number\n): Array<Item> | Array<Group> {\n\tif (!compareOptions) {\n\t\t// @ts-ignore\n\t\treturn orderBy(options, 'label', 'asc');\n\t}\n\n\t// @ts-ignore\n\tif (options.every((option: any) => !option.options)) {\n\t\tconst singleOptions = options as Array<Item>;\n\t\treturn [...singleOptions].sort(compareOptions);\n\t}\n\n\t// @ts-ignore\n\tif (options.every((option) => option.options)) {\n\t\tconst groupOptions: Array<Group> = options as any;\n\t\treturn groupOptions.map<Group>((option) => ({...option, options: [...option.options].sort(compareOptions)}));\n\t}\n\n\tthrow new Error('Mixing groups with single options not allowed');\n}\n\n/**\n * SelectWithSearch enhances a native select list by applying a search functionality to it.\n * Additional entries can be added by setting and adjusting `specialOptions`\n */\nexport default class SelectWithSearch extends Component<Props, State> {\n\tstate: State = {\n\t\toptions: [] as Array<Item>,\n\t\tinputValue: null\n\t};\n\tselectRef: {\n\t\tcurrent: any | null;\n\t} = createRef<typeof Select>();\n\n\tportalRoot: HTMLElement | null = null;\n\n\tcomponentDidMount() {\n\t\tthis.updateOptions();\n\n\t\tif (this.props['data-testid'] && this.selectRef && this.selectRef.current) {\n\t\t\tthis.selectRef.current.controlRef.setAttribute('data-testid', this.props['data-testid']);\n\t\t}\n\n\t\tif (this.props.menuPortalTarget) {\n\t\t\tthis.portalRoot = document.createElement('div');\n\t\t\tconst classes = this.getContainerClasses();\n\t\t\tthis.portalRoot.classList.add(...classes);\n\t\t\tthis.props.menuPortalTarget.appendChild(this.portalRoot);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps: Props) {\n\t\tif (!isEqual(prevProps.options, this.props.options) || prevProps.freeForm !== this.props.freeForm) {\n\t\t\tthis.updateOptions();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.props.menuPortalTarget && this.portalRoot) {\n\t\t\tthis.props.menuPortalTarget.removeChild(this.portalRoot);\n\t\t}\n\t}\n\n\tupdateOptions: () => void = () => {\n\t\tconst {options, specialOptions, compareOptions} = this.props;\n\t\tconst sortedOptions = getSortedOptions(options, compareOptions);\n\n\t\tif (specialOptions) {\n\t\t\tthis.setState({\n\t\t\t\t// @ts-ignore\n\t\t\t\toptions: [...sortedOptions, ...specialOptions]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\toptions: sortedOptions\n\t\t\t});\n\t\t}\n\t};\n\n\tfilterOption = (option: Item, inputValue: string): boolean => {\n\t\treturn option.label.toString().toLowerCase().startsWith(inputValue.toLowerCase());\n\t};\n\n\tgetContainerClasses = () => {\n\t\tconst {specialOptions} = this.props;\n\t\tif (specialOptions) {\n\t\t\treturn ['select-search-container', 'special'];\n\t\t}\n\t\treturn ['select-search-container'];\n\t};\n\n\trender() {\n\t\tconst {noResultsMessage, placeholder, value, onChange, clearable, loading, disabled} = this.props;\n\t\tconst {options} = this.state;\n\t\treturn (\n\t\t\t<Select\n\t\t\t\tref={this.selectRef}\n\t\t\t\tjoinValues\n\t\t\t\tname=\"form-field-name\"\n\t\t\t\tclassName={this.getContainerClasses().join(' ')}\n\t\t\t\tclassNamePrefix=\"select-search\"\n\t\t\t\tisClearable={clearable}\n\t\t\t\tnoOptionsMessage={noResultsMessage ? () => noResultsMessage : undefined}\n\t\t\t\toptions={options}\n\t\t\t\tvalue={value || null}\n\t\t\t\tonChange={onChange}\n\t\t\t\tonInputChange={(newValue) => {\n\t\t\t\t\tif (this.props.freeForm && newValue) {\n\t\t\t\t\t\tthis.setState({inputValue: newValue});\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\t// @ts-ignore\n\t\t\t\tfilterOption={this.filterOption}\n\t\t\t\tisLoading={loading}\n\t\t\t\tmenuPortalTarget={this.portalRoot}\n\t\t\t\tisDisabled={disabled}\n\t\t\t\tonBlur={() => {\n\t\t\t\t\tif (this.props.freeForm && this.state.inputValue !== null) {\n\t\t\t\t\t\tthis.setState({options: this.props.options});\n\t\t\t\t\t\tthis.setState({inputValue: this.state.inputValue}, () => {\n\t\t\t\t\t\t\tconst newItem: Item = {\n\t\t\t\t\t\t\t\ttype: 'item',\n\t\t\t\t\t\t\t\tvalue: this.state.inputValue!,\n\t\t\t\t\t\t\t\tlabel: this.state.inputValue!\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis.setState(\n\t\t\t\t\t\t\t\t(prevState) =>\n\t\t\t\t\t\t\t\t\t({\n\t\t\t\t\t\t\t\t\t\toptions: [newItem, ...prevState.options]\n\t\t\t\t\t\t\t\t\t}) as Pick<State, 'options'>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthis.state.inputValue = null;\n\t\t\t\t\t\t\tonChange(newItem);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n}\n","import {useEffect, useRef, useState} from 'react';\nimport * as React from 'react';\nimport {useTranslation} from '../../../i18n';\nimport {ReactableColumnDef, ReactableFilterSettings} from '../types';\nimport ReactableTextFilter from './ReactableTextFilter';\nimport {getClassName} from './helper';\nimport SelectWithSearch from '../../input/SelectWithSearch';\n\ntype Props = {\n\tcolumnDefs: Array<ReactableColumnDef<any>>;\n\tonFilter: (filterColumns: ReactableFilterSettings) => void;\n\ttableName?: string;\n};\nconst ReactableTableFilterRow: React.FC<Props> = ({columnDefs, onFilter, tableName}) => {\n\tconst {t} = useTranslation();\n\n\tconst [state, setState] = useState<Record<string, string>>({});\n\tconst onFilterRef = useRef(onFilter);\n\n\tuseEffect(() => {\n\t\tonFilterRef.current = onFilter;\n\t}, [onFilter]);\n\n\tuseEffect(() => {\n\t\tsetState((prev) => {\n\t\t\tconst merged: Record<string, string> = {};\n\t\t\tfor (const cd of columnDefs) {\n\t\t\t\tmerged[cd.name] = prev[cd.name] !== undefined ? prev[cd.name] : (cd.filterable?.initialValue ?? '');\n\t\t\t}\n\n\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\tconst mergedKeys = Object.keys(merged);\n\t\t\tconst sameKeys = mergedKeys.length === prevKeys.length && mergedKeys.every((k) => prevKeys.includes(k));\n\t\t\tconst sameValues = sameKeys && mergedKeys.every((k) => merged[k] === prev[k]);\n\n\t\t\tif (sameKeys && sameValues) {\n\t\t\t\treturn prev; // no change\n\t\t\t}\n\n\t\t\tif (Object.values(merged).some((v) => v)) {\n\t\t\t\tonFilterRef.current(merged);\n\t\t\t}\n\n\t\t\treturn merged;\n\t\t});\n\t}, [columnDefs]);\n\n\tconst changeFilter = (columnName: string, value: any) => {\n\t\tconst newState = {...state, [columnName]: value};\n\t\tsetState(newState);\n\t\tonFilter(newState);\n\t};\n\n\tconst getFilterByColumnDef = (columnDef: ReactableColumnDef<any>): React.ReactElement<any> | null => {\n\t\tif (columnDef.filterable) {\n\t\t\tswitch (columnDef.filterable.filterType) {\n\t\t\t\tcase 'text':\n\t\t\t\t\treturn textFilter(columnDef);\n\n\t\t\t\tcase 'options':\n\t\t\t\t\treturn optionsFilter(columnDef);\n\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Filter type ${columnDef.filterable.filterType} not supported`);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst textFilter = (columnDef: ReactableColumnDef<any>): React.ReactElement => {\n\t\treturn <ReactableTextFilter columnDef={columnDef} changeFilter={changeFilter} />;\n\t};\n\n\tconst optionsFilter = (columnDef: ReactableColumnDef<any>): React.ReactElement => {\n\t\tif (!columnDef.filterable?.filterOptions) {\n\t\t\tthrow new Error(`No filterOptions found for column type: options on columnDef: ${columnDef.name}`);\n\t\t}\n\n\t\tconst filterOptions = columnDef.filterable.filterOptions;\n\t\tif (columnDef.filterable.searchableOptions) {\n\t\t\tconst searchableOptions = filterOptions.map((option) => ({\n\t\t\t\ttype: 'item' as const,\n\t\t\t\tlabel:\n\t\t\t\t\ttypeof option.label === 'string'\n\t\t\t\t\t\t? option.label\n\t\t\t\t\t\t: t(option.label.id, {defaultValue: option.label.defaultValue}),\n\t\t\t\tvalue: option.value\n\t\t\t}));\n\t\t\tconst value = state[columnDef.name];\n\n\t\t\treturn (\n\t\t\t\t<SelectWithSearch\n\t\t\t\t\toptions={searchableOptions}\n\t\t\t\t\tonChange={(item) => {\n\t\t\t\t\t\tchangeFilter(columnDef.name, item?.value);\n\t\t\t\t\t}}\n\t\t\t\t\tvalue={value ? searchableOptions.find((opt) => opt.value === value.toString()) : null}\n\t\t\t\t\tclearable\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<select\n\t\t\t\t\tonChange={(event: React.ChangeEvent<HTMLSelectElement>) => {\n\t\t\t\t\t\tchangeFilter(columnDef.name, event.target.value);\n\t\t\t\t\t}}\n\t\t\t\t\tvalue={state[columnDef.name]}\n\t\t\t\t>\n\t\t\t\t\t<option key=\"\" value=\"\">\n\t\t\t\t\t\t{t('reactable.filter.all', {\n\t\t\t\t\t\t\tdefaultValue: '- All -'\n\t\t\t\t\t\t})}\n\t\t\t\t\t</option>\n\t\t\t\t\t{filterOptions.map((option) => (\n\t\t\t\t\t\t<option\n\t\t\t\t\t\t\tclassName={getClassName(tableName, columnDef.name)}\n\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\tvalue={option.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{typeof option.label === 'string'\n\t\t\t\t\t\t\t\t? option.label\n\t\t\t\t\t\t\t\t: t(option.label.id, {defaultValue: option.label.defaultValue})}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t))}\n\t\t\t\t</select>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<tr className=\"di filterrow form\">\n\t\t\t{columnDefs.map((columnDef) => (\n\t\t\t\t<td key={columnDef.name} style={{textAlign: columnDef.align || 'left'}}>\n\t\t\t\t\t{getFilterByColumnDef(columnDef)}\n\t\t\t\t</td>\n\t\t\t))}\n\t\t</tr>\n\t);\n};\n\nexport default ReactableTableFilterRow;\n","import {Component} from 'react';\nimport {Trans} from '../../../i18n';\n\nimport {ReactableColumnDef, ReactableColumnLabel} from '../types';\nimport {PaginationSettings, SortDirection} from '../../../types/pagination';\nimport {getClassName} from './helper';\nimport {TranslationDescriptor} from '../../../types/i18n';\n\nconst toggleSortDirection = (direction: SortDirection): SortDirection => (direction === 'ASC' ? 'DESC' : 'ASC');\n\ntype Props = {\n\tcolumnDefs: Array<ReactableColumnDef<any>>;\n\tpaginationSettings: PaginationSettings;\n\tonSort: (property: string, direction: SortDirection) => void;\n\ttableName?: string;\n};\n\nexport default class ReactableTableHeader extends Component<Props> {\n\thandleSort: (columnDef: ReactableColumnDef<unknown>) => void = (columnDef: ReactableColumnDef<any>) => {\n\t\tconst {paginationSettings, onSort} = this.props;\n\t\tconst direction =\n\t\t\tcolumnDef.name === paginationSettings.sort.property\n\t\t\t\t? toggleSortDirection(paginationSettings.sort.direction)\n\t\t\t\t: columnDef.defaultSortDirection || 'ASC';\n\t\tonSort(columnDef.name, direction);\n\t};\n\n\tgetClassName = (columnDef: ReactableColumnDef<any>) => {\n\t\tconst {paginationSettings, tableName} = this.props;\n\t\tconst className = getClassName(tableName, columnDef.name);\n\n\t\tif (columnDef.sortable) {\n\t\t\tif (columnDef.name === paginationSettings.sort.property) {\n\t\t\t\tif (paginationSettings.sort.direction === 'ASC') {\n\t\t\t\t\treturn `${className} sortable sortAsc`;\n\t\t\t\t} else {\n\t\t\t\t\treturn `${className} sortable sortDes`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn `${className} sortable`;\n\t\t\t}\n\t\t} else {\n\t\t\treturn `${className}`;\n\t\t}\n\t};\n\n\tprintLabel = (label: ReactableColumnLabel) => {\n\t\tif (isTranslationDescriptor(label)) {\n\t\t\treturn <Trans i18nKey={label.id}>{label.defaultValue}</Trans>;\n\t\t}\n\n\t\treturn label;\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<tr>\n\t\t\t\t{this.props.columnDefs.map((columnDef) => (\n\t\t\t\t\t<th\n\t\t\t\t\t\tkey={columnDef.name}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: columnDef.width || 'auto',\n\t\t\t\t\t\t\ttextAlign: columnDef.align || 'left'\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={this.getClassName(columnDef)}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (columnDef.sortable) {\n\t\t\t\t\t\t\t\tthis.handleSort(columnDef);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.printLabel(columnDef.label)}\n\t\t\t\t\t</th>\n\t\t\t\t))}\n\t\t\t</tr>\n\t\t);\n\t}\n}\n\nfunction isTranslationDescriptor(label: unknown): label is TranslationDescriptor {\n\treturn typeof label === 'object' && label != null && 'id' in label && label.id !== undefined;\n}\n","import {Component} from 'react';\n\nimport {ReactableColumnDef, ReactableRowDef} from '../types';\nimport {getClassName} from './helper';\n\ntype Props<T> = {\n\tcolumnDefs: Array<ReactableColumnDef<T>>;\n\titem: T;\n\trowDef: ReactableRowDef<T> | null | undefined;\n\ttableName?: string;\n};\n\nexport default class ReactableTableRow extends Component<Props<any>> {\n\tgetRowClass = () => {\n\t\tconst {rowDef, item} = this.props;\n\n\t\tif (rowDef && typeof rowDef.getRowClass === 'function') {\n\t\t\treturn rowDef.getRowClass(item);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t};\n\n\thandleClick = () => {\n\t\tconst {rowDef, item} = this.props;\n\n\t\tif (rowDef && typeof rowDef.onClick === 'function') {\n\t\t\trowDef.onClick(item);\n\t\t}\n\t};\n\n\tgetTooltip = () => {\n\t\tconst {rowDef, item} = this.props;\n\n\t\tif (rowDef && typeof rowDef.getTooltip === 'function') {\n\t\t\treturn rowDef.getTooltip(item);\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t};\n\n\tgetRowStyle = () => {\n\t\tconst {rowDef, item} = this.props;\n\n\t\tif (rowDef && rowDef.getRowStyle) {\n\t\t\treturn rowDef.getRowStyle(item);\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {columnDefs, item, tableName} = this.props;\n\t\treturn (\n\t\t\t<tr\n\t\t\t\tclassName={this.getRowClass()}\n\t\t\t\tonClick={this.handleClick}\n\t\t\t\ttitle={this.getTooltip()}\n\t\t\t\tstyle={this.getRowStyle()}\n\t\t\t>\n\t\t\t\t{columnDefs.map((columnDef) => {\n\t\t\t\t\tconst textAlign = columnDef.align || 'left';\n\t\t\t\t\tconst cursor = columnDef.onClick ? 'pointer' : 'inherit';\n\t\t\t\t\tconst whiteSpace = columnDef.whiteSpace || undefined;\n\t\t\t\t\tconst onClick = columnDef.onClick\n\t\t\t\t\t\t? () => (columnDef.onClick ? columnDef.onClick(item) : undefined)\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tkey={`${item.id}_${columnDef.name}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\t\tcursor,\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\twhiteSpace\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\t\tclassName={getClassName(tableName, columnDef.name)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{columnDef.render(item)}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</tr>\n\t\t);\n\t}\n}\n","import cx from 'classnames';\nimport {useEffect, useRef, useState} from 'react';\nimport {Trans} from '../../../i18n';\n\nimport {readAccountObject, writeAccountObject} from '@deviceinsight/ng-ui-api-client';\nimport {Button, Modal, SpinnerContainer} from '@deviceinsight/ng-ui-basic-components';\nimport {Pageable, PaginationSettings, SortDirection} from '../../../types/pagination';\nimport {ReactableColumnDef, ReactableFilterSettings, ReactableRowDef} from '../types';\nimport ReactableTableFilterRow from './ReactableTableFilterRow';\nimport ReactableTableHeader from './ReactableTableHeader';\nimport ReactableTableRow from './ReactableTableRow';\n\ntype Props<T, ID extends string | number | undefined | null> = {\n\tcolumnDefs: ReactableColumnDef<T>[];\n\tuniqueItemKey: (item: T) => ID;\n\tpaginationSettings: PaginationSettings;\n\tonSort: (property: string, direction: SortDirection) => void;\n\tonFilter?: (filterSettings: ReactableFilterSettings) => void;\n\ttableName?: string;\n\tpageable?: Pageable<T> | null;\n\tisLoading: boolean;\n\trowDef?: ReactableRowDef<T>;\n\tclickable?: boolean;\n\tmessageWhenEmpty?: string;\n\t'data-testid'?: string;\n};\n\nexport default function ReactableTable<T, ID extends string | number | undefined | null>({\n\tcolumnDefs,\n\tuniqueItemKey,\n\tpaginationSettings,\n\tonSort,\n\tonFilter,\n\ttableName,\n\tpageable,\n\tisLoading,\n\trowDef,\n\tclickable,\n\tmessageWhenEmpty,\n\t'data-testid': testId\n}: Props<T, ID>) {\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\tconst tableRef = useRef<HTMLTableElement | null>(null);\n\tconst [showScrollingAdvice, setShowScrollingAdvice] = useState(false);\n\tconst [neverShowScrollingAdvice, setNeverShowScrollingAdvice] = useState(true);\n\tconst [hasInitialized, setHasInitialized] = useState(false);\n\tconst HIDE_SCROLLING_ADVICE_PATH = 'uiConfigurations/nevershowscrollingadvice';\n\tconst LOCALSTORAGE_KEY = 'reactable.neverShowScrollingAdvice';\n\tconst neverShowScrollingAdviceRef = useRef(neverShowScrollingAdvice);\n\n\tuseEffect(() => {\n\t\tneverShowScrollingAdviceRef.current = neverShowScrollingAdvice;\n\t}, [neverShowScrollingAdvice]);\n\n\tconst updateScrollingAdvice = () => {\n\t\tif (containerRef.current && tableRef.current) {\n\t\t\tsetShowScrollingAdvice(\n\t\t\t\t!neverShowScrollingAdviceRef.current && tableRef.current.scrollWidth > containerRef.current.offsetWidth\n\t\t\t);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeout(() => {\n\t\t\t(async () => {\n\t\t\t\t// First check localStorage for immediate feedback\n\t\t\t\tconst localValue = localStorage.getItem(LOCALSTORAGE_KEY);\n\t\t\t\tconst hasLocalValue = localValue !== null;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst value = await readAccountObject(HIDE_SCROLLING_ADVICE_PATH);\n\t\t\t\t\tconst neverShow = value === true;\n\t\t\t\t\tsetNeverShowScrollingAdvice(neverShow);\n\t\t\t\t\tneverShowScrollingAdviceRef.current = neverShow;\n\t\t\t\t\t// Sync localStorage with server value\n\t\t\t\t\tlocalStorage.setItem(LOCALSTORAGE_KEY, String(neverShow));\n\t\t\t\t\tif (!neverShow) {\n\t\t\t\t\t\tupdateScrollingAdvice();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// On network error, fall back to localStorage\n\t\t\t\t\tif (hasLocalValue) {\n\t\t\t\t\t\tconst neverShow = localValue === 'true';\n\t\t\t\t\t\tsetNeverShowScrollingAdvice(neverShow);\n\t\t\t\t\t\tneverShowScrollingAdviceRef.current = neverShow;\n\t\t\t\t\t\tif (!neverShow) {\n\t\t\t\t\t\t\tupdateScrollingAdvice();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No localStorage value - this is a truly new user, show the advice\n\t\t\t\t\t\tsetNeverShowScrollingAdvice(false);\n\t\t\t\t\t\tneverShowScrollingAdviceRef.current = false;\n\t\t\t\t\t\tupdateScrollingAdvice();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetHasInitialized(true);\n\t\t\t})();\n\t\t}, 0);\n\t}, []);\n\n\tuseEffect(() => {\n\t\t// eslint-disable-next-line react-hooks/set-state-in-effect\n\t\tupdateScrollingAdvice();\n\t\twindow.addEventListener('resize', updateScrollingAdvice);\n\t\treturn () => window.removeEventListener('resize', updateScrollingAdvice);\n\t}, [pageable, columnDefs]);\n\n\tconst showFilterRow = columnDefs.some((col) => col.filterable);\n\n\treturn (\n\t\t<SpinnerContainer show={isLoading}>\n\t\t\t<div ref={containerRef} className=\"di reactable scroll-x\">\n\t\t\t\t{hasInitialized && showScrollingAdvice && !isLoading && (\n\t\t\t\t\t<Modal\n\t\t\t\t\t\tclassName=\"scroll-horizontally-advice\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Trans i18nKey=\"reactable.scrollHorizontally.advice\">\n\t\t\t\t\t\t\t\t\tSHIFT + mouse wheel to scroll horizontally\n\t\t\t\t\t\t\t\t</Trans>\n\t\t\t\t\t\t\t\t<div className=\"scroll-horizontally-advice-buttons\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tprimary\n\t\t\t\t\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\t\t\t\t\tawait writeAccountObject(HIDE_SCROLLING_ADVICE_PATH, true);\n\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(LOCALSTORAGE_KEY, 'true');\n\t\t\t\t\t\t\t\t\t\t\tsetNeverShowScrollingAdvice(true);\n\t\t\t\t\t\t\t\t\t\t\tneverShowScrollingAdviceRef.current = true;\n\t\t\t\t\t\t\t\t\t\t\tsetShowScrollingAdvice(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"reactable.scrollHorizontally.neverShowAgain\">\n\t\t\t\t\t\t\t\t\t\t\tNever show again\n\t\t\t\t\t\t\t\t\t\t</Trans>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<Button onClick={() => setShowScrollingAdvice(false)}>\n\t\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"reactable.scrollHorizontally.ok\">OK</Trans>\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\twidth={'40%'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<table\n\t\t\t\t\tref={tableRef}\n\t\t\t\t\tclassName={cx('di reactable sortable hoverable', {selectable: clickable})}\n\t\t\t\t\tdata-testid={testId}\n\t\t\t\t>\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<ReactableTableHeader\n\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\tpaginationSettings={paginationSettings}\n\t\t\t\t\t\t\tonSort={onSort}\n\t\t\t\t\t\t\ttableName={tableName}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{onFilter && showFilterRow && (\n\t\t\t\t\t\t\t<ReactableTableFilterRow\n\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\tonFilter={onFilter}\n\t\t\t\t\t\t\t\ttableName={tableName}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{pageable?.content.length\n\t\t\t\t\t\t\t? pageable.content\n\t\t\t\t\t\t\t\t\t.slice(0, paginationSettings.size)\n\t\t\t\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t\t\t\t<ReactableTableRow\n\t\t\t\t\t\t\t\t\t\t\tkey={uniqueItemKey(item)}\n\t\t\t\t\t\t\t\t\t\t\tcolumnDefs={columnDefs}\n\t\t\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\t\t\trowDef={rowDef}\n\t\t\t\t\t\t\t\t\t\t\ttableName={tableName}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t: !isLoading && (\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td colSpan={columnDefs.length}>\n\t\t\t\t\t\t\t\t\t\t\t<Trans i18nKey={messageWhenEmpty ?? 'reactable.noEntriesFound'}>\n\t\t\t\t\t\t\t\t\t\t\t\tNo entries found\n\t\t\t\t\t\t\t\t\t\t\t</Trans>\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</SpinnerContainer>\n\t);\n}\n","import {Component} from 'react';\n\nimport Pagination from '../pagination/Pagination';\nimport ReactableTable from './helpers/ReactableTable';\nimport {ReactableColumnDef, ReactableRowDef, ReactableFilterSettings} from './types';\nimport {Pageable, PaginationSettings, SortDirection} from '../../types/pagination';\n\nexport type Props<T, ID extends string | number | undefined | null = any> = {\n\t/** Array of column definitions, each column can be configured independently */\n\tcolumnDefs: Array<ReactableColumnDef<T>>;\n\n\t/** Function, sets identifier for each element in Reactable */\n\tuniqueItemKey: (item: T) => ID;\n\n\t/** Settings for paginated content */\n\tpaginationSettings: PaginationSettings;\n\n\t/** Function, executed if the current page changes */\n\tonChangePage: (page: number) => void;\n\n\t/** Function, executed if sorting changes */\n\tonSort: (property: string, direction: SortDirection) => void;\n\n\t/** (Optional) function, executed if the page size changes */\n\tonChangeSize?: (size: number) => void;\n\n\t/** (Optional) function, executed if the Reactable gets filtered */\n\tonFilter?: (filterSettings: ReactableFilterSettings) => void;\n\n\t/** (Optional) name of the table */\n\ttableName?: string;\n\n\t/** Content, totalElements, totalPages, number, size, sort */\n\tpageable: Pageable<T> | null | undefined;\n\n\t/** (Optional) can set custom event handler and/or functions in general */\n\trowDef?: ReactableRowDef<T>;\n\n\t/** It true, shows loading indicator */\n\tisLoading: boolean;\n\n\t/** (Optional) if true, makes rows clickable */\n\tclickable?: boolean;\n\n\t/** (Optional) shown message when the table is empty */\n\tmessageWhenEmpty?: string;\n\n\t'data-testid'?: string;\n};\n\n/**\n * Reactable displays paginated results nicely, while adding the possibility to add further functionality to each row.\n * Each column can also be extended to be sortable and/or filterable\n */\nexport default class Reactable<T = any, ID extends string | number | undefined | null = any> extends Component<\n\tProps<T, ID>\n> {\n\tcomponentDidUpdate() {\n\t\tconst {pageable, paginationSettings, onChangePage} = this.props;\n\n\t\tif (!pageable) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst totalPages = pageable.totalPages || 0;\n\t\tconst currentPage = paginationSettings.page;\n\t\tconst clampedPage = totalPages > 0 ? Math.min(currentPage, totalPages - 1) : 0;\n\n\t\tif (currentPage !== clampedPage) {\n\t\t\tonChangePage(clampedPage);\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {paginationSettings, pageable, onChangePage, onChangeSize} = this.props;\n\t\tconst showPagination = onChangeSize\n\t\t\t? pageable && pageable.totalElements > 0\n\t\t\t: pageable && pageable.totalPages > 1;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<ReactableTable<T, ID> {...this.props} />\n\t\t\t\t{pageable && showPagination && (\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tpage={paginationSettings.page}\n\t\t\t\t\t\ttotalPages={pageable.totalPages}\n\t\t\t\t\t\tonChangePage={onChangePage}\n\t\t\t\t\t\tonChangeSize={onChangeSize}\n\t\t\t\t\t\tsize={paginationSettings.size}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import {Component} from 'react';\nimport {isEqual, difference, uniqWith} from 'lodash';\n\nimport {Pageable, PaginationSettings, Sort, SortDirection} from '../../types/pagination';\nimport Reactable from '../reactable/Reactable';\nimport {ReactableColumnDef, ReactableRowDef, ReactableFilterSettings} from '../reactable/types';\nimport {extendColumnDefsWithCheckboxes, filterItems, makePageable} from '../reactable/helpers/helper';\n\nexport type Props<T, ID extends string | number | undefined | null = any> = {\n\t/** Array of column definitions, each column can be configured independently */\n\tcolumnDefs: Array<ReactableColumnDef<T>>;\n\n\t/** (Optional) can set custom event handler and/or functions in general */\n\trowDef?: ReactableRowDef<T>;\n\n\t/** Function, sets identifier for each element in Reactable */\n\tuniqueItemKey: (arg0: T) => ID;\n\n\t/**\n\t * (Deprecated) This property will be removed in the future release, use paginationSettings instead\n\t * @deprecated\n\t */\n\tinitialPaginationSettings?: PaginationSettings;\n\n\t/** (Optional) settings for paginated content */\n\tpaginationSettings?: PaginationSettings;\n\t// todo make required when initialPaginationSettings will be removed\n\n\t/** Array of elements */\n\titems: Array<T> | null | undefined;\n\n\t/** It true, shows loading indicator */\n\tisLoading: boolean;\n\n\t/** (Optional) sets custom sort function */\n\tcustomSortFunction?: (\n\t\titems: Array<T>,\n\t\tsort: Sort,\n\t\tdefaultSortItems: (items: Array<T>, sort: Sort) => Array<T>\n\t) => Array<T>;\n\n\t/** (Optional) if set, resets pagination to initial state if items change */\n\tforceResetPaginationOnItemsChange?: boolean;\n\n\t/** (Optional) Function, executed on filter */\n\tonFilter?: (filterSettings: ReactableFilterSettings) => void;\n\n\t/** (Optional) Function, executed on content change */\n\tonContentChange?: (content: Array<T>) => void;\n\n\t/** (Optional) Function, executed if filtered items change */\n\tonFilteredItemsChanged?: (filteredItems: Array<T>) => void;\n\n\t/** (Optional) name of the table */\n\ttableName?: string;\n\n\t/** (Optional) if true, makes rows clickable */\n\tclickable?: boolean;\n\n\t/** If equals *true* additional column with checkboxes is rendered */\n\tselectable?: boolean;\n\n\t/** (Optional) enables selection of items */\n\tselectedItems?: Array<ID>;\n\n\t/** (Optional) function, executed on change of selected items */\n\tonSelectedItemsChange?: (selectedItems: Array<ID>) => void;\n\n\t/** (Optional) function, executed if the page size changes */\n\tonChangeSize?: (size: number) => void;\n\n\t'data-testid'?: string;\n};\n\ntype State<T> = {\n\tpaginationSettings: PaginationSettings;\n\tfilterSettings: ReactableFilterSettings;\n\tfilteredItems: Array<T> | null | undefined;\n};\n\nconst DEFAULT_PAGINATION_SETTINGS: PaginationSettings = {\n\tpage: 0,\n\tsize: 15,\n\tsort: {\n\t\tproperty: 'name',\n\t\tdirection: 'DESC'\n\t}\n};\n\n/**\n * Reactable displays paginated results nicely, while adding the possibility to add further functionality to each row.\n * Each column can also be extended to be sortable and/or filterable.\n * Also adds client-side pagination.\n */\nexport default class ReactableWithClientSidePagination<\n\tT = any,\n\tID extends string | number | undefined | null = any\n> extends Component<Props<T, ID>, State<T>> {\n\tconstructor(props: Props<T>) {\n\t\tsuper(props);\n\t\tlet paginationSettings = DEFAULT_PAGINATION_SETTINGS;\n\n\t\tif (props.paginationSettings) {\n\t\t\tpaginationSettings = props.paginationSettings;\n\t\t} else if (props.initialPaginationSettings) {\n\t\t\tconsole.warn('initialPaginationSettings is deprecated! Please use \"paginationSettings\" instead');\n\t\t\tpaginationSettings = props.initialPaginationSettings;\n\t\t} else {\n\t\t\tconsole.error('Missing pagination settings!');\n\t\t}\n\n\t\tthis.state = {\n\t\t\tpaginationSettings: paginationSettings || DEFAULT_PAGINATION_SETTINGS,\n\t\t\tfilterSettings: {},\n\t\t\tfilteredItems: null\n\t\t};\n\t}\n\n\tprivate content: Array<T> = [];\n\n\tcalculatePageNumber: (items: Array<T>, paginationSettings: PaginationSettings) => void = (\n\t\titems: Array<T>,\n\t\tpaginationSettings: PaginationSettings\n\t) => {\n\t\tconst {forceResetPaginationOnItemsChange} = this.props;\n\n\t\tif (!forceResetPaginationOnItemsChange) {\n\t\t\tconst maxPageNumber = Math.floor((items.length - 1) / paginationSettings.size);\n\n\t\t\tif (maxPageNumber <= 0) {\n\t\t\t\tthis.handleChangePage(0);\n\t\t\t} else if (maxPageNumber < paginationSettings.page) {\n\t\t\t\tthis.handleChangePage(maxPageNumber);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.handleChangePage(0);\n\t\t}\n\t};\n\n\tcomponentDidUpdate(prevProps: Props<T>) {\n\t\tconst {items} = this.props;\n\t\tconst {items: prevItems} = prevProps;\n\t\tconst settings = this.props.paginationSettings || this.props.initialPaginationSettings;\n\t\tconst prevSettings = prevProps.paginationSettings || prevProps.initialPaginationSettings;\n\n\t\tif (items && prevItems && items.length !== prevItems.length) {\n\t\t\tthis.calculatePageNumber(items, this.state.paginationSettings);\n\t\t}\n\n\t\tif (settings && !isEqual(settings, prevSettings)) {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tpaginationSettings: settings\n\t\t\t\t},\n\t\t\t\t() => this.handleChangePage(0)\n\t\t\t);\n\t\t}\n\t}\n\n\thandleChangePage: (page: number) => void = (page: number) => {\n\t\tthis.setState({\n\t\t\tpaginationSettings: {...this.state.paginationSettings, page}\n\t\t});\n\t};\n\n\thandleSort: (property: string, direction: SortDirection) => void = (property: string, direction: SortDirection) => {\n\t\tthis.setState({\n\t\t\tpaginationSettings: {\n\t\t\t\t...this.state.paginationSettings,\n\t\t\t\tsort: {\n\t\t\t\t\tproperty,\n\t\t\t\t\tdirection\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thandleFilter: (filterSettings: ReactableFilterSettings) => void = (filterSettings: ReactableFilterSettings) => {\n\t\tconst {items, onFilter, columnDefs, onFilteredItemsChanged} = this.props;\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tpaginationSettings: {...this.state.paginationSettings, page: 0},\n\t\t\t\tfilterSettings\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tif (onFilter) {\n\t\t\t\t\tonFilter(filterSettings);\n\t\t\t\t}\n\t\t\t\tconst filteredItems = filterItems(items, columnDefs, filterSettings);\n\t\t\t\tthis.setState({\n\t\t\t\t\tfilteredItems\n\t\t\t\t});\n\n\t\t\t\tif (filteredItems) {\n\t\t\t\t\tonFilteredItemsChanged?.(filteredItems);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t};\n\n\tgetPageable: () => Pageable<T> | null | undefined = () => {\n\t\tconst {customSortFunction, items, columnDefs, onContentChange} = this.props;\n\t\tconst {filterSettings, paginationSettings} = this.state;\n\t\tconst filteredItems = filterItems(items, columnDefs, filterSettings);\n\t\tconst pageable = makePageable<T>(filteredItems, paginationSettings, customSortFunction);\n\n\t\tif (pageable && pageable.content && !isEqual(pageable.content, this.content)) {\n\t\t\tthis.content = pageable.content;\n\n\t\t\tif (onContentChange) {\n\t\t\t\tonContentChange(this.content);\n\t\t\t}\n\t\t}\n\n\t\treturn pageable;\n\t};\n\n\thandleSelectChange: (selected: boolean, item: T) => void = (selected: boolean, item: T) => {\n\t\tconst {onSelectedItemsChange, selectedItems = [], uniqueItemKey} = this.props;\n\n\t\tif (onSelectedItemsChange) {\n\t\t\tif (selected) {\n\t\t\t\tconst newSelectedItems = selectedItems.concat(uniqueItemKey(item));\n\t\t\t\tonSelectedItemsChange(newSelectedItems);\n\t\t\t} else {\n\t\t\t\tonSelectedItemsChange(selectedItems.filter((key) => key !== uniqueItemKey(item)));\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn('ReactableWithClientSidePagination: onSelectedItemsChange property is missing');\n\t\t}\n\t};\n\n\thandleSelectAllChange: (selectedAll: boolean) => void = (selectedAll: boolean) => {\n\t\tconst {onSelectedItemsChange, items, selectedItems = [], uniqueItemKey} = this.props;\n\t\tconst {filteredItems} = this.state;\n\t\tconst visibleItems = (filteredItems || items || []).map(uniqueItemKey);\n\n\t\tif (onSelectedItemsChange) {\n\t\t\tif (selectedAll) {\n\t\t\t\tonSelectedItemsChange(uniqWith([...selectedItems, ...visibleItems], isEqual).sort());\n\t\t\t} else {\n\t\t\t\tonSelectedItemsChange(difference(selectedItems, visibleItems));\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn('ReactableWithClientSidePagination: onSelectedItemsChange property is missing');\n\t\t}\n\t};\n\n\tareSelectedAll: () => boolean = () => {\n\t\tconst {items, selectedItems, uniqueItemKey} = this.props;\n\t\tconst {filteredItems} = this.state;\n\t\tconst visibleItems = filteredItems || items || [];\n\t\treturn (\n\t\t\t!!selectedItems && visibleItems.every((item) => selectedItems.some((key) => key === uniqueItemKey(item)))\n\t\t);\n\t};\n\n\trender() {\n\t\tconst {\n\t\t\tuniqueItemKey,\n\t\t\tisLoading,\n\t\t\tcolumnDefs,\n\t\t\trowDef,\n\t\t\ttableName,\n\t\t\tclickable,\n\t\t\tselectable,\n\t\t\tselectedItems,\n\t\t\tonChangeSize\n\t\t} = this.props;\n\t\tconst finalColumnDefs = selectable\n\t\t\t? extendColumnDefsWithCheckboxes(\n\t\t\t\t\tcolumnDefs,\n\t\t\t\t\tthis.handleSelectChange,\n\t\t\t\t\tthis.handleSelectAllChange,\n\t\t\t\t\tthis.areSelectedAll(),\n\t\t\t\t\tselectedItems || [],\n\t\t\t\t\tuniqueItemKey\n\t\t\t\t)\n\t\t\t: columnDefs;\n\t\treturn (\n\t\t\t<Reactable<T, ID>\n\t\t\t\tcolumnDefs={finalColumnDefs}\n\t\t\t\trowDef={rowDef}\n\t\t\t\tuniqueItemKey={uniqueItemKey}\n\t\t\t\tpaginationSettings={this.state.paginationSettings}\n\t\t\t\tonChangePage={this.handleChangePage}\n\t\t\t\tonChangeSize={onChangeSize}\n\t\t\t\tonSort={this.handleSort}\n\t\t\t\tonFilter={this.handleFilter}\n\t\t\t\ttableName={tableName}\n\t\t\t\tpageable={this.getPageable()}\n\t\t\t\tisLoading={isLoading}\n\t\t\t\tclickable={clickable}\n\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t/>\n\t\t);\n\t}\n}\n","import cx from 'classnames';\n/* eslint no-unused-vars: 0 */\nimport * as React from 'react';\nimport Dropzone, {Accept, FileRejection} from 'react-dropzone';\nimport classNames from 'classnames';\nimport {Trans} from '../../i18n';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type DropzoneFileRejection = FileRejection;\n\nexport interface DropzoneFile extends File {\n\tpreview?: string;\n}\n\nexport type PreviewComponentProps = {\n\tfile: DropzoneFile | null;\n\tonRemoveFile: () => void;\n\tonDownloadFile?: (() => void) | undefined;\n};\n\nexport type Props = {\n\t/** (Optional) string for accepting files */\n\taccept?: Accept;\n\n\t/** Optional Function, executed to download the file */\n\tonDownloadFile?: (file: DropzoneFile) => void;\n\n\t/** (Optional) function, executed when a file gets dragged into the upload field and accepted */\n\tonDropAccepted?: () => void;\n\n\t/** (Optional) function, executed when a file gets dragged into the upload field and rejected */\n\tonDropRejected?: (files: FileRejection[]) => void;\n\n\t/** (Optional) Hint for dragging files into upload field */\n\tdropHint?: TranslationDescriptor;\n\n\t/** (Optional) Hint for hovering over upload field */\n\thoverHint?: TranslationDescriptor;\n\n\t/** (Optional) Hint for accepting file in upload field*/\n\tacceptHint?: TranslationDescriptor;\n\n\t/** (Optional) Hint for rejecting file in upload field*/\n\trejectHint?: TranslationDescriptor;\n\n\t/** (Optional) Component to display preview of uploaded field */\n\tpreviewComponent?: React.ComponentType<PreviewComponentProps>;\n\n\t/** (Optional) Maximum upload size */\n\tmaxSize?: number;\n} & (\n\t| {\n\t\t\t/** (Optional) accept multiple files */\n\t\t\tmultiple?: false;\n\n\t\t\t/** Function, executed when files get added or removed */\n\t\t\tonChange?: (files: DropzoneFile[]) => void;\n\n\t\t\t/** Function, executed when a file gets removed */\n\t\t\tonRemoveFile: (file: DropzoneFile) => void;\n\n\t\t\t/** Function, executed when a file gets selected */\n\t\t\tonSelectFile: (file: DropzoneFile) => void;\n\t }\n\t| {\n\t\t\t/** (Optional) accept multiple files */\n\t\t\tmultiple: true;\n\n\t\t\t/** Function, executed when files get added or removed */\n\t\t\tonChange: (files: DropzoneFile[]) => void;\n\n\t\t\t/** Function, executed when a file gets removed */\n\t\t\tonRemoveFile?: (file: DropzoneFile) => void;\n\n\t\t\t/** Function, executed when a file gets selected */\n\t\t\tonSelectFile?: (file: DropzoneFile) => void;\n\t }\n);\n\nexport type State = {\n\tfiles: DropzoneFile[];\n};\n\n/**\n * FileUpload enables the possibility to upload files conveniently\n */\nexport default class FileUpload extends React.Component<Props, State> {\n\tstatic defaultProps: {\n\t\tacceptHint: {\n\t\t\tdefaultValue: string;\n\t\t\tid: string;\n\t\t};\n\t\tdropHint: {\n\t\t\tdefaultValue: string;\n\t\t\tid: string;\n\t\t};\n\t\thoverHint: {\n\t\t\tdefaultValue: string;\n\t\t\tid: string;\n\t\t};\n\t\trejectHint: {\n\t\t\tdefaultValue: string;\n\t\t\tid: string;\n\t\t};\n\t} = {\n\t\tdropHint: {\n\t\t\tid: 'fileUpload.dropHint',\n\t\t\tdefaultValue: 'Drop file here, or click to browse ...'\n\t\t},\n\t\thoverHint: {\n\t\t\tid: 'fileUpload.hoverHint',\n\t\t\tdefaultValue: 'Drop file here, or click to browse ...'\n\t\t},\n\t\tacceptHint: {\n\t\t\tid: 'fileUpload.acceptHint',\n\t\t\tdefaultValue: 'This file type can be uploaded'\n\t\t},\n\t\trejectHint: {\n\t\t\tid: 'fileUpload.rejectHint',\n\t\t\tdefaultValue: 'This file type cannot be uploaded'\n\t\t}\n\t};\n\n\tstate: State = {\n\t\tfiles: []\n\t};\n\n\thandleDrop = (accepted: DropzoneFile[], rejected: FileRejection[]) => {\n\t\tif (!this.props.multiple && accepted.length > 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (rejected.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t/** Prevent console error on <Dropzone /> component */\n\t\tsetTimeout(() => this.selectFile(accepted), 100);\n\t};\n\n\tselectFile: (files: DropzoneFile[]) => void = (files) => {\n\t\tconst {onSelectFile, onChange} = this.props;\n\t\tfiles.forEach((file) => {\n\t\t\tfile.preview = URL.createObjectURL(file);\n\t\t});\n\t\tconst newFiles = [...this.state.files, ...files];\n\t\tthis.setState({files: newFiles});\n\t\tonChange?.(newFiles);\n\t\tif (onSelectFile) {\n\t\t\tfiles.forEach((file) => {\n\t\t\t\tonSelectFile(file);\n\t\t\t});\n\t\t}\n\t};\n\n\thandleRemoveFile: (file: DropzoneFile) => void = (file) => {\n\t\tconst {files} = this.state;\n\n\t\tif (file) {\n\t\t\tif (file.preview) window.URL.revokeObjectURL(file.preview);\n\t\t\tconst newFiles = files.filter((f) => f !== file);\n\t\t\tthis.setState({files: newFiles});\n\t\t\tthis.props.onChange?.(newFiles);\n\t\t\tthis.props.onRemoveFile?.(file);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {files} = this.state;\n\t\tconst {\n\t\t\taccept,\n\t\t\tpreviewComponent: Preview,\n\t\t\tdropHint,\n\t\t\thoverHint,\n\t\t\tacceptHint,\n\t\t\trejectHint,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\tonChange,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\tonRemoveFile,\n\t\t\tonDownloadFile,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\tonSelectFile,\n\t\t\tonDropRejected,\n\t\t\tonDropAccepted,\n\t\t\tmaxSize,\n\t\t\tmultiple,\n\t\t\t...otherProps\n\t\t} = this.props;\n\t\tconst dropHintOrDefault = dropHint || FileUpload.defaultProps.dropHint;\n\t\tconst hoverHintOrDefault = hoverHint || FileUpload.defaultProps.hoverHint;\n\t\tconst acceptHintOrDefault = acceptHint || FileUpload.defaultProps.acceptHint;\n\t\tconst rejectHintOrDefault = rejectHint || FileUpload.defaultProps.rejectHint;\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{...otherProps}\n\t\t\t\tclassName={classNames('di upload', {\n\t\t\t\t\tclickable: !files.length,\n\t\t\t\t\thasContent: !!files.length\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{!!Preview &&\n\t\t\t\t\tfiles.map((file, i) => (\n\t\t\t\t\t\t<Preview\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\tonRemoveFile={() => this.handleRemoveFile(file)}\n\t\t\t\t\t\t\tonDownloadFile={onDownloadFile ? () => onDownloadFile(file) : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t{(multiple || !files.length) && (\n\t\t\t\t\t<Dropzone\n\t\t\t\t\t\taccept={accept}\n\t\t\t\t\t\tmultiple={multiple ?? false}\n\t\t\t\t\t\tonDrop={this.handleDrop}\n\t\t\t\t\t\tonDropRejected={onDropRejected}\n\t\t\t\t\t\tonDropAccepted={onDropAccepted}\n\t\t\t\t\t\tmaxSize={maxSize || Infinity}\n\t\t\t\t\t>\n\t\t\t\t\t\t{({getRootProps, getInputProps, isDragAccept, isDragReject, isDragActive}) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('drag-drop-text-container', {\n\t\t\t\t\t\t\t\t\tactive: isDragActive,\n\t\t\t\t\t\t\t\t\taccept: isDragAccept,\n\t\t\t\t\t\t\t\t\treject: isDragReject\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{...getRootProps()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<input {...getInputProps()} />\n\t\t\t\t\t\t\t\t<p className=\"drag-drop-hint\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey={dropHintOrDefault.id}>{dropHintOrDefault.defaultValue}</Trans>\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t<p className=\"drag-drop-hover-hint\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey={hoverHintOrDefault.id}>{hoverHintOrDefault.defaultValue}</Trans>\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t<p className=\"drag-drop-accept\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey={acceptHintOrDefault.id}>{acceptHintOrDefault.defaultValue}</Trans>\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t<p className=\"drag-drop-reject\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey={rejectHintOrDefault.id}>{rejectHintOrDefault.defaultValue}</Trans>\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Dropzone>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import {Component} from 'react';\nimport {Trans} from '../../i18n';\n\nimport FileUpload, {DropzoneFile, Props as FileUploadProps} from './FileUpload';\n\ntype PreviewComponentProps = {\n\turl: string;\n\timageSize?: 'contain' | 'cover';\n\tonRemoveFile: () => void;\n\tonDragOver: () => void;\n\tonDownloadFile?: () => void;\n};\n\nconst PreviewImage = ({url, imageSize, onRemoveFile, onDragOver, onDownloadFile}: PreviewComponentProps) => (\n\t<div className=\"di upload preview-container\" onDragOver={onDragOver}>\n\t\t<div\n\t\t\tclassName=\"preview\"\n\t\t\tstyle={{\n\t\t\t\tbackgroundImage: `url(${url})`,\n\t\t\t\t...(imageSize && {backgroundSize: imageSize})\n\t\t\t}}\n\t\t>\n\t\t\t<button className=\"action-button\" onClick={onRemoveFile} data-testid=\"delete-button\">\n\t\t\t\t<Trans i18nKey=\"imageUpload.remove\">Remove</Trans>\n\t\t\t</button>\n\t\t\t{onDownloadFile && (\n\t\t\t\t<button className=\"action-button\" onClick={onDownloadFile} data-testid=\"download-button\">\n\t\t\t\t\t<Trans i18nKey=\"imageUpload.download\">Download</Trans>\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t</div>\n);\n\nexport type Props = Omit<FileUploadProps, 'multiple'> & {\n\t/** (Optional) Url for the image preview */\n\timageUrl: string | null | undefined;\n\timageSize?: 'contain' | 'cover';\n};\n\ntype ImageUploadState = {\n\tdragOverPreview: boolean;\n\tfile: DropzoneFile | null;\n};\n\n/**\n * ImageUpload enables the possibility to upload images conveniently\n */\nexport default class ImageUpload extends Component<Props, ImageUploadState> {\n\tstate: ImageUploadState = {\n\t\tdragOverPreview: false,\n\t\tfile: null\n\t};\n\n\tcomponentDidUpdate(prevProps: Props): void {\n\t\tif (prevProps.imageUrl !== this.props.imageUrl) {\n\t\t\tthis.setState({\n\t\t\t\tdragOverPreview: false\n\t\t\t});\n\t\t}\n\t}\n\n\thandleDragOver: () => void = () => {\n\t\tthis.setState({\n\t\t\tdragOverPreview: true\n\t\t});\n\t};\n\n\trender() {\n\t\tconst {accept, imageUrl, imageSize, onSelectFile, onRemoveFile, onDownloadFile, ...otherProps} = this.props;\n\t\tconst {dragOverPreview, file} = this.state;\n\n\t\tif (imageUrl && !dragOverPreview && file) {\n\t\t\treturn (\n\t\t\t\t<PreviewImage\n\t\t\t\t\turl={imageUrl}\n\t\t\t\t\timageSize={imageSize}\n\t\t\t\t\tonRemoveFile={() => onRemoveFile?.(file)}\n\t\t\t\t\tonDownloadFile={onDownloadFile ? () => onDownloadFile(file) : undefined}\n\t\t\t\t\tonDragOver={this.handleDragOver}\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<FileUpload\n\t\t\t\t\t{...otherProps}\n\t\t\t\t\tonRemoveFile={(file) => {\n\t\t\t\t\t\tthis.setState({file: null});\n\t\t\t\t\t\tonRemoveFile?.(file);\n\t\t\t\t\t}}\n\t\t\t\t\tonSelectFile={(file) => {\n\t\t\t\t\t\tthis.setState({file});\n\t\t\t\t\t\tonSelectFile?.(file);\n\t\t\t\t\t}}\n\t\t\t\t\taccept={\n\t\t\t\t\t\taccept || {\n\t\t\t\t\t\t\t'image/*': ['.jpeg', '.jpg', '.png', '.webp']\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t}\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplMjI2NGVmOC0xY2Q1LTgyNDQtOWQ5NS0yZDBjNGMxMmZkM2UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDhENjczMThERTNEMTFFQUIwNjJCODBDQ0RGM0I4QkEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDhENjczMTdERTNEMTFFQUIwNjJCODBDQ0RGM0I4QkEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTcyODQ4NjktNjA0NC0xZjQ2LTg2OWMtMjBlYzMwMTA0MWE2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmUyMjY0ZWY4LTFjZDUtODI0NC05ZDk1LTJkMGM0YzEyZmQzZSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnOjy94AAABySURBVHjapFMJDsAgCFvJ/v/lbkvYEQ4naGIiShtaASS3lSWjRwA8d4/gAutxSLJrsr3/6kKUc0uPKnDgioQS2BKUwY8HBhzFoc+/31ipAF0JkoDY7cQyiWTmzJLADZN2HIwn2dD5Ct5EzBiK1XE+BBgAvZQfJzDjL2UAAAAASUVORK5CYII=\"","import * as React from 'react';\nimport {useHistory, useLocation} from 'react-router-dom';\nimport {useTranslation} from '../../i18n';\n\nimport {Button} from '@deviceinsight/ng-ui-basic-components';\n\nimport arrowBackIcon from '../../assets/img/icon-arrow-back.png';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** title which is going to be displayed */\n\ttitle: string | TranslationDescriptor;\n\n\t/** (optional) subtitle which is going to be displayed */\n\tsubtitle?: string | TranslationDescriptor;\n\n\t/** (optional) if set to true, enables back button */\n\tparentPageLink?: boolean;\n\n\t/** (optional) if set, navigates back got certain parent page */\n\tsubPagePathPrefix?: string;\n\n\t/** @ignore */\n\tsubPagePathPrefixArray?: Array<string>;\n\n\t/** (optional) renders additional components as children */\n\tchildren?: React.ReactNode;\n};\n\n/**\n * `parentPageLink` set to true shows a back button to go to the parent page.\n * `subPagePathPrefix` needs to be used with `parentPageLink` set to true. It allows to customize what is considered the parent page.\n * With only the `parentPageLink` set to true the parent page is the direct parent, e.g. of `/assets/1234/conditions/5678` the parent is `/assets/1234/conditions`\n * To make the parent of e.g. `/assets/1234/conditions/edit/5678` the page `/assets/1234/conditions`, `subPagePathPrefix=\"/edit\"` needs to be used.\n */\nconst ContentHeader = ({\n\tparentPageLink,\n\ttitle,\n\tsubPagePathPrefixArray,\n\tsubPagePathPrefix,\n\tsubtitle,\n\tchildren\n}: Props) => {\n\tconst {push} = useHistory();\n\tconst {pathname} = useLocation();\n\tconst {t} = useTranslation();\n\n\tconst goToParentPage = () => {\n\t\tif (subPagePathPrefix) {\n\t\t\tpush(pathname.substring(0, pathname.lastIndexOf(subPagePathPrefix)));\n\t\t} else if (subPagePathPrefixArray) {\n\t\t\tsubPagePathPrefixArray.forEach((pathPrefix) => {\n\t\t\t\tif (pathname.includes(pathPrefix)) {\n\t\t\t\t\tpush(pathname.substring(0, pathname.lastIndexOf(pathPrefix)));\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tpush(pathname.substring(0, pathname.lastIndexOf('/')));\n\t\t}\n\t};\n\n\tconst printStringOrMessage = (stringOrMessage: string | TranslationDescriptor) => {\n\t\tif (typeof stringOrMessage === 'string') {\n\t\t\treturn stringOrMessage;\n\t\t} else {\n\t\t\tconst {id, defaultValue} = stringOrMessage;\n\t\t\treturn t(id, {\n\t\t\t\tdefaultValue\n\t\t\t});\n\t\t}\n\t};\n\n\treturn (\n\t\t<h1 className=\"di header\">\n\t\t\t{parentPageLink && (\n\t\t\t\t<Button\n\t\t\t\t\tonClick={goToParentPage}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmarginRight: '15px'\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={arrowBackIcon}\n\t\t\t\t\t\talt={t('general.navigation.goBack', {\n\t\t\t\t\t\t\tdefaultValue: 'Go Back'\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t<span>{printStringOrMessage(title)}</span>\n\t\t\t{subtitle && <span className=\"search-result-count\">{printStringOrMessage(subtitle)}</span>}\n\t\t\t{children}\n\t\t</h1>\n\t);\n};\n\nexport default ContentHeader;\n","import dayjs from 'dayjs';\nimport {forwardRef, useEffect, useState} from 'react';\n\nimport DateInput from './DateInput';\nimport ValidatedTextInput from './ValidatedTextInput';\n\nconst formatTime = (timezone: string | undefined, date: number) => {\n\ttry {\n\t\treturn dayjs.tz(date, timezone).format('HH:mm');\n\t} catch (error) {\n\t\tconsole.error('DateTimeInput: Error while extracting time from date', error);\n\t\treturn '00:00';\n\t}\n};\n\nexport type Props = {\n\t/** the current value (millis since 1970-01-01) */\n\ttimestamp: number;\n\n\t/** callback function that is executed when the user picks a date */\n\tonChange: (date: number | null | undefined, fromTextField?: boolean) => void;\n\n\t/** (optional) if set to true, displays warning styles */\n\twarning?: boolean;\n\n\t/** displays the DateTimeInput read-only */\n\treadOnly?: boolean;\n\tselectsStart?: boolean;\n\tselectsEnd?: boolean;\n\tstartDate?: Date;\n\tendDate?: Date;\n\n\t/** (optional) locale, if not set, the i18next.language is taken */\n\tlocale?: string;\n\n\t/** (optional) timezone */\n\ttimezone?: string;\n};\n\n/**\n * Extends DateInput but also displaying the current time.\n * Usually the user's locale is used for displaying the correct date format.\n */\nconst DateTimeInput = forwardRef<HTMLInputElement, Props>(\n\t({timestamp, timezone, warning, readOnly = false, onChange, ...otherProps}: Props, ref) => {\n\t\tconst [time, setTime] = useState<string>(formatTime(timezone, timestamp));\n\t\tconst timeValue = time == null ? formatTime(timezone, timestamp) : time;\n\n\t\tuseEffect(() => {\n\t\t\tsetTime(formatTime(timezone, timestamp));\n\t\t}, [timezone, timestamp]);\n\n\t\tfunction handleChangeDate(date: number | null | undefined, fromTextField?: boolean) {\n\t\t\tconst currentDate = dayjs.tz(timestamp, timezone);\n\t\t\tconst newDate = dayjs\n\t\t\t\t.tz(date, timezone)\n\t\t\t\t.set('hour', currentDate.hour())\n\t\t\t\t.set('minute', currentDate.minute())\n\t\t\t\t.set('second', currentDate.second())\n\t\t\t\t.set('millisecond', currentDate.millisecond());\n\n\t\t\tonChange(newDate.valueOf(), fromTextField);\n\t\t}\n\n\t\tfunction handleChangeTime(time: string, valid: boolean) {\n\t\t\tif (valid) {\n\t\t\t\tconst [hours, minutes] = time.split(':').map(Number);\n\t\t\t\tconst newDate = dayjs.tz(timestamp, timezone).set('hours', hours).set('minutes', minutes);\n\t\t\t\tonChange(newDate.valueOf(), true);\n\t\t\t}\n\t\t\tsetTime(time);\n\t\t}\n\n\t\tfunction tryFixTime() {\n\t\t\tif (time && /^[0-9]:[0-5][0-9]$/.test(time)) {\n\t\t\t\thandleChangeTime(time.padStart(5, '0'), true);\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<span className={`di date-time-input ${warning ? 'with-warning' : ''}`}>\n\t\t\t\t<DateInput\n\t\t\t\t\t{...otherProps}\n\t\t\t\t\tref={ref}\n\t\t\t\t\tvalue={timestamp}\n\t\t\t\t\ttimezone={timezone}\n\t\t\t\t\tonChange={handleChangeDate}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t/>\n\t\t\t\t<ValidatedTextInput\n\t\t\t\t\tdata-testid=\"time-input\"\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tonChange={handleChangeTime}\n\t\t\t\t\tpattern={/^(([01][0-9])|2[0-3]):[0-5][0-9]$/}\n\t\t\t\t\trequired\n\t\t\t\t\tinvalidStyle={{\n\t\t\t\t\t\tborderColor: 'red'\n\t\t\t\t\t}}\n\t\t\t\t\tplaceholder=\"00:00\"\n\t\t\t\t\tclassName=\"time\"\n\t\t\t\t\tonBlur={tryFixTime}\n\t\t\t\t\tdisabled={readOnly}\n\t\t\t\t/>\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nexport default DateTimeInput;\n","import {Component, createRef} from 'react';\nimport {AsyncPaginate} from 'react-select-async-paginate';\n\nimport {Pageable} from '../../types/pagination';\nimport './react-select.css';\nimport './react-select-custom.css';\n\nexport type Props<Item, ID> = {\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: ID | null | undefined;\n\n\t/** Function, executed when selecting value */\n\tonChange: (item: ID | null | undefined) => void;\n\n\t/** Identifier for value */\n\tvalueKey: string;\n\n\t/** Identifier for label */\n\tlabelKey: string;\n\n\t/** Function, executed when the component mounts and updates */\n\tsearchByQuery: (query: string, offset: number) => Promise<Pageable<Item>>;\n\n\t/** Function, executed when the component mounts and updates */\n\tsearchById: (id: ID) => Promise<Item | null | undefined>;\n\n\t/** (Optional) if set, returns a custom message if no results are available*/\n\tnoResultsMessage?: string;\n\n\t/** (Optional) if true, enables button to clear field on click */\n\tclearable?: boolean;\n\n\t/** (Optional) indicates if the component is disabled or not */\n\tdisabled?: boolean;\n\n\t/** (Optional) Whether the menu should use a portal, and where it should attach */\n\tmenuPortalTarget?: HTMLElement;\n\n\t/** Placeholder */\n\tplaceholder?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\ntype SelectItem<ID> = {\n\tvalue: ID;\n\tlabel: string;\n};\n\ntype State<ID extends string | number> = {\n\tcache: Record<ID, SelectItem<ID>>;\n\tcurrentItem: SelectItem<ID> | null | undefined;\n};\n\n/**\n * SelectWithSearchAsync enhances a native select list by applying a search functionality to it.\n * Fetches selectable results asynchronously while showing small loading indicator\n */\nexport default class SelectWithSearchAsync<Item, ID extends string | number> extends Component<\n\tProps<Item, ID>,\n\tState<ID>\n> {\n\tstate: State<ID> = {\n\t\tcache: {} as Record<ID, SelectItem<ID>>,\n\t\tcurrentItem: null\n\t};\n\n\tselectRef = createRef<any>();\n\n\tcomponentDidMount() {\n\t\tconst {value, searchById} = this.props;\n\n\t\tif (value) {\n\t\t\tsearchById(value).then(this.addBackendItemToCache);\n\t\t}\n\n\t\tif (this.props['data-testid']) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (this.selectRef?.current?.controlRef) {\n\t\t\t\t\tthis.selectRef.current.controlRef.setAttribute('data-testid', this.props['data-testid']);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst {value, searchById} = this.props;\n\t\tconst {currentItem} = this.state;\n\n\t\tif (value && (!currentItem || currentItem.value !== value)) {\n\t\t\tconst foundInCache = this.reloadItemFromCache();\n\n\t\t\tif (!foundInCache) {\n\t\t\t\tsearchById(value).then(this.addBackendItemToCache);\n\t\t\t}\n\t\t} else if (!value && currentItem) {\n\t\t\tthis.setState({\n\t\t\t\tcurrentItem: null\n\t\t\t});\n\t\t}\n\t}\n\n\ttransformBackendItemToSelectItem: (backendItem: any) => SelectItem<ID> = (backendItem: any) => {\n\t\tconst {labelKey, valueKey} = this.props;\n\t\treturn {\n\t\t\tvalue: backendItem[valueKey],\n\t\t\tlabel: backendItem[labelKey]\n\t\t};\n\t};\n\treloadItemFromCache: () => boolean = () => {\n\t\tconst {value} = this.props;\n\t\tconst {currentItem, cache} = this.state;\n\n\t\tif (value && (!currentItem || currentItem.value !== value) && cache[value]) {\n\t\t\tthis.setState({\n\t\t\t\tcurrentItem: cache[value]\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\taddBackendItemToCache: (item: Item | null | undefined) => void = (item: Item | null | undefined) => {\n\t\tif (item) {\n\t\t\tconst selectItem = this.transformBackendItemToSelectItem(item);\n\t\t\tconst id = selectItem.value;\n\t\t\tthis.setState(({cache}) => ({\n\t\t\t\tcache: {...cache, [id]: selectItem}\n\t\t\t}));\n\t\t}\n\t};\n\n\tfetchOptions: (input: string, options: Array<Item>) => Promise<{hasMore: boolean; options: Array<any>}> = async (\n\t\tinput: string,\n\t\toptions: Array<Item>\n\t) => {\n\t\tconst {searchByQuery} = this.props;\n\n\t\ttry {\n\t\t\tconst {content, number, totalPages} = await searchByQuery(input, options.length);\n\t\t\treturn {\n\t\t\t\toptions: content.map<any>(this.transformBackendItemToSelectItem),\n\t\t\t\thasMore: number < totalPages - 1\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconsole.error('Error fetching options:', error);\n\t\t\treturn {hasMore: false, options: []};\n\t\t}\n\t};\n\n\thandleChange: (item: SelectItem<ID> | null | undefined) => void = (item: SelectItem<ID> | null | undefined) => {\n\t\tconst {onChange} = this.props;\n\n\t\tif (item) {\n\t\t\tconst id = item.value;\n\t\t\tthis.setState(\n\t\t\t\t({cache}) => ({\n\t\t\t\t\tcache: {...cache, [id]: item}\n\t\t\t\t}),\n\t\t\t\t() => {\n\t\t\t\t\tonChange(id);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tonChange(null);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {clearable, noResultsMessage, disabled, menuPortalTarget} = this.props;\n\t\tconst {currentItem} = this.state;\n\t\treturn (\n\t\t\t<AsyncPaginate\n\t\t\t\tselectRef={this.selectRef}\n\t\t\t\tclassName=\"select-search-container\"\n\t\t\t\tclassNamePrefix=\"select-search\"\n\t\t\t\tisClearable={clearable}\n\t\t\t\tnoResultsText={noResultsMessage}\n\t\t\t\tvalue={currentItem}\n\t\t\t\tonChange={this.handleChange}\n\t\t\t\t// @ts-ignore\n\t\t\t\tloadOptions={this.fetchOptions}\n\t\t\t\tisDisabled={disabled}\n\t\t\t\tmenuPortalTarget={menuPortalTarget}\n\t\t\t\tplaceholder={this.props.placeholder}\n\t\t\t/>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {Link} from 'react-router-dom';\n\nimport Context from './MultiMenuContext';\n\nexport type Props = {\n\tchildren: React.ReactNode;\n\tdisabled?: boolean;\n\ticon?: React.ReactNode;\n\tlinkTo?: string;\n\tonClick?: () => any;\n\t'data-testid'?: string;\n};\n\nexport default class MultiMenuItem extends React.PureComponent<Props> {\n\tcreateClickHandler: (toggleMenu: () => void) => () => void = (toggleMenu: () => void) => () => {\n\t\tconst {onClick} = this.props;\n\n\t\tif (onClick) {\n\t\t\tonClick();\n\t\t}\n\n\t\ttoggleMenu();\n\t};\n\n\trender() {\n\t\tconst {disabled, icon, children, linkTo} = this.props;\n\t\tconst dataTestId = this.props['data-testid'];\n\t\treturn (\n\t\t\t<Context.Consumer>\n\t\t\t\t{({toggleMenu}) =>\n\t\t\t\t\tlinkTo ? (\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tdata-testid={dataTestId}\n\t\t\t\t\t\t\tto={linkTo}\n\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''}`}\n\t\t\t\t\t\t\tonClick={this.createClickHandler(toggleMenu)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{icon && <span className=\"item-icon\">{icon}</span>}\n\t\t\t\t\t\t\t<span className=\"item-text\">{children}</span>\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-testid={dataTestId}\n\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''}`}\n\t\t\t\t\t\t\tonClick={this.createClickHandler(toggleMenu)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{icon && <span className=\"item-icon\">{icon}</span>}\n\t\t\t\t\t\t\t<span className=\"item-text\">{children}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Context.Consumer>\n\t\t);\n\t}\n}\n","import {useRef, useState} from 'react';\nimport {isEqual} from 'lodash';\n\nimport {Period} from '../types';\nimport DateTimeInput from '../../input/DateTimeInput';\n\nconst ONE_HOUR = 60 * 60 * 1000;\n\ntype Props = {\n\tperiod: Period;\n\tonChange: (period: Period) => void;\n\treadOnly?: boolean;\n\tlocale?: string;\n\ttimezone?: string;\n};\n\nexport default function Inputs({period, onChange, readOnly, locale, timezone}: Props) {\n\tconst [showWarningTarget, setShowWarningTarget] = useState('');\n\tconst warningTimeoutRef = useRef<NodeJS.Timeout | undefined>(undefined);\n\tconst endDateRef = useRef<HTMLInputElement>(null);\n\n\tconst startDate = new Date(period.tsStart);\n\tconst endDate = new Date(period.tsEnd);\n\n\tfunction showWarning(target: 'date-from' | 'date-to') {\n\t\tif (warningTimeoutRef.current) {\n\t\t\tclearTimeout(warningTimeoutRef.current);\n\t\t}\n\t\tsetShowWarningTarget(target);\n\t\twarningTimeoutRef.current = setTimeout(() => setShowWarningTarget(''), 1000);\n\t}\n\n\tfunction handleChangeStartDate(timestamp: number | null | undefined, fromTextField?: boolean) {\n\t\tif (timestamp) {\n\t\t\tconst incorrect = period.tsEnd && timestamp > period.tsEnd;\n\t\t\tconst tsEnd = incorrect ? timestamp + ONE_HOUR : period.tsEnd;\n\n\t\t\tconst newPeriod = {\n\t\t\t\ttsStart: timestamp,\n\t\t\t\ttsEnd\n\t\t\t};\n\t\t\tif (!isEqual(newPeriod, period)) {\n\t\t\t\tonChange(newPeriod);\n\t\t\t}\n\n\t\t\tif (!fromTextField && endDateRef.current) {\n\t\t\t\tendDateRef.current.focus();\n\t\t\t}\n\n\t\t\tif (incorrect) {\n\t\t\t\tshowWarning('date-to');\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction handleChangeEndDate(timestamp: number | null | undefined) {\n\t\tif (timestamp) {\n\t\t\tconst incorrect = period.tsStart && timestamp < period.tsStart;\n\t\t\tconst tsStart = incorrect ? timestamp - ONE_HOUR : period.tsStart;\n\n\t\t\tconst newPeriod = {\n\t\t\t\ttsStart,\n\t\t\t\ttsEnd: timestamp\n\t\t\t};\n\t\t\tif (!isEqual(newPeriod, period)) {\n\t\t\t\tonChange(newPeriod);\n\t\t\t}\n\n\t\t\tif (incorrect) {\n\t\t\t\tshowWarning('date-from');\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t<span className=\"inputs\">\n\t\t\t<span data-testid=\"from-wrapper\">\n\t\t\t\t<DateTimeInput\n\t\t\t\t\ttimestamp={period.tsStart}\n\t\t\t\t\tonChange={handleChangeStartDate}\n\t\t\t\t\twarning={showWarningTarget === 'date-from'}\n\t\t\t\t\tselectsStart\n\t\t\t\t\tstartDate={startDate}\n\t\t\t\t\tendDate={endDate}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tlocale={locale}\n\t\t\t\t\ttimezone={timezone}\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t&nbsp; - &nbsp;\n\t\t\t<span data-testid=\"to-wrapper\">\n\t\t\t\t<DateTimeInput\n\t\t\t\t\tref={endDateRef}\n\t\t\t\t\ttimestamp={period.tsEnd}\n\t\t\t\t\tonChange={handleChangeEndDate}\n\t\t\t\t\twarning={showWarningTarget === 'date-to'}\n\t\t\t\t\tselectsEnd\n\t\t\t\t\tstartDate={startDate}\n\t\t\t\t\tendDate={endDate}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tlocale={locale}\n\t\t\t\t\ttimezone={timezone}\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</span>\n\t);\n}\n","import {Component} from 'react';\nimport dayjs from 'dayjs';\nimport cx from 'classnames';\n\ntype OwnProps = {\n\tmonth?: number;\n\tyear?: number;\n\tonChange: (month: number, year: number) => void;\n};\n\ntype Props = OwnProps;\n\ntype State = {\n\tselectedMonth: number;\n\tselectedYear: number;\n\tdisplayedYear: number;\n};\n\nexport default class MonthPicker extends Component<Props, State> {\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tconst month = props.month !== null && props.month !== undefined ? props.month : dayjs().month() + 1;\n\t\tconst year = props.year !== null && props.year !== undefined ? props.year : dayjs().year();\n\t\tthis.state = {\n\t\t\tselectedMonth: month,\n\t\t\tselectedYear: year,\n\t\t\tdisplayedYear: year\n\t\t};\n\t}\n\n\ttdMonth = (month: number) => {\n\t\tconst {selectedMonth, selectedYear, displayedYear} = this.state;\n\t\treturn (\n\t\t\t<td\n\t\t\t\tdata-testid={`month-${month}-button`}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tthis.props.onChange(month, displayedYear);\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tselectedMonth: month,\n\t\t\t\t\t\tselectedYear: displayedYear\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tclassName={cx({selected: month === selectedMonth && displayedYear === selectedYear})}\n\t\t\t>\n\t\t\t\t{dayjs(`${selectedYear}/${month.toString().padStart(2, '0')}/01`, 'YYYY/MM/DD').format('MMM')}\n\t\t\t</td>\n\t\t);\n\t};\n\n\trender() {\n\t\tconst {displayedYear} = this.state;\n\t\treturn (\n\t\t\t<div className=\"di monthpicker\">\n\t\t\t\t<div className=\"pager\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"page-nav prev\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tdisplayedYear: displayedYear - 1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t<span className=\"page-nav info\">{displayedYear}</span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"page-nav next\"\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tdisplayedYear: displayedYear + 1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"months\">\n\t\t\t\t\t<table\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tmargin: 'auto'\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t{this.tdMonth(1)}\n\t\t\t\t\t\t\t\t{this.tdMonth(2)}\n\t\t\t\t\t\t\t\t{this.tdMonth(3)}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t{this.tdMonth(4)}\n\t\t\t\t\t\t\t\t{this.tdMonth(5)}\n\t\t\t\t\t\t\t\t{this.tdMonth(6)}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t{this.tdMonth(7)}\n\t\t\t\t\t\t\t\t{this.tdMonth(8)}\n\t\t\t\t\t\t\t\t{this.tdMonth(9)}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t{this.tdMonth(10)}\n\t\t\t\t\t\t\t\t{this.tdMonth(11)}\n\t\t\t\t\t\t\t\t{this.tdMonth(12)}\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3cg%3e%3crect%20class='cls-1'%20x='3.5'%20y='7.5'%20width='2'%20height='2'/%3e%3cpath%20d='M5,8V9H4V8H5M6,7H3v3H6V7Z'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='8'%20y='7'%20width='1'%20height='1'/%3e%3cpolygon%20points='9%207%208%207%208%208%209%208%209%207%209%207'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='10'%20y='7'%20width='1'%20height='1'/%3e%3cpolygon%20points='11%207%2010%207%2010%208%2011%208%2011%207%2011%207'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='12'%20y='7'%20width='1'%20height='1'/%3e%3cpolygon%20points='13%207%2012%207%2012%208%2013%208%2013%207%2013%207'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='8'%20y='9'%20width='1'%20height='1'/%3e%3cpolygon%20points='9%209%208%209%208%2010%209%2010%209%209%209%209'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='8'%20y='11'%20width='1'%20height='1'/%3e%3cpolygon%20points='9%2011%208%2011%208%2012%209%2012%209%2011%209%2011'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='6'%20y='11'%20width='1'%20height='1'/%3e%3cpolygon%20points='7%2011%206%2011%206%2012%207%2012%207%2011%207%2011'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='4'%20y='11'%20width='1'%20height='1'/%3e%3cpolygon%20points='5%2011%204%2011%204%2012%205%2012%205%2011%205%2011'/%3e%3c/g%3e%3cg%3e%3crect%20class='cls-1'%20x='10.5'%20y='9.5'%20width='2'%20height='2'/%3e%3cpath%20d='M12,10v1H11V10h1m1-1H10v3h3V9Z'/%3e%3c/g%3e%3cpath%20d='M15.31,2H.69A.69.69,0,0,0,0,2.69V14.31A.69.69,0,0,0,.69,15H15.31a.69.69,0,0,0,.69-.69V2.69A.69.69,0,0,0,15.31,2ZM14,13H2V6H14Z'/%3e%3c/g%3e%3crect%20x='3'%20width='3'%20height='2'/%3e%3crect%20x='10'%20width='3'%20height='2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.5%2010%204%206%2011%206%207.5%2010'/%3e%3c/svg%3e\"","import dayjs from 'dayjs';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport {Period} from './types';\n\ndayjs.extend(timezone);\ndayjs.extend(utc);\n\nexport function dayjsTz(timezone: string | undefined, ts?: number | null | undefined) {\n\treturn timezone ? dayjs.tz(ts, timezone) : dayjs(ts);\n}\n\nexport function createToday(timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone).startOf('day').valueOf(),\n\t\ttsEnd: dayjsTz(timezone).endOf('day').valueOf()\n\t};\n}\n\nexport function createYesterday(timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone).subtract(1, 'day').startOf('day').valueOf(),\n\t\ttsEnd: dayjsTz(timezone).subtract(1, 'day').endOf('day').valueOf()\n\t};\n}\n\nexport function createCurrentWeek(timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone).startOf('week').valueOf(),\n\t\ttsEnd: dayjsTz(timezone).endOf('week').valueOf()\n\t};\n}\n\nexport function createCurrentMonth(timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone).startOf('month').valueOf(),\n\t\ttsEnd: dayjsTz(timezone).endOf('month').valueOf()\n\t};\n}\n\nexport function createWholeDay(tsMiddle: number, timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone, tsMiddle).startOf('day').valueOf(),\n\t\ttsEnd: dayjsTz(timezone, tsMiddle).endOf('day').valueOf()\n\t};\n}\n\nexport function createWholeMonth(tsMiddle: number, timezone: string | undefined) {\n\treturn {\n\t\ttsStart: dayjsTz(timezone, tsMiddle).startOf('month').valueOf(),\n\t\ttsEnd: dayjsTz(timezone, tsMiddle).endOf('month').valueOf()\n\t};\n}\n\nexport function createLastXDays(days: number, timezone: string | undefined) {\n\tconst tsStart = dayjsTz(timezone)\n\t\t.subtract(days - 1, 'days')\n\t\t.startOf('day')\n\t\t.valueOf();\n\tconst tsEnd = dayjs().endOf('day').valueOf();\n\n\treturn {tsStart, tsEnd};\n}\n\nconst DAY_TO_MILLIS = 1000 * 60 * 60 * 24;\n\nexport function periodToDays({tsStart, tsEnd}: Period): number {\n\treturn Math.round((tsEnd - tsStart + 1) / DAY_TO_MILLIS);\n}\n","import {useState} from 'react';\nimport {Trans} from '../../../i18n';\nimport dayjs from 'dayjs';\n\nimport {Button, Popup} from '@deviceinsight/ng-ui-basic-components';\n\nimport {Period} from '../types';\nimport DateInput from '../../input/DateInput';\nimport MonthPicker from './MonthPicker';\n\nimport imgIconCalendar from '../../../assets/svg/icon_calendar.svg';\nimport imgTriangleDown from '../../../assets/svg/triangle_down.svg';\nimport {\n\tcreateCurrentMonth,\n\tcreateCurrentWeek,\n\tcreateLastXDays,\n\tcreateToday,\n\tcreateWholeDay,\n\tcreateWholeMonth,\n\tcreateYesterday\n} from '../periods';\n\ntype Props = {\n\tperiodName: string | undefined;\n\ttimezone?: string;\n\tonChange: (period: Period) => void;\n\tonShowCustomPeriod: ((show: boolean) => void) | undefined;\n};\n\nexport default function Menu({onChange, onShowCustomPeriod, periodName, timezone}: Props) {\n\tconst [visible, setVisible] = useState(false);\n\tconst [showDatePicker, setShowDatePicker] = useState(false);\n\tconst [showMonthPicker, setShowMonthPicker] = useState(false);\n\t// eslint-disable-next-line react-hooks/purity\n\tconst [datePickerDate, setDatePickerDate] = useState<number | undefined>(Date.now());\n\n\tfunction setPeriod(period: Period) {\n\t\tonChange(period);\n\t\tsetVisible(false);\n\t\tif (onShowCustomPeriod) {\n\t\t\tonShowCustomPeriod(false);\n\t\t}\n\t}\n\n\tfunction setPeriodSpecificDate(date: number | null | undefined) {\n\t\tsetPeriod(createWholeDay(date ?? Date.now(), timezone));\n\t\tsetShowDatePicker(false);\n\t\tsetDatePickerDate(date ?? undefined);\n\t}\n\n\tfunction setPeriodSpecificMonth(month: number, year: number) {\n\t\tsetPeriod(\n\t\t\tcreateWholeMonth(\n\t\t\t\tdayjs()\n\t\t\t\t\t.year(year)\n\t\t\t\t\t.month(month - 1)\n\t\t\t\t\t.valueOf(),\n\t\t\t\ttimezone\n\t\t\t)\n\t\t);\n\t\tsetShowMonthPicker(false);\n\t}\n\n\tfunction toggleDatePicker() {\n\t\tsetShowDatePicker(!showDatePicker);\n\t\tsetShowMonthPicker(false);\n\t}\n\n\tfunction toggleMonthPicker() {\n\t\tsetShowMonthPicker(!showMonthPicker);\n\t\tsetShowDatePicker(false);\n\t}\n\n\tfunction handleCustomPeriodSelect() {\n\t\tsetVisible(false);\n\t\tif (onShowCustomPeriod) {\n\t\t\tonShowCustomPeriod(true);\n\t\t}\n\t}\n\n\treturn (\n\t\t<div>\n\t\t\t<Popup\n\t\t\t\topen={visible}\n\t\t\t\tonOpenChange={setVisible}\n\t\t\t\thandler={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdata-testid=\"time-period-menu-button\"\n\t\t\t\t\t\ttitle={{\n\t\t\t\t\t\t\tid: 'trend.calendarMenu.calendar.timePeriod',\n\t\t\t\t\t\t\tdefaultValue: 'Time Period'\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<img src={imgIconCalendar} alt=\"calendar icon\" style={{width: 16, height: 16}} />\n\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t{!!periodName && (\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t{periodName}\n\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<img src={imgTriangleDown} alt=\"triangle down\" style={{width: 16, height: 16}} />\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Button>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<div className=\"di multimenu period-picker-multimenu\">\n\t\t\t\t\t<div className={`drop bottom ${visible ? 'show' : ''}`}>\n\t\t\t\t\t\t<div className={`left-box ${showDatePicker ? 'show' : ''}`}>\n\t\t\t\t\t\t\t<DateInput inline value={datePickerDate} onChange={setPeriodSpecificDate} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className={`left-box ${showMonthPicker ? 'show' : ''}`}>\n\t\t\t\t\t\t\t<MonthPicker onChange={setPeriodSpecificMonth} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"right-box\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"item\"\n\t\t\t\t\t\t\t\tdata-testid=\"today-button\"\n\t\t\t\t\t\t\t\tonClick={() => setPeriod(createToday(timezone))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.today\">Today</Trans>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"item\"\n\t\t\t\t\t\t\t\tdata-testid=\"yesterday-button\"\n\t\t\t\t\t\t\t\tonClick={() => setPeriod(createYesterday(timezone))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.yesterday\">Yesterday</Trans>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"item\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tdata-testid=\"last-7-days-button\"\n\t\t\t\t\t\t\t\t\tclassName=\"item-text\"\n\t\t\t\t\t\t\t\t\tonClick={() => setPeriod(createLastXDays(7, timezone))}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.lastSevenDays\">Last 7 days</Trans>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"item-more icon triangle\">\n\t\t\t\t\t\t\t\t\t<div className=\"item-more-submenu\">\n\t\t\t\t\t\t\t\t\t\t{[2, 3, 5, 10, 14, 30].map((days) => (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"subitem\"\n\t\t\t\t\t\t\t\t\t\t\t\tkey={days}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => setPeriod(createLastXDays(days, timezone))}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{days}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"item\"\n\t\t\t\t\t\t\t\tdata-testid=\"current-week-button\"\n\t\t\t\t\t\t\t\tonClick={() => setPeriod(createCurrentWeek(timezone))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.currentWeek\">Curr. Week</Trans>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"item\"\n\t\t\t\t\t\t\t\tdata-testid=\"current-month-button\"\n\t\t\t\t\t\t\t\tonClick={() => setPeriod(createCurrentMonth(timezone))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.currentMonth\">Curr. Month</Trans>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"item\" data-testid=\"day-button\" onClick={toggleDatePicker}>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.day\">Day</Trans>\n\t\t\t\t\t\t\t\t\t<div className=\"item-more icon dots\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"item\" data-testid=\"month-button\" onClick={toggleMonthPicker}>\n\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.month\">Month</Trans>\n\t\t\t\t\t\t\t\t\t<div className=\"item-more icon dots\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{onShowCustomPeriod !== undefined && (\n\t\t\t\t\t\t\t\t<div className=\"item\" data-testid=\"from-to-button\" onClick={handleCustomPeriodSelect}>\n\t\t\t\t\t\t\t\t\t<div className=\"item-text\">\n\t\t\t\t\t\t\t\t\t\t<Trans i18nKey=\"trend.calendarMenu.timePeriod.fromto\">From/to</Trans>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</div>\n\t);\n}\n","import {useTranslation} from '../../i18n';\n\nimport {Period} from './types';\nimport {\n\tcreateCurrentMonth,\n\tcreateCurrentWeek,\n\tcreateLastXDays,\n\tcreateToday,\n\tcreateWholeDay,\n\tcreateWholeMonth,\n\tcreateYesterday,\n\tperiodToDays\n} from './periods';\n\nfunction compare(period1: Period, period2: Period) {\n\treturn period1.tsStart === period2.tsStart && period1.tsEnd === period2.tsEnd;\n}\n\n/**\n * This hook takes a period and tries to find its translation.\n * @param period\n */\nexport default function usePeriodName(period: Period, timezone: string | undefined) {\n\tconst {t} = useTranslation();\n\n\tif (compare(period, createToday(timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.today', {defaultValue: 'Today'});\n\t}\n\n\tif (compare(period, createYesterday(timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.yesterday', {defaultValue: 'Yesterday'});\n\t}\n\n\tif (compare(period, createCurrentWeek(timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.currentWeek', {defaultValue: 'Curr. Week'});\n\t}\n\n\tif (compare(period, createCurrentMonth(timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.currentMonth', {defaultValue: 'Curr. Month'});\n\t}\n\n\tif (compare(period, createWholeDay((period.tsStart + period.tsEnd) / 2, timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.day', {defaultValue: 'Day'});\n\t}\n\n\tif (compare(period, createWholeMonth((period.tsStart + period.tsEnd) / 2, timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.month', {defaultValue: 'Month'});\n\t}\n\n\tconst days = periodToDays(period);\n\tif (compare(period, createLastXDays(days, timezone))) {\n\t\treturn t('trend.calendarMenu.timePeriod.lastDays', {\n\t\t\tdefaultValue: `Last ${days} days`,\n\t\t\tdays: days\n\t\t});\n\t}\n\n\treturn undefined;\n}\n","import {useState} from 'react';\n\nimport {Period} from './types';\nimport Inputs from './components/Inputs';\nimport Menu from './components/Menu';\nimport usePeriodName from './usePeriodName';\n\nexport type Props = {\n\t/** Period from start- to endpoint */\n\tperiod: Period;\n\n\t/** Function, executed on change */\n\tonChange: (period: Period) => void;\n\n\t/** Predefined period name */\n\tdefaultPeriodName?: string;\n\n\t/** Show only dropdown with calendar part without inputs? */\n\tinputsHiddenByDefault?: boolean;\n\n\t/** Should the menu be hidden? */\n\tmenuHidden?: boolean;\n\n\t/** Should the PeriodPicker be readOnly? */\n\treadOnly?: boolean;\n\n\t/** (optional) locale, if not set, the i18next.language is taken */\n\tlocale?: string;\n\n\t/** (optional) timezone */\n\ttimezone?: string;\n\t'data-testid'?: string;\n};\n\nexport default function PeriodPicker({\n\tperiod,\n\tonChange,\n\tinputsHiddenByDefault,\n\tmenuHidden,\n\treadOnly,\n\tlocale,\n\tdefaultPeriodName,\n\ttimezone,\n\t...props\n}: Props) {\n\tconst [showInputs, setShowInputs] = useState(!inputsHiddenByDefault);\n\tconst periodName = usePeriodName(period, timezone) ?? defaultPeriodName;\n\n\treturn (\n\t\t<div className=\"di period-picker\" data-testid={props['data-testid']}>\n\t\t\t{(!inputsHiddenByDefault || showInputs) && (\n\t\t\t\t<Inputs period={period} onChange={onChange} locale={locale} readOnly={readOnly} timezone={timezone} />\n\t\t\t)}\n\t\t\t{menuHidden || readOnly || (\n\t\t\t\t<Menu\n\t\t\t\t\tperiodName={periodName}\n\t\t\t\t\tonShowCustomPeriod={inputsHiddenByDefault ? setShowInputs : undefined}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\ttimezone={timezone}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","const CONFLICTING_IDS_DETECTION_DELAY = 500;\n\nconst calculateIdCountsInElement = (element: SVGSVGElement | Document) => {\n\treturn Array.from(element.querySelectorAll('[id]'))\n\t\t.map((element: Element) => element.getAttribute('id'))\n\t\t.reduce((acc: Record<string, number>, id: string | null) => {\n\t\t\tif (id) acc[id] = acc[id] + 1 || 1;\n\t\t\treturn acc;\n\t\t}, {});\n};\n\nconst findAllDuplicatedIdsInSvgElement = (svgElement: SVGSVGElement) => {\n\tconst idCountsInDocument = calculateIdCountsInElement(document);\n\tconst idCountsInSvg = calculateIdCountsInElement(svgElement);\n\treturn Object.keys(idCountsInSvg).filter((key) => idCountsInSvg[key] < idCountsInDocument[key]);\n};\n\nexport default function findConflicts(svgElement: SVGSVGElement, onConflict: (conflictingIds: string[]) => void) {\n\tconst timeoutId = setTimeout(() => {\n\t\tif (onConflict) {\n\t\t\tonConflict(findAllDuplicatedIdsInSvgElement(svgElement));\n\t\t}\n\t}, CONFLICTING_IDS_DETECTION_DELAY);\n\n\treturn () => clearTimeout(timeoutId);\n}\n","import {SetHyperlink} from '../types';\nimport {uuidV4} from '../../../modules/utils/uuidGen';\n\nexport const SVG_NS = 'http://www.w3.org/2000/svg';\n\nexport default function createHyperlinkModification(\n\telement: HTMLElement,\n\t{hoverColor, internalLink, link}: SetHyperlink,\n\tglobalStyleElement: HTMLStyleElement | null,\n\tonInternalLinkChange: ((link: string) => void) | undefined\n) {\n\tconst anchor = wrapIntoAnchor(element);\n\tif (!anchor) return;\n\n\tconst uniqueClassName = `a${uuidV4(8)}`;\n\telement.classList.add('anchor', uniqueClassName);\n\n\tif (hoverColor && globalStyleElement?.sheet) {\n\t\tglobalStyleElement.sheet.insertRule(\n\t\t\t`.di.svg-image .anchor.${uniqueClassName}:hover, .di.svg-image .anchor.${uniqueClassName}:hover * { stroke: ${hoverColor} !important; }`\n\t\t);\n\t}\n\tanchor.setAttributeNS(SVG_NS, 'xlink:href', '#');\n\tanchor.addEventListener('click', () =>\n\t\tinternalLink && onInternalLinkChange ? onInternalLinkChange(link) : window.open(link, '_newtab')\n\t);\n}\n\nfunction wrapIntoAnchor(wrappedElement: HTMLElement) {\n\tconst parentNode = wrappedElement.parentNode;\n\n\tif (!parentNode) {\n\t\treturn null;\n\t}\n\n\tconst siblings = parentNode.childNodes;\n\n\tif (!siblings) {\n\t\treturn null;\n\t}\n\n\tconst index = Array.from(siblings).findIndex((el) => el === wrappedElement);\n\tconst wrapperElement = document.createElementNS(SVG_NS, 'a');\n\twrapperElement.appendChild(wrappedElement);\n\tconst siblingNode = siblings[index] || null;\n\n\tif (siblingNode) {\n\t\tparentNode.insertBefore(wrapperElement, siblingNode);\n\t} else {\n\t\tparentNode.appendChild(wrapperElement);\n\t}\n\n\treturn wrapperElement;\n}\n","// SvgImage uses the @svgdotjs/svg.js library that doesn't work with the <svg:svg>...</svg:svg> elements.\n// The naive solution - removing of the \"svg:\" namespace - solves the problem.\nconst removeSvgNamespace = (xml: string) => xml.replace(/<svg:svg/g, '<svg').replace(/<\\/svg:svg/g, '</svg');\n\nexport const parseFromString = (imageData: string) => {\n\tconst parser = new DOMParser();\n\tconst xml = removeSvgNamespace(atob(imageData.replace('data:image/svg+xml;base64,', '')));\n\treturn parser.parseFromString(xml, 'image/svg+xml');\n};\n\nexport default function (imageData: string, diFieldId: string) {\n\tconst doc = parseFromString(imageData);\n\treturn doc.querySelectorAll(`[id^=\"${diFieldId}\"]`);\n}\n","import {Modification, PositionX, PositionY} from '../types';\n\nconst mergePositionChanges = (modifications: Array<Modification>): Array<Modification> => {\n\tconst positionModifications = modifications.filter(({type}) => type === 'positionX' || type === 'positionY');\n\tconst restModifications = modifications.filter(({type}) => type !== 'positionX' && type !== 'positionY');\n\tconst positionByAxisModifications = positionModifications.reduce(\n\t\t(\n\t\t\tacc: {\n\t\t\t\tx: PositionX | null;\n\t\t\t\ty: PositionY | null;\n\t\t\t},\n\t\t\tmodification\n\t\t) => {\n\t\t\tif (modification.type === 'positionX') {\n\t\t\t\treturn {...acc, x: modification};\n\t\t\t} else if (modification.type === 'positionY') {\n\t\t\t\treturn {...acc, y: modification};\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tx: null,\n\t\t\ty: null\n\t\t}\n\t);\n\n\tif (positionByAxisModifications.x && positionByAxisModifications.y) {\n\t\treturn restModifications.concat([\n\t\t\t{\n\t\t\t\ttype: 'positionXY',\n\t\t\t\ttarget: positionByAxisModifications.x.target,\n\t\t\t\tpositionX: positionByAxisModifications.x.position,\n\t\t\t\tpositionY: positionByAxisModifications.y.position\n\t\t\t}\n\t\t]);\n\t} else if (positionByAxisModifications.x) {\n\t\treturn restModifications.concat([positionByAxisModifications.x]);\n\t} else if (positionByAxisModifications.y) {\n\t\treturn restModifications.concat([positionByAxisModifications.y]);\n\t} else {\n\t\treturn restModifications;\n\t}\n};\n\nexport default (modifications: Array<Modification>): Array<Modification> => {\n\tconst modificationsByTarget = modifications.reduce<Record<string, Modification[]>>(\n\t\t(acc, modification) => ({\n\t\t\t...acc,\n\t\t\t[modification.target]: [...(acc[modification.target] || []), modification]\n\t\t}),\n\t\t{}\n\t);\n\treturn Object.keys(modificationsByTarget).reduce(\n\t\t(acc: Array<Modification>, target) => acc.concat(mergePositionChanges(modificationsByTarget[target])),\n\t\t[]\n\t);\n};\n","import {SVG} from '@svgdotjs/svg.js';\n\nimport {PositionX, PositionXY, PositionY} from '../types';\n\nconst limitPercentagePosition = (position: number): number => Math.max(0, Math.min(100, position));\n\nexport default function createPositionModification(\n\telement: HTMLElement,\n\tmodification: PositionX | PositionY | PositionXY,\n\tsvgElement: SVGSVGElement\n) {\n\tconst svg = SVG(svgElement);\n\tconst targetId = element.getAttribute('id') || '';\n\tconst targetEl = svg.findOne(`#${targetId}`) as any;\n\tconst boundariesEl = svg.findOne(`#${targetId}-boundaries`) as any;\n\tconst bbox = boundariesEl ? boundariesEl.bbox() : svg.viewbox();\n\n\tif (modification.type === 'positionX') {\n\t\ttargetEl.x(bbox.x + (limitPercentagePosition(modification.position) * bbox.width) / 100);\n\t} else if (modification.type === 'positionY') {\n\t\ttargetEl.y(bbox.y + (limitPercentagePosition(modification.position) * bbox.height) / 100);\n\t} else {\n\t\ttargetEl.x(bbox.x + (limitPercentagePosition(modification.positionX) * bbox.width) / 100);\n\t\ttargetEl.y(bbox.y + (limitPercentagePosition(modification.positionY) * bbox.height) / 100);\n\t}\n}\n","import {SVG} from '@svgdotjs/svg.js';\n\nimport {Modification} from '../types';\nimport createHyperlinkModification from './createHyperlinkModification';\nimport {parseFromString} from './getMutableNodeList';\nimport transformPositionModifications from './transformPositionModifications';\nimport createPositionModification from './createPositionModification';\n\nexport default function renderSvg(\n\tsvgWrapper: HTMLDivElement,\n\timageData: string,\n\tmodifications: Modification[] | undefined,\n\tglobalStyleElement: HTMLStyleElement | null,\n\tonInternalLinkChange: ((link: string) => void) | undefined\n): SVGSVGElement | null {\n\tconst imageDocument = parseFromString(imageData);\n\tconst svgElement = imageDocument.querySelector('svg');\n\n\tif (svgElement) {\n\t\tsvgWrapper.style.height = '100%';\n\t\tsvgWrapper.innerHTML = '';\n\t\tsvgElement.style.height = '100%';\n\t\tsvgElement.style.width = '100%';\n\t\tsvgElement.classList.add('di', 'svg-image');\n\t\tif (!svgElement.getAttribute('viewBox')) {\n\t\t\tsvgElement.setAttribute('viewBox', '');\n\t\t}\n\t\tif (!svgElement.getAttribute('preserveAspectRatio')) {\n\t\t\tsvgElement.setAttribute('preserveAspectRatio', 'xMidYMid');\n\t\t}\n\t\tsvgWrapper.appendChild(svgElement);\n\t\tapplyModifications(svgElement, modifications, globalStyleElement, onInternalLinkChange);\n\t\treturn svgElement;\n\t}\n\treturn null;\n}\n\nfunction applyModifications(\n\tsvgElement: SVGSVGElement,\n\tmodifications: Modification[] | undefined,\n\tglobalStyleElement: HTMLStyleElement | null,\n\tonInternalLinkChange: ((link: string) => void) | undefined\n) {\n\tif (!modifications || !modifications.length) return;\n\n\tfor (const modification of sortModifications(transformPositionModifications(modifications))) {\n\t\tconst element = svgElement.querySelector<HTMLElement>(`[id=${modification.target}]`);\n\n\t\tif (element) {\n\t\t\tapplyModification(element, modification, svgElement, globalStyleElement, onInternalLinkChange);\n\t\t}\n\t}\n}\n\nfunction applyModification(\n\telement: HTMLElement,\n\tmodification: Modification,\n\tsvgElement: SVGSVGElement,\n\tglobalStyleElement: HTMLStyleElement | null,\n\tonInternalLinkChange: ((link: string) => void) | undefined\n) {\n\tswitch (modification.type) {\n\t\tcase 'visibility':\n\t\t\telement.setAttribute('visibility', modification.visible ? 'visible' : 'hidden');\n\t\t\tbreak;\n\n\t\tcase 'text': {\n\t\t\tconst tspan = element.querySelector('tspan');\n\n\t\t\tif (tspan) {\n\t\t\t\ttspan.textContent = modification.text;\n\t\t\t} else {\n\t\t\t\telement.textContent = modification.text;\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'color': {\n\t\t\tconst {color} = modification;\n\n\t\t\tconst changeColor = (el: Element) => {\n\t\t\t\tel.setAttribute('fill', color);\n\t\t\t\t(el as SVGElement).style.fill = color;\n\t\t\t};\n\n\t\t\tchangeColor(element);\n\t\t\telement.querySelectorAll('g, path').forEach(changeColor);\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hyperlink':\n\t\t\tcreateHyperlinkModification(element, modification, globalStyleElement, onInternalLinkChange);\n\t\t\tbreak;\n\n\t\tcase 'eventListener':\n\t\t\telement.addEventListener(modification.eventType, modification.listener, modification.options);\n\t\t\tbreak;\n\n\t\tcase 'classNames':\n\t\t\telement.classList.add(...modification.classNames);\n\n\t\t\tbreak;\n\n\t\tcase 'positionX':\n\t\tcase 'positionY':\n\t\tcase 'positionXY':\n\t\t\tcreatePositionModification(element, modification, svgElement);\n\t\t\tbreak;\n\n\t\tcase 'rotation': {\n\t\t\t// @ts-expect-error\n\t\t\tSVG(element).rotate(modification.degrees);\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error('Unknown modification');\n\t}\n}\n\n// rotation moved to the end of the array\nfunction sortModifications(modifications: Modification[]) {\n\treturn modifications.sort(({type: type1}, {type: type2}) => (type1 !== type2 && type2 === 'rotation' ? -1 : 1));\n}\n","import {useEffect, useRef} from 'react';\nimport {useHistory} from 'react-router-dom';\n\nimport {Modification} from './types';\nimport findConflicts from './utils/findConflicts';\nimport renderSvg from './utils/renderSvg';\n\nexport type Props = {\n\t/** base64 encoded content of the SVG file */\n\timageData: string | null | undefined;\n\n\t/** list of modifications that should be applied to the svg elements */\n\tmodifications?: Modification[];\n\n\t/** called with list of conflicting IDs which means IDs existing in the DOM and duplicated by the elements from the SVG */\n\tonConflict?: (conflictingIds: string[]) => void;\n};\n\nfunction useGlobalStyleElement() {\n\tconst styleElementRef = useRef<HTMLStyleElement | null>(null);\n\n\tuseEffect(() => {\n\t\tconst styleElement = document.createElement('style');\n\t\t// WebKit hack\n\t\tstyleElement.appendChild(document.createTextNode(''));\n\n\t\tif (document && document.head) {\n\t\t\tdocument.head.appendChild(styleElement);\n\t\t}\n\t\tstyleElementRef.current = styleElement;\n\n\t\treturn () => {\n\t\t\tif (document && document.head && styleElement) {\n\t\t\t\tdocument.head.removeChild(styleElement);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// eslint-disable-next-line react-hooks/refs\n\treturn styleElementRef.current;\n}\n\nexport default function SvgImage({imageData, modifications, onConflict}: Props) {\n\tconst svgWrapperRef = useRef<HTMLDivElement>(null);\n\tconst styleElement = useGlobalStyleElement();\n\tconst {push} = useHistory();\n\n\tuseEffect(() => {\n\t\tconst {current: wrapper} = svgWrapperRef;\n\n\t\tif (wrapper && imageData) {\n\t\t\tconst svgElement = renderSvg(wrapper, imageData, modifications, styleElement, push);\n\t\t\tif (svgElement && onConflict) {\n\t\t\t\treturn findConflicts(svgElement, onConflict);\n\t\t\t}\n\t\t}\n\t}, [imageData, modifications, onConflict, push, styleElement]);\n\n\treturn <div ref={svgWrapperRef} />;\n}\n","import {parseFromString} from './getMutableNodeList';\n\nexport default (imageData: string) => {\n\ttry {\n\t\tconst imageDoc = parseFromString(imageData);\n\t\treturn imageDoc.querySelector('svg');\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t} catch (e: unknown) {\n\t\treturn null;\n\t}\n};\n","import getSvgElement from './getSvgElement';\n\nexport default (imageData: string): boolean => {\n\tconst svgElement = getSvgElement(imageData);\n\treturn !!svgElement && !!svgElement.style;\n};\n","import {Component} from 'react';\nimport Highcharts from 'highcharts';\nimport HighchartsReact from 'highcharts-react-official';\nimport {isEqual} from 'lodash';\n\nfunction createTooltip(header: string, name: string, value: number | string) {\n\treturn `<div>${header}</div><div>${name}: <strong>${value}</strong></div>`;\n}\n\nconst initialOptions: Record<string, any> = {\n\tglobal: {\n\t\tuseUTC: false\n\t},\n\tchart: {\n\t\tstyle: {\n\t\t\tfontFamily: 'arial'\n\t\t},\n\t\tplotBackgroundColor: null,\n\t\tplotBorderWidth: 0,\n\t\tplotShadow: false\n\t},\n\tcredits: {\n\t\tenabled: false\n\t},\n\tlegend: {\n\t\talign: 'right',\n\t\tverticalAlign: 'center',\n\t\tlayout: 'vertical'\n\t},\n\ttitle: {\n\t\tuseHTML: true\n\t},\n\tplotOptions: {\n\t\tpie: {\n\t\t\tdataLabels: {\n\t\t\t\tenabled: false\n\t\t\t},\n\t\t\tshowInLegend: true,\n\t\t\tstartAngle: -90,\n\t\t\tendAngle: 270\n\t\t}\n\t},\n\ttooltip: {\n\t\tuseHTML: true,\n\n\t\tformatter() {\n\t\t\treturn createTooltip('', this.point.name, this.point.y);\n\t\t}\n\t},\n\txAxis: {\n\t\ttype: 'category'\n\t},\n\tyAxis: {\n\t\tmin: 0,\n\t\ttitle: {\n\t\t\ttext: ''\n\t\t}\n\t},\n\toptions: {\n\t\tlgo: 123\n\t}\n};\n\ntype Item = {\n\tlabel: string;\n\tvalue: number;\n};\n\nexport type Props = {\n\t/** 'pie' | 'column'*/\n\ttype: 'pie' | 'column';\n\n\t/** title displayed above the chart*/\n\ttitle?: string;\n\n\t/** tooltip title displayed when the chart item is hovered */\n\ttooltipTitle?: string;\n\n\t/** array of pairs {label, value} displayed in chart */\n\titems: Array<Item>;\n\n\t/** Optional function allowing to set custom value formatter */\n\tvalueFormatter?: (value: number) => string;\n\n\t/** Optional click handler */\n\tonClick?: (index: number) => void;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** Optional function allowing to modify highcharts configuration */\n\tupdateOptions?: (options: Record<string, any>) => Record<string, any>;\n};\n\nconst getClickConfiguration = (onClick: ((index: number) => void) | null | undefined) => {\n\treturn onClick\n\t\t? {\n\t\t\t\tseries: {\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\tpoint: {\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tclick: function () {\n\t\t\t\t\t\t\t\tonClick(this.index);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} as Record<string, any>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t: {};\n};\n\n/**\n * Displays the provided data in form of the column chart or pie chart.\n */\nexport default class Chart extends Component<Props, Record<string, any>> {\n\tstate: Record<string, any> = {};\n\tchart: any = null;\n\tro: ResizeObserver | null | undefined = null;\n\n\tcomponentDidMount() {\n\t\tconst {type, title, items, tooltipTitle, valueFormatter, onClick} = this.props;\n\t\tthis.setState({\n\t\t\t...initialOptions,\n\t\t\tplotOptions: {...initialOptions.plotOptions, ...getClickConfiguration(onClick)},\n\t\t\ttooltip: {\n\t\t\t\t...initialOptions.tooltip,\n\n\t\t\t\tformatter() {\n\t\t\t\t\tconst format = valueFormatter || ((value) => value);\n\n\t\t\t\t\treturn createTooltip(tooltipTitle || '', this.point.name, format(this.point.y));\n\t\t\t\t}\n\t\t\t},\n\t\t\tlegend: {...initialOptions.legend, enabled: type === 'pie'},\n\t\t\tyAxis: {\n\t\t\t\t...initialOptions.yAxis,\n\t\t\t\tenabled: type === 'column',\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: title || ''\n\t\t\t\t}\n\t\t\t},\n\t\t\tseries: [\n\t\t\t\t{\n\t\t\t\t\ttype,\n\t\t\t\t\tinnerSize: '50%',\n\t\t\t\t\tdata: items.map(({label, value}) => [label, value])\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\t// Workaround of a bug: title must be set in the next cycle of the events loop to be positioned correctly.\n\t\tsetTimeout(() => {\n\t\t\tthis.setState({\n\t\t\t\ttitle: {...initialOptions.title, text: type === 'column' ? '' : title || ''}\n\t\t\t});\n\t\t}, 0);\n\t}\n\n\tcomponentDidUpdate(prevProps: Props) {\n\t\tconst {type, title, items, tooltipTitle, valueFormatter, onClick} = this.props;\n\n\t\tif (title !== prevProps.title) {\n\t\t\tthis.setState({\n\t\t\t\ttitle: {...this.state.title, text: type === 'column' ? '' : title || ''},\n\t\t\t\tyAxis: {\n\t\t\t\t\t...this.state.yAxis,\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\ttext: title || ''\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (type !== prevProps.type) {\n\t\t\tthis.setState({\n\t\t\t\tlegend: {...this.state.legend, enabled: type === 'pie'},\n\t\t\t\ttitle: {\n\t\t\t\t\ttext: type === 'column' ? '' : title || ''\n\t\t\t\t},\n\t\t\t\tyAxis: {\n\t\t\t\t\t...this.state.yAxis,\n\t\t\t\t\tenabled: type === 'column',\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\ttext: type === 'column' ? title || '' : ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tinnerSize: '50%',\n\t\t\t\t\t\tdata: items.map(({label, value}) => [label, value])\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\n\t\tif (!isEqual(items, prevProps.items)) {\n\t\t\tthis.setState({\n\t\t\t\tseries: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tinnerSize: '50%',\n\t\t\t\t\t\tdata: items.map(({label, value}) => [label, value])\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\ttooltipTitle !== prevProps.tooltipTitle ||\n\t\t\tvalueFormatter !== prevProps.valueFormatter ||\n\t\t\tonClick !== prevProps.onClick\n\t\t) {\n\t\t\tthis.setState({\n\t\t\t\ttooltip: {\n\t\t\t\t\t...initialOptions.tooltip,\n\n\t\t\t\t\tformatter() {\n\t\t\t\t\t\tconst format = valueFormatter || ((value) => value);\n\n\t\t\t\t\t\treturn createTooltip(tooltipTitle || '', this.point.name, format(this.point.y));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tplotOptions: {...initialOptions.plotOptions, ...getClickConfiguration(onClick)}\n\t\t\t});\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.ro && this.chart?.renderTo) {\n\t\t\tthis.ro.unobserve(this.chart.renderTo);\n\t\t}\n\t\tthis.chart = null;\n\t\tthis.ro = null;\n\t}\n\n\thandleChart = (chart: any) => {\n\t\tthis.chart = chart;\n\t\tthis.ro = new ResizeObserver(() => {\n\t\t\tthis.chart?.reflow();\n\t\t});\n\t\tthis.ro.observe(this.chart.renderTo);\n\t};\n\n\trender() {\n\t\tconst options = this.props.updateOptions ? this.props.updateOptions(this.state) : this.state;\n\t\treturn (\n\t\t\t<HighchartsReact\n\t\t\t\thighcharts={Highcharts}\n\t\t\t\toptions={options}\n\t\t\t\tcontainerProps={{\n\t\t\t\t\tclassName: this.props.className\n\t\t\t\t}}\n\t\t\t\tcallback={this.handleChart}\n\t\t\t/>\n\t\t);\n\t}\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nlet raf = callback => +setTimeout(callback, 16);\nlet caf = num => clearTimeout(num);\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = callback => window.requestAnimationFrame(callback);\n caf = handle => window.cancelAnimationFrame(handle);\n}\nlet rafUUID = 0;\nconst rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nconst wrapperRaf = (callback, times = 1) => {\n rafUUID += 1;\n const id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n const realId = raf(() => {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = id => {\n const realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = () => rafIds;\n}\nvar _default = exports.default = wrapperRaf;","import {useRef, useEffect, ComponentType, FC, ReactElement, ReactNode} from 'react';\nimport type {SliderProps} from '@rc-component/slider';\nimport raf from '@rc-component/util/lib/raf';\nimport Slider from '@rc-component/slider';\nimport type {TooltipRef} from '@rc-component/tooltip';\nimport Tooltip from '@rc-component/tooltip';\n\ninterface HandleTooltipProps {\n\tvalue: number;\n\tchildren: ReactElement;\n\tvisible: boolean;\n\ttipFormatter?: (value: number) => ReactNode;\n}\n\nconst HandleTooltip: FC<HandleTooltipProps> = (props) => {\n\tconst {value, children, visible, tipFormatter = (val) => `${val}`, ...restProps} = props;\n\n\tconst tooltipRef = useRef<TooltipRef | null>(null);\n\tconst rafRef = useRef<number | null>(null);\n\n\tfunction cancelKeepAlign() {\n\t\tif (rafRef.current) {\n\t\t\traf.cancel(rafRef.current);\n\t\t}\n\t}\n\n\tfunction keepAlign() {\n\t\trafRef.current = raf(() => {\n\t\t\ttooltipRef.current?.forceAlign();\n\t\t});\n\t}\n\n\tuseEffect(() => {\n\t\tif (visible) {\n\t\t\tkeepAlign();\n\t\t} else {\n\t\t\tcancelKeepAlign();\n\t\t}\n\n\t\treturn cancelKeepAlign;\n\t}, [value, visible]);\n\n\treturn (\n\t\t<Tooltip\n\t\t\tplacement=\"top\"\n\t\t\toverlay={tipFormatter(value)}\n\t\t\tref={tooltipRef}\n\t\t\talign={{offset: [0, -10]}}\n\t\t\tvisible={visible}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{children}\n\t\t</Tooltip>\n\t);\n};\n\nexport const handleRender: SliderProps['handleRender'] = (node, props) => (\n\t<HandleTooltip value={props.value} visible={props.dragging}>\n\t\t{node}\n\t</HandleTooltip>\n);\n\ninterface TooltipSliderProps extends SliderProps {\n\ttipFormatter?: (value: number) => ReactNode;\n\ttipProps?: ComponentType<typeof Tooltip>;\n}\n\nconst TooltipSlider: FC<TooltipSliderProps> = ({tipFormatter, tipProps, ...props}) => {\n\tconst tipHandleRender: SliderProps['handleRender'] = (node, handleProps) => (\n\t\t<HandleTooltip\n\t\t\tvalue={handleProps.value}\n\t\t\tvisible={handleProps.dragging}\n\t\t\ttipFormatter={tipFormatter}\n\t\t\t{...tipProps}\n\t\t>\n\t\t\t{node}\n\t\t</HandleTooltip>\n\t);\n\n\treturn <Slider {...props} handleRender={tipHandleRender} />;\n};\n\nexport default TooltipSlider;\n","import {useCallback, useEffect, useState} from 'react';\n\nexport default function useLimitStyling(limit: number | undefined, min: number, max: number) {\n\tconst [slider, setSlider] = useState<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\tif (slider) {\n\t\t\tconst containerEl = slider.querySelector('.rc-slider-rail');\n\t\t\tif (!containerEl) throw new Error('.rc-slider-rail element missing');\n\t\t\tconst disabledAreaEl = containerEl?.querySelector(`.disabled-area-element`) as HTMLDivElement;\n\t\t\tconst sliderWidth = containerEl.getBoundingClientRect().width;\n\n\t\t\tif (disabledAreaEl) {\n\t\t\t\tif (limit == null) {\n\t\t\t\t\tdisabledAreaEl.remove();\n\t\t\t\t} else {\n\t\t\t\t\tconst width = Math.round(((max - limit) / (max - min)) * sliderWidth);\n\t\t\t\t\tdisabledAreaEl.style.width = `${width}px`;\n\t\t\t\t}\n\t\t\t} else if (limit != null) {\n\t\t\t\tconst width = Math.round(((max - limit) / (max - min)) * sliderWidth);\n\t\t\t\tconst disabledAreaEl = document.createElement('div');\n\t\t\t\tdisabledAreaEl.classList.add('disabled-area-element');\n\t\t\t\tdisabledAreaEl.style.width = `${width}px`;\n\t\t\t\tcontainerEl.appendChild(disabledAreaEl);\n\t\t\t}\n\t\t}\n\t}, [limit, slider, min, max]);\n\n\tconst updateLimitAreaSize = useCallback(() => {\n\t\tif (slider && limit != null) {\n\t\t\tconst containerEl = slider.querySelector('.rc-slider-rail');\n\t\t\tif (!containerEl) throw new Error('.rc-slider-rail element missing');\n\t\t\tconst disabledAreaEl = containerEl?.querySelector(`.disabled-area-element`) as HTMLDivElement;\n\t\t\tconst sliderWidth = containerEl.getBoundingClientRect().width;\n\t\t\tif (disabledAreaEl) {\n\t\t\t\tconst width = Math.round(((max - limit) / (max - min)) * sliderWidth);\n\t\t\t\tdisabledAreaEl.style.width = `${width}px`;\n\t\t\t}\n\t\t}\n\t}, [limit, max, min, slider]);\n\n\tuseEffect(() => {\n\t\tif (slider) {\n\t\t\tconst resizeObserver = new ResizeObserver(() => updateLimitAreaSize());\n\n\t\t\tresizeObserver.observe(slider);\n\t\t}\n\t}, [slider, updateLimitAreaSize]);\n\n\treturn setSlider;\n}\n","import RcSlider from '@rc-component/slider';\nimport RcSliderWithTooltip from './RcSliderWithTooltip';\n\nimport useLimitStyling from './useLimitStyling';\n\nexport type Props = {\n\t/** minimum value the slider renders */\n\tmin: number;\n\n\t/** maximum value the slider renders */\n\tmax: number;\n\n\t/** step in which increments/decrements have to be made */\n\tstep?: number;\n\n\t/** current value of the slider */\n\tvalue: number;\n\n\t/** show or hide tooltip (default: true) */\n\ttooltip?: boolean;\n\n\t/** object containing key-value pairs to label the slider */\n\tlabels?: Record<string, number | string>;\n\n\t/** formats the value in label or tooltip */\n\tformat?: (value: number) => string;\n\n\t/** gets called whenever the slider handle is being dragged or clicked */\n\tonChange?: (value: number) => void;\n\n\t/** gets called whenever the user stops dragging the slider handle */\n\tonChangeComplete?: (value: number) => void;\n\n\t/** maximum value the slider can hold */\n\tlimit?: number;\n};\n\n/**\n * Enables picking the desired value from a specified range.\n * Can have a tooltip and labels\n */\nconst Slider = ({min, max, step, value, tooltip = true, labels, format, onChange, onChangeComplete, limit}: Props) => {\n\tconst setSliderRef = useLimitStyling(limit, min, max);\n\n\tconst handleChange = (value: number | number[]) => {\n\t\tif (!onChange) return;\n\t\tconst numericValue = typeof value === 'number' ? value : value[0];\n\t\tconst allowedValue = limit != null ? Math.min(numericValue, limit) : numericValue;\n\t\tonChange(allowedValue);\n\t};\n\n\tconst handleChangeComplete = () => {\n\t\tif (!onChangeComplete) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeComplete(value);\n\t};\n\n\tconst basicProps = {\n\t\tmin,\n\t\tmax,\n\t\tstep,\n\t\tvalue,\n\t\tonChange: handleChange,\n\t\tonChangeComplete: handleChangeComplete,\n\t\tmarks: labels\n\t};\n\n\treturn (\n\t\t<div className=\"di slider\" ref={setSliderRef}>\n\t\t\t{tooltip ? (\n\t\t\t\t<RcSliderWithTooltip {...basicProps} className=\"di slider with-tooltip\" tipFormatter={format} />\n\t\t\t) : (\n\t\t\t\t<RcSlider {...basicProps} className=\"di slider\" />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Slider;\n"],"names":["groupNamesToToastIds","globalErrorMessageBoxOptions","setGlobalErrorMessageBoxOptions","options","storeGroupName","groupName","toastId","messageBoxSuccess","content","toast","messageBoxInfo","messageBoxWarn","messageBoxError","messageBoxDismissSingle","id","messageBoxDismissGroup","messageBoxDismissAll","MessageBoxContainer","jsx","ToastContainer","Slide","uuidV4","length","uuid","i","random","alphabet","nanoid10","customAlphabet","Trans","useTranslation","initializeTranslation","transComponent","useTranslationHook","removeDuplicatesFromArray","arr","index","removeNodeIds","nodeIds","nodeIdsToRemove","mergeNodeIdArrays","nodeIds1","nodeIds2","intersectArrays","array1","array2","value","getTreeSize","node","l","child","getAllLeaves","childNodes","getAllLeafIds","convertToTree","childNodeKey","idKey","displayNameKey","typeKey","lazyLoadableKey","nodeMetaData","leafMetaData","leafTypeValue","image","leafResolver","nodeTypeValue","expandedImage","closedImage","nodeResolver","convert","hierarchicalData","nodePath","rootNode","name","children","lazyLoadable","isNode","isLeaf","path","originalNode","patchNode","patch","patchedChildren","findNodeAndApplyPatch","nodeId","childNode","getTreeNodePathByIdArray","currentNode","idToFind","getTreeNodePathById","nodePathArray","ColorPickerPopper","isOpen","onOpenChange","className","style","placement","Popup","GridColorPicker","onOpenStateChange","direction","colors","onPick","pickerStyle","pickerClassName","inline","open","setOpen","useState","picker","classNames","color","isValid","pattern","required","_ValidatedTextInput","React","onChange","valid","invalidStyle","props","otherProps","ValidatedTextInput","ColorTextInput","placeholder","text","setText","handleChange","useEffect","VALIDATE_HEX_COLOR_REGEX","VALIDATE_RGB_COLOR_REGEX","convertRgbaToRgb","parse","convertToHex","convertToRgb","GradientColorPicker","allowTextInput","opacitySlider","hexValue","rgbValue","ColorPicker","HexColorPicker","RgbaStringColorPicker","RgbStringColorPicker","jsxs","supportedLocales","isLocaleSupported","locale","dayjs","utc","timezone","localeData","localizedFormat","customParseFormat","registerLanguage","localeSegment1","localeSegment2","module","Locales","registerLocale","changeDayjsLocale","dayjsLocale","isInputValid","inputToDate","inputToTzDate","DateInput","forwardRef","clearable","readOnly","wrapperClassName","ref","setPattern","t","setValid","popupOpen","setPopupOpen","inputText","setInputText","debouncedSetPopupActive","useMemo","debounce","language","i18n","formattedDate","useCallback","handleInputTextChange","prevDate","newDate","handlePickerChange","date","handleClear","DatePicker","cx","e","Button","Icon","UrnInput","event","editMode","Prompt","title","message","onAccept","onCancel","inputPlaceholder","cancelButtonLabel","acceptButtonLabel","inputRef","useRef","setValue","Modal","withPrompt","WrappedComponent","resolve","createElement","isModifiedEvent","RouteLink","to","confirm","keyboardShortcut","history","useHistory","pushRoute","location","handleKeyEvent","handleClickEvent","href","InfoBox","type","hideable","icon","inputMessage","visible","setVisible","getMessage","defaultValue","rest","CSS","transform","x","y","scaleX","scaleY","_ref","property","duration","easing","resolvePath","basePath","match","divider","TabHeader","draggingDisabled","attributes","listeners","setNodeRef","transition","useSortable","horizontalListSortingStrategy","pathname","useLocation","Link","RouteTabs","pages","onOrderChange","dragging","setDragging","state","determineBasePath","lastPathSegment","page","handleDragEnd","active","over","oldIndex","newIndex","DndContext","closestCenter","restrictToHorizontalAxis","SortableContext","renderHeading","headingTitle","pageDisabled","Switch","renderBody","Route","Redirect","defaultIconFolderOpen","defaultIconFolderClosed","defaultIconFolderLoading","defaultIconLeafNode","SelectionState","Skeleton","lastChild","NodeImage","leafNode","expanded","isLoading","onExpand","imageSrc","NodeInfo","onSelect","selectionState","isLastChild","selected","Node","Component","lazyLoadingFunction","toggled","selectNodes","deselectNodes","selectedNodes","prevProps","prevState","prevSelectedNodes","prevTreeSize","prevExpanded","prevSelectionState","prevIsLoading","treeSize","leafIds","intersection","commonNodeProps","TreeView","nodes","onDeselect","dataSet","underNode","tree","subTree","newTree","newTreeSize","treeData","prevNodes","item","iconSettings","MultiMenuContext","MultiMenuFunctional","menuButton","contentVisible","setContentVisible","toggleMenu","Context","sizeOptions","Pagination","onChangePage","totalPages","onChangeSize","size","changePageDebouncedRef","changePageDebounced","pageRaw","setPageRaw","menuOpen","setMenuOpen","goToFirstPage","goToPrevPage","goToNextPage","goToLastPage","handleChangeSize","newSize","handlePageInputChange","rawValue","parsedPage","handlePageInputBlur","isLastPage","Fragment","MultiMenu","sizeOption","getInitialValueFromColumnDef","columnDef","ReactableTextFilter","changeFilter","newValue","makePageable","items","paginationSettings","customSortFunction","sort","sortItems","getDefaultFilterFn","filterType","fieldName","filterValue","filterItems","columnDefs","filterSettings","columnName","findColumnDefByName","cd","itemA","itemB","a","b","reverseFactor","extendColumnDefsWithCheckboxes","onSelectChange","onSelectAllChange","selectedAll","selectedItems","uniqueItemKey","Checkbox","getClassName","tableName","getSortedOptions","compareOptions","orderBy","option","SelectWithSearch","createRef","specialOptions","sortedOptions","inputValue","classes","isEqual","noResultsMessage","loading","disabled","Select","newItem","ReactableTableFilterRow","onFilter","setState","onFilterRef","prev","merged","prevKeys","mergedKeys","sameKeys","k","sameValues","v","newState","getFilterByColumnDef","textFilter","optionsFilter","filterOptions","searchableOptions","opt","toggleSortDirection","ReactableTableHeader","onSort","label","isTranslationDescriptor","ReactableTableRow","rowDef","textAlign","cursor","whiteSpace","onClick","ReactableTable","pageable","clickable","messageWhenEmpty","testId","containerRef","tableRef","showScrollingAdvice","setShowScrollingAdvice","neverShowScrollingAdvice","setNeverShowScrollingAdvice","hasInitialized","setHasInitialized","HIDE_SCROLLING_ADVICE_PATH","LOCALSTORAGE_KEY","neverShowScrollingAdviceRef","updateScrollingAdvice","localValue","hasLocalValue","neverShow","readAccountObject","showFilterRow","col","SpinnerContainer","writeAccountObject","Reactable","currentPage","clampedPage","showPagination","DEFAULT_PAGINATION_SETTINGS","ReactableWithClientSidePagination","forceResetPaginationOnItemsChange","maxPageNumber","onFilteredItemsChanged","filteredItems","onContentChange","onSelectedItemsChange","newSelectedItems","key","visibleItems","uniqWith","difference","prevItems","settings","prevSettings","selectable","finalColumnDefs","_FileUpload","accepted","rejected","files","onSelectFile","file","newFiles","f","accept","Preview","dropHint","hoverHint","acceptHint","rejectHint","onRemoveFile","onDownloadFile","onDropRejected","onDropAccepted","maxSize","multiple","dropHintOrDefault","hoverHintOrDefault","acceptHintOrDefault","rejectHintOrDefault","Dropzone","getRootProps","getInputProps","isDragAccept","isDragReject","isDragActive","FileUpload","PreviewImage","url","imageSize","onDragOver","ImageUpload","imageUrl","dragOverPreview","arrowBackIcon","ContentHeader","parentPageLink","subPagePathPrefixArray","subPagePathPrefix","subtitle","push","goToParentPage","pathPrefix","printStringOrMessage","stringOrMessage","formatTime","error","DateTimeInput","timestamp","warning","time","setTime","timeValue","handleChangeDate","fromTextField","currentDate","handleChangeTime","hours","minutes","tryFixTime","SelectWithSearchAsync","backendItem","labelKey","valueKey","currentItem","cache","selectItem","input","searchByQuery","number","searchById","menuPortalTarget","AsyncPaginate","MultiMenuItem","linkTo","dataTestId","ONE_HOUR","Inputs","period","showWarningTarget","setShowWarningTarget","warningTimeoutRef","endDateRef","startDate","endDate","showWarning","target","handleChangeStartDate","incorrect","tsEnd","newPeriod","handleChangeEndDate","MonthPicker","month","selectedMonth","selectedYear","displayedYear","year","imgIconCalendar","imgTriangleDown","dayjsTz","ts","createToday","createYesterday","createCurrentWeek","createCurrentMonth","createWholeDay","tsMiddle","createWholeMonth","createLastXDays","days","tsStart","DAY_TO_MILLIS","periodToDays","Menu","onShowCustomPeriod","periodName","showDatePicker","setShowDatePicker","showMonthPicker","setShowMonthPicker","datePickerDate","setDatePickerDate","setPeriod","setPeriodSpecificDate","setPeriodSpecificMonth","toggleDatePicker","toggleMonthPicker","handleCustomPeriodSelect","compare","period1","period2","usePeriodName","PeriodPicker","inputsHiddenByDefault","menuHidden","defaultPeriodName","showInputs","setShowInputs","CONFLICTING_IDS_DETECTION_DELAY","calculateIdCountsInElement","element","acc","findAllDuplicatedIdsInSvgElement","svgElement","idCountsInDocument","idCountsInSvg","findConflicts","onConflict","timeoutId","SVG_NS","createHyperlinkModification","hoverColor","internalLink","link","globalStyleElement","onInternalLinkChange","anchor","wrapIntoAnchor","uniqueClassName","wrappedElement","parentNode","siblings","el","wrapperElement","siblingNode","removeSvgNamespace","xml","parseFromString","imageData","parser","getMutableNodeList","diFieldId","mergePositionChanges","modifications","positionModifications","restModifications","positionByAxisModifications","modification","transformPositionModifications","modificationsByTarget","limitPercentagePosition","position","createPositionModification","svg","SVG","targetId","targetEl","boundariesEl","bbox","renderSvg","svgWrapper","applyModifications","sortModifications","applyModification","tspan","changeColor","type1","type2","useGlobalStyleElement","styleElementRef","styleElement","SvgImage","svgWrapperRef","wrapper","getSvgElement","validateSvg","createTooltip","header","initialOptions","getClickConfiguration","Chart","chart","tooltipTitle","valueFormatter","format","HighchartsReact","Highcharts","raf_1","raf","callback","caf","num","handle","rafUUID","rafIds","cleanup","wrapperRaf","times","callRef","leftTimes","realId","HandleTooltip","tipFormatter","val","restProps","tooltipRef","rafRef","cancelKeepAlign","keepAlign","Tooltip","TooltipSlider","tipProps","Slider","handleProps","useLimitStyling","limit","min","max","slider","setSlider","containerEl","disabledAreaEl","sliderWidth","width","updateLimitAreaSize","step","tooltip","labels","onChangeComplete","setSliderRef","basicProps","numericValue","allowedValue","RcSliderWithTooltip","RcSlider"],"mappings":"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","x_google_ignoreList":[17,66]}