@gooddata/sdk-ui-kit 11.52.0-alpha.5 → 11.52.0-alpha.7
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/UiAddGranteeDialog/UiAddGranteeDialogCard.d.ts +8 -1
- package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.d.ts.map +1 -1
- package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.js +3 -3
- package/esm/@ui/UiAddGranteeDialog/useGranteeSelection.d.ts +2 -0
- package/esm/@ui/UiAddGranteeDialog/useGranteeSelection.d.ts.map +1 -1
- package/esm/@ui/UiAddGranteeDialog/useGranteeSelection.js +4 -1
- package/esm/@ui/UiCombobox/UiComboboxInput.d.ts +2 -0
- package/esm/@ui/UiCombobox/UiComboboxInput.d.ts.map +1 -1
- package/esm/@ui/UiCombobox/UiComboboxInput.js +2 -2
- package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.d.ts +18 -1
- package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.d.ts.map +1 -1
- package/esm/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.js +7 -2
- package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.d.ts +14 -5
- package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.d.ts.map +1 -1
- package/esm/@ui/UiGranteeRowControls/UiGranteeRowControls.js +8 -7
- package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.d.ts.map +1 -1
- package/esm/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.js +25 -22
- package/esm/@ui/UiMenu/types.d.ts +1 -0
- package/esm/@ui/UiMenu/types.d.ts.map +1 -1
- package/esm/@ui/UiPermissionMenu/UiPermissionMenu.d.ts +9 -1
- package/esm/@ui/UiPermissionMenu/UiPermissionMenu.d.ts.map +1 -1
- package/esm/@ui/UiPermissionMenu/UiPermissionMenu.js +8 -4
- package/esm/@ui/UiTextInput/UiTextInput.d.ts +3 -1
- package/esm/@ui/UiTextInput/UiTextInput.d.ts.map +1 -1
- package/esm/@ui/UiTextInput/UiTextInput.js +2 -2
- package/esm/ChartSorting/ChartSorting.d.ts +2 -14
- package/esm/ChartSorting/ChartSorting.d.ts.map +1 -1
- package/esm/ChartSorting/ChartSorting.js +4 -7
- package/esm/Datepicker/Datepicker.d.ts +5 -56
- package/esm/Datepicker/Datepicker.d.ts.map +1 -1
- package/esm/Datepicker/Datepicker.js +145 -183
- package/esm/Form/InputWithNumberFormat.d.ts +0 -1
- package/esm/Form/InputWithNumberFormat.d.ts.map +1 -1
- package/esm/Form/InputWithNumberFormat.js +12 -18
- package/esm/index.d.ts +2 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/locales.d.ts +3 -0
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +1 -0
- package/esm/sdk-ui-kit.d.ts +57 -28
- package/package.json +11 -11
- package/src/@ui/UiMenu/UiMenu.scss +1 -1
- package/src/@ui/UiTextInput/UiTextInput.scss +7 -0
- package/styles/css/main.css +4 -1
- package/styles/css/main.css.map +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type IUiGranteeAsyncOptions, type IUiPickedGrantee } from "../UiGranteeAsyncPicker/UiGranteeAsyncPicker.js";
|
|
2
|
+
import { type IUiLabelsChecklistItem } from "../UiLabelsChecklist/UiLabelsChecklist.js";
|
|
2
3
|
import { type PermissionMenuLevel } from "../UiPermissionMenu/UiPermissionMenu.js";
|
|
3
4
|
/**
|
|
4
5
|
* @internal
|
|
@@ -25,6 +26,12 @@ export interface IUiAddGranteeDialogCardProps {
|
|
|
25
26
|
* "SHARE" for owners) override here.
|
|
26
27
|
*/
|
|
27
28
|
initialPermissionLevel?: PermissionMenuLevel;
|
|
29
|
+
/**
|
|
30
|
+
* Labels the picked grantees can be scoped to. Non-empty adds a Label access
|
|
31
|
+
* drill-in to each row's permission menu, so the scope is picked in the same
|
|
32
|
+
* step as the grant rather than after it. Omit for objects without labels.
|
|
33
|
+
*/
|
|
34
|
+
labels?: ReadonlyArray<IUiLabelsChecklistItem>;
|
|
28
35
|
/** Fires when the user clicks the header back-arrow button. */
|
|
29
36
|
onBack: () => void;
|
|
30
37
|
/** Fires when the user clicks the header X close button. */
|
|
@@ -52,5 +59,5 @@ export interface IUiAddGranteeDialogCardProps {
|
|
|
52
59
|
*
|
|
53
60
|
* @internal
|
|
54
61
|
*/
|
|
55
|
-
export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export declare function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel, labels, onBack, onClose, onCancel, onShare, dataTestId }: IUiAddGranteeDialogCardProps): import("react/jsx-runtime").JSX.Element;
|
|
56
63
|
//# sourceMappingURL=UiAddGranteeDialogCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiAddGranteeDialogCard.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAExB,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"UiAddGranteeDialogCard.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/UiAddGranteeDialogCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAExB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC,6EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,6EAA6E;IAC7E,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;OAGG;IACH,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAE/C,+DAA+D;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,sBAA+B,EAC/B,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACb,EAAE,4BAA4B,2CAkD9B"}
|
|
@@ -23,17 +23,17 @@ const { b } = bem("gd-ui-kit-add-grantee-dialog");
|
|
|
23
23
|
*
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
|
-
export function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel = "VIEW", onBack, onClose, onCancel, onShare, dataTestId, }) {
|
|
26
|
+
export function UiAddGranteeDialogCard({ objectTitle, loadOptions, selectedGrantees, onSelectedGranteesChange, initialPermissionLevel = "VIEW", labels, onBack, onClose, onCancel, onShare, dataTestId, }) {
|
|
27
27
|
const intl = useIntl();
|
|
28
28
|
const dialogTitle = intl.formatMessage(olpObjectShareDialogMessages.title, { title: objectTitle });
|
|
29
29
|
const backButton = (_jsx(UiIconButton, { icon: "chevronLeft", variant: "tertiary", size: "small", onClick: onBack, accessibilityConfig: { ariaLabel: intl.formatMessage(olpAddGranteeDialogMessages.back) } }));
|
|
30
|
-
const { select, changePermission, remove } = useGranteeSelection({
|
|
30
|
+
const { select, changePermission, changeLabels, remove } = useGranteeSelection({
|
|
31
31
|
selectedGrantees,
|
|
32
32
|
onSelectedGranteesChange,
|
|
33
33
|
initialPermissionLevel,
|
|
34
34
|
});
|
|
35
35
|
return (_jsxs("div", { className: b(), "data-testid": dataTestId, children: [
|
|
36
|
-
_jsx(UiDialogHeader, { title: dialogTitle, titleSize: "large", onClose: onClose, leading: backButton }), _jsx(UiGranteeAsyncPicker, { loadOptions: loadOptions, selectedGrantees: selectedGrantees, onSelect: select, onPermissionChange: changePermission, onRemove: remove }), _jsxs(UiDialogFooter, { divider: true, children: [
|
|
36
|
+
_jsx(UiDialogHeader, { title: dialogTitle, titleSize: "large", onClose: onClose, leading: backButton }), _jsx(UiGranteeAsyncPicker, { loadOptions: loadOptions, selectedGrantees: selectedGrantees, onSelect: select, onPermissionChange: changePermission, labels: labels, onLabelsChange: changeLabels, onRemove: remove }), _jsxs(UiDialogFooter, { divider: true, children: [
|
|
37
37
|
_jsx(UiButton, { label: intl.formatMessage(commonDialogMessages.cancel), variant: "secondary", size: "medium", onClick: onCancel }), _jsx(UiButton, { label: intl.formatMessage(olpAddGranteeDialogMessages.add), variant: "primary", size: "medium", onClick: onShare, isDisabled: selectedGrantees.length === 0 })
|
|
38
38
|
] })
|
|
39
39
|
] }));
|
|
@@ -22,6 +22,8 @@ export interface IUseGranteeSelectionResult {
|
|
|
22
22
|
select: (option: IUiGranteeAsyncOption) => void;
|
|
23
23
|
/** Change a row's permission level. */
|
|
24
24
|
changePermission: (grantee: IUiPickedGrantee, next: PermissionMenuLevel) => void;
|
|
25
|
+
/** Change a row's label scope. */
|
|
26
|
+
changeLabels: (grantee: IUiPickedGrantee, selectedLabelIds: string[]) => void;
|
|
25
27
|
/** Remove a row. */
|
|
26
28
|
remove: (grantee: IUiPickedGrantee) => void;
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGranteeSelection.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/useGranteeSelection.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACxB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,qDAAmD;IACnD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD,oEAAoE;IACpE,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,uEAAqE;IACrE,MAAM,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,uCAAuC;IACvC,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjF,oBAAoB;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,gBAAgB,EAChB,wBAAwB,EACxB,sBAA+B,EAClC,EAAE,2BAA2B,GAAG,0BAA0B,
|
|
1
|
+
{"version":3,"file":"useGranteeSelection.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiAddGranteeDialog/useGranteeSelection.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACxB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,qDAAmD;IACnD,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD,oEAAoE;IACpE,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,uEAAqE;IACrE,MAAM,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAChD,uCAAuC;IACvC,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjF,kCAAkC;IAClC,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9E,oBAAoB;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,gBAAgB,EAChB,wBAAwB,EACxB,sBAA+B,EAClC,EAAE,2BAA2B,GAAG,0BAA0B,CA2C1D"}
|
|
@@ -22,8 +22,11 @@ export function useGranteeSelection({ selectedGrantees, onSelectedGranteesChange
|
|
|
22
22
|
const changePermission = useCallback((grantee, next) => {
|
|
23
23
|
onSelectedGranteesChange(selectedGrantees.map((g) => (g.id === grantee.id ? { ...g, permissionLevel: next } : g)));
|
|
24
24
|
}, [selectedGrantees, onSelectedGranteesChange]);
|
|
25
|
+
const changeLabels = useCallback((grantee, selectedLabelIds) => {
|
|
26
|
+
onSelectedGranteesChange(selectedGrantees.map((g) => (g.id === grantee.id ? { ...g, labelIds: selectedLabelIds } : g)));
|
|
27
|
+
}, [selectedGrantees, onSelectedGranteesChange]);
|
|
25
28
|
const remove = useCallback((grantee) => {
|
|
26
29
|
onSelectedGranteesChange(selectedGrantees.filter((g) => g.id !== grantee.id));
|
|
27
30
|
}, [selectedGrantees, onSelectedGranteesChange]);
|
|
28
|
-
return { select, changePermission, remove };
|
|
31
|
+
return { select, changePermission, changeLabels, remove };
|
|
29
32
|
}
|
|
@@ -10,6 +10,8 @@ export interface IUiComboboxInputProps {
|
|
|
10
10
|
accessibilityConfig?: IAccessibilityConfigBase;
|
|
11
11
|
/** Visible placeholder. */
|
|
12
12
|
placeholder?: string;
|
|
13
|
+
/** Marks the field invalid: error-colored border plus `aria-invalid`. */
|
|
14
|
+
isError?: boolean;
|
|
13
15
|
/** Form field name forwarded to the underlying input. */
|
|
14
16
|
name?: string;
|
|
15
17
|
autoFocus?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiCombobox/UiComboboxInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EAIlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK/E,gBAAgB;AAChB,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"UiComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiCombobox/UiComboboxInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EAIlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK/E,gBAAgB;AAChB,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,oHAwF3B,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { useComboboxState } from "./UiComboboxContext.js";
|
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
12
|
export const UiComboboxInput = forwardRef(function UiComboboxInput(props, forwardedRef) {
|
|
13
|
-
const { accessibilityConfig, placeholder, name, autoFocus, onKeyDown: callerOnKeyDown, onFocus: callerOnFocus, onBlur: callerOnBlur, onClick: callerOnClick, dataTestId, } = props;
|
|
13
|
+
const { accessibilityConfig, placeholder, isError, name, autoFocus, onKeyDown: callerOnKeyDown, onFocus: callerOnFocus, onBlur: callerOnBlur, onClick: callerOnClick, dataTestId, } = props;
|
|
14
14
|
const { inputValue, onInputChange, onInputKeyDown, onInputBlur, isOpen, setIsOpen, anchorRef, activeOption, listboxId, } = useComboboxState();
|
|
15
15
|
const handleKeyDown = useCallback((event) => {
|
|
16
16
|
onInputKeyDown(event);
|
|
@@ -29,7 +29,7 @@ export const UiComboboxInput = forwardRef(function UiComboboxInput(props, forwar
|
|
|
29
29
|
setIsOpen(!isOpen);
|
|
30
30
|
callerOnClick?.(event);
|
|
31
31
|
}, [isOpen, setIsOpen, callerOnClick]);
|
|
32
|
-
return (_jsx(UiTextInput, { inputRef: forwardedRef, wrapperRef: anchorRef, value: inputValue, onChange: onInputChange, name: name, placeholder: placeholder, autoFocus: autoFocus,
|
|
32
|
+
return (_jsx(UiTextInput, { inputRef: forwardedRef, wrapperRef: anchorRef, value: inputValue, onChange: onInputChange, name: name, placeholder: placeholder, isError: isError, autoFocus: autoFocus,
|
|
33
33
|
// Browser autofill would overlap the listbox; the combobox
|
|
34
34
|
// owns its own typeahead so we suppress all native suggestions.
|
|
35
35
|
autoComplete: "off", autoCapitalize: "none", autoCorrect: "off", dataTestId: dataTestId, onKeyDown: handleKeyDown, onFocus: callerOnFocus, onBlur: handleBlur, onClick: handleClick, accessibilityConfig: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ObjRef } from "@gooddata/sdk-model";
|
|
2
2
|
import { type GranteeAvatarKind } from "../UiGranteeAvatar/UiGranteeAvatar.js";
|
|
3
|
+
import { type IUiLabelsChecklistItem } from "../UiLabelsChecklist/UiLabelsChecklist.js";
|
|
3
4
|
import { type PermissionMenuLevel } from "../UiPermissionMenu/UiPermissionMenu.js";
|
|
4
5
|
/**
|
|
5
6
|
* One pickable user or group entry.
|
|
@@ -28,6 +29,12 @@ export interface IUiGranteeAsyncOption {
|
|
|
28
29
|
export interface IUiPickedGrantee extends IUiGranteeAsyncOption {
|
|
29
30
|
/** Permission level chosen for this grantee. Drives the row's permission menu trigger label. */
|
|
30
31
|
permissionLevel: PermissionMenuLevel;
|
|
32
|
+
/**
|
|
33
|
+
* Label scope chosen for this grantee, as ids of the picker's `labels`.
|
|
34
|
+
* `undefined` means every label — the untouched default, so a consumer that
|
|
35
|
+
* offers no label picker never has to populate it.
|
|
36
|
+
*/
|
|
37
|
+
labelIds?: ReadonlyArray<string>;
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
40
|
* Result returned by the consumer's loader: separate `groups` and `users` arrays
|
|
@@ -62,6 +69,16 @@ export interface IUiGranteeAsyncPickerProps {
|
|
|
62
69
|
onPermissionChange?: (grantee: IUiPickedGrantee, next: PermissionMenuLevel) => void;
|
|
63
70
|
/** Fires when the user picks Remove access in the row's permission menu. */
|
|
64
71
|
onRemove?: (grantee: IUiPickedGrantee) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Labels the picked grantees can be scoped to. Non-empty adds a Label access
|
|
74
|
+
* drill-in to each row's permission menu, so a scope can be narrowed before the
|
|
75
|
+
* grantee is granted anything. The row renders `grantee.labelIds`, which the consumer
|
|
76
|
+
* owns. Requires `onLabelsChange`: without somewhere to put the pick, the drill-in
|
|
77
|
+
* stays hidden rather than offering an Apply that discards it.
|
|
78
|
+
*/
|
|
79
|
+
labels?: ReadonlyArray<IUiLabelsChecklistItem>;
|
|
80
|
+
/** Fires with the applied label scope of a picked row. Enables `labels`. */
|
|
81
|
+
onLabelsChange?: (grantee: IUiPickedGrantee, selectedLabelIds: string[]) => void;
|
|
65
82
|
/** Test id forwarded to the root element. */
|
|
66
83
|
dataTestId?: string;
|
|
67
84
|
}
|
|
@@ -74,5 +91,5 @@ export interface IUiGranteeAsyncPickerProps {
|
|
|
74
91
|
*
|
|
75
92
|
* @internal
|
|
76
93
|
*/
|
|
77
|
-
export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, onRemove, dataTestId }: IUiGranteeAsyncPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
94
|
+
export declare function UiGranteeAsyncPicker({ loadOptions, selectedGrantees, onSelect, onPermissionChange, onRemove, labels, onLabelsChange, dataTestId }: IUiGranteeAsyncPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
78
95
|
//# sourceMappingURL=UiGranteeAsyncPicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiGranteeAsyncPicker.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;AAIjD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,yFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX;;yBAEqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC3D,gGAAgG;IAChG,eAAe,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"UiGranteeAsyncPicker.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeAsyncPicker/UiGranteeAsyncPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;AAIjD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,yFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX;;yBAEqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC3D,gGAAgG;IAChG,eAAe,EAAE,mBAAmB,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAClD,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjF,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,WAAW,EACX,gBAAqB,EACrB,QAAQ,EACR,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,cAAc,EACd,UAAU,EACb,EAAE,0BAA0B,2CAuH5B"}
|
|
@@ -18,7 +18,7 @@ const { b, e } = bem("gd-ui-kit-grantee-async-picker");
|
|
|
18
18
|
*
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
|
-
export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSelect, onPermissionChange, onRemove, dataTestId, }) {
|
|
21
|
+
export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSelect, onPermissionChange, onRemove, labels, onLabelsChange, dataTestId, }) {
|
|
22
22
|
const intl = useIntl();
|
|
23
23
|
const groupsLabel = intl.formatMessage(uiGranteeAsyncPickerMessages.sectionGroups);
|
|
24
24
|
const usersLabel = intl.formatMessage(uiGranteeAsyncPickerMessages.sectionUsers);
|
|
@@ -58,6 +58,11 @@ export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSel
|
|
|
58
58
|
stateNoMatch: intl.formatMessage(uiGranteeAsyncPickerMessages.stateNoMatch),
|
|
59
59
|
}), [intl]);
|
|
60
60
|
const fieldLabel = intl.formatMessage(olpAddGranteeDialogMessages.userOrGroup);
|
|
61
|
+
// A row with no scope of its own covers every label (see `labelIds`). The drill-in is
|
|
62
|
+
// offered only when the pick has somewhere to go — otherwise Apply would silently
|
|
63
|
+
// discard it.
|
|
64
|
+
const scopeLabels = onLabelsChange ? labels : undefined;
|
|
65
|
+
const allLabelIds = useMemo(() => (scopeLabels ?? []).map((l) => l.id), [scopeLabels]);
|
|
61
66
|
return (_jsxs("div", { className: b(), "data-testid": dataTestId, children: [
|
|
62
67
|
_jsxs("div", { className: e("field"), children: [
|
|
63
68
|
_jsx("div", { className: e("field-label"), children: fieldLabel }), _jsx(UiAutocomplete, { loadOptions: adaptedLoadOptions, selectedIds: selectedIds, onSelect: handleSelect, messages: autocompleteMessages, accessibilityConfig: {
|
|
@@ -65,6 +70,6 @@ export function UiGranteeAsyncPicker({ loadOptions, selectedGrantees = [], onSel
|
|
|
65
70
|
} })
|
|
66
71
|
] }), selectedGrantees.length === 0 ? (_jsx("div", { className: e("empty-state"), children: intl.formatMessage(olpAddGranteeDialogMessages.emptyState) })) : null, selectedGrantees.length > 0 ? (_jsx("ul", { className: e("picked-list"), children: selectedGrantees.map((g) => {
|
|
67
72
|
const triggerLabel = intl.formatMessage(permissionLevelMessage(g.permissionLevel));
|
|
68
|
-
return (_jsx("li", { className: e("picked-item"), children: _jsx(UiGranteeRow, { kind: g.kind, name: g.name, email: g.email, controls: _jsx(UiPermissionMenu, { selectedLevel: g.permissionLevel, onPermissionChange: (next) => onPermissionChange?.(g, next), onRemoveAccess: onRemove ? () => onRemove(g) : undefined, anchor: _jsx(UiButton, { label: triggerLabel, variant: "dropdownInline", size: "small", iconAfter: "navigateDown" }) }) }) }, g.id));
|
|
73
|
+
return (_jsx("li", { className: e("picked-item"), children: _jsx(UiGranteeRow, { kind: g.kind, name: g.name, email: g.email, controls: _jsx(UiPermissionMenu, { selectedLevel: g.permissionLevel, onPermissionChange: (next) => onPermissionChange?.(g, next), labels: scopeLabels, selectedLabelIds: g.labelIds ?? allLabelIds, onLabelsChange: (ids) => onLabelsChange?.(g, ids), onRemoveAccess: onRemove ? () => onRemove(g) : undefined, anchor: _jsx(UiButton, { label: triggerLabel, variant: "dropdownInline", size: "small", iconAfter: "navigateDown" }) }) }) }, g.id));
|
|
69
74
|
}) })) : null] }));
|
|
70
75
|
}
|
|
@@ -11,10 +11,12 @@ export interface IUiGranteeRowControlsProps {
|
|
|
11
11
|
/** The grantee's current permission level — anchors the permission menu. */
|
|
12
12
|
permissionLevel: AccessGranularPermission;
|
|
13
13
|
/**
|
|
14
|
-
* CONTRACT: set
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* CONTRACT: set to the INHERITED level whenever inheritance — from a group or a
|
|
15
|
+
* parent workspace — is what decides this row's level: either it outranks the grant
|
|
16
|
+
* made here, or there is no local grant at all and the whole level is inherited (then
|
|
17
|
+
* it equals `permissionLevel`, VIEW included). The control renders the warning badge
|
|
18
|
+
* whenever this is set and does not re-check the ordering. Undefined when the level
|
|
19
|
+
* granted here already is the effective one.
|
|
18
20
|
*/
|
|
19
21
|
effectivePermission?: AccessGranularPermission;
|
|
20
22
|
/** Levels rendered disabled in the permission menu — see {@link UiPermissionMenu}. */
|
|
@@ -24,6 +26,13 @@ export interface IUiGranteeRowControlsProps {
|
|
|
24
26
|
onLabelsChange: (selectedIds: string[]) => void;
|
|
25
27
|
onPermissionChange: (level: PermissionMenuLevel) => void;
|
|
26
28
|
onRemoveAccess?: () => void;
|
|
29
|
+
/**
|
|
30
|
+
* Renders Remove access disabled instead of hiding it — e.g. for a grantee whose
|
|
31
|
+
* access is inherited, so there is no grant here to revoke.
|
|
32
|
+
*/
|
|
33
|
+
isRemoveDisabled?: boolean;
|
|
34
|
+
/** Tooltip shown on Remove access while it is disabled. */
|
|
35
|
+
removeDisabledTooltip?: string;
|
|
27
36
|
/** Disables the permission trigger, e.g. while the row's change is saving. */
|
|
28
37
|
isDisabled?: boolean;
|
|
29
38
|
dataTestId?: string;
|
|
@@ -35,5 +44,5 @@ export interface IUiGranteeRowControlsProps {
|
|
|
35
44
|
*
|
|
36
45
|
* @internal
|
|
37
46
|
*/
|
|
38
|
-
export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isDisabled, dataTestId }: IUiGranteeRowControlsProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isRemoveDisabled, removeDisabledTooltip, isDisabled, dataTestId }: IUiGranteeRowControlsProps): import("react/jsx-runtime").JSX.Element;
|
|
39
48
|
//# sourceMappingURL=UiGranteeRowControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiGranteeRowControls.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeRowControls/UiGranteeRowControls.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAMpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"UiGranteeRowControls.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiGranteeRowControls/UiGranteeRowControls.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAMpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yCAAyC,CAAC;AAcjD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,mDAAmD;IACnD,MAAM,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC9C,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,8EAA4E;IAC5E,eAAe,EAAE,wBAAwB,CAAC;IAC1C;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,wFAAsF;IACtF,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,kBAAkB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACb,EAAE,0BAA0B,2CAwD5B"}
|
|
@@ -8,11 +8,13 @@ import { UiIcon } from "../UiIcon/UiIcon.js";
|
|
|
8
8
|
import { UiPermissionMenu, permissionLevelMessage, } from "../UiPermissionMenu/UiPermissionMenu.js";
|
|
9
9
|
import { UiTooltip } from "../UiTooltip/UiTooltip.js";
|
|
10
10
|
const { b, e } = bem("gd-ui-kit-grantee-row-controls");
|
|
11
|
-
// The warning badge names
|
|
12
|
-
//
|
|
11
|
+
// The warning badge names the inherited level. VIEW is here because an inherited-only
|
|
12
|
+
// grantee's whole level comes from inheritance, so it needs the badge at any level —
|
|
13
|
+
// including VIEW, where nothing is "higher" but the access is still not ours to change.
|
|
13
14
|
const EFFECTIVE_PERMISSION_TOOLTIP = {
|
|
14
15
|
EDIT: olpPermissionMessages.effectivePermissionTooltipEdit,
|
|
15
16
|
SHARE: olpPermissionMessages.effectivePermissionTooltipShare,
|
|
17
|
+
VIEW: olpPermissionMessages.effectivePermissionTooltipView,
|
|
16
18
|
};
|
|
17
19
|
/**
|
|
18
20
|
* Per-row controls in the OLP share dialog: the permission dropdown
|
|
@@ -21,16 +23,15 @@ const EFFECTIVE_PERMISSION_TOOLTIP = {
|
|
|
21
23
|
*
|
|
22
24
|
* @internal
|
|
23
25
|
*/
|
|
24
|
-
export function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isDisabled, dataTestId, }) {
|
|
26
|
+
export function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, disabledLevels, disabledTooltip, onLabelsChange, onPermissionChange, onRemoveAccess, isRemoveDisabled, removeDisabledTooltip, isDisabled, dataTestId, }) {
|
|
25
27
|
const intl = useIntl();
|
|
26
28
|
const hasLabels = labels.length > 0;
|
|
27
|
-
// The caller
|
|
28
|
-
//
|
|
29
|
-
// has tooltip copy, without re-deriving the level ordering here.
|
|
29
|
+
// The caller decides when inheritance drives the row (see the prop's contract) —
|
|
30
|
+
// render the badge whenever it is set, without re-deriving the level ordering here.
|
|
30
31
|
const inheritedTooltipMessage = effectivePermission === undefined ? undefined : EFFECTIVE_PERMISSION_TOOLTIP[effectivePermission];
|
|
31
32
|
const effectiveTooltip = inheritedTooltipMessage
|
|
32
33
|
? intl.formatMessage(inheritedTooltipMessage)
|
|
33
34
|
: undefined;
|
|
34
|
-
return (_jsxs("div", { className: b(), "data-testid": dataTestId, children: [effectiveTooltip ? (_jsx(UiTooltip, { triggerBy: ["hover", "focus"], content: effectiveTooltip, anchor: _jsx("span", { className: e("effective-warning"), role: "img", "aria-label": intl.formatMessage(olpPermissionMessages.effectivePermissionAriaLabel), tabIndex: 0, children: _jsx(UiIcon, { type: "warning", size: 16, color: "warning" }) }) })) : null, _jsx(UiPermissionMenu, { anchor: _jsx(UiButton, { label: intl.formatMessage(permissionLevelMessage(permissionLevel)), size: "small", variant: "dropdownInline", iconAfter: "navigateDown", isDisabled: isDisabled }), selectedLevel: permissionLevel, onPermissionChange: onPermissionChange, disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, labels: hasLabels ? labels : undefined, selectedLabelIds: selectedLabelIds, onLabelsChange: onLabelsChange, onRemoveAccess: onRemoveAccess })
|
|
35
|
+
return (_jsxs("div", { className: b(), "data-testid": dataTestId, children: [effectiveTooltip ? (_jsx(UiTooltip, { triggerBy: ["hover", "focus"], content: effectiveTooltip, anchor: _jsx("span", { className: e("effective-warning"), role: "img", "aria-label": intl.formatMessage(olpPermissionMessages.effectivePermissionAriaLabel), tabIndex: 0, children: _jsx(UiIcon, { type: "warning", size: 16, color: "warning" }) }) })) : null, _jsx(UiPermissionMenu, { anchor: _jsx(UiButton, { label: intl.formatMessage(permissionLevelMessage(permissionLevel)), size: "small", variant: "dropdownInline", iconAfter: "navigateDown", isDisabled: isDisabled }), selectedLevel: permissionLevel, onPermissionChange: onPermissionChange, disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, labels: hasLabels ? labels : undefined, selectedLabelIds: selectedLabelIds, onLabelsChange: onLabelsChange, onRemoveAccess: onRemoveAccess, isRemoveDisabled: isRemoveDisabled, removeDisabledTooltip: removeDisabledTooltip })
|
|
35
36
|
] }));
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultUiMenuInteractiveItem.d.ts","sourceRoot":"","sources":["../../../../../src/@ui/UiMenu/components/defaults/DefaultUiMenuInteractiveItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AASnG,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAmBxB;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EACpF,IAAI,EACP,EAAE,kCAAkC,CAAC,CAAC,CAAC,GAAG,SAAS,CAsGnD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,EAAE,EAC7E,IAAI,EACJ,SAAS,EACT,aAAa,EAChB,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,SAAS,CAoD5C"}
|
|
@@ -7,9 +7,18 @@ import { useCloseOnEscape } from "../../../hooks/useCloseOnEscape.js";
|
|
|
7
7
|
import { UiTooltip } from "../../../UiTooltip/UiTooltip.js";
|
|
8
8
|
import { typedUiMenuContextStore } from "../../context.js";
|
|
9
9
|
import { e } from "../../menuBem.js";
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
function hasIconTooltip(item) {
|
|
11
|
+
return !!item.tooltip && !!item.iconRight;
|
|
12
|
+
}
|
|
13
|
+
function getItemRole(selectionRole) {
|
|
14
|
+
switch (selectionRole) {
|
|
15
|
+
case "radio":
|
|
16
|
+
return "menuitemradio";
|
|
17
|
+
case "checkbox":
|
|
18
|
+
return "menuitemcheckbox";
|
|
19
|
+
default:
|
|
20
|
+
return "menuitem";
|
|
21
|
+
}
|
|
13
22
|
}
|
|
14
23
|
/**
|
|
15
24
|
* @internal
|
|
@@ -50,7 +59,7 @@ export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
|
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
61
|
const isTooltipOpen = !!item.tooltip && isKeyboardFocused && !isDismissed;
|
|
53
|
-
useCloseOnEscape(isTooltipOpen, () => setIsDismissed(true), true);
|
|
62
|
+
useCloseOnEscape(isTooltipOpen && !hasIconTooltip(item), () => setIsDismissed(true), true);
|
|
54
63
|
const handleMouseFocus = useCallback(() => {
|
|
55
64
|
if (controlType !== "mouse") {
|
|
56
65
|
return;
|
|
@@ -69,27 +78,21 @@ export function DefaultUiMenuInteractiveItemWrapper({ item, }) {
|
|
|
69
78
|
isDestructive: !!item.isDestructive,
|
|
70
79
|
}), typeof itemClassName === "function" ? itemClassName(item) : itemClassName);
|
|
71
80
|
const dataTestId = typeof itemDataTestId === "function" ? itemDataTestId(item) : itemDataTestId;
|
|
72
|
-
|
|
73
|
-
// Only link while open — the sr-only copy it points to is empty otherwise.
|
|
74
|
-
return (_jsx("li", { ref: scrollToItem, role: "menuitem", ...item.ariaAttributes, "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.tooltip
|
|
75
|
-
? (item.ariaAttributes?.["aria-label"] ?? item.stringTitle)
|
|
76
|
-
: item.ariaAttributes?.["aria-label"], "aria-describedby": isTooltipOpen
|
|
77
|
-
? [tooltipId, item.ariaAttributes?.["aria-describedby"]].filter(Boolean).join(" ") ||
|
|
78
|
-
undefined
|
|
79
|
-
: item.ariaAttributes?.["aria-describedby"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: _jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
|
|
81
|
+
return (_jsx("li", { ref: scrollToItem, ...item.ariaAttributes, role: getItemRole(item.selectionRole), "aria-checked": item.selectionRole ? !!item.isSelected : item.ariaAttributes?.["aria-checked"], "aria-haspopup": item.subItems ? "menu" : item.ariaAttributes?.["aria-haspopup"], "aria-disabled": item.isDisabled, "aria-label": item.ariaAttributes?.["aria-label"], onMouseMove: handleMouseFocus, onClick: item.isDisabled ? undefined : handleSelect, tabIndex: -1, id: makeItemId(item), className: classNames, "data-testid": dataTestId, children: _jsx(InteractiveItemComponent, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
|
|
80
82
|
}
|
|
81
83
|
/**
|
|
82
84
|
* @internal
|
|
83
85
|
*/
|
|
84
86
|
export function DefaultUiMenuInteractiveItem({ item, isFocused, isTooltipOpen, }) {
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
const useIconTooltip = hasIconTooltip(item);
|
|
88
|
+
const itemInner = (_jsxs("div", { className: e("item", {
|
|
89
|
+
isFocused,
|
|
90
|
+
isSelected: !!item.isSelected,
|
|
91
|
+
isDisabled: !!item.isDisabled,
|
|
92
|
+
isDestructive: !!item.isDestructive,
|
|
93
|
+
}), children: [item.iconLeft ? item.iconLeft : null, _jsx(ShortenedText, { className: e("item-title"), ellipsisPosition: "end", children: item.stringTitle }), !!item.subItems && _jsx("i", { className: "gd-icon-navigateright" }), useIconTooltip ? (_jsx(UiTooltip, { anchor: item.iconRight, content: item.tooltip, optimalPlacement: true, triggerBy: ["hover"], inlineAnchor: true, accessibilityHidden: true, arrowPlacement: "bottom-end", width: item.tooltipWidth })) : item.iconRight ? (item.iconRight) : null, item.tooltip ? _jsx("span", { className: "sr-only", children: item.tooltip }) : null] }));
|
|
94
|
+
if (!item.tooltip) {
|
|
95
|
+
return itemInner;
|
|
96
|
+
}
|
|
97
|
+
return (_jsx(UiTooltip, { anchor: itemInner, content: item.tooltip, optimalPlacement: true, isOpen: useIconTooltip ? isTooltipOpen : isTooltipOpen || undefined, triggerBy: useIconTooltip ? [] : ["hover"], accessibilityHidden: true, arrowPlacement: "left", width: item.tooltipWidth }));
|
|
95
98
|
}
|
|
@@ -34,6 +34,7 @@ export type IUiMenuInteractiveItem<T extends IUiMenuItemData = object> = {
|
|
|
34
34
|
stringTitle: string;
|
|
35
35
|
isDisabled?: boolean;
|
|
36
36
|
isSelected?: boolean;
|
|
37
|
+
selectionRole?: "radio" | "checkbox";
|
|
37
38
|
isDestructive?: boolean;
|
|
38
39
|
tooltip?: ReactNode;
|
|
39
40
|
tooltipWidth?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiMenu/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,14 @@ export interface IUiPermissionMenuProps {
|
|
|
44
44
|
onLabelsChange?: (selectedIds: string[]) => void;
|
|
45
45
|
/** Fires when the user picks Remove access. */
|
|
46
46
|
onRemoveAccess?: () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Renders Remove access disabled (`aria-disabled`, click blocked) instead of
|
|
49
|
+
* hiding it — e.g. for a grantee whose access is inherited, so there is nothing
|
|
50
|
+
* to remove here. Pair with `removeDisabledTooltip` to say why.
|
|
51
|
+
*/
|
|
52
|
+
isRemoveDisabled?: boolean;
|
|
53
|
+
/** Tooltip shown on Remove access while it is disabled. */
|
|
54
|
+
removeDisabledTooltip?: string;
|
|
47
55
|
/** Test id forwarded to the menu body. */
|
|
48
56
|
dataTestId?: string;
|
|
49
57
|
}
|
|
@@ -56,5 +64,5 @@ export interface IUiPermissionMenuProps {
|
|
|
56
64
|
*
|
|
57
65
|
* @internal
|
|
58
66
|
*/
|
|
59
|
-
export declare function UiPermissionMenu({ anchor, selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, dataTestId }: IUiPermissionMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function UiPermissionMenu({ anchor, selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, isRemoveDisabled, removeDisabledTooltip, dataTestId }: IUiPermissionMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
60
68
|
//# sourceMappingURL=UiPermissionMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiPermissionMenu.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiPermissionMenu/UiPermissionMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAiC,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,KAAK,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,KAAK,sBAAsB,EAAqB,MAAM,2CAA2C,CAAC;AAM3G;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAQ5D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAEpF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,4CAA4C;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,qEAAmE;IACnE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,oDAAoD;IACpD,kBAAkB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/C,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACb,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"UiPermissionMenu.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiPermissionMenu/UiPermissionMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAiC,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,KAAK,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,KAAK,sBAAsB,EAAqB,MAAM,2CAA2C,CAAC;AAM3G;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAQ5D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAEpF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,4CAA4C;IAC5C,MAAM,EAAE,YAAY,CAAC;IACrB,qEAAmE;IACnE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,oDAAoD;IACpD,kBAAkB,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/C,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,EAAE,sBAAsB,2CAyBxB"}
|
|
@@ -33,11 +33,11 @@ export function permissionLevelMessage(level) {
|
|
|
33
33
|
*
|
|
34
34
|
* @internal
|
|
35
35
|
*/
|
|
36
|
-
export function UiPermissionMenu({ anchor, selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, dataTestId, }) {
|
|
36
|
+
export function UiPermissionMenu({ anchor, selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, isRemoveDisabled, removeDisabledTooltip, dataTestId, }) {
|
|
37
37
|
const hasLabels = (labels?.length ?? 0) > 0;
|
|
38
|
-
return (_jsx(UiPopover, { anchor: anchor, anchorAccessibilityConfig: { ariaHaspopup: "menu" }, width: hasLabels ? 200 : 180, content: ({ onClose }) => (_jsx(MenuBody, { selectedLevel: selectedLevel, onPermissionChange: onPermissionChange, disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, labels: labels, selectedLabelIds: selectedLabelIds, onLabelsChange: onLabelsChange, onRemoveAccess: onRemoveAccess, onClose: onClose, dataTestId: dataTestId })) }));
|
|
38
|
+
return (_jsx(UiPopover, { anchor: anchor, anchorAccessibilityConfig: { ariaHaspopup: "menu" }, width: hasLabels ? 200 : 180, content: ({ onClose }) => (_jsx(MenuBody, { selectedLevel: selectedLevel, onPermissionChange: onPermissionChange, disabledLevels: disabledLevels, disabledTooltip: disabledTooltip, labels: labels, selectedLabelIds: selectedLabelIds, onLabelsChange: onLabelsChange, onRemoveAccess: onRemoveAccess, isRemoveDisabled: isRemoveDisabled, removeDisabledTooltip: removeDisabledTooltip, onClose: onClose, dataTestId: dataTestId })) }));
|
|
39
39
|
}
|
|
40
|
-
function MenuBody({ selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, onClose, dataTestId, }) {
|
|
40
|
+
function MenuBody({ selectedLevel, onPermissionChange, disabledLevels, disabledTooltip, labels, selectedLabelIds, onLabelsChange, onRemoveAccess, isRemoveDisabled, removeDisabledTooltip, onClose, dataTestId, }) {
|
|
41
41
|
const intl = useIntl();
|
|
42
42
|
// Drill-in state — swaps the row list for the labels checklist. Local to the
|
|
43
43
|
// popover content, so it resets every time the menu opens. `origin` is what
|
|
@@ -83,11 +83,15 @@ function MenuBody({ selectedLevel, onPermissionChange, disabledLevels, disabledT
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
if (onRemoveAccess) {
|
|
86
|
+
// Offered disabled rather than hidden when there is nothing to remove, so the
|
|
87
|
+
// row can explain why instead of the action silently going missing.
|
|
86
88
|
actionItems.push({
|
|
87
89
|
key: "remove",
|
|
88
90
|
label: intl.formatMessage(olpPermissionMessages.removeAccess),
|
|
89
91
|
icon: "trash",
|
|
90
|
-
|
|
92
|
+
tooltip: isRemoveDisabled ? removeDisabledTooltip : undefined,
|
|
93
|
+
disabled: isRemoveDisabled,
|
|
94
|
+
onClick: isRemoveDisabled ? () => { } : choose(onRemoveAccess),
|
|
91
95
|
});
|
|
92
96
|
}
|
|
93
97
|
const menuRef = useRef(null);
|
|
@@ -41,6 +41,8 @@ export interface IUiTextInputProps {
|
|
|
41
41
|
onIconAfter?: IUiTextInputIconAfterButton;
|
|
42
42
|
/** Accessibility config forwarded to the input element. */
|
|
43
43
|
accessibilityConfig?: IAccessibilityConfigBase;
|
|
44
|
+
/** Marks the field invalid: error-colored border plus `aria-invalid`. */
|
|
45
|
+
isError?: boolean;
|
|
44
46
|
disabled?: boolean;
|
|
45
47
|
autoFocus?: boolean;
|
|
46
48
|
/** Forwarded to the input element. Use for autocomplete / combobox patterns. */
|
|
@@ -72,5 +74,5 @@ export interface IUiTextInputProps {
|
|
|
72
74
|
*
|
|
73
75
|
* @internal
|
|
74
76
|
*/
|
|
75
|
-
export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled, autoFocus, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect }: IUiTextInputProps): import("react/jsx-runtime").JSX.Element;
|
|
77
|
+
export declare function UiTextInput({ type, value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, isError, disabled, autoFocus, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect }: IUiTextInputProps): import("react/jsx-runtime").JSX.Element;
|
|
76
78
|
//# sourceMappingURL=UiTextInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiTextInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiTextInput/UiTextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,GAAG,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOlD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IACxC,uCAAuC;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC3C,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,sCAAsC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,yFAAyF;IACzF,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EACxB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACd,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"UiTextInput.d.ts","sourceRoot":"","sources":["../../../src/@ui/UiTextInput/UiTextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,GAAG,EAEX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOlD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IACxC,uCAAuC;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,sBAAsB;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC3C,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,SAAS,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACnD,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,sCAAsC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,sCAAsC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACjC,yFAAyF;IACzF,UAAU,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EACxB,IAAa,EACb,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACd,EAAE,iBAAiB,2CA6DnB"}
|
|
@@ -13,12 +13,12 @@ const { b, e } = bem("gd-ui-kit-text-input");
|
|
|
13
13
|
*
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
export function UiTextInput({ type = "text", value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, disabled = false, autoFocus = false, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect, }) {
|
|
16
|
+
export function UiTextInput({ type = "text", value, onChange, label, placeholder, iconBefore, iconAfter, onIconAfter, accessibilityConfig, isError = false, disabled = false, autoFocus = false, onKeyDown, onFocus, onBlur, onClick, dataTestId, inputRef, wrapperRef, name, autoComplete, autoCapitalize, autoCorrect, }) {
|
|
17
17
|
const id = useId();
|
|
18
18
|
const { ariaLabel, ...restA11y } = accessibilityConfig ?? {};
|
|
19
19
|
// When a visible <label> is present, the label provides the accessible name;
|
|
20
20
|
// forwarding aria-label would override it (WCAG name-in-name mismatch).
|
|
21
21
|
const inputA11y = label ? restA11y : { ...restA11y, ariaLabel };
|
|
22
|
-
return (_jsxs("div", { ref: wrapperRef, className: b(), children: [label ? (_jsx("label", { className: e("label"), htmlFor: id, children: label })) : null, _jsxs("div", { className: e("field", { disabled }), children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, size: 14, color: "complementary-6" }) })) : null, _jsx("input", { ref: inputRef, id: id, name: name, type: type, className: e("input"), value: value, placeholder: placeholder, disabled: disabled, autoFocus: autoFocus, autoComplete: autoComplete, autoCapitalize: autoCapitalize, autoCorrect: autoCorrect, "data-testid": dataTestId, onChange: (event) => onChange(event.target.value), onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur, onClick: onClick, ...accessibilityConfigToAttributes(inputA11y) }), onIconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIconButton, { icon: onIconAfter.icon, size: "xsmall", variant: "tertiary", onClick: onIconAfter.onClick, isDisabled: disabled, label: onIconAfter.ariaLabel, iconColor: "complementary-6" }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, size: 14, color: "complementary-6" }) })) : null] })
|
|
22
|
+
return (_jsxs("div", { ref: wrapperRef, className: b(), children: [label ? (_jsx("label", { className: e("label"), htmlFor: id, children: label })) : null, _jsxs("div", { className: e("field", { disabled, error: isError }), children: [iconBefore ? (_jsx("span", { className: e("icon-before"), children: _jsx(UiIcon, { type: iconBefore, size: 14, color: "complementary-6" }) })) : null, _jsx("input", { ref: inputRef, id: id, name: name, type: type, className: e("input"), value: value, placeholder: placeholder, disabled: disabled, autoFocus: autoFocus, autoComplete: autoComplete, autoCapitalize: autoCapitalize, autoCorrect: autoCorrect, "data-testid": dataTestId, onChange: (event) => onChange(event.target.value), onKeyDown: onKeyDown, onFocus: onFocus, onBlur: onBlur, onClick: onClick, "aria-invalid": isError || undefined, ...accessibilityConfigToAttributes(inputA11y) }), onIconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIconButton, { icon: onIconAfter.icon, size: "xsmall", variant: "tertiary", onClick: onIconAfter.onClick, isDisabled: disabled, label: onIconAfter.ariaLabel, iconColor: "complementary-6" }) })) : iconAfter ? (_jsx("span", { className: e("icon-after"), children: _jsx(UiIcon, { type: iconAfter, size: 14, color: "complementary-6" }) })) : null] })
|
|
23
23
|
] }));
|
|
24
24
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { type WrappedComponentProps } from "react-intl";
|
|
2
1
|
import { type ISortItem } from "@gooddata/sdk-model";
|
|
3
2
|
import { type IAvailableSortsGroup, type IBucketItemDescriptors } from "./types.js";
|
|
4
3
|
/**
|
|
5
4
|
* @internal
|
|
6
5
|
*/
|
|
7
|
-
export interface
|
|
6
|
+
export interface IChartSortingProps {
|
|
8
7
|
currentSort: ISortItem[];
|
|
9
8
|
availableSorts: IAvailableSortsGroup[];
|
|
10
9
|
bucketItems: IBucketItemDescriptors;
|
|
@@ -16,16 +15,5 @@ export interface IChartSortingOwnProps {
|
|
|
16
15
|
/**
|
|
17
16
|
* @internal
|
|
18
17
|
*/
|
|
19
|
-
export
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export declare const ChartSortingWithIntl: import("react").FC<import("react-intl").WithIntlProps<IChartSortingProps>> & {
|
|
25
|
-
WrappedComponent: import("react").ComponentType<IChartSortingProps>;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
export declare function ChartSortingDialog(props: IChartSortingOwnProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function ChartSortingDialog(props: IChartSortingProps): import("react/jsx-runtime").JSX.Element;
|
|
31
19
|
//# sourceMappingURL=ChartSorting.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartSorting.d.ts","sourceRoot":"","sources":["../../src/ChartSorting/ChartSorting.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChartSorting.d.ts","sourceRoot":"","sources":["../../src/ChartSorting/ChartSorting.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,cAAc,EAAE,oBAAoB,EAAE,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;IACpC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,2CAM3D"}
|