@gooddata/sdk-ui-kit 10.27.0-alpha.4 → 10.27.0-alpha.5
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/esm/@ui/@utils/keyboardNavigation.d.ts +23 -12
- package/esm/@ui/@utils/keyboardNavigation.d.ts.map +1 -1
- package/esm/@ui/@utils/keyboardNavigation.js +58 -16
- package/esm/@ui/@utils/keyboardNavigation.js.map +1 -1
- package/esm/@ui/UiFocusTrap/UiFocusTrap.d.ts +9 -0
- package/esm/@ui/UiFocusTrap/UiFocusTrap.d.ts.map +1 -1
- package/esm/@ui/UiFocusTrap/UiFocusTrap.js +74 -71
- package/esm/@ui/UiFocusTrap/UiFocusTrap.js.map +1 -1
- package/esm/Dialog/ExportDialogBase.d.ts.map +1 -1
- package/esm/Dialog/ExportDialogBase.js +8 -3
- package/esm/Dialog/ExportDialogBase.js.map +1 -1
- package/esm/Dialog/ShareDialog/ShareDialogBase/GranteeItem.js +2 -2
- package/esm/Dialog/ShareDialog/ShareDialogBase/GranteeItem.js.map +1 -1
- package/esm/Form/Checkbox.d.ts +1 -0
- package/esm/Form/Checkbox.d.ts.map +1 -1
- package/esm/Form/Checkbox.js +3 -3
- package/esm/Form/Checkbox.js.map +1 -1
- package/esm/Header/HeaderAccount.d.ts.map +1 -1
- package/esm/Header/HeaderAccount.js +2 -3
- package/esm/Header/HeaderAccount.js.map +1 -1
- package/esm/Header/HeaderHelp.d.ts.map +1 -1
- package/esm/Header/HeaderHelp.js +2 -3
- package/esm/Header/HeaderHelp.js.map +1 -1
- package/esm/Header/HeaderSearchButton.d.ts.map +1 -1
- package/esm/Header/HeaderSearchButton.js +2 -3
- package/esm/Header/HeaderSearchButton.js.map +1 -1
- package/esm/List/ListItem.d.ts +8 -21
- package/esm/List/ListItem.d.ts.map +1 -1
- package/esm/List/ListItem.js +69 -70
- package/esm/List/ListItem.js.map +1 -1
- package/esm/List/MenuList.d.ts +3 -0
- package/esm/List/MenuList.d.ts.map +1 -1
- package/esm/List/MenuList.js +3 -3
- package/esm/List/MenuList.js.map +1 -1
- package/esm/List/index.d.ts +1 -1
- package/esm/List/index.d.ts.map +1 -1
- package/esm/List/index.js.map +1 -1
- package/esm/RecurrenceForm/DateTime.js +2 -2
- package/esm/RecurrenceForm/DateTime.js.map +1 -1
- package/esm/RecurrenceForm/Recurrence.js +3 -3
- package/esm/RecurrenceForm/Recurrence.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/sdk-ui-kit.d.ts +73 -21
- package/esm/typings/accessibility.d.ts +17 -0
- package/esm/typings/accessibility.d.ts.map +1 -1
- package/esm/typings/accessibility.js +1 -1
- package/esm/typings/accessibility.js.map +1 -1
- package/esm/utils/domUtilities.d.ts +11 -0
- package/esm/utils/domUtilities.d.ts.map +1 -1
- package/esm/utils/domUtilities.js +29 -0
- package/esm/utils/domUtilities.js.map +1 -1
- package/esm/utils/useId.d.ts +6 -0
- package/esm/utils/useId.d.ts.map +1 -1
- package/esm/utils/useId.js +9 -0
- package/esm/utils/useId.js.map +1 -1
- package/package.json +10 -9
- package/styles/css/dialog.css +3 -2
- package/styles/css/dialog.css.map +1 -1
- package/styles/css/list.css +7 -0
- package/styles/css/list.css.map +1 -1
- package/styles/css/main.css +10 -2
- package/styles/css/main.css.map +1 -1
- package/styles/css/menu.css +7 -0
- package/styles/css/menu.css.map +1 -1
- package/styles/scss/dialog.scss +3 -2
- package/styles/scss/list.scss +7 -0
@@ -1,18 +1,29 @@
|
|
1
|
-
|
1
|
+
/// <reference types="react" />
|
2
2
|
/**
|
3
3
|
* @internal
|
4
4
|
*/
|
5
|
-
export declare const makeMenuKeyboardNavigation: ({ onFocusPrevious, onFocusNext, onFocusFirst, onFocusLast, onEnterLevel, onLeaveLevel, onSelect, onClose, onUnhandledKeyDown, shouldPreventDefault, shouldStopPropagation, }: {
|
6
|
-
onFocusNext?: (event:
|
7
|
-
onFocusPrevious?: (event:
|
8
|
-
onFocusFirst?: (event:
|
9
|
-
onFocusLast?: (event:
|
10
|
-
onEnterLevel?: (event:
|
11
|
-
onLeaveLevel?: (event:
|
12
|
-
onSelect?: (event:
|
13
|
-
onClose?: (event:
|
14
|
-
onUnhandledKeyDown?: (event:
|
5
|
+
export declare const makeMenuKeyboardNavigation: <T extends KeyboardEvent | import("react").KeyboardEvent<Element> = import("react").KeyboardEvent<Element>>({ onFocusPrevious, onFocusNext, onFocusFirst, onFocusLast, onEnterLevel, onLeaveLevel, onSelect, onClose, onUnhandledKeyDown, shouldPreventDefault, shouldStopPropagation, }: {
|
6
|
+
onFocusNext?: (event: T) => void;
|
7
|
+
onFocusPrevious?: (event: T) => void;
|
8
|
+
onFocusFirst?: (event: T) => void;
|
9
|
+
onFocusLast?: (event: T) => void;
|
10
|
+
onEnterLevel?: (event: T) => void;
|
11
|
+
onLeaveLevel?: (event: T) => void;
|
12
|
+
onSelect?: (event: T) => void;
|
13
|
+
onClose?: (event: T) => void;
|
14
|
+
onUnhandledKeyDown?: (event: T) => void;
|
15
15
|
shouldPreventDefault?: boolean;
|
16
16
|
shouldStopPropagation?: boolean;
|
17
|
-
}) => (event:
|
17
|
+
}) => (event: T) => void;
|
18
|
+
/**
|
19
|
+
* @internal
|
20
|
+
*/
|
21
|
+
export declare const makeDialogKeyboardNavigation: <T extends KeyboardEvent | import("react").KeyboardEvent<Element> = import("react").KeyboardEvent<Element>>({ onFocusPrevious, onFocusNext, onClose, onUnhandledKeyDown, shouldPreventDefault, shouldStopPropagation, }: {
|
22
|
+
onFocusNext?: (event: T) => void;
|
23
|
+
onFocusPrevious?: (event: T) => void;
|
24
|
+
onClose?: (event: T) => void;
|
25
|
+
onUnhandledKeyDown?: (event: T) => void;
|
26
|
+
shouldPreventDefault?: boolean;
|
27
|
+
shouldStopPropagation?: boolean;
|
28
|
+
}) => (event: T) => void;
|
18
29
|
//# sourceMappingURL=keyboardNavigation.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"keyboardNavigation.d.ts","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":";AAoCA;;GAEG;AACH,eAAO,MAAM,0BAA0B;gCAgBP,IAAI;oCACA,IAAI;iCACP,IAAI;gCACL,IAAI;iCACH,IAAI;iCACJ,IAAI;6BACR,IAAI;4BACL,IAAI;uCACO,IAAI;2BAEhB,OAAO;4BACN,OAAO;wBAmClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B;gCAWT,IAAI;oCACA,IAAI;4BACZ,IAAI;uCACO,IAAI;2BAEhB,OAAO;4BACN,OAAO;wBA4BlC,CAAC"}
|
@@ -1,42 +1,84 @@
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
2
|
+
const handleAction = (event, action, { shouldPreventDefault = true, shouldStopPropagation = true } = {}) => {
|
3
|
+
if (!action) {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
if (shouldPreventDefault) {
|
7
|
+
event.preventDefault();
|
8
|
+
}
|
9
|
+
if (shouldStopPropagation) {
|
10
|
+
event.stopPropagation();
|
11
|
+
}
|
12
|
+
action(event);
|
13
|
+
};
|
14
|
+
const handleActionEvent = (event, shouldPreventDefault, shouldStopPropagation) => {
|
15
|
+
return (action) => {
|
16
|
+
handleAction(event, action, { shouldPreventDefault, shouldStopPropagation });
|
17
|
+
};
|
18
|
+
};
|
2
19
|
/**
|
3
20
|
* @internal
|
4
21
|
*/
|
5
22
|
export const makeMenuKeyboardNavigation = ({ onFocusPrevious, onFocusNext, onFocusFirst, onFocusLast, onEnterLevel, onLeaveLevel, onSelect, onClose, onUnhandledKeyDown, shouldPreventDefault = true, shouldStopPropagation = true, }) => {
|
6
|
-
function handleAction(event, action) {
|
7
|
-
if (!action) {
|
8
|
-
return;
|
9
|
-
}
|
10
|
-
shouldPreventDefault && event.preventDefault();
|
11
|
-
shouldStopPropagation && event.stopPropagation();
|
12
|
-
action(event);
|
13
|
-
}
|
14
23
|
return (event) => {
|
24
|
+
const handleAction = handleActionEvent(event, shouldPreventDefault, shouldStopPropagation);
|
15
25
|
switch (event.code) {
|
16
26
|
case "ArrowDown":
|
17
|
-
handleAction(
|
27
|
+
handleAction(onFocusNext);
|
18
28
|
break;
|
19
29
|
case "ArrowUp":
|
20
|
-
handleAction(
|
30
|
+
handleAction(onFocusPrevious);
|
21
31
|
break;
|
22
32
|
case "ArrowLeft":
|
23
|
-
handleAction(
|
33
|
+
handleAction(onLeaveLevel);
|
24
34
|
break;
|
25
35
|
case "ArrowRight":
|
26
|
-
handleAction(
|
36
|
+
handleAction(onEnterLevel);
|
27
37
|
break;
|
28
38
|
case "Home":
|
29
|
-
handleAction(
|
39
|
+
handleAction(onFocusFirst);
|
30
40
|
break;
|
31
41
|
case "End":
|
32
|
-
handleAction(
|
42
|
+
handleAction(onFocusLast);
|
33
43
|
break;
|
34
44
|
case "Enter":
|
35
45
|
case "Space":
|
36
|
-
handleAction(
|
46
|
+
handleAction(onSelect);
|
47
|
+
break;
|
48
|
+
case "Escape":
|
49
|
+
handleAction(onClose);
|
50
|
+
break;
|
51
|
+
default:
|
52
|
+
onUnhandledKeyDown?.(event);
|
53
|
+
break;
|
54
|
+
}
|
55
|
+
};
|
56
|
+
};
|
57
|
+
/**
|
58
|
+
* @internal
|
59
|
+
*/
|
60
|
+
export const makeDialogKeyboardNavigation = ({ onFocusPrevious, onFocusNext, onClose, onUnhandledKeyDown, shouldPreventDefault = true, shouldStopPropagation = true, }) => {
|
61
|
+
return (event) => {
|
62
|
+
switch (event.code) {
|
63
|
+
case "Tab":
|
64
|
+
if (event.shiftKey) {
|
65
|
+
handleAction(event, onFocusPrevious, {
|
66
|
+
shouldPreventDefault,
|
67
|
+
shouldStopPropagation,
|
68
|
+
});
|
69
|
+
}
|
70
|
+
else {
|
71
|
+
handleAction(event, onFocusNext, {
|
72
|
+
shouldPreventDefault,
|
73
|
+
shouldStopPropagation,
|
74
|
+
});
|
75
|
+
}
|
37
76
|
break;
|
38
77
|
case "Escape":
|
39
|
-
handleAction(event, onClose
|
78
|
+
handleAction(event, onClose, {
|
79
|
+
shouldPreventDefault,
|
80
|
+
shouldStopPropagation,
|
81
|
+
});
|
40
82
|
break;
|
41
83
|
default:
|
42
84
|
onUnhandledKeyDown?.(event);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keyboardNavigation.js","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
1
|
+
{"version":3,"file":"keyboardNavigation.js","sourceRoot":"","sources":["../../../src/@ui/@utils/keyboardNavigation.ts"],"names":[],"mappings":"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"}
|
@@ -12,11 +12,20 @@ export interface UiFocusTrapProps {
|
|
12
12
|
* If a ref is provided, the focus will be returned to the element referenced by the ref.
|
13
13
|
*/
|
14
14
|
returnFocusTo?: React.RefObject<HTMLElement> | string;
|
15
|
+
/**
|
16
|
+
* If true, the focus will be returned to the element referenced by the returnFocusTo prop when the trap is unmounted.
|
17
|
+
*/
|
18
|
+
returnFocusOnUnmount?: boolean;
|
15
19
|
/**
|
16
20
|
* Specify the element that should receive focus when the trap is activated.
|
17
21
|
* If not provided, the first focusable element will be focused.
|
18
22
|
*/
|
19
23
|
initialFocus?: React.RefObject<HTMLElement> | string;
|
24
|
+
/**
|
25
|
+
* Specify a custom keyboard navigation handler.
|
26
|
+
* If not provided, the default keyboard navigation handler will be used.
|
27
|
+
*/
|
28
|
+
customKeyboardNavigationHandler?: (event: KeyboardEvent) => void;
|
20
29
|
}
|
21
30
|
/**
|
22
31
|
* @internal
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UiFocusTrap.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiFocusTrap/UiFocusTrap.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
1
|
+
{"version":3,"file":"UiFocusTrap.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiFocusTrap/UiFocusTrap.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAM9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAEtD;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IACrD;;;OAGG;IACH,+BAA+B,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACpE;AA8FD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgFlD,CAAC"}
|
@@ -1,33 +1,12 @@
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
2
|
-
import React, { useEffect, useRef } from "react";
|
3
|
-
|
4
|
-
|
5
|
-
'button:not(:disabled):not([aria-disabled="true"])',
|
6
|
-
'input:not(:disabled):not([aria-disabled="true"])',
|
7
|
-
'select:not(:disabled):not([aria-disabled="true"])',
|
8
|
-
'textarea:not(:disabled):not([aria-disabled="true"])',
|
9
|
-
// Links and areas
|
10
|
-
"a[href]",
|
11
|
-
"area[href]",
|
12
|
-
// Custom elements with tabindex
|
13
|
-
'[tabindex]:not([tabindex="-1"]):not(:disabled):not([aria-disabled="true"])',
|
14
|
-
// Media with controls
|
15
|
-
"audio[controls]",
|
16
|
-
"video[controls]",
|
17
|
-
// Editable content
|
18
|
-
'[contenteditable]:not([contenteditable="false"])',
|
19
|
-
].join(",");
|
20
|
-
const getFocusableElements = (element) => {
|
21
|
-
const focusableElements = element?.querySelectorAll(focusableElementsSelector);
|
22
|
-
const firstElement = focusableElements?.[0];
|
23
|
-
const lastElement = focusableElements?.[focusableElements.length - 1];
|
24
|
-
return { focusableElements, firstElement, lastElement };
|
25
|
-
};
|
2
|
+
import React, { useEffect, useRef, useCallback } from "react";
|
3
|
+
import { makeDialogKeyboardNavigation } from "../@utils/keyboardNavigation.js";
|
4
|
+
import { getFocusableElements } from "../../utils/domUtilities.js";
|
26
5
|
/**
|
27
6
|
* Attempts to find a truly focusable element by trying subsequent elements in the focusable elements collection
|
28
7
|
* This is useful when some elements are focusable but not reachable (e.g., out of viewport or disabled)
|
29
8
|
*/
|
30
|
-
const focusAndEnsureReachableElement = (initialElement, focusableElements,
|
9
|
+
const focusAndEnsureReachableElement = (initialElement, focusableElements, direction) => {
|
31
10
|
let nextElement = initialElement;
|
32
11
|
let attempts = 0;
|
33
12
|
const maxAttempts = focusableElements.length;
|
@@ -35,66 +14,88 @@ const focusAndEnsureReachableElement = (initialElement, focusableElements, shift
|
|
35
14
|
while (nextElement !== document.activeElement && attempts < maxAttempts) {
|
36
15
|
attempts++;
|
37
16
|
const currentIndex = Array.from(focusableElements).indexOf(nextElement);
|
38
|
-
const nextIndex =
|
17
|
+
const nextIndex = direction === "backward"
|
39
18
|
? (currentIndex - 1 + focusableElements.length) % focusableElements.length
|
40
19
|
: (currentIndex + 1) % focusableElements.length;
|
41
20
|
nextElement = focusableElements[nextIndex];
|
42
21
|
nextElement?.focus();
|
43
22
|
}
|
44
23
|
};
|
24
|
+
const useDialogKeyboardNavigation = (trapRef, returnFocus, onDeactivate) => {
|
25
|
+
const handleFocusNavigation = useCallback((focusableElements, direction) => {
|
26
|
+
const elements = Array.from(focusableElements);
|
27
|
+
const currentIndex = elements.indexOf(document.activeElement);
|
28
|
+
const firstElement = elements[0];
|
29
|
+
const lastElement = elements[elements.length - 1];
|
30
|
+
let nextElement;
|
31
|
+
if (direction === "backward") {
|
32
|
+
// Shift + Tab - moving backwards
|
33
|
+
nextElement = currentIndex <= 0 ? lastElement : elements[currentIndex - 1];
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
// Tab - moving forwards
|
37
|
+
nextElement =
|
38
|
+
currentIndex === elements.length - 1 ? firstElement : elements[currentIndex + 1];
|
39
|
+
}
|
40
|
+
if (nextElement) {
|
41
|
+
focusAndEnsureReachableElement(nextElement, focusableElements, direction);
|
42
|
+
}
|
43
|
+
}, []);
|
44
|
+
const keyboardNavigationHandler = useCallback((event) => {
|
45
|
+
if (!trapRef.current?.contains(event.target)) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
return makeDialogKeyboardNavigation({
|
49
|
+
onFocusNext: () => {
|
50
|
+
const { focusableElements } = getFocusableElements(trapRef.current);
|
51
|
+
if (!focusableElements?.length) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
handleFocusNavigation(focusableElements, "forward");
|
55
|
+
},
|
56
|
+
onFocusPrevious: () => {
|
57
|
+
const { focusableElements } = getFocusableElements(trapRef.current);
|
58
|
+
if (!focusableElements?.length) {
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
handleFocusNavigation(focusableElements, "backward");
|
62
|
+
},
|
63
|
+
onClose: () => {
|
64
|
+
onDeactivate?.();
|
65
|
+
returnFocus();
|
66
|
+
},
|
67
|
+
})(event);
|
68
|
+
}, [handleFocusNavigation, onDeactivate, returnFocus, trapRef]);
|
69
|
+
return {
|
70
|
+
keyboardNavigationHandler,
|
71
|
+
};
|
72
|
+
};
|
45
73
|
/**
|
46
74
|
* @internal
|
47
75
|
*/
|
48
|
-
export const UiFocusTrap = ({ children, onDeactivate, returnFocusTo, autofocusOnOpen = false, initialFocus, }) => {
|
76
|
+
export const UiFocusTrap = ({ children, onDeactivate, returnFocusTo: returnFocusToProp, autofocusOnOpen = false, returnFocusOnUnmount = false, initialFocus, customKeyboardNavigationHandler, }) => {
|
49
77
|
const trapRef = useRef(null);
|
50
|
-
const defaultReturnFocusToRef = useRef(
|
51
|
-
const
|
78
|
+
const defaultReturnFocusToRef = useRef(document.activeElement);
|
79
|
+
const returnFocusTo = returnFocusToProp ?? defaultReturnFocusToRef;
|
80
|
+
const returnFocus = useCallback(() => {
|
52
81
|
if (typeof returnFocusTo === "string") {
|
53
82
|
const element = document.getElementById(returnFocusTo);
|
54
|
-
|
55
|
-
element.focus();
|
56
|
-
}
|
83
|
+
element?.focus();
|
57
84
|
}
|
58
85
|
else if (returnFocusTo?.current) {
|
59
86
|
returnFocusTo.current.focus();
|
60
87
|
}
|
61
|
-
else if (defaultReturnFocusToRef.current) {
|
62
|
-
defaultReturnFocusToRef.current.focus();
|
63
|
-
}
|
64
88
|
}, [returnFocusTo]);
|
89
|
+
const { keyboardNavigationHandler } = useDialogKeyboardNavigation(trapRef, returnFocus, onDeactivate);
|
90
|
+
const keyboardHandler = customKeyboardNavigationHandler ?? keyboardNavigationHandler;
|
65
91
|
useEffect(() => {
|
66
|
-
|
67
|
-
|
68
|
-
const currentIndex = elements.indexOf(document.activeElement);
|
69
|
-
if (shiftKey) {
|
70
|
-
// Shift + Tab - moving backwards
|
71
|
-
return currentIndex <= 0 ? lastElement : elements[currentIndex - 1];
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
// Tab - moving forwards
|
75
|
-
return currentIndex === elements.length - 1 ? firstElement : elements[currentIndex + 1];
|
76
|
-
}
|
77
|
-
};
|
78
|
-
const handleKeyDown = (event) => {
|
79
|
-
// get fresh focusable elements set as they could change in meantime
|
80
|
-
const { firstElement, lastElement, focusableElements } = getFocusableElements(trapRef.current);
|
81
|
-
if (event.key === "Tab" && trapRef.current?.contains(event.target)) {
|
82
|
-
const nextElement = getNextElement(focusableElements, firstElement, lastElement, event.shiftKey);
|
83
|
-
if (nextElement) {
|
84
|
-
event.preventDefault();
|
85
|
-
event.stopPropagation();
|
86
|
-
focusAndEnsureReachableElement(nextElement, focusableElements, event.shiftKey);
|
87
|
-
}
|
88
|
-
}
|
89
|
-
else if (event.key === "Escape") {
|
90
|
-
if (onDeactivate) {
|
91
|
-
onDeactivate();
|
92
|
-
}
|
92
|
+
return () => {
|
93
|
+
if (returnFocusOnUnmount) {
|
93
94
|
returnFocus();
|
94
95
|
}
|
95
96
|
};
|
96
|
-
|
97
|
-
|
97
|
+
}, [returnFocusOnUnmount, returnFocus]);
|
98
|
+
useEffect(() => {
|
98
99
|
const focusTrapTimeout = setTimeout(() => {
|
99
100
|
if (!autofocusOnOpen) {
|
100
101
|
return;
|
@@ -106,10 +107,8 @@ export const UiFocusTrap = ({ children, onDeactivate, returnFocusTo, autofocusOn
|
|
106
107
|
if (initialFocus) {
|
107
108
|
if (typeof initialFocus === "string") {
|
108
109
|
const element = document.getElementById(initialFocus);
|
109
|
-
|
110
|
-
|
111
|
-
return;
|
112
|
-
}
|
110
|
+
element?.focus();
|
111
|
+
return;
|
113
112
|
}
|
114
113
|
else if (initialFocus.current) {
|
115
114
|
initialFocus.current.focus();
|
@@ -121,11 +120,15 @@ export const UiFocusTrap = ({ children, onDeactivate, returnFocusTo, autofocusOn
|
|
121
120
|
firstElement?.focus();
|
122
121
|
}, 100);
|
123
122
|
return () => {
|
124
|
-
document.removeEventListener("keydown", handleKeyDown);
|
125
123
|
clearTimeout(focusTrapTimeout);
|
126
|
-
returnFocus();
|
127
124
|
};
|
128
|
-
}, [
|
125
|
+
}, [autofocusOnOpen, initialFocus, returnFocus, keyboardHandler, returnFocusOnUnmount]);
|
126
|
+
useEffect(() => {
|
127
|
+
document.addEventListener("keydown", keyboardHandler);
|
128
|
+
return () => {
|
129
|
+
document.removeEventListener("keydown", keyboardHandler);
|
130
|
+
};
|
131
|
+
}, [keyboardHandler]);
|
129
132
|
return (React.createElement("div", { className: "gd-focus-trap", ref: trapRef }, children));
|
130
133
|
};
|
131
134
|
//# sourceMappingURL=UiFocusTrap.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UiFocusTrap.js","sourceRoot":"","sources":["../../../src/@ui/UiFocusTrap/UiFocusTrap.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"UiFocusTrap.js","sourceRoot":"","sources":["../../../src/@ui/UiFocusTrap/UiFocusTrap.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExportDialogBase.d.ts","sourceRoot":"","sources":["../../src/Dialog/ExportDialogBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"ExportDialogBase.d.ts","sourceRoot":"","sources":["../../src/Dialog/ExportDialogBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,gBAAgB,oDAuE3B,CAAC"}
|
@@ -5,20 +5,25 @@ import noop from "lodash/noop.js";
|
|
5
5
|
import { Checkbox } from "../Form/index.js";
|
6
6
|
import { ConfirmDialogBase } from "./ConfirmDialogBase.js";
|
7
7
|
import { usePropState } from "@gooddata/sdk-ui";
|
8
|
+
import { useIdPrefixed } from "../utils/useId.js";
|
8
9
|
/**
|
9
10
|
* @internal
|
10
11
|
*/
|
11
12
|
export const ExportDialogBase = React.memo(function ExportDialogBase({ className, displayCloseButton = true, isPositive = true, isSubmitDisabled = false, headline = "Export to XLSX", cancelButtonText = "Cancel", submitButtonText = "Export", onCancel = noop, onSubmit = noop, filterContextText = "Include applied filters", filterContextTitle = "INSIGHT CONTEXT", filterContextVisible = true, mergeHeadersDisabled = false, mergeHeadersText = "Keep attribute cells merged", mergeHeadersTitle = "CELLS", includeFilterContext = true, mergeHeaders = true, }) {
|
12
13
|
const [isFilterContextIncluded, setIsFilterContextIncluded] = usePropState(includeFilterContext);
|
13
14
|
const [shouldMergeHeaders, setShouldMergeHeaders] = usePropState(mergeHeaders);
|
15
|
+
const mergeHeadersId = useIdPrefixed("mergeHeaders");
|
14
16
|
const handleSubmit = React.useCallback(() => {
|
15
17
|
onSubmit({
|
16
18
|
includeFilterContext: isFilterContextIncluded,
|
17
19
|
mergeHeaders: shouldMergeHeaders,
|
18
20
|
});
|
19
21
|
}, [isFilterContextIncluded, onSubmit, shouldMergeHeaders]);
|
20
|
-
return (React.createElement(ConfirmDialogBase, { className: cx("gd-export-dialog", className), displayCloseButton: displayCloseButton, isPositive: isPositive, isSubmitDisabled: isSubmitDisabled, headline: headline, cancelButtonText: cancelButtonText, submitButtonText: submitButtonText, onCancel: onCancel, onSubmit: handleSubmit },
|
21
|
-
React.createElement(
|
22
|
-
|
22
|
+
return (React.createElement(ConfirmDialogBase, { className: cx("gd-export-dialog", className), displayCloseButton: displayCloseButton, isPositive: isPositive, isSubmitDisabled: isSubmitDisabled, headline: headline, cancelButtonText: cancelButtonText, submitButtonText: submitButtonText, onCancel: onCancel, onSubmit: handleSubmit, initialFocus: mergeHeadersId },
|
23
|
+
React.createElement("h4", null, mergeHeadersTitle),
|
24
|
+
React.createElement(Checkbox, { id: mergeHeadersId, disabled: mergeHeadersDisabled, name: "gs.dialog.export.checkbox.mergeHeaders", text: mergeHeadersText, value: shouldMergeHeaders, onChange: setShouldMergeHeaders }),
|
25
|
+
filterContextVisible ? (React.createElement(React.Fragment, null,
|
26
|
+
React.createElement("h4", null, filterContextTitle),
|
27
|
+
React.createElement(Checkbox, { name: "gs.dialog.export.checkbox.includeFilterContext", text: filterContextText, value: isFilterContextIncluded, onChange: setIsFilterContextIncluded }))) : null));
|
23
28
|
});
|
24
29
|
//# sourceMappingURL=ExportDialogBase.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExportDialogBase.js","sourceRoot":"","sources":["../../src/Dialog/ExportDialogBase.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"ExportDialogBase.js","sourceRoot":"","sources":["../../src/Dialog/ExportDialogBase.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAyB,SAAS,gBAAgB,CAAC,EACzF,SAAS,EACT,kBAAkB,GAAG,IAAI,EACzB,UAAU,GAAG,IAAI,EACjB,gBAAgB,GAAG,KAAK,EAExB,QAAQ,GAAG,gBAAgB,EAC3B,gBAAgB,GAAG,QAAQ,EAC3B,gBAAgB,GAAG,QAAQ,EAE3B,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,IAAI,EAEf,iBAAiB,GAAG,yBAAyB,EAC7C,kBAAkB,GAAG,iBAAiB,EACtC,oBAAoB,GAAG,IAAI,EAE3B,oBAAoB,GAAG,KAAK,EAC5B,gBAAgB,GAAG,6BAA6B,EAChD,iBAAiB,GAAG,OAAO,EAE3B,oBAAoB,GAAG,IAAI,EAC3B,YAAY,GAAG,IAAI,GACtB;IACG,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACjG,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,QAAQ,CAAC;YACL,oBAAoB,EAAE,uBAAuB;YAC7C,YAAY,EAAE,kBAAkB;SACnC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE5D,OAAO,CACH,oBAAC,iBAAiB,IACd,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC5C,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,cAAc;QAE5B,gCAAK,iBAAiB,CAAM;QAC5B,oBAAC,QAAQ,IACL,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAC,wCAAwC,EAC7C,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,qBAAqB,GACjC;QACD,oBAAoB,CAAC,CAAC,CAAC,CACpB;YACI,gCAAK,kBAAkB,CAAM;YAC7B,oBAAC,QAAQ,IACL,IAAI,EAAC,gDAAgD,EACrD,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,0BAA0B,GACtC,CACH,CACN,CAAC,CAAC,CAAC,IAAI,CACQ,CACvB,CAAC;AACN,CAAC,CAAC,CAAC"}
|
@@ -9,7 +9,7 @@ import { Button } from "../../../Button/index.js";
|
|
9
9
|
import { GranularGranteeUserItem } from "./GranularPermissions/GranularGranteeUserItem.js";
|
10
10
|
import { GranularGranteeGroupItem } from "./GranularPermissions/GranularGranteeGroupItem.js";
|
11
11
|
import { invariant } from "ts-invariant";
|
12
|
-
import {
|
12
|
+
import { useIdPrefixed } from "../../../utils/useId.js";
|
13
13
|
const granteeUserTitleRenderer = (grantee, intl) => {
|
14
14
|
const userName = getGranteeLabel(grantee, intl);
|
15
15
|
if (grantee.status === "Inactive") {
|
@@ -83,7 +83,7 @@ const GranteeGroupItem = (props) => {
|
|
83
83
|
*/
|
84
84
|
export const GranteeItemComponent = (props) => {
|
85
85
|
const { grantee, mode, currentUserPermissions, isSharedObjectLocked, onDelete, onChange } = props;
|
86
|
-
const granularGranteeItemId =
|
86
|
+
const granularGranteeItemId = useIdPrefixed("grantee-item");
|
87
87
|
if (isGranularGranteeUser(grantee)) {
|
88
88
|
return (React.createElement(GranularGranteeUserItem, { currentUserPermissions: currentUserPermissions, isSharedObjectLocked: isSharedObjectLocked, grantee: grantee, onChange: onChange, onDelete: onDelete, mode: mode, id: granularGranteeItemId }));
|
89
89
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"GranteeItem.js","sourceRoot":"","sources":["../../../../src/Dialog/ShareDialog/ShareDialogBase/GranteeItem.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAa,OAAO,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAQH,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EACH,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"GranteeItem.js","sourceRoot":"","sources":["../../../../src/Dialog/ShareDialog/ShareDialogBase/GranteeItem.tsx"],"names":[],"mappings":"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"}
|
package/esm/Form/Checkbox.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/Form/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AAEH,qBAAa,QAAS,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5D,MAAM,CAAC,YAAY;;;;;;;;MAQjB;IAEF,QAAQ,MAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI,CAEvD;IAEF,MAAM;
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/Form/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AAEH,qBAAa,QAAS,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5D,MAAM,CAAC,YAAY;;;;;;;;MAQjB;IAEF,QAAQ,MAAO,MAAM,WAAW,CAAC,gBAAgB,CAAC,KAAG,IAAI,CAEvD;IAEF,MAAM;CA0BT"}
|
package/esm/Form/Checkbox.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
// (C) 2019-
|
1
|
+
// (C) 2019-2025 GoodData Corporation
|
2
2
|
import React from "react";
|
3
3
|
import cx from "classnames";
|
4
4
|
import noop from "lodash/noop.js";
|
@@ -19,7 +19,7 @@ export class Checkbox extends React.PureComponent {
|
|
19
19
|
this.props.onChange(e.target.checked);
|
20
20
|
};
|
21
21
|
render() {
|
22
|
-
const { disabled, name, text, title, value, labelSize } = this.props;
|
22
|
+
const { disabled, name, text, title, value, labelSize, id } = this.props;
|
23
23
|
const labelClasses = cx("input-label-text", {
|
24
24
|
"gd-label-small gd-checkbox-label-small": labelSize === "small",
|
25
25
|
"gd-label gd-checkbox-label": labelSize === "normal",
|
@@ -27,7 +27,7 @@ export class Checkbox extends React.PureComponent {
|
|
27
27
|
return (React.createElement(React.Fragment, null,
|
28
28
|
title ? React.createElement("h6", null, title) : null,
|
29
29
|
React.createElement("label", { className: "input-checkbox-label" },
|
30
|
-
React.createElement("input", { type: "checkbox", className: "input-checkbox", name: name, checked: value, disabled: disabled, onChange: this.onChange }),
|
30
|
+
React.createElement("input", { id: id, type: "checkbox", className: "input-checkbox", name: name, checked: value, disabled: disabled, onChange: this.onChange }),
|
31
31
|
React.createElement("span", { className: labelClasses }, text))));
|
32
32
|
}
|
33
33
|
}
|
package/esm/Form/Checkbox.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/Form/Checkbox.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,IAAI,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/Form/Checkbox.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAkBlC;;GAEG;AAEH,MAAM,OAAO,QAAS,SAAQ,KAAK,CAAC,aAA4B;IAC5D,MAAM,CAAC,YAAY,GAAG;QAClB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,IAAI;KACjB,CAAC;IAEF,QAAQ,GAAG,CAAC,CAAsC,EAAQ,EAAE;QACxD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM;QACF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzE,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,EAAE;YACxC,wCAAwC,EAAE,SAAS,KAAK,OAAO;YAC/D,4BAA4B,EAAE,SAAS,KAAK,QAAQ;SACvD,CAAC,CAAC;QAEH,OAAO,CACH,oBAAC,KAAK,CAAC,QAAQ;YACV,KAAK,CAAC,CAAC,CAAC,gCAAK,KAAK,CAAM,CAAC,CAAC,CAAC,IAAI;YAChC,+BAAO,SAAS,EAAC,sBAAsB;gBACnC,+BACI,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,EACf,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACzB;gBACF,8BAAM,SAAS,EAAE,YAAY,IAAG,IAAI,CAAQ,CACxC,CACK,CACpB,CAAC;IACN,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderAccount.d.ts","sourceRoot":"","sources":["../../src/Header/HeaderAccount.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAOxE,OAAO,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKpE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
1
|
+
{"version":3,"file":"HeaderAccount.d.ts","sourceRoot":"","sources":["../../src/Header/HeaderAccount.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAOxE,OAAO,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKpE,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuFvD,CAAC"}
|
@@ -5,14 +5,13 @@ import { useIntl, FormattedMessage } from "react-intl";
|
|
5
5
|
import { Overlay } from "../Overlay/index.js";
|
6
6
|
import { Button } from "../Button/index.js";
|
7
7
|
import { UiFocusTrap } from "../@ui/UiFocusTrap/UiFocusTrap.js";
|
8
|
-
import {
|
8
|
+
import { useIdPrefixed } from "../utils/useId.js";
|
9
9
|
import { isActionKey } from "../utils/events.js";
|
10
10
|
export const HeaderAccount = ({ className = "", items = [], userName = "", onMenuItemClick, }) => {
|
11
11
|
const [isOpen, setIsOpen] = useState(false);
|
12
12
|
const buttonRef = useRef(null);
|
13
13
|
const intl = useIntl();
|
14
|
-
const
|
15
|
-
const dropdownId = `account-dropdown-${id}`;
|
14
|
+
const dropdownId = useIdPrefixed("account-dropdown");
|
16
15
|
const classNames = cx("gd-header-button", {
|
17
16
|
"gd-header-account": true,
|
18
17
|
"is-open": isOpen,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderAccount.js","sourceRoot":"","sources":["../../src/Header/HeaderAccount.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAa,WAAW,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"HeaderAccount.js","sourceRoot":"","sources":["../../src/Header/HeaderAccount.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeaderHelp.d.ts","sourceRoot":"","sources":["../../src/Header/HeaderHelp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAgC,SAAS,EAAE,MAAM,YAAY,CAAC;AAKrE,OAAO,EAAE,2BAA2B,EAAe,MAAM,2BAA2B,CAAC;AAKrF,UAAU,SAAS;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
1
|
+
{"version":3,"file":"HeaderHelp.d.ts","sourceRoot":"","sources":["../../src/Header/HeaderHelp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAgC,SAAS,EAAE,MAAM,YAAY,CAAC;AAKrE,OAAO,EAAE,2BAA2B,EAAe,MAAM,2BAA2B,CAAC;AAKrF,UAAU,SAAS;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwIrD,CAAC;AAEF,eAAO,MAAM,UAAU;;CAA6B,CAAC"}
|