@carlonicora/nextjs-jsonapi 1.0.3 → 1.0.5

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 (515) hide show
  1. package/dist/{AbstractService-BKlpJA61.d.mts → AbstractService-B2n_JdiC.d.mts} +1 -1
  2. package/dist/{AbstractService-D9eSVKNa.d.ts → AbstractService-DtQTYovo.d.ts} +1 -1
  3. package/dist/{content.interface-Dg2lt_An.d.mts → AuthComponent-CPLvEerw.d.mts} +11 -15
  4. package/dist/{content.interface-BhyAiOFq.d.ts → AuthComponent-m6Qp4Hz6.d.ts} +11 -15
  5. package/dist/{BlockNoteEditor-UVO3VZZE.mjs → BlockNoteEditor-BLVXQPXV.mjs} +14 -18
  6. package/dist/{BlockNoteEditor-UVO3VZZE.mjs.map → BlockNoteEditor-BLVXQPXV.mjs.map} +1 -1
  7. package/dist/{BlockNoteEditor-VFWG6LXI.js → BlockNoteEditor-ZTDHULFT.js} +15 -19
  8. package/dist/BlockNoteEditor-ZTDHULFT.js.map +1 -0
  9. package/dist/JsonApiRequest-O7BGUMFO.mjs +23 -0
  10. package/dist/JsonApiRequest-VARLNKAF.js +23 -0
  11. package/dist/JsonApiRequest-VARLNKAF.js.map +1 -0
  12. package/dist/chunk-2LM6LCJW.mjs +1 -0
  13. package/dist/chunk-3APORDYP.mjs +7783 -0
  14. package/dist/chunk-3APORDYP.mjs.map +1 -0
  15. package/dist/{chunk-TMVHSY3Y.js → chunk-5ZEADNNP.js} +36 -17
  16. package/dist/chunk-5ZEADNNP.js.map +1 -0
  17. package/dist/{chunk-ECDTZBYO.mjs → chunk-74F6BBHH.mjs} +21 -2
  18. package/dist/chunk-74F6BBHH.mjs.map +1 -0
  19. package/dist/{chunk-GYWPEPOH.mjs → chunk-7C5RAEBO.mjs} +72 -68
  20. package/dist/chunk-7C5RAEBO.mjs.map +1 -0
  21. package/dist/chunk-A5DDIABK.js +1 -0
  22. package/dist/{chunk-TEGF6ZWG.js → chunk-AGAJMJ4T.js} +47 -9
  23. package/dist/chunk-AGAJMJ4T.js.map +1 -0
  24. package/dist/{chunk-CXQOWQSY.js → chunk-AYHKQWHH.js} +15 -2
  25. package/dist/chunk-AYHKQWHH.js.map +1 -0
  26. package/dist/{chunk-I2REI7OA.js → chunk-HMHGLXWC.js} +33 -15
  27. package/dist/chunk-HMHGLXWC.js.map +1 -0
  28. package/dist/chunk-IWFGEPAA.mjs +1 -0
  29. package/dist/chunk-JC3WJK65.js +1 -0
  30. package/dist/{chunk-L6EQEAXU.mjs → chunk-PYF2U6WG.mjs} +25 -7
  31. package/dist/chunk-PYF2U6WG.mjs.map +1 -0
  32. package/dist/{chunk-YDVTFM7X.mjs → chunk-RBIVEH2K.mjs} +42 -4
  33. package/dist/chunk-RBIVEH2K.mjs.map +1 -0
  34. package/dist/{chunk-V2JJPI7N.js → chunk-RZO2LOW4.js} +237 -233
  35. package/dist/chunk-RZO2LOW4.js.map +1 -0
  36. package/dist/{chunk-X4BIHJ2B.mjs → chunk-SM63SZCP.mjs} +15 -2
  37. package/dist/chunk-SM63SZCP.mjs.map +1 -0
  38. package/dist/chunk-WEC4YMOS.js +7783 -0
  39. package/dist/chunk-WEC4YMOS.js.map +1 -0
  40. package/dist/client/index.d.mts +21 -2
  41. package/dist/client/index.d.ts +21 -2
  42. package/dist/client/index.js +18 -245
  43. package/dist/client/index.js.map +1 -1
  44. package/dist/client/index.mjs +28 -255
  45. package/dist/client/index.mjs.map +1 -1
  46. package/dist/components/index.d.mts +293 -8
  47. package/dist/components/index.d.ts +293 -8
  48. package/dist/components/index.js +78 -2323
  49. package/dist/components/index.js.map +1 -1
  50. package/dist/components/index.mjs +172 -2417
  51. package/dist/components/index.mjs.map +1 -1
  52. package/dist/{config-hXufftVS.d.ts → config-BmnK65TD.d.mts} +1 -0
  53. package/dist/{config-hXufftVS.d.mts → config-BmnK65TD.d.ts} +1 -0
  54. package/dist/config-DQeAo9Kf.d.mts +49 -0
  55. package/dist/config-DQeAo9Kf.d.ts +49 -0
  56. package/dist/contexts/index.d.mts +109 -21
  57. package/dist/contexts/index.d.ts +109 -21
  58. package/dist/contexts/index.js +39 -7
  59. package/dist/contexts/index.js.map +1 -1
  60. package/dist/contexts/index.mjs +40 -8
  61. package/dist/core/index.d.mts +3 -4
  62. package/dist/core/index.d.ts +3 -4
  63. package/dist/core/index.js +3 -7
  64. package/dist/core/index.js.map +1 -1
  65. package/dist/core/index.mjs +4 -8
  66. package/dist/{d3.link.interface-QMdB22bC.d.mts → d3.link.interface-ClC4Irqp.d.mts} +2 -1
  67. package/dist/{d3.link.interface-QMdB22bC.d.ts → d3.link.interface-ClC4Irqp.d.ts} +2 -1
  68. package/dist/features/index.d.mts +17 -86
  69. package/dist/features/index.d.ts +17 -86
  70. package/dist/features/index.js +7 -16
  71. package/dist/features/index.js.map +1 -1
  72. package/dist/features/index.mjs +10 -19
  73. package/dist/hooks/index.d.mts +18 -43
  74. package/dist/hooks/index.d.ts +18 -43
  75. package/dist/hooks/index.js +20 -7
  76. package/dist/hooks/index.js.map +1 -1
  77. package/dist/hooks/index.mjs +19 -6
  78. package/dist/index.d.mts +10 -6
  79. package/dist/index.d.ts +10 -6
  80. package/dist/index.js +13 -10
  81. package/dist/index.js.map +1 -1
  82. package/dist/index.mjs +22 -19
  83. package/dist/interfaces/index.d.mts +2 -1
  84. package/dist/interfaces/index.d.ts +2 -1
  85. package/dist/notification.interface-BBgMUdLR.d.mts +14 -0
  86. package/dist/notification.interface-gyvT-Z2F.d.ts +14 -0
  87. package/dist/permissions/index.d.mts +2 -3
  88. package/dist/permissions/index.d.ts +2 -3
  89. package/dist/server/index.d.mts +38 -18
  90. package/dist/server/index.d.ts +38 -18
  91. package/dist/server/index.js +70 -2
  92. package/dist/server/index.js.map +1 -1
  93. package/dist/server/index.mjs +68 -0
  94. package/dist/server/index.mjs.map +1 -1
  95. package/dist/types-BUAlgqqh.d.ts +39 -0
  96. package/dist/{types-DluCaP1I.d.ts → types-Bl61ob-7.d.mts} +19 -2
  97. package/dist/{types-lQVA8d_P.d.mts → types-Bl61ob-7.d.ts} +19 -2
  98. package/dist/types-iVdVY7ba.d.mts +39 -0
  99. package/dist/useSocket-Cn7fB_B1.d.mts +25 -0
  100. package/dist/useSocket-DzMKRKCA.d.ts +25 -0
  101. package/dist/user.fields-CbdObSmS.d.mts +18 -0
  102. package/dist/user.fields-CbdObSmS.d.ts +18 -0
  103. package/dist/utils/index.d.mts +1 -2
  104. package/dist/utils/index.d.ts +1 -2
  105. package/package.json +6 -3
  106. package/src/atoms/index.ts +1 -0
  107. package/src/atoms/recentPagesAtom.ts +10 -0
  108. package/src/client/context/JsonApiContext.ts +61 -0
  109. package/src/client/context/JsonApiProvider.tsx +27 -0
  110. package/src/client/context/index.ts +2 -0
  111. package/src/client/hooks/index.ts +3 -0
  112. package/src/client/hooks/useJsonApiGet.ts +188 -0
  113. package/src/client/hooks/useJsonApiMutation.ts +193 -0
  114. package/src/client/hooks/useRehydration.ts +47 -0
  115. package/src/client/index.ts +24 -0
  116. package/src/client/request.ts +97 -0
  117. package/src/client/token.ts +10 -0
  118. package/src/components/containers/PageContainer.tsx +15 -0
  119. package/src/components/containers/ReactMarkdownContainer.tsx +119 -0
  120. package/src/components/containers/TabsContainer.tsx +93 -0
  121. package/src/components/containers/index.ts +3 -0
  122. package/src/components/contents/AttributeElement.tsx +20 -0
  123. package/src/components/contents/index.ts +1 -0
  124. package/src/components/details/AllowedUsersDetails.tsx +23 -0
  125. package/src/components/details/index.ts +1 -0
  126. package/src/components/editors/BlockNoteDiffInlineContent.tsx +152 -0
  127. package/src/components/editors/BlockNoteEditor.tsx +404 -0
  128. package/src/components/editors/BlockNoteEditorContainer.tsx +13 -0
  129. package/src/components/editors/BlockNoteEditorFormattingToolbar.tsx +38 -0
  130. package/src/components/editors/index.ts +1 -0
  131. package/src/components/errors/ErrorDetails.tsx +41 -0
  132. package/src/components/errors/errorToast.ts +9 -0
  133. package/src/components/errors/index.ts +2 -0
  134. package/src/components/forms/CommonAssociationForm.tsx +162 -0
  135. package/src/components/forms/CommonDeleter.tsx +94 -0
  136. package/src/components/forms/CommonEditorButtons.tsx +30 -0
  137. package/src/components/forms/CommonEditorHeader.tsx +35 -0
  138. package/src/components/forms/CommonEditorTrigger.tsx +26 -0
  139. package/src/components/forms/DatePickerPopover.tsx +219 -0
  140. package/src/components/forms/DateRangeSelector.tsx +110 -0
  141. package/src/components/forms/FileUploader.tsx +324 -0
  142. package/src/components/forms/FormCheckbox.tsx +66 -0
  143. package/src/components/forms/FormContainerGeneric.tsx +39 -0
  144. package/src/components/forms/FormDate.tsx +247 -0
  145. package/src/components/forms/FormDateTime.tsx +231 -0
  146. package/src/components/forms/FormInput.tsx +110 -0
  147. package/src/components/forms/FormPassword.tsx +54 -0
  148. package/src/components/forms/FormPlaceAutocomplete.tsx +286 -0
  149. package/src/components/forms/FormSelect.tsx +72 -0
  150. package/src/components/forms/FormSlider.tsx +51 -0
  151. package/src/components/forms/FormSwitch.tsx +25 -0
  152. package/src/components/forms/FormTextarea.tsx +44 -0
  153. package/src/components/forms/MultiFileUploader.tsx +107 -0
  154. package/src/components/forms/PasswordInput.tsx +47 -0
  155. package/src/components/forms/index.ts +22 -0
  156. package/src/components/index.ts +16 -0
  157. package/src/components/navigations/Breadcrumb.tsx +83 -0
  158. package/src/components/navigations/ContentTitle.tsx +39 -0
  159. package/src/components/navigations/Header.tsx +27 -0
  160. package/src/components/navigations/ModeToggleSwitch.tsx +25 -0
  161. package/src/components/navigations/PageSection.tsx +64 -0
  162. package/src/components/navigations/RecentPagesNavigator.tsx +52 -0
  163. package/src/components/navigations/index.ts +6 -0
  164. package/src/components/pages/PageContainerContentDetails.tsx +76 -0
  165. package/src/components/pages/PageContentContainer.tsx +31 -0
  166. package/src/components/pages/index.ts +2 -0
  167. package/src/components/tables/ContentListTable.tsx +166 -0
  168. package/src/components/tables/ContentTableSearch.tsx +105 -0
  169. package/src/components/tables/cells/cell.component.tsx +18 -0
  170. package/src/components/tables/cells/cell.date.tsx +16 -0
  171. package/src/components/tables/cells/cell.id.tsx +27 -0
  172. package/src/components/tables/cells/cell.link.tsx +18 -0
  173. package/src/components/tables/cells/cell.text.tsx +12 -0
  174. package/src/components/tables/cells/cell.url.tsx +13 -0
  175. package/src/components/tables/cells/index.ts +5 -0
  176. package/src/components/tables/index.ts +3 -0
  177. package/src/contexts/CommonContext.tsx +52 -0
  178. package/src/contexts/SharedContext.tsx +37 -0
  179. package/src/contexts/SocketContext.tsx +65 -0
  180. package/src/contexts/index.ts +7 -0
  181. package/src/core/abstracts/AbstractApiData.ts +138 -0
  182. package/src/core/abstracts/AbstractService.ts +263 -0
  183. package/src/core/abstracts/index.ts +2 -0
  184. package/src/core/endpoint/EndpointCreator.ts +97 -0
  185. package/src/core/endpoint/index.ts +1 -0
  186. package/src/core/factories/JsonApiDataFactory.ts +12 -0
  187. package/src/core/factories/RehydrationFactory.ts +30 -0
  188. package/src/core/factories/index.ts +2 -0
  189. package/src/core/fields/FieldSelector.ts +15 -0
  190. package/src/core/fields/index.ts +1 -0
  191. package/src/core/index.ts +20 -0
  192. package/src/core/interfaces/ApiData.ts +8 -0
  193. package/src/core/interfaces/ApiDataInterface.ts +15 -0
  194. package/src/core/interfaces/ApiRequestDataTypeInterface.ts +14 -0
  195. package/src/core/interfaces/ApiResponseInterface.ts +17 -0
  196. package/src/core/interfaces/JsonApiHydratedDataInterface.ts +5 -0
  197. package/src/core/interfaces/index.ts +5 -0
  198. package/{dist/chunk-DO2HLAZO.js → src/core/registry/DataClassRegistry.ts} +20 -17
  199. package/src/core/registry/ModuleRegistrar.ts +43 -0
  200. package/src/core/registry/ModuleRegistry.ts +64 -0
  201. package/src/core/registry/index.ts +3 -0
  202. package/src/core/utils/index.ts +2 -0
  203. package/src/core/utils/rehydrate.ts +24 -0
  204. package/src/core/utils/translateResponse.ts +125 -0
  205. package/src/features/auth/auth.module.ts +9 -0
  206. package/src/features/auth/components/containers/AuthContainer.tsx +32 -0
  207. package/src/features/auth/components/containers/index.ts +1 -0
  208. package/src/features/auth/components/details/LandingComponent.tsx +39 -0
  209. package/src/features/auth/components/details/index.ts +1 -0
  210. package/src/features/auth/components/forms/AcceptInvitation.tsx +136 -0
  211. package/src/features/auth/components/forms/ActivateAccount.tsx +75 -0
  212. package/src/features/auth/components/forms/Cookies.tsx +32 -0
  213. package/src/features/auth/components/forms/ForgotPassword.tsx +108 -0
  214. package/src/features/auth/components/forms/Login.tsx +118 -0
  215. package/src/features/auth/components/forms/Logout.tsx +19 -0
  216. package/src/features/auth/components/forms/RefreshUser.tsx +39 -0
  217. package/src/features/auth/components/forms/Register.tsx +150 -0
  218. package/src/features/auth/components/forms/ResetPassword.tsx +126 -0
  219. package/src/features/auth/components/forms/index.ts +9 -0
  220. package/src/features/auth/components/index.ts +3 -0
  221. package/src/features/auth/config.ts +57 -0
  222. package/src/features/auth/contexts/AuthContext.tsx +77 -0
  223. package/src/features/auth/contexts/index.ts +1 -0
  224. package/src/features/auth/data/auth.interface.ts +31 -0
  225. package/src/features/auth/data/auth.service.ts +159 -0
  226. package/src/features/auth/data/auth.ts +54 -0
  227. package/src/features/auth/data/index.ts +3 -0
  228. package/src/features/auth/enums/AuthComponent.ts +9 -0
  229. package/src/features/auth/enums/index.ts +1 -0
  230. package/src/features/auth/index.ts +4 -0
  231. package/src/features/auth/utils/AuthCookies.ts +134 -0
  232. package/src/features/auth/utils/index.ts +1 -0
  233. package/src/features/company/company.module.ts +10 -0
  234. package/src/features/company/components/containers/AdminCompanyContainer.tsx +26 -0
  235. package/src/features/company/components/containers/CompanyContainer.tsx +17 -0
  236. package/src/features/company/components/containers/index.ts +2 -0
  237. package/src/features/company/components/details/CompanyDetails.tsx +26 -0
  238. package/src/features/company/components/details/index.ts +1 -0
  239. package/src/features/company/components/forms/CompanyConfigurationEditor.tsx +151 -0
  240. package/src/features/company/components/forms/CompanyConfigurationSecurityForm.tsx +97 -0
  241. package/src/features/company/components/forms/CompanyDeleter.tsx +121 -0
  242. package/src/features/company/components/forms/CompanyEditor.tsx +245 -0
  243. package/src/features/company/components/forms/CompanyLicense.tsx +213 -0
  244. package/src/features/company/components/forms/index.ts +5 -0
  245. package/src/features/company/components/index.ts +4 -0
  246. package/src/features/company/components/lists/CompaniesList.tsx +31 -0
  247. package/src/features/company/components/lists/index.ts +1 -0
  248. package/src/features/company/contexts/CompanyContext.tsx +99 -0
  249. package/src/features/company/contexts/index.ts +0 -0
  250. package/src/features/company/data/company.fields.ts +6 -0
  251. package/src/features/company/data/company.interface.ts +28 -0
  252. package/src/features/company/data/company.service.ts +73 -0
  253. package/src/features/company/data/company.ts +104 -0
  254. package/src/features/company/data/index.ts +4 -0
  255. package/src/features/company/hooks/index.ts +1 -0
  256. package/src/features/company/hooks/useCompanyTableStructure.tsx +82 -0
  257. package/src/features/company/index.ts +2 -0
  258. package/src/features/content/content.module.ts +20 -0
  259. package/src/features/content/data/content.fields.ts +13 -0
  260. package/src/features/content/data/content.interface.ts +23 -0
  261. package/src/features/content/data/content.service.ts +75 -0
  262. package/src/features/content/data/content.ts +85 -0
  263. package/src/features/content/data/index.ts +4 -0
  264. package/src/features/content/index.ts +2 -0
  265. package/src/features/feature/components/forms/FormFeatures.tsx +150 -0
  266. package/src/features/feature/components/forms/index.ts +1 -0
  267. package/src/features/feature/components/index.ts +1 -0
  268. package/src/features/feature/data/feature.interface.ts +9 -0
  269. package/src/features/feature/data/feature.service.ts +19 -0
  270. package/src/features/feature/data/feature.ts +33 -0
  271. package/src/features/feature/data/index.ts +3 -0
  272. package/src/features/feature/feature.module.ts +10 -0
  273. package/src/features/feature/index.ts +2 -0
  274. package/src/features/index.ts +12 -0
  275. package/src/features/module/data/index.ts +2 -0
  276. package/src/features/module/data/module.interface.ts +12 -0
  277. package/src/features/module/data/module.ts +42 -0
  278. package/src/features/module/index.ts +2 -0
  279. package/src/features/module/module.module.ts +10 -0
  280. package/src/features/notification/components/common/NotificationErrorBoundary.tsx +51 -0
  281. package/src/features/notification/components/common/index.ts +1 -0
  282. package/src/features/notification/components/containers/NotificationsListContainer.tsx +44 -0
  283. package/src/features/notification/components/containers/index.ts +1 -0
  284. package/src/features/notification/components/index.ts +5 -0
  285. package/src/features/notification/components/lists/NotificationsList.tsx +129 -0
  286. package/src/features/notification/components/lists/index.ts +1 -0
  287. package/src/features/notification/components/modals/NotificationModal.tsx +220 -0
  288. package/src/features/notification/components/modals/index.ts +1 -0
  289. package/src/features/notification/components/notifications/Notification.tsx +120 -0
  290. package/src/features/notification/components/notifications/PushNotificationProvider.tsx +9 -0
  291. package/src/features/notification/components/notifications/index.ts +2 -0
  292. package/src/features/notification/contexts/NotificationContext.tsx +187 -0
  293. package/src/features/notification/contexts/index.ts +1 -0
  294. package/src/features/notification/data/index.ts +4 -0
  295. package/src/features/notification/data/notification.fields.ts +8 -0
  296. package/src/features/notification/data/notification.interface.ts +14 -0
  297. package/src/features/notification/data/notification.service.ts +34 -0
  298. package/src/features/notification/data/notification.ts +51 -0
  299. package/src/features/notification/index.ts +2 -0
  300. package/src/features/notification/notification.module.ts +10 -0
  301. package/src/features/push/data/index.ts +3 -0
  302. package/src/features/push/data/push.interface.ts +8 -0
  303. package/src/features/push/data/push.service.ts +17 -0
  304. package/src/features/push/data/push.ts +18 -0
  305. package/src/features/push/index.ts +2 -0
  306. package/src/features/push/push.module.ts +10 -0
  307. package/src/features/role/components/containers/RoleContainer.tsx +18 -0
  308. package/src/features/role/components/containers/index.ts +1 -0
  309. package/src/features/role/components/details/RoleDetails.tsx +21 -0
  310. package/src/features/role/components/details/index.ts +1 -0
  311. package/src/features/role/components/forms/FormRoles.tsx +82 -0
  312. package/src/features/role/components/forms/RemoveUserFromRole.tsx +108 -0
  313. package/src/features/role/components/forms/UserRoleAdd.tsx +128 -0
  314. package/src/features/role/components/forms/index.ts +3 -0
  315. package/src/features/role/components/index.ts +4 -0
  316. package/src/features/role/components/lists/RolesList.tsx +27 -0
  317. package/src/features/role/components/lists/UserRolesList.tsx +31 -0
  318. package/src/features/role/components/lists/index.ts +2 -0
  319. package/src/features/role/contexts/RoleContext.tsx +84 -0
  320. package/src/features/role/contexts/index.ts +1 -0
  321. package/src/features/role/data/index.ts +4 -0
  322. package/src/features/role/data/role.fields.ts +8 -0
  323. package/src/features/role/data/role.interface.ts +16 -0
  324. package/src/features/role/data/role.service.ts +117 -0
  325. package/src/features/role/data/role.ts +62 -0
  326. package/src/features/role/hooks/index.ts +1 -0
  327. package/src/features/role/hooks/useRoleTableStructure.tsx +72 -0
  328. package/src/features/role/index.ts +2 -0
  329. package/src/features/role/role.module.ts +10 -0
  330. package/src/features/s3/data/index.ts +3 -0
  331. package/src/features/s3/data/s3.interface.ts +11 -0
  332. package/src/features/s3/data/s3.service.ts +30 -0
  333. package/src/features/s3/data/s3.ts +60 -0
  334. package/src/features/s3/index.ts +2 -0
  335. package/src/features/s3/s3.module.ts +10 -0
  336. package/src/features/search/index.ts +1 -0
  337. package/src/features/search/interfaces/index.ts +1 -0
  338. package/src/features/search/interfaces/search.result.interface.ts +3 -0
  339. package/src/features/user/author.module.ts +10 -0
  340. package/src/features/user/components/containers/UserContainer.tsx +23 -0
  341. package/src/features/user/components/containers/UserIndexContainer.tsx +12 -0
  342. package/src/features/user/components/containers/UsersListContainer.tsx +36 -0
  343. package/src/features/user/components/containers/index.ts +3 -0
  344. package/src/features/user/components/details/UserDetails.tsx +74 -0
  345. package/src/features/user/components/details/UserIndexDetails.tsx +28 -0
  346. package/src/features/user/components/details/index.ts +2 -0
  347. package/src/features/user/components/forms/RoleUserAdd.tsx +93 -0
  348. package/src/features/user/components/forms/UserAvatarEditor.tsx +78 -0
  349. package/src/features/user/components/forms/UserDeleter.tsx +49 -0
  350. package/src/features/user/components/forms/UserEditor.tsx +319 -0
  351. package/src/features/user/components/forms/UserMultiSelect.tsx +218 -0
  352. package/src/features/user/components/forms/UserReactivator.tsx +79 -0
  353. package/src/features/user/components/forms/UserResentInvitationEmail.tsx +88 -0
  354. package/src/features/user/components/forms/UserSelector.tsx +185 -0
  355. package/src/features/user/components/forms/index.ts +8 -0
  356. package/src/features/user/components/index.ts +5 -0
  357. package/src/features/user/components/lists/AdminUsersList.tsx +41 -0
  358. package/src/features/user/components/lists/CompanyUsersList.tsx +44 -0
  359. package/src/features/user/components/lists/ContributorsList.tsx +41 -0
  360. package/src/features/user/components/lists/RelevantUsersList.tsx +30 -0
  361. package/src/features/user/components/lists/RoleUsersList.tsx +31 -0
  362. package/src/features/user/components/lists/UserListInAdd.tsx +53 -0
  363. package/src/features/user/components/lists/UsersList.tsx +30 -0
  364. package/src/features/user/components/lists/UsersListByContentIds.tsx +30 -0
  365. package/src/features/user/components/lists/index.ts +8 -0
  366. package/src/features/user/components/widgets/UserAvatar.tsx +86 -0
  367. package/src/features/user/components/widgets/UserAvatarList.tsx +31 -0
  368. package/src/features/user/components/widgets/UserSearchPopover.tsx +89 -0
  369. package/src/features/user/components/widgets/index.ts +1 -0
  370. package/src/features/user/contexts/CurrentUserContext.tsx +156 -0
  371. package/src/features/user/contexts/UserContext.tsx +106 -0
  372. package/src/features/user/contexts/index.ts +2 -0
  373. package/src/features/user/data/index.ts +4 -0
  374. package/src/features/user/data/user.fields.ts +8 -0
  375. package/src/features/user/data/user.interface.ts +41 -0
  376. package/src/features/user/data/user.service.ts +246 -0
  377. package/src/features/user/data/user.ts +162 -0
  378. package/src/features/user/hooks/index.ts +2 -0
  379. package/src/features/user/hooks/useUserSearch.ts +53 -0
  380. package/src/features/user/hooks/useUserTableStructure.tsx +115 -0
  381. package/src/features/user/index.ts +3 -0
  382. package/src/features/user/user.module.ts +21 -0
  383. package/src/hooks/TableGeneratorRegistry.ts +53 -0
  384. package/src/hooks/index.ts +37 -0
  385. package/src/hooks/types.ts +35 -0
  386. package/src/hooks/url.rewriter.ts +22 -0
  387. package/src/hooks/useCustomD3Graph.tsx +707 -0
  388. package/src/hooks/useDataListRetriever.ts +349 -0
  389. package/src/hooks/useDebounce.ts +33 -0
  390. package/src/hooks/useNotificationSync.ts +20 -0
  391. package/src/hooks/usePageTracker.ts +69 -0
  392. package/src/hooks/usePageUrlGenerator.ts +50 -0
  393. package/src/hooks/usePushNotifications.ts +82 -0
  394. package/src/hooks/useSocket.ts +201 -0
  395. package/src/hooks/useTableGenerator.ts +20 -0
  396. package/src/i18n/config.ts +74 -0
  397. package/src/i18n/index.ts +18 -0
  398. package/src/index.ts +20 -0
  399. package/src/interfaces/breadcrumb.item.data.interface.ts +4 -0
  400. package/src/interfaces/d3.link.interface.ts +8 -0
  401. package/src/interfaces/d3.node.interface.ts +12 -0
  402. package/src/interfaces/index.ts +3 -0
  403. package/src/permissions/check.ts +127 -0
  404. package/src/permissions/index.ts +2 -0
  405. package/src/permissions/types.ts +109 -0
  406. package/src/roles/config.ts +46 -0
  407. package/src/roles/index.ts +1 -0
  408. package/src/server/ServerSession.ts +103 -0
  409. package/src/server/cache.ts +28 -0
  410. package/src/server/index.ts +4 -0
  411. package/src/server/request.ts +113 -0
  412. package/src/server/token.ts +10 -0
  413. package/src/shadcnui/custom/kanban.tsx +1001 -0
  414. package/src/shadcnui/custom/link.tsx +18 -0
  415. package/src/shadcnui/custom/multi-select.tsx +382 -0
  416. package/src/shadcnui/index.ts +49 -0
  417. package/src/shadcnui/ui/accordion.tsx +52 -0
  418. package/src/shadcnui/ui/alert-dialog.tsx +141 -0
  419. package/src/shadcnui/ui/alert.tsx +43 -0
  420. package/src/shadcnui/ui/avatar.tsx +50 -0
  421. package/src/shadcnui/ui/badge.tsx +40 -0
  422. package/src/shadcnui/ui/breadcrumb.tsx +115 -0
  423. package/src/shadcnui/ui/button.tsx +51 -0
  424. package/src/shadcnui/ui/calendar.tsx +73 -0
  425. package/src/shadcnui/ui/card.tsx +43 -0
  426. package/src/shadcnui/ui/carousel.tsx +225 -0
  427. package/src/shadcnui/ui/chart.tsx +320 -0
  428. package/src/shadcnui/ui/checkbox.tsx +29 -0
  429. package/src/shadcnui/ui/collapsible.tsx +11 -0
  430. package/src/shadcnui/ui/command.tsx +155 -0
  431. package/src/shadcnui/ui/context-menu.tsx +179 -0
  432. package/src/shadcnui/ui/dialog.tsx +96 -0
  433. package/src/shadcnui/ui/drawer.tsx +89 -0
  434. package/src/shadcnui/ui/dropdown-menu.tsx +205 -0
  435. package/src/shadcnui/ui/form.tsx +138 -0
  436. package/src/shadcnui/ui/hover-card.tsx +29 -0
  437. package/src/shadcnui/ui/input.tsx +21 -0
  438. package/src/shadcnui/ui/label.tsx +26 -0
  439. package/src/shadcnui/ui/navigation-menu.tsx +168 -0
  440. package/src/shadcnui/ui/popover.tsx +33 -0
  441. package/src/shadcnui/ui/progress.tsx +25 -0
  442. package/src/shadcnui/ui/radio-group.tsx +37 -0
  443. package/src/shadcnui/ui/resizable.tsx +47 -0
  444. package/src/shadcnui/ui/scroll-area.tsx +40 -0
  445. package/src/shadcnui/ui/select.tsx +164 -0
  446. package/src/shadcnui/ui/separator.tsx +28 -0
  447. package/src/shadcnui/ui/sheet.tsx +139 -0
  448. package/src/shadcnui/ui/sidebar.tsx +677 -0
  449. package/src/shadcnui/ui/skeleton.tsx +13 -0
  450. package/src/shadcnui/ui/slider.tsx +25 -0
  451. package/src/shadcnui/ui/sonner.tsx +25 -0
  452. package/src/shadcnui/ui/switch.tsx +31 -0
  453. package/src/shadcnui/ui/table.tsx +120 -0
  454. package/src/shadcnui/ui/tabs.tsx +55 -0
  455. package/src/shadcnui/ui/textarea.tsx +24 -0
  456. package/src/shadcnui/ui/toggle.tsx +39 -0
  457. package/src/shadcnui/ui/tooltip.tsx +61 -0
  458. package/src/unified/JsonApiRequest.ts +348 -0
  459. package/src/unified/index.ts +1 -0
  460. package/src/utils/blocknote-diff.util.ts +815 -0
  461. package/src/utils/blocknote-word-diff-renderer.util.ts +413 -0
  462. package/src/utils/cn.ts +6 -0
  463. package/src/utils/compose-refs.ts +61 -0
  464. package/src/utils/date-formatter.ts +53 -0
  465. package/src/utils/exists.ts +7 -0
  466. package/src/utils/index.ts +15 -0
  467. package/src/utils/schemas/entity.object.schema.ts +8 -0
  468. package/src/utils/schemas/index.ts +2 -0
  469. package/src/utils/schemas/user.object.schema.ts +9 -0
  470. package/src/utils/table-options.ts +67 -0
  471. package/src/utils/use-mobile.tsx +21 -0
  472. package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.mts +0 -20
  473. package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.ts +0 -20
  474. package/dist/BlockNoteEditor-VFWG6LXI.js.map +0 -1
  475. package/dist/JsonApiRequest-S3ICLM7B.mjs +0 -20
  476. package/dist/JsonApiRequest-ZZLSP26T.js +0 -20
  477. package/dist/JsonApiRequest-ZZLSP26T.js.map +0 -1
  478. package/dist/chunk-366S2JCC.mjs +0 -31
  479. package/dist/chunk-366S2JCC.mjs.map +0 -1
  480. package/dist/chunk-5W6AKZE6.mjs +0 -131
  481. package/dist/chunk-5W6AKZE6.mjs.map +0 -1
  482. package/dist/chunk-A3J3AAYM.mjs +0 -97
  483. package/dist/chunk-A3J3AAYM.mjs.map +0 -1
  484. package/dist/chunk-AWONBQQP.js +0 -97
  485. package/dist/chunk-AWONBQQP.js.map +0 -1
  486. package/dist/chunk-CXQOWQSY.js.map +0 -1
  487. package/dist/chunk-DKKMWBP4.mjs +0 -1
  488. package/dist/chunk-DKKMWBP4.mjs.map +0 -1
  489. package/dist/chunk-DO2HLAZO.js.map +0 -1
  490. package/dist/chunk-DZXDB3K2.mjs +0 -17
  491. package/dist/chunk-DZXDB3K2.mjs.map +0 -1
  492. package/dist/chunk-ECDTZBYO.mjs.map +0 -1
  493. package/dist/chunk-FY4SXJGU.js +0 -806
  494. package/dist/chunk-FY4SXJGU.js.map +0 -1
  495. package/dist/chunk-GYWPEPOH.mjs.map +0 -1
  496. package/dist/chunk-H6FMOA6B.js +0 -1
  497. package/dist/chunk-H6FMOA6B.js.map +0 -1
  498. package/dist/chunk-I2REI7OA.js.map +0 -1
  499. package/dist/chunk-J4Q36PMP.js +0 -31
  500. package/dist/chunk-J4Q36PMP.js.map +0 -1
  501. package/dist/chunk-L6EQEAXU.mjs.map +0 -1
  502. package/dist/chunk-MFO27OHB.mjs +0 -48
  503. package/dist/chunk-MFO27OHB.mjs.map +0 -1
  504. package/dist/chunk-RAF7PNLG.js +0 -131
  505. package/dist/chunk-RAF7PNLG.js.map +0 -1
  506. package/dist/chunk-RUR22SVM.js +0 -17
  507. package/dist/chunk-RUR22SVM.js.map +0 -1
  508. package/dist/chunk-TEGF6ZWG.js.map +0 -1
  509. package/dist/chunk-TMVHSY3Y.js.map +0 -1
  510. package/dist/chunk-V2JJPI7N.js.map +0 -1
  511. package/dist/chunk-WWWMJZEF.mjs +0 -806
  512. package/dist/chunk-WWWMJZEF.mjs.map +0 -1
  513. package/dist/chunk-X4BIHJ2B.mjs.map +0 -1
  514. package/dist/chunk-YDVTFM7X.mjs.map +0 -1
  515. /package/dist/{JsonApiRequest-S3ICLM7B.mjs.map → JsonApiRequest-O7BGUMFO.mjs.map} +0 -0
