@amboss/design-system 3.14.0 → 3.15.0
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/build/cjs/components/EntityList/BaseEntityList.d.ts +1 -1
- package/build/cjs/components/EntityList/BaseEntityList.js +1 -1
- package/build/cjs/components/EntityList/VirtualizedEntityList.d.ts +13 -0
- package/build/cjs/components/EntityList/VirtualizedEntityList.js +1 -0
- package/build/cjs/components/EntityList/types.d.ts +20 -2
- package/build/cjs/components/EntityTree/BaseEntityTree.d.ts +10 -1
- package/build/cjs/components/EntityTree/BaseEntityTree.js +1 -1
- package/build/cjs/components/Form/Combobox/OptionsList.js +1 -1
- package/build/cjs/components/VirtualScrollList/VirtualScrollList.d.ts +6 -2
- package/build/cjs/components/VirtualScrollList/VirtualScrollList.js +1 -1
- package/build/cjs/components/VirtualScrollList/VirtualScrollListReducer.js +1 -1
- package/build/esm/components/EntityList/BaseEntityList.d.ts +1 -1
- package/build/esm/components/EntityList/BaseEntityList.js +1 -1
- package/build/esm/components/EntityList/VirtualizedEntityList.d.ts +13 -0
- package/build/esm/components/EntityList/VirtualizedEntityList.js +1 -0
- package/build/esm/components/EntityList/types.d.ts +20 -2
- package/build/esm/components/EntityTree/BaseEntityTree.d.ts +10 -1
- package/build/esm/components/EntityTree/BaseEntityTree.js +1 -1
- package/build/esm/components/Form/Combobox/OptionsList.js +1 -1
- package/build/esm/components/VirtualScrollList/VirtualScrollList.d.ts +6 -2
- package/build/esm/components/VirtualScrollList/VirtualScrollList.js +1 -1
- package/build/esm/components/VirtualScrollList/VirtualScrollListReducer.js +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { EntityListProps } from "./types";
|
|
3
|
-
export declare function BaseEntityList({ data, size, onClick, isSelectable, selectedIds, onSelectionChange, renderRightContent, getLeftIconProps, hideBorder, filterFn, "data-e2e-test-id": dataE2eTestId, }: EntityListProps): React.ReactElement;
|
|
3
|
+
export declare function BaseEntityList({ data, size, onClick, isSelectable, selectedIds, onSelectionChange, onSelectionToggle, renderRightContent, getLeftIconProps, hideBorder, filterFn, isVirtualized, maxHeight, "data-e2e-test-id": dataE2eTestId, }: EntityListProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityList",{enumerable:!0,get:function(){return BaseEntityList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_styledcomponents=require("./styled-components"),_useKeyboard=require("../../shared/useKeyboard"),_Icon=require("../Icon/Icon"),_EntityListItem=require("./EntityListItem"),StyledMinHeightCell=(0,_styled.default)("div",{target:"e9t25660",label:"StyledMinHeightCell"})(({theme,textSize})=>({minHeight:"s"===textSize?`calc(${theme.variables.size.spacing.m} + ${theme.variables.size.spacing.xxs})`:theme.variables.size.spacing.l,display:"flex",alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5TGlzdC9CYXNlRW50aXR5TGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eUxpc3QvQmFzZUVudGl0eUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU3R5bGVkTGlzdCB9IGZyb20gXCIuL3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RQcm9wcywgTGlzdE5vZGUsIFRleHRTaXplUHJvcHMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgRW50aXR5TGlzdEl0ZW0gfSBmcm9tIFwiLi9FbnRpdHlMaXN0SXRlbVwiO1xuXG4vLyBUaGlzIG1pbkhlaWdodCBpcyBuZWVkZWQgZm9yIGFsaWduIHNtYWxsIGljb25zIGluIHRoZSBtaWRkbGUgb2YgMSByb3cgdGV4dCxcbi8vIGJ1dCBpdCBzaG91bGQgc3RheSBhdCB0aGUgdG9wIGlmIHRoZXJlIGlzIG11bHRpbGluZSB0ZXh0XG5jb25zdCBTdHlsZWRNaW5IZWlnaHRDZWxsID0gc3R5bGVkLmRpdjxUZXh0U2l6ZVByb3BzPihcbiAgKHsgdGhlbWUsIHRleHRTaXplIH0pID0+ICh7XG4gICAgbWluSGVpZ2h0OlxuICAgICAgdGV4dFNpemUgPT09IFwic1wiXG4gICAgICAgID8gYGNhbGMoJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm19ICsgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30pYFxuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubCxcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgZmluZEVuYWJsZWRJdGVtSW5kZXggPSAoXG4gIGl0ZW1zOiBMaXN0Tm9kZVtdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGRpcmVjdGlvbiA9IFwibmV4dFwiXG4pOiBudW1iZXIgPT4ge1xuICBpZiAoZGlyZWN0aW9uID09PSBcIm5leHRcIikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4ICsgMTsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoIWl0ZW1zW2ldLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gXCJwcmV2aW91c1wiKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgaWYgKCFpdGVtc1tpXS5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhcnRJbmRleDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBCYXNlRW50aXR5TGlzdCh7XG4gIGRhdGEsXG4gIHNpemUgPSBcIm1cIixcbiAgb25DbGljayxcbiAgaXNTZWxlY3RhYmxlLFxuICBzZWxlY3RlZElkcyxcbiAgb25TZWxlY3Rpb25DaGFuZ2UsXG4gIHJlbmRlclJpZ2h0Q29udGVudCxcbiAgZ2V0TGVmdEljb25Qcm9wcyxcbiAgaGlkZUJvcmRlcixcbiAgZmlsdGVyRm4sXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxufTogRW50aXR5TGlzdFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgZGF0YVNob3duID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuIGRhdGE7XG5cbiAgICByZXR1cm4gZmlsdGVyRm4gPyBkYXRhLmZpbHRlcihmaWx0ZXJGbikgOiBkYXRhO1xuICB9LCBbZGF0YSwgZmlsdGVyRm5dKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHNTZXQgPSB1c2VNZW1vKCgpID0+IG5ldyBTZXQoc2VsZWN0ZWRJZHMpLCBbc2VsZWN0ZWRJZHNdKTtcbiAgY29uc3QgW2lzS2V5Ym9hcmRGb2N1cywgc2V0SXNLZXlib2FyZEZvY3VzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigoKSA9PlxuICAgIGlzU2VsZWN0YWJsZSB8fCBvbkNsaWNrID8gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkgOiAtMVxuICApO1xuICBjb25zdCByZWZMaXN0ID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICBBcnJvd0Rvd246ICgpID0+IHtcbiAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBmaW5kRW5hYmxlZEl0ZW1JbmRleChkYXRhU2hvd24sIHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG5leHRJbmRleCk7XG4gICAgICB9LFxuICAgICAgQXJyb3dVcDogKCkgPT4ge1xuICAgICAgICBzZXRJc0tleWJvYXJkRm9jdXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByZXZJbmRleCA9IGZpbmRFbmFibGVkSXRlbUluZGV4KFxuICAgICAgICAgIGRhdGFTaG93bixcbiAgICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICAgIFwicHJldmlvdXNcIlxuICAgICAgICApO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHByZXZJbmRleCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVmTGlzdCxcbiAgICBzZWxlY3RlZEluZGV4ICE9PSAtMVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZkxpc3QgJiYgcmVmTGlzdC5jdXJyZW50ICYmIGlzS2V5Ym9hcmRGb2N1cyAmJiBzZWxlY3RlZEluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSByZWZMaXN0LmN1cnJlbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJ2RpdltkYXRhLWlkPVwibGlzdC1pdGVtXCJdJ1xuICAgICAgKTtcblxuICAgICAgKGJ1dHRvbnNbTWF0aC5hYnMoc2VsZWN0ZWRJbmRleCkgJSBidXR0b25zLmxlbmd0aF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKHtcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NlbGVjdGVkSW5kZXgsIGlzS2V5Ym9hcmRGb2N1c10pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogTGlzdE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGl0ZW07XG5cbiAgICAgIC8vIEhhbmRsZSBjaGVja2JveCBjaGFuZ2VcbiAgICAgIGlmIChpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSWRzU2V0LmhhcyhpZCkpIHtcbiAgICAgICAgICBzZWxlY3RlZElkc1NldC5kZWxldGUoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGVjdGVkSWRzU2V0LmFkZChpZCk7XG4gICAgICAgIH1cbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U/LihBcnJheS5mcm9tKHNlbGVjdGVkSWRzU2V0KSk7XG4gICAgICB9XG5cbiAgICAgIG9uQ2xpY2s/LihpdGVtKTtcbiAgICB9LFxuICAgIFtzZWxlY3RlZElkc1NldCwgb25TZWxlY3Rpb25DaGFuZ2UsIG9uQ2xpY2ssIGlzU2VsZWN0YWJsZV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFVzZSBzZXRUaW1lb3V0IHRvIHdhaXQgZm9yIGZvY3VzIHRvIGZ1bGx5IHByb3BhZ2F0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICByZWZMaXN0LmN1cnJlbnQgJiZcbiAgICAgICAgIXJlZkxpc3QuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgKSB7XG4gICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoKCkgPT4gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9LCBbcmVmTGlzdCwgc2V0U2VsZWN0ZWRJbmRleCwgZGF0YVNob3duXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTGlzdFxuICAgICAgcmVmPXtyZWZMaXN0fVxuICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICBkYXRhLWRzLWlkPVwiRW50aXR5TGlzdFwiXG4gICAgICByb2xlPVwibGlzdFwiXG4gICAgPlxuICAgICAge2RhdGFTaG93bi5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgY29uc3QgdGFiSW5kZXggPSAhaXRlbS5pc0Rpc2FibGVkICYmIGkgPT09IHNlbGVjdGVkSW5kZXggPyAwIDogLTE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RW50aXR5TGlzdEl0ZW1cbiAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2l0ZW1bXCJhcmlhLWxhYmVsXCJdIHx8IGl0ZW0ubGFiZWx9XG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgaGlkZUJvcmRlcj17aGlkZUJvcmRlciB8fCBpID09PSBkYXRhU2hvd24ubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgIGlzQWN0aXZlPXtpdGVtLmlzQWN0aXZlIHx8IChpc0tleWJvYXJkRm9jdXMgJiYgc2VsZWN0ZWRJbmRleCA9PT0gaSl9XG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpdGVtLmlzRGlzYWJsZWR9XG4gICAgICAgICAgICBpc0NsaWNrYWJsZT17Qm9vbGVhbihvbkNsaWNrIHx8IHNlbGVjdGVkSWRzKX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtpdGVtLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgb25LZXlEb3duPXsoKSA9PiBoYW5kbGVPbkNsaWNrKGl0ZW0pfVxuICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAob25DbGljayB8fCBpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KGkpO1xuICAgICAgICAgICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgaGFuZGxlT25DbGljayhpdGVtKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjaGVja2JveFByb3BzPXtcbiAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlICYmIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImxpc3QtY2hlY2tib3hcIixcbiAgICAgICAgICAgICAgICBzaXplOiBcInNcIixcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogKCkgPT4gaGFuZGxlT25DbGljayhpdGVtKSxcbiAgICAgICAgICAgICAgICBjaGVja2VkOiBzZWxlY3RlZElkc1NldC5oYXMoaXRlbS5pZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlbmRlckxhYmVsPXsoKSA9PiBpdGVtLmxhYmVsfVxuICAgICAgICAgICAgcmVuZGVyTGVmdD17XG4gICAgICAgICAgICAgIGdldExlZnRJY29uUHJvcHNcbiAgICAgICAgICAgICAgICA/ICh7IHRleHRTaXplIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRMZWZ0SWNvblByb3BzKGl0ZW0pfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3RleHRTaXplfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyUmlnaHQ9eyh7IGFjdGlvblNpemUsIHRleHRTaXplIH0pID0+XG4gICAgICAgICAgICAgIHJlbmRlclJpZ2h0Q29udGVudCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkTWluSGVpZ2h0Q2VsbCB0ZXh0U2l6ZT17dGV4dFNpemV9PlxuICAgICAgICAgICAgICAgICAge3JlbmRlclJpZ2h0Q29udGVudCh7IHRleHRTaXplLCBhY3Rpb25TaXplLCAuLi5pdGVtIH0pfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkTWluSGVpZ2h0Q2VsbD5cbiAgICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9TdHlsZWRMaXN0PlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCNEIifQ== */"),findEnabledItemIndex=(items,startIndex,direction="next")=>{if("next"===direction){for(let i=startIndex+1;i<items.length;i+=1)if(!items[i].isDisabled)return i}else if("previous"===direction){for(let i=startIndex-1;i>=0;i-=1)if(!items[i].isDisabled)return i}return startIndex};function BaseEntityList({data,size="m",onClick,isSelectable,selectedIds,onSelectionChange,renderRightContent,getLeftIconProps,hideBorder,filterFn,"data-e2e-test-id":dataE2eTestId}){let dataShown=(0,_react.useMemo)(()=>data.length&&filterFn?data.filter(filterFn):data,[data,filterFn]),selectedIdsSet=(0,_react.useMemo)(()=>new Set(selectedIds),[selectedIds]),[isKeyboardFocus,setIsKeyboardFocus]=(0,_react.useState)(!1),[selectedIndex,setSelectedIndex]=(0,_react.useState)(()=>isSelectable||onClick?findEnabledItemIndex(dataShown,-1):-1),refList=(0,_react.useRef)(null);(0,_useKeyboard.useKeyboard)({ArrowDown:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex))},ArrowUp:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex,"previous"))}},refList,-1!==selectedIndex),(0,_react.useEffect)(()=>{if(refList&&refList.current&&isKeyboardFocus&&selectedIndex>=0){let buttons=refList.current.querySelectorAll('div[data-id="list-item"]');buttons[Math.abs(selectedIndex)%buttons.length].focus({preventScroll:!0})}},[selectedIndex,isKeyboardFocus]);let handleOnClick=(0,_react.useCallback)(item=>{let{id}=item;isSelectable&&(selectedIdsSet.has(id)?selectedIdsSet.delete(id):selectedIdsSet.add(id),onSelectionChange?.(Array.from(selectedIdsSet))),onClick?.(item)},[selectedIdsSet,onSelectionChange,onClick,isSelectable]),handleBlur=(0,_react.useCallback)(()=>{setTimeout(()=>{refList.current&&!refList.current.contains(document.activeElement)&&(setIsKeyboardFocus(!1),setSelectedIndex(()=>findEnabledItemIndex(dataShown,-1)))},0)},[refList,setSelectedIndex,dataShown]);return _react.default.createElement(_styledcomponents.StyledList,{ref:refList,size:size,"data-e2e-test-id":dataE2eTestId,onBlur:handleBlur,"data-ds-id":"EntityList",role:"list"},dataShown.map((item,i)=>{let tabIndex=item.isDisabled||i!==selectedIndex?-1:0;return _react.default.createElement(_EntityListItem.EntityListItem,{key:item.id,"aria-label":item["aria-label"]||item.label,size:size,hideBorder:hideBorder||i===dataShown.length-1,isActive:item.isActive||isKeyboardFocus&&selectedIndex===i,isDisabled:item.isDisabled,isClickable:!!(onClick||selectedIds),description:item.description,onKeyDown:()=>handleOnClick(item),tabIndex:tabIndex,onFocus:()=>{(onClick||isSelectable)&&(setSelectedIndex(i),setIsKeyboardFocus(!0))},onClick:()=>{setIsKeyboardFocus(!1),handleOnClick(item)},checkboxProps:isSelectable&&{name:"list-checkbox",size:"s",onChange:()=>handleOnClick(item),checked:selectedIdsSet.has(item.id)},renderLabel:()=>item.label,renderLeft:getLeftIconProps?({textSize})=>_react.default.createElement(_Icon.Icon,{...getLeftIconProps(item),size:textSize}):null,renderRight:({actionSize,textSize})=>renderRightContent?_react.default.createElement(StyledMinHeightCell,{textSize:textSize},renderRightContent({textSize,actionSize,...item})):null})}))}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityList",{enumerable:!0,get:function(){return BaseEntityList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_styledcomponents=require("./styled-components"),_useKeyboard=require("../../shared/useKeyboard"),_Icon=require("../Icon/Icon"),_EntityListItem=require("./EntityListItem"),_VirtualizedEntityList=require("./VirtualizedEntityList"),StyledMinHeightCell=(0,_styled.default)("div",{target:"e1pzyi5y0",label:"StyledMinHeightCell"})(({theme,textSize})=>({minHeight:"s"===textSize?`calc(${theme.variables.size.spacing.m} + ${theme.variables.size.spacing.xxs})`:theme.variables.size.spacing.l,display:"flex",alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5TGlzdC9CYXNlRW50aXR5TGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eUxpc3QvQmFzZUVudGl0eUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU3R5bGVkTGlzdCB9IGZyb20gXCIuL3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RQcm9wcywgTGlzdE5vZGUsIFRleHRTaXplUHJvcHMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgRW50aXR5TGlzdEl0ZW0gfSBmcm9tIFwiLi9FbnRpdHlMaXN0SXRlbVwiO1xuaW1wb3J0IHsgVmlydHVhbGl6ZWRFbnRpdHlMaXN0IH0gZnJvbSBcIi4vVmlydHVhbGl6ZWRFbnRpdHlMaXN0XCI7XG5cbi8vIFRoaXMgbWluSGVpZ2h0IGlzIG5lZWRlZCBmb3IgYWxpZ24gc21hbGwgaWNvbnMgaW4gdGhlIG1pZGRsZSBvZiAxIHJvdyB0ZXh0LFxuLy8gYnV0IGl0IHNob3VsZCBzdGF5IGF0IHRoZSB0b3AgaWYgdGhlcmUgaXMgbXVsdGlsaW5lIHRleHRcbmNvbnN0IFN0eWxlZE1pbkhlaWdodENlbGwgPSBzdHlsZWQuZGl2PFRleHRTaXplUHJvcHM+KFxuICAoeyB0aGVtZSwgdGV4dFNpemUgfSkgPT4gKHtcbiAgICBtaW5IZWlnaHQ6XG4gICAgICB0ZXh0U2l6ZSA9PT0gXCJzXCJcbiAgICAgICAgPyBgY2FsYygke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubX0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5sLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIH0pXG4pO1xuXG5jb25zdCBmaW5kRW5hYmxlZEl0ZW1JbmRleCA9IChcbiAgaXRlbXM6IExpc3ROb2RlW10sXG4gIHN0YXJ0SW5kZXg6IG51bWJlcixcbiAgZGlyZWN0aW9uID0gXCJuZXh0XCJcbik6IG51bWJlciA9PiB7XG4gIGlmIChkaXJlY3Rpb24gPT09IFwibmV4dFwiKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXggKyAxOyBpIDwgaXRlbXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICghaXRlbXNbaV0uaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcInByZXZpb3VzXCIpIHtcbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICBpZiAoIWl0ZW1zW2ldLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGFydEluZGV4O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhc2VFbnRpdHlMaXN0KHtcbiAgZGF0YSxcbiAgc2l6ZSA9IFwibVwiLFxuICBvbkNsaWNrLFxuICBpc1NlbGVjdGFibGUsXG4gIHNlbGVjdGVkSWRzLFxuICBvblNlbGVjdGlvbkNoYW5nZSxcbiAgb25TZWxlY3Rpb25Ub2dnbGUsXG4gIHJlbmRlclJpZ2h0Q29udGVudCxcbiAgZ2V0TGVmdEljb25Qcm9wcyxcbiAgaGlkZUJvcmRlcixcbiAgZmlsdGVyRm4sXG4gIGlzVmlydHVhbGl6ZWQsXG4gIG1heEhlaWdodCxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBFbnRpdHlMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBkYXRhU2hvd24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWRhdGEubGVuZ3RoKSByZXR1cm4gZGF0YTtcblxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGRhdGEuZmlsdGVyKGZpbHRlckZuKSA6IGRhdGE7XG4gIH0sIFtkYXRhLCBmaWx0ZXJGbl0pO1xuXG4gIGNvbnN0IHNlbGVjdGVkSWRzU2V0ID0gdXNlTWVtbygoKSA9PiBuZXcgU2V0KHNlbGVjdGVkSWRzKSwgW3NlbGVjdGVkSWRzXSk7XG5cbiAgY29uc3QgW2lzS2V5Ym9hcmRGb2N1cywgc2V0SXNLZXlib2FyZEZvY3VzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigoKSA9PlxuICAgIGlzU2VsZWN0YWJsZSB8fCBvbkNsaWNrID8gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkgOiAtMVxuICApO1xuICBjb25zdCByZWZMaXN0ID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICBBcnJvd0Rvd246ICgpID0+IHtcbiAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBmaW5kRW5hYmxlZEl0ZW1JbmRleChkYXRhU2hvd24sIHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG5leHRJbmRleCk7XG4gICAgICB9LFxuICAgICAgQXJyb3dVcDogKCkgPT4ge1xuICAgICAgICBzZXRJc0tleWJvYXJkRm9jdXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByZXZJbmRleCA9IGZpbmRFbmFibGVkSXRlbUluZGV4KFxuICAgICAgICAgIGRhdGFTaG93bixcbiAgICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICAgIFwicHJldmlvdXNcIlxuICAgICAgICApO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHByZXZJbmRleCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVmTGlzdCxcbiAgICBzZWxlY3RlZEluZGV4ICE9PSAtMVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZkxpc3QgJiYgcmVmTGlzdC5jdXJyZW50ICYmIGlzS2V5Ym9hcmRGb2N1cyAmJiBzZWxlY3RlZEluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSByZWZMaXN0LmN1cnJlbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJ2RpdltkYXRhLWlkPVwibGlzdC1pdGVtXCJdJ1xuICAgICAgKTtcblxuICAgICAgKGJ1dHRvbnNbTWF0aC5hYnMoc2VsZWN0ZWRJbmRleCkgJSBidXR0b25zLmxlbmd0aF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKHtcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NlbGVjdGVkSW5kZXgsIGlzS2V5Ym9hcmRGb2N1c10pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogTGlzdE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGl0ZW07XG5cbiAgICAgIGlmIChpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgY29uc3Qgd2lsbEJlU2VsZWN0ZWQgPSAhc2VsZWN0ZWRJZHNTZXQuaGFzKGlkKTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHNTZXQgPSBuZXcgU2V0KHNlbGVjdGVkSWRzU2V0KTtcblxuICAgICAgICBpZiAod2lsbEJlU2VsZWN0ZWQpIHtcbiAgICAgICAgICBuZXdTZWxlY3RlZElkc1NldC5hZGQoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1NlbGVjdGVkSWRzU2V0LmRlbGV0ZShpZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvblNlbGVjdGlvblRvZ2dsZT8uKGlkLCB3aWxsQmVTZWxlY3RlZCk7XG4gICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlPy4oQXJyYXkuZnJvbShuZXdTZWxlY3RlZElkc1NldCkpO1xuICAgICAgfVxuXG4gICAgICBvbkNsaWNrPy4oaXRlbSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBzZWxlY3RlZElkc1NldCxcbiAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlLFxuICAgICAgb25TZWxlY3Rpb25Ub2dnbGUsXG4gICAgICBvbkNsaWNrLFxuICAgICAgaXNTZWxlY3RhYmxlLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFVzZSBzZXRUaW1lb3V0IHRvIHdhaXQgZm9yIGZvY3VzIHRvIGZ1bGx5IHByb3BhZ2F0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICByZWZMaXN0LmN1cnJlbnQgJiZcbiAgICAgICAgIXJlZkxpc3QuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgKSB7XG4gICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoKCkgPT4gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9LCBbcmVmTGlzdCwgc2V0U2VsZWN0ZWRJbmRleCwgZGF0YVNob3duXSk7XG5cbiAgY29uc3QgcmVuZGVyRW50aXR5SXRlbSA9IChpbmRleDogbnVtYmVyKTogUmVhY3QuUmVhY3ROb2RlID0+IHtcbiAgICBjb25zdCBpdGVtID0gZGF0YVNob3duW2luZGV4XTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgaXNMYXN0SXRlbSA9IGluZGV4ID09PSBkYXRhU2hvd24ubGVuZ3RoIC0gMTtcbiAgICBjb25zdCB0YWJJbmRleCA9ICFpdGVtLmlzRGlzYWJsZWQgJiYgaW5kZXggPT09IHNlbGVjdGVkSW5kZXggPyAwIDogLTE7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkSWRzU2V0LmhhcyhpdGVtLmlkKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RW50aXR5TGlzdEl0ZW1cbiAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICBhcmlhLWxhYmVsPXtpdGVtW1wiYXJpYS1sYWJlbFwiXSB8fCBpdGVtLmxhYmVsfVxuICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICBoaWRlQm9yZGVyPXtoaWRlQm9yZGVyIHx8IGlzTGFzdEl0ZW19XG4gICAgICAgIGlzQWN0aXZlPXtpdGVtLmlzQWN0aXZlIHx8IChpc0tleWJvYXJkRm9jdXMgJiYgc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXgpfVxuICAgICAgICBpc0Rpc2FibGVkPXtpdGVtLmlzRGlzYWJsZWR9XG4gICAgICAgIGlzQ2xpY2thYmxlPXtCb29sZWFuKG9uQ2xpY2sgfHwgc2VsZWN0ZWRJZHMpfVxuICAgICAgICBkZXNjcmlwdGlvbj17aXRlbS5kZXNjcmlwdGlvbn1cbiAgICAgICAgb25LZXlEb3duPXsoKSA9PiBoYW5kbGVPbkNsaWNrKGl0ZW0pfVxuICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgIG9uRm9jdXM9eygpID0+IHtcbiAgICAgICAgICBpZiAob25DbGljayB8fCBpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgaGFuZGxlT25DbGljayhpdGVtKTtcbiAgICAgICAgfX1cbiAgICAgICAgY2hlY2tib3hQcm9wcz17XG4gICAgICAgICAgaXNTZWxlY3RhYmxlICYmIHtcbiAgICAgICAgICAgIG5hbWU6IFwibGlzdC1jaGVja2JveFwiLFxuICAgICAgICAgICAgc2l6ZTogXCJzXCIsXG4gICAgICAgICAgICBvbkNoYW5nZTogKCkgPT4gaGFuZGxlT25DbGljayhpdGVtKSxcbiAgICAgICAgICAgIGNoZWNrZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbmRlckxhYmVsPXsoKSA9PiBpdGVtLmxhYmVsfVxuICAgICAgICByZW5kZXJMZWZ0PXtcbiAgICAgICAgICBnZXRMZWZ0SWNvblByb3BzXG4gICAgICAgICAgICA/ICh7IHRleHRTaXplIH0pID0+IChcbiAgICAgICAgICAgICAgICA8SWNvbiB7Li4uZ2V0TGVmdEljb25Qcm9wcyhpdGVtKX0gc2l6ZT17dGV4dFNpemV9IC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICB9XG4gICAgICAgIHJlbmRlclJpZ2h0PXsoeyBhY3Rpb25TaXplLCB0ZXh0U2l6ZSB9KSA9PlxuICAgICAgICAgIHJlbmRlclJpZ2h0Q29udGVudCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNaW5IZWlnaHRDZWxsIHRleHRTaXplPXt0ZXh0U2l6ZX0+XG4gICAgICAgICAgICAgIHtyZW5kZXJSaWdodENvbnRlbnQoeyB0ZXh0U2l6ZSwgYWN0aW9uU2l6ZSwgLi4uaXRlbSB9KX1cbiAgICAgICAgICAgIDwvU3R5bGVkTWluSGVpZ2h0Q2VsbD5cbiAgICAgICAgICApIDogbnVsbFxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGlzVmlydHVhbGl6ZWQgJiYgbWF4SGVpZ2h0ID8gKFxuICAgIDxWaXJ0dWFsaXplZEVudGl0eUxpc3RcbiAgICAgIGlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzaXplPXtzaXplfVxuICAgICAgZGF0YVNob3duPXtkYXRhU2hvd259XG4gICAgICBzZWxlY3RlZEluZGV4PXtzZWxlY3RlZEluZGV4fVxuICAgICAgaXRlbVRlbXBsYXRlPXtyZW5kZXJFbnRpdHlJdGVtfVxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAvPlxuICApIDogKFxuICAgIDxTdHlsZWRMaXN0XG4gICAgICByZWY9e3JlZkxpc3R9XG4gICAgICBzaXplPXtzaXplfVxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgIGRhdGEtZHMtaWQ9XCJFbnRpdHlMaXN0XCJcbiAgICAgIHJvbGU9XCJsaXN0XCJcbiAgICA+XG4gICAgICB7ZGF0YVNob3duLm1hcCgoX2l0ZW0sIGkpID0+IHJlbmRlckVudGl0eUl0ZW0oaSkpfVxuICAgIDwvU3R5bGVkTGlzdD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjRCIn0= */"),findEnabledItemIndex=(items,startIndex,direction="next")=>{if("next"===direction){for(let i=startIndex+1;i<items.length;i+=1)if(!items[i].isDisabled)return i}else if("previous"===direction){for(let i=startIndex-1;i>=0;i-=1)if(!items[i].isDisabled)return i}return startIndex};function BaseEntityList({data,size="m",onClick,isSelectable,selectedIds,onSelectionChange,onSelectionToggle,renderRightContent,getLeftIconProps,hideBorder,filterFn,isVirtualized,maxHeight,"data-e2e-test-id":dataE2eTestId}){let dataShown=(0,_react.useMemo)(()=>data.length&&filterFn?data.filter(filterFn):data,[data,filterFn]),selectedIdsSet=(0,_react.useMemo)(()=>new Set(selectedIds),[selectedIds]),[isKeyboardFocus,setIsKeyboardFocus]=(0,_react.useState)(!1),[selectedIndex,setSelectedIndex]=(0,_react.useState)(()=>isSelectable||onClick?findEnabledItemIndex(dataShown,-1):-1),refList=(0,_react.useRef)(null);(0,_useKeyboard.useKeyboard)({ArrowDown:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex))},ArrowUp:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex,"previous"))}},refList,-1!==selectedIndex),(0,_react.useEffect)(()=>{if(refList&&refList.current&&isKeyboardFocus&&selectedIndex>=0){let buttons=refList.current.querySelectorAll('div[data-id="list-item"]');buttons[Math.abs(selectedIndex)%buttons.length].focus({preventScroll:!0})}},[selectedIndex,isKeyboardFocus]);let handleOnClick=(0,_react.useCallback)(item=>{let{id}=item;if(isSelectable){let willBeSelected=!selectedIdsSet.has(id),newSelectedIdsSet=new Set(selectedIdsSet);willBeSelected?newSelectedIdsSet.add(id):newSelectedIdsSet.delete(id),onSelectionToggle?.(id,willBeSelected),onSelectionChange?.(Array.from(newSelectedIdsSet))}onClick?.(item)},[selectedIdsSet,onSelectionChange,onSelectionToggle,onClick,isSelectable]),handleBlur=(0,_react.useCallback)(()=>{setTimeout(()=>{refList.current&&!refList.current.contains(document.activeElement)&&(setIsKeyboardFocus(!1),setSelectedIndex(()=>findEnabledItemIndex(dataShown,-1)))},0)},[refList,setSelectedIndex,dataShown]),renderEntityItem=index=>{let item=dataShown[index];if(!item)return null;let isLastItem=index===dataShown.length-1,tabIndex=item.isDisabled||index!==selectedIndex?-1:0,isSelected=selectedIdsSet.has(item.id);return _react.default.createElement(_EntityListItem.EntityListItem,{key:item.id,"aria-label":item["aria-label"]||item.label,size:size,hideBorder:hideBorder||isLastItem,isActive:item.isActive||isKeyboardFocus&&selectedIndex===index,isDisabled:item.isDisabled,isClickable:!!(onClick||selectedIds),description:item.description,onKeyDown:()=>handleOnClick(item),tabIndex:tabIndex,onFocus:()=>{(onClick||isSelectable)&&(setSelectedIndex(index),setIsKeyboardFocus(!0))},onClick:()=>{setIsKeyboardFocus(!1),handleOnClick(item)},checkboxProps:isSelectable&&{name:"list-checkbox",size:"s",onChange:()=>handleOnClick(item),checked:isSelected},renderLabel:()=>item.label,renderLeft:getLeftIconProps?({textSize})=>_react.default.createElement(_Icon.Icon,{...getLeftIconProps(item),size:textSize}):null,renderRight:({actionSize,textSize})=>renderRightContent?_react.default.createElement(StyledMinHeightCell,{textSize:textSize},renderRightContent({textSize,actionSize,...item})):null})};return isVirtualized&&maxHeight?_react.default.createElement(_VirtualizedEntityList.VirtualizedEntityList,{id:dataE2eTestId,maxHeight:maxHeight,size:size,dataShown:dataShown,selectedIndex:selectedIndex,itemTemplate:renderEntityItem,"data-e2e-test-id":dataE2eTestId}):_react.default.createElement(_styledcomponents.StyledList,{ref:refList,size:size,"data-e2e-test-id":dataE2eTestId,onBlur:handleBlur,"data-ds-id":"EntityList",role:"list"},dataShown.map((_item,i)=>renderEntityItem(i)))}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ListSize } from "src/types";
|
|
3
|
+
import type { ListNode } from "./types";
|
|
4
|
+
export type VirtualizedEntityListProps = {
|
|
5
|
+
id?: string;
|
|
6
|
+
maxHeight: number;
|
|
7
|
+
size: ListSize;
|
|
8
|
+
dataShown: ListNode[];
|
|
9
|
+
selectedIndex: number;
|
|
10
|
+
itemTemplate: (index: number) => React.ReactNode;
|
|
11
|
+
"data-e2e-test-id"?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function VirtualizedEntityList({ id, maxHeight, size, dataShown, selectedIndex, itemTemplate, "data-e2e-test-id": dataE2eTestId, }: VirtualizedEntityListProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualizedEntityList",{enumerable:!0,get:function(){return VirtualizedEntityList}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_react1=require("@emotion/react"),_VirtualScrollList=require("../VirtualScrollList/VirtualScrollList"),useEstimateItemHeight=size=>{let theme=(0,_react1.useTheme)(),parseThemeValue=value=>parseInt(value.replace("px",""),10),paddingMap={xs:parseThemeValue(theme.variables.size.spacing.xxs),s:parseThemeValue(theme.variables.size.spacing.s),m:parseThemeValue(theme.variables.size.spacing.m),l:parseThemeValue(theme.variables.size.spacing.l)},fontHeight=parseThemeValue(theme.variables.size.font.m);return 2*paddingMap[size]+fontHeight};function VirtualizedEntityList({id,maxHeight,size,dataShown,selectedIndex,itemTemplate,"data-e2e-test-id":dataE2eTestId}){let estimatedItemHeight=useEstimateItemHeight(size);return _react.default.createElement(_VirtualScrollList.VirtualScrollList,{id:id||dataE2eTestId,maxHeight:maxHeight,itemHeight:estimatedItemHeight,itemAmount:dataShown.length,itemInView:selectedIndex>=0?selectedIndex:0,itemTemplate:itemTemplate,"data-e2e-test-id":dataE2eTestId})}
|
|
@@ -21,7 +21,7 @@ export type EntityListAriaAttributes = {
|
|
|
21
21
|
ariaLabelExpand?: string;
|
|
22
22
|
ariaLabelCollapse?: string;
|
|
23
23
|
};
|
|
24
|
-
export type
|
|
24
|
+
export type BaseEntityListProps = {
|
|
25
25
|
/**
|
|
26
26
|
* @param ListNode[].id
|
|
27
27
|
* @param ListNode[].label - Label for display
|
|
@@ -36,7 +36,16 @@ export type EntityListProps = {
|
|
|
36
36
|
/** Allows selection of items with checkboxes. */
|
|
37
37
|
isSelectable?: boolean;
|
|
38
38
|
onSelectionChange?: (ids: string[]) => void;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Callback function to handle individual item selection toggle.
|
|
41
|
+
* Fires synchronously when user clicks to toggle selection,
|
|
42
|
+
* BEFORE onSelectionChange is called, allowing you to capture
|
|
43
|
+
* the clicked item and its new state.
|
|
44
|
+
* @param itemId - ID of the clicked item
|
|
45
|
+
* @param isSelected - New selection state AFTER the toggle
|
|
46
|
+
*/
|
|
47
|
+
onSelectionToggle?: (itemId: string, isSelected: boolean) => void;
|
|
48
|
+
/** It's triggered when a whole list item is clicked. */
|
|
40
49
|
onClick?: (props: ListNodeProps) => void;
|
|
41
50
|
/** Function to get properties for the left-side icon (name and color). */
|
|
42
51
|
getLeftIconProps?: (props: ListNode) => Pick<IconProps, "name" | "color">;
|
|
@@ -58,6 +67,15 @@ export type EntityListProps = {
|
|
|
58
67
|
ariaAttributes?: EntityListAriaAttributes;
|
|
59
68
|
"data-e2e-test-id"?: string;
|
|
60
69
|
};
|
|
70
|
+
export type EntityListProps = BaseEntityListProps & ({
|
|
71
|
+
/** Enable virtualization for large lists. When true, only visible items are rendered. */
|
|
72
|
+
isVirtualized: true;
|
|
73
|
+
/** Maximum height for the virtualized container. Required when isVirtualized is true. */
|
|
74
|
+
maxHeight: number;
|
|
75
|
+
} | {
|
|
76
|
+
isVirtualized?: false;
|
|
77
|
+
maxHeight?: never;
|
|
78
|
+
});
|
|
61
79
|
export type EntityListItemWrapperProps = {
|
|
62
80
|
hideBorder: boolean;
|
|
63
81
|
size?: ListSize;
|
|
@@ -22,6 +22,15 @@ export type EntityTreeProps = {
|
|
|
22
22
|
* @param ids - Updated selected node ids
|
|
23
23
|
*/
|
|
24
24
|
onSelectionChange?: (ids: NodeID[]) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Callback function to handle individual node selection toggle.
|
|
27
|
+
* Fires synchronously when user clicks to toggle selection,
|
|
28
|
+
* BEFORE onSelectionChange is called, allowing you to capture
|
|
29
|
+
* the clicked node and its new state.
|
|
30
|
+
* @param nodeId - ID of the clicked node
|
|
31
|
+
* @param isSelected - New selection state AFTER the toggle
|
|
32
|
+
*/
|
|
33
|
+
onSelectionToggle?: (nodeId: NodeID, isSelected: boolean) => void;
|
|
25
34
|
/** Expanded node ids */
|
|
26
35
|
expandedIds?: NodeID[];
|
|
27
36
|
/** Callback function to handle node expand/collapse
|
|
@@ -50,5 +59,5 @@ export type EntityTreeProps = {
|
|
|
50
59
|
"data-e2e-test-id"?: string;
|
|
51
60
|
ariaAttributes?: EntityListAriaAttributes;
|
|
52
61
|
} & PartialEntityListItemProps;
|
|
53
|
-
export declare const BaseEntityTree: ({ ariaAttributes, data, selectedIds, onSelectionChange, onNodeClick, expandedIds, onToggle, activeId, chunkSize, filterFn, onTreeChange, hideBorder, size, showItemsCount, showMoreButtonLabel, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
62
|
+
export declare const BaseEntityTree: ({ ariaAttributes, data, selectedIds, onSelectionChange, onSelectionToggle, onNodeClick, expandedIds, onToggle, activeId, chunkSize, filterFn, onTreeChange, hideBorder, size, showItemsCount, showMoreButtonLabel, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
54
63
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityTree",{enumerable:!0,get:function(){return BaseEntityTree}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_Button=require("../Button/Button"),_Box=require("../Box/Box"),_styledcomponents=require("../EntityList/styled-components"),_EntityTreeItem=require("./EntityTreeItem"),_useKeyboard=require("../../shared/useKeyboard"),_Text=require("../Typography/Text/Text"),_tree=require("./tree"),flattenTree=(data,expandedIds,expadedAll)=>{let flattened=[];return data.forEach(node=>{flattened.push(node.id),(node.children.length>0&&expandedIds[node.id]||expadedAll)&&flattened.push(...flattenTree(node.children,expandedIds,expadedAll))}),flattened},getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},useTreeTruncation=({chunkSize,data,expandAll,nodeExpandedState})=>{let[maxNodesCount,setMaxNodesCount]=(0,_react.useState)(chunkSize),{result,hasMoreNodes}=(0,_react.useMemo)(()=>(0,_tree.trimDataByMaxSize)(data,nodeExpandedState,expandAll,maxNodesCount),[data,nodeExpandedState,expandAll,maxNodesCount]);return{handleIncreaseMaxNodeCount:(0,_react.useCallback)(()=>{setMaxNodesCount(prev=>prev+chunkSize)},[chunkSize]),result,hasMoreNodes}},Node=({isFirstNode,nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,onNodeClick,hideBorder,size,showItemsCount,renderRightContent,activeId,focusedNodeId,node,level,renderFn,isLastNodeOfList,ariaLabelExpand,ariaLabelCollapse})=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=(0,_tree.getLeafNodeIds)(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState,handleClick=readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),isFocused=focusedNodeId===node.id,{children,...nodeDataWithoutChildren}=node;return _react.default.createElement(_EntityTreeItem.EntityTreeItem,{key:node.id,hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),tabIndex:isFocused||null===focusedNodeId&&isFirstNode?0:-1,size:size,lSpaceStep:level,onKeyDown:()=>handleClick(),description:node.description,renderLabel:({textSize})=>_react.default.createElement(_react.default.Fragment,null,node.label,showItemsCount&&!lastLeaf&&_react.default.createElement(_Text.Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isActive:activeId===node.id,isExpanded:isExpanded,isDisabledExpand:expandAll,checkboxProps:!readOnly&&{size:"s",name:node.label,checked:nodeCheckboxState?.[node.id]==="checked",indeterminate:nodeCheckboxState?.[node.id]==="indeterminate",onChange:()=>handleSelectionChange(node.id)},onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},isClickable:readOnly,onClick:()=>{handleToggle(node.id),onNodeClick?.(nodeDataWithoutChildren)},renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse,"aria-label":node.label,"aria-level":level+1},hasChildren&&_react.default.createElement("ul",{role:"group"},renderFn({data:children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))},makeRenderTreeBranches=renderTreeArgs=>({data,level,renderFn,isParentsLastOfLvl})=>data.map((node,i)=>{let isFirstNode=0===level&&0===i,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl});return _react.default.createElement(Node,{key:node.id,level:level,node:node,isFirstNode:isFirstNode,renderFn:renderFn,isLastNodeOfList:isLastNodeOfList,...renderTreeArgs})}),BaseEntityTree=({ariaAttributes,data,selectedIds,onSelectionChange,onNodeClick,expandedIds=[],onToggle,activeId,chunkSize=10,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,showMoreButtonLabel,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>(0,_tree.getNodeChildrenMap)(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>(0,_tree.getTreeCheckboxState)(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),visibleActiveNodeId=(0,_tree.getVisibleActiveNodeId)(nodeChildrenMap,nodeExpandedState,activeId),handleExpand=targetId=>{onToggle&&!expandedIds.includes(targetId)&&onToggle(expandedIds.concat([targetId]))},handleCollapse=targetId=>{onToggle&&expandedIds.includes(targetId)&&onToggle(expandedIds.filter(id=>id!==targetId))},dataShown=filterFn?data.map(tree=>(0,_tree.filterTree)(tree,filterFn)).filter(Boolean):data;(0,_react.useEffect)(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>(0,_tree.mapTree)(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let expandAll=!!filterFn,{hasMoreNodes,handleIncreaseMaxNodeCount,result}=useTreeTruncation({chunkSize,data:dataShown,nodeExpandedState,expandAll}),listRef=_react.default.useRef(null),[focusedNodeId,setFocusedNodeId]=(0,_react.useState)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(0),changeFocusIndex=index=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll),newIndex=index+Math.max(flatTreeIds.indexOf(focusedNodeId),0);newIndex>=0&&newIndex<flatTreeIds.length&&(setSelectedIndex(newIndex),setFocusedNodeId(flatTreeIds[newIndex]))},firstNodeId=(0,_react.useMemo)(()=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll);return flatTreeIds.length>0?flatTreeIds[0]:null},[dataShown,nodeExpandedState,expandAll]);(0,_useKeyboard.useKeyboard)({ArrowDown:()=>{changeFocusIndex(1)},ArrowUp:()=>{changeFocusIndex(-1)},ArrowRight:()=>{expandAll||handleExpand(focusedNodeId||firstNodeId)},ArrowLeft:()=>{expandAll||handleCollapse(focusedNodeId||firstNodeId)}},listRef,!0),(0,_react.useEffect)(()=>{if(listRef&&listRef.current&&selectedIndex>=0){let buttons=listRef.current.querySelectorAll('div[data-id="list-item"]'),button=buttons[Math.abs(selectedIndex)%buttons.length];button&&button.focus({preventScroll:!0})}},[selectedIndex]),(0,_react.useEffect)(()=>{expandAll&&(setFocusedNodeId(null),setSelectedIndex(0))},[expandAll]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=(0,_tree.getLeafNodeIds)(nodeChildrenMap,targetId);updatedSelectedIds=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BaseEntityTree",{enumerable:!0,get:function(){return BaseEntityTree}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_Button=require("../Button/Button"),_Box=require("../Box/Box"),_styledcomponents=require("../EntityList/styled-components"),_EntityTreeItem=require("./EntityTreeItem"),_useKeyboard=require("../../shared/useKeyboard"),_Text=require("../Typography/Text/Text"),_tree=require("./tree"),flattenTree=(data,expandedIds,expadedAll)=>{let flattened=[];return data.forEach(node=>{flattened.push(node.id),(node.children.length>0&&expandedIds[node.id]||expadedAll)&&flattened.push(...flattenTree(node.children,expandedIds,expadedAll))}),flattened},getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},useTreeTruncation=({chunkSize,data,expandAll,nodeExpandedState})=>{let[maxNodesCount,setMaxNodesCount]=(0,_react.useState)(chunkSize),{result,hasMoreNodes}=(0,_react.useMemo)(()=>(0,_tree.trimDataByMaxSize)(data,nodeExpandedState,expandAll,maxNodesCount),[data,nodeExpandedState,expandAll,maxNodesCount]);return{handleIncreaseMaxNodeCount:(0,_react.useCallback)(()=>{setMaxNodesCount(prev=>prev+chunkSize)},[chunkSize]),result,hasMoreNodes}},Node=({isFirstNode,nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,onNodeClick,hideBorder,size,showItemsCount,renderRightContent,activeId,focusedNodeId,node,level,renderFn,isLastNodeOfList,ariaLabelExpand,ariaLabelCollapse})=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=(0,_tree.getLeafNodeIds)(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState,handleClick=readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),isFocused=focusedNodeId===node.id,{children,...nodeDataWithoutChildren}=node;return _react.default.createElement(_EntityTreeItem.EntityTreeItem,{key:node.id,hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),tabIndex:isFocused||null===focusedNodeId&&isFirstNode?0:-1,size:size,lSpaceStep:level,onKeyDown:()=>handleClick(),description:node.description,renderLabel:({textSize})=>_react.default.createElement(_react.default.Fragment,null,node.label,showItemsCount&&!lastLeaf&&_react.default.createElement(_Text.Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isActive:activeId===node.id,isExpanded:isExpanded,isDisabledExpand:expandAll,checkboxProps:!readOnly&&{size:"s",name:node.label,checked:nodeCheckboxState?.[node.id]==="checked",indeterminate:nodeCheckboxState?.[node.id]==="indeterminate",onChange:()=>handleSelectionChange(node.id)},onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},isClickable:readOnly,onClick:()=>{handleToggle(node.id),onNodeClick?.(nodeDataWithoutChildren)},renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse,"aria-label":node.label,"aria-level":level+1},hasChildren&&_react.default.createElement("ul",{role:"group"},renderFn({data:children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))},makeRenderTreeBranches=renderTreeArgs=>({data,level,renderFn,isParentsLastOfLvl})=>data.map((node,i)=>{let isFirstNode=0===level&&0===i,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl});return _react.default.createElement(Node,{key:node.id,level:level,node:node,isFirstNode:isFirstNode,renderFn:renderFn,isLastNodeOfList:isLastNodeOfList,...renderTreeArgs})}),BaseEntityTree=({ariaAttributes,data,selectedIds,onSelectionChange,onSelectionToggle,onNodeClick,expandedIds=[],onToggle,activeId,chunkSize=10,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,showMoreButtonLabel,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>(0,_tree.getNodeChildrenMap)(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>(0,_tree.getTreeCheckboxState)(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),visibleActiveNodeId=(0,_tree.getVisibleActiveNodeId)(nodeChildrenMap,nodeExpandedState,activeId),handleExpand=targetId=>{onToggle&&!expandedIds.includes(targetId)&&onToggle(expandedIds.concat([targetId]))},handleCollapse=targetId=>{onToggle&&expandedIds.includes(targetId)&&onToggle(expandedIds.filter(id=>id!==targetId))},dataShown=filterFn?data.map(tree=>(0,_tree.filterTree)(tree,filterFn)).filter(Boolean):data;(0,_react.useEffect)(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>(0,_tree.mapTree)(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let expandAll=!!filterFn,{hasMoreNodes,handleIncreaseMaxNodeCount,result}=useTreeTruncation({chunkSize,data:dataShown,nodeExpandedState,expandAll}),listRef=_react.default.useRef(null),[focusedNodeId,setFocusedNodeId]=(0,_react.useState)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(0),changeFocusIndex=index=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll),newIndex=index+Math.max(flatTreeIds.indexOf(focusedNodeId),0);newIndex>=0&&newIndex<flatTreeIds.length&&(setSelectedIndex(newIndex),setFocusedNodeId(flatTreeIds[newIndex]))},firstNodeId=(0,_react.useMemo)(()=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll);return flatTreeIds.length>0?flatTreeIds[0]:null},[dataShown,nodeExpandedState,expandAll]);(0,_useKeyboard.useKeyboard)({ArrowDown:()=>{changeFocusIndex(1)},ArrowUp:()=>{changeFocusIndex(-1)},ArrowRight:()=>{expandAll||handleExpand(focusedNodeId||firstNodeId)},ArrowLeft:()=>{expandAll||handleCollapse(focusedNodeId||firstNodeId)}},listRef,!0),(0,_react.useEffect)(()=>{if(listRef&&listRef.current&&selectedIndex>=0){let buttons=listRef.current.querySelectorAll('div[data-id="list-item"]'),button=buttons[Math.abs(selectedIndex)%buttons.length];button&&button.focus({preventScroll:!0})}},[selectedIndex]),(0,_react.useEffect)(()=>{expandAll&&(setFocusedNodeId(null),setSelectedIndex(0))},[expandAll]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let isSelected,updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)isSelected=!selectedIds.includes(targetId),updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=(0,_tree.getLeafNodeIds)(nodeChildrenMap,targetId),hasUncheckedChildren=affectedLeafNodeIds.some(leafId=>!selectedIds.includes(leafId));updatedSelectedIds=hasUncheckedChildren?selectedIds.concat(affectedLeafNodeIds.filter(id=>!selectedIds.includes(id))):selectedIds.filter(id=>!affectedLeafNodeIds.includes(id)),isSelected=hasUncheckedChildren}onSelectionToggle?.(targetId,isSelected),onSelectionChange(updatedSelectedIds)}},handleToggle:targetId=>{expandedIds.includes(targetId)?handleCollapse(targetId):handleExpand(targetId)},onNodeClick:node=>{setFocusedNodeId(node.id),onNodeClick?.(node)},expandAll,hideBorder,size,showItemsCount,renderRightContent,activeId:visibleActiveNodeId,focusedNodeId,ariaLabelExpand:ariaAttributes?.ariaLabelExpand,ariaLabelCollapse:ariaAttributes?.ariaLabelCollapse});return _react.default.createElement("div",null,_react.default.createElement(_styledcomponents.StyledList,{ref:listRef,role:"tree","aria-multiselectable":!!nodeCheckboxState||void 0,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"EntityTree",size:size},renderTreeBranches({data:result,level:0,renderFn:renderTreeBranches})),hasMoreNodes&&_react.default.createElement(_styledcomponents.StyledShowMore,null,_react.default.createElement(_Box.Box,{alignText:"center",space:"xs"},_react.default.createElement(_Button.Button,{fullWidth:!0,size:"s",variant:"tertiary",onClick:handleIncreaseMaxNodeCount},showMoreButtonLabel))))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get OptionsList(){return OptionsList},get getOptionId(){return getOptionId},get getOptionsListId(){return getOptionsListId}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_useKeyboard=require("../../../shared/useKeyboard"),_usePopupMenu=require("../../../shared/popupMenu/usePopupMenu"),_VirtualScrollList=require("../../VirtualScrollList/VirtualScrollList"),_Text=require("../../Typography/Text/Text"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_Icon=require("../../Icon/Icon"),_StyledSelectComponents=require("./StyledSelectComponents"),_constants=require("./constants"),_Stack=require("../../Stack/Stack"),_Checkbox=require("../Checkbox/Checkbox"),_Portal=require("../../Portal/Portal"),_ScreenReaderText=require("../../Utilities/ScreenReaderText/ScreenReaderText");function getOptionId(selectName,optionValue){return`${selectName}Option${optionValue}`}function getOptionsListId(selectName){return`${selectName}OptionsList`}function scrollToItem(list,itemIndex){list[itemIndex]?.scrollIntoView?.({behavior:"smooth",block:"nearest"})}const CustomOption=(0,_styled.default)(_StyledSelectComponents.StyledOption,{target:"e159rw3y0",label:"CustomOption"})(({theme})=>({paddingTop:0,paddingBottom:0,"& > div":{paddingTop:theme.variables.size.spacing.xs,paddingBottom:theme.variables.size.spacing.xs},"& > div *":{marginTop:0}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTdHlsZWRMaXN0Q29udGFpbmVyXG4gICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIHJlZj17bGlzdENvbnRhaW5lclJlZn1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb25zLm1hcCgoX29wdGlvbiwgaW5kZXgpID0+IHJlbmRlckl0ZW0oaW5kZXgpKX1cbiAgICAgICAgPC9TdHlsZWRMaXN0Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZERyb3Bkb3duPlxuICApO1xuXG4gIGlmICghaXNPcGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXN0UG9ydGFsID0gb3B0aW9ucy5sZW5ndGggPyAoXG4gICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e2xpc3RFbG19PC9Qb3J0YWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgeyFvcHRpb25zLmxlbmd0aCA/IGVtcHR5U3RhdGVNZXNzYWdlIDogXCJcIn1cbiAgICAgIDwvU2NyZWVuUmVhZGVyVGV4dD5cbiAgICAgIHtsaXN0UG9ydGFsfVxuICAgIDwvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDcUIifQ== */"),StyledListContainer=(0,_styled.default)("div",{target:"e159rw3y1",label:"StyledListContainer"})(({theme,maxHeight})=>({maxHeight,boxSizing:"border-box",overflow:"auto",padding:`${theme.variables.size.spacing.xxs} 0`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTdHlsZWRMaXN0Q29udGFpbmVyXG4gICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIHJlZj17bGlzdENvbnRhaW5lclJlZn1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb25zLm1hcCgoX29wdGlvbiwgaW5kZXgpID0+IHJlbmRlckl0ZW0oaW5kZXgpKX1cbiAgICAgICAgPC9TdHlsZWRMaXN0Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZERyb3Bkb3duPlxuICApO1xuXG4gIGlmICghaXNPcGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXN0UG9ydGFsID0gb3B0aW9ucy5sZW5ndGggPyAoXG4gICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e2xpc3RFbG19PC9Qb3J0YWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgeyFvcHRpb25zLmxlbmd0aCA/IGVtcHR5U3RhdGVNZXNzYWdlIDogXCJcIn1cbiAgICAgIDwvU2NyZWVuUmVhZGVyVGV4dD5cbiAgICAgIHtsaXN0UG9ydGFsfVxuICAgIDwvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBENEIifQ== */");function OptionsList({isOpen,isMultiSelect=!1,value,disabled,options,portalContainer,triggerRef,triggerWrapperRef,maxHeight,emptyStateMessage="No options available",selectedIndex,optionsListWidth,isVirtualized=!0,name,onCloseDropdown,onSelectedIndexChange,forceChangeFakeSelect}){let optionsListRef=(0,_react.useRef)(null),listContainerRef=(0,_react.useRef)(null),listItemsRef=(0,_react.useRef)(null),refForPositioning=triggerWrapperRef||triggerRef,activeItemIndex=(0,_react.useMemo)(()=>options.findIndex(option=>isMultiSelect?value.includes(option.value):option.value===value),[options,isMultiSelect,value]),{menuStyle:optionsListStyle,calculateStyle}=(0,_usePopupMenu.usePopupMenu)({triggerRef:refForPositioning,menuRef:optionsListRef,isOpen});(0,_react.useEffect)(()=>{if(isOpen&&listContainerRef.current&&!isVirtualized&&optionsListStyle.top){let listElm=listContainerRef.current;listElm.clientHeight<listElm.scrollHeight&&(listItemsRef.current=listElm.querySelectorAll("[data-list-item]"),scrollToItem(listItemsRef.current,activeItemIndex))}else listItemsRef.current=null},[isOpen,isVirtualized,listContainerRef,options,maxHeight,optionsListStyle,activeItemIndex]),(0,_react.useEffect)(()=>{listItemsRef.current&&scrollToItem(listItemsRef.current,selectedIndex)},[listItemsRef,selectedIndex]),(0,_useKeyboard.useKeyboard)({Escape:()=>onCloseDropdown(!0),Enter:()=>{let preselectedOption=options[selectedIndex];if(!preselectedOption?.disabled){if(preselectedOption){forceChangeFakeSelect(preselectedOption),isMultiSelect||onCloseDropdown(!0);return}isMultiSelect||onCloseDropdown()}},ArrowUp:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex>0&&(newIndex-=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)},ArrowDown:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex<options.length-1&&(newIndex+=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)}},triggerRef,isOpen&&!disabled);let renderItem=index=>{let option=options[index],id=getOptionId(name,option.value);if(isMultiSelect){let isActive=value.includes(option.value);return _react.default.createElement(CustomOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||forceChangeFakeSelect(option)},onClick:evt=>evt.stopPropagation()},_react.default.createElement(_Checkbox.CheckboxRaw,{name:"",disabled:option.disabled,checked:isActive,size:"s",label:option.label,onChange:()=>null,labelHint:option?.description}))}let isActive=value===option.value,optionText=_react.default.createElement(_Stack.Stack,{space:"zero"},_react.default.createElement(_Text.Text,{color:"primary",size:"m"},option.label),option.description&&_react.default.createElement(_Text.Text,{color:"tertiary",size:"s"},option.description));return _react.default.createElement(_StyledSelectComponents.StyledOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||(forceChangeFakeSelect(option),onCloseDropdown(!0))}},isActive?_react.default.createElement(_Inline.Inline,{noWrap:!0,alignItems:"spaceBetween"},optionText,_react.default.createElement(_Box.Box,{space:"zero",tSpace:"xxxs"},_react.default.createElement(_Icon.Icon,{name:"check",size:"s",color:"accent"}))):optionText)},listStyle={...optionsListStyle,width:optionsListWidth||refForPositioning.current?.getBoundingClientRect().width},listElm=_react.default.createElement(_StyledSelectComponents.StyledDropdown,{style:listStyle,ref:optionsListRef,onMouseDown:e=>e.preventDefault(),"data-e2e-test-id":"optionsList"},isVirtualized?_react.default.createElement(_VirtualScrollList.VirtualScrollList,{id:getOptionsListId(name),maxHeight:maxHeight,itemHeight:36,itemAmount:options.length,emptyState:()=>null,containerStyle:_constants.dropdownContainerStyle,itemInView:selectedIndex,itemTemplate:renderItem,onContentHeightChange:calculateStyle}):_react.default.createElement(StyledListContainer,{maxHeight:maxHeight,role:"listbox",id:getOptionsListId(name),ref:listContainerRef},options.map((_option,index)=>renderItem(index))));if(!isOpen)return null;let listPortal=options.length?_react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},listElm):null;return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_ScreenReaderText.ScreenReaderText,{role:"status","aria-live":"polite"},options.length?"":emptyStateMessage),listPortal)}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get OptionsList(){return OptionsList},get getOptionId(){return getOptionId},get getOptionsListId(){return getOptionsListId}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_useKeyboard=require("../../../shared/useKeyboard"),_usePopupMenu=require("../../../shared/popupMenu/usePopupMenu"),_VirtualScrollList=require("../../VirtualScrollList/VirtualScrollList"),_Text=require("../../Typography/Text/Text"),_Box=require("../../Box/Box"),_Inline=require("../../Inline/Inline"),_Icon=require("../../Icon/Icon"),_StyledSelectComponents=require("./StyledSelectComponents"),_constants=require("./constants"),_Stack=require("../../Stack/Stack"),_Checkbox=require("../Checkbox/Checkbox"),_Portal=require("../../Portal/Portal"),_ScreenReaderText=require("../../Utilities/ScreenReaderText/ScreenReaderText");function getOptionId(selectName,optionValue){return`${selectName}Option${optionValue}`}function getOptionsListId(selectName){return`${selectName}OptionsList`}function scrollToItem(list,itemIndex){list[itemIndex]?.scrollIntoView?.({behavior:"smooth",block:"nearest"})}const CustomOption=(0,_styled.default)(_StyledSelectComponents.StyledOption,{target:"e11kl4dy0",label:"CustomOption"})(({theme})=>({paddingTop:0,paddingBottom:0,"& > div":{paddingTop:theme.variables.size.spacing.xs,paddingBottom:theme.variables.size.spacing.xs},"& > div *":{marginTop:0}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkTGlzdENvbnRhaW5lclxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBpZD17Z2V0T3B0aW9uc0xpc3RJZChuYW1lKX1cbiAgICAgICAgICByZWY9e2xpc3RDb250YWluZXJSZWZ9XG4gICAgICAgID5cbiAgICAgICAgICB7b3B0aW9ucy5tYXAoKF9vcHRpb24sIGluZGV4KSA9PiByZW5kZXJJdGVtKGluZGV4KSl9XG4gICAgICAgIDwvU3R5bGVkTGlzdENvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgPC9TdHlsZWREcm9wZG93bj5cbiAgKTtcblxuICBpZiAoIWlzT3Blbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdFBvcnRhbCA9IG9wdGlvbnMubGVuZ3RoID8gKFxuICAgIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9PntsaXN0RWxtfTwvUG9ydGFsPlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIHshb3B0aW9ucy5sZW5ndGggPyBlbXB0eVN0YXRlTWVzc2FnZSA6IFwiXCJ9XG4gICAgICA8L1NjcmVlblJlYWRlclRleHQ+XG4gICAgICB7bGlzdFBvcnRhbH1cbiAgICA8Lz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2Q3FCIn0= */"),StyledListContainer=(0,_styled.default)("div",{target:"e11kl4dy1",label:"StyledListContainer"})(({theme,maxHeight})=>({maxHeight,boxSizing:"border-box",overflow:"auto",padding:`${theme.variables.size.spacing.xxs} 0`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkTGlzdENvbnRhaW5lclxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBpZD17Z2V0T3B0aW9uc0xpc3RJZChuYW1lKX1cbiAgICAgICAgICByZWY9e2xpc3RDb250YWluZXJSZWZ9XG4gICAgICAgID5cbiAgICAgICAgICB7b3B0aW9ucy5tYXAoKF9vcHRpb24sIGluZGV4KSA9PiByZW5kZXJJdGVtKGluZGV4KSl9XG4gICAgICAgIDwvU3R5bGVkTGlzdENvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgPC9TdHlsZWREcm9wZG93bj5cbiAgKTtcblxuICBpZiAoIWlzT3Blbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdFBvcnRhbCA9IG9wdGlvbnMubGVuZ3RoID8gKFxuICAgIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9PntsaXN0RWxtfTwvUG9ydGFsPlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIHshb3B0aW9ucy5sZW5ndGggPyBlbXB0eVN0YXRlTWVzc2FnZSA6IFwiXCJ9XG4gICAgICA8L1NjcmVlblJlYWRlclRleHQ+XG4gICAgICB7bGlzdFBvcnRhbH1cbiAgICA8Lz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRDRCIn0= */");function OptionsList({isOpen,isMultiSelect=!1,value,disabled,options,portalContainer,triggerRef,triggerWrapperRef,maxHeight,emptyStateMessage="No options available",selectedIndex,optionsListWidth,isVirtualized=!0,name,onCloseDropdown,onSelectedIndexChange,forceChangeFakeSelect}){let optionsListRef=(0,_react.useRef)(null),listContainerRef=(0,_react.useRef)(null),listItemsRef=(0,_react.useRef)(null),refForPositioning=triggerWrapperRef||triggerRef,activeItemIndex=(0,_react.useMemo)(()=>options.findIndex(option=>isMultiSelect?value.includes(option.value):option.value===value),[options,isMultiSelect,value]),{menuStyle:optionsListStyle,calculateStyle}=(0,_usePopupMenu.usePopupMenu)({triggerRef:refForPositioning,menuRef:optionsListRef,isOpen});(0,_react.useEffect)(()=>{if(isOpen&&listContainerRef.current&&!isVirtualized&&optionsListStyle.top){let listElm=listContainerRef.current;listElm.clientHeight<listElm.scrollHeight&&(listItemsRef.current=listElm.querySelectorAll("[data-list-item]"),scrollToItem(listItemsRef.current,activeItemIndex))}else listItemsRef.current=null},[isOpen,isVirtualized,listContainerRef,options,maxHeight,optionsListStyle,activeItemIndex]),(0,_react.useEffect)(()=>{listItemsRef.current&&scrollToItem(listItemsRef.current,selectedIndex)},[listItemsRef,selectedIndex]),(0,_useKeyboard.useKeyboard)({Escape:()=>onCloseDropdown(!0),Enter:()=>{let preselectedOption=options[selectedIndex];if(!preselectedOption?.disabled){if(preselectedOption){forceChangeFakeSelect(preselectedOption),isMultiSelect||onCloseDropdown(!0);return}isMultiSelect||onCloseDropdown()}},ArrowUp:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex>0&&(newIndex-=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)},ArrowDown:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex<options.length-1&&(newIndex+=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)}},triggerRef,isOpen&&!disabled);let renderItem=index=>{let option=options[index],id=getOptionId(name,option.value);if(isMultiSelect){let isActive=value.includes(option.value);return _react.default.createElement(CustomOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||forceChangeFakeSelect(option)},onClick:evt=>evt.stopPropagation()},_react.default.createElement(_Checkbox.CheckboxRaw,{name:"",disabled:option.disabled,checked:isActive,size:"s",label:option.label,onChange:()=>null,labelHint:option?.description}))}let isActive=value===option.value,optionText=_react.default.createElement(_Stack.Stack,{space:"zero"},_react.default.createElement(_Text.Text,{color:"primary",size:"m"},option.label),option.description&&_react.default.createElement(_Text.Text,{color:"tertiary",size:"s"},option.description));return _react.default.createElement(_StyledSelectComponents.StyledOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||(forceChangeFakeSelect(option),onCloseDropdown(!0))}},isActive?_react.default.createElement(_Inline.Inline,{noWrap:!0,alignItems:"spaceBetween"},optionText,_react.default.createElement(_Box.Box,{space:"zero",tSpace:"xxxs"},_react.default.createElement(_Icon.Icon,{name:"check",size:"s",color:"accent"}))):optionText)},listStyle={...optionsListStyle,width:optionsListWidth||refForPositioning.current?.getBoundingClientRect().width},listElm=_react.default.createElement(_StyledSelectComponents.StyledDropdown,{style:listStyle,ref:optionsListRef,onMouseDown:e=>e.preventDefault(),"data-e2e-test-id":"optionsList"},isVirtualized?_react.default.createElement(_VirtualScrollList.VirtualScrollList,{id:getOptionsListId(name),maxHeight:maxHeight,itemHeight:36,itemAmount:options.length,emptyState:()=>null,containerStyle:_constants.dropdownContainerStyle,itemInView:selectedIndex,itemTemplate:renderItem,onContentHeightChange:calculateStyle,role:"listbox"}):_react.default.createElement(StyledListContainer,{maxHeight:maxHeight,role:"listbox",id:getOptionsListId(name),ref:listContainerRef},options.map((_option,index)=>renderItem(index))));if(!isOpen)return null;let listPortal=options.length?_react.default.createElement(_Portal.Portal,{portalContainer:portalContainer},listElm):null;return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_ScreenReaderText.ScreenReaderText,{role:"status","aria-live":"polite"},options.length?"":emptyStateMessage),listPortal)}
|
|
@@ -3,12 +3,16 @@ export type VirtualScrollListProps = {
|
|
|
3
3
|
"data-e2e-test-id"?: string;
|
|
4
4
|
id: string;
|
|
5
5
|
maxHeight: number;
|
|
6
|
+
/** initial estimate for virtual scrolling calculations, helps estimate how many
|
|
7
|
+
* items fit in the viewport before real measurements.
|
|
8
|
+
*/
|
|
6
9
|
itemHeight: number;
|
|
7
10
|
itemAmount: number;
|
|
8
|
-
emptyState
|
|
11
|
+
emptyState?: () => React.ReactNode;
|
|
9
12
|
itemInView: number;
|
|
10
13
|
itemTemplate: (index: number) => React.ReactNode;
|
|
11
14
|
containerStyle?: React.CSSProperties;
|
|
12
15
|
onContentHeightChange?: () => void;
|
|
16
|
+
role?: React.AriaRole;
|
|
13
17
|
};
|
|
14
|
-
export declare function VirtualScrollList({ id, maxHeight, itemHeight, itemAmount, emptyState, itemInView, itemTemplate, containerStyle, "data-e2e-test-id": dataE2eTestId, onContentHeightChange, }: VirtualScrollListProps): React.ReactElement;
|
|
18
|
+
export declare function VirtualScrollList({ id, maxHeight, itemHeight, itemAmount, emptyState, itemInView, itemTemplate, containerStyle, "data-e2e-test-id": dataE2eTestId, onContentHeightChange, role, }: VirtualScrollListProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollList",{enumerable:!0,get:function(){return VirtualScrollList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_interop_require_wildcard=require("@swc/helpers/_/_interop_require_wildcard"),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react=/*#__PURE__*/_interop_require_wildcard._(require("react")),_VirtualScrollListReducer=require("./VirtualScrollListReducer"),StyledContainer=(0,_styled.default)("div",{target:"e1hq8rdx0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBvdmVyc2NhbiA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gVmlydHVhbFNjcm9sbExpc3Qoe1xuICBpZCxcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBjb250YWluZXJTdHlsZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIG9uQ29udGVudEhlaWdodENoYW5nZSxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYWRqdXN0ZWRGb3JSZWZsb3cgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBzY3JvbGxlZEl0ZW1Db3VudCxcbiAgICAgIGFtb3VudE9mSXRlbXNJblZpZXcsXG4gICAgICBzY3JvbGxlZEluUHgsXG4gICAgICBtYXhDb250ZW50SGVpZ2h0ID0gbWF4SGVpZ2h0LFxuICAgICAgcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbixcbiAgICB9LFxuICAgIGRpc3BhdGNoLFxuICBdID0gdXNlUmVkdWNlcihWaXJ0dWFsU2Nyb2xsUmVkdWNlciwge30pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcInJlc2V0XCIsIGl0ZW1IZWlnaHQsIG1heEhlaWdodCwgb3ZlcnNjYW4gfSk7XG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gIH0sIFtpdGVtSGVpZ2h0LCBpdGVtQW1vdW50LCBtYXhIZWlnaHRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwicmVjb21tZW5kU2Nyb2xsUG9zaXRpb25cIixcbiAgICAgIHNjcm9sbFRvcDogc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIGl0ZW1Ub0JlSW5WaWV3OiBpdGVtSW5WaWV3LFxuICAgIH0pO1xuICB9LCBbaXRlbUluVmlld10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24gPT09IG51bGwpIHJldHVybjtcblxuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uO1xuICB9LCBbcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbl0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2aWV3cG9ydFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uQ29udGVudEhlaWdodENoYW5nZT8uKCk7XG4gIH0sIFttYXhDb250ZW50SGVpZ2h0LCBvbkNvbnRlbnRIZWlnaHRDaGFuZ2VdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICAvKiBTb21ldGltZXMsIG9wdGlvbiB0ZXh0IGNhbiByZWZsb3cgZHVlIHRoZSBhcHBlYXJhbmNlIG9mIHZlcnRpY2FsIHNjcm9sbGJhciB3aGljaCBjYW4gY2F1c2UgdGV4dCB0byB3cmFwIHRvIG11bHRpcGxlIGxpbmVzIGNhdXNpbmcgdmlld3BvcnRSZWYgaGVpZ2h0IHRvIGNoYW5nZS4gSWYgY29udGFpbmVyIGhhcyBzY3JvbGwgdGhlbiB3ZSBkaXNwYXRjaCBgdXBkYXRlVmlld3BvcnRgIG9uZSBtb3JlIHRpbWUgdG8gZ2V0IHRoZSBjb3JyZWN0IGhlaWdodCwgd2l0aCBhIHNldFRpbWVvdXQgdG8gYWxsb3cgdGltZSBmb3IgcmVmbG93LlxuICAgKi9cbiAgaWYgKFxuICAgIG1heENvbnRlbnRIZWlnaHQgPiBtYXhIZWlnaHQgJiZcbiAgICAhYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCAmJlxuICAgIHZpZXdwb3J0UmVmLmN1cnJlbnRcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgICAgdmlld3BvcnROb2RlOiB2aWV3cG9ydFJlZi5jdXJyZW50LFxuICAgICAgICBpdGVtQW1vdW50LFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbWF4SGVpZ2h0LFxuICAgICAgICAuLi5jb250YWluZXJTdHlsZSxcbiAgICAgIH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD1cIlZpcnR1YWxTY3JvbGxMaXN0XCJcbiAgICAgIG9uU2Nyb2xsPXsoZTogUmVhY3QuVUlFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc2Nyb2xsVG9wOiBlLmN1cnJlbnRUYXJnZXQuc2Nyb2xsVG9wLFxuICAgICAgICB9KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAge2l0ZW1BbW91bnQgPT09IDAgPyAoXG4gICAgICAgIGVtcHR5U3RhdGUoKVxuICAgICAgKSA6IChcbiAgICAgICAgPFN0eWxlZFNjcm9sbGFibGVDb250ZW50IG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17dmlld3BvcnRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7c2Nyb2xsZWRJblB4fXB4YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyEhaXRlbUNvdW50VG9CZVJlbmRlcmVkICYmXG4gICAgICAgICAgICAgIG5ldyBBcnJheShpdGVtQ291bnRUb0JlUmVuZGVyZWQpXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gaXRlbVRlbXBsYXRlKHNjcm9sbGVkSXRlbUNvdW50ICsgaW5kZXgpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRTY3JvbGxhYmxlQ29udGVudD5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS3dCIn0= */"),StyledScrollableContent=(0,_styled.default)("div",{target:"e1hq8rdx1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBvdmVyc2NhbiA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gVmlydHVhbFNjcm9sbExpc3Qoe1xuICBpZCxcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBjb250YWluZXJTdHlsZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIG9uQ29udGVudEhlaWdodENoYW5nZSxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYWRqdXN0ZWRGb3JSZWZsb3cgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBzY3JvbGxlZEl0ZW1Db3VudCxcbiAgICAgIGFtb3VudE9mSXRlbXNJblZpZXcsXG4gICAgICBzY3JvbGxlZEluUHgsXG4gICAgICBtYXhDb250ZW50SGVpZ2h0ID0gbWF4SGVpZ2h0LFxuICAgICAgcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbixcbiAgICB9LFxuICAgIGRpc3BhdGNoLFxuICBdID0gdXNlUmVkdWNlcihWaXJ0dWFsU2Nyb2xsUmVkdWNlciwge30pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcInJlc2V0XCIsIGl0ZW1IZWlnaHQsIG1heEhlaWdodCwgb3ZlcnNjYW4gfSk7XG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gIH0sIFtpdGVtSGVpZ2h0LCBpdGVtQW1vdW50LCBtYXhIZWlnaHRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwicmVjb21tZW5kU2Nyb2xsUG9zaXRpb25cIixcbiAgICAgIHNjcm9sbFRvcDogc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIGl0ZW1Ub0JlSW5WaWV3OiBpdGVtSW5WaWV3LFxuICAgIH0pO1xuICB9LCBbaXRlbUluVmlld10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24gPT09IG51bGwpIHJldHVybjtcblxuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uO1xuICB9LCBbcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbl0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2aWV3cG9ydFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uQ29udGVudEhlaWdodENoYW5nZT8uKCk7XG4gIH0sIFttYXhDb250ZW50SGVpZ2h0LCBvbkNvbnRlbnRIZWlnaHRDaGFuZ2VdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICAvKiBTb21ldGltZXMsIG9wdGlvbiB0ZXh0IGNhbiByZWZsb3cgZHVlIHRoZSBhcHBlYXJhbmNlIG9mIHZlcnRpY2FsIHNjcm9sbGJhciB3aGljaCBjYW4gY2F1c2UgdGV4dCB0byB3cmFwIHRvIG11bHRpcGxlIGxpbmVzIGNhdXNpbmcgdmlld3BvcnRSZWYgaGVpZ2h0IHRvIGNoYW5nZS4gSWYgY29udGFpbmVyIGhhcyBzY3JvbGwgdGhlbiB3ZSBkaXNwYXRjaCBgdXBkYXRlVmlld3BvcnRgIG9uZSBtb3JlIHRpbWUgdG8gZ2V0IHRoZSBjb3JyZWN0IGhlaWdodCwgd2l0aCBhIHNldFRpbWVvdXQgdG8gYWxsb3cgdGltZSBmb3IgcmVmbG93LlxuICAgKi9cbiAgaWYgKFxuICAgIG1heENvbnRlbnRIZWlnaHQgPiBtYXhIZWlnaHQgJiZcbiAgICAhYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCAmJlxuICAgIHZpZXdwb3J0UmVmLmN1cnJlbnRcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgICAgdmlld3BvcnROb2RlOiB2aWV3cG9ydFJlZi5jdXJyZW50LFxuICAgICAgICBpdGVtQW1vdW50LFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbWF4SGVpZ2h0LFxuICAgICAgICAuLi5jb250YWluZXJTdHlsZSxcbiAgICAgIH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD1cIlZpcnR1YWxTY3JvbGxMaXN0XCJcbiAgICAgIG9uU2Nyb2xsPXsoZTogUmVhY3QuVUlFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc2Nyb2xsVG9wOiBlLmN1cnJlbnRUYXJnZXQuc2Nyb2xsVG9wLFxuICAgICAgICB9KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAge2l0ZW1BbW91bnQgPT09IDAgPyAoXG4gICAgICAgIGVtcHR5U3RhdGUoKVxuICAgICAgKSA6IChcbiAgICAgICAgPFN0eWxlZFNjcm9sbGFibGVDb250ZW50IG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17dmlld3BvcnRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7c2Nyb2xsZWRJblB4fXB4YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyEhaXRlbUNvdW50VG9CZVJlbmRlcmVkICYmXG4gICAgICAgICAgICAgIG5ldyBBcnJheShpdGVtQ291bnRUb0JlUmVuZGVyZWQpXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gaXRlbVRlbXBsYXRlKHNjcm9sbGVkSXRlbUNvdW50ICsgaW5kZXgpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRTY3JvbGxhYmxlQ29udGVudD5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY2dDIn0= */");function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange}){let scrollableContainerRef=(0,_react.useRef)(null),viewportRef=(0,_react.useRef)(null),adjustedForReflow=(0,_react.useRef)(!1),[{scrolledItemCount,amountOfItemsInView,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=(0,_react.useReducer)(_VirtualScrollListReducer.VirtualScrollReducer,{});(0,_react.useLayoutEffect)(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10}),scrollableContainerRef.current.scrollTop=0},[itemHeight,itemAmount,maxHeight]),(0,_react.useEffect)(()=>{dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainerRef.current.scrollTop,itemToBeInView:itemInView})},[itemInView]),(0,_react.useEffect)(()=>{null!==recommendedScrollPosition&&(scrollableContainerRef.current.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),(0,_react.useLayoutEffect)(()=>{viewportRef.current&&dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})},[itemAmount,scrolledItemCount]),(0,_react.useEffect)(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})}),adjustedForReflow.current=!0),_react.default.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():_react.default.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},_react.default.createElement("div",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:"listbox",id:id},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollList",{enumerable:!0,get:function(){return VirtualScrollList}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_interop_require_wildcard=require("@swc/helpers/_/_interop_require_wildcard"),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_react=/*#__PURE__*/_interop_require_wildcard._(require("react")),_VirtualScrollListReducer=require("./VirtualScrollListReducer"),StyledContainer=(0,_styled.default)("div",{target:"e1leajmg0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIC8qKiBpbml0aWFsIGVzdGltYXRlIGZvciB2aXJ0dWFsIHNjcm9sbGluZyBjYWxjdWxhdGlvbnMsIGhlbHBzIGVzdGltYXRlIGhvdyBtYW55XG4gICAqIGl0ZW1zIGZpdCBpbiB0aGUgdmlld3BvcnQgYmVmb3JlIHJlYWwgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXRlbUhlaWdodDogbnVtYmVyO1xuICBpdGVtQW1vdW50OiBudW1iZXI7XG4gIGVtcHR5U3RhdGU/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbn07XG5cbmNvbnN0IG92ZXJzY2FuID0gMTA7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXJ0dWFsU2Nyb2xsTGlzdCh7XG4gIGlkLFxuICBtYXhIZWlnaHQsXG4gIGl0ZW1IZWlnaHQsXG4gIGl0ZW1BbW91bnQsXG4gIGVtcHR5U3RhdGUgPSAoKSA9PiBudWxsLFxuICBpdGVtSW5WaWV3LFxuICBpdGVtVGVtcGxhdGUsXG4gIGNvbnRhaW5lclN0eWxlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbiAgb25Db250ZW50SGVpZ2h0Q2hhbmdlLFxuICByb2xlLFxufTogVmlydHVhbFNjcm9sbExpc3RQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGFibGVDb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHZpZXdwb3J0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBhZGp1c3RlZEZvclJlZmxvdyA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHNjcm9sbGVkSXRlbUNvdW50LFxuICAgICAgYW1vdW50T2ZJdGVtc0luVmlldyxcbiAgICAgIHNjcm9sbGVkSW5QeCxcbiAgICAgIG1heENvbnRlbnRIZWlnaHQgPSBtYXhIZWlnaHQsXG4gICAgICByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uLFxuICAgIH0sXG4gICAgZGlzcGF0Y2gsXG4gIF0gPSB1c2VSZWR1Y2VyKFZpcnR1YWxTY3JvbGxSZWR1Y2VyLCB7fSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwicmVzZXRcIiwgaXRlbUhlaWdodCwgbWF4SGVpZ2h0LCBvdmVyc2NhbiB9KTtcbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gMDtcbiAgfSwgW2l0ZW1IZWlnaHQsIGl0ZW1BbW91bnQsIG1heEhlaWdodF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJyZWNvbW1lbmRTY3JvbGxQb3NpdGlvblwiLFxuICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wLFxuICAgICAgaXRlbVRvQmVJblZpZXc6IGl0ZW1JblZpZXcsXG4gICAgfSk7XG4gIH0sIFtpdGVtSW5WaWV3XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbiA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb247XG4gIH0sIFtyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgIHZpZXdwb3J0Tm9kZTogdmlld3BvcnRSZWYuY3VycmVudCxcbiAgICAgIGl0ZW1BbW91bnQsXG4gICAgfSk7XG4gIH0sIFtpdGVtQW1vdW50LCBzY3JvbGxlZEl0ZW1Db3VudF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPy4oKTtcbiAgfSwgW21heENvbnRlbnRIZWlnaHQsIG9uQ29udGVudEhlaWdodENoYW5nZV0pO1xuXG4gIGNvbnN0IGl0ZW1Db3VudFRvQmVSZW5kZXJlZCA9IE1hdGgubWluKFxuICAgIE1hdGgubWF4KDAsIGl0ZW1BbW91bnQgLSBzY3JvbGxlZEl0ZW1Db3VudCksXG4gICAgYW1vdW50T2ZJdGVtc0luVmlld1xuICApO1xuXG4gIC8qIFNvbWV0aW1lcywgb3B0aW9uIHRleHQgY2FuIHJlZmxvdyBkdWUgdGhlIGFwcGVhcmFuY2Ugb2YgdmVydGljYWwgc2Nyb2xsYmFyIHdoaWNoIGNhbiBjYXVzZSB0ZXh0IHRvIHdyYXAgdG8gbXVsdGlwbGUgbGluZXMgY2F1c2luZyB2aWV3cG9ydFJlZiBoZWlnaHQgdG8gY2hhbmdlLiBJZiBjb250YWluZXIgaGFzIHNjcm9sbCB0aGVuIHdlIGRpc3BhdGNoIGB1cGRhdGVWaWV3cG9ydGAgb25lIG1vcmUgdGltZSB0byBnZXQgdGhlIGNvcnJlY3QgaGVpZ2h0LCB3aXRoIGEgc2V0VGltZW91dCB0byBhbGxvdyB0aW1lIGZvciByZWZsb3cuXG4gICAqL1xuICBpZiAoXG4gICAgbWF4Q29udGVudEhlaWdodCA+IG1heEhlaWdodCAmJlxuICAgICFhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ICYmXG4gICAgdmlld3BvcnRSZWYuY3VycmVudFxuICApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogXCJ1cGRhdGVWaWV3cG9ydFwiLFxuICAgICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICAgIGl0ZW1BbW91bnQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgcmVmPXtzY3JvbGxhYmxlQ29udGFpbmVyUmVmfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgIC4uLmNvbnRhaW5lclN0eWxlLFxuICAgICAgfX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPVwiVmlydHVhbFNjcm9sbExpc3RcIlxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICByZWY9e3ZpZXdwb3J0UmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3Njcm9sbGVkSW5QeH1weGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUt3QiJ9 */"),StyledScrollableContent=(0,_styled.default)("div",{target:"e1leajmg1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIC8qKiBpbml0aWFsIGVzdGltYXRlIGZvciB2aXJ0dWFsIHNjcm9sbGluZyBjYWxjdWxhdGlvbnMsIGhlbHBzIGVzdGltYXRlIGhvdyBtYW55XG4gICAqIGl0ZW1zIGZpdCBpbiB0aGUgdmlld3BvcnQgYmVmb3JlIHJlYWwgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXRlbUhlaWdodDogbnVtYmVyO1xuICBpdGVtQW1vdW50OiBudW1iZXI7XG4gIGVtcHR5U3RhdGU/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbn07XG5cbmNvbnN0IG92ZXJzY2FuID0gMTA7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXJ0dWFsU2Nyb2xsTGlzdCh7XG4gIGlkLFxuICBtYXhIZWlnaHQsXG4gIGl0ZW1IZWlnaHQsXG4gIGl0ZW1BbW91bnQsXG4gIGVtcHR5U3RhdGUgPSAoKSA9PiBudWxsLFxuICBpdGVtSW5WaWV3LFxuICBpdGVtVGVtcGxhdGUsXG4gIGNvbnRhaW5lclN0eWxlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbiAgb25Db250ZW50SGVpZ2h0Q2hhbmdlLFxuICByb2xlLFxufTogVmlydHVhbFNjcm9sbExpc3RQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGFibGVDb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHZpZXdwb3J0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBhZGp1c3RlZEZvclJlZmxvdyA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHNjcm9sbGVkSXRlbUNvdW50LFxuICAgICAgYW1vdW50T2ZJdGVtc0luVmlldyxcbiAgICAgIHNjcm9sbGVkSW5QeCxcbiAgICAgIG1heENvbnRlbnRIZWlnaHQgPSBtYXhIZWlnaHQsXG4gICAgICByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uLFxuICAgIH0sXG4gICAgZGlzcGF0Y2gsXG4gIF0gPSB1c2VSZWR1Y2VyKFZpcnR1YWxTY3JvbGxSZWR1Y2VyLCB7fSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwicmVzZXRcIiwgaXRlbUhlaWdodCwgbWF4SGVpZ2h0LCBvdmVyc2NhbiB9KTtcbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gMDtcbiAgfSwgW2l0ZW1IZWlnaHQsIGl0ZW1BbW91bnQsIG1heEhlaWdodF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJyZWNvbW1lbmRTY3JvbGxQb3NpdGlvblwiLFxuICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wLFxuICAgICAgaXRlbVRvQmVJblZpZXc6IGl0ZW1JblZpZXcsXG4gICAgfSk7XG4gIH0sIFtpdGVtSW5WaWV3XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbiA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb247XG4gIH0sIFtyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgIHZpZXdwb3J0Tm9kZTogdmlld3BvcnRSZWYuY3VycmVudCxcbiAgICAgIGl0ZW1BbW91bnQsXG4gICAgfSk7XG4gIH0sIFtpdGVtQW1vdW50LCBzY3JvbGxlZEl0ZW1Db3VudF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPy4oKTtcbiAgfSwgW21heENvbnRlbnRIZWlnaHQsIG9uQ29udGVudEhlaWdodENoYW5nZV0pO1xuXG4gIGNvbnN0IGl0ZW1Db3VudFRvQmVSZW5kZXJlZCA9IE1hdGgubWluKFxuICAgIE1hdGgubWF4KDAsIGl0ZW1BbW91bnQgLSBzY3JvbGxlZEl0ZW1Db3VudCksXG4gICAgYW1vdW50T2ZJdGVtc0luVmlld1xuICApO1xuXG4gIC8qIFNvbWV0aW1lcywgb3B0aW9uIHRleHQgY2FuIHJlZmxvdyBkdWUgdGhlIGFwcGVhcmFuY2Ugb2YgdmVydGljYWwgc2Nyb2xsYmFyIHdoaWNoIGNhbiBjYXVzZSB0ZXh0IHRvIHdyYXAgdG8gbXVsdGlwbGUgbGluZXMgY2F1c2luZyB2aWV3cG9ydFJlZiBoZWlnaHQgdG8gY2hhbmdlLiBJZiBjb250YWluZXIgaGFzIHNjcm9sbCB0aGVuIHdlIGRpc3BhdGNoIGB1cGRhdGVWaWV3cG9ydGAgb25lIG1vcmUgdGltZSB0byBnZXQgdGhlIGNvcnJlY3QgaGVpZ2h0LCB3aXRoIGEgc2V0VGltZW91dCB0byBhbGxvdyB0aW1lIGZvciByZWZsb3cuXG4gICAqL1xuICBpZiAoXG4gICAgbWF4Q29udGVudEhlaWdodCA+IG1heEhlaWdodCAmJlxuICAgICFhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ICYmXG4gICAgdmlld3BvcnRSZWYuY3VycmVudFxuICApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogXCJ1cGRhdGVWaWV3cG9ydFwiLFxuICAgICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICAgIGl0ZW1BbW91bnQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgcmVmPXtzY3JvbGxhYmxlQ29udGFpbmVyUmVmfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgIC4uLmNvbnRhaW5lclN0eWxlLFxuICAgICAgfX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPVwiVmlydHVhbFNjcm9sbExpc3RcIlxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICByZWY9e3ZpZXdwb3J0UmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3Njcm9sbGVkSW5QeH1weGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNnQyJ9 */");function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange,role}){let scrollableContainerRef=(0,_react.useRef)(null),viewportRef=(0,_react.useRef)(null),adjustedForReflow=(0,_react.useRef)(!1),[{scrolledItemCount,amountOfItemsInView,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=(0,_react.useReducer)(_VirtualScrollListReducer.VirtualScrollReducer,{});(0,_react.useLayoutEffect)(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10}),scrollableContainerRef.current.scrollTop=0},[itemHeight,itemAmount,maxHeight]),(0,_react.useEffect)(()=>{dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainerRef.current.scrollTop,itemToBeInView:itemInView})},[itemInView]),(0,_react.useEffect)(()=>{null!==recommendedScrollPosition&&(scrollableContainerRef.current.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),(0,_react.useLayoutEffect)(()=>{viewportRef.current&&dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})},[itemAmount,scrolledItemCount]),(0,_react.useEffect)(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})}),adjustedForReflow.current=!0),_react.default.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():_react.default.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},_react.default.createElement("ul",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:role,id:id},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollReducer",{enumerable:!0,get:function(){return VirtualScrollReducer}});const findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight=0)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+lastItemHeight},reduceScroll=(prevState,scrollTop)=>{let{topOffsets,overscan:tolerance}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=(prevState,viewportNode,itemAmount)=>{let{topOffsets=[],scrolledInPx,scrolledItemCount,avgItemHeight,lastItemHeight,maxHeight,overscan:tolerance}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;Array.from(viewportNode.children).forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.getBoundingClientRect().height)});for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VirtualScrollReducer",{enumerable:!0,get:function(){return VirtualScrollReducer}});const findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight=0)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+lastItemHeight},reduceScroll=(prevState,scrollTop)=>{let{topOffsets,overscan:tolerance}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=(prevState,viewportNode,itemAmount)=>{let{topOffsets=[],scrolledInPx,scrolledItemCount,avgItemHeight,lastItemHeight,maxHeight,overscan:tolerance}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;Array.from(viewportNode.children).forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.getBoundingClientRect().height)});let newAvgItemHeight=Math.max(avgItemHeight,viewportNode.getBoundingClientRect().height/(viewportNode.childElementCount||1));for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+newAvgItemHeight,isInterpolated:!0});let maxContentHeight=getMaxHeight(itemAmount,newTopOffsets,updatedLastItemHeight);return{...prevState,lastItemHeight:updatedLastItemHeight,avgItemHeight:newAvgItemHeight,topOffsets:newTopOffsets,amountOfItemsInView:Math.round(maxHeight/newAvgItemHeight)+tolerance,maxContentHeight}},reduceReset=(prevState,itemHeight,maxHeight,overscan)=>({...prevState,lastItemHeight:null,topOffsets:[{amount:0,isInterpolated:!1}],scrolledInPx:0,scrolledItemCount:0,maxHeight,avgItemHeight:itemHeight,overscan}),reduceRecommendScrollPosition=(prevState,scrollTop,itemToBeInView)=>{let{topOffsets,maxHeight}=prevState;if(!topOffsets)return prevState;let bottomOfTarget=topOffsets[itemToBeInView+1]?.amount,topOfTarget=topOffsets[itemToBeInView]?.amount,recommendedScrollPosition=null;return topOfTarget<scrollTop&&(recommendedScrollPosition=topOfTarget),bottomOfTarget>=scrollTop+maxHeight&&(recommendedScrollPosition=bottomOfTarget-maxHeight),itemToBeInView===topOffsets.length-1&&(recommendedScrollPosition=topOffsets[itemToBeInView].amount),{...prevState,recommendedScrollPosition}},VirtualScrollReducer=(prevState,action)=>{switch(action.type){case"reset":return reduceReset(prevState,action.itemHeight,action.maxHeight,action.overscan);case"scroll":return reduceScroll(prevState,action.scrollTop);case"updateViewport":return reduceUpdateViewport(prevState,action.viewportNode,action.itemAmount);case"recommendScrollPosition":return reduceRecommendScrollPosition(prevState,action.scrollTop,action.itemToBeInView);default:throw Error()}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { EntityListProps } from "./types";
|
|
3
|
-
export declare function BaseEntityList({ data, size, onClick, isSelectable, selectedIds, onSelectionChange, renderRightContent, getLeftIconProps, hideBorder, filterFn, "data-e2e-test-id": dataE2eTestId, }: EntityListProps): React.ReactElement;
|
|
3
|
+
export declare function BaseEntityList({ data, size, onClick, isSelectable, selectedIds, onSelectionChange, onSelectionToggle, renderRightContent, getLeftIconProps, hideBorder, filterFn, isVirtualized, maxHeight, "data-e2e-test-id": dataE2eTestId, }: EntityListProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useRef,useState,useEffect,useMemo,useCallback}from"react";import styled from"@emotion/styled";import{StyledList}from"./styled-components";import{useKeyboard}from"../../shared/useKeyboard";import{Icon}from"../Icon/Icon";import{EntityListItem}from"./EntityListItem";let StyledMinHeightCell=styled("div",{target:"e9t25660",label:"StyledMinHeightCell"})(({theme,textSize})=>({minHeight:"s"===textSize?`calc(${theme.variables.size.spacing.m} + ${theme.variables.size.spacing.xxs})`:theme.variables.size.spacing.l,display:"flex",alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5TGlzdC9CYXNlRW50aXR5TGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eUxpc3QvQmFzZUVudGl0eUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU3R5bGVkTGlzdCB9IGZyb20gXCIuL3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RQcm9wcywgTGlzdE5vZGUsIFRleHRTaXplUHJvcHMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgRW50aXR5TGlzdEl0ZW0gfSBmcm9tIFwiLi9FbnRpdHlMaXN0SXRlbVwiO1xuXG4vLyBUaGlzIG1pbkhlaWdodCBpcyBuZWVkZWQgZm9yIGFsaWduIHNtYWxsIGljb25zIGluIHRoZSBtaWRkbGUgb2YgMSByb3cgdGV4dCxcbi8vIGJ1dCBpdCBzaG91bGQgc3RheSBhdCB0aGUgdG9wIGlmIHRoZXJlIGlzIG11bHRpbGluZSB0ZXh0XG5jb25zdCBTdHlsZWRNaW5IZWlnaHRDZWxsID0gc3R5bGVkLmRpdjxUZXh0U2l6ZVByb3BzPihcbiAgKHsgdGhlbWUsIHRleHRTaXplIH0pID0+ICh7XG4gICAgbWluSGVpZ2h0OlxuICAgICAgdGV4dFNpemUgPT09IFwic1wiXG4gICAgICAgID8gYGNhbGMoJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm19ICsgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30pYFxuICAgICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubCxcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgZmluZEVuYWJsZWRJdGVtSW5kZXggPSAoXG4gIGl0ZW1zOiBMaXN0Tm9kZVtdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGRpcmVjdGlvbiA9IFwibmV4dFwiXG4pOiBudW1iZXIgPT4ge1xuICBpZiAoZGlyZWN0aW9uID09PSBcIm5leHRcIikge1xuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4ICsgMTsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBpZiAoIWl0ZW1zW2ldLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gXCJwcmV2aW91c1wiKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgaWYgKCFpdGVtc1tpXS5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RhcnRJbmRleDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBCYXNlRW50aXR5TGlzdCh7XG4gIGRhdGEsXG4gIHNpemUgPSBcIm1cIixcbiAgb25DbGljayxcbiAgaXNTZWxlY3RhYmxlLFxuICBzZWxlY3RlZElkcyxcbiAgb25TZWxlY3Rpb25DaGFuZ2UsXG4gIHJlbmRlclJpZ2h0Q29udGVudCxcbiAgZ2V0TGVmdEljb25Qcm9wcyxcbiAgaGlkZUJvcmRlcixcbiAgZmlsdGVyRm4sXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxufTogRW50aXR5TGlzdFByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgZGF0YVNob3duID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuIGRhdGE7XG5cbiAgICByZXR1cm4gZmlsdGVyRm4gPyBkYXRhLmZpbHRlcihmaWx0ZXJGbikgOiBkYXRhO1xuICB9LCBbZGF0YSwgZmlsdGVyRm5dKTtcbiAgY29uc3Qgc2VsZWN0ZWRJZHNTZXQgPSB1c2VNZW1vKCgpID0+IG5ldyBTZXQoc2VsZWN0ZWRJZHMpLCBbc2VsZWN0ZWRJZHNdKTtcbiAgY29uc3QgW2lzS2V5Ym9hcmRGb2N1cywgc2V0SXNLZXlib2FyZEZvY3VzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigoKSA9PlxuICAgIGlzU2VsZWN0YWJsZSB8fCBvbkNsaWNrID8gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkgOiAtMVxuICApO1xuICBjb25zdCByZWZMaXN0ID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICBBcnJvd0Rvd246ICgpID0+IHtcbiAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBmaW5kRW5hYmxlZEl0ZW1JbmRleChkYXRhU2hvd24sIHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG5leHRJbmRleCk7XG4gICAgICB9LFxuICAgICAgQXJyb3dVcDogKCkgPT4ge1xuICAgICAgICBzZXRJc0tleWJvYXJkRm9jdXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByZXZJbmRleCA9IGZpbmRFbmFibGVkSXRlbUluZGV4KFxuICAgICAgICAgIGRhdGFTaG93bixcbiAgICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICAgIFwicHJldmlvdXNcIlxuICAgICAgICApO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHByZXZJbmRleCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVmTGlzdCxcbiAgICBzZWxlY3RlZEluZGV4ICE9PSAtMVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZkxpc3QgJiYgcmVmTGlzdC5jdXJyZW50ICYmIGlzS2V5Ym9hcmRGb2N1cyAmJiBzZWxlY3RlZEluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSByZWZMaXN0LmN1cnJlbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJ2RpdltkYXRhLWlkPVwibGlzdC1pdGVtXCJdJ1xuICAgICAgKTtcblxuICAgICAgKGJ1dHRvbnNbTWF0aC5hYnMoc2VsZWN0ZWRJbmRleCkgJSBidXR0b25zLmxlbmd0aF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKHtcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NlbGVjdGVkSW5kZXgsIGlzS2V5Ym9hcmRGb2N1c10pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogTGlzdE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGl0ZW07XG5cbiAgICAgIC8vIEhhbmRsZSBjaGVja2JveCBjaGFuZ2VcbiAgICAgIGlmIChpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgaWYgKHNlbGVjdGVkSWRzU2V0LmhhcyhpZCkpIHtcbiAgICAgICAgICBzZWxlY3RlZElkc1NldC5kZWxldGUoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGVjdGVkSWRzU2V0LmFkZChpZCk7XG4gICAgICAgIH1cbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U/LihBcnJheS5mcm9tKHNlbGVjdGVkSWRzU2V0KSk7XG4gICAgICB9XG5cbiAgICAgIG9uQ2xpY2s/LihpdGVtKTtcbiAgICB9LFxuICAgIFtzZWxlY3RlZElkc1NldCwgb25TZWxlY3Rpb25DaGFuZ2UsIG9uQ2xpY2ssIGlzU2VsZWN0YWJsZV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFVzZSBzZXRUaW1lb3V0IHRvIHdhaXQgZm9yIGZvY3VzIHRvIGZ1bGx5IHByb3BhZ2F0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICByZWZMaXN0LmN1cnJlbnQgJiZcbiAgICAgICAgIXJlZkxpc3QuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgKSB7XG4gICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoKCkgPT4gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9LCBbcmVmTGlzdCwgc2V0U2VsZWN0ZWRJbmRleCwgZGF0YVNob3duXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkTGlzdFxuICAgICAgcmVmPXtyZWZMaXN0fVxuICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICBkYXRhLWRzLWlkPVwiRW50aXR5TGlzdFwiXG4gICAgICByb2xlPVwibGlzdFwiXG4gICAgPlxuICAgICAge2RhdGFTaG93bi5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgY29uc3QgdGFiSW5kZXggPSAhaXRlbS5pc0Rpc2FibGVkICYmIGkgPT09IHNlbGVjdGVkSW5kZXggPyAwIDogLTE7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RW50aXR5TGlzdEl0ZW1cbiAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2l0ZW1bXCJhcmlhLWxhYmVsXCJdIHx8IGl0ZW0ubGFiZWx9XG4gICAgICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICAgICAgaGlkZUJvcmRlcj17aGlkZUJvcmRlciB8fCBpID09PSBkYXRhU2hvd24ubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgIGlzQWN0aXZlPXtpdGVtLmlzQWN0aXZlIHx8IChpc0tleWJvYXJkRm9jdXMgJiYgc2VsZWN0ZWRJbmRleCA9PT0gaSl9XG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpdGVtLmlzRGlzYWJsZWR9XG4gICAgICAgICAgICBpc0NsaWNrYWJsZT17Qm9vbGVhbihvbkNsaWNrIHx8IHNlbGVjdGVkSWRzKX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtpdGVtLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgb25LZXlEb3duPXsoKSA9PiBoYW5kbGVPbkNsaWNrKGl0ZW0pfVxuICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAob25DbGljayB8fCBpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KGkpO1xuICAgICAgICAgICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgaGFuZGxlT25DbGljayhpdGVtKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjaGVja2JveFByb3BzPXtcbiAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlICYmIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImxpc3QtY2hlY2tib3hcIixcbiAgICAgICAgICAgICAgICBzaXplOiBcInNcIixcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogKCkgPT4gaGFuZGxlT25DbGljayhpdGVtKSxcbiAgICAgICAgICAgICAgICBjaGVja2VkOiBzZWxlY3RlZElkc1NldC5oYXMoaXRlbS5pZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlbmRlckxhYmVsPXsoKSA9PiBpdGVtLmxhYmVsfVxuICAgICAgICAgICAgcmVuZGVyTGVmdD17XG4gICAgICAgICAgICAgIGdldExlZnRJY29uUHJvcHNcbiAgICAgICAgICAgICAgICA/ICh7IHRleHRTaXplIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRMZWZ0SWNvblByb3BzKGl0ZW0pfVxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3RleHRTaXplfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyUmlnaHQ9eyh7IGFjdGlvblNpemUsIHRleHRTaXplIH0pID0+XG4gICAgICAgICAgICAgIHJlbmRlclJpZ2h0Q29udGVudCA/IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkTWluSGVpZ2h0Q2VsbCB0ZXh0U2l6ZT17dGV4dFNpemV9PlxuICAgICAgICAgICAgICAgICAge3JlbmRlclJpZ2h0Q29udGVudCh7IHRleHRTaXplLCBhY3Rpb25TaXplLCAuLi5pdGVtIH0pfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkTWluSGVpZ2h0Q2VsbD5cbiAgICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9TdHlsZWRMaXN0PlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCNEIifQ== */"),findEnabledItemIndex=(items,startIndex,direction="next")=>{if("next"===direction){for(let i=startIndex+1;i<items.length;i+=1)if(!items[i].isDisabled)return i}else if("previous"===direction){for(let i=startIndex-1;i>=0;i-=1)if(!items[i].isDisabled)return i}return startIndex};export function BaseEntityList({data,size="m",onClick,isSelectable,selectedIds,onSelectionChange,renderRightContent,getLeftIconProps,hideBorder,filterFn,"data-e2e-test-id":dataE2eTestId}){let dataShown=useMemo(()=>data.length&&filterFn?data.filter(filterFn):data,[data,filterFn]),selectedIdsSet=useMemo(()=>new Set(selectedIds),[selectedIds]),[isKeyboardFocus,setIsKeyboardFocus]=useState(!1),[selectedIndex,setSelectedIndex]=useState(()=>isSelectable||onClick?findEnabledItemIndex(dataShown,-1):-1),refList=useRef(null);useKeyboard({ArrowDown:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex))},ArrowUp:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex,"previous"))}},refList,-1!==selectedIndex),useEffect(()=>{if(refList&&refList.current&&isKeyboardFocus&&selectedIndex>=0){let buttons=refList.current.querySelectorAll('div[data-id="list-item"]');buttons[Math.abs(selectedIndex)%buttons.length].focus({preventScroll:!0})}},[selectedIndex,isKeyboardFocus]);let handleOnClick=useCallback(item=>{let{id}=item;isSelectable&&(selectedIdsSet.has(id)?selectedIdsSet.delete(id):selectedIdsSet.add(id),onSelectionChange?.(Array.from(selectedIdsSet))),onClick?.(item)},[selectedIdsSet,onSelectionChange,onClick,isSelectable]),handleBlur=useCallback(()=>{setTimeout(()=>{refList.current&&!refList.current.contains(document.activeElement)&&(setIsKeyboardFocus(!1),setSelectedIndex(()=>findEnabledItemIndex(dataShown,-1)))},0)},[refList,setSelectedIndex,dataShown]);return React.createElement(StyledList,{ref:refList,size:size,"data-e2e-test-id":dataE2eTestId,onBlur:handleBlur,"data-ds-id":"EntityList",role:"list"},dataShown.map((item,i)=>{let tabIndex=item.isDisabled||i!==selectedIndex?-1:0;return React.createElement(EntityListItem,{key:item.id,"aria-label":item["aria-label"]||item.label,size:size,hideBorder:hideBorder||i===dataShown.length-1,isActive:item.isActive||isKeyboardFocus&&selectedIndex===i,isDisabled:item.isDisabled,isClickable:!!(onClick||selectedIds),description:item.description,onKeyDown:()=>handleOnClick(item),tabIndex:tabIndex,onFocus:()=>{(onClick||isSelectable)&&(setSelectedIndex(i),setIsKeyboardFocus(!0))},onClick:()=>{setIsKeyboardFocus(!1),handleOnClick(item)},checkboxProps:isSelectable&&{name:"list-checkbox",size:"s",onChange:()=>handleOnClick(item),checked:selectedIdsSet.has(item.id)},renderLabel:()=>item.label,renderLeft:getLeftIconProps?({textSize})=>React.createElement(Icon,{...getLeftIconProps(item),size:textSize}):null,renderRight:({actionSize,textSize})=>renderRightContent?React.createElement(StyledMinHeightCell,{textSize:textSize},renderRightContent({textSize,actionSize,...item})):null})}))}
|
|
1
|
+
import React,{useRef,useState,useEffect,useMemo,useCallback}from"react";import styled from"@emotion/styled";import{StyledList}from"./styled-components";import{useKeyboard}from"../../shared/useKeyboard";import{Icon}from"../Icon/Icon";import{EntityListItem}from"./EntityListItem";import{VirtualizedEntityList}from"./VirtualizedEntityList";let StyledMinHeightCell=styled("div",{target:"e1pzyi5y0",label:"StyledMinHeightCell"})(({theme,textSize})=>({minHeight:"s"===textSize?`calc(${theme.variables.size.spacing.m} + ${theme.variables.size.spacing.xxs})`:theme.variables.size.spacing.l,display:"flex",alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRW50aXR5TGlzdC9CYXNlRW50aXR5TGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0VudGl0eUxpc3QvQmFzZUVudGl0eUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU3R5bGVkTGlzdCB9IGZyb20gXCIuL3N0eWxlZC1jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eUxpc3RQcm9wcywgTGlzdE5vZGUsIFRleHRTaXplUHJvcHMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgRW50aXR5TGlzdEl0ZW0gfSBmcm9tIFwiLi9FbnRpdHlMaXN0SXRlbVwiO1xuaW1wb3J0IHsgVmlydHVhbGl6ZWRFbnRpdHlMaXN0IH0gZnJvbSBcIi4vVmlydHVhbGl6ZWRFbnRpdHlMaXN0XCI7XG5cbi8vIFRoaXMgbWluSGVpZ2h0IGlzIG5lZWRlZCBmb3IgYWxpZ24gc21hbGwgaWNvbnMgaW4gdGhlIG1pZGRsZSBvZiAxIHJvdyB0ZXh0LFxuLy8gYnV0IGl0IHNob3VsZCBzdGF5IGF0IHRoZSB0b3AgaWYgdGhlcmUgaXMgbXVsdGlsaW5lIHRleHRcbmNvbnN0IFN0eWxlZE1pbkhlaWdodENlbGwgPSBzdHlsZWQuZGl2PFRleHRTaXplUHJvcHM+KFxuICAoeyB0aGVtZSwgdGV4dFNpemUgfSkgPT4gKHtcbiAgICBtaW5IZWlnaHQ6XG4gICAgICB0ZXh0U2l6ZSA9PT0gXCJzXCJcbiAgICAgICAgPyBgY2FsYygke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubX0gKyAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzfSlgXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5sLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIH0pXG4pO1xuXG5jb25zdCBmaW5kRW5hYmxlZEl0ZW1JbmRleCA9IChcbiAgaXRlbXM6IExpc3ROb2RlW10sXG4gIHN0YXJ0SW5kZXg6IG51bWJlcixcbiAgZGlyZWN0aW9uID0gXCJuZXh0XCJcbik6IG51bWJlciA9PiB7XG4gIGlmIChkaXJlY3Rpb24gPT09IFwibmV4dFwiKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXggKyAxOyBpIDwgaXRlbXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGlmICghaXRlbXNbaV0uaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcInByZXZpb3VzXCIpIHtcbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleCAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICBpZiAoIWl0ZW1zW2ldLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGFydEluZGV4O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEJhc2VFbnRpdHlMaXN0KHtcbiAgZGF0YSxcbiAgc2l6ZSA9IFwibVwiLFxuICBvbkNsaWNrLFxuICBpc1NlbGVjdGFibGUsXG4gIHNlbGVjdGVkSWRzLFxuICBvblNlbGVjdGlvbkNoYW5nZSxcbiAgb25TZWxlY3Rpb25Ub2dnbGUsXG4gIHJlbmRlclJpZ2h0Q29udGVudCxcbiAgZ2V0TGVmdEljb25Qcm9wcyxcbiAgaGlkZUJvcmRlcixcbiAgZmlsdGVyRm4sXG4gIGlzVmlydHVhbGl6ZWQsXG4gIG1heEhlaWdodCxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBFbnRpdHlMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBkYXRhU2hvd24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWRhdGEubGVuZ3RoKSByZXR1cm4gZGF0YTtcblxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGRhdGEuZmlsdGVyKGZpbHRlckZuKSA6IGRhdGE7XG4gIH0sIFtkYXRhLCBmaWx0ZXJGbl0pO1xuXG4gIGNvbnN0IHNlbGVjdGVkSWRzU2V0ID0gdXNlTWVtbygoKSA9PiBuZXcgU2V0KHNlbGVjdGVkSWRzKSwgW3NlbGVjdGVkSWRzXSk7XG5cbiAgY29uc3QgW2lzS2V5Ym9hcmRGb2N1cywgc2V0SXNLZXlib2FyZEZvY3VzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigoKSA9PlxuICAgIGlzU2VsZWN0YWJsZSB8fCBvbkNsaWNrID8gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkgOiAtMVxuICApO1xuICBjb25zdCByZWZMaXN0ID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VLZXlib2FyZChcbiAgICB7XG4gICAgICBBcnJvd0Rvd246ICgpID0+IHtcbiAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBmaW5kRW5hYmxlZEl0ZW1JbmRleChkYXRhU2hvd24sIHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KG5leHRJbmRleCk7XG4gICAgICB9LFxuICAgICAgQXJyb3dVcDogKCkgPT4ge1xuICAgICAgICBzZXRJc0tleWJvYXJkRm9jdXModHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByZXZJbmRleCA9IGZpbmRFbmFibGVkSXRlbUluZGV4KFxuICAgICAgICAgIGRhdGFTaG93bixcbiAgICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICAgIFwicHJldmlvdXNcIlxuICAgICAgICApO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHByZXZJbmRleCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVmTGlzdCxcbiAgICBzZWxlY3RlZEluZGV4ICE9PSAtMVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZkxpc3QgJiYgcmVmTGlzdC5jdXJyZW50ICYmIGlzS2V5Ym9hcmRGb2N1cyAmJiBzZWxlY3RlZEluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSByZWZMaXN0LmN1cnJlbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgJ2RpdltkYXRhLWlkPVwibGlzdC1pdGVtXCJdJ1xuICAgICAgKTtcblxuICAgICAgKGJ1dHRvbnNbTWF0aC5hYnMoc2VsZWN0ZWRJbmRleCkgJSBidXR0b25zLmxlbmd0aF0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKHtcbiAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW3NlbGVjdGVkSW5kZXgsIGlzS2V5Ym9hcmRGb2N1c10pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogTGlzdE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGl0ZW07XG5cbiAgICAgIGlmIChpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgY29uc3Qgd2lsbEJlU2VsZWN0ZWQgPSAhc2VsZWN0ZWRJZHNTZXQuaGFzKGlkKTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRJZHNTZXQgPSBuZXcgU2V0KHNlbGVjdGVkSWRzU2V0KTtcblxuICAgICAgICBpZiAod2lsbEJlU2VsZWN0ZWQpIHtcbiAgICAgICAgICBuZXdTZWxlY3RlZElkc1NldC5hZGQoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1NlbGVjdGVkSWRzU2V0LmRlbGV0ZShpZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvblNlbGVjdGlvblRvZ2dsZT8uKGlkLCB3aWxsQmVTZWxlY3RlZCk7XG4gICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlPy4oQXJyYXkuZnJvbShuZXdTZWxlY3RlZElkc1NldCkpO1xuICAgICAgfVxuXG4gICAgICBvbkNsaWNrPy4oaXRlbSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBzZWxlY3RlZElkc1NldCxcbiAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlLFxuICAgICAgb25TZWxlY3Rpb25Ub2dnbGUsXG4gICAgICBvbkNsaWNrLFxuICAgICAgaXNTZWxlY3RhYmxlLFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVCbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFVzZSBzZXRUaW1lb3V0IHRvIHdhaXQgZm9yIGZvY3VzIHRvIGZ1bGx5IHByb3BhZ2F0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICByZWZMaXN0LmN1cnJlbnQgJiZcbiAgICAgICAgIXJlZkxpc3QuY3VycmVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KVxuICAgICAgKSB7XG4gICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoKCkgPT4gZmluZEVuYWJsZWRJdGVtSW5kZXgoZGF0YVNob3duLCAtMSkpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9LCBbcmVmTGlzdCwgc2V0U2VsZWN0ZWRJbmRleCwgZGF0YVNob3duXSk7XG5cbiAgY29uc3QgcmVuZGVyRW50aXR5SXRlbSA9IChpbmRleDogbnVtYmVyKTogUmVhY3QuUmVhY3ROb2RlID0+IHtcbiAgICBjb25zdCBpdGVtID0gZGF0YVNob3duW2luZGV4XTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgaXNMYXN0SXRlbSA9IGluZGV4ID09PSBkYXRhU2hvd24ubGVuZ3RoIC0gMTtcbiAgICBjb25zdCB0YWJJbmRleCA9ICFpdGVtLmlzRGlzYWJsZWQgJiYgaW5kZXggPT09IHNlbGVjdGVkSW5kZXggPyAwIDogLTE7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkSWRzU2V0LmhhcyhpdGVtLmlkKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RW50aXR5TGlzdEl0ZW1cbiAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICBhcmlhLWxhYmVsPXtpdGVtW1wiYXJpYS1sYWJlbFwiXSB8fCBpdGVtLmxhYmVsfVxuICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICBoaWRlQm9yZGVyPXtoaWRlQm9yZGVyIHx8IGlzTGFzdEl0ZW19XG4gICAgICAgIGlzQWN0aXZlPXtpdGVtLmlzQWN0aXZlIHx8IChpc0tleWJvYXJkRm9jdXMgJiYgc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXgpfVxuICAgICAgICBpc0Rpc2FibGVkPXtpdGVtLmlzRGlzYWJsZWR9XG4gICAgICAgIGlzQ2xpY2thYmxlPXtCb29sZWFuKG9uQ2xpY2sgfHwgc2VsZWN0ZWRJZHMpfVxuICAgICAgICBkZXNjcmlwdGlvbj17aXRlbS5kZXNjcmlwdGlvbn1cbiAgICAgICAgb25LZXlEb3duPXsoKSA9PiBoYW5kbGVPbkNsaWNrKGl0ZW0pfVxuICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgIG9uRm9jdXM9eygpID0+IHtcbiAgICAgICAgICBpZiAob25DbGljayB8fCBpc1NlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgICAgICAgc2V0SXNLZXlib2FyZEZvY3VzKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIHNldElzS2V5Ym9hcmRGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgaGFuZGxlT25DbGljayhpdGVtKTtcbiAgICAgICAgfX1cbiAgICAgICAgY2hlY2tib3hQcm9wcz17XG4gICAgICAgICAgaXNTZWxlY3RhYmxlICYmIHtcbiAgICAgICAgICAgIG5hbWU6IFwibGlzdC1jaGVja2JveFwiLFxuICAgICAgICAgICAgc2l6ZTogXCJzXCIsXG4gICAgICAgICAgICBvbkNoYW5nZTogKCkgPT4gaGFuZGxlT25DbGljayhpdGVtKSxcbiAgICAgICAgICAgIGNoZWNrZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbmRlckxhYmVsPXsoKSA9PiBpdGVtLmxhYmVsfVxuICAgICAgICByZW5kZXJMZWZ0PXtcbiAgICAgICAgICBnZXRMZWZ0SWNvblByb3BzXG4gICAgICAgICAgICA/ICh7IHRleHRTaXplIH0pID0+IChcbiAgICAgICAgICAgICAgICA8SWNvbiB7Li4uZ2V0TGVmdEljb25Qcm9wcyhpdGVtKX0gc2l6ZT17dGV4dFNpemV9IC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbFxuICAgICAgICB9XG4gICAgICAgIHJlbmRlclJpZ2h0PXsoeyBhY3Rpb25TaXplLCB0ZXh0U2l6ZSB9KSA9PlxuICAgICAgICAgIHJlbmRlclJpZ2h0Q29udGVudCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNaW5IZWlnaHRDZWxsIHRleHRTaXplPXt0ZXh0U2l6ZX0+XG4gICAgICAgICAgICAgIHtyZW5kZXJSaWdodENvbnRlbnQoeyB0ZXh0U2l6ZSwgYWN0aW9uU2l6ZSwgLi4uaXRlbSB9KX1cbiAgICAgICAgICAgIDwvU3R5bGVkTWluSGVpZ2h0Q2VsbD5cbiAgICAgICAgICApIDogbnVsbFxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGlzVmlydHVhbGl6ZWQgJiYgbWF4SGVpZ2h0ID8gKFxuICAgIDxWaXJ0dWFsaXplZEVudGl0eUxpc3RcbiAgICAgIGlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzaXplPXtzaXplfVxuICAgICAgZGF0YVNob3duPXtkYXRhU2hvd259XG4gICAgICBzZWxlY3RlZEluZGV4PXtzZWxlY3RlZEluZGV4fVxuICAgICAgaXRlbVRlbXBsYXRlPXtyZW5kZXJFbnRpdHlJdGVtfVxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAvPlxuICApIDogKFxuICAgIDxTdHlsZWRMaXN0XG4gICAgICByZWY9e3JlZkxpc3R9XG4gICAgICBzaXplPXtzaXplfVxuICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgIGRhdGEtZHMtaWQ9XCJFbnRpdHlMaXN0XCJcbiAgICAgIHJvbGU9XCJsaXN0XCJcbiAgICA+XG4gICAgICB7ZGF0YVNob3duLm1hcCgoX2l0ZW0sIGkpID0+IHJlbmRlckVudGl0eUl0ZW0oaSkpfVxuICAgIDwvU3R5bGVkTGlzdD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQjRCIn0= */"),findEnabledItemIndex=(items,startIndex,direction="next")=>{if("next"===direction){for(let i=startIndex+1;i<items.length;i+=1)if(!items[i].isDisabled)return i}else if("previous"===direction){for(let i=startIndex-1;i>=0;i-=1)if(!items[i].isDisabled)return i}return startIndex};export function BaseEntityList({data,size="m",onClick,isSelectable,selectedIds,onSelectionChange,onSelectionToggle,renderRightContent,getLeftIconProps,hideBorder,filterFn,isVirtualized,maxHeight,"data-e2e-test-id":dataE2eTestId}){let dataShown=useMemo(()=>data.length&&filterFn?data.filter(filterFn):data,[data,filterFn]),selectedIdsSet=useMemo(()=>new Set(selectedIds),[selectedIds]),[isKeyboardFocus,setIsKeyboardFocus]=useState(!1),[selectedIndex,setSelectedIndex]=useState(()=>isSelectable||onClick?findEnabledItemIndex(dataShown,-1):-1),refList=useRef(null);useKeyboard({ArrowDown:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex))},ArrowUp:()=>{setIsKeyboardFocus(!0),setSelectedIndex(findEnabledItemIndex(dataShown,selectedIndex,"previous"))}},refList,-1!==selectedIndex),useEffect(()=>{if(refList&&refList.current&&isKeyboardFocus&&selectedIndex>=0){let buttons=refList.current.querySelectorAll('div[data-id="list-item"]');buttons[Math.abs(selectedIndex)%buttons.length].focus({preventScroll:!0})}},[selectedIndex,isKeyboardFocus]);let handleOnClick=useCallback(item=>{let{id}=item;if(isSelectable){let willBeSelected=!selectedIdsSet.has(id),newSelectedIdsSet=new Set(selectedIdsSet);willBeSelected?newSelectedIdsSet.add(id):newSelectedIdsSet.delete(id),onSelectionToggle?.(id,willBeSelected),onSelectionChange?.(Array.from(newSelectedIdsSet))}onClick?.(item)},[selectedIdsSet,onSelectionChange,onSelectionToggle,onClick,isSelectable]),handleBlur=useCallback(()=>{setTimeout(()=>{refList.current&&!refList.current.contains(document.activeElement)&&(setIsKeyboardFocus(!1),setSelectedIndex(()=>findEnabledItemIndex(dataShown,-1)))},0)},[refList,setSelectedIndex,dataShown]),renderEntityItem=index=>{let item=dataShown[index];if(!item)return null;let isLastItem=index===dataShown.length-1,tabIndex=item.isDisabled||index!==selectedIndex?-1:0,isSelected=selectedIdsSet.has(item.id);return React.createElement(EntityListItem,{key:item.id,"aria-label":item["aria-label"]||item.label,size:size,hideBorder:hideBorder||isLastItem,isActive:item.isActive||isKeyboardFocus&&selectedIndex===index,isDisabled:item.isDisabled,isClickable:!!(onClick||selectedIds),description:item.description,onKeyDown:()=>handleOnClick(item),tabIndex:tabIndex,onFocus:()=>{(onClick||isSelectable)&&(setSelectedIndex(index),setIsKeyboardFocus(!0))},onClick:()=>{setIsKeyboardFocus(!1),handleOnClick(item)},checkboxProps:isSelectable&&{name:"list-checkbox",size:"s",onChange:()=>handleOnClick(item),checked:isSelected},renderLabel:()=>item.label,renderLeft:getLeftIconProps?({textSize})=>React.createElement(Icon,{...getLeftIconProps(item),size:textSize}):null,renderRight:({actionSize,textSize})=>renderRightContent?React.createElement(StyledMinHeightCell,{textSize:textSize},renderRightContent({textSize,actionSize,...item})):null})};return isVirtualized&&maxHeight?React.createElement(VirtualizedEntityList,{id:dataE2eTestId,maxHeight:maxHeight,size:size,dataShown:dataShown,selectedIndex:selectedIndex,itemTemplate:renderEntityItem,"data-e2e-test-id":dataE2eTestId}):React.createElement(StyledList,{ref:refList,size:size,"data-e2e-test-id":dataE2eTestId,onBlur:handleBlur,"data-ds-id":"EntityList",role:"list"},dataShown.map((_item,i)=>renderEntityItem(i)))}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ListSize } from "src/types";
|
|
3
|
+
import type { ListNode } from "./types";
|
|
4
|
+
export type VirtualizedEntityListProps = {
|
|
5
|
+
id?: string;
|
|
6
|
+
maxHeight: number;
|
|
7
|
+
size: ListSize;
|
|
8
|
+
dataShown: ListNode[];
|
|
9
|
+
selectedIndex: number;
|
|
10
|
+
itemTemplate: (index: number) => React.ReactNode;
|
|
11
|
+
"data-e2e-test-id"?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function VirtualizedEntityList({ id, maxHeight, size, dataShown, selectedIndex, itemTemplate, "data-e2e-test-id": dataE2eTestId, }: VirtualizedEntityListProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{useTheme}from"@emotion/react";import{VirtualScrollList}from"../VirtualScrollList/VirtualScrollList";let useEstimateItemHeight=size=>{let theme=useTheme(),parseThemeValue=value=>parseInt(value.replace("px",""),10),paddingMap={xs:parseThemeValue(theme.variables.size.spacing.xxs),s:parseThemeValue(theme.variables.size.spacing.s),m:parseThemeValue(theme.variables.size.spacing.m),l:parseThemeValue(theme.variables.size.spacing.l)},fontHeight=parseThemeValue(theme.variables.size.font.m);return 2*paddingMap[size]+fontHeight};export function VirtualizedEntityList({id,maxHeight,size,dataShown,selectedIndex,itemTemplate,"data-e2e-test-id":dataE2eTestId}){let estimatedItemHeight=useEstimateItemHeight(size);return React.createElement(VirtualScrollList,{id:id||dataE2eTestId,maxHeight:maxHeight,itemHeight:estimatedItemHeight,itemAmount:dataShown.length,itemInView:selectedIndex>=0?selectedIndex:0,itemTemplate:itemTemplate,"data-e2e-test-id":dataE2eTestId})}
|
|
@@ -21,7 +21,7 @@ export type EntityListAriaAttributes = {
|
|
|
21
21
|
ariaLabelExpand?: string;
|
|
22
22
|
ariaLabelCollapse?: string;
|
|
23
23
|
};
|
|
24
|
-
export type
|
|
24
|
+
export type BaseEntityListProps = {
|
|
25
25
|
/**
|
|
26
26
|
* @param ListNode[].id
|
|
27
27
|
* @param ListNode[].label - Label for display
|
|
@@ -36,7 +36,16 @@ export type EntityListProps = {
|
|
|
36
36
|
/** Allows selection of items with checkboxes. */
|
|
37
37
|
isSelectable?: boolean;
|
|
38
38
|
onSelectionChange?: (ids: string[]) => void;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Callback function to handle individual item selection toggle.
|
|
41
|
+
* Fires synchronously when user clicks to toggle selection,
|
|
42
|
+
* BEFORE onSelectionChange is called, allowing you to capture
|
|
43
|
+
* the clicked item and its new state.
|
|
44
|
+
* @param itemId - ID of the clicked item
|
|
45
|
+
* @param isSelected - New selection state AFTER the toggle
|
|
46
|
+
*/
|
|
47
|
+
onSelectionToggle?: (itemId: string, isSelected: boolean) => void;
|
|
48
|
+
/** It's triggered when a whole list item is clicked. */
|
|
40
49
|
onClick?: (props: ListNodeProps) => void;
|
|
41
50
|
/** Function to get properties for the left-side icon (name and color). */
|
|
42
51
|
getLeftIconProps?: (props: ListNode) => Pick<IconProps, "name" | "color">;
|
|
@@ -58,6 +67,15 @@ export type EntityListProps = {
|
|
|
58
67
|
ariaAttributes?: EntityListAriaAttributes;
|
|
59
68
|
"data-e2e-test-id"?: string;
|
|
60
69
|
};
|
|
70
|
+
export type EntityListProps = BaseEntityListProps & ({
|
|
71
|
+
/** Enable virtualization for large lists. When true, only visible items are rendered. */
|
|
72
|
+
isVirtualized: true;
|
|
73
|
+
/** Maximum height for the virtualized container. Required when isVirtualized is true. */
|
|
74
|
+
maxHeight: number;
|
|
75
|
+
} | {
|
|
76
|
+
isVirtualized?: false;
|
|
77
|
+
maxHeight?: never;
|
|
78
|
+
});
|
|
61
79
|
export type EntityListItemWrapperProps = {
|
|
62
80
|
hideBorder: boolean;
|
|
63
81
|
size?: ListSize;
|
|
@@ -22,6 +22,15 @@ export type EntityTreeProps = {
|
|
|
22
22
|
* @param ids - Updated selected node ids
|
|
23
23
|
*/
|
|
24
24
|
onSelectionChange?: (ids: NodeID[]) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Callback function to handle individual node selection toggle.
|
|
27
|
+
* Fires synchronously when user clicks to toggle selection,
|
|
28
|
+
* BEFORE onSelectionChange is called, allowing you to capture
|
|
29
|
+
* the clicked node and its new state.
|
|
30
|
+
* @param nodeId - ID of the clicked node
|
|
31
|
+
* @param isSelected - New selection state AFTER the toggle
|
|
32
|
+
*/
|
|
33
|
+
onSelectionToggle?: (nodeId: NodeID, isSelected: boolean) => void;
|
|
25
34
|
/** Expanded node ids */
|
|
26
35
|
expandedIds?: NodeID[];
|
|
27
36
|
/** Callback function to handle node expand/collapse
|
|
@@ -50,5 +59,5 @@ export type EntityTreeProps = {
|
|
|
50
59
|
"data-e2e-test-id"?: string;
|
|
51
60
|
ariaAttributes?: EntityListAriaAttributes;
|
|
52
61
|
} & PartialEntityListItemProps;
|
|
53
|
-
export declare const BaseEntityTree: ({ ariaAttributes, data, selectedIds, onSelectionChange, onNodeClick, expandedIds, onToggle, activeId, chunkSize, filterFn, onTreeChange, hideBorder, size, showItemsCount, showMoreButtonLabel, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
62
|
+
export declare const BaseEntityTree: ({ ariaAttributes, data, selectedIds, onSelectionChange, onSelectionToggle, onNodeClick, expandedIds, onToggle, activeId, chunkSize, filterFn, onTreeChange, hideBorder, size, showItemsCount, showMoreButtonLabel, renderRightContent, "data-e2e-test-id": dataE2eTestId, }: EntityTreeProps) => React.ReactElement;
|
|
54
63
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useMemo,useState,useEffect,useCallback}from"react";import{Button}from"../Button/Button";import{Box}from"../Box/Box";import{StyledList,StyledShowMore}from"../EntityList/styled-components";import{EntityTreeItem}from"./EntityTreeItem";import{useKeyboard}from"../../shared/useKeyboard";import{Text}from"../Typography/Text/Text";import{getNodeChildrenMap,getTreeCheckboxState,getVisibleActiveNodeId,getLeafNodeIds,filterTree,mapTree,trimDataByMaxSize}from"./tree";let flattenTree=(data,expandedIds,expadedAll)=>{let flattened=[];return data.forEach(node=>{flattened.push(node.id),(node.children.length>0&&expandedIds[node.id]||expadedAll)&&flattened.push(...flattenTree(node.children,expandedIds,expadedAll))}),flattened},getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},useTreeTruncation=({chunkSize,data,expandAll,nodeExpandedState})=>{let[maxNodesCount,setMaxNodesCount]=useState(chunkSize),{result,hasMoreNodes}=useMemo(()=>trimDataByMaxSize(data,nodeExpandedState,expandAll,maxNodesCount),[data,nodeExpandedState,expandAll,maxNodesCount]);return{handleIncreaseMaxNodeCount:useCallback(()=>{setMaxNodesCount(prev=>prev+chunkSize)},[chunkSize]),result,hasMoreNodes}},Node=({isFirstNode,nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,onNodeClick,hideBorder,size,showItemsCount,renderRightContent,activeId,focusedNodeId,node,level,renderFn,isLastNodeOfList,ariaLabelExpand,ariaLabelCollapse})=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=getLeafNodeIds(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState,handleClick=readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),isFocused=focusedNodeId===node.id,{children,...nodeDataWithoutChildren}=node;return React.createElement(EntityTreeItem,{key:node.id,hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),tabIndex:isFocused||null===focusedNodeId&&isFirstNode?0:-1,size:size,lSpaceStep:level,onKeyDown:()=>handleClick(),description:node.description,renderLabel:({textSize})=>React.createElement(React.Fragment,null,node.label,showItemsCount&&!lastLeaf&&React.createElement(Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isActive:activeId===node.id,isExpanded:isExpanded,isDisabledExpand:expandAll,checkboxProps:!readOnly&&{size:"s",name:node.label,checked:nodeCheckboxState?.[node.id]==="checked",indeterminate:nodeCheckboxState?.[node.id]==="indeterminate",onChange:()=>handleSelectionChange(node.id)},onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},isClickable:readOnly,onClick:()=>{handleToggle(node.id),onNodeClick?.(nodeDataWithoutChildren)},renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse,"aria-label":node.label,"aria-level":level+1},hasChildren&&React.createElement("ul",{role:"group"},renderFn({data:children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))},makeRenderTreeBranches=renderTreeArgs=>({data,level,renderFn,isParentsLastOfLvl})=>data.map((node,i)=>{let isFirstNode=0===level&&0===i,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl});return React.createElement(Node,{key:node.id,level:level,node:node,isFirstNode:isFirstNode,renderFn:renderFn,isLastNodeOfList:isLastNodeOfList,...renderTreeArgs})});export const BaseEntityTree=({ariaAttributes,data,selectedIds,onSelectionChange,onNodeClick,expandedIds=[],onToggle,activeId,chunkSize=10,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,showMoreButtonLabel,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>getNodeChildrenMap(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>getTreeCheckboxState(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),visibleActiveNodeId=getVisibleActiveNodeId(nodeChildrenMap,nodeExpandedState,activeId),handleExpand=targetId=>{onToggle&&!expandedIds.includes(targetId)&&onToggle(expandedIds.concat([targetId]))},handleCollapse=targetId=>{onToggle&&expandedIds.includes(targetId)&&onToggle(expandedIds.filter(id=>id!==targetId))},dataShown=filterFn?data.map(tree=>filterTree(tree,filterFn)).filter(Boolean):data;useEffect(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>mapTree(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let expandAll=!!filterFn,{hasMoreNodes,handleIncreaseMaxNodeCount,result}=useTreeTruncation({chunkSize,data:dataShown,nodeExpandedState,expandAll}),listRef=React.useRef(null),[focusedNodeId,setFocusedNodeId]=useState(null),[selectedIndex,setSelectedIndex]=useState(0),changeFocusIndex=index=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll),newIndex=index+Math.max(flatTreeIds.indexOf(focusedNodeId),0);newIndex>=0&&newIndex<flatTreeIds.length&&(setSelectedIndex(newIndex),setFocusedNodeId(flatTreeIds[newIndex]))},firstNodeId=useMemo(()=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll);return flatTreeIds.length>0?flatTreeIds[0]:null},[dataShown,nodeExpandedState,expandAll]);useKeyboard({ArrowDown:()=>{changeFocusIndex(1)},ArrowUp:()=>{changeFocusIndex(-1)},ArrowRight:()=>{expandAll||handleExpand(focusedNodeId||firstNodeId)},ArrowLeft:()=>{expandAll||handleCollapse(focusedNodeId||firstNodeId)}},listRef,!0),useEffect(()=>{if(listRef&&listRef.current&&selectedIndex>=0){let buttons=listRef.current.querySelectorAll('div[data-id="list-item"]'),button=buttons[Math.abs(selectedIndex)%buttons.length];button&&button.focus({preventScroll:!0})}},[selectedIndex]),useEffect(()=>{expandAll&&(setFocusedNodeId(null),setSelectedIndex(0))},[expandAll]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=getLeafNodeIds(nodeChildrenMap,targetId);updatedSelectedIds=
|
|
1
|
+
import React,{useMemo,useState,useEffect,useCallback}from"react";import{Button}from"../Button/Button";import{Box}from"../Box/Box";import{StyledList,StyledShowMore}from"../EntityList/styled-components";import{EntityTreeItem}from"./EntityTreeItem";import{useKeyboard}from"../../shared/useKeyboard";import{Text}from"../Typography/Text/Text";import{getNodeChildrenMap,getTreeCheckboxState,getVisibleActiveNodeId,getLeafNodeIds,filterTree,mapTree,trimDataByMaxSize}from"./tree";let flattenTree=(data,expandedIds,expadedAll)=>{let flattened=[];return data.forEach(node=>{flattened.push(node.id),(node.children.length>0&&expandedIds[node.id]||expadedAll)&&flattened.push(...flattenTree(node.children,expandedIds,expadedAll))}),flattened},getLastNodeOfList=({node,data,level,isParentsLastOfLvl})=>{let currentLastNodeOfLvl=node.id===data[data.length-1].id;return 0===level?currentLastNodeOfLvl:isParentsLastOfLvl&¤tLastNodeOfLvl},useTreeTruncation=({chunkSize,data,expandAll,nodeExpandedState})=>{let[maxNodesCount,setMaxNodesCount]=useState(chunkSize),{result,hasMoreNodes}=useMemo(()=>trimDataByMaxSize(data,nodeExpandedState,expandAll,maxNodesCount),[data,nodeExpandedState,expandAll,maxNodesCount]);return{handleIncreaseMaxNodeCount:useCallback(()=>{setMaxNodesCount(prev=>prev+chunkSize)},[chunkSize]),result,hasMoreNodes}},Node=({isFirstNode,nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange,handleToggle,expandAll,onNodeClick,hideBorder,size,showItemsCount,renderRightContent,activeId,focusedNodeId,node,level,renderFn,isLastNodeOfList,ariaLabelExpand,ariaLabelCollapse})=>{let readOnly=null===nodeCheckboxState,hasChildren=node.children.length>0,expandedState=!!expandAll||!!nodeExpandedState[node.id],leafItems=getLeafNodeIds(nodeChildrenMap,node.id),totalItemsCount=leafItems.length,selectedItemsCount=nodeCheckboxState?leafItems.filter(leafId=>"checked"===nodeCheckboxState[leafId]).length:null,countLabel=nodeCheckboxState?`(${selectedItemsCount}/${totalItemsCount})`:`(${totalItemsCount})`,lastLeaf=!hasChildren&&!node.isFiltered,isExpanded=lastLeaf?void 0:expandedState,handleClick=readOnly?()=>handleToggle(node.id):()=>handleSelectionChange(node.id),isFocused=focusedNodeId===node.id,{children,...nodeDataWithoutChildren}=node;return React.createElement(EntityTreeItem,{key:node.id,hideBorder:hideBorder||isLastNodeOfList&&(!isExpanded||node.isFiltered),tabIndex:isFocused||null===focusedNodeId&&isFirstNode?0:-1,size:size,lSpaceStep:level,onKeyDown:()=>handleClick(),description:node.description,renderLabel:({textSize})=>React.createElement(React.Fragment,null,node.label,showItemsCount&&!lastLeaf&&React.createElement(Text,{as:"span",size:textSize,color:"tertiary"}," ",countLabel)),isActive:activeId===node.id,isExpanded:isExpanded,isDisabledExpand:expandAll,checkboxProps:!readOnly&&{size:"s",name:node.label,checked:nodeCheckboxState?.[node.id]==="checked",indeterminate:nodeCheckboxState?.[node.id]==="indeterminate",onChange:()=>handleSelectionChange(node.id)},onExpandClick:e=>{e.stopPropagation(),handleToggle(node.id)},isClickable:readOnly,onClick:()=>{handleToggle(node.id),onNodeClick?.(nodeDataWithoutChildren)},renderRight:renderRightContent?sizeProps=>renderRightContent({...sizeProps,...node}):void 0,ariaLabelExpand:ariaLabelExpand,ariaLabelCollapse:ariaLabelCollapse,"aria-label":node.label,"aria-level":level+1},hasChildren&&React.createElement("ul",{role:"group"},renderFn({data:children,level:level+1,renderFn,isParentsLastOfLvl:isLastNodeOfList})))},makeRenderTreeBranches=renderTreeArgs=>({data,level,renderFn,isParentsLastOfLvl})=>data.map((node,i)=>{let isFirstNode=0===level&&0===i,isLastNodeOfList=getLastNodeOfList({node,data,level,isParentsLastOfLvl});return React.createElement(Node,{key:node.id,level:level,node:node,isFirstNode:isFirstNode,renderFn:renderFn,isLastNodeOfList:isLastNodeOfList,...renderTreeArgs})});export const BaseEntityTree=({ariaAttributes,data,selectedIds,onSelectionChange,onSelectionToggle,onNodeClick,expandedIds=[],onToggle,activeId,chunkSize=10,filterFn,onTreeChange,hideBorder=!1,size="m",showItemsCount=!0,showMoreButtonLabel,renderRightContent,"data-e2e-test-id":dataE2eTestId})=>{let nodeChildrenMap=Object.assign({},...data.map(tree=>getNodeChildrenMap(tree))),nodeCheckboxState=selectedIds?Object.assign({},...data.map(tree=>getTreeCheckboxState(nodeChildrenMap,tree.id,selectedIds))):null,nodeExpandedState=expandedIds.reduce((acc,id)=>(acc[id]=!0,acc),{}),visibleActiveNodeId=getVisibleActiveNodeId(nodeChildrenMap,nodeExpandedState,activeId),handleExpand=targetId=>{onToggle&&!expandedIds.includes(targetId)&&onToggle(expandedIds.concat([targetId]))},handleCollapse=targetId=>{onToggle&&expandedIds.includes(targetId)&&onToggle(expandedIds.filter(id=>id!==targetId))},dataShown=filterFn?data.map(tree=>filterTree(tree,filterFn)).filter(Boolean):data;useEffect(()=>{onTreeChange&&onTreeChange(dataShown.map(tree=>mapTree(tree,node=>({...node,checkedState:!!nodeCheckboxState&&nodeCheckboxState[node.id],isExpanded:!!nodeExpandedState[node.id]}))))},[dataShown,nodeCheckboxState,nodeExpandedState,onTreeChange]);let expandAll=!!filterFn,{hasMoreNodes,handleIncreaseMaxNodeCount,result}=useTreeTruncation({chunkSize,data:dataShown,nodeExpandedState,expandAll}),listRef=React.useRef(null),[focusedNodeId,setFocusedNodeId]=useState(null),[selectedIndex,setSelectedIndex]=useState(0),changeFocusIndex=index=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll),newIndex=index+Math.max(flatTreeIds.indexOf(focusedNodeId),0);newIndex>=0&&newIndex<flatTreeIds.length&&(setSelectedIndex(newIndex),setFocusedNodeId(flatTreeIds[newIndex]))},firstNodeId=useMemo(()=>{let flatTreeIds=flattenTree(dataShown,nodeExpandedState,expandAll);return flatTreeIds.length>0?flatTreeIds[0]:null},[dataShown,nodeExpandedState,expandAll]);useKeyboard({ArrowDown:()=>{changeFocusIndex(1)},ArrowUp:()=>{changeFocusIndex(-1)},ArrowRight:()=>{expandAll||handleExpand(focusedNodeId||firstNodeId)},ArrowLeft:()=>{expandAll||handleCollapse(focusedNodeId||firstNodeId)}},listRef,!0),useEffect(()=>{if(listRef&&listRef.current&&selectedIndex>=0){let buttons=listRef.current.querySelectorAll('div[data-id="list-item"]'),button=buttons[Math.abs(selectedIndex)%buttons.length];button&&button.focus({preventScroll:!0})}},[selectedIndex]),useEffect(()=>{expandAll&&(setFocusedNodeId(null),setSelectedIndex(0))},[expandAll]);let renderTreeBranches=makeRenderTreeBranches({nodeChildrenMap,nodeCheckboxState,nodeExpandedState,handleSelectionChange:targetId=>{if(onSelectionChange){let isSelected,updatedSelectedIds=[];if(0===nodeChildrenMap[targetId].length)isSelected=!selectedIds.includes(targetId),updatedSelectedIds=selectedIds.includes(targetId)?selectedIds.filter(id=>id!==targetId):selectedIds.concat([targetId]);else{let affectedLeafNodeIds=getLeafNodeIds(nodeChildrenMap,targetId),hasUncheckedChildren=affectedLeafNodeIds.some(leafId=>!selectedIds.includes(leafId));updatedSelectedIds=hasUncheckedChildren?selectedIds.concat(affectedLeafNodeIds.filter(id=>!selectedIds.includes(id))):selectedIds.filter(id=>!affectedLeafNodeIds.includes(id)),isSelected=hasUncheckedChildren}onSelectionToggle?.(targetId,isSelected),onSelectionChange(updatedSelectedIds)}},handleToggle:targetId=>{expandedIds.includes(targetId)?handleCollapse(targetId):handleExpand(targetId)},onNodeClick:node=>{setFocusedNodeId(node.id),onNodeClick?.(node)},expandAll,hideBorder,size,showItemsCount,renderRightContent,activeId:visibleActiveNodeId,focusedNodeId,ariaLabelExpand:ariaAttributes?.ariaLabelExpand,ariaLabelCollapse:ariaAttributes?.ariaLabelCollapse});return React.createElement("div",null,React.createElement(StyledList,{ref:listRef,role:"tree","aria-multiselectable":!!nodeCheckboxState||void 0,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"EntityTree",size:size},renderTreeBranches({data:result,level:0,renderFn:renderTreeBranches})),hasMoreNodes&&React.createElement(StyledShowMore,null,React.createElement(Box,{alignText:"center",space:"xs"},React.createElement(Button,{fullWidth:!0,size:"s",variant:"tertiary",onClick:handleIncreaseMaxNodeCount},showMoreButtonLabel))))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useRef,useEffect,useMemo}from"react";import styled from"@emotion/styled";import{useKeyboard}from"../../../shared/useKeyboard";import{usePopupMenu}from"../../../shared/popupMenu/usePopupMenu";import{VirtualScrollList}from"../../VirtualScrollList/VirtualScrollList";import{Text}from"../../Typography/Text/Text";import{Box}from"../../Box/Box";import{Inline}from"../../Inline/Inline";import{Icon}from"../../Icon/Icon";import{StyledDropdown,StyledOption}from"./StyledSelectComponents";import{dropdownContainerStyle}from"./constants";import{Stack}from"../../Stack/Stack";import{CheckboxRaw}from"../Checkbox/Checkbox";import{Portal}from"../../Portal/Portal";import{ScreenReaderText}from"../../Utilities/ScreenReaderText/ScreenReaderText";export function getOptionId(selectName,optionValue){return`${selectName}Option${optionValue}`}export function getOptionsListId(selectName){return`${selectName}OptionsList`}function scrollToItem(list,itemIndex){list[itemIndex]?.scrollIntoView?.({behavior:"smooth",block:"nearest"})}let CustomOption=styled(StyledOption,{target:"e159rw3y0",label:"CustomOption"})(({theme})=>({paddingTop:0,paddingBottom:0,"& > div":{paddingTop:theme.variables.size.spacing.xs,paddingBottom:theme.variables.size.spacing.xs},"& > div *":{marginTop:0}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTdHlsZWRMaXN0Q29udGFpbmVyXG4gICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIHJlZj17bGlzdENvbnRhaW5lclJlZn1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb25zLm1hcCgoX29wdGlvbiwgaW5kZXgpID0+IHJlbmRlckl0ZW0oaW5kZXgpKX1cbiAgICAgICAgPC9TdHlsZWRMaXN0Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZERyb3Bkb3duPlxuICApO1xuXG4gIGlmICghaXNPcGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXN0UG9ydGFsID0gb3B0aW9ucy5sZW5ndGggPyAoXG4gICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e2xpc3RFbG19PC9Qb3J0YWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgeyFvcHRpb25zLmxlbmd0aCA/IGVtcHR5U3RhdGVNZXNzYWdlIDogXCJcIn1cbiAgICAgIDwvU2NyZWVuUmVhZGVyVGV4dD5cbiAgICAgIHtsaXN0UG9ydGFsfVxuICAgIDwvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDcUIifQ== */"),StyledListContainer=styled("div",{target:"e159rw3y1",label:"StyledListContainer"})(({theme,maxHeight})=>({maxHeight,boxSizing:"border-box",overflow:"auto",padding:`${theme.variables.size.spacing.xxs} 0`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTdHlsZWRMaXN0Q29udGFpbmVyXG4gICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIHJlZj17bGlzdENvbnRhaW5lclJlZn1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb25zLm1hcCgoX29wdGlvbiwgaW5kZXgpID0+IHJlbmRlckl0ZW0oaW5kZXgpKX1cbiAgICAgICAgPC9TdHlsZWRMaXN0Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZERyb3Bkb3duPlxuICApO1xuXG4gIGlmICghaXNPcGVuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsaXN0UG9ydGFsID0gb3B0aW9ucy5sZW5ndGggPyAoXG4gICAgPFBvcnRhbCBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn0+e2xpc3RFbG19PC9Qb3J0YWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgeyFvcHRpb25zLmxlbmd0aCA/IGVtcHR5U3RhdGVNZXNzYWdlIDogXCJcIn1cbiAgICAgIDwvU2NyZWVuUmVhZGVyVGV4dD5cbiAgICAgIHtsaXN0UG9ydGFsfVxuICAgIDwvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBENEIifQ== */");export function OptionsList({isOpen,isMultiSelect=!1,value,disabled,options,portalContainer,triggerRef,triggerWrapperRef,maxHeight,emptyStateMessage="No options available",selectedIndex,optionsListWidth,isVirtualized=!0,name,onCloseDropdown,onSelectedIndexChange,forceChangeFakeSelect}){let optionsListRef=useRef(null),listContainerRef=useRef(null),listItemsRef=useRef(null),refForPositioning=triggerWrapperRef||triggerRef,activeItemIndex=useMemo(()=>options.findIndex(option=>isMultiSelect?value.includes(option.value):option.value===value),[options,isMultiSelect,value]),{menuStyle:optionsListStyle,calculateStyle}=usePopupMenu({triggerRef:refForPositioning,menuRef:optionsListRef,isOpen});useEffect(()=>{if(isOpen&&listContainerRef.current&&!isVirtualized&&optionsListStyle.top){let listElm=listContainerRef.current;listElm.clientHeight<listElm.scrollHeight&&(listItemsRef.current=listElm.querySelectorAll("[data-list-item]"),scrollToItem(listItemsRef.current,activeItemIndex))}else listItemsRef.current=null},[isOpen,isVirtualized,listContainerRef,options,maxHeight,optionsListStyle,activeItemIndex]),useEffect(()=>{listItemsRef.current&&scrollToItem(listItemsRef.current,selectedIndex)},[listItemsRef,selectedIndex]),useKeyboard({Escape:()=>onCloseDropdown(!0),Enter:()=>{let preselectedOption=options[selectedIndex];if(!preselectedOption?.disabled){if(preselectedOption){forceChangeFakeSelect(preselectedOption),isMultiSelect||onCloseDropdown(!0);return}isMultiSelect||onCloseDropdown()}},ArrowUp:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex>0&&(newIndex-=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)},ArrowDown:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex<options.length-1&&(newIndex+=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)}},triggerRef,isOpen&&!disabled);let renderItem=index=>{let option=options[index],id=getOptionId(name,option.value);if(isMultiSelect){let isActive=value.includes(option.value);return React.createElement(CustomOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||forceChangeFakeSelect(option)},onClick:evt=>evt.stopPropagation()},React.createElement(CheckboxRaw,{name:"",disabled:option.disabled,checked:isActive,size:"s",label:option.label,onChange:()=>null,labelHint:option?.description}))}let isActive=value===option.value,optionText=React.createElement(Stack,{space:"zero"},React.createElement(Text,{color:"primary",size:"m"},option.label),option.description&&React.createElement(Text,{color:"tertiary",size:"s"},option.description));return React.createElement(StyledOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||(forceChangeFakeSelect(option),onCloseDropdown(!0))}},isActive?React.createElement(Inline,{noWrap:!0,alignItems:"spaceBetween"},optionText,React.createElement(Box,{space:"zero",tSpace:"xxxs"},React.createElement(Icon,{name:"check",size:"s",color:"accent"}))):optionText)},listStyle={...optionsListStyle,width:optionsListWidth||refForPositioning.current?.getBoundingClientRect().width},listElm=React.createElement(StyledDropdown,{style:listStyle,ref:optionsListRef,onMouseDown:e=>e.preventDefault(),"data-e2e-test-id":"optionsList"},isVirtualized?React.createElement(VirtualScrollList,{id:getOptionsListId(name),maxHeight:maxHeight,itemHeight:36,itemAmount:options.length,emptyState:()=>null,containerStyle:dropdownContainerStyle,itemInView:selectedIndex,itemTemplate:renderItem,onContentHeightChange:calculateStyle}):React.createElement(StyledListContainer,{maxHeight:maxHeight,role:"listbox",id:getOptionsListId(name),ref:listContainerRef},options.map((_option,index)=>renderItem(index))));if(!isOpen)return null;let listPortal=options.length?React.createElement(Portal,{portalContainer:portalContainer},listElm):null;return React.createElement(React.Fragment,null,React.createElement(ScreenReaderText,{role:"status","aria-live":"polite"},options.length?"":emptyStateMessage),listPortal)}
|
|
1
|
+
import React,{useRef,useEffect,useMemo}from"react";import styled from"@emotion/styled";import{useKeyboard}from"../../../shared/useKeyboard";import{usePopupMenu}from"../../../shared/popupMenu/usePopupMenu";import{VirtualScrollList}from"../../VirtualScrollList/VirtualScrollList";import{Text}from"../../Typography/Text/Text";import{Box}from"../../Box/Box";import{Inline}from"../../Inline/Inline";import{Icon}from"../../Icon/Icon";import{StyledDropdown,StyledOption}from"./StyledSelectComponents";import{dropdownContainerStyle}from"./constants";import{Stack}from"../../Stack/Stack";import{CheckboxRaw}from"../Checkbox/Checkbox";import{Portal}from"../../Portal/Portal";import{ScreenReaderText}from"../../Utilities/ScreenReaderText/ScreenReaderText";export function getOptionId(selectName,optionValue){return`${selectName}Option${optionValue}`}export function getOptionsListId(selectName){return`${selectName}OptionsList`}function scrollToItem(list,itemIndex){list[itemIndex]?.scrollIntoView?.({behavior:"smooth",block:"nearest"})}let CustomOption=styled(StyledOption,{target:"e11kl4dy0",label:"CustomOption"})(({theme})=>({paddingTop:0,paddingBottom:0,"& > div":{paddingTop:theme.variables.size.spacing.xs,paddingBottom:theme.variables.size.spacing.xs},"& > div *":{marginTop:0}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkTGlzdENvbnRhaW5lclxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBpZD17Z2V0T3B0aW9uc0xpc3RJZChuYW1lKX1cbiAgICAgICAgICByZWY9e2xpc3RDb250YWluZXJSZWZ9XG4gICAgICAgID5cbiAgICAgICAgICB7b3B0aW9ucy5tYXAoKF9vcHRpb24sIGluZGV4KSA9PiByZW5kZXJJdGVtKGluZGV4KSl9XG4gICAgICAgIDwvU3R5bGVkTGlzdENvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgPC9TdHlsZWREcm9wZG93bj5cbiAgKTtcblxuICBpZiAoIWlzT3Blbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdFBvcnRhbCA9IG9wdGlvbnMubGVuZ3RoID8gKFxuICAgIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9PntsaXN0RWxtfTwvUG9ydGFsPlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIHshb3B0aW9ucy5sZW5ndGggPyBlbXB0eVN0YXRlTWVzc2FnZSA6IFwiXCJ9XG4gICAgICA8L1NjcmVlblJlYWRlclRleHQ+XG4gICAgICB7bGlzdFBvcnRhbH1cbiAgICA8Lz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2Q3FCIn0= */"),StyledListContainer=styled("div",{target:"e11kl4dy1",label:"StyledListContainer"})(({theme,maxHeight})=>({maxHeight,boxSizing:"border-box",overflow:"auto",padding:`${theme.variables.size.spacing.xxs} 0`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvRm9ybS9Db21ib2JveC9PcHRpb25zTGlzdC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0Zvcm0vQ29tYm9ib3gvT3B0aW9uc0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3VzZUtleWJvYXJkXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1vblNlbGVjdFByb3BzLCBTZWxlY3RPcHRpb24gfSBmcm9tIFwiLi9Db21ib2JveFwiO1xuaW1wb3J0IHsgdXNlUG9wdXBNZW51IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9wb3B1cE1lbnUvdXNlUG9wdXBNZW51XCI7XG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsTGlzdCB9IGZyb20gXCIuLi8uLi9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIi4uLy4uL0JveC9Cb3hcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi8uLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3R5bGVkRHJvcGRvd24sIFN0eWxlZE9wdGlvbiB9IGZyb20gXCIuL1N0eWxlZFNlbGVjdENvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3Bkb3duQ29udGFpbmVyU3R5bGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyBDaGVja2JveFJhdyB9IGZyb20gXCIuLi9DaGVja2JveC9DaGVja2JveFwiO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSBcIi4uLy4uL1BvcnRhbC9Qb3J0YWxcIjtcbmltcG9ydCB7IFNjcmVlblJlYWRlclRleHQgfSBmcm9tIFwiLi4vLi4vVXRpbGl0aWVzL1NjcmVlblJlYWRlclRleHQvU2NyZWVuUmVhZGVyVGV4dFwiO1xuXG50eXBlIE9wdGlvbnNMaXN0UHJvcHMgPSB7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgaXNNdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIHRyaWdnZXJSZWY6IFJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcbiAgdHJpZ2dlcldyYXBwZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsb3NlRHJvcGRvd246IChub1NlbGVjdD86IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlcjtcbiAgb25TZWxlY3RlZEluZGV4Q2hhbmdlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0OiAoc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbikgPT4gdm9pZDtcbiAgaXNWaXJ0dWFsaXplZD86IGJvb2xlYW47XG59ICYgUGFydGlhbDxDb21tb25TZWxlY3RQcm9wcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25JZChzZWxlY3ROYW1lOiBzdHJpbmcsIG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2VsZWN0TmFtZX1PcHRpb24ke29wdGlvblZhbHVlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHRpb25zTGlzdElkKHNlbGVjdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzZWxlY3ROYW1lfU9wdGlvbnNMaXN0YDtcbn1cblxuZnVuY3Rpb24gc2Nyb2xsVG9JdGVtKGxpc3Q6IEhUTUxEaXZFbGVtZW50W10sIGl0ZW1JbmRleDogbnVtYmVyKSB7XG4gIGxpc3RbaXRlbUluZGV4XT8uc2Nyb2xsSW50b1ZpZXc/Lih7XG4gICAgYmVoYXZpb3I6IFwic21vb3RoXCIsXG4gICAgYmxvY2s6IFwibmVhcmVzdFwiLFxuICB9KTtcbn1cblxuY29uc3QgQ3VzdG9tT3B0aW9uID0gc3R5bGVkKFN0eWxlZE9wdGlvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgLy8gdGhpcyBpcyBuZWVkZWQgZm9yIHVzaW5nIHBhZGRpbmcgb2YgY2hlY2tib3hlcyBpbiBvcmRlciB0byB1c2UgaXRzIGhvdmVyIHN0YXRlXG4gIHBhZGRpbmdUb3A6IDAsXG4gIHBhZGRpbmdCb3R0b206IDAsXG4gIFwiJiA+IGRpdlwiOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbiAgICBwYWRkaW5nQm90dG9tOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnhzLFxuICB9LFxuICBcIiYgPiBkaXYgKlwiOiB7XG4gICAgbWFyZ2luVG9wOiAwLFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRMaXN0Q29udGFpbmVyID0gc3R5bGVkLmRpdjxQaWNrPE9wdGlvbnNMaXN0UHJvcHMsIFwibWF4SGVpZ2h0XCI+PihcbiAgKHsgdGhlbWUsIG1heEhlaWdodCB9KSA9PiAoe1xuICAgIG1heEhlaWdodCxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICBwYWRkaW5nOiBgJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c30gMGAsXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uc0xpc3Qoe1xuICBpc09wZW4sXG4gIGlzTXVsdGlTZWxlY3QgPSBmYWxzZSxcbiAgdmFsdWUsXG4gIGRpc2FibGVkLFxuICBvcHRpb25zLFxuICBwb3J0YWxDb250YWluZXIsXG4gIHRyaWdnZXJSZWYsXG4gIHRyaWdnZXJXcmFwcGVyUmVmLFxuICBtYXhIZWlnaHQsXG4gIGVtcHR5U3RhdGVNZXNzYWdlID0gXCJObyBvcHRpb25zIGF2YWlsYWJsZVwiLFxuICBzZWxlY3RlZEluZGV4LFxuICBvcHRpb25zTGlzdFdpZHRoLFxuICBpc1ZpcnR1YWxpemVkID0gdHJ1ZSxcbiAgbmFtZSxcbiAgb25DbG9zZURyb3Bkb3duLFxuICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UsXG4gIGZvcmNlQ2hhbmdlRmFrZVNlbGVjdCxcbn06IE9wdGlvbnNMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBvcHRpb25zTGlzdFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdENvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGlzdEl0ZW1zUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCByZWZGb3JQb3NpdGlvbmluZyA9IHRyaWdnZXJXcmFwcGVyUmVmIHx8IHRyaWdnZXJSZWY7XG4gIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+XG4gICAgICAgIGlzTXVsdGlTZWxlY3QgPyB2YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpIDogb3B0aW9uLnZhbHVlID09PSB2YWx1ZVxuICAgICAgKSxcbiAgICBbb3B0aW9ucywgaXNNdWx0aVNlbGVjdCwgdmFsdWVdXG4gICk7XG5cbiAgY29uc3QgeyBtZW51U3R5bGU6IG9wdGlvbnNMaXN0U3R5bGUsIGNhbGN1bGF0ZVN0eWxlIH0gPSB1c2VQb3B1cE1lbnUoe1xuICAgIHRyaWdnZXJSZWY6IHJlZkZvclBvc2l0aW9uaW5nLFxuICAgIG1lbnVSZWY6IG9wdGlvbnNMaXN0UmVmLFxuICAgIGlzT3BlbixcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBpc09wZW4gJiZcbiAgICAgIGxpc3RDb250YWluZXJSZWYuY3VycmVudCAmJlxuICAgICAgIWlzVmlydHVhbGl6ZWQgJiZcbiAgICAgIG9wdGlvbnNMaXN0U3R5bGUudG9wXG4gICAgKSB7XG4gICAgICBjb25zdCBsaXN0RWxtID0gbGlzdENvbnRhaW5lclJlZi5jdXJyZW50O1xuICAgICAgLy8gZGV0ZXJtaW5lIG92ZXJmbG93XG4gICAgICBpZiAobGlzdEVsbS5jbGllbnRIZWlnaHQgPCBsaXN0RWxtLnNjcm9sbEhlaWdodCkge1xuICAgICAgICBsaXN0SXRlbXNSZWYuY3VycmVudCA9IGxpc3RFbG0ucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWxpc3QtaXRlbV1cIik7XG4gICAgICAgIHNjcm9sbFRvSXRlbShsaXN0SXRlbXNSZWYuY3VycmVudCwgYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdEl0ZW1zUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW1xuICAgIGlzT3BlbixcbiAgICBpc1ZpcnR1YWxpemVkLFxuICAgIGxpc3RDb250YWluZXJSZWYsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhIZWlnaHQsXG4gICAgb3B0aW9uc0xpc3RTdHlsZSxcbiAgICBhY3RpdmVJdGVtSW5kZXgsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxpc3RJdGVtc1JlZi5jdXJyZW50KSB7XG4gICAgICBzY3JvbGxUb0l0ZW0obGlzdEl0ZW1zUmVmLmN1cnJlbnQsIHNlbGVjdGVkSW5kZXgpO1xuICAgIH1cbiAgfSwgW2xpc3RJdGVtc1JlZiwgc2VsZWN0ZWRJbmRleF0pO1xuXG4gIHVzZUtleWJvYXJkKFxuICAgIHtcbiAgICAgIEVzY2FwZTogKCkgPT4gb25DbG9zZURyb3Bkb3duKHRydWUpLFxuICAgICAgRW50ZXI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zW3NlbGVjdGVkSW5kZXhdO1xuXG4gICAgICAgIGlmICghcHJlc2VsZWN0ZWRPcHRpb24/LmRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKHByZXNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICBmb3JjZUNoYW5nZUZha2VTZWxlY3QocHJlc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICAgIG9uQ2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc011bHRpU2VsZWN0KSB7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBBcnJvd1VwOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4ID4gMCkge1xuICAgICAgICAgIG5ld0luZGV4IC09IDE7XG4gICAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgc2VsZWN0aW9uIGlmIHRoZSBuZXcgaXRlbSBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKCFvcHRpb25zW25ld0luZGV4XT8uZGlzYWJsZWQpIHtcbiAgICAgICAgICBvblNlbGVjdGVkSW5kZXhDaGFuZ2UobmV3SW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQXJyb3dEb3duOiAoKSA9PiB7XG4gICAgICAgIGxldCBuZXdJbmRleCA9IHNlbGVjdGVkSW5kZXggPT09IC0xID8gYWN0aXZlSXRlbUluZGV4IDogc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgd2hpbGUgKG5ld0luZGV4IDwgb3B0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgbmV3SW5kZXggKz0gMTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBzZWxlY3Rpb24gaWYgdGhlIG5ldyBpdGVtIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgICBpZiAoIW9wdGlvbnNbbmV3SW5kZXhdPy5kaXNhYmxlZCkge1xuICAgICAgICAgIG9uU2VsZWN0ZWRJbmRleENoYW5nZShuZXdJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB0cmlnZ2VyUmVmLFxuICAgIGlzT3BlbiAmJiAhZGlzYWJsZWRcbiAgKTtcblxuICBjb25zdCByZW5kZXJJdGVtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcHRpb246IFNlbGVjdE9wdGlvbiA9IG9wdGlvbnNbaW5kZXhdO1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIG9wdGlvblxuICAgIGNvbnN0IGlkID0gZ2V0T3B0aW9uSWQobmFtZSwgb3B0aW9uLnZhbHVlKTtcblxuICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpc0FjdGl2ZSA9IHZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDdXN0b21PcHRpb25cbiAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgICAgZGlzYWJsZWQ9e29wdGlvbi5kaXNhYmxlZH1cbiAgICAgICAgICBwcmVTZWxlY3RlZD17c2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICAvLyBzdG9wIGV2ZW50IHByb3BhZ2F0aW9uIHRvIG5vdCBjbG9zZSBtb2RhbCBvbiBzZWxlY3Rpb24gaWYgc2VsZWN0IGlzIHdpdGhpbiBhIE1vZGFsXG4gICAgICAgICAgb25DbGljaz17KGV2dCkgPT4gZXZ0LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICA+XG4gICAgICAgICAgPENoZWNrYm94UmF3XG4gICAgICAgICAgICBuYW1lPVwiXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGxhYmVsPXtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgIGxhYmVsSGludD17b3B0aW9uPy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0N1c3RvbU9wdGlvbj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZWxzZSByZW5kZXIgc2luZ2xlIHNlbGVjdCBpdGVtXG4gICAgY29uc3QgaXNBY3RpdmUgPSB2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvblRleHQgPSAoXG4gICAgICA8U3RhY2sgc3BhY2U9XCJ6ZXJvXCI+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtXCI+XG4gICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICB7b3B0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCIgc2l6ZT1cInNcIj5cbiAgICAgICAgICAgIHtvcHRpb24uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRPcHRpb25cbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2lzQWN0aXZlfVxuICAgICAgICBhcmlhLWRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgIGFjdGl2ZT17aXNBY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtvcHRpb24uZGlzYWJsZWR9XG4gICAgICAgIHByZVNlbGVjdGVkPXtzZWxlY3RlZEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgZGF0YS1saXN0LWl0ZW1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBpZiAoIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZm9yY2VDaGFuZ2VGYWtlU2VsZWN0KG9wdGlvbik7XG4gICAgICAgICAgICBvbkNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPElubGluZSBub1dyYXAgYWxpZ25JdGVtcz1cInNwYWNlQmV0d2VlblwiPlxuICAgICAgICAgICAge29wdGlvblRleHR9XG4gICAgICAgICAgICA8Qm94IHNwYWNlPVwiemVyb1wiIHRTcGFjZT1cInh4eHNcIj5cbiAgICAgICAgICAgICAgPEljb24gbmFtZT1cImNoZWNrXCIgc2l6ZT1cInNcIiBjb2xvcj1cImFjY2VudFwiIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBvcHRpb25UZXh0XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZE9wdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxpc3RTdHlsZSA9IHtcbiAgICAuLi5vcHRpb25zTGlzdFN0eWxlLFxuICAgIHdpZHRoOlxuICAgICAgb3B0aW9uc0xpc3RXaWR0aCB8fFxuICAgICAgcmVmRm9yUG9zaXRpb25pbmcuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXG4gIH07XG5cbiAgY29uc3QgbGlzdEVsbSA9IChcbiAgICA8U3R5bGVkRHJvcGRvd25cbiAgICAgIHN0eWxlPXtsaXN0U3R5bGV9XG4gICAgICByZWY9e29wdGlvbnNMaXN0UmVmfVxuICAgICAgLy8gdGhpcyBpcyB0byBwcmV2ZW50IGtub3duIGJ1ZyBvZiBDaHJvbWUgd2hlbiBlbGVtZW50XG4gICAgICAvLyBsb3NlcyBmb2N1cyBvbiBjbGljayBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgICBvbk1vdXNlRG93bj17KGUpID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9XCJvcHRpb25zTGlzdFwiXG4gICAgPlxuICAgICAge2lzVmlydHVhbGl6ZWQgPyAoXG4gICAgICAgIDxWaXJ0dWFsU2Nyb2xsTGlzdFxuICAgICAgICAgIGlkPXtnZXRPcHRpb25zTGlzdElkKG5hbWUpfVxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIGl0ZW1IZWlnaHQ9ezM2fVxuICAgICAgICAgIGl0ZW1BbW91bnQ9e29wdGlvbnMubGVuZ3RofVxuICAgICAgICAgIGVtcHR5U3RhdGU9eygpID0+IG51bGx9XG4gICAgICAgICAgY29udGFpbmVyU3R5bGU9e2Ryb3Bkb3duQ29udGFpbmVyU3R5bGV9XG4gICAgICAgICAgaXRlbUluVmlldz17c2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBpdGVtVGVtcGxhdGU9e3JlbmRlckl0ZW19XG4gICAgICAgICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPXtjYWxjdWxhdGVTdHlsZX1cbiAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkTGlzdENvbnRhaW5lclxuICAgICAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICBpZD17Z2V0T3B0aW9uc0xpc3RJZChuYW1lKX1cbiAgICAgICAgICByZWY9e2xpc3RDb250YWluZXJSZWZ9XG4gICAgICAgID5cbiAgICAgICAgICB7b3B0aW9ucy5tYXAoKF9vcHRpb24sIGluZGV4KSA9PiByZW5kZXJJdGVtKGluZGV4KSl9XG4gICAgICAgIDwvU3R5bGVkTGlzdENvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgPC9TdHlsZWREcm9wZG93bj5cbiAgKTtcblxuICBpZiAoIWlzT3Blbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGlzdFBvcnRhbCA9IG9wdGlvbnMubGVuZ3RoID8gKFxuICAgIDxQb3J0YWwgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9PntsaXN0RWxtfTwvUG9ydGFsPlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dCByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgIHshb3B0aW9ucy5sZW5ndGggPyBlbXB0eVN0YXRlTWVzc2FnZSA6IFwiXCJ9XG4gICAgICA8L1NjcmVlblJlYWRlclRleHQ+XG4gICAgICB7bGlzdFBvcnRhbH1cbiAgICA8Lz5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwRDRCIn0= */");export function OptionsList({isOpen,isMultiSelect=!1,value,disabled,options,portalContainer,triggerRef,triggerWrapperRef,maxHeight,emptyStateMessage="No options available",selectedIndex,optionsListWidth,isVirtualized=!0,name,onCloseDropdown,onSelectedIndexChange,forceChangeFakeSelect}){let optionsListRef=useRef(null),listContainerRef=useRef(null),listItemsRef=useRef(null),refForPositioning=triggerWrapperRef||triggerRef,activeItemIndex=useMemo(()=>options.findIndex(option=>isMultiSelect?value.includes(option.value):option.value===value),[options,isMultiSelect,value]),{menuStyle:optionsListStyle,calculateStyle}=usePopupMenu({triggerRef:refForPositioning,menuRef:optionsListRef,isOpen});useEffect(()=>{if(isOpen&&listContainerRef.current&&!isVirtualized&&optionsListStyle.top){let listElm=listContainerRef.current;listElm.clientHeight<listElm.scrollHeight&&(listItemsRef.current=listElm.querySelectorAll("[data-list-item]"),scrollToItem(listItemsRef.current,activeItemIndex))}else listItemsRef.current=null},[isOpen,isVirtualized,listContainerRef,options,maxHeight,optionsListStyle,activeItemIndex]),useEffect(()=>{listItemsRef.current&&scrollToItem(listItemsRef.current,selectedIndex)},[listItemsRef,selectedIndex]),useKeyboard({Escape:()=>onCloseDropdown(!0),Enter:()=>{let preselectedOption=options[selectedIndex];if(!preselectedOption?.disabled){if(preselectedOption){forceChangeFakeSelect(preselectedOption),isMultiSelect||onCloseDropdown(!0);return}isMultiSelect||onCloseDropdown()}},ArrowUp:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex>0&&(newIndex-=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)},ArrowDown:()=>{let newIndex=-1===selectedIndex?activeItemIndex:selectedIndex;for(;newIndex<options.length-1&&(newIndex+=1,options[newIndex]?.disabled););options[newIndex]?.disabled||onSelectedIndexChange(newIndex)}},triggerRef,isOpen&&!disabled);let renderItem=index=>{let option=options[index],id=getOptionId(name,option.value);if(isMultiSelect){let isActive=value.includes(option.value);return React.createElement(CustomOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||forceChangeFakeSelect(option)},onClick:evt=>evt.stopPropagation()},React.createElement(CheckboxRaw,{name:"",disabled:option.disabled,checked:isActive,size:"s",label:option.label,onChange:()=>null,labelHint:option?.description}))}let isActive=value===option.value,optionText=React.createElement(Stack,{space:"zero"},React.createElement(Text,{color:"primary",size:"m"},option.label),option.description&&React.createElement(Text,{color:"tertiary",size:"s"},option.description));return React.createElement(StyledOption,{role:"option","aria-selected":isActive,"aria-disabled":option.disabled,id:id,key:option.value,active:isActive,disabled:option.disabled,preSelected:selectedIndex===index,"data-list-item":!0,onMouseDown:()=>{option.disabled||(forceChangeFakeSelect(option),onCloseDropdown(!0))}},isActive?React.createElement(Inline,{noWrap:!0,alignItems:"spaceBetween"},optionText,React.createElement(Box,{space:"zero",tSpace:"xxxs"},React.createElement(Icon,{name:"check",size:"s",color:"accent"}))):optionText)},listStyle={...optionsListStyle,width:optionsListWidth||refForPositioning.current?.getBoundingClientRect().width},listElm=React.createElement(StyledDropdown,{style:listStyle,ref:optionsListRef,onMouseDown:e=>e.preventDefault(),"data-e2e-test-id":"optionsList"},isVirtualized?React.createElement(VirtualScrollList,{id:getOptionsListId(name),maxHeight:maxHeight,itemHeight:36,itemAmount:options.length,emptyState:()=>null,containerStyle:dropdownContainerStyle,itemInView:selectedIndex,itemTemplate:renderItem,onContentHeightChange:calculateStyle,role:"listbox"}):React.createElement(StyledListContainer,{maxHeight:maxHeight,role:"listbox",id:getOptionsListId(name),ref:listContainerRef},options.map((_option,index)=>renderItem(index))));if(!isOpen)return null;let listPortal=options.length?React.createElement(Portal,{portalContainer:portalContainer},listElm):null;return React.createElement(React.Fragment,null,React.createElement(ScreenReaderText,{role:"status","aria-live":"polite"},options.length?"":emptyStateMessage),listPortal)}
|
|
@@ -3,12 +3,16 @@ export type VirtualScrollListProps = {
|
|
|
3
3
|
"data-e2e-test-id"?: string;
|
|
4
4
|
id: string;
|
|
5
5
|
maxHeight: number;
|
|
6
|
+
/** initial estimate for virtual scrolling calculations, helps estimate how many
|
|
7
|
+
* items fit in the viewport before real measurements.
|
|
8
|
+
*/
|
|
6
9
|
itemHeight: number;
|
|
7
10
|
itemAmount: number;
|
|
8
|
-
emptyState
|
|
11
|
+
emptyState?: () => React.ReactNode;
|
|
9
12
|
itemInView: number;
|
|
10
13
|
itemTemplate: (index: number) => React.ReactNode;
|
|
11
14
|
containerStyle?: React.CSSProperties;
|
|
12
15
|
onContentHeightChange?: () => void;
|
|
16
|
+
role?: React.AriaRole;
|
|
13
17
|
};
|
|
14
|
-
export declare function VirtualScrollList({ id, maxHeight, itemHeight, itemAmount, emptyState, itemInView, itemTemplate, containerStyle, "data-e2e-test-id": dataE2eTestId, onContentHeightChange, }: VirtualScrollListProps): React.ReactElement;
|
|
18
|
+
export declare function VirtualScrollList({ id, maxHeight, itemHeight, itemAmount, emptyState, itemInView, itemTemplate, containerStyle, "data-e2e-test-id": dataE2eTestId, onContentHeightChange, role, }: VirtualScrollListProps): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import styled from"@emotion/styled";import React,{useRef,useReducer,useLayoutEffect,useEffect}from"react";import{VirtualScrollReducer}from"./VirtualScrollListReducer";let StyledContainer=styled("div",{target:"e1hq8rdx0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBvdmVyc2NhbiA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gVmlydHVhbFNjcm9sbExpc3Qoe1xuICBpZCxcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBjb250YWluZXJTdHlsZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIG9uQ29udGVudEhlaWdodENoYW5nZSxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYWRqdXN0ZWRGb3JSZWZsb3cgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBzY3JvbGxlZEl0ZW1Db3VudCxcbiAgICAgIGFtb3VudE9mSXRlbXNJblZpZXcsXG4gICAgICBzY3JvbGxlZEluUHgsXG4gICAgICBtYXhDb250ZW50SGVpZ2h0ID0gbWF4SGVpZ2h0LFxuICAgICAgcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbixcbiAgICB9LFxuICAgIGRpc3BhdGNoLFxuICBdID0gdXNlUmVkdWNlcihWaXJ0dWFsU2Nyb2xsUmVkdWNlciwge30pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcInJlc2V0XCIsIGl0ZW1IZWlnaHQsIG1heEhlaWdodCwgb3ZlcnNjYW4gfSk7XG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gIH0sIFtpdGVtSGVpZ2h0LCBpdGVtQW1vdW50LCBtYXhIZWlnaHRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwicmVjb21tZW5kU2Nyb2xsUG9zaXRpb25cIixcbiAgICAgIHNjcm9sbFRvcDogc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIGl0ZW1Ub0JlSW5WaWV3OiBpdGVtSW5WaWV3LFxuICAgIH0pO1xuICB9LCBbaXRlbUluVmlld10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24gPT09IG51bGwpIHJldHVybjtcblxuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uO1xuICB9LCBbcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbl0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2aWV3cG9ydFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uQ29udGVudEhlaWdodENoYW5nZT8uKCk7XG4gIH0sIFttYXhDb250ZW50SGVpZ2h0LCBvbkNvbnRlbnRIZWlnaHRDaGFuZ2VdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICAvKiBTb21ldGltZXMsIG9wdGlvbiB0ZXh0IGNhbiByZWZsb3cgZHVlIHRoZSBhcHBlYXJhbmNlIG9mIHZlcnRpY2FsIHNjcm9sbGJhciB3aGljaCBjYW4gY2F1c2UgdGV4dCB0byB3cmFwIHRvIG11bHRpcGxlIGxpbmVzIGNhdXNpbmcgdmlld3BvcnRSZWYgaGVpZ2h0IHRvIGNoYW5nZS4gSWYgY29udGFpbmVyIGhhcyBzY3JvbGwgdGhlbiB3ZSBkaXNwYXRjaCBgdXBkYXRlVmlld3BvcnRgIG9uZSBtb3JlIHRpbWUgdG8gZ2V0IHRoZSBjb3JyZWN0IGhlaWdodCwgd2l0aCBhIHNldFRpbWVvdXQgdG8gYWxsb3cgdGltZSBmb3IgcmVmbG93LlxuICAgKi9cbiAgaWYgKFxuICAgIG1heENvbnRlbnRIZWlnaHQgPiBtYXhIZWlnaHQgJiZcbiAgICAhYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCAmJlxuICAgIHZpZXdwb3J0UmVmLmN1cnJlbnRcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgICAgdmlld3BvcnROb2RlOiB2aWV3cG9ydFJlZi5jdXJyZW50LFxuICAgICAgICBpdGVtQW1vdW50LFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbWF4SGVpZ2h0LFxuICAgICAgICAuLi5jb250YWluZXJTdHlsZSxcbiAgICAgIH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD1cIlZpcnR1YWxTY3JvbGxMaXN0XCJcbiAgICAgIG9uU2Nyb2xsPXsoZTogUmVhY3QuVUlFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc2Nyb2xsVG9wOiBlLmN1cnJlbnRUYXJnZXQuc2Nyb2xsVG9wLFxuICAgICAgICB9KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAge2l0ZW1BbW91bnQgPT09IDAgPyAoXG4gICAgICAgIGVtcHR5U3RhdGUoKVxuICAgICAgKSA6IChcbiAgICAgICAgPFN0eWxlZFNjcm9sbGFibGVDb250ZW50IG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17dmlld3BvcnRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7c2Nyb2xsZWRJblB4fXB4YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyEhaXRlbUNvdW50VG9CZVJlbmRlcmVkICYmXG4gICAgICAgICAgICAgIG5ldyBBcnJheShpdGVtQ291bnRUb0JlUmVuZGVyZWQpXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gaXRlbVRlbXBsYXRlKHNjcm9sbGVkSXRlbUNvdW50ICsgaW5kZXgpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRTY3JvbGxhYmxlQ29udGVudD5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS3dCIn0= */"),StyledScrollableContent=styled("div",{target:"e1hq8rdx1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBvdmVyc2NhbiA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gVmlydHVhbFNjcm9sbExpc3Qoe1xuICBpZCxcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBjb250YWluZXJTdHlsZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gIG9uQ29udGVudEhlaWdodENoYW5nZSxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgYWRqdXN0ZWRGb3JSZWZsb3cgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IFtcbiAgICB7XG4gICAgICBzY3JvbGxlZEl0ZW1Db3VudCxcbiAgICAgIGFtb3VudE9mSXRlbXNJblZpZXcsXG4gICAgICBzY3JvbGxlZEluUHgsXG4gICAgICBtYXhDb250ZW50SGVpZ2h0ID0gbWF4SGVpZ2h0LFxuICAgICAgcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbixcbiAgICB9LFxuICAgIGRpc3BhdGNoLFxuICBdID0gdXNlUmVkdWNlcihWaXJ0dWFsU2Nyb2xsUmVkdWNlciwge30pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcInJlc2V0XCIsIGl0ZW1IZWlnaHQsIG1heEhlaWdodCwgb3ZlcnNjYW4gfSk7XG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gIH0sIFtpdGVtSGVpZ2h0LCBpdGVtQW1vdW50LCBtYXhIZWlnaHRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwicmVjb21tZW5kU2Nyb2xsUG9zaXRpb25cIixcbiAgICAgIHNjcm9sbFRvcDogc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIGl0ZW1Ub0JlSW5WaWV3OiBpdGVtSW5WaWV3LFxuICAgIH0pO1xuICB9LCBbaXRlbUluVmlld10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24gPT09IG51bGwpIHJldHVybjtcblxuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uO1xuICB9LCBbcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbl0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2aWV3cG9ydFJlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uQ29udGVudEhlaWdodENoYW5nZT8uKCk7XG4gIH0sIFttYXhDb250ZW50SGVpZ2h0LCBvbkNvbnRlbnRIZWlnaHRDaGFuZ2VdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICAvKiBTb21ldGltZXMsIG9wdGlvbiB0ZXh0IGNhbiByZWZsb3cgZHVlIHRoZSBhcHBlYXJhbmNlIG9mIHZlcnRpY2FsIHNjcm9sbGJhciB3aGljaCBjYW4gY2F1c2UgdGV4dCB0byB3cmFwIHRvIG11bHRpcGxlIGxpbmVzIGNhdXNpbmcgdmlld3BvcnRSZWYgaGVpZ2h0IHRvIGNoYW5nZS4gSWYgY29udGFpbmVyIGhhcyBzY3JvbGwgdGhlbiB3ZSBkaXNwYXRjaCBgdXBkYXRlVmlld3BvcnRgIG9uZSBtb3JlIHRpbWUgdG8gZ2V0IHRoZSBjb3JyZWN0IGhlaWdodCwgd2l0aCBhIHNldFRpbWVvdXQgdG8gYWxsb3cgdGltZSBmb3IgcmVmbG93LlxuICAgKi9cbiAgaWYgKFxuICAgIG1heENvbnRlbnRIZWlnaHQgPiBtYXhIZWlnaHQgJiZcbiAgICAhYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCAmJlxuICAgIHZpZXdwb3J0UmVmLmN1cnJlbnRcbiAgKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgICAgdmlld3BvcnROb2RlOiB2aWV3cG9ydFJlZi5jdXJyZW50LFxuICAgICAgICBpdGVtQW1vdW50LFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYWRqdXN0ZWRGb3JSZWZsb3cuY3VycmVudCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgbWF4SGVpZ2h0LFxuICAgICAgICAuLi5jb250YWluZXJTdHlsZSxcbiAgICAgIH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgZGF0YS1kcy1pZD1cIlZpcnR1YWxTY3JvbGxMaXN0XCJcbiAgICAgIG9uU2Nyb2xsPXsoZTogUmVhY3QuVUlFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc2Nyb2xsVG9wOiBlLmN1cnJlbnRUYXJnZXQuc2Nyb2xsVG9wLFxuICAgICAgICB9KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAge2l0ZW1BbW91bnQgPT09IDAgPyAoXG4gICAgICAgIGVtcHR5U3RhdGUoKVxuICAgICAgKSA6IChcbiAgICAgICAgPFN0eWxlZFNjcm9sbGFibGVDb250ZW50IG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17dmlld3BvcnRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7c2Nyb2xsZWRJblB4fXB4YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByb2xlPVwibGlzdGJveFwiXG4gICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgeyEhaXRlbUNvdW50VG9CZVJlbmRlcmVkICYmXG4gICAgICAgICAgICAgIG5ldyBBcnJheShpdGVtQ291bnRUb0JlUmVuZGVyZWQpXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAubWFwKChfLCBpbmRleCkgPT4gaXRlbVRlbXBsYXRlKHNjcm9sbGVkSXRlbUNvdW50ICsgaW5kZXgpKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRTY3JvbGxhYmxlQ29udGVudD5cbiAgICAgICl9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY2dDIn0= */");export function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange}){let scrollableContainerRef=useRef(null),viewportRef=useRef(null),adjustedForReflow=useRef(!1),[{scrolledItemCount,amountOfItemsInView,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=useReducer(VirtualScrollReducer,{});useLayoutEffect(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10}),scrollableContainerRef.current.scrollTop=0},[itemHeight,itemAmount,maxHeight]),useEffect(()=>{dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainerRef.current.scrollTop,itemToBeInView:itemInView})},[itemInView]),useEffect(()=>{null!==recommendedScrollPosition&&(scrollableContainerRef.current.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),useLayoutEffect(()=>{viewportRef.current&&dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})},[itemAmount,scrolledItemCount]),useEffect(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})}),adjustedForReflow.current=!0),React.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():React.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},React.createElement("div",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:"listbox",id:id},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
|
|
1
|
+
import styled from"@emotion/styled";import React,{useRef,useReducer,useLayoutEffect,useEffect}from"react";import{VirtualScrollReducer}from"./VirtualScrollListReducer";let StyledContainer=styled("div",{target:"e1leajmg0",label:"StyledContainer"})(({maxHeight})=>({overflow:"auto",width:"100%",height:"100%",maxHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIC8qKiBpbml0aWFsIGVzdGltYXRlIGZvciB2aXJ0dWFsIHNjcm9sbGluZyBjYWxjdWxhdGlvbnMsIGhlbHBzIGVzdGltYXRlIGhvdyBtYW55XG4gICAqIGl0ZW1zIGZpdCBpbiB0aGUgdmlld3BvcnQgYmVmb3JlIHJlYWwgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXRlbUhlaWdodDogbnVtYmVyO1xuICBpdGVtQW1vdW50OiBudW1iZXI7XG4gIGVtcHR5U3RhdGU/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbn07XG5cbmNvbnN0IG92ZXJzY2FuID0gMTA7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXJ0dWFsU2Nyb2xsTGlzdCh7XG4gIGlkLFxuICBtYXhIZWlnaHQsXG4gIGl0ZW1IZWlnaHQsXG4gIGl0ZW1BbW91bnQsXG4gIGVtcHR5U3RhdGUgPSAoKSA9PiBudWxsLFxuICBpdGVtSW5WaWV3LFxuICBpdGVtVGVtcGxhdGUsXG4gIGNvbnRhaW5lclN0eWxlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbiAgb25Db250ZW50SGVpZ2h0Q2hhbmdlLFxuICByb2xlLFxufTogVmlydHVhbFNjcm9sbExpc3RQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGFibGVDb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHZpZXdwb3J0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBhZGp1c3RlZEZvclJlZmxvdyA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHNjcm9sbGVkSXRlbUNvdW50LFxuICAgICAgYW1vdW50T2ZJdGVtc0luVmlldyxcbiAgICAgIHNjcm9sbGVkSW5QeCxcbiAgICAgIG1heENvbnRlbnRIZWlnaHQgPSBtYXhIZWlnaHQsXG4gICAgICByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uLFxuICAgIH0sXG4gICAgZGlzcGF0Y2gsXG4gIF0gPSB1c2VSZWR1Y2VyKFZpcnR1YWxTY3JvbGxSZWR1Y2VyLCB7fSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwicmVzZXRcIiwgaXRlbUhlaWdodCwgbWF4SGVpZ2h0LCBvdmVyc2NhbiB9KTtcbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gMDtcbiAgfSwgW2l0ZW1IZWlnaHQsIGl0ZW1BbW91bnQsIG1heEhlaWdodF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJyZWNvbW1lbmRTY3JvbGxQb3NpdGlvblwiLFxuICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wLFxuICAgICAgaXRlbVRvQmVJblZpZXc6IGl0ZW1JblZpZXcsXG4gICAgfSk7XG4gIH0sIFtpdGVtSW5WaWV3XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbiA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb247XG4gIH0sIFtyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgIHZpZXdwb3J0Tm9kZTogdmlld3BvcnRSZWYuY3VycmVudCxcbiAgICAgIGl0ZW1BbW91bnQsXG4gICAgfSk7XG4gIH0sIFtpdGVtQW1vdW50LCBzY3JvbGxlZEl0ZW1Db3VudF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPy4oKTtcbiAgfSwgW21heENvbnRlbnRIZWlnaHQsIG9uQ29udGVudEhlaWdodENoYW5nZV0pO1xuXG4gIGNvbnN0IGl0ZW1Db3VudFRvQmVSZW5kZXJlZCA9IE1hdGgubWluKFxuICAgIE1hdGgubWF4KDAsIGl0ZW1BbW91bnQgLSBzY3JvbGxlZEl0ZW1Db3VudCksXG4gICAgYW1vdW50T2ZJdGVtc0luVmlld1xuICApO1xuXG4gIC8qIFNvbWV0aW1lcywgb3B0aW9uIHRleHQgY2FuIHJlZmxvdyBkdWUgdGhlIGFwcGVhcmFuY2Ugb2YgdmVydGljYWwgc2Nyb2xsYmFyIHdoaWNoIGNhbiBjYXVzZSB0ZXh0IHRvIHdyYXAgdG8gbXVsdGlwbGUgbGluZXMgY2F1c2luZyB2aWV3cG9ydFJlZiBoZWlnaHQgdG8gY2hhbmdlLiBJZiBjb250YWluZXIgaGFzIHNjcm9sbCB0aGVuIHdlIGRpc3BhdGNoIGB1cGRhdGVWaWV3cG9ydGAgb25lIG1vcmUgdGltZSB0byBnZXQgdGhlIGNvcnJlY3QgaGVpZ2h0LCB3aXRoIGEgc2V0VGltZW91dCB0byBhbGxvdyB0aW1lIGZvciByZWZsb3cuXG4gICAqL1xuICBpZiAoXG4gICAgbWF4Q29udGVudEhlaWdodCA+IG1heEhlaWdodCAmJlxuICAgICFhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ICYmXG4gICAgdmlld3BvcnRSZWYuY3VycmVudFxuICApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogXCJ1cGRhdGVWaWV3cG9ydFwiLFxuICAgICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICAgIGl0ZW1BbW91bnQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgcmVmPXtzY3JvbGxhYmxlQ29udGFpbmVyUmVmfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgIC4uLmNvbnRhaW5lclN0eWxlLFxuICAgICAgfX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPVwiVmlydHVhbFNjcm9sbExpc3RcIlxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICByZWY9e3ZpZXdwb3J0UmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3Njcm9sbGVkSW5QeH1weGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUt3QiJ9 */"),StyledScrollableContent=styled("div",{target:"e1leajmg1",label:"StyledScrollableContent"})(({maxContentHeight})=>({overflow:"hidden",boxSizing:"border-box",height:maxContentHeight}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVmlydHVhbFNjcm9sbExpc3QvVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9WaXJ0dWFsU2Nyb2xsTGlzdC9WaXJ0dWFsU2Nyb2xsTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIC8qKiBpbml0aWFsIGVzdGltYXRlIGZvciB2aXJ0dWFsIHNjcm9sbGluZyBjYWxjdWxhdGlvbnMsIGhlbHBzIGVzdGltYXRlIGhvdyBtYW55XG4gICAqIGl0ZW1zIGZpdCBpbiB0aGUgdmlld3BvcnQgYmVmb3JlIHJlYWwgbWVhc3VyZW1lbnRzLlxuICAgKi9cbiAgaXRlbUhlaWdodDogbnVtYmVyO1xuICBpdGVtQW1vdW50OiBudW1iZXI7XG4gIGVtcHR5U3RhdGU/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIG9uQ29udGVudEhlaWdodENoYW5nZT86ICgpID0+IHZvaWQ7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbn07XG5cbmNvbnN0IG92ZXJzY2FuID0gMTA7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXJ0dWFsU2Nyb2xsTGlzdCh7XG4gIGlkLFxuICBtYXhIZWlnaHQsXG4gIGl0ZW1IZWlnaHQsXG4gIGl0ZW1BbW91bnQsXG4gIGVtcHR5U3RhdGUgPSAoKSA9PiBudWxsLFxuICBpdGVtSW5WaWV3LFxuICBpdGVtVGVtcGxhdGUsXG4gIGNvbnRhaW5lclN0eWxlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbiAgb25Db250ZW50SGVpZ2h0Q2hhbmdlLFxuICByb2xlLFxufTogVmlydHVhbFNjcm9sbExpc3RQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGFibGVDb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHZpZXdwb3J0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBhZGp1c3RlZEZvclJlZmxvdyA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29uc3QgW1xuICAgIHtcbiAgICAgIHNjcm9sbGVkSXRlbUNvdW50LFxuICAgICAgYW1vdW50T2ZJdGVtc0luVmlldyxcbiAgICAgIHNjcm9sbGVkSW5QeCxcbiAgICAgIG1heENvbnRlbnRIZWlnaHQgPSBtYXhIZWlnaHQsXG4gICAgICByZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uLFxuICAgIH0sXG4gICAgZGlzcGF0Y2gsXG4gIF0gPSB1c2VSZWR1Y2VyKFZpcnR1YWxTY3JvbGxSZWR1Y2VyLCB7fSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwicmVzZXRcIiwgaXRlbUhlaWdodCwgbWF4SGVpZ2h0LCBvdmVyc2NhbiB9KTtcbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gMDtcbiAgfSwgW2l0ZW1IZWlnaHQsIGl0ZW1BbW91bnQsIG1heEhlaWdodF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJyZWNvbW1lbmRTY3JvbGxQb3NpdGlvblwiLFxuICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wLFxuICAgICAgaXRlbVRvQmVJblZpZXc6IGl0ZW1JblZpZXcsXG4gICAgfSk7XG4gIH0sIFtpdGVtSW5WaWV3XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbiA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb247XG4gIH0sIFtyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwidXBkYXRlVmlld3BvcnRcIixcbiAgICAgIHZpZXdwb3J0Tm9kZTogdmlld3BvcnRSZWYuY3VycmVudCxcbiAgICAgIGl0ZW1BbW91bnQsXG4gICAgfSk7XG4gIH0sIFtpdGVtQW1vdW50LCBzY3JvbGxlZEl0ZW1Db3VudF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb25Db250ZW50SGVpZ2h0Q2hhbmdlPy4oKTtcbiAgfSwgW21heENvbnRlbnRIZWlnaHQsIG9uQ29udGVudEhlaWdodENoYW5nZV0pO1xuXG4gIGNvbnN0IGl0ZW1Db3VudFRvQmVSZW5kZXJlZCA9IE1hdGgubWluKFxuICAgIE1hdGgubWF4KDAsIGl0ZW1BbW91bnQgLSBzY3JvbGxlZEl0ZW1Db3VudCksXG4gICAgYW1vdW50T2ZJdGVtc0luVmlld1xuICApO1xuXG4gIC8qIFNvbWV0aW1lcywgb3B0aW9uIHRleHQgY2FuIHJlZmxvdyBkdWUgdGhlIGFwcGVhcmFuY2Ugb2YgdmVydGljYWwgc2Nyb2xsYmFyIHdoaWNoIGNhbiBjYXVzZSB0ZXh0IHRvIHdyYXAgdG8gbXVsdGlwbGUgbGluZXMgY2F1c2luZyB2aWV3cG9ydFJlZiBoZWlnaHQgdG8gY2hhbmdlLiBJZiBjb250YWluZXIgaGFzIHNjcm9sbCB0aGVuIHdlIGRpc3BhdGNoIGB1cGRhdGVWaWV3cG9ydGAgb25lIG1vcmUgdGltZSB0byBnZXQgdGhlIGNvcnJlY3QgaGVpZ2h0LCB3aXRoIGEgc2V0VGltZW91dCB0byBhbGxvdyB0aW1lIGZvciByZWZsb3cuXG4gICAqL1xuICBpZiAoXG4gICAgbWF4Q29udGVudEhlaWdodCA+IG1heEhlaWdodCAmJlxuICAgICFhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ICYmXG4gICAgdmlld3BvcnRSZWYuY3VycmVudFxuICApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogXCJ1cGRhdGVWaWV3cG9ydFwiLFxuICAgICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICAgIGl0ZW1BbW91bnQsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBhZGp1c3RlZEZvclJlZmxvdy5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lclxuICAgICAgcmVmPXtzY3JvbGxhYmxlQ29udGFpbmVyUmVmfVxuICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgIC4uLmNvbnRhaW5lclN0eWxlLFxuICAgICAgfX1cbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICBkYXRhLWRzLWlkPVwiVmlydHVhbFNjcm9sbExpc3RcIlxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICByZWY9e3ZpZXdwb3J0UmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke3Njcm9sbGVkSW5QeH1weGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT17cm9sZX1cbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNnQyJ9 */");export function VirtualScrollList({id,maxHeight,itemHeight,itemAmount,emptyState=()=>null,itemInView,itemTemplate,containerStyle,"data-e2e-test-id":dataE2eTestId,onContentHeightChange,role}){let scrollableContainerRef=useRef(null),viewportRef=useRef(null),adjustedForReflow=useRef(!1),[{scrolledItemCount,amountOfItemsInView,scrolledInPx,maxContentHeight=maxHeight,recommendedScrollPosition},dispatch]=useReducer(VirtualScrollReducer,{});useLayoutEffect(()=>{dispatch({type:"reset",itemHeight,maxHeight,overscan:10}),scrollableContainerRef.current.scrollTop=0},[itemHeight,itemAmount,maxHeight]),useEffect(()=>{dispatch({type:"recommendScrollPosition",scrollTop:scrollableContainerRef.current.scrollTop,itemToBeInView:itemInView})},[itemInView]),useEffect(()=>{null!==recommendedScrollPosition&&(scrollableContainerRef.current.scrollTop=recommendedScrollPosition)},[recommendedScrollPosition]),useLayoutEffect(()=>{viewportRef.current&&dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})},[itemAmount,scrolledItemCount]),useEffect(()=>{onContentHeightChange?.()},[maxContentHeight,onContentHeightChange]);let itemCountToBeRendered=Math.min(Math.max(0,itemAmount-scrolledItemCount),amountOfItemsInView);return maxContentHeight>maxHeight&&!adjustedForReflow.current&&viewportRef.current&&(setTimeout(()=>{dispatch({type:"updateViewport",viewportNode:viewportRef.current,itemAmount})}),adjustedForReflow.current=!0),React.createElement(StyledContainer,{ref:scrollableContainerRef,maxHeight:maxHeight,style:{maxHeight,...containerStyle},"data-e2e-test-id":dataE2eTestId,"data-ds-id":"VirtualScrollList",onScroll:e=>{dispatch({type:"scroll",scrollTop:e.currentTarget.scrollTop})}},0===itemAmount?emptyState():React.createElement(StyledScrollableContent,{maxContentHeight:maxContentHeight},React.createElement("ul",{ref:viewportRef,style:{transform:`translateY(${scrolledInPx}px`},role:role,id:id},!!itemCountToBeRendered&&Array(itemCountToBeRendered).fill(0).map((_,index)=>itemTemplate(scrolledItemCount+index)))))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight=0)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+lastItemHeight},reduceScroll=(prevState,scrollTop)=>{let{topOffsets,overscan:tolerance}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=(prevState,viewportNode,itemAmount)=>{let{topOffsets=[],scrolledInPx,scrolledItemCount,avgItemHeight,lastItemHeight,maxHeight,overscan:tolerance}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;Array.from(viewportNode.children).forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.getBoundingClientRect().height)});for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+
|
|
1
|
+
let findClosestOffsetIndex=(arr,val)=>{let start=0,end=arr.length-1,mid=Math.floor((start+end)/2);for(;start<=end&&arr[mid=Math.floor((start+end)/2)].amount!==val;)val<arr[mid].amount?end=mid-1:start=mid+1;return mid},getMaxHeight=(maxAmountOfItems,offsets,lastItemHeight=0)=>{let amountOfOffsets=Math.min(offsets.length,maxAmountOfItems);return(offsets[amountOfOffsets-1]?.amount||0)+lastItemHeight},reduceScroll=(prevState,scrollTop)=>{let{topOffsets,overscan:tolerance}=prevState,scrolledItemCount=Math.max(0,findClosestOffsetIndex(topOffsets,scrollTop)-tolerance/2),scrolledInPx=topOffsets[scrolledItemCount]?.amount||0;return{...prevState,scrolledItemCount,scrolledInPx}},reduceUpdateViewport=(prevState,viewportNode,itemAmount)=>{let{topOffsets=[],scrolledInPx,scrolledItemCount,avgItemHeight,lastItemHeight,maxHeight,overscan:tolerance}=prevState,newTopOffsets=[...topOffsets],updatedLastItemHeight=lastItemHeight;Array.from(viewportNode.children).forEach((child,i)=>{newTopOffsets[i+scrolledItemCount]={amount:scrolledInPx+child.offsetTop,isInterpolated:!1},i+scrolledItemCount!==itemAmount-1||lastItemHeight||(updatedLastItemHeight=child.getBoundingClientRect().height)});let newAvgItemHeight=Math.max(avgItemHeight,viewportNode.getBoundingClientRect().height/(viewportNode.childElementCount||1));for(let i=0;i<itemAmount;i+=1)(!newTopOffsets[i]||newTopOffsets[i].isInterpolated)&&(newTopOffsets[i]={amount:newTopOffsets[i-1].amount+newAvgItemHeight,isInterpolated:!0});let maxContentHeight=getMaxHeight(itemAmount,newTopOffsets,updatedLastItemHeight);return{...prevState,lastItemHeight:updatedLastItemHeight,avgItemHeight:newAvgItemHeight,topOffsets:newTopOffsets,amountOfItemsInView:Math.round(maxHeight/newAvgItemHeight)+tolerance,maxContentHeight}},reduceReset=(prevState,itemHeight,maxHeight,overscan)=>({...prevState,lastItemHeight:null,topOffsets:[{amount:0,isInterpolated:!1}],scrolledInPx:0,scrolledItemCount:0,maxHeight,avgItemHeight:itemHeight,overscan}),reduceRecommendScrollPosition=(prevState,scrollTop,itemToBeInView)=>{let{topOffsets,maxHeight}=prevState;if(!topOffsets)return prevState;let bottomOfTarget=topOffsets[itemToBeInView+1]?.amount,topOfTarget=topOffsets[itemToBeInView]?.amount,recommendedScrollPosition=null;return topOfTarget<scrollTop&&(recommendedScrollPosition=topOfTarget),bottomOfTarget>=scrollTop+maxHeight&&(recommendedScrollPosition=bottomOfTarget-maxHeight),itemToBeInView===topOffsets.length-1&&(recommendedScrollPosition=topOffsets[itemToBeInView].amount),{...prevState,recommendedScrollPosition}};export const VirtualScrollReducer=(prevState,action)=>{switch(action.type){case"reset":return reduceReset(prevState,action.itemHeight,action.maxHeight,action.overscan);case"scroll":return reduceScroll(prevState,action.scrollTop);case"updateViewport":return reduceUpdateViewport(prevState,action.viewportNode,action.itemAmount);case"recommendScrollPosition":return reduceRecommendScrollPosition(prevState,action.scrollTop,action.itemToBeInView);default:throw Error()}};
|