@cloudscape-design/components-themeable 3.0.1084 → 3.0.1085
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/lib/internal/manifest.json +1 -1
- package/lib/internal/scss/app-layout/constants.scss +2 -0
- package/lib/internal/scss/app-layout/runtime-drawer/styles.scss +4 -0
- package/lib/internal/scss/app-layout/test-classes/styles.scss +3 -1
- package/lib/internal/scss/app-layout/visual-refresh-toolbar/drawer/styles.scss +155 -1
- package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +27 -4
- package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +107 -12
- package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scss +31 -21
- package/lib/internal/scss/internal/components/panel-resize-handle/styles.scss +2 -1
- package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
- package/lib/internal/template/app-layout/interfaces.d.ts +1 -0
- package/lib/internal/template/app-layout/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/runtime-drawer/index.d.ts +9 -0
- package/lib/internal/template/app-layout/runtime-drawer/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/runtime-drawer/index.js +32 -3
- package/lib/internal/template/app-layout/runtime-drawer/index.js.map +1 -1
- package/lib/internal/template/app-layout/runtime-drawer/styles.css.js +2 -1
- package/lib/internal/template/app-layout/runtime-drawer/styles.scoped.css +5 -1
- package/lib/internal/template/app-layout/runtime-drawer/styles.selectors.js +2 -1
- package/lib/internal/template/app-layout/test-classes/styles.css.js +26 -24
- package/lib/internal/template/app-layout/test-classes/styles.scoped.css +26 -24
- package/lib/internal/template/app-layout/test-classes/styles.selectors.js +26 -24
- package/lib/internal/template/app-layout/utils/interfaces.d.ts +1 -1
- package/lib/internal/template/app-layout/utils/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/utils/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/utils/use-ai-drawer.d.ts +27 -0
- package/lib/internal/template/app-layout/utils/use-ai-drawer.d.ts.map +1 -0
- package/lib/internal/template/app-layout/utils/use-ai-drawer.js +104 -0
- package/lib/internal/template/app-layout/utils/use-ai-drawer.js.map +1 -0
- package/lib/internal/template/app-layout/utils/use-keyboard-events.js +8 -8
- package/lib/internal/template/app-layout/utils/use-keyboard-events.js.map +1 -1
- package/lib/internal/template/app-layout/utils/use-pointer-events.d.ts.map +1 -1
- package/lib/internal/template/app-layout/utils/use-pointer-events.js +8 -0
- package/lib/internal/template/app-layout/utils/use-pointer-events.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +3 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts +31 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.d.ts.map +1 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js +81 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-ai-drawer.js.map +1 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js +2 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/global-drawer.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +24 -17
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +228 -35
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +24 -17
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts +2 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.js +2 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/use-resize.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +12 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +25 -23
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +56 -44
- package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +25 -23
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +2 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +8 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +24 -3
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +3 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +4 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +28 -4
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +15 -12
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +126 -24
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +15 -12
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts +2 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +3 -3
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -5
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +30 -22
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -5
- package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +23 -3
- package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
- package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
- package/lib/internal/template/internal/components/panel-resize-handle/index.d.ts +2 -1
- package/lib/internal/template/internal/components/panel-resize-handle/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/panel-resize-handle/index.js +18 -8
- package/lib/internal/template/internal/components/panel-resize-handle/index.js.map +1 -1
- package/lib/internal/template/internal/components/panel-resize-handle/styles.css.js +3 -2
- package/lib/internal/template/internal/components/panel-resize-handle/styles.scoped.css +7 -6
- package/lib/internal/template/internal/components/panel-resize-handle/styles.selectors.js +3 -2
- package/lib/internal/template/internal/environment.js +2 -2
- package/lib/internal/template/internal/environment.json +2 -2
- package/lib/internal/template/internal/plugins/widget/interfaces.d.ts +59 -0
- package/lib/internal/template/internal/plugins/widget/interfaces.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/widget/interfaces.js +2 -0
- package/lib/internal/template/internal/plugins/widget/interfaces.js.map +1 -0
- package/lib/internal/template/internal/plugins/widget/internal.d.ts +21 -0
- package/lib/internal/template/internal/plugins/widget/internal.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/widget/internal.js +55 -0
- package/lib/internal/template/internal/plugins/widget/internal.js.map +1 -0
- package/lib/internal/template/internal/plugins/widget.d.ts +3 -0
- package/lib/internal/template/internal/plugins/widget.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/widget.js +5 -0
- package/lib/internal/template/internal/plugins/widget.js.map +1 -0
- package/lib/internal/template/internal/types.d.ts +4 -0
- package/lib/internal/template/internal/types.d.ts.map +1 -1
- package/lib/internal/template/internal/types.js +8 -1
- package/lib/internal/template/internal/types.js.map +1 -1
- package/lib/internal/template/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
- package/lib/internal/template/s3-resource-selector/s3-modal/index.js +1 -4
- package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,16 +30,45 @@ function RuntimeDrawerWrapper({ mountContent, unmountContent, id }) {
|
|
|
30
30
|
}, [isVisible]);
|
|
31
31
|
return React.createElement("div", { ref: ref, className: styles['runtime-content-wrapper'], "data-awsui-runtime-drawer-root-id": id });
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
function RuntimeDrawerHeader({ mountHeader, unmountHeader }) {
|
|
34
|
+
const ref = useRef(null);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const container = ref.current;
|
|
37
|
+
mountHeader === null || mountHeader === void 0 ? void 0 : mountHeader(container);
|
|
38
|
+
return () => {
|
|
39
|
+
unmountHeader === null || unmountHeader === void 0 ? void 0 : unmountHeader(container);
|
|
40
|
+
};
|
|
41
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
|
+
}, []);
|
|
43
|
+
return React.createElement("div", { className: styles['runtime-header-wrapper'], ref: ref });
|
|
44
|
+
}
|
|
45
|
+
export const mapRuntimeConfigToDrawer = (runtimeConfig) => {
|
|
34
46
|
var _a;
|
|
35
47
|
const { mountContent, unmountContent, trigger } = runtimeConfig, runtimeDrawer = __rest(runtimeConfig, ["mountContent", "unmountContent", "trigger"]);
|
|
36
48
|
return Object.assign(Object.assign({}, runtimeDrawer), { ariaLabels: Object.assign({ drawerName: (_a = runtimeDrawer.ariaLabels.content) !== null && _a !== void 0 ? _a : '' }, runtimeDrawer.ariaLabels), trigger: trigger
|
|
37
|
-
? {
|
|
49
|
+
? Object.assign({}, (trigger.iconSvg && {
|
|
38
50
|
iconSvg: (
|
|
39
51
|
// eslint-disable-next-line react/no-danger
|
|
40
52
|
React.createElement("span", { dangerouslySetInnerHTML: { __html: trigger.iconSvg } })),
|
|
53
|
+
})) : undefined, content: (React.createElement(RuntimeDrawerWrapper, { key: runtimeDrawer.id, mountContent: mountContent, unmountContent: unmountContent, id: runtimeDrawer.id })), onResize: event => {
|
|
54
|
+
fireNonCancelableEvent(runtimeDrawer.onResize, { size: event.detail.size, id: runtimeDrawer.id });
|
|
55
|
+
} });
|
|
56
|
+
};
|
|
57
|
+
export const mapRuntimeConfigToAiDrawer = (runtimeConfig) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const { mountContent, unmountContent, trigger } = runtimeConfig, runtimeDrawer = __rest(runtimeConfig, ["mountContent", "unmountContent", "trigger"]);
|
|
60
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, runtimeDrawer), { ariaLabels: Object.assign({ drawerName: (_a = runtimeDrawer.ariaLabels.content) !== null && _a !== void 0 ? _a : '' }, runtimeDrawer.ariaLabels), trigger: trigger
|
|
61
|
+
? {
|
|
62
|
+
customIcon: (trigger === null || trigger === void 0 ? void 0 : trigger.customIcon) ? (
|
|
63
|
+
// eslint-disable-next-line react/no-danger
|
|
64
|
+
React.createElement("span", { style: { lineHeight: 0 }, dangerouslySetInnerHTML: { __html: trigger.customIcon } })) : undefined,
|
|
65
|
+
iconSvg: trigger.iconSvg ? (
|
|
66
|
+
// eslint-disable-next-line react/no-danger
|
|
67
|
+
React.createElement("span", { dangerouslySetInnerHTML: { __html: trigger.iconSvg } })) : undefined,
|
|
41
68
|
}
|
|
42
|
-
: undefined, content: (React.createElement(RuntimeDrawerWrapper, { key: runtimeDrawer.id, mountContent: mountContent, unmountContent: unmountContent, id: runtimeDrawer.id })),
|
|
69
|
+
: undefined, content: (React.createElement(RuntimeDrawerWrapper, { key: runtimeDrawer.id, mountContent: mountContent, unmountContent: unmountContent, id: runtimeDrawer.id })) }), (runtimeDrawer.mountHeader && {
|
|
70
|
+
header: (React.createElement(RuntimeDrawerHeader, { mountHeader: runtimeDrawer.mountHeader, unmountHeader: runtimeDrawer.unmountHeader })),
|
|
71
|
+
})), { onResize: event => {
|
|
43
72
|
fireNonCancelableEvent(runtimeDrawer.onResize, { size: event.detail.size, id: runtimeDrawer.id });
|
|
44
73
|
} });
|
|
45
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app-layout/runtime-drawer/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAA6B,MAAM,uBAAuB,CAAC;AAK1F,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app-layout/runtime-drawer/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useContext, useEffect, useRef } from 'react';\n\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../internal/events';\nimport {\n DrawerConfig as RuntimeDrawerConfig,\n DrawerStateChangeParams,\n} from '../../internal/plugins/controllers/drawers';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { DrawerPayload as RuntimeAiDrawerConfig } from '../../internal/plugins/widget/interfaces';\nimport { AppLayoutProps } from '../interfaces';\nimport { ActiveDrawersContext } from '../utils/visibility-context';\n\nimport styles from './styles.css.js';\n\nexport interface RuntimeDrawer extends AppLayoutProps.Drawer {\n onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>;\n}\n\nexport interface DrawersLayout {\n global: Array<RuntimeDrawer>;\n localBefore: Array<RuntimeDrawer>;\n localAfter: Array<RuntimeDrawer>;\n}\n\ntype VisibilityCallback = (isVisible: boolean) => void;\n\ninterface RuntimeContentWrapperProps {\n id?: string;\n mountContent: RuntimeDrawerConfig['mountContent'];\n unmountContent: RuntimeDrawerConfig['unmountContent'];\n}\n\nfunction RuntimeDrawerWrapper({ mountContent, unmountContent, id }: RuntimeContentWrapperProps) {\n const ref = useRef<HTMLDivElement>(null);\n const visibilityChangeCallback = useRef<VisibilityCallback | null>(null);\n const activeDrawersIds = useContext(ActiveDrawersContext);\n const isVisible = !!id && activeDrawersIds.includes(id);\n\n useEffect(() => {\n const container = ref.current!;\n mountContent(container, {\n onVisibilityChange: cb => {\n visibilityChangeCallback.current = cb;\n },\n });\n return () => {\n unmountContent(container);\n visibilityChangeCallback.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n visibilityChangeCallback.current?.(isVisible);\n }, [isVisible]);\n\n return <div ref={ref} className={styles['runtime-content-wrapper']} data-awsui-runtime-drawer-root-id={id}></div>;\n}\n\ninterface RuntimeContentHeaderProps {\n mountHeader: (container: HTMLElement) => void;\n unmountHeader?: (container: HTMLElement) => void;\n}\n\nfunction RuntimeDrawerHeader({ mountHeader, unmountHeader }: RuntimeContentHeaderProps) {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const container = ref.current!;\n mountHeader?.(container);\n return () => {\n unmountHeader?.(container);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return <div className={styles['runtime-header-wrapper']} ref={ref} />;\n}\n\nexport const mapRuntimeConfigToDrawer = (\n runtimeConfig: RuntimeDrawerConfig\n): AppLayoutProps.Drawer & {\n orderPriority?: number;\n onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>;\n} => {\n const { mountContent, unmountContent, trigger, ...runtimeDrawer } = runtimeConfig;\n\n return {\n ...runtimeDrawer,\n ariaLabels: { drawerName: runtimeDrawer.ariaLabels.content ?? '', ...runtimeDrawer.ariaLabels },\n trigger: trigger\n ? {\n ...(trigger.iconSvg && {\n iconSvg: (\n // eslint-disable-next-line react/no-danger\n <span dangerouslySetInnerHTML={{ __html: trigger.iconSvg }} />\n ),\n }),\n }\n : undefined,\n content: (\n <RuntimeDrawerWrapper\n key={runtimeDrawer.id}\n mountContent={mountContent}\n unmountContent={unmountContent}\n id={runtimeDrawer.id}\n />\n ),\n onResize: event => {\n fireNonCancelableEvent(runtimeDrawer.onResize, { size: event.detail.size, id: runtimeDrawer.id });\n },\n };\n};\n\nexport const mapRuntimeConfigToAiDrawer = (\n runtimeConfig: RuntimeAiDrawerConfig\n): AppLayoutProps.Drawer & {\n orderPriority?: number;\n onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>;\n} => {\n const { mountContent, unmountContent, trigger, ...runtimeDrawer } = runtimeConfig;\n\n return {\n ...runtimeDrawer,\n ariaLabels: { drawerName: runtimeDrawer.ariaLabels.content ?? '', ...runtimeDrawer.ariaLabels },\n trigger: trigger\n ? {\n customIcon: trigger?.customIcon ? (\n // eslint-disable-next-line react/no-danger\n <span style={{ lineHeight: 0 }} dangerouslySetInnerHTML={{ __html: trigger.customIcon }} />\n ) : undefined,\n iconSvg: trigger.iconSvg ? (\n // eslint-disable-next-line react/no-danger\n <span dangerouslySetInnerHTML={{ __html: trigger.iconSvg }} />\n ) : undefined,\n }\n : undefined,\n content: (\n <RuntimeDrawerWrapper\n key={runtimeDrawer.id}\n mountContent={mountContent}\n unmountContent={unmountContent}\n id={runtimeDrawer.id}\n />\n ),\n ...(runtimeDrawer.mountHeader && {\n header: (\n <RuntimeDrawerHeader mountHeader={runtimeDrawer.mountHeader} unmountHeader={runtimeDrawer.unmountHeader} />\n ),\n }),\n onResize: event => {\n fireNonCancelableEvent(runtimeDrawer.onResize, { size: event.detail.size, id: runtimeDrawer.id });\n },\n };\n};\n\nexport function convertRuntimeDrawers(\n localDrawers: Array<RuntimeDrawerConfig>,\n globalDrawers: Array<RuntimeDrawerConfig>\n): DrawersLayout {\n const converted = localDrawers.map(mapRuntimeConfigToDrawer);\n const sorted = sortByPriority(converted);\n return {\n global: sortByPriority(globalDrawers.map(mapRuntimeConfigToDrawer)),\n localBefore: sorted.filter(item => (item.orderPriority ?? 0) > 0),\n localAfter: sorted.filter(item => (item.orderPriority ?? 0) <= 0),\n };\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"runtime-content-wrapper": "awsui_runtime-content-
|
|
4
|
+
"runtime-content-wrapper": "awsui_runtime-content-wrapper_14m8x_spfr5_5",
|
|
5
|
+
"runtime-header-wrapper": "awsui_runtime-header-wrapper_14m8x_spfr5_9"
|
|
5
6
|
};
|
|
6
7
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
.awsui_runtime-content-
|
|
5
|
+
.awsui_runtime-content-wrapper_14m8x_spfr5_5:not(#\9) {
|
|
6
|
+
display: contents;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.awsui_runtime-header-wrapper_14m8x_spfr5_9:not(#\9) {
|
|
6
10
|
display: contents;
|
|
7
11
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"runtime-content-wrapper": "awsui_runtime-content-
|
|
5
|
+
"runtime-content-wrapper": "awsui_runtime-content-wrapper_14m8x_spfr5_5",
|
|
6
|
+
"runtime-header-wrapper": "awsui_runtime-header-wrapper_14m8x_spfr5_9"
|
|
6
7
|
};
|
|
7
8
|
|
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"root": "
|
|
5
|
-
"navigation": "
|
|
6
|
-
"navigation-toggle": "awsui_navigation-
|
|
7
|
-
"navigation-close": "awsui_navigation-
|
|
8
|
-
"content": "
|
|
9
|
-
"notifications": "
|
|
10
|
-
"breadcrumbs": "
|
|
11
|
-
"tools": "
|
|
12
|
-
"tools-close": "awsui_tools-
|
|
13
|
-
"tools-toggle": "awsui_tools-
|
|
14
|
-
"drawer-closed": "awsui_drawer-
|
|
15
|
-
"mobile-bar": "awsui_mobile-
|
|
16
|
-
"disable-body-scroll-root": "awsui_disable-body-scroll-
|
|
17
|
-
"drawers-trigger": "awsui_drawers-
|
|
18
|
-
"drawers-trigger-global": "awsui_drawers-trigger-
|
|
19
|
-
"drawers-trigger-with-badge": "awsui_drawers-trigger-with-
|
|
20
|
-
"active-drawer": "awsui_active-
|
|
21
|
-
"active-drawer-close-button": "awsui_active-drawer-close-
|
|
22
|
-
"overflow-menu": "awsui_overflow-
|
|
23
|
-
"drawers-slider": "awsui_drawers-
|
|
24
|
-
"toolbar": "
|
|
25
|
-
"trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-
|
|
26
|
-
"trigger-tooltip": "awsui_trigger-
|
|
27
|
-
"active-drawer-expanded-mode-button": "awsui_active-drawer-expanded-mode-
|
|
4
|
+
"root": "awsui_root_1fj9k_q6akd_5",
|
|
5
|
+
"navigation": "awsui_navigation_1fj9k_q6akd_6",
|
|
6
|
+
"navigation-toggle": "awsui_navigation-toggle_1fj9k_q6akd_7",
|
|
7
|
+
"navigation-close": "awsui_navigation-close_1fj9k_q6akd_8",
|
|
8
|
+
"content": "awsui_content_1fj9k_q6akd_9",
|
|
9
|
+
"notifications": "awsui_notifications_1fj9k_q6akd_10",
|
|
10
|
+
"breadcrumbs": "awsui_breadcrumbs_1fj9k_q6akd_11",
|
|
11
|
+
"tools": "awsui_tools_1fj9k_q6akd_12",
|
|
12
|
+
"tools-close": "awsui_tools-close_1fj9k_q6akd_13",
|
|
13
|
+
"tools-toggle": "awsui_tools-toggle_1fj9k_q6akd_14",
|
|
14
|
+
"drawer-closed": "awsui_drawer-closed_1fj9k_q6akd_15",
|
|
15
|
+
"mobile-bar": "awsui_mobile-bar_1fj9k_q6akd_16",
|
|
16
|
+
"disable-body-scroll-root": "awsui_disable-body-scroll-root_1fj9k_q6akd_17",
|
|
17
|
+
"drawers-trigger": "awsui_drawers-trigger_1fj9k_q6akd_18",
|
|
18
|
+
"drawers-trigger-global": "awsui_drawers-trigger-global_1fj9k_q6akd_19",
|
|
19
|
+
"drawers-trigger-with-badge": "awsui_drawers-trigger-with-badge_1fj9k_q6akd_20",
|
|
20
|
+
"active-drawer": "awsui_active-drawer_1fj9k_q6akd_21",
|
|
21
|
+
"active-drawer-close-button": "awsui_active-drawer-close-button_1fj9k_q6akd_22",
|
|
22
|
+
"overflow-menu": "awsui_overflow-menu_1fj9k_q6akd_23",
|
|
23
|
+
"drawers-slider": "awsui_drawers-slider_1fj9k_q6akd_24",
|
|
24
|
+
"toolbar": "awsui_toolbar_1fj9k_q6akd_25",
|
|
25
|
+
"trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-visible_1fj9k_q6akd_26",
|
|
26
|
+
"trigger-tooltip": "awsui_trigger-tooltip_1fj9k_q6akd_27",
|
|
27
|
+
"active-drawer-expanded-mode-button": "awsui_active-drawer-expanded-mode-button_1fj9k_q6akd_28",
|
|
28
|
+
"ai-drawer-toggle": "awsui_ai-drawer-toggle_1fj9k_q6akd_29",
|
|
29
|
+
"active-ai-drawer-leave-expanded-mode-custom-button": "awsui_active-ai-drawer-leave-expanded-mode-custom-button_1fj9k_q6akd_30"
|
|
28
30
|
};
|
|
29
31
|
|
|
@@ -2,29 +2,31 @@
|
|
|
2
2
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
.
|
|
6
|
-
.
|
|
7
|
-
.awsui_navigation-
|
|
8
|
-
.awsui_navigation-
|
|
9
|
-
.
|
|
10
|
-
.
|
|
11
|
-
.
|
|
12
|
-
.
|
|
13
|
-
.awsui_tools-
|
|
14
|
-
.awsui_tools-
|
|
15
|
-
.awsui_drawer-
|
|
16
|
-
.awsui_mobile-
|
|
17
|
-
.awsui_disable-body-scroll-
|
|
18
|
-
.awsui_drawers-
|
|
19
|
-
.awsui_drawers-trigger-
|
|
20
|
-
.awsui_drawers-trigger-with-
|
|
21
|
-
.awsui_active-
|
|
22
|
-
.awsui_active-drawer-close-
|
|
23
|
-
.awsui_overflow-
|
|
24
|
-
.awsui_drawers-
|
|
25
|
-
.
|
|
26
|
-
.awsui_trigger-wrapper-tooltip-
|
|
27
|
-
.awsui_trigger-
|
|
28
|
-
.awsui_active-drawer-expanded-mode-
|
|
5
|
+
.awsui_root_1fj9k_q6akd_5:not(#\9),
|
|
6
|
+
.awsui_navigation_1fj9k_q6akd_6:not(#\9),
|
|
7
|
+
.awsui_navigation-toggle_1fj9k_q6akd_7:not(#\9),
|
|
8
|
+
.awsui_navigation-close_1fj9k_q6akd_8:not(#\9),
|
|
9
|
+
.awsui_content_1fj9k_q6akd_9:not(#\9),
|
|
10
|
+
.awsui_notifications_1fj9k_q6akd_10:not(#\9),
|
|
11
|
+
.awsui_breadcrumbs_1fj9k_q6akd_11:not(#\9),
|
|
12
|
+
.awsui_tools_1fj9k_q6akd_12:not(#\9),
|
|
13
|
+
.awsui_tools-close_1fj9k_q6akd_13:not(#\9),
|
|
14
|
+
.awsui_tools-toggle_1fj9k_q6akd_14:not(#\9),
|
|
15
|
+
.awsui_drawer-closed_1fj9k_q6akd_15:not(#\9),
|
|
16
|
+
.awsui_mobile-bar_1fj9k_q6akd_16:not(#\9),
|
|
17
|
+
.awsui_disable-body-scroll-root_1fj9k_q6akd_17:not(#\9),
|
|
18
|
+
.awsui_drawers-trigger_1fj9k_q6akd_18:not(#\9),
|
|
19
|
+
.awsui_drawers-trigger-global_1fj9k_q6akd_19:not(#\9),
|
|
20
|
+
.awsui_drawers-trigger-with-badge_1fj9k_q6akd_20:not(#\9),
|
|
21
|
+
.awsui_active-drawer_1fj9k_q6akd_21:not(#\9),
|
|
22
|
+
.awsui_active-drawer-close-button_1fj9k_q6akd_22:not(#\9),
|
|
23
|
+
.awsui_overflow-menu_1fj9k_q6akd_23:not(#\9),
|
|
24
|
+
.awsui_drawers-slider_1fj9k_q6akd_24:not(#\9),
|
|
25
|
+
.awsui_toolbar_1fj9k_q6akd_25:not(#\9),
|
|
26
|
+
.awsui_trigger-wrapper-tooltip-visible_1fj9k_q6akd_26:not(#\9),
|
|
27
|
+
.awsui_trigger-tooltip_1fj9k_q6akd_27:not(#\9),
|
|
28
|
+
.awsui_active-drawer-expanded-mode-button_1fj9k_q6akd_28:not(#\9),
|
|
29
|
+
.awsui_ai-drawer-toggle_1fj9k_q6akd_29:not(#\9),
|
|
30
|
+
.awsui_active-ai-drawer-leave-expanded-mode-custom-button_1fj9k_q6akd_30:not(#\9) {
|
|
29
31
|
/* used in test-utils */
|
|
30
32
|
}
|
|
@@ -2,29 +2,31 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"root": "
|
|
6
|
-
"navigation": "
|
|
7
|
-
"navigation-toggle": "awsui_navigation-
|
|
8
|
-
"navigation-close": "awsui_navigation-
|
|
9
|
-
"content": "
|
|
10
|
-
"notifications": "
|
|
11
|
-
"breadcrumbs": "
|
|
12
|
-
"tools": "
|
|
13
|
-
"tools-close": "awsui_tools-
|
|
14
|
-
"tools-toggle": "awsui_tools-
|
|
15
|
-
"drawer-closed": "awsui_drawer-
|
|
16
|
-
"mobile-bar": "awsui_mobile-
|
|
17
|
-
"disable-body-scroll-root": "awsui_disable-body-scroll-
|
|
18
|
-
"drawers-trigger": "awsui_drawers-
|
|
19
|
-
"drawers-trigger-global": "awsui_drawers-trigger-
|
|
20
|
-
"drawers-trigger-with-badge": "awsui_drawers-trigger-with-
|
|
21
|
-
"active-drawer": "awsui_active-
|
|
22
|
-
"active-drawer-close-button": "awsui_active-drawer-close-
|
|
23
|
-
"overflow-menu": "awsui_overflow-
|
|
24
|
-
"drawers-slider": "awsui_drawers-
|
|
25
|
-
"toolbar": "
|
|
26
|
-
"trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-
|
|
27
|
-
"trigger-tooltip": "awsui_trigger-
|
|
28
|
-
"active-drawer-expanded-mode-button": "awsui_active-drawer-expanded-mode-
|
|
5
|
+
"root": "awsui_root_1fj9k_q6akd_5",
|
|
6
|
+
"navigation": "awsui_navigation_1fj9k_q6akd_6",
|
|
7
|
+
"navigation-toggle": "awsui_navigation-toggle_1fj9k_q6akd_7",
|
|
8
|
+
"navigation-close": "awsui_navigation-close_1fj9k_q6akd_8",
|
|
9
|
+
"content": "awsui_content_1fj9k_q6akd_9",
|
|
10
|
+
"notifications": "awsui_notifications_1fj9k_q6akd_10",
|
|
11
|
+
"breadcrumbs": "awsui_breadcrumbs_1fj9k_q6akd_11",
|
|
12
|
+
"tools": "awsui_tools_1fj9k_q6akd_12",
|
|
13
|
+
"tools-close": "awsui_tools-close_1fj9k_q6akd_13",
|
|
14
|
+
"tools-toggle": "awsui_tools-toggle_1fj9k_q6akd_14",
|
|
15
|
+
"drawer-closed": "awsui_drawer-closed_1fj9k_q6akd_15",
|
|
16
|
+
"mobile-bar": "awsui_mobile-bar_1fj9k_q6akd_16",
|
|
17
|
+
"disable-body-scroll-root": "awsui_disable-body-scroll-root_1fj9k_q6akd_17",
|
|
18
|
+
"drawers-trigger": "awsui_drawers-trigger_1fj9k_q6akd_18",
|
|
19
|
+
"drawers-trigger-global": "awsui_drawers-trigger-global_1fj9k_q6akd_19",
|
|
20
|
+
"drawers-trigger-with-badge": "awsui_drawers-trigger-with-badge_1fj9k_q6akd_20",
|
|
21
|
+
"active-drawer": "awsui_active-drawer_1fj9k_q6akd_21",
|
|
22
|
+
"active-drawer-close-button": "awsui_active-drawer-close-button_1fj9k_q6akd_22",
|
|
23
|
+
"overflow-menu": "awsui_overflow-menu_1fj9k_q6akd_23",
|
|
24
|
+
"drawers-slider": "awsui_drawers-slider_1fj9k_q6akd_24",
|
|
25
|
+
"toolbar": "awsui_toolbar_1fj9k_q6akd_25",
|
|
26
|
+
"trigger-wrapper-tooltip-visible": "awsui_trigger-wrapper-tooltip-visible_1fj9k_q6akd_26",
|
|
27
|
+
"trigger-tooltip": "awsui_trigger-tooltip_1fj9k_q6akd_27",
|
|
28
|
+
"active-drawer-expanded-mode-button": "awsui_active-drawer-expanded-mode-button_1fj9k_q6akd_28",
|
|
29
|
+
"ai-drawer-toggle": "awsui_ai-drawer-toggle_1fj9k_q6akd_29",
|
|
30
|
+
"active-ai-drawer-leave-expanded-mode-custom-button": "awsui_active-ai-drawer-leave-expanded-mode-custom-button_1fj9k_q6akd_30"
|
|
29
31
|
};
|
|
30
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface SizeControlProps {
|
|
3
|
-
position: 'side' | 'bottom';
|
|
3
|
+
position: 'side-start' | 'side' | 'bottom';
|
|
4
4
|
panelRef?: React.RefObject<HTMLDivElement>;
|
|
5
5
|
handleRef?: React.RefObject<HTMLDivElement>;
|
|
6
6
|
onResize: (newSize: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nexport interface SizeControlProps {\n position: 'side' | 'bottom';\n panelRef?: React.RefObject<HTMLDivElement>;\n handleRef?: React.RefObject<HTMLDivElement>;\n onResize: (newSize: number) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nexport interface SizeControlProps {\n position: 'side-start' | 'side' | 'bottom';\n panelRef?: React.RefObject<HTMLDivElement>;\n handleRef?: React.RefObject<HTMLDivElement>;\n onResize: (newSize: number) => void;\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface OnChangeParams {
|
|
2
|
+
initiatedByUserAction: boolean;
|
|
3
|
+
}
|
|
4
|
+
export declare const MIN_DRAWER_SIZE = 290;
|
|
5
|
+
interface UseDrawersProps {
|
|
6
|
+
isEnabled: boolean;
|
|
7
|
+
onAiDrawerFocus: () => void;
|
|
8
|
+
expandedDrawerId: string | null;
|
|
9
|
+
setExpandedDrawerId: (value: string | null) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useAiDrawer({ isEnabled, onAiDrawerFocus, expandedDrawerId, setExpandedDrawerId }: UseDrawersProps): {
|
|
12
|
+
aiDrawer: (import("..").AppLayoutProps.Drawer & {
|
|
13
|
+
orderPriority?: number | undefined;
|
|
14
|
+
onToggle?: import("../../internal/events").NonCancelableEventHandler<import("../../internal/plugins/controllers/drawers").DrawerStateChangeParams> | undefined;
|
|
15
|
+
}) | null;
|
|
16
|
+
onActiveAiDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }?: OnChangeParams) => void;
|
|
17
|
+
activeAiDrawer: (import("..").AppLayoutProps.Drawer & {
|
|
18
|
+
orderPriority?: number | undefined;
|
|
19
|
+
onToggle?: import("../../internal/events").NonCancelableEventHandler<import("../../internal/plugins/controllers/drawers").DrawerStateChangeParams> | undefined;
|
|
20
|
+
}) | null;
|
|
21
|
+
activeAiDrawerId: string | null;
|
|
22
|
+
activeAiDrawerSize: number;
|
|
23
|
+
minAiDrawerSize: number;
|
|
24
|
+
onActiveAiDrawerResize: (size: number) => void;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=use-ai-drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-ai-drawer.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-ai-drawer.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAsED,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,UAAU,eAAe;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrD;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,eAAe;;;;;0CAUjG,MAAM,GAAG,IAAI,8BACC,cAAc;;;;;;;;mCAPL,MAAM;EAwC7C"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { useStableCallback } from '@cloudscape-design/component-toolkit/internal';
|
|
5
|
+
import { fireNonCancelableEvent } from '../../internal/events';
|
|
6
|
+
import { metrics } from '../../internal/metrics';
|
|
7
|
+
import { getAppLayoutInitialState, registerAppLayoutHandler } from '../../internal/plugins/widget/internal';
|
|
8
|
+
import { assertNever } from '../../internal/types';
|
|
9
|
+
import { mapRuntimeConfigToAiDrawer } from '../runtime-drawer';
|
|
10
|
+
const DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };
|
|
11
|
+
function useRuntimeAiDrawer(isEnabled, activeAiDrawerId, onActiveAiDrawerChange, onActiveAiDrawerResize) {
|
|
12
|
+
const [aiDrawer, setAiDrawer] = useState(null);
|
|
13
|
+
const appLayoutMessageHandler = useStableCallback((event) => {
|
|
14
|
+
if (event.type === 'registerLeftDrawer') {
|
|
15
|
+
setAiDrawer(event.payload);
|
|
16
|
+
if (!aiDrawerWasOpenRef.current && event.payload.defaultActive) {
|
|
17
|
+
onAiDrawersChangeStable(event.payload.id, { initiatedByUserAction: false });
|
|
18
|
+
}
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (aiDrawer && aiDrawer.id !== event.payload.id) {
|
|
22
|
+
metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', { oldId: aiDrawer === null || aiDrawer === void 0 ? void 0 : aiDrawer.id, newId: event.payload.id });
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
switch (event.type) {
|
|
26
|
+
case 'updateDrawerConfig':
|
|
27
|
+
setAiDrawer(current => (current ? Object.assign(Object.assign({}, current), event.payload) : current));
|
|
28
|
+
break;
|
|
29
|
+
case 'openDrawer':
|
|
30
|
+
onActiveAiDrawerChangeStable(event.payload.id, { initiatedByUserAction: false });
|
|
31
|
+
break;
|
|
32
|
+
case 'closeDrawer':
|
|
33
|
+
onActiveAiDrawerChangeStable(null, { initiatedByUserAction: false });
|
|
34
|
+
break;
|
|
35
|
+
case 'resizeDrawer':
|
|
36
|
+
onActiveAiDrawerResizeStable(event.payload.size);
|
|
37
|
+
break;
|
|
38
|
+
/* istanbul ignore next: this code is not intended to be visited */
|
|
39
|
+
default:
|
|
40
|
+
assertNever(event);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
const onAiDrawersChangeStable = useStableCallback(onActiveAiDrawerChange);
|
|
44
|
+
const onActiveAiDrawerResizeStable = useStableCallback(onActiveAiDrawerResize);
|
|
45
|
+
const onActiveAiDrawerChangeStable = useStableCallback(onActiveAiDrawerChange);
|
|
46
|
+
const aiDrawerWasOpenRef = useRef(false);
|
|
47
|
+
aiDrawerWasOpenRef.current = aiDrawerWasOpenRef.current || !!activeAiDrawerId;
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
var _a;
|
|
50
|
+
if (!isEnabled) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const initialDrawerMessage = (_a = getAppLayoutInitialState()) === null || _a === void 0 ? void 0 : _a.find(message => message.type === 'registerLeftDrawer');
|
|
54
|
+
if (initialDrawerMessage && initialDrawerMessage.type === 'registerLeftDrawer') {
|
|
55
|
+
setAiDrawer(initialDrawerMessage.payload);
|
|
56
|
+
if (!aiDrawerWasOpenRef.current && initialDrawerMessage.payload.defaultActive) {
|
|
57
|
+
onAiDrawersChangeStable(initialDrawerMessage.payload.id, { initiatedByUserAction: false });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const unsubscribe = registerAppLayoutHandler(appLayoutMessageHandler);
|
|
61
|
+
return () => {
|
|
62
|
+
unsubscribe();
|
|
63
|
+
setAiDrawer(null);
|
|
64
|
+
};
|
|
65
|
+
}, [isEnabled, appLayoutMessageHandler, onAiDrawersChangeStable, onActiveAiDrawerResizeStable]);
|
|
66
|
+
return aiDrawer && mapRuntimeConfigToAiDrawer(aiDrawer);
|
|
67
|
+
}
|
|
68
|
+
export const MIN_DRAWER_SIZE = 290;
|
|
69
|
+
export function useAiDrawer({ isEnabled, onAiDrawerFocus, expandedDrawerId, setExpandedDrawerId }) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
const [activeAiDrawerId, setActiveAiDrawerId] = useState(null);
|
|
72
|
+
const [size, setSize] = useState(null);
|
|
73
|
+
function onActiveAiDrawerResize(size) {
|
|
74
|
+
setSize(size);
|
|
75
|
+
fireNonCancelableEvent(activeAiDrawer === null || activeAiDrawer === void 0 ? void 0 : activeAiDrawer.onResize, { id: activeAiDrawerId, size });
|
|
76
|
+
}
|
|
77
|
+
function onActiveAiDrawerChange(newDrawerId, { initiatedByUserAction } = DEFAULT_ON_CHANGE_PARAMS) {
|
|
78
|
+
setActiveAiDrawerId(newDrawerId);
|
|
79
|
+
if (newDrawerId) {
|
|
80
|
+
fireNonCancelableEvent(aiDrawer === null || aiDrawer === void 0 ? void 0 : aiDrawer.onToggle, { isOpen: true, initiatedByUserAction });
|
|
81
|
+
}
|
|
82
|
+
if (activeAiDrawerId) {
|
|
83
|
+
fireNonCancelableEvent(aiDrawer === null || aiDrawer === void 0 ? void 0 : aiDrawer.onToggle, { isOpen: false, initiatedByUserAction });
|
|
84
|
+
if (activeAiDrawerId === expandedDrawerId) {
|
|
85
|
+
setExpandedDrawerId === null || setExpandedDrawerId === void 0 ? void 0 : setExpandedDrawerId(null);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
onAiDrawerFocus === null || onAiDrawerFocus === void 0 ? void 0 : onAiDrawerFocus();
|
|
89
|
+
}
|
|
90
|
+
const aiDrawer = useRuntimeAiDrawer(isEnabled, activeAiDrawerId, onActiveAiDrawerChange, onActiveAiDrawerResize);
|
|
91
|
+
const activeAiDrawer = activeAiDrawerId && activeAiDrawerId === (aiDrawer === null || aiDrawer === void 0 ? void 0 : aiDrawer.id) ? aiDrawer : null;
|
|
92
|
+
const activeAiDrawerSize = activeAiDrawerId ? ((_a = size !== null && size !== void 0 ? size : activeAiDrawer === null || activeAiDrawer === void 0 ? void 0 : activeAiDrawer.defaultSize) !== null && _a !== void 0 ? _a : MIN_DRAWER_SIZE) : 0;
|
|
93
|
+
const minAiDrawerSize = Math.min((_b = activeAiDrawer === null || activeAiDrawer === void 0 ? void 0 : activeAiDrawer.defaultSize) !== null && _b !== void 0 ? _b : MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);
|
|
94
|
+
return {
|
|
95
|
+
aiDrawer,
|
|
96
|
+
onActiveAiDrawerChange,
|
|
97
|
+
activeAiDrawer,
|
|
98
|
+
activeAiDrawerId,
|
|
99
|
+
activeAiDrawerSize,
|
|
100
|
+
minAiDrawerSize,
|
|
101
|
+
onActiveAiDrawerResize,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=use-ai-drawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-ai-drawer.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-ai-drawer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { metrics } from '../../internal/metrics';\nimport { AppLayoutMessage, DrawerPayload as RuntimeAiDrawerConfig } from '../../internal/plugins/widget/interfaces';\nimport { getAppLayoutInitialState, registerAppLayoutHandler } from '../../internal/plugins/widget/internal';\nimport { assertNever } from '../../internal/types';\nimport { mapRuntimeConfigToAiDrawer } from '../runtime-drawer';\n\nexport interface OnChangeParams {\n initiatedByUserAction: boolean;\n}\n\nconst DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };\n\nfunction useRuntimeAiDrawer(\n isEnabled: boolean,\n activeAiDrawerId: string | null,\n onActiveAiDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n onActiveAiDrawerResize: (size: number) => void\n) {\n const [aiDrawer, setAiDrawer] = useState<RuntimeAiDrawerConfig | null>(null);\n const appLayoutMessageHandler = useStableCallback((event: AppLayoutMessage) => {\n if (event.type === 'registerLeftDrawer') {\n setAiDrawer(event.payload);\n if (!aiDrawerWasOpenRef.current && event.payload.defaultActive) {\n onAiDrawersChangeStable(event.payload.id, { initiatedByUserAction: false });\n }\n return;\n }\n if (aiDrawer && aiDrawer.id !== event.payload.id) {\n metrics.sendOpsMetricObject('awsui-widget-drawer-incorrect-id', { oldId: aiDrawer?.id, newId: event.payload.id });\n return;\n }\n switch (event.type) {\n case 'updateDrawerConfig':\n setAiDrawer(current => (current ? { ...current, ...event.payload } : current));\n break;\n case 'openDrawer':\n onActiveAiDrawerChangeStable(event.payload.id, { initiatedByUserAction: false });\n break;\n case 'closeDrawer':\n onActiveAiDrawerChangeStable(null, { initiatedByUserAction: false });\n break;\n case 'resizeDrawer':\n onActiveAiDrawerResizeStable(event.payload.size);\n break;\n /* istanbul ignore next: this code is not intended to be visited */\n default:\n assertNever(event);\n }\n });\n const onAiDrawersChangeStable = useStableCallback(onActiveAiDrawerChange);\n const onActiveAiDrawerResizeStable = useStableCallback(onActiveAiDrawerResize);\n const onActiveAiDrawerChangeStable = useStableCallback(onActiveAiDrawerChange);\n const aiDrawerWasOpenRef = useRef(false);\n aiDrawerWasOpenRef.current = aiDrawerWasOpenRef.current || !!activeAiDrawerId;\n\n useEffect(() => {\n if (!isEnabled) {\n return;\n }\n\n const initialDrawerMessage = getAppLayoutInitialState()?.find(message => message.type === 'registerLeftDrawer');\n if (initialDrawerMessage && initialDrawerMessage.type === 'registerLeftDrawer') {\n setAiDrawer(initialDrawerMessage.payload);\n if (!aiDrawerWasOpenRef.current && initialDrawerMessage.payload.defaultActive) {\n onAiDrawersChangeStable(initialDrawerMessage.payload.id, { initiatedByUserAction: false });\n }\n }\n\n const unsubscribe = registerAppLayoutHandler(appLayoutMessageHandler);\n return () => {\n unsubscribe();\n setAiDrawer(null);\n };\n }, [isEnabled, appLayoutMessageHandler, onAiDrawersChangeStable, onActiveAiDrawerResizeStable]);\n\n return aiDrawer && mapRuntimeConfigToAiDrawer(aiDrawer);\n}\n\nexport const MIN_DRAWER_SIZE = 290;\n\ninterface UseDrawersProps {\n isEnabled: boolean;\n onAiDrawerFocus: () => void;\n expandedDrawerId: string | null;\n setExpandedDrawerId: (value: string | null) => void;\n}\n\nexport function useAiDrawer({ isEnabled, onAiDrawerFocus, expandedDrawerId, setExpandedDrawerId }: UseDrawersProps) {\n const [activeAiDrawerId, setActiveAiDrawerId] = useState<string | null>(null);\n const [size, setSize] = useState<number | null>(null);\n\n function onActiveAiDrawerResize(size: number) {\n setSize(size);\n fireNonCancelableEvent(activeAiDrawer?.onResize, { id: activeAiDrawerId, size });\n }\n\n function onActiveAiDrawerChange(\n newDrawerId: string | null,\n { initiatedByUserAction }: OnChangeParams = DEFAULT_ON_CHANGE_PARAMS\n ) {\n setActiveAiDrawerId(newDrawerId);\n\n if (newDrawerId) {\n fireNonCancelableEvent(aiDrawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n\n if (activeAiDrawerId) {\n fireNonCancelableEvent(aiDrawer?.onToggle, { isOpen: false, initiatedByUserAction });\n\n if (activeAiDrawerId === expandedDrawerId) {\n setExpandedDrawerId?.(null);\n }\n }\n\n onAiDrawerFocus?.();\n }\n\n const aiDrawer = useRuntimeAiDrawer(isEnabled, activeAiDrawerId, onActiveAiDrawerChange, onActiveAiDrawerResize);\n const activeAiDrawer = activeAiDrawerId && activeAiDrawerId === aiDrawer?.id ? aiDrawer : null;\n const activeAiDrawerSize = activeAiDrawerId ? (size ?? activeAiDrawer?.defaultSize ?? MIN_DRAWER_SIZE) : 0;\n const minAiDrawerSize = Math.min(activeAiDrawer?.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE);\n\n return {\n aiDrawer,\n onActiveAiDrawerChange,\n activeAiDrawer,\n activeAiDrawerId,\n activeAiDrawerSize,\n minAiDrawerSize,\n onActiveAiDrawerResize,\n };\n}\n"]}
|
|
@@ -18,7 +18,7 @@ export const useKeyboardEvents = ({ position, onResize, panelRef }) => {
|
|
|
18
18
|
onDirectionClick: (direction) => {
|
|
19
19
|
let currentSize;
|
|
20
20
|
const { panelHeight, panelWidth } = getCurrentSize(panelRef);
|
|
21
|
-
if (
|
|
21
|
+
if (['side', 'side-start'].includes(position)) {
|
|
22
22
|
currentSize = panelWidth;
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
@@ -29,11 +29,11 @@ export const useKeyboardEvents = ({ position, onResize, panelRef }) => {
|
|
|
29
29
|
switch (direction) {
|
|
30
30
|
case 'block-start':
|
|
31
31
|
case 'inline-start':
|
|
32
|
-
singleStepUp();
|
|
32
|
+
position === 'side-start' ? singleStepDown() : singleStepUp();
|
|
33
33
|
break;
|
|
34
34
|
case 'block-end':
|
|
35
35
|
case 'inline-end':
|
|
36
|
-
singleStepDown();
|
|
36
|
+
position === 'side-start' ? singleStepUp() : singleStepDown();
|
|
37
37
|
break;
|
|
38
38
|
}
|
|
39
39
|
},
|
|
@@ -41,7 +41,7 @@ export const useKeyboardEvents = ({ position, onResize, panelRef }) => {
|
|
|
41
41
|
let currentSize;
|
|
42
42
|
let maxSize;
|
|
43
43
|
const { panelHeight, panelWidth } = getCurrentSize(panelRef);
|
|
44
|
-
if (
|
|
44
|
+
if (['side', 'side-start'].includes(position)) {
|
|
45
45
|
currentSize = panelWidth;
|
|
46
46
|
// don't need the exact max size as it's constrained in the set size function
|
|
47
47
|
maxSize = window.innerWidth;
|
|
@@ -58,16 +58,16 @@ export const useKeyboardEvents = ({ position, onResize, panelRef }) => {
|
|
|
58
58
|
const multipleStepDown = () => onResize(currentSize - KEYBOARD_MULTIPLE_STEPS_SIZE);
|
|
59
59
|
handleKey(event, {
|
|
60
60
|
onBlockStart: () => {
|
|
61
|
-
|
|
61
|
+
['bottom', 'side-start'].includes(position) ? singleStepUp() : singleStepDown();
|
|
62
62
|
},
|
|
63
63
|
onBlockEnd: () => {
|
|
64
|
-
|
|
64
|
+
['bottom', 'side-start'].includes(position) ? singleStepDown() : singleStepUp();
|
|
65
65
|
},
|
|
66
66
|
onInlineEnd: () => {
|
|
67
|
-
|
|
67
|
+
['bottom', 'side-start'].includes(position) ? singleStepUp() : singleStepDown();
|
|
68
68
|
},
|
|
69
69
|
onInlineStart: () => {
|
|
70
|
-
|
|
70
|
+
['bottom', 'side-start'].includes(position) ? singleStepDown() : singleStepUp();
|
|
71
71
|
},
|
|
72
72
|
onPageDown: () => multipleStepDown(),
|
|
73
73
|
onPageUp: () => multipleStepUp(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-keyboard-events.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-keyboard-events.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAGxD,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,cAAc,GAAG,CAAC,QAA0C,EAAE,EAAE;IACpE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;QAClC,OAAO;YACL,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;SACd,CAAC;KACH;IAED,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY;QAC1C,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW;KACzC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAoB,EAAE,EAAE;IACtF,OAAO;QACL,gBAAgB,EAAE,CAAC,SAAoB,EAAE,EAAE;YACzC,IAAI,WAAmB,CAAC;YAExB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YAE7D,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"use-keyboard-events.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-keyboard-events.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { Direction } from '../../internal/components/drag-handle-wrapper/interfaces';\nimport handleKey from '../../internal/utils/handle-key';\nimport { SizeControlProps } from './interfaces';\n\nconst KEYBOARD_SINGLE_STEP_SIZE = 10;\nconst KEYBOARD_MULTIPLE_STEPS_SIZE = 60;\n\nconst getCurrentSize = (panelRef?: React.RefObject<HTMLDivElement>) => {\n if (!panelRef || !panelRef.current) {\n return {\n panelHeight: 0,\n panelWidth: 0,\n };\n }\n\n return {\n panelHeight: panelRef.current.clientHeight,\n panelWidth: panelRef.current.clientWidth,\n };\n};\n\nexport const useKeyboardEvents = ({ position, onResize, panelRef }: SizeControlProps) => {\n return {\n onDirectionClick: (direction: Direction) => {\n let currentSize: number;\n\n const { panelHeight, panelWidth } = getCurrentSize(panelRef);\n\n if (['side', 'side-start'].includes(position)) {\n currentSize = panelWidth;\n } else {\n currentSize = panelHeight;\n }\n\n const singleStepUp = () => onResize(currentSize + KEYBOARD_SINGLE_STEP_SIZE);\n const singleStepDown = () => onResize(currentSize - KEYBOARD_SINGLE_STEP_SIZE);\n\n switch (direction) {\n case 'block-start':\n case 'inline-start':\n position === 'side-start' ? singleStepDown() : singleStepUp();\n break;\n case 'block-end':\n case 'inline-end':\n position === 'side-start' ? singleStepUp() : singleStepDown();\n break;\n }\n },\n\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => {\n let currentSize: number;\n let maxSize: number;\n\n const { panelHeight, panelWidth } = getCurrentSize(panelRef);\n\n if (['side', 'side-start'].includes(position)) {\n currentSize = panelWidth;\n // don't need the exact max size as it's constrained in the set size function\n maxSize = window.innerWidth;\n } else {\n currentSize = panelHeight;\n // don't need the exact max size as it's constrained in the set size function\n maxSize = window.innerHeight;\n }\n\n let isEventHandled = true;\n\n const singleStepUp = () => onResize(currentSize + KEYBOARD_SINGLE_STEP_SIZE);\n const singleStepDown = () => onResize(currentSize - KEYBOARD_SINGLE_STEP_SIZE);\n const multipleStepUp = () => onResize(currentSize + KEYBOARD_MULTIPLE_STEPS_SIZE);\n const multipleStepDown = () => onResize(currentSize - KEYBOARD_MULTIPLE_STEPS_SIZE);\n\n handleKey(event, {\n onBlockStart: () => {\n ['bottom', 'side-start'].includes(position) ? singleStepUp() : singleStepDown();\n },\n onBlockEnd: () => {\n ['bottom', 'side-start'].includes(position) ? singleStepDown() : singleStepUp();\n },\n onInlineEnd: () => {\n ['bottom', 'side-start'].includes(position) ? singleStepUp() : singleStepDown();\n },\n onInlineStart: () => {\n ['bottom', 'side-start'].includes(position) ? singleStepDown() : singleStepUp();\n },\n onPageDown: () => multipleStepDown(),\n onPageUp: () => multipleStepUp(),\n onHome: () => onResize(maxSize),\n onEnd: () => onResize(0),\n onDefault: () => (isEventHandled = false),\n });\n\n if (isEventHandled) {\n event.preventDefault();\n }\n },\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pointer-events.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-pointer-events.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,eAAO,MAAM,gBAAgB,gDAAiD,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-pointer-events.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-pointer-events.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,eAAO,MAAM,gBAAgB,gDAAiD,gBAAgB,eAkE7F,CAAC"}
|
|
@@ -15,6 +15,14 @@ export const usePointerEvents = ({ position, panelRef, handleRef, onResize }) =>
|
|
|
15
15
|
const width = getLogicalBoundingClientRect(panelRef.current).insetInlineEnd - mouseClientX + handleOffset;
|
|
16
16
|
onResize(width);
|
|
17
17
|
}
|
|
18
|
+
else if (position === 'side-start') {
|
|
19
|
+
const mouseClientX = getLogicalClientX(event, getIsRtl(panelRef.current)) || 0;
|
|
20
|
+
// The handle offset aligns the cursor with the middle of the resize handle.
|
|
21
|
+
const handleOffset = getLogicalBoundingClientRect(handleRef.current).inlineSize / 2;
|
|
22
|
+
const panelBoundingClientRect = getLogicalBoundingClientRect(panelRef.current);
|
|
23
|
+
const width = panelBoundingClientRect.insetInlineEnd + mouseClientX + handleOffset - panelBoundingClientRect.inlineSize;
|
|
24
|
+
onResize(width);
|
|
25
|
+
}
|
|
18
26
|
else {
|
|
19
27
|
const mouseClientY = event.clientY || 0;
|
|
20
28
|
// The handle offset aligns the cursor with the middle of the resize handle.
|