@@ -1,806 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
2
-
3
- var _chunkI2REI7OAjs = require('./chunk-I2REI7OA.js');
4
-
5
-
6
- var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
7
-
8
- // src/hooks/TableGeneratorRegistry.ts
9
- var TableGeneratorRegistry = (_class = class _TableGeneratorRegistry {
10
- static {
11
- _chunk7QVYU63Ejs.__name.call(void 0, this, "TableGeneratorRegistry");
12
- }
13
-
14
- __init() {this.registry = /* @__PURE__ */ new Map()}
15
- constructor() {;_class.prototype.__init.call(this);
16
- }
17
- static getInstance() {
18
- if (!_TableGeneratorRegistry.instance) {
19
- _TableGeneratorRegistry.instance = new _TableGeneratorRegistry();
20
- }
21
- return _TableGeneratorRegistry.instance;
22
- }
23
- register(type, hook) {
24
- if (!this.registry.has(type)) this.registry.set(type, hook);
25
- }
26
- get(type, params) {
27
- const hook = this.registry.get(type);
28
- if (!hook) {
29
- throw new Error(
30
- `Table generator for type "${type}" is not registered. Available types: ${Array.from(this.registry.keys()).join(
31
- ", "
32
- )}`
33
- );
34
- }
35
- return hook(params);
36
- }
37
- isRegistered(type) {
38
- return this.registry.has(type);
39
- }
40
- getRegisteredTypes() {
41
- return Array.from(this.registry.keys());
42
- }
43
- unregister(type) {
44
- return this.registry.delete(type);
45
- }
46
- clear() {
47
- this.registry.clear();
48
- }
49
- }, _class);
50
- var tableGeneratorRegistry = TableGeneratorRegistry.getInstance();
51
-
52
- // src/hooks/url.rewriter.ts
53
- var _nextintl = require('next-intl');
54
- var _react = require('react');
55
-
56
- // src/hooks/usePageUrlGenerator.ts
57
- function usePageUrlGenerator() {
58
- const generateUrl = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => {
59
- if (!params.page) return "/";
60
- const pathParams = [
61
- `${params.language ? `/${params.language}` : ""}${typeof params.page === "string" ? params.page : params.page.pageUrl}`
62
- ];
63
- if (params.id) {
64
- pathParams.push(params.id);
65
- if (params.childPage) {
66
- pathParams.push(typeof params.childPage === "string" ? params.childPage : _nullishCoalesce(params.childPage.pageUrl, () => ( "")));
67
- if (params.childId) {
68
- pathParams.push(params.childId);
69
- }
70
- }
71
- }
72
- const response = pathParams.join(`/`);
73
- if (params.additionalParameters) {
74
- const searchParams = new URLSearchParams();
75
- for (const key in params.additionalParameters) {
76
- if (params.additionalParameters[key]) {
77
- searchParams.append(key, params.additionalParameters[key]);
78
- }
79
- }
80
- return `${response}?${searchParams.toString()}`;
81
- }
82
- return response;
83
- }, "generateUrl");
84
- return generateUrl;
85
- }
86
- _chunk7QVYU63Ejs.__name.call(void 0, usePageUrlGenerator, "usePageUrlGenerator");
87
-
88
- // src/hooks/url.rewriter.ts
89
- function useUrlRewriter() {
90
- const locale = _nextintl.useLocale.call(void 0, );
91
- const generateUrl = usePageUrlGenerator();
92
- return _react.useCallback.call(void 0,
93
- (params) => {
94
- window.history.replaceState(
95
- null,
96
- "",
97
- generateUrl({ page: params.page, id: params.id, childPage: params.childPage, language: locale })
98
- );
99
- },
100
- [locale, generateUrl]
101
- );
102
- }
103
- _chunk7QVYU63Ejs.__name.call(void 0, useUrlRewriter, "useUrlRewriter");
104
-
105
- // src/hooks/useDataListRetriever.ts
106
-
107
- function useDataListRetriever(params) {
108
- const [data, setData] = _react.useState.call(void 0, void 0);
109
- const [nextPage, setNextPage] = _react.useState.call(void 0, void 0);
110
- const [previousPage, setPreviousPage] = _react.useState.call(void 0, void 0);
111
- const [isLoaded, setIsLoaded] = _react.useState.call(void 0, false);
112
- const [ready, setReady] = _react.useState.call(void 0, _nullishCoalesce(params.ready, () => ( true)));
113
- const searchTermRef = _react.useRef.call(void 0, "");
114
- const additionalParamsRef = _react.useRef.call(void 0, {});
115
- const requestIdRef = _react.useRef.call(void 0, 0);
116
- const abortControllerRef = _react.useRef.call(void 0, null);
117
- const isFetchingRef = _react.useRef.call(void 0, false);
118
- const resolvedType = params.module;
119
- const resolvedService = _chunkI2REI7OAjs.AbstractService;
120
- const parsePageParams = _react.useCallback.call(void 0, (url) => {
121
- if (!url) return null;
122
- try {
123
- const urlObj = new URL(url);
124
- const offset = parseInt(urlObj.searchParams.get("page[offset]") || "0", 10);
125
- const size = parseInt(urlObj.searchParams.get("page[size]") || "25", 10);
126
- return { offset, size };
127
- } catch (e) {
128
- return null;
129
- }
130
- }, []);
131
- const adjustPaginationUrl = _react.useCallback.call(void 0, (url, delta) => {
132
- if (!url) return void 0;
133
- try {
134
- const urlObj = new URL(url);
135
- const currentOffset = parseInt(urlObj.searchParams.get("page[offset]") || "0", 10);
136
- const newOffset = Math.max(0, currentOffset + delta);
137
- urlObj.searchParams.set("page[offset]", String(newOffset));
138
- return urlObj.toString();
139
- } catch (e2) {
140
- return url;
141
- }
142
- }, []);
143
- const pageInfo = _react.useMemo.call(void 0, () => {
144
- if (!data || data.length === 0) return void 0;
145
- const nextParams = parsePageParams(nextPage);
146
- const prevParams = parsePageParams(previousPage);
147
- let currentOffset = 0;
148
- let pageSize = 25;
149
- if (nextParams) {
150
- pageSize = nextParams.size;
151
- currentOffset = Math.max(0, nextParams.offset - pageSize);
152
- } else if (prevParams) {
153
- pageSize = prevParams.size;
154
- currentOffset = prevParams.offset + pageSize;
155
- }
156
- const startItem = currentOffset + 1;
157
- const endItem = currentOffset + data.length;
158
- return { startItem, endItem, pageSize };
159
- }, [data, nextPage, previousPage, parsePageParams]);
160
- const stableParams = _react.useMemo.call(void 0,
161
- () => ({
162
- service: resolvedService,
163
- type: resolvedType,
164
- retriever: params.retriever,
165
- retrieverParams: params.retrieverParams,
166
- requiresSearch: params.requiresSearch
167
- }),
168
- [resolvedService, resolvedType, params.retriever, params.retrieverParams, params.requiresSearch]
169
- );
170
- const fetchData = _react.useCallback.call(void 0,
171
- async (fetchParams) => {
172
- if (ready === false) {
173
- return;
174
- }
175
- if (isFetchingRef.current && !_optionalChain([fetchParams, 'optionalAccess', _ => _.callNext]) && !_optionalChain([fetchParams, 'optionalAccess', _2 => _2.callPrevious])) {
176
- return;
177
- }
178
- const thisRequestId = ++requestIdRef.current;
179
- isFetchingRef.current = true;
180
- if (stableParams.requiresSearch === true && _optionalChain([fetchParams, 'optionalAccess', _3 => _3.isRefine]) !== true && _optionalChain([fetchParams, 'optionalAccess', _4 => _4.isRefresh]) !== true)
181
- return;
182
- if (!nextPage && !previousPage && isLoaded && _optionalChain([fetchParams, 'optionalAccess', _5 => _5.callNext]) !== true && _optionalChain([fetchParams, 'optionalAccess', _6 => _6.callPrevious]) !== true && params.search === searchTermRef.current)
183
- return;
184
- const currentSearchTerm = searchTermRef.current;
185
- setIsLoaded(false);
186
- try {
187
- let response;
188
- const nextRef = { next: void 0 };
189
- const previousRef = { previous: void 0 };
190
- const selfRef = { self: void 0 };
191
- if (nextPage && _optionalChain([fetchParams, 'optionalAccess', _7 => _7.callNext]) && _optionalChain([fetchParams, 'optionalAccess', _8 => _8.isRefine]) !== true) {
192
- const ServiceClass = stableParams.service;
193
- response = await ServiceClass.next({
194
- type: stableParams.type,
195
- endpoint: nextPage,
196
- next: nextRef,
197
- previous: previousRef,
198
- self: selfRef
199
- });
200
- } else if (previousPage && _optionalChain([fetchParams, 'optionalAccess', _9 => _9.callPrevious]) && _optionalChain([fetchParams, 'optionalAccess', _10 => _10.isRefine]) !== true) {
201
- const ServiceClass = stableParams.service;
202
- response = await ServiceClass.previous({
203
- type: stableParams.type,
204
- endpoint: previousPage,
205
- next: nextRef,
206
- previous: previousRef,
207
- self: selfRef
208
- });
209
- } else {
210
- let retrieverParams = stableParams.retrieverParams ? { ...stableParams.retrieverParams } : {};
211
- retrieverParams = {
212
- ...retrieverParams,
213
- ...additionalParamsRef.current
214
- };
215
- retrieverParams.search = currentSearchTerm;
216
- retrieverParams.next = nextRef;
217
- retrieverParams.previous = previousRef;
218
- retrieverParams.self = selfRef;
219
- response = await stableParams.retriever(retrieverParams);
220
- }
221
- if (thisRequestId === requestIdRef.current && !_optionalChain([abortControllerRef, 'access', _11 => _11.current, 'optionalAccess', _12 => _12.signal, 'access', _13 => _13.aborted])) {
222
- if (_optionalChain([fetchParams, 'optionalAccess', _14 => _14.isRefresh]) === true) {
223
- setData(response);
224
- } else {
225
- setData((prevData) => [...prevData ? prevData : [], ...response]);
226
- }
227
- setIsLoaded(true);
228
- setNextPage(nextRef.next ? nextRef.next : void 0);
229
- setPreviousPage(previousRef.previous ? previousRef.previous : void 0);
230
- }
231
- } catch (error) {
232
- if (thisRequestId === requestIdRef.current) {
233
- setIsLoaded(true);
234
- console.error("Error fetching data:", error);
235
- }
236
- } finally {
237
- if (thisRequestId === requestIdRef.current) {
238
- isFetchingRef.current = false;
239
- }
240
- }
241
- },
242
- [stableParams, ready, params.search]
243
- );
244
- const setRefreshedElement = _react.useCallback.call(void 0,
245
- (element) => {
246
- setData((prevData) => {
247
- if (!prevData) return prevData;
248
- const index = prevData.findIndex((data2) => data2.id === element.id);
249
- if (index === -1) return prevData;
250
- return prevData.map((item, i) => i === index ? element : item);
251
- });
252
- },
253
- [setData]
254
- );
255
- const removeElement = _react.useCallback.call(void 0,
256
- (element) => {
257
- setData((prevData) => {
258
- if (!prevData) return prevData;
259
- const index = prevData.findIndex((data2) => data2.id === element.id);
260
- if (index === -1) return prevData;
261
- setNextPage((prev) => adjustPaginationUrl(prev, -1));
262
- const newData = [...prevData];
263
- newData.splice(index, 1);
264
- return newData;
265
- });
266
- },
267
- [adjustPaginationUrl]
268
- );
269
- _react.useEffect.call(void 0, () => {
270
- if (ready && !isLoaded) {
271
- fetchData({ isRefresh: true });
272
- }
273
- }, [ready, fetchData]);
274
- const loadNext = _react.useCallback.call(void 0,
275
- async (onlyNewRecords) => {
276
- if (nextPage) fetchData({ isRefresh: onlyNewRecords, callNext: true });
277
- },
278
- [fetchData, nextPage]
279
- );
280
- const loadPrevious = _react.useCallback.call(void 0,
281
- async (onlyNewRecords) => {
282
- if (previousPage) fetchData({ isRefresh: onlyNewRecords, callPrevious: true });
283
- },
284
- [fetchData, previousPage]
285
- );
286
- const addAdditionalParameter = _react.useCallback.call(void 0,
287
- (key, value) => {
288
- if (value === null) {
289
- delete additionalParamsRef.current[key];
290
- } else {
291
- additionalParamsRef.current[key] = value;
292
- }
293
- setReady(true);
294
- setNextPage(void 0);
295
- setPreviousPage(void 0);
296
- fetchData({ isRefine: true, isRefresh: true });
297
- },
298
- [fetchData]
299
- );
300
- const removeAdditionalParameter = _react.useCallback.call(void 0,
301
- (key) => {
302
- if (additionalParamsRef.current[key] !== void 0) {
303
- delete additionalParamsRef.current[key];
304
- setNextPage(void 0);
305
- setPreviousPage(void 0);
306
- fetchData({ isRefine: true, isRefresh: true });
307
- }
308
- },
309
- [fetchData]
310
- );
311
- const search = _react.useCallback.call(void 0,
312
- async (search2) => {
313
- if (search2 === searchTermRef.current) return;
314
- setNextPage(void 0);
315
- setPreviousPage(void 0);
316
- searchTermRef.current = search2;
317
- fetchData({ isRefine: true, isRefresh: true });
318
- },
319
- [fetchData]
320
- );
321
- const isSearch = !!searchTermRef.current;
322
- const refresh = _react.useCallback.call(void 0, async () => {
323
- setNextPage(void 0);
324
- setPreviousPage(void 0);
325
- fetchData({ isRefresh: true });
326
- }, [fetchData]);
327
- _react.useEffect.call(void 0, () => {
328
- return () => {
329
- if (abortControllerRef.current) {
330
- abortControllerRef.current.abort();
331
- }
332
- };
333
- }, []);
334
- return {
335
- ready,
336
- setReady,
337
- isLoaded,
338
- data,
339
- next: nextPage ? loadNext : void 0,
340
- previous: previousPage ? loadPrevious : void 0,
341
- search,
342
- addAdditionalParameter,
343
- removeAdditionalParameter,
344
- refresh,
345
- setRefreshedElement,
346
- isSearch,
347
- removeElement,
348
- pageInfo
349
- };
350
- }
351
- _chunk7QVYU63Ejs.__name.call(void 0, useDataListRetriever, "useDataListRetriever");
352
-
353
- // src/hooks/useDebounce.ts
354
-
355
- function useDebounce(callback, delay) {
356
- const timeoutRef = _react.useRef.call(void 0, null);
357
- const callbackRef = _react.useRef.call(void 0, callback);
358
- _react.useEffect.call(void 0, () => {
359
- callbackRef.current = callback;
360
- }, [callback]);
361
- const debouncedFunction = _react.useCallback.call(void 0,
362
- (...args) => {
363
- if (timeoutRef.current) {
364
- clearTimeout(timeoutRef.current);
365
- }
366
- timeoutRef.current = setTimeout(() => {
367
- callbackRef.current(...args);
368
- }, delay);
369
- },
370
- [delay]
371
- );
372
- const cancel = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
373
- if (timeoutRef.current) {
374
- clearTimeout(timeoutRef.current);
375
- }
376
- }, "cancel");
377
- return Object.assign(debouncedFunction, { cancel });
378
- }
379
- _chunk7QVYU63Ejs.__name.call(void 0, useDebounce, "useDebounce");
380
-
381
- // src/hooks/useTableGenerator.ts
382
- function registerTableGenerator(type, hook) {
383
- tableGeneratorRegistry.register(type.name, hook);
384
- }
385
- _chunk7QVYU63Ejs.__name.call(void 0, registerTableGenerator, "registerTableGenerator");
386
- function useTableGenerator(type, params) {
387
- return tableGeneratorRegistry.get(type.name, params);
388
- }
389
- _chunk7QVYU63Ejs.__name.call(void 0, useTableGenerator, "useTableGenerator");
390
-
391
- // src/hooks/useCustomD3Graph.tsx
392
- var _d3 = require('d3'); var d3 = _interopRequireWildcard(_d3);
393
- var _lucidereact = require('lucide-react');
394
-
395
- var _server = require('react-dom/server');
396
- var _jsxruntime = require('react/jsx-runtime');
397
- function useCustomD3Graph(nodes, links, onNodeClick, visibleNodeIds, loadingNodeIds, containerKey) {
398
- const svgRef = _react.useRef.call(void 0, null);
399
- const zoomRef = _react.useRef.call(void 0, null);
400
- const zoomBehaviorRef = _react.useRef.call(void 0, null);
401
- const nodePositionsRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
402
- const prevContainerKeyRef = _react.useRef.call(void 0, containerKey);
403
- const zoomToNode = _react.useCallback.call(void 0,
404
- (nodeId, childIds = []) => {
405
- if (!svgRef.current || !zoomBehaviorRef.current) return;
406
- const svg = d3.select(svgRef.current);
407
- const zoom2 = zoomBehaviorRef.current;
408
- const targetNode = nodes.find((n) => n.id === nodeId);
409
- const childNodes = nodes.filter((n) => childIds.includes(n.id));
410
- if (!targetNode) return;
411
- const positions = [];
412
- if (targetNode.fx !== void 0 && targetNode.fy !== void 0 && targetNode.fx !== null && targetNode.fy !== null) {
413
- positions.push({ x: targetNode.fx, y: targetNode.fy });
414
- } else if (targetNode.x !== void 0 && targetNode.y !== void 0 && targetNode.x !== null && targetNode.y !== null) {
415
- positions.push({ x: targetNode.x, y: targetNode.y });
416
- }
417
- childNodes.forEach((child) => {
418
- if (child.fx !== void 0 && child.fy !== void 0 && child.fx !== null && child.fy !== null) {
419
- positions.push({ x: child.fx, y: child.fy });
420
- } else if (child.x !== void 0 && child.y !== void 0 && child.x !== null && child.y !== null) {
421
- positions.push({ x: child.x, y: child.y });
422
- }
423
- });
424
- if (positions.length === 0) return;
425
- const bounds = {
426
- xMin: Math.min(...positions.map((p) => p.x)),
427
- xMax: Math.max(...positions.map((p) => p.x)),
428
- yMin: Math.min(...positions.map((p) => p.y)),
429
- yMax: Math.max(...positions.map((p) => p.y))
430
- };
431
- const padding = 150;
432
- bounds.xMin -= padding;
433
- bounds.xMax += padding;
434
- bounds.yMin -= padding;
435
- bounds.yMax += padding;
436
- const width = svgRef.current.clientWidth;
437
- const height = svgRef.current.clientHeight;
438
- const contentWidth = bounds.xMax - bounds.xMin;
439
- const contentHeight = bounds.yMax - bounds.yMin;
440
- const scaleX = width / contentWidth;
441
- const scaleY = height / contentHeight;
442
- let scale = Math.min(scaleX, scaleY);
443
- scale = Math.min(Math.max(scale, 0.2), 1.5);
444
- const centerX = (bounds.xMin + bounds.xMax) / 2;
445
- const centerY = (bounds.yMin + bounds.yMax) / 2;
446
- const translateX = width / 2 - centerX * scale;
447
- const translateY = height / 2 - centerY * scale;
448
- svg.transition().duration(750).call(zoom2.transform, d3.zoomIdentity.translate(translateX, translateY).scale(scale));
449
- },
450
- [nodes]
451
- );
452
- const colorScale = _react.useMemo.call(void 0, () => {
453
- const accentColor = "var(--accent)";
454
- const contentColor = "hsl(30, 80%, 55%)";
455
- const groupTypes = /* @__PURE__ */ new Set();
456
- nodes.forEach((node) => {
457
- groupTypes.add(node.instanceType);
458
- });
459
- const typeColorMap = /* @__PURE__ */ new Map();
460
- Array.from(groupTypes).forEach((type, index) => {
461
- if (type === _optionalChain([nodes, 'access', _15 => _15[0], 'optionalAccess', _16 => _16.instanceType])) {
462
- typeColorMap.set(type, accentColor);
463
- } else if (type === "documents" || type === "articles" || type === "hyperlinks") {
464
- typeColorMap.set(type, contentColor);
465
- } else {
466
- const hueShift = index * 137.508 % 360;
467
- typeColorMap.set(type, `hsl(${hueShift}, 32%, 52%)`);
468
- }
469
- });
470
- return typeColorMap;
471
- }, [nodes]);
472
- const washOutColor = _react.useCallback.call(void 0, (color) => {
473
- const hslMatch = color.match(/hsl\((\d+\.?\d*),\s*(\d+\.?\d*)%,\s*(\d+\.?\d*)%\)/);
474
- if (hslMatch) {
475
- const hue = parseFloat(hslMatch[1]);
476
- return `hsl(${hue}, 15%, 80%)`;
477
- }
478
- if (color.includes("var(--accent)")) {
479
- return "hsl(0, 0%, 80%)";
480
- }
481
- return "hsl(0, 0%, 80%)";
482
- }, []);
483
- const getNodeColor = _react.useCallback.call(void 0,
484
- (node) => {
485
- const baseColor = colorScale.get(node.instanceType) || "gray";
486
- if (node.washedOut) {
487
- return washOutColor(baseColor);
488
- }
489
- return baseColor;
490
- },
491
- [colorScale, washOutColor]
492
- );
493
- _react.useEffect.call(void 0, () => {
494
- if (!nodes.length || !svgRef.current) return;
495
- const visibleNodes = visibleNodeIds ? nodes.filter((node2) => visibleNodeIds.has(node2.id)) : nodes.filter((node2) => node2.visible !== false);
496
- const visibleNodeIdSet = new Set(visibleNodes.map((node2) => node2.id));
497
- const visibleLinks = links.filter((link2) => {
498
- const sourceId = typeof link2.source === "string" ? link2.source : link2.source.id;
499
- const targetId = typeof link2.target === "string" ? link2.target : link2.target.id;
500
- return visibleNodeIdSet.has(sourceId) && visibleNodeIdSet.has(targetId);
501
- });
502
- const svg = d3.select(svgRef.current);
503
- svg.selectAll("*").remove();
504
- const container = _optionalChain([svgRef, 'access', _17 => _17.current, 'optionalAccess', _18 => _18.parentElement]);
505
- if (!container) return;
506
- const width = container.clientWidth;
507
- const height = container.clientHeight;
508
- svg.attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`);
509
- const graphGroup = svg.append("g").attr("class", "graph-content");
510
- const zoom2 = d3.zoom().scaleExtent([0.1, 4]).on("zoom", (event) => {
511
- const transform = event.transform;
512
- graphGroup.attr("transform", transform.toString());
513
- zoomRef.current = transform;
514
- });
515
- zoomBehaviorRef.current = zoom2;
516
- svg.call(zoom2).on("wheel.zoom", null).on("dblclick.zoom", null);
517
- const nodeRadius = 40;
518
- const childDistanceFromRoot = Math.min(width, height) * 0.4;
519
- const grandchildDistanceFromChild = nodeRadius * 10;
520
- const centralNodeId = nodes[0].id;
521
- const nodeHierarchy = /* @__PURE__ */ new Map();
522
- nodeHierarchy.set(centralNodeId, {
523
- depth: 0,
524
- parent: null,
525
- children: []
526
- });
527
- visibleLinks.forEach((link2) => {
528
- const sourceId = typeof link2.source === "string" ? link2.source : link2.source.id;
529
- const targetId = typeof link2.target === "string" ? link2.target : link2.target.id;
530
- if (sourceId === centralNodeId) {
531
- nodeHierarchy.set(targetId, { depth: 1, parent: centralNodeId, children: [] });
532
- const rootNode = nodeHierarchy.get(centralNodeId);
533
- if (rootNode) {
534
- rootNode.children.push(targetId);
535
- }
536
- }
537
- });
538
- visibleLinks.forEach((link2) => {
539
- const sourceId = typeof link2.source === "string" ? link2.source : link2.source.id;
540
- const targetId = typeof link2.target === "string" ? link2.target : link2.target.id;
541
- const sourceNode = nodeHierarchy.get(sourceId);
542
- if (sourceNode && sourceNode.depth === 1 && !nodeHierarchy.has(targetId)) {
543
- nodeHierarchy.set(targetId, { depth: 2, parent: sourceId, children: [] });
544
- sourceNode.children.push(targetId);
545
- }
546
- });
547
- const rootChildren = _optionalChain([nodeHierarchy, 'access', _19 => _19.get, 'call', _20 => _20(centralNodeId), 'optionalAccess', _21 => _21.children]) || [];
548
- const childAngleStep = 2 * Math.PI / Math.max(rootChildren.length, 1);
549
- rootChildren.forEach((childId, index) => {
550
- const childNode = nodeHierarchy.get(childId);
551
- if (childNode) {
552
- const angle = index * childAngleStep;
553
- childNode.angle = angle;
554
- childNode.x = width / 2 + childDistanceFromRoot * Math.cos(angle);
555
- childNode.y = height / 2 + childDistanceFromRoot * Math.sin(angle);
556
- }
557
- });
558
- for (const [nodeId, node2] of nodeHierarchy.entries()) {
559
- if (node2.depth === 1 && node2.angle !== void 0 && node2.x !== void 0 && node2.y !== void 0) {
560
- const childAngle = node2.angle;
561
- const childX = node2.x;
562
- const childY = node2.y;
563
- const grandchildren = node2.children;
564
- if (grandchildren.length === 0) continue;
565
- const dirX = childX - width / 2;
566
- const dirY = childY - height / 2;
567
- const dirLength = Math.sqrt(dirX * dirX + dirY * dirY);
568
- const normDirX = dirX / dirLength;
569
- const normDirY = dirY / dirLength;
570
- if (grandchildren.length === 1) {
571
- const grandchildId = grandchildren[0];
572
- const grandchildNode = nodeHierarchy.get(grandchildId);
573
- if (grandchildNode) {
574
- grandchildNode.x = childX + normDirX * grandchildDistanceFromChild;
575
- grandchildNode.y = childY + normDirY * grandchildDistanceFromChild;
576
- grandchildNode.angle = childAngle;
577
- }
578
- } else {
579
- const numChildren = grandchildren.length;
580
- const minArc = Math.PI / 3;
581
- const maxArc = Math.PI;
582
- const arcProgress = Math.min(1, (numChildren - 2) / 5);
583
- const arcSpan = minArc + arcProgress * (maxArc - minArc);
584
- const startAngle = childAngle - arcSpan / 2;
585
- grandchildren.forEach((grandchildId, index) => {
586
- const grandchildNode = nodeHierarchy.get(grandchildId);
587
- if (!grandchildNode) return;
588
- const angleOffset = numChildren > 1 ? index / (numChildren - 1) * arcSpan : 0;
589
- const angle = startAngle + angleOffset;
590
- grandchildNode.x = childX + grandchildDistanceFromChild * Math.cos(angle);
591
- grandchildNode.y = childY + grandchildDistanceFromChild * Math.sin(angle);
592
- grandchildNode.angle = angle;
593
- });
594
- }
595
- }
596
- }
597
- visibleNodes.forEach((node2) => {
598
- const savedPosition = nodePositionsRef.current.get(node2.id);
599
- if (savedPosition) {
600
- node2.fx = savedPosition.x;
601
- node2.fy = savedPosition.y;
602
- } else {
603
- const hierarchyNode = nodeHierarchy.get(node2.id);
604
- if (hierarchyNode && hierarchyNode.x !== void 0 && hierarchyNode.y !== void 0) {
605
- node2.fx = hierarchyNode.x;
606
- node2.fy = hierarchyNode.y;
607
- nodePositionsRef.current.set(node2.id, { x: hierarchyNode.x, y: hierarchyNode.y });
608
- } else if (node2.id === centralNodeId) {
609
- node2.fx = width / 2;
610
- node2.fy = height / 2;
611
- nodePositionsRef.current.set(node2.id, { x: width / 2, y: height / 2 });
612
- }
613
- }
614
- });
615
- const simulation = d3.forceSimulation(visibleNodes).force(
616
- "link",
617
- d3.forceLink(visibleLinks).id((d) => d.id).distance(nodeRadius * 3).strength(0.1)
618
- ).force("charge", d3.forceManyBody().strength(-500).distanceMax(300)).force("collision", d3.forceCollide().radius(nodeRadius * 1.2)).force("center", d3.forceCenter(width / 2, height / 2).strength(0.1));
619
- simulation.stop();
620
- for (let i = 0; i < 100; i++) {
621
- simulation.tick();
622
- }
623
- visibleNodes.forEach((node2) => {
624
- if (node2.fx === void 0) {
625
- node2.fx = node2.x;
626
- node2.fy = node2.y;
627
- }
628
- });
629
- const link = graphGroup.append("g").attr("stroke", "#999").attr("stroke-opacity", 0.6).selectAll("line").data(visibleLinks).join("line").attr("x1", (d) => d.source.x || 0).attr("y1", (d) => d.source.y || 0).attr("x2", (d) => d.target.x || 0).attr("y2", (d) => d.target.y || 0).attr("stroke-width", 1.5);
630
- const node = graphGroup.append("g").selectAll("g").data(visibleNodes).join("g").attr("class", "node-group").attr("cursor", "pointer").attr("transform", (d) => `translate(${d.x || 0}, ${d.y || 0})`).call(
631
- d3.drag().subject(function(d) {
632
- return d;
633
- }).on("start", function(event, d) {
634
- d.fx = d.x;
635
- d.fy = d.y;
636
- }).on("drag", function(event, d) {
637
- d.fx = event.x;
638
- d.fy = event.y;
639
- d3.select(this).attr("transform", `translate(${event.x}, ${event.y})`);
640
- d3.select(this).attr("transform", `translate(${event.x}, ${event.y})`);
641
- nodePositionsRef.current.set(d.id, { x: event.x, y: event.y });
642
- link.attr("x1", (l) => {
643
- const source = l.source;
644
- return source.fx || source.x || 0;
645
- }).attr("y1", (l) => {
646
- const source = l.source;
647
- return source.fy || source.y || 0;
648
- }).attr("x2", (l) => {
649
- const target = l.target;
650
- return target.fx || target.x || 0;
651
- }).attr("y2", (l) => {
652
- const target = l.target;
653
- return target.fy || target.y || 0;
654
- });
655
- }).on("end", function(event, d) {
656
- d.fx = event.x;
657
- d.fy = event.y;
658
- })
659
- ).on("mouseenter", function(_event, d) {
660
- if (d.instanceType === "root") return;
661
- const currentNode = d3.select(this);
662
- currentNode.raise();
663
- const currentZoom = _optionalChain([zoomRef, 'access', _22 => _22.current, 'optionalAccess', _23 => _23.k]) || 1;
664
- const targetScreenFontSize = 20;
665
- const baseFontSize = 12;
666
- const textScale = targetScreenFontSize / (baseFontSize * currentZoom);
667
- const hoverTextOffset = nodeRadius * 1.4 + 5 / currentZoom;
668
- currentNode.select("circle").transition().duration(250).ease(d3.easeExpOut).attr("r", nodeRadius * 1.4).attr("filter", "drop-shadow(0px 4px 12px rgba(0, 0, 0, 0.3))");
669
- currentNode.select("text").transition().duration(250).ease(d3.easeExpOut).attr("dy", -hoverTextOffset).attr("transform", `translate(0, ${-hoverTextOffset}) scale(${textScale}) translate(0, ${hoverTextOffset})`);
670
- }).on("mouseleave", function(_event, d) {
671
- if (d.instanceType === "root") return;
672
- const currentNode = d3.select(this);
673
- currentNode.select("circle").transition().duration(250).ease(d3.easeExpOut).attr("r", nodeRadius).attr("filter", null);
674
- const normalOffset = nodeRadius + 5;
675
- currentNode.select("text").transition().duration(250).ease(d3.easeExpOut).attr("dy", -normalOffset).attr("transform", `translate(0, ${-normalOffset}) scale(1) translate(0, ${normalOffset})`);
676
- });
677
- node.append("circle").attr("r", nodeRadius).attr("fill", (d) => getNodeColor(d)).attr("stroke", "#fff").attr("stroke-width", 1.5).on("click", (event, d) => {
678
- event.preventDefault();
679
- event.stopPropagation();
680
- if (zoomBehaviorRef.current) {
681
- svg.on(".zoom", null);
682
- setTimeout(() => {
683
- if (zoomBehaviorRef.current) {
684
- svg.call(zoomBehaviorRef.current).on("wheel.zoom", null).on("dblclick.zoom", null);
685
- }
686
- }, 100);
687
- }
688
- onNodeClick(d.id);
689
- });
690
- node.each(function(d) {
691
- if (d.icon) {
692
- const Icon = d.icon;
693
- const iconSvg = _server.renderToStaticMarkup.call(void 0, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { size: nodeRadius / 2, color: "white" }));
694
- const iconGroup = d3.select(this).append("g").html(iconSvg).attr("transform", `translate(${-nodeRadius / 4}, ${-nodeRadius / 4})`).style("pointer-events", "all").on("click", (event) => {
695
- event.stopPropagation();
696
- onNodeClick(d.id);
697
- });
698
- }
699
- });
700
- node.each(function(d) {
701
- if (loadingNodeIds && loadingNodeIds.has(d.id)) {
702
- d3.select(this).selectAll("g").remove();
703
- const spinnerSvg = _server.renderToStaticMarkup.call(void 0, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { size: nodeRadius / 2, color: "white" }));
704
- d3.select(this).append("g").html(spinnerSvg).attr("class", "animate-spin").attr("transform", `translate(${-nodeRadius / 4}, ${-nodeRadius / 4})`).style("pointer-events", "none");
705
- }
706
- });
707
- node.each(function(d) {
708
- const textElement = d3.select(this).append("text").attr("text-anchor", "middle").attr("font-size", 12).attr("pointer-events", "none");
709
- if (d.instanceType === "root") {
710
- const words = d.name.split(" ");
711
- const lineHeight = 1.2;
712
- const numLines = words.length;
713
- const startY = -((numLines - 1) * lineHeight) / 2;
714
- textElement.attr("fill", "var(--accent-foreground)").attr("dominant-baseline", "middle");
715
- words.forEach((word, index) => {
716
- textElement.append("tspan").attr("x", 0).attr("dy", index === 0 ? `${startY}em` : `${lineHeight}em`).text(word);
717
- });
718
- } else {
719
- textElement.attr("dy", -nodeRadius - 5).attr("fill", "currentColor").text(d.name);
720
- }
721
- });
722
- return () => {
723
- simulation.stop();
724
- };
725
- }, [nodes, links, colorScale, visibleNodeIds, loadingNodeIds, onNodeClick]);
726
- const zoomIn = _react.useCallback.call(void 0, () => {
727
- if (!svgRef.current || !zoomBehaviorRef.current) return;
728
- const svg = d3.select(svgRef.current);
729
- const zoom2 = zoomBehaviorRef.current;
730
- const currentTransform = zoomRef.current || d3.zoomIdentity;
731
- const newScale = Math.min(currentTransform.k * 1.3, 4);
732
- svg.transition().duration(300).call(zoom2.transform, d3.zoomIdentity.translate(currentTransform.x, currentTransform.y).scale(newScale));
733
- }, []);
734
- const zoomOut = _react.useCallback.call(void 0, () => {
735
- if (!svgRef.current || !zoomBehaviorRef.current) return;
736
- const svg = d3.select(svgRef.current);
737
- const zoom2 = zoomBehaviorRef.current;
738
- const currentTransform = zoomRef.current || d3.zoomIdentity;
739
- const newScale = Math.max(currentTransform.k * 0.7, 0.1);
740
- svg.transition().duration(300).call(zoom2.transform, d3.zoomIdentity.translate(currentTransform.x, currentTransform.y).scale(newScale));
741
- }, []);
742
- const zoomToFitAll = _react.useCallback.call(void 0, () => {
743
- if (!svgRef.current || !zoomBehaviorRef.current) return;
744
- const svg = d3.select(svgRef.current);
745
- const zoom2 = zoomBehaviorRef.current;
746
- const visibleNodes = visibleNodeIds ? nodes.filter((node) => visibleNodeIds.has(node.id)) : nodes.filter((node) => node.visible !== false);
747
- if (visibleNodes.length === 0) return;
748
- const positions = [];
749
- visibleNodes.forEach((node) => {
750
- if (node.fx !== void 0 && node.fy !== void 0 && node.fx !== null && node.fy !== null) {
751
- positions.push({ x: node.fx, y: node.fy });
752
- } else if (node.x !== void 0 && node.y !== void 0 && node.x !== null && node.y !== null) {
753
- positions.push({ x: node.x, y: node.y });
754
- }
755
- });
756
- if (positions.length === 0) return;
757
- const bounds = {
758
- xMin: Math.min(...positions.map((p) => p.x)),
759
- xMax: Math.max(...positions.map((p) => p.x)),
760
- yMin: Math.min(...positions.map((p) => p.y)),
761
- yMax: Math.max(...positions.map((p) => p.y))
762
- };
763
- const padding = 150;
764
- bounds.xMin -= padding;
765
- bounds.xMax += padding;
766
- bounds.yMin -= padding;
767
- bounds.yMax += padding;
768
- const width = svgRef.current.clientWidth;
769
- const height = svgRef.current.clientHeight;
770
- const contentWidth = bounds.xMax - bounds.xMin;
771
- const contentHeight = bounds.yMax - bounds.yMin;
772
- const scaleX = width / contentWidth;
773
- const scaleY = height / contentHeight;
774
- let scale = Math.min(scaleX, scaleY);
775
- scale = Math.min(Math.max(scale, 0.1), 2);
776
- const centerX = (bounds.xMin + bounds.xMax) / 2;
777
- const centerY = (bounds.yMin + bounds.yMax) / 2;
778
- const translateX = width / 2 - centerX * scale;
779
- const translateY = height / 2 - centerY * scale;
780
- svg.transition().duration(750).call(zoom2.transform, d3.zoomIdentity.translate(translateX, translateY).scale(scale));
781
- }, [nodes, visibleNodeIds]);
782
- _react.useEffect.call(void 0, () => {
783
- if (containerKey !== void 0 && containerKey !== prevContainerKeyRef.current) {
784
- const timeoutId = setTimeout(() => {
785
- zoomToFitAll();
786
- }, 100);
787
- prevContainerKeyRef.current = containerKey;
788
- return () => clearTimeout(timeoutId);
789
- }
790
- }, [containerKey, zoomToFitAll]);
791
- return { svgRef, zoomIn, zoomOut, zoomToNode, zoomToFitAll };
792
- }
793
- _chunk7QVYU63Ejs.__name.call(void 0, useCustomD3Graph, "useCustomD3Graph");
794
-
795
-
796
-
797
-
798
-
799
-
800
-
801
-
802
-
803
-
804
-
805
- exports.TableGeneratorRegistry = TableGeneratorRegistry; exports.tableGeneratorRegistry = tableGeneratorRegistry; exports.usePageUrlGenerator = usePageUrlGenerator; exports.useUrlRewriter = useUrlRewriter; exports.useDataListRetriever = useDataListRetriever; exports.useDebounce = useDebounce; exports.registerTableGenerator = registerTableGenerator; exports.useTableGenerator = useTableGenerator; exports.useCustomD3Graph = useCustomD3Graph;
806
- //# sourceMappingURL=chunk-FY4SXJGU.js.map