@webiny/tenant-manager 0.0.0-unstable.3c5210ad37

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 (255) hide show
  1. package/LICENSE +36 -0
  2. package/README.md +11 -0
  3. package/TenantManager.d.ts +2 -0
  4. package/TenantManager.js +12 -0
  5. package/TenantManager.js.map +1 -0
  6. package/admin/CurrentTenant/CurrentTenant.d.ts +6 -0
  7. package/admin/CurrentTenant/CurrentTenant.js +34 -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 +44 -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 +30 -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 +37 -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 +15 -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 +20 -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 +23 -0
  26. package/admin/CurrentTenant/useCurrentTenant.js.map +1 -0
  27. package/admin/CurrentTenantProvider.d.ts +2 -0
  28. package/admin/CurrentTenantProvider.js +12 -0
  29. package/admin/CurrentTenantProvider.js.map +1 -0
  30. package/admin/DisableTenant/DisableTenantGateway.d.ts +11 -0
  31. package/admin/DisableTenant/DisableTenantGateway.js +43 -0
  32. package/admin/DisableTenant/DisableTenantGateway.js.map +1 -0
  33. package/admin/DisableTenant/DisableTenantRepository.d.ts +10 -0
  34. package/admin/DisableTenant/DisableTenantRepository.js +15 -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 +15 -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 +15 -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 +20 -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 +4 -0
  47. package/admin/DisableTenant/index.js.map +1 -0
  48. package/admin/DisableTenant/useDisableTenant.d.ts +4 -0
  49. package/admin/DisableTenant/useDisableTenant.js +27 -0
  50. package/admin/DisableTenant/useDisableTenant.js.map +1 -0
  51. package/admin/EnableTenant/EnableTenantGateway.d.ts +11 -0
  52. package/admin/EnableTenant/EnableTenantGateway.js +43 -0
  53. package/admin/EnableTenant/EnableTenantGateway.js.map +1 -0
  54. package/admin/EnableTenant/EnableTenantRepository.d.ts +10 -0
  55. package/admin/EnableTenant/EnableTenantRepository.js +15 -0
  56. package/admin/EnableTenant/EnableTenantRepository.js.map +1 -0
  57. package/admin/EnableTenant/EnableTenantUseCase.d.ts +10 -0
  58. package/admin/EnableTenant/EnableTenantUseCase.js +15 -0
  59. package/admin/EnableTenant/EnableTenantUseCase.js.map +1 -0
  60. package/admin/EnableTenant/abstractions.d.ts +21 -0
  61. package/admin/EnableTenant/abstractions.js +15 -0
  62. package/admin/EnableTenant/abstractions.js.map +1 -0
  63. package/admin/EnableTenant/feature.d.ts +3 -0
  64. package/admin/EnableTenant/feature.js +20 -0
  65. package/admin/EnableTenant/feature.js.map +1 -0
  66. package/admin/EnableTenant/index.d.ts +2 -0
  67. package/admin/EnableTenant/index.js +4 -0
  68. package/admin/EnableTenant/index.js.map +1 -0
  69. package/admin/EnableTenant/useEnableTenant.d.ts +4 -0
  70. package/admin/EnableTenant/useEnableTenant.js +23 -0
  71. package/admin/EnableTenant/useEnableTenant.js.map +1 -0
  72. package/admin/Extension.d.ts +2 -0
  73. package/admin/Extension.js +47 -0
  74. package/admin/Extension.js.map +1 -0
  75. package/admin/IsRootTenant.d.ts +13 -0
  76. package/admin/IsRootTenant.js +37 -0
  77. package/admin/IsRootTenant.js.map +1 -0
  78. package/admin/SecurityPermission.d.ts +2 -0
  79. package/admin/SecurityPermission.js +20 -0
  80. package/admin/SecurityPermission.js.map +1 -0
  81. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.d.ts +8 -0
  82. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js +42 -0
  83. package/admin/TenantEntryList/DisableTenant/useDisableTenantDialog.js.map +1 -0
  84. package/admin/TenantEntryList/EnableTenant/EnableTenant.d.ts +7 -0
  85. package/admin/TenantEntryList/EnableTenant/EnableTenant.js +19 -0
  86. package/admin/TenantEntryList/EnableTenant/EnableTenant.js.map +1 -0
  87. package/admin/TenantEntryList/EnableTenant/useEnableTenant.d.ts +5 -0
  88. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js +39 -0
  89. package/admin/TenantEntryList/EnableTenant/useEnableTenant.js.map +1 -0
  90. package/admin/TenantEntryList/FolderNameCell.d.ts +7 -0
  91. package/admin/TenantEntryList/FolderNameCell.js +29 -0
  92. package/admin/TenantEntryList/FolderNameCell.js.map +1 -0
  93. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.d.ts +7 -0
  94. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js +19 -0
  95. package/admin/TenantEntryList/InstallTenantButton/InstallTenant.js.map +1 -0
  96. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.d.ts +16 -0
  97. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js +17 -0
  98. package/admin/TenantEntryList/InstallTenantButton/installTenant.gql.js.map +1 -0
  99. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.d.ts +5 -0
  100. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js +46 -0
  101. package/admin/TenantEntryList/InstallTenantButton/useInstallTenant.js.map +1 -0
  102. package/admin/TenantEntryList/ManageTenant.d.ts +7 -0
  103. package/admin/TenantEntryList/ManageTenant.js +21 -0
  104. package/admin/TenantEntryList/ManageTenant.js.map +1 -0
  105. package/admin/TenantEntryList/TenantCell.d.ts +2 -0
  106. package/admin/TenantEntryList/TenantCell.js +39 -0
  107. package/admin/TenantEntryList/TenantCell.js.map +1 -0
  108. package/admin/TenantEntryList/TenantNameCell.d.ts +2 -0
  109. package/admin/TenantEntryList/TenantNameCell.js +54 -0
  110. package/admin/TenantEntryList/TenantNameCell.js.map +1 -0
  111. package/admin/TenantEntryList.d.ts +2 -0
  112. package/admin/TenantEntryList.js +71 -0
  113. package/admin/TenantEntryList.js.map +1 -0
  114. package/admin/TenantSelector.d.ts +2 -0
  115. package/admin/TenantSelector.js +39 -0
  116. package/admin/TenantSelector.js.map +1 -0
  117. package/admin/types.d.ts +7 -0
  118. package/admin/types.js +3 -0
  119. package/admin/types.js.map +1 -0
  120. package/api/Extension.d.ts +1 -0
  121. package/api/Extension.js +42 -0
  122. package/api/Extension.js.map +1 -0
  123. package/api/domain/TenantId.d.ts +3 -0
  124. package/api/domain/TenantId.js +12 -0
  125. package/api/domain/TenantId.js.map +1 -0
  126. package/api/domain/TenantModel.d.ts +11 -0
  127. package/api/domain/TenantModel.js +46 -0
  128. package/api/domain/TenantModel.js.map +1 -0
  129. package/api/domain/TenantModelExtension.d.ts +10 -0
  130. package/api/domain/TenantModelExtension.js +4 -0
  131. package/api/domain/TenantModelExtension.js.map +1 -0
  132. package/api/domain/errors.d.ts +33 -0
  133. package/api/domain/errors.js +63 -0
  134. package/api/domain/errors.js.map +1 -0
  135. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  136. package/api/features/AddCmsPermissions/AddCmsPermissions.js +34 -0
  137. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  138. package/api/features/AddCmsPermissions/feature.d.ts +1 -0
  139. package/api/features/AddCmsPermissions/feature.js +10 -0
  140. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  141. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.d.ts +24 -0
  142. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js +99 -0
  143. package/api/features/CreateAndInstallTenant/CreateAndInstallTenantUseCase.js.map +1 -0
  144. package/api/features/CreateAndInstallTenant/abstractions.d.ts +26 -0
  145. package/api/features/CreateAndInstallTenant/abstractions.js +9 -0
  146. package/api/features/CreateAndInstallTenant/abstractions.js.map +1 -0
  147. package/api/features/CreateAndInstallTenant/feature.d.ts +1 -0
  148. package/api/features/CreateAndInstallTenant/feature.js +11 -0
  149. package/api/features/CreateAndInstallTenant/feature.js.map +1 -0
  150. package/api/features/CreateTenant/CreateTenantRepository.d.ts +15 -0
  151. package/api/features/CreateTenant/CreateTenantRepository.js +48 -0
  152. package/api/features/CreateTenant/CreateTenantRepository.js.map +1 -0
  153. package/api/features/CreateTenant/CreateTenantUseCase.d.ts +14 -0
  154. package/api/features/CreateTenant/CreateTenantUseCase.js +43 -0
  155. package/api/features/CreateTenant/CreateTenantUseCase.js.map +1 -0
  156. package/api/features/CreateTenant/abstractions.d.ts +41 -0
  157. package/api/features/CreateTenant/abstractions.js +11 -0
  158. package/api/features/CreateTenant/abstractions.js.map +1 -0
  159. package/api/features/CreateTenant/feature.d.ts +1 -0
  160. package/api/features/CreateTenant/feature.js +15 -0
  161. package/api/features/CreateTenant/feature.js.map +1 -0
  162. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.d.ts +11 -0
  163. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js +37 -0
  164. package/api/features/DeleteTenantOnEntryDelete/DeleteTenantOnEntryDeleteHandler.js.map +1 -0
  165. package/api/features/DeleteTenantOnEntryDelete/feature.d.ts +1 -0
  166. package/api/features/DeleteTenantOnEntryDelete/feature.js +11 -0
  167. package/api/features/DeleteTenantOnEntryDelete/feature.js.map +1 -0
  168. package/api/features/DisableTenant/DisableTenantUseCase.d.ts +20 -0
  169. package/api/features/DisableTenant/DisableTenantUseCase.js +65 -0
  170. package/api/features/DisableTenant/DisableTenantUseCase.js.map +1 -0
  171. package/api/features/DisableTenant/abstractions.d.ts +19 -0
  172. package/api/features/DisableTenant/abstractions.js +4 -0
  173. package/api/features/DisableTenant/abstractions.js.map +1 -0
  174. package/api/features/DisableTenant/events.d.ts +27 -0
  175. package/api/features/DisableTenant/events.js +18 -0
  176. package/api/features/DisableTenant/events.js.map +1 -0
  177. package/api/features/DisableTenant/feature.d.ts +1 -0
  178. package/api/features/DisableTenant/feature.js +11 -0
  179. package/api/features/DisableTenant/feature.js.map +1 -0
  180. package/api/features/EnableTenant/EnableTenantUseCase.d.ts +20 -0
  181. package/api/features/EnableTenant/EnableTenantUseCase.js +67 -0
  182. package/api/features/EnableTenant/EnableTenantUseCase.js.map +1 -0
  183. package/api/features/EnableTenant/abstractions.d.ts +19 -0
  184. package/api/features/EnableTenant/abstractions.js +4 -0
  185. package/api/features/EnableTenant/abstractions.js.map +1 -0
  186. package/api/features/EnableTenant/events.d.ts +27 -0
  187. package/api/features/EnableTenant/events.js +18 -0
  188. package/api/features/EnableTenant/events.js.map +1 -0
  189. package/api/features/EnableTenant/feature.d.ts +1 -0
  190. package/api/features/EnableTenant/feature.js +11 -0
  191. package/api/features/EnableTenant/feature.js.map +1 -0
  192. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.d.ts +17 -0
  193. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js +35 -0
  194. package/api/features/GetCurrentTenant/GetCurrentTenantUseCase.js.map +1 -0
  195. package/api/features/GetCurrentTenant/abstractions.d.ts +24 -0
  196. package/api/features/GetCurrentTenant/abstractions.js +10 -0
  197. package/api/features/GetCurrentTenant/abstractions.js.map +1 -0
  198. package/api/features/GetCurrentTenant/feature.d.ts +1 -0
  199. package/api/features/GetCurrentTenant/feature.js +11 -0
  200. package/api/features/GetCurrentTenant/feature.js.map +1 -0
  201. package/api/features/GetTenantById/GetTenantByIdRepository.d.ts +17 -0
  202. package/api/features/GetTenantById/GetTenantByIdRepository.js +49 -0
  203. package/api/features/GetTenantById/GetTenantByIdRepository.js.map +1 -0
  204. package/api/features/GetTenantById/GetTenantByIdUseCase.d.ts +12 -0
  205. package/api/features/GetTenantById/GetTenantByIdUseCase.js +27 -0
  206. package/api/features/GetTenantById/GetTenantByIdUseCase.js.map +1 -0
  207. package/api/features/GetTenantById/abstractions.d.ts +38 -0
  208. package/api/features/GetTenantById/abstractions.js +15 -0
  209. package/api/features/GetTenantById/abstractions.js.map +1 -0
  210. package/api/features/GetTenantById/feature.d.ts +1 -0
  211. package/api/features/GetTenantById/feature.js +15 -0
  212. package/api/features/GetTenantById/feature.js.map +1 -0
  213. package/api/features/UpdateTenant/UpdateTenantRepository.d.ts +17 -0
  214. package/api/features/UpdateTenant/UpdateTenantRepository.js +58 -0
  215. package/api/features/UpdateTenant/UpdateTenantRepository.js.map +1 -0
  216. package/api/features/UpdateTenant/UpdateTenantUseCase.d.ts +12 -0
  217. package/api/features/UpdateTenant/UpdateTenantUseCase.js +21 -0
  218. package/api/features/UpdateTenant/UpdateTenantUseCase.js.map +1 -0
  219. package/api/features/UpdateTenant/abstractions.d.ts +39 -0
  220. package/api/features/UpdateTenant/abstractions.js +15 -0
  221. package/api/features/UpdateTenant/abstractions.js.map +1 -0
  222. package/api/features/UpdateTenant/feature.d.ts +1 -0
  223. package/api/features/UpdateTenant/feature.js +15 -0
  224. package/api/features/UpdateTenant/feature.js.map +1 -0
  225. package/api/graphql/CreateTenantSchema.d.ts +14 -0
  226. package/api/graphql/CreateTenantSchema.js +77 -0
  227. package/api/graphql/CreateTenantSchema.js.map +1 -0
  228. package/api/graphql/DisableTenantSchema.d.ts +8 -0
  229. package/api/graphql/DisableTenantSchema.js +35 -0
  230. package/api/graphql/DisableTenantSchema.js.map +1 -0
  231. package/api/graphql/EnableTenantSchema.d.ts +8 -0
  232. package/api/graphql/EnableTenantSchema.js +35 -0
  233. package/api/graphql/EnableTenantSchema.js.map +1 -0
  234. package/api/graphql/GetCurrentTenantSchema.d.ts +8 -0
  235. package/api/graphql/GetCurrentTenantSchema.js +53 -0
  236. package/api/graphql/GetCurrentTenantSchema.js.map +1 -0
  237. package/api/graphql/InstallTenantSchema.d.ts +8 -0
  238. package/api/graphql/InstallTenantSchema.js +50 -0
  239. package/api/graphql/InstallTenantSchema.js.map +1 -0
  240. package/exports/admin/tenancy.d.ts +7 -0
  241. package/exports/admin/tenancy.js +8 -0
  242. package/exports/admin/tenancy.js.map +1 -0
  243. package/exports/api/tenant-manager.d.ts +2 -0
  244. package/exports/api/tenant-manager.js +3 -0
  245. package/exports/api/tenant-manager.js.map +1 -0
  246. package/index.d.ts +1 -0
  247. package/index.js +3 -0
  248. package/index.js.map +1 -0
  249. package/package.json +44 -0
  250. package/shared/Tenant.d.ts +21 -0
  251. package/shared/Tenant.js +26 -0
  252. package/shared/Tenant.js.map +1 -0
  253. package/shared/constants.d.ts +1 -0
  254. package/shared/constants.js +3 -0
  255. package/shared/constants.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","DisableTenantUseCase","DisableTenantRepository","DisableTenantGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\n// UseCase abstraction - only execute method\nexport interface IDisableTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const DisableTenantUseCase =\n createAbstraction<IDisableTenantUseCase>(\"DisableTenantUseCase\");\n\nexport namespace DisableTenantUseCase {\n export type Interface = IDisableTenantUseCase;\n}\n\n// Repository abstraction - delegates to gateway\nexport interface IDisableTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const DisableTenantRepository =\n createAbstraction<IDisableTenantRepository>(\"DisableTenantRepository\");\n\nexport namespace DisableTenantRepository {\n export type Interface = IDisableTenantRepository;\n}\n\n// Gateway abstraction - GraphQL call\nexport interface IDisableTenantGateway {\n disableTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const DisableTenantGateway =\n createAbstraction<IDisableTenantGateway>(\"DisableTenantGateway\");\n\nexport namespace DisableTenantGateway {\n export type Interface = IDisableTenantGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAEzD;;AAKA,OAAO,MAAMC,oBAAoB,GAC7BD,iBAAiB,CAAwB,sBAAsB,CAAC;;AAMpE;;AAKA,OAAO,MAAME,uBAAuB,GAChCF,iBAAiB,CAA2B,yBAAyB,CAAC;;AAM1E;;AAKA,OAAO,MAAMG,oBAAoB,GAC7BH,iBAAiB,CAAwB,sBAAsB,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare const DisableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IDisableTenantUseCase;
3
+ }, []>;
@@ -0,0 +1,20 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { DisableTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { DisableTenantUseCase } from "./DisableTenantUseCase.js";
4
+ import { DisableTenantRepository } from "./DisableTenantRepository.js";
5
+ import { DisableTenantGateway } from "./DisableTenantGateway.js";
6
+ export const DisableTenantFeature = createFeature({
7
+ name: "DisableTenant",
8
+ register(container) {
9
+ container.register(DisableTenantUseCase);
10
+ container.register(DisableTenantRepository).inSingletonScope();
11
+ container.register(DisableTenantGateway).inSingletonScope();
12
+ },
13
+ resolve(container) {
14
+ return {
15
+ useCase: container.resolve(UseCaseAbstraction)
16
+ };
17
+ }
18
+ });
19
+
20
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","DisableTenantUseCase","UseCaseAbstraction","DisableTenantRepository","DisableTenantGateway","DisableTenantFeature","name","register","container","inSingletonScope","resolve","useCase"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { DisableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { DisableTenantUseCase } from \"./DisableTenantUseCase.js\";\nimport { DisableTenantRepository } from \"./DisableTenantRepository.js\";\nimport { DisableTenantGateway } from \"./DisableTenantGateway.js\";\n\nexport const DisableTenantFeature = createFeature({\n name: \"DisableTenant\",\n register(container) {\n container.register(DisableTenantUseCase);\n container.register(DisableTenantRepository).inSingletonScope();\n container.register(DisableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,oBAAoB,IAAIC,kBAAkB;AACnD,SAASD,oBAAoB;AAC7B,SAASE,uBAAuB;AAChC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,oBAAoB,GAAGL,aAAa,CAAC;EAC9CM,IAAI,EAAE,eAAe;EACrBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,oBAAoB,CAAC;IACxCO,SAAS,CAACD,QAAQ,CAACJ,uBAAuB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC9DD,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC/D,CAAC;EACDC,OAAOA,CAACF,SAAS,EAAE;IACf,OAAO;MACHG,OAAO,EAAEH,SAAS,CAACE,OAAO,CAACR,kBAAkB;IACjD,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
@@ -0,0 +1,4 @@
1
+ export { DisableTenantFeature } from "./feature.js";
2
+ export { useDisableTenant } from "./useDisableTenant.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DisableTenantFeature","useDisableTenant"],"sources":["index.ts"],"sourcesContent":["export { DisableTenantFeature } from \"./feature.js\";\nexport { useDisableTenant } from \"./useDisableTenant.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,gBAAgB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import type { TenantEntry } from "../../admin/types.js";
2
+ export declare const useDisableTenant: (tenant: TenantEntry) => {
3
+ disableTenant: () => Promise<void>;
4
+ };
@@ -0,0 +1,27 @@
1
+ import { useCallback } from "react";
2
+ import { useFeature } from "@webiny/app-admin";
3
+ import { DisableTenantFeature } from "./feature.js";
4
+ import { useRecords } from "@webiny/app-aco";
5
+ export const useDisableTenant = tenant => {
6
+ const {
7
+ useCase
8
+ } = useFeature(DisableTenantFeature);
9
+ const {
10
+ updateRecordInCache
11
+ } = useRecords();
12
+ const disableTenant = useCallback(async () => {
13
+ await useCase.execute(tenant.entryId);
14
+ updateRecordInCache({
15
+ ...tenant,
16
+ values: {
17
+ ...tenant.values,
18
+ status: "disabled"
19
+ }
20
+ });
21
+ }, [useCase, tenant]);
22
+ return {
23
+ disableTenant
24
+ };
25
+ };
26
+
27
+ //# sourceMappingURL=useDisableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useFeature","DisableTenantFeature","useRecords","useDisableTenant","tenant","useCase","updateRecordInCache","disableTenant","execute","entryId","values","status"],"sources":["useDisableTenant.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { DisableTenantFeature } from \"./feature.js\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport type { TenantEntry } from \"~/admin/types.js\";\n\nexport const useDisableTenant = (tenant: TenantEntry) => {\n const { useCase } = useFeature(DisableTenantFeature);\n const { updateRecordInCache } = useRecords();\n\n const disableTenant = useCallback(async () => {\n await useCase.execute(tenant.entryId);\n\n updateRecordInCache({\n ...tenant,\n values: {\n ...tenant.values,\n status: \"disabled\"\n }\n });\n }, [useCase, tenant]);\n\n return { disableTenant };\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,oBAAoB;AAC7B,SAASC,UAAU,QAAQ,iBAAiB;AAG5C,OAAO,MAAMC,gBAAgB,GAAIC,MAAmB,IAAK;EACrD,MAAM;IAAEC;EAAQ,CAAC,GAAGL,UAAU,CAACC,oBAAoB,CAAC;EACpD,MAAM;IAAEK;EAAoB,CAAC,GAAGJ,UAAU,CAAC,CAAC;EAE5C,MAAMK,aAAa,GAAGR,WAAW,CAAC,YAAY;IAC1C,MAAMM,OAAO,CAACG,OAAO,CAACJ,MAAM,CAACK,OAAO,CAAC;IAErCH,mBAAmB,CAAC;MAChB,GAAGF,MAAM;MACTM,MAAM,EAAE;QACJ,GAAGN,MAAM,CAACM,MAAM;QAChBC,MAAM,EAAE;MACZ;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACN,OAAO,EAAED,MAAM,CAAC,CAAC;EAErB,OAAO;IAAEG;EAAc,CAAC;AAC5B,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { GraphQLClient } from "@webiny/app/features/graphqlClient/index.js";
2
+ import { EnableTenantGateway as GatewayAbstraction } from "./abstractions.js";
3
+ declare class EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {
4
+ private client;
5
+ constructor(client: GraphQLClient.Interface);
6
+ enableTenant(tenantId: string): Promise<boolean>;
7
+ }
8
+ export declare const EnableTenantGateway: typeof EnableTenantGraphQLGateway & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantGateway>;
10
+ };
11
+ export {};
@@ -0,0 +1,43 @@
1
+ import { GraphQLClient } from "@webiny/app/features/graphqlClient/index.js";
2
+ import { EnableTenantGateway as GatewayAbstraction } from "./abstractions.js";
3
+ const ENABLE_TENANT = /* GraphQL */`
4
+ mutation EnableTenant($tenantId: ID!) {
5
+ tenantManager {
6
+ enableTenant(tenantId: $tenantId) {
7
+ data
8
+ error {
9
+ code
10
+ message
11
+ data
12
+ }
13
+ }
14
+ }
15
+ }
16
+ `;
17
+ class EnableTenantGraphQLGateway {
18
+ constructor(client) {
19
+ this.client = client;
20
+ }
21
+ async enableTenant(tenantId) {
22
+ const response = await this.client.execute({
23
+ query: ENABLE_TENANT,
24
+ variables: {
25
+ tenantId
26
+ }
27
+ });
28
+ const envelope = response.tenantManager.enableTenant;
29
+ if (envelope.error) {
30
+ throw new Error(envelope.error.message);
31
+ }
32
+ if (!envelope.data) {
33
+ throw new Error("Unable to enable tenant");
34
+ }
35
+ return envelope.data;
36
+ }
37
+ }
38
+ export const EnableTenantGateway = GatewayAbstraction.createImplementation({
39
+ implementation: EnableTenantGraphQLGateway,
40
+ dependencies: [GraphQLClient]
41
+ });
42
+
43
+ //# sourceMappingURL=EnableTenantGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GraphQLClient","EnableTenantGateway","GatewayAbstraction","ENABLE_TENANT","EnableTenantGraphQLGateway","constructor","client","enableTenant","tenantId","response","execute","query","variables","envelope","tenantManager","error","Error","message","data","createImplementation","implementation","dependencies"],"sources":["EnableTenantGateway.ts"],"sourcesContent":["import { GraphQLClient } from \"@webiny/app/features/graphqlClient/index.js\";\nimport { EnableTenantGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst ENABLE_TENANT = /* GraphQL */ `\n mutation EnableTenant($tenantId: ID!) {\n tenantManager {\n enableTenant(tenantId: $tenantId) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype EnableTenantResponse = {\n tenantManager: {\n enableTenant:\n | {\n data: boolean;\n error: null;\n }\n | {\n data: null;\n error: {\n code: string;\n message: string;\n data: Record<string, any>;\n };\n };\n };\n};\n\nclass EnableTenantGraphQLGateway implements GatewayAbstraction.Interface {\n constructor(private client: GraphQLClient.Interface) {}\n\n async enableTenant(tenantId: string): Promise<boolean> {\n const response = await this.client.execute<EnableTenantResponse>({\n query: ENABLE_TENANT,\n variables: { tenantId }\n });\n\n const envelope = response.tenantManager.enableTenant;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n if (!envelope.data) {\n throw new Error(\"Unable to enable tenant\");\n }\n\n return envelope.data;\n }\n}\n\nexport const EnableTenantGateway = GatewayAbstraction.createImplementation({\n implementation: EnableTenantGraphQLGateway,\n dependencies: [GraphQLClient]\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,6CAA6C;AAC3E,SAASC,mBAAmB,IAAIC,kBAAkB;AAElD,MAAMC,aAAa,GAAG,aAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAoBD,MAAMC,0BAA0B,CAAyC;EACrEC,WAAWA,CAASC,MAA+B,EAAE;IAAA,KAAjCA,MAA+B,GAA/BA,MAA+B;EAAG;EAEtD,MAAMC,YAAYA,CAACC,QAAgB,EAAoB;IACnD,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACH,MAAM,CAACI,OAAO,CAAuB;MAC7DC,KAAK,EAAER,aAAa;MACpBS,SAAS,EAAE;QAAEJ;MAAS;IAC1B,CAAC,CAAC;IAEF,MAAMK,QAAQ,GAAGJ,QAAQ,CAACK,aAAa,CAACP,YAAY;IACpD,IAAIM,QAAQ,CAACE,KAAK,EAAE;MAChB,MAAM,IAAIC,KAAK,CAACH,QAAQ,CAACE,KAAK,CAACE,OAAO,CAAC;IAC3C;IAEA,IAAI,CAACJ,QAAQ,CAACK,IAAI,EAAE;MAChB,MAAM,IAAIF,KAAK,CAAC,yBAAyB,CAAC;IAC9C;IAEA,OAAOH,QAAQ,CAACK,IAAI;EACxB;AACJ;AAEA,OAAO,MAAMjB,mBAAmB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EACvEC,cAAc,EAAEhB,0BAA0B;EAC1CiB,YAAY,EAAE,CAACrB,aAAa;AAChC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { EnableTenantRepository as RepositoryAbstraction, EnableTenantGateway } from "./abstractions.js";
2
+ declare class EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {
3
+ private gateway;
4
+ constructor(gateway: EnableTenantGateway.Interface);
5
+ execute(tenantId: string): Promise<void>;
6
+ }
7
+ export declare const EnableTenantRepository: typeof EnableTenantRepositoryImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantRepository>;
9
+ };
10
+ export {};
@@ -0,0 +1,15 @@
1
+ import { EnableTenantRepository as RepositoryAbstraction, EnableTenantGateway } from "./abstractions.js";
2
+ class EnableTenantRepositoryImpl {
3
+ constructor(gateway) {
4
+ this.gateway = gateway;
5
+ }
6
+ async execute(tenantId) {
7
+ await this.gateway.enableTenant(tenantId);
8
+ }
9
+ }
10
+ export const EnableTenantRepository = RepositoryAbstraction.createImplementation({
11
+ implementation: EnableTenantRepositoryImpl,
12
+ dependencies: [EnableTenantGateway]
13
+ });
14
+
15
+ //# sourceMappingURL=EnableTenantRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EnableTenantRepository","RepositoryAbstraction","EnableTenantGateway","EnableTenantRepositoryImpl","constructor","gateway","execute","tenantId","enableTenant","createImplementation","implementation","dependencies"],"sources":["EnableTenantRepository.ts"],"sourcesContent":["import {\n EnableTenantRepository as RepositoryAbstraction,\n EnableTenantGateway\n} from \"./abstractions.js\";\n\nclass EnableTenantRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(private gateway: EnableTenantGateway.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n await this.gateway.enableTenant(tenantId);\n }\n}\n\nexport const EnableTenantRepository = RepositoryAbstraction.createImplementation({\n implementation: EnableTenantRepositoryImpl,\n dependencies: [EnableTenantGateway]\n});\n"],"mappings":"AAAA,SACIA,sBAAsB,IAAIC,qBAAqB,EAC/CC,mBAAmB;AAGvB,MAAMC,0BAA0B,CAA4C;EACxEC,WAAWA,CAASC,OAAsC,EAAE;IAAA,KAAxCA,OAAsC,GAAtCA,OAAsC;EAAG;EAE7D,MAAMC,OAAOA,CAACC,QAAgB,EAAiB;IAC3C,MAAM,IAAI,CAACF,OAAO,CAACG,YAAY,CAACD,QAAQ,CAAC;EAC7C;AACJ;AAEA,OAAO,MAAMP,sBAAsB,GAAGC,qBAAqB,CAACQ,oBAAoB,CAAC;EAC7EC,cAAc,EAAEP,0BAA0B;EAC1CQ,YAAY,EAAE,CAACT,mBAAmB;AACtC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { EnableTenantUseCase as UseCaseAbstraction, EnableTenantRepository } from "./abstractions.js";
2
+ declare class EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private repository;
4
+ constructor(repository: EnableTenantRepository.Interface);
5
+ execute(tenantId: string): Promise<void>;
6
+ }
7
+ export declare const EnableTenantUseCase: typeof EnableTenantUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IEnableTenantUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,15 @@
1
+ import { EnableTenantUseCase as UseCaseAbstraction, EnableTenantRepository } from "./abstractions.js";
2
+ class EnableTenantUseCaseImpl {
3
+ constructor(repository) {
4
+ this.repository = repository;
5
+ }
6
+ async execute(tenantId) {
7
+ return this.repository.execute(tenantId);
8
+ }
9
+ }
10
+ export const EnableTenantUseCase = UseCaseAbstraction.createImplementation({
11
+ implementation: EnableTenantUseCaseImpl,
12
+ dependencies: [EnableTenantRepository]
13
+ });
14
+
15
+ //# sourceMappingURL=EnableTenantUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EnableTenantUseCase","UseCaseAbstraction","EnableTenantRepository","EnableTenantUseCaseImpl","constructor","repository","execute","tenantId","createImplementation","implementation","dependencies"],"sources":["EnableTenantUseCase.ts"],"sourcesContent":["import {\n EnableTenantUseCase as UseCaseAbstraction,\n EnableTenantRepository\n} from \"./abstractions.js\";\n\nclass EnableTenantUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: EnableTenantRepository.Interface) {}\n\n async execute(tenantId: string): Promise<void> {\n return this.repository.execute(tenantId);\n }\n}\n\nexport const EnableTenantUseCase = UseCaseAbstraction.createImplementation({\n implementation: EnableTenantUseCaseImpl,\n dependencies: [EnableTenantRepository]\n});\n"],"mappings":"AAAA,SACIA,mBAAmB,IAAIC,kBAAkB,EACzCC,sBAAsB;AAG1B,MAAMC,uBAAuB,CAAyC;EAClEC,WAAWA,CAASC,UAA4C,EAAE;IAAA,KAA9CA,UAA4C,GAA5CA,UAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAACC,QAAgB,EAAiB;IAC3C,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,QAAQ,CAAC;EAC5C;AACJ;AAEA,OAAO,MAAMP,mBAAmB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACvEC,cAAc,EAAEN,uBAAuB;EACvCO,YAAY,EAAE,CAACR,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ export interface IEnableTenantUseCase {
2
+ execute(tenantId: string): Promise<void>;
3
+ }
4
+ export declare const EnableTenantUseCase: import("@webiny/di").Abstraction<IEnableTenantUseCase>;
5
+ export declare namespace EnableTenantUseCase {
6
+ type Interface = IEnableTenantUseCase;
7
+ }
8
+ export interface IEnableTenantRepository {
9
+ execute(tenantId: string): Promise<void>;
10
+ }
11
+ export declare const EnableTenantRepository: import("@webiny/di").Abstraction<IEnableTenantRepository>;
12
+ export declare namespace EnableTenantRepository {
13
+ type Interface = IEnableTenantRepository;
14
+ }
15
+ export interface IEnableTenantGateway {
16
+ enableTenant(tenantId: string): Promise<boolean>;
17
+ }
18
+ export declare const EnableTenantGateway: import("@webiny/di").Abstraction<IEnableTenantGateway>;
19
+ export declare namespace EnableTenantGateway {
20
+ type Interface = IEnableTenantGateway;
21
+ }
@@ -0,0 +1,15 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+
3
+ // UseCase abstraction - only execute method
4
+
5
+ export const EnableTenantUseCase = createAbstraction("EnableTenantUseCase");
6
+
7
+ // Repository abstraction - delegates to gateway
8
+
9
+ export const EnableTenantRepository = createAbstraction("EnableTenantRepository");
10
+
11
+ // Gateway abstraction - GraphQL call
12
+
13
+ export const EnableTenantGateway = createAbstraction("EnableTenantGateway");
14
+
15
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","EnableTenantUseCase","EnableTenantRepository","EnableTenantGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\n// UseCase abstraction - only execute method\nexport interface IEnableTenantUseCase {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantUseCase = createAbstraction<IEnableTenantUseCase>(\"EnableTenantUseCase\");\n\nexport namespace EnableTenantUseCase {\n export type Interface = IEnableTenantUseCase;\n}\n\n// Repository abstraction - delegates to gateway\nexport interface IEnableTenantRepository {\n execute(tenantId: string): Promise<void>;\n}\n\nexport const EnableTenantRepository =\n createAbstraction<IEnableTenantRepository>(\"EnableTenantRepository\");\n\nexport namespace EnableTenantRepository {\n export type Interface = IEnableTenantRepository;\n}\n\n// Gateway abstraction - GraphQL call\nexport interface IEnableTenantGateway {\n enableTenant(tenantId: string): Promise<boolean>;\n}\n\nexport const EnableTenantGateway = createAbstraction<IEnableTenantGateway>(\"EnableTenantGateway\");\n\nexport namespace EnableTenantGateway {\n export type Interface = IEnableTenantGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAEzD;;AAKA,OAAO,MAAMC,mBAAmB,GAAGD,iBAAiB,CAAuB,qBAAqB,CAAC;;AAMjG;;AAKA,OAAO,MAAME,sBAAsB,GAC/BF,iBAAiB,CAA0B,wBAAwB,CAAC;;AAMxE;;AAKA,OAAO,MAAMG,mBAAmB,GAAGH,iBAAiB,CAAuB,qBAAqB,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare const EnableTenantFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ useCase: import("./abstractions.js").IEnableTenantUseCase;
3
+ }, []>;
@@ -0,0 +1,20 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { EnableTenantUseCase as UseCaseAbstraction } from "./abstractions.js";
3
+ import { EnableTenantUseCase } from "./EnableTenantUseCase.js";
4
+ import { EnableTenantRepository } from "./EnableTenantRepository.js";
5
+ import { EnableTenantGateway } from "./EnableTenantGateway.js";
6
+ export const EnableTenantFeature = createFeature({
7
+ name: "EnableTenant",
8
+ register(container) {
9
+ container.register(EnableTenantUseCase);
10
+ container.register(EnableTenantRepository).inSingletonScope();
11
+ container.register(EnableTenantGateway).inSingletonScope();
12
+ },
13
+ resolve(container) {
14
+ return {
15
+ useCase: container.resolve(UseCaseAbstraction)
16
+ };
17
+ }
18
+ });
19
+
20
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","EnableTenantUseCase","UseCaseAbstraction","EnableTenantRepository","EnableTenantGateway","EnableTenantFeature","name","register","container","inSingletonScope","resolve","useCase"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { EnableTenantUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { EnableTenantUseCase } from \"./EnableTenantUseCase.js\";\nimport { EnableTenantRepository } from \"./EnableTenantRepository.js\";\nimport { EnableTenantGateway } from \"./EnableTenantGateway.js\";\n\nexport const EnableTenantFeature = createFeature({\n name: \"EnableTenant\",\n register(container) {\n container.register(EnableTenantUseCase);\n container.register(EnableTenantRepository).inSingletonScope();\n container.register(EnableTenantGateway).inSingletonScope();\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,mBAAmB,IAAIC,kBAAkB;AAClD,SAASD,mBAAmB;AAC5B,SAASE,sBAAsB;AAC/B,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,mBAAmB,GAAGL,aAAa,CAAC;EAC7CM,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,mBAAmB,CAAC;IACvCO,SAAS,CAACD,QAAQ,CAACJ,sBAAsB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IAC7DD,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC9D,CAAC;EACDC,OAAOA,CAACF,SAAS,EAAE;IACf,OAAO;MACHG,OAAO,EAAEH,SAAS,CAACE,OAAO,CAACR,kBAAkB;IACjD,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
@@ -0,0 +1,4 @@
1
+ export { EnableTenantFeature } from "./feature.js";
2
+ export { useEnableTenant } from "./useEnableTenant.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EnableTenantFeature","useEnableTenant"],"sources":["index.ts"],"sourcesContent":["export { EnableTenantFeature } from \"./feature.js\";\nexport { useEnableTenant } from \"./useEnableTenant.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SAASC,eAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const useEnableTenant: () => {
2
+ enableTenant: (tenantId: string) => Promise<void>;
3
+ loading: boolean;
4
+ };
@@ -0,0 +1,23 @@
1
+ import { useState, useCallback } from "react";
2
+ import { useFeature } from "@webiny/app-admin";
3
+ import { EnableTenantFeature } from "./feature.js";
4
+ export const useEnableTenant = () => {
5
+ const {
6
+ useCase
7
+ } = useFeature(EnableTenantFeature);
8
+ const [loading, setLoading] = useState(false);
9
+ const enableTenant = useCallback(async tenantId => {
10
+ setLoading(true);
11
+ try {
12
+ await useCase.execute(tenantId);
13
+ } finally {
14
+ setLoading(false);
15
+ }
16
+ }, [useCase]);
17
+ return {
18
+ enableTenant,
19
+ loading
20
+ };
21
+ };
22
+
23
+ //# sourceMappingURL=useEnableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useCallback","useFeature","EnableTenantFeature","useEnableTenant","useCase","loading","setLoading","enableTenant","tenantId","execute"],"sources":["useEnableTenant.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app-admin\";\nimport { EnableTenantFeature } from \"./feature.js\";\n\nexport const useEnableTenant = () => {\n const { useCase } = useFeature(EnableTenantFeature);\n const [loading, setLoading] = useState(false);\n\n const enableTenant = 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 { enableTenant, loading };\n};\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAC7C,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAQ,CAAC,GAAGH,UAAU,CAACC,mBAAmB,CAAC;EACnD,MAAM,CAACG,OAAO,EAAEC,UAAU,CAAC,GAAGP,QAAQ,CAAC,KAAK,CAAC;EAE7C,MAAMQ,YAAY,GAAGP,WAAW,CAC5B,MAAOQ,QAAgB,IAAK;IACxBF,UAAU,CAAC,IAAI,CAAC;IAEhB,IAAI;MACA,MAAMF,OAAO,CAACK,OAAO,CAACD,QAAQ,CAAC;IACnC,CAAC,SAAS;MACNF,UAAU,CAAC,KAAK,CAAC;IACrB;EACJ,CAAC,EACD,CAACF,OAAO,CACZ,CAAC;EAED,OAAO;IAAEG,YAAY;IAAEF;EAAQ,CAAC;AACpC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const Extension: () => React.JSX.Element;
@@ -0,0 +1,47 @@
1
+ import React from "react";
2
+ import { AdminConfig, HasPermission, RegisterFeature } from "@webiny/app-admin";
3
+ import { useRouter } from "@webiny/app-admin";
4
+ import { Routes } from "@webiny/app-headless-cms";
5
+ import { ReactComponent as TenantIcon } from "@webiny/icons/business.svg";
6
+ import { TenantEntryList } from "./TenantEntryList.js";
7
+ import { CurrentTenantProvider } from "./CurrentTenantProvider.js";
8
+ import { CurrentTenantFeature } from "./CurrentTenant/feature.js";
9
+ import { DisableTenantFeature } from "./DisableTenant/index.js";
10
+ import { EnableTenantFeature } from "./EnableTenant/index.js";
11
+ import { TenantSelector } from "./TenantSelector.js";
12
+ import { IsRootTenant } from "./IsRootTenant.js";
13
+ import { TENANT_MODEL_ID } from "../shared/constants.js";
14
+ import { SecurityPermission } from "./SecurityPermission.js";
15
+ const {
16
+ Menu
17
+ } = AdminConfig;
18
+ export const Extension = () => {
19
+ const {
20
+ getLink
21
+ } = useRouter();
22
+ const link = getLink(Routes.ContentEntries.List, {
23
+ modelId: TENANT_MODEL_ID
24
+ });
25
+ const icon = /*#__PURE__*/React.createElement(Menu.Link.Icon, {
26
+ element: /*#__PURE__*/React.createElement(TenantIcon, null),
27
+ label: "Tenant"
28
+ });
29
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
30
+ feature: CurrentTenantFeature
31
+ }), /*#__PURE__*/React.createElement(CurrentTenantProvider, null), /*#__PURE__*/React.createElement(TenantSelector, null), /*#__PURE__*/React.createElement(TenantEntryList, null), /*#__PURE__*/React.createElement(SecurityPermission, null), /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(IsRootTenant, null, /*#__PURE__*/React.createElement(RegisterFeature, {
32
+ feature: DisableTenantFeature
33
+ }), /*#__PURE__*/React.createElement(RegisterFeature, {
34
+ feature: EnableTenantFeature
35
+ }), /*#__PURE__*/React.createElement(HasPermission, {
36
+ name: "tm.tenant"
37
+ }, /*#__PURE__*/React.createElement(Menu, {
38
+ name: "tenantManager",
39
+ element: /*#__PURE__*/React.createElement(Menu.Link, {
40
+ text: "Tenant Manager",
41
+ icon: icon,
42
+ to: link
43
+ })
44
+ })))));
45
+ };
46
+
47
+ //# sourceMappingURL=Extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AdminConfig","HasPermission","RegisterFeature","useRouter","Routes","ReactComponent","TenantIcon","TenantEntryList","CurrentTenantProvider","CurrentTenantFeature","DisableTenantFeature","EnableTenantFeature","TenantSelector","IsRootTenant","TENANT_MODEL_ID","SecurityPermission","Menu","Extension","getLink","link","ContentEntries","List","modelId","icon","createElement","Link","Icon","element","label","Fragment","feature","name","text","to"],"sources":["Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, HasPermission, RegisterFeature } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\nimport { ReactComponent as TenantIcon } from \"@webiny/icons/business.svg\";\n\nimport { TenantEntryList } from \"./TenantEntryList.js\";\nimport { CurrentTenantProvider } from \"./CurrentTenantProvider.js\";\nimport { CurrentTenantFeature } from \"./CurrentTenant/feature.js\";\nimport { DisableTenantFeature } from \"./DisableTenant/index.js\";\nimport { EnableTenantFeature } from \"./EnableTenant/index.js\";\nimport { TenantSelector } from \"./TenantSelector.js\";\nimport { IsRootTenant } from \"./IsRootTenant.js\";\nimport { TENANT_MODEL_ID } from \"~/shared/constants.js\";\nimport { SecurityPermission } from \"./SecurityPermission.js\";\n\nconst { Menu } = AdminConfig;\n\nexport const Extension = () => {\n const { getLink } = useRouter();\n\n const link = getLink(Routes.ContentEntries.List, { modelId: TENANT_MODEL_ID });\n\n const icon = <Menu.Link.Icon element={<TenantIcon />} label={\"Tenant\"} />;\n\n return (\n <>\n <RegisterFeature feature={CurrentTenantFeature} />\n <CurrentTenantProvider />\n <TenantSelector />\n <TenantEntryList />\n <SecurityPermission />\n <AdminConfig>\n <IsRootTenant>\n <RegisterFeature feature={DisableTenantFeature} />\n <RegisterFeature feature={EnableTenantFeature} />\n <HasPermission name={\"tm.tenant\"}>\n <Menu\n name=\"tenantManager\"\n element={<Menu.Link text=\"Tenant Manager\" icon={icon} to={link} />}\n />\n </HasPermission>\n </IsRootTenant>\n </AdminConfig>\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,EAAEC,aAAa,EAAEC,eAAe,QAAQ,mBAAmB;AAC/E,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,cAAc,IAAIC,UAAU,QAAQ,4BAA4B;AAEzE,SAASC,eAAe;AACxB,SAASC,qBAAqB;AAC9B,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,cAAc;AACvB,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAE3B,MAAM;EAAEC;AAAK,CAAC,GAAGhB,WAAW;AAE5B,OAAO,MAAMiB,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGf,SAAS,CAAC,CAAC;EAE/B,MAAMgB,IAAI,GAAGD,OAAO,CAACd,MAAM,CAACgB,cAAc,CAACC,IAAI,EAAE;IAAEC,OAAO,EAAER;EAAgB,CAAC,CAAC;EAE9E,MAAMS,IAAI,gBAAGxB,KAAA,CAAAyB,aAAA,CAACR,IAAI,CAACS,IAAI,CAACC,IAAI;IAACC,OAAO,eAAE5B,KAAA,CAAAyB,aAAA,CAAClB,UAAU,MAAE,CAAE;IAACsB,KAAK,EAAE;EAAS,CAAE,CAAC;EAEzE,oBACI7B,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA8B,QAAA,qBACI9B,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAErB;EAAqB,CAAE,CAAC,eAClDV,KAAA,CAAAyB,aAAA,CAAChB,qBAAqB,MAAE,CAAC,eACzBT,KAAA,CAAAyB,aAAA,CAACZ,cAAc,MAAE,CAAC,eAClBb,KAAA,CAAAyB,aAAA,CAACjB,eAAe,MAAE,CAAC,eACnBR,KAAA,CAAAyB,aAAA,CAACT,kBAAkB,MAAE,CAAC,eACtBhB,KAAA,CAAAyB,aAAA,CAACxB,WAAW,qBACRD,KAAA,CAAAyB,aAAA,CAACX,YAAY,qBACTd,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAEpB;EAAqB,CAAE,CAAC,eAClDX,KAAA,CAAAyB,aAAA,CAACtB,eAAe;IAAC4B,OAAO,EAAEnB;EAAoB,CAAE,CAAC,eACjDZ,KAAA,CAAAyB,aAAA,CAACvB,aAAa;IAAC8B,IAAI,EAAE;EAAY,gBAC7BhC,KAAA,CAAAyB,aAAA,CAACR,IAAI;IACDe,IAAI,EAAC,eAAe;IACpBJ,OAAO,eAAE5B,KAAA,CAAAyB,aAAA,CAACR,IAAI,CAACS,IAAI;MAACO,IAAI,EAAC,gBAAgB;MAACT,IAAI,EAAEA,IAAK;MAACU,EAAE,EAAEd;IAAK,CAAE;EAAE,CACtE,CACU,CACL,CACL,CACf,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -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,37 @@
1
+ import React, { Fragment } from "react";
2
+ import { useAuthentication } from "@webiny/app-admin";
3
+ import { useCurrentTenant } from "./CurrentTenant/useCurrentTenant.js";
4
+ export const IsTenant = ({
5
+ condition,
6
+ children
7
+ }) => {
8
+ const {
9
+ identity
10
+ } = useAuthentication();
11
+ const {
12
+ tenant
13
+ } = useCurrentTenant();
14
+ if (!identity.isAuthenticated) {
15
+ return null;
16
+ }
17
+ if (!condition(tenant)) {
18
+ return null;
19
+ }
20
+ return /*#__PURE__*/React.createElement(Fragment, null, children);
21
+ };
22
+ export const IsRootTenant = ({
23
+ children
24
+ }) => {
25
+ return /*#__PURE__*/React.createElement(IsTenant, {
26
+ condition: tenant => tenant.id === "root"
27
+ }, children);
28
+ };
29
+ export const IsNotRootTenant = ({
30
+ children
31
+ }) => {
32
+ return /*#__PURE__*/React.createElement(IsTenant, {
33
+ condition: tenant => tenant.id !== "root"
34
+ }, children);
35
+ };
36
+
37
+ //# sourceMappingURL=IsRootTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Fragment","useAuthentication","useCurrentTenant","IsTenant","condition","children","identity","tenant","isAuthenticated","createElement","IsRootTenant","id","IsNotRootTenant"],"sources":["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"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,iBAAiB,QAAQ,mBAAmB;AAErD,SAASC,gBAAgB;AAWzB,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,SAAS;EAAEC;AAAwB,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAS,CAAC,GAAGL,iBAAiB,CAAC,CAAC;EACxC,MAAM;IAAEM;EAAO,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EAErC,IAAI,CAACI,QAAQ,CAACE,eAAe,EAAE;IAC3B,OAAO,IAAI;EACf;EAEA,IAAI,CAACJ,SAAS,CAACG,MAAM,CAAC,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,oBAAOR,KAAA,CAAAU,aAAA,CAACT,QAAQ,QAAEK,QAAmB,CAAC;AAC1C,CAAC;AAED,OAAO,MAAMK,YAAY,GAAGA,CAAC;EAAEL;AAA0B,CAAC,KAAK;EAC3D,oBAAON,KAAA,CAAAU,aAAA,CAACN,QAAQ;IAACC,SAAS,EAAEG,MAAM,IAAIA,MAAM,CAACI,EAAE,KAAK;EAAO,GAAEN,QAAmB,CAAC;AACrF,CAAC;AAED,OAAO,MAAMO,eAAe,GAAGA,CAAC;EAAEP;AAA0B,CAAC,KAAK;EAC9D,oBAAON,KAAA,CAAAU,aAAA,CAACN,QAAQ;IAACC,SAAS,EAAEG,MAAM,IAAIA,MAAM,CAACI,EAAE,KAAK;EAAO,GAAEN,QAAmB,CAAC;AACrF,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const SecurityPermission: () => React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import { AdminConfig } from "@webiny/app-admin";
3
+ import { ReactComponent as PermissionsIcon } from "@webiny/icons/business.svg";
4
+ const {
5
+ Security
6
+ } = AdminConfig;
7
+ export const SecurityPermission = () => {
8
+ return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Security.Permissions, {
9
+ name: "tenant-manager",
10
+ title: "Tenant Manager",
11
+ description: "Manage Tenant Manager permissions.",
12
+ icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
13
+ schema: {
14
+ prefix: "tm",
15
+ fullAccess: true
16
+ }
17
+ }));
18
+ };
19
+
20
+ //# sourceMappingURL=SecurityPermission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","Security","SecurityPermission","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess"],"sources":["SecurityPermission.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/business.svg\";\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={{\n prefix: \"tm\",\n fullAccess: true\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,4BAA4B;AAE9E,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,kBAAkB,GAAGA,CAAA,KAAM;EACpC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,gBAAgB;IACrBC,KAAK,EAAC,gBAAgB;IACtBC,WAAW,EAAC,oCAAoC;IAChDC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,eAAe,MAAE,CAAE;IAC1BS,MAAM,EAAE;MACJC,MAAM,EAAE,IAAI;MACZC,UAAU,EAAE;IAChB;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -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,42 @@
1
+ import React, { useCallback } from "react";
2
+ import { useToast, Text } from "@webiny/admin-ui";
3
+ import { useDialogs } from "@webiny/app-admin";
4
+ import { useDisableTenant } from "../../DisableTenant/index.js";
5
+ export function useDisableTenantDialog({
6
+ record
7
+ }) {
8
+ const toast = useToast();
9
+ const dialogs = useDialogs();
10
+ const {
11
+ disableTenant
12
+ } = useDisableTenant(record);
13
+ const disableEntry = useCallback(() => {
14
+ dialogs.showDialog({
15
+ title: "Are you sure you want to disable this tenant?",
16
+ content: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
17
+ as: "div"
18
+ }, "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.")),
19
+ acceptLabel: "Yes, disable!",
20
+ loadingLabel: "Disabling tenant...",
21
+ async onAccept() {
22
+ try {
23
+ await disableTenant();
24
+ toast.showSuccessToast({
25
+ title: "Tenant was disabled successfully!"
26
+ });
27
+ } catch (e) {
28
+ toast.showWarningToast({
29
+ title: "Tenant could not be disabled!",
30
+ description: e.message,
31
+ duration: Infinity
32
+ });
33
+ }
34
+ }
35
+ });
36
+ }, [record.id]);
37
+ return {
38
+ disableEntry
39
+ };
40
+ }
41
+
42
+ //# sourceMappingURL=useDisableTenantDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useToast","Text","useDialogs","useDisableTenant","useDisableTenantDialog","record","toast","dialogs","disableTenant","disableEntry","showDialog","title","content","createElement","Fragment","as","acceptLabel","loadingLabel","onAccept","showSuccessToast","e","showWarningToast","description","message","duration","Infinity","id"],"sources":["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"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAE1C,SAASC,QAAQ,EAAEC,IAAI,QAAQ,kBAAkB;AACjD,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,gBAAgB;AAMzB,OAAO,SAASC,sBAAsBA,CAAC;EAAEC;AAA+B,CAAC,EAAE;EACvE,MAAMC,KAAK,GAAGN,QAAQ,CAAC,CAAC;EACxB,MAAMO,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAM;IAAEM;EAAc,CAAC,GAAGL,gBAAgB,CAACE,MAAM,CAAC;EAElD,MAAMI,YAAY,GAAGV,WAAW,CAAC,MAAM;IACnCQ,OAAO,CAACG,UAAU,CAAC;MACfC,KAAK,EAAE,+CAA+C;MACtDC,OAAO,eACHd,KAAA,CAAAe,aAAA,CAAAf,KAAA,CAAAgB,QAAA,qBACIhB,KAAA,CAAAe,aAAA,CAACZ,IAAI;QAACc,EAAE,EAAE;MAAM,GAAC,uIAGX,CACR,CACL;MACDC,WAAW,EAAE,eAAe;MAC5BC,YAAY,EAAE,qBAAqB;MACnC,MAAMC,QAAQA,CAAA,EAAG;QACb,IAAI;UACA,MAAMV,aAAa,CAAC,CAAC;UACrBF,KAAK,CAACa,gBAAgB,CAAC;YACnBR,KAAK,EAAE;UACX,CAAC,CAAC;QACN,CAAC,CAAC,OAAOS,CAAC,EAAE;UACRd,KAAK,CAACe,gBAAgB,CAAC;YACnBV,KAAK,EAAE,+BAA+B;YACtCW,WAAW,EAAEF,CAAC,CAACG,OAAO;YACtBC,QAAQ,EAAEC;UACd,CAAC,CAAC;QACN;MACJ;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACpB,MAAM,CAACqB,EAAE,CAAC,CAAC;EAEf,OAAO;IAAEjB;EAAa,CAAC;AAC3B","ignoreList":[]}
@@ -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,19 @@
1
+ import React from "react";
2
+ import { Button } from "@webiny/admin-ui";
3
+ import { useEnableTenant } from "./useEnableTenant.js";
4
+ export const EnableTenant = ({
5
+ tenant
6
+ }) => {
7
+ const {
8
+ enableTenant,
9
+ loading
10
+ } = useEnableTenant(tenant);
11
+ return /*#__PURE__*/React.createElement(Button, {
12
+ variant: "primary",
13
+ onClick: enableTenant,
14
+ disabled: loading,
15
+ text: loading ? "Enabling..." : "Enable"
16
+ });
17
+ };
18
+
19
+ //# sourceMappingURL=EnableTenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Button","useEnableTenant","EnableTenant","tenant","enableTenant","loading","createElement","variant","onClick","disabled","text"],"sources":["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"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,SAASC,eAAe;AAMxB,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAAK;EAC3D,MAAM;IAAEC,YAAY;IAAEC;EAAQ,CAAC,GAAGJ,eAAe,CAACE,MAAM,CAAC;EAEzD,oBACIJ,KAAA,CAAAO,aAAA,CAACN,MAAM;IACHO,OAAO,EAAE,SAAU;IACnBC,OAAO,EAAEJ,YAAa;IACtBK,QAAQ,EAAEJ,OAAQ;IAClBK,IAAI,EAAEL,OAAO,GAAG,aAAa,GAAG;EAAS,CAC5C,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -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
+ };