@webiny/tenant-manager 0.0.0-unstable.0d717d18dd

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 (275) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +11 -0
  3. package/TenantManager.d.ts +2 -0
  4. package/TenantManager.js +11 -0
  5. package/TenantManager.js.map +1 -0
  6. package/admin/CurrentTenant/CurrentTenant.d.ts +10 -0
  7. package/admin/CurrentTenant/CurrentTenant.js +25 -0
  8. package/admin/CurrentTenant/CurrentTenant.js.map +1 -0
  9. package/admin/CurrentTenant/CurrentTenantGateway.d.ts +12 -0
  10. package/admin/CurrentTenant/CurrentTenantGateway.js +43 -0
  11. package/admin/CurrentTenant/CurrentTenantGateway.js.map +1 -0
  12. package/admin/CurrentTenant/CurrentTenantPresenter.d.ts +12 -0
  13. package/admin/CurrentTenant/CurrentTenantPresenter.js +33 -0
  14. package/admin/CurrentTenant/CurrentTenantPresenter.js.map +1 -0
  15. package/admin/CurrentTenant/CurrentTenantRepository.d.ts +15 -0
  16. package/admin/CurrentTenant/CurrentTenantRepository.js +38 -0
  17. package/admin/CurrentTenant/CurrentTenantRepository.js.map +1 -0
  18. package/admin/CurrentTenant/abstractions.d.ts +31 -0
  19. package/admin/CurrentTenant/abstractions.js +7 -0
  20. package/admin/CurrentTenant/abstractions.js.map +1 -0
  21. package/admin/CurrentTenant/feature.d.ts +3 -0
  22. package/admin/CurrentTenant/feature.js +21 -0
  23. package/admin/CurrentTenant/feature.js.map +1 -0
  24. package/admin/CurrentTenant/useCurrentTenant.d.ts +4 -0
  25. package/admin/CurrentTenant/useCurrentTenant.js +18 -0
  26. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
  27. package/admin/CurrentTenantProvider.d.ts +2 -0
  28. package/admin/CurrentTenantProvider.js +9 -0
  29. package/admin/CurrentTenantProvider.js.map +1 -0
  30. package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
  31. package/admin/DisableTenant/DisableTenantGateway.js +42 -0
  32. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
  33. package/admin/DisableTenant/DisableTenantRepository.d.ts +12 -0
  34. package/admin/DisableTenant/DisableTenantRepository.js +33 -0
  35. package/admin/DisableTenant/DisableTenantRepository.js.map +1 -0
  36. package/admin/DisableTenant/DisableTenantUseCase.d.ts +10 -0
  37. package/admin/DisableTenant/DisableTenantUseCase.js +18 -0
  38. package/admin/DisableTenant/DisableTenantUseCase.js.map +1 -0
  39. package/admin/DisableTenant/abstractions.d.ts +21 -0
  40. package/admin/DisableTenant/abstractions.js +7 -0
  41. package/admin/DisableTenant/abstractions.js.map +1 -0
  42. package/admin/DisableTenant/feature.d.ts +3 -0
  43. package/admin/DisableTenant/feature.js +21 -0
  44. package/admin/DisableTenant/feature.js.map +1 -0
  45. package/admin/DisableTenant/index.d.ts +2 -0
  46. package/admin/DisableTenant/index.js +2 -0
  47. package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
  48. package/admin/DisableTenant/useDisableTenant.js +18 -0
  49. package/admin/DisableTenant/useDisableTenant.js.map +1 -0
  50. package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
  51. package/admin/EnableTenant/EnableTenantGateway.js +42 -0
  52. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
  53. package/admin/EnableTenant/EnableTenantRepository.d.ts +12 -0
  54. package/admin/EnableTenant/EnableTenantRepository.js +33 -0
  55. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
  56. package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
  57. package/admin/EnableTenant/EnableTenantUseCase.js +18 -0
  58. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
  59. package/admin/EnableTenant/abstractions.d.ts +21 -0
  60. package/admin/EnableTenant/abstractions.js +7 -0
  61. package/admin/EnableTenant/abstractions.js.map +1 -0
  62. package/admin/EnableTenant/feature.d.ts +3 -0
  63. package/admin/EnableTenant/feature.js +21 -0
  64. package/admin/EnableTenant/feature.js.map +1 -0
  65. package/admin/EnableTenant/index.d.ts +2 -0
  66. package/admin/EnableTenant/index.js +2 -0
  67. package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
  68. package/admin/EnableTenant/useEnableTenant.js +24 -0
  69. package/admin/EnableTenant/useEnableTenant.js.map +1 -0
  70. package/admin/Extension.d.ts +2 -0
  71. package/admin/Extension.js +49 -0
  72. package/admin/Extension.js.map +1 -0
  73. package/admin/InstallTenant/InstallTenantGateway.d.ts +11 -0
  74. package/admin/InstallTenant/InstallTenantGateway.js +42 -0
  75. package/admin/InstallTenant/InstallTenantGateway.js.map +1 -0
  76. package/admin/InstallTenant/InstallTenantRepository.d.ts +12 -0
  77. package/admin/InstallTenant/InstallTenantRepository.js +34 -0
  78. package/admin/InstallTenant/InstallTenantRepository.js.map +1 -0
  79. package/admin/InstallTenant/InstallTenantUseCase.d.ts +10 -0
  80. package/admin/InstallTenant/InstallTenantUseCase.js +18 -0
  81. package/admin/InstallTenant/InstallTenantUseCase.js.map +1 -0
  82. package/admin/InstallTenant/abstractions.d.ts +21 -0
  83. package/admin/InstallTenant/abstractions.js +7 -0
  84. package/admin/InstallTenant/abstractions.js.map +1 -0
  85. package/admin/InstallTenant/feature.d.ts +3 -0
  86. package/admin/InstallTenant/feature.js +21 -0
  87. package/admin/InstallTenant/feature.js.map +1 -0
  88. package/admin/InstallTenant/index.d.ts +2 -0
  89. package/admin/InstallTenant/index.js +2 -0
  90. package/admin/InstallTenant/useInstallTenant.d.ts +4 -0
  91. package/admin/InstallTenant/useInstallTenant.js +24 -0
  92. package/admin/InstallTenant/useInstallTenant.js.map +1 -0
  93. package/admin/IsRootTenant.d.ts +13 -0
  94. package/admin/IsRootTenant.js +19 -0
  95. package/admin/IsRootTenant.js.map +1 -0
  96. package/admin/SecurityPermission.d.ts +2 -0
  97. package/admin/SecurityPermission.js +15 -0
  98. package/admin/SecurityPermission.js.map +1 -0
  99. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
  100. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +41 -0
  101. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
  102. package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
  103. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +15 -0
  104. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
  105. package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
  106. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +31 -0
  107. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
  108. package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
  109. package/admin/TenantEntryList/FolderNameCell.js +24 -0
  110. package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
  111. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
  112. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +15 -0
  113. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
  114. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
  115. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +31 -0
  116. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
  117. package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
  118. package/admin/TenantEntryList/ManageTenant.js +19 -0
  119. package/admin/TenantEntryList/ManageTenant.js.map +1 -0
  120. package/admin/TenantEntryList/TenantCell.d.ts +2 -0
  121. package/admin/TenantEntryList/TenantCell.js +24 -0
  122. package/admin/TenantEntryList/TenantCell.js.map +1 -0
  123. package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
  124. package/admin/TenantEntryList/TenantNameCell.js +51 -0
  125. package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
  126. package/admin/TenantEntryList.d.ts +2 -0
  127. package/admin/TenantEntryList.js +59 -0
  128. package/admin/TenantEntryList.js.map +1 -0
  129. package/admin/TenantSelector.d.ts +2 -0
  130. package/admin/TenantSelector.js +35 -0
  131. package/admin/TenantSelector.js.map +1 -0
  132. package/admin/domain/permissionsSchema.d.ts +4 -0
  133. package/admin/domain/permissionsSchema.js +8 -0
  134. package/admin/domain/permissionsSchema.js.map +1 -0
  135. package/admin/features/permissions/abstractions.d.ts +17 -0
  136. package/admin/features/permissions/abstractions.js +6 -0
  137. package/admin/features/permissions/abstractions.js.map +1 -0
  138. package/admin/features/permissions/feature.d.ts +14 -0
  139. package/admin/features/permissions/feature.js +7 -0
  140. package/admin/features/permissions/feature.js.map +1 -0
  141. package/admin/types.d.ts +7 -0
  142. package/admin/types.js +0 -0
  143. package/api/Extension.d.ts +4 -0
  144. package/api/Extension.js +39 -0
  145. package/api/Extension.js.map +1 -0
  146. package/api/domain/TenantId.d.ts +3 -0
  147. package/api/domain/TenantId.js +10 -0
  148. package/api/domain/TenantId.js.map +1 -0
  149. package/api/domain/TenantModel.d.ts +11 -0
  150. package/api/domain/TenantModel.js +68 -0
  151. package/api/domain/TenantModel.js.map +1 -0
  152. package/api/domain/TenantModelExtension.d.ts +11 -0
  153. package/api/domain/TenantModelExtension.js +5 -0
  154. package/api/domain/TenantModelExtension.js.map +1 -0
  155. package/api/domain/errors.d.ts +33 -0
  156. package/api/domain/errors.js +58 -0
  157. package/api/domain/errors.js.map +1 -0
  158. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  159. package/api/features/AddCmsPermissions/AddCmsPermissions.js +48 -0
  160. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  161. package/api/features/AddCmsPermissions/feature.d.ts +4 -0
  162. package/api/features/AddCmsPermissions/feature.js +11 -0
  163. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  164. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +24 -0
  165. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +81 -0
  166. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
  167. package/api/features/CreateAndInstallTenant/abstractions.d.ts +26 -0
  168. package/api/features/CreateAndInstallTenant/abstractions.js +5 -0
  169. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
  170. package/api/features/CreateAndInstallTenant/feature.d.ts +4 -0
  171. package/api/features/CreateAndInstallTenant/feature.js +11 -0
  172. package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
  173. package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
  174. package/api/features/CreateTenant/CreateTenantRepository.js +43 -0
  175. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
  176. package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
  177. package/api/features/CreateTenant/CreateTenantUseCase.js +40 -0
  178. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
  179. package/api/features/CreateTenant/abstractions.d.ts +41 -0
  180. package/api/features/CreateTenant/abstractions.js +6 -0
  181. package/api/features/CreateTenant/abstractions.js.map +1 -0
  182. package/api/features/CreateTenant/feature.d.ts +4 -0
  183. package/api/features/CreateTenant/feature.js +13 -0
  184. package/api/features/CreateTenant/feature.js.map +1 -0
  185. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
  186. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +27 -0
  187. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
  188. package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +4 -0
  189. package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
  190. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
  191. package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
  192. package/api/features/DisableTenant/DisableTenantUseCase.js +53 -0
  193. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
  194. package/api/features/DisableTenant/abstractions.d.ts +19 -0
  195. package/api/features/DisableTenant/abstractions.js +5 -0
  196. package/api/features/DisableTenant/abstractions.js.map +1 -0
  197. package/api/features/DisableTenant/events.d.ts +27 -0
  198. package/api/features/DisableTenant/events.js +23 -0
  199. package/api/features/DisableTenant/events.js.map +1 -0
  200. package/api/features/DisableTenant/feature.d.ts +4 -0
  201. package/api/features/DisableTenant/feature.js +11 -0
  202. package/api/features/DisableTenant/feature.js.map +1 -0
  203. package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
  204. package/api/features/EnableTenant/EnableTenantUseCase.js +55 -0
  205. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
  206. package/api/features/EnableTenant/abstractions.d.ts +19 -0
  207. package/api/features/EnableTenant/abstractions.js +5 -0
  208. package/api/features/EnableTenant/abstractions.js.map +1 -0
  209. package/api/features/EnableTenant/events.d.ts +27 -0
  210. package/api/features/EnableTenant/events.js +23 -0
  211. package/api/features/EnableTenant/events.js.map +1 -0
  212. package/api/features/EnableTenant/feature.d.ts +4 -0
  213. package/api/features/EnableTenant/feature.js +11 -0
  214. package/api/features/EnableTenant/feature.js.map +1 -0
  215. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
  216. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +32 -0
  217. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
  218. package/api/features/GetCurrentTenant/abstractions.d.ts +24 -0
  219. package/api/features/GetCurrentTenant/abstractions.js +5 -0
  220. package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
  221. package/api/features/GetCurrentTenant/feature.d.ts +4 -0
  222. package/api/features/GetCurrentTenant/feature.js +11 -0
  223. package/api/features/GetCurrentTenant/feature.js.map +1 -0
  224. package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
  225. package/api/features/GetTenantById/GetTenantByIdRepository.js +44 -0
  226. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
  227. package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
  228. package/api/features/GetTenantById/GetTenantByIdUseCase.js +23 -0
  229. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
  230. package/api/features/GetTenantById/abstractions.d.ts +38 -0
  231. package/api/features/GetTenantById/abstractions.js +6 -0
  232. package/api/features/GetTenantById/abstractions.js.map +1 -0
  233. package/api/features/GetTenantById/feature.d.ts +4 -0
  234. package/api/features/GetTenantById/feature.js +13 -0
  235. package/api/features/GetTenantById/feature.js.map +1 -0
  236. package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
  237. package/api/features/UpdateTenant/UpdateTenantRepository.js +51 -0
  238. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
  239. package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
  240. package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
  241. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
  242. package/api/features/UpdateTenant/abstractions.d.ts +39 -0
  243. package/api/features/UpdateTenant/abstractions.js +6 -0
  244. package/api/features/UpdateTenant/abstractions.js.map +1 -0
  245. package/api/features/UpdateTenant/feature.d.ts +4 -0
  246. package/api/features/UpdateTenant/feature.js +13 -0
  247. package/api/features/UpdateTenant/feature.js.map +1 -0
  248. package/api/graphql/CreateTenantSchema.d.ts +16 -0
  249. package/api/graphql/CreateTenantSchema.js +83 -0
  250. package/api/graphql/CreateTenantSchema.js.map +1 -0
  251. package/api/graphql/DisableTenantSchema.d.ts +8 -0
  252. package/api/graphql/DisableTenantSchema.js +31 -0
  253. package/api/graphql/DisableTenantSchema.js.map +1 -0
  254. package/api/graphql/EnableTenantSchema.d.ts +8 -0
  255. package/api/graphql/EnableTenantSchema.js +31 -0
  256. package/api/graphql/EnableTenantSchema.js.map +1 -0
  257. package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
  258. package/api/graphql/GetCurrentTenantSchema.js +49 -0
  259. package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
  260. package/api/graphql/InstallTenantSchema.d.ts +8 -0
  261. package/api/graphql/InstallTenantSchema.js +43 -0
  262. package/api/graphql/InstallTenantSchema.js.map +1 -0
  263. package/exports/admin/tenancy.d.ts +7 -0
  264. package/exports/admin/tenancy.js +4 -0
  265. package/exports/api/tenant-manager.d.ts +9 -0
  266. package/exports/api/tenant-manager.js +8 -0
  267. package/index.d.ts +1 -0
  268. package/index.js +1 -0
  269. package/package.json +46 -0
  270. package/shared/Tenant.d.ts +21 -0
  271. package/shared/Tenant.js +27 -0
  272. package/shared/Tenant.js.map +1 -0
  273. package/shared/constants.d.ts +1 -0
  274. package/shared/constants.js +4 -0
  275. package/shared/constants.js.map +1 -0
