@deviceinsight/ng-ui-components 6.18.0 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/lib/cjs/__mocks__/i18n.d.ts +12 -4
  2. package/lib/cjs/__mocks__/i18n.d.ts.map +1 -1
  3. package/lib/cjs/__mocks__/i18n.js +20 -7
  4. package/lib/cjs/components/chart/Chart.d.ts +1 -1
  5. package/lib/cjs/components/colorpicker/ColorPickerPopper.d.ts +1 -1
  6. package/lib/cjs/components/colorpicker/GradientColorPicker.d.ts +2 -2
  7. package/lib/cjs/components/colorpicker/GridColorPicker.d.ts +2 -2
  8. package/lib/cjs/components/contentHeader/ContentHeader.d.ts +1 -1
  9. package/lib/cjs/components/contentHeader/ContentHeader.d.ts.map +1 -1
  10. package/lib/cjs/components/infobox/InfoBox.d.ts +1 -1
  11. package/lib/cjs/components/infobox/InfoBox.d.ts.map +1 -1
  12. package/lib/cjs/components/input/DateInput.d.ts +2 -2
  13. package/lib/cjs/components/input/DateInput.d.ts.map +1 -1
  14. package/lib/cjs/components/input/DateTimeInput.d.ts +2 -2
  15. package/lib/cjs/components/input/DateTimeInput.d.ts.map +1 -1
  16. package/lib/cjs/components/input/SelectWithSearch.d.ts +4 -1
  17. package/lib/cjs/components/input/SelectWithSearch.d.ts.map +1 -1
  18. package/lib/cjs/components/input/SelectWithSearch.js +25 -4
  19. package/lib/cjs/components/input/SelectWithSearchAsync.d.ts +1 -1
  20. package/lib/cjs/components/input/UrnInput.d.ts +1 -1
  21. package/lib/cjs/components/input/ValidatedTextInput.d.ts +1 -1
  22. package/lib/cjs/components/input/__tests__/DateInput.spec.js +24 -24
  23. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.js +5 -4
  24. package/lib/cjs/components/input/__tests__/SelectWithSearchAsync.spec.js +12 -11
  25. package/lib/cjs/components/link/RouteLink.d.ts +2 -2
  26. package/lib/cjs/components/link/RouteLink.d.ts.map +1 -1
  27. package/lib/cjs/components/multiMenu/MultiMenu.d.ts +1 -1
  28. package/lib/cjs/components/multiMenu/components/MultiMenuItem.d.ts +1 -1
  29. package/lib/cjs/components/pagination/Pagination.d.ts +1 -1
  30. package/lib/cjs/components/pagination/__tests__/Pagination.spec.js +70 -70
  31. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts +2 -2
  32. package/lib/cjs/components/periodpicker/PeriodPicker.d.ts.map +1 -1
  33. package/lib/cjs/components/periodpicker/components/Inputs.d.ts +2 -2
  34. package/lib/cjs/components/periodpicker/components/Inputs.d.ts.map +1 -1
  35. package/lib/cjs/components/periodpicker/components/Menu.d.ts +2 -2
  36. package/lib/cjs/components/periodpicker/components/Menu.d.ts.map +1 -1
  37. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts +2 -2
  38. package/lib/cjs/components/periodpicker/components/MonthPicker.d.ts.map +1 -1
  39. package/lib/cjs/components/periodpicker/usePeriodName.d.ts +1 -1
  40. package/lib/cjs/components/periodpicker/usePeriodName.d.ts.map +1 -1
  41. package/lib/cjs/components/periodpicker/usePeriodName.js +2 -2
  42. package/lib/cjs/components/prompt/Prompt.d.ts +2 -2
  43. package/lib/cjs/components/prompt/Prompt.d.ts.map +1 -1
  44. package/lib/cjs/components/reactable/Reactable.d.ts +1 -1
  45. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts +1 -1
  46. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts +2 -2
  47. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  48. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts +1 -1
  49. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +1 -1
  50. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +64 -72
  51. package/lib/cjs/components/slider/Slider.d.ts +2 -2
  52. package/lib/cjs/components/slider/Slider.d.ts.map +1 -1
  53. package/lib/cjs/components/svg/SvgImage.d.ts +2 -2
  54. package/lib/cjs/components/svg/SvgImage.d.ts.map +1 -1
  55. package/lib/cjs/components/svg/utils/__tests__/getMutableNodeList.spec.js +11 -10
  56. package/lib/cjs/components/tabs/RouteTabs.d.ts +1 -1
  57. package/lib/cjs/components/tabs/RouteTabs.d.ts.map +1 -1
  58. package/lib/cjs/components/tabs/RouteTabs.js +2 -2
  59. package/lib/cjs/components/treeview/TreeView.d.ts +1 -1
  60. package/lib/cjs/components/treeview/components/Node.d.ts +1 -1
  61. package/lib/cjs/components/treeview/components/NodeInfo.d.ts +1 -1
  62. package/lib/cjs/components/upload/FileUpload.d.ts +1 -1
  63. package/lib/cjs/components/upload/ImageUpload.d.ts +1 -1
  64. package/lib/cjs/modules/messageBox/messageBox.d.ts +2 -2
  65. package/lib/cjs/modules/messageBox/messageBox.d.ts.map +1 -1
  66. package/lib/esm/__mocks__/i18n.d.ts +12 -4
  67. package/lib/esm/__mocks__/i18n.d.ts.map +1 -1
  68. package/lib/esm/__mocks__/i18n.js +20 -5
  69. package/lib/esm/components/chart/Chart.d.ts +1 -1
  70. package/lib/esm/components/colorpicker/ColorPickerPopper.d.ts +1 -1
  71. package/lib/esm/components/colorpicker/GradientColorPicker.d.ts +2 -2
  72. package/lib/esm/components/colorpicker/GridColorPicker.d.ts +2 -2
  73. package/lib/esm/components/contentHeader/ContentHeader.d.ts +1 -1
  74. package/lib/esm/components/contentHeader/ContentHeader.d.ts.map +1 -1
  75. package/lib/esm/components/infobox/InfoBox.d.ts +1 -1
  76. package/lib/esm/components/infobox/InfoBox.d.ts.map +1 -1
  77. package/lib/esm/components/input/DateInput.d.ts +2 -2
  78. package/lib/esm/components/input/DateInput.d.ts.map +1 -1
  79. package/lib/esm/components/input/DateTimeInput.d.ts +2 -2
  80. package/lib/esm/components/input/DateTimeInput.d.ts.map +1 -1
  81. package/lib/esm/components/input/SelectWithSearch.d.ts +4 -1
  82. package/lib/esm/components/input/SelectWithSearch.d.ts.map +1 -1
  83. package/lib/esm/components/input/SelectWithSearch.js +25 -4
  84. package/lib/esm/components/input/SelectWithSearchAsync.d.ts +1 -1
  85. package/lib/esm/components/input/UrnInput.d.ts +1 -1
  86. package/lib/esm/components/input/ValidatedTextInput.d.ts +1 -1
  87. package/lib/esm/components/input/__tests__/DateInput.spec.js +4 -4
  88. package/lib/esm/components/input/__tests__/DateTimeInput.spec.js +1 -0
  89. package/lib/esm/components/input/__tests__/SelectWithSearchAsync.spec.js +3 -2
  90. package/lib/esm/components/link/RouteLink.d.ts +2 -2
  91. package/lib/esm/components/link/RouteLink.d.ts.map +1 -1
  92. package/lib/esm/components/multiMenu/MultiMenu.d.ts +1 -1
  93. package/lib/esm/components/multiMenu/components/MultiMenuItem.d.ts +1 -1
  94. package/lib/esm/components/pagination/Pagination.d.ts +1 -1
  95. package/lib/esm/components/pagination/__tests__/Pagination.spec.js +53 -53
  96. package/lib/esm/components/periodpicker/PeriodPicker.d.ts +2 -2
  97. package/lib/esm/components/periodpicker/PeriodPicker.d.ts.map +1 -1
  98. package/lib/esm/components/periodpicker/components/Inputs.d.ts +2 -2
  99. package/lib/esm/components/periodpicker/components/Inputs.d.ts.map +1 -1
  100. package/lib/esm/components/periodpicker/components/Menu.d.ts +2 -2
  101. package/lib/esm/components/periodpicker/components/Menu.d.ts.map +1 -1
  102. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts +2 -2
  103. package/lib/esm/components/periodpicker/components/MonthPicker.d.ts.map +1 -1
  104. package/lib/esm/components/periodpicker/usePeriodName.d.ts +1 -1
  105. package/lib/esm/components/periodpicker/usePeriodName.d.ts.map +1 -1
  106. package/lib/esm/components/periodpicker/usePeriodName.js +1 -1
  107. package/lib/esm/components/prompt/Prompt.d.ts +2 -2
  108. package/lib/esm/components/prompt/Prompt.d.ts.map +1 -1
  109. package/lib/esm/components/reactable/Reactable.d.ts +1 -1
  110. package/lib/esm/components/reactable/helpers/ReactableTable.d.ts +1 -1
  111. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts +2 -2
  112. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  113. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts +1 -1
  114. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +1 -1
  115. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +55 -63
  116. package/lib/esm/components/slider/Slider.d.ts +2 -2
  117. package/lib/esm/components/slider/Slider.d.ts.map +1 -1
  118. package/lib/esm/components/svg/SvgImage.d.ts +2 -2
  119. package/lib/esm/components/svg/SvgImage.d.ts.map +1 -1
  120. package/lib/esm/components/svg/utils/__tests__/getMutableNodeList.spec.js +1 -0
  121. package/lib/esm/components/tabs/RouteTabs.d.ts +1 -1
  122. package/lib/esm/components/tabs/RouteTabs.d.ts.map +1 -1
  123. package/lib/esm/components/tabs/RouteTabs.js +2 -2
  124. package/lib/esm/components/treeview/TreeView.d.ts +1 -1
  125. package/lib/esm/components/treeview/components/Node.d.ts +1 -1
  126. package/lib/esm/components/treeview/components/NodeInfo.d.ts +1 -1
  127. package/lib/esm/components/upload/FileUpload.d.ts +1 -1
  128. package/lib/esm/components/upload/ImageUpload.d.ts +1 -1
  129. package/lib/esm/modules/messageBox/messageBox.d.ts +2 -2
  130. package/lib/esm/modules/messageBox/messageBox.d.ts.map +1 -1
  131. package/lib/esm/src/__mocks__/i18n.d.ts +13 -0
  132. package/lib/esm/src/__mocks__/i18n.d.ts.map +1 -0
  133. package/lib/esm/src/__mocks__/i18n.js +20 -0
  134. package/lib/esm/src/components/chart/Chart.d.ts +38 -0
  135. package/lib/esm/src/components/chart/Chart.d.ts.map +1 -0
  136. package/lib/esm/src/components/chart/Chart.js +202 -0
  137. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts +24 -0
  138. package/lib/esm/src/components/colorpicker/ColorPickerPopper.d.ts.map +1 -0
  139. package/lib/esm/src/components/colorpicker/ColorPickerPopper.js +46 -0
  140. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts +63 -0
  141. package/lib/esm/src/components/colorpicker/GradientColorPicker.d.ts.map +1 -0
  142. package/lib/esm/src/components/colorpicker/GradientColorPicker.js +125 -0
  143. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts +41 -0
  144. package/lib/esm/src/components/colorpicker/GridColorPicker.d.ts.map +1 -0
  145. package/lib/esm/src/components/colorpicker/GridColorPicker.js +30 -0
  146. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts +25 -0
  147. package/lib/esm/src/components/contentHeader/ContentHeader.d.ts.map +1 -0
  148. package/lib/esm/src/components/contentHeader/ContentHeader.js +53 -0
  149. package/lib/esm/src/components/infobox/InfoBox.d.ts +22 -0
  150. package/lib/esm/src/components/infobox/InfoBox.d.ts.map +1 -0
  151. package/lib/esm/src/components/infobox/InfoBox.js +36 -0
  152. package/lib/esm/src/components/input/DateInput.d.ts +28 -0
  153. package/lib/esm/src/components/input/DateInput.d.ts.map +1 -0
  154. package/lib/esm/src/components/input/DateInput.js +157 -0
  155. package/lib/esm/src/components/input/DateTimeInput.d.ts +27 -0
  156. package/lib/esm/src/components/input/DateTimeInput.d.ts.map +1 -0
  157. package/lib/esm/src/components/input/DateTimeInput.js +50 -0
  158. package/lib/esm/src/components/input/SelectWithSearch.d.ts +65 -0
  159. package/lib/esm/src/components/input/SelectWithSearch.d.ts.map +1 -0
  160. package/lib/esm/src/components/input/SelectWithSearch.js +111 -0
  161. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts +58 -0
  162. package/lib/esm/src/components/input/SelectWithSearchAsync.d.ts.map +1 -0
  163. package/lib/esm/src/components/input/SelectWithSearchAsync.js +100 -0
  164. package/lib/esm/src/components/input/UrnInput.d.ts +22 -0
  165. package/lib/esm/src/components/input/UrnInput.d.ts.map +1 -0
  166. package/lib/esm/src/components/input/UrnInput.js +33 -0
  167. package/lib/esm/src/components/input/ValidatedTextInput.d.ts +35 -0
  168. package/lib/esm/src/components/input/ValidatedTextInput.d.ts.map +1 -0
  169. package/lib/esm/src/components/input/ValidatedTextInput.js +30 -0
  170. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts +2 -0
  171. package/lib/esm/src/components/input/__tests__/DateInput.spec.d.ts.map +1 -0
  172. package/lib/esm/src/components/input/__tests__/DateInput.spec.js +85 -0
  173. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts +2 -0
  174. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.d.ts.map +1 -0
  175. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.js +13 -0
  176. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts +2 -0
  177. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.d.ts.map +1 -0
  178. package/lib/esm/src/components/input/__tests__/SelectWithSearchAsync.spec.js +44 -0
  179. package/lib/esm/src/components/link/RouteLink.d.ts +31 -0
  180. package/lib/esm/src/components/link/RouteLink.d.ts.map +1 -0
  181. package/lib/esm/src/components/link/RouteLink.js +55 -0
  182. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts +27 -0
  183. package/lib/esm/src/components/multiMenu/MultiMenu.d.ts.map +1 -0
  184. package/lib/esm/src/components/multiMenu/MultiMenu.js +30 -0
  185. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts +7 -0
  186. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.d.ts.map +1 -0
  187. package/lib/esm/src/components/multiMenu/components/MultiMenuContext.js +5 -0
  188. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts +14 -0
  189. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.d.ts.map +1 -0
  190. package/lib/esm/src/components/multiMenu/components/MultiMenuItem.js +24 -0
  191. package/lib/esm/src/components/pagination/Pagination.d.ts +37 -0
  192. package/lib/esm/src/components/pagination/Pagination.d.ts.map +1 -0
  193. package/lib/esm/src/components/pagination/Pagination.js +114 -0
  194. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts +2 -0
  195. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.d.ts.map +1 -0
  196. package/lib/esm/src/components/pagination/__tests__/Pagination.spec.js +87 -0
  197. package/lib/esm/src/components/periodpicker/PeriodPicker.d.ts +23 -0
  198. package/lib/esm/src/components/periodpicker/PeriodPicker.d.ts.map +1 -0
  199. package/lib/esm/src/components/periodpicker/PeriodPicker.js +11 -0
  200. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts +12 -0
  201. package/lib/esm/src/components/periodpicker/components/Inputs.d.ts.map +1 -0
  202. package/lib/esm/src/components/periodpicker/components/Inputs.js +59 -0
  203. package/lib/esm/src/components/periodpicker/components/Menu.d.ts +11 -0
  204. package/lib/esm/src/components/periodpicker/components/Menu.d.ts.map +1 -0
  205. package/lib/esm/src/components/periodpicker/components/Menu.js +96 -0
  206. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts +19 -0
  207. package/lib/esm/src/components/periodpicker/components/MonthPicker.d.ts.map +1 -0
  208. package/lib/esm/src/components/periodpicker/components/MonthPicker.js +62 -0
  209. package/lib/esm/src/components/periodpicker/periods.d.ts +33 -0
  210. package/lib/esm/src/components/periodpicker/periods.d.ts.map +1 -0
  211. package/lib/esm/src/components/periodpicker/periods.js +56 -0
  212. package/lib/esm/src/components/periodpicker/types.d.ts +5 -0
  213. package/lib/esm/src/components/periodpicker/types.d.ts.map +1 -0
  214. package/lib/esm/src/components/periodpicker/types.js +1 -0
  215. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts +7 -0
  216. package/lib/esm/src/components/periodpicker/usePeriodName.d.ts.map +1 -0
  217. package/lib/esm/src/components/periodpicker/usePeriodName.js +38 -0
  218. package/lib/esm/src/components/prompt/Prompt.d.ts +23 -0
  219. package/lib/esm/src/components/prompt/Prompt.d.ts.map +1 -0
  220. package/lib/esm/src/components/prompt/Prompt.js +31 -0
  221. package/lib/esm/src/components/prompt/withPrompt.d.ts +7 -0
  222. package/lib/esm/src/components/prompt/withPrompt.d.ts.map +1 -0
  223. package/lib/esm/src/components/prompt/withPrompt.js +33 -0
  224. package/lib/esm/src/components/reactable/Reactable.d.ts +38 -0
  225. package/lib/esm/src/components/reactable/Reactable.d.ts.map +1 -0
  226. package/lib/esm/src/components/reactable/Reactable.js +18 -0
  227. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts +21 -0
  228. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts.map +1 -0
  229. package/lib/esm/src/components/reactable/helpers/ReactableTable.js +33 -0
  230. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts +9 -0
  231. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -0
  232. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.js +57 -0
  233. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts +16 -0
  234. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -0
  235. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.js +52 -0
  236. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts +16 -0
  237. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -0
  238. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.js +56 -0
  239. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts +9 -0
  240. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.d.ts.map +1 -0
  241. package/lib/esm/src/components/reactable/helpers/ReactableTextFilter.js +18 -0
  242. package/lib/esm/src/components/reactable/helpers/helper.d.ts +7 -0
  243. package/lib/esm/src/components/reactable/helpers/helper.d.ts.map +1 -0
  244. package/lib/esm/src/components/reactable/helpers/helper.js +90 -0
  245. package/lib/esm/src/components/reactable/types.d.ts +38 -0
  246. package/lib/esm/src/components/reactable/types.d.ts.map +1 -0
  247. package/lib/esm/src/components/reactable/types.js +1 -0
  248. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +69 -0
  249. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -0
  250. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +155 -0
  251. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts +2 -0
  252. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.d.ts.map +1 -0
  253. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +130 -0
  254. package/lib/esm/src/components/slider/Slider.d.ts +30 -0
  255. package/lib/esm/src/components/slider/Slider.d.ts.map +1 -0
  256. package/lib/esm/src/components/slider/Slider.js +35 -0
  257. package/lib/esm/src/components/slider/useLimitStyling.d.ts +3 -0
  258. package/lib/esm/src/components/slider/useLimitStyling.d.ts.map +1 -0
  259. package/lib/esm/src/components/slider/useLimitStyling.js +49 -0
  260. package/lib/esm/src/components/svg/SvgImage.d.ts +12 -0
  261. package/lib/esm/src/components/svg/SvgImage.d.ts.map +1 -0
  262. package/lib/esm/src/components/svg/SvgImage.js +37 -0
  263. package/lib/esm/src/components/svg/storybookHelper.d.ts +7 -0
  264. package/lib/esm/src/components/svg/storybookHelper.d.ts.map +1 -0
  265. package/lib/esm/src/components/svg/storybookHelper.js +53 -0
  266. package/lib/esm/src/components/svg/types.d.ts +58 -0
  267. package/lib/esm/src/components/svg/types.d.ts.map +1 -0
  268. package/lib/esm/src/components/svg/types.js +1 -0
  269. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts +2 -0
  270. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.d.ts.map +1 -0
  271. package/lib/esm/src/components/svg/utils/__tests__/getMutableNodeList.spec.js +24 -0
  272. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts +4 -0
  273. package/lib/esm/src/components/svg/utils/createHyperlinkModification.d.ts.map +1 -0
  274. package/lib/esm/src/components/svg/utils/createHyperlinkModification.js +35 -0
  275. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts +3 -0
  276. package/lib/esm/src/components/svg/utils/createPositionModification.d.ts.map +1 -0
  277. package/lib/esm/src/components/svg/utils/createPositionModification.js +19 -0
  278. package/lib/esm/src/components/svg/utils/findConflicts.d.ts +2 -0
  279. package/lib/esm/src/components/svg/utils/findConflicts.d.ts.map +1 -0
  280. package/lib/esm/src/components/svg/utils/findConflicts.js +23 -0
  281. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts +3 -0
  282. package/lib/esm/src/components/svg/utils/getMutableNodeList.d.ts.map +1 -0
  283. package/lib/esm/src/components/svg/utils/getMutableNodeList.js +12 -0
  284. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts +3 -0
  285. package/lib/esm/src/components/svg/utils/getSvgElement.d.ts.map +1 -0
  286. package/lib/esm/src/components/svg/utils/getSvgElement.js +10 -0
  287. package/lib/esm/src/components/svg/utils/renderSvg.d.ts +3 -0
  288. package/lib/esm/src/components/svg/utils/renderSvg.d.ts.map +1 -0
  289. package/lib/esm/src/components/svg/utils/renderSvg.js +88 -0
  290. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts +4 -0
  291. package/lib/esm/src/components/svg/utils/transformPositionModifications.d.ts.map +1 -0
  292. package/lib/esm/src/components/svg/utils/transformPositionModifications.js +42 -0
  293. package/lib/esm/src/components/svg/utils/validateSvg.d.ts +3 -0
  294. package/lib/esm/src/components/svg/utils/validateSvg.d.ts.map +1 -0
  295. package/lib/esm/src/components/svg/utils/validateSvg.js +5 -0
  296. package/lib/esm/src/components/tabs/RouteTabs.d.ts +24 -0
  297. package/lib/esm/src/components/tabs/RouteTabs.d.ts.map +1 -0
  298. package/lib/esm/src/components/tabs/RouteTabs.js +67 -0
  299. package/lib/esm/src/components/treeview/TreeView.d.ts +50 -0
  300. package/lib/esm/src/components/treeview/TreeView.d.ts.map +1 -0
  301. package/lib/esm/src/components/treeview/TreeView.js +104 -0
  302. package/lib/esm/src/components/treeview/components/Node.d.ts +37 -0
  303. package/lib/esm/src/components/treeview/components/Node.d.ts.map +1 -0
  304. package/lib/esm/src/components/treeview/components/Node.js +111 -0
  305. package/lib/esm/src/components/treeview/components/NodeInfo.d.ts +25 -0
  306. package/lib/esm/src/components/treeview/components/NodeInfo.d.ts.map +1 -0
  307. package/lib/esm/src/components/treeview/components/NodeInfo.js +64 -0
  308. package/lib/esm/src/components/treeview/constants.d.ts +6 -0
  309. package/lib/esm/src/components/treeview/constants.d.ts.map +1 -0
  310. package/lib/esm/src/components/treeview/constants.js +6 -0
  311. package/lib/esm/src/components/treeview/treeutils.d.ts +59 -0
  312. package/lib/esm/src/components/treeview/treeutils.d.ts.map +1 -0
  313. package/lib/esm/src/components/treeview/treeutils.js +158 -0
  314. package/lib/esm/src/components/treeview/types.d.ts +37 -0
  315. package/lib/esm/src/components/treeview/types.d.ts.map +1 -0
  316. package/lib/esm/src/components/treeview/types.js +1 -0
  317. package/lib/esm/src/components/upload/FileUpload.d.ts +67 -0
  318. package/lib/esm/src/components/upload/FileUpload.d.ts.map +1 -0
  319. package/lib/esm/src/components/upload/FileUpload.js +95 -0
  320. package/lib/esm/src/components/upload/ImageUpload.d.ts +21 -0
  321. package/lib/esm/src/components/upload/ImageUpload.d.ts.map +1 -0
  322. package/lib/esm/src/components/upload/ImageUpload.js +45 -0
  323. package/lib/esm/src/hoc/outsideClick.d.ts +4 -0
  324. package/lib/esm/src/hoc/outsideClick.d.ts.map +1 -0
  325. package/lib/esm/src/hoc/outsideClick.js +73 -0
  326. package/lib/esm/src/i18n/index.d.ts +16 -0
  327. package/lib/esm/src/i18n/index.d.ts.map +1 -0
  328. package/lib/esm/src/i18n/index.js +6 -0
  329. package/lib/esm/src/index.d.ts +52 -0
  330. package/lib/esm/src/index.d.ts.map +1 -0
  331. package/lib/esm/src/index.js +39 -0
  332. package/lib/esm/src/modules/messageBox/messageBox.d.ts +14 -0
  333. package/lib/esm/src/modules/messageBox/messageBox.d.ts.map +1 -0
  334. package/lib/esm/src/modules/messageBox/messageBox.js +56 -0
  335. package/lib/esm/src/modules/utils/nanoidGen.d.ts +2 -0
  336. package/lib/esm/src/modules/utils/nanoidGen.d.ts.map +1 -0
  337. package/lib/esm/src/modules/utils/nanoidGen.js +3 -0
  338. package/lib/esm/src/modules/utils/uuidGen.d.ts +2 -0
  339. package/lib/esm/src/modules/utils/uuidGen.d.ts.map +1 -0
  340. package/lib/esm/src/modules/utils/uuidGen.js +13 -0
  341. package/lib/esm/src/types/i18n.d.ts +5 -0
  342. package/lib/esm/src/types/i18n.d.ts.map +1 -0
  343. package/lib/esm/src/types/i18n.js +1 -0
  344. package/lib/esm/src/types/pagination.d.ts +19 -0
  345. package/lib/esm/src/types/pagination.d.ts.map +1 -0
  346. package/lib/esm/src/types/pagination.js +1 -0
  347. package/lib/esm/src/utils/dayjsLocales.d.ts +10 -0
  348. package/lib/esm/src/utils/dayjsLocales.d.ts.map +1 -0
  349. package/lib/esm/src/utils/dayjsLocales.js +12 -0
  350. package/lib/esm/src/utils/resolvePath.d.ts +2 -0
  351. package/lib/esm/src/utils/resolvePath.d.ts.map +1 -0
  352. package/lib/esm/src/utils/resolvePath.js +4 -0
  353. package/lib/esm/vite.config.d.mts +3 -0
  354. package/lib/esm/vite.config.d.mts.map +1 -0
  355. package/lib/esm/vite.config.mjs +9 -0
  356. package/lib/esm/vitest.setup.d.ts +3 -0
  357. package/lib/esm/vitest.setup.d.ts.map +1 -0
  358. package/lib/esm/vitest.setup.js +10 -0
  359. package/package.json +24 -54
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ export declare type Props = {
3
+ children: React.ReactNode;
4
+ disabled?: boolean;
5
+ icon?: React.ReactNode;
6
+ linkTo?: string;
7
+ onClick?: () => any;
8
+ 'data-testid'?: string;
9
+ };
10
+ export default class MultiMenuItem extends React.PureComponent<Props> {
11
+ createClickHandler: (toggleMenu: () => void) => () => void;
12
+ render(): React.JSX.Element;
13
+ }
14
+ //# sourceMappingURL=MultiMenuItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiMenuItem.d.ts","sourceRoot":"","sources":["../../../../../../src/components/multiMenu/components/MultiMenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,oBAAY,KAAK,GAAG;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACpE,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAQxD;IAEF,MAAM;CA8BN"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { Link } from 'react-router-dom';
3
+ import Context from './MultiMenuContext';
4
+ export default class MultiMenuItem extends React.PureComponent {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.createClickHandler = (toggleMenu) => () => {
8
+ const { onClick } = this.props;
9
+ if (onClick) {
10
+ onClick();
11
+ }
12
+ toggleMenu();
13
+ };
14
+ }
15
+ render() {
16
+ const { disabled, icon, children, linkTo } = this.props;
17
+ const dataTestId = this.props['data-testid'];
18
+ return (React.createElement(Context.Consumer, null, ({ toggleMenu }) => linkTo ? (React.createElement(Link, { "data-testid": dataTestId, to: linkTo, className: `item ${disabled ? 'disabled' : ''}`, onClick: this.createClickHandler(toggleMenu) },
19
+ icon && React.createElement("span", { className: "item-icon" }, icon),
20
+ React.createElement("span", { className: "item-text" }, children))) : (React.createElement("div", { "data-testid": dataTestId, className: `item ${disabled ? 'disabled' : ''}`, onClick: this.createClickHandler(toggleMenu) },
21
+ icon && React.createElement("span", { className: "item-icon" }, icon),
22
+ React.createElement("span", { className: "item-text" }, children)))));
23
+ }
24
+ }
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ export declare type Props = {
3
+ /** Current page */
4
+ page: number;
5
+ /** Total number of pages */
6
+ totalPages: number;
7
+ /** Function, executed when the current page changes */
8
+ onChangePage: (page: number) => void;
9
+ /** (Optional) Function, executed when the number of elements per page changes */
10
+ onChangeSize?: (size: number) => void;
11
+ /** (Optional) Number of elements per page*/
12
+ size?: number;
13
+ };
14
+ declare type State = {
15
+ page: number | string;
16
+ };
17
+ /**
18
+ * Pagination enables a convenient way to display and navigate through a paginated search result
19
+ */
20
+ export default class Pagination extends React.Component<Props, State> {
21
+ state: State;
22
+ multiMenuRef: {
23
+ current: any | null;
24
+ };
25
+ componentDidMount(): void;
26
+ componentDidUpdate(prevProps: Props): void;
27
+ goToFirstPage: () => void;
28
+ goToPrevPage: () => void;
29
+ goToNextPage: () => void;
30
+ goToLastPage: () => void;
31
+ onChangeSize: (event: React.SyntheticEvent<HTMLSelectElement>) => void;
32
+ notifyPageChange: (page: number) => void;
33
+ handlePageInputChange: (event: React.SyntheticEvent<HTMLInputElement>) => void;
34
+ render(): React.JSX.Element;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,oBAAY,KAAK,GAAG;IACnB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,iFAAiF;IACjF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,KAAK,GAAG;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB,CAAC;AAIF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACpE,KAAK,EAAE,KAAK,CAEV;IACF,YAAY,EAAE;QACb,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;KACpB,CAA0B;IAE3B,iBAAiB;IAOjB,kBAAkB,CAAC,SAAS,EAAE,KAAK;IAUnC,aAAa,EAAE,MAAM,IAAI,CAEvB;IAEF,YAAY,EAAE,MAAM,IAAI,CAMtB;IAEF,YAAY,EAAE,MAAM,IAAI,CAMtB;IAEF,YAAY,EAAE,MAAM,IAAI,CAEtB;IAEF,YAAY,UAAW,MAAM,cAAc,CAAC,iBAAiB,CAAC,UAU5D;IAEF,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAEhC;IAER,qBAAqB,UAAW,MAAM,cAAc,CAAC,gBAAgB,CAAC,UAcpE;IAEF,MAAM;CAiFN"}
@@ -0,0 +1,114 @@
1
+ import * as React from 'react';
2
+ import { Trans } from '../../i18n';
3
+ import { debounce } from 'lodash';
4
+ import { Button } from '@deviceinsight/ng-ui-basic-components';
5
+ import iconSettings from '../../assets/svg/icon_menu_vertical.svg';
6
+ import MultiMenu from '../multiMenu/MultiMenu';
7
+ const sizeOptions = [5, 10, 15, 20, 50];
8
+ /**
9
+ * Pagination enables a convenient way to display and navigate through a paginated search result
10
+ */
11
+ export default class Pagination extends React.Component {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.state = {
15
+ page: 0
16
+ };
17
+ this.multiMenuRef = React.createRef();
18
+ this.goToFirstPage = () => {
19
+ this.props.onChangePage(0);
20
+ };
21
+ this.goToPrevPage = () => {
22
+ const { page } = this.props;
23
+ if (page > 0) {
24
+ this.props.onChangePage(page - 1);
25
+ }
26
+ };
27
+ this.goToNextPage = () => {
28
+ const { page } = this.props;
29
+ if (page < this.props.totalPages - 1) {
30
+ this.props.onChangePage(page + 1);
31
+ }
32
+ };
33
+ this.goToLastPage = () => {
34
+ this.props.onChangePage(this.props.totalPages - 1);
35
+ };
36
+ this.onChangeSize = (event) => {
37
+ const { onChangeSize } = this.props;
38
+ if (onChangeSize) {
39
+ onChangeSize(Number(event.target.value));
40
+ }
41
+ if (this.multiMenuRef && this.multiMenuRef.current) {
42
+ this.multiMenuRef.current.toggleMenu();
43
+ }
44
+ };
45
+ this.notifyPageChange = debounce((page) => {
46
+ this.props.onChangePage(page);
47
+ }, 500);
48
+ this.handlePageInputChange = (event) => {
49
+ const { totalPages } = this.props;
50
+ const page = Number(event.target.value);
51
+ if (page === 0) {
52
+ this.setState({
53
+ page: ''
54
+ });
55
+ }
56
+ else if (!isNaN(page) && page <= totalPages) {
57
+ this.setState({
58
+ page: page - 1
59
+ });
60
+ this.notifyPageChange(page - 1);
61
+ }
62
+ };
63
+ }
64
+ componentDidMount() {
65
+ const { page } = this.props;
66
+ this.setState({
67
+ page
68
+ });
69
+ }
70
+ componentDidUpdate(prevProps) {
71
+ const { page } = this.props;
72
+ if (prevProps.page !== page && page !== this.state.page) {
73
+ this.setState({
74
+ page
75
+ });
76
+ }
77
+ }
78
+ render() {
79
+ const { totalPages, size, onChangeSize } = this.props;
80
+ const { page } = this.state;
81
+ const isLastPage = page === totalPages - 1;
82
+ const showPage = page !== '' ? Number(page) + 1 : '';
83
+ return (React.createElement("div", { className: "di pagination-holder" },
84
+ React.createElement("div", { className: "di pagination" },
85
+ React.createElement("span", { className: `prev ${page === 0 ? 'disabled' : ''}`, onClick: this.goToFirstPage }, "\u00AB"),
86
+ React.createElement("span", { className: `prev ${page === 0 ? 'disabled' : ''}`, onClick: this.goToPrevPage }, "\u2039"),
87
+ React.createElement("span", { className: "info" },
88
+ React.createElement(Trans, { i18nKey: "reactable.pagination.page" }, "Page"),
89
+ React.createElement("input", { value: showPage, onChange: this.handlePageInputChange }),
90
+ typeof process !== 'undefined' && process?.env?.STORYBOOK_MODE ? (React.createElement(React.Fragment, null,
91
+ "of \u00A0 ",
92
+ totalPages)) : (React.createElement(Trans, { i18nKey: "reactable.pagination.ofTotal" },
93
+ " of \u00A0 ",
94
+ { totalPages }))),
95
+ React.createElement("span", { className: `next ${isLastPage ? 'disabled' : ''}`, onClick: this.goToNextPage }, "\u203A"),
96
+ React.createElement("span", { className: `next ${isLastPage ? 'disabled' : ''}`, onClick: this.goToLastPage }, "\u00BB"),
97
+ onChangeSize && (React.createElement("div", { className: "options" },
98
+ React.createElement(MultiMenu, { ref: this.multiMenuRef, direction: "left", menuButton: React.createElement(Button, { naked: true, title: {
99
+ id: 'trend.settings.buttonTitle',
100
+ defaultValue: 'Settings'
101
+ } },
102
+ React.createElement("img", { src: iconSettings, alt: "settings icon", style: { width: 16, height: 16 } })) },
103
+ React.createElement("div", { className: "di form", style: {
104
+ width: 200,
105
+ padding: 10
106
+ } },
107
+ React.createElement("div", { className: "field" },
108
+ React.createElement("label", null,
109
+ React.createElement(Trans, { i18nKey: "reactable.pagination.entriesPerPage" }, "Entries per page")),
110
+ React.createElement("select", { onChange: this.onChangeSize, value: size }, sizeOptions.map((sizeOption) => (React.createElement("option", { key: sizeOption, value: sizeOption }, sizeOption))))),
111
+ React.createElement("p", null,
112
+ React.createElement(Trans, { i18nKey: "reactable.pagination.changePageWillBeStored" }, "Your changes will be stored for this view.")))))))));
113
+ }
114
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Pagination.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/components/pagination/__tests__/Pagination.spec.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import * as React from 'react';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import Pagination from '../Pagination';
4
+ import { fireEvent, render, waitFor } from '@testing-library/react';
5
+ describe('Pagination.js', () => {
6
+ it('should disable all buttons when there is only one page', () => {
7
+ const { container } = render(React.createElement(Pagination, { page: 0, totalPages: 1, onChangePage: () => { } }));
8
+ expect(container.querySelectorAll('span.disabled')).toHaveLength(4);
9
+ });
10
+ it('should disable "prev" and "first" when the first page is selected', () => {
11
+ const { container } = render(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
12
+ expect(container.querySelectorAll('span.prev.disabled')).toHaveLength(2);
13
+ });
14
+ it('should disable "next" and "last" when the last page is selected', () => {
15
+ const { container } = render(React.createElement(Pagination, { page: 9, totalPages: 10, onChangePage: () => { } }));
16
+ expect(container.querySelectorAll('span.next.disabled')).toHaveLength(2);
17
+ });
18
+ it('should not disable buttons when on a page > 0 and < max pages', () => {
19
+ const { container } = render(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: () => { } }));
20
+ expect(container.querySelectorAll('span.disabled')).toHaveLength(0);
21
+ });
22
+ it('should go to the first page when the user clicks "first"', () => {
23
+ const handleChangePage = vi.fn();
24
+ const { container } = render(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: handleChangePage }));
25
+ fireEvent.click(container.querySelectorAll('span.prev')[0]);
26
+ expect(handleChangePage).toHaveBeenCalledWith(0);
27
+ });
28
+ it('should go to the previous page when the user clicks "prev"', async () => {
29
+ const page = 2;
30
+ const handleChangePage = vi.fn();
31
+ const { container } = render(React.createElement(Pagination, { page: page, totalPages: 10, onChangePage: handleChangePage }));
32
+ fireEvent.click(container.querySelectorAll('span.prev')[1]);
33
+ expect(handleChangePage).toHaveBeenCalledWith(page - 1);
34
+ });
35
+ it('should go to the next page when the user clicks "next"', () => {
36
+ const handleChangePage = vi.fn();
37
+ const { container } = render(React.createElement(Pagination, { page: 2, totalPages: 10, onChangePage: handleChangePage }));
38
+ fireEvent.click(container.querySelectorAll('span.next')[0]);
39
+ expect(handleChangePage).toHaveBeenCalledWith(3);
40
+ });
41
+ it('should go to the last page when the user clicks "last"', () => {
42
+ const handleChangePage = vi.fn();
43
+ const { container } = render(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: handleChangePage }));
44
+ fireEvent.click(container.querySelectorAll('span.next')[1]);
45
+ expect(handleChangePage).toHaveBeenCalledWith(9);
46
+ });
47
+ it('should match snapshot', () => {
48
+ const PaginationWrapper1 = render(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: () => { } }));
49
+ const PaginationWrapper2 = render(React.createElement(Pagination, { page: 5, totalPages: 10, onChangePage: () => { } }));
50
+ const PaginationWrapper3 = render(React.createElement(Pagination, { page: 9, totalPages: 10, onChangePage: () => { } }));
51
+ expect(PaginationWrapper1).toMatchSnapshot();
52
+ expect(PaginationWrapper2).toMatchSnapshot();
53
+ expect(PaginationWrapper3).toMatchSnapshot();
54
+ });
55
+ describe('handlePageInputChange', () => {
56
+ it('should set page number if input is a correct number', async () => {
57
+ const handleChangePage = vi.fn();
58
+ const { getByRole } = render(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: handleChangePage }));
59
+ const input = getByRole('textbox');
60
+ fireEvent.change(input, { target: { value: '4' } });
61
+ fireEvent.blur(input);
62
+ await waitFor(() => {
63
+ expect(handleChangePage).toHaveBeenCalledWith(3);
64
+ });
65
+ });
66
+ it('should not set page number if input is bigger than totalPages', async () => {
67
+ const handleChangePage = vi.fn();
68
+ const { getByRole } = render(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: handleChangePage }));
69
+ const input = getByRole('textbox');
70
+ fireEvent.change(input, { target: { value: '12' } });
71
+ fireEvent.blur(input);
72
+ await waitFor(() => {
73
+ expect(handleChangePage).not.toHaveBeenCalled();
74
+ });
75
+ });
76
+ it('should not set an empty string as page state', async () => {
77
+ const handleChangePage = vi.fn();
78
+ const { getByRole } = render(React.createElement(Pagination, { page: 0, totalPages: 10, onChangePage: handleChangePage }));
79
+ const input = getByRole('textbox');
80
+ fireEvent.change(input, { target: { value: '' } });
81
+ fireEvent.blur(input);
82
+ await waitFor(() => {
83
+ expect(handleChangePage).not.toHaveBeenCalled();
84
+ });
85
+ });
86
+ });
87
+ });
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { Period } from './types';
3
+ export declare type Props = {
4
+ /** Period from start- to endpoint */
5
+ period: Period;
6
+ /** Function, executed on change */
7
+ onChange: (period: Period) => void;
8
+ /** Predefined period name */
9
+ defaultPeriodName?: string;
10
+ /** Show only dropdown with calendar part without inputs? */
11
+ inputsHiddenByDefault?: boolean;
12
+ /** Should the menu be hidden? */
13
+ menuHidden?: boolean;
14
+ /** Should the PeriodPicker be readOnly? */
15
+ readOnly?: boolean;
16
+ /** (optional) locale, if not set, the i18next.language is taken */
17
+ locale?: string;
18
+ /** (optional) timezone */
19
+ timezone?: string;
20
+ 'data-testid'?: string;
21
+ };
22
+ export default function PeriodPicker({ period, onChange, inputsHiddenByDefault, menuHidden, readOnly, locale, defaultPeriodName, timezone, ...props }: Props): React.JSX.Element;
23
+ //# sourceMappingURL=PeriodPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeriodPicker.d.ts","sourceRoot":"","sources":["../../../../../src/components/periodpicker/PeriodPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAK/B,oBAAY,KAAK,GAAG;IACnB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACpC,MAAM,EACN,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,KAAK,qBAmBP"}
@@ -0,0 +1,11 @@
1
+ import React, { useState } from 'react';
2
+ import Inputs from './components/Inputs';
3
+ import Menu from './components/Menu';
4
+ import usePeriodName from './usePeriodName';
5
+ export default function PeriodPicker({ period, onChange, inputsHiddenByDefault, menuHidden, readOnly, locale, defaultPeriodName, timezone, ...props }) {
6
+ const [showInputs, setShowInputs] = useState(!inputsHiddenByDefault);
7
+ const periodName = usePeriodName(period, timezone) ?? defaultPeriodName;
8
+ return (React.createElement("div", { className: "di period-picker", "data-testid": props['data-testid'] },
9
+ (!inputsHiddenByDefault || showInputs) && (React.createElement(Inputs, { period: period, onChange: onChange, locale: locale, readOnly: readOnly, timezone: timezone })),
10
+ menuHidden || readOnly || (React.createElement(Menu, { periodName: periodName, onShowCustomPeriod: inputsHiddenByDefault ? setShowInputs : undefined, onChange: onChange, timezone: timezone }))));
11
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Period } from '../types';
3
+ declare type Props = {
4
+ period: Period;
5
+ onChange: (period: Period) => void;
6
+ readOnly?: boolean;
7
+ locale?: string;
8
+ timezone?: string;
9
+ };
10
+ export default function Inputs({ period, onChange, readOnly, locale, timezone }: Props): React.JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=Inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Inputs.d.ts","sourceRoot":"","sources":["../../../../../../src/components/periodpicker/components/Inputs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAMhC,aAAK,KAAK,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAE,KAAK,qBA2FnF"}
@@ -0,0 +1,59 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import DateTimeInput from '../../input/DateTimeInput';
3
+ const ONE_HOUR = 60 * 60 * 1000;
4
+ const TOGGLE_TIMEOUT = 300;
5
+ export default function Inputs({ period, onChange, readOnly, locale, timezone }) {
6
+ const [showWarningTarget, setShowWarningTarget] = useState('');
7
+ const [forceOpenEndDate, setForceOpenEndDate] = useState(false);
8
+ const warningTimeoutRef = useRef();
9
+ const startDate = new Date(period.tsStart);
10
+ const endDate = new Date(period.tsEnd);
11
+ function openEndDate() {
12
+ setForceOpenEndDate(true);
13
+ setTimeout(() => {
14
+ setForceOpenEndDate(false);
15
+ }, TOGGLE_TIMEOUT);
16
+ }
17
+ function showWarning(target) {
18
+ if (warningTimeoutRef.current) {
19
+ clearTimeout(warningTimeoutRef.current);
20
+ }
21
+ setShowWarningTarget(target);
22
+ warningTimeoutRef.current = setTimeout(() => setShowWarningTarget(''), 1000);
23
+ }
24
+ function handleChangeStartDate(timestamp, fromTextField) {
25
+ if (timestamp) {
26
+ const incorrect = period.tsEnd && timestamp > period.tsEnd;
27
+ const tsEnd = incorrect ? timestamp + ONE_HOUR : period.tsEnd;
28
+ onChange({
29
+ tsStart: timestamp,
30
+ tsEnd
31
+ });
32
+ if (!fromTextField) {
33
+ openEndDate();
34
+ }
35
+ if (incorrect) {
36
+ showWarning('date-to');
37
+ }
38
+ }
39
+ }
40
+ function handleChangeEndDate(timestamp) {
41
+ if (timestamp) {
42
+ const incorrect = period.tsStart && timestamp < period.tsStart;
43
+ const tsStart = incorrect ? timestamp - ONE_HOUR : period.tsStart;
44
+ onChange({
45
+ tsStart,
46
+ tsEnd: timestamp
47
+ });
48
+ if (incorrect) {
49
+ showWarning('date-from');
50
+ }
51
+ }
52
+ }
53
+ return (React.createElement("span", { className: "inputs" },
54
+ React.createElement("span", { "data-testid": "from-wrapper" },
55
+ React.createElement(DateTimeInput, { timestamp: period.tsStart, onChange: handleChangeStartDate, warning: showWarningTarget === 'date-from', selectsStart: true, startDate: startDate, endDate: endDate, readOnly: readOnly, locale: locale, timezone: timezone })),
56
+ "\u00A0 - \u00A0",
57
+ React.createElement("span", { "data-testid": "to-wrapper" },
58
+ React.createElement(DateTimeInput, { forceOpen: forceOpenEndDate, timestamp: period.tsEnd, onChange: handleChangeEndDate, warning: showWarningTarget === 'date-to', selectsEnd: true, startDate: startDate, endDate: endDate, readOnly: readOnly, locale: locale, timezone: timezone }))));
59
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Period } from '../types';
3
+ declare type Props = {
4
+ periodName: string | undefined;
5
+ timezone?: string;
6
+ onChange: (period: Period) => void;
7
+ onShowCustomPeriod: ((show: boolean) => void) | undefined;
8
+ };
9
+ export default function Menu({ onChange, onShowCustomPeriod, periodName, timezone }: Props): React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../../../src/components/periodpicker/components/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAgBhC,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAC,EAAE,KAAK,qBA2KvF"}
@@ -0,0 +1,96 @@
1
+ import React, { useState } from 'react';
2
+ import { Trans } from '../../../i18n';
3
+ import dayjs from 'dayjs';
4
+ import { Button, Popup } from '@deviceinsight/ng-ui-basic-components';
5
+ import DateInput from '../../input/DateInput';
6
+ import MonthPicker from './MonthPicker';
7
+ import imgIconCalendar from '../../../assets/svg/icon_calendar.svg';
8
+ import imgTriangleDown from '../../../assets/svg/triangle_down.svg';
9
+ import { createCurrentMonth, createCurrentWeek, createLastXDays, createToday, createWholeDay, createWholeMonth, createYesterday } from '../periods';
10
+ export default function Menu({ onChange, onShowCustomPeriod, periodName, timezone }) {
11
+ const [visible, setVisible] = useState(false);
12
+ const [showDatePicker, setShowDatePicker] = useState(false);
13
+ const [showMonthPicker, setShowMonthPicker] = useState(false);
14
+ const [datePickerDate, setDatePickerDate] = useState(Date.now());
15
+ function setPeriod(period) {
16
+ onChange(period);
17
+ setVisible(false);
18
+ if (onShowCustomPeriod) {
19
+ onShowCustomPeriod(false);
20
+ }
21
+ }
22
+ function setPeriodSpecificDate(date) {
23
+ setPeriod(createWholeDay(date ?? Date.now(), timezone));
24
+ setShowDatePicker(false);
25
+ setDatePickerDate(date ?? undefined);
26
+ }
27
+ function setPeriodSpecificMonth(month, year) {
28
+ setPeriod(createWholeMonth(dayjs()
29
+ .year(year)
30
+ .month(month - 1)
31
+ .valueOf(), timezone));
32
+ setShowMonthPicker(false);
33
+ }
34
+ function toggleDatePicker() {
35
+ setShowDatePicker(!showDatePicker);
36
+ setShowMonthPicker(false);
37
+ }
38
+ function toggleMonthPicker() {
39
+ setShowMonthPicker(!showMonthPicker);
40
+ setShowDatePicker(false);
41
+ }
42
+ function handleCustomPeriodSelect() {
43
+ setVisible(false);
44
+ if (onShowCustomPeriod) {
45
+ onShowCustomPeriod(true);
46
+ }
47
+ }
48
+ return (React.createElement("div", null,
49
+ React.createElement(Popup, { active: visible, onHide: () => setVisible(false), handler: React.createElement(Button, { "data-testid": "time-period-menu-button", title: {
50
+ id: 'trend.calendarMenu.calendar.timePeriod',
51
+ defaultValue: 'Time Period'
52
+ }, onClick: () => setVisible((visible) => !visible) },
53
+ React.createElement(React.Fragment, null,
54
+ React.createElement("img", { src: imgIconCalendar, alt: "calendar icon", style: { width: 16, height: 16 } }),
55
+ "\u00A0",
56
+ !!periodName && (React.createElement("span", null,
57
+ "\u00A0",
58
+ periodName,
59
+ "\u00A0")),
60
+ React.createElement("img", { src: imgTriangleDown, alt: "triangle down", style: { width: 16, height: 16 } }))) },
61
+ React.createElement("div", { className: "di multimenu period-picker-multimenu" },
62
+ React.createElement("div", { className: `drop bottom ${visible ? 'show' : ''}` },
63
+ React.createElement("div", { className: `left-box ${showDatePicker ? 'show' : ''}` },
64
+ React.createElement(DateInput, { inline: true, value: datePickerDate, onChange: setPeriodSpecificDate })),
65
+ React.createElement("div", { className: `left-box ${showMonthPicker ? 'show' : ''}` },
66
+ React.createElement(MonthPicker, { onChange: setPeriodSpecificMonth })),
67
+ React.createElement("div", { className: "right-box" },
68
+ React.createElement("div", { className: "item", "data-testid": "today-button", onClick: () => setPeriod(createToday(timezone)) },
69
+ React.createElement("div", { className: "item-text" },
70
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.today" }, "Today"))),
71
+ React.createElement("div", { className: "item", "data-testid": "yesterday-button", onClick: () => setPeriod(createYesterday(timezone)) },
72
+ React.createElement("div", { className: "item-text" },
73
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.yesterday" }, "Yesterday"))),
74
+ React.createElement("div", { className: "item" },
75
+ React.createElement("div", { "data-testid": "last-7-days-button", className: "item-text", onClick: () => setPeriod(createLastXDays(7, timezone)) },
76
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.lastSevenDays" }, "Last 7 days")),
77
+ React.createElement("div", { className: "item-more icon triangle" },
78
+ React.createElement("div", { className: "item-more-submenu" }, [2, 3, 5, 10, 14, 30].map((days) => (React.createElement("div", { className: "subitem", key: days, onClick: () => setPeriod(createLastXDays(days, timezone)) }, days)))))),
79
+ React.createElement("div", { className: "item", "data-testid": "current-week-button", onClick: () => setPeriod(createCurrentWeek(timezone)) },
80
+ React.createElement("div", { className: "item-text" },
81
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.currentWeek" }, "Curr. Week"))),
82
+ React.createElement("div", { className: "item", "data-testid": "current-month-button", onClick: () => setPeriod(createCurrentMonth(timezone)) },
83
+ React.createElement("div", { className: "item-text" },
84
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.currentMonth" }, "Curr. Month"))),
85
+ React.createElement("div", { className: "item", "data-testid": "day-button", onClick: toggleDatePicker },
86
+ React.createElement("div", { className: "item-text" },
87
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.day" }, "Day"),
88
+ React.createElement("div", { className: "item-more icon dots" }))),
89
+ React.createElement("div", { className: "item", "data-testid": "month-button", onClick: toggleMonthPicker },
90
+ React.createElement("div", { className: "item-text" },
91
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.month" }, "Month"),
92
+ React.createElement("div", { className: "item-more icon dots" }))),
93
+ onShowCustomPeriod !== undefined && (React.createElement("div", { className: "item", "data-testid": "from-to-button", onClick: handleCustomPeriodSelect },
94
+ React.createElement("div", { className: "item-text" },
95
+ React.createElement(Trans, { i18nKey: "trend.calendarMenu.timePeriod.fromto" }, "From/to"))))))))));
96
+ }
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ declare type OwnProps = {
3
+ month?: number;
4
+ year?: number;
5
+ onChange: (month: number, year: number) => void;
6
+ };
7
+ declare type Props = OwnProps;
8
+ declare type State = {
9
+ selectedMonth: number;
10
+ selectedYear: number;
11
+ displayedYear: number;
12
+ };
13
+ export default class MonthPicker extends React.Component<Props, State> {
14
+ constructor(props: Props);
15
+ tdMonth: (month: number) => React.JSX.Element;
16
+ render(): React.JSX.Element;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=MonthPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthPicker.d.ts","sourceRoot":"","sources":["../../../../../../src/components/periodpicker/components/MonthPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,aAAK,QAAQ,GAAG;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,aAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,aAAK,KAAK,GAAG;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD,KAAK,EAAE,KAAK;IAWxB,OAAO,UAAW,MAAM,uBAiBtB;IAEF,MAAM;CAwDN"}
@@ -0,0 +1,62 @@
1
+ import * as React from 'react';
2
+ import dayjs from 'dayjs';
3
+ import cx from 'classnames';
4
+ export default class MonthPicker extends React.Component {
5
+ constructor(props) {
6
+ super(props);
7
+ this.tdMonth = (month) => {
8
+ const { selectedMonth, selectedYear, displayedYear } = this.state;
9
+ return (React.createElement("td", { "data-testid": `month-${month}-button`, onClick: () => {
10
+ this.props.onChange(month, displayedYear);
11
+ this.setState({
12
+ selectedMonth: month,
13
+ selectedYear: displayedYear
14
+ });
15
+ }, className: cx({ selected: month === selectedMonth && displayedYear === selectedYear }) }, dayjs(`${selectedYear}/${month.toString().padStart(2, '0')}/01`, 'YYYY/MM/DD').format('MMM')));
16
+ };
17
+ const month = props.month !== null && props.month !== undefined ? props.month : dayjs().month() + 1;
18
+ const year = props.year !== null && props.year !== undefined ? props.year : dayjs().year();
19
+ this.state = {
20
+ selectedMonth: month,
21
+ selectedYear: year,
22
+ displayedYear: year
23
+ };
24
+ }
25
+ render() {
26
+ const { displayedYear } = this.state;
27
+ return (React.createElement("div", { className: "di monthpicker" },
28
+ React.createElement("div", { className: "pager" },
29
+ React.createElement("span", { className: "page-nav prev", onClick: () => {
30
+ this.setState({
31
+ displayedYear: displayedYear - 1
32
+ });
33
+ } }),
34
+ React.createElement("span", { className: "page-nav info" }, displayedYear),
35
+ React.createElement("span", { className: "page-nav next", onClick: () => {
36
+ this.setState({
37
+ displayedYear: displayedYear + 1
38
+ });
39
+ } })),
40
+ React.createElement("div", { className: "months" },
41
+ React.createElement("table", { style: {
42
+ margin: 'auto'
43
+ } },
44
+ React.createElement("tbody", null,
45
+ React.createElement("tr", null,
46
+ this.tdMonth(1),
47
+ this.tdMonth(2),
48
+ this.tdMonth(3)),
49
+ React.createElement("tr", null,
50
+ this.tdMonth(4),
51
+ this.tdMonth(5),
52
+ this.tdMonth(6)),
53
+ React.createElement("tr", null,
54
+ this.tdMonth(7),
55
+ this.tdMonth(8),
56
+ this.tdMonth(9)),
57
+ React.createElement("tr", null,
58
+ this.tdMonth(10),
59
+ this.tdMonth(11),
60
+ this.tdMonth(12)))))));
61
+ }
62
+ }