@activecollab/components 2.0.429 → 2.0.433
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/dist/cjs/components/Autocomplete/Autocomplete.js +11 -3
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Choose/Styles.js +2 -3
- package/dist/cjs/components/Choose/Styles.js.map +1 -1
- package/dist/cjs/components/ComboBox/ComboBox.js +21 -8
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/SideNav/SideNav.js +66 -0
- package/dist/cjs/components/SideNav/SideNav.js.map +1 -0
- package/dist/cjs/components/SideNav/SideNavContext.js +13 -0
- package/dist/cjs/components/SideNav/SideNavContext.js.map +1 -0
- package/dist/cjs/components/SideNav/SideNavGroup.js +19 -0
- package/dist/cjs/components/SideNav/SideNavGroup.js.map +1 -0
- package/dist/cjs/components/SideNav/SideNavItem.js +43 -0
- package/dist/cjs/components/SideNav/SideNavItem.js.map +1 -0
- package/dist/cjs/components/SideNav/Styles.js +101 -0
- package/dist/cjs/components/SideNav/Styles.js.map +1 -0
- package/dist/cjs/components/SideNav/index.js +39 -0
- package/dist/cjs/components/SideNav/index.js.map +1 -0
- package/dist/cjs/components/index.js +11 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts +5 -0
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +10 -2
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Choose/Styles.d.ts.map +1 -1
- package/dist/esm/components/Choose/Styles.js +2 -3
- package/dist/esm/components/Choose/Styles.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.d.ts +9 -0
- package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js +22 -9
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/SideNav/SideNav.d.ts +24 -0
- package/dist/esm/components/SideNav/SideNav.d.ts.map +1 -0
- package/dist/esm/components/SideNav/SideNav.js +57 -0
- package/dist/esm/components/SideNav/SideNav.js.map +1 -0
- package/dist/esm/components/SideNav/SideNavContext.d.ts +9 -0
- package/dist/esm/components/SideNav/SideNavContext.d.ts.map +1 -0
- package/dist/esm/components/SideNav/SideNavContext.js +5 -0
- package/dist/esm/components/SideNav/SideNavContext.js.map +1 -0
- package/dist/esm/components/SideNav/SideNavGroup.d.ts +12 -0
- package/dist/esm/components/SideNav/SideNavGroup.d.ts.map +1 -0
- package/dist/esm/components/SideNav/SideNavGroup.js +12 -0
- package/dist/esm/components/SideNav/SideNavGroup.js.map +1 -0
- package/dist/esm/components/SideNav/SideNavItem.d.ts +17 -0
- package/dist/esm/components/SideNav/SideNavItem.d.ts.map +1 -0
- package/dist/esm/components/SideNav/SideNavItem.js +35 -0
- package/dist/esm/components/SideNav/SideNavItem.js.map +1 -0
- package/dist/esm/components/SideNav/Styles.d.ts +11 -0
- package/dist/esm/components/SideNav/Styles.d.ts.map +1 -0
- package/dist/esm/components/SideNav/Styles.js +90 -0
- package/dist/esm/components/SideNav/Styles.js.map +1 -0
- package/dist/esm/components/SideNav/index.d.ts +4 -0
- package/dist/esm/components/SideNav/index.d.ts.map +1 -0
- package/dist/esm/components/SideNav/index.js +4 -0
- package/dist/esm/components/SideNav/index.js.map +1 -0
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/index.js +868 -654
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAqBf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAahE,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iBAAiB;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAqBf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKtD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAahE,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,aAAa,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;IACzD,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iBAAiB;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,CAioBvC,CAAC"}
|
|
@@ -3,12 +3,12 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _styled, { default as _styled2, default as _styled3, default as _styled4, default as _styled5 } from "styled-components";
|
|
5
5
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
6
|
-
const _excluded = ["options", "selected", "loading", "loadingText", "onChange", "onInputChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect", "defaultValue", "open", "onOpen", "triggerMode", "noResultText", "emptyValue", "disableVirtualization", "hideClearButton", "errorMessage", "onCancel"];
|
|
6
|
+
const _excluded = ["options", "selected", "keepFilterOnClose", "loading", "loadingText", "onChange", "onInputChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "listWidth", "listPlacement", "scrollWrapper", "onClose", "onClear", "onDeselect", "defaultValue", "open", "onOpen", "triggerMode", "noResultText", "emptyValue", "disableVirtualization", "hideClearButton", "errorMessage", "onCancel"];
|
|
7
7
|
import React, { useCallback, useState, useEffect, useRef, useMemo, Fragment } from "react";
|
|
8
8
|
import { RemoveScroll } from "react-remove-scroll";
|
|
9
9
|
import classNames from "classnames";
|
|
10
10
|
import { StyledComboBoxCloseSmallIcon, StyledComboBoxCollapseExpandSingleIcon, StyledComboBoxInput, StyledComboBoxList, StyledChipWrapper, StyledInfoIcon, StyledInfoSmallIcon } from "./Styles";
|
|
11
|
-
import { Portal } from "../../helpers";
|
|
11
|
+
import { Portal, useLayerContext } from "../../helpers";
|
|
12
12
|
import { ConditionalWrapper } from "../../helpers/ConditionWrapper/ConditionWrapper";
|
|
13
13
|
import { useIsFirstRender } from "../../hooks/useIsFirstRender";
|
|
14
14
|
import { useOnClickOutside } from "../../hooks/useOnClickOutside";
|
|
@@ -40,6 +40,8 @@ export const ComboBox = _ref => {
|
|
|
40
40
|
let _ref$options = _ref.options,
|
|
41
41
|
options = _ref$options === void 0 ? [] : _ref$options,
|
|
42
42
|
selected = _ref.selected,
|
|
43
|
+
_ref$keepFilterOnClos = _ref.keepFilterOnClose,
|
|
44
|
+
keepFilterOnClose = _ref$keepFilterOnClos === void 0 ? false : _ref$keepFilterOnClos,
|
|
43
45
|
_ref$loading = _ref.loading,
|
|
44
46
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
45
47
|
loadingText = _ref.loadingText,
|
|
@@ -65,6 +67,9 @@ export const ComboBox = _ref => {
|
|
|
65
67
|
_ref$inPortal = _ref.inPortal,
|
|
66
68
|
inPortal = _ref$inPortal === void 0 ? false : _ref$inPortal,
|
|
67
69
|
inputWrapperClassName = _ref.inputWrapperClassName,
|
|
70
|
+
listWidth = _ref.listWidth,
|
|
71
|
+
_ref$listPlacement = _ref.listPlacement,
|
|
72
|
+
listPlacement = _ref$listPlacement === void 0 ? "bottom" : _ref$listPlacement,
|
|
68
73
|
scrollWrapper = _ref.scrollWrapper,
|
|
69
74
|
onClose = _ref.onClose,
|
|
70
75
|
onClear = _ref.onClear,
|
|
@@ -120,6 +125,10 @@ export const ComboBox = _ref => {
|
|
|
120
125
|
const wrapperRef = useRef(null);
|
|
121
126
|
const chipWrapper = useRef(null);
|
|
122
127
|
const comboBoxRef = useRef(null);
|
|
128
|
+
// Inside a dialog the list has to sit on the dialog's layer, not under it.
|
|
129
|
+
const _useLayerContext = useLayerContext(),
|
|
130
|
+
_useLayerContext$zInd = _useLayerContext.zIndex,
|
|
131
|
+
zIndex = _useLayerContext$zInd === void 0 ? 10 : _useLayerContext$zInd;
|
|
123
132
|
const _useState3 = useState(defaultOpen),
|
|
124
133
|
open = _useState3[0],
|
|
125
134
|
setOpen = _useState3[1];
|
|
@@ -138,7 +147,9 @@ export const ComboBox = _ref => {
|
|
|
138
147
|
}
|
|
139
148
|
if (e.key === "Escape" && open) {
|
|
140
149
|
setOpen(false);
|
|
141
|
-
|
|
150
|
+
if (!keepFilterOnClose) {
|
|
151
|
+
setValue(selectedName);
|
|
152
|
+
}
|
|
142
153
|
onCancel == null || onCancel(selectedName);
|
|
143
154
|
e.stopPropagation();
|
|
144
155
|
}
|
|
@@ -149,7 +160,7 @@ export const ComboBox = _ref => {
|
|
|
149
160
|
setOpen(true);
|
|
150
161
|
onOpen == null || onOpen();
|
|
151
162
|
}
|
|
152
|
-
}, [focused, onCancel, onOpen, open, selectedName, type]);
|
|
163
|
+
}, [focused, keepFilterOnClose, onCancel, onOpen, open, selectedName, type]);
|
|
153
164
|
useEffect(() => {
|
|
154
165
|
if (!open && !isFirstRender) {
|
|
155
166
|
onClose == null || onClose();
|
|
@@ -227,9 +238,11 @@ export const ComboBox = _ref => {
|
|
|
227
238
|
if (e.relatedTarget && (_wrapperRef$current = wrapperRef.current) != null && _wrapperRef$current.contains(e.relatedTarget)) {
|
|
228
239
|
return;
|
|
229
240
|
}
|
|
230
|
-
|
|
241
|
+
if (!keepFilterOnClose) {
|
|
242
|
+
setValue(selectedName);
|
|
243
|
+
}
|
|
231
244
|
setFocused(false);
|
|
232
|
-
}, [selectedName]);
|
|
245
|
+
}, [keepFilterOnClose, selectedName]);
|
|
233
246
|
const renderChipAdornment = useCallback((option, index) => {
|
|
234
247
|
if (typeof renderChip === "function") {
|
|
235
248
|
return renderChip(option, index);
|
|
@@ -451,10 +464,10 @@ export const ComboBox = _ref => {
|
|
|
451
464
|
}, /*#__PURE__*/React.createElement(Popper, {
|
|
452
465
|
anchorEl: comboBoxRef.current,
|
|
453
466
|
open: open,
|
|
454
|
-
placement:
|
|
467
|
+
placement: listPlacement,
|
|
455
468
|
style: {
|
|
456
|
-
zIndex
|
|
457
|
-
width: (_comboBoxRef$current2 = comboBoxRef.current) == null ? void 0 : _comboBoxRef$current2.clientWidth
|
|
469
|
+
zIndex,
|
|
470
|
+
width: listWidth != null ? listWidth : (_comboBoxRef$current2 = comboBoxRef.current) == null ? void 0 : _comboBoxRef$current2.clientWidth
|
|
458
471
|
},
|
|
459
472
|
ref: wrapperRef,
|
|
460
473
|
strategy: "fixed"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RemoveScroll","classNames","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","StyledInfoIcon","StyledInfoSmallIcon","Portal","ConditionalWrapper","useIsFirstRender","useOnClickOutside","useForkRef","Autocomplete","isOptionGroup","Avatar","Checkbox","Chip","IconButton","InputAdornment","StyledInput","StyledInputWrapper","SpinnerLoader","MultiAvatar","Popper","RadioButton","OptionContent","Tooltip","Trigger","Typography","sizeMap","small","regular","big","biggest","ComboBox","_ref","_comboBoxRef$current2","_comboBoxRef$current3","_ref$options","options","selected","_ref$loading","loading","loadingText","onChange","onInputChange","placeholder","handleEmptyAction","_ref$disabled","disabled","_ref$size","size","_ref$invalid","invalid","_ref$type","type","renderChip","_ref$forceCloseMenu","forceCloseMenu","renderOption","_ref$limitChips","limitChips","hiddenNumberText","_ref$inPortal","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","defaultValue","_ref$open","open","defaultOpen","onOpen","triggerMode","noResultText","emptyValue","disableVirtualization","_ref$hideClearButton","hideClearButton","errorMessage","onCancel","prop","_objectWithoutPropertiesLoose","_excluded","selectedName","value","map","v","find","q","id","name","_useState","setValue","_useState2","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","_useState3","setOpen","isFirstRender","_comboBoxRef$current","current","contains","handleOnKeyDown","key","stopPropagation","emptyAction","handleChange","selectedValue","handleOpen","handleRenderOption","option","props","createElement","imageUrl","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","_wrapperRef$current","relatedTarget","renderChipAdornment","index","avatarProps","startAdornment","_StyledAvatar","_extends","url","$_css","$_css2","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","className","label","backgroundColor","chipColor","autoSize","length","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","_StyledTypography","variant","optionItem","child","avatarSize","showXIcon","hasSelected","showMenu","hasOptions","valueExists","toString","isValueInOptions","some","_StyledStyledInputWrapper","$disabled","$size","$invalid","ref","$mode","onClick","_elementRef$current","click","$_css3","$_css4","_StyledStyledChipWrapper","$autoSize","$open","$_css5","onBlur","onFocus","matches","_error","onKeyDown","$loading","style","display","flex","alignSelf","width","_StyledTrigger","onMouseDown","tabIndex","title","wrapperClick","mode","wrapRef","endAdornment","disablePointerEvents","condition","wrap","children","anchorEl","placement","zIndex","clientWidth","strategy","noIsolation","allowPinchZoom","$width","$hide","inputEl","displayName","_styled","_templateObject","_taggedTemplateLiteralLoose","p","_styled2","_templateObject2","_styled3","_templateObject3","_styled4","_templateObject4","_styled5","withConfig","componentId"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RemoveScroll } from \"react-remove-scroll\";\n\nimport classNames from \"classnames\";\nimport tw from \"twin.macro\";\n\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n StyledInfoIcon,\n StyledInfoSmallIcon,\n} from \"./Styles\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { IconButton } from \"../IconButton\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { MultiAvatar } from \"../MultiAvatar\";\nimport { Popper } from \"../Popper\";\nimport { RadioButton } from \"../RadioButton\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\n\nconst sizeMap = {\n small: 18,\n regular: 24,\n big: 30,\n biggest: 40,\n};\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** onInputChange callback */\n onInputChange?: (text: string) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper closes */\n onClose?: () => void;\n /** onOpen (f) will be called when Popper opens */\n onOpen?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onCancel?: (value?: string) => void;\n onDeselect?: () => void;\n /** Open state */\n open?: boolean;\n /** Trigger mode */\n triggerMode?: InputMode;\n /** Hide clear button */\n hideClearButton?: boolean;\n /** Error message to display */\n errorMessage?: string;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n onInputChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n defaultValue,\n open: defaultOpen = false,\n onOpen,\n triggerMode,\n noResultText,\n emptyValue,\n disableVirtualization,\n hideClearButton = false,\n errorMessage,\n onCancel,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback(\n (e) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n },\n [onInputChange]\n );\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(defaultOpen);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n onCancel?.(selectedName);\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Tab\" && open) {\n setOpen(false);\n }\n\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n onCancel?.(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n onOpen?.();\n }\n },\n [focused, onCancel, onOpen, open, selectedName, type]\n );\n\n useEffect(() => {\n if (!open && !isFirstRender) {\n onClose?.();\n }\n }, [open, onClose, isFirstRender]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (open !== defaultOpen) setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultOpen]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n setValue(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const handleOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n onOpen?.();\n }\n }, [disabled, onOpen]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(\n (e) => {\n if (\n e.relatedTarget &&\n wrapperRef.current?.contains(e.relatedTarget as Node)\n ) {\n return;\n }\n setValue(selectedName);\n setFocused(false);\n },\n [selectedName]\n );\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const startAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n startAdornment={startAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) &&\n type === \"multiple\" &&\n selected.length > 0 &&\n !hideClearButton;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n const showMenu = useMemo(() => {\n const hasOptions = options?.length > 0;\n\n const valueExists = (option: IOptionItemProps) =>\n (option.id.toString().includes(value) || option.name.includes(value)) &&\n !option?.hidden;\n\n const isValueInOptions = options?.some((option) =>\n isOptionGroup(option)\n ? option.options.some(valueExists)\n : valueExists(option)\n );\n return (\n (hasOptions && (!!defaultValue || !value)) ||\n (value &&\n (isValueInOptions ||\n (emptyValue && !!handleEmptyAction) ||\n noResultText))\n );\n }, [\n defaultValue,\n emptyValue,\n handleEmptyAction,\n noResultText,\n options,\n value,\n ]);\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n $mode={triggerMode}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n css={`\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? sizeMap[size] * 3 + 8 + \"px\"\n : undefined};\n `}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={(e) => {\n try {\n if (e.target.matches(\":focus-visible\")) {\n setOpen(true);\n onOpen?.();\n }\n // eslint-disable-next-line no-empty\n } catch (_error) {}\n setFocused(true);\n }}\n onClick={handleOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n $mode={triggerMode}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n tabIndex={-1}\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={handleOpen}\n onFocus={(e) => {\n if (e.target.matches(\":focus-visible\")) {\n setOpen(true);\n onOpen?.();\n }\n setFocused(true);\n }}\n onClick={handleOpen}\n mode={triggerMode}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading && <SpinnerLoader />}\n {!loading && selected && !hideClearButton ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n tabIndex={-1}\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </InputAdornment>\n ) : null\n }\n />\n )}\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList\n className=\"c-combo-box--list\"\n $width={comboBoxRef.current?.clientWidth}\n $hide={!showMenu}\n >\n <Autocomplete\n {...prop}\n emptyValue={emptyValue}\n noResultText={noResultText}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n defaultValue={defaultValue}\n handleEmptyAction={emptyAction}\n disableVirtualization={disableVirtualization}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RemoveScroll","classNames","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","StyledInfoIcon","StyledInfoSmallIcon","Portal","useLayerContext","ConditionalWrapper","useIsFirstRender","useOnClickOutside","useForkRef","Autocomplete","isOptionGroup","Avatar","Checkbox","Chip","IconButton","InputAdornment","StyledInput","StyledInputWrapper","SpinnerLoader","MultiAvatar","Popper","RadioButton","OptionContent","Tooltip","Trigger","Typography","sizeMap","small","regular","big","biggest","ComboBox","_ref","_comboBoxRef$current2","_comboBoxRef$current3","_ref$options","options","selected","_ref$keepFilterOnClos","keepFilterOnClose","_ref$loading","loading","loadingText","onChange","onInputChange","placeholder","handleEmptyAction","_ref$disabled","disabled","_ref$size","size","_ref$invalid","invalid","_ref$type","type","renderChip","_ref$forceCloseMenu","forceCloseMenu","renderOption","_ref$limitChips","limitChips","hiddenNumberText","_ref$inPortal","inPortal","inputWrapperClassName","listWidth","_ref$listPlacement","listPlacement","scrollWrapper","onClose","onClear","onDeselect","defaultValue","_ref$open","open","defaultOpen","onOpen","triggerMode","noResultText","emptyValue","disableVirtualization","_ref$hideClearButton","hideClearButton","errorMessage","onCancel","prop","_objectWithoutPropertiesLoose","_excluded","selectedName","value","map","v","find","q","id","name","_useState","setValue","_useState2","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","_useLayerContext","_useLayerContext$zInd","zIndex","_useState3","setOpen","isFirstRender","_comboBoxRef$current","current","contains","handleOnKeyDown","key","stopPropagation","emptyAction","handleChange","selectedValue","handleOpen","handleRenderOption","option","props","createElement","imageUrl","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","_wrapperRef$current","relatedTarget","renderChipAdornment","index","avatarProps","startAdornment","_StyledAvatar","_extends","url","$_css","$_css2","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","className","label","backgroundColor","chipColor","autoSize","length","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","_StyledTypography","variant","optionItem","child","avatarSize","showXIcon","hasSelected","showMenu","hasOptions","valueExists","toString","isValueInOptions","some","_StyledStyledInputWrapper","$disabled","$size","$invalid","ref","$mode","onClick","_elementRef$current","click","$_css3","$_css4","_StyledStyledChipWrapper","$autoSize","$open","$_css5","onBlur","onFocus","matches","_error","onKeyDown","$loading","style","display","flex","alignSelf","width","_StyledTrigger","onMouseDown","tabIndex","title","wrapperClick","mode","wrapRef","endAdornment","disablePointerEvents","condition","wrap","children","anchorEl","placement","clientWidth","strategy","noIsolation","allowPinchZoom","$width","$hide","inputEl","displayName","_styled","_templateObject","_taggedTemplateLiteralLoose","p","_styled2","_templateObject2","_styled3","_templateObject3","_styled4","_templateObject4","_styled5","withConfig","componentId"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RemoveScroll } from \"react-remove-scroll\";\n\nimport classNames from \"classnames\";\nimport tw from \"twin.macro\";\n\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n StyledInfoIcon,\n StyledInfoSmallIcon,\n} from \"./Styles\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { IconButton } from \"../IconButton\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { InputMode, InputSize } from \"../Input/types\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { MultiAvatar } from \"../MultiAvatar\";\nimport { Popper } from \"../Popper\";\nimport { RadioButton } from \"../RadioButton\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\n\nconst sizeMap = {\n small: 18,\n regular: 24,\n big: 30,\n biggest: 40,\n};\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /**\n * The input holds a query, not the name of the selection, so closing the list keeps what was typed\n * and focusing the field again brings the same answers back. For a search, not a picker.\n */\n keepFilterOnClose?: boolean;\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** onInputChange callback */\n onInputChange?: (text: string) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** Width of the list. Defaults to the width of the field. */\n listWidth?: number;\n /** Where the list sits against the field. Centered by default, which shifts a wider list both ways. */\n listPlacement?: \"bottom\" | \"bottom-start\" | \"bottom-end\";\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper closes */\n onClose?: () => void;\n /** onOpen (f) will be called when Popper opens */\n onOpen?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onCancel?: (value?: string) => void;\n onDeselect?: () => void;\n /** Open state */\n open?: boolean;\n /** Trigger mode */\n triggerMode?: InputMode;\n /** Hide clear button */\n hideClearButton?: boolean;\n /** Error message to display */\n errorMessage?: string;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n keepFilterOnClose = false,\n loading = false,\n loadingText,\n onChange,\n onInputChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n listWidth,\n listPlacement = \"bottom\",\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n defaultValue,\n open: defaultOpen = false,\n onOpen,\n triggerMode,\n noResultText,\n emptyValue,\n disableVirtualization,\n hideClearButton = false,\n errorMessage,\n onCancel,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback(\n (e) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n },\n [onInputChange]\n );\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n // Inside a dialog the list has to sit on the dialog's layer, not under it.\n const { zIndex = 10 } = useLayerContext();\n\n const [open, setOpen] = useState(defaultOpen);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n onCancel?.(selectedName);\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Tab\" && open) {\n setOpen(false);\n }\n\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n if (!keepFilterOnClose) {\n setValue(selectedName);\n }\n onCancel?.(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n onOpen?.();\n }\n },\n [focused, keepFilterOnClose, onCancel, onOpen, open, selectedName, type]\n );\n\n useEffect(() => {\n if (!open && !isFirstRender) {\n onClose?.();\n }\n }, [open, onClose, isFirstRender]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (open !== defaultOpen) setOpen(defaultOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultOpen]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n setValue(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const handleOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n onOpen?.();\n }\n }, [disabled, onOpen]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(\n (e) => {\n if (\n e.relatedTarget &&\n wrapperRef.current?.contains(e.relatedTarget as Node)\n ) {\n return;\n }\n if (!keepFilterOnClose) {\n setValue(selectedName);\n }\n setFocused(false);\n },\n [keepFilterOnClose, selectedName]\n );\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const startAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n startAdornment={startAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) &&\n type === \"multiple\" &&\n selected.length > 0 &&\n !hideClearButton;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n const showMenu = useMemo(() => {\n const hasOptions = options?.length > 0;\n\n const valueExists = (option: IOptionItemProps) =>\n (option.id.toString().includes(value) || option.name.includes(value)) &&\n !option?.hidden;\n\n const isValueInOptions = options?.some((option) =>\n isOptionGroup(option)\n ? option.options.some(valueExists)\n : valueExists(option)\n );\n return (\n (hasOptions && (!!defaultValue || !value)) ||\n (value &&\n (isValueInOptions ||\n (emptyValue && !!handleEmptyAction) ||\n noResultText))\n );\n }, [\n defaultValue,\n emptyValue,\n handleEmptyAction,\n noResultText,\n options,\n value,\n ]);\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n $mode={triggerMode}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n css={`\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? sizeMap[size] * 3 + 8 + \"px\"\n : undefined};\n `}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={(e) => {\n try {\n if (e.target.matches(\":focus-visible\")) {\n setOpen(true);\n onOpen?.();\n }\n // eslint-disable-next-line no-empty\n } catch (_error) {}\n setFocused(true);\n }}\n onClick={handleOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n $mode={triggerMode}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n tabIndex={-1}\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={handleOpen}\n onFocus={(e) => {\n if (e.target.matches(\":focus-visible\")) {\n setOpen(true);\n onOpen?.();\n }\n setFocused(true);\n }}\n onClick={handleOpen}\n mode={triggerMode}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading && <SpinnerLoader />}\n {!loading && selected && !hideClearButton ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n tabIndex={-1}\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n {invalid && errorMessage && (\n <Tooltip title={errorMessage}>\n {size === \"regular\" ? (\n <StyledInfoSmallIcon />\n ) : (\n <StyledInfoIcon />\n )}\n </Tooltip>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </InputAdornment>\n ) : null\n }\n />\n )}\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement={listPlacement}\n style={{\n zIndex,\n width: listWidth ?? comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList\n className=\"c-combo-box--list\"\n $width={comboBoxRef.current?.clientWidth}\n $hide={!showMenu}\n >\n <Autocomplete\n {...prop}\n emptyValue={emptyValue}\n noResultText={noResultText}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n defaultValue={defaultValue}\n handleEmptyAction={emptyAction}\n disableVirtualization={disableVirtualization}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
export interface ISideNavProps {
|
|
3
|
+
/** Id of the item that is current. Pass null to mark none of them. */
|
|
4
|
+
selected?: string | null;
|
|
5
|
+
/** Called with the id of the item the reader picked. */
|
|
6
|
+
onSelect?: (id: string) => void;
|
|
7
|
+
/** Names the navigation for a screen reader. */
|
|
8
|
+
ariaLabel: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const SideNav: {
|
|
13
|
+
({ selected, onSelect, ariaLabel, className, children, }: ISideNavProps): React.JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
Group: {
|
|
16
|
+
({ title, className, children, }: import("./SideNavGroup").ISideNavGroupProps): React.JSX.Element;
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
Item: {
|
|
20
|
+
({ id, icon, as, className, children, onClick, ...rest }: import("./SideNavItem").ISideNavItemProps & Record<string, unknown>): React.JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=SideNav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../../../src/components/SideNav/SideNav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAwBf,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,OAAO;8DAMjB,aAAa;;;;;;;;;;CAwCf,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React, { useCallback, useMemo, useRef } from "react";
|
|
2
|
+
import { SideNavProvider } from "./SideNavContext";
|
|
3
|
+
import { SideNavGroup } from "./SideNavGroup";
|
|
4
|
+
import { SideNavItem } from "./SideNavItem";
|
|
5
|
+
import { StyledSideNav } from "./Styles";
|
|
6
|
+
const ITEM_SELECTOR = "[data-sidenav-item]";
|
|
7
|
+
const nextIndex = (key, current, total) => {
|
|
8
|
+
switch (key) {
|
|
9
|
+
case "ArrowDown":
|
|
10
|
+
return (current + 1) % total;
|
|
11
|
+
case "ArrowUp":
|
|
12
|
+
return (current - 1 + total) % total;
|
|
13
|
+
case "Home":
|
|
14
|
+
return 0;
|
|
15
|
+
case "End":
|
|
16
|
+
return total - 1;
|
|
17
|
+
default:
|
|
18
|
+
return -1;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const SideNav = _ref => {
|
|
22
|
+
let selected = _ref.selected,
|
|
23
|
+
onSelect = _ref.onSelect,
|
|
24
|
+
ariaLabel = _ref.ariaLabel,
|
|
25
|
+
className = _ref.className,
|
|
26
|
+
children = _ref.children;
|
|
27
|
+
const listRef = useRef(null);
|
|
28
|
+
const handleKeyDown = useCallback(event => {
|
|
29
|
+
var _listRef$current$quer, _listRef$current;
|
|
30
|
+
const items = Array.from((_listRef$current$quer = (_listRef$current = listRef.current) == null ? void 0 : _listRef$current.querySelectorAll(ITEM_SELECTOR)) != null ? _listRef$current$quer : []);
|
|
31
|
+
if (items.length === 0) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const target = nextIndex(event.key, items.indexOf(document.activeElement), items.length);
|
|
35
|
+
if (target < 0) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
items[target].focus();
|
|
40
|
+
}, []);
|
|
41
|
+
const value = useMemo(() => ({
|
|
42
|
+
selected,
|
|
43
|
+
onSelect
|
|
44
|
+
}), [selected, onSelect]);
|
|
45
|
+
return /*#__PURE__*/React.createElement(SideNavProvider, {
|
|
46
|
+
value: value
|
|
47
|
+
}, /*#__PURE__*/React.createElement(StyledSideNav, {
|
|
48
|
+
ref: listRef,
|
|
49
|
+
"aria-label": ariaLabel,
|
|
50
|
+
className: className,
|
|
51
|
+
onKeyDown: handleKeyDown
|
|
52
|
+
}, children));
|
|
53
|
+
};
|
|
54
|
+
SideNav.displayName = "SideNav";
|
|
55
|
+
SideNav.Group = SideNavGroup;
|
|
56
|
+
SideNav.Item = SideNavItem;
|
|
57
|
+
//# sourceMappingURL=SideNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNav.js","names":["React","useCallback","useMemo","useRef","SideNavProvider","SideNavGroup","SideNavItem","StyledSideNav","ITEM_SELECTOR","nextIndex","key","current","total","SideNav","_ref","selected","onSelect","ariaLabel","className","children","listRef","handleKeyDown","event","_listRef$current$quer","_listRef$current","items","Array","from","querySelectorAll","length","target","indexOf","document","activeElement","preventDefault","focus","value","createElement","ref","onKeyDown","displayName","Group","Item"],"sources":["../../../../src/components/SideNav/SideNav.tsx"],"sourcesContent":["import React, {\n KeyboardEvent,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\nimport { SideNavProvider } from \"./SideNavContext\";\nimport { SideNavGroup } from \"./SideNavGroup\";\nimport { SideNavItem } from \"./SideNavItem\";\nimport { StyledSideNav } from \"./Styles\";\n\nconst ITEM_SELECTOR = \"[data-sidenav-item]\";\n\nconst nextIndex = (key: string, current: number, total: number): number => {\n switch (key) {\n case \"ArrowDown\":\n return (current + 1) % total;\n case \"ArrowUp\":\n return (current - 1 + total) % total;\n case \"Home\":\n return 0;\n case \"End\":\n return total - 1;\n default:\n return -1;\n }\n};\n\nexport interface ISideNavProps {\n /** Id of the item that is current. Pass null to mark none of them. */\n selected?: string | null;\n /** Called with the id of the item the reader picked. */\n onSelect?: (id: string) => void;\n /** Names the navigation for a screen reader. */\n ariaLabel: string;\n className?: string;\n children?: ReactNode;\n}\n\nexport const SideNav = ({\n selected,\n onSelect,\n ariaLabel,\n className,\n children,\n}: ISideNavProps) => {\n const listRef = useRef<HTMLElement>(null);\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLElement>) => {\n const items = Array.from(\n listRef.current?.querySelectorAll<HTMLElement>(ITEM_SELECTOR) ?? []\n );\n\n if (items.length === 0) {\n return;\n }\n\n const target = nextIndex(\n event.key,\n items.indexOf(document.activeElement as HTMLElement),\n items.length\n );\n\n if (target < 0) {\n return;\n }\n\n event.preventDefault();\n items[target].focus();\n }, []);\n\n const value = useMemo(() => ({ selected, onSelect }), [selected, onSelect]);\n\n return (\n <SideNavProvider value={value}>\n <StyledSideNav\n ref={listRef}\n aria-label={ariaLabel}\n className={className}\n onKeyDown={handleKeyDown}\n >\n {children}\n </StyledSideNav>\n </SideNavProvider>\n );\n};\n\nSideNav.displayName = \"SideNav\";\nSideNav.Group = SideNavGroup;\nSideNav.Item = SideNavItem;\n"],"mappings":"AAAA,OAAOA,KAAK,IAGVC,WAAW,EACXC,OAAO,EACPC,MAAM,QACD,OAAO;AAEd,SAASC,eAAe,QAAQ,kBAAkB;AAClD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,aAAa,QAAQ,UAAU;AAExC,MAAMC,aAAa,GAAG,qBAAqB;AAE3C,MAAMC,SAAS,GAAGA,CAACC,GAAW,EAAEC,OAAe,EAAEC,KAAa,KAAa;EACzE,QAAQF,GAAG;IACT,KAAK,WAAW;MACd,OAAO,CAACC,OAAO,GAAG,CAAC,IAAIC,KAAK;IAC9B,KAAK,SAAS;MACZ,OAAO,CAACD,OAAO,GAAG,CAAC,GAAGC,KAAK,IAAIA,KAAK;IACtC,KAAK,MAAM;MACT,OAAO,CAAC;IACV,KAAK,KAAK;MACR,OAAOA,KAAK,GAAG,CAAC;IAClB;MACE,OAAO,CAAC,CAAC;EACb;AACF,CAAC;AAaD,OAAO,MAAMC,OAAO,GAAGC,IAAA,IAMF;EAAA,IALnBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;EAER,MAAMC,OAAO,GAAGjB,MAAM,CAAc,IAAI,CAAC;EAEzC,MAAMkB,aAAa,GAAGpB,WAAW,CAAEqB,KAAiC,IAAK;IAAA,IAAAC,qBAAA,EAAAC,gBAAA;IACvE,MAAMC,KAAK,GAAGC,KAAK,CAACC,IAAI,EAAAJ,qBAAA,IAAAC,gBAAA,GACtBJ,OAAO,CAACT,OAAO,qBAAfa,gBAAA,CAAiBI,gBAAgB,CAAcpB,aAAa,CAAC,YAAAe,qBAAA,GAAI,EACnE,CAAC;IAED,IAAIE,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE;MACtB;IACF;IAEA,MAAMC,MAAM,GAAGrB,SAAS,CACtBa,KAAK,CAACZ,GAAG,EACTe,KAAK,CAACM,OAAO,CAACC,QAAQ,CAACC,aAA4B,CAAC,EACpDR,KAAK,CAACI,MACR,CAAC;IAED,IAAIC,MAAM,GAAG,CAAC,EAAE;MACd;IACF;IAEAR,KAAK,CAACY,cAAc,CAAC,CAAC;IACtBT,KAAK,CAACK,MAAM,CAAC,CAACK,KAAK,CAAC,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,KAAK,GAAGlC,OAAO,CAAC,OAAO;IAAEa,QAAQ;IAAEC;EAAS,CAAC,CAAC,EAAE,CAACD,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAE3E,oBACEhB,KAAA,CAAAqC,aAAA,CAACjC,eAAe;IAACgC,KAAK,EAAEA;EAAM,gBAC5BpC,KAAA,CAAAqC,aAAA,CAAC9B,aAAa;IACZ+B,GAAG,EAAElB,OAAQ;IACb,cAAYH,SAAU;IACtBC,SAAS,EAAEA,SAAU;IACrBqB,SAAS,EAAElB;EAAc,GAExBF,QACY,CACA,CAAC;AAEtB,CAAC;AAEDN,OAAO,CAAC2B,WAAW,GAAG,SAAS;AAC/B3B,OAAO,CAAC4B,KAAK,GAAGpC,YAAY;AAC5BQ,OAAO,CAAC6B,IAAI,GAAGpC,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ISideNavContext {
|
|
2
|
+
/** Id of the item that is current. */
|
|
3
|
+
selected?: string | null;
|
|
4
|
+
/** Called with the id of the item the reader picked. */
|
|
5
|
+
onSelect?: (id: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const SideNavProvider: import("react").Provider<ISideNavContext>;
|
|
8
|
+
export declare const useSideNavContext: () => ISideNavContext;
|
|
9
|
+
//# sourceMappingURL=SideNavContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavContext.d.ts","sourceRoot":"","sources":["../../../../src/components/SideNav/SideNavContext.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAID,eAAO,MAAM,eAAe,2CAA0B,CAAC;AAEvD,eAAO,MAAM,iBAAiB,QAAO,eACT,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
const SideNavContext = /*#__PURE__*/createContext({});
|
|
3
|
+
export const SideNavProvider = SideNavContext.Provider;
|
|
4
|
+
export const useSideNavContext = () => useContext(SideNavContext);
|
|
5
|
+
//# sourceMappingURL=SideNavContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavContext.js","names":["createContext","useContext","SideNavContext","SideNavProvider","Provider","useSideNavContext"],"sources":["../../../../src/components/SideNav/SideNavContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface ISideNavContext {\n /** Id of the item that is current. */\n selected?: string | null;\n /** Called with the id of the item the reader picked. */\n onSelect?: (id: string) => void;\n}\n\nconst SideNavContext = createContext<ISideNavContext>({});\n\nexport const SideNavProvider = SideNavContext.Provider;\n\nexport const useSideNavContext = (): ISideNavContext =>\n useContext(SideNavContext);\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AASjD,MAAMC,cAAc,gBAAGF,aAAa,CAAkB,CAAC,CAAC,CAAC;AAEzD,OAAO,MAAMG,eAAe,GAAGD,cAAc,CAACE,QAAQ;AAEtD,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAC/BJ,UAAU,CAACC,cAAc,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
export interface ISideNavGroupProps {
|
|
3
|
+
/** Heading above the items. A group without one keeps them apart without naming them. */
|
|
4
|
+
title?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare const SideNavGroup: {
|
|
9
|
+
({ title, className, children, }: ISideNavGroupProps): React.JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=SideNavGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/SideNav/SideNavGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,YAAY;sCAItB,kBAAkB;;CAKpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StyledSideNavGroup, StyledSideNavGroupTitle } from "./Styles";
|
|
3
|
+
export const SideNavGroup = _ref => {
|
|
4
|
+
let title = _ref.title,
|
|
5
|
+
className = _ref.className,
|
|
6
|
+
children = _ref.children;
|
|
7
|
+
return /*#__PURE__*/React.createElement(StyledSideNavGroup, {
|
|
8
|
+
className: className
|
|
9
|
+
}, title ? /*#__PURE__*/React.createElement(StyledSideNavGroupTitle, null, title) : null, children);
|
|
10
|
+
};
|
|
11
|
+
SideNavGroup.displayName = "SideNavGroup";
|
|
12
|
+
//# sourceMappingURL=SideNavGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavGroup.js","names":["React","StyledSideNavGroup","StyledSideNavGroupTitle","SideNavGroup","_ref","title","className","children","createElement","displayName"],"sources":["../../../../src/components/SideNav/SideNavGroup.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\n\nimport { StyledSideNavGroup, StyledSideNavGroupTitle } from \"./Styles\";\n\nexport interface ISideNavGroupProps {\n /** Heading above the items. A group without one keeps them apart without naming them. */\n title?: string;\n className?: string;\n children?: ReactNode;\n}\n\nexport const SideNavGroup = ({\n title,\n className,\n children,\n}: ISideNavGroupProps) => (\n <StyledSideNavGroup className={className}>\n {title ? <StyledSideNavGroupTitle>{title}</StyledSideNavGroupTitle> : null}\n {children}\n </StyledSideNavGroup>\n);\n\nSideNavGroup.displayName = \"SideNavGroup\";\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AAExC,SAASC,kBAAkB,EAAEC,uBAAuB,QAAQ,UAAU;AAStE,OAAO,MAAMC,YAAY,GAAGC,IAAA;EAAA,IAC1BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAAA,oBAERP,KAAA,CAAAQ,aAAA,CAACP,kBAAkB;IAACK,SAAS,EAAEA;EAAU,GACtCD,KAAK,gBAAGL,KAAA,CAAAQ,aAAA,CAACN,uBAAuB,QAAEG,KAA+B,CAAC,GAAG,IAAI,EACzEE,QACiB,CAAC;AAAA,CACtB;AAEDJ,YAAY,CAACM,WAAW,GAAG,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { ElementType, MouseEvent, ReactNode } from "react";
|
|
2
|
+
export interface ISideNavItemProps {
|
|
3
|
+
/** Identifies the item. `SideNav` marks the one whose id it was given as selected. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Icon drawn before the label. */
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
/** What the item renders as. A router link makes the item openable in a new tab. */
|
|
8
|
+
as?: ElementType;
|
|
9
|
+
className?: string;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
onClick?: (event: MouseEvent) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const SideNavItem: {
|
|
14
|
+
({ id, icon, as, className, children, onClick, ...rest }: ISideNavItemProps & Record<string, unknown>): React.JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=SideNavItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavItem.d.ts","sourceRoot":"","sources":["../../../../src/components/SideNav/SideNavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAS/E,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oFAAoF;IACpF,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,WAAW;8DAQrB,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;CA8B7C,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["id", "icon", "as", "className", "children", "onClick"];
|
|
4
|
+
import React, { useCallback } from "react";
|
|
5
|
+
import { useSideNavContext } from "./SideNavContext";
|
|
6
|
+
import { StyledSideNavItem, StyledSideNavItemIcon, StyledSideNavItemLabel } from "./Styles";
|
|
7
|
+
export const SideNavItem = _ref => {
|
|
8
|
+
let id = _ref.id,
|
|
9
|
+
icon = _ref.icon,
|
|
10
|
+
as = _ref.as,
|
|
11
|
+
className = _ref.className,
|
|
12
|
+
children = _ref.children,
|
|
13
|
+
onClick = _ref.onClick,
|
|
14
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
15
|
+
const _useSideNavContext = useSideNavContext(),
|
|
16
|
+
selected = _useSideNavContext.selected,
|
|
17
|
+
onSelect = _useSideNavContext.onSelect;
|
|
18
|
+
const isSelected = selected === id;
|
|
19
|
+
const handleClick = useCallback(event => {
|
|
20
|
+
onSelect == null || onSelect(id);
|
|
21
|
+
onClick == null || onClick(event);
|
|
22
|
+
}, [id, onClick, onSelect]);
|
|
23
|
+
return /*#__PURE__*/React.createElement(StyledSideNavItem, _extends({}, rest, {
|
|
24
|
+
as: as,
|
|
25
|
+
"data-sidenav-item": true,
|
|
26
|
+
"aria-current": isSelected ? "page" : undefined,
|
|
27
|
+
$selected: isSelected,
|
|
28
|
+
className: className,
|
|
29
|
+
onClick: handleClick
|
|
30
|
+
}), icon ? /*#__PURE__*/React.createElement(StyledSideNavItemIcon, {
|
|
31
|
+
$selected: isSelected
|
|
32
|
+
}, icon) : null, /*#__PURE__*/React.createElement(StyledSideNavItemLabel, null, children));
|
|
33
|
+
};
|
|
34
|
+
SideNavItem.displayName = "SideNavItem";
|
|
35
|
+
//# sourceMappingURL=SideNavItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavItem.js","names":["React","useCallback","useSideNavContext","StyledSideNavItem","StyledSideNavItemIcon","StyledSideNavItemLabel","SideNavItem","_ref","id","icon","as","className","children","onClick","rest","_objectWithoutPropertiesLoose","_excluded","_useSideNavContext","selected","onSelect","isSelected","handleClick","event","createElement","_extends","undefined","$selected","displayName"],"sources":["../../../../src/components/SideNav/SideNavItem.tsx"],"sourcesContent":["import React, { ElementType, MouseEvent, ReactNode, useCallback } from \"react\";\n\nimport { useSideNavContext } from \"./SideNavContext\";\nimport {\n StyledSideNavItem,\n StyledSideNavItemIcon,\n StyledSideNavItemLabel,\n} from \"./Styles\";\n\nexport interface ISideNavItemProps {\n /** Identifies the item. `SideNav` marks the one whose id it was given as selected. */\n id: string;\n /** Icon drawn before the label. */\n icon?: ReactNode;\n /** What the item renders as. A router link makes the item openable in a new tab. */\n as?: ElementType;\n className?: string;\n children?: ReactNode;\n onClick?: (event: MouseEvent) => void;\n}\n\nexport const SideNavItem = ({\n id,\n icon,\n as,\n className,\n children,\n onClick,\n ...rest\n}: ISideNavItemProps & Record<string, unknown>) => {\n const { selected, onSelect } = useSideNavContext();\n const isSelected = selected === id;\n\n const handleClick = useCallback(\n (event: MouseEvent) => {\n onSelect?.(id);\n onClick?.(event);\n },\n [id, onClick, onSelect]\n );\n\n return (\n <StyledSideNavItem\n {...rest}\n as={as}\n data-sidenav-item\n aria-current={isSelected ? \"page\" : undefined}\n $selected={isSelected}\n className={className}\n onClick={handleClick}\n >\n {icon ? (\n <StyledSideNavItemIcon $selected={isSelected}>\n {icon}\n </StyledSideNavItemIcon>\n ) : null}\n <StyledSideNavItemLabel>{children}</StyledSideNavItemLabel>\n </StyledSideNavItem>\n );\n};\n\nSideNavItem.displayName = \"SideNavItem\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAwCC,WAAW,QAAQ,OAAO;AAE9E,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SACEC,iBAAiB,EACjBC,qBAAqB,EACrBC,sBAAsB,QACjB,UAAU;AAcjB,OAAO,MAAMC,WAAW,GAAGC,IAAA,IAQwB;EAAA,IAPjDC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IACFC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,EAAE,GAAAH,IAAA,CAAFG,EAAE;IACFC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,OAAO,GAAAN,IAAA,CAAPM,OAAO;IACJC,IAAI,GAAAC,6BAAA,CAAAR,IAAA,EAAAS,SAAA;EAEP,MAAAC,kBAAA,GAA+Bf,iBAAiB,CAAC,CAAC;IAA1CgB,QAAQ,GAAAD,kBAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,kBAAA,CAARE,QAAQ;EAC1B,MAAMC,UAAU,GAAGF,QAAQ,KAAKV,EAAE;EAElC,MAAMa,WAAW,GAAGpB,WAAW,CAC5BqB,KAAiB,IAAK;IACrBH,QAAQ,YAARA,QAAQ,CAAGX,EAAE,CAAC;IACdK,OAAO,YAAPA,OAAO,CAAGS,KAAK,CAAC;EAClB,CAAC,EACD,CAACd,EAAE,EAAEK,OAAO,EAAEM,QAAQ,CACxB,CAAC;EAED,oBACEnB,KAAA,CAAAuB,aAAA,CAACpB,iBAAiB,EAAAqB,QAAA,KACZV,IAAI;IACRJ,EAAE,EAAEA,EAAG;IACP,yBAAiB;IACjB,gBAAcU,UAAU,GAAG,MAAM,GAAGK,SAAU;IAC9CC,SAAS,EAAEN,UAAW;IACtBT,SAAS,EAAEA,SAAU;IACrBE,OAAO,EAAEQ;EAAY,IAEpBZ,IAAI,gBACHT,KAAA,CAAAuB,aAAA,CAACnB,qBAAqB;IAACsB,SAAS,EAAEN;EAAW,GAC1CX,IACoB,CAAC,GACtB,IAAI,eACRT,KAAA,CAAAuB,aAAA,CAAClB,sBAAsB,QAAEO,QAAiC,CACzC,CAAC;AAExB,CAAC;AAEDN,WAAW,CAACqB,WAAW,GAAG,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const StyledSideNav: import("styled-components").StyledComponent<"nav", any, {}, never>;
|
|
2
|
+
export declare const StyledSideNavGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const StyledSideNavGroupTitle: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
4
|
+
export declare const StyledSideNavItem: import("styled-components").StyledComponent<"button", any, {
|
|
5
|
+
$selected?: boolean;
|
|
6
|
+
}, never>;
|
|
7
|
+
export declare const StyledSideNavItemIcon: import("styled-components").StyledComponent<"span", any, {
|
|
8
|
+
$selected?: boolean;
|
|
9
|
+
}, never>;
|
|
10
|
+
export declare const StyledSideNavItemLabel: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
11
|
+
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/SideNav/Styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,oEAKzB,CAAC;AAIF,eAAO,MAAM,kBAAkB,oEAE9B,CAAC;AAIF,eAAO,MAAM,uBAAuB,qEAEnC,CAAC;AAIF,eAAO,MAAM,iBAAiB;gBAA+B,OAAO;SAwBnE,CAAC;AAMF,eAAO,MAAM,qBAAqB;gBAA6B,OAAO;SAerE,CAAC;AAIF,eAAO,MAAM,sBAAsB,qEAElC,CAAC"}
|