@cloudscape-design/components 3.0.1123 → 3.0.1124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/app-layout/utils/use-drawers.d.ts +4 -2
  2. package/app-layout/utils/use-drawers.d.ts.map +1 -1
  3. package/app-layout/utils/use-drawers.js +2 -5
  4. package/app-layout/utils/use-drawers.js.map +1 -1
  5. package/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.d.ts.map +1 -1
  6. package/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js +26 -21
  7. package/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.js.map +1 -1
  8. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +30 -27
  9. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +96 -78
  10. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +30 -27
  11. package/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  12. package/app-layout/visual-refresh-toolbar/state/props-merger.js +3 -1
  13. package/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  14. package/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  15. package/app-layout/visual-refresh-toolbar/state/use-app-layout.js +5 -1
  16. package/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  17. package/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.d.ts +2 -0
  18. package/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.d.ts.map +1 -1
  19. package/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js +2 -2
  20. package/app-layout/visual-refresh-toolbar/state/use-bottom-drawers.js.map +1 -1
  21. package/attribute-editor/interfaces.d.ts +10 -0
  22. package/attribute-editor/interfaces.d.ts.map +1 -1
  23. package/attribute-editor/interfaces.js.map +1 -1
  24. package/attribute-editor/internal.d.ts.map +1 -1
  25. package/attribute-editor/internal.js +10 -2
  26. package/attribute-editor/internal.js.map +1 -1
  27. package/i18n/messages/all.all.js +1 -1
  28. package/i18n/messages/all.all.json +1 -1
  29. package/i18n/messages/all.ar.js +1 -1
  30. package/i18n/messages/all.ar.json +1 -1
  31. package/i18n/messages/all.de.js +1 -1
  32. package/i18n/messages/all.de.json +1 -1
  33. package/i18n/messages/all.en-GB.js +1 -1
  34. package/i18n/messages/all.en-GB.json +1 -1
  35. package/i18n/messages/all.en.js +1 -1
  36. package/i18n/messages/all.en.json +1 -1
  37. package/i18n/messages/all.es.js +1 -1
  38. package/i18n/messages/all.es.json +1 -1
  39. package/i18n/messages/all.fr.js +1 -1
  40. package/i18n/messages/all.fr.json +1 -1
  41. package/i18n/messages/all.id.js +1 -1
  42. package/i18n/messages/all.id.json +1 -1
  43. package/i18n/messages/all.it.js +1 -1
  44. package/i18n/messages/all.it.json +1 -1
  45. package/i18n/messages/all.ja.js +1 -1
  46. package/i18n/messages/all.ja.json +1 -1
  47. package/i18n/messages/all.ko.js +1 -1
  48. package/i18n/messages/all.ko.json +1 -1
  49. package/i18n/messages/all.pt-BR.js +1 -1
  50. package/i18n/messages/all.pt-BR.json +1 -1
  51. package/i18n/messages/all.tr.js +1 -1
  52. package/i18n/messages/all.tr.json +1 -1
  53. package/i18n/messages/all.zh-CN.js +1 -1
  54. package/i18n/messages/all.zh-CN.json +1 -1
  55. package/i18n/messages/all.zh-TW.js +1 -1
  56. package/i18n/messages/all.zh-TW.json +1 -1
  57. package/i18n/messages-types.d.ts +1 -0
  58. package/i18n/messages-types.d.ts.map +1 -1
  59. package/i18n/messages-types.js.map +1 -1
  60. package/internal/base-component/styles.scoped.css +1 -1
  61. package/internal/components/focus-lock/utils.d.ts +4 -2
  62. package/internal/components/focus-lock/utils.d.ts.map +1 -1
  63. package/internal/components/focus-lock/utils.js +20 -7
  64. package/internal/components/focus-lock/utils.js.map +1 -1
  65. package/internal/environment.js +2 -2
  66. package/internal/environment.json +2 -2
  67. package/internal/manifest.json +1 -1
  68. package/package.json +1 -1
@@ -18,6 +18,8 @@ type UseDrawersProps = Pick<AppLayoutProps, 'drawers' | 'activeDrawerId' | 'onDr
18
18
  __disableRuntimeDrawers?: boolean;
19
19
  onGlobalDrawerFocus?: (drawerId: string, open: boolean) => void;
20
20
  onAddNewActiveDrawer?: (drawerId: string) => void;
21
+ expandedDrawerId?: string | null;
22
+ setExpandedDrawerId?: (value: string | null) => void;
21
23
  };
