@bikdotai/bik-component-library 0.0.852 → 0.0.853-beta.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/cjs/components/add-variableV2/AddDataPill.js +10 -0
- package/dist/cjs/components/add-variableV2/AddDataPill.js.map +1 -0
- package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +11 -11
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js +7 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionPicker.js +41 -14
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +6 -5
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js +2 -2
- package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/VariableInlineField.js +65 -0
- package/dist/cjs/components/agent-builder/components/VariableInlineField.js.map +1 -0
- package/dist/cjs/components/agent-builder/components/VariableTriggerArea.js +10 -0
- package/dist/cjs/components/agent-builder/components/VariableTriggerArea.js.map +1 -0
- package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
- package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +4 -4
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +11 -3
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/add-variableV2/AddDataPill.d.ts +24 -0
- package/dist/esm/components/add-variableV2/AddDataPill.js +33 -0
- package/dist/esm/components/add-variableV2/AddDataPill.js.map +1 -0
- package/dist/esm/components/add-variableV2/index.d.ts +1 -0
- package/dist/esm/components/agent-builder/AgentBuilder.js +71 -69
- package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +182 -136
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +3 -0
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +214 -207
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +12 -0
- package/dist/esm/components/agent-builder/components/MentionEditor.js +144 -103
- package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionField.js +48 -45
- package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +14 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.js +276 -208
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +184 -168
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.d.ts +9 -0
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.js +67 -48
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/VariableInlineField.d.ts +26 -0
- package/dist/esm/components/agent-builder/components/VariableInlineField.js +149 -0
- package/dist/esm/components/agent-builder/components/VariableInlineField.js.map +1 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.d.ts +46 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.js +118 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.js.map +1 -0
- package/dist/esm/components/agent-builder/constants/tools.d.ts +1 -1
- package/dist/esm/components/agent-builder/constants/tools.js +13 -12
- package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +99 -96
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +160 -156
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +14 -4
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js +54 -36
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js +16 -15
- package/dist/esm/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/esm/editor/BikEditor.js +70 -64
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +12 -4
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +9 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.js +28 -28
- package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js +23 -19
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/icons/index.d.ts +25 -25
- package/dist/esm/index.js +543 -541
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sources":["../../../../src/components/variable-picker-v3/Content.tsx"],"sourcesContent":["import BackIcon from '@src/assets/icons/arrow_back.svg';\nimport CrossIcon from '@src/assets/icons/cross.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { COLORS } from '@src/constants/Theme';\nimport { BikAccordion } from '../accordion';\nimport { IconButton } from '../icon-button';\nimport { Input } from '../input';\nimport { ListItem } from '../list-item';\nimport { Switch } from '../switch';\nimport { Tooltip } from '../tooltips';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '../TypographyStyle';\nimport { VariablePickerContext } from './context';\nimport { DefaultVariableContent } from './DefaultVariableContent';\nimport { highlightSearchText } from './highlightSearchText';\nimport {\n\tPickerType,\n\tSubHeader,\n\tVariablePickerV3Props,\n\tVariableV3,\n} from './model';\nimport NoResult from './NoResult';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\nimport { searchVariables } from './searchVariables';\nimport {\n\tBackHeader,\n\tContainer,\n\tHeaderWrapper,\n\tRecommendWrapper,\n} from './styles';\nimport SubHeaderItems, { renderTooltipBody } from './SubHeaderItems';\n\ntype Props = VariablePickerV3Props;\n\nconst variableRegex = /.*\\..*/;\nconst checkIfArray = (value: string) => {\n\tconst regex = /\\w+\\[\\d+\\]/g;\n\treturn regex.test(value);\n};\n\nconst matchVariable = (variable: VariableV3) => {\n\tif (variable.actualValue.match(variableRegex)) {\n\t\tconst path = variable.actualValue\n\t\t\t.replace('{{', '')\n\t\t\t.replace('}}', '')\n\t\t\t.split('.');\n\t\tlet evalVariableValue = path[0];\n\t\tpath.forEach((value, index) => {\n\t\t\tif (index === 0) return;\n\t\t\tconst isArray = checkIfArray(value);\n\t\t\tif (isArray) {\n\t\t\t\t// ex: event_memberships[0] -> ['event_memberships'][0]\n\t\t\t\tconst matches = value.match(/(\\w+)\\[(\\d+)\\]/);\n\t\t\t\tif (matches) {\n\t\t\t\t\tconst arrayName = matches[1];\n\t\t\t\t\tconst index = matches[2];\n\t\t\t\t\tevalVariableValue = evalVariableValue + `['${arrayName}'][${index}]`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevalVariableValue = evalVariableValue + `['${value}']`;\n\t\t\t}\n\t\t});\n\t\treturn evalVariableValue;\n\t} else {\n\t\tconst value = variable.actualValueEval\n\t\t\t? variable.actualValueEval\n\t\t\t: variable.actualValue;\n\t\treturn value;\n\t}\n};\n\nexport const VariablePickerContent: React.FC<Props> = (\n\tprops: VariablePickerV3Props,\n) => {\n\tconst {\n\t\tdata,\n\t\tonSelect,\n\t\tshowHeader,\n\t\tshowBackButton,\n\t\thideHeaderCross,\n\t\tonBackButtonClick,\n\t\tisEvaluationList,\n\t\tautoOpenFirst,\n\t\theaderText,\n\t\tcontentHeight,\n\t\tonDefaultVariableSelect,\n\t\tskipDefaultVariableContent,\n\t} = props;\n\n\tconst [variables, setVariables] = useState(data); // modified data after search\n\tconst [searchText, setSearchText] = useState<string>('');\n\tconst [subHeaderStack, setSubHeaderStack] = useState<any[]>([]); // push variable object after every level\n\tconst [searchedFrom, setSearchedFrom] = useState<string>(''); // from which level did the user search from\n\tconst [showRecommended, setShowRecommended] = useState<boolean>(false);\n\tconst [dataSource, setDataSource] = useState<any[]>([]); // for search, maintaining original copy\n\tconst [openDefaultVariablePanel, setOpenDefaultVariablePanel] =\n\t\tuseState(false);\n\tconst [chosenForDefault, setChosenForDefault] = useState<VariableV3 | null>();\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst scrollPositionStack = useRef<number[]>([]);\n\tconst shouldShowHeaderInsideCross =\n\t\topenDefaultVariablePanel &&\n\t\tprops.type === PickerType.EMBEDDED &&\n\t\t!hideHeaderCross;\n\n\t// useEffect(() => {\n\t// \t// TODO: based on new data, update existing variables if available\n\t// \tsetVariables(data);\n\t// }, [data]);\n\n\tuseEffect(() => {\n\t\thandleRecommendedChange(props.showRecommendedBar ?? true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tsetDataSource([subHeaderStack[subHeaderStack.length - 1]]);\n\t\t} else {\n\t\t\tsetDataSource(data);\n\t\t}\n\t}, [subHeaderStack]);\n\n\tconst handleBackClick = (e: any) => {\n\t\te.stopPropagation();\n\t\tlet _searchText = searchText;\n\t\tconst newSubHeaderStack = [...subHeaderStack];\n\t\tconst poppedElement = newSubHeaderStack.pop();\n\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t_searchText = ''; // so that search is not trigerred in the below code\n\t\t}\n\t\tconst savedScrollTop = scrollPositionStack.current.pop() ?? 0;\n\n\t\t// Use flushSync to force synchronous DOM update so scroll can be\n\t\t// restored immediately after the new content is rendered\n\t\tflushSync(() => {\n\t\t\tsetSubHeaderStack(newSubHeaderStack);\n\t\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t\tsetSearchText('');\n\t\t\t}\n\t\t\tif (_searchText.length > 0) {\n\t\t\t\t// maintain the search result when going back\n\t\t\t\tconst dataSource =\n\t\t\t\t\tnewSubHeaderStack.length > 0\n\t\t\t\t\t\t? [newSubHeaderStack[newSubHeaderStack.length - 1]]\n\t\t\t\t\t\t: data;\n\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t_searchText,\n\t\t\t\t\tdataSource,\n\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t);\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newSubHeaderStack.length > 0) {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t[newSubHeaderStack[newSubHeaderStack.length - 1].variables],\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables([\n\t\t\t\t\t\t\tnewSubHeaderStack[newSubHeaderStack.length - 1].variables,\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Restore scroll after accordion expand animation completes.\n\t\t// The BikAccordion uses a 250ms CSS transition on max-height when\n\t\t// autoOpen fires. We must wait for that to finish so the Container\n\t\t// has enough scrollHeight to scroll to the saved position.\n\t\tif (containerRef.current && savedScrollTop > 0) {\n\t\t\tconst el = containerRef.current;\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.scrollTo({ top: savedScrollTop, behavior: 'smooth' });\n\t\t\t}, 300);\n\t\t}\n\t};\n\n\tconst handleRecommendedChange = async (val) => {\n\t\tsetShowRecommended(val);\n\t\tif (val) {\n\t\t\tconst output = showOnlyRecommendedVariables(variables, subHeaderStack);\n\t\t\tsetVariables(output);\n\t\t} else {\n\t\t\tif (subHeaderStack.length > 0) {\n\t\t\t\t// dont apply search if not in the page where search started\n\t\t\t\tconst isInSearchStartPage =\n\t\t\t\t\tsearchedFrom == subHeaderStack[subHeaderStack.length - 1].displayName;\n\t\t\t\tif (searchText.length > 0 && isInSearchStartPage) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables([subHeaderStack[subHeaderStack.length - 1].variables]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (searchText.length > 0) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst calculateHeight = () => {\n\t\tif (contentHeight) {\n\t\t\treturn contentHeight;\n\t\t}\n\t\tlet pickerContentHeight = 131;\n\t\tif (!(props.showSearch ?? true)) {\n\t\t\tpickerContentHeight -= 52;\n\t\t}\n\t\tif (!(props.showRecommendedBar ?? true)) {\n\t\t\tpickerContentHeight -= 45;\n\t\t}\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tpickerContentHeight += 32;\n\t\t}\n\t\tif (props.showHeader || props.showBackButton) {\n\t\t\tpickerContentHeight += 40;\n\t\t}\n\t\treturn `calc(100% - ${pickerContentHeight}px)`;\n\t};\n\n\tconst onSearch = (text: string) => {\n\t\tif (!text) {\n\t\t\tsetSearchedFrom('');\n\t\t}\n\t\tconst result = searchVariables(text, dataSource, subHeaderStack);\n\t\tif (showRecommended) {\n\t\t\tconst recommended = showOnlyRecommendedVariables(result, subHeaderStack);\n\t\t\tsetVariables(recommended);\n\t\t} else {\n\t\t\tsetVariables(result);\n\t\t}\n\t\tsetSearchText(text);\n\t\tconst latestSubHeader =\n\t\t\tsubHeaderStack.length > 0\n\t\t\t\t? subHeaderStack[subHeaderStack.length - 1].displayName\n\t\t\t\t: 'home';\n\t\tsetSearchedFrom(latestSubHeader);\n\t};\n\n\tconst HeaderBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={16}\n\t\t\t\theight={16}\n\t\t\t\tstyle={{ display: 'flex', color: COLORS.content.primary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst GoBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={12}\n\t\t\t\theight={12}\n\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst onSelectingVariable = (variable: VariableV3) => {\n\t\tif (props.disabled) return;\n\t\tif (isEvaluationList) {\n\t\t\tconst evalVariableValue = matchVariable(variable as VariableV3);\n\t\t\tonSelect({\n\t\t\t\t...variable,\n\t\t\t\tactualValue: evalVariableValue,\n\t\t\t} as VariableV3);\n\t\t} else {\n\t\t\tif (variable.isDefaultValueSupported && !skipDefaultVariableContent) {\n\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(variable as VariableV3);\n\t\t}\n\t};\n\n\treturn (\n\t\t<VariablePickerContext.Provider\n\t\t\tvalue={{\n\t\t\t\tvariables,\n\t\t\t\tsearchText,\n\t\t\t\tsubHeaderStack,\n\t\t\t\tshowRecommended,\n\t\t\t\tsetSubHeaderStack,\n\t\t\t\tsetSearchText,\n\t\t\t\tsetVariables,\n\t\t\t\tsetShowRecommended,\n\t\t\t\tcontainerRef,\n\t\t\t\tscrollPositionStack,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\ttabIndex={-1}\n\t\t\t\tid=\"variable-picker-v3\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: 'white',\n\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\theight: '100%',\n\t\t\t\t\toutline: 'none',\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{(showHeader || showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t<HeaderWrapper openDefault={openDefaultVariablePanel}>\n\t\t\t\t\t\t<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n\t\t\t\t\t\t\t{(showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tIcon={HeaderBackIcon}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (openDefaultVariablePanel) {\n\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(false);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonBackButtonClick && onBackButtonClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(showHeader || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<TitleRegular>\n\t\t\t\t\t\t\t\t\t{openDefaultVariablePanel\n\t\t\t\t\t\t\t\t\t\t? 'Set up'\n\t\t\t\t\t\t\t\t\t\t: headerText ?? 'Select Variable'}\n\t\t\t\t\t\t\t\t</TitleRegular>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{shouldShowHeaderInsideCross && (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tstyle={{ color: '#212121' }}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\tonClick={() => props.onClose && props.onClose()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</HeaderWrapper>\n\t\t\t\t)}\n\t\t\t\t{openDefaultVariablePanel &&\n\t\t\t\tchosenForDefault &&\n\t\t\t\t!skipDefaultVariableContent ? (\n\t\t\t\t\t<DefaultVariableContent\n\t\t\t\t\t\tvariable={chosenForDefault}\n\t\t\t\t\t\tonInsertVariable={(updated) => {\n\t\t\t\t\t\t\tonSelect(updated);\n\t\t\t\t\t\t\tonDefaultVariableSelect?.(updated);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(props.showSearch ?? true) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(props.showRecommendedBar ?? true) && (\n\t\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</RecommendWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{subHeaderStack.length > 0 && (\n\t\t\t\t\t\t\t<BackHeader>\n\t\t\t\t\t\t\t\t<div style={{ position: 'absolute', left: 16 }}>\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tid=\"back-btn-v3\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex' }}\n\t\t\t\t\t\t\t\t\t\tIcon={GoBackIcon}\n\t\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{subHeaderStack[subHeaderStack.length - 1].displayName}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</BackHeader>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{variables.length > 0 ? (\n\t\t\t\t\t\t\t\t<Container ref={containerRef} height={calculateHeight()}>\n\t\t\t\t\t\t\t\t\t{variables.map((variable, index) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tvariable.displayName &&\n\t\t\t\t\t\t\t\t\t\t\ttypeof variable.variables !== 'undefined'\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={variable.displayName + showRecommended} // to re-render the component\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<BikAccordion\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarrowColor={COLORS.content.primary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoOpen={autoOpenFirst && index === 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaderPadding=\"12px 16px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TitleSmall\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentVariable={variable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={variable.variables}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.isDefaultValueSupported &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!skipDefaultVariableContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(variable as VariableV3);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</BikAccordion>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (variable.displayName) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody={renderTooltipBody(variable as VariableV3)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (variable as VariableV3)?.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(variable as VariableV3)?.selected ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<AddIcon width={14} height={14} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: COLORS.text.primary,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!variable.isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip body=\"Not Recommended\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex', marginTop: 2 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<WarnIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubText={variable.description || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable as unknown as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key: string]: SubHeader | VariableV3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable: VariableV3) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<NoResult height={calculateHeight()} searchText={searchText} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</VariablePickerContext.Provider>\n\t);\n};\n"],"names":["variableRegex","checkIfArray","value","matchVariable","variable","path","evalVariableValue","index","matches","arrayName","VariablePickerContent","props","data","onSelect","showHeader","showBackButton","hideHeaderCross","onBackButtonClick","isEvaluationList","autoOpenFirst","headerText","contentHeight","onDefaultVariableSelect","skipDefaultVariableContent","variables","setVariables","useState","searchText","setSearchText","subHeaderStack","setSubHeaderStack","searchedFrom","setSearchedFrom","showRecommended","setShowRecommended","dataSource","setDataSource","openDefaultVariablePanel","setOpenDefaultVariablePanel","chosenForDefault","setChosenForDefault","containerRef","useRef","scrollPositionStack","shouldShowHeaderInsideCross","PickerType","useEffect","handleRecommendedChange","handleBackClick","_searchText","newSubHeaderStack","poppedElement","savedScrollTop","flushSync","result","searchVariables","recommended","showOnlyRecommendedVariables","el","val","output","isInSearchStartPage","calculateHeight","pickerContentHeight","onSearch","text","latestSubHeader","HeaderBackIcon","jsx","BackIcon","COLORS","GoBackIcon","onSelectingVariable","VariablePickerContext","jsxs","HeaderWrapper","IconButton","TitleRegular","CrossIcon","DefaultVariableContent","updated","Fragment","Input","RecommendWrapper","BodySecondary","Switch","BackHeader","BodyCaption","Container","BikAccordion","TitleSmall","highlightSearchText","SubHeaderItems","Tooltip","renderTooltipBody","ListItem","AddIcon","WarnIcon","NoResult"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../../../src/components/variable-picker-v3/Content.tsx"],"sourcesContent":["import BackIcon from '@src/assets/icons/arrow_back.svg';\nimport CrossIcon from '@src/assets/icons/cross.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { COLORS } from '@src/constants/Theme';\nimport { BikAccordion } from '../accordion';\nimport { IconButton } from '../icon-button';\nimport { Input } from '../input';\nimport { ListItem } from '../list-item';\nimport { Switch } from '../switch';\nimport { Tooltip } from '../tooltips';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '../TypographyStyle';\nimport { VariablePickerContext } from './context';\nimport { DefaultVariableContent } from './DefaultVariableContent';\nimport { highlightSearchText } from './highlightSearchText';\nimport {\n\tPickerType,\n\tSubHeader,\n\tVariablePickerV3Props,\n\tVariableV3,\n} from './model';\nimport NoResult from './NoResult';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\nimport { searchVariables } from './searchVariables';\nimport {\n\tBackHeader,\n\tContainer,\n\tHeaderWrapper,\n\tRecommendWrapper,\n} from './styles';\nimport SubHeaderItems, { renderTooltipBody } from './SubHeaderItems';\n\ntype Props = VariablePickerV3Props;\n\nconst variableRegex = /.*\\..*/;\nconst checkIfArray = (value: string) => {\n\tconst regex = /\\w+\\[\\d+\\]/g;\n\treturn regex.test(value);\n};\n\nconst matchVariable = (variable: VariableV3) => {\n\tif (variable.actualValue.match(variableRegex)) {\n\t\tconst path = variable.actualValue\n\t\t\t.replace('{{', '')\n\t\t\t.replace('}}', '')\n\t\t\t.split('.');\n\t\tlet evalVariableValue = path[0];\n\t\tpath.forEach((value, index) => {\n\t\t\tif (index === 0) return;\n\t\t\tconst isArray = checkIfArray(value);\n\t\t\tif (isArray) {\n\t\t\t\t// ex: event_memberships[0] -> ['event_memberships'][0]\n\t\t\t\tconst matches = value.match(/(\\w+)\\[(\\d+)\\]/);\n\t\t\t\tif (matches) {\n\t\t\t\t\tconst arrayName = matches[1];\n\t\t\t\t\tconst index = matches[2];\n\t\t\t\t\tevalVariableValue = evalVariableValue + `['${arrayName}'][${index}]`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevalVariableValue = evalVariableValue + `['${value}']`;\n\t\t\t}\n\t\t});\n\t\treturn evalVariableValue;\n\t} else {\n\t\tconst value = variable.actualValueEval\n\t\t\t? variable.actualValueEval\n\t\t\t: variable.actualValue;\n\t\treturn value;\n\t}\n};\n\nexport const VariablePickerContent: React.FC<Props> = (\n\tprops: VariablePickerV3Props,\n) => {\n\tconst {\n\t\tdata,\n\t\tonSelect,\n\t\tshowHeader,\n\t\tshowBackButton,\n\t\thideHeaderCross,\n\t\tonBackButtonClick,\n\t\tisEvaluationList,\n\t\tautoOpenFirst,\n\t\theaderText,\n\t\tcontentHeight,\n\t\tonDefaultVariableSelect,\n\t\tskipDefaultVariableContent,\n\t} = props;\n\n\tconst [variables, setVariables] = useState(data); // modified data after search\n\tconst [searchText, setSearchText] = useState<string>('');\n\tconst [subHeaderStack, setSubHeaderStack] = useState<any[]>([]); // push variable object after every level\n\tconst [searchedFrom, setSearchedFrom] = useState<string>(''); // from which level did the user search from\n\tconst [showRecommended, setShowRecommended] = useState<boolean>(false);\n\tconst [dataSource, setDataSource] = useState<any[]>([]); // for search, maintaining original copy\n\tconst [openDefaultVariablePanel, setOpenDefaultVariablePanel] =\n\t\tuseState(false);\n\tconst [chosenForDefault, setChosenForDefault] = useState<VariableV3 | null>();\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst scrollPositionStack = useRef<number[]>([]);\n\tconst shouldShowHeaderInsideCross =\n\t\topenDefaultVariablePanel &&\n\t\tprops.type === PickerType.EMBEDDED &&\n\t\t!hideHeaderCross;\n\n\t// useEffect(() => {\n\t// \t// TODO: based on new data, update existing variables if available\n\t// \tsetVariables(data);\n\t// }, [data]);\n\n\tuseEffect(() => {\n\t\thandleRecommendedChange(props.showRecommendedBar ?? true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tsetDataSource([subHeaderStack[subHeaderStack.length - 1]]);\n\t\t} else {\n\t\t\tsetDataSource(data);\n\t\t}\n\t}, [subHeaderStack]);\n\n\tconst handleBackClick = (e: any) => {\n\t\te.stopPropagation();\n\t\tlet _searchText = searchText;\n\t\tconst newSubHeaderStack = [...subHeaderStack];\n\t\tconst poppedElement = newSubHeaderStack.pop();\n\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t_searchText = ''; // so that search is not trigerred in the below code\n\t\t}\n\t\tconst savedScrollTop = scrollPositionStack.current.pop() ?? 0;\n\n\t\t// Use flushSync to force synchronous DOM update so scroll can be\n\t\t// restored immediately after the new content is rendered\n\t\tflushSync(() => {\n\t\t\tsetSubHeaderStack(newSubHeaderStack);\n\t\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t\tsetSearchText('');\n\t\t\t}\n\t\t\tif (_searchText.length > 0) {\n\t\t\t\t// maintain the search result when going back\n\t\t\t\tconst dataSource =\n\t\t\t\t\tnewSubHeaderStack.length > 0\n\t\t\t\t\t\t? [newSubHeaderStack[newSubHeaderStack.length - 1]]\n\t\t\t\t\t\t: data;\n\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t_searchText,\n\t\t\t\t\tdataSource,\n\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t);\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newSubHeaderStack.length > 0) {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t[newSubHeaderStack[newSubHeaderStack.length - 1].variables],\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables([\n\t\t\t\t\t\t\tnewSubHeaderStack[newSubHeaderStack.length - 1].variables,\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Restore scroll after accordion expand animation completes.\n\t\t// The BikAccordion uses a 250ms CSS transition on max-height when\n\t\t// autoOpen fires. We must wait for that to finish so the Container\n\t\t// has enough scrollHeight to scroll to the saved position.\n\t\tif (containerRef.current && savedScrollTop > 0) {\n\t\t\tconst el = containerRef.current;\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.scrollTo({ top: savedScrollTop, behavior: 'smooth' });\n\t\t\t}, 300);\n\t\t}\n\t};\n\n\tconst handleRecommendedChange = async (val) => {\n\t\tsetShowRecommended(val);\n\t\tif (val) {\n\t\t\tconst output = showOnlyRecommendedVariables(variables, subHeaderStack);\n\t\t\tsetVariables(output);\n\t\t} else {\n\t\t\tif (subHeaderStack.length > 0) {\n\t\t\t\t// dont apply search if not in the page where search started\n\t\t\t\tconst isInSearchStartPage =\n\t\t\t\t\tsearchedFrom == subHeaderStack[subHeaderStack.length - 1].displayName;\n\t\t\t\tif (searchText.length > 0 && isInSearchStartPage) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables([subHeaderStack[subHeaderStack.length - 1].variables]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (searchText.length > 0) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst calculateHeight = () => {\n\t\tif (contentHeight) {\n\t\t\treturn contentHeight;\n\t\t}\n\t\tlet pickerContentHeight = 131;\n\t\tif (!(props.showSearch ?? true)) {\n\t\t\tpickerContentHeight -= 52;\n\t\t}\n\t\tif (!(props.showRecommendedBar ?? true)) {\n\t\t\tpickerContentHeight -= 45;\n\t\t}\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tpickerContentHeight += 32;\n\t\t}\n\t\tif (props.showHeader || props.showBackButton) {\n\t\t\tpickerContentHeight += 40;\n\t\t}\n\t\treturn `calc(100% - ${pickerContentHeight}px)`;\n\t};\n\n\tconst onSearch = (text: string) => {\n\t\tif (!text) {\n\t\t\tsetSearchedFrom('');\n\t\t}\n\t\tconst result = searchVariables(text, dataSource, subHeaderStack);\n\t\tif (showRecommended) {\n\t\t\tconst recommended = showOnlyRecommendedVariables(result, subHeaderStack);\n\t\t\tsetVariables(recommended);\n\t\t} else {\n\t\t\tsetVariables(result);\n\t\t}\n\t\tsetSearchText(text);\n\t\tconst latestSubHeader =\n\t\t\tsubHeaderStack.length > 0\n\t\t\t\t? subHeaderStack[subHeaderStack.length - 1].displayName\n\t\t\t\t: 'home';\n\t\tsetSearchedFrom(latestSubHeader);\n\t};\n\n\tconst HeaderBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={16}\n\t\t\t\theight={16}\n\t\t\t\tstyle={{ display: 'flex', color: COLORS.content.primary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst GoBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={12}\n\t\t\t\theight={12}\n\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst onSelectingVariable = (variable: VariableV3) => {\n\t\tif (props.disabled) return;\n\t\tif (isEvaluationList) {\n\t\t\tconst evalVariableValue = matchVariable(variable as VariableV3);\n\t\t\tonSelect({\n\t\t\t\t...variable,\n\t\t\t\tactualValue: evalVariableValue,\n\t\t\t} as VariableV3);\n\t\t} else {\n\t\t\tif (variable.isDefaultValueSupported && !skipDefaultVariableContent) {\n\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(variable as VariableV3);\n\t\t}\n\t};\n\n\treturn (\n\t\t<VariablePickerContext.Provider\n\t\t\tvalue={{\n\t\t\t\tvariables,\n\t\t\t\tsearchText,\n\t\t\t\tsubHeaderStack,\n\t\t\t\tshowRecommended,\n\t\t\t\tsetSubHeaderStack,\n\t\t\t\tsetSearchText,\n\t\t\t\tsetVariables,\n\t\t\t\tsetShowRecommended,\n\t\t\t\tcontainerRef,\n\t\t\t\tscrollPositionStack,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\ttabIndex={-1}\n\t\t\t\tid=\"variable-picker-v3\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: 'white',\n\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\theight: '100%',\n\t\t\t\t\toutline: 'none',\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{(showHeader || showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t<HeaderWrapper openDefault={openDefaultVariablePanel}>\n\t\t\t\t\t\t<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n\t\t\t\t\t\t\t{(showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tIcon={HeaderBackIcon}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (openDefaultVariablePanel) {\n\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(false);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonBackButtonClick && onBackButtonClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(showHeader || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<TitleRegular>\n\t\t\t\t\t\t\t\t\t{openDefaultVariablePanel\n\t\t\t\t\t\t\t\t\t\t? 'Set up'\n\t\t\t\t\t\t\t\t\t\t: headerText ?? 'Select Variable'}\n\t\t\t\t\t\t\t\t</TitleRegular>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{shouldShowHeaderInsideCross && (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tstyle={{ color: '#212121' }}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\tonClick={() => props.onClose && props.onClose()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</HeaderWrapper>\n\t\t\t\t)}\n\t\t\t\t{openDefaultVariablePanel &&\n\t\t\t\tchosenForDefault &&\n\t\t\t\t!skipDefaultVariableContent ? (\n\t\t\t\t\t<DefaultVariableContent\n\t\t\t\t\t\tvariable={chosenForDefault}\n\t\t\t\t\t\tonInsertVariable={(updated) => {\n\t\t\t\t\t\t\tonSelect(updated);\n\t\t\t\t\t\t\tonDefaultVariableSelect?.(updated);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(props.showSearch ?? true) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(props.showRecommendedBar ?? true) && (\n\t\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\tdata-test=\"variable-recommended-toggle\"\n\t\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</RecommendWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{subHeaderStack.length > 0 && (\n\t\t\t\t\t\t\t<BackHeader>\n\t\t\t\t\t\t\t\t<div style={{ position: 'absolute', left: 16 }}>\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tid=\"back-btn-v3\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex' }}\n\t\t\t\t\t\t\t\t\t\tIcon={GoBackIcon}\n\t\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{subHeaderStack[subHeaderStack.length - 1].displayName}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</BackHeader>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{variables.length > 0 ? (\n\t\t\t\t\t\t\t\t<Container ref={containerRef} height={calculateHeight()}>\n\t\t\t\t\t\t\t\t\t{variables.map((variable, index) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tvariable.displayName &&\n\t\t\t\t\t\t\t\t\t\t\ttypeof variable.variables !== 'undefined'\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={variable.displayName + showRecommended} // to re-render the component\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<BikAccordion\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarrowColor={COLORS.content.primary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoOpen={autoOpenFirst && index === 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaderPadding=\"12px 16px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TitleSmall\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentVariable={variable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={variable.variables}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.isDefaultValueSupported &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!skipDefaultVariableContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(variable as VariableV3);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</BikAccordion>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (variable.displayName) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody={renderTooltipBody(variable as VariableV3)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (variable as VariableV3)?.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(variable as VariableV3)?.selected ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<AddIcon width={14} height={14} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: COLORS.text.primary,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!variable.isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip body=\"Not Recommended\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex', marginTop: 2 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<WarnIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubText={variable.description || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable as unknown as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key: string]: SubHeader | VariableV3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable: VariableV3) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<NoResult height={calculateHeight()} searchText={searchText} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</VariablePickerContext.Provider>\n\t);\n};\n"],"names":["variableRegex","checkIfArray","value","matchVariable","variable","path","evalVariableValue","index","matches","arrayName","VariablePickerContent","props","data","onSelect","showHeader","showBackButton","hideHeaderCross","onBackButtonClick","isEvaluationList","autoOpenFirst","headerText","contentHeight","onDefaultVariableSelect","skipDefaultVariableContent","variables","setVariables","useState","searchText","setSearchText","subHeaderStack","setSubHeaderStack","searchedFrom","setSearchedFrom","showRecommended","setShowRecommended","dataSource","setDataSource","openDefaultVariablePanel","setOpenDefaultVariablePanel","chosenForDefault","setChosenForDefault","containerRef","useRef","scrollPositionStack","shouldShowHeaderInsideCross","PickerType","useEffect","handleRecommendedChange","handleBackClick","_searchText","newSubHeaderStack","poppedElement","savedScrollTop","flushSync","result","searchVariables","recommended","showOnlyRecommendedVariables","el","val","output","isInSearchStartPage","calculateHeight","pickerContentHeight","onSearch","text","latestSubHeader","HeaderBackIcon","jsx","BackIcon","COLORS","GoBackIcon","onSelectingVariable","VariablePickerContext","jsxs","HeaderWrapper","IconButton","TitleRegular","CrossIcon","DefaultVariableContent","updated","Fragment","Input","RecommendWrapper","BodySecondary","Switch","BackHeader","BodyCaption","Container","BikAccordion","TitleSmall","highlightSearchText","SubHeaderItems","Tooltip","renderTooltipBody","ListItem","AddIcon","WarnIcon","NoResult"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs as u, jsx as d } from "react/jsx-runtime";
|
|
2
2
|
import { getMarkRange as vt } from "../node_modules/@tiptap/core/dist/index.js";
|
|
3
3
|
import { useEditor as bt, EditorContent as X } from "@tiptap/react";
|
|
4
|
-
import { forwardRef as Et, useState as
|
|
4
|
+
import { forwardRef as Et, useState as T, useRef as a, useEffect as Tt, useImperativeHandle as At } from "react";
|
|
5
5
|
import { BodyCaption as Y } from "../components/TypographyStyle.js";
|
|
6
|
-
import { BikEditorShell as It, BikJsonHeader as
|
|
6
|
+
import { BikEditorShell as It, BikJsonHeader as Mt, BikJsonBody as Rt, BikJsonEmptyState as Jt, BikJsonError as Lt } from "./BikEditor.styles.js";
|
|
7
7
|
import { DEFAULT_FORMAT_STATE as tt } from "./BikEditor.types.js";
|
|
8
|
-
import { buildJsonCodeBlockHtml as Ot, buildSectionedContent as et, normalizeHtml as
|
|
8
|
+
import { buildJsonCodeBlockHtml as Ot, buildSectionedContent as et, normalizeHtml as i, extractActiveFormats as nt, extractContent as ot, getCodeBlockText as g, parseJson as p, extractBodyContent as Ft, extractSectionContent as zt, setCodeBlockText as x, findSectionEndPos as rt, findSectionStartPos as Nt, setSectionContentInEditor as A, insertInlineHtml as jt } from "./BikEditor.utils.js";
|
|
9
9
|
import { buildExtensions as Ht } from "./extensions/buildExtensions.js";
|
|
10
10
|
import { LinkBubbleMenu as wt } from "./floating/LinkBubbleMenu.js";
|
|
11
11
|
import Pt from "../icons/BIK AI specific/WandSparkles.js";
|
|
@@ -22,9 +22,9 @@ const Wt = (k, v) => {
|
|
|
22
22
|
initialContent: C,
|
|
23
23
|
sections: y,
|
|
24
24
|
features: B,
|
|
25
|
-
disabled:
|
|
25
|
+
disabled: st,
|
|
26
26
|
maxCharacters: I,
|
|
27
|
-
characterLimit:
|
|
27
|
+
characterLimit: it,
|
|
28
28
|
characterLimitHard: ct,
|
|
29
29
|
shortcuts: at,
|
|
30
30
|
sendShortcut: lt,
|
|
@@ -32,11 +32,11 @@ const Wt = (k, v) => {
|
|
|
32
32
|
slashCommands: S,
|
|
33
33
|
link: dt,
|
|
34
34
|
onPaste: ut,
|
|
35
|
-
onReady:
|
|
36
|
-
onChange:
|
|
35
|
+
onReady: M,
|
|
36
|
+
onChange: R,
|
|
37
37
|
onSend: b,
|
|
38
|
-
onFocus:
|
|
39
|
-
onBlur:
|
|
38
|
+
onFocus: J,
|
|
39
|
+
onBlur: L,
|
|
40
40
|
onSelectionChange: O,
|
|
41
41
|
minHeight: mt,
|
|
42
42
|
maxHeight: ft,
|
|
@@ -45,21 +45,21 @@ const Wt = (k, v) => {
|
|
|
45
45
|
editorClassName: F,
|
|
46
46
|
editorStyle: z,
|
|
47
47
|
renderJsonError: N
|
|
48
|
-
} = k, m = !!B?.jsonMode, [f, j] =
|
|
48
|
+
} = k, m = !!B?.jsonMode, [f, j] = T(null), [pt, H] = T(!1), [Ct, w] = T(
|
|
49
49
|
m && !(C ?? "").trim()
|
|
50
50
|
), St = m ? Ot(C ?? "") : y?.length ? et(
|
|
51
|
-
|
|
52
|
-
y.map((t) => ({ ...t, content:
|
|
53
|
-
) :
|
|
54
|
-
D.current =
|
|
55
|
-
const q = a(
|
|
56
|
-
q.current =
|
|
51
|
+
i(C ?? ""),
|
|
52
|
+
y.map((t) => ({ ...t, content: i(t.content) }))
|
|
53
|
+
) : i(C ?? ""), E = a([]), P = a(!1), D = a(M);
|
|
54
|
+
D.current = M;
|
|
55
|
+
const q = a(R);
|
|
56
|
+
q.current = R;
|
|
57
57
|
const U = a(O);
|
|
58
58
|
U.current = O;
|
|
59
|
-
const $ = a(tt), W = a(
|
|
60
|
-
W.current =
|
|
61
|
-
const V = a(
|
|
62
|
-
V.current =
|
|
59
|
+
const $ = a(tt), W = a(J);
|
|
60
|
+
W.current = J;
|
|
61
|
+
const V = a(L);
|
|
62
|
+
V.current = L;
|
|
63
63
|
const _ = a(b);
|
|
64
64
|
_.current = b;
|
|
65
65
|
const Q = a(l?.agents ?? []);
|
|
@@ -73,7 +73,7 @@ const Wt = (k, v) => {
|
|
|
73
73
|
features: B,
|
|
74
74
|
placeholder: k.placeholder,
|
|
75
75
|
maxCharacters: I,
|
|
76
|
-
characterLimit:
|
|
76
|
+
characterLimit: it,
|
|
77
77
|
characterLimitHard: ct,
|
|
78
78
|
hasSections: (y?.length ?? 0) > 0,
|
|
79
79
|
mentions: {
|
|
@@ -95,7 +95,7 @@ const Wt = (k, v) => {
|
|
|
95
95
|
renderSlashCommandDropdown: S?.renderDropdown
|
|
96
96
|
}),
|
|
97
97
|
content: St,
|
|
98
|
-
editable: !
|
|
98
|
+
editable: !st,
|
|
99
99
|
immediatelyRender: !1,
|
|
100
100
|
// SSR-safe — NEVER remove this
|
|
101
101
|
editorProps: {
|
|
@@ -117,46 +117,46 @@ const Wt = (k, v) => {
|
|
|
117
117
|
onFocus: () => W.current?.(),
|
|
118
118
|
onBlur: () => V.current?.()
|
|
119
119
|
});
|
|
120
|
-
function
|
|
120
|
+
function s(t) {
|
|
121
121
|
n ? t(n) : E.current.push(t);
|
|
122
122
|
}
|
|
123
|
-
|
|
123
|
+
Tt(() => {
|
|
124
124
|
if (n && (E.current.length > 0 && E.current.splice(0).forEach((e) => e(n)), P.current || (P.current = !0, D.current?.()), m)) {
|
|
125
125
|
const t = g(n), e = p(t);
|
|
126
126
|
j(e.valid ? null : e), w(!t.trim());
|
|
127
127
|
}
|
|
128
|
-
}, [n, m]),
|
|
128
|
+
}, [n, m]), At(
|
|
129
129
|
v,
|
|
130
130
|
() => ({
|
|
131
131
|
// ── Focus ────────────────────────────────────────────────────────
|
|
132
|
-
focus: (t) =>
|
|
133
|
-
blur: () =>
|
|
132
|
+
focus: (t) => s((e) => e.commands.focus(t)),
|
|
133
|
+
blur: () => s((t) => t.commands.blur()),
|
|
134
134
|
// ── Content ──────────────────────────────────────────────────────
|
|
135
|
-
clearContent: () =>
|
|
135
|
+
clearContent: () => s((t) => t.commands.clearContent(!0)),
|
|
136
136
|
setContent: (t) => {
|
|
137
|
-
const e =
|
|
138
|
-
|
|
137
|
+
const e = i(t);
|
|
138
|
+
s((o) => o.commands.setContent(e, { emitUpdate: !0 }));
|
|
139
139
|
},
|
|
140
140
|
insertContent: (t) => {
|
|
141
|
-
const e =
|
|
142
|
-
|
|
141
|
+
const e = i(t);
|
|
142
|
+
s((o) => o.commands.insertContent(e));
|
|
143
143
|
},
|
|
144
144
|
insertInlineContent: (t) => {
|
|
145
|
-
|
|
145
|
+
s((e) => jt(e, t));
|
|
146
146
|
},
|
|
147
147
|
insertAtStart: (t) => {
|
|
148
|
-
const e =
|
|
149
|
-
|
|
148
|
+
const e = i(t);
|
|
149
|
+
s((o) => o.commands.insertContentAt(1, e));
|
|
150
150
|
},
|
|
151
151
|
insertBlock: (t) => {
|
|
152
|
-
const e =
|
|
153
|
-
|
|
152
|
+
const e = i(t);
|
|
153
|
+
s(
|
|
154
154
|
(o) => o.commands.insertContentAt(o.state.doc.content.size, e)
|
|
155
155
|
);
|
|
156
156
|
},
|
|
157
157
|
appendInline: (t) => {
|
|
158
|
-
const e =
|
|
159
|
-
|
|
158
|
+
const e = i(t);
|
|
159
|
+
s(
|
|
160
160
|
(o) => o.commands.insertContentAt(o.state.doc.content.size - 1, e)
|
|
161
161
|
);
|
|
162
162
|
},
|
|
@@ -182,8 +182,8 @@ const Wt = (k, v) => {
|
|
|
182
182
|
return { from: t, to: e };
|
|
183
183
|
},
|
|
184
184
|
insertAtPosition: (t, e) => {
|
|
185
|
-
const o =
|
|
186
|
-
|
|
185
|
+
const o = i(e);
|
|
186
|
+
s((r) => r.commands.insertContentAt(t, o));
|
|
187
187
|
},
|
|
188
188
|
getSelectedText: () => {
|
|
189
189
|
if (!n) return "";
|
|
@@ -206,11 +206,11 @@ const Wt = (k, v) => {
|
|
|
206
206
|
// ── Sections ─────────────────────────────────────────────────────
|
|
207
207
|
getSectionContent: (t) => n ? zt(n, t) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
|
|
208
208
|
setSectionContent: (t, e) => {
|
|
209
|
-
const o =
|
|
210
|
-
|
|
209
|
+
const o = i(e);
|
|
210
|
+
s((r) => A(r, t, o));
|
|
211
211
|
},
|
|
212
212
|
focusSection: (t) => {
|
|
213
|
-
|
|
213
|
+
s((e) => {
|
|
214
214
|
if (t === "body") {
|
|
215
215
|
let r = e.state.doc.content.size - 1;
|
|
216
216
|
e.state.doc.descendants((c, h) => (c.type.name === "sectionDivider" && r === e.state.doc.content.size - 1 && (r = h - 1), r === e.state.doc.content.size - 1)), r < 1 && (r = 1), e.chain().focus().setTextSelection(r).run();
|
|
@@ -224,27 +224,27 @@ const Wt = (k, v) => {
|
|
|
224
224
|
});
|
|
225
225
|
},
|
|
226
226
|
clearSection: (t) => {
|
|
227
|
-
|
|
227
|
+
s((e) => A(e, t, "<p></p>"));
|
|
228
228
|
},
|
|
229
229
|
// ── Convenience body shorthands ───────────────────────────────────
|
|
230
230
|
getBodyContent: () => n ? Ft(n) : { html: "", text: "", isEmpty: !0, characterCount: 0 },
|
|
231
231
|
setBodyContent: (t) => {
|
|
232
|
-
const e =
|
|
233
|
-
|
|
232
|
+
const e = i(t);
|
|
233
|
+
s((o) => A(o, "body", e));
|
|
234
234
|
},
|
|
235
235
|
setBodyAndSections: (t, e) => {
|
|
236
236
|
const o = et(
|
|
237
|
-
|
|
237
|
+
i(t),
|
|
238
238
|
e.map((r) => ({
|
|
239
239
|
id: r.id,
|
|
240
|
-
content:
|
|
240
|
+
content: i(r.content)
|
|
241
241
|
}))
|
|
242
242
|
);
|
|
243
|
-
|
|
243
|
+
s((r) => r.commands.setContent(o, { emitUpdate: !0 }));
|
|
244
244
|
},
|
|
245
245
|
appendBodyContent: (t) => {
|
|
246
|
-
const e =
|
|
247
|
-
|
|
246
|
+
const e = i(t);
|
|
247
|
+
s((o) => {
|
|
248
248
|
const r = rt(o, "body");
|
|
249
249
|
o.commands.insertContentAt(r - 1, e, {
|
|
250
250
|
parseOptions: { preserveWhitespace: !0 }
|
|
@@ -252,8 +252,8 @@ const Wt = (k, v) => {
|
|
|
252
252
|
});
|
|
253
253
|
},
|
|
254
254
|
insertAtSectionStart: (t, e) => {
|
|
255
|
-
const o =
|
|
256
|
-
|
|
255
|
+
const o = i(e);
|
|
256
|
+
s((r) => {
|
|
257
257
|
const c = Nt(r, t);
|
|
258
258
|
c !== -1 && r.commands.insertContentAt(c, o, {
|
|
259
259
|
parseOptions: { preserveWhitespace: !0 }
|
|
@@ -261,8 +261,8 @@ const Wt = (k, v) => {
|
|
|
261
261
|
});
|
|
262
262
|
},
|
|
263
263
|
insertAtSectionEnd: (t, e) => {
|
|
264
|
-
const o =
|
|
265
|
-
|
|
264
|
+
const o = i(e);
|
|
265
|
+
s((r) => {
|
|
266
266
|
const c = rt(r, t);
|
|
267
267
|
r.commands.insertContentAt(c, o, {
|
|
268
268
|
parseOptions: { preserveWhitespace: !0 }
|
|
@@ -301,7 +301,13 @@ const Wt = (k, v) => {
|
|
|
301
301
|
removeLink: () => n?.chain().focus().extendMarkRange("link").unsetLink().run(),
|
|
302
302
|
insertEmoji: (t) => n?.chain().focus().insertContent(t).run(),
|
|
303
303
|
insertVariable: (t) => n?.chain().focus().insertContent(`{{${t}}}`).run(),
|
|
304
|
-
insertHtml: (t) => n?.commands.insertContent(
|
|
304
|
+
insertHtml: (t) => n?.commands.insertContent(i(t)),
|
|
305
|
+
openMentionMenu: (t = "@") => {
|
|
306
|
+
if (!n)
|
|
307
|
+
return;
|
|
308
|
+
const { to: e } = n.state.selection, o = e > 1 ? n.state.doc.textBetween(e - 1, e) : "", r = o !== "" && !/\s/.test(o);
|
|
309
|
+
n.chain().focus().setTextSelection(e).insertContent(r ? ` ${t}` : t).run();
|
|
310
|
+
},
|
|
305
311
|
undo: () => n?.chain().focus().undo().run(),
|
|
306
312
|
redo: () => n?.chain().focus().redo().run(),
|
|
307
313
|
canUndo: () => n?.can().undo() ?? !1,
|
|
@@ -313,14 +319,14 @@ const Wt = (k, v) => {
|
|
|
313
319
|
// ── JSON body ─────────────────────────────────────────────────────
|
|
314
320
|
json: B?.jsonMode ? {
|
|
315
321
|
getText: () => n ? g(n) : "",
|
|
316
|
-
setText: (t) =>
|
|
322
|
+
setText: (t) => s((e) => x(e, t)),
|
|
317
323
|
parse: () => p(n ? g(n) : ""),
|
|
318
324
|
isValid: () => p(n ? g(n) : "").valid,
|
|
319
|
-
format: (t = 2) =>
|
|
325
|
+
format: (t = 2) => s((e) => {
|
|
320
326
|
const { valid: o, value: r } = p(g(e));
|
|
321
327
|
!o || r === null || x(e, JSON.stringify(r, null, t));
|
|
322
328
|
}),
|
|
323
|
-
minify: () =>
|
|
329
|
+
minify: () => s((t) => {
|
|
324
330
|
const { valid: e, value: o } = p(g(t));
|
|
325
331
|
!e || o === null || x(t, JSON.stringify(o));
|
|
326
332
|
})
|
|
@@ -346,7 +352,7 @@ const Wt = (k, v) => {
|
|
|
346
352
|
style: gt,
|
|
347
353
|
className: ht,
|
|
348
354
|
children: [
|
|
349
|
-
m && /* @__PURE__ */ u(
|
|
355
|
+
m && /* @__PURE__ */ u(Mt, { children: [
|
|
350
356
|
/* @__PURE__ */ d("span", { className: "bik-json-header-label", children: "JSON" }),
|
|
351
357
|
/* @__PURE__ */ u("div", { className: "bik-json-header-actions", children: [
|
|
352
358
|
/* @__PURE__ */ u(
|
|
@@ -368,15 +374,15 @@ const Wt = (k, v) => {
|
|
|
368
374
|
] })
|
|
369
375
|
] })
|
|
370
376
|
] }),
|
|
371
|
-
m ? /* @__PURE__ */ u(
|
|
377
|
+
m ? /* @__PURE__ */ u(Rt, { $error: !!f, children: [
|
|
372
378
|
/* @__PURE__ */ d(X, { editor: n }),
|
|
373
|
-
Ct && /* @__PURE__ */ u(
|
|
379
|
+
Ct && /* @__PURE__ */ u(Jt, { "aria-hidden": !0, children: [
|
|
374
380
|
/* @__PURE__ */ d(qt, { size: 20 }),
|
|
375
381
|
/* @__PURE__ */ d("span", { children: k.placeholder ?? "Type or paste JSON here" })
|
|
376
382
|
] })
|
|
377
383
|
] }) : /* @__PURE__ */ d(X, { editor: n }),
|
|
378
384
|
/* @__PURE__ */ d(wt, { editor: n, renderLinkTooltip: dt?.renderTooltip }),
|
|
379
|
-
m && f ? N ? N(f) : /* @__PURE__ */ u(
|
|
385
|
+
m && f ? N ? N(f) : /* @__PURE__ */ u(Lt, { children: [
|
|
380
386
|
/* @__PURE__ */ d(Ut, { size: 16 }),
|
|
381
387
|
/* @__PURE__ */ u("span", { children: [
|
|
382
388
|
f.line != null && /* @__PURE__ */ u("strong", { children: [
|