@bikdotai/bik-component-library 0.0.809-beta.6 → 0.0.809-beta.8
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/list-item/themes.js +1 -1
- package/dist/cjs/components/list-item/themes.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/components/variable-picker-v3/SubHeaderItems.js +1 -1
- package/dist/cjs/components/variable-picker-v3/SubHeaderItems.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/context.js +1 -1
- package/dist/cjs/components/variable-picker-v3/context.js.map +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js +1 -1
- package/dist/cjs/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/cjs/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js +2 -0
- package/dist/cjs/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js.map +1 -0
- package/dist/cjs/editor/extensions/plainClipboard/PlainClipboardExtension.js +2 -0
- package/dist/cjs/editor/extensions/plainClipboard/PlainClipboardExtension.js.map +1 -0
- package/dist/cjs/editor/extensions/plainClipboard/pasteUtils.js +1 -1
- package/dist/cjs/editor/extensions/plainClipboard/pasteUtils.js.map +1 -1
- package/dist/cjs/src/components/bik-layout/MockMenus.d.ts +1 -0
- package/dist/cjs/src/components/variable-picker-v3/context.d.ts +4 -0
- package/dist/cjs/src/editor/extensions/plainClipboard/ClipboardNormalizationExtension.d.ts +7 -0
- package/dist/cjs/src/editor/extensions/plainClipboard/PlainClipboardExtension.d.ts +2 -0
- package/dist/cjs/src/editor/extensions/plainClipboard/pasteUtils.d.ts +8 -24
- package/dist/cjs/src/icons/Actions/Common actions/SendAirplane2.d.ts +7 -0
- package/dist/cjs/src/icons/BIK AI specific/AiAgent.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/AtSymbol.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/Hangup.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/IncomingCall.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/OutgoingCall.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/PhoneCall.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Communication/Transcript.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Files and folders/BookOpen.d.ts +7 -0
- package/dist/cjs/src/icons/Informational/Identity/AiVoiceAgent.d.ts +7 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/FbCommentTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/FbTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/IgCommentTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/IgTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/MailTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/PhoneTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/TaskTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/WhatsappTicket.d.ts +6 -0
- package/dist/cjs/src/icons/Social/Channels/Subdued/index.d.ts +8 -0
- package/dist/esm/components/list-item/themes.js +1 -1
- package/dist/esm/components/list-item/themes.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/SubHeaderItems.js +1 -1
- package/dist/esm/components/variable-picker-v3/SubHeaderItems.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/context.js +1 -1
- package/dist/esm/components/variable-picker-v3/context.js.map +1 -1
- package/dist/esm/editor/extensions/buildExtensions.js +1 -1
- package/dist/esm/editor/extensions/buildExtensions.js.map +1 -1
- package/dist/esm/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js +2 -0
- package/dist/esm/editor/extensions/plainClipboard/ClipboardNormalizationExtension.js.map +1 -0
- package/dist/esm/editor/extensions/plainClipboard/PlainClipboardExtension.js +2 -0
- package/dist/esm/editor/extensions/plainClipboard/PlainClipboardExtension.js.map +1 -0
- package/dist/esm/editor/extensions/plainClipboard/pasteUtils.js +1 -1
- package/dist/esm/editor/extensions/plainClipboard/pasteUtils.js.map +1 -1
- package/dist/esm/src/components/bik-layout/MockMenus.d.ts +1 -0
- package/dist/esm/src/components/variable-picker-v3/context.d.ts +4 -0
- package/dist/esm/src/editor/extensions/plainClipboard/ClipboardNormalizationExtension.d.ts +7 -0
- package/dist/esm/src/editor/extensions/plainClipboard/PlainClipboardExtension.d.ts +2 -0
- package/dist/esm/src/editor/extensions/plainClipboard/pasteUtils.d.ts +8 -24
- package/dist/esm/src/icons/Actions/Common actions/SendAirplane2.d.ts +7 -0
- package/dist/esm/src/icons/BIK AI specific/AiAgent.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/AtSymbol.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/Hangup.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/IncomingCall.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/OutgoingCall.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/PhoneCall.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Communication/Transcript.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Files and folders/BookOpen.d.ts +7 -0
- package/dist/esm/src/icons/Informational/Identity/AiVoiceAgent.d.ts +7 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/FbCommentTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/FbTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/IgCommentTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/IgTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/MailTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/PhoneTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/TaskTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/WhatsappTicket.d.ts +6 -0
- package/dist/esm/src/icons/Social/Channels/Subdued/index.d.ts +8 -0
- package/package.json +1 -1
- package/dist/cjs/editor/extensions/plainClipboard/PasteNormalizationExtension.js +0 -2
- package/dist/cjs/editor/extensions/plainClipboard/PasteNormalizationExtension.js.map +0 -1
- package/dist/cjs/src/editor/extensions/plainClipboard/PasteNormalizationExtension.d.ts +0 -10
- package/dist/esm/editor/extensions/plainClipboard/PasteNormalizationExtension.js +0 -2
- package/dist/esm/editor/extensions/plainClipboard/PasteNormalizationExtension.js.map +0 -1
- package/dist/esm/src/editor/extensions/plainClipboard/PasteNormalizationExtension.d.ts +0 -10
|
@@ -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, useState } from 'react';\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 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(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\tsetSubHeaderStack(newSubHeaderStack);\n\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\tsetSearchText('');\n\t\t\t_searchText = ''; // so that search is not trigerred in the below code\n\t\t}\n\t\tif (_searchText.length > 0) {\n\t\t\t// maintain the search result when going back\n\t\t\tconst dataSource =\n\t\t\t\tnewSubHeaderStack.length > 0\n\t\t\t\t\t? [newSubHeaderStack[newSubHeaderStack.length - 1]]\n\t\t\t\t\t: data;\n\t\t\tconst result = searchVariables(\n\t\t\t\t_searchText,\n\t\t\t\tdataSource,\n\t\t\t\tnewSubHeaderStack,\n\t\t\t);\n\t\t\tif (showRecommended) {\n\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\tresult,\n\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t);\n\t\t\t\tsetVariables(recommended);\n\t\t\t} else {\n\t\t\t\tsetVariables(result);\n\t\t\t}\n\t\t} else {\n\t\t\tif (newSubHeaderStack.length > 0) {\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t[newSubHeaderStack[newSubHeaderStack.length - 1].variables],\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([\n\t\t\t\t\t\tnewSubHeaderStack[newSubHeaderStack.length - 1].variables,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tsubHeaderStack,\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(data);\n\t\t\t\t}\n\t\t\t}\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 (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}}\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<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</RecommendWrapper>\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 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","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","shouldShowHeaderInsideCross","type","PickerType","EMBEDDED","useEffect","handleRecommendedChange","length","val","__awaiter","output","showOnlyRecommendedVariables","isInSearchStartPage","displayName","result","searchVariables","calculateHeight","pickerContentHeight","onSelectingVariable","variable","disabled","evalVariableValue","actualValue","match","path","replace","split","forEach","value","index","isArray","test","checkIfArray","matches","arrayName","actualValueEval","matchVariable","Object","isDefaultValueSupported","_jsx","VariablePickerContext","Provider","assign","children","_jsxs","tabIndex","id","style","backgroundColor","borderRadius","height","outline","onClick","e","stopPropagation","HeaderWrapper","openDefault","display","alignItems","gap","IconButton","Icon","HeaderBackIcon","BackIcon","width","color","COLORS","content","primary","TitleRegular","CrossIcon","onClose","DefaultVariableContent","onInsertVariable","updated","_Fragment","padding","paddingTop","surface","subdued","borderTopLeftRadius","borderTopRightRadius","Input","onBlur","onSearchBlur","noKeyDownChange","placeholder","onChangeText","text","recommended","latestSubHeader","RecommendWrapper","BodySecondary","secondary","Switch","onValueChange","BackHeader","position","left","GoBackIcon","_searchText","newSubHeaderStack","poppedElement","pop","BodyCaption","Container","map","borderBottom","stroke","BikAccordion","arrowColor","autoOpen","headerPadding","header","TitleSmall","highlightSearchText","SubHeaderItems","parentVariable","_a","Tooltip","body","renderTooltipBody","placement","ListItem","variant","selected","version","leadingIcon","flexShrink","AddIcon","customListItemLabel","fontSize","isAvailable","marginTop","WarnIcon","listItem","label","subText","description","_b","NoResult"],"mappings":"+0CAwCA,MAAMA,EAAgB,SAqCTC,EACZC,IAEA,MAAMC,KACLA,EAAIC,SACJA,EAAQC,WACRA,EAAUC,eACVA,EAAcC,gBACdA,EAAeC,kBACfA,EAAiBC,iBACjBA,EAAgBC,cAChBA,EAAaC,WACbA,EAAUC,cACVA,EAAaC,wBACbA,EAAuBC,2BACvBA,GACGZ,GAEGa,EAAWC,GAAgBC,EAASd,IACpCe,EAAYC,GAAiBF,EAAiB,KAC9CG,EAAgBC,GAAqBJ,EAAgB,KACrDK,GAAcC,IAAmBN,EAAiB,KAClDO,GAAiBC,IAAsBR,GAAkB,IACzDS,GAAYC,IAAiBV,EAAgB,KAC7CW,GAA0BC,IAChCZ,GAAS,IACHa,GAAkBC,IAAuBd,IAC1Ce,GACLJ,IACA1B,EAAM+B,OAASC,EAAWC,WACzB5B,EAOF6B,GAAU,KACTC,IAAwB,EAAK,GAC3B,IAEHD,GAAU,KACLhB,EAAekB,OAAS,EAC3BX,GAAc,CAACP,EAAeA,EAAekB,OAAS,KAEtDX,GAAcxB,EACd,GACC,CAACiB,IAEJ,MAyDMiB,GAAiCE,GAAOC,OAAA,OAAA,OAAA,GAAA,YAE7C,GADAf,GAAmBc,GACfA,EAAK,CACR,MAAME,EAASC,EAA6B3B,EAAWK,GACvDJ,EAAayB,EACb,MACA,GAAIrB,EAAekB,OAAS,EAAG,CAE9B,MAAMK,EACLrB,IAAgBF,EAAeA,EAAekB,OAAS,GAAGM,YAC3D,GAAI1B,EAAWoB,OAAS,GAAKK,EAAqB,CACjD,MAAME,EAASC,EACd5B,EACAQ,GACAN,GAEDJ,EAAa6B,EACb,MACA7B,EAAa,CAACI,EAAeA,EAAekB,OAAS,GAAGvB,WAEzD,MACA,GAAIG,EAAWoB,OAAS,EAAG,CAC1B,MAAMO,EAASC,EACd5B,EACAQ,GACAN,GAEDJ,EAAa6B,EACb,MACA7B,EAAab,EAIjB,IAEM4C,GAAkBA,KACvB,GAAInC,EACH,OAAOA,EAER,IAAIoC,EAAsB,IAO1B,OANI5B,EAAekB,OAAS,IAC3BU,GAAuB,KAEpB9C,EAAMG,YAAcH,EAAMI,kBAC7B0C,GAAuB,IAEjB,eAAeA,MAAwB,EA0CzCC,GAAuBC,IAC5B,IAAIhD,EAAMiD,SACV,GAAI1C,EAAkB,CACrB,MAAM2C,EApOcF,KACtB,GAAIA,EAASG,YAAYC,MAAMtD,GAAgB,CAC9C,MAAMuD,EAAOL,EAASG,YACpBG,QAAQ,KAAM,IACdA,QAAQ,KAAM,IACdC,MAAM,KACR,IAAIL,EAAoBG,EAAK,GAgB7B,OAfAA,EAAKG,SAAQ,CAACC,EAAOC,KACpB,GAAc,IAAVA,EAAa,OACjB,MAAMC,EAdaF,IACP,cACDG,KAAKH,GAYAI,CAAaJ,GAC7B,GAAIE,EAAS,CAEZ,MAAMG,EAAUL,EAAML,MAAM,kBAC5B,GAAIU,EAAS,CACZ,MAAMC,EAAYD,EAAQ,GACpBJ,EAAQI,EAAQ,GACtBZ,GAAwC,KAAKa,OAAeL,IAC5D,CACD,MACAR,GAA6C,KAAAO,KAC7C,IAEKP,CACP,CAIA,OAHcF,EAASgB,gBACpBhB,EAASgB,gBACThB,EAASG,WAEZ,EAwM2Bc,CAAcjB,GACxC9C,EAASgE,+BACLlB,GAAQ,CACXG,YAAaD,IAEd,KAAM,CACN,GAAIF,EAASmB,0BAA4BvD,EAGxC,OAFAiB,GAAoBmB,QACpBrB,IAA4B,GAG7BzB,EAAS8C,EACT,GAGF,OACCoB,EAACC,EAAsBC,SAAQJ,OAAAK,OAAA,CAC9Bd,MAAO,CACN5C,YACAG,aACAE,iBACAI,mBACAH,oBACAF,gBACAH,eACAS,wBAGD,CAAAiD,SAAAC,EAAA,MAAAP,OAAAK,OAAA,CACCG,UAAW,EACXC,GAAG,qBACHC,MAAO,CACNC,gBAAiB,QACjBC,aAAc,EACdC,OAAQ,OACRC,QAAS,QAEVC,QAAUC,GAAMA,EAAEC,mBAAiB,CAAAX,SAAA,EAEjCrE,GAAcC,GAAkBsB,KACjC+C,EAACW,EAAalB,OAAAK,OAAA,CAACc,YAAa3D,IAAwB,CAAA8C,SAAA,CACnDC,uBAAKG,MAAO,CAAEU,QAAS,OAAQC,WAAY,SAAUC,IAAK,IAAG,CAAAhB,SAAA,EAC1DpE,GAAkBsB,KACnB0C,EAACqB,EAAU,CACVC,KAnEeC,IAErBvB,EAACwB,EAAQ,CACRC,MAAO,GACPd,OAAQ,GACRH,MAAO,CAAEU,QAAS,OAAQQ,MAAOC,EAAOC,QAAQC,WA+D3ChB,QAASA,KACJvD,GACHC,IAA4B,GAE5BrB,GAAqBA,GACrB,KAIFH,GAAcuB,KACf0C,EAAC8B,YACCxE,GACE,SACAjB,QAAAA,EAAc,wBAInBqB,IACAsC,EAACqB,GACAb,MAAO,CAAEkB,MAAO,WAChBJ,KAAMS,EACNlB,QAASA,IAAMjF,EAAMoG,SAAWpG,EAAMoG,gBAKzC1E,IACDE,KACChB,EACAwD,EAACiC,EAAsB,CACtBrD,SAAUpB,GACV0E,iBAAmBC,IAClBrG,EAASqG,GACT5F,SAAAA,EAA0B4F,EAAQ,IAIpC9B,EAAA+B,EAAA,CAAAhC,SAAA,CACCJ,EACC,MAAAF,OAAAK,OAAA,CAAAK,MAAO,CACN6B,QAAS,SACTC,WAAY,GACZ7B,gBAAiBkB,EAAOY,QAAQC,QAChCC,oBAAqB,EACrBC,qBAAsB,IACtB,CAAAtC,SAEDJ,EAAC2C,EACA,CAAApC,GAAG,uBACHqC,OAAS9B,IACRlF,EAAMiH,cAAgBjH,EAAMiH,aAAa/B,EAAE,EAE5CzB,MAAOzC,EACPkG,iBAAe,EACfC,YAAY,SACZC,aA9IWC,IACZA,GACJhG,GAAgB,IAEjB,MAAMsB,EAASC,EAAgByE,EAAM7F,GAAYN,GACjD,GAAII,GAAiB,CACpB,MAAMgG,EAAc9E,EAA6BG,EAAQzB,GACzDJ,EAAawG,EACb,MACAxG,EAAa6B,GAEd1B,EAAcoG,GACd,MAAME,EACLrG,EAAekB,OAAS,EACrBlB,EAAeA,EAAekB,OAAS,GAAGM,YAC1C,OACJrB,GAAgBkG,EAAgB,OAiI5B9C,EAAC+C,EAAgB,CAAAhD,SAAA,CAChBJ,EAACqD,EAAcvD,OAAAK,OAAA,CAAAK,MAAO,CAAEkB,MAAOC,EAAOC,QAAQ0B,YAAW,CAAAlD,SAAA,sBAGzDJ,EAACuD,EACA,CAAAlE,MAAOnC,GACPsG,cAAsBvF,GAAOC,OAAA,OAAA,OAAA,GAAA,kBACtBH,GAAwBE,WAIhCnB,EAAekB,OAAS,GACxBqC,EAACoD,aACAzD,EAAK,MAAAF,OAAAK,OAAA,CAAAK,MAAO,CAAEkD,SAAU,WAAYC,KAAM,KACzC,CAAAvD,SAAAJ,EAACqB,EACA,CAAAd,GAAG,cACHC,MAAO,CAAEU,QAAS,QAClBI,KArIUsC,IAEjB5D,EAACwB,EACA,CAAAC,MAAO,GACPd,OAAQ,GACRH,MAAO,CAAEkB,MAAOC,EAAOC,QAAQ0B,aAiIzBzC,QA7QgBC,IACxBA,EAAEC,kBACF,IAAI8C,EAAcjH,EAClB,MAAMkH,EAAoB,IAAIhH,GACxBiH,EAAgBD,EAAkBE,MAMxC,GALAjH,EAAkB+G,GACdC,EAAczF,cAAgBtB,KACjCH,EAAc,IACdgH,EAAc,IAEXA,EAAY7F,OAAS,EAAG,CAE3B,MAAMZ,EACL0G,EAAkB9F,OAAS,EACxB,CAAC8F,EAAkBA,EAAkB9F,OAAS,IAC9CnC,EACE0C,EAASC,EACdqF,EACAzG,EACA0G,GAED,GAAI5G,GAAiB,CACpB,MAAMgG,EAAc9E,EACnBG,EACAuF,GAEDpH,EAAawG,EACb,MACAxG,EAAa6B,EAEd,MACA,GAAIuF,EAAkB9F,OAAS,EAC9B,GAAId,GAAiB,CACpB,MAAMgG,EAAc9E,EACnB,CAAC0F,EAAkBA,EAAkB9F,OAAS,GAAGvB,WACjDqH,GAEDpH,EAAawG,EACb,MACAxG,EAAa,CACZoH,EAAkBA,EAAkB9F,OAAS,GAAGvB,iBAIlD,GAAIS,GAAiB,CACpB,MAAMgG,EAAc9E,EACnBvC,EACAiB,GAEDJ,EAAawG,EACb,MACAxG,EAAab,EAGf,OA0NKmE,EAACiE,EACAnE,OAAAK,OAAA,CAAAK,MAAO,CACNkB,MAAOC,EAAOC,QAAQ0B,YACtB,CAAAlD,SAEAtD,EAAeA,EAAekB,OAAS,GAAGM,kBAI9C0B,cACEvD,EAAUuB,OAAS,EACnBgC,EAACkE,EAAUpE,OAAAK,OAAA,CAAAQ,OAAQlC,gBACjBhC,EAAU0H,KAAI,CAACvF,EAAUU,aACzB,OACCV,EAASN,kBACqB,IAAvBM,EAASnC,UAGfuD,EAEC,MAAAF,OAAAK,OAAA,CAAAK,MAAO,CACN4D,aAA2B,aAAAzC,EAAO0C,OAAOxC,YACzC,CAAAzB,SAEDJ,EAACsE,EAAYxE,OAAAK,OAAA,CACZoE,WAAY5C,EAAOC,QAAQC,QAC3B2C,SAAUpI,GAA2B,IAAVkD,EAC3BmF,cAAc,YACdC,OACC1E,EAAC2E,EACA7E,OAAAK,OAAA,CAAAK,MAAO,CAAEkB,MAAOC,EAAOC,QAAQ0B,YAAW,CAAAlD,SAEzCwE,EACAhG,EAASN,YACT1B,OAEW,CAAAwD,SAGdJ,EAAC6E,GACAC,eAAgBlG,EAChBC,iBAAUkG,EAAAnJ,EAAMiD,yBAChBjC,WAAYA,EACZgC,SAAUA,EAASnC,UACnBX,SAAW8C,IACV,GACCA,EAASmB,0BACRvD,EAID,OAFAiB,GAAoBmB,QACpBrB,IAA4B,GAG7BzB,EAAS8C,EAAuB,SAlC9BA,EAASN,YAAcpB,IAwCpB0B,EAASN,YAElB0B,EAACgF,EAAOlF,OAAAK,OAAA,CAEP8E,KAAMC,EAAkBtG,GACxBuG,UAAU,oBAEVnF,EAACoF,GACAC,QACCzJ,EAAMiD,SACH,YACCD,aAAA,EAAAA,EAAyB0G,UAC1B,WACA,UAEJC,QAAQ,MAERC,aACE5G,aAAA,EAAAA,EAAyB0G,WAC1B1J,EAAMiD,SACLmB,EAAKoC,EAAA,CAAA,GAELpC,EAAA,MAAAF,OAAAK,OAAA,CAAKK,MAAO,CAAEiF,WAAY,IAAG,CAAArF,SAC5BJ,EAAC0F,EAAO,CAACjE,MAAO,GAAId,OAAQ,QAI/BgF,oBACCtF,EAAA,MAAAP,OAAAK,OAAA,CACCK,MAAO,CACNU,QAAS,OACTE,IAAK,IACL,CAAAhB,SAAA,CAEDJ,EAACqD,EACAvD,OAAAK,OAAA,CAAAK,MAAO,CACNoF,SAAU,OACVlE,MAAOC,EAAOsB,KAAKpB,UACnB,CAAAzB,SAEAwE,EACAhG,EAASN,YACT1B,OAGAgC,EAASiH,aACV7F,EAACgF,EAAQlF,OAAAK,OAAA,CAAA8E,KAAK,mBACb,CAAA7E,SAAAJ,EAAA,MAAAF,OAAAK,OAAA,CACCK,MAAO,CAAEU,QAAS,OAAQ4E,UAAW,IAAG,CAAA1F,SAExCJ,EAAC+F,EACA,CAAAtE,MAAO,GACPd,OAAQ,GACRe,MAAOC,EAAOC,QAAQ0B,sBAO5B0C,SAAU,CACTC,MAAOrH,EAASN,YAChBe,MAAOT,EAASN,aAEjB4H,QAAStH,EAASuH,aAAe,GACjCtF,QAASA,IACRlC,GAAoBC,IAlDhBU,KAbDA,GAsENU,EAAC6E,EACA,CAAAhG,iBAAUuH,EAAAxK,EAAMiD,yBAChBjC,WAAYA,EAEZgC,SACCA,EAID9C,SAAW8C,GACVD,GAAoBC,IAPhBU,EAWP,OAIHU,EAACqG,EAAS,CAAA1F,OAAQlC,KAAmB7B,WAAYA,eAMtB"}
|
|
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(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\tsubHeaderStack,\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 (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<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</RecommendWrapper>\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","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","type","PickerType","EMBEDDED","useEffect","handleRecommendedChange","length","val","__awaiter","output","showOnlyRecommendedVariables","isInSearchStartPage","displayName","result","searchVariables","calculateHeight","pickerContentHeight","onSelectingVariable","variable","disabled","evalVariableValue","actualValue","match","path","replace","split","forEach","value","index","isArray","test","checkIfArray","matches","arrayName","actualValueEval","matchVariable","Object","isDefaultValueSupported","_jsx","VariablePickerContext","Provider","assign","children","_jsxs","tabIndex","id","style","backgroundColor","borderRadius","height","outline","onClick","e","stopPropagation","HeaderWrapper","openDefault","display","alignItems","gap","IconButton","Icon","HeaderBackIcon","BackIcon","width","color","COLORS","content","primary","TitleRegular","CrossIcon","onClose","DefaultVariableContent","onInsertVariable","updated","_Fragment","padding","paddingTop","surface","subdued","borderTopLeftRadius","borderTopRightRadius","Input","onBlur","onSearchBlur","noKeyDownChange","placeholder","onChangeText","text","recommended","latestSubHeader","RecommendWrapper","BodySecondary","secondary","Switch","onValueChange","BackHeader","position","left","GoBackIcon","_searchText","newSubHeaderStack","poppedElement","pop","savedScrollTop","_a","current","flushSync","el","setTimeout","scrollTo","top","behavior","BodyCaption","Container","ref","map","borderBottom","stroke","BikAccordion","arrowColor","autoOpen","headerPadding","header","TitleSmall","highlightSearchText","SubHeaderItems","parentVariable","Tooltip","body","renderTooltipBody","placement","ListItem","variant","selected","version","leadingIcon","flexShrink","AddIcon","customListItemLabel","fontSize","isAvailable","marginTop","WarnIcon","listItem","label","subText","description","_b","NoResult"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import s from"../../assets/icons/chevronRight.svg.js";import o from"../../assets/icons/plus.svg.js";import
|
|
1
|
+
import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";import s from"../../assets/icons/chevronRight.svg.js";import o from"../../assets/icons/plus.svg.js";import r from"../../assets/icons/sub_category.svg.js";import l from"../../assets/icons/triangle_error.svg.js";import a from"lodash/cloneDeep";import{COLORS as n}from"../../constants/Theme.js";import{ListItem as c}from"../list-item/ListItem.js";import{Tooltip as d}from"../tooltips/Tooltip.js";import{BodySecondary as m}from"../TypographyStyle.js";import{useVariablePickerContext as p}from"./context.js";import{highlightSearchText as b}from"./highlightSearchText.js";import{showOnlyRecommendedVariables as h}from"./recommendVaribles.js";const g=e=>{var t;return(null===(t=e.contextQ)||void 0===t?void 0:t.join(" > "))||""},v=v=>{const{onSelect:y,variable:u,searchText:f,disabled:j,parentVariable:x}=v,{subHeaderStack:O,setSubHeaderStack:S,setVariables:T,showRecommended:I,containerRef:k,scrollPositionStack:N}=p();return e("div",Object.assign({style:{display:"flex",flexDirection:"column",gap:4}},{children:Object.keys(u).map(((p,v)=>{var w;if(void 0===u[p].variables||0===Object.keys((null===(w=u[p])||void 0===w?void 0:w.variables)||{}).length){const s=u[p];return e(d,Object.assign({body:g(s),placement:"bottom"},{children:e(c,{variant:j?"readonly":(null==s?void 0:s.selected)?"selected":"default",version:"2.0",leadingIcon:(null==s?void 0:s.selected)||j?e(t,{}):e("div",Object.assign({style:{flexShrink:0}},{children:e(o,{width:14,height:14})})),customListItemLabel:i("div",Object.assign({style:{display:"flex",gap:4}},{children:[e(m,Object.assign({style:{fontSize:"14px",color:n.text.primary}},{children:b(s.displayName,f)})),!s.isAvailable&&e(d,Object.assign({body:"Not Recommended"},{children:e("div",Object.assign({style:{display:"flex",marginTop:2}},{children:e(l,{width:16,height:16,color:n.content.secondary})}))}))]})),listItem:{label:s.displayName,value:s.displayName},subText:s.description||"",onClick:()=>{y(s)}})}),v)}return e(d,Object.assign({body:g(u[p]),placement:"bottom"},{children:e(c,{variant:"default",version:"2.0",listItem:{label:u[p].displayName,value:u[p].displayName},customListItemLabel:e("div",Object.assign({style:{display:"flex",alignItems:"center"}},{children:e(m,Object.assign({style:{fontSize:"14px",color:n.text.primary}},{children:b(u[p].displayName,f)}))})),leadingIcon:e(r,{width:14,height:14}),subText:u[p].description||"",trailingIcon:e(s,{width:10,height:10,color:"#212121"}),onClick:()=>{k.current&&(N.current.push(k.current.scrollTop),k.current.scrollTop=0);const e=a(u[p]);void 0!==x&&(e.contextQ=[x.displayName]);const t=[...O,e];if(S(t),I){const i=h([e.variables],t);T(i)}else T([e.variables])}})}),v)}))}))};export{v as default,g as renderTooltipBody};
|
|
2
2
|
//# sourceMappingURL=SubHeaderItems.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubHeaderItems.js","sources":["../../../../src/components/variable-picker-v3/SubHeaderItems.tsx"],"sourcesContent":["import ChevronRight from '@src/assets/icons/chevronRight.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport SubCategoryIcon from '@src/assets/icons/sub_category.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { COLORS } from '@src/constants/Theme';\nimport { ListItem } from '../list-item';\nimport { Tooltip } from '../tooltips';\nimport { BodySecondary } from '../TypographyStyle';\nimport { useVariablePickerContext } from './context';\nimport { highlightSearchText } from './highlightSearchText';\nimport { SubHeader, VariableListInterfaceV3, VariableV3 } from './model';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\n\ntype SubHeaderProps = {\n\tparentVariable?: VariableListInterfaceV3;\n\tdisabled: boolean;\n\tsearchText: string;\n\tonSelect: (variable: VariableV3) => void;\n\tvariable: { [key: string]: SubHeader | VariableV3 };\n};\n\nexport const renderTooltipBody = (variable: VariableV3) => {\n\treturn variable.contextQ?.join(' > ') || '';\n};\n\nconst SubHeaderItem: React.FC<SubHeaderProps> = (props: SubHeaderProps) => {\n\tconst { onSelect, variable, searchText, disabled, parentVariable } = props;\n\tconst { subHeaderStack, setSubHeaderStack, setVariables, showRecommended } =\n\t\tuseVariablePickerContext();\n\treturn (\n\t\t<div style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>\n\t\t\t{Object.keys(variable).map((key, index) => {\n\t\t\t\tif (\n\t\t\t\t\ttypeof variable[key].variables === 'undefined' ||\n\t\t\t\t\tObject.keys(variable[key]?.variables || {}).length === 0\n\t\t\t\t) {\n\t\t\t\t\tconst variableV3 = variable[key] as VariableV3;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tbody={renderTooltipBody(variableV3)}\n\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t: variableV3?.selected\n\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\tvariableV3?.selected || disabled ? (\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\t\t<div style={{ flexShrink: 0 }}>\n\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</div>\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\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tgap: 4,\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\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\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\tcolor: COLORS.text.primary,\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\t\t{highlightSearchText(variableV3.displayName, searchText)}\n\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t{!variableV3.isAvailable && (\n\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<div style={{ display: 'flex', marginTop: 2 }}>\n\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\twidth={16}\n\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\tcolor={COLORS.content.secondary}\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\tlabel: variableV3.displayName,\n\t\t\t\t\t\t\t\t\tvalue: variableV3.displayName,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsubText={variableV3.description || ''}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tonSelect(variableV3);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tbody={renderTooltipBody(variable[key] as VariableV3)}\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\tvariant={'default'}\n\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\tlabel: variable[key].displayName,\n\t\t\t\t\t\t\t\tvalue: variable[key].displayName,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\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<BodySecondary\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\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}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{highlightSearchText(variable[key].displayName, searchText)}\n\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tleadingIcon={<SubCategoryIcon width={14} height={14} />}\n\t\t\t\t\t\t\tsubText={variable[key].description || ''}\n\t\t\t\t\t\t\ttrailingIcon={\n\t\t\t\t\t\t\t\t<ChevronRight width={10} height={10} color=\"#212121\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tconst currentVariable = cloneDeep(variable[key]) as SubHeader;\n\t\t\t\t\t\t\t\tif (typeof parentVariable !== 'undefined') {\n\t\t\t\t\t\t\t\t\tcurrentVariable.contextQ = [parentVariable.displayName];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst stack = [...subHeaderStack, currentVariable];\n\t\t\t\t\t\t\t\tsetSubHeaderStack(stack);\n\t\t\t\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t\t\t\t[currentVariable.variables],\n\t\t\t\t\t\t\t\t\t\tstack,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsetVariables([currentVariable.variables]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default SubHeaderItem;\n"],"names":["renderTooltipBody","variable","_a","contextQ","join","SubHeaderItem","props","onSelect","searchText","disabled","parentVariable","subHeaderStack","setSubHeaderStack","setVariables","showRecommended","useVariablePickerContext","_jsx","Object","assign","style","display","flexDirection","gap","children","keys","map","key","index","variables","length","variableV3","Tooltip","body","placement","ListItem","variant","selected","version","leadingIcon","_Fragment","flexShrink","AddIcon","width","height","customListItemLabel","_jsxs","BodySecondary","fontSize","color","COLORS","text","primary","highlightSearchText","displayName","isAvailable","marginTop","WarnIcon","content","secondary","listItem","label","value","subText","description","onClick","alignItems","SubCategoryIcon","trailingIcon","ChevronRight","currentVariable","cloneDeep","stack","recommended","showOnlyRecommendedVariables"],"mappings":"4rBAsBaA,MAAAA,EAAqBC,UACjC,OAAwB,QAAjBC,EAAAD,EAASE,gBAAQ,IAAAD,OAAA,EAAAA,EAAEE,KAAK,SAAU,EAAE,EAGtCC,EAA2CC,IAChD,MAAMC,SAAEA,EAAQN,SAAEA,EAAQO,WAAEA,EAAUC,SAAEA,EAAQC,eAAEA,GAAmBJ,GAC/DK,eAAEA,EAAcC,kBAAEA,EAAiBC,aAAEA,EAAYC,gBAAEA,
|
|
1
|
+
{"version":3,"file":"SubHeaderItems.js","sources":["../../../../src/components/variable-picker-v3/SubHeaderItems.tsx"],"sourcesContent":["import ChevronRight from '@src/assets/icons/chevronRight.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport SubCategoryIcon from '@src/assets/icons/sub_category.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { COLORS } from '@src/constants/Theme';\nimport { ListItem } from '../list-item';\nimport { Tooltip } from '../tooltips';\nimport { BodySecondary } from '../TypographyStyle';\nimport { useVariablePickerContext } from './context';\nimport { highlightSearchText } from './highlightSearchText';\nimport { SubHeader, VariableListInterfaceV3, VariableV3 } from './model';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\n\ntype SubHeaderProps = {\n\tparentVariable?: VariableListInterfaceV3;\n\tdisabled: boolean;\n\tsearchText: string;\n\tonSelect: (variable: VariableV3) => void;\n\tvariable: { [key: string]: SubHeader | VariableV3 };\n};\n\nexport const renderTooltipBody = (variable: VariableV3) => {\n\treturn variable.contextQ?.join(' > ') || '';\n};\n\nconst SubHeaderItem: React.FC<SubHeaderProps> = (props: SubHeaderProps) => {\n\tconst { onSelect, variable, searchText, disabled, parentVariable } = props;\n\tconst { subHeaderStack, setSubHeaderStack, setVariables, showRecommended, containerRef, scrollPositionStack } =\n\t\tuseVariablePickerContext();\n\treturn (\n\t\t<div style={{ display: 'flex', flexDirection: 'column', gap: 4 }}>\n\t\t\t{Object.keys(variable).map((key, index) => {\n\t\t\t\tif (\n\t\t\t\t\ttypeof variable[key].variables === 'undefined' ||\n\t\t\t\t\tObject.keys(variable[key]?.variables || {}).length === 0\n\t\t\t\t) {\n\t\t\t\t\tconst variableV3 = variable[key] as VariableV3;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tbody={renderTooltipBody(variableV3)}\n\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t: variableV3?.selected\n\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\tvariableV3?.selected || disabled ? (\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\t\t<div style={{ flexShrink: 0 }}>\n\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</div>\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\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\tgap: 4,\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\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\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\tcolor: COLORS.text.primary,\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\t\t{highlightSearchText(variableV3.displayName, searchText)}\n\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t{!variableV3.isAvailable && (\n\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<div style={{ display: 'flex', marginTop: 2 }}>\n\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\twidth={16}\n\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\tcolor={COLORS.content.secondary}\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</div>\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\tlabel: variableV3.displayName,\n\t\t\t\t\t\t\t\t\tvalue: variableV3.displayName,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsubText={variableV3.description || ''}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tonSelect(variableV3);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tbody={renderTooltipBody(variable[key] as VariableV3)}\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\tvariant={'default'}\n\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\tlabel: variable[key].displayName,\n\t\t\t\t\t\t\t\tvalue: variable[key].displayName,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\talignItems: 'center',\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<BodySecondary\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\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}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{highlightSearchText(variable[key].displayName, searchText)}\n\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tleadingIcon={<SubCategoryIcon width={14} height={14} />}\n\t\t\t\t\t\t\tsubText={variable[key].description || ''}\n\t\t\t\t\t\t\ttrailingIcon={\n\t\t\t\t\t\t\t\t<ChevronRight width={10} height={10} color=\"#212121\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t// Save current scroll position before navigating into subcategory\n\t\t\t\t\t\t\t\tif (containerRef.current) {\n\t\t\t\t\t\t\t\t\tscrollPositionStack.current.push(containerRef.current.scrollTop);\n\t\t\t\t\t\t\t\t\tcontainerRef.current.scrollTop = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst currentVariable = cloneDeep(variable[key]) as SubHeader;\n\t\t\t\t\t\t\t\tif (typeof parentVariable !== 'undefined') {\n\t\t\t\t\t\t\t\t\tcurrentVariable.contextQ = [parentVariable.displayName];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst stack = [...subHeaderStack, currentVariable];\n\t\t\t\t\t\t\t\tsetSubHeaderStack(stack);\n\t\t\t\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t\t\t\t[currentVariable.variables],\n\t\t\t\t\t\t\t\t\t\tstack,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsetVariables([currentVariable.variables]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nexport default SubHeaderItem;\n"],"names":["renderTooltipBody","variable","_a","contextQ","join","SubHeaderItem","props","onSelect","searchText","disabled","parentVariable","subHeaderStack","setSubHeaderStack","setVariables","showRecommended","containerRef","scrollPositionStack","useVariablePickerContext","_jsx","Object","assign","style","display","flexDirection","gap","children","keys","map","key","index","variables","length","variableV3","Tooltip","body","placement","ListItem","variant","selected","version","leadingIcon","_Fragment","flexShrink","AddIcon","width","height","customListItemLabel","_jsxs","BodySecondary","fontSize","color","COLORS","text","primary","highlightSearchText","displayName","isAvailable","marginTop","WarnIcon","content","secondary","listItem","label","value","subText","description","onClick","alignItems","SubCategoryIcon","trailingIcon","ChevronRight","current","push","scrollTop","currentVariable","cloneDeep","stack","recommended","showOnlyRecommendedVariables"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{useContext as t}from"react";const
|
|
1
|
+
import e,{useContext as t}from"react";const r=e.createContext({searchText:"",setSearchText:()=>{},subHeaderStack:[],setSubHeaderStack:()=>{},variables:[],setVariables:()=>{},showRecommended:!1,setShowRecommended:()=>{},containerRef:{current:null},scrollPositionStack:{current:[]}}),a=()=>t(r);export{r as VariablePickerContext,a as useVariablePickerContext};
|
|
2
2
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../../../src/components/variable-picker-v3/context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport React, { useContext } from 'react';\n\nexport const VariablePickerContext = React.createContext<{\n\tsearchText: string;\n\tsetSearchText: React.Dispatch<React.SetStateAction<string>>;\n\tsubHeaderStack: any[]; // TODO: type this\n\tsetSubHeaderStack: React.Dispatch<React.SetStateAction<any[]>>;\n\tvariables: any[]; // TODO: type this\n\tsetVariables: React.Dispatch<React.SetStateAction<any[]>>;\n\tshowRecommended: boolean;\n\tsetShowRecommended: React.Dispatch<React.SetStateAction<boolean>>;\n}>({\n\tsearchText: '',\n\tsetSearchText: () => {},\n\tsubHeaderStack: [],\n\tsetSubHeaderStack: () => {},\n\tvariables: [],\n\tsetVariables: () => {},\n\tshowRecommended: false,\n\tsetShowRecommended: () => {},\n});\n\nexport const useVariablePickerContext = () => useContext(VariablePickerContext);\n"],"names":["VariablePickerContext","React","createContext","searchText","setSearchText","subHeaderStack","setSubHeaderStack","variables","setVariables","showRecommended","setShowRecommended","useVariablePickerContext","useContext"],"mappings":"4CAGaA,EAAwBC,EAAMC,
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../src/components/variable-picker-v3/context.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport React, { useContext } from 'react';\n\nexport const VariablePickerContext = React.createContext<{\n\tsearchText: string;\n\tsetSearchText: React.Dispatch<React.SetStateAction<string>>;\n\tsubHeaderStack: any[]; // TODO: type this\n\tsetSubHeaderStack: React.Dispatch<React.SetStateAction<any[]>>;\n\tvariables: any[]; // TODO: type this\n\tsetVariables: React.Dispatch<React.SetStateAction<any[]>>;\n\tshowRecommended: boolean;\n\tsetShowRecommended: React.Dispatch<React.SetStateAction<boolean>>;\n\tcontainerRef: React.RefObject<HTMLDivElement | null>;\n\tscrollPositionStack: React.MutableRefObject<number[]>;\n}>({\n\tsearchText: '',\n\tsetSearchText: () => {},\n\tsubHeaderStack: [],\n\tsetSubHeaderStack: () => {},\n\tvariables: [],\n\tsetVariables: () => {},\n\tshowRecommended: false,\n\tsetShowRecommended: () => {},\n\tcontainerRef: { current: null },\n\tscrollPositionStack: { current: [] },\n});\n\nexport const useVariablePickerContext = () => useContext(VariablePickerContext);\n"],"names":["VariablePickerContext","React","createContext","searchText","setSearchText","subHeaderStack","setSubHeaderStack","variables","setVariables","showRecommended","setShowRecommended","containerRef","current","scrollPositionStack","useVariablePickerContext","useContext"],"mappings":"4CAGaA,EAAwBC,EAAMC,cAWxC,CACFC,WAAY,GACZC,cAAeA,OACfC,eAAgB,GAChBC,kBAAmBA,OACnBC,UAAW,GACXC,aAAcA,OACdC,iBAAiB,EACjBC,mBAAoBA,OACpBC,aAAc,CAAEC,QAAS,MACzBC,oBAAqB,CAAED,QAAS,MAGpBE,EAA2BA,IAAMC,EAAWf"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"@tiptap/extension-character-count";import e from"@tiptap/extension-color";import t from"@tiptap/extension-font-family";import n from"@tiptap/extension-highlight";import i from"@tiptap/extension-image";import r from"@tiptap/extension-link";import a from"@tiptap/extension-placeholder";import s from"@tiptap/extension-subscript";import m from"@tiptap/extension-superscript";import p from"@tiptap/extension-text-align";import{TextStyle as l}from"@tiptap/extension-text-style";import d from"@tiptap/extension-underline";import c from"@tiptap/starter-kit";import{FontSizeExtension as u}from"./FontSizeExtension.js";import{buildAgentMentionExtension as f,buildTeamMentionExtension as h}from"./mention/MentionExtension.js";import{PasteExtension as x}from"./paste/PasteExtension.js";import{ClipboardNormalizationExtension as g}from"./plainClipboard/ClipboardNormalizationExtension.js";import{PlainClipboardExtension as v}from"./plainClipboard/PlainClipboardExtension.js";import{SectionDividerNode as S}from"./sectionDivider/SectionDividerNode.js";import{SendShortcutExtension as C}from"./sendShortcut/SendShortcutExtension.js";import{buildSlashCommandExtension as b}from"./slashCommand/SlashCommandExtension.js";import{VariableDecorationExtension as k}from"./variable/VariableDecorationExtension.js";function j(j){var M,E,P,y,D,w,I,T,z;const N=null!==(E=null===(M=j.features)||void 0===M?void 0:M.richPaste)&&void 0!==E&&E,O=null!==(y=null===(P=j.features)||void 0===P?void 0:P.richTypography)&&void 0!==y&&y,R=null===(D=j.features)||void 0===D?void 0:D.allowedMarks,A=o=>!R||R.includes(o);return[...[c.configure({link:!1,underline:!1,bold:!!A("bold")&&{},italic:!!A("italic")&&{},strike:!!A("strike")&&{},code:!!A("code")&&{}}),...A("underline")?[d]:[],r.extend({addPasteRules:()=>[],addInputRules:()=>[]}).configure({openOnClick:!1,autolink:!1,linkOnPaste:!1,HTMLAttributes:{rel:"noopener noreferrer",class:"bik-link"}}),l,a.configure({placeholder:null!==(w=j.placeholder)&&void 0!==w?w:"Type a message..."}),...j.onPaste?[x.configure({onPaste:j.onPaste})]:[],...N?[g]:[v],C.configure({onSend:j.onSend,sendShortcut:j.sendShortcut,extraShortcuts:null!==(I=j.shortcuts)&&void 0!==I?I:[]}),k,...j.maxCharacters?[o.configure({limit:j.maxCharacters})]:[],S],...[...(null===(T=j.mentions)||void 0===T?void 0:T.agents)?[f(j.mentions.agents,j.onMentionSelected,j.renderMentionItem,j.renderMentionDropdown)]:[],...(null===(z=j.mentions)||void 0===z?void 0:z.teams)?[h(j.mentions.teams,j.onMentionSelected,j.renderMentionItem,j.renderMentionDropdown)]:[],...j.slashCommands?[b(j.slashCommands,j.onSlashCommandSelected,j.renderSlashCommandItem,j.renderSlashCommandDropdown)]:[]],...O?[e,n.configure({multicolor:!0}),t,u,p.configure({types:["heading","paragraph"]}),s,m,i]:[e]]}export{j as buildExtensions};
|
|
2
2
|
//# sourceMappingURL=buildExtensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildExtensions.js","sources":["../../../../src/editor/extensions/buildExtensions.ts"],"sourcesContent":["import CharacterCount from '@tiptap/extension-character-count';\nimport Color from '@tiptap/extension-color';\nimport FontFamily from '@tiptap/extension-font-family';\nimport Highlight from '@tiptap/extension-highlight';\nimport Image from '@tiptap/extension-image';\nimport Link from '@tiptap/extension-link';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Subscript from '@tiptap/extension-subscript';\nimport Superscript from '@tiptap/extension-superscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport { TextStyle } from '@tiptap/extension-text-style';\nimport Underline from '@tiptap/extension-underline';\nimport StarterKit from '@tiptap/starter-kit';\nimport type { ReactNode } from 'react';\nimport type {\n\tEditorFeatures,\n\tEditorSnapshot,\n\tKeyboardShortcut,\n\tMentionDropdownRenderProps,\n\tMentionItem,\n\tPasteData,\n\tSlashCommandDropdownRenderProps,\n\tSlashCommandItem,\n} from '../BikEditor.types';\nimport { FontSizeExtension } from './FontSizeExtension';\nimport {\n\tbuildAgentMentionExtension,\n\tbuildTeamMentionExtension,\n} from './mention/MentionExtension';\nimport { PasteExtension } from './paste/PasteExtension';\nimport {
|
|
1
|
+
{"version":3,"file":"buildExtensions.js","sources":["../../../../src/editor/extensions/buildExtensions.ts"],"sourcesContent":["import CharacterCount from '@tiptap/extension-character-count';\nimport Color from '@tiptap/extension-color';\nimport FontFamily from '@tiptap/extension-font-family';\nimport Highlight from '@tiptap/extension-highlight';\nimport Image from '@tiptap/extension-image';\nimport Link from '@tiptap/extension-link';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Subscript from '@tiptap/extension-subscript';\nimport Superscript from '@tiptap/extension-superscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport { TextStyle } from '@tiptap/extension-text-style';\nimport Underline from '@tiptap/extension-underline';\nimport StarterKit from '@tiptap/starter-kit';\nimport type { ReactNode } from 'react';\nimport type {\n\tEditorFeatures,\n\tEditorSnapshot,\n\tKeyboardShortcut,\n\tMentionDropdownRenderProps,\n\tMentionItem,\n\tPasteData,\n\tSlashCommandDropdownRenderProps,\n\tSlashCommandItem,\n} from '../BikEditor.types';\nimport { FontSizeExtension } from './FontSizeExtension';\nimport {\n\tbuildAgentMentionExtension,\n\tbuildTeamMentionExtension,\n} from './mention/MentionExtension';\nimport { PasteExtension } from './paste/PasteExtension';\nimport { ClipboardNormalizationExtension } from './plainClipboard/ClipboardNormalizationExtension';\nimport { PlainClipboardExtension } from './plainClipboard/PlainClipboardExtension';\nimport { SectionDividerNode } from './sectionDivider/SectionDividerNode';\nimport { SendShortcutExtension } from './sendShortcut/SendShortcutExtension';\nimport { buildSlashCommandExtension } from './slashCommand/SlashCommandExtension';\nimport { VariableDecorationExtension } from './variable/VariableDecorationExtension';\n\ninterface ExtensionConfig {\n\tfeatures?: EditorFeatures;\n\tplaceholder?: string;\n\tmaxCharacters?: number;\n\thasSections?: boolean;\n\tmentions?: {\n\t\tagents?: { current: MentionItem[] };\n\t\tteams?: { current: MentionItem[] };\n\t};\n\tslashCommands?: { current: SlashCommandItem[] };\n\tonPaste?: (data: PasteData) => boolean | void;\n\tonSend?: (content: EditorSnapshot) => void;\n\tsendShortcut?:\n\t\t| { key: string; modifiers?: Array<'mod' | 'ctrl' | 'shift' | 'alt'> }\n\t\t| Array<{\n\t\t\t\tkey: string;\n\t\t\t\tmodifiers?: Array<'mod' | 'ctrl' | 'shift' | 'alt'>;\n\t\t }>;\n\tshortcuts?: KeyboardShortcut[];\n\tonMentionSelected?: (item: MentionItem, char: '@' | '#') => void;\n\tonSlashCommandSelected?: (command: SlashCommandItem) => void;\n\trenderMentionItem?: (item: MentionItem, isActive: boolean) => ReactNode;\n\trenderMentionDropdown?: (props: MentionDropdownRenderProps) => ReactNode;\n\trenderSlashCommandItem?: (\n\t\titem: SlashCommandItem,\n\t\tisActive: boolean,\n\t) => ReactNode;\n\trenderSlashCommandDropdown?: (\n\t\tprops: SlashCommandDropdownRenderProps,\n\t) => ReactNode;\n}\n\nexport function buildExtensions(config: ExtensionConfig) {\n\tconst hasRichPaste = config.features?.richPaste ?? false;\n\tconst hasRichTypography = config.features?.richTypography ?? false;\n\n\t// When allowedMarks is specified only those marks are registered in the schema.\n\t// This disables rendering, keyboard shortcuts AND paste-preservation for the\n\t// excluded marks — all three come for free when the extension is absent.\n\tconst allowedMarks = config.features?.allowedMarks;\n\tconst isMark = (m: 'bold' | 'italic' | 'strike' | 'underline' | 'code') =>\n\t\t!allowedMarks || allowedMarks.includes(m);\n\n\tconst base = [\n\t\t// Exclude Link and Underline from StarterKit — TipTap v3 bundles both.\n\t\t// Without this, two copies of each are registered and the StarterKit copy's\n\t\t// click handler calls window.open even when openOnClick: false is set.\n\t\tStarterKit.configure({\n\t\t\tlink: false,\n\t\t\tunderline: false,\n\t\t\tbold: isMark('bold') ? {} : false,\n\t\t\titalic: isMark('italic') ? {} : false,\n\t\t\tstrike: isMark('strike') ? {} : false,\n\t\t\tcode: isMark('code') ? {} : false,\n\t\t}),\n\t\t...(isMark('underline') ? [Underline] : []),\n\t\t// Extend Link to strip addPasteRules() and addInputRules() so pasting a\n\t\t// URL never creates a hyperlink regardless of autolink/linkOnPaste values.\n\t\tLink.extend({\n\t\t\taddPasteRules: () => [],\n\t\t\taddInputRules: () => [],\n\t\t}).configure({\n\t\t\topenOnClick: false,\n\t\t\tautolink: false,\n\t\t\tlinkOnPaste: false,\n\t\t\tHTMLAttributes: {\n\t\t\t\trel: 'noopener noreferrer',\n\t\t\t\tclass: 'bik-link',\n\t\t\t},\n\t\t}),\n\t\tTextStyle,\n\t\tPlaceholder.configure({\n\t\t\tplaceholder: config.placeholder ?? 'Type a message...',\n\t\t}),\n\t\t// Consumer paste callback runs first. If it returns true the event is\n\t\t// consumed and neither PlainClipboardExtension nor the editor's default\n\t\t// paste handling will run for that event.\n\t\t...(config.onPaste\n\t\t\t? [PasteExtension.configure({ onPaste: config.onPaste })]\n\t\t\t: []),\n\t\t// Non-rich editors: strip rich marks + normalize blanks on paste.\n\t\t// Rich editors (email): only normalize blanks (fix Google Docs spacing).\n\t\t...(!hasRichPaste\n\t\t\t? [PlainClipboardExtension]\n\t\t\t: [ClipboardNormalizationExtension]),\n\t\tSendShortcutExtension.configure({\n\t\t\tonSend: config.onSend,\n\t\t\tsendShortcut: config.sendShortcut,\n\t\t\textraShortcuts: config.shortcuts ?? [],\n\t\t}),\n\t\tVariableDecorationExtension,\n\t\t...(config.maxCharacters\n\t\t\t? [CharacterCount.configure({ limit: config.maxCharacters })]\n\t\t\t: []),\n\t\t// Always register SectionDividerNode so the custom <div data-section-divider>\n\t\t// node is part of the schema in every editor instance. This means imperative\n\t\t// callers (setBodyAndSections / setSectionContent) work even when no\n\t\t// `sections` prop was provided at mount time.\n\t\tSectionDividerNode,\n\t];\n\n\tconst mentionExtensions = [\n\t\t...(config.mentions?.agents\n\t\t\t? [\n\t\t\t\t\tbuildAgentMentionExtension(\n\t\t\t\t\t\tconfig.mentions.agents,\n\t\t\t\t\t\tconfig.onMentionSelected,\n\t\t\t\t\t\tconfig.renderMentionItem,\n\t\t\t\t\t\tconfig.renderMentionDropdown,\n\t\t\t\t\t),\n\t\t\t ]\n\t\t\t: []),\n\t\t...(config.mentions?.teams\n\t\t\t? [\n\t\t\t\t\tbuildTeamMentionExtension(\n\t\t\t\t\t\tconfig.mentions.teams,\n\t\t\t\t\t\tconfig.onMentionSelected,\n\t\t\t\t\t\tconfig.renderMentionItem,\n\t\t\t\t\t\tconfig.renderMentionDropdown,\n\t\t\t\t\t),\n\t\t\t ]\n\t\t\t: []),\n\t\t...(config.slashCommands\n\t\t\t? [\n\t\t\t\t\tbuildSlashCommandExtension(\n\t\t\t\t\t\tconfig.slashCommands,\n\t\t\t\t\t\tconfig.onSlashCommandSelected,\n\t\t\t\t\t\tconfig.renderSlashCommandItem,\n\t\t\t\t\t\tconfig.renderSlashCommandDropdown,\n\t\t\t\t\t),\n\t\t\t ]\n\t\t\t: []),\n\t];\n\n\tconst richExtensions = hasRichTypography\n\t\t? [\n\t\t\t\tColor,\n\t\t\t\tHighlight.configure({ multicolor: true }),\n\t\t\t\tFontFamily,\n\t\t\t\tFontSizeExtension,\n\t\t\t\tTextAlign.configure({ types: ['heading', 'paragraph'] }),\n\t\t\t\tSubscript,\n\t\t\t\tSuperscript,\n\t\t\t\tImage,\n\t\t ]\n\t\t: [Color];\n\n\treturn [...base, ...mentionExtensions, ...richExtensions];\n}\n"],"names":["buildExtensions","config","hasRichPaste","_b","_a","features","richPaste","hasRichTypography","_d","_c","richTypography","allowedMarks","_e","isMark","m","includes","StarterKit","configure","link","underline","bold","italic","strike","code","Underline","Link","extend","addPasteRules","addInputRules","openOnClick","autolink","linkOnPaste","HTMLAttributes","rel","class","TextStyle","Placeholder","placeholder","_f","onPaste","PasteExtension","ClipboardNormalizationExtension","PlainClipboardExtension","SendShortcutExtension","onSend","sendShortcut","extraShortcuts","_g","shortcuts","VariableDecorationExtension","maxCharacters","CharacterCount","limit","SectionDividerNode","_h","mentions","agents","buildAgentMentionExtension","onMentionSelected","renderMentionItem","renderMentionDropdown","_j","teams","buildTeamMentionExtension","slashCommands","buildSlashCommandExtension","onSlashCommandSelected","renderSlashCommandItem","renderSlashCommandDropdown","Color","Highlight","multicolor","FontFamily","FontSizeExtension","TextAlign","types","Subscript","Superscript","Image"],"mappings":"0xCAqEM,SAAUA,EAAgBC,yBAC/B,MAAMC,EAA6C,QAA9BC,EAAiB,QAAjBC,EAAAH,EAAOI,gBAAU,IAAAD,OAAA,EAAAA,EAAAE,iBAAa,IAAAH,GAAAA,EAC7CI,EAAuD,QAAnCC,EAAiB,QAAjBC,EAAAR,EAAOI,gBAAU,IAAAI,OAAA,EAAAA,EAAAC,sBAAkB,IAAAF,GAAAA,EAKvDG,EAA8B,QAAfC,EAAAX,EAAOI,gBAAQ,IAAAO,OAAA,EAAAA,EAAED,aAChCE,EAAUC,IACdH,GAAgBA,EAAaI,SAASD,GA0GxC,MAAO,IAxGM,CAIZE,EAAWC,UAAU,CACpBC,MAAM,EACNC,WAAW,EACXC,OAAMP,EAAO,SAAU,CAAE,EACzBQ,SAAQR,EAAO,WAAY,CAAE,EAC7BS,SAAQT,EAAO,WAAY,CAAE,EAC7BU,OAAMV,EAAO,SAAU,CAAE,OAEtBA,EAAO,aAAe,CAACW,GAAa,GAGxCC,EAAKC,OAAO,CACXC,cAAeA,IAAM,GACrBC,cAAeA,IAAM,KACnBX,UAAU,CACZY,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,eAAgB,CACfC,IAAK,sBACLC,MAAO,cAGTC,EACAC,EAAYnB,UAAU,CACrBoB,oBAAaC,EAAArC,EAAOoC,2BAAe,yBAKhCpC,EAAOsC,QACR,CAACC,EAAevB,UAAU,CAAEsB,QAAStC,EAAOsC,WAC5C,MAGErC,EAEF,CAACuC,GADD,CAACC,GAEJC,EAAsB1B,UAAU,CAC/B2B,OAAQ3C,EAAO2C,OACfC,aAAc5C,EAAO4C,aACrBC,uBAAgBC,EAAA9C,EAAO+C,yBAAa,KAErCC,KACIhD,EAAOiD,cACR,CAACC,EAAelC,UAAU,CAAEmC,MAAOnD,EAAOiD,iBAC1C,GAKHG,MAGyB,aACrBC,EAAArD,EAAOsD,+BAAUC,QAClB,CACAC,EACCxD,EAAOsD,SAASC,OAChBvD,EAAOyD,kBACPzD,EAAO0D,kBACP1D,EAAO2D,wBAGR,eACCC,EAAA5D,EAAOsD,+BAAUO,OAClB,CACAC,EACC9D,EAAOsD,SAASO,MAChB7D,EAAOyD,kBACPzD,EAAO0D,kBACP1D,EAAO2D,wBAGR,MACC3D,EAAO+D,cACR,CACAC,EACChE,EAAO+D,cACP/D,EAAOiE,uBACPjE,EAAOkE,uBACPlE,EAAOmE,6BAGR,OAGmB7D,EACpB,CACA8D,EACAC,EAAUrD,UAAU,CAAEsD,YAAY,IAClCC,EACAC,EACAC,EAAUzD,UAAU,CAAE0D,MAAO,CAAC,UAAW,eACzCC,EACAC,EACAC,GAEA,CAACT,GAGL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Extension as t}from"../../../node_modules/@tiptap/core/dist/index.js";import{DOMParser as e,Slice as r}from"@tiptap/pm/model";import{Plugin as o}from"@tiptap/pm/state";import{BLOCK_SELECTOR as i,cleanBlockBrs as a,normalizeBlanks as n}from"./pasteUtils.js";const l=t.create({name:"clipboardNormalization",addProseMirrorPlugins:()=>[new o({props:{handlePaste(t,o){var l,p,d;if(null===(p=null===(l=o.clipboardData)||void 0===l?void 0:l.files)||void 0===p?void 0:p.length)return!1;const s=null===(d=o.clipboardData)||void 0===d?void 0:d.getData("text/html");if(!s)return!1;if(s.includes("data-pm-slice"))return!1;const c=document.createElement("div");if(c.innerHTML=s,!c.querySelector(i))return!1;a(c);const m=t.state.schema,u=e.fromSchema(m).parseSlice(c),f=n(u.content),v=new r(f,u.openStart,u.openEnd);return t.dispatch(t.state.tr.replaceSelection(v)),!0}}})]});export{l as ClipboardNormalizationExtension};
|
|
2
|
+
//# sourceMappingURL=ClipboardNormalizationExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardNormalizationExtension.js","sources":["../../../../../src/editor/extensions/plainClipboard/ClipboardNormalizationExtension.ts"],"sourcesContent":["import { Extension } from '@tiptap/core';\nimport { DOMParser as ProseMirrorDOMParser, Slice } from '@tiptap/pm/model';\nimport { Plugin } from '@tiptap/pm/state';\nimport { BLOCK_SELECTOR, cleanBlockBrs, normalizeBlanks } from './pasteUtils';\n\n/**\n * Lightweight paste normalizer for rich-paste editors (email).\n * Fixes Google Docs' standalone `<br>` between paragraphs and collapses\n * consecutive empty paragraphs — but keeps ALL formatting marks intact.\n */\nexport const ClipboardNormalizationExtension = Extension.create({\n\tname: 'clipboardNormalization',\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tprops: {\n\t\t\t\t\thandlePaste(_view, event) {\n\t\t\t\t\t\tif (event.clipboardData?.files?.length) return false;\n\t\t\t\t\t\tconst html = event.clipboardData?.getData('text/html');\n\t\t\t\t\t\tif (!html) return false;\n\t\t\t\t\t\tif (html.includes('data-pm-slice')) return false;\n\n\t\t\t\t\t\tconst container = document.createElement('div');\n\t\t\t\t\t\tcontainer.innerHTML = html;\n\t\t\t\t\t\tif (!container.querySelector(BLOCK_SELECTOR)) return false;\n\n\t\t\t\t\t\tcleanBlockBrs(container);\n\t\t\t\t\t\tconst schema = _view.state.schema;\n\t\t\t\t\t\tconst parsed =\n\t\t\t\t\t\t\tProseMirrorDOMParser.fromSchema(schema).parseSlice(container);\n\t\t\t\t\t\tconst cleaned = normalizeBlanks(parsed.content);\n\t\t\t\t\t\tconst slice = new Slice(cleaned, parsed.openStart, parsed.openEnd);\n\t\t\t\t\t\t_view.dispatch(_view.state.tr.replaceSelection(slice));\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t];\n\t},\n});\n"],"names":["ClipboardNormalizationExtension","Extension","create","name","addProseMirrorPlugins","Plugin","props","handlePaste","_view","event","_b","clipboardData","_a","files","length","html","_c","getData","includes","container","document","createElement","innerHTML","querySelector","BLOCK_SELECTOR","cleanBlockBrs","schema","state","parsed","ProseMirrorDOMParser","fromSchema","parseSlice","cleaned","normalizeBlanks","content","slice","Slice","openStart","openEnd","dispatch","tr","replaceSelection"],"mappings":"8QAUaA,EAAkCC,EAAUC,OAAO,CAC/DC,KAAM,yBACNC,sBAAqBA,IACb,CACN,IAAIC,EAAO,CACVC,MAAO,CACNC,YAAYC,EAAOC,aAClB,WAAIC,EAAqB,UAArBD,EAAME,qBAAe,IAAAC,OAAA,EAAAA,EAAAC,4BAAOC,OAAQ,OAAO,EAC/C,MAAMC,EAA0B,QAAnBC,EAAAP,EAAME,qBAAa,IAAAK,OAAA,EAAAA,EAAEC,QAAQ,aAC1C,IAAKF,EAAM,OAAO,EAClB,GAAIA,EAAKG,SAAS,iBAAkB,OAAO,EAE3C,MAAMC,EAAYC,SAASC,cAAc,OAEzC,GADAF,EAAUG,UAAYP,GACjBI,EAAUI,cAAcC,GAAiB,OAAO,EAErDC,EAAcN,GACd,MAAMO,EAASlB,EAAMmB,MAAMD,OACrBE,EACLC,EAAqBC,WAAWJ,GAAQK,WAAWZ,GAC9Ca,EAAUC,EAAgBL,EAAOM,SACjCC,EAAQ,IAAIC,EAAMJ,EAASJ,EAAOS,UAAWT,EAAOU,SAE1D,OADA9B,EAAM+B,SAAS/B,EAAMmB,MAAMa,GAAGC,iBAAiBN,KACxC,CACR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Extension as t}from"../../../node_modules/@tiptap/core/dist/index.js";import{DOMParser as e,Slice as r,Fragment as a}from"@tiptap/pm/model";import{Plugin as o}from"@tiptap/pm/state";import{BLOCK_SELECTOR as i,cleanBlockBrs as n,normalizeBlanks as l,stripRichMarks as p}from"./pasteUtils.js";const d=t.create({name:"plainClipboard",addProseMirrorPlugins:()=>[new o({props:{handlePaste(t,o){var d,s,c,m;if(null===(s=null===(d=o.clipboardData)||void 0===d?void 0:d.files)||void 0===s?void 0:s.length)return!1;const u=null===(c=o.clipboardData)||void 0===c?void 0:c.getData("text/html"),f=null===(m=o.clipboardData)||void 0===m?void 0:m.getData("text/plain");if(!f)return!1;if(null==u?void 0:u.includes("data-pm-slice"))return!1;const v=t.state.schema;if(u){const a=document.createElement("div");a.innerHTML=u;if(a.querySelector(i)){n(a);const o=e.fromSchema(v).parseSlice(a),i=l(p(o.content)),d=new r(i,o.openStart,o.openEnd);return t.dispatch(t.state.tr.replaceSelection(d)),!0}}const h=f.split("\n").map((t=>v.node("paragraph",null,t?[v.text(t)]:[]))),S=new r(a.fromArray(h),1,1);return t.dispatch(t.state.tr.replaceSelection(S)),!0}}})]});export{d as PlainClipboardExtension};
|
|
2
|
+
//# sourceMappingURL=PlainClipboardExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlainClipboardExtension.js","sources":["../../../../../src/editor/extensions/plainClipboard/PlainClipboardExtension.ts"],"sourcesContent":["import { Extension } from '@tiptap/core';\nimport {\n\tFragment,\n\tDOMParser as ProseMirrorDOMParser,\n\tSlice,\n} from '@tiptap/pm/model';\nimport { Plugin } from '@tiptap/pm/state';\nimport {\n\tBLOCK_SELECTOR,\n\tcleanBlockBrs,\n\tnormalizeBlanks,\n\tstripRichMarks,\n} from './pasteUtils';\n\nexport const PlainClipboardExtension = Extension.create({\n\tname: 'plainClipboard',\n\taddProseMirrorPlugins() {\n\t\treturn [\n\t\t\tnew Plugin({\n\t\t\t\tprops: {\n\t\t\t\t\thandlePaste(_view, event) {\n\t\t\t\t\t\tif (event.clipboardData?.files?.length) return false;\n\t\t\t\t\t\tconst html = event.clipboardData?.getData('text/html');\n\t\t\t\t\t\tconst text = event.clipboardData?.getData('text/plain');\n\t\t\t\t\t\tif (!text) return false;\n\n\t\t\t\t\t\tif (html?.includes('data-pm-slice')) return false;\n\n\t\t\t\t\t\tconst schema = _view.state.schema;\n\n\t\t\t\t\t\tif (html) {\n\t\t\t\t\t\t\tconst container = document.createElement('div');\n\t\t\t\t\t\t\tcontainer.innerHTML = html;\n\t\t\t\t\t\t\tconst hasBlocks = container.querySelector(BLOCK_SELECTOR);\n\t\t\t\t\t\t\tif (hasBlocks) {\n\t\t\t\t\t\t\t\tcleanBlockBrs(container);\n\t\t\t\t\t\t\t\tconst parsed =\n\t\t\t\t\t\t\t\t\tProseMirrorDOMParser.fromSchema(schema).parseSlice(container);\n\t\t\t\t\t\t\t\tconst cleaned = normalizeBlanks(stripRichMarks(parsed.content));\n\t\t\t\t\t\t\t\tconst slice = new Slice(\n\t\t\t\t\t\t\t\t\tcleaned,\n\t\t\t\t\t\t\t\t\tparsed.openStart,\n\t\t\t\t\t\t\t\t\tparsed.openEnd,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t_view.dispatch(_view.state.tr.replaceSelection(slice));\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst paragraphs = text\n\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t.map((line) =>\n\t\t\t\t\t\t\t\tschema.node('paragraph', null, line ? [schema.text(line)] : []),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tconst slice = new Slice(Fragment.fromArray(paragraphs), 1, 1);\n\t\t\t\t\t\t_view.dispatch(_view.state.tr.replaceSelection(slice));\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t];\n\t},\n});\n"],"names":["PlainClipboardExtension","Extension","create","name","addProseMirrorPlugins","Plugin","props","handlePaste","_view","event","_b","clipboardData","_a","files","length","html","_c","getData","text","_d","includes","schema","state","container","document","createElement","innerHTML","querySelector","BLOCK_SELECTOR","cleanBlockBrs","parsed","ProseMirrorDOMParser","fromSchema","parseSlice","cleaned","normalizeBlanks","stripRichMarks","content","slice","Slice","openStart","openEnd","dispatch","tr","replaceSelection","paragraphs","split","map","line","node","Fragment","fromArray"],"mappings":"gTAcaA,EAA0BC,EAAUC,OAAO,CACvDC,KAAM,iBACNC,sBAAqBA,IACb,CACN,IAAIC,EAAO,CACVC,MAAO,CACNC,YAAYC,EAAOC,eAClB,WAAIC,EAAqB,UAArBD,EAAME,qBAAe,IAAAC,OAAA,EAAAA,EAAAC,4BAAOC,OAAQ,OAAO,EAC/C,MAAMC,EAA0B,QAAnBC,EAAAP,EAAME,qBAAa,IAAAK,OAAA,EAAAA,EAAEC,QAAQ,aACpCC,EAA0B,QAAnBC,EAAAV,EAAME,qBAAa,IAAAQ,OAAA,EAAAA,EAAEF,QAAQ,cAC1C,IAAKC,EAAM,OAAO,EAElB,GAAIH,aAAI,EAAJA,EAAMK,SAAS,iBAAkB,OAAO,EAE5C,MAAMC,EAASb,EAAMc,MAAMD,OAE3B,GAAIN,EAAM,CACT,MAAMQ,EAAYC,SAASC,cAAc,OACzCF,EAAUG,UAAYX,EAEtB,GADkBQ,EAAUI,cAAcC,GAC3B,CACdC,EAAcN,GACd,MAAMO,EACLC,EAAqBC,WAAWX,GAAQY,WAAWV,GAC9CW,EAAUC,EAAgBC,EAAeN,EAAOO,UAChDC,EAAQ,IAAIC,EACjBL,EACAJ,EAAOU,UACPV,EAAOW,SAGR,OADAjC,EAAMkC,SAASlC,EAAMc,MAAMqB,GAAGC,iBAAiBN,KACxC,CACP,CACD,CAED,MAAMO,EAAa3B,EACjB4B,MAAM,MACNC,KAAKC,GACL3B,EAAO4B,KAAK,YAAa,KAAMD,EAAO,CAAC3B,EAAOH,KAAK8B,IAAS,MAExDV,EAAQ,IAAIC,EAAMW,EAASC,UAAUN,GAAa,EAAG,GAE3D,OADArC,EAAMkC,SAASlC,EAAMc,MAAMqB,GAAGC,iBAAiBN,KACxC,CACR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment as e
|
|
1
|
+
import{Fragment as e}from"@tiptap/pm/model";const t=new Set(["P","LI","H1","H2","H3","H4","H5","H6","TD","TH","PRE"]),r="p,div,h1,h2,h3,h4,h5,h6,ul,ol,li,blockquote,table,pre",n=new Set(["bold","italic","strike","underline","code"]);function o(e){const r=Array.from(e.querySelectorAll("br"));for(const n of r){let r=!1,o=n.parentElement;for(;o&&o!==e;){if(t.has(o.tagName)){r=!0;break}o=o.parentElement}r||n.parentElement.replaceChild(document.createElement("p"),n)}}function a(t){const r=[];let n=!1;return t.forEach((e=>{var t;if("paragraph"===e.type.name&&1===e.childCount&&"hardBreak"===(null===(t=e.firstChild)||void 0===t?void 0:t.type.name))return n||r.push(e.type.create(e.attrs)),void(n=!0);const o="paragraph"===e.type.name&&0===e.childCount;o&&n||(n=o,e.isBlock&&!e.isLeaf?r.push(e.copy(a(e.content))):r.push(e))})),e.from(r)}function l(t){const r=[];return t.forEach((e=>{if(e.isText){const t=e.marks.filter((e=>n.has(e.type.name)));r.push(t.length===e.marks.length?e:e.mark(t))}else r.push(e.copy(l(e.content)))})),e.from(r)}export{r as BLOCK_SELECTOR,t as TEXTBLOCK_TAGS,o as cleanBlockBrs,a as normalizeBlanks,l as stripRichMarks};
|
|
2
2
|
//# sourceMappingURL=pasteUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pasteUtils.js","sources":["../../../../../src/editor/extensions/plainClipboard/pasteUtils.ts"],"sourcesContent":["import { Fragment, Node as PMNode
|
|
1
|
+
{"version":3,"file":"pasteUtils.js","sources":["../../../../../src/editor/extensions/plainClipboard/pasteUtils.ts"],"sourcesContent":["import { Fragment, Node as PMNode } from '@tiptap/pm/model';\n\nexport const TEXTBLOCK_TAGS = new Set([\n\t'P',\n\t'LI',\n\t'H1',\n\t'H2',\n\t'H3',\n\t'H4',\n\t'H5',\n\t'H6',\n\t'TD',\n\t'TH',\n\t'PRE',\n]);\n\nexport const BLOCK_SELECTOR =\n\t'p,div,h1,h2,h3,h4,h5,h6,ul,ol,li,blockquote,table,pre';\n\nconst BASIC_MARKS = new Set(['bold', 'italic', 'strike', 'underline', 'code']);\n\n/**\n * Replace `<br>` elements that sit at block level (not inside a textblock\n * like `<p>`, `<li>`, etc.) with empty `<p></p>` elements. Google Docs\n * puts standalone `<br>` tags between paragraphs to represent blank lines.\n * Without this, ProseMirror parses them as top-level hardBreak nodes.\n */\nexport function cleanBlockBrs(container: HTMLElement): void {\n\tconst brs = Array.from(container.querySelectorAll('br'));\n\tfor (const br of brs) {\n\t\tlet insideTextblock = false;\n\t\tlet el = br.parentElement;\n\t\twhile (el && el !== container) {\n\t\t\tif (TEXTBLOCK_TAGS.has(el.tagName)) {\n\t\t\t\tinsideTextblock = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tel = el.parentElement;\n\t\t}\n\t\tif (!insideTextblock) {\n\t\t\tbr.parentElement!.replaceChild(document.createElement('p'), br);\n\t\t}\n\t}\n}\n\n/**\n * 1. Convert paragraphs containing only a hard_break into empty paragraphs.\n * 2. Collapse consecutive empty paragraphs into one.\n */\nexport function normalizeBlanks(fragment: Fragment): Fragment {\n\tconst nodes: PMNode[] = [];\n\tlet prevEmpty = false;\n\tfragment.forEach((node) => {\n\t\tconst isHardBreakOnly =\n\t\t\tnode.type.name === 'paragraph' &&\n\t\t\tnode.childCount === 1 &&\n\t\t\tnode.firstChild?.type.name === 'hardBreak';\n\t\tif (isHardBreakOnly) {\n\t\t\tif (!prevEmpty) nodes.push(node.type.create(node.attrs));\n\t\t\tprevEmpty = true;\n\t\t\treturn;\n\t\t}\n\t\tconst isEmpty = node.type.name === 'paragraph' && node.childCount === 0;\n\t\tif (isEmpty && prevEmpty) return;\n\t\tprevEmpty = isEmpty;\n\t\tif (node.isBlock && !node.isLeaf) {\n\t\t\tnodes.push(node.copy(normalizeBlanks(node.content)));\n\t\t} else {\n\t\t\tnodes.push(node);\n\t\t}\n\t});\n\treturn Fragment.from(nodes);\n}\n\n/**\n * Strip only \"rich\" marks (link, textStyle, highlight, etc.) while keeping\n * basic formatting marks (bold, italic, strike, underline, code) that\n * messaging channels can represent.\n */\nexport function stripRichMarks(fragment: Fragment): Fragment {\n\tconst nodes: PMNode[] = [];\n\tfragment.forEach((node) => {\n\t\tif (node.isText) {\n\t\t\tconst kept = node.marks.filter((m) => BASIC_MARKS.has(m.type.name));\n\t\t\tnodes.push(kept.length === node.marks.length ? node : node.mark(kept));\n\t\t} else {\n\t\t\tnodes.push(node.copy(stripRichMarks(node.content)));\n\t\t}\n\t});\n\treturn Fragment.from(nodes);\n}\n"],"names":["TEXTBLOCK_TAGS","Set","BLOCK_SELECTOR","BASIC_MARKS","cleanBlockBrs","container","brs","Array","from","querySelectorAll","br","insideTextblock","el","parentElement","has","tagName","replaceChild","document","createElement","normalizeBlanks","fragment","nodes","prevEmpty","forEach","node","type","name","childCount","_a","firstChild","push","create","attrs","isEmpty","isBlock","isLeaf","copy","content","Fragment","stripRichMarks","isText","kept","marks","filter","m","length","mark"],"mappings":"4CAEaA,MAAAA,EAAiB,IAAIC,IAAI,CACrC,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,QAGYC,EACZ,wDAEKC,EAAc,IAAIF,IAAI,CAAC,OAAQ,SAAU,SAAU,YAAa,SAQhE,SAAUG,EAAcC,GAC7B,MAAMC,EAAMC,MAAMC,KAAKH,EAAUI,iBAAiB,OAClD,IAAK,MAAMC,KAAMJ,EAAK,CACrB,IAAIK,GAAkB,EAClBC,EAAKF,EAAGG,cACZ,KAAOD,GAAMA,IAAOP,GAAW,CAC9B,GAAIL,EAAec,IAAIF,EAAGG,SAAU,CACnCJ,GAAkB,EAClB,KACA,CACDC,EAAKA,EAAGC,aACR,CACIF,GACJD,EAAGG,cAAeG,aAAaC,SAASC,cAAc,KAAMR,EAE7D,CACF,CAMM,SAAUS,EAAgBC,GAC/B,MAAMC,EAAkB,GACxB,IAAIC,GAAY,EAoBhB,OAnBAF,EAASG,SAASC,UAKjB,GAHoB,cAAnBA,EAAKC,KAAKC,MACU,IAApBF,EAAKG,YAC0B,eAAhB,QAAfC,EAAAJ,EAAKK,kBAAU,IAAAD,OAAA,EAAAA,EAAEH,KAAKC,MAItB,OAFKJ,GAAWD,EAAMS,KAAKN,EAAKC,KAAKM,OAAOP,EAAKQ,aACjDV,GAAY,GAGb,MAAMW,EAA6B,cAAnBT,EAAKC,KAAKC,MAA4C,IAApBF,EAAKG,WACnDM,GAAWX,IACfA,EAAYW,EACRT,EAAKU,UAAYV,EAAKW,OACzBd,EAAMS,KAAKN,EAAKY,KAAKjB,EAAgBK,EAAKa,WAE1ChB,EAAMS,KAAKN,GACX,IAEKc,EAAS9B,KAAKa,EACtB,CAOM,SAAUkB,EAAenB,GAC9B,MAAMC,EAAkB,GASxB,OARAD,EAASG,SAASC,IACjB,GAAIA,EAAKgB,OAAQ,CAChB,MAAMC,EAAOjB,EAAKkB,MAAMC,QAAQC,GAAMzC,EAAYW,IAAI8B,EAAEnB,KAAKC,QAC7DL,EAAMS,KAAKW,EAAKI,SAAWrB,EAAKkB,MAAMG,OAASrB,EAAOA,EAAKsB,KAAKL,GAChE,MACApB,EAAMS,KAAKN,EAAKY,KAAKG,EAAef,EAAKa,UACzC,IAEKC,EAAS9B,KAAKa,EACtB"}
|
|
@@ -8,6 +8,8 @@ export declare const VariablePickerContext: React.Context<{
|
|
|
8
8
|
setVariables: React.Dispatch<React.SetStateAction<any[]>>;
|
|
9
9
|
showRecommended: boolean;
|
|
10
10
|
setShowRecommended: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
12
|
+
scrollPositionStack: React.MutableRefObject<number[]>;
|
|
11
13
|
}>;
|
|
12
14
|
export declare const useVariablePickerContext: () => {
|
|
13
15
|
searchText: string;
|
|
@@ -18,4 +20,6 @@ export declare const useVariablePickerContext: () => {
|
|
|
18
20
|
setVariables: React.Dispatch<React.SetStateAction<any[]>>;
|
|
19
21
|
showRecommended: boolean;
|
|
20
22
|
setShowRecommended: React.Dispatch<React.SetStateAction<boolean>>;
|
|
23
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
24
|
+
scrollPositionStack: React.MutableRefObject<number[]>;
|
|
21
25
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Extension } from '@tiptap/core';
|
|
2
|
+
/**
|
|
3
|
+
* Lightweight paste normalizer for rich-paste editors (email).
|
|
4
|
+
* Fixes Google Docs' standalone `<br>` between paragraphs and collapses
|
|
5
|
+
* consecutive empty paragraphs — but keeps ALL formatting marks intact.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ClipboardNormalizationExtension: Extension<any, any>;
|
|
@@ -1,37 +1,21 @@
|
|
|
1
|
-
import { Fragment
|
|
1
|
+
import { Fragment } from '@tiptap/pm/model';
|
|
2
2
|
export declare const TEXTBLOCK_TAGS: Set<string>;
|
|
3
3
|
export declare const BLOCK_SELECTOR = "p,div,h1,h2,h3,h4,h5,h6,ul,ol,li,blockquote,table,pre";
|
|
4
4
|
/**
|
|
5
5
|
* Replace `<br>` elements that sit at block level (not inside a textblock
|
|
6
6
|
* like `<p>`, `<li>`, etc.) with empty `<p></p>` elements. Google Docs
|
|
7
7
|
* puts standalone `<br>` tags between paragraphs to represent blank lines.
|
|
8
|
+
* Without this, ProseMirror parses them as top-level hardBreak nodes.
|
|
8
9
|
*/
|
|
9
10
|
export declare function cleanBlockBrs(container: HTMLElement): void;
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* placeholder. Without this, ProseMirror creates a trailing hardBreak that
|
|
14
|
-
* adds a visual blank line at the bottom of the paragraph.
|
|
12
|
+
* 1. Convert paragraphs containing only a hard_break into empty paragraphs.
|
|
13
|
+
* 2. Collapse consecutive empty paragraphs into one.
|
|
15
14
|
*/
|
|
16
|
-
export declare function
|
|
15
|
+
export declare function normalizeBlanks(fragment: Fragment): Fragment;
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* an empty paragraph (childCount 0) gives a single-height blank line.
|
|
22
|
-
*
|
|
23
|
-
* Does NOT collapse consecutive empties — that would destroy user intent.
|
|
24
|
-
*/
|
|
25
|
-
export declare function normalizeHardBreaks(fragment: Fragment): Fragment;
|
|
26
|
-
/**
|
|
27
|
-
* Strip "rich" marks (link, textStyle, highlight, etc.) while keeping
|
|
28
|
-
* basic marks (bold, italic, strike, underline, code) that messaging
|
|
29
|
-
* channels can represent.
|
|
17
|
+
* Strip only "rich" marks (link, textStyle, highlight, etc.) while keeping
|
|
18
|
+
* basic formatting marks (bold, italic, strike, underline, code) that
|
|
19
|
+
* messaging channels can represent.
|
|
30
20
|
*/
|
|
31
21
|
export declare function stripRichMarks(fragment: Fragment): Fragment;
|
|
32
|
-
/**
|
|
33
|
-
* Parse plain clipboard text into a ProseMirror Slice, preserving blank
|
|
34
|
-
* lines as empty paragraphs. This replaces ProseMirror's default text
|
|
35
|
-
* parser which uses `\n+` and loses all blank lines.
|
|
36
|
-
*/
|
|
37
|
-
export declare function parseClipboardText(text: string, schema: Schema): Slice;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgSendAirplane2: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgSendAirplane2;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgAiAgent: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgAiAgent;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgAtSymbol: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgAtSymbol;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgHangup: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgHangup;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIncomingCall: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIncomingCall;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgOutgoingCall: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgOutgoingCall;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgPhoneCall: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgPhoneCall;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgTranscript: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgTranscript;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
interface Props extends SVGProps<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
color?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgBookOpen: ({ size, color, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgBookOpen;
|