22
24
  export declare function useDrawers({
23
25
  drawers,
@@ -25,6 +27,8 @@ export declare function useDrawers({
25
27
  onDrawerChange,
26
28
  onGlobalDrawerFocus,
27
29
  onAddNewActiveDrawer,
30
+ expandedDrawerId,
31
+ setExpandedDrawerId,
28
32
  __disableRuntimeDrawers: disableRuntimeDrawers
29
33
  }: UseDrawersProps, ariaLabels: AppLayoutProps['ariaLabels'], toolsProps: ToolsProps): {
30
34
  ariaLabelsWithDrawers: AppLayoutProps.Labels | undefined;
@@ -53,7 +57,5 @@ export declare function useDrawers({
53
57
  onActiveGlobalDrawersChange: (drawerId: string, {
54
58
  initiatedByUserAction
55
59
  }?: Partial<OnChangeParams>) => void;
56
- expandedDrawerId: string | null;
57
- setExpandedDrawerId: React.Dispatch<React.SetStateAction<string | null>>;
58
60
  };
59
61
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use-drawers.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAkKD,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,GAAG;IAC7F,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF,wBAAgB,UAAU,CACxB,EACE,OAAO,EACP,cAAc,EAAE,wBAAwB,EACxC,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EAAE,qBAAqB,GAC/C,EAAE,eAAe,EAClB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,EACxC,UAAU,EAAE,UAAU;;;;;;;;;;;;;;wCAuBP,MAAM,GAAG,IAAI,8BACC,cAAc;;YAXO,MAAM;cAAQ,MAAM;;4CAyC1D,MAAM,8BACW,QAAQ,cAAc,CAAC;;;EAqGrD"}
1
+ {"version":3,"file":"use-drawers.d.ts","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAkKD,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,GAAG;IAC7F,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,wBAAgB,UAAU,CACxB,EACE,OAAO,EACP,cAAc,EAAE,wBAAwB,EACxC,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EAAE,qBAAqB,GAC/C,EAAE,eAAe,EAClB,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,EACxC,UAAU,EAAE,UAAU;;;;;;;;;;;;;;wCAsBP,MAAM,GAAG,IAAI,8BACC,cAAc;;YAXO,MAAM;cAAQ,MAAM;;4CAyC1D,MAAM,8BACW,QAAQ,cAAc,CAAC;EAmGrD"}
@@ -131,7 +131,7 @@ function applyToolsDrawer(toolsProps, runtimeDrawers) {
131
131
  return drawers;
132
132
  }
133
133
  export const MIN_DRAWER_SIZE = 290;
134
- export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId, onDrawerChange, onGlobalDrawerFocus, onAddNewActiveDrawer, __disableRuntimeDrawers: disableRuntimeDrawers, }, ariaLabels, toolsProps) {
134
+ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId, onDrawerChange, onGlobalDrawerFocus, onAddNewActiveDrawer, expandedDrawerId, setExpandedDrawerId, __disableRuntimeDrawers: disableRuntimeDrawers, }, ariaLabels, toolsProps) {
135
135
  var _a, _b, _c, _d;
136
136
  const [activeDrawerId = null, setActiveDrawerId] = useControllable(controlledActiveDrawerId, onDrawerChange, null, {
137
137
  componentName: 'AppLayout',
@@ -140,7 +140,6 @@ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId,
140
140
  });
141
141
  const [activeGlobalDrawersIds, setActiveGlobalDrawersIds] = useState([]);
142
142
  const [drawerSizes, setDrawerSizes] = useState({});
143
- const [expandedDrawerId, setExpandedDrawerId] = useState(null);
144
143
  // FIFO queue that keeps track of open drawers, where the first element is the most recently opened drawer
145
144
  const drawersOpenQueue = useRef([]);
146
145
  function onActiveDrawerResize({ id, size }) {
@@ -182,7 +181,7 @@ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId,
182
181
  drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== drawerId);
183
182
  fireNonCancelableEvent(drawer === null || drawer === void 0 ? void 0 : drawer.onToggle, { isOpen: false, initiatedByUserAction });
184
183
  if (drawerId === expandedDrawerId) {
185
- setExpandedDrawerId(null);
184
+ setExpandedDrawerId === null || setExpandedDrawerId === void 0 ? void 0 : setExpandedDrawerId(null);
186
185
  }
187
186
  }
188
187
  else if (drawerId) {
@@ -241,8 +240,6 @@ export function useDrawers({ drawers, activeDrawerId: controlledActiveDrawerId,
241
240
  onActiveDrawerChange,
242
241
  onActiveDrawerResize,
243
242
  onActiveGlobalDrawersChange,
244
- expandedDrawerId,
245
- setExpandedDrawerId,
246
243
  };
247
244
  }
248
245
  //# sourceMappingURL=use-drawers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-drawers.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.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, { useEffect, useRef, useState } from 'react';\n\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { DrawersToggledListener } from '../../internal/plugins/controllers/drawers';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { AppLayoutProps } from '../interfaces';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-drawer';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n onToolsToggle: (newOpen: boolean) => void;\n ariaLabels: AppLayoutProps.Labels | undefined;\n disableDrawersMerge?: boolean;\n}\n\nexport interface OnChangeParams {\n initiatedByUserAction: boolean;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps): AppLayoutProps.Drawer | null {\n if (props.toolsHide) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n drawerName: mainLabel ?? '',\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nconst DRAWERS_LIMIT = 2;\n\nconst DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({\n localBefore: [],\n localAfter: [],\n global: [],\n });\n const onLocalDrawerChangeStable = useStableCallback(onActiveDrawerChange);\n const onGlobalDrawersChangeStable = useStableCallback(onActiveGlobalDrawersChange);\n\n const localDrawerWasOpenRef = useRef(false);\n localDrawerWasOpenRef.current = localDrawerWasOpenRef.current || !!activeDrawerId;\n const activeGlobalDrawersIdsRef = useRef<Array<string>>([]);\n activeGlobalDrawersIdsRef.current = activeGlobalDrawersIds;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n const localDrawers = drawers.filter(drawer => drawer.type !== 'global');\n const globalDrawers = drawers.filter(drawer => drawer.type === 'global');\n setRuntimeDrawers(convertRuntimeDrawers(localDrawers, globalDrawers));\n if (!localDrawerWasOpenRef.current) {\n const defaultActiveLocalDrawer = sortByPriority(localDrawers).find(drawer => drawer.defaultActive);\n if (defaultActiveLocalDrawer) {\n onLocalDrawerChangeStable(defaultActiveLocalDrawer.id, { initiatedByUserAction: false });\n }\n }\n\n const drawersNotActiveByDefault = globalDrawers.filter(drawer => !drawer.defaultActive);\n const hasDrawersOpenByUserAction = drawersNotActiveByDefault.find(drawer =>\n activeGlobalDrawersIdsRef.current.includes(drawer.id)\n );\n if (hasDrawersOpenByUserAction || activeGlobalDrawersIdsRef.current.length === DRAWERS_LIMIT) {\n return;\n }\n\n const defaultActiveGlobalDrawers = sortByPriority(globalDrawers).filter(\n drawer => !activeGlobalDrawersIdsRef.current.includes(drawer.id) && drawer.defaultActive\n );\n defaultActiveGlobalDrawers.forEach(drawer => {\n onGlobalDrawersChangeStable(drawer.id, { initiatedByUserAction: false });\n });\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ localBefore: [], localAfter: [], global: [] });\n };\n }, [disableRuntimeDrawers, onGlobalDrawersChangeStable, onLocalDrawerChangeStable]);\n\n return runtimeDrawers;\n}\n\nfunction useDrawerRuntimeOpenClose(\n disableRuntimeDrawers: boolean | undefined,\n localDrawers: AppLayoutProps.Drawer[] | null,\n globalDrawers: AppLayoutProps.Drawer[],\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const onDrawerOpened: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId !== drawerId) {\n onActiveDrawerChange(drawerId, params);\n }\n if (globalDrawer && !activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n const onDrawerClosed: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId === drawerId) {\n onActiveDrawerChange(null, params);\n }\n if (globalDrawer && activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerOpened(onDrawerOpened);\n }, [disableRuntimeDrawers, onDrawerOpened]);\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerClosed(onDrawerClosed);\n }, [disableRuntimeDrawers, onDrawerClosed]);\n}\n\nfunction useDrawerRuntimeResize(\n disableRuntimeDrawers: boolean | undefined,\n onActiveDrawerResize: ({ id, size }: { id: string; size: number }) => void\n) {\n const onRuntimeDrawerResize = useStableCallback((drawerId: string, size: number) => {\n onActiveDrawerResize({ id: drawerId, size });\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n\n return awsuiPluginsInternal.appLayout.onDrawerResize(onRuntimeDrawerResize);\n }, [disableRuntimeDrawers, onRuntimeDrawerResize]);\n}\n\nfunction applyToolsDrawer(toolsProps: ToolsProps, runtimeDrawers: DrawersLayout) {\n const drawers = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter];\n if (drawers.length === 0 && toolsProps.disableDrawersMerge) {\n return null;\n }\n const toolsItem = getToolsDrawerItem(toolsProps);\n if (toolsItem) {\n drawers.unshift(toolsItem);\n }\n\n return drawers;\n}\n\nexport const MIN_DRAWER_SIZE = 290;\n\ntype UseDrawersProps = Pick<AppLayoutProps, 'drawers' | 'activeDrawerId' | 'onDrawerChange'> & {\n __disableRuntimeDrawers?: boolean;\n onGlobalDrawerFocus?: (drawerId: string, open: boolean) => void;\n onAddNewActiveDrawer?: (drawerId: string) => void;\n};\n\nexport function useDrawers(\n {\n drawers,\n activeDrawerId: controlledActiveDrawerId,\n onDrawerChange,\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: UseDrawersProps,\n ariaLabels: AppLayoutProps['ariaLabels'],\n toolsProps: ToolsProps\n) {\n const [activeDrawerId = null, setActiveDrawerId] = useControllable(controlledActiveDrawerId, onDrawerChange, null, {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n });\n const [activeGlobalDrawersIds, setActiveGlobalDrawersIds] = useState<Array<string>>([]);\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n const [expandedDrawerId, setExpandedDrawerId] = useState<string | null>(null);\n // FIFO queue that keeps track of open drawers, where the first element is the most recently opened drawer\n const drawersOpenQueue = useRef<Array<string>>([]);\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n if (activeDrawer?.id === id) {\n fireNonCancelableEvent(activeDrawer?.onResize, { id, size });\n }\n const activeGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === id);\n fireNonCancelableEvent(activeGlobalDrawer?.onResize, { id, size });\n }\n\n function onActiveDrawerChange(\n newDrawerId: string | null,\n { initiatedByUserAction }: OnChangeParams = DEFAULT_ON_CHANGE_PARAMS\n ) {\n setActiveDrawerId(newDrawerId);\n if (newDrawerId) {\n onAddNewActiveDrawer?.(newDrawerId);\n }\n if (hasOwnDrawers) {\n fireNonCancelableEvent(onDrawerChange, { activeDrawerId: newDrawerId });\n } else if (!toolsProps.toolsHide) {\n toolsProps.onToolsToggle(newDrawerId === TOOLS_DRAWER_ID);\n }\n\n if (newDrawerId) {\n drawersOpenQueue.current = [newDrawerId, ...drawersOpenQueue.current];\n const newDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === newDrawerId\n );\n fireNonCancelableEvent(newDrawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n\n if (activeDrawerId) {\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== activeDrawerId);\n const activeDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === activeDrawerId\n );\n fireNonCancelableEvent(activeDrawer?.onToggle, { isOpen: false, initiatedByUserAction });\n }\n }\n\n function onActiveGlobalDrawersChange(\n drawerId: string,\n { initiatedByUserAction }: Partial<OnChangeParams> = DEFAULT_ON_CHANGE_PARAMS\n ) {\n const drawer = runtimeGlobalDrawers.find(drawer => drawer.id === drawerId);\n if (activeGlobalDrawersIds.includes(drawerId)) {\n setActiveGlobalDrawersIds(currentState => currentState.filter(id => id !== drawerId));\n onGlobalDrawerFocus?.(drawerId, false);\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== drawerId);\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: false, initiatedByUserAction });\n if (drawerId === expandedDrawerId) {\n setExpandedDrawerId(null);\n }\n } else if (drawerId) {\n onAddNewActiveDrawer?.(drawerId);\n setActiveGlobalDrawersIds(currentState => [drawerId, ...currentState].slice(0, DRAWERS_LIMIT!));\n onGlobalDrawerFocus?.(drawerId, true);\n drawersOpenQueue.current = [drawerId, ...drawersOpenQueue.current];\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n }\n\n const hasOwnDrawers = !!drawers;\n // support toolsOpen in runtime-drawers-only mode\n let activeDrawerIdResolved =\n toolsProps?.toolsOpen && !hasOwnDrawers\n ? TOOLS_DRAWER_ID\n : activeDrawerId !== TOOLS_DRAWER_ID\n ? activeDrawerId\n : null;\n const runtimeDrawers = useRuntimeDrawers(\n disableRuntimeDrawers,\n activeDrawerIdResolved,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n const { localBefore, localAfter, global: runtimeGlobalDrawers } = runtimeDrawers;\n const combinedLocalDrawers = drawers\n ? [...localBefore, ...drawers, ...localAfter]\n : applyToolsDrawer(toolsProps, runtimeDrawers);\n const activeDrawer = combinedLocalDrawers?.find(drawer => drawer.id === activeDrawerIdResolved);\n // ensure that id is only defined when the drawer exists\n activeDrawerIdResolved = activeDrawer?.id ?? null;\n const activeGlobalDrawers = runtimeGlobalDrawers.filter(drawer => activeGlobalDrawersIds.includes(drawer.id));\n\n useDrawerRuntimeOpenClose(\n disableRuntimeDrawers,\n combinedLocalDrawers,\n runtimeGlobalDrawers,\n activeDrawerId,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n\n useDrawerRuntimeResize(disableRuntimeDrawers, onActiveDrawerResize);\n\n const activeDrawerSize = activeDrawerIdResolved\n ? (drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth)\n : toolsProps.toolsWidth;\n const activeGlobalDrawersSizes: Record<string, number> = activeGlobalDrawersIds.reduce(\n (acc, currentGlobalDrawerId) => {\n const currentGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === currentGlobalDrawerId);\n return {\n ...acc,\n [currentGlobalDrawerId]:\n drawerSizes[currentGlobalDrawerId] ?? currentGlobalDrawer?.defaultSize ?? MIN_DRAWER_SIZE,\n };\n },\n {}\n );\n const minGlobalDrawersSizes: Record<string, number> = runtimeGlobalDrawers.reduce((acc, globalDrawer) => {\n return {\n ...acc,\n [globalDrawer.id]: Math.min(globalDrawer.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE),\n };\n }, {});\n const minDrawerSize = Math.min(\n toolsProps?.toolsOpen ? toolsProps.toolsWidth : (activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE),\n MIN_DRAWER_SIZE\n );\n\n return {\n ariaLabelsWithDrawers: ariaLabels,\n drawers: combinedLocalDrawers || undefined,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n globalDrawers: runtimeGlobalDrawers,\n activeGlobalDrawers: activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n activeDrawerSize,\n minDrawerSize,\n minGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n expandedDrawerId,\n setExpandedDrawerId,\n };\n}\n"]}
1
+ {"version":3,"file":"use-drawers.js","sourceRoot":"","sources":["../../../../src/app-layout/utils/use-drawers.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, { useEffect, useRef, useState } from 'react';\n\nimport { useStableCallback } from '@cloudscape-design/component-toolkit/internal';\n\nimport { fireNonCancelableEvent } from '../../internal/events';\nimport { useControllable } from '../../internal/hooks/use-controllable';\nimport { awsuiPluginsInternal } from '../../internal/plugins/api';\nimport { DrawersToggledListener } from '../../internal/plugins/controllers/drawers';\nimport { sortByPriority } from '../../internal/plugins/helpers/utils';\nimport { AppLayoutProps } from '../interfaces';\nimport { convertRuntimeDrawers, DrawersLayout } from '../runtime-drawer';\nimport { togglesConfig } from '../toggles';\n\nexport const TOOLS_DRAWER_ID = 'awsui-internal-tools';\n\ninterface ToolsProps {\n toolsHide: boolean | undefined;\n toolsOpen: boolean | undefined;\n toolsWidth: number;\n tools: React.ReactNode | undefined;\n onToolsToggle: (newOpen: boolean) => void;\n ariaLabels: AppLayoutProps.Labels | undefined;\n disableDrawersMerge?: boolean;\n}\n\nexport interface OnChangeParams {\n initiatedByUserAction: boolean;\n}\n\nfunction getToolsDrawerItem(props: ToolsProps): AppLayoutProps.Drawer | null {\n if (props.toolsHide) {\n return null;\n }\n const { iconName, getLabels } = togglesConfig.tools;\n const { mainLabel, closeLabel, openLabel } = getLabels(props.ariaLabels);\n return {\n id: TOOLS_DRAWER_ID,\n content: props.tools,\n resizable: false,\n ariaLabels: {\n triggerButton: openLabel,\n closeButton: closeLabel,\n drawerName: mainLabel ?? '',\n },\n trigger: {\n iconName: iconName,\n },\n };\n}\n\nconst DRAWERS_LIMIT = 2;\n\nconst DEFAULT_ON_CHANGE_PARAMS = { initiatedByUserAction: true };\n\nfunction useRuntimeDrawers(\n disableRuntimeDrawers: boolean | undefined,\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const [runtimeDrawers, setRuntimeDrawers] = useState<DrawersLayout>({\n localBefore: [],\n localAfter: [],\n global: [],\n });\n const onLocalDrawerChangeStable = useStableCallback(onActiveDrawerChange);\n const onGlobalDrawersChangeStable = useStableCallback(onActiveGlobalDrawersChange);\n\n const localDrawerWasOpenRef = useRef(false);\n localDrawerWasOpenRef.current = localDrawerWasOpenRef.current || !!activeDrawerId;\n const activeGlobalDrawersIdsRef = useRef<Array<string>>([]);\n activeGlobalDrawersIdsRef.current = activeGlobalDrawersIds;\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n const unsubscribe = awsuiPluginsInternal.appLayout.onDrawersRegistered(drawers => {\n const localDrawers = drawers.filter(drawer => drawer.type !== 'global');\n const globalDrawers = drawers.filter(drawer => drawer.type === 'global');\n setRuntimeDrawers(convertRuntimeDrawers(localDrawers, globalDrawers));\n if (!localDrawerWasOpenRef.current) {\n const defaultActiveLocalDrawer = sortByPriority(localDrawers).find(drawer => drawer.defaultActive);\n if (defaultActiveLocalDrawer) {\n onLocalDrawerChangeStable(defaultActiveLocalDrawer.id, { initiatedByUserAction: false });\n }\n }\n\n const drawersNotActiveByDefault = globalDrawers.filter(drawer => !drawer.defaultActive);\n const hasDrawersOpenByUserAction = drawersNotActiveByDefault.find(drawer =>\n activeGlobalDrawersIdsRef.current.includes(drawer.id)\n );\n if (hasDrawersOpenByUserAction || activeGlobalDrawersIdsRef.current.length === DRAWERS_LIMIT) {\n return;\n }\n\n const defaultActiveGlobalDrawers = sortByPriority(globalDrawers).filter(\n drawer => !activeGlobalDrawersIdsRef.current.includes(drawer.id) && drawer.defaultActive\n );\n defaultActiveGlobalDrawers.forEach(drawer => {\n onGlobalDrawersChangeStable(drawer.id, { initiatedByUserAction: false });\n });\n });\n return () => {\n unsubscribe();\n setRuntimeDrawers({ localBefore: [], localAfter: [], global: [] });\n };\n }, [disableRuntimeDrawers, onGlobalDrawersChangeStable, onLocalDrawerChangeStable]);\n\n return runtimeDrawers;\n}\n\nfunction useDrawerRuntimeOpenClose(\n disableRuntimeDrawers: boolean | undefined,\n localDrawers: AppLayoutProps.Drawer[] | null,\n globalDrawers: AppLayoutProps.Drawer[],\n activeDrawerId: string | null,\n onActiveDrawerChange: (newDrawerId: string | null, { initiatedByUserAction }: OnChangeParams) => void,\n activeGlobalDrawersIds: Array<string>,\n onActiveGlobalDrawersChange: (newDrawerId: string, { initiatedByUserAction }: OnChangeParams) => void\n) {\n const onDrawerOpened: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId !== drawerId) {\n onActiveDrawerChange(drawerId, params);\n }\n if (globalDrawer && !activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n const onDrawerClosed: DrawersToggledListener = useStableCallback((drawerId, params = DEFAULT_ON_CHANGE_PARAMS) => {\n const localDrawer = localDrawers?.find(drawer => drawer.id === drawerId);\n const globalDrawer = globalDrawers.find(drawer => drawer.id === drawerId);\n if (localDrawer && activeDrawerId === drawerId) {\n onActiveDrawerChange(null, params);\n }\n if (globalDrawer && activeGlobalDrawersIds.includes(drawerId)) {\n onActiveGlobalDrawersChange(drawerId, params);\n }\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerOpened(onDrawerOpened);\n }, [disableRuntimeDrawers, onDrawerOpened]);\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n return awsuiPluginsInternal.appLayout.onDrawerClosed(onDrawerClosed);\n }, [disableRuntimeDrawers, onDrawerClosed]);\n}\n\nfunction useDrawerRuntimeResize(\n disableRuntimeDrawers: boolean | undefined,\n onActiveDrawerResize: ({ id, size }: { id: string; size: number }) => void\n) {\n const onRuntimeDrawerResize = useStableCallback((drawerId: string, size: number) => {\n onActiveDrawerResize({ id: drawerId, size });\n });\n\n useEffect(() => {\n if (disableRuntimeDrawers) {\n return;\n }\n\n return awsuiPluginsInternal.appLayout.onDrawerResize(onRuntimeDrawerResize);\n }, [disableRuntimeDrawers, onRuntimeDrawerResize]);\n}\n\nfunction applyToolsDrawer(toolsProps: ToolsProps, runtimeDrawers: DrawersLayout) {\n const drawers = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter];\n if (drawers.length === 0 && toolsProps.disableDrawersMerge) {\n return null;\n }\n const toolsItem = getToolsDrawerItem(toolsProps);\n if (toolsItem) {\n drawers.unshift(toolsItem);\n }\n\n return drawers;\n}\n\nexport const MIN_DRAWER_SIZE = 290;\n\ntype UseDrawersProps = Pick<AppLayoutProps, 'drawers' | 'activeDrawerId' | 'onDrawerChange'> & {\n __disableRuntimeDrawers?: boolean;\n onGlobalDrawerFocus?: (drawerId: string, open: boolean) => void;\n onAddNewActiveDrawer?: (drawerId: string) => void;\n expandedDrawerId?: string | null;\n setExpandedDrawerId?: (value: string | null) => void;\n};\n\nexport function useDrawers(\n {\n drawers,\n activeDrawerId: controlledActiveDrawerId,\n onDrawerChange,\n onGlobalDrawerFocus,\n onAddNewActiveDrawer,\n expandedDrawerId,\n setExpandedDrawerId,\n __disableRuntimeDrawers: disableRuntimeDrawers,\n }: UseDrawersProps,\n ariaLabels: AppLayoutProps['ariaLabels'],\n toolsProps: ToolsProps\n) {\n const [activeDrawerId = null, setActiveDrawerId] = useControllable(controlledActiveDrawerId, onDrawerChange, null, {\n componentName: 'AppLayout',\n controlledProp: 'activeDrawerId',\n changeHandler: 'onChange',\n });\n const [activeGlobalDrawersIds, setActiveGlobalDrawersIds] = useState<Array<string>>([]);\n const [drawerSizes, setDrawerSizes] = useState<Record<string, number>>({});\n // FIFO queue that keeps track of open drawers, where the first element is the most recently opened drawer\n const drawersOpenQueue = useRef<Array<string>>([]);\n\n function onActiveDrawerResize({ id, size }: { id: string; size: number }) {\n setDrawerSizes(oldSizes => ({ ...oldSizes, [id]: size }));\n if (activeDrawer?.id === id) {\n fireNonCancelableEvent(activeDrawer?.onResize, { id, size });\n }\n const activeGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === id);\n fireNonCancelableEvent(activeGlobalDrawer?.onResize, { id, size });\n }\n\n function onActiveDrawerChange(\n newDrawerId: string | null,\n { initiatedByUserAction }: OnChangeParams = DEFAULT_ON_CHANGE_PARAMS\n ) {\n setActiveDrawerId(newDrawerId);\n if (newDrawerId) {\n onAddNewActiveDrawer?.(newDrawerId);\n }\n if (hasOwnDrawers) {\n fireNonCancelableEvent(onDrawerChange, { activeDrawerId: newDrawerId });\n } else if (!toolsProps.toolsHide) {\n toolsProps.onToolsToggle(newDrawerId === TOOLS_DRAWER_ID);\n }\n\n if (newDrawerId) {\n drawersOpenQueue.current = [newDrawerId, ...drawersOpenQueue.current];\n const newDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === newDrawerId\n );\n fireNonCancelableEvent(newDrawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n\n if (activeDrawerId) {\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== activeDrawerId);\n const activeDrawer = [...runtimeDrawers.localBefore, ...runtimeDrawers.localAfter]?.find(\n drawer => drawer.id === activeDrawerId\n );\n fireNonCancelableEvent(activeDrawer?.onToggle, { isOpen: false, initiatedByUserAction });\n }\n }\n\n function onActiveGlobalDrawersChange(\n drawerId: string,\n { initiatedByUserAction }: Partial<OnChangeParams> = DEFAULT_ON_CHANGE_PARAMS\n ) {\n const drawer = runtimeGlobalDrawers.find(drawer => drawer.id === drawerId);\n if (activeGlobalDrawersIds.includes(drawerId)) {\n setActiveGlobalDrawersIds(currentState => currentState.filter(id => id !== drawerId));\n onGlobalDrawerFocus?.(drawerId, false);\n drawersOpenQueue.current = drawersOpenQueue.current.filter(id => id !== drawerId);\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: false, initiatedByUserAction });\n if (drawerId === expandedDrawerId) {\n setExpandedDrawerId?.(null);\n }\n } else if (drawerId) {\n onAddNewActiveDrawer?.(drawerId);\n setActiveGlobalDrawersIds(currentState => [drawerId, ...currentState].slice(0, DRAWERS_LIMIT!));\n onGlobalDrawerFocus?.(drawerId, true);\n drawersOpenQueue.current = [drawerId, ...drawersOpenQueue.current];\n fireNonCancelableEvent(drawer?.onToggle, { isOpen: true, initiatedByUserAction });\n }\n }\n\n const hasOwnDrawers = !!drawers;\n // support toolsOpen in runtime-drawers-only mode\n let activeDrawerIdResolved =\n toolsProps?.toolsOpen && !hasOwnDrawers\n ? TOOLS_DRAWER_ID\n : activeDrawerId !== TOOLS_DRAWER_ID\n ? activeDrawerId\n : null;\n const runtimeDrawers = useRuntimeDrawers(\n disableRuntimeDrawers,\n activeDrawerIdResolved,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n const { localBefore, localAfter, global: runtimeGlobalDrawers } = runtimeDrawers;\n const combinedLocalDrawers = drawers\n ? [...localBefore, ...drawers, ...localAfter]\n : applyToolsDrawer(toolsProps, runtimeDrawers);\n const activeDrawer = combinedLocalDrawers?.find(drawer => drawer.id === activeDrawerIdResolved);\n // ensure that id is only defined when the drawer exists\n activeDrawerIdResolved = activeDrawer?.id ?? null;\n const activeGlobalDrawers = runtimeGlobalDrawers.filter(drawer => activeGlobalDrawersIds.includes(drawer.id));\n\n useDrawerRuntimeOpenClose(\n disableRuntimeDrawers,\n combinedLocalDrawers,\n runtimeGlobalDrawers,\n activeDrawerId,\n onActiveDrawerChange,\n activeGlobalDrawersIds,\n onActiveGlobalDrawersChange\n );\n\n useDrawerRuntimeResize(disableRuntimeDrawers, onActiveDrawerResize);\n\n const activeDrawerSize = activeDrawerIdResolved\n ? (drawerSizes[activeDrawerIdResolved] ?? activeDrawer?.defaultSize ?? toolsProps.toolsWidth)\n : toolsProps.toolsWidth;\n const activeGlobalDrawersSizes: Record<string, number> = activeGlobalDrawersIds.reduce(\n (acc, currentGlobalDrawerId) => {\n const currentGlobalDrawer = runtimeGlobalDrawers.find(drawer => drawer.id === currentGlobalDrawerId);\n return {\n ...acc,\n [currentGlobalDrawerId]:\n drawerSizes[currentGlobalDrawerId] ?? currentGlobalDrawer?.defaultSize ?? MIN_DRAWER_SIZE,\n };\n },\n {}\n );\n const minGlobalDrawersSizes: Record<string, number> = runtimeGlobalDrawers.reduce((acc, globalDrawer) => {\n return {\n ...acc,\n [globalDrawer.id]: Math.min(globalDrawer.defaultSize ?? MIN_DRAWER_SIZE, MIN_DRAWER_SIZE),\n };\n }, {});\n const minDrawerSize = Math.min(\n toolsProps?.toolsOpen ? toolsProps.toolsWidth : (activeDrawer?.defaultSize ?? MIN_DRAWER_SIZE),\n MIN_DRAWER_SIZE\n );\n\n return {\n ariaLabelsWithDrawers: ariaLabels,\n drawers: combinedLocalDrawers || undefined,\n activeDrawer,\n activeDrawerId: activeDrawerIdResolved,\n globalDrawers: runtimeGlobalDrawers,\n activeGlobalDrawers: activeGlobalDrawers,\n activeGlobalDrawersIds,\n activeGlobalDrawersSizes,\n activeDrawerSize,\n minDrawerSize,\n minGlobalDrawersSizes,\n drawerSizes,\n drawersOpenQueue,\n onActiveDrawerChange,\n onActiveDrawerResize,\n onActiveGlobalDrawersChange,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"global-bottom-drawer.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOzE,wBAAgB,4BAA4B,CAAC,EAAE,eAAe,EAAE,EAAE;IAAE,eAAe,EAAE,wBAAwB,CAAA;CAAE,eA4B9G;AAED,UAAU,wCAAwC;IAChD,eAAe,EAAE,wBAAwB,CAAC;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,cAAc,GAAG,SAAS,CAAC;CAC1C;AAKD,iBAAS,yCAAyC,CAAC,EACjD,eAAe,EACf,IAAI,EACJ,YAAY,GACb,EAAE,wCAAwC,eAoP1C;AAED,eAAe,yCAAyC,CAAC"}
1
+ {"version":3,"file":"global-bottom-drawer.d.ts","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOzE,wBAAgB,4BAA4B,CAAC,EAAE,eAAe,EAAE,EAAE;IAAE,eAAe,EAAE,wBAAwB,CAAA;CAAE,eA4B9G;AAED,UAAU,wCAAwC;IAChD,eAAe,EAAE,wBAAwB,CAAC;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,cAAc,GAAG,SAAS,CAAC;CAC1C;AAKD,iBAAS,yCAAyC,CAAC,EACjD,eAAe,EACf,IAAI,EACJ,YAAY,GACb,EAAE,wCAAwC,eA4P1C;AAED,eAAe,yCAAyC,CAAC"}
@@ -34,6 +34,7 @@ function AppLayoutGlobalBottomDrawerImplementation({ widgetizedState, show, acti
34
34
  var _a, _b, _c, _d, _e, _f;
35
35
  const { ariaLabels, isMobile, onActiveGlobalBottomDrawerChange, onActiveBottomDrawerResize, minGlobalBottomDrawerSize, activeGlobalBottomDrawerSize, drawersOpenQueue, expandedDrawerId, setExpandedDrawerId, activeAiDrawer, bottomDrawersFocusControl, getMaxGlobalBottomDrawerHeight, reportBottomDrawerSize, verticalOffsets, placement, } = widgetizedState;
36
36
  const drawerRef = useRef(null);
37
+ const headerRef = useRef(null);
37
38
  const activeDrawerId = (_a = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.id) !== null && _a !== void 0 ? _a : '';
38
39
  const computedAriaLabels = {
39
40
  closeButton: activeDrawer ? (_b = activeDrawer.ariaLabels) === null || _b === void 0 ? void 0 : _b.closeButton : ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.toolsClose,
@@ -125,7 +126,7 @@ function AppLayoutGlobalBottomDrawerImplementation({ widgetizedState, show, acti
125
126
  reportBottomDrawerSize(size);
126
127
  }, [reportBottomDrawerSize, size]);
127
128
  return (React.createElement(Transition, { nodeRef: drawerRef, in: show || isExpanded, appear: show || isExpanded, mountOnEnter: true, timeout: 250 }, state => {
128
- var _a, _b;
129
+ var _a, _b, _c, _d, _e;
129
130
  return (React.createElement("aside", { id: activeDrawerId, "aria-hidden": !show, "aria-label": computedAriaLabels.content, className: clsx(styles.drawer, styles['bottom-drawer'], styles[state], !animationDisabled && sharedStyles['with-motion-vertical'], !animationDisabled && isExpanded && styles['with-expanded-motion'], {
130
131
  [styles['drawer-hidden']]: !show && state === 'exited',
131
132
  [styles['last-opened']]: (!activeAiDrawer && lastOpenedDrawerId === activeDrawerId) || isExpanded,
@@ -155,30 +156,34 @@ function AppLayoutGlobalBottomDrawerImplementation({ widgetizedState, show, acti
155
156
  // Prevents receiving focus in Firefox
156
157
  React.createElement("div", { className: styles['drawer-slider'], tabIndex: -1 },
157
158
  React.createElement(PanelResizeHandle, { ref: refs === null || refs === void 0 ? void 0 : refs.slider, position: "bottom", className: testutilStyles['drawers-slider'], ariaLabel: (_a = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.ariaLabels) === null || _a === void 0 ? void 0 : _a.resizeHandle, tooltipText: (_b = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.ariaLabels) === null || _b === void 0 ? void 0 : _b.resizeHandleTooltipText, ariaValuenow: resizeProps.relativeSize, onKeyDown: resizeProps.onKeyDown, onDirectionClick: resizeProps.onDirectionClick, onPointerDown: resizeProps.onPointerDown }))),
159
+ React.createElement("header", { className: styles['bottom-drawer-content-header'], ref: headerRef },
160
+ React.createElement("div", { className: styles['bottom-drawer-content-header-content'] }, (_c = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.header) !== null && _c !== void 0 ? _c : React.createElement("div", null),
161
+ React.createElement("div", { className: styles['bottom-drawer-actions'] },
162
+ React.createElement(ButtonGroup, { dropdownExpandToViewport: false, variant: "icon", onItemClick: event => {
163
+ var _a;
164
+ switch (event.detail.id) {
165
+ case 'close':
166
+ onActiveGlobalBottomDrawerChange(null, { initiatedByUserAction: true });
167
+ break;
168
+ case 'expand':
169
+ setExpandedDrawerId(isExpanded ? null : activeDrawerId);
170
+ break;
171
+ default:
172
+ (_a = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.onHeaderActionClick) === null || _a === void 0 ? void 0 : _a.call(activeDrawer, event);
173
+ }
174
+ }, ariaLabel: "Global panel actions", items: drawerActions, __internalRootRef: (root) => {
175
+ if (!root) {
176
+ return;
177
+ }
178
+ refs.close = {
179
+ current: root.querySelector('[data-itemid="close"]'),
180
+ };
181
+ } })))),
158
182
  React.createElement("div", { className: clsx(styles['drawer-content-container'], sharedStyles['with-motion-horizontal']), "data-testid": `awsui-app-layout-drawer-content-${activeDrawerId}` },
159
- React.createElement("div", { className: styles['drawer-actions'] },
160
- React.createElement(ButtonGroup, { dropdownExpandToViewport: false, variant: "icon", onItemClick: event => {
161
- var _a;
162
- switch (event.detail.id) {
163
- case 'close':
164
- onActiveGlobalBottomDrawerChange(null, { initiatedByUserAction: true });
165
- break;
166
- case 'expand':
167
- setExpandedDrawerId(isExpanded ? null : activeDrawerId);
168
- break;
169
- default:
170
- (_a = activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.onHeaderActionClick) === null || _a === void 0 ? void 0 : _a.call(activeDrawer, event);
171
- }
172
- }, ariaLabel: "Global panel actions", items: drawerActions, __internalRootRef: (root) => {
173
- if (!root) {
174
- return;
175
- }
176
- refs.close = { current: root.querySelector('[data-itemid="close"]') };
177
- } })),
178
183
  React.createElement("div", { className: styles['drawer-content'], style: {
179
184
  blockSize: isMobile || isExpanded
180
185
  ? drawerFullScreenHeight
181
- : `${size - GAP_HEIGHT - RESIZE_HANDLER_HEIGHT}px`,
186
+ : `${size - GAP_HEIGHT - RESIZE_HANDLER_HEIGHT - ((_e = (_d = headerRef === null || headerRef === void 0 ? void 0 : headerRef.current) === null || _d === void 0 ? void 0 : _d.clientHeight) !== null && _e !== void 0 ? _e : 0)}px`,
182
187
  } }, activeDrawer === null || activeDrawer === void 0 ? void 0 : activeDrawer.content)))));
183
188
  }));
184
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"global-bottom-drawer.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.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, { useEffect, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { InternalItemOrGroup } from '../../../button-group/interfaces';\nimport ButtonGroup from '../../../button-group/internal';\nimport PanelResizeHandle from '../../../internal/components/panel-resize-handle';\nimport customCssProps from '../../../internal/generated/custom-css-properties';\nimport { usePrevious } from '../../../internal/hooks/use-previous';\nimport { getLimitedValue } from '../../../split-panel/utils/size-utils';\nimport { Focusable } from '../../utils/use-focus-control';\nimport { getDrawerStyles } from '../compute-layout';\nimport { AppLayoutWidgetizedState, InternalDrawer } from '../interfaces';\nimport { useResize } from './use-resize';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport function AppLayoutBottomDrawerWrapper({ widgetizedState }: { widgetizedState: AppLayoutWidgetizedState }) {\n const { activeGlobalBottomDrawerId, bottomDrawers } = widgetizedState;\n const openBottomDrawersHistory = useRef<Set<string>>(new Set());\n useEffect(() => {\n if (activeGlobalBottomDrawerId) {\n openBottomDrawersHistory.current.add(activeGlobalBottomDrawerId);\n }\n }, [activeGlobalBottomDrawerId]);\n\n return (\n <>\n {bottomDrawers.map(drawer => {\n return (\n <AppLayoutGlobalBottomDrawerImplementation\n key={drawer.id}\n activeDrawer={\n activeGlobalBottomDrawerId === drawer.id ||\n (drawer.preserveInactiveContent && openBottomDrawersHistory.current.has(drawer.id))\n ? drawer\n : undefined\n }\n show={activeGlobalBottomDrawerId === drawer.id}\n widgetizedState={widgetizedState}\n />\n );\n })}\n </>\n );\n}\n\ninterface AppLayoutGlobalDrawerImplementationProps {\n widgetizedState: AppLayoutWidgetizedState;\n show: boolean;\n activeDrawer: InternalDrawer | undefined;\n}\n\nconst GAP_HEIGHT = 10;\nconst RESIZE_HANDLER_HEIGHT = 18;\n\nfunction AppLayoutGlobalBottomDrawerImplementation({\n widgetizedState,\n show,\n activeDrawer,\n}: AppLayoutGlobalDrawerImplementationProps) {\n const {\n ariaLabels,\n isMobile,\n onActiveGlobalBottomDrawerChange,\n onActiveBottomDrawerResize,\n minGlobalBottomDrawerSize,\n activeGlobalBottomDrawerSize,\n drawersOpenQueue,\n expandedDrawerId,\n setExpandedDrawerId,\n activeAiDrawer,\n bottomDrawersFocusControl,\n getMaxGlobalBottomDrawerHeight,\n reportBottomDrawerSize,\n verticalOffsets,\n placement,\n } = widgetizedState;\n const drawerRef = useRef<HTMLDivElement>(null);\n const activeDrawerId = activeDrawer?.id ?? '';\n\n const computedAriaLabels = {\n closeButton: activeDrawer ? activeDrawer.ariaLabels?.closeButton : ariaLabels?.toolsClose,\n content: activeDrawer ? activeDrawer.ariaLabels?.drawerName : ariaLabels?.tools,\n };\n\n const { drawerTopOffset: mobileDrawerTopOffset, drawerHeight: drawerFullScreenHeight } = getDrawerStyles(\n verticalOffsets,\n isMobile,\n placement\n );\n const activeDrawerSize = activeGlobalBottomDrawerSize ?? 0;\n const minDrawerSize = minGlobalBottomDrawerSize ?? 0;\n const maxDrawerSize = getMaxGlobalBottomDrawerHeight();\n const refs = bottomDrawersFocusControl.refs;\n const resizeProps = useResize({\n currentWidth: activeDrawerSize,\n minWidth: minDrawerSize,\n maxWidth: maxDrawerSize,\n panelRef: drawerRef,\n handleRef: refs?.slider,\n onResize: size => onActiveBottomDrawerResize({ id: activeDrawerId!, size }),\n position: 'bottom',\n });\n const size = getLimitedValue(minDrawerSize, activeDrawerSize, maxDrawerSize);\n const lastOpenedDrawerId = drawersOpenQueue.length ? drawersOpenQueue[0] : null;\n const hasTriggerButton = !!activeDrawer?.trigger;\n const isExpanded = activeDrawer?.isExpandable && expandedDrawerId === activeDrawerId;\n const wasExpanded = usePrevious(isExpanded);\n const animationDisabled =\n (activeDrawer?.defaultActive && !drawersOpenQueue.includes(activeDrawer.id)) || (wasExpanded && !isExpanded);\n\n // Prevent main content scroll when bottom drawer opens with animations\n useEffect(() => {\n if (show && drawerRef.current) {\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const abortController = new AbortController();\n\n // Temporarily prevent scrolling during animation\n const preventScroll = () => {\n document.documentElement.scrollTop = scrollTop;\n document.body.scrollTop = scrollTop;\n };\n\n // Handle transition end to remove scroll prevention\n const handleTransitionEnd = (event: TransitionEvent) => {\n // Only handle transitions on the drawer element itself\n if (event.target === drawerRef.current) {\n abortController.abort();\n }\n };\n\n // Add scroll prevention during animation\n document.addEventListener('scroll', preventScroll, {\n passive: false,\n signal: abortController.signal,\n });\n\n drawerRef.current.addEventListener('transitionend', handleTransitionEnd, {\n signal: abortController.signal,\n });\n\n return () => {\n abortController.abort();\n };\n }\n }, [show]);\n\n let drawerActions: ReadonlyArray<InternalItemOrGroup> = [\n {\n type: 'icon-button',\n id: 'close',\n iconName: isMobile ? 'close' : 'angle-down',\n text: computedAriaLabels.closeButton ?? '',\n analyticsAction: 'close',\n },\n ];\n if (!isMobile && activeDrawer?.isExpandable) {\n drawerActions = [\n {\n type: 'icon-toggle-button',\n id: 'expand',\n iconName: isExpanded ? 'shrink' : 'expand',\n text: activeDrawer?.ariaLabels?.expandedModeButton ?? '',\n pressed: !!isExpanded,\n analyticsAction: isExpanded ? 'expand' : 'collapse',\n },\n ...drawerActions,\n ];\n }\n if (activeDrawer?.headerActions) {\n drawerActions = [\n {\n type: 'group',\n text: 'Actions',\n items: activeDrawer.headerActions!,\n },\n ...drawerActions,\n ];\n }\n\n useEffect(() => {\n reportBottomDrawerSize(size);\n }, [reportBottomDrawerSize, size]);\n\n return (\n <Transition\n nodeRef={drawerRef}\n in={show || isExpanded}\n appear={show || isExpanded}\n mountOnEnter={true}\n timeout={250}\n >\n {state => {\n return (\n <aside\n id={activeDrawerId}\n aria-hidden={!show}\n aria-label={computedAriaLabels.content}\n className={clsx(\n styles.drawer,\n styles['bottom-drawer'],\n styles[state],\n !animationDisabled && sharedStyles['with-motion-vertical'],\n !animationDisabled && isExpanded && styles['with-expanded-motion'],\n {\n [styles['drawer-hidden']]: !show && state === 'exited',\n [styles['last-opened']]: (!activeAiDrawer && lastOpenedDrawerId === activeDrawerId) || isExpanded,\n [testutilStyles['active-drawer']]: show,\n [styles['drawer-expanded']]: isExpanded,\n }\n )}\n ref={drawerRef}\n onBlur={e => {\n // Drawers with trigger buttons follow this restore focus logic:\n // If a previously focused element exists, restore focus on it; otherwise, focus on the associated trigger button.\n // This function resets the previously focused element.\n // If the drawer has no trigger button and loses focus on the previously focused element, it defaults to document.body,\n // which ideally should never happen.\n if (!hasTriggerButton) {\n return;\n }\n\n if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {\n bottomDrawersFocusControl.loseFocus();\n }\n }}\n style={{\n ...(isMobile && {\n blockSize: drawerFullScreenHeight,\n insetBlockStart: mobileDrawerTopOffset,\n }),\n ...(!isMobile && {\n [customCssProps.bottomDrawerSize]: `${['entering', 'entered'].includes(state) ? (isExpanded ? drawerFullScreenHeight : size + 'px') : 0}`,\n }),\n }}\n data-testid={`awsui-app-layout-drawer-${activeDrawerId}`}\n >\n <div className={clsx(styles['global-drawer-wrapper'])}>\n {!isMobile && !isExpanded && <div className={styles['drawer-gap']} />}\n {!isMobile && activeDrawer?.resizable && !isExpanded && (\n // Prevents receiving focus in Firefox\n <div className={styles['drawer-slider']} tabIndex={-1}>\n <PanelResizeHandle\n ref={refs?.slider}\n position=\"bottom\"\n className={testutilStyles['drawers-slider']}\n ariaLabel={activeDrawer?.ariaLabels?.resizeHandle}\n tooltipText={activeDrawer?.ariaLabels?.resizeHandleTooltipText}\n ariaValuenow={resizeProps.relativeSize}\n onKeyDown={resizeProps.onKeyDown}\n onDirectionClick={resizeProps.onDirectionClick}\n onPointerDown={resizeProps.onPointerDown}\n />\n </div>\n )}\n <div\n className={clsx(styles['drawer-content-container'], sharedStyles['with-motion-horizontal'])}\n data-testid={`awsui-app-layout-drawer-content-${activeDrawerId}`}\n >\n <div className={styles['drawer-actions']}>\n <ButtonGroup\n dropdownExpandToViewport={false}\n variant=\"icon\"\n onItemClick={event => {\n switch (event.detail.id) {\n case 'close':\n onActiveGlobalBottomDrawerChange(null, { initiatedByUserAction: true });\n break;\n case 'expand':\n setExpandedDrawerId(isExpanded ? null : activeDrawerId);\n break;\n default:\n activeDrawer?.onHeaderActionClick?.(event);\n }\n }}\n ariaLabel=\"Global panel actions\"\n items={drawerActions}\n __internalRootRef={(root: HTMLElement) => {\n if (!root) {\n return;\n }\n refs.close = { current: root.querySelector('[data-itemid=\"close\"]') as unknown as Focusable };\n }}\n />\n </div>\n <div\n className={styles['drawer-content']}\n style={{\n blockSize:\n isMobile || isExpanded\n ? drawerFullScreenHeight\n : `${size - GAP_HEIGHT - RESIZE_HANDLER_HEIGHT}px`,\n }}\n >\n {activeDrawer?.content}\n </div>\n </div>\n </div>\n </aside>\n );\n }}\n </Transition>\n );\n}\n\nexport default AppLayoutGlobalBottomDrawerImplementation;\n"]}
1
+ {"version":3,"file":"global-bottom-drawer.js","sourceRoot":"","sources":["../../../../../src/app-layout/visual-refresh-toolbar/drawer/global-bottom-drawer.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,cAAc,MAAM,mDAAmD,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,UAAU,4BAA4B,CAAC,EAAE,eAAe,EAAiD;IAC7G,MAAM,EAAE,0BAA0B,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC;IACtE,MAAM,wBAAwB,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,0BAA0B,EAAE;YAC9B,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;SAClE;IACH,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEjC,OAAO,CACL,0CACG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,CACL,oBAAC,yCAAyC,IACxC,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,YAAY,EACV,0BAA0B,KAAK,MAAM,CAAC,EAAE;gBACxC,CAAC,MAAM,CAAC,uBAAuB,IAAI,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACjF,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,SAAS,EAEf,IAAI,EAAE,0BAA0B,KAAK,MAAM,CAAC,EAAE,EAC9C,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;IACJ,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,SAAS,yCAAyC,CAAC,EACjD,eAAe,EACf,IAAI,EACJ,YAAY,GAC6B;;IACzC,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EACf,SAAS,GACV,GAAG,eAAe,CAAC;IACpB,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE,mCAAI,EAAE,CAAC;IAE9C,MAAM,kBAAkB,GAAG;QACzB,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,MAAA,YAAY,CAAC,UAAU,0CAAE,WAAW,CAAC,CAAC,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU;QACzF,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,MAAA,YAAY,CAAC,UAAU,0CAAE,UAAU,CAAC,CAAC,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK;KAChF,CAAC;IAEF,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,eAAe,CACtG,eAAe,EACf,QAAQ,EACR,SAAS,CACV,CAAC;IACF,MAAM,gBAAgB,GAAG,4BAA4B,aAA5B,4BAA4B,cAA5B,4BAA4B,GAAI,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC5C,MAAM,WAAW,GAAG,SAAS,CAAC;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;QACvB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,EAAE,EAAE,cAAe,EAAE,IAAI,EAAE,CAAC;QAC3E,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAA,CAAC;IACjD,MAAM,UAAU,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,KAAI,gBAAgB,KAAK,cAAc,CAAC;IACrF,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GACrB,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,KAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC;IAE/G,uEAAuE;IACvE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE;YAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAChF,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAE9C,iDAAiD;YACjD,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/C,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YACtC,CAAC,CAAC;YAEF,oDAAoD;YACpD,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAE,EAAE;gBACrD,uDAAuD;gBACvD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,EAAE;oBACtC,eAAe,CAAC,KAAK,EAAE,CAAC;iBACzB;YACH,CAAC,CAAC;YAEF,yCAAyC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE;gBACjD,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,EAAE;gBACvE,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACV,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAI,aAAa,GAAuC;QACtD;YACE,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;YAC3C,IAAI,EAAE,MAAA,kBAAkB,CAAC,WAAW,mCAAI,EAAE;YAC1C,eAAe,EAAE,OAAO;SACzB;KACF,CAAC;IACF,IAAI,CAAC,QAAQ,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAA,EAAE;QAC3C,aAAa,GAAG;YACd;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,EAAE,EAAE,QAAQ;gBACZ,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBAC1C,IAAI,EAAE,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,kBAAkB,mCAAI,EAAE;gBACxD,OAAO,EAAE,CAAC,CAAC,UAAU;gBACrB,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;aACpD;YACD,GAAG,aAAa;SACjB,CAAC;KACH;IACD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,EAAE;QAC/B,aAAa,GAAG;YACd;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,YAAY,CAAC,aAAc;aACnC;YACD,GAAG,aAAa;SACjB,CAAC;KACH;IAED,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnC,OAAO,CACL,oBAAC,UAAU,IACT,OAAO,EAAE,SAAS,EAClB,EAAE,EAAE,IAAI,IAAI,UAAU,EACtB,MAAM,EAAE,IAAI,IAAI,UAAU,EAC1B,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,GAAG,IAEX,KAAK,CAAC,EAAE;;QACP,OAAO,CACL,+BACE,EAAE,EAAE,cAAc,iBACL,CAAC,IAAI,gBACN,kBAAkB,CAAC,OAAO,EACtC,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,eAAe,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,EACb,CAAC,iBAAiB,IAAI,YAAY,CAAC,sBAAsB,CAAC,EAC1D,CAAC,iBAAiB,IAAI,UAAU,IAAI,MAAM,CAAC,sBAAsB,CAAC,EAClE;gBACE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK,QAAQ;gBACtD,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,IAAI,kBAAkB,KAAK,cAAc,CAAC,IAAI,UAAU;gBACjG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI;gBACvC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU;aACxC,CACF,EACD,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,CAAC,CAAC,EAAE;gBACV,gEAAgE;gBAChE,kHAAkH;gBAClH,uDAAuD;gBACvD,uHAAuH;gBACvH,qCAAqC;gBACrC,IAAI,CAAC,gBAAgB,EAAE;oBACrB,OAAO;iBACR;gBAED,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;oBAClE,yBAAyB,CAAC,SAAS,EAAE,CAAC;iBACvC;YACH,CAAC,EACD,KAAK,kCACA,CAAC,QAAQ,IAAI;gBACd,SAAS,EAAE,sBAAsB;gBACjC,eAAe,EAAE,qBAAqB;aACvC,CAAC,GACC,CAAC,CAAC,QAAQ,IAAI;gBACf,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aAC1I,CAAC,kBAES,2BAA2B,cAAc,EAAE;YAExD,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBAClD,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,GAAI;gBACpE,CAAC,QAAQ,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA,IAAI,CAAC,UAAU,IAAI;gBACtD,sCAAsC;gBACtC,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACnD,oBAAC,iBAAiB,IAChB,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EACjB,QAAQ,EAAC,QAAQ,EACjB,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAC3C,SAAS,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,YAAY,EACjD,WAAW,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,uBAAuB,EAC9D,YAAY,EAAE,WAAW,CAAC,YAAY,EACtC,SAAS,EAAE,WAAW,CAAC,SAAS,EAChC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAC9C,aAAa,EAAE,WAAW,CAAC,aAAa,GACxC,CACE,CACP;gBACD,gCAAQ,SAAS,EAAE,MAAM,CAAC,8BAA8B,CAAC,EAAE,GAAG,EAAE,SAAS;oBACvE,6BAAK,SAAS,EAAE,MAAM,CAAC,sCAAsC,CAAC,IAC3D,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,gCAAO;wBAChC,6BAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC;4BAC7C,oBAAC,WAAW,IACV,wBAAwB,EAAE,KAAK,EAC/B,OAAO,EAAC,MAAM,EACd,WAAW,EAAE,KAAK,CAAC,EAAE;;oCACnB,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;wCACvB,KAAK,OAAO;4CACV,gCAAgC,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;4CACxE,MAAM;wCACR,KAAK,QAAQ;4CACX,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;4CACxD,MAAM;wCACR;4CACE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,mBAAmB,6DAAG,KAAK,CAAC,CAAC;qCAC9C;gCACH,CAAC,EACD,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,aAAa,EACpB,iBAAiB,EAAE,CAAC,IAAiB,EAAE,EAAE;oCACvC,IAAI,CAAC,IAAI,EAAE;wCACT,OAAO;qCACR;oCACD,IAAI,CAAC,KAAK,GAAG;wCACX,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAyB;qCAC7E,CAAC;gCACJ,CAAC,GACD,CACE,CACF,CACC;gBACT,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,YAAY,CAAC,wBAAwB,CAAC,CAAC,iBAC9E,mCAAmC,cAAc,EAAE;oBAEhE,6BACE,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACnC,KAAK,EAAE;4BACL,SAAS,EACP,QAAQ,IAAI,UAAU;gCACpB,CAAC,CAAC,sBAAsB;gCACxB,CAAC,CAAC,GAAG,IAAI,GAAG,UAAU,GAAG,qBAAqB,GAAG,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,YAAY,mCAAI,CAAC,CAAC,IAAI;yBACjG,IAEA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAClB,CACF,CACF,CACA,CACT,CAAC;IACJ,CAAC,CACU,CACd,CAAC;AACJ,CAAC;AAED,eAAe,yCAAyC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { InternalItemOrGroup } from '../../../button-group/interfaces';\nimport ButtonGroup from '../../../button-group/internal';\nimport PanelResizeHandle from '../../../internal/components/panel-resize-handle';\nimport customCssProps from '../../../internal/generated/custom-css-properties';\nimport { usePrevious } from '../../../internal/hooks/use-previous';\nimport { getLimitedValue } from '../../../split-panel/utils/size-utils';\nimport { Focusable } from '../../utils/use-focus-control';\nimport { getDrawerStyles } from '../compute-layout';\nimport { AppLayoutWidgetizedState, InternalDrawer } from '../interfaces';\nimport { useResize } from './use-resize';\n\nimport sharedStyles from '../../resize/styles.css.js';\nimport testutilStyles from '../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport function AppLayoutBottomDrawerWrapper({ widgetizedState }: { widgetizedState: AppLayoutWidgetizedState }) {\n const { activeGlobalBottomDrawerId, bottomDrawers } = widgetizedState;\n const openBottomDrawersHistory = useRef<Set<string>>(new Set());\n useEffect(() => {\n if (activeGlobalBottomDrawerId) {\n openBottomDrawersHistory.current.add(activeGlobalBottomDrawerId);\n }\n }, [activeGlobalBottomDrawerId]);\n\n return (\n <>\n {bottomDrawers.map(drawer => {\n return (\n <AppLayoutGlobalBottomDrawerImplementation\n key={drawer.id}\n activeDrawer={\n activeGlobalBottomDrawerId === drawer.id ||\n (drawer.preserveInactiveContent && openBottomDrawersHistory.current.has(drawer.id))\n ? drawer\n : undefined\n }\n show={activeGlobalBottomDrawerId === drawer.id}\n widgetizedState={widgetizedState}\n />\n );\n })}\n </>\n );\n}\n\ninterface AppLayoutGlobalDrawerImplementationProps {\n widgetizedState: AppLayoutWidgetizedState;\n show: boolean;\n activeDrawer: InternalDrawer | undefined;\n}\n\nconst GAP_HEIGHT = 10;\nconst RESIZE_HANDLER_HEIGHT = 18;\n\nfunction AppLayoutGlobalBottomDrawerImplementation({\n widgetizedState,\n show,\n activeDrawer,\n}: AppLayoutGlobalDrawerImplementationProps) {\n const {\n ariaLabels,\n isMobile,\n onActiveGlobalBottomDrawerChange,\n onActiveBottomDrawerResize,\n minGlobalBottomDrawerSize,\n activeGlobalBottomDrawerSize,\n drawersOpenQueue,\n expandedDrawerId,\n setExpandedDrawerId,\n activeAiDrawer,\n bottomDrawersFocusControl,\n getMaxGlobalBottomDrawerHeight,\n reportBottomDrawerSize,\n verticalOffsets,\n placement,\n } = widgetizedState;\n const drawerRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLHeadingElement>(null);\n const activeDrawerId = activeDrawer?.id ?? '';\n\n const computedAriaLabels = {\n closeButton: activeDrawer ? activeDrawer.ariaLabels?.closeButton : ariaLabels?.toolsClose,\n content: activeDrawer ? activeDrawer.ariaLabels?.drawerName : ariaLabels?.tools,\n };\n\n const { drawerTopOffset: mobileDrawerTopOffset, drawerHeight: drawerFullScreenHeight } = getDrawerStyles(\n verticalOffsets,\n isMobile,\n placement\n );\n const activeDrawerSize = activeGlobalBottomDrawerSize ?? 0;\n const minDrawerSize = minGlobalBottomDrawerSize ?? 0;\n const maxDrawerSize = getMaxGlobalBottomDrawerHeight();\n const refs = bottomDrawersFocusControl.refs;\n const resizeProps = useResize({\n currentWidth: activeDrawerSize,\n minWidth: minDrawerSize,\n maxWidth: maxDrawerSize,\n panelRef: drawerRef,\n handleRef: refs?.slider,\n onResize: size => onActiveBottomDrawerResize({ id: activeDrawerId!, size }),\n position: 'bottom',\n });\n const size = getLimitedValue(minDrawerSize, activeDrawerSize, maxDrawerSize);\n const lastOpenedDrawerId = drawersOpenQueue.length ? drawersOpenQueue[0] : null;\n const hasTriggerButton = !!activeDrawer?.trigger;\n const isExpanded = activeDrawer?.isExpandable && expandedDrawerId === activeDrawerId;\n const wasExpanded = usePrevious(isExpanded);\n const animationDisabled =\n (activeDrawer?.defaultActive && !drawersOpenQueue.includes(activeDrawer.id)) || (wasExpanded && !isExpanded);\n\n // Prevent main content scroll when bottom drawer opens with animations\n useEffect(() => {\n if (show && drawerRef.current) {\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const abortController = new AbortController();\n\n // Temporarily prevent scrolling during animation\n const preventScroll = () => {\n document.documentElement.scrollTop = scrollTop;\n document.body.scrollTop = scrollTop;\n };\n\n // Handle transition end to remove scroll prevention\n const handleTransitionEnd = (event: TransitionEvent) => {\n // Only handle transitions on the drawer element itself\n if (event.target === drawerRef.current) {\n abortController.abort();\n }\n };\n\n // Add scroll prevention during animation\n document.addEventListener('scroll', preventScroll, {\n passive: false,\n signal: abortController.signal,\n });\n\n drawerRef.current.addEventListener('transitionend', handleTransitionEnd, {\n signal: abortController.signal,\n });\n\n return () => {\n abortController.abort();\n };\n }\n }, [show]);\n\n let drawerActions: ReadonlyArray<InternalItemOrGroup> = [\n {\n type: 'icon-button',\n id: 'close',\n iconName: isMobile ? 'close' : 'angle-down',\n text: computedAriaLabels.closeButton ?? '',\n analyticsAction: 'close',\n },\n ];\n if (!isMobile && activeDrawer?.isExpandable) {\n drawerActions = [\n {\n type: 'icon-toggle-button',\n id: 'expand',\n iconName: isExpanded ? 'shrink' : 'expand',\n text: activeDrawer?.ariaLabels?.expandedModeButton ?? '',\n pressed: !!isExpanded,\n analyticsAction: isExpanded ? 'expand' : 'collapse',\n },\n ...drawerActions,\n ];\n }\n if (activeDrawer?.headerActions) {\n drawerActions = [\n {\n type: 'group',\n text: 'Actions',\n items: activeDrawer.headerActions!,\n },\n ...drawerActions,\n ];\n }\n\n useEffect(() => {\n reportBottomDrawerSize(size);\n }, [reportBottomDrawerSize, size]);\n\n return (\n <Transition\n nodeRef={drawerRef}\n in={show || isExpanded}\n appear={show || isExpanded}\n mountOnEnter={true}\n timeout={250}\n >\n {state => {\n return (\n <aside\n id={activeDrawerId}\n aria-hidden={!show}\n aria-label={computedAriaLabels.content}\n className={clsx(\n styles.drawer,\n styles['bottom-drawer'],\n styles[state],\n !animationDisabled && sharedStyles['with-motion-vertical'],\n !animationDisabled && isExpanded && styles['with-expanded-motion'],\n {\n [styles['drawer-hidden']]: !show && state === 'exited',\n [styles['last-opened']]: (!activeAiDrawer && lastOpenedDrawerId === activeDrawerId) || isExpanded,\n [testutilStyles['active-drawer']]: show,\n [styles['drawer-expanded']]: isExpanded,\n }\n )}\n ref={drawerRef}\n onBlur={e => {\n // Drawers with trigger buttons follow this restore focus logic:\n // If a previously focused element exists, restore focus on it; otherwise, focus on the associated trigger button.\n // This function resets the previously focused element.\n // If the drawer has no trigger button and loses focus on the previously focused element, it defaults to document.body,\n // which ideally should never happen.\n if (!hasTriggerButton) {\n return;\n }\n\n if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) {\n bottomDrawersFocusControl.loseFocus();\n }\n }}\n style={{\n ...(isMobile && {\n blockSize: drawerFullScreenHeight,\n insetBlockStart: mobileDrawerTopOffset,\n }),\n ...(!isMobile && {\n [customCssProps.bottomDrawerSize]: `${['entering', 'entered'].includes(state) ? (isExpanded ? drawerFullScreenHeight : size + 'px') : 0}`,\n }),\n }}\n data-testid={`awsui-app-layout-drawer-${activeDrawerId}`}\n >\n <div className={clsx(styles['global-drawer-wrapper'])}>\n {!isMobile && !isExpanded && <div className={styles['drawer-gap']} />}\n {!isMobile && activeDrawer?.resizable && !isExpanded && (\n // Prevents receiving focus in Firefox\n <div className={styles['drawer-slider']} tabIndex={-1}>\n <PanelResizeHandle\n ref={refs?.slider}\n position=\"bottom\"\n className={testutilStyles['drawers-slider']}\n ariaLabel={activeDrawer?.ariaLabels?.resizeHandle}\n tooltipText={activeDrawer?.ariaLabels?.resizeHandleTooltipText}\n ariaValuenow={resizeProps.relativeSize}\n onKeyDown={resizeProps.onKeyDown}\n onDirectionClick={resizeProps.onDirectionClick}\n onPointerDown={resizeProps.onPointerDown}\n />\n </div>\n )}\n <header className={styles['bottom-drawer-content-header']} ref={headerRef}>\n <div className={styles['bottom-drawer-content-header-content']}>\n {activeDrawer?.header ?? <div />}\n <div className={styles['bottom-drawer-actions']}>\n <ButtonGroup\n dropdownExpandToViewport={false}\n variant=\"icon\"\n onItemClick={event => {\n switch (event.detail.id) {\n case 'close':\n onActiveGlobalBottomDrawerChange(null, { initiatedByUserAction: true });\n break;\n case 'expand':\n setExpandedDrawerId(isExpanded ? null : activeDrawerId);\n break;\n default:\n activeDrawer?.onHeaderActionClick?.(event);\n }\n }}\n ariaLabel=\"Global panel actions\"\n items={drawerActions}\n __internalRootRef={(root: HTMLElement) => {\n if (!root) {\n return;\n }\n refs.close = {\n current: root.querySelector('[data-itemid=\"close\"]') as unknown as Focusable,\n };\n }}\n />\n </div>\n </div>\n </header>\n <div\n className={clsx(styles['drawer-content-container'], sharedStyles['with-motion-horizontal'])}\n data-testid={`awsui-app-layout-drawer-content-${activeDrawerId}`}\n >\n <div\n className={styles['drawer-content']}\n style={{\n blockSize:\n isMobile || isExpanded\n ? drawerFullScreenHeight\n : `${size - GAP_HEIGHT - RESIZE_HANDLER_HEIGHT - (headerRef?.current?.clientHeight ?? 0)}px`,\n }}\n >\n {activeDrawer?.content}\n </div>\n </div>\n </div>\n </aside>\n );\n }}\n </Transition>\n );\n}\n\nexport default AppLayoutGlobalBottomDrawerImplementation;\n"]}
@@ -1,32 +1,35 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "drawer": "awsui_drawer_12i0j_f60pk_193",
5
- "with-expanded-motion": "awsui_with-expanded-motion_12i0j_f60pk_207",
6
- "legacy": "awsui_legacy_12i0j_f60pk_221",
7
- "ai-drawer": "awsui_ai-drawer_12i0j_f60pk_221",
8
- "bottom-drawer": "awsui_bottom-drawer_12i0j_f60pk_221",
9
- "last-opened": "awsui_last-opened_12i0j_f60pk_229",
10
- "drawer-global": "awsui_drawer-global_12i0j_f60pk_233",
11
- "drawer-expanded": "awsui_drawer-expanded_12i0j_f60pk_242",
12
- "drawer-hidden": "awsui_drawer-hidden_12i0j_f60pk_246",
13
- "has-next-siblings": "awsui_has-next-siblings_12i0j_f60pk_256",
14
- "global-drawer-wrapper": "awsui_global-drawer-wrapper_12i0j_f60pk_256",
15
- "drawer-content-container": "awsui_drawer-content-container_12i0j_f60pk_270",
16
- "drawer-gap": "awsui_drawer-gap_12i0j_f60pk_273",
17
- "drawer-close-button": "awsui_drawer-close-button_12i0j_f60pk_291",
18
- "drawer-expanded-mode-button": "awsui_drawer-expanded-mode-button_12i0j_f60pk_297",
19
- "drawer-content": "awsui_drawer-content_12i0j_f60pk_270",
20
- "drawer-content-hidden": "awsui_drawer-content-hidden_12i0j_f60pk_309",
21
- "drawer-slider": "awsui_drawer-slider_12i0j_f60pk_312",
22
- "drawer-actions": "awsui_drawer-actions_12i0j_f60pk_362",
23
- "ai-drawer-slider-handle": "awsui_ai-drawer-slider-handle_12i0j_f60pk_418",
24
- "drawer-content-header": "awsui_drawer-content-header_12i0j_f60pk_437",
25
- "drawer-content-header-content": "awsui_drawer-content-header-content_12i0j_f60pk_450",
26
- "drawer-back-to-console-slot": "awsui_drawer-back-to-console-slot_12i0j_f60pk_467",
27
- "drawer-back-to-console-button-wrapper": "awsui_drawer-back-to-console-button-wrapper_12i0j_f60pk_506",
28
- "drawer-back-to-console-button": "awsui_drawer-back-to-console-button_12i0j_f60pk_506",
29
- "drawer-back-to-console-custom-button": "awsui_drawer-back-to-console-custom-button_12i0j_f60pk_579",
30
- "drawer-content-content": "awsui_drawer-content-content_12i0j_f60pk_585"
4
+ "drawer": "awsui_drawer_12i0j_1xdgk_193",
5
+ "with-expanded-motion": "awsui_with-expanded-motion_12i0j_1xdgk_207",
6
+ "legacy": "awsui_legacy_12i0j_1xdgk_221",
7
+ "ai-drawer": "awsui_ai-drawer_12i0j_1xdgk_221",
8
+ "bottom-drawer": "awsui_bottom-drawer_12i0j_1xdgk_221",
9
+ "last-opened": "awsui_last-opened_12i0j_1xdgk_229",
10
+ "drawer-global": "awsui_drawer-global_12i0j_1xdgk_233",
11
+ "drawer-expanded": "awsui_drawer-expanded_12i0j_1xdgk_242",
12
+ "drawer-hidden": "awsui_drawer-hidden_12i0j_1xdgk_246",
13
+ "has-next-siblings": "awsui_has-next-siblings_12i0j_1xdgk_256",
14
+ "global-drawer-wrapper": "awsui_global-drawer-wrapper_12i0j_1xdgk_256",
15
+ "drawer-content-container": "awsui_drawer-content-container_12i0j_1xdgk_270",
16
+ "drawer-gap": "awsui_drawer-gap_12i0j_1xdgk_273",
17
+ "drawer-close-button": "awsui_drawer-close-button_12i0j_1xdgk_291",
18
+ "drawer-expanded-mode-button": "awsui_drawer-expanded-mode-button_12i0j_1xdgk_297",
19
+ "drawer-content": "awsui_drawer-content_12i0j_1xdgk_270",
20
+ "drawer-content-hidden": "awsui_drawer-content-hidden_12i0j_1xdgk_309",
21
+ "drawer-slider": "awsui_drawer-slider_12i0j_1xdgk_312",
22
+ "drawer-actions": "awsui_drawer-actions_12i0j_1xdgk_362",
23
+ "ai-drawer-slider-handle": "awsui_ai-drawer-slider-handle_12i0j_1xdgk_418",
24
+ "drawer-content-header": "awsui_drawer-content-header_12i0j_1xdgk_437",
25
+ "drawer-content-header-content": "awsui_drawer-content-header-content_12i0j_1xdgk_450",
26
+ "drawer-back-to-console-slot": "awsui_drawer-back-to-console-slot_12i0j_1xdgk_467",
27
+ "drawer-back-to-console-button-wrapper": "awsui_drawer-back-to-console-button-wrapper_12i0j_1xdgk_506",
28
+ "drawer-back-to-console-button": "awsui_drawer-back-to-console-button_12i0j_1xdgk_506",
29
+ "drawer-back-to-console-custom-button": "awsui_drawer-back-to-console-custom-button_12i0j_1xdgk_579",
30
+ "drawer-content-content": "awsui_drawer-content-content_12i0j_1xdgk_585",
31
+ "bottom-drawer-content-header": "awsui_bottom-drawer-content-header_12i0j_1xdgk_643",
32
+ "bottom-drawer-content-header-content": "awsui_bottom-drawer-content-header-content_12i0j_1xdgk_650",
33
+ "bottom-drawer-actions": "awsui_bottom-drawer-actions_12i0j_1xdgk_658"
31
34
  };
32
35