@librechat/client 0.1.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/dist/index.es.js +2 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/types/Providers/ToastContext.d.ts +12 -0
- package/dist/types/Providers/ToastContext.d.ts.map +1 -0
- package/dist/types/Providers/index.d.ts +3 -0
- package/dist/types/Providers/index.d.ts.map +1 -0
- package/dist/types/common/a11y.d.ts +6 -0
- package/dist/types/common/a11y.d.ts.map +1 -0
- package/dist/types/common/agents-types.d.ts +30 -0
- package/dist/types/common/agents-types.d.ts.map +1 -0
- package/dist/types/common/artifacts.d.ts +24 -0
- package/dist/types/common/artifacts.d.ts.map +1 -0
- package/dist/types/common/assistants-types.d.ts +25 -0
- package/dist/types/common/assistants-types.d.ts.map +1 -0
- package/dist/types/common/index.d.ts +3 -0
- package/dist/types/common/index.d.ts.map +1 -0
- package/dist/types/common/mcp.d.ts +3 -0
- package/dist/types/common/mcp.d.ts.map +1 -0
- package/dist/types/common/menus.d.ts +21 -0
- package/dist/types/common/menus.d.ts.map +1 -0
- package/dist/types/common/selector.d.ts +24 -0
- package/dist/types/common/selector.d.ts.map +1 -0
- package/dist/types/common/tools.d.ts +6 -0
- package/dist/types/common/tools.d.ts.map +1 -0
- package/dist/types/common/types.d.ts +546 -0
- package/dist/types/common/types.d.ts.map +1 -0
- package/dist/types/components/Accordion.d.ts +8 -0
- package/dist/types/components/Accordion.d.ts.map +1 -0
- package/dist/types/components/AlertDialog.d.ts +19 -0
- package/dist/types/components/AlertDialog.d.ts.map +1 -0
- package/dist/types/components/AnimatedSearchInput.d.ts +9 -0
- package/dist/types/components/AnimatedSearchInput.d.ts.map +1 -0
- package/dist/types/components/AnimatedTabs.d.ts +21 -0
- package/dist/types/components/AnimatedTabs.d.ts.map +1 -0
- package/dist/types/components/Badge.d.ts +17 -0
- package/dist/types/components/Badge.d.ts.map +1 -0
- package/dist/types/components/Breadcrumb.d.ts +20 -0
- package/dist/types/components/Breadcrumb.d.ts.map +1 -0
- package/dist/types/components/Button.d.ts +12 -0
- package/dist/types/components/Button.d.ts.map +1 -0
- package/dist/types/components/Checkbox.d.ts +5 -0
- package/dist/types/components/Checkbox.d.ts.map +1 -0
- package/dist/types/components/CheckboxButton.d.ts +15 -0
- package/dist/types/components/CheckboxButton.d.ts.map +1 -0
- package/dist/types/components/Collapsible.d.ts +7 -0
- package/dist/types/components/Collapsible.d.ts.map +1 -0
- package/dist/types/components/Combobox.d.ts +14 -0
- package/dist/types/components/Combobox.d.ts.map +1 -0
- package/dist/types/components/ControlCombobox.d.ts +24 -0
- package/dist/types/components/ControlCombobox.d.ts.map +1 -0
- package/dist/types/components/DataTable.d.ts +30 -0
- package/dist/types/components/DataTable.d.ts.map +1 -0
- package/dist/types/components/DataTableColumnHeader.d.ts +8 -0
- package/dist/types/components/DataTableColumnHeader.d.ts.map +1 -0
- package/dist/types/components/DelayedRender.d.ts +8 -0
- package/dist/types/components/DelayedRender.d.ts.map +1 -0
- package/dist/types/components/Dialog.d.ts +22 -0
- package/dist/types/components/Dialog.d.ts.map +1 -0
- package/dist/types/components/DialogTemplate.d.ts +22 -0
- package/dist/types/components/DialogTemplate.d.ts.map +1 -0
- package/dist/types/components/Dropdown.d.ts +21 -0
- package/dist/types/components/Dropdown.d.ts.map +1 -0
- package/dist/types/components/DropdownMenu.d.ts +28 -0
- package/dist/types/components/DropdownMenu.d.ts.map +1 -0
- package/dist/types/components/DropdownNoState.d.ts +14 -0
- package/dist/types/components/DropdownNoState.d.ts.map +1 -0
- package/dist/types/components/DropdownPopup.d.ts +29 -0
- package/dist/types/components/DropdownPopup.d.ts.map +1 -0
- package/dist/types/components/FileUpload.d.ts +10 -0
- package/dist/types/components/FileUpload.d.ts.map +1 -0
- package/dist/types/components/FormInput.d.ts +13 -0
- package/dist/types/components/FormInput.d.ts.map +1 -0
- package/dist/types/components/HoverCard.d.ts +10 -0
- package/dist/types/components/HoverCard.d.ts.map +1 -0
- package/dist/types/components/Input.d.ts +5 -0
- package/dist/types/components/Input.d.ts.map +1 -0
- package/dist/types/components/InputCombobox.d.ts +15 -0
- package/dist/types/components/InputCombobox.d.ts.map +1 -0
- package/dist/types/components/InputNumber.d.ts +5 -0
- package/dist/types/components/InputNumber.d.ts.map +1 -0
- package/dist/types/components/InputOTP.d.ts +35 -0
- package/dist/types/components/InputOTP.d.ts.map +1 -0
- package/dist/types/components/InputWithDropDown.d.ts +11 -0
- package/dist/types/components/InputWithDropDown.d.ts.map +1 -0
- package/dist/types/components/Label.d.ts +5 -0
- package/dist/types/components/Label.d.ts.map +1 -0
- package/dist/types/components/ModelParameters.d.ts +16 -0
- package/dist/types/components/ModelParameters.d.ts.map +1 -0
- package/dist/types/components/MultiSearch.d.ts +26 -0
- package/dist/types/components/MultiSearch.d.ts.map +1 -0
- package/dist/types/components/MultiSelect.d.ts +21 -0
- package/dist/types/components/MultiSelect.d.ts.map +1 -0
- package/dist/types/components/OGDialogTemplate.d.ts +26 -0
- package/dist/types/components/OGDialogTemplate.d.ts.map +1 -0
- package/dist/types/components/OriginalDialog.d.ts +28 -0
- package/dist/types/components/OriginalDialog.d.ts.map +1 -0
- package/dist/types/components/Pagination.d.ts +29 -0
- package/dist/types/components/Pagination.d.ts.map +1 -0
- package/dist/types/components/PixelCard.d.ts +41 -0
- package/dist/types/components/PixelCard.d.ts.map +1 -0
- package/dist/types/components/Progress.d.ts +5 -0
- package/dist/types/components/Progress.d.ts.map +1 -0
- package/dist/types/components/Prompt.d.ts +5 -0
- package/dist/types/components/Prompt.d.ts.map +1 -0
- package/dist/types/components/QuestionMark.d.ts +4 -0
- package/dist/types/components/QuestionMark.d.ts.map +1 -0
- package/dist/types/components/Resizable.d.ts +60 -0
- package/dist/types/components/Resizable.d.ts.map +1 -0
- package/dist/types/components/Select.d.ts +14 -0
- package/dist/types/components/Select.d.ts.map +1 -0
- package/dist/types/components/SelectDropDown.d.ts +30 -0
- package/dist/types/components/SelectDropDown.d.ts.map +1 -0
- package/dist/types/components/Separator.d.ts +5 -0
- package/dist/types/components/Separator.d.ts.map +1 -0
- package/dist/types/components/Skeleton.d.ts +3 -0
- package/dist/types/components/Skeleton.d.ts.map +1 -0
- package/dist/types/components/Slider.d.ts +7 -0
- package/dist/types/components/Slider.d.ts.map +1 -0
- package/dist/types/components/SplitText.d.ts +48 -0
- package/dist/types/components/SplitText.d.ts.map +1 -0
- package/dist/types/components/Switch.d.ts +5 -0
- package/dist/types/components/Switch.d.ts.map +1 -0
- package/dist/types/components/Table.d.ts +11 -0
- package/dist/types/components/Table.d.ts.map +1 -0
- package/dist/types/components/Tabs.d.ts +8 -0
- package/dist/types/components/Tabs.d.ts.map +1 -0
- package/dist/types/components/Tag.d.ts +9 -0
- package/dist/types/components/Tag.d.ts.map +1 -0
- package/dist/types/components/Textarea.d.ts +6 -0
- package/dist/types/components/Textarea.d.ts.map +1 -0
- package/dist/types/components/TextareaAutosize.d.ts +4 -0
- package/dist/types/components/TextareaAutosize.d.ts.map +1 -0
- package/dist/types/components/ThemeSelector.d.ts +10 -0
- package/dist/types/components/ThemeSelector.d.ts.map +1 -0
- package/dist/types/components/Toast.d.ts +2 -0
- package/dist/types/components/Toast.d.ts.map +1 -0
- package/dist/types/components/Tooltip.d.ts +12 -0
- package/dist/types/components/Tooltip.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +54 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/hooks/ThemeContext.d.ts +13 -0
- package/dist/types/hooks/ThemeContext.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +9 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useCombobox.d.ts +13 -0
- package/dist/types/hooks/useCombobox.d.ts.map +1 -0
- package/dist/types/hooks/useDelayedRender.d.ts +4 -0
- package/dist/types/hooks/useDelayedRender.d.ts.map +1 -0
- package/dist/types/hooks/useLocalize.d.ts +5 -0
- package/dist/types/hooks/useLocalize.d.ts.map +1 -0
- package/dist/types/hooks/useMediaQuery.d.ts +2 -0
- package/dist/types/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/types/hooks/useOnClickOutside.d.ts +5 -0
- package/dist/types/hooks/useOnClickOutside.d.ts.map +1 -0
- package/dist/types/hooks/useToast.d.ts +8 -0
- package/dist/types/hooks/useToast.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/locales/i18n.d.ts +20800 -0
- package/dist/types/locales/i18n.d.ts.map +1 -0
- package/dist/types/store.d.ts +20 -0
- package/dist/types/store.d.ts.map +1 -0
- package/dist/types/svgs/AnthropicIcon.d.ts +5 -0
- package/dist/types/svgs/AnthropicIcon.d.ts.map +1 -0
- package/dist/types/svgs/AnthropicMinimalIcon.d.ts +2 -0
- package/dist/types/svgs/AnthropicMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/AppleIcon.d.ts +2 -0
- package/dist/types/svgs/AppleIcon.d.ts.map +1 -0
- package/dist/types/svgs/ArchiveIcon.d.ts +4 -0
- package/dist/types/svgs/ArchiveIcon.d.ts.map +1 -0
- package/dist/types/svgs/AssistantIcon.d.ts +5 -0
- package/dist/types/svgs/AssistantIcon.d.ts.map +1 -0
- package/dist/types/svgs/AttachmentIcon.d.ts +4 -0
- package/dist/types/svgs/AttachmentIcon.d.ts.map +1 -0
- package/dist/types/svgs/AzureMinimalIcon.d.ts +5 -0
- package/dist/types/svgs/AzureMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/BedrockIcon.d.ts +5 -0
- package/dist/types/svgs/BedrockIcon.d.ts.map +1 -0
- package/dist/types/svgs/BirthdayIcon.d.ts +4 -0
- package/dist/types/svgs/BirthdayIcon.d.ts.map +1 -0
- package/dist/types/svgs/Blocks.d.ts +4 -0
- package/dist/types/svgs/Blocks.d.ts.map +1 -0
- package/dist/types/svgs/CautionIcon.d.ts +2 -0
- package/dist/types/svgs/CautionIcon.d.ts.map +1 -0
- package/dist/types/svgs/ChatGPTMinimalIcon.d.ts +2 -0
- package/dist/types/svgs/ChatGPTMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/ChatIcon.d.ts +2 -0
- package/dist/types/svgs/ChatIcon.d.ts.map +1 -0
- package/dist/types/svgs/CheckMark.d.ts +4 -0
- package/dist/types/svgs/CheckMark.d.ts.map +1 -0
- package/dist/types/svgs/CircleHelpIcon.d.ts +5 -0
- package/dist/types/svgs/CircleHelpIcon.d.ts.map +1 -0
- package/dist/types/svgs/Clipboard.d.ts +5 -0
- package/dist/types/svgs/Clipboard.d.ts.map +1 -0
- package/dist/types/svgs/CodeyIcon.d.ts +5 -0
- package/dist/types/svgs/CodeyIcon.d.ts.map +1 -0
- package/dist/types/svgs/ContinueIcon.d.ts +4 -0
- package/dist/types/svgs/ContinueIcon.d.ts.map +1 -0
- package/dist/types/svgs/ConvoIcon.d.ts +2 -0
- package/dist/types/svgs/ConvoIcon.d.ts.map +1 -0
- package/dist/types/svgs/CrossIcon.d.ts +4 -0
- package/dist/types/svgs/CrossIcon.d.ts.map +1 -0
- package/dist/types/svgs/CustomMinimalIcon.d.ts +5 -0
- package/dist/types/svgs/CustomMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/DarkModeIcon.d.ts +2 -0
- package/dist/types/svgs/DarkModeIcon.d.ts.map +1 -0
- package/dist/types/svgs/DataIcon.d.ts +4 -0
- package/dist/types/svgs/DataIcon.d.ts.map +1 -0
- package/dist/types/svgs/DiscordIcon.d.ts +2 -0
- package/dist/types/svgs/DiscordIcon.d.ts.map +1 -0
- package/dist/types/svgs/DislikeIcon.d.ts +2 -0
- package/dist/types/svgs/DislikeIcon.d.ts.map +1 -0
- package/dist/types/svgs/DotsIcon.d.ts +4 -0
- package/dist/types/svgs/DotsIcon.d.ts.map +1 -0
- package/dist/types/svgs/EditIcon.d.ts +8 -0
- package/dist/types/svgs/EditIcon.d.ts.map +1 -0
- package/dist/types/svgs/ExperimentIcon.d.ts +2 -0
- package/dist/types/svgs/ExperimentIcon.d.ts.map +1 -0
- package/dist/types/svgs/FacebookIcon.d.ts +2 -0
- package/dist/types/svgs/FacebookIcon.d.ts.map +1 -0
- package/dist/types/svgs/GPTIcon.d.ts +5 -0
- package/dist/types/svgs/GPTIcon.d.ts.map +1 -0
- package/dist/types/svgs/GearIcon.d.ts +7 -0
- package/dist/types/svgs/GearIcon.d.ts.map +1 -0
- package/dist/types/svgs/GeminiIcon.d.ts +5 -0
- package/dist/types/svgs/GeminiIcon.d.ts.map +1 -0
- package/dist/types/svgs/GithubIcon.d.ts +2 -0
- package/dist/types/svgs/GithubIcon.d.ts.map +1 -0
- package/dist/types/svgs/GoogleIcon.d.ts +2 -0
- package/dist/types/svgs/GoogleIcon.d.ts.map +1 -0
- package/dist/types/svgs/GoogleIconChat.d.ts +5 -0
- package/dist/types/svgs/GoogleIconChat.d.ts.map +1 -0
- package/dist/types/svgs/GoogleMinimalIcon.d.ts +4 -0
- package/dist/types/svgs/GoogleMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/LightModeIcon.d.ts +2 -0
- package/dist/types/svgs/LightModeIcon.d.ts.map +1 -0
- package/dist/types/svgs/LightningIcon.d.ts +4 -0
- package/dist/types/svgs/LightningIcon.d.ts.map +1 -0
- package/dist/types/svgs/LikeIcon.d.ts +2 -0
- package/dist/types/svgs/LikeIcon.d.ts.map +1 -0
- package/dist/types/svgs/LinkIcon.d.ts +2 -0
- package/dist/types/svgs/LinkIcon.d.ts.map +1 -0
- package/dist/types/svgs/ListeningIcon.d.ts +6 -0
- package/dist/types/svgs/ListeningIcon.d.ts.map +1 -0
- package/dist/types/svgs/LockIcon.d.ts +2 -0
- package/dist/types/svgs/LockIcon.d.ts.map +1 -0
- package/dist/types/svgs/LogOutIcon.d.ts +2 -0
- package/dist/types/svgs/LogOutIcon.d.ts.map +1 -0
- package/dist/types/svgs/MCPIcon.d.ts +4 -0
- package/dist/types/svgs/MCPIcon.d.ts.map +1 -0
- package/dist/types/svgs/MessagesSquared.d.ts +4 -0
- package/dist/types/svgs/MessagesSquared.d.ts.map +1 -0
- package/dist/types/svgs/MinimalPlugin.d.ts +5 -0
- package/dist/types/svgs/MinimalPlugin.d.ts.map +1 -0
- package/dist/types/svgs/MobileSidebar.d.ts +4 -0
- package/dist/types/svgs/MobileSidebar.d.ts.map +1 -0
- package/dist/types/svgs/NewChatIcon.d.ts +4 -0
- package/dist/types/svgs/NewChatIcon.d.ts.map +1 -0
- package/dist/types/svgs/OpenAIMinimalIcon.d.ts +4 -0
- package/dist/types/svgs/OpenAIMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/OpenIDIcon.d.ts +2 -0
- package/dist/types/svgs/OpenIDIcon.d.ts.map +1 -0
- package/dist/types/svgs/PaLMIcon.d.ts +5 -0
- package/dist/types/svgs/PaLMIcon.d.ts.map +1 -0
- package/dist/types/svgs/PaLMinimalIcon.d.ts +4 -0
- package/dist/types/svgs/PaLMinimalIcon.d.ts.map +1 -0
- package/dist/types/svgs/PersonalizationIcon.d.ts +4 -0
- package/dist/types/svgs/PersonalizationIcon.d.ts.map +1 -0
- package/dist/types/svgs/PinIcon.d.ts +4 -0
- package/dist/types/svgs/PinIcon.d.ts.map +1 -0
- package/dist/types/svgs/Plugin.d.ts +5 -0
- package/dist/types/svgs/Plugin.d.ts.map +1 -0
- package/dist/types/svgs/RegenerateIcon.d.ts +5 -0
- package/dist/types/svgs/RegenerateIcon.d.ts.map +1 -0
- package/dist/types/svgs/RenameIcon.d.ts +2 -0
- package/dist/types/svgs/RenameIcon.d.ts.map +1 -0
- package/dist/types/svgs/SamlIcon.d.ts +2 -0
- package/dist/types/svgs/SamlIcon.d.ts.map +1 -0
- package/dist/types/svgs/SaveIcon.d.ts +7 -0
- package/dist/types/svgs/SaveIcon.d.ts.map +1 -0
- package/dist/types/svgs/SendIcon.d.ts +5 -0
- package/dist/types/svgs/SendIcon.d.ts.map +1 -0
- package/dist/types/svgs/SendMessageIcon.d.ts +2 -0
- package/dist/types/svgs/SendMessageIcon.d.ts.map +1 -0
- package/dist/types/svgs/Sidebar.d.ts +4 -0
- package/dist/types/svgs/Sidebar.d.ts.map +1 -0
- package/dist/types/svgs/Sparkles.d.ts +5 -0
- package/dist/types/svgs/Sparkles.d.ts.map +1 -0
- package/dist/types/svgs/SpeechIcon.d.ts +6 -0
- package/dist/types/svgs/SpeechIcon.d.ts.map +1 -0
- package/dist/types/svgs/Spinner.d.ts +10 -0
- package/dist/types/svgs/Spinner.d.ts.map +1 -0
- package/dist/types/svgs/SquirclePlusIcon.d.ts +2 -0
- package/dist/types/svgs/SquirclePlusIcon.d.ts.map +1 -0
- package/dist/types/svgs/StopGeneratingIcon.d.ts +4 -0
- package/dist/types/svgs/StopGeneratingIcon.d.ts.map +1 -0
- package/dist/types/svgs/SunIcon.d.ts +2 -0
- package/dist/types/svgs/SunIcon.d.ts.map +1 -0
- package/dist/types/svgs/SwitchIcon.d.ts +7 -0
- package/dist/types/svgs/SwitchIcon.d.ts.map +1 -0
- package/dist/types/svgs/ThumbDownIcon.d.ts +6 -0
- package/dist/types/svgs/ThumbDownIcon.d.ts.map +1 -0
- package/dist/types/svgs/ThumbUpIcon.d.ts +6 -0
- package/dist/types/svgs/ThumbUpIcon.d.ts.map +1 -0
- package/dist/types/svgs/TrashIcon.d.ts +6 -0
- package/dist/types/svgs/TrashIcon.d.ts.map +1 -0
- package/dist/types/svgs/UserIcon.d.ts +2 -0
- package/dist/types/svgs/UserIcon.d.ts.map +1 -0
- package/dist/types/svgs/VectorIcon.d.ts +4 -0
- package/dist/types/svgs/VectorIcon.d.ts.map +1 -0
- package/dist/types/svgs/VolumeIcon.d.ts +5 -0
- package/dist/types/svgs/VolumeIcon.d.ts.map +1 -0
- package/dist/types/svgs/VolumeMuteIcon.d.ts +5 -0
- package/dist/types/svgs/VolumeMuteIcon.d.ts.map +1 -0
- package/dist/types/svgs/XAIcon.d.ts +4 -0
- package/dist/types/svgs/XAIcon.d.ts.map +1 -0
- package/dist/types/svgs/index.d.ts +68 -0
- package/dist/types/svgs/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/theme.d.ts +3 -0
- package/dist/types/utils/theme.d.ts.map +1 -0
- package/dist/types/utils/utils.d.ts +3 -0
- package/dist/types/utils/utils.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n function memoizedFunction() {\n var _a, _b, _c, _d;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getTotalSize() + this.options.scrollMargin - size;\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n index = Math.max(0, Math.min(index, this.options.count - 1));\n let attempts = 0;\n const maxAttempts = 10;\n const tryScroll = (currentAlign) => {\n if (!this.targetWindow) return;\n const offsetInfo = this.getOffsetForIndex(index, currentAlign);\n if (!offsetInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n const [offset, align] = offsetInfo;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.targetWindow.requestAnimationFrame(() => {\n const currentOffset = this.getScrollOffset();\n const afterInfo = this.getOffsetForIndex(index, align);\n if (!afterInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n if (!approxEqual(afterInfo[0], currentOffset)) {\n scheduleRetry(align);\n }\n });\n };\n const scheduleRetry = (align) => {\n if (!this.targetWindow) return;\n attempts++;\n if (attempts < maxAttempts) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"Schedule retry\", attempts, maxAttempts);\n }\n this.targetWindow.requestAnimationFrame(() => tryScroll(align));\n } else {\n console.warn(\n `Failed to scroll to index ${index} after ${maxAttempts} attempts.`\n );\n }\n };\n tryScroll(initialAlign);\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase(options) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","memo","getDeps","fn","opts","result","deps","initialDeps","memoizedFunction","_a","_b","_c","_d","depTime","key","debug","call","Date","now","newDeps","length","some","dep","index","resultTime","depEndTime","Math","round","resultEndTime","resultFpsPercentage","pad","str","num","String","console","info","max","min","onChange","updateDeps","notUndefined","value","msg","Error","debounce","targetWindow","ms","timeoutId","args","clearTimeout","setTimeout","apply","this","getRect","element","offsetWidth","offsetHeight","width","height","defaultKeyExtractor","defaultRangeExtractor","range","start","startIndex","overscan","end","endIndex","count","arr","i","push","observeElementRect","instance","cb","scrollElement","handler","rect","ResizeObserver","observer","entries","run","entry","borderBoxSize","box","inlineSize","blockSize","options","useAnimationFrameWithResizeObserver","requestAnimationFrame","observe","unobserve","addEventListenerOptions","passive","supportsScrollend","window","observeElementOffset","offset","fallback","useScrollendEvent","isScrollingResetDelay","createHandler","isScrolling","horizontal","isRtl","endHandler","addEventListener","registerScrollendEvent","removeEventListener","measureElement","elementScroll","adjustments","behavior","toOffset","scrollTo","Virtualizer","constructor","unsubs","measurementsCache","itemSizeCache","Map","pendingMeasuredCacheIndexes","scrollRect","scrollOffset","scrollDirection","scrollAdjustments","elementsCache","_ro","get","forEach","_measureElement","target","disconnect","setOptions","opts2","Object","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","initialRect","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","enabled","notify","sync","maybeNotify","calculateRange","cleanup","filter","Boolean","d","_didMount","_willUpdate","getScrollElement","ownerDocument","defaultView","cached","_scrollToOffset","getScrollOffset","getSize","getFurthestMeasurement","measurements","furthestMeasurementsFound","furthestMeasurements","m","measurement","has","lane","previousFurthestMeasurement","set","size","Array","from","values","sort","a","b","getMeasurementOptions","getMeasurements","clear","item","slice","furthestMeasurement","measuredSize","estimateSize","outerSize","lastIndex","getOffset","findNearestBinarySearch","endPerLane","fill","pos","startPerLane","getVirtualIndexes","indexFromElement","node","attributeName","indexStr","getAttribute","parseInt","warn","prevNode","isConnected","resizeItem","delta","shouldAdjustScrollPositionOnItemSizeChange","delete","getVirtualItems","indexes","virtualItems","k","len","getVirtualItemForOffset","getOffsetForAlignment","align","itemSize","maxOffset","getTotalSize","getOffsetForIndex","isDynamicMode","scrollToOffset","scrollToIndex","initialAlign","attempts","tryScroll","currentAlign","offsetInfo","currentOffset","afterInfo","abs","scheduleRetry","scrollBy","endByLane","val","scrollToFn","measure","low","high","getCurrentValue","middle","currentValue","useIsomorphicLayoutEffect","React","useLayoutEffect","useEffect","useVirtualizer","rerender","useReducer","resolvedOptions","instance2","flushSync","useState","useVirtualizerBase"],"mappings":"imIAAA,SAAqBA,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAE,GAC9B,IAAIC,EAAWD,EAAIC,SAEnB,GAAgC,oBAAbC,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBU,CAqBxD,4hmDCzBA,SAASe,GAAKC,EAASC,EAAIC,GACzB,IACIC,EADAC,EAAOF,EAAKG,aAAe,GAE/B,SAASC,IACP,IAAIC,EAAIC,EAAIC,EAAIC,EAChB,IAAIC,EACAT,EAAKU,MAA6B,OAApBL,EAAKL,EAAKW,YAAiB,EAASN,EAAGO,KAAKZ,MAAQS,EAAUI,KAAKC,OACrF,MAAMC,EAAUjB,IAEhB,KADoBiB,EAAQC,SAAWd,EAAKc,QAAUD,EAAQE,MAAK,CAACC,EAAKC,IAAUjB,EAAKiB,KAAWD,KAEjG,OAAOjB,EAGT,IAAImB,EAGJ,GAJAlB,EAAOa,EAEHf,EAAKU,MAA6B,OAApBJ,EAAKN,EAAKW,YAAiB,EAASL,EAAGM,KAAKZ,MAAQoB,EAAaP,KAAKC,OACxFb,EAASF,KAAMgB,GACXf,EAAKU,MAA6B,OAApBH,EAAKP,EAAKW,YAAiB,EAASJ,EAAGK,KAAKZ,IAAQ,CACpE,MAAMqB,EAAaC,KAAKC,MAA+B,KAAxBV,KAAKC,MAAQL,IAAkB,IACxDe,EAAgBF,KAAKC,MAAkC,KAA3BV,KAAKC,MAAQM,IAAqB,IAC9DK,EAAsBD,EAAgB,GACtCE,EAAM,CAACC,EAAKC,KAEhB,IADAD,EAAME,OAAOF,GACNA,EAAIX,OAASY,GAClBD,EAAM,IAAMA,EAEd,OAAOA,CAAG,EAEZG,QAAQC,KACN,OAAOL,EAAIF,EAAe,OAAOE,EAAIL,EAAY,QACjD,2FAGiBC,KAAKU,IACpB,EACAV,KAAKW,IAAI,IAAM,IAAMR,EAAqB,sBAEpC,MAARzB,OAAe,EAASA,EAAKU,IAErC,CAEI,OADgD,OAA/CF,EAAa,MAARR,OAAe,EAASA,EAAKkC,WAA6B1B,EAAGI,KAAKZ,EAAMC,GACvEA,CACX,CAIE,OAHAG,EAAiB+B,WAAcpB,IAC7Bb,EAAOa,CAAO,EAETX,CACT,CACA,SAASgC,GAAaC,EAAOC,GAC3B,QAAc,IAAVD,EACF,MAAM,IAAIE,MAAM,wBAEhB,OAAOF,CAEX,CACA,MACMG,GAAW,CAACC,EAAc1C,EAAI2C,KAClC,IAAIC,EACJ,OAAO,YAAYC,GACjBH,EAAaI,aAAaF,GAC1BA,EAAYF,EAAaK,YAAW,IAAM/C,EAAGgD,MAAMC,KAAMJ,IAAOF,EACjE,CAAA,EC3DGO,GAAWC,IACf,MAAMC,YAAEA,EAAWC,aAAEA,GAAiBF,EACtC,MAAO,CAAEG,MAAOF,EAAaG,OAAQF,EAAc,EAE/CG,GAAuBpC,GAAUA,EACjCqC,GAAyBC,IAC7B,MAAMC,EAAQpC,KAAKU,IAAIyB,EAAME,WAAaF,EAAMG,SAAU,GACpDC,EAAMvC,KAAKW,IAAIwB,EAAMK,SAAWL,EAAMG,SAAUH,EAAMM,MAAQ,GAC9DC,EAAM,GACZ,IAAK,IAAIC,EAAIP,EAAOO,GAAKJ,EAAKI,IAC5BD,EAAIE,KAAKD,GAEX,OAAOD,CAAG,EAENG,GAAqB,CAACC,EAAUC,KACpC,MAAMnB,EAAUkB,EAASE,cACzB,IAAKpB,EACH,OAEF,MAAMT,EAAe2B,EAAS3B,aAC9B,IAAKA,EACH,OAEF,MAAM8B,EAAWC,IACf,MAAMnB,MAAEA,EAAKC,OAAEA,GAAWkB,EAC1BH,EAAG,CAAEhB,MAAO/B,KAAKC,MAAM8B,GAAQC,OAAQhC,KAAKC,MAAM+B,IAAU,EAG9D,GADAiB,EAAQtB,GAAQC,KACXT,EAAagC,eAChB,MAAO,OAGT,MAAMC,EAAW,IAAIjC,EAAagC,gBAAgBE,IAChD,MAAMC,EAAM,KACV,MAAMC,EAAQF,EAAQ,GACtB,GAAa,MAATE,OAAgB,EAASA,EAAMC,cAAe,CAChD,MAAMC,EAAMF,EAAMC,cAAc,GAChC,GAAIC,EAEF,YADAR,EAAQ,CAAElB,MAAO0B,EAAIC,WAAY1B,OAAQyB,EAAIE,WAGvD,CACMV,EAAQtB,GAAQC,GAAS,EAE3BkB,EAASc,QAAQC,oCAAsCC,sBAAsBR,GAAOA,GAAK,IAG3F,OADAF,EAASW,QAAQnC,EAAS,CAAE6B,IAAK,eAC1B,KACLL,EAASY,UAAUpC,EAAQ,CAC5B,EAEGqC,GAA0B,CAC9BC,SAAS,GAgBLC,GAAqC,oBAAVC,QAA+B,gBAAiBA,OAC3EC,GAAuB,CAACvB,EAAUC,KACtC,MAAMnB,EAAUkB,EAASE,cACzB,IAAKpB,EACH,OAEF,MAAMT,EAAe2B,EAAS3B,aAC9B,IAAKA,EACH,OAEF,IAAImD,EAAS,EACb,MAAMC,EAAWzB,EAASc,QAAQY,mBAAqBL,GAAoB,OAAejD,GACxFC,GACA,KACE4B,EAAGuB,GAAQ,EAAM,GAEnBxB,EAASc,QAAQa,uBAEbC,EAAiBC,GAAgB,KACrC,MAAMC,WAAEA,EAAUC,MAAEA,GAAU/B,EAASc,QACvCU,EAASM,EAAahD,EAAoB,YAAKiD,GAAS,EAAM,GAAKjD,EAAmB,UACtF2C,IACAxB,EAAGuB,EAAQK,EAAY,EAEnB1B,EAAUyB,GAAc,GACxBI,EAAaJ,GAAc,GACjCI,IACAlD,EAAQmD,iBAAiB,SAAU9B,EAASgB,IAC5C,MAAMe,EAAyBlC,EAASc,QAAQY,mBAAqBL,GAIrE,OAHIa,GACFpD,EAAQmD,iBAAiB,YAAaD,EAAYb,IAE7C,KACLrC,EAAQqD,oBAAoB,SAAUhC,GAClC+B,GACFpD,EAAQqD,oBAAoB,YAAaH,EAC/C,CACG,EAuCGI,GAAiB,CAACtD,EAAS2B,EAAOT,KACtC,GAAa,MAATS,OAAgB,EAASA,EAAMC,cAAe,CAChD,MAAMC,EAAMF,EAAMC,cAAc,GAChC,GAAIC,EAAK,CAIP,OAHazD,KAAKC,MAChBwD,EAAIX,EAASc,QAAQgB,WAAa,aAAe,aAGzD,CACA,CACE,OAAOhD,EAAQkB,EAASc,QAAQgB,WAAa,cAAgB,eAAe,EAaxEO,GAAgB,CAACb,GACrBc,cAAc,EACdC,YACCvC,KACD,IAAI/D,EAAIC,EACR,MAAMsG,EAAWhB,EAASc,EAC6C,OAAtEpG,EAAsC,OAAhCD,EAAK+D,EAASE,oBAAyB,EAASjE,EAAGwG,WAA6BvG,EAAGM,KAAKP,EAAI,CACjG,CAAC+D,EAASc,QAAQgB,WAAa,OAAS,OAAQU,EAChDD,YACA,EAEJ,MAAMG,GACJ,WAAAC,CAAY/G,GACVgD,KAAKgE,OAAS,GACdhE,KAAKsB,cAAgB,KACrBtB,KAAKP,aAAe,KACpBO,KAAKiD,aAAc,EACnBjD,KAAKiE,kBAAoB,GACzBjE,KAAKkE,cAAgC,IAAIC,IACzCnE,KAAKoE,4BAA8B,GACnCpE,KAAKqE,WAAa,KAClBrE,KAAKsE,aAAe,KACpBtE,KAAKuE,gBAAkB,KACvBvE,KAAKwE,kBAAoB,EACzBxE,KAAKyE,cAAgC,IAAIN,IACzCnE,KAAK0B,SAA2B,MAC9B,IAAIgD,EAAM,KACV,MAAMC,EAAM,IACND,IAGC1E,KAAKP,cAAiBO,KAAKP,aAAagC,eAGtCiD,EAAM,IAAI1E,KAAKP,aAAagC,gBAAgBE,IACjDA,EAAQiD,SAAS/C,IACf,MAAMD,EAAM,KACV5B,KAAK6E,gBAAgBhD,EAAMiD,OAAQjD,EAAM,EAE3C7B,KAAKkC,QAAQC,oCAAsCC,sBAAsBR,GAAOA,GAAK,GACrF,IARK,MAWX,MAAO,CACLmD,WAAY,KACV,IAAI1H,EACY,OAAfA,EAAKsH,MAA0BtH,EAAG0H,aACnCL,EAAM,IAAI,EAEZrC,QAAUyC,IACR,IAAIzH,EACJ,OAAuB,OAAfA,EAAKsH,UAAiB,EAAStH,EAAGgF,QAAQyC,EAAQ,CAAE/C,IAAK,cAAe,EAElFO,UAAYwC,IACV,IAAIzH,EACJ,OAAuB,OAAfA,EAAKsH,UAAiB,EAAStH,EAAGiF,UAAUwC,EAAO,EAGhE,EAjC+B,GAkChC9E,KAAKS,MAAQ,KACbT,KAAKgF,WAAcC,IACjBC,OAAOvD,QAAQsD,GAAOL,SAAQ,EAAElH,EAAK2B,WACd,IAAVA,UAA8B4F,EAAMvH,EAAI,IAErDsC,KAAKkC,QAAU,CACbvE,OAAO,EACPwH,cAAe,EACfvE,SAAU,EACVwE,aAAc,EACdC,WAAY,EACZC,mBAAoB,EACpBC,iBAAkB,EAClBrC,YAAY,EACZsC,WAAYjF,GACZkF,eAAgBjF,GAChBtB,SAAU,OAEVsE,kBACAkC,YAAa,CAAErF,MAAO,EAAGC,OAAQ,GACjCqF,aAAc,EACdC,IAAK,EACLC,eAAgB,aAChBC,yBAA0B,GAC1BC,MAAO,EACPhD,sBAAuB,IACvBiD,SAAS,EACT7C,OAAO,EACPL,mBAAmB,EACnBX,qCAAqC,KAClC8C,EACJ,EAEHjF,KAAKiG,OAAUC,IACb,IAAI7I,EAAIC,EAC+B,OAAtCA,GAAMD,EAAK2C,KAAKkC,SAAShD,WAA6B5B,EAAGM,KAAKP,EAAI2C,KAAMkG,EAAK,EAEhFlG,KAAKmG,YAActJ,IACjB,KACEmD,KAAKoG,iBACE,CACLpG,KAAKiD,YACLjD,KAAKS,MAAQT,KAAKS,MAAME,WAAa,KACrCX,KAAKS,MAAQT,KAAKS,MAAMK,SAAW,SAGtCmC,IACCjD,KAAKiG,OAAOhD,EAAY,GAE1B,CACEvF,KAAK,EACLC,MAAO,IAAMqC,KAAKkC,QAAQvE,MAC1BR,YAAa,CACX6C,KAAKiD,YACLjD,KAAKS,MAAQT,KAAKS,MAAME,WAAa,KACrCX,KAAKS,MAAQT,KAAKS,MAAMK,SAAW,QAIzCd,KAAKqG,QAAU,KACbrG,KAAKgE,OAAOsC,OAAOC,SAAS3B,SAAS4B,GAAMA,MAC3CxG,KAAKgE,OAAS,GACdhE,KAAK0B,SAASqD,aACd/E,KAAKsB,cAAgB,KACrBtB,KAAKP,aAAe,IAAI,EAE1BO,KAAKyG,UAAY,IACR,KACLzG,KAAKqG,SAAS,EAGlBrG,KAAK0G,YAAc,KACjB,IAAIrJ,EACJ,MAAMiE,EAAgBtB,KAAKkC,QAAQ8D,QAAUhG,KAAKkC,QAAQyE,mBAAqB,KAC/E,GAAI3G,KAAKsB,gBAAkBA,EAAe,CAExC,GADAtB,KAAKqG,WACA/E,EAEH,YADAtB,KAAKmG,cAGPnG,KAAKsB,cAAgBA,EACjBtB,KAAKsB,eAAiB,kBAAmBtB,KAAKsB,cAChDtB,KAAKP,aAAeO,KAAKsB,cAAcsF,cAAcC,YAErD7G,KAAKP,cAA6C,OAA5BpC,EAAK2C,KAAKsB,oBAAyB,EAASjE,EAAGqF,SAAW,KAElF1C,KAAKyE,cAAcG,SAASkC,IAC1B9G,KAAK0B,SAASW,QAAQyE,EAAO,IAE/B9G,KAAK+G,gBAAgB/G,KAAKgH,kBAAmB,CAC3CtD,iBAAa,EACbC,cAAU,IAEZ3D,KAAKgE,OAAO9C,KACVlB,KAAKkC,QAAQf,mBAAmBnB,MAAOwB,IACrCxB,KAAKqE,WAAa7C,EAClBxB,KAAKmG,aAAa,KAGtBnG,KAAKgE,OAAO9C,KACVlB,KAAKkC,QAAQS,qBAAqB3C,MAAM,CAAC4C,EAAQK,KAC/CjD,KAAKwE,kBAAoB,EACzBxE,KAAKuE,gBAAkBtB,EAAcjD,KAAKgH,kBAAoBpE,EAAS,UAAY,WAAa,KAChG5C,KAAKsE,aAAe1B,EACpB5C,KAAKiD,YAAcA,EACnBjD,KAAKmG,aAAa,IAG9B,GAEInG,KAAKiH,QAAU,IACRjH,KAAKkC,QAAQ8D,SAIlBhG,KAAKqE,WAAarE,KAAKqE,YAAcrE,KAAKkC,QAAQwD,YAC3C1F,KAAKqE,WAAWrE,KAAKkC,QAAQgB,WAAa,QAAU,YAJzDlD,KAAKqE,WAAa,KACX,GAKXrE,KAAKgH,gBAAkB,IAChBhH,KAAKkC,QAAQ8D,SAIlBhG,KAAKsE,aAAetE,KAAKsE,eAAuD,mBAA/BtE,KAAKkC,QAAQiD,cAA+BnF,KAAKkC,QAAQiD,gBAAkBnF,KAAKkC,QAAQiD,eAClInF,KAAKsE,eAJVtE,KAAKsE,aAAe,KACb,GAKXtE,KAAKkH,uBAAyB,CAACC,EAAchJ,KAC3C,MAAMiJ,EAA4C,IAAIjD,IAChDkD,EAAuC,IAAIlD,IACjD,IAAK,IAAImD,EAAInJ,EAAQ,EAAGmJ,GAAK,EAAGA,IAAK,CACnC,MAAMC,EAAcJ,EAAaG,GACjC,GAAIF,EAA0BI,IAAID,EAAYE,MAC5C,SAEF,MAAMC,EAA8BL,EAAqB1C,IACvD4C,EAAYE,MAOd,GALmC,MAA/BC,GAAuCH,EAAY1G,IAAM6G,EAA4B7G,IACvFwG,EAAqBM,IAAIJ,EAAYE,KAAMF,GAClCA,EAAY1G,IAAM6G,EAA4B7G,KACvDuG,EAA0BO,IAAIJ,EAAYE,MAAM,GAE9CL,EAA0BQ,OAAS5H,KAAKkC,QAAQ6D,MAClD,KAEV,CACM,OAAOsB,EAAqBO,OAAS5H,KAAKkC,QAAQ6D,MAAQ8B,MAAMC,KAAKT,EAAqBU,UAAUC,MAAK,CAACC,EAAGC,IACvGD,EAAEpH,MAAQqH,EAAErH,IACPoH,EAAE9J,MAAQ+J,EAAE/J,MAEd8J,EAAEpH,IAAMqH,EAAErH,MAChB,QAAK,CAAM,EAEhBb,KAAKmI,sBAAwBtL,IAC3B,IAAM,CACJmD,KAAKkC,QAAQnB,MACbf,KAAKkC,QAAQkD,aACbpF,KAAKkC,QAAQyD,aACb3F,KAAKkC,QAAQsD,WACbxF,KAAKkC,QAAQ8D,WAEf,CAACjF,EAAOqE,EAAcO,EAAcH,EAAYQ,KAC9ChG,KAAKoE,4BAA8B,GAC5B,CACLrD,QACAqE,eACAO,eACAH,aACAQ,aAGJ,CACEtI,KAAK,IAGTsC,KAAKoI,gBAAkBvL,IACrB,IAAM,CAACmD,KAAKmI,wBAAyBnI,KAAKkE,iBAC1C,EAAGnD,QAAOqE,eAAcO,eAAcH,aAAYQ,WAAW9B,KAC3D,IAAK8B,EAGH,OAFAhG,KAAKiE,kBAAoB,GACzBjE,KAAKkE,cAAcmE,QACZ,GAE6B,IAAlCrI,KAAKiE,kBAAkBjG,SACzBgC,KAAKiE,kBAAoBjE,KAAKkC,QAAQ4D,yBACtC9F,KAAKiE,kBAAkBW,SAAS0D,IAC9BtI,KAAKkE,cAAcyD,IAAIW,EAAK5K,IAAK4K,EAAKV,KAAK,KAG/C,MAAM3I,EAAMe,KAAKoE,4BAA4BpG,OAAS,EAAIM,KAAKW,OAAOe,KAAKoE,6BAA+B,EAC1GpE,KAAKoE,4BAA8B,GACnC,MAAM+C,EAAenH,KAAKiE,kBAAkBsE,MAAM,EAAGtJ,GACrD,IAAK,IAAIgC,EAAIhC,EAAKgC,EAAIF,EAAOE,IAAK,CAChC,MAAMvD,EAAM8H,EAAWvE,GACjBuH,EAA6C,IAAvBxI,KAAKkC,QAAQ6D,MAAcoB,EAAalG,EAAI,GAAKjB,KAAKkH,uBAAuBC,EAAclG,GACjHP,EAAQ8H,EAAsBA,EAAoB3H,IAAMb,KAAKkC,QAAQ0D,IAAMR,EAAeO,EAC1F8C,EAAevE,EAAcS,IAAIjH,GACjCkK,EAA+B,iBAAjBa,EAA4BA,EAAezI,KAAKkC,QAAQwG,aAAazH,GACnFJ,EAAMH,EAAQkH,EACdH,EAAOe,EAAsBA,EAAoBf,KAAOxG,EAAIjB,KAAKkC,QAAQ6D,MAC/EoB,EAAalG,GAAK,CAChB9C,MAAO8C,EACPP,QACAkH,OACA/G,MACAnD,MACA+J,OAEZ,CAEQ,OADAzH,KAAKiE,kBAAoBkD,EAClBA,CAAY,GAErB,CACEzJ,KAAK,EACLC,MAAO,IAAMqC,KAAKkC,QAAQvE,QAG9BqC,KAAKoG,eAAiBvJ,IACpB,IAAM,CACJmD,KAAKoI,kBACLpI,KAAKiH,UACLjH,KAAKgH,kBACLhH,KAAKkC,QAAQ6D,SAEf,CAACoB,EAAcwB,EAAWrE,EAAcyB,IAC/B/F,KAAKS,MAAQ0G,EAAanJ,OAAS,GAAK2K,EAAY,EA2SnE,UAAwBxB,aACtBA,EAAYwB,UACZA,EAASrE,aACTA,EAAYyB,MACZA,IAEA,MAAM6C,EAAYzB,EAAanJ,OAAS,EAClC6K,EAAa1K,GAAUgJ,EAAahJ,GAAOuC,MACjD,GAAIyG,EAAanJ,QAAU+H,EACzB,MAAO,CACLpF,WAAY,EACZG,SAAU8H,GAGd,IAAIjI,EAAamI,GACf,EACAF,EACAC,EACAvE,GAEExD,EAAWH,EACf,GAAc,IAAVoF,EACF,KAAOjF,EAAW8H,GAAazB,EAAarG,GAAUD,IAAMyD,EAAeqE,GACzE7H,SAEG,GAAIiF,EAAQ,EAAG,CACpB,MAAMgD,EAAalB,MAAM9B,GAAOiD,KAAK,GACrC,KAAOlI,EAAW8H,GAAaG,EAAW9K,MAAMgL,GAAQA,EAAM3E,EAAeqE,KAAY,CACvF,MAAML,EAAOnB,EAAarG,GAC1BiI,EAAWT,EAAKb,MAAQa,EAAKzH,IAC7BC,GACN,CACI,MAAMoI,EAAerB,MAAM9B,GAAOiD,KAAK1E,EAAeqE,GACtD,KAAOhI,GAAc,GAAKuI,EAAajL,MAAMgL,GAAQA,GAAO3E,KAAe,CACzE,MAAMgE,EAAOnB,EAAaxG,GAC1BuI,EAAaZ,EAAKb,MAAQa,EAAK5H,MAC/BC,GACN,CACIA,EAAarC,KAAKU,IAAI,EAAG2B,EAAaA,EAAaoF,GACnDjF,EAAWxC,KAAKW,IAAI2J,EAAW9H,GAAYiF,EAAQ,EAAIjF,EAAWiF,GACtE,CACE,MAAO,CAAEpF,aAAYG,WACvB,CArVuEsF,CAAe,CAC5Ee,eACAwB,YACArE,eACAyB,UACG,MAEP,CACErI,KAAK,EACLC,MAAO,IAAMqC,KAAKkC,QAAQvE,QAG9BqC,KAAKmJ,kBAAoBtM,IACvB,KACE,IAAI8D,EAAa,KACbG,EAAW,KACf,MAAML,EAAQT,KAAKoG,iBAMnB,OALI3F,IACFE,EAAaF,EAAME,WACnBG,EAAWL,EAAMK,UAEnBd,KAAKmG,YAAYhH,WAAW,CAACa,KAAKiD,YAAatC,EAAYG,IACpD,CACLd,KAAKkC,QAAQuD,eACbzF,KAAKkC,QAAQtB,SACbZ,KAAKkC,QAAQnB,MACbJ,EACAG,EACD,IAEH,CAAC2E,EAAgB7E,EAAUG,EAAOJ,EAAYG,IACtB,OAAfH,GAAoC,OAAbG,EAAoB,GAAK2E,EAAe,CACpE9E,aACAG,WACAF,WACAG,WAGJ,CACErD,KAAK,EACLC,MAAO,IAAMqC,KAAKkC,QAAQvE,QAG9BqC,KAAKoJ,iBAAoBC,IACvB,MAAMC,EAAgBtJ,KAAKkC,QAAQ2D,eAC7B0D,EAAWF,EAAKG,aAAaF,GACnC,OAAKC,EAMEE,SAASF,EAAU,KALxBzK,QAAQ4K,KACN,2BAA2BJ,oCAEpB,EAEkB,EAE/BtJ,KAAK6E,gBAAkB,CAACwE,EAAMxH,KAC5B,MAAM1D,EAAQ6B,KAAKoJ,iBAAiBC,GAC9Bf,EAAOtI,KAAKiE,kBAAkB9F,GACpC,IAAKmK,EACH,OAEF,MAAM5K,EAAM4K,EAAK5K,IACXiM,EAAW3J,KAAKyE,cAAcE,IAAIjH,GACpCiM,IAAaN,IACXM,GACF3J,KAAK0B,SAASY,UAAUqH,GAE1B3J,KAAK0B,SAASW,QAAQgH,GACtBrJ,KAAKyE,cAAckD,IAAIjK,EAAK2L,IAE1BA,EAAKO,aACP5J,KAAK6J,WAAW1L,EAAO6B,KAAKkC,QAAQsB,eAAe6F,EAAMxH,EAAO7B,MACxE,EAEIA,KAAK6J,WAAa,CAAC1L,EAAOyJ,KACxB,MAAMU,EAAOtI,KAAKiE,kBAAkB9F,GACpC,IAAKmK,EACH,OAEF,MACMwB,EAAQlC,GADG5H,KAAKkE,cAAcS,IAAI2D,EAAK5K,MAAQ4K,EAAKV,MAE5C,IAAVkC,UACsD,IAApD9J,KAAK+J,2CAAwD/J,KAAK+J,2CAA2CzB,EAAMwB,EAAO9J,MAAQsI,EAAK5H,MAAQV,KAAKgH,kBAAoBhH,KAAKwE,oBAI/KxE,KAAK+G,gBAAgB/G,KAAKgH,kBAAmB,CAC3CtD,YAAa1D,KAAKwE,mBAAqBsF,EACvCnG,cAAU,IAGd3D,KAAKoE,4BAA4BlD,KAAKoH,EAAKnK,OAC3C6B,KAAKkE,cAAgB,IAAIC,IAAInE,KAAKkE,cAAcyD,IAAIW,EAAK5K,IAAKkK,IAC9D5H,KAAKiG,QAAO,GACpB,EAEIjG,KAAKwD,eAAkB6F,IAChBA,EASLrJ,KAAK6E,gBAAgBwE,OAAM,GARzBrJ,KAAKyE,cAAcG,SAAQ,CAACkC,EAAQpJ,KAC7BoJ,EAAO8C,cACV5J,KAAK0B,SAASY,UAAUwE,GACxB9G,KAAKyE,cAAcuF,OAAOtM,GACtC,GAIwC,EAEpCsC,KAAKiK,gBAAkBpN,IACrB,IAAM,CAACmD,KAAKmJ,oBAAqBnJ,KAAKoI,qBACtC,CAAC8B,EAAS/C,KACR,MAAMgD,EAAe,GACrB,IAAK,IAAIC,EAAI,EAAGC,EAAMH,EAAQlM,OAAQoM,EAAIC,EAAKD,IAAK,CAClD,MACM7C,EAAcJ,EADV+C,EAAQE,IAElBD,EAAajJ,KAAKqG,EAC5B,CACQ,OAAO4C,CAAY,GAErB,CACEzM,KAAK,EACLC,MAAO,IAAMqC,KAAKkC,QAAQvE,QAG9BqC,KAAKsK,wBAA2B1H,IAC9B,MAAMuE,EAAenH,KAAKoI,kBAC1B,GAA4B,IAAxBjB,EAAanJ,OAGjB,OAAOoB,GACL+H,EAAa2B,GACX,EACA3B,EAAanJ,OAAS,GACrBG,GAAUiB,GAAa+H,EAAahJ,IAAQuC,OAC7CkC,IAEH,EAEH5C,KAAKuK,sBAAwB,CAAC3G,EAAU4G,EAAOC,EAAW,KACxD,MAAM7C,EAAO5H,KAAKiH,UACZ3C,EAAetE,KAAKgH,kBACZ,SAAVwD,IACFA,EAAQ5G,GAAYU,EAAesD,EAAO,MAAQ,SAEtC,WAAV4C,EACF5G,IAAa6G,EAAW7C,GAAQ,EACb,QAAV4C,IACT5G,GAAYgE,GAEd,MAAM8C,EAAY1K,KAAK2K,eAAiB3K,KAAKkC,QAAQyD,aAAeiC,EACpE,OAAOtJ,KAAKU,IAAIV,KAAKW,IAAIyL,EAAW9G,GAAW,EAAE,EAEnD5D,KAAK4K,kBAAoB,CAACzM,EAAOqM,EAAQ,UACvCrM,EAAQG,KAAKU,IAAI,EAAGV,KAAKW,IAAId,EAAO6B,KAAKkC,QAAQnB,MAAQ,IACzD,MAAMuH,EAAOtI,KAAKiE,kBAAkB9F,GACpC,IAAKmK,EACH,OAEF,MAAMV,EAAO5H,KAAKiH,UACZ3C,EAAetE,KAAKgH,kBAC1B,GAAc,SAAVwD,EACF,GAAIlC,EAAKzH,KAAOyD,EAAesD,EAAO5H,KAAKkC,QAAQqD,iBACjDiF,EAAQ,UACH,MAAIlC,EAAK5H,OAAS4D,EAAetE,KAAKkC,QAAQoD,oBAGnD,MAAO,CAAChB,EAAckG,GAFtBA,EAAQ,OAGlB,CAEM,MAAM5G,EAAqB,QAAV4G,EAAkBlC,EAAKzH,IAAMb,KAAKkC,QAAQqD,iBAAmB+C,EAAK5H,MAAQV,KAAKkC,QAAQoD,mBACxG,MAAO,CACLtF,KAAKuK,sBAAsB3G,EAAU4G,EAAOlC,EAAKV,MACjD4C,EACD,EAEHxK,KAAK6K,cAAgB,IAAM7K,KAAKyE,cAAcmD,KAAO,EACrD5H,KAAK8K,eAAiB,CAAClH,GAAY4G,QAAQ,QAAS7G,YAAa,MAC9C,WAAbA,GAAyB3D,KAAK6K,iBAChC/L,QAAQ4K,KACN,0EAGJ1J,KAAK+G,gBAAgB/G,KAAKuK,sBAAsB3G,EAAU4G,GAAQ,CAChE9G,iBAAa,EACbC,YACA,EAEJ3D,KAAK+K,cAAgB,CAAC5M,GAASqM,MAAOQ,EAAe,OAAQrH,YAAa,MACvD,WAAbA,GAAyB3D,KAAK6K,iBAChC/L,QAAQ4K,KACN,0EAGJvL,EAAQG,KAAKU,IAAI,EAAGV,KAAKW,IAAId,EAAO6B,KAAKkC,QAAQnB,MAAQ,IACzD,IAAIkK,EAAW,EACf,MACMC,EAAaC,IACjB,IAAKnL,KAAKP,aAAc,OACxB,MAAM2L,EAAapL,KAAK4K,kBAAkBzM,EAAOgN,GACjD,IAAKC,EAEH,YADAtM,QAAQ4K,KAAK,kCAAmCvL,GAGlD,MAAOyE,EAAQ4H,GAASY,EACxBpL,KAAK+G,gBAAgBnE,EAAQ,CAAEc,iBAAa,EAAQC,aACpD3D,KAAKP,aAAa2C,uBAAsB,KACtC,MAAMiJ,EAAgBrL,KAAKgH,kBACrBsE,EAAYtL,KAAK4K,kBAAkBzM,EAAOqM,GD5lBtC,IAACvC,EAAGC,EC6lBToD,GD7lBMrD,ECimBMqD,EAAU,GDjmBbpD,ECimBiBmD,EDjmBX/M,KAAKiN,IAAItD,EAAIC,GAAK,MCkmBpCsD,EAAchB,IAJd1L,QAAQ4K,KAAK,kCAAmCvL,EAK5D,GACU,EAEEqN,EAAiBhB,IAChBxK,KAAKP,eACVwL,IACIA,EAzBc,GA6BhBjL,KAAKP,aAAa2C,uBAAsB,IAAM8I,EAAUV,KAExD1L,QAAQ4K,KACN,6BAA6BvL,wBAEzC,EAEM+M,EAAUF,EAAa,EAEzBhL,KAAKyL,SAAW,CAAC3B,GAASnG,YAAa,CAAA,KACpB,WAAbA,GAAyB3D,KAAK6K,iBAChC/L,QAAQ4K,KACN,0EAGJ1J,KAAK+G,gBAAgB/G,KAAKgH,kBAAoB8C,EAAO,CACnDpG,iBAAa,EACbC,YACA,EAEJ3D,KAAK2K,aAAe,KAClB,IAAItN,EACJ,MAAM8J,EAAenH,KAAKoI,kBAC1B,IAAIvH,EACJ,GAA4B,IAAxBsG,EAAanJ,OACf6C,EAAMb,KAAKkC,QAAQkD,kBACd,GAA2B,IAAvBpF,KAAKkC,QAAQ6D,MACtBlF,GAAuD,OAA/CxD,EAAK8J,EAAaA,EAAanJ,OAAS,SAAc,EAASX,EAAGwD,MAAQ,MAC7E,CACL,MAAM6K,EAAY7D,MAAM7H,KAAKkC,QAAQ6D,OAAOiD,KAAK,MACjD,IAAIlI,EAAWqG,EAAanJ,OAAS,EACrC,KAAO8C,GAAY,GAAK4K,EAAUzN,MAAM0N,GAAgB,OAARA,KAAe,CAC7D,MAAMrD,EAAOnB,EAAarG,GACG,OAAzB4K,EAAUpD,EAAKb,QACjBiE,EAAUpD,EAAKb,MAAQa,EAAKzH,KAE9BC,GACV,CACQD,EAAMvC,KAAKU,OAAO0M,EAAUpF,QAAQqF,GAAgB,OAARA,IACpD,CACM,OAAOrN,KAAKU,IACV6B,EAAMb,KAAKkC,QAAQyD,aAAe3F,KAAKkC,QAAQmD,WAC/C,EACD,EAEHrF,KAAK+G,gBAAkB,CAACnE,GACtBc,cACAC,eAEA3D,KAAKkC,QAAQ0J,WAAWhJ,EAAQ,CAAEe,WAAUD,eAAe1D,KAAK,EAElEA,KAAK6L,QAAU,KACb7L,KAAKkE,cAAgC,IAAIC,IACzCnE,KAAKiG,QAAO,EAAM,EAEpBjG,KAAKgF,WAAWhI,EACpB,EAEA,MAAM8L,GAA0B,CAACgD,EAAKC,EAAMC,EAAiB3M,KAC3D,KAAOyM,GAAOC,GAAM,CAClB,MAAME,GAAUH,EAAMC,GAAQ,EAAI,EAC5BG,EAAeF,EAAgBC,GACrC,GAAIC,EAAe7M,EACjByM,EAAMG,EAAS,MACV,MAAIC,EAAe7M,GAGxB,OAAO4M,EAFPF,EAAOE,EAAS,CAGtB,CACA,CACE,OAAIH,EAAM,EACDA,EAAM,EAEN,CACX,ECzuBA,MAAMK,GAAgD,oBAAblQ,SAA2BmQ,EAAMC,gBAAkBD,EAAME,UA2BlG,SAASC,GAAerK,GACtB,OA3BF,SAA4BA,GAC1B,MAAMsK,EAAWJ,EAAMK,YAAW,KAAO,CAAE,IAAG,CAAA,GAAI,GAC5CC,EAAkB,IACnBxK,EACHhD,SAAU,CAACyN,EAAWzG,KACpB,IAAI7I,EACA6I,EACF0G,GAAUJ,GAEVA,IAEyB,OAA1BnP,EAAK6E,EAAQhD,WAA6B7B,EAAGO,KAAKsE,EAASyK,EAAWzG,EAAK,IAGzE9E,GAAYgL,EAAMS,UACvB,IAAM,IAAI/I,GAAY4I,KASxB,OAPAtL,EAAS4D,WAAW0H,GACpBP,IAA0B,IACjB/K,EAASqF,aACf,IACH0F,IAA0B,IACjB/K,EAASsF,gBAEXtF,CACT,CAES0L,CAAmB,CACxB3L,sBACAwB,wBACAiJ,WAAYnI,MACTvB,GAEP","x_google_ignoreList":[0,1,2,3]}
|