@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,49 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ export default function useLimitStyling(limit, min, max) {
3
+ const [slider, setSlider] = useState(null);
4
+ useEffect(() => {
5
+ if (slider) {
6
+ const containerEl = slider.querySelector('.rc-slider-rail');
7
+ if (!containerEl)
8
+ throw new Error('.rc-slider-rail element missing');
9
+ const disabledAreaEl = containerEl?.querySelector(`.disabled-area-element`);
10
+ const sliderWidth = containerEl.getBoundingClientRect().width;
11
+ if (disabledAreaEl) {
12
+ if (limit == null) {
13
+ disabledAreaEl.remove();
14
+ }
15
+ else {
16
+ const width = Math.round(((max - limit) / (max - min)) * sliderWidth);
17
+ disabledAreaEl.style.width = `${width}px`;
18
+ }
19
+ }
20
+ else if (limit != null) {
21
+ const width = Math.round(((max - limit) / (max - min)) * sliderWidth);
22
+ const disabledAreaEl = document.createElement('div');
23
+ disabledAreaEl.classList.add('disabled-area-element');
24
+ disabledAreaEl.style.width = `${width}px`;
25
+ containerEl.appendChild(disabledAreaEl);
26
+ }
27
+ }
28
+ }, [limit, slider, min, max]);
29
+ const updateLimitAreaSize = useCallback(() => {
30
+ if (slider && limit != null) {
31
+ const containerEl = slider.querySelector('.rc-slider-rail');
32
+ if (!containerEl)
33
+ throw new Error('.rc-slider-rail element missing');
34
+ const disabledAreaEl = containerEl?.querySelector(`.disabled-area-element`);
35
+ const sliderWidth = containerEl.getBoundingClientRect().width;
36
+ if (disabledAreaEl) {
37
+ const width = Math.round(((max - limit) / (max - min)) * sliderWidth);
38
+ disabledAreaEl.style.width = `${width}px`;
39
+ }
40
+ }
41
+ }, [limit, max, min, slider]);
42
+ useEffect(() => {
43
+ if (slider) {
44
+ const resizeObserver = new ResizeObserver(() => updateLimitAreaSize());
45
+ resizeObserver.observe(slider);
46
+ }
47
+ }, [slider, updateLimitAreaSize]);
48
+ return setSlider;
49
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Modification } from './types';
3
+ export declare type Props = {
4
+ /** base64 encoded content of the SVG file */
5
+ imageData: string | null | undefined;
6
+ /** list of modifications that should be applied to the svg elements */
7
+ modifications?: Modification[];
8
+ /** called with list of conflicting IDs which means IDs existing in the DOM and duplicated by the elements from the SVG */
9
+ onConflict?: (conflictingIds: string[]) => void;
10
+ };
11
+ export default function SvgImage({ imageData, modifications, onConflict }: Props): React.JSX.Element;
12
+ //# sourceMappingURL=SvgImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvgImage.d.ts","sourceRoot":"","sources":["../../../../../src/components/svg/SvgImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAG/C,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAIrC,oBAAY,KAAK,GAAG;IACnB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAErC,uEAAuE;IACvE,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAE/B,0HAA0H;IAC1H,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAChD,CAAC;AAyBF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAC,EAAE,KAAK,qBAiB7E"}
@@ -0,0 +1,37 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { useHistory } from 'react-router-dom';
3
+ import findConflicts from './utils/findConflicts';
4
+ import renderSvg from './utils/renderSvg';
5
+ function useGlobalStyleElement() {
6
+ const styleElementRef = useRef(null);
7
+ useEffect(() => {
8
+ const styleElement = document.createElement('style');
9
+ // WebKit hack
10
+ styleElement.appendChild(document.createTextNode(''));
11
+ if (document && document.head) {
12
+ document.head.appendChild(styleElement);
13
+ }
14
+ styleElementRef.current = styleElement;
15
+ return () => {
16
+ if (document && document.head && styleElement) {
17
+ document.head.removeChild(styleElement);
18
+ }
19
+ };
20
+ }, []);
21
+ return styleElementRef.current;
22
+ }
23
+ export default function SvgImage({ imageData, modifications, onConflict }) {
24
+ const svgWrapperRef = useRef(null);
25
+ const styleElement = useGlobalStyleElement();
26
+ const { push } = useHistory();
27
+ useEffect(() => {
28
+ const { current: wrapper } = svgWrapperRef;
29
+ if (wrapper && imageData) {
30
+ const svgElement = renderSvg(wrapper, imageData, modifications, styleElement, push);
31
+ if (svgElement && onConflict) {
32
+ return findConflicts(svgElement, onConflict);
33
+ }
34
+ }
35
+ }, [imageData, modifications, onConflict, push, styleElement]);
36
+ return React.createElement("div", { ref: svgWrapperRef });
37
+ }
@@ -0,0 +1,7 @@
1
+ export declare const simpleImageData: string;
2
+ export declare const simpleImageWithTextData: string;
3
+ export declare const animatedXYDotData: string;
4
+ export declare const animatedXDotData: string;
5
+ export declare const imageWithIdData: string;
6
+ export declare const rotatingImageData: string;
7
+ //# sourceMappingURL=storybookHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storybookHelper.d.ts","sourceRoot":"","sources":["../../../../../src/components/svg/storybookHelper.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,QASpB,CAAC;AAET,eAAO,MAAM,uBAAuB,QAYnC,CAAC;AACF,eAAO,MAAM,iBAAiB,QAO7B,CAAC;AACF,eAAO,MAAM,gBAAgB,QAQ5B,CAAC;AAEF,eAAO,MAAM,eAAe,QAI1B,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAY5B,CAAC"}
@@ -0,0 +1,53 @@
1
+ const encode = (data) => 'data:image/svg+xml;base64,' + btoa(data);
2
+ export const simpleImageData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="600" viewBox="-300 -300 600 600">
4
+ <circle r="292.3"/>
5
+ <g style="fill:#f1cd43" transform="scale(0.9783764)" id="content">
6
+ <circle r="50"/>
7
+ <path d="M75,0A75,75 0 0,0 37.5-64.951905L125-216.50635A250,250 0 0,1 250,0Z" id="bld"/>
8
+ <use xlink:href="#bld" transform="rotate(120)"/>
9
+ <use xlink:href="#bld" transform="rotate(240)"/>
10
+ </g>
11
+ </svg>`);
12
+ export const simpleImageWithTextData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
13
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="600" viewBox="-300 -300 600 600">
14
+ <circle r="292.3"/>
15
+ <g style="fill:#f1cd43" transform="scale(0.9783764)" id="content">
16
+ <circle r="50"/>
17
+ <path d="M75,0A75,75 0 0,0 37.5-64.951905L125-216.50635A250,250 0 0,1 250,0Z" id="bld"/>
18
+ <use xlink:href="#bld" transform="rotate(120)"/>
19
+ <use xlink:href="#bld" transform="rotate(240)"/>
20
+ </g>
21
+ <text id="myText" font-size="35px" xml:space="preserve"><tspan x="-230" y="-10">Google</tspan></text>
22
+ </svg>`);
23
+ export const animatedXYDotData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
24
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="600" viewBox="-300 -300 600 600">
25
+ <rect style="fill:#f1cd43" x="-300" y="-300" width="600" height="600" />
26
+ <circle id="myCircle" r="20" fill="#0000aa" cx="-170" cy="-20"/>
27
+ </svg>
28
+ `);
29
+ export const animatedXDotData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
30
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="600" viewBox="-300 -300 600 600">
31
+ <rect style="fill:#bababa" x="-300" y="-300" width="600" height="600" />
32
+ <rect id="myCircle-boundaries" style="fill:#f1cd43" x="-100" y="-200" width="300" height="400" />
33
+ <circle id="myCircle" r="15" fill="#0000aa" cx="-170" cy="-20"/>
34
+ </svg>
35
+ `);
36
+ export const imageWithIdData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
37
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="100" viewBox="-300 -300 600 600">
38
+ <rect id="myId" style="fill:#bababa" x="-300" y="-300" width="600" height="100" />
39
+ </svg>
40
+ `);
41
+ export const rotatingImageData = encode(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
42
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="600" viewBox="-300 -300 600 600">
43
+ <circle r="292.3"/>
44
+ <g style="fill:#f1cd43" transform="translate(0, 0)" id="content">
45
+ <circle r="500" fill="transparent"/>
46
+ <circle r="50"/>
47
+ <path d="M75,0A75,75 0 0,0 37.5-64.951905L125-216.50635A250,250 0 0,1 250,0Z" id="bld"/>
48
+ <use xlink:href="#bld" transform="rotate(120)"/>
49
+ <use xlink:href="#bld" transform="rotate(240)"/>
50
+ </g>
51
+ </g>
52
+ </svg>
53
+ `);
@@ -0,0 +1,58 @@
1
+ export declare type SetVisibility = {
2
+ type: 'visibility';
3
+ visible: boolean;
4
+ target: string;
5
+ };
6
+ declare type SetText = {
7
+ type: 'text';
8
+ text: string;
9
+ target: string;
10
+ };
11
+ declare type SetColor = {
12
+ type: 'color';
13
+ color: string;
14
+ target: string;
15
+ };
16
+ export declare type SetHyperlink = {
17
+ type: 'hyperlink';
18
+ target: string;
19
+ link: string;
20
+ internalLink: boolean;
21
+ hoverColor?: string;
22
+ };
23
+ export declare type AddEventListener = {
24
+ type: 'eventListener';
25
+ target: string;
26
+ eventType: string;
27
+ listener: EventListenerOrEventListenerObject;
28
+ options?: boolean | AddEventListenerOptions | undefined;
29
+ };
30
+ declare type AddClassNames = {
31
+ type: 'classNames';
32
+ target: string;
33
+ classNames: string[];
34
+ };
35
+ export declare type PositionX = {
36
+ type: 'positionX';
37
+ target: string;
38
+ position: number;
39
+ };
40
+ export declare type PositionY = {
41
+ type: 'positionY';
42
+ target: string;
43
+ position: number;
44
+ };
45
+ export declare type PositionXY = {
46
+ type: 'positionXY';
47
+ target: string;
48
+ positionX: number;
49
+ positionY: number;
50
+ };
51
+ declare type Rotation = {
52
+ type: 'rotation';
53
+ target: string;
54
+ degrees: number;
55
+ };
56
+ export declare type Modification = SetVisibility | SetText | SetColor | SetHyperlink | AddEventListener | AddClassNames | PositionX | PositionY | PositionXY | Rotation;
57
+ export {};
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/svg/types.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AACF,aAAK,OAAO,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AACF,aAAK,QAAQ,GAAG;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AACF,oBAAY,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,oBAAY,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kCAAkC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAAC;CACxD,CAAC;AACF,aAAK,aAAa,GAAG;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AACF,oBAAY,SAAS,GAAG;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,oBAAY,SAAS,GAAG;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,oBAAY,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,aAAK,QAAQ,GAAG;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,oBAAY,YAAY,GACrB,aAAa,GACb,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,SAAS,GACT,SAAS,GACT,UAAU,GACV,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getMutableNodeList.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutableNodeList.spec.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/svg/utils/__tests__/getMutableNodeList.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import getMutableNodeList, { parseFromString } from '../getMutableNodeList';
3
+ const testDiFieldId = 'di-field-id-';
4
+ const base64StringWithoutFieldIds = 'data:image/svg+xml;base64,PHN2Zz48aDE+SGk8L2gxPjwvc3ZnPg==';
5
+ const base64StringWithFieldIds = 'data:image/svg+xml;base64,PHN2Zz48aDE+Tm9uLU11dGFibGU8L2gxPjxoMiBpZD0iZGktZmllbGQtaWQtIj5NdXRhYmxlPC9oMj48L3N2Zz4=';
6
+ describe('get node list from svg base64 string', () => {
7
+ it('should return an empty list if no mutable nodes are found', () => {
8
+ const nodeList = getMutableNodeList(base64StringWithoutFieldIds, testDiFieldId);
9
+ expect(nodeList).toHaveLength(0);
10
+ });
11
+ it('should return a non-empty list if mutable nodes are found', () => {
12
+ const nodeList = getMutableNodeList(base64StringWithFieldIds, testDiFieldId);
13
+ expect(nodeList).toHaveLength(1);
14
+ expect(nodeList.item(0).innerHTML).toBe('Mutable');
15
+ });
16
+ it('should throw an error if there was a parsing error', () => {
17
+ expect(() => getMutableNodeList('wrong', testDiFieldId)).toThrow();
18
+ });
19
+ it('should remove the "svg:" namespace while parsing the input text', () => {
20
+ const html = '<svg:svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"><h1>Non-Mutable</h1><h2 id="di-field-id-">Mutable</h2></svg:svg>';
21
+ const document = parseFromString(`data:image/svg+xml;base64,${btoa(html)}`);
22
+ expect(document.children[0].nodeName).toEqual('svg');
23
+ });
24
+ });
@@ -0,0 +1,4 @@
1
+ import { SetHyperlink } from '../types';
2
+ export declare const SVG_NS = "http://www.w3.org/2000/svg";
3
+ export default function createHyperlinkModification(element: HTMLElement, { hoverColor, internalLink, link }: SetHyperlink, globalStyleElement: HTMLStyleElement | null, onInternalLinkChange: ((link: string) => void) | undefined): void;
4
+ //# sourceMappingURL=createHyperlinkModification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createHyperlinkModification.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/createHyperlinkModification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAGtC,eAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAClD,OAAO,EAAE,WAAW,EACpB,EAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAC,EAAE,YAAY,EAC9C,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,EAC3C,oBAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,QAiB1D"}
@@ -0,0 +1,35 @@
1
+ import { uuidV4 } from '../../../modules/utils/uuidGen';
2
+ export const SVG_NS = 'http://www.w3.org/2000/svg';
3
+ export default function createHyperlinkModification(element, { hoverColor, internalLink, link }, globalStyleElement, onInternalLinkChange) {
4
+ const anchor = wrapIntoAnchor(element);
5
+ if (!anchor)
6
+ return;
7
+ const uniqueClassName = `a${uuidV4(8)}`;
8
+ element.classList.add('anchor', uniqueClassName);
9
+ if (hoverColor && globalStyleElement?.sheet) {
10
+ globalStyleElement.sheet.insertRule(`.di.svg-image .anchor.${uniqueClassName}:hover, .di.svg-image .anchor.${uniqueClassName}:hover * { stroke: ${hoverColor} !important; }`);
11
+ }
12
+ anchor.setAttributeNS(SVG_NS, 'xlink:href', '#');
13
+ anchor.addEventListener('click', () => internalLink && onInternalLinkChange ? onInternalLinkChange(link) : window.open(link, '_newtab'));
14
+ }
15
+ function wrapIntoAnchor(wrappedElement) {
16
+ const parentNode = wrappedElement.parentNode;
17
+ if (!parentNode) {
18
+ return null;
19
+ }
20
+ const siblings = parentNode.childNodes;
21
+ if (!siblings) {
22
+ return null;
23
+ }
24
+ const index = Array.from(siblings).findIndex((el) => el === wrappedElement);
25
+ const wrapperElement = document.createElementNS(SVG_NS, 'a');
26
+ wrapperElement.appendChild(wrappedElement);
27
+ const siblingNode = siblings[index] || null;
28
+ if (siblingNode) {
29
+ parentNode.insertBefore(wrapperElement, siblingNode);
30
+ }
31
+ else {
32
+ parentNode.appendChild(wrapperElement);
33
+ }
34
+ return wrapperElement;
35
+ }
@@ -0,0 +1,3 @@
1
+ import { PositionX, PositionXY, PositionY } from '../types';
2
+ export default function createPositionModification(element: HTMLElement, modification: PositionX | PositionY | PositionXY, svgElement: SVGSVGElement): void;
3
+ //# sourceMappingURL=createPositionModification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPositionModification.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/createPositionModification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,0BAA0B,CACjD,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,EAChD,UAAU,EAAE,aAAa,QAgBzB"}
@@ -0,0 +1,19 @@
1
+ import { SVG } from '@svgdotjs/svg.js';
2
+ const limitPercentagePosition = (position) => Math.max(0, Math.min(100, position));
3
+ export default function createPositionModification(element, modification, svgElement) {
4
+ const svg = SVG(svgElement);
5
+ const targetId = element.getAttribute('id') || '';
6
+ const targetEl = svg.findOne(`#${targetId}`);
7
+ const boundariesEl = svg.findOne(`#${targetId}-boundaries`);
8
+ const bbox = boundariesEl ? boundariesEl.bbox() : svg.viewbox();
9
+ if (modification.type === 'positionX') {
10
+ targetEl.x(bbox.x + (limitPercentagePosition(modification.position) * bbox.width) / 100);
11
+ }
12
+ else if (modification.type === 'positionY') {
13
+ targetEl.y(bbox.y + (limitPercentagePosition(modification.position) * bbox.height) / 100);
14
+ }
15
+ else {
16
+ targetEl.x(bbox.x + (limitPercentagePosition(modification.positionX) * bbox.width) / 100);
17
+ targetEl.y(bbox.y + (limitPercentagePosition(modification.positionY) * bbox.height) / 100);
18
+ }
19
+ }
@@ -0,0 +1,2 @@
1
+ export default function findConflicts(svgElement: SVGSVGElement, onConflict: (conflictingIds: string[]) => void): () => void;
2
+ //# sourceMappingURL=findConflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findConflicts.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/findConflicts.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,cAQ9G"}
@@ -0,0 +1,23 @@
1
+ const CONFLICTING_IDS_DETECTION_DELAY = 500;
2
+ const calculateIdCountsInElement = (element) => {
3
+ return Array.from(element.querySelectorAll('[id]'))
4
+ .map((element) => element.getAttribute('id'))
5
+ .reduce((acc, id) => {
6
+ if (id)
7
+ acc[id] = acc[id] + 1 || 1;
8
+ return acc;
9
+ }, {});
10
+ };
11
+ const findAllDuplicatedIdsInSvgElement = (svgElement) => {
12
+ const idCountsInDocument = calculateIdCountsInElement(document);
13
+ const idCountsInSvg = calculateIdCountsInElement(svgElement);
14
+ return Object.keys(idCountsInSvg).filter((key) => idCountsInSvg[key] < idCountsInDocument[key]);
15
+ };
16
+ export default function findConflicts(svgElement, onConflict) {
17
+ const timeoutId = setTimeout(() => {
18
+ if (onConflict) {
19
+ onConflict(findAllDuplicatedIdsInSvgElement(svgElement));
20
+ }
21
+ }, CONFLICTING_IDS_DETECTION_DELAY);
22
+ return () => clearTimeout(timeoutId);
23
+ }
@@ -0,0 +1,3 @@
1
+ export declare const parseFromString: (imageData: string) => Document;
2
+ export default function (imageData: string, diFieldId: string): NodeListOf<Element>;
3
+ //# sourceMappingURL=getMutableNodeList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMutableNodeList.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/getMutableNodeList.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,cAAe,MAAM,aAIhD,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,uBAG5D"}
@@ -0,0 +1,12 @@
1
+ // SvgImage uses the @svgdotjs/svg.js library that doesn't work with the <svg:svg>...</svg:svg> elements.
2
+ // The naive solution - removing of the "svg:" namespace - solves the problem.
3
+ const removeSvgNamespace = (xml) => xml.replace(/<svg:svg/g, '<svg').replace(/<\/svg:svg/g, '</svg');
4
+ export const parseFromString = (imageData) => {
5
+ const parser = new DOMParser();
6
+ const xml = removeSvgNamespace(atob(imageData.replace('data:image/svg+xml;base64,', '')));
7
+ return parser.parseFromString(xml, 'image/svg+xml');
8
+ };
9
+ export default function (imageData, diFieldId) {
10
+ const doc = parseFromString(imageData);
11
+ return doc.querySelectorAll(`[id^="${diFieldId}"]`);
12
+ }
@@ -0,0 +1,3 @@
1
+ declare const _default: (imageData: string) => SVGSVGElement | null;
2
+ export default _default;
3
+ //# sourceMappingURL=getSvgElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSvgElement.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/getSvgElement.ts"],"names":[],"mappings":"oCAE2B,MAAM;AAAjC,wBAOE"}
@@ -0,0 +1,10 @@
1
+ import { parseFromString } from './getMutableNodeList';
2
+ export default (imageData) => {
3
+ try {
4
+ const imageDoc = parseFromString(imageData);
5
+ return imageDoc.querySelector('svg');
6
+ }
7
+ catch (e) {
8
+ return null;
9
+ }
10
+ };
@@ -0,0 +1,3 @@
1
+ import { Modification } from '../types';
2
+ export default function renderSvg(svgWrapper: HTMLDivElement, imageData: string, modifications: Modification[] | undefined, globalStyleElement: HTMLStyleElement | null, onInternalLinkChange: ((link: string) => void) | undefined): SVGSVGElement | null;
3
+ //# sourceMappingURL=renderSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderSvg.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/renderSvg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAMtC,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,EACzC,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,EAC3C,oBAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GACxD,aAAa,GAAG,IAAI,CAqBtB"}
@@ -0,0 +1,88 @@
1
+ import { SVG } from '@svgdotjs/svg.js';
2
+ import createHyperlinkModification from './createHyperlinkModification';
3
+ import { parseFromString } from './getMutableNodeList';
4
+ import transformPositionModifications from './transformPositionModifications';
5
+ import createPositionModification from './createPositionModification';
6
+ export default function renderSvg(svgWrapper, imageData, modifications, globalStyleElement, onInternalLinkChange) {
7
+ const imageDocument = parseFromString(imageData);
8
+ const svgElement = imageDocument.querySelector('svg');
9
+ if (svgElement) {
10
+ svgWrapper.style.height = '100%';
11
+ svgWrapper.innerHTML = '';
12
+ svgElement.style.height = '100%';
13
+ svgElement.style.width = '100%';
14
+ svgElement.classList.add('di', 'svg-image');
15
+ if (!svgElement.getAttribute('viewBox')) {
16
+ svgElement.setAttribute('viewBox', '');
17
+ }
18
+ if (!svgElement.getAttribute('preserveAspectRatio')) {
19
+ svgElement.setAttribute('preserveAspectRatio', 'xMidYMid');
20
+ }
21
+ svgWrapper.appendChild(svgElement);
22
+ applyModifications(svgElement, modifications, globalStyleElement, onInternalLinkChange);
23
+ return svgElement;
24
+ }
25
+ return null;
26
+ }
27
+ function applyModifications(svgElement, modifications, globalStyleElement, onInternalLinkChange) {
28
+ if (!modifications || !modifications.length)
29
+ return;
30
+ for (const modification of sortModifications(transformPositionModifications(modifications))) {
31
+ const element = svgElement.querySelector(`[id=${modification.target}]`);
32
+ if (element) {
33
+ applyModification(element, modification, svgElement, globalStyleElement, onInternalLinkChange);
34
+ }
35
+ }
36
+ }
37
+ function applyModification(element, modification, svgElement, globalStyleElement, onInternalLinkChange) {
38
+ switch (modification.type) {
39
+ case 'visibility':
40
+ element.setAttribute('visibility', modification.visible ? 'visible' : 'hidden');
41
+ break;
42
+ case 'text': {
43
+ const tspan = element.querySelector('tspan');
44
+ if (tspan) {
45
+ tspan.textContent = modification.text;
46
+ }
47
+ else {
48
+ element.textContent = modification.text;
49
+ }
50
+ break;
51
+ }
52
+ case 'color': {
53
+ const { color } = modification;
54
+ const changeColor = (el) => {
55
+ el.setAttribute('fill', color);
56
+ el.style.fill = color;
57
+ };
58
+ changeColor(element);
59
+ element.querySelectorAll('g, path').forEach(changeColor);
60
+ break;
61
+ }
62
+ case 'hyperlink':
63
+ createHyperlinkModification(element, modification, globalStyleElement, onInternalLinkChange);
64
+ break;
65
+ case 'eventListener':
66
+ element.addEventListener(modification.eventType, modification.listener, modification.options);
67
+ break;
68
+ case 'classNames':
69
+ element.classList.add(...modification.classNames);
70
+ break;
71
+ case 'positionX':
72
+ case 'positionY':
73
+ case 'positionXY':
74
+ createPositionModification(element, modification, svgElement);
75
+ break;
76
+ case 'rotation': {
77
+ // @ts-expect-error
78
+ SVG(element).rotate(modification.degrees);
79
+ break;
80
+ }
81
+ default:
82
+ throw new Error('Unknown modification');
83
+ }
84
+ }
85
+ // rotation moved to the end of the array
86
+ function sortModifications(modifications) {
87
+ return modifications.sort(({ type: type1 }, { type: type2 }) => (type1 !== type2 && type2 === 'rotation' ? -1 : 1));
88
+ }
@@ -0,0 +1,4 @@
1
+ import { Modification } from '../types';
2
+ declare const _default: (modifications: Array<Modification>) => Array<Modification>;
3
+ export default _default;
4
+ //# sourceMappingURL=transformPositionModifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformPositionModifications.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/transformPositionModifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAuB,MAAM,UAAU,CAAC;wCA6C7B,MAAM,YAAY,CAAC,KAAG,MAAM,YAAY,CAAC;AAAxE,wBAYE"}
@@ -0,0 +1,42 @@
1
+ const mergePositionChanges = (modifications) => {
2
+ const positionModifications = modifications.filter(({ type }) => type === 'positionX' || type === 'positionY');
3
+ const restModifications = modifications.filter(({ type }) => type !== 'positionX' && type !== 'positionY');
4
+ const positionByAxisModifications = positionModifications.reduce((acc, modification) => {
5
+ if (modification.type === 'positionX') {
6
+ return { ...acc, x: modification };
7
+ }
8
+ else if (modification.type === 'positionY') {
9
+ return { ...acc, y: modification };
10
+ }
11
+ return acc;
12
+ }, {
13
+ x: null,
14
+ y: null
15
+ });
16
+ if (positionByAxisModifications.x && positionByAxisModifications.y) {
17
+ return restModifications.concat([
18
+ {
19
+ type: 'positionXY',
20
+ target: positionByAxisModifications.x.target,
21
+ positionX: positionByAxisModifications.x.position,
22
+ positionY: positionByAxisModifications.y.position
23
+ }
24
+ ]);
25
+ }
26
+ else if (positionByAxisModifications.x) {
27
+ return restModifications.concat([positionByAxisModifications.x]);
28
+ }
29
+ else if (positionByAxisModifications.y) {
30
+ return restModifications.concat([positionByAxisModifications.y]);
31
+ }
32
+ else {
33
+ return restModifications;
34
+ }
35
+ };
36
+ export default (modifications) => {
37
+ const modificationsByTarget = modifications.reduce((acc, modification) => ({
38
+ ...acc,
39
+ [modification.target]: [...(acc[modification.target] || []), modification]
40
+ }), {});
41
+ return Object.keys(modificationsByTarget).reduce((acc, target) => acc.concat(mergePositionChanges(modificationsByTarget[target])), []);
42
+ };
@@ -0,0 +1,3 @@
1
+ declare const _default: (imageData: string) => boolean;
2
+ export default _default;
3
+ //# sourceMappingURL=validateSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSvg.d.ts","sourceRoot":"","sources":["../../../../../../src/components/svg/utils/validateSvg.ts"],"names":[],"mappings":"oCAE2B,MAAM,KAAG,OAAO;AAA3C,wBAGE"}
@@ -0,0 +1,5 @@
1
+ import getSvgElement from './getSvgElement';
2
+ export default (imageData) => {
3
+ const svgElement = getSvgElement(imageData);
4
+ return !!svgElement && !!svgElement.style;
5
+ };
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ declare type Page = {
3
+ path: string;
4
+ renderHeading: (props: unknown) => React.ReactNode;
5
+ headingTitle?: string;
6
+ renderBody: (props: any) => React.ReactNode;
7
+ draggingDisabled?: boolean;
8
+ disabled?: boolean;
9
+ };
10
+ export declare type Props = {
11
+ /** Path of the page where this component is rendered */
12
+ basePath?: string;
13
+ /** Array of pages to be displayed */
14
+ pages: Page[];
15
+ /** (Optional) function, executed if the order of the tabs get changed */
16
+ onOrderChange?: (oldIndex: number, newIndex: number) => void;
17
+ };
18
+ /**
19
+ * RouteTabs add the possibility to unite several homogeneous pages into one.
20
+ * Each tab can be accessed individually via the browser's history
21
+ */
22
+ export default function RouteTabs({ pages, onOrderChange, basePath, ...otherProps }: Props): React.JSX.Element;
23
+ export {};
24
+ //# sourceMappingURL=RouteTabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteTabs.d.ts","sourceRoot":"","sources":["../../../../../src/components/tabs/RouteTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAUtC,aAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,KAAK,EAAE,IAAI,EAAE,CAAC;IAEd,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D,CAAC;AA8DF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAC,EAAE,KAAK,qBA8EvF"}