@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.
- package/base/Admin.js +17 -2
- package/base/Admin.js.map +1 -1
- package/base/Base/DefaultFieldRenderers.js +17 -2
- package/base/Base/DefaultFieldRenderers.js.map +1 -1
- package/base/Base/FieldRenderers/AutoCompleteRenderer.d.ts +13 -0
- package/base/Base/FieldRenderers/AutoCompleteRenderer.js +29 -0
- package/base/Base/FieldRenderers/AutoCompleteRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +2 -2
- package/base/Base/FieldRenderers/LexicalRenderer.js +10 -6
- package/base/Base/FieldRenderers/LexicalRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +8 -5
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/MultiSelectRenderer.d.ts +15 -0
- package/base/Base/FieldRenderers/MultiSelectRenderer.js +31 -0
- package/base/Base/FieldRenderers/MultiSelectRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +5 -2
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.d.ts +11 -0
- package/base/Base/FieldRenderers/ObjectRenderer/{MultiValueDynamicZone.js → MultiValueDynamicZone/MultiValueDynamicZone.js} +65 -14
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZone.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.d.ts +13 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js +28 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/MultiValueDynamicZonePresenter.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.d.ts +15 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js +5 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/abstractions.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.d.ts +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js +11 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/feature.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.d.ts +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone/index.js +2 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +19 -3
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +10 -8
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +34 -3
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +3 -2
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +11 -5
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
- package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -0
- package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +2 -2
- package/base/Base/Menus.js +4 -4
- package/base/Base/Menus.js.map +1 -1
- package/base/createRootContainer.js +4 -2
- package/base/createRootContainer.js.map +1 -1
- package/components/Drawers/DrawerParamsContext.d.ts +6 -0
- package/components/Drawers/DrawerParamsContext.js +10 -0
- package/components/Drawers/DrawerParamsContext.js.map +1 -0
- package/components/Drawers/DrawersContext.d.ts +13 -0
- package/components/Drawers/DrawersContext.js +50 -0
- package/components/Drawers/DrawersContext.js.map +1 -0
- package/components/Drawers/useDrawers.d.ts +2 -0
- package/components/Drawers/useDrawers.js +10 -0
- package/components/Drawers/useDrawers.js.map +1 -0
- package/components/Filters/Filters.js +4 -3
- package/components/Filters/Filters.js.map +1 -1
- package/components/IconPicker/IconPickerComponent.d.ts +2 -2
- package/components/LexicalEditor/LexicalLinkForm.js +3 -0
- package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
- package/components/ListView/ListViewBulkActions.d.ts +2 -2
- package/components/ListView/ListViewContent.d.ts +2 -2
- package/components/ListView/ListViewFilters.d.ts +2 -2
- package/components/ListView/index.d.ts +6 -6
- package/components/OverlayLayout/OverlayLayout.js +4 -2
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/components/OverlayContent.js +1 -0
- package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
- package/components/RolesMultiAutocomplete/index.d.ts +4 -2
- package/components/SplitView/SplitView.js +1 -1
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/Table/components/Table/TableInner.d.ts +2 -2
- package/components/TeamAutocomplete/index.d.ts +4 -2
- package/components/TeamsMultiAutocomplete/index.d.ts +4 -2
- package/components/index.d.ts +0 -1
- package/components/index.js +0 -1
- package/config/AdminConfig/Breadcrumbs.d.ts +42 -0
- package/config/AdminConfig/Breadcrumbs.js +24 -0
- package/config/AdminConfig/Breadcrumbs.js.map +1 -0
- package/config/AdminConfig/Drawer.d.ts +10 -0
- package/config/AdminConfig/Drawer.js +19 -0
- package/config/AdminConfig/Drawer.js.map +1 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.d.ts +5 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.js +18 -0
- package/config/AdminConfig/LexicalTheme/AllowCustomColors.js.map +1 -0
- package/config/AdminConfig/LexicalTheme.d.ts +2 -0
- package/config/AdminConfig/LexicalTheme.js +2 -0
- package/config/AdminConfig/LexicalTheme.js.map +1 -1
- package/config/AdminConfig.d.ts +8 -0
- package/config/AdminConfig.js +8 -1
- package/config/AdminConfig.js.map +1 -1
- package/exports/admin.d.ts +3 -0
- package/exports/admin.js +3 -0
- package/features/accessManagement/types.d.ts +3 -3
- package/features/aiChat/AiChatGateway.d.ts +30 -0
- package/features/aiChat/AiChatGateway.js +41 -0
- package/features/aiChat/AiChatGateway.js.map +1 -0
- package/features/aiChat/AiChatPresenter.d.ts +32 -0
- package/features/aiChat/AiChatPresenter.js +220 -0
- package/features/aiChat/AiChatPresenter.js.map +1 -0
- package/features/aiChat/abstractions.d.ts +124 -0
- package/features/aiChat/abstractions.js +6 -0
- package/features/aiChat/abstractions.js.map +1 -0
- package/features/aiChat/feature.d.ts +3 -0
- package/features/aiChat/feature.js +19 -0
- package/features/aiChat/feature.js.map +1 -0
- package/features/aiChat/index.d.ts +6 -0
- package/features/aiChat/index.js +3 -0
- package/features/dateFormatter/DefaultDateFormatter.d.ts +8 -0
- package/features/dateFormatter/DefaultDateFormatter.js +25 -0
- package/features/dateFormatter/DefaultDateFormatter.js.map +1 -0
- package/features/dateFormatter/abstractions.d.ts +13 -0
- package/features/dateFormatter/abstractions.js +5 -0
- package/features/dateFormatter/abstractions.js.map +1 -0
- package/features/dateFormatter/feature.d.ts +3 -0
- package/features/dateFormatter/feature.js +17 -0
- package/features/dateFormatter/feature.js.map +1 -0
- package/features/dateFormatter/index.d.ts +4 -0
- package/features/dateFormatter/index.js +4 -0
- package/features/dateFormatter/useDateFormatter.d.ts +5 -0
- package/features/dateFormatter/useDateFormatter.js +8 -0
- package/features/dateFormatter/useDateFormatter.js.map +1 -0
- package/features/featureFlags/FeatureFlagsGateway.d.ts +10 -0
- package/features/featureFlags/FeatureFlagsGateway.js +40 -0
- package/features/featureFlags/FeatureFlagsGateway.js.map +1 -0
- package/features/featureFlags/FeatureFlagsService.d.ts +16 -0
- package/features/featureFlags/FeatureFlagsService.js +64 -0
- package/features/featureFlags/FeatureFlagsService.js.map +1 -0
- package/features/featureFlags/abstractions.d.ts +19 -0
- package/features/featureFlags/abstractions.js +6 -0
- package/features/featureFlags/abstractions.js.map +1 -0
- package/features/featureFlags/feature.d.ts +3 -0
- package/features/featureFlags/feature.js +19 -0
- package/features/featureFlags/feature.js.map +1 -0
- package/features/formModel/Field.js +10 -0
- package/features/formModel/Field.js.map +1 -1
- package/features/formModel/FieldBuilder.js +1 -1
- package/features/formModel/FieldBuilder.js.map +1 -1
- package/features/formModel/FieldBuilder.test.js +4 -4
- package/features/formModel/FieldBuilder.test.js.map +1 -1
- package/features/formModel/FormErrors.d.ts +2 -2
- package/features/formModel/FormModel.test.js +50 -0
- package/features/formModel/FormModel.test.js.map +1 -1
- package/features/formModel/FormView.d.ts +8 -4
- package/features/formModel/PresenterErrors.d.ts +2 -2
- package/features/formModel/demo/FormModelDemo.d.ts +2 -2
- package/features/formModel/renderers.d.ts +1 -0
- package/features/formModel/renderers.js +1 -0
- package/features/notifications/NotificationsRenderer.d.ts +2 -2
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.d.ts +22 -0
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.js +32 -0
- package/features/security/AuthenticationContext/ApiStreamClientDecorator.js.map +1 -0
- package/features/security/AuthenticationContext/feature.js +2 -0
- package/features/security/AuthenticationContext/feature.js.map +1 -1
- package/features/slugify/DefaultSlugify.d.ts +8 -0
- package/features/slugify/DefaultSlugify.js +20 -0
- package/features/slugify/DefaultSlugify.js.map +1 -0
- package/features/slugify/abstractions.d.ts +12 -0
- package/features/slugify/abstractions.js +5 -0
- package/features/slugify/abstractions.js.map +1 -0
- package/features/slugify/feature.d.ts +1 -0
- package/features/slugify/feature.js +11 -0
- package/features/slugify/feature.js.map +1 -0
- package/features/slugify/index.d.ts +3 -0
- package/features/slugify/index.js +3 -0
- package/features/stringFormatter/DefaultStringFormatter.d.ts +17 -0
- package/features/stringFormatter/DefaultStringFormatter.js +19 -0
- package/features/stringFormatter/DefaultStringFormatter.js.map +1 -0
- package/features/stringFormatter/abstractions.d.ts +11 -0
- package/features/stringFormatter/abstractions.js +5 -0
- package/features/stringFormatter/abstractions.js.map +1 -0
- package/features/stringFormatter/feature.d.ts +3 -0
- package/features/stringFormatter/feature.js +19 -0
- package/features/stringFormatter/feature.js.map +1 -0
- package/features/stringFormatter/index.d.ts +4 -0
- package/features/stringFormatter/index.js +4 -0
- package/features/stringFormatter/useStringFormatter.d.ts +5 -0
- package/features/stringFormatter/useStringFormatter.js +8 -0
- package/features/stringFormatter/useStringFormatter.js.map +1 -0
- package/features/tenancy/ApiStreamClientDecorator.d.ts +16 -0
- package/features/tenancy/ApiStreamClientDecorator.js +30 -0
- package/features/tenancy/ApiStreamClientDecorator.js.map +1 -0
- package/features/tenancy/feature.js +2 -0
- package/features/tenancy/feature.js.map +1 -1
- package/features/wcp/ReactLicense.d.ts +6 -0
- package/features/wcp/ReactLicense.js +18 -0
- package/features/wcp/ReactLicense.js.map +1 -1
- package/features/wcp/WcpGateway.js +3 -0
- package/features/wcp/WcpGateway.js.map +1 -1
- package/hooks/index.d.ts +3 -0
- package/hooks/index.js +3 -0
- package/hooks/useDrawer.d.ts +9 -0
- package/hooks/useDrawer.js +19 -0
- package/hooks/useDrawer.js.map +1 -0
- package/hooks/useHotkeys.js +5 -3
- package/hooks/useHotkeys.js.map +1 -1
- package/hooks/useOpenDrawer.d.ts +7 -0
- package/hooks/useOpenDrawer.js +18 -0
- package/hooks/useOpenDrawer.js.map +1 -0
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +18 -1
- package/index.js +23 -12
- package/modules/AccessManagementExtension.js +46 -22
- package/modules/AccessManagementExtension.js.map +1 -1
- package/package.json +31 -28
- package/presentation/accessManagement/SecurityPermissions.js +3 -3
- package/presentation/accessManagement/SecurityPermissions.js.map +1 -1
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.d.ts +3 -1
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js +13 -16
- package/presentation/accessManagement/apiKeys/ApiKeysPresenter.js.map +1 -1
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.d.ts +2 -2
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.js +13 -7
- package/presentation/accessManagement/apiKeys/components/ApiKeysView.js.map +1 -1
- package/presentation/accessManagement/roles/RolesPresenter.d.ts +3 -1
- package/presentation/accessManagement/roles/RolesPresenter.js +11 -14
- package/presentation/accessManagement/roles/RolesPresenter.js.map +1 -1
- package/presentation/accessManagement/roles/components/RolesView.d.ts +2 -2
- package/presentation/accessManagement/roles/components/RolesView.js +10 -6
- package/presentation/accessManagement/roles/components/RolesView.js.map +1 -1
- package/presentation/accessManagement/teams/TeamsPresenter.d.ts +3 -1
- package/presentation/accessManagement/teams/TeamsPresenter.js +11 -14
- package/presentation/accessManagement/teams/TeamsPresenter.js.map +1 -1
- package/presentation/accessManagement/teams/components/TeamsView.d.ts +2 -2
- package/presentation/accessManagement/teams/components/TeamsView.js +10 -6
- package/presentation/accessManagement/teams/components/TeamsView.js.map +1 -1
- package/presentation/commandPalette/CommandPalettePresenter.d.ts +21 -0
- package/presentation/commandPalette/CommandPalettePresenter.js +91 -0
- package/presentation/commandPalette/CommandPalettePresenter.js.map +1 -0
- package/presentation/commandPalette/abstractions.d.ts +76 -0
- package/presentation/commandPalette/abstractions.js +7 -0
- package/presentation/commandPalette/abstractions.js.map +1 -0
- package/presentation/commandPalette/commands/AskAiCommand.d.ts +25 -0
- package/presentation/commandPalette/commands/AskAiCommand.js +33 -0
- package/presentation/commandPalette/commands/AskAiCommand.js.map +1 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.d.ts +15 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js +33 -0
- package/presentation/commandPalette/commands/CopyCurrentUrlCommand.js.map +1 -0
- package/presentation/commandPalette/commands/SendMessageCommand.d.ts +23 -0
- package/presentation/commandPalette/commands/SendMessageCommand.js +66 -0
- package/presentation/commandPalette/commands/SendMessageCommand.js.map +1 -0
- package/presentation/commandPalette/commands/SignOutCommand.d.ts +18 -0
- package/presentation/commandPalette/commands/SignOutCommand.js +37 -0
- package/presentation/commandPalette/commands/SignOutCommand.js.map +1 -0
- package/presentation/commandPalette/commands/feature.d.ts +5 -0
- package/presentation/commandPalette/commands/feature.js +17 -0
- package/presentation/commandPalette/commands/feature.js.map +1 -0
- package/presentation/commandPalette/feature.d.ts +3 -0
- package/presentation/commandPalette/feature.js +17 -0
- package/presentation/commandPalette/feature.js.map +1 -0
- package/presentation/commandPalette/index.d.ts +3 -0
- package/presentation/commandPalette/index.js +2 -0
- package/presentation/featureFlags/FeatureFlagsProvider.d.ts +7 -0
- package/presentation/featureFlags/FeatureFlagsProvider.js +22 -0
- package/presentation/featureFlags/FeatureFlagsProvider.js.map +1 -0
- package/presentation/featureFlags/useFeatureFlags.d.ts +2 -0
- package/presentation/featureFlags/useFeatureFlags.js +17 -0
- package/presentation/featureFlags/useFeatureFlags.js.map +1 -0
- package/presentation/installation/components/SystemInstaller/SystemInstaller.d.ts +2 -2
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js +0 -3
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup/handleStartUsing.js.map +1 -1
- package/presentation/listPresenter/FolderAwareDataSource.js +4 -1
- package/presentation/listPresenter/FolderAwareDataSource.js.map +1 -1
- package/presentation/listPresenter/QueryMatcher.js +2 -2
- package/presentation/listPresenter/QueryMatcher.js.map +1 -1
- package/presentation/sortable/SortablePresenter.d.ts +23 -0
- package/presentation/sortable/SortablePresenter.js +175 -0
- package/presentation/sortable/SortablePresenter.js.map +1 -0
- package/presentation/sortable/abstractions.d.ts +24 -0
- package/presentation/sortable/abstractions.js +5 -0
- package/presentation/sortable/abstractions.js.map +1 -0
- package/presentation/sortable/feature.d.ts +1 -0
- package/presentation/sortable/feature.js +11 -0
- package/presentation/sortable/feature.js.map +1 -0
- package/presentation/sortable/index.d.ts +2 -0
- package/presentation/sortable/index.js +2 -0
- package/presentation/trashBin/components/BulkActions/DeleteItems.d.ts +2 -2
- package/presentation/trashBin/components/BulkActions/RestoreItems.d.ts +2 -2
- package/presentation/trashBin/components/TrashBinOverlay.d.ts +2 -2
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +0 -10
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +0 -1
- package/base/Base/Menus/WebinyVersion.d.ts +0 -2
- package/base/Base/Menus/WebinyVersion.js +0 -23
- package/base/Base/Menus/WebinyVersion.js.map +0 -1
- package/base/WebinyVersion.d.ts +0 -2
- package/base/WebinyVersion.js +0 -23
- package/base/WebinyVersion.js.map +0 -1
- package/components/Wcp.d.ts +0 -19
- package/components/Wcp.js +0 -37
- 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"}
|
package/hooks/useHotkeys.js
CHANGED
|
@@ -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);
|
package/hooks/useHotkeys.js.map
CHANGED
|
@@ -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:
|
|
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"}
|
package/hooks/useSnackbar.js.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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/
|
|
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/
|
|
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 {
|
|
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 {
|
|
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(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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(
|
|
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(
|
|
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":"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"}
|
|
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.
|
|
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.
|
|
23
|
-
"@lexical/utils": "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.
|
|
26
|
-
"@webiny/app": "6.6.0-alpha.
|
|
27
|
-
"@webiny/di": "1.0
|
|
28
|
-
"@webiny/feature": "6.6.0-alpha.
|
|
29
|
-
"@webiny/
|
|
30
|
-
"@webiny/
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/lexical-
|
|
33
|
-
"@webiny/lexical-
|
|
34
|
-
"@webiny/lexical-
|
|
35
|
-
"@webiny/
|
|
36
|
-
"@webiny/
|
|
37
|
-
"@webiny/react-
|
|
38
|
-
"@webiny/
|
|
39
|
-
"@webiny/
|
|
40
|
-
"@webiny/
|
|
41
|
-
"@webiny/
|
|
42
|
-
"@webiny/
|
|
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.
|
|
51
|
+
"lexical": "0.49.0",
|
|
49
52
|
"lodash": "4.18.1",
|
|
50
|
-
"markdown-to-jsx": "9.
|
|
53
|
+
"markdown-to-jsx": "9.10.2",
|
|
51
54
|
"mime": "4.1.0",
|
|
52
55
|
"minimatch": "10.2.6",
|
|
53
|
-
"mobx": "
|
|
54
|
-
"mobx-react-lite": "
|
|
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.
|
|
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.
|
|
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.
|
|
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 {
|
|
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
|
|
8
|
-
const teams =
|
|
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 {
|
|
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;
|