UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

58 lines (55 loc) 3.21 kB
import { _ as _$2 } from '@swc/helpers/esm/_object_spread.js'; import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js'; import { _ } from '@swc/helpers/esm/_object_without_properties.js'; import { cx } from '../../lib/cx.js'; function createChatSidePanelLayoutComponent(param) { var createElement = param.createElement; var originalMargins = new WeakMap(); return function ChatSidePanelLayout(userProps) { var open = userProps.open, maximized = userProps.maximized, headerComponent = userProps.headerComponent, messagesComponent = userProps.messagesComponent, promptComponent = userProps.promptComponent, _userProps_classNames = userProps.classNames, classNames = _userProps_classNames === void 0 ? {} : _userProps_classNames, className = userProps.className, parentElement = userProps.parentElement; // Chat state props (destructured to avoid spreading on div) userProps.messages; userProps.status; userProps.isClearing; userProps.clearMessages; userProps.onClearTransitionEnd; userProps.suggestions; userProps.tools; userProps.sendMessage; userProps.regenerate; userProps.stop; userProps.error; var rest = _(userProps, [ "open", "maximized", "headerComponent", "messagesComponent", "promptComponent", "classNames", "className", "parentElement", "messages", "status", "isClearing", "clearMessages", "onClearTransitionEnd", "suggestions", "tools", "sendMessage", "regenerate", "stop", "error" ]); var element = typeof document !== 'undefined' ? parentElement ? document.querySelector(parentElement) : document.body : null; if (element) { if (open && !originalMargins.has(element)) { originalMargins.set(element, element.style.marginRight); var chatWidth = getComputedStyle(document.documentElement).getPropertyValue('--ais-chat-width').trim() || '22.5rem'; var original = originalMargins.get(element); element.style.marginRight = original ? "calc(".concat(original, " + ").concat(chatWidth, ")") : chatWidth; } else if (!open && originalMargins.has(element)) { var saved = originalMargins.get(element); if (saved) { element.style.marginRight = saved; } else { element.style.removeProperty('margin-right'); } originalMargins.delete(element); } } return /*#__PURE__*/ createElement("div", _$1(_$2({}, rest), { className: cx('ais-Chat', 'ais-ChatSidePanelLayout', maximized && 'ais-ChatSidePanelLayout--maximized', classNames.root, className) }), /*#__PURE__*/ createElement("div", { className: cx('ais-Chat-container', open && 'ais-Chat-container--open', maximized && 'ais-Chat-container--maximized', classNames.container) }, headerComponent, messagesComponent, promptComponent)); }; } export { createChatSidePanelLayoutComponent };