@@ -0,0 +1,21 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { InstallTenantUseCase } from "./abstractions.js";
3
+ import { InstallTenantUseCase as external_InstallTenantUseCase_js_InstallTenantUseCase } from "./InstallTenantUseCase.js";
4
+ import { InstallTenantRepository } from "./InstallTenantRepository.js";
5
+ import { InstallTenantGateway } from "./InstallTenantGateway.js";
6
+ const InstallTenantFeature = createFeature({
7
+ name: "InstallTenant",
8
+ register (container) {
9
+ container.register(external_InstallTenantUseCase_js_InstallTenantUseCase);
10
+ container.register(InstallTenantRepository).inSingletonScope();
11
+ container.register(InstallTenantGateway).inSingletonScope();
12
+ },
13
+ resolve (container) {
14
+ return {
15
+ useCase: container.resolve(InstallTenantUseCase)
16
+ };
17
+ }
18
+ });
19
+ export { InstallTenantFeature };
20
+
21
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/feature.js","sources":["../../../src/admin/InstallTenant/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { InstallTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { InstallTenantUseCase } from \"./InstallTenantUseCase.js\";\nimport { InstallTenantRepository } from \"./InstallTenantRepository.js\";\nimport { InstallTenantGateway } from \"./InstallTenantGateway.js\";\n\nexport const InstallTenantFeature = createFeature({\n name: \"InstallTenant\",\n register(container) {\n container.register(InstallTenantUseCase);\n container.register(InstallTenantRepository).inSingletonScope();\n container.register(InstallTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"names":["InstallTenantFeature","createFeature","container","InstallTenantUseCase","InstallTenantRepository","InstallTenantGateway","UseCaseAbstraction"],"mappings":";;;;;AAMO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;QAC5DF,UAAU,QAAQ,CAACG,sBAAsB,gBAAgB;IAC7D;IACA,SAAQH,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACI;QAC/B;IACJ;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { InstallTenantFeature } from "./feature.js";
2
+ export { useInstallTenant } from "./useInstallTenant.js";
@@ -0,0 +1,2 @@
1
+ export { InstallTenantFeature } from "./feature.js";
2
+ export { useInstallTenant } from "./useInstallTenant.js";
@@ -0,0 +1,4 @@
1
+ export declare const useInstallTenant: () => {
2
+ installTenant: (tenantId: string) => Promise<void>;
3
+ loading: boolean;
4
+ };
@@ -0,0 +1,24 @@
1
+ import { useCallback, useState } from "react";
2
+ import { useFeature } from "@webiny/app-admin";
3
+ import { InstallTenantFeature } from "./feature.js";
4
+ const useInstallTenant = ()=>{
5
+ const { useCase } = useFeature(InstallTenantFeature);
6
+ const [loading, setLoading] = useState(false);
7
+ const installTenant = useCallback(async (tenantId)=>{
8
+ setLoading(true);
9
+ try {
10
+ await useCase.execute(tenantId);
11
+ } finally{
12
+ setLoading(false);
13
+ }
14
+ }, [
15
+ useCase
16
+ ]);
17
+ return {
18
+ installTenant,
19
+ loading
20
+ };
21
+ };
22
+ export { useInstallTenant };
23
+
24
+ //# sourceMappingURL=useInstallTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/InstallTenant/useInstallTenant.js","sources":["../../../src/admin/InstallTenant/useInstallTenant.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { InstallTenantFeature } from \"./feature.js\";\n\nexport const useInstallTenant = () => {\n const { useCase } = useFeature(InstallTenantFeature);\n const [loading, setLoading] = useState(false);\n\n const installTenant = useCallback(\n async (tenantId: string) => {\n setLoading(true);\n\n try {\n await useCase.execute(tenantId);\n } finally {\n setLoading(false);\n }\n },\n [useCase]\n );\n\n return { installTenant, loading };\n};\n"],"names":["useInstallTenant","useCase","useFeature","InstallTenantFeature","loading","setLoading","useState","installTenant","useCallback","tenantId"],"mappings":";;;AAIO,MAAMA,mBAAmB;IAC5B,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAC/B,MAAM,CAACC,SAASC,WAAW,GAAGC,SAAS;IAEvC,MAAMC,gBAAgBC,YAClB,OAAOC;QACHJ,WAAW;QAEX,IAAI;YACA,MAAMJ,QAAQ,OAAO,CAACQ;QAC1B,SAAU;YACNJ,WAAW;QACf;IACJ,GACA;QAACJ;KAAQ;IAGb,OAAO;QAAEM;QAAeH;IAAQ;AACpC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { Tenant } from "../shared/Tenant.js";
3
+ interface IsTenantProps {
4
+ condition(tenant: Tenant): boolean;
5
+ children: React.ReactNode;
6
+ }
7
+ interface RootTenantProps {
8
+ children: React.ReactNode;
9
+ }
10
+ export declare const IsTenant: ({ condition, children }: IsTenantProps) => React.JSX.Element | null;
11
+ export declare const IsRootTenant: ({ children }: RootTenantProps) => React.JSX.Element;
12
+ export declare const IsNotRootTenant: ({ children }: RootTenantProps) => React.JSX.Element;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import react, { Fragment } from "react";
2
+ import { useAuthentication } from "@webiny/app-admin";
3
+ import { useCurrentTenant } from "./CurrentTenant/useCurrentTenant.js";
4
+ const IsTenant = ({ condition, children })=>{
5
+ const { identity } = useAuthentication();
6
+ const { tenant } = useCurrentTenant();
7
+ if (!identity.isAuthenticated) return null;
8
+ if (!condition(tenant)) return null;
9
+ return /*#__PURE__*/ react.createElement(Fragment, null, children);
10
+ };
11
+ const IsRootTenant = ({ children })=>/*#__PURE__*/ react.createElement(IsTenant, {
12
+ condition: (tenant)=>"root" === tenant.id
13
+ }, children);
14
+ const IsNotRootTenant = ({ children })=>/*#__PURE__*/ react.createElement(IsTenant, {
15
+ condition: (tenant)=>"root" !== tenant.id
16
+ }, children);
17
+ export { IsNotRootTenant, IsRootTenant, IsTenant };
18
+
19
+ //# sourceMappingURL=IsRootTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/IsRootTenant.js","sources":["../../src/admin/IsRootTenant.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { useAuthentication } from \"@webiny/app-admin\";\nimport type { Tenant } from \"../shared/Tenant.js\";\nimport { useCurrentTenant } from \"./CurrentTenant/useCurrentTenant.js\";\n\ninterface IsTenantProps {\n condition(tenant: Tenant): boolean;\n children: React.ReactNode;\n}\n\ninterface RootTenantProps {\n children: React.ReactNode;\n}\n\nexport const IsTenant = ({ condition, children }: IsTenantProps) => {\n const { identity } = useAuthentication();\n const { tenant } = useCurrentTenant();\n\n if (!identity.isAuthenticated) {\n return null;\n }\n\n if (!condition(tenant)) {\n return null;\n }\n\n return <Fragment>{children}</Fragment>;\n};\n\nexport const IsRootTenant = ({ children }: RootTenantProps) => {\n return <IsTenant condition={tenant => tenant.id === \"root\"}>{children}</IsTenant>;\n};\n\nexport const IsNotRootTenant = ({ children }: RootTenantProps) => {\n return <IsTenant condition={tenant => tenant.id !== \"root\"}>{children}</IsTenant>;\n};\n"],"names":["IsTenant","condition","children","identity","useAuthentication","tenant","useCurrentTenant","Fragment","IsRootTenant","IsNotRootTenant"],"mappings":";;;AAcO,MAAMA,WAAW,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAiB;IAC3D,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IACrB,MAAM,EAAEC,MAAM,EAAE,GAAGC;IAEnB,IAAI,CAACH,SAAS,eAAe,EACzB,OAAO;IAGX,IAAI,CAACF,UAAUI,SACX,OAAO;IAGX,OAAO,WAAP,GAAO,oBAACE,UAAQA,MAAEL;AACtB;AAEO,MAAMM,eAAe,CAAC,EAAEN,QAAQ,EAAmB,GAC/C,WAAP,GAAO,oBAACF,UAAQA;QAAC,WAAWK,CAAAA,SAAUA,AAAc,WAAdA,OAAO,EAAE;OAAcH;AAG1D,MAAMO,kBAAkB,CAAC,EAAEP,QAAQ,EAAmB,GAClD,WAAP,GAAO,oBAACF,UAAQA;QAAC,WAAWK,CAAAA,SAAUA,AAAc,WAAdA,OAAO,EAAE;OAAcH"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const SecurityPermission: () => React.JSX.Element;
@@ -0,0 +1,15 @@
1
+ import react from "react";
2
+ import { AdminConfig } from "@webiny/app-admin";
3
+ import { ReactComponent } from "@webiny/icons/business.svg";
4
+ import { TM_PERMISSIONS_SCHEMA } from "./domain/permissionsSchema.js";
5
+ const { Security: Security } = AdminConfig;
6
+ const SecurityPermission = ()=>/*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(Security.Permissions, {
7
+ name: "tenant-manager",
8
+ title: "Tenant Manager",
9
+ description: "Manage Tenant Manager permissions.",
10
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
11
+ schema: TM_PERMISSIONS_SCHEMA
12
+ }));
13
+ export { SecurityPermission };
14
+
15
+ //# sourceMappingURL=SecurityPermission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/SecurityPermission.js","sources":["../../src/admin/SecurityPermission.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/business.svg\";\nimport { TM_PERMISSIONS_SCHEMA } from \"./domain/permissionsSchema.js\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermission = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"tenant-manager\"\n title=\"Tenant Manager\"\n description=\"Manage Tenant Manager permissions.\"\n icon={<PermissionsIcon />}\n schema={TM_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n );\n};\n"],"names":["Security","AdminConfig","SecurityPermission","PermissionsIcon","TM_PERMISSIONS_SCHEMA"],"mappings":";;;;AAKA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,qBAAqB,IACvB,WAAP,GACI,oBAACD,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACG,gBAAeA;QACtB,QAAQC"}
@@ -0,0 +1,8 @@
1
+ import type { TenantEntry } from "../../../admin/types.js";
2
+ interface UseDisableTenantDialog {
3
+ record: TenantEntry;
4
+ }
5
+ export declare function useDisableTenantDialog({ record }: UseDisableTenantDialog): {
6
+ disableEntry: () => void;
7
+ };
8
+ export {};
@@ -0,0 +1,41 @@
1
+ import react, { useCallback } from "react";
2
+ import { Text, useToast } from "@webiny/admin-ui";
3
+ import { useDialogs } from "@webiny/app-admin";
4
+ import { useDisableTenant } from "../../DisableTenant/index.js";
5
+ function useDisableTenantDialog({ record }) {
6
+ const toast = useToast();
7
+ const dialogs = useDialogs();
8
+ const { disableTenant } = useDisableTenant(record);
9
+ const disableEntry = useCallback(()=>{
10
+ dialogs.showDialog({
11
+ title: "Are you sure you want to disable this tenant?",
12
+ content: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Text, {
13
+ as: "div"
14
+ }, "Users won't be able to sign in, and all API access will stop working immediately. Don't worry - you can re-enable it later if needed.")),
15
+ acceptLabel: "Yes, disable!",
16
+ loadingLabel: "Disabling tenant...",
17
+ async onAccept () {
18
+ try {
19
+ await disableTenant();
20
+ toast.showSuccessToast({
21
+ title: "Tenant was disabled successfully!"
22
+ });
23
+ } catch (e) {
24
+ toast.showWarningToast({
25
+ title: "Tenant could not be disabled!",
26
+ description: e.message,
27
+ duration: 1 / 0
28
+ });
29
+ }
30
+ }
31
+ });
32
+ }, [
33
+ record.id
34
+ ]);
35
+ return {
36
+ disableEntry
37
+ };
38
+ }
39
+ export { useDisableTenantDialog };
40
+
41
+ //# sourceMappingURL=useDisableTenantDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js","sources":["../../../../src/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useToast, Text } from \"@webiny/admin-ui\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport { useDisableTenant } from \"~/admin/DisableTenant/index.js\";\n\ninterface UseDisableTenantDialog {\n record: TenantEntry;\n}\n\nexport function useDisableTenantDialog({ record }: UseDisableTenantDialog) {\n const toast = useToast();\n const dialogs = useDialogs();\n const { disableTenant } = useDisableTenant(record);\n\n const disableEntry = useCallback(() => {\n dialogs.showDialog({\n title: \"Are you sure you want to disable this tenant?\",\n content: (\n <>\n <Text as={\"div\"}>\n Users won&apos;t be able to sign in, and all API access will stop working\n immediately. Don&apos;t worry - you can re-enable it later if needed.\n </Text>\n </>\n ),\n acceptLabel: \"Yes, disable!\",\n loadingLabel: \"Disabling tenant...\",\n async onAccept() {\n try {\n await disableTenant();\n toast.showSuccessToast({\n title: \"Tenant was disabled successfully!\"\n });\n } catch (e) {\n toast.showWarningToast({\n title: \"Tenant could not be disabled!\",\n description: e.message,\n duration: Infinity\n });\n }\n }\n });\n }, [record.id]);\n\n return { disableEntry };\n}\n"],"names":["useDisableTenantDialog","record","toast","useToast","dialogs","useDialogs","disableTenant","useDisableTenant","disableEntry","useCallback","Text","e","Infinity"],"mappings":";;;;AAUO,SAASA,uBAAuB,EAAEC,MAAM,EAA0B;IACrE,MAAMC,QAAQC;IACd,MAAMC,UAAUC;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAiBN;IAE3C,MAAMO,eAAeC,YAAY;QAC7BL,QAAQ,UAAU,CAAC;YACf,OAAO;YACP,SAAS,WAAT,GACI,wDACI,oBAACM,MAAIA;gBAAC,IAAI;eAAO;YAMzB,aAAa;YACb,cAAc;YACd,MAAM;gBACF,IAAI;oBACA,MAAMJ;oBACNJ,MAAM,gBAAgB,CAAC;wBACnB,OAAO;oBACX;gBACJ,EAAE,OAAOS,GAAG;oBACRT,MAAM,gBAAgB,CAAC;wBACnB,OAAO;wBACP,aAAaS,EAAE,OAAO;wBACtB,UAAUC;oBACd;gBACJ;YACJ;QACJ;IACJ,GAAG;QAACX,OAAO,EAAE;KAAC;IAEd,OAAO;QAAEO;IAAa;AAC1B"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { TenantEntry } from "../../types.js";
3
+ interface EnableTenantProps {
4
+ tenant: TenantEntry;
5
+ }
6
+ export declare const EnableTenant: ({ tenant }: EnableTenantProps) => React.JSX.Element;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import react from "react";
2
+ import { Button } from "@webiny/admin-ui";
3
+ import { useEnableTenant } from "./useEnableTenant.js";
4
+ const EnableTenant = ({ tenant })=>{
5
+ const { enableTenant, loading } = useEnableTenant(tenant);
6
+ return /*#__PURE__*/ react.createElement(Button, {
7
+ variant: "primary",
8
+ onClick: enableTenant,
9
+ disabled: loading,
10
+ text: loading ? "Enabling..." : "Enable"
11
+ });
12
+ };
13
+ export { EnableTenant };
14
+
15
+ //# sourceMappingURL=EnableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/EnableTenant/EnableTenant.js","sources":["../../../../src/admin/TenantEntryList/EnableTenant/EnableTenant.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useEnableTenant } from \"./useEnableTenant.js\";\n\ninterface EnableTenantProps {\n tenant: TenantEntry;\n}\n\nexport const EnableTenant = ({ tenant }: EnableTenantProps) => {\n const { enableTenant, loading } = useEnableTenant(tenant);\n\n return (\n <Button\n variant={\"primary\"}\n onClick={enableTenant}\n disabled={loading}\n text={loading ? \"Enabling...\" : \"Enable\"}\n />\n );\n};\n"],"names":["EnableTenant","tenant","enableTenant","loading","useEnableTenant","Button"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,YAAY,EAAEC,OAAO,EAAE,GAAGC,gBAAgBH;IAElD,OAAO,WAAP,GACI,oBAACI,QAAMA;QACH,SAAS;QACT,SAASH;QACT,UAAUC;QACV,MAAMA,UAAU,gBAAgB;;AAG5C"}
@@ -0,0 +1,5 @@
1
+ import { TenantEntry } from "../../types.js";
2
+ export declare const useEnableTenant: (tenant: TenantEntry) => {
3
+ enableTenant: () => Promise<void>;
4
+ loading: boolean;
5
+ };
@@ -0,0 +1,31 @@
1
+ import { useCallback } from "react";
2
+ import { useToast } from "@webiny/admin-ui";
3
+ import { useEnableTenant } from "../../EnableTenant/index.js";
4
+ const useEnableTenant_useEnableTenant = (tenant)=>{
5
+ const toast = useToast();
6
+ const useCase = useEnableTenant();
7
+ const enableTenant = useCallback(async ()=>{
8
+ try {
9
+ await useCase.enableTenant(tenant.entryId);
10
+ } catch (error) {
11
+ toast.showWarningToast({
12
+ title: "Could not enable tenant",
13
+ description: error.message,
14
+ duration: 1 / 0
15
+ });
16
+ return;
17
+ }
18
+ toast.showSuccessToast({
19
+ title: "Tenant was enabled successfully!"
20
+ });
21
+ }, [
22
+ tenant
23
+ ]);
24
+ return {
25
+ enableTenant,
26
+ loading: useCase.loading
27
+ };
28
+ };
29
+ export { useEnableTenant_useEnableTenant as useEnableTenant };
30
+
31
+ //# sourceMappingURL=useEnableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/EnableTenant/useEnableTenant.js","sources":["../../../../src/admin/TenantEntryList/EnableTenant/useEnableTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useEnableTenant as baseEnableTenant } from \"~/admin/EnableTenant/index.js\";\n\nexport const useEnableTenant = (tenant: TenantEntry) => {\n const toast = useToast();\n const useCase = baseEnableTenant();\n\n const enableTenant = useCallback(async () => {\n try {\n await useCase.enableTenant(tenant.entryId);\n } catch (error) {\n toast.showWarningToast({\n title: \"Could not enable tenant\",\n description: error.message,\n duration: Infinity\n });\n return;\n }\n\n toast.showSuccessToast({ title: \"Tenant was enabled successfully!\" });\n }, [tenant]);\n\n return { enableTenant, loading: useCase.loading };\n};\n"],"names":["useEnableTenant","tenant","toast","useToast","useCase","baseEnableTenant","enableTenant","useCallback","error","Infinity"],"mappings":";;;AAKO,MAAMA,kCAAkB,CAACC;IAC5B,MAAMC,QAAQC;IACd,MAAMC,UAAUC;IAEhB,MAAMC,eAAeC,YAAY;QAC7B,IAAI;YACA,MAAMH,QAAQ,YAAY,CAACH,OAAO,OAAO;QAC7C,EAAE,OAAOO,OAAO;YACZN,MAAM,gBAAgB,CAAC;gBACnB,OAAO;gBACP,aAAaM,MAAM,OAAO;gBAC1B,UAAUC;YACd;YACA;QACJ;QAEAP,MAAM,gBAAgB,CAAC;YAAE,OAAO;QAAmC;IACvE,GAAG;QAACD;KAAO;IAEX,OAAO;QAAEK;QAAc,SAASF,QAAQ,OAAO;IAAC;AACpD"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { FolderTableRow } from "@webiny/app-aco";
3
+ interface FolderNameCellProps {
4
+ folder: FolderTableRow["data"];
5
+ }
6
+ export declare const FolderNameCell: ({ folder }: FolderNameCellProps) => React.JSX.Element;
7
+ export {};
@@ -0,0 +1,24 @@
1
+ import react from "react";
2
+ import { Icon, Text } from "@webiny/admin-ui";
3
+ import { ReactComponent } from "@webiny/icons/folder.svg";
4
+ import { ReactComponent as folder_shared_svg_ReactComponent } from "@webiny/icons/folder_shared.svg";
5
+ import { useContentEntriesPresenter } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
6
+ const FolderNameCell = ({ folder })=>{
7
+ const presenter = useContentEntriesPresenter();
8
+ let icon = /*#__PURE__*/ react.createElement(ReactComponent, null);
9
+ if (folder.hasNonInheritedPermissions && folder.canManagePermissions) icon = /*#__PURE__*/ react.createElement(folder_shared_svg_ReactComponent, null);
10
+ return /*#__PURE__*/ react.createElement("div", {
11
+ className: "flex items-center gap-sm truncate cursor-pointer font-semibold hover:underline",
12
+ onClick: ()=>presenter.folders.selectFolder(folder.id)
13
+ }, /*#__PURE__*/ react.createElement(Icon, {
14
+ size: "sm",
15
+ color: "neutral-strong",
16
+ icon: icon,
17
+ label: `Folder - ${folder.title}`
18
+ }), /*#__PURE__*/ react.createElement(Text, {
19
+ className: "truncate min-w-0 shrink"
20
+ }, folder.title));
21
+ };
22
+ export { FolderNameCell };
23
+
24
+ //# sourceMappingURL=FolderNameCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/FolderNameCell.js","sources":["../../../src/admin/TenantEntryList/FolderNameCell.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FolderTableRow } from \"@webiny/app-aco\";\nimport { Icon, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as Folder } from \"@webiny/icons/folder.svg\";\nimport { ReactComponent as FolderShared } from \"@webiny/icons/folder_shared.svg\";\nimport { useContentEntriesPresenter } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\n\ninterface FolderNameCellProps {\n folder: FolderTableRow[\"data\"];\n}\n\nexport const FolderNameCell = ({ folder }: FolderNameCellProps) => {\n const presenter = useContentEntriesPresenter();\n\n let icon = <Folder />;\n if (folder.hasNonInheritedPermissions && folder.canManagePermissions) {\n icon = <FolderShared />;\n }\n\n return (\n <div\n className={\n \"flex items-center gap-sm truncate cursor-pointer font-semibold hover:underline\"\n }\n onClick={() => presenter.folders.selectFolder(folder.id)}\n >\n <Icon\n size={\"sm\"}\n color={\"neutral-strong\"}\n icon={icon}\n label={`Folder - ${folder.title}`}\n />\n <Text className={\"truncate min-w-0 shrink\"}>{folder.title}</Text>\n </div>\n );\n};\n"],"names":["FolderNameCell","folder","presenter","useContentEntriesPresenter","icon","Folder","FolderShared","Icon","Text"],"mappings":";;;;;AAWO,MAAMA,iBAAiB,CAAC,EAAEC,MAAM,EAAuB;IAC1D,MAAMC,YAAYC;IAElB,IAAIC,OAAO,WAAPA,GAAO,oBAACC,gBAAMA;IAClB,IAAIJ,OAAO,0BAA0B,IAAIA,OAAO,oBAAoB,EAChEG,OAAO,WAAPA,GAAO,oBAACE,kCAAYA;IAGxB,OAAO,WAAP,GACI,oBAAC;QACG,WACI;QAEJ,SAAS,IAAMJ,UAAU,OAAO,CAAC,YAAY,CAACD,OAAO,EAAE;qBAEvD,oBAACM,MAAIA;QACD,MAAM;QACN,OAAO;QACP,MAAMH;QACN,OAAO,CAAC,SAAS,EAAEH,OAAO,KAAK,EAAE;sBAErC,oBAACO,MAAIA;QAAC,WAAW;OAA4BP,OAAO,KAAK;AAGrE"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { TenantEntry } from "../../types.js";
3
+ interface InstallTenantProps {
4
+ tenant: TenantEntry;
5
+ }
6
+ export declare const InstallTenant: ({ tenant }: InstallTenantProps) => React.JSX.Element;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import react from "react";
2
+ import { Button } from "@webiny/admin-ui";
3
+ import { useInstallTenant } from "./useInstallTenant.js";
4
+ const InstallTenant = ({ tenant })=>{
5
+ const { installTenant, loading } = useInstallTenant(tenant);
6
+ return /*#__PURE__*/ react.createElement(Button, {
7
+ variant: "primary",
8
+ onClick: installTenant,
9
+ disabled: loading,
10
+ text: loading ? "Installing..." : "Install"
11
+ });
12
+ };
13
+ export { InstallTenant };
14
+
15
+ //# sourceMappingURL=InstallTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/InstallTenantButton/InstallTenant.js","sources":["../../../../src/admin/TenantEntryList/InstallTenantButton/InstallTenant.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useInstallTenant } from \"./useInstallTenant.js\";\n\ninterface InstallTenantProps {\n tenant: TenantEntry;\n}\n\nexport const InstallTenant = ({ tenant }: InstallTenantProps) => {\n const { installTenant, loading } = useInstallTenant(tenant);\n\n return (\n <Button\n variant={\"primary\"}\n onClick={installTenant}\n disabled={loading}\n text={loading ? \"Installing...\" : \"Install\"}\n />\n );\n};\n"],"names":["InstallTenant","tenant","installTenant","loading","useInstallTenant","Button"],"mappings":";;;AASO,MAAMA,gBAAgB,CAAC,EAAEC,MAAM,EAAsB;IACxD,MAAM,EAAEC,aAAa,EAAEC,OAAO,EAAE,GAAGC,iBAAiBH;IAEpD,OAAO,WAAP,GACI,oBAACI,QAAMA;QACH,SAAS;QACT,SAASH;QACT,UAAUC;QACV,MAAMA,UAAU,kBAAkB;;AAG9C"}
@@ -0,0 +1,5 @@
1
+ import { TenantEntry } from "../../types.js";
2
+ export declare const useInstallTenant: (tenant: TenantEntry) => {
3
+ installTenant: () => Promise<void>;
4
+ loading: boolean;
5
+ };
@@ -0,0 +1,31 @@
1
+ import { useCallback } from "react";
2
+ import { useToast } from "@webiny/admin-ui";
3
+ import { useInstallTenant } from "../../InstallTenant/index.js";
4
+ const useInstallTenant_useInstallTenant = (tenant)=>{
5
+ const toast = useToast();
6
+ const hook = useInstallTenant();
7
+ const installTenant = useCallback(async ()=>{
8
+ try {
9
+ await hook.installTenant(tenant.entryId);
10
+ } catch (error) {
11
+ toast.showWarningToast({
12
+ title: "Could not install tenant",
13
+ description: error.message,
14
+ duration: 1 / 0
15
+ });
16
+ return;
17
+ }
18
+ toast.showSuccessToast({
19
+ title: "Tenant installed successfully!"
20
+ });
21
+ }, [
22
+ tenant
23
+ ]);
24
+ return {
25
+ installTenant,
26
+ loading: hook.loading
27
+ };
28
+ };
29
+ export { useInstallTenant_useInstallTenant as useInstallTenant };
30
+
31
+ //# sourceMappingURL=useInstallTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/InstallTenantButton/useInstallTenant.js","sources":["../../../../src/admin/TenantEntryList/InstallTenantButton/useInstallTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { TenantEntry } from \"../../types.js\";\nimport { useInstallTenant as baseInstallTenant } from \"~/admin/InstallTenant/index.js\";\n\nexport const useInstallTenant = (tenant: TenantEntry) => {\n const toast = useToast();\n const hook = baseInstallTenant();\n\n const installTenant = useCallback(async () => {\n try {\n await hook.installTenant(tenant.entryId);\n } catch (error) {\n toast.showWarningToast({\n title: \"Could not install tenant\",\n description: error.message,\n duration: Infinity\n });\n return;\n }\n\n toast.showSuccessToast({ title: \"Tenant installed successfully!\" });\n }, [tenant]);\n\n return { installTenant, loading: hook.loading };\n};\n"],"names":["useInstallTenant","tenant","toast","useToast","hook","baseInstallTenant","installTenant","useCallback","error","Infinity"],"mappings":";;;AAKO,MAAMA,oCAAmB,CAACC;IAC7B,MAAMC,QAAQC;IACd,MAAMC,OAAOC;IAEb,MAAMC,gBAAgBC,YAAY;QAC9B,IAAI;YACA,MAAMH,KAAK,aAAa,CAACH,OAAO,OAAO;QAC3C,EAAE,OAAOO,OAAO;YACZN,MAAM,gBAAgB,CAAC;gBACnB,OAAO;gBACP,aAAaM,MAAM,OAAO;gBAC1B,UAAUC;YACd;YACA;QACJ;QAEAP,MAAM,gBAAgB,CAAC;YAAE,OAAO;QAAiC;IACrE,GAAG;QAACD;KAAO;IAEX,OAAO;QAAEK;QAAe,SAASF,KAAK,OAAO;IAAC;AAClD"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { TenantEntry } from "../types.js";
3
+ interface ManageTenantProps {
4
+ tenant: TenantEntry;
5
+ }
6
+ export declare const ManageTenant: ({ tenant }: ManageTenantProps) => React.JSX.Element;
7
+ export {};
@@ -0,0 +1,19 @@
1
+ import react, { useCallback } from "react";
2
+ import { Button } from "@webiny/admin-ui";
3
+ import { useTenantContext } from "@webiny/app-admin";
4
+ const ManageTenant = ({ tenant })=>{
5
+ const { setTenant } = useTenantContext();
6
+ const switchToTenant = useCallback(()=>{
7
+ setTenant(tenant.entryId);
8
+ }, [
9
+ tenant
10
+ ]);
11
+ return /*#__PURE__*/ react.createElement(Button, {
12
+ variant: "secondary",
13
+ onClick: switchToTenant,
14
+ text: "Manage"
15
+ });
16
+ };
17
+ export { ManageTenant };
18
+
19
+ //# sourceMappingURL=ManageTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/ManageTenant.js","sources":["../../../src/admin/TenantEntryList/ManageTenant.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { useTenantContext } from \"@webiny/app-admin\";\nimport type { TenantEntry } from \"../types.js\";\n\ninterface ManageTenantProps {\n tenant: TenantEntry;\n}\n\nexport const ManageTenant = ({ tenant }: ManageTenantProps) => {\n const { setTenant } = useTenantContext();\n const switchToTenant = useCallback(() => {\n setTenant(tenant.entryId);\n }, [tenant]);\n\n return <Button variant={\"secondary\"} onClick={switchToTenant} text={\"Manage\"} />;\n};\n"],"names":["ManageTenant","tenant","setTenant","useTenantContext","switchToTenant","useCallback","Button"],"mappings":";;;AASO,MAAMA,eAAe,CAAC,EAAEC,MAAM,EAAqB;IACtD,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,iBAAiBC,YAAY;QAC/BH,UAAUD,OAAO,OAAO;IAC5B,GAAG;QAACA;KAAO;IAEX,OAAO,WAAP,GAAO,oBAACK,QAAMA;QAAC,SAAS;QAAa,SAASF;QAAgB,MAAM;;AACxE"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const TenantCell: () => React.JSX.Element;
@@ -0,0 +1,24 @@
1
+ import react from "react";
2
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms";
3
+ import { InstallTenant } from "./InstallTenantButton/InstallTenant.js";
4
+ import { ManageTenant } from "./ManageTenant.js";
5
+ import { EnableTenant } from "./EnableTenant/EnableTenant.js";
6
+ const { Browser: Browser } = ContentEntryListConfig;
7
+ const { useTableRow: useTableRow, isFolderRow: isFolderRow } = Browser.Table.Column;
8
+ const TenantCell = ()=>{
9
+ const { row } = useTableRow();
10
+ if (isFolderRow(row)) return /*#__PURE__*/ react.createElement(react.Fragment, null, "-");
11
+ const tenant = row.data;
12
+ if (!tenant.values.isInstalled) return /*#__PURE__*/ react.createElement(InstallTenant, {
13
+ tenant: tenant
14
+ });
15
+ if ("disabled" === tenant.values.status) return /*#__PURE__*/ react.createElement(EnableTenant, {
16
+ tenant: tenant
17
+ });
18
+ return /*#__PURE__*/ react.createElement(ManageTenant, {
19
+ tenant: tenant
20
+ });
21
+ };
22
+ export { TenantCell };
23
+
24
+ //# sourceMappingURL=TenantCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/TenantCell.js","sources":["../../../src/admin/TenantEntryList/TenantCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { TenantEntry } from \"../types.js\";\nimport { InstallTenant } from \"./InstallTenantButton/InstallTenant.js\";\nimport { ManageTenant } from \"./ManageTenant.js\";\nimport { EnableTenant } from \"~/admin/TenantEntryList/EnableTenant/EnableTenant.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst { useTableRow, isFolderRow } = Browser.Table.Column;\n\nexport const TenantCell = () => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n\n // isFolderRow() allows for custom rendering when the current row is a folder.\n if (isFolderRow(row)) {\n return <>{\"-\"}</>;\n }\n\n const tenant = row.data;\n\n if (!tenant.values.isInstalled) {\n return <InstallTenant tenant={tenant} />;\n }\n\n if (tenant.values.status === \"disabled\") {\n return <EnableTenant tenant={tenant} />;\n }\n\n return <ManageTenant tenant={tenant} />;\n};\n"],"names":["Browser","ContentEntryListConfig","useTableRow","isFolderRow","TenantCell","row","tenant","InstallTenant","EnableTenant","ManageTenant"],"mappings":";;;;;AAOA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,aAAAA,WAAW,EAAEC,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAElD,MAAMI,aAAa;IAEtB,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAGhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,0CAAG;IAGd,MAAMC,SAASD,IAAI,IAAI;IAEvB,IAAI,CAACC,OAAO,MAAM,CAAC,WAAW,EAC1B,OAAO,WAAP,GAAO,oBAACC,eAAaA;QAAC,QAAQD;;IAGlC,IAAIA,AAAyB,eAAzBA,OAAO,MAAM,CAAC,MAAM,EACpB,OAAO,WAAP,GAAO,oBAACE,cAAYA;QAAC,QAAQF;;IAGjC,OAAO,WAAP,GAAO,oBAACG,cAAYA;QAAC,QAAQH;;AACjC"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const TenantNameCell: () => React.JSX.Element;
@@ -0,0 +1,51 @@
1
+ import react from "react";
2
+ import { Icon, Link, Text } from "@webiny/admin-ui";
3
+ import { ReactComponent } from "@webiny/icons/description.svg";
4
+ import { ContentEntryListConfig, Routes } from "@webiny/app-headless-cms";
5
+ import { FolderNameCell } from "./FolderNameCell.js";
6
+ import { useContentEntriesPresenter } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
7
+ import { useRouter } from "@webiny/app-admin";
8
+ const TenantName = ({ tenant })=>{
9
+ const presenter = useContentEntriesPresenter();
10
+ const { getLink } = useRouter();
11
+ const url = getLink(Routes.ContentEntries.List, {
12
+ modelId: presenter.vm.model.modelId,
13
+ folderId: presenter.folders.vm.currentFolderId ?? void 0,
14
+ id: tenant.id
15
+ });
16
+ return /*#__PURE__*/ react.createElement("div", {
17
+ className: "flex flex-col gap-y-[3px]"
18
+ }, /*#__PURE__*/ react.createElement(Link, {
19
+ to: url,
20
+ variant: "secondary",
21
+ className: "truncate no-underline!"
22
+ }, /*#__PURE__*/ react.createElement("div", {
23
+ className: "flex w-full items-center"
24
+ }, /*#__PURE__*/ react.createElement(Icon, {
25
+ size: "sm",
26
+ color: "neutral-strong",
27
+ className: "mr-xs",
28
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
29
+ label: `Tenant - ${tenant.values.name}`
30
+ }), /*#__PURE__*/ react.createElement(Text, {
31
+ as: "div",
32
+ className: "truncate min-w-0 shrink"
33
+ }, tenant.values.name))), /*#__PURE__*/ react.createElement(Text, {
34
+ as: "div",
35
+ size: "sm",
36
+ className: "text-neutral-dimmed"
37
+ }, "ID: ", tenant.entryId));
38
+ };
39
+ const TenantNameCell = ()=>{
40
+ const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;
41
+ const { row } = useTableRow();
42
+ if (isFolderRow(row)) return /*#__PURE__*/ react.createElement(FolderNameCell, {
43
+ folder: row.data
44
+ });
45
+ return /*#__PURE__*/ react.createElement(TenantName, {
46
+ tenant: row.data
47
+ });
48
+ };
49
+ export { TenantNameCell };
50
+
51
+ //# sourceMappingURL=TenantNameCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList/TenantNameCell.js","sources":["../../../src/admin/TenantEntryList/TenantNameCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, Link, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as File } from \"@webiny/icons/description.svg\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport { FolderNameCell } from \"./FolderNameCell.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useContentEntriesPresenter } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\n\ninterface TenantNameProps {\n tenant: TenantEntry;\n}\n\nconst TenantName = ({ tenant }: TenantNameProps) => {\n const presenter = useContentEntriesPresenter();\n const { getLink } = useRouter();\n\n const url = getLink(Routes.ContentEntries.List, {\n modelId: presenter.vm.model.modelId,\n folderId: presenter.folders.vm.currentFolderId ?? undefined,\n id: tenant.id\n });\n\n return (\n <div className={\"flex flex-col gap-y-[3px]\"}>\n <Link to={url} variant={\"secondary\"} className={\"truncate no-underline!\"}>\n <div className={\"flex w-full items-center\"}>\n <Icon\n size={\"sm\"}\n color={\"neutral-strong\"}\n className={\"mr-xs\"}\n icon={<File />}\n label={`Tenant - ${tenant.values.name}`}\n />\n <Text as={\"div\"} className={\"truncate min-w-0 shrink\"}>\n {tenant.values.name}\n </Text>\n </div>\n </Link>\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-dimmed\"}>\n ID: {tenant.entryId}\n </Text>\n </div>\n );\n};\n\nexport const TenantNameCell = () => {\n const { useTableRow, isFolderRow } = ContentEntryListConfig.Browser.Table.Column;\n const { row } = useTableRow<TenantEntry>();\n\n if (isFolderRow(row)) {\n return <FolderNameCell folder={row.data} />;\n }\n\n return <TenantName tenant={row.data} />;\n};\n"],"names":["TenantName","tenant","presenter","useContentEntriesPresenter","getLink","useRouter","url","Routes","undefined","Link","Icon","File","Text","TenantNameCell","useTableRow","isFolderRow","ContentEntryListConfig","row","FolderNameCell"],"mappings":";;;;;;;AAcA,MAAMA,aAAa,CAAC,EAAEC,MAAM,EAAmB;IAC3C,MAAMC,YAAYC;IAClB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,MAAMC,MAAMF,QAAQG,OAAO,cAAc,CAAC,IAAI,EAAE;QAC5C,SAASL,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO;QACnC,UAAUA,UAAU,OAAO,CAAC,EAAE,CAAC,eAAe,IAAIM;QAClD,IAAIP,OAAO,EAAE;IACjB;IAEA,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACQ,MAAIA;QAAC,IAAIH;QAAK,SAAS;QAAa,WAAW;qBAC5C,oBAAC;QAAI,WAAW;qBACZ,oBAACI,MAAIA;QACD,MAAM;QACN,OAAO;QACP,WAAW;QACX,oBAAM,oBAACC,gBAAIA;QACX,OAAO,CAAC,SAAS,EAAEV,OAAO,MAAM,CAAC,IAAI,EAAE;sBAE3C,oBAACW,MAAIA;QAAC,IAAI;QAAO,WAAW;OACvBX,OAAO,MAAM,CAAC,IAAI,mBAI/B,oBAACW,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OAAuB,QACtDX,OAAO,OAAO;AAInC;AAEO,MAAMY,iBAAiB;IAC1B,MAAM,EAAEC,WAAW,EAAEC,WAAW,EAAE,GAAGC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM;IAChF,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAEhB,IAAIC,YAAYE,MACZ,OAAO,WAAP,GAAO,oBAACC,gBAAcA;QAAC,QAAQD,IAAI,IAAI;;IAG3C,OAAO,WAAP,GAAO,oBAACjB,YAAUA;QAAC,QAAQiB,IAAI,IAAI;;AACvC"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const TenantEntryList: () => React.JSX.Element;
@@ -0,0 +1,59 @@
1
+ import react from "react";
2
+ import { useModel } from "@webiny/app-headless-cms/exports/admin/cms.js";
3
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
4
+ import { ReactComponent } from "@webiny/icons/power_off.svg";
5
+ import { TenantCell } from "./TenantEntryList/TenantCell.js";
6
+ import { TENANT_MODEL_ID } from "../shared/constants.js";
7
+ import { useDisableTenantDialog } from "./TenantEntryList/DisableTenant/useDisableTenantDialog.js";
8
+ import { TenantNameCell } from "./TenantEntryList/TenantNameCell.js";
9
+ const { Browser: Browser } = ContentEntryListConfig;
10
+ const EntryAction = Browser.Entry.Action;
11
+ const { useTableRow: useTableRow } = Browser.Table.Column;
12
+ const WithDisableAction = ({ children })=>{
13
+ const { row } = useTableRow();
14
+ const { disableEntry } = useDisableTenantDialog({
15
+ record: row.data
16
+ });
17
+ if ("enabled" === row.data.values.status) return /*#__PURE__*/ react.createElement(EntryAction.OptionsMenuItem, {
18
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
19
+ label: "Disable",
20
+ onAction: disableEntry,
21
+ "data-testid": "aco.actions.entry.delete",
22
+ variant: "destructive"
23
+ });
24
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, children);
25
+ };
26
+ const DeleteActionDecorator = EntryAction.createDecorator((Original)=>function(props) {
27
+ const { model } = useModel();
28
+ if (model.modelId !== TENANT_MODEL_ID) return /*#__PURE__*/ react.createElement(Original, props);
29
+ if ("delete" === props.name) return /*#__PURE__*/ react.createElement(Original, {
30
+ ...props,
31
+ element: /*#__PURE__*/ react.createElement(WithDisableAction, null, props.element)
32
+ });
33
+ return /*#__PURE__*/ react.createElement(Original, props);
34
+ });
35
+ const TenantEntryList = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DeleteActionDecorator, null), /*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(Browser.BreadcrumbRoot, {
36
+ label: "Tenant Manager",
37
+ modelIds: [
38
+ TENANT_MODEL_ID
39
+ ]
40
+ }), /*#__PURE__*/ react.createElement(Browser.Table.Column, {
41
+ hideable: false,
42
+ name: "name",
43
+ header: "Name",
44
+ modelIds: [
45
+ TENANT_MODEL_ID
46
+ ],
47
+ cell: /*#__PURE__*/ react.createElement(TenantNameCell, null)
48
+ }), /*#__PURE__*/ react.createElement(Browser.Table.Column, {
49
+ name: "tenant",
50
+ header: "Tenant",
51
+ modelIds: [
52
+ TENANT_MODEL_ID
53
+ ],
54
+ cell: /*#__PURE__*/ react.createElement(TenantCell, null),
55
+ before: "actions"
56
+ })));
57
+ export { TenantEntryList };
58
+
59
+ //# sourceMappingURL=TenantEntryList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/TenantEntryList.js","sources":["../../src/admin/TenantEntryList.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { ReactComponent as DisableIcon } from \"@webiny/icons/power_off.svg\";\nimport { TenantCell } from \"./TenantEntryList/TenantCell.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport type { TenantEntry } from \"~/admin/types.js\";\nimport { useDisableTenantDialog } from \"~/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js\";\nimport { TenantNameCell } from \"~/admin/TenantEntryList/TenantNameCell.js\";\n\nconst { Browser } = ContentEntryListConfig;\nconst EntryAction = Browser.Entry.Action;\nconst { useTableRow } = Browser.Table.Column;\n\ninterface WithDisableActionProps {\n children: React.ReactNode;\n}\n\nconst WithDisableAction = ({ children }: WithDisableActionProps) => {\n // useTableRow() allows you to access the entire data of the current row.\n const { row } = useTableRow<TenantEntry>();\n const { disableEntry } = useDisableTenantDialog({ record: row.data });\n\n if (row.data.values.status === \"enabled\") {\n return (\n <EntryAction.OptionsMenuItem\n icon={<DisableIcon />}\n label={\"Disable\"}\n onAction={disableEntry}\n data-testid={\"aco.actions.entry.delete\"}\n variant={\"destructive\"}\n />\n );\n }\n\n return <>{children}</>;\n};\n\nconst DeleteActionDecorator = EntryAction.createDecorator(Original => {\n return function DeleteAction(props) {\n const { model } = useModel();\n\n if (model.modelId !== TENANT_MODEL_ID) {\n return <Original {...props} />;\n }\n\n if (props.name === \"delete\") {\n return (\n <Original\n {...props}\n element={<WithDisableAction>{props.element}</WithDisableAction>}\n />\n );\n }\n\n return <Original {...props} />;\n };\n});\n\nexport const TenantEntryList = () => {\n return (\n <>\n <DeleteActionDecorator />\n <ContentEntryListConfig>\n <Browser.BreadcrumbRoot label={\"Tenant Manager\"} modelIds={[TENANT_MODEL_ID]} />\n <Browser.Table.Column\n hideable={false}\n name={\"name\"}\n header={\"Name\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantNameCell />}\n />\n <Browser.Table.Column\n name={\"tenant\"}\n header={\"Tenant\"}\n modelIds={[TENANT_MODEL_ID]}\n cell={<TenantCell />}\n before={\"actions\"}\n />\n </ContentEntryListConfig>\n </>\n );\n};\n"],"names":["Browser","ContentEntryListConfig","EntryAction","useTableRow","WithDisableAction","children","row","disableEntry","useDisableTenantDialog","DisableIcon","DeleteActionDecorator","Original","props","model","useModel","TENANT_MODEL_ID","TenantEntryList","TenantNameCell","TenantCell"],"mappings":";;;;;;;;AAUA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAMC,cAAcF,QAAQ,KAAK,CAAC,MAAM;AACxC,MAAM,EAAEG,aAAAA,WAAW,EAAE,GAAGH,QAAQ,KAAK,CAAC,MAAM;AAM5C,MAAMI,oBAAoB,CAAC,EAAEC,QAAQ,EAA0B;IAE3D,MAAM,EAAEC,GAAG,EAAE,GAAGH;IAChB,MAAM,EAAEI,YAAY,EAAE,GAAGC,uBAAuB;QAAE,QAAQF,IAAI,IAAI;IAAC;IAEnE,IAAIA,AAA2B,cAA3BA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EACtB,OAAO,WAAP,GACI,oBAACJ,YAAY,eAAe;QACxB,oBAAM,oBAACO,gBAAWA;QAClB,OAAO;QACP,UAAUF;QACV,eAAa;QACb,SAAS;;IAKrB,OAAO,WAAP,GAAO,0CAAGF;AACd;AAEA,MAAMK,wBAAwBR,YAAY,eAAe,CAACS,CAAAA,WAC/C,SAAsBC,KAAK;QAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGC;QAElB,IAAID,MAAM,OAAO,KAAKE,iBAClB,OAAO,WAAP,GAAO,oBAACJ,UAAaC;QAGzB,IAAIA,AAAe,aAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACD,UAAAA;YACI,GAAGC,KAAK;YACT,uBAAS,oBAACR,mBAAiBA,MAAEQ,MAAM,OAAO;;QAKtD,OAAO,WAAP,GAAO,oBAACD,UAAaC;IACzB;AAGG,MAAMI,kBAAkB,IACpB,WAAP,GACI,wDACI,oBAACN,uBAAqBA,OAAAA,WAAAA,GACtB,oBAACT,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACD,QAAQ,cAAc;QAAC,OAAO;QAAkB,UAAU;YAACe;SAAgB;sBAC5E,oBAACf,QAAQ,KAAK,CAAC,MAAM;QACjB,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACE,gBAAcA;sBAEzB,oBAACjB,QAAQ,KAAK,CAAC,MAAM;QACjB,MAAM;QACN,QAAQ;QACR,UAAU;YAACe;SAAgB;QAC3B,oBAAM,oBAACG,YAAUA;QACjB,QAAQ"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const TenantSelector: (props: unknown) => React.JSX.Element;