@webiny/app-admin 6.6.0-alpha.0 → 6.6.0-alpha.2

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 (293) hide show
  1. package/base/Admin.js +17 -2
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.js +17 -2
  4. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
  6. package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
  7. package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
  9. package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
  10. package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
  11. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
  12. package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
  13. package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
  14. package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
  15. package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
  16. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
  17. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
  18. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
  19. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
  20. package/base/Base/FieldRenderers/ObjectRenderer/{MultiValueDynamicZone.js → MultiValueDynamicZone/MultiValueDynamicZone.js} +65 -14
  21. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
  22. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
  23. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
  24. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
  25. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
  26. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
  27. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
  28. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
  29. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
  30. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
  31. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
  32. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
  33. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +1 -1
  34. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +19 -3
  35. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
  36. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +10 -8
  37. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +34 -3
  38. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  39. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
  40. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +11 -5
  41. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
  42. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
  43. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
  44. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
  45. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  46. package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
  47. package/base/Base/Menus.js +4 -4
  48. package/base/Base/Menus.js.map +1 -1
  49. package/base/createRootContainer.js +4 -2
  50. package/base/createRootContainer.js.map +1 -1
  51. package/components/Drawers/DrawerParamsContext.d.ts +6 -0
  52. package/components/Drawers/DrawerParamsContext.js +10 -0
  53. package/components/Drawers/DrawerParamsContext.js.map +1 -0
  54. package/components/Drawers/DrawersContext.d.ts +13 -0
  55. package/components/Drawers/DrawersContext.js +50 -0
  56. package/components/Drawers/DrawersContext.js.map +1 -0
  57. package/components/Drawers/useDrawers.d.ts +2 -0
  58. package/components/Drawers/useDrawers.js +10 -0
  59. package/components/Drawers/useDrawers.js.map +1 -0
  60. package/components/Filters/Filters.js +4 -3
  61. package/components/Filters/Filters.js.map +1 -1
  62. package/components/IconPicker/IconPickerComponent.d.ts +2 -2
  63. package/components/LexicalEditor/LexicalLinkForm.js +3 -0
  64. package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
  65. package/components/ListView/ListViewBulkActions.d.ts +2 -2
  66. package/components/ListView/ListViewContent.d.ts +2 -2
  67. package/components/ListView/ListViewFilters.d.ts +2 -2
  68. package/components/ListView/index.d.ts +6 -6
  69. package/components/OverlayLayout/OverlayLayout.js +4 -2
  70. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  71. package/components/OverlayLayout/components/OverlayContent.js +1 -0
  72. package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
  73. package/components/RolesMultiAutocomplete/index.d.ts +4 -2
  74. package/components/SplitView/SplitView.js +1 -1
  75. package/components/SplitView/SplitView.js.map +1 -1
  76. package/components/Table/components/Table/TableInner.d.ts +2 -2
  77. package/components/TeamAutocomplete/index.d.ts +4 -2
  78. package/components/TeamsMultiAutocomplete/index.d.ts +4 -2
  79. package/components/index.d.ts +0 -1
  80. package/components/index.js +0 -1
  81. package/config/AdminConfig/Breadcrumbs.d.ts +42 -0
  82. package/config/AdminConfig/Breadcrumbs.js +24 -0
  83. package/config/AdminConfig/Breadcrumbs.js.map +1 -0
  84. package/config/AdminConfig/Drawer.d.ts +10 -0
  85. package/config/AdminConfig/Drawer.js +19 -0
  86. package/config/AdminConfig/Drawer.js.map +1 -0
  87. package/config/AdminConfig/LexicalTheme/AllowCustomColors.d.ts +5 -0
  88. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js +18 -0
  89. package/config/AdminConfig/LexicalTheme/AllowCustomColors.js.map +1 -0
  90. package/config/AdminConfig/LexicalTheme.d.ts +2 -0
  91. package/config/AdminConfig/LexicalTheme.js +2 -0
  92. package/config/AdminConfig/LexicalTheme.js.map +1 -1
  93. package/config/AdminConfig.d.ts +8 -0
  94. package/config/AdminConfig.js +8 -1
  95. package/config/AdminConfig.js.map +1 -1
  96. package/exports/admin.d.ts +3 -0
  97. package/exports/admin.js +3 -0
  98. package/features/accessManagement/types.d.ts +3 -3
  99. package/features/aiChat/AiChatGateway.d.ts +30 -0
  100. package/features/aiChat/AiChatGateway.js +41 -0
  101. package/features/aiChat/AiChatGateway.js.map +1 -0
  102. package/features/aiChat/AiChatPresenter.d.ts +32 -0
  103. package/features/aiChat/AiChatPresenter.js +220 -0
  104. package/features/aiChat/AiChatPresenter.js.map +1 -0
  105. package/features/aiChat/abstractions.d.ts +124 -0
  106. package/features/aiChat/abstractions.js +6 -0
  107. package/features/aiChat/abstractions.js.map +1 -0
  108. package/features/aiChat/feature.d.ts +3 -0
  109. package/features/aiChat/feature.js +19 -0
  110. package/features/aiChat/feature.js.map +1 -0
  111. package/features/aiChat/index.d.ts +6 -0
  112. package/features/aiChat/index.js +3 -0
  113. package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
  114. package/features/dateFormatter/DefaultDateFormatter.js +25 -0
  115. package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
  116. package/features/dateFormatter/abstractions.d.ts +13 -0
  117. package/features/dateFormatter/abstractions.js +5 -0
  118. package/features/dateFormatter/abstractions.js.map +1 -0
  119. package/features/dateFormatter/feature.d.ts +3 -0
  120. package/features/dateFormatter/feature.js +17 -0
  121. package/features/dateFormatter/feature.js.map +1 -0
  122. package/features/dateFormatter/index.d.ts +4 -0
  123. package/features/dateFormatter/index.js +4 -0
  124. package/features/dateFormatter/useDateFormatter.d.ts +5 -0
  125. package/features/dateFormatter/useDateFormatter.js +8 -0
  126. package/features/dateFormatter/useDateFormatter.js.map +1 -0
  127. package/features/featureFlags/FeatureFlagsGateway.d.ts +10 -0
  128. package/features/featureFlags/FeatureFlagsGateway.js +40 -0
  129. package/features/featureFlags/FeatureFlagsGateway.js.map +1 -0
  130. package/features/featureFlags/FeatureFlagsService.d.ts +16 -0
  131. package/features/featureFlags/FeatureFlagsService.js +64 -0
  132. package/features/featureFlags/FeatureFlagsService.js.map +1 -0
  133. package/features/featureFlags/abstractions.d.ts +19 -0
  134. package/features/featureFlags/abstractions.js +6 -0
  135. package/features/featureFlags/abstractions.js.map +1 -0
  136. package/features/featureFlags/feature.d.ts +3 -0
  137. package/features/featureFlags/feature.js +19 -0
  138. package/features/featureFlags/feature.js.map +1 -0
  139. package/features/formModel/Field.js +10 -0
  140. package/features/formModel/Field.js.map +1 -1
  141. package/features/formModel/FieldBuilder.js +1 -1
  142. package/features/formModel/FieldBuilder.js.map +1 -1
  143. package/features/formModel/FieldBuilder.test.js +4 -4
  144. package/features/formModel/FieldBuilder.test.js.map +1 -1
  145. package/features/formModel/FormErrors.d.ts +2 -2
  146. package/features/formModel/FormModel.test.js +50 -0
  147. package/features/formModel/FormModel.test.js.map +1 -1
  148. package/features/formModel/FormView.d.ts +8 -4
  149. package/features/formModel/PresenterErrors.d.ts +2 -2
  150. package/features/formModel/demo/FormModelDemo.d.ts +2 -2
  151. package/features/formModel/renderers.d.ts +1 -0
  152. package/features/formModel/renderers.js +1 -0
  153. package/features/notifications/NotificationsRenderer.d.ts +2 -2
  154. package/features/security/AuthenticationContext/ApiStreamClientDecorator.d.ts +22 -0
  155. package/features/security/AuthenticationContext/ApiStreamClientDecorator.js +32 -0
  156. package/features/security/AuthenticationContext/ApiStreamClientDecorator.js.map +1 -0
  157. package/features/security/AuthenticationContext/feature.js +2 -0
  158. package/features/security/AuthenticationContext/feature.js.map +1 -1
  159. package/features/slugify/DefaultSlugify.d.ts +8 -0
  160. package/features/slugify/DefaultSlugify.js +20 -0
  161. package/features/slugify/DefaultSlugify.js.map +1 -0
  162. package/features/slugify/abstractions.d.ts +12 -0
  163. package/features/slugify/abstractions.js +5 -0
  164. package/features/slugify/abstractions.js.map +1 -0
  165. package/features/slugify/feature.d.ts +1 -0
  166. package/features/slugify/feature.js +11 -0
  167. package/features/slugify/feature.js.map +1 -0
  168. package/features/slugify/index.d.ts +3 -0
  169. package/features/slugify/index.js +3 -0
  170. package/features/stringFormatter/DefaultStringFormatter.d.ts +17 -0
  171. package/features/stringFormatter/DefaultStringFormatter.js +19 -0
  172. package/features/stringFormatter/DefaultStringFormatter.js.map +1 -0
  173. package/features/stringFormatter/abstractions.d.ts +11 -0
  174. package/features/stringFormatter/abstractions.js +5 -0
  175. package/features/stringFormatter/abstractions.js.map +1 -0
  176. package/features/stringFormatter/feature.d.ts +3 -0
  177. package/features/stringFormatter/feature.js +19 -0
  178. package/features/stringFormatter/feature.js.map +1 -0
  179. package/features/stringFormatter/index.d.ts +4 -0
  180. package/features/stringFormatter/index.js +4 -0
  181. package/features/stringFormatter/useStringFormatter.d.ts +5 -0
  182. package/features/stringFormatter/useStringFormatter.js +8 -0
  183. package/features/stringFormatter/useStringFormatter.js.map +1 -0
  184. package/features/tenancy/ApiStreamClientDecorator.d.ts +16 -0
  185. package/features/tenancy/ApiStreamClientDecorator.js +30 -0
  186. package/features/tenancy/ApiStreamClientDecorator.js.map +1 -0
  187. package/features/tenancy/feature.js +2 -0
  188. package/features/tenancy/feature.js.map +1 -1
  189. package/features/wcp/ReactLicense.d.ts +6 -0
  190. package/features/wcp/ReactLicense.js +18 -0
  191. package/features/wcp/ReactLicense.js.map +1 -1
  192. package/features/wcp/WcpGateway.js +3 -0
  193. package/features/wcp/WcpGateway.js.map +1 -1
  194. package/hooks/index.d.ts +3 -0
  195. package/hooks/index.js +3 -0
  196. package/hooks/useDrawer.d.ts +9 -0
  197. package/hooks/useDrawer.js +19 -0
  198. package/hooks/useDrawer.js.map +1 -0
  199. package/hooks/useHotkeys.js +5 -3
  200. package/hooks/useHotkeys.js.map +1 -1
  201. package/hooks/useOpenDrawer.d.ts +7 -0
  202. package/hooks/useOpenDrawer.js +18 -0
  203. package/hooks/useOpenDrawer.js.map +1 -0
  204. package/hooks/useSnackbar.js.map +1 -1
  205. package/index.d.ts +18 -1
  206. package/index.js +23 -12
  207. package/modules/AccessManagementExtension.js +46 -22
  208. package/modules/AccessManagementExtension.js.map +1 -1
  209. package/package.json +31 -28
  210. package/presentation/accessManagement/SecurityPermissions.js +3 -3
  211. package/presentation/accessManagement/SecurityPermissions.js.map +1 -1
  212. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +3 -1
  213. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +13 -16
  214. package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -1
  215. package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +2 -2
  216. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +13 -7
  217. package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -1
  218. package/presentation/accessManagement/roles/RolesPresenter.d.ts +3 -1
  219. package/presentation/accessManagement/roles/RolesPresenter.js +11 -14
  220. package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -1
  221. package/presentation/accessManagement/roles/components/RolesView.d.ts +2 -2
  222. package/presentation/accessManagement/roles/components/RolesView.js +10 -6
  223. package/presentation/accessManagement/roles/components/RolesView.js.map +1 -1
  224. package/presentation/accessManagement/teams/TeamsPresenter.d.ts +3 -1
  225. package/presentation/accessManagement/teams/TeamsPresenter.js +11 -14
  226. package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -1
  227. package/presentation/accessManagement/teams/components/TeamsView.d.ts +2 -2
  228. package/presentation/accessManagement/teams/components/TeamsView.js +10 -6
  229. package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -1
  230. package/presentation/commandPalette/CommandPalettePresenter.d.ts +21 -0
  231. package/presentation/commandPalette/CommandPalettePresenter.js +91 -0
  232. package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
  233. package/presentation/commandPalette/abstractions.d.ts +76 -0
  234. package/presentation/commandPalette/abstractions.js +7 -0
  235. package/presentation/commandPalette/abstractions.js.map +1 -0
  236. package/presentation/commandPalette/commands/AskAiCommand.d.ts +25 -0
  237. package/presentation/commandPalette/commands/AskAiCommand.js +33 -0
  238. package/presentation/commandPalette/commands/AskAiCommand.js.map +1 -0
  239. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
  240. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
  241. package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
  242. package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
  243. package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
  244. package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
  245. package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
  246. package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
  247. package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
  248. package/presentation/commandPalette/commands/feature.d.ts +5 -0
  249. package/presentation/commandPalette/commands/feature.js +17 -0
  250. package/presentation/commandPalette/commands/feature.js.map +1 -0
  251. package/presentation/commandPalette/feature.d.ts +3 -0
  252. package/presentation/commandPalette/feature.js +17 -0
  253. package/presentation/commandPalette/feature.js.map +1 -0
  254. package/presentation/commandPalette/index.d.ts +3 -0
  255. package/presentation/commandPalette/index.js +2 -0
  256. package/presentation/featureFlags/FeatureFlagsProvider.d.ts +7 -0
  257. package/presentation/featureFlags/FeatureFlagsProvider.js +22 -0
  258. package/presentation/featureFlags/FeatureFlagsProvider.js.map +1 -0
  259. package/presentation/featureFlags/useFeatureFlags.d.ts +2 -0
  260. package/presentation/featureFlags/useFeatureFlags.js +17 -0
  261. package/presentation/featureFlags/useFeatureFlags.js.map +1 -0
  262. package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
  263. package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js +0 -3
  264. package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js.map +1 -1
  265. package/presentation/listPresenter/FolderAwareDataSource.js +4 -1
  266. package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -1
  267. package/presentation/listPresenter/QueryMatcher.js +2 -2
  268. package/presentation/listPresenter/QueryMatcher.js.map +1 -1
  269. package/presentation/sortable/SortablePresenter.d.ts +23 -0
  270. package/presentation/sortable/SortablePresenter.js +175 -0
  271. package/presentation/sortable/SortablePresenter.js.map +1 -0
  272. package/presentation/sortable/abstractions.d.ts +24 -0
  273. package/presentation/sortable/abstractions.js +5 -0
  274. package/presentation/sortable/abstractions.js.map +1 -0
  275. package/presentation/sortable/feature.d.ts +1 -0
  276. package/presentation/sortable/feature.js +11 -0
  277. package/presentation/sortable/feature.js.map +1 -0
  278. package/presentation/sortable/index.d.ts +2 -0
  279. package/presentation/sortable/index.js +2 -0
  280. package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +2 -2
  281. package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +2 -2
  282. package/presentation/trashBin/components/TrashBinOverlay.d.ts +2 -2
  283. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
  284. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
  285. package/base/Base/Menus/WebinyVersion.d.ts +0 -2
  286. package/base/Base/Menus/WebinyVersion.js +0 -23
  287. package/base/Base/Menus/WebinyVersion.js.map +0 -1
  288. package/base/WebinyVersion.d.ts +0 -2
  289. package/base/WebinyVersion.js +0 -23
  290. package/base/WebinyVersion.js.map +0 -1
  291. package/components/Wcp.d.ts +0 -19
  292. package/components/Wcp.js +0 -37
  293. package/components/Wcp.js.map +0 -1
@@ -0,0 +1,19 @@
1
+ import { useMemo } from "react";
2
+ import { useDrawerParamsContext } from "../components/Drawers/DrawerParamsContext.js";
3
+ function useDrawer(schema) {
4
+ const { params: rawParams, closeDrawer } = useDrawerParamsContext();
5
+ const params = useMemo(()=>{
6
+ if (schema) return schema.parse(rawParams);
7
+ return rawParams;
8
+ }, [
9
+ rawParams,
10
+ schema
11
+ ]);
12
+ return {
13
+ params,
14
+ closeDrawer
15
+ };
16
+ }
17
+ export { useDrawer };
18
+
19
+ //# sourceMappingURL=useDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks/useDrawer.js","sources":["../../src/hooks/useDrawer.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport type { z } from \"zod\";\nimport { useDrawerParamsContext } from \"~/components/Drawers/DrawerParamsContext.js\";\n\nexport function useDrawer<T extends z.ZodTypeAny>(\n schema: T\n): { params: z.infer<T>; closeDrawer: () => void };\nexport function useDrawer(): { params: Record<string, unknown>; closeDrawer: () => void };\nexport function useDrawer(schema?: z.ZodTypeAny) {\n const { params: rawParams, closeDrawer } = useDrawerParamsContext();\n\n const params = useMemo(() => {\n if (schema) {\n return schema.parse(rawParams);\n }\n return rawParams;\n }, [rawParams, schema]);\n\n return { params, closeDrawer };\n}\n"],"names":["useDrawer","schema","rawParams","closeDrawer","useDrawerParamsContext","params","useMemo"],"mappings":";;AAQO,SAASA,UAAUC,MAAqB;IAC3C,MAAM,EAAE,QAAQC,SAAS,EAAEC,WAAW,EAAE,GAAGC;IAE3C,MAAMC,SAASC,QAAQ;QACnB,IAAIL,QACA,OAAOA,OAAO,KAAK,CAACC;QAExB,OAAOA;IACX,GAAG;QAACA;QAAWD;KAAO;IAEtB,OAAO;QAAEI;QAAQF;IAAY;AACjC"}
@@ -3,7 +3,7 @@ import is_hotkey from "is-hotkey";
3
3
  const state = {
4
4
  listenerAttached: false,
5
5
  zIndex: null,
6
- handlers: {}
6
+ handlers: Object.create(null)
7
7
  };
8
8
  function triggerHotkeys(e) {
9
9
  if (null === state.zIndex) return;
@@ -15,7 +15,7 @@ function triggerHotkeys(e) {
15
15
  }
16
16
  function registerZIndex({ zIndex, keys }) {
17
17
  if (null === state.zIndex || state.zIndex < zIndex) state.zIndex = zIndex;
18
- if (!state.handlers[zIndex]) state.handlers[zIndex] = {};
18
+ if (!state.handlers[zIndex]) state.handlers[zIndex] = Object.create(null);
19
19
  if (!keys || 0 === Object.keys(keys).length) return;
20
20
  for(const key in keys){
21
21
  if (key in state.handlers[zIndex]) throw Error(`Shortcut "${key}" already registered on zIndex ${zIndex}.`);
@@ -54,7 +54,9 @@ function useHotkeys(props) {
54
54
  prevPropsRef.current = {
55
55
  ...props
56
56
  };
57
- });
57
+ }, [
58
+ keys
59
+ ]);
58
60
  useEffect(function() {
59
61
  return function() {
60
62
  if (!disabled) unregisterZIndex(props);
@@ -1 +1 @@
1
- {"version":3,"file":"hooks/useHotkeys.js","sources":["../../src/hooks/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport isHotkey from \"is-hotkey\";\n\ntype HookProps = {\n disabled?: boolean;\n zIndex: number;\n keys?: { [key: string]: (e: KeyboardEvent) => void };\n};\n\ntype State = {\n listenerAttached: boolean;\n zIndex: null | number;\n handlers: { [zIndex: number]: { [key: string]: (e: KeyboardEvent) => void } };\n};\n\nconst state: State = {\n listenerAttached: false,\n zIndex: null,\n handlers: {}\n};\n\nfunction triggerHotkeys(e: KeyboardEvent) {\n if (state.zIndex === null) {\n return;\n }\n\n const keys = state.handlers[state.zIndex];\n for (const key in keys) {\n if (isHotkey(key, e)) {\n keys[key](e);\n break;\n }\n }\n}\n\nfunction registerZIndex({ zIndex, keys }: HookProps) {\n if (state.zIndex === null || state.zIndex < zIndex) {\n state.zIndex = zIndex;\n }\n\n if (!state.handlers[zIndex]) {\n state.handlers[zIndex] = {};\n }\n\n if (!keys || Object.keys(keys).length === 0) {\n return;\n }\n\n for (const key in keys) {\n if (key in state.handlers[zIndex]) {\n throw Error(`Shortcut \"${key}\" already registered on zIndex ${zIndex}.`);\n }\n state.handlers[zIndex][key] = keys[key];\n }\n\n if (!state.listenerAttached) {\n document.body.addEventListener(\"keydown\", triggerHotkeys);\n state.listenerAttached = true;\n }\n}\n\nfunction unregisterZIndex({ zIndex, keys }: HookProps) {\n if (state.handlers && state.handlers[zIndex]) {\n for (const key in keys) {\n delete state.handlers[zIndex][key];\n }\n\n if (Object.keys(state.handlers[zIndex]).length === 0) {\n delete state.handlers[zIndex];\n }\n }\n\n if (Object.keys(state.handlers).length > 0) {\n state.zIndex = Math.max(...Object.keys(state.handlers).map(Number));\n } else {\n state.zIndex = null;\n\n if (state.listenerAttached) {\n document.body.removeEventListener(\"keydown\", triggerHotkeys);\n state.listenerAttached = false;\n }\n }\n}\n\nexport function useHotkeys(props: HookProps) {\n const { disabled, zIndex, keys } = props;\n\n const prevPropsRef = useRef<HookProps | undefined>();\n const firstRenderRef = useRef(true);\n\n useEffect(function () {\n if (firstRenderRef.current || prevPropsRef.current?.disabled !== disabled) {\n firstRenderRef.current = false;\n if (disabled) {\n unregisterZIndex(props);\n } else {\n registerZIndex(props);\n }\n }\n\n if (!disabled && typeof keys === \"object\") {\n Object.assign(state.handlers[zIndex], keys);\n }\n prevPropsRef.current = { ...props };\n });\n\n useEffect(function () {\n return function () {\n if (!disabled) {\n unregisterZIndex(props);\n }\n };\n }, []);\n}\n"],"names":["state","triggerHotkeys","e","keys","key","isHotkey","registerZIndex","zIndex","Object","Error","document","unregisterZIndex","Math","Number","useHotkeys","props","disabled","prevPropsRef","useRef","firstRenderRef","useEffect"],"mappings":";;AAeA,MAAMA,QAAe;IACjB,kBAAkB;IAClB,QAAQ;IACR,UAAU,CAAC;AACf;AAEA,SAASC,eAAeC,CAAgB;IACpC,IAAIF,AAAiB,SAAjBA,MAAM,MAAM,EACZ;IAGJ,MAAMG,OAAOH,MAAM,QAAQ,CAACA,MAAM,MAAM,CAAC;IACzC,IAAK,MAAMI,OAAOD,KACd,IAAIE,UAASD,KAAKF,IAAI;QAClBC,IAAI,CAACC,IAAI,CAACF;QACV;IACJ;AAER;AAEA,SAASI,eAAe,EAAEC,MAAM,EAAEJ,IAAI,EAAa;IAC/C,IAAIH,AAAiB,SAAjBA,MAAM,MAAM,IAAaA,MAAM,MAAM,GAAGO,QACxCP,MAAM,MAAM,GAAGO;IAGnB,IAAI,CAACP,MAAM,QAAQ,CAACO,OAAO,EACvBP,MAAM,QAAQ,CAACO,OAAO,GAAG,CAAC;IAG9B,IAAI,CAACJ,QAAQK,AAA6B,MAA7BA,OAAO,IAAI,CAACL,MAAM,MAAM,EACjC;IAGJ,IAAK,MAAMC,OAAOD,KAAM;QACpB,IAAIC,OAAOJ,MAAM,QAAQ,CAACO,OAAO,EAC7B,MAAME,MAAM,CAAC,UAAU,EAAEL,IAAI,+BAA+B,EAAEG,OAAO,CAAC,CAAC;QAE3EP,MAAM,QAAQ,CAACO,OAAO,CAACH,IAAI,GAAGD,IAAI,CAACC,IAAI;IAC3C;IAEA,IAAI,CAACJ,MAAM,gBAAgB,EAAE;QACzBU,SAAS,IAAI,CAAC,gBAAgB,CAAC,WAAWT;QAC1CD,MAAM,gBAAgB,GAAG;IAC7B;AACJ;AAEA,SAASW,iBAAiB,EAAEJ,MAAM,EAAEJ,IAAI,EAAa;IACjD,IAAIH,MAAM,QAAQ,IAAIA,MAAM,QAAQ,CAACO,OAAO,EAAE;QAC1C,IAAK,MAAMH,OAAOD,KACd,OAAOH,MAAM,QAAQ,CAACO,OAAO,CAACH,IAAI;QAGtC,IAAII,AAA+C,MAA/CA,OAAO,IAAI,CAACR,MAAM,QAAQ,CAACO,OAAO,EAAE,MAAM,EAC1C,OAAOP,MAAM,QAAQ,CAACO,OAAO;IAErC;IAEA,IAAIC,OAAO,IAAI,CAACR,MAAM,QAAQ,EAAE,MAAM,GAAG,GACrCA,MAAM,MAAM,GAAGY,KAAK,GAAG,IAAIJ,OAAO,IAAI,CAACR,MAAM,QAAQ,EAAE,GAAG,CAACa;SACxD;QACHb,MAAM,MAAM,GAAG;QAEf,IAAIA,MAAM,gBAAgB,EAAE;YACxBU,SAAS,IAAI,CAAC,mBAAmB,CAAC,WAAWT;YAC7CD,MAAM,gBAAgB,GAAG;QAC7B;IACJ;AACJ;AAEO,SAASc,WAAWC,KAAgB;IACvC,MAAM,EAAEC,QAAQ,EAAET,MAAM,EAAEJ,IAAI,EAAE,GAAGY;IAEnC,MAAME,eAAeC;IACrB,MAAMC,iBAAiBD,OAAO;IAE9BE,UAAU;QACN,IAAID,eAAe,OAAO,IAAIF,aAAa,OAAO,EAAE,aAAaD,UAAU;YACvEG,eAAe,OAAO,GAAG;YACzB,IAAIH,UACAL,iBAAiBI;iBAEjBT,eAAeS;QAEvB;QAEA,IAAI,CAACC,YAAY,AAAgB,YAAhB,OAAOb,MACpBK,OAAO,MAAM,CAACR,MAAM,QAAQ,CAACO,OAAO,EAAEJ;QAE1Cc,aAAa,OAAO,GAAG;YAAE,GAAGF,KAAK;QAAC;IACtC;IAEAK,UAAU;QACN,OAAO;YACH,IAAI,CAACJ,UACDL,iBAAiBI;QAEzB;IACJ,GAAG,EAAE;AACT"}
1
+ {"version":3,"file":"hooks/useHotkeys.js","sources":["../../src/hooks/useHotkeys.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport isHotkey from \"is-hotkey\";\n\ntype HookProps = {\n disabled?: boolean;\n zIndex: number;\n keys?: { [key: string]: (e: KeyboardEvent) => void };\n};\n\ntype State = {\n listenerAttached: boolean;\n zIndex: null | number;\n handlers: { [zIndex: number]: { [key: string]: (e: KeyboardEvent) => void } };\n};\n\nconst state: State = {\n listenerAttached: false,\n zIndex: null,\n handlers: Object.create(null)\n};\n\nfunction triggerHotkeys(e: KeyboardEvent) {\n if (state.zIndex === null) {\n return;\n }\n\n const keys = state.handlers[state.zIndex];\n for (const key in keys) {\n if (isHotkey(key, e)) {\n keys[key](e);\n break;\n }\n }\n}\n\nfunction registerZIndex({ zIndex, keys }: HookProps) {\n if (state.zIndex === null || state.zIndex < zIndex) {\n state.zIndex = zIndex;\n }\n\n if (!state.handlers[zIndex]) {\n state.handlers[zIndex] = Object.create(null);\n }\n\n if (!keys || Object.keys(keys).length === 0) {\n return;\n }\n\n for (const key in keys) {\n if (key in state.handlers[zIndex]) {\n throw Error(`Shortcut \"${key}\" already registered on zIndex ${zIndex}.`);\n }\n state.handlers[zIndex][key] = keys[key];\n }\n\n if (!state.listenerAttached) {\n document.body.addEventListener(\"keydown\", triggerHotkeys);\n state.listenerAttached = true;\n }\n}\n\nfunction unregisterZIndex({ zIndex, keys }: HookProps) {\n if (state.handlers && state.handlers[zIndex]) {\n for (const key in keys) {\n delete state.handlers[zIndex][key];\n }\n\n if (Object.keys(state.handlers[zIndex]).length === 0) {\n delete state.handlers[zIndex];\n }\n }\n\n if (Object.keys(state.handlers).length > 0) {\n state.zIndex = Math.max(...Object.keys(state.handlers).map(Number));\n } else {\n state.zIndex = null;\n\n if (state.listenerAttached) {\n document.body.removeEventListener(\"keydown\", triggerHotkeys);\n state.listenerAttached = false;\n }\n }\n}\n\nexport function useHotkeys(props: HookProps) {\n const { disabled, zIndex, keys } = props;\n\n const prevPropsRef = useRef<HookProps | undefined>();\n const firstRenderRef = useRef(true);\n\n useEffect(\n function () {\n if (firstRenderRef.current || prevPropsRef.current?.disabled !== disabled) {\n firstRenderRef.current = false;\n if (disabled) {\n unregisterZIndex(props);\n } else {\n registerZIndex(props);\n }\n }\n\n if (!disabled && typeof keys === \"object\") {\n Object.assign(state.handlers[zIndex], keys);\n }\n prevPropsRef.current = { ...props };\n },\n [keys]\n );\n\n useEffect(function () {\n return function () {\n if (!disabled) {\n unregisterZIndex(props);\n }\n };\n }, []);\n}\n"],"names":["state","Object","triggerHotkeys","e","keys","key","isHotkey","registerZIndex","zIndex","Error","document","unregisterZIndex","Math","Number","useHotkeys","props","disabled","prevPropsRef","useRef","firstRenderRef","useEffect"],"mappings":";;AAeA,MAAMA,QAAe;IACjB,kBAAkB;IAClB,QAAQ;IACR,UAAUC,OAAO,MAAM,CAAC;AAC5B;AAEA,SAASC,eAAeC,CAAgB;IACpC,IAAIH,AAAiB,SAAjBA,MAAM,MAAM,EACZ;IAGJ,MAAMI,OAAOJ,MAAM,QAAQ,CAACA,MAAM,MAAM,CAAC;IACzC,IAAK,MAAMK,OAAOD,KACd,IAAIE,UAASD,KAAKF,IAAI;QAClBC,IAAI,CAACC,IAAI,CAACF;QACV;IACJ;AAER;AAEA,SAASI,eAAe,EAAEC,MAAM,EAAEJ,IAAI,EAAa;IAC/C,IAAIJ,AAAiB,SAAjBA,MAAM,MAAM,IAAaA,MAAM,MAAM,GAAGQ,QACxCR,MAAM,MAAM,GAAGQ;IAGnB,IAAI,CAACR,MAAM,QAAQ,CAACQ,OAAO,EACvBR,MAAM,QAAQ,CAACQ,OAAO,GAAGP,OAAO,MAAM,CAAC;IAG3C,IAAI,CAACG,QAAQH,AAA6B,MAA7BA,OAAO,IAAI,CAACG,MAAM,MAAM,EACjC;IAGJ,IAAK,MAAMC,OAAOD,KAAM;QACpB,IAAIC,OAAOL,MAAM,QAAQ,CAACQ,OAAO,EAC7B,MAAMC,MAAM,CAAC,UAAU,EAAEJ,IAAI,+BAA+B,EAAEG,OAAO,CAAC,CAAC;QAE3ER,MAAM,QAAQ,CAACQ,OAAO,CAACH,IAAI,GAAGD,IAAI,CAACC,IAAI;IAC3C;IAEA,IAAI,CAACL,MAAM,gBAAgB,EAAE;QACzBU,SAAS,IAAI,CAAC,gBAAgB,CAAC,WAAWR;QAC1CF,MAAM,gBAAgB,GAAG;IAC7B;AACJ;AAEA,SAASW,iBAAiB,EAAEH,MAAM,EAAEJ,IAAI,EAAa;IACjD,IAAIJ,MAAM,QAAQ,IAAIA,MAAM,QAAQ,CAACQ,OAAO,EAAE;QAC1C,IAAK,MAAMH,OAAOD,KACd,OAAOJ,MAAM,QAAQ,CAACQ,OAAO,CAACH,IAAI;QAGtC,IAAIJ,AAA+C,MAA/CA,OAAO,IAAI,CAACD,MAAM,QAAQ,CAACQ,OAAO,EAAE,MAAM,EAC1C,OAAOR,MAAM,QAAQ,CAACQ,OAAO;IAErC;IAEA,IAAIP,OAAO,IAAI,CAACD,MAAM,QAAQ,EAAE,MAAM,GAAG,GACrCA,MAAM,MAAM,GAAGY,KAAK,GAAG,IAAIX,OAAO,IAAI,CAACD,MAAM,QAAQ,EAAE,GAAG,CAACa;SACxD;QACHb,MAAM,MAAM,GAAG;QAEf,IAAIA,MAAM,gBAAgB,EAAE;YACxBU,SAAS,IAAI,CAAC,mBAAmB,CAAC,WAAWR;YAC7CF,MAAM,gBAAgB,GAAG;QAC7B;IACJ;AACJ;AAEO,SAASc,WAAWC,KAAgB;IACvC,MAAM,EAAEC,QAAQ,EAAER,MAAM,EAAEJ,IAAI,EAAE,GAAGW;IAEnC,MAAME,eAAeC;IACrB,MAAMC,iBAAiBD,OAAO;IAE9BE,UACI;QACI,IAAID,eAAe,OAAO,IAAIF,aAAa,OAAO,EAAE,aAAaD,UAAU;YACvEG,eAAe,OAAO,GAAG;YACzB,IAAIH,UACAL,iBAAiBI;iBAEjBR,eAAeQ;QAEvB;QAEA,IAAI,CAACC,YAAY,AAAgB,YAAhB,OAAOZ,MACpBH,OAAO,MAAM,CAACD,MAAM,QAAQ,CAACQ,OAAO,EAAEJ;QAE1Ca,aAAa,OAAO,GAAG;YAAE,GAAGF,KAAK;QAAC;IACtC,GACA;QAACX;KAAK;IAGVgB,UAAU;QACN,OAAO;YACH,IAAI,CAACJ,UACDL,iBAAiBI;QAEzB;IACJ,GAAG,EAAE;AACT"}
@@ -0,0 +1,7 @@
1
+ import type { z } from "zod";
2
+ export declare function useOpenDrawer<T extends z.ZodTypeAny>(schema: T): {
3
+ openDrawer: (name: string, params: z.infer<T>) => void;
4
+ };
5
+ export declare function useOpenDrawer(): {
6
+ openDrawer: (name: string, params?: Record<string, unknown>) => void;
7
+ };
@@ -0,0 +1,18 @@
1
+ import { useCallback } from "react";
2
+ import { useDrawers } from "../components/Drawers/useDrawers.js";
3
+ function useOpenDrawer(schema) {
4
+ const { openNamedDrawer } = useDrawers();
5
+ const openDrawer = useCallback((name, params = {})=>{
6
+ if (schema) schema.parse(params);
7
+ openNamedDrawer(name, params);
8
+ }, [
9
+ openNamedDrawer,
10
+ schema
11
+ ]);
12
+ return {
13
+ openDrawer
14
+ };
15
+ }
16
+ export { useOpenDrawer };
17
+
18
+ //# sourceMappingURL=useOpenDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks/useOpenDrawer.js","sources":["../../src/hooks/useOpenDrawer.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport type { z } from \"zod\";\nimport { useDrawers } from \"~/components/Drawers/useDrawers.js\";\n\nexport function useOpenDrawer<T extends z.ZodTypeAny>(\n schema: T\n): { openDrawer: (name: string, params: z.infer<T>) => void };\nexport function useOpenDrawer(): {\n openDrawer: (name: string, params?: Record<string, unknown>) => void;\n};\nexport function useOpenDrawer(schema?: z.ZodTypeAny) {\n const { openNamedDrawer } = useDrawers();\n\n const openDrawer = useCallback(\n (name: string, params: Record<string, unknown> = {}) => {\n if (schema) {\n schema.parse(params);\n }\n openNamedDrawer(name, params);\n },\n [openNamedDrawer, schema]\n );\n\n return { openDrawer };\n}\n"],"names":["useOpenDrawer","schema","openNamedDrawer","useDrawers","openDrawer","useCallback","name","params"],"mappings":";;AAUO,SAASA,cAAcC,MAAqB;IAC/C,MAAM,EAAEC,eAAe,EAAE,GAAGC;IAE5B,MAAMC,aAAaC,YACf,CAACC,MAAcC,SAAkC,CAAC,CAAC;QAC/C,IAAIN,QACAA,OAAO,KAAK,CAACM;QAEjBL,gBAAgBI,MAAMC;IAC1B,GACA;QAACL;QAAiBD;KAAO;IAG7B,OAAO;QAAEG;IAAW;AACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks/useSnackbar.js","sources":["../../src/hooks/useSnackbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Toast, useToast } from \"@webiny/admin-ui\";\n\ninterface UseSnackbarResponse {\n showSnackbar: (message: React.ReactNode, options?: Record<string, React.ReactNode>) => void;\n showErrorSnackbar: (\n message: React.ReactNode,\n options?: Record<string, React.ReactNode>\n ) => void;\n hideSnackbar: () => void;\n}\n\n/**\n * @deprecated Use the new `useToast` hook from `@webiny/admin-ui` instead.\n */\nexport const useSnackbar = (): UseSnackbarResponse => {\n const { showToast, hideAllToasts } = useToast();\n\n return {\n showSnackbar: (message, options = {}) => {\n showToast({\n title: <Toast.Title text={message} />,\n ...options\n });\n },\n showErrorSnackbar: (message, options = {}) => {\n showToast({\n title: <Toast.Title text={message} />,\n duration: Infinity,\n ...options\n });\n },\n hideSnackbar: () => {\n hideAllToasts();\n }\n };\n};\n"],"names":["useSnackbar","showToast","hideAllToasts","useToast","message","options","Toast","Infinity"],"mappings":";;AAeO,MAAMA,cAAc;IACvB,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAE,GAAGC;IAErC,OAAO;QACH,cAAc,CAACC,SAASC,UAAU,CAAC,CAAC;YAChCJ,UAAU;gBACN,OAAO,WAAP,GAAO,oBAACK,MAAM,KAAK;oBAAC,MAAMF;;gBAC1B,GAAGC,OAAO;YACd;QACJ;QACA,mBAAmB,CAACD,SAASC,UAAU,CAAC,CAAC;YACrCJ,UAAU;gBACN,OAAO,WAAP,GAAO,oBAACK,MAAM,KAAK;oBAAC,MAAMF;;gBAC1B,UAAUG;gBACV,GAAGF,OAAO;YACd;QACJ;QACA,cAAc;YACVH;QACJ;IACJ;AACJ"}
1
+ {"version":3,"file":"hooks/useSnackbar.js","sources":["../../src/hooks/useSnackbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Toast, useToast } from \"@webiny/admin-ui\";\n\ninterface UseSnackbarResponse {\n showSnackbar: (message: React.ReactNode, options?: Record<string, React.ReactNode>) => void;\n showErrorSnackbar: (\n message: React.ReactNode,\n options?: Record<string, React.ReactNode>\n ) => void;\n hideSnackbar: () => void;\n}\n\n/**\n * @deprecated Use the new `useToast` hook from `@webiny/admin-ui` instead.\n */\nexport const useSnackbar = (): UseSnackbarResponse => {\n const { showToast, hideAllToasts } = useToast();\n\n return {\n showSnackbar: (message, options = {}) => {\n showToast({\n title: <Toast.Title text={message} />,\n ...options\n });\n },\n showErrorSnackbar: (message, options = {}) => {\n showToast({\n title: <Toast.Title text={message} />,\n duration: Infinity,\n ...options\n });\n },\n hideSnackbar: () => {\n hideAllToasts();\n }\n };\n};\n"],"names":["useSnackbar","showToast","hideAllToasts","useToast","message","options","Toast","Infinity"],"mappings":";;AAeO,MAAMA,cAAc;IACvB,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAE,GAAGC;IAErC,OAAO;QACH,cAAc,CAACC,SAASC,UAAU,CAAC,CAAC;YAChCJ,UAAU;gBACN,OAAO,WAAP,GAAO,oBAACK,MAAM,KAAK;oBAAC,MAAMF;;gBAC1B,GAAGC,OAAO;YACd;QACJ;QACA,mBAAmB,CAACD,SAASC,UAAU,CAAC,CAAC;YACrCJ,UAAU;gBACN,OAAO,WAAP,GAAO,oBAACK,MAAM,KAAK;oBAAC,MAAMF;;gBAC1B,UAAUG,KAAQ;gBAClB,GAAGF,OAAO;YACd;QACJ;QACA,cAAc;YACVH;QACJ;IACJ;AACJ"}
package/index.d.ts CHANGED
@@ -34,12 +34,28 @@ export { BuildParamsFeature } from "./features/buildParams/feature.js";
34
34
  export { ToolsFeature } from "./features/tools/feature.js";
35
35
  export { Tool, ToolRegistry, ToolPipelineRunner } from "./features/tools/abstractions.js";
36
36
  export type { ITool, IToolRegistry, IToolPipelineRunner } from "./features/tools/abstractions.js";
37
+ export { DateFormatter } from "./features/dateFormatter/abstractions.js";
38
+ export type { IDateFormatter, FormattableDate } from "./features/dateFormatter/abstractions.js";
39
+ export { DateFormatterFeature } from "./features/dateFormatter/feature.js";
40
+ export { useDateFormatter } from "./features/dateFormatter/useDateFormatter.js";
41
+ export { StringFormatter } from "./features/stringFormatter/abstractions.js";
42
+ export type { IStringFormatter } from "./features/stringFormatter/abstractions.js";
43
+ export { StringFormatterFeature } from "./features/stringFormatter/feature.js";
44
+ export { useStringFormatter } from "./features/stringFormatter/useStringFormatter.js";
45
+ export { Slugify } from "./features/slugify/abstractions.js";
46
+ export type { ISlugify } from "./features/slugify/abstractions.js";
37
47
  export * from "./hooks/index.js";
38
- export { useWcp } from "./presentation/wcp/useWcp.js";
48
+ export { useFeatureFlags } from "./presentation/featureFlags/useFeatureFlags.js";
39
49
  export { useTenantContext } from "./presentation/tenancy/useTenantContext.js";
40
50
  export { useIdentity } from "./presentation/security/hooks/useIdentity.js";
41
51
  export { useAuthentication } from "./presentation/security/hooks/useAuthentication.js";
42
52
  export { useBuildParams } from "./presentation/buildParams/useBuildParams.js";
53
+ export { Command, CommandPaletteFeature, CommandPalettePresenter } from "./presentation/commandPalette/index.js";
54
+ export type { ICommand, CommandDetailProps, CommandItemVm, ActiveCommandVm, CommandPaletteViewModel } from "./presentation/commandPalette/index.js";
55
+ export { AiChatGateway, AiChatFeature, AiChatPresenter } from "./features/aiChat/index.js";
56
+ export type { IAiChatGateway, AiChatMessage, AiChatToolCall, AiChatPendingApproval, AiChatDecision, AiChatRequest, AiTurnViewModel, IAiChatPresenter, IAiChatViewModel } from "./features/aiChat/index.js";
57
+ export { Breadcrumb } from "./config/AdminConfig/Breadcrumbs.js";
58
+ export type { BreadcrumbProps, BreadcrumbConfig, BreadcrumbLink } from "./config/AdminConfig/Breadcrumbs.js";
43
59
  export { useSecurity } from "./presentation/security/hooks/useSecurity.js";
44
60
  export * from "@webiny/app/renderApp.js";
45
61
  import "./features/formModel/renderers.js";
@@ -61,6 +77,7 @@ export { useFieldRenderers } from "./features/formModel/useFieldRenderers.js";
61
77
  export { useLayoutRenderers } from "./features/formModel/useLayoutRenderers.js";
62
78
  import "./base/Base/FieldRenderers/InputRenderer.js";
63
79
  import "./base/Base/FieldRenderers/SelectRenderer.js";
80
+ import "./base/Base/FieldRenderers/MultiSelectRenderer.js";
64
81
  import "./base/Base/FieldRenderers/TextareaRenderer.js";
65
82
  import "./base/Base/FieldRenderers/SwitchRenderer.js";
66
83
  import "./base/Base/FieldRenderers/NumberInputRenderer.js";
package/index.js CHANGED
@@ -15,6 +15,16 @@ import "./base/Base/FieldRenderers/FilePickerRenderer.js";
15
15
  import "./base/Base/FieldRenderers/PassthroughRenderer.js";
16
16
  import "./base/Base/FieldRenderers/HiddenRenderer.js";
17
17
  import "./base/Base/FieldRenderers/DateTimeInputsRenderer.js";
18
+ import "./base/Base/FieldRenderers/DateTimeRenderer.js";
19
+ import "./base/Base/FieldRenderers/CheckboxesRenderer.js";
20
+ import "./base/Base/FieldRenderers/RadioButtonsRenderer.js";
21
+ import "./base/Base/FieldRenderers/TagsRenderer.js";
22
+ import "./base/Base/FieldRenderers/TextareasRenderer.js";
23
+ import "./base/Base/FieldRenderers/TextInputsRenderer.js";
24
+ import "./base/Base/FieldRenderers/NumberInputsRenderer.js";
25
+ import "./base/Base/FieldRenderers/NumberInputRenderer.js";
26
+ import "./base/Base/FieldRenderers/SwitchRenderer.js";
27
+ import "./base/Base/FieldRenderers/TextareaRenderer.js";
18
28
  import "./features/formModel/renderers.js";
19
29
  import "./features/formModel/fieldTypes/TextFieldType.js";
20
30
  import "./features/formModel/fieldTypes/NumberFieldType.js";
@@ -24,18 +34,9 @@ import "./features/formModel/fieldTypes/FileFieldType.js";
24
34
  import "./features/formModel/fieldTypes/FileUrlFieldType.js";
25
35
  import "./features/formModel/fieldTypes/ObjectFieldType.js";
26
36
  import "./features/formModel/fieldTypes/LexicalFieldType.js";
27
- import "./base/Base/FieldRenderers/DateTimeRenderer.js";
28
- import "./base/Base/FieldRenderers/CheckboxesRenderer.js";
29
- import "./base/Base/FieldRenderers/RadioButtonsRenderer.js";
30
- import "./base/Base/FieldRenderers/TagsRenderer.js";
31
- import "./base/Base/FieldRenderers/TextareasRenderer.js";
32
- import "./base/Base/FieldRenderers/TextInputsRenderer.js";
33
- import "./base/Base/FieldRenderers/InputRenderer.js";
37
+ import "./base/Base/FieldRenderers/MultiSelectRenderer.js";
34
38
  import "./base/Base/FieldRenderers/SelectRenderer.js";
35
- import "./base/Base/FieldRenderers/TextareaRenderer.js";
36
- import "./base/Base/FieldRenderers/SwitchRenderer.js";
37
- import "./base/Base/FieldRenderers/NumberInputRenderer.js";
38
- import "./base/Base/FieldRenderers/NumberInputsRenderer.js";
39
+ import "./base/Base/FieldRenderers/InputRenderer.js";
39
40
  export * from "@webiny/app";
40
41
  export * from "./base/ui/Tags.js";
41
42
  export * from "./base/ui/Layout.js";
@@ -64,11 +65,21 @@ export { SystemInstallerProvider } from "./presentation/installation/components/
64
65
  export { BuildParamsFeature } from "./features/buildParams/feature.js";
65
66
  export { ToolsFeature } from "./features/tools/feature.js";
66
67
  export { Tool, ToolPipelineRunner, ToolRegistry } from "./features/tools/abstractions.js";
67
- export { useWcp } from "./presentation/wcp/useWcp.js";
68
+ export { DateFormatter } from "./features/dateFormatter/abstractions.js";
69
+ export { DateFormatterFeature } from "./features/dateFormatter/feature.js";
70
+ export { useDateFormatter } from "./features/dateFormatter/useDateFormatter.js";
71
+ export { StringFormatter } from "./features/stringFormatter/abstractions.js";
72
+ export { StringFormatterFeature } from "./features/stringFormatter/feature.js";
73
+ export { useStringFormatter } from "./features/stringFormatter/useStringFormatter.js";
74
+ export { Slugify } from "./features/slugify/abstractions.js";
75
+ export { useFeatureFlags } from "./presentation/featureFlags/useFeatureFlags.js";
68
76
  export { useTenantContext } from "./presentation/tenancy/useTenantContext.js";
69
77
  export { useIdentity } from "./presentation/security/hooks/useIdentity.js";
70
78
  export { useAuthentication } from "./presentation/security/hooks/useAuthentication.js";
71
79
  export { useBuildParams } from "./presentation/buildParams/useBuildParams.js";
80
+ export { Command, CommandPaletteFeature, CommandPalettePresenter } from "./presentation/commandPalette/index.js";
81
+ export { AiChatFeature, AiChatGateway, AiChatPresenter } from "./features/aiChat/index.js";
82
+ export { Breadcrumb } from "./config/AdminConfig/Breadcrumbs.js";
72
83
  export { useSecurity } from "./presentation/security/hooks/useSecurity.js";
73
84
  export { FormModelFactory } from "./features/formModel/abstractions.js";
74
85
  export { FormView, LayoutNodeRenderer, useFormViewRenderers } from "./features/formModel/FormView.js";
@@ -4,7 +4,7 @@ import { RegisterFeature } from "../components/RegisterFeature.js";
4
4
  import { AdminConfig } from "../config/AdminConfig.js";
5
5
  import { AdminLayout } from "../components/AdminLayout.js";
6
6
  import { HasPermission } from "../presentation/security/components/HasPermission.js";
7
- import { Wcp } from "../components/Wcp.js";
7
+ import { useFeatureFlags } from "../presentation/featureFlags/useFeatureFlags.js";
8
8
  import { Permission } from "../features/accessManagement/constants.js";
9
9
  import { SecurityPermissionsFeature } from "../features/accessManagement/permissions/feature.js";
10
10
  import { ListRolesFeature } from "../features/accessManagement/roles/listRoles/feature.js";
@@ -34,6 +34,41 @@ import { TeamsPresenterFeature } from "../presentation/accessManagement/teams/fe
34
34
  import { RolesAutocompletePresenterFeature } from "../presentation/accessManagement/roles/rolesAutocomplete/feature.js";
35
35
  import { TeamsAutocompletePresenterFeature } from "../presentation/accessManagement/teams/teamsAutocomplete/feature.js";
36
36
  const { Menu: Menu, Route: Route } = AdminConfig;
37
+ const AccessManagementBreadcrumbsRoot = ()=>/*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
38
+ name: "access-management",
39
+ label: "Access Management"
40
+ });
41
+ const TeamsRoute = ()=>{
42
+ const featureFlags = useFeatureFlags();
43
+ if (!featureFlags.isEnabled("advancedAccessControlLayer.teams")) return null;
44
+ return /*#__PURE__*/ react.createElement(HasPermission, {
45
+ name: Permission.Teams
46
+ }, /*#__PURE__*/ react.createElement(Route, {
47
+ route: Routes.Teams.List,
48
+ element: /*#__PURE__*/ react.createElement(AdminLayout, {
49
+ title: "Access Management - Teams"
50
+ }, /*#__PURE__*/ react.createElement(AccessManagementBreadcrumbsRoot, null), /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
51
+ name: "teams",
52
+ label: "Teams"
53
+ }), /*#__PURE__*/ react.createElement(TeamsView, null))
54
+ }));
55
+ };
56
+ const TeamsMenuItem = ()=>{
57
+ const featureFlags = useFeatureFlags();
58
+ const router = useRouter();
59
+ if (!featureFlags.isEnabled("advancedAccessControlLayer.teams")) return null;
60
+ return /*#__PURE__*/ react.createElement(HasPermission, {
61
+ name: Permission.Teams
62
+ }, /*#__PURE__*/ react.createElement(Menu, {
63
+ name: "security.teams",
64
+ parent: "settings.security",
65
+ element: /*#__PURE__*/ react.createElement(Menu.Link, {
66
+ text: "Teams",
67
+ to: router.getLink(Routes.Teams.List),
68
+ pinnable: true
69
+ })
70
+ }));
71
+ };
37
72
  const AccessManagementExtension = ()=>{
38
73
  const router = useRouter();
39
74
  return /*#__PURE__*/ react.createElement(Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
@@ -86,21 +121,20 @@ const AccessManagementExtension = ()=>{
86
121
  route: Routes.Roles.List,
87
122
  element: /*#__PURE__*/ react.createElement(AdminLayout, {
88
123
  title: "Access Management - Roles"
89
- }, /*#__PURE__*/ react.createElement(RolesView, null))
90
- })), /*#__PURE__*/ react.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/ react.createElement(HasPermission, {
91
- name: Permission.Teams
92
- }, /*#__PURE__*/ react.createElement(Route, {
93
- route: Routes.Teams.List,
94
- element: /*#__PURE__*/ react.createElement(AdminLayout, {
95
- title: "Access Management - Teams"
96
- }, /*#__PURE__*/ react.createElement(TeamsView, null))
97
- }))), /*#__PURE__*/ react.createElement(HasPermission, {
124
+ }, /*#__PURE__*/ react.createElement(AccessManagementBreadcrumbsRoot, null), /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
125
+ name: "roles",
126
+ label: "Roles"
127
+ }), /*#__PURE__*/ react.createElement(RolesView, null))
128
+ })), /*#__PURE__*/ react.createElement(TeamsRoute, null), /*#__PURE__*/ react.createElement(HasPermission, {
98
129
  name: Permission.ApiKeys
99
130
  }, /*#__PURE__*/ react.createElement(Route, {
100
131
  route: Routes.ApiKeys.List,
101
132
  element: /*#__PURE__*/ react.createElement(AdminLayout, {
102
133
  title: "Access Management - API Keys"
103
- }, /*#__PURE__*/ react.createElement(ApiKeysView, null))
134
+ }, /*#__PURE__*/ react.createElement(AccessManagementBreadcrumbsRoot, null), /*#__PURE__*/ react.createElement(AdminConfig.Breadcrumb, {
135
+ name: "api-keys",
136
+ label: "API Keys"
137
+ }), /*#__PURE__*/ react.createElement(ApiKeysView, null))
104
138
  })), /*#__PURE__*/ react.createElement(HasPermission, {
105
139
  any: [
106
140
  Permission.Roles,
@@ -124,17 +158,7 @@ const AccessManagementExtension = ()=>{
124
158
  to: router.getLink(Routes.Roles.List),
125
159
  pinnable: true
126
160
  })
127
- })), /*#__PURE__*/ react.createElement(Wcp.CanUseTeams, null, /*#__PURE__*/ react.createElement(HasPermission, {
128
- name: Permission.Teams
129
- }, /*#__PURE__*/ react.createElement(Menu, {
130
- name: "security.teams",
131
- parent: "settings.security",
132
- element: /*#__PURE__*/ react.createElement(Menu.Link, {
133
- text: "Teams",
134
- to: router.getLink(Routes.Teams.List),
135
- pinnable: true
136
- })
137
- }))), /*#__PURE__*/ react.createElement(HasPermission, {
161
+ })), /*#__PURE__*/ react.createElement(TeamsMenuItem, null), /*#__PURE__*/ react.createElement(HasPermission, {
138
162
  name: Permission.ApiKeys
139
163
  }, /*#__PURE__*/ react.createElement(Menu, {
140
164
  name: "security.apiKeys",
@@ -1 +1 @@
1
- {"version":3,"file":"modules/AccessManagementExtension.js","sources":["../../src/modules/AccessManagementExtension.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { useRouter } from \"@webiny/app\";\nimport { RegisterFeature } from \"~/components/RegisterFeature.js\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { AdminLayout } from \"~/components/AdminLayout.js\";\nimport { HasPermission } from \"~/presentation/security/components/HasPermission.js\";\nimport { Wcp } from \"~/components/Wcp.js\";\nimport { Permission } from \"~/features/accessManagement/constants.js\";\nimport { SecurityPermissionsFeature } from \"~/features/accessManagement/permissions/feature.js\";\nimport { ListRolesFeature } from \"~/features/accessManagement/roles/listRoles/feature.js\";\nimport { GetRoleFeature } from \"~/features/accessManagement/roles/getRole/feature.js\";\nimport { CreateRoleFeature } from \"~/features/accessManagement/roles/createRole/feature.js\";\nimport { UpdateRoleFeature } from \"~/features/accessManagement/roles/updateRole/feature.js\";\nimport { DeleteRoleFeature } from \"~/features/accessManagement/roles/deleteRole/feature.js\";\nimport { ListTeamsFeature } from \"~/features/accessManagement/teams/listTeams/feature.js\";\nimport { GetTeamFeature } from \"~/features/accessManagement/teams/getTeam/feature.js\";\nimport { CreateTeamFeature } from \"~/features/accessManagement/teams/createTeam/feature.js\";\nimport { UpdateTeamFeature } from \"~/features/accessManagement/teams/updateTeam/feature.js\";\nimport { DeleteTeamFeature } from \"~/features/accessManagement/teams/deleteTeam/feature.js\";\nimport { ListApiKeysFeature } from \"~/features/accessManagement/apiKeys/listApiKeys/feature.js\";\nimport { GetApiKeyFeature } from \"~/features/accessManagement/apiKeys/getApiKey/feature.js\";\nimport { CreateApiKeyFeature } from \"~/features/accessManagement/apiKeys/createApiKey/feature.js\";\nimport { UpdateApiKeyFeature } from \"~/features/accessManagement/apiKeys/updateApiKey/feature.js\";\nimport { DeleteApiKeyFeature } from \"~/features/accessManagement/apiKeys/deleteApiKey/feature.js\";\nimport { ListPresenterFeature } from \"~/presentation/listPresenter/feature.js\";\nimport { RolesPresenterFeature } from \"~/presentation/accessManagement/roles/feature.js\";\nimport { SecurityPermissions } from \"~/presentation/accessManagement/SecurityPermissions.js\";\nimport { Routes } from \"~/presentation/accessManagement/routes.js\";\nimport { RolesView } from \"~/presentation/accessManagement/roles/components/RolesView.js\";\nimport { TeamsView } from \"~/presentation/accessManagement/teams/components/TeamsView.js\";\nimport { ApiKeysView } from \"~/presentation/accessManagement/apiKeys/components/ApiKeysView.js\";\nimport { ApiKeysPresenterFeature } from \"~/presentation/accessManagement/apiKeys/feature.js\";\nimport { TeamsPresenterFeature } from \"~/presentation/accessManagement/teams/feature.js\";\nimport { RolesAutocompletePresenterFeature } from \"~/presentation/accessManagement/roles/rolesAutocomplete/feature.js\";\nimport { TeamsAutocompletePresenterFeature } from \"~/presentation/accessManagement/teams/teamsAutocomplete/feature.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nexport const AccessManagementExtension = () => {\n const router = useRouter();\n\n return (\n <Fragment>\n <RegisterFeature feature={SecurityPermissionsFeature} />\n <RegisterFeature feature={ListPresenterFeature} />\n <RegisterFeature feature={ListRolesFeature} />\n <RegisterFeature feature={GetRoleFeature} />\n <RegisterFeature feature={CreateRoleFeature} />\n <RegisterFeature feature={UpdateRoleFeature} />\n <RegisterFeature feature={DeleteRoleFeature} />\n <RegisterFeature feature={RolesPresenterFeature} />\n <RegisterFeature feature={RolesAutocompletePresenterFeature} />\n <RegisterFeature feature={ListTeamsFeature} />\n <RegisterFeature feature={GetTeamFeature} />\n <RegisterFeature feature={CreateTeamFeature} />\n <RegisterFeature feature={UpdateTeamFeature} />\n <RegisterFeature feature={DeleteTeamFeature} />\n <RegisterFeature feature={TeamsPresenterFeature} />\n <RegisterFeature feature={TeamsAutocompletePresenterFeature} />\n <RegisterFeature feature={ListApiKeysFeature} />\n <RegisterFeature feature={GetApiKeyFeature} />\n <RegisterFeature feature={CreateApiKeyFeature} />\n <RegisterFeature feature={UpdateApiKeyFeature} />\n <RegisterFeature feature={DeleteApiKeyFeature} />\n <RegisterFeature feature={ApiKeysPresenterFeature} />\n <SecurityPermissions />\n <AdminConfig>\n <HasPermission name={Permission.Roles}>\n <Route\n route={Routes.Roles.List}\n element={\n <AdminLayout title={\"Access Management - Roles\"}>\n <RolesView />\n </AdminLayout>\n }\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Route\n route={Routes.Teams.List}\n element={\n <AdminLayout title={\"Access Management - Teams\"}>\n <TeamsView />\n </AdminLayout>\n }\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n <HasPermission name={Permission.ApiKeys}>\n <Route\n route={Routes.ApiKeys.List}\n element={\n <AdminLayout title={\"Access Management - API Keys\"}>\n <ApiKeysView />\n </AdminLayout>\n }\n />\n </HasPermission>\n\n <HasPermission any={[Permission.Roles, Permission.ApiKeys, Permission.Teams]}>\n <Menu\n name={\"settings.security\"}\n parent={\"settings\"}\n element={<Menu.Group text={\"Access Management\"} collapsible={false} />}\n />\n </HasPermission>\n <HasPermission name={Permission.Roles}>\n <Menu\n name={\"security.roles\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Roles\"}\n to={router.getLink(Routes.Roles.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n <Wcp.CanUseTeams>\n <HasPermission name={Permission.Teams}>\n <Menu\n name={\"security.teams\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Teams\"}\n to={router.getLink(Routes.Teams.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n </Wcp.CanUseTeams>\n <HasPermission name={Permission.ApiKeys}>\n <Menu\n name={\"security.apiKeys\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"API Keys\"}\n to={router.getLink(Routes.ApiKeys.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n </AdminConfig>\n </Fragment>\n );\n};\n"],"names":["Menu","Route","AdminConfig","AccessManagementExtension","router","useRouter","Fragment","RegisterFeature","SecurityPermissionsFeature","ListPresenterFeature","ListRolesFeature","GetRoleFeature","CreateRoleFeature","UpdateRoleFeature","DeleteRoleFeature","RolesPresenterFeature","RolesAutocompletePresenterFeature","ListTeamsFeature","GetTeamFeature","CreateTeamFeature","UpdateTeamFeature","DeleteTeamFeature","TeamsPresenterFeature","TeamsAutocompletePresenterFeature","ListApiKeysFeature","GetApiKeyFeature","CreateApiKeyFeature","UpdateApiKeyFeature","DeleteApiKeyFeature","ApiKeysPresenterFeature","SecurityPermissions","HasPermission","Permission","Routes","AdminLayout","RolesView","Wcp","TeamsView","ApiKeysView"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAEjB,MAAMC,4BAA4B;IACrC,MAAMC,SAASC;IAEf,OAAO,WAAP,GACI,oBAACC,UAAQA,MAAAA,WAAAA,GACL,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACV,iBAAeA;QAAC,SAASW;sBAC1B,oBAACX,iBAAeA;QAAC,SAASY;sBAC1B,oBAACZ,iBAAeA;QAAC,SAASa;sBAC1B,oBAACb,iBAAeA;QAAC,SAASc;sBAC1B,oBAACd,iBAAeA;QAAC,SAASe;sBAC1B,oBAACf,iBAAeA;QAAC,SAASgB;sBAC1B,oBAAChB,iBAAeA;QAAC,SAASiB;sBAC1B,oBAACjB,iBAAeA;QAAC,SAASkB;sBAC1B,oBAAClB,iBAAeA;QAAC,SAASmB;sBAC1B,oBAACnB,iBAAeA;QAAC,SAASoB;sBAC1B,oBAACpB,iBAAeA;QAAC,SAASqB;sBAC1B,oBAACrB,iBAAeA;QAAC,SAASsB;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAAC5B,aAAWA,MAAAA,WAAAA,GACR,oBAAC6B,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAAC/B,OAAKA;QACF,OAAOgC,OAAO,KAAK,CAAC,IAAI;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACC,WAASA;uBAK1B,oBAACC,IAAI,WAAW,sBACZ,oBAACL,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAAC/B,OAAKA;QACF,OAAOgC,OAAO,KAAK,CAAC,IAAI;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACG,WAASA;wBAM9B,oBAACN,eAAaA;QAAC,MAAMC,WAAW,OAAO;qBACnC,oBAAC/B,OAAKA;QACF,OAAOgC,OAAO,OAAO,CAAC,IAAI;QAC1B,uBACI,oBAACC,aAAWA;YAAC,OAAO;yBAChB,oBAACI,aAAWA;uBAM5B,oBAACP,eAAaA;QAAC,KAAK;YAACC,WAAW,KAAK;YAAEA,WAAW,OAAO;YAAEA,WAAW,KAAK;SAAC;qBACxE,oBAAChC,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBAAS,oBAACA,KAAK,KAAK;YAAC,MAAM;YAAqB,aAAa;;uBAGrE,oBAAC+B,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAAChC,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAAC6B,OAAO,KAAK,CAAC,IAAI;YACpC,UAAU;;uBAK1B,oBAACG,IAAI,WAAW,sBACZ,oBAACL,eAAaA;QAAC,MAAMC,WAAW,KAAK;qBACjC,oBAAChC,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAAC6B,OAAO,KAAK,CAAC,IAAI;YACpC,UAAU;;wBAM9B,oBAACF,eAAaA;QAAC,MAAMC,WAAW,OAAO;qBACnC,oBAAChC,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAM;YACN,IAAII,OAAO,OAAO,CAAC6B,OAAO,OAAO,CAAC,IAAI;YACtC,UAAU;;;AAQ1C"}
1
+ {"version":3,"file":"modules/AccessManagementExtension.js","sources":["../../src/modules/AccessManagementExtension.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport { useRouter } from \"@webiny/app\";\nimport { RegisterFeature } from \"~/components/RegisterFeature.js\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { AdminLayout } from \"~/components/AdminLayout.js\";\nimport { HasPermission } from \"~/presentation/security/components/HasPermission.js\";\nimport { useFeatureFlags } from \"~/presentation/featureFlags/useFeatureFlags.js\";\nimport { Permission } from \"~/features/accessManagement/constants.js\";\nimport { SecurityPermissionsFeature } from \"~/features/accessManagement/permissions/feature.js\";\nimport { ListRolesFeature } from \"~/features/accessManagement/roles/listRoles/feature.js\";\nimport { GetRoleFeature } from \"~/features/accessManagement/roles/getRole/feature.js\";\nimport { CreateRoleFeature } from \"~/features/accessManagement/roles/createRole/feature.js\";\nimport { UpdateRoleFeature } from \"~/features/accessManagement/roles/updateRole/feature.js\";\nimport { DeleteRoleFeature } from \"~/features/accessManagement/roles/deleteRole/feature.js\";\nimport { ListTeamsFeature } from \"~/features/accessManagement/teams/listTeams/feature.js\";\nimport { GetTeamFeature } from \"~/features/accessManagement/teams/getTeam/feature.js\";\nimport { CreateTeamFeature } from \"~/features/accessManagement/teams/createTeam/feature.js\";\nimport { UpdateTeamFeature } from \"~/features/accessManagement/teams/updateTeam/feature.js\";\nimport { DeleteTeamFeature } from \"~/features/accessManagement/teams/deleteTeam/feature.js\";\nimport { ListApiKeysFeature } from \"~/features/accessManagement/apiKeys/listApiKeys/feature.js\";\nimport { GetApiKeyFeature } from \"~/features/accessManagement/apiKeys/getApiKey/feature.js\";\nimport { CreateApiKeyFeature } from \"~/features/accessManagement/apiKeys/createApiKey/feature.js\";\nimport { UpdateApiKeyFeature } from \"~/features/accessManagement/apiKeys/updateApiKey/feature.js\";\nimport { DeleteApiKeyFeature } from \"~/features/accessManagement/apiKeys/deleteApiKey/feature.js\";\nimport { ListPresenterFeature } from \"~/presentation/listPresenter/feature.js\";\nimport { RolesPresenterFeature } from \"~/presentation/accessManagement/roles/feature.js\";\nimport { SecurityPermissions } from \"~/presentation/accessManagement/SecurityPermissions.js\";\nimport { Routes } from \"~/presentation/accessManagement/routes.js\";\nimport { RolesView } from \"~/presentation/accessManagement/roles/components/RolesView.js\";\nimport { TeamsView } from \"~/presentation/accessManagement/teams/components/TeamsView.js\";\nimport { ApiKeysView } from \"~/presentation/accessManagement/apiKeys/components/ApiKeysView.js\";\nimport { ApiKeysPresenterFeature } from \"~/presentation/accessManagement/apiKeys/feature.js\";\nimport { TeamsPresenterFeature } from \"~/presentation/accessManagement/teams/feature.js\";\nimport { RolesAutocompletePresenterFeature } from \"~/presentation/accessManagement/roles/rolesAutocomplete/feature.js\";\nimport { TeamsAutocompletePresenterFeature } from \"~/presentation/accessManagement/teams/teamsAutocomplete/feature.js\";\n\nconst { Menu, Route } = AdminConfig;\n\n// Shared leading breadcrumb for all access-management routes.\nconst AccessManagementBreadcrumbsRoot = () => (\n <AdminConfig.Breadcrumb name={\"access-management\"} label={\"Access Management\"} />\n);\n\nconst TeamsRoute = () => {\n const featureFlags = useFeatureFlags();\n if (!featureFlags.isEnabled(\"advancedAccessControlLayer.teams\")) {\n return null;\n }\n return (\n <HasPermission name={Permission.Teams}>\n <Route\n route={Routes.Teams.List}\n element={\n <AdminLayout title={\"Access Management - Teams\"}>\n <AccessManagementBreadcrumbsRoot />\n <AdminConfig.Breadcrumb name={\"teams\"} label={\"Teams\"} />\n <TeamsView />\n </AdminLayout>\n }\n />\n </HasPermission>\n );\n};\n\nconst TeamsMenuItem = () => {\n const featureFlags = useFeatureFlags();\n const router = useRouter();\n if (!featureFlags.isEnabled(\"advancedAccessControlLayer.teams\")) {\n return null;\n }\n return (\n <HasPermission name={Permission.Teams}>\n <Menu\n name={\"security.teams\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Teams\"}\n to={router.getLink(Routes.Teams.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n );\n};\n\nexport const AccessManagementExtension = () => {\n const router = useRouter();\n\n return (\n <Fragment>\n <RegisterFeature feature={SecurityPermissionsFeature} />\n <RegisterFeature feature={ListPresenterFeature} />\n <RegisterFeature feature={ListRolesFeature} />\n <RegisterFeature feature={GetRoleFeature} />\n <RegisterFeature feature={CreateRoleFeature} />\n <RegisterFeature feature={UpdateRoleFeature} />\n <RegisterFeature feature={DeleteRoleFeature} />\n <RegisterFeature feature={RolesPresenterFeature} />\n <RegisterFeature feature={RolesAutocompletePresenterFeature} />\n <RegisterFeature feature={ListTeamsFeature} />\n <RegisterFeature feature={GetTeamFeature} />\n <RegisterFeature feature={CreateTeamFeature} />\n <RegisterFeature feature={UpdateTeamFeature} />\n <RegisterFeature feature={DeleteTeamFeature} />\n <RegisterFeature feature={TeamsPresenterFeature} />\n <RegisterFeature feature={TeamsAutocompletePresenterFeature} />\n <RegisterFeature feature={ListApiKeysFeature} />\n <RegisterFeature feature={GetApiKeyFeature} />\n <RegisterFeature feature={CreateApiKeyFeature} />\n <RegisterFeature feature={UpdateApiKeyFeature} />\n <RegisterFeature feature={DeleteApiKeyFeature} />\n <RegisterFeature feature={ApiKeysPresenterFeature} />\n <SecurityPermissions />\n <AdminConfig>\n <HasPermission name={Permission.Roles}>\n <Route\n route={Routes.Roles.List}\n element={\n <AdminLayout title={\"Access Management - Roles\"}>\n <AccessManagementBreadcrumbsRoot />\n <AdminConfig.Breadcrumb name={\"roles\"} label={\"Roles\"} />\n <RolesView />\n </AdminLayout>\n }\n />\n </HasPermission>\n <TeamsRoute />\n <HasPermission name={Permission.ApiKeys}>\n <Route\n route={Routes.ApiKeys.List}\n element={\n <AdminLayout title={\"Access Management - API Keys\"}>\n <AccessManagementBreadcrumbsRoot />\n <AdminConfig.Breadcrumb name={\"api-keys\"} label={\"API Keys\"} />\n <ApiKeysView />\n </AdminLayout>\n }\n />\n </HasPermission>\n\n <HasPermission any={[Permission.Roles, Permission.ApiKeys, Permission.Teams]}>\n <Menu\n name={\"settings.security\"}\n parent={\"settings\"}\n element={<Menu.Group text={\"Access Management\"} collapsible={false} />}\n />\n </HasPermission>\n <HasPermission name={Permission.Roles}>\n <Menu\n name={\"security.roles\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"Roles\"}\n to={router.getLink(Routes.Roles.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n <TeamsMenuItem />\n <HasPermission name={Permission.ApiKeys}>\n <Menu\n name={\"security.apiKeys\"}\n parent={\"settings.security\"}\n element={\n <Menu.Link\n text={\"API Keys\"}\n to={router.getLink(Routes.ApiKeys.List)}\n pinnable={true}\n />\n }\n />\n </HasPermission>\n </AdminConfig>\n </Fragment>\n );\n};\n"],"names":["Menu","Route","AdminConfig","AccessManagementBreadcrumbsRoot","TeamsRoute","featureFlags","useFeatureFlags","HasPermission","Permission","Routes","AdminLayout","TeamsView","TeamsMenuItem","router","useRouter","AccessManagementExtension","Fragment","RegisterFeature","SecurityPermissionsFeature","ListPresenterFeature","ListRolesFeature","GetRoleFeature","CreateRoleFeature","UpdateRoleFeature","DeleteRoleFeature","RolesPresenterFeature","RolesAutocompletePresenterFeature","ListTeamsFeature","GetTeamFeature","CreateTeamFeature","UpdateTeamFeature","DeleteTeamFeature","TeamsPresenterFeature","TeamsAutocompletePresenterFeature","ListApiKeysFeature","GetApiKeyFeature","CreateApiKeyFeature","UpdateApiKeyFeature","DeleteApiKeyFeature","ApiKeysPresenterFeature","SecurityPermissions","RolesView","ApiKeysView"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-admin",
3
- "version": "6.6.0-alpha.0",
3
+ "version": "6.6.0-alpha.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -14,48 +14,51 @@
14
14
  "author": "Pavel Denisjuk",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
+ "@atlaskit/pragmatic-drag-and-drop": "3.0.0",
18
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "2.1.0",
17
19
  "@emotion/css": "11.13.5",
18
20
  "@emotion/react": "11.14.0",
19
21
  "@emotion/styled": "11.14.1",
20
22
  "@fortawesome/fontawesome-svg-core": "7.3.1",
21
23
  "@fortawesome/react-fontawesome": "3.5.0",
22
- "@iconify/json": "2.2.506",
23
- "@lexical/utils": "0.48.0",
24
+ "@iconify/json": "2.2.518",
25
+ "@lexical/utils": "0.49.0",
24
26
  "@types/react": "18.3.31",
25
- "@webiny/admin-ui": "6.6.0-alpha.0",
26
- "@webiny/app": "6.6.0-alpha.0",
27
- "@webiny/di": "1.0.2",
28
- "@webiny/feature": "6.6.0-alpha.0",
29
- "@webiny/form": "6.6.0-alpha.0",
30
- "@webiny/icons": "6.6.0-alpha.0",
31
- "@webiny/lexical-converter": "6.6.0-alpha.0",
32
- "@webiny/lexical-editor": "6.6.0-alpha.0",
33
- "@webiny/lexical-nodes": "6.6.0-alpha.0",
34
- "@webiny/lexical-theme": "6.6.0-alpha.0",
35
- "@webiny/plugins": "6.6.0-alpha.0",
36
- "@webiny/react-composition": "6.6.0-alpha.0",
37
- "@webiny/react-properties": "6.6.0-alpha.0",
38
- "@webiny/sdk": "6.6.0-alpha.0",
39
- "@webiny/telemetry": "6.6.0-alpha.0",
40
- "@webiny/utils": "6.6.0-alpha.0",
41
- "@webiny/validation": "6.6.0-alpha.0",
42
- "@webiny/wcp": "6.6.0-alpha.0",
27
+ "@webiny/admin-ui": "6.6.0-alpha.2",
28
+ "@webiny/app": "6.6.0-alpha.2",
29
+ "@webiny/di": "1.1.0",
30
+ "@webiny/feature": "6.6.0-alpha.2",
31
+ "@webiny/feature-flags": "6.6.0-alpha.2",
32
+ "@webiny/form": "6.6.0-alpha.2",
33
+ "@webiny/icons": "6.6.0-alpha.2",
34
+ "@webiny/lexical-converter": "6.6.0-alpha.2",
35
+ "@webiny/lexical-editor": "6.6.0-alpha.2",
36
+ "@webiny/lexical-nodes": "6.6.0-alpha.2",
37
+ "@webiny/lexical-theme": "6.6.0-alpha.2",
38
+ "@webiny/plugins": "6.6.0-alpha.2",
39
+ "@webiny/react-composition": "6.6.0-alpha.2",
40
+ "@webiny/react-properties": "6.6.0-alpha.2",
41
+ "@webiny/sdk": "6.6.0-alpha.2",
42
+ "@webiny/telemetry": "6.6.0-alpha.2",
43
+ "@webiny/utils": "6.6.0-alpha.2",
44
+ "@webiny/validation": "6.6.0-alpha.2",
45
+ "@webiny/wcp": "6.6.0-alpha.2",
43
46
  "bytes": "3.1.2",
44
47
  "classnames": "2.5.1",
45
48
  "graphql": "16.14.2",
46
49
  "history": "5.3.0",
47
50
  "is-hotkey": "0.2.0",
48
- "lexical": "0.48.0",
51
+ "lexical": "0.49.0",
49
52
  "lodash": "4.18.1",
50
- "markdown-to-jsx": "9.9.0",
53
+ "markdown-to-jsx": "9.10.2",
51
54
  "mime": "4.1.0",
52
55
  "minimatch": "10.2.6",
53
- "mobx": "6.16.1",
54
- "mobx-react-lite": "4.1.1",
56
+ "mobx": "7.0.3",
57
+ "mobx-react-lite": "5.0.3",
55
58
  "monaco-editor": "0.53.0",
56
59
  "react": "18.3.1",
57
60
  "react-dom": "18.3.1",
58
- "react-resizable-panels": "4.12.2",
61
+ "react-resizable-panels": "4.12.3",
59
62
  "react-transition-group": "4.4.5",
60
63
  "react-virtualized": "9.22.6",
61
64
  "reset-css": "5.0.2",
@@ -73,10 +76,10 @@
73
76
  "@types/react-transition-group": "4.4.12",
74
77
  "@types/store": "2.0.5",
75
78
  "@types/tinycolor2": "1.4.6",
76
- "@webiny/build-tools": "6.6.0-alpha.0",
79
+ "@webiny/build-tools": "6.6.0-alpha.2",
77
80
  "rimraf": "6.1.3",
78
81
  "typescript": "7.0.2",
79
- "vitest": "4.1.10"
82
+ "vitest": "4.1.11"
80
83
  },
81
84
  "publishConfig": {
82
85
  "access": "public"
@@ -1,11 +1,11 @@
1
1
  import react, { useMemo } from "react";
2
2
  import { AdminConfig } from "../../config/AdminConfig.js";
3
- import { useWcp } from "../wcp/useWcp.js";
3
+ import { useFeatureFlags } from "../featureFlags/useFeatureFlags.js";
4
4
  import { ReactComponent } from "@webiny/icons/security.svg";
5
5
  const { Security: Security } = AdminConfig;
6
6
  const SecurityPermissions = ()=>{
7
- const wcp = useWcp();
8
- const teams = wcp.canUseTeams();
7
+ const featureFlags = useFeatureFlags();
8
+ const teams = featureFlags.isEnabled("advancedAccessControlLayer.teams");
9
9
  const schema = useMemo(()=>{
10
10
  const entities = [
11
11
  {
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/accessManagement/SecurityPermissions.js","sources":["../../../src/presentation/accessManagement/SecurityPermissions.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { useWcp } from \"~/presentation/wcp/useWcp.js\";\nimport type { EntityDefinition } from \"~/permissions/types.js\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/security.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n const wcp = useWcp();\n const teams = wcp.canUseTeams();\n\n const schema = useMemo(() => {\n const entities: EntityDefinition[] = [\n {\n id: \"apiKey\",\n title: \"API Keys\",\n permission: \"security.apiKey\",\n scopes: [\"full\"]\n },\n {\n id: \"group\",\n title: \"Roles\",\n permission: \"security.group\",\n scopes: [\"full\"]\n }\n ];\n\n if (teams) {\n entities.push({\n id: \"team\",\n title: \"Teams\",\n permission: \"security.team\",\n scopes: [\"full\"]\n });\n }\n\n return {\n prefix: \"security\",\n fullAccess: true,\n entities\n };\n }, [teams]);\n\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"security\"\n title=\"Security\"\n description=\"Manage Security permissions.\"\n icon={<PermissionsIcon />}\n schema={schema}\n />\n </AdminConfig>\n );\n};\n"],"names":["Security","AdminConfig","SecurityPermissions","wcp","useWcp","teams","schema","useMemo","entities","PermissionsIcon"],"mappings":";;;;AAMA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,sBAAsB;IAC/B,MAAMC,MAAMC;IACZ,MAAMC,QAAQF,IAAI,WAAW;IAE7B,MAAMG,SAASC,QAAQ;QACnB,MAAMC,WAA+B;YACjC;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;YACA;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;SACH;QAED,IAAIH,OACAG,SAAS,IAAI,CAAC;YACV,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;QAGJ,OAAO;YACH,QAAQ;YACR,YAAY;YACZA;QACJ;IACJ,GAAG;QAACH;KAAM;IAEV,OAAO,WAAP,GACI,oBAACJ,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACS,gBAAeA;QACtB,QAAQH;;AAIxB"}
1
+ {"version":3,"file":"presentation/accessManagement/SecurityPermissions.js","sources":["../../../src/presentation/accessManagement/SecurityPermissions.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { useFeatureFlags } from \"~/presentation/featureFlags/useFeatureFlags.js\";\nimport type { EntityDefinition } from \"~/permissions/types.js\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/security.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n const featureFlags = useFeatureFlags();\n const teams = featureFlags.isEnabled(\"advancedAccessControlLayer.teams\");\n\n const schema = useMemo(() => {\n const entities: EntityDefinition[] = [\n {\n id: \"apiKey\",\n title: \"API Keys\",\n permission: \"security.apiKey\",\n scopes: [\"full\"]\n },\n {\n id: \"group\",\n title: \"Roles\",\n permission: \"security.group\",\n scopes: [\"full\"]\n }\n ];\n\n if (teams) {\n entities.push({\n id: \"team\",\n title: \"Teams\",\n permission: \"security.team\",\n scopes: [\"full\"]\n });\n }\n\n return {\n prefix: \"security\",\n fullAccess: true,\n entities\n };\n }, [teams]);\n\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"security\"\n title=\"Security\"\n description=\"Manage Security permissions.\"\n icon={<PermissionsIcon />}\n schema={schema}\n />\n </AdminConfig>\n );\n};\n"],"names":["Security","AdminConfig","SecurityPermissions","featureFlags","useFeatureFlags","teams","schema","useMemo","entities","PermissionsIcon"],"mappings":";;;;AAMA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,sBAAsB;IAC/B,MAAMC,eAAeC;IACrB,MAAMC,QAAQF,aAAa,SAAS,CAAC;IAErC,MAAMG,SAASC,QAAQ;QACnB,MAAMC,WAA+B;YACjC;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;YACA;gBACI,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,QAAQ;oBAAC;iBAAO;YACpB;SACH;QAED,IAAIH,OACAG,SAAS,IAAI,CAAC;YACV,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;gBAAC;aAAO;QACpB;QAGJ,OAAO;YACH,QAAQ;YACR,YAAY;YACZA;QACJ;IACJ,GAAG;QAACH;KAAM;IAEV,OAAO,WAAP,GACI,oBAACJ,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACS,gBAAeA;QACtB,QAAQH;;AAIxB"}
@@ -1,3 +1,4 @@
1
+ import { StringFormatter } from "../../../features/stringFormatter/abstractions.js";
1
2
  import { ListPresenter } from "../../../presentation/listPresenter/abstractions.js";
2
3
  import { FormModelFactory } from "../../../features/formModel/abstractions.js";
3
4
  import type { ApiKey } from "../../../features/accessManagement/types.js";
@@ -16,12 +17,13 @@ declare class ApiKeysPresenterImpl implements Abstraction.Interface {
16
17
  private updateApiKeyUseCase;
17
18
  private deleteApiKeyUseCase;
18
19
  private cache;
20
+ private stringFormatter;
19
21
  private _selectedApiKey;
20
22
  private _loading;
21
23
  private _saving;
22
24
  private _showForm;
23
25
  private _form;
24
- constructor(_listPresenter: ListPresenter.Interface<ApiKey>, formModelFactory: FormModelFactory.Interface, listApiKeysUseCase: ListApiKeysUseCase.Interface, getApiKeyUseCase: GetApiKeyUseCase.Interface, createApiKeyUseCase: CreateApiKeyUseCase.Interface, updateApiKeyUseCase: UpdateApiKeyUseCase.Interface, deleteApiKeyUseCase: DeleteApiKeyUseCase.Interface, cache: ApiKeysListCache.Interface);
26
+ constructor(_listPresenter: ListPresenter.Interface<ApiKey>, formModelFactory: FormModelFactory.Interface, listApiKeysUseCase: ListApiKeysUseCase.Interface, getApiKeyUseCase: GetApiKeyUseCase.Interface, createApiKeyUseCase: CreateApiKeyUseCase.Interface, updateApiKeyUseCase: UpdateApiKeyUseCase.Interface, deleteApiKeyUseCase: DeleteApiKeyUseCase.Interface, cache: ApiKeysListCache.Interface, stringFormatter: StringFormatter.Interface);
25
27
  get vm(): Abstraction.ViewModel;
26
28
  get list(): ListPresenter.Interface<ApiKey>;
27
29
  init(): void;