UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

66 lines (64 loc) 3.51 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "createChatSidePanelLayoutComponent", { enumerable: true, get: function() { return createChatSidePanelLayoutComponent; } }); var _object_spread = require("@swc/helpers/_/_object_spread"); var _object_spread_props = require("@swc/helpers/_/_object_spread_props"); var _object_without_properties = require("@swc/helpers/_/_object_without_properties"); var _lib = require("../../lib"); 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 = _object_without_properties._(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", _object_spread_props._(_object_spread._({}, rest), { className: (0, _lib.cx)('ais-Chat', 'ais-ChatSidePanelLayout', maximized && 'ais-ChatSidePanelLayout--maximized', classNames.root, className) }), /*#__PURE__*/ createElement("div", { className: (0, _lib.cx)('ais-Chat-container', open && 'ais-Chat-container--open', maximized && 'ais-Chat-container--maximized', classNames.container) }, headerComponent, messagesComponent, promptComponent)); }; }