{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/list/index.tsx","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"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","sourcesContent":["import { RenderResult } from '@dojo/framework/core/interfaces';\nimport { focus } from '@dojo/framework/core/middleware/focus';\nimport dimensions from '@dojo/framework/core/middleware/dimensions';\nimport { createICacheMiddleware } from '@dojo/framework/core/middleware/icache';\nimport { create, tsx } from '@dojo/framework/core/vdom';\nimport { Keys, isRenderResult } from '../common/util';\nimport theme, { ThemeProperties } from '../middleware/theme';\nimport offscreen from '../middleware/offscreen';\nimport * as listItemCss from '../theme/default/list-item.m.css';\nimport * as menuItemCss from '../theme/default/menu-item.m.css';\nimport * as css from '../theme/default/list.m.css';\nimport * as fixedCss from './list.m.css';\nimport { createResourceMiddleware } from '@dojo/framework/core/middleware/resources';\nimport LoadingIndicator from '../loading-indicator';\nimport { throttle } from '@dojo/framework/core/util';\nimport Icon from '../icon';\n\nexport interface MenuItemProperties {\n\t/** Callback used when the item is clicked */\n\tonSelect(): void;\n\t/** Property to set the active state of the item, indicates it's the current keyboard / mouse navigation target */\n\tactive?: boolean;\n\t/** Callback used when the item wants to request it be made active, to example on pointer move */\n\tonRequestActive(): void;\n\t/** Property to set the disabled state of the item */\n\tdisabled?: boolean;\n\t/** The id to apply to this widget top level for a11y */\n\twidgetId: string;\n}\n\nconst menuItemFactory = create({ theme }).properties<MenuItemProperties>();\n\nexport const MenuItem = menuItemFactory(function MenuItem({\n\tproperties,\n\tchildren,\n\tmiddleware: { theme }\n}) {\n\tconst { onSelect, active = false, onRequestActive, disabled = false, widgetId } = properties();\n\n\tconst themedCss = theme.classes(menuItemCss);\n\n\tfunction select() {\n\t\t!disabled && onSelect();\n\t}\n\n\tfunction requestActive() {\n\t\t!disabled && !active && onRequestActive();\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tid={widgetId}\n\t\t\tkey=\"root\"\n\t\t\tonpointermove={throttle(() => {\n\t\t\t\trequestActive();\n\t\t\t}, 500)}\n\t\t\tclasses={[\n\t\t\t\ttheme.variant(),\n\t\t\t\tthemedCss.root,\n\t\t\t\tactive && themedCss.active,\n\t\t\t\tdisabled && themedCss.disabled\n\t\t\t]}\n\t\t\tonclick={() => {\n\t\t\t\trequestActive();\n\t\t\t\tselect();\n\t\t\t}}\n\t\t\trole=\"menuitem\"\n\t\t\taria-disabled={disabled ? 'true' : 'false'}\n\t\t>\n\t\t\t{children()}\n\t\t</div>\n\t);\n});\n\nexport interface ListItemProperties {\n\t/** Callback used when the item is clicked */\n\tonSelect(): void;\n\t/** Property to set the selected state of the item */\n\tselected?: boolean;\n\t/** Property to set the active state of the item, indicates it's the current keyboard / mouse navigation target */\n\tactive?: boolean;\n\t/** Callback used when the item wants to request it be made active, to example on pointer move */\n\tonRequestActive(): void;\n\t/** Property to set the disabled state of the item */\n\tdisabled?: boolean;\n\t/** The id to apply to this widget top level for a11y */\n\twidgetId: string;\n\t/** Determines if this item can be reordered */\n\tdraggable?: boolean;\n\t/** Determines if this item is actively being dragged */\n\tdragged?: boolean;\n\t/** Determines if this item is visually shifted down due to DnD */\n\tmovedUp?: boolean;\n\t/** Determines if this item is visually shifted down due to DnD */\n\tmovedDown?: boolean;\n\t/** Called when dragging begins */\n\tonDragStart?: (event: DragEvent) => void;\n\t/** Called when dragging ends */\n\tonDragEnd?: (event: DragEvent) => void;\n\t/** Called when over a dragged item */\n\tonDragOver?: (event: DragEvent) => void;\n\t/** Called when a holistic drag is complete */\n\tonDrop?: (event: DragEvent) => void;\n\t/** Determines if this item is visually collapsed during DnD */\n\tcollapsed?: boolean;\n}\n\nexport interface ListItemChildren {\n\t/** Icon or avatar to place before the primary content */\n\tleading?: RenderResult;\n\t/** The main content of the item, typically text */\n\tprimary?: RenderResult;\n\t/** Icon or text to place after the primary content */\n\ttrailing?: RenderResult;\n}\n\nconst listItemFactory = create({ theme })\n\t.properties<ListItemProperties>()\n\t.children<ListItemChildren | RenderResult | RenderResult[]>();\n\nexport const ListItem = listItemFactory(function ListItem({\n\tproperties,\n\tchildren,\n\tmiddleware: { theme }\n}) {\n\tconst {\n\t\tonSelect,\n\t\tactive = false,\n\t\tonRequestActive,\n\t\tselected = false,\n\t\tdisabled = false,\n\t\twidgetId,\n\t\tdraggable,\n\t\tdragged,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tonDragOver,\n\t\tonDrop,\n\t\tmovedUp,\n\t\tmovedDown,\n\t\tcollapsed,\n\t\ttheme: themeProp,\n\t\tvariant\n\t} = properties();\n\n\tconst themedCss = theme.classes(listItemCss);\n\n\tfunction select() {\n\t\t!disabled && onSelect();\n\t}\n\n\tfunction requestActive() {\n\t\t!disabled && !active && onRequestActive();\n\t}\n\n\tconst [firstChild, ...otherChildren] = children();\n\tconst { leading = undefined, primary, trailing = undefined } = isRenderResult(firstChild)\n\t\t? { primary: [firstChild, ...otherChildren] }\n\t\t: firstChild;\n\n\treturn (\n\t\t<div\n\t\t\tid={widgetId}\n\t\t\tkey=\"root\"\n\t\t\tonpointermove={throttle(() => {\n\t\t\t\trequestActive();\n\t\t\t}, 500)}\n\t\t\tclasses={[\n\t\t\t\ttheme.variant(),\n\t\t\t\tthemedCss.root,\n\t\t\t\tthemedCss.height,\n\t\t\t\tselected && themedCss.selected,\n\t\t\t\tactive && themedCss.active,\n\t\t\t\tdisabled && themedCss.disabled,\n\t\t\t\tmovedUp && themedCss.movedUp,\n\t\t\t\tmovedDown && themedCss.movedDown,\n\t\t\t\tcollapsed && themedCss.collapsed,\n\t\t\t\tdragged && themedCss.dragged,\n\t\t\t\tdraggable && themedCss.draggable\n\t\t\t]}\n\t\t\tonclick={() => {\n\t\t\t\trequestActive();\n\t\t\t\tselect();\n\t\t\t}}\n\t\t\trole=\"option\"\n\t\t\taria-disabled={disabled ? 'true' : 'false'}\n\t\t\taria-selected={selected ? 'true' : 'false'}\n\t\t\tdraggable={draggable}\n\t\t\tondragenter={(event: DragEvent) => event.preventDefault()}\n\t\t\tondragstart={onDragStart}\n\t\t\tondragend={onDragEnd}\n\t\t\tondragover={onDragOver}\n\t\t\tondrop={onDrop}\n\t\t\tstyles={{ visibility: dragged ? 'hidden' : undefined }}\n\t\t>\n\t\t\t{leading ? <span classes={themedCss.leading}>{leading}</span> : undefined}\n\t\t\t<span classes={themedCss.primary}>{primary}</span>\n\t\t\t{trailing ? <span classes={themedCss.trailing}>{trailing}</span> : undefined}\n\t\t\t{draggable && !trailing && (\n\t\t\t\t<Icon\n\t\t\t\t\ttype=\"barsIcon\"\n\t\t\t\t\tclasses={{ '@dojo/widgets/icon': { icon: [themedCss.dragIcon] } }}\n\t\t\t\t\ttheme={themeProp}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n});\n\nexport type ListOption = { value: string; label: string; disabled?: boolean; divider?: boolean };\n\nexport interface ListProperties {\n\t/** Determines if this list can be reordered */\n\tdraggable?: boolean;\n\t/** Called when a draggable is dropped */\n\tonMove?: (from: number, to: number) => void;\n\t/** The initial selected value */\n\tinitialValue?: string;\n\t/** Controlled value property */\n\tvalue?: string;\n\t/** Callback called when user selects a value */\n\tonValue(value: ListOption): void;\n\t/** Called to request that the menu be closed */\n\tonRequestClose?(): void;\n\t/** Optional callback, when passed, the widget will no longer control it's own active index / keyboard navigation */\n\tonActiveIndexChange?(index: number): void;\n\t/** Optional property to set the activeIndex when it is being controlled externally */\n\tactiveIndex?: number;\n\t/** Determines if the widget can be focused or not. If the active index is controlled from elsewhere you may wish to stop the menu being focused and receiving keyboard events */\n\tfocusable?: boolean;\n\t/** Callback called when menu root is focused */\n\tonFocus?(): void;\n\t/** Callback called when menu root is blurred */\n\tonBlur?(): void;\n\t/** Property to determine how many items to render. Not passing a number will render all results */\n\titemsInView?: number | 'fill';\n\t/** Property to determine if this list is being used as a menu, changes a11y and item type */\n\tmenu?: boolean;\n\t/** The id to be applied to the root of this widget, if not passed, one will be generated for a11y reasons */\n\twidgetId?: string;\n\t/** Callback to determine if a list item is disabled. If not provided, ListOption.disabled will be used */\n\tdisabled?: (item: ListOption) => boolean;\n\t/** Specifies if the list height should by fixed to the height of the items in view */\n\theight?: 'auto' | 'fixed';\n}\n\nexport interface ListChildren {\n\t/** Custom renderer for item contents */\n\t(\n\t\titem: ItemRendererProperties,\n\t\tproperties: ListItemProperties & MenuItemProperties & ThemeProperties\n\t): RenderResult;\n}\n\nexport interface ItemRendererProperties {\n\tactive: boolean;\n\tdisabled: boolean;\n\tlabel: string;\n\tselected: boolean;\n\tvalue: string;\n}\n\ninterface ListICache {\n\tactiveIndex: number;\n\tdragIndex?: number;\n\tdragOverIndex?: number;\n\tinitial: string;\n\tpreviousInputText: string;\n\tinputText: string;\n\titemHeight: number;\n\titemsInView: number | 'fill';\n\tcalculatedItemsInView: number;\n\tmenuHeight: number;\n\tresetInputTextTimer: any;\n\tvalue: string;\n\tscrollTop: number;\n\tpreviousActiveIndex: number;\n}\n\nconst factory = create({\n\ticache: createICacheMiddleware<ListICache>(),\n\tfocus,\n\ttheme,\n\toffscreen,\n\tdimensions,\n\tresource: createResourceMiddleware<ListOption>()\n})\n\t.properties<ListProperties>()\n\t.children<ListChildren | undefined>();\n\nconst defaultItemsInView = 10;\n\nexport const List = factory(function List({\n\tchildren,\n\tproperties,\n\tid,\n\tmiddleware: { icache, focus, theme, resource, offscreen, dimensions }\n}) {\n\tconst {\n\t\tactiveIndex,\n\t\tfocusable = true,\n\t\tinitialValue,\n\t\titemsInView = defaultItemsInView,\n\t\tmenu = false,\n\t\tonActiveIndexChange,\n\t\tonBlur,\n\t\tonFocus,\n\t\tonRequestClose,\n\t\tonValue,\n\t\twidgetId,\n\t\ttheme: themeProp,\n\t\tvariant,\n\t\tresource: {\n\t\t\ttemplate,\n\t\t\toptions = resource.createOptions((curr, next) => ({ ...curr, ...next }))\n\t\t},\n\t\tclasses,\n\t\theight = 'fixed'\n\t} = properties();\n\tconst {\n\t\tget,\n\t\ttemplate: { read }\n\t} = resource.template(template);\n\tconst themedCss = theme.classes(css);\n\n\tconst [itemRenderer] = children();\n\n\tfunction setActiveIndex(index: number) {\n\t\tif (onActiveIndexChange) {\n\t\t\tonActiveIndexChange(index);\n\t\t} else {\n\t\t\ticache.set('activeIndex', index);\n\t\t}\n\t}\n\n\tfunction setValue(value: ListOption) {\n\t\ticache.set('value', value.value);\n\t\tonValue(value);\n\t}\n\n\tfunction onKeyDown(event: KeyboardEvent, total: number) {\n\t\tconst { disabled, activeIndex } = properties();\n\t\tevent.stopPropagation();\n\t\tlet computedActiveIndex =\n\t\t\tactiveIndex === undefined ? icache.get('activeIndex') : activeIndex;\n\t\tswitch (event.which) {\n\t\t\tcase Keys.Enter:\n\t\t\tcase Keys.Space:\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif (activeItem) {\n\t\t\t\t\tconst itemDisabled = disabled ? disabled(activeItem) : activeItem.disabled;\n\n\t\t\t\t\tif (!itemDisabled) {\n\t\t\t\t\t\tsetValue(activeItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase Keys.Down:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.metaKey || event.ctrlKey) {\n\t\t\t\t\tsetActiveIndex(total - 1);\n\t\t\t\t} else {\n\t\t\t\t\tconst effectiveActiveIndex =\n\t\t\t\t\t\tcomputedActiveIndex !== undefined ? computedActiveIndex + 1 : 0;\n\t\t\t\t\tsetActiveIndex(effectiveActiveIndex % total);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase Keys.Up:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.metaKey || event.ctrlKey) {\n\t\t\t\t\tsetActiveIndex(0);\n\t\t\t\t} else {\n\t\t\t\t\tconst effectiveActiveIndex =\n\t\t\t\t\t\tcomputedActiveIndex !== undefined\n\t\t\t\t\t\t\t? computedActiveIndex - 1 + total\n\t\t\t\t\t\t\t: total - 1;\n\t\t\t\t\tsetActiveIndex(effectiveActiveIndex % total);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase Keys.Escape:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonRequestClose && onRequestClose();\n\t\t\t\tbreak;\n\t\t\tcase Keys.Home:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetActiveIndex(0);\n\t\t\t\tbreak;\n\t\t\tcase Keys.End:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetActiveIndex(total - 1);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tif (!event.metaKey && !event.ctrlKey && event.key.length === 1) {\n\t\t\t\t\ticache.set('resetInputTextTimer', (existingTimer) => {\n\t\t\t\t\t\tif (existingTimer) {\n\t\t\t\t\t\t\tclearTimeout(existingTimer);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn setTimeout(() => {\n\t\t\t\t\t\t\ticache.delete('inputText');\n\t\t\t\t\t\t\ticache.delete('previousInputText');\n\t\t\t\t\t\t}, 800);\n\t\t\t\t\t});\n\t\t\t\t\ticache.set('inputText', (value = '') => {\n\t\t\t\t\t\treturn `${value}${event.key}`;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfunction renderItems(start: number, count: number) {\n\t\tconst renderedItems = [];\n\t\tconst { size: resourceRequestSize } = options();\n\t\tconst {\n\t\t\tmeta: { total = 0 }\n\t\t} = get(options(), { meta: true, read });\n\t\tif (total) {\n\t\t\tlet pages: number[] = [];\n\t\t\tfor (let i = 0; i < Math.min(total - start, count); i++) {\n\t\t\t\tconst index = i + startNode;\n\t\t\t\tconst page = Math.floor(index / resourceRequestSize) + 1;\n\t\t\t\tif (pages.indexOf(page) === -1) {\n\t\t\t\t\tpages.push(page);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!pages.length) {\n\t\t\t\tpages.push(1);\n\t\t\t}\n\t\t\tconst pageItems = pages.map((page, index) => {\n\t\t\t\tif (index === pages.length - 1) {\n\t\t\t\t\toptions({ offset: (page - 1) * options().size });\n\t\t\t\t}\n\t\t\t\treturn get({ ...options(), offset: (page - 1) * options().size }, { read });\n\t\t\t});\n\t\t\tfor (let i = 0; i < Math.min(total - start, count); i++) {\n\t\t\t\tconst index = i + startNode;\n\t\t\t\tconst page = Math.floor(index / resourceRequestSize) + 1;\n\t\t\t\tconst pageIndex = pages.indexOf(page);\n\t\t\t\tconst indexWithinPage = index - (page - 1) * resourceRequestSize;\n\t\t\t\tconst items = pageItems[pageIndex];\n\t\t\t\tif (items && items[indexWithinPage]) {\n\t\t\t\t\tconst { value, label, disabled, divider } = items[indexWithinPage];\n\t\t\t\t\trenderedItems[i] = renderItem({ value, label, disabled, divider }, index);\n\t\t\t\t} else if (!items) {\n\t\t\t\t\trenderedItems[i] = renderPlaceholder(index);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn renderedItems;\n\t}\n\n\tfunction renderPlaceholder(index: number) {\n\t\tconst itemProps = {\n\t\t\twidgetId: `${idBase}-item-${index}`,\n\t\t\tkey: `item-${index}`,\n\t\t\tonSelect: () => {},\n\t\t\tactive: false,\n\t\t\tonRequestActive: () => {\n\t\t\t\tsetActiveIndex(index);\n\t\t\t},\n\t\t\tdisabled: true,\n\t\t\tclasses,\n\t\t\tvariant\n\t\t};\n\t\tconst itemHeight = icache.getOrSet('itemHeight', 0);\n\t\treturn (\n\t\t\t<div key={`item-${index}`} styles={{ height: `${itemHeight}px` }}>\n\t\t\t\t{menu ? (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\ttheme={theme.compose(\n\t\t\t\t\t\t\tmenuItemCss,\n\t\t\t\t\t\t\tcss,\n\t\t\t\t\t\t\t'item'\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<LoadingIndicator />\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) : (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\t{...itemProps}\n\t\t\t\t\t\tselected={false}\n\t\t\t\t\t\ttheme={theme.compose(\n\t\t\t\t\t\t\tlistItemCss,\n\t\t\t\t\t\t\tcss,\n\t\t\t\t\t\t\t'item'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdragged={icache.get('dragIndex') === index}\n\t\t\t\t\t\tdraggable={draggable}\n\t\t\t\t\t\tonDragStart={(event) => onDragStart(event, index)}\n\t\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\t\tonDragOver={(event) => onDragOver(event, index)}\n\t\t\t\t\t\tonDrop={(event) => onDrop(event, index)}\n\t\t\t\t\t\tmovedUp={\n\t\t\t\t\t\t\ticache.get('dragOverIndex') === index &&\n\t\t\t\t\t\t\ticache.get('dragIndex')! < icache.get('dragOverIndex')!\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmovedDown={\n\t\t\t\t\t\t\ticache.get('dragOverIndex') === index &&\n\t\t\t\t\t\t\ticache.get('dragIndex')! > icache.get('dragOverIndex')!\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcollapsed={\n\t\t\t\t\t\t\ticache.get('dragIndex') === index &&\n\t\t\t\t\t\t\ticache.get('dragOverIndex') !== undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<LoadingIndicator />\n\t\t\t\t\t</ListItem>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction onDragStart(event: DragEvent, index: number) {\n\t\tif (!draggable) {\n\t\t\treturn;\n\t\t}\n\t\ticache.set('dragIndex', index);\n\t\tevent.dataTransfer!.setData('text/plain', `${index}`);\n\t}\n\n\tfunction onDragOver(event: DragEvent, index: number) {\n\t\tconst dragIndex = icache.get('dragIndex')!;\n\t\tif (!draggable || dragIndex === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t\tevent.dataTransfer!.dropEffect = 'move';\n\t\tlet targetIndex: number | undefined = index;\n\t\tif (event.offsetY < 10 && index === dragIndex + 1) {\n\t\t\ttargetIndex = undefined;\n\t\t} else if (event.offsetY > itemHeight - 10 && index === dragIndex - 1) {\n\t\t\ttargetIndex = undefined;\n\t\t}\n\t\tif (icache.get('dragOverIndex') !== targetIndex) {\n\t\t\ticache.set('dragOverIndex', targetIndex);\n\t\t}\n\t}\n\n\tfunction onDragEnd(event: DragEvent) {\n\t\tif (!draggable) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t\ticache.set('dragIndex', undefined);\n\t\ticache.set('dragOverIndex', undefined);\n\t}\n\n\tfunction onDrop(event: DragEvent, index: number) {\n\t\tif (!draggable) {\n\t\t\treturn;\n\t\t}\n\t\tevent.preventDefault();\n\t\tconst from = event.dataTransfer && event.dataTransfer.getData('text/plain');\n\t\tif (from === null) {\n\t\t\treturn;\n\t\t}\n\t\tsetActiveIndex(index);\n\t\tonMove && onMove(parseInt(from, 10), index);\n\t}\n\n\tfunction renderItem(data: ListOption, index: number) {\n\t\tconst { disabled } = properties();\n\t\tconst { value, label, divider, disabled: optionDisabled = false } = data;\n\t\tconst itemDisabled = disabled ? disabled(data) : optionDisabled;\n\t\tconst selected = value === selectedValue;\n\t\tconst active = index === computedActiveIndex;\n\t\tif (active) {\n\t\t\tactiveItem = data;\n\t\t}\n\t\tconst itemProps = {\n\t\t\twidgetId: `${idBase}-item-${index}`,\n\t\t\tkey: `item-${index}`,\n\t\t\tonSelect: () => {\n\t\t\t\tsetValue(data);\n\t\t\t},\n\t\t\tactive,\n\t\t\tonRequestActive: () => {\n\t\t\t\tsetActiveIndex(index);\n\t\t\t},\n\t\t\tdisabled: itemDisabled,\n\t\t\tclasses,\n\t\t\tvariant\n\t\t};\n\t\tlet item: RenderResult;\n\n\t\tif (itemRenderer) {\n\t\t\titem = itemRenderer(\n\t\t\t\t{\n\t\t\t\t\tvalue,\n\t\t\t\t\tlabel,\n\t\t\t\t\tdisabled: itemDisabled,\n\t\t\t\t\tactive,\n\t\t\t\t\tselected\n\t\t\t\t},\n\t\t\t\t{ ...itemProps, theme: themeProp }\n\t\t\t);\n\t\t} else {\n\t\t\tconst children = label || value;\n\t\t\titem = menu ? (\n\t\t\t\t<MenuItem\n\t\t\t\t\t{...itemProps}\n\t\t\t\t\ttheme={theme.compose(\n\t\t\t\t\t\tmenuItemCss,\n\t\t\t\t\t\tcss,\n\t\t\t\t\t\t'item'\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</MenuItem>\n\t\t\t) : (\n\t\t\t\t<ListItem\n\t\t\t\t\t{...itemProps}\n\t\t\t\t\ttheme={theme.compose(\n\t\t\t\t\t\tlistItemCss,\n\t\t\t\t\t\tcss,\n\t\t\t\t\t\t'item'\n\t\t\t\t\t)}\n\t\t\t\t\tselected={selected}\n\t\t\t\t\tdragged={icache.get('dragIndex') === index}\n\t\t\t\t\tdraggable={draggable}\n\t\t\t\t\tonDragStart={(event) => onDragStart(event, index)}\n\t\t\t\t\tonDragEnd={onDragEnd}\n\t\t\t\t\tonDragOver={(event) => onDragOver(event, index)}\n\t\t\t\t\tonDrop={(event) => onDrop(event, index)}\n\t\t\t\t\tmovedUp={\n\t\t\t\t\t\ticache.get('dragOverIndex') === index &&\n\t\t\t\t\t\ticache.get('dragIndex')! < icache.get('dragOverIndex')!\n\t\t\t\t\t}\n\t\t\t\t\tmovedDown={\n\t\t\t\t\t\ticache.get('dragOverIndex') === index &&\n\t\t\t\t\t\ticache.get('dragIndex')! > icache.get('dragOverIndex')!\n\t\t\t\t\t}\n\t\t\t\t\tcollapsed={\n\t\t\t\t\t\ticache.get('dragIndex') === index &&\n\t\t\t\t\t\ticache.get('dragOverIndex') !== undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</ListItem>\n\t\t\t);\n\t\t}\n\n\t\treturn divider ? [item, <hr classes={themedCss.divider} />] : item;\n\t}\n\n\tlet { value: selectedValue, draggable, onMove } = properties();\n\n\tif (selectedValue === undefined) {\n\t\tif (initialValue !== undefined && initialValue !== icache.get('initial')) {\n\t\t\ticache.set('initial', initialValue);\n\t\t\ticache.set('value', initialValue);\n\t\t}\n\n\t\tselectedValue = icache.get('value');\n\t}\n\n\tlet calculatedItemsInView = icache.getOrSet('calculatedItemsInView', 0);\n\n\tif (itemsInView !== icache.get('itemsInView')) {\n\t\tconst offscreenItemProps = {\n\t\t\tselected: false,\n\t\t\tonSelect: () => {},\n\t\t\tactive: false,\n\t\t\tonRequestActive: () => {},\n\t\t\tonActive: () => {},\n\t\t\tscrollIntoView: false,\n\t\t\twidgetId: 'offcreen',\n\t\t\ttheme: themeProp\n\t\t};\n\n\t\tconst offscreenMenuItem = itemRenderer ? (\n\t\t\titemRenderer(\n\t\t\t\t{\n\t\t\t\t\tselected: false,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tvalue: 'offscreen',\n\t\t\t\t\tlabel: 'offscreen',\n\t\t\t\t\tdisabled: false\n\t\t\t\t},\n\t\t\t\toffscreenItemProps\n\t\t\t)\n\t\t) : menu ? (\n\t\t\t<MenuItem {...offscreenItemProps}>offscreen</MenuItem>\n\t\t) : (\n\t\t\t<ListItem {...offscreenItemProps}>offscreen</ListItem>\n\t\t);\n\n\t\tconst itemHeight = icache.getOrSet(\n\t\t\t'itemHeight',\n\t\t\toffscreen(\n\t\t\t\t() => (\n\t\t\t\t\t<div styles={{ padding: '0' }} classes={[themedCss.root, fixedCss.root]}>\n\t\t\t\t\t\t{offscreenMenuItem}\n\t\t\t\t\t</div>\n\t\t\t\t),\n\t\t\t\t(node) => node.getBoundingClientRect().height\n\t\t\t)\n\t\t);\n\n\t\tif (itemsInView !== 'fill') {\n\t\t\tcalculatedItemsInView = itemsInView;\n\t\t\titemHeight && icache.set('menuHeight', calculatedItemsInView * itemHeight);\n\t\t} else {\n\t\t\tconst dims = dimensions.get('fill-root');\n\t\t\tif (dims.size.height) {\n\t\t\t\tcalculatedItemsInView = Math.ceil(dims.size.height / itemHeight);\n\t\t\t\titemHeight && icache.set('menuHeight', dims.size.height);\n\t\t\t} else if (dims.size.width) {\n\t\t\t\tcalculatedItemsInView = defaultItemsInView;\n\t\t\t\titemHeight && icache.set('menuHeight', calculatedItemsInView * itemHeight);\n\t\t\t} else {\n\t\t\t\treturn <div key=\"fill-root\" styles={{ height: '100%' }} />;\n\t\t\t}\n\t\t}\n\n\t\ticache.set('itemsInView', itemsInView);\n\t\ticache.set('calculatedItemsInView', calculatedItemsInView);\n\t}\n\n\tconst menuHeight = icache.get('menuHeight');\n\tconst idBase = widgetId || `menu-${id}`;\n\tlet rootStyles: Partial<CSSStyleDeclaration> = {};\n\tif (menuHeight) {\n\t\trootStyles =\n\t\t\theight === 'fixed' ? { height: `${menuHeight}px` } : { maxHeight: `${menuHeight}px` };\n\t}\n\tconst shouldFocus = focus.shouldFocus();\n\tconst itemHeight = icache.getOrSet('itemHeight', 0);\n\tlet scrollTop = icache.getOrSet('scrollTop', 0);\n\tconst nodePadding = Math.min(calculatedItemsInView, 20);\n\tconst renderedItemsCount = calculatedItemsInView + 2 * nodePadding;\n\tlet computedActiveIndex = activeIndex === undefined ? icache.get('activeIndex') : activeIndex;\n\tconst inputText = icache.get('inputText');\n\tconst {\n\t\tmeta: { total = 0 }\n\t} = get(options(), { meta: true, read });\n\tif (inputText && inputText !== icache.get('previousInputText') && total) {\n\t\tconst items = get({ ...options(), offset: 0, size: total });\n\t\tconst first =\n\t\t\tcomputedActiveIndex !== undefined ? items.slice(0, computedActiveIndex) : items;\n\t\tconst second = computedActiveIndex !== undefined ? items.slice(computedActiveIndex) : [];\n\t\tlet foundIndex = computedActiveIndex;\n\t\tif (foundIndex !== undefined) {\n\t\t\tfor (let i = 1; i < second.length; i++) {\n\t\t\t\tconst item = second[i];\n\t\t\t\tif (item && item.label.toLowerCase().indexOf(inputText.toLowerCase()) === 0) {\n\t\t\t\t\tfoundIndex = foundIndex + i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (foundIndex === computedActiveIndex) {\n\t\t\tfor (let i = 0; i < first.length; i++) {\n\t\t\t\tconst item = first[i];\n\t\t\t\tif (item && item.label.toLowerCase().indexOf(inputText.toLowerCase()) === 0) {\n\t\t\t\t\tfoundIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (foundIndex !== undefined && foundIndex !== computedActiveIndex) {\n\t\t\tsetActiveIndex(foundIndex);\n\t\t}\n\t\ticache.set('previousInputText', inputText);\n\t}\n\n\tconst previousActiveIndex = icache.get('previousActiveIndex');\n\tcomputedActiveIndex = activeIndex === undefined ? icache.get('activeIndex') : activeIndex;\n\tlet activeItem: ListOption | undefined = undefined;\n\n\tif (computedActiveIndex !== undefined && computedActiveIndex !== previousActiveIndex) {\n\t\tconst visibleStartIndex = Math.floor(scrollTop / itemHeight);\n\t\tconst visibleEndIndex = visibleStartIndex + calculatedItemsInView - 1;\n\t\tif (computedActiveIndex < visibleStartIndex) {\n\t\t\tscrollTop = computedActiveIndex * itemHeight;\n\t\t} else if (computedActiveIndex > visibleEndIndex) {\n\t\t\tscrollTop = Math.max(computedActiveIndex + 1 - calculatedItemsInView, 0) * itemHeight;\n\t\t}\n\n\t\tif (icache.get('scrollTop') !== scrollTop) {\n\t\t\ticache.set('scrollTop', scrollTop);\n\t\t}\n\n\t\ticache.set('previousActiveIndex', computedActiveIndex);\n\t}\n\n\tconst startNode = Math.max(0, Math.floor(scrollTop / itemHeight) - nodePadding);\n\tconst offsetY = startNode * itemHeight;\n\n\tconst items = renderItems(startNode, renderedItemsCount);\n\tconst totalContentHeight = total * itemHeight;\n\treturn (\n\t\t<div\n\t\t\tkey=\"root\"\n\t\t\tclasses={[theme.variant(), themedCss.root, fixedCss.root]}\n\t\t\ttabIndex={focusable ? 0 : -1}\n\t\t\tonkeydown={(e) => {\n\t\t\t\ttotal && onKeyDown(e, total);\n\t\t\t}}\n\t\t\tfocus={() => shouldFocus}\n\t\t\tonfocus={onFocus}\n\t\t\tonpointerdown={focusable ? undefined : (event) => event.preventDefault()}\n\t\t\tonblur={onBlur}\n\t\t\tscrollTop={scrollTop}\n\t\t\tonscroll={(e) => {\n\t\t\t\tconst newScrollTop = (e.target as HTMLElement).scrollTop;\n\t\t\t\tif (scrollTop !== newScrollTop) {\n\t\t\t\t\ticache.set('scrollTop', newScrollTop);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tstyles={rootStyles}\n\t\t\trole={menu ? 'menu' : 'listbox'}\n\t\t\taria-orientation=\"vertical\"\n\t\t\taria-activedescendant={\n\t\t\t\tcomputedActiveIndex !== undefined\n\t\t\t\t\t? `${idBase}-item-${computedActiveIndex}`\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tid={idBase}\n\t\t>\n\t\t\t<div\n\t\t\t\tclasses={fixedCss.wrapper}\n\t\t\t\tstyles={{\n\t\t\t\t\theight: `${totalContentHeight}px`\n\t\t\t\t}}\n\t\t\t\tkey=\"wrapper\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclasses={fixedCss.transformer}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\ttransform: `translateY(${offsetY}px)`\n\t\t\t\t\t}}\n\t\t\t\t\tkey=\"transformer\"\n\t\t\t\t>\n\t\t\t\t\t{items}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n\nexport default List;\n"]}