@bikdotai/bik-component-library 0.0.854 → 0.0.856-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/add-variableV2/AddDataPill.js +10 -0
- package/dist/cjs/components/add-variableV2/AddDataPill.js.map +1 -0
- package/dist/cjs/components/agent-builder/AgentBuilder.js +1 -1
- package/dist/cjs/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +11 -11
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +5 -5
- package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js +7 -1
- package/dist/cjs/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js +1 -1
- package/dist/cjs/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/MentionPicker.js +41 -14
- package/dist/cjs/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +6 -5
- package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js +2 -2
- package/dist/cjs/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/VariableInlineField.js +65 -0
- package/dist/cjs/components/agent-builder/components/VariableInlineField.js.map +1 -0
- package/dist/cjs/components/agent-builder/components/VariableTriggerArea.js +10 -0
- package/dist/cjs/components/agent-builder/components/VariableTriggerArea.js.map +1 -0
- package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
- package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js +1 -1
- package/dist/cjs/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js +4 -4
- package/dist/cjs/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/cjs/components/tag/Tag.js +1 -1
- package/dist/cjs/components/tag/Tag.js.map +1 -1
- package/dist/cjs/components/tag/Tag.styled.js +2 -2
- package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
- package/dist/cjs/components/tag/model.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +8 -0
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/BikEditor.types.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/add-variableV2/AddDataPill.d.ts +24 -0
- package/dist/esm/components/add-variableV2/AddDataPill.js +33 -0
- package/dist/esm/components/add-variableV2/AddDataPill.js.map +1 -0
- package/dist/esm/components/add-variableV2/index.d.ts +1 -0
- package/dist/esm/components/agent-builder/AgentBuilder.js +76 -74
- package/dist/esm/components/agent-builder/AgentBuilder.js.map +1 -1
- package/dist/esm/components/agent-builder/AgentBuilder.model.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +182 -136
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +3 -0
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +195 -188
- package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionEditor.d.ts +12 -0
- package/dist/esm/components/agent-builder/components/MentionEditor.js +144 -103
- package/dist/esm/components/agent-builder/components/MentionEditor.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionField.js +48 -45
- package/dist/esm/components/agent-builder/components/MentionField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.d.ts +14 -1
- package/dist/esm/components/agent-builder/components/MentionPicker.js +286 -218
- package/dist/esm/components/agent-builder/components/MentionPicker.js.map +1 -1
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.d.ts +8 -0
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +192 -176
- package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.d.ts +9 -0
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.js +67 -48
- package/dist/esm/components/agent-builder/components/ToolInstructionsField.js.map +1 -1
- package/dist/esm/components/agent-builder/components/VariableInlineField.d.ts +26 -0
- package/dist/esm/components/agent-builder/components/VariableInlineField.js +149 -0
- package/dist/esm/components/agent-builder/components/VariableInlineField.js.map +1 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.d.ts +46 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.js +118 -0
- package/dist/esm/components/agent-builder/components/VariableTriggerArea.js.map +1 -0
- package/dist/esm/components/agent-builder/constants/tools.d.ts +1 -1
- package/dist/esm/components/agent-builder/constants/tools.js +14 -13
- package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.d.ts +7 -0
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js +99 -96
- package/dist/esm/components/agent-builder/context/AgentBuilderContext.js.map +1 -1
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js +164 -160
- package/dist/esm/components/agent-builder/steps/Step3HowItResponds.js.map +1 -1
- package/dist/esm/components/agent-builder/utils/mentionSerialization.d.ts +14 -4
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js +54 -36
- package/dist/esm/components/agent-builder/utils/mentionSerialization.js.map +1 -1
- package/dist/esm/components/tag/Tag.d.ts +1 -1
- package/dist/esm/components/tag/Tag.js +19 -15
- package/dist/esm/components/tag/Tag.js.map +1 -1
- package/dist/esm/components/tag/Tag.styled.d.ts +2 -0
- package/dist/esm/components/tag/Tag.styled.js +2 -5
- package/dist/esm/components/tag/Tag.styled.js.map +1 -1
- package/dist/esm/components/tag/model.d.ts +11 -0
- package/dist/esm/components/tag/model.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js +16 -15
- package/dist/esm/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/esm/editor/BikEditor.js +40 -34
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +20 -12
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/BikEditor.types.d.ts +9 -0
- package/dist/esm/editor/BikEditor.types.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.js +28 -28
- package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js +23 -19
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/icons/index.d.ts +25 -25
- package/dist/esm/index.js +543 -541
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.js","sources":["../../../../src/components/tag/Tag.tsx"],"sourcesContent":["import React from 'react';\nimport { Tooltip } from '../tooltips/Tooltip';\nimport {\n\tAiBodyCaption,\n\tAiBodyTiny,\n\tBodyCaption,\n\tBodyTiny,\n} from '../TypographyStyle';\nimport { TagProps, ValidTagTypeMap } from './model';\nimport * as Sc from './Tag.styled';\nimport { getTagIconColor } from './themes';\n\nexport const Tag = ({\n\ttagText,\n\tLeadingIcon,\n\tTrailingIcon,\n\tonLeadingIconClicked = undefined,\n\tleadingIconId,\n\ttrailingIconId,\n\tonTrailingIconClicked = undefined,\n\ttheme = 'light',\n\ttype = 'neutral',\n\tvariant = 'regular',\n\tversion,\n\tcursor,\n\talignIcon,\n\tnoBorder,\n\ttagHtmlText,\n\tcontentPadding,\n\tpadding,\n\theight,\n\tleadingIconTooltip,\n\ttrailingIconTooltip,\n\ttagColor,\n\tnumberOfLines,\n\tbackgroundColor,\n\tborderRadius,\n\tsize = 'regular',\n}: TagProps) => {\n\tlet displayTagText = tagText;\n\tconst displayTheme = theme;\n\tlet displayType = type;\n\n\tif (!ValidTagTypeMap[variant][type]) {\n\t\tdisplayType = 'neutral';\n\t}\n\n\tif (variant === 'circle') {\n\t\tif (typeof displayTagText === 'number' && displayTagText > 99) {\n\t\t\tdisplayTagText = '99+';\n\t\t}\n\t}\n\n\tconst iconColor = getTagIconColor(theme, displayType);\n\tconst iconProps = {\n\t\theight: variant === 'compressed' ? 12 : 16,\n\t\twidth: variant === 'compressed' ? 12 : 16,\n\t\tcolor: iconColor,\n\t\tstyle: { display: 'block' },\n\t};\n\n\treturn (\n\t\t<Sc.Tag\n\t\t\tcursor={cursor}\n\t\t\ttheme={displayTheme}\n\t\t\ttype={displayType}\n\t\t\tvariant={variant}\n\t\t\tversion={version}\n\t\t\talignIcon={alignIcon}\n\t\t\tnoBorder={noBorder}\n\t\t\tcontentPadding={contentPadding}\n\t\t\tpadding={padding}\n\t\t\theight={height}\n\t\t\tbackgroundColor={backgroundColor}\n\t\t\tborderRadius={borderRadius}\n\t\t\tsize={size}\n\t\t>\n\t\t\t<div className=\"container\">\n\t\t\t\t{LeadingIcon &&\n\t\t\t\t\t(leadingIconTooltip ? (\n\t\t\t\t\t\t<Tooltip {...leadingIconTooltip}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"icon-leading\"\n\t\t\t\t\t\t\t\tonClick={onLeadingIconClicked}\n\t\t\t\t\t\t\t\tid={`${leadingIconId}-wrapper` || 'leading-icon-wrapper'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{React.createElement(LeadingIcon, {\n\t\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\t\tid: leadingIconId || 'leading-icon',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"icon-leading\"\n\t\t\t\t\t\t\tonClick={onLeadingIconClicked}\n\t\t\t\t\t\t\tid={`${leadingIconId}-wrapper` || 'leading-icon-wrapper'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{React.createElement(LeadingIcon, {\n\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\tid: leadingIconId || 'leading-icon',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\n\t\t\t\t{tagHtmlText &&\n\t\t\t\t\t(type === 'ai' && theme === 'light' ? (\n\t\t\t\t\t\tsize === 'small' ? (\n\t\t\t\t\t\t\t<AiBodyTiny numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t\t</AiBodyTiny>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<AiBodyCaption numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t\t</AiBodyCaption>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : size === 'small' ? (\n\t\t\t\t\t\t<BodyTiny className=\"text\" numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BodyCaption className=\"text\" numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t))}\n\n\t\t\t\t{!tagHtmlText &&\n\t\t\t\t\tdisplayTagText !== '' &&\n\t\t\t\t\t(type === 'ai' && theme === 'light' ? (\n\t\t\t\t\t\tsize === 'small' ? (\n\t\t\t\t\t\t\t<AiBodyTiny numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t\t</AiBodyTiny>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<AiBodyCaption numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t\t</AiBodyCaption>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : size === 'small' ? (\n\t\t\t\t\t\t<BodyTiny\n\t\t\t\t\t\t\tclassName=\"text\"\n\t\t\t\t\t\t\tcolor={tagColor}\n\t\t\t\t\t\t\tnumberOfLines={numberOfLines}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\tclassName=\"text\"\n\t\t\t\t\t\t\tcolor={tagColor}\n\t\t\t\t\t\t\tnumberOfLines={numberOfLines}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t))}\n\n\t\t\t\t{TrailingIcon &&\n\t\t\t\t\t(trailingIconTooltip ? (\n\t\t\t\t\t\t<Tooltip {...trailingIconTooltip}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"icon-trailing\"\n\t\t\t\t\t\t\t\tonClick={onTrailingIconClicked}\n\t\t\t\t\t\t\t\tid={`${trailingIconId}-wrapper` || 'trailing-icon-wrapper'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{React.createElement(TrailingIcon, {\n\t\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\t\tid: trailingIconId || 'trailing-icon',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"icon-trailing\"\n\t\t\t\t\t\t\tonClick={onTrailingIconClicked}\n\t\t\t\t\t\t\tid={`${trailingIconId}-wrapper` || 'trailing-icon-wrapper'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{React.createElement(TrailingIcon, {\n\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\tid: trailingIconId || 'trailing-icon',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\t\t\t</div>\n\t\t</Sc.Tag>\n\t);\n};\n\nTag.displayName = 'Tag';\n"],"names":["Tag","tagText","LeadingIcon","TrailingIcon","onLeadingIconClicked","leadingIconId","trailingIconId","onTrailingIconClicked","theme","type","variant","version","cursor","alignIcon","noBorder","tagHtmlText","contentPadding","padding","height","leadingIconTooltip","trailingIconTooltip","tagColor","numberOfLines","backgroundColor","borderRadius","size","displayTagText","displayTheme","displayType","ValidTagTypeMap","iconColor","getTagIconColor","iconProps","jsx","Sc.Tag","jsxs","Tooltip","React","AiBodyTiny","AiBodyCaption","BodyTiny","BodyCaption"],"mappings":";;;;;;;AAYO,MAAMA,IAAM,CAAC;AAAA,EACnB,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,sBAAAC,IAAuB;AAAA,EACvB,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,uBAAAC,IAAwB;AAAA,EACxB,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC,IAAO;
|
|
1
|
+
{"version":3,"file":"Tag.js","sources":["../../../../src/components/tag/Tag.tsx"],"sourcesContent":["import React from 'react';\nimport { Tooltip } from '../tooltips/Tooltip';\nimport {\n\tAiBodyCaption,\n\tAiBodyTiny,\n\tBodyCaption,\n\tBodyTiny,\n} from '../TypographyStyle';\nimport { TagProps, ValidTagTypeMap } from './model';\nimport * as Sc from './Tag.styled';\nimport { getTagIconColor } from './themes';\n\nexport const Tag = ({\n\ttagText,\n\tLeadingIcon,\n\tTrailingIcon,\n\tonLeadingIconClicked = undefined,\n\tleadingIconId,\n\ttrailingIconId,\n\tonTrailingIconClicked = undefined,\n\ttheme = 'light',\n\ttype = 'neutral',\n\tvariant = 'regular',\n\tversion,\n\tcursor,\n\talignIcon,\n\tnoBorder,\n\ttagHtmlText,\n\tcontentPadding,\n\tpadding,\n\theight,\n\tleadingIconTooltip,\n\ttrailingIconTooltip,\n\ttagColor,\n\tnumberOfLines,\n\tbackgroundColor,\n\tborderRadius,\n\tsize = 'regular',\n\tborderStyle,\n\tgap,\n}: TagProps) => {\n\tlet displayTagText = tagText;\n\tconst displayTheme = theme;\n\tlet displayType = type;\n\n\tif (!ValidTagTypeMap[variant][type]) {\n\t\tdisplayType = 'neutral';\n\t}\n\n\tif (variant === 'circle') {\n\t\tif (typeof displayTagText === 'number' && displayTagText > 99) {\n\t\t\tdisplayTagText = '99+';\n\t\t}\n\t}\n\n\tconst iconColor = getTagIconColor(theme, displayType);\n\tconst iconProps = {\n\t\theight: variant === 'compressed' ? 12 : 16,\n\t\twidth: variant === 'compressed' ? 12 : 16,\n\t\tcolor: iconColor,\n\t\tstyle: { display: 'block' },\n\t};\n\n\treturn (\n\t\t<Sc.Tag\n\t\t\tcursor={cursor}\n\t\t\ttheme={displayTheme}\n\t\t\ttype={displayType}\n\t\t\tvariant={variant}\n\t\t\tversion={version}\n\t\t\talignIcon={alignIcon}\n\t\t\tnoBorder={noBorder}\n\t\t\tcontentPadding={contentPadding}\n\t\t\tpadding={padding}\n\t\t\theight={height}\n\t\t\tbackgroundColor={backgroundColor}\n\t\t\tborderRadius={borderRadius}\n\t\t\tsize={size}\n\t\t\tborderStyle={borderStyle}\n\t\t\tgap={gap}\n\t\t>\n\t\t\t<div className=\"container\">\n\t\t\t\t{LeadingIcon &&\n\t\t\t\t\t(leadingIconTooltip ? (\n\t\t\t\t\t\t<Tooltip {...leadingIconTooltip}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"icon-leading\"\n\t\t\t\t\t\t\t\tonClick={onLeadingIconClicked}\n\t\t\t\t\t\t\t\tid={`${leadingIconId}-wrapper` || 'leading-icon-wrapper'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{React.createElement(LeadingIcon, {\n\t\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\t\tid: leadingIconId || 'leading-icon',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"icon-leading\"\n\t\t\t\t\t\t\tonClick={onLeadingIconClicked}\n\t\t\t\t\t\t\tid={`${leadingIconId}-wrapper` || 'leading-icon-wrapper'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{React.createElement(LeadingIcon, {\n\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\tid: leadingIconId || 'leading-icon',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\n\t\t\t\t{tagHtmlText &&\n\t\t\t\t\t(type === 'ai' && theme === 'light' ? (\n\t\t\t\t\t\tsize === 'small' ? (\n\t\t\t\t\t\t\t<AiBodyTiny numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t\t</AiBodyTiny>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<AiBodyCaption numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t\t</AiBodyCaption>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : size === 'small' ? (\n\t\t\t\t\t\t<BodyTiny className=\"text\" numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BodyCaption className=\"text\" numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t{tagHtmlText}\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t))}\n\n\t\t\t\t{!tagHtmlText &&\n\t\t\t\t\tdisplayTagText !== '' &&\n\t\t\t\t\t(type === 'ai' && theme === 'light' ? (\n\t\t\t\t\t\tsize === 'small' ? (\n\t\t\t\t\t\t\t<AiBodyTiny numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t\t</AiBodyTiny>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<AiBodyCaption numberOfLines={numberOfLines}>\n\t\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t\t</AiBodyCaption>\n\t\t\t\t\t\t)\n\t\t\t\t\t) : size === 'small' ? (\n\t\t\t\t\t\t<BodyTiny\n\t\t\t\t\t\t\tclassName=\"text\"\n\t\t\t\t\t\t\tcolor={tagColor}\n\t\t\t\t\t\t\tnumberOfLines={numberOfLines}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t</BodyTiny>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\tclassName=\"text\"\n\t\t\t\t\t\t\tcolor={tagColor}\n\t\t\t\t\t\t\tnumberOfLines={numberOfLines}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{displayTagText}\n\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t))}\n\n\t\t\t\t{TrailingIcon &&\n\t\t\t\t\t(trailingIconTooltip ? (\n\t\t\t\t\t\t<Tooltip {...trailingIconTooltip}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"icon-trailing\"\n\t\t\t\t\t\t\t\tonClick={onTrailingIconClicked}\n\t\t\t\t\t\t\t\tid={`${trailingIconId}-wrapper` || 'trailing-icon-wrapper'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{React.createElement(TrailingIcon, {\n\t\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\t\tid: trailingIconId || 'trailing-icon',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"icon-trailing\"\n\t\t\t\t\t\t\tonClick={onTrailingIconClicked}\n\t\t\t\t\t\t\tid={`${trailingIconId}-wrapper` || 'trailing-icon-wrapper'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{React.createElement(TrailingIcon, {\n\t\t\t\t\t\t\t\t...iconProps,\n\t\t\t\t\t\t\t\tid: trailingIconId || 'trailing-icon',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\t\t\t</div>\n\t\t</Sc.Tag>\n\t);\n};\n\nTag.displayName = 'Tag';\n"],"names":["Tag","tagText","LeadingIcon","TrailingIcon","onLeadingIconClicked","leadingIconId","trailingIconId","onTrailingIconClicked","theme","type","variant","version","cursor","alignIcon","noBorder","tagHtmlText","contentPadding","padding","height","leadingIconTooltip","trailingIconTooltip","tagColor","numberOfLines","backgroundColor","borderRadius","size","borderStyle","gap","displayTagText","displayTheme","displayType","ValidTagTypeMap","iconColor","getTagIconColor","iconProps","jsx","Sc.Tag","jsxs","Tooltip","React","AiBodyTiny","AiBodyCaption","BodyTiny","BodyCaption"],"mappings":"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"}
|
|
@@ -13,4 +13,6 @@ export declare const Tag: import('styled-components').StyledComponent<"div", any
|
|
|
13
13
|
backgroundColor?: string | undefined;
|
|
14
14
|
borderRadius?: string | number | undefined;
|
|
15
15
|
size?: "small" | "regular" | undefined;
|
|
16
|
+
borderStyle?: "dashed" | "solid" | undefined;
|
|
17
|
+
gap?: number | undefined;
|
|
16
18
|
}, never>;
|
|
@@ -8,17 +8,14 @@ const r = i.div`
|
|
|
8
8
|
.container {
|
|
9
9
|
display: flex;
|
|
10
10
|
align-items: ${(e) => e.alignIcon ? e.alignIcon : "center"};
|
|
11
|
-
gap:
|
|
11
|
+
gap: ${(e) => e.gap ?? 6}px;
|
|
12
12
|
${(e) => e.height ? `height: ${e.height}px; box-sizing: border-box;` : e.size === "small" ? "height: 16px; box-sizing: border-box;" : ""}
|
|
13
13
|
padding: ${(e) => e.padding ? e.padding : e.size === "small" ? "2px 6px" : e.contentPadding ? `${e.contentPadding}px` : a(e.variant)};
|
|
14
14
|
background: ${(e) => e.backgroundColor ?? t(e.theme, e.type)};
|
|
15
15
|
|
|
16
16
|
border-radius: ${(e) => e.borderRadius !== void 0 ? typeof e.borderRadius == "number" ? `${e.borderRadius}px` : e.borderRadius : e.variant === "regular" ? "4px" : "12px"};
|
|
17
17
|
|
|
18
|
-
${(e) => !e.noBorder && e.theme === "light" && `border: ${e.version === "2.0" ? 0.5 : 1}px solid ${d(
|
|
19
|
-
e.type,
|
|
20
|
-
e.theme
|
|
21
|
-
)};`}
|
|
18
|
+
${(e) => !e.noBorder && e.theme === "light" && `border: ${e.version === "2.0" ? 0.5 : 1}px ${e.borderStyle ?? "solid"} ${d(e.type, e.theme)};`}
|
|
22
19
|
|
|
23
20
|
.text {
|
|
24
21
|
color: ${(e) => n(e.theme, e.type)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.styled.js","sources":["../../../../src/components/tag/Tag.styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { TagTheme, TagType, TagVariant } from './model';\nimport {\n\tgenerateBorder,\n\tgetBackgroundColor,\n\tgetPadding,\n\tgetTextColor,\n} from './themes';\n\nexport const Tag = styled.div<{\n\ttheme: TagTheme;\n\ttype: TagType;\n\tvariant: TagVariant;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tcursor?: string;\n\talignIcon?: string;\n\tnoBorder?: boolean;\n\tcontentPadding?: number;\n\tpadding?: string;\n\theight?: number;\n\tbackgroundColor?: string;\n\tborderRadius?: string | number;\n\tsize?: 'regular' | 'small';\n}>`\n\tcursor: ${(props) => props.cursor ?? 'default'};\n\t${(props) =>\n\t\tprops.size !== 'small' &&\n\t\t(props.variant === 'regular'\n\t\t\t? `display: block;\n\t\t min-height: 26px;\n\t\t`\n\t\t\t: `min-height: 20px;`)}\n\t.container {\n\t\tdisplay: flex;\n\t\talign-items: ${(props) => (props.alignIcon ? props.alignIcon : 'center')};\n\t\tgap:
|
|
1
|
+
{"version":3,"file":"Tag.styled.js","sources":["../../../../src/components/tag/Tag.styled.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { TagTheme, TagType, TagVariant } from './model';\nimport {\n\tgenerateBorder,\n\tgetBackgroundColor,\n\tgetPadding,\n\tgetTextColor,\n} from './themes';\n\nexport const Tag = styled.div<{\n\ttheme: TagTheme;\n\ttype: TagType;\n\tvariant: TagVariant;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tcursor?: string;\n\talignIcon?: string;\n\tnoBorder?: boolean;\n\tcontentPadding?: number;\n\tpadding?: string;\n\theight?: number;\n\tbackgroundColor?: string;\n\tborderRadius?: string | number;\n\tsize?: 'regular' | 'small';\n\tborderStyle?: 'solid' | 'dashed';\n\tgap?: number;\n}>`\n\tcursor: ${(props) => props.cursor ?? 'default'};\n\t${(props) =>\n\t\tprops.size !== 'small' &&\n\t\t(props.variant === 'regular'\n\t\t\t? `display: block;\n\t\t min-height: 26px;\n\t\t`\n\t\t\t: `min-height: 20px;`)}\n\t.container {\n\t\tdisplay: flex;\n\t\talign-items: ${(props) => (props.alignIcon ? props.alignIcon : 'center')};\n\t\tgap: ${(props) => props.gap ?? 6}px;\n\t\t${(props) =>\n\t\t\tprops.height\n\t\t\t\t? `height: ${props.height}px; box-sizing: border-box;`\n\t\t\t\t: props.size === 'small'\n\t\t\t\t? 'height: 16px; box-sizing: border-box;'\n\t\t\t\t: ''}\n\t\tpadding: ${(props) =>\n\t\t\tprops.padding\n\t\t\t\t? props.padding\n\t\t\t\t: props.size === 'small'\n\t\t\t\t? '2px 6px'\n\t\t\t\t: props.contentPadding\n\t\t\t\t? `${props.contentPadding}px`\n\t\t\t\t: getPadding(props.variant)};\n\t\tbackground: ${(props) =>\n\t\t\tprops.backgroundColor ?? getBackgroundColor(props.theme, props.type)};\n\n\t\tborder-radius: ${(props) =>\n\t\t\tprops.borderRadius !== undefined\n\t\t\t\t? typeof props.borderRadius === 'number'\n\t\t\t\t\t? `${props.borderRadius}px`\n\t\t\t\t\t: props.borderRadius\n\t\t\t\t: props.variant === 'regular'\n\t\t\t\t? '4px'\n\t\t\t\t: '12px'};\n\n\t\t${(props) =>\n\t\t\t!props.noBorder &&\n\t\t\tprops.theme === 'light' &&\n\t\t\t`border: ${props.version === '2.0' ? 0.5 : 1}px ${\n\t\t\t\tprops.borderStyle ?? 'solid'\n\t\t\t} ${generateBorder(props.type, props.theme)};`}\n\n\t\t.text {\n\t\t\tcolor: ${(props) => getTextColor(props.theme, props.type)};\n\t\t}\n\n\t\t.icon-trailing {\n\t\t\tall: unset;\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t.icon-leading {\n\t\t\tall: unset;\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n`;\n"],"names":["Tag","styled","props","getPadding","getBackgroundColor","generateBorder","getTextColor"],"mappings":";;AASO,MAAMA,IAAMC,EAAO;AAAA,WAiBf,CAACC,MAAUA,EAAM,UAAU,SAAS;AAAA,GAC5C,CAACA,MACFA,EAAM,SAAS,YACdA,EAAM,YAAY,YAChB;AAAA;AAAA,MAGA,oBAAoB;AAAA;AAAA;AAAA,iBAGR,CAACA,MAAWA,EAAM,YAAYA,EAAM,YAAY,QAAS;AAAA,SACjE,CAACA,MAAUA,EAAM,OAAO,CAAC;AAAA,IAC9B,CAACA,MACFA,EAAM,SACH,WAAWA,EAAM,MAAM,gCACvBA,EAAM,SAAS,UACf,0CACA,EAAE;AAAA,aACK,CAACA,MACXA,EAAM,UACHA,EAAM,UACNA,EAAM,SAAS,UACf,YACAA,EAAM,iBACN,GAAGA,EAAM,cAAc,OACvBC,EAAWD,EAAM,OAAO,CAAC;AAAA,gBACf,CAACA,MACdA,EAAM,mBAAmBE,EAAmBF,EAAM,OAAOA,EAAM,IAAI,CAAC;AAAA;AAAA,mBAEpD,CAACA,MACjBA,EAAM,iBAAiB,SACpB,OAAOA,EAAM,gBAAiB,WAC7B,GAAGA,EAAM,YAAY,OACrBA,EAAM,eACPA,EAAM,YAAY,YAClB,QACA,MAAM;AAAA;AAAA,IAER,CAACA,MACF,CAACA,EAAM,YACPA,EAAM,UAAU,WAChB,WAAWA,EAAM,YAAY,QAAQ,MAAM,CAAC,MAC3CA,EAAM,eAAe,OACtB,IAAIG,EAAeH,EAAM,MAAMA,EAAM,KAAK,CAAC,GAAG;AAAA;AAAA;AAAA,YAGrC,CAACA,MAAUI,EAAaJ,EAAM,OAAOA,EAAM,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -118,4 +118,15 @@ export interface TagProps extends React.BaseHTMLAttributes<HTMLDivElement> {
|
|
|
118
118
|
* @default 'regular'
|
|
119
119
|
*/
|
|
120
120
|
size?: 'regular' | 'small';
|
|
121
|
+
/**
|
|
122
|
+
* Border style of the tag container. 'dashed' is used for tags that stand for
|
|
123
|
+
* an action yet to be configured, e.g. an "Add custom" affordance.
|
|
124
|
+
* @default 'solid'
|
|
125
|
+
*/
|
|
126
|
+
borderStyle?: 'solid' | 'dashed';
|
|
127
|
+
/**
|
|
128
|
+
* Gap in px between the leading icon, text and trailing icon.
|
|
129
|
+
* @default 6
|
|
130
|
+
*/
|
|
131
|
+
gap?: number;
|
|
121
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sources":["../../../../src/components/tag/model.ts"],"sourcesContent":["import React from 'react';\nimport { MouseEventHandler } from 'react';\nimport { TooltipProps } from '../tooltips/Tooltip';\n\nexport type TagTheme = 'light' | 'dark';\n\nexport type TagVariant = 'regular' | 'circle' | 'compressed';\n\nexport type TagType =\n\t| 'negative'\n\t| 'warning'\n\t| 'positive'\n\t| 'neutral'\n\t| 'white'\n\t| 'purple'\n\t| 'blue'\n\t| 'grey'\n\t| 'ai';\n\nexport const ValidTagTypeMap = {\n\tregular: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\twhite: true,\n\t\tpurple: true,\n\t\tblue: true,\n\t\tai: true,\n\t},\n\tcircle: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\tblue: true,\n\t\tgrey: true,\n\t\tai: true,\n\t},\n\tcompressed: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\twhite: true,\n\t\tpurple: true,\n\t\tblue: true,\n\t\tai: true,\n\t},\n};\n\nexport interface TagProps extends React.BaseHTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Set the theme of the Tag\n\t * @default default light\n\t */\n\ttheme?: TagTheme;\n\n\t/**\n\t * Set the color of the Tag\n\t * @default default neutral\n\t */\n\ttype?: TagType;\n\n\t/**\n\t * Set the color of the Tag\n\t * @default default regular\n\t */\n\tvariant?: TagVariant;\n\n\t/**\n\t * The icon component that is the right of the text\n\t * Referred to https://ozzie.sh/passing-icons-as-props-in-a-consistent-way-using-react\n\t * @default undefined\n\t */\n\tTrailingIcon?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;\n\t/**\n\t * The right icon id,\n\t * @default trailing-icon\n\t */\n\ttrailingIconId?: string;\n\t/**\n\t * The right icon on click event, defaults to () => {}\n\t */\n\tonTrailingIconClicked?: MouseEventHandler<HTMLButtonElement>;\n\t/**\n\t * Tooltip props for the trailing icon\n\t * @default undefined\n\t */\n\ttrailingIconTooltip?: Omit<TooltipProps, 'children'>;\n\n\t/**\n\t * The icon component that is to the left of the text\n\t * Referred to https://ozzie.sh/passing-icons-as-props-in-a-consistent-way-using-react\n\t * @default undefined\n\t */\n\tLeadingIcon?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;\n\t/**\n\t * The right icon on click event, defaults to () => {}\n\t */\n\tonLeadingIconClicked?: MouseEventHandler<HTMLButtonElement>;\n\t/**\n\t * The left icon id,\n\t * @default leading-icon\n\t */\n\tleadingIconId?: string;\n\t/**\n\t * Tooltip props for the leading icon\n\t * @default undefined\n\t */\n\tleadingIconTooltip?: Omit<TooltipProps, 'children'>;\n\n\ttagText: string | number;\n\tversion?: '1.0' | '2.0' | '3.0';\n\t/** Custom CSS padding string, e.g. '4px 8px' */\n\tpadding?: string;\n\t/** Custom height in px */\n\theight?: number;\n\tcursor?: string;\n\talignIcon?: string;\n\tnoBorder?: boolean;\n\ttagHtmlText?: JSX.Element;\n\tcontentPadding?: number;\n\ttagColor?: string;\n\tnumberOfLines?: number;\n\t/**\n\t * Override the computed background color of the tag container.\n\t * @default undefined (uses theme/type color)\n\t */\n\tbackgroundColor?: string;\n\t/**\n\t * Override the border-radius of the tag container.\n\t * @default undefined (uses variant-based radius: 4px for regular, 12px otherwise)\n\t */\n\tborderRadius?: string | number;\n\t/**\n\t * Controls the size of the tag. 'small' sets height to 16px and uses tiny font.\n\t * @default 'regular'\n\t */\n\tsize?: 'regular' | 'small';\n}\n"],"names":["ValidTagTypeMap"],"mappings":"AAmBO,MAAMA,IAAkB;AAAA,EAC9B,SAAS;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAAA,EAEL,QAAQ;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAAA,EAEL,YAAY;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAEN;"}
|
|
1
|
+
{"version":3,"file":"model.js","sources":["../../../../src/components/tag/model.ts"],"sourcesContent":["import React from 'react';\nimport { MouseEventHandler } from 'react';\nimport { TooltipProps } from '../tooltips/Tooltip';\n\nexport type TagTheme = 'light' | 'dark';\n\nexport type TagVariant = 'regular' | 'circle' | 'compressed';\n\nexport type TagType =\n\t| 'negative'\n\t| 'warning'\n\t| 'positive'\n\t| 'neutral'\n\t| 'white'\n\t| 'purple'\n\t| 'blue'\n\t| 'grey'\n\t| 'ai';\n\nexport const ValidTagTypeMap = {\n\tregular: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\twhite: true,\n\t\tpurple: true,\n\t\tblue: true,\n\t\tai: true,\n\t},\n\tcircle: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\tblue: true,\n\t\tgrey: true,\n\t\tai: true,\n\t},\n\tcompressed: {\n\t\tnegative: true,\n\t\twarning: true,\n\t\tpositive: true,\n\t\tneutral: true,\n\t\twhite: true,\n\t\tpurple: true,\n\t\tblue: true,\n\t\tai: true,\n\t},\n};\n\nexport interface TagProps extends React.BaseHTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Set the theme of the Tag\n\t * @default default light\n\t */\n\ttheme?: TagTheme;\n\n\t/**\n\t * Set the color of the Tag\n\t * @default default neutral\n\t */\n\ttype?: TagType;\n\n\t/**\n\t * Set the color of the Tag\n\t * @default default regular\n\t */\n\tvariant?: TagVariant;\n\n\t/**\n\t * The icon component that is the right of the text\n\t * Referred to https://ozzie.sh/passing-icons-as-props-in-a-consistent-way-using-react\n\t * @default undefined\n\t */\n\tTrailingIcon?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;\n\t/**\n\t * The right icon id,\n\t * @default trailing-icon\n\t */\n\ttrailingIconId?: string;\n\t/**\n\t * The right icon on click event, defaults to () => {}\n\t */\n\tonTrailingIconClicked?: MouseEventHandler<HTMLButtonElement>;\n\t/**\n\t * Tooltip props for the trailing icon\n\t * @default undefined\n\t */\n\ttrailingIconTooltip?: Omit<TooltipProps, 'children'>;\n\n\t/**\n\t * The icon component that is to the left of the text\n\t * Referred to https://ozzie.sh/passing-icons-as-props-in-a-consistent-way-using-react\n\t * @default undefined\n\t */\n\tLeadingIcon?: React.FunctionComponent<React.SVGAttributes<SVGElement>>;\n\t/**\n\t * The right icon on click event, defaults to () => {}\n\t */\n\tonLeadingIconClicked?: MouseEventHandler<HTMLButtonElement>;\n\t/**\n\t * The left icon id,\n\t * @default leading-icon\n\t */\n\tleadingIconId?: string;\n\t/**\n\t * Tooltip props for the leading icon\n\t * @default undefined\n\t */\n\tleadingIconTooltip?: Omit<TooltipProps, 'children'>;\n\n\ttagText: string | number;\n\tversion?: '1.0' | '2.0' | '3.0';\n\t/** Custom CSS padding string, e.g. '4px 8px' */\n\tpadding?: string;\n\t/** Custom height in px */\n\theight?: number;\n\tcursor?: string;\n\talignIcon?: string;\n\tnoBorder?: boolean;\n\ttagHtmlText?: JSX.Element;\n\tcontentPadding?: number;\n\ttagColor?: string;\n\tnumberOfLines?: number;\n\t/**\n\t * Override the computed background color of the tag container.\n\t * @default undefined (uses theme/type color)\n\t */\n\tbackgroundColor?: string;\n\t/**\n\t * Override the border-radius of the tag container.\n\t * @default undefined (uses variant-based radius: 4px for regular, 12px otherwise)\n\t */\n\tborderRadius?: string | number;\n\t/**\n\t * Controls the size of the tag. 'small' sets height to 16px and uses tiny font.\n\t * @default 'regular'\n\t */\n\tsize?: 'regular' | 'small';\n\t/**\n\t * Border style of the tag container. 'dashed' is used for tags that stand for\n\t * an action yet to be configured, e.g. an \"Add custom\" affordance.\n\t * @default 'solid'\n\t */\n\tborderStyle?: 'solid' | 'dashed';\n\t/**\n\t * Gap in px between the leading icon, text and trailing icon.\n\t * @default 6\n\t */\n\tgap?: number;\n}\n"],"names":["ValidTagTypeMap"],"mappings":"AAmBO,MAAMA,IAAkB;AAAA,EAC9B,SAAS;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAAA,EAEL,QAAQ;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAAA,EAEL,YAAY;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,IAAI;AAAA,EAAA;AAEN;"}
|
|
@@ -8,9 +8,9 @@ import { flushSync as he } from "react-dom";
|
|
|
8
8
|
import { COLORS as d } from "../../constants/Theme.js";
|
|
9
9
|
import { TitleRegular as me, BodySecondary as U, BodyCaption as ue, TitleSmall as fe } from "../TypographyStyle.js";
|
|
10
10
|
import { VariablePickerContext as pe } from "./context.js";
|
|
11
|
-
import { DefaultVariableContent as
|
|
11
|
+
import { DefaultVariableContent as ge } from "./DefaultVariableContent.js";
|
|
12
12
|
import { highlightSearchText as X } from "./highlightSearchText.js";
|
|
13
|
-
import { PickerType as
|
|
13
|
+
import { PickerType as ye } from "./model.js";
|
|
14
14
|
import Se from "./NoResult.js";
|
|
15
15
|
import { showOnlyRecommendedVariables as S } from "./recommendVaribles.js";
|
|
16
16
|
import { searchVariables as w } from "./searchVariables.js";
|
|
@@ -26,16 +26,16 @@ const Ie = /.*\..*/, De = (o) => /\w+\[\d+\]/g.test(o), He = (o) => {
|
|
|
26
26
|
if (o.actualValue.match(Ie)) {
|
|
27
27
|
const i = o.actualValue.replace("{{", "").replace("}}", "").split(".");
|
|
28
28
|
let s = i[0];
|
|
29
|
-
return i.forEach((
|
|
29
|
+
return i.forEach((g, b) => {
|
|
30
30
|
if (b === 0) return;
|
|
31
|
-
if (De(
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
-
const x =
|
|
31
|
+
if (De(g)) {
|
|
32
|
+
const y = g.match(/(\w+)\[(\d+)\]/);
|
|
33
|
+
if (y) {
|
|
34
|
+
const x = y[1], B = y[2];
|
|
35
35
|
s = s + `['${x}'][${B}]`;
|
|
36
36
|
}
|
|
37
37
|
} else
|
|
38
|
-
s = s + `['${
|
|
38
|
+
s = s + `['${g}']`;
|
|
39
39
|
}), s;
|
|
40
40
|
} else
|
|
41
41
|
return o.actualValueEval ? o.actualValueEval : o.actualValue;
|
|
@@ -43,17 +43,17 @@ const Ie = /.*\..*/, De = (o) => /\w+\[\d+\]/g.test(o), He = (o) => {
|
|
|
43
43
|
const {
|
|
44
44
|
data: i,
|
|
45
45
|
onSelect: s,
|
|
46
|
-
showHeader:
|
|
46
|
+
showHeader: g,
|
|
47
47
|
showBackButton: b,
|
|
48
48
|
hideHeaderCross: P,
|
|
49
|
-
onBackButtonClick:
|
|
49
|
+
onBackButtonClick: y,
|
|
50
50
|
isEvaluationList: x,
|
|
51
51
|
autoOpenFirst: B,
|
|
52
52
|
headerText: ee,
|
|
53
53
|
contentHeight: E,
|
|
54
54
|
onDefaultVariableSelect: te,
|
|
55
55
|
skipDefaultVariableContent: R
|
|
56
|
-
} = o, [k, a] = m(i), [c, T] = m(""), [n, O] = m([]), [I, A] = m(""), [u, F] = m(!1), [D, L] = m([]), [h, H] = m(!1), [$, j] = m(), C = J(null), W = J([]), oe = h && o.type ===
|
|
56
|
+
} = o, [k, a] = m(i), [c, T] = m(""), [n, O] = m([]), [I, A] = m(""), [u, F] = m(!1), [D, L] = m([]), [h, H] = m(!1), [$, j] = m(), C = J(null), W = J([]), oe = h && o.type === ye.EMBEDDED && !P;
|
|
57
57
|
Q(() => {
|
|
58
58
|
z(o.showRecommendedBar ?? !0);
|
|
59
59
|
}, []), Q(() => {
|
|
@@ -203,18 +203,18 @@ const Ie = /.*\..*/, De = (o) => /\w+\[\d+\]/g.test(o), He = (o) => {
|
|
|
203
203
|
},
|
|
204
204
|
onClick: (e) => e.stopPropagation(),
|
|
205
205
|
children: [
|
|
206
|
-
(
|
|
206
|
+
(g || b || h) && /* @__PURE__ */ p(be, { openDefault: h, children: [
|
|
207
207
|
/* @__PURE__ */ p("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
208
208
|
(b || h) && /* @__PURE__ */ t(
|
|
209
209
|
v,
|
|
210
210
|
{
|
|
211
211
|
Icon: le,
|
|
212
212
|
onClick: () => {
|
|
213
|
-
h ? H(!1) :
|
|
213
|
+
h ? H(!1) : y && y();
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
),
|
|
217
|
-
(
|
|
217
|
+
(g || h) && /* @__PURE__ */ t(me, { children: h ? "Set up" : ee ?? "Select Variable" })
|
|
218
218
|
] }),
|
|
219
219
|
oe && /* @__PURE__ */ t(
|
|
220
220
|
v,
|
|
@@ -226,7 +226,7 @@ const Ie = /.*\..*/, De = (o) => /\w+\[\d+\]/g.test(o), He = (o) => {
|
|
|
226
226
|
)
|
|
227
227
|
] }),
|
|
228
228
|
h && $ && !R ? /* @__PURE__ */ t(
|
|
229
|
-
|
|
229
|
+
ge,
|
|
230
230
|
{
|
|
231
231
|
variable: $,
|
|
232
232
|
onInsertVariable: (e) => {
|
|
@@ -264,6 +264,7 @@ const Ie = /.*\..*/, De = (o) => /\w+\[\d+\]/g.test(o), He = (o) => {
|
|
|
264
264
|
/* @__PURE__ */ t(
|
|
265
265
|
Be,
|
|
266
266
|
{
|
|
267
|
+
"data-test": "variable-recommended-toggle",
|
|
267
268
|
value: u,
|
|
268
269
|
onValueChange: async (e) => {
|
|
269
270
|
await z(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sources":["../../../../src/components/variable-picker-v3/Content.tsx"],"sourcesContent":["import BackIcon from '@src/assets/icons/arrow_back.svg';\nimport CrossIcon from '@src/assets/icons/cross.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { COLORS } from '@src/constants/Theme';\nimport { BikAccordion } from '../accordion';\nimport { IconButton } from '../icon-button';\nimport { Input } from '../input';\nimport { ListItem } from '../list-item';\nimport { Switch } from '../switch';\nimport { Tooltip } from '../tooltips';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '../TypographyStyle';\nimport { VariablePickerContext } from './context';\nimport { DefaultVariableContent } from './DefaultVariableContent';\nimport { highlightSearchText } from './highlightSearchText';\nimport {\n\tPickerType,\n\tSubHeader,\n\tVariablePickerV3Props,\n\tVariableV3,\n} from './model';\nimport NoResult from './NoResult';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\nimport { searchVariables } from './searchVariables';\nimport {\n\tBackHeader,\n\tContainer,\n\tHeaderWrapper,\n\tRecommendWrapper,\n} from './styles';\nimport SubHeaderItems, { renderTooltipBody } from './SubHeaderItems';\n\ntype Props = VariablePickerV3Props;\n\nconst variableRegex = /.*\\..*/;\nconst checkIfArray = (value: string) => {\n\tconst regex = /\\w+\\[\\d+\\]/g;\n\treturn regex.test(value);\n};\n\nconst matchVariable = (variable: VariableV3) => {\n\tif (variable.actualValue.match(variableRegex)) {\n\t\tconst path = variable.actualValue\n\t\t\t.replace('{{', '')\n\t\t\t.replace('}}', '')\n\t\t\t.split('.');\n\t\tlet evalVariableValue = path[0];\n\t\tpath.forEach((value, index) => {\n\t\t\tif (index === 0) return;\n\t\t\tconst isArray = checkIfArray(value);\n\t\t\tif (isArray) {\n\t\t\t\t// ex: event_memberships[0] -> ['event_memberships'][0]\n\t\t\t\tconst matches = value.match(/(\\w+)\\[(\\d+)\\]/);\n\t\t\t\tif (matches) {\n\t\t\t\t\tconst arrayName = matches[1];\n\t\t\t\t\tconst index = matches[2];\n\t\t\t\t\tevalVariableValue = evalVariableValue + `['${arrayName}'][${index}]`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevalVariableValue = evalVariableValue + `['${value}']`;\n\t\t\t}\n\t\t});\n\t\treturn evalVariableValue;\n\t} else {\n\t\tconst value = variable.actualValueEval\n\t\t\t? variable.actualValueEval\n\t\t\t: variable.actualValue;\n\t\treturn value;\n\t}\n};\n\nexport const VariablePickerContent: React.FC<Props> = (\n\tprops: VariablePickerV3Props,\n) => {\n\tconst {\n\t\tdata,\n\t\tonSelect,\n\t\tshowHeader,\n\t\tshowBackButton,\n\t\thideHeaderCross,\n\t\tonBackButtonClick,\n\t\tisEvaluationList,\n\t\tautoOpenFirst,\n\t\theaderText,\n\t\tcontentHeight,\n\t\tonDefaultVariableSelect,\n\t\tskipDefaultVariableContent,\n\t} = props;\n\n\tconst [variables, setVariables] = useState(data); // modified data after search\n\tconst [searchText, setSearchText] = useState<string>('');\n\tconst [subHeaderStack, setSubHeaderStack] = useState<any[]>([]); // push variable object after every level\n\tconst [searchedFrom, setSearchedFrom] = useState<string>(''); // from which level did the user search from\n\tconst [showRecommended, setShowRecommended] = useState<boolean>(false);\n\tconst [dataSource, setDataSource] = useState<any[]>([]); // for search, maintaining original copy\n\tconst [openDefaultVariablePanel, setOpenDefaultVariablePanel] =\n\t\tuseState(false);\n\tconst [chosenForDefault, setChosenForDefault] = useState<VariableV3 | null>();\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst scrollPositionStack = useRef<number[]>([]);\n\tconst shouldShowHeaderInsideCross =\n\t\topenDefaultVariablePanel &&\n\t\tprops.type === PickerType.EMBEDDED &&\n\t\t!hideHeaderCross;\n\n\t// useEffect(() => {\n\t// \t// TODO: based on new data, update existing variables if available\n\t// \tsetVariables(data);\n\t// }, [data]);\n\n\tuseEffect(() => {\n\t\thandleRecommendedChange(props.showRecommendedBar ?? true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tsetDataSource([subHeaderStack[subHeaderStack.length - 1]]);\n\t\t} else {\n\t\t\tsetDataSource(data);\n\t\t}\n\t}, [subHeaderStack]);\n\n\tconst handleBackClick = (e: any) => {\n\t\te.stopPropagation();\n\t\tlet _searchText = searchText;\n\t\tconst newSubHeaderStack = [...subHeaderStack];\n\t\tconst poppedElement = newSubHeaderStack.pop();\n\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t_searchText = ''; // so that search is not trigerred in the below code\n\t\t}\n\t\tconst savedScrollTop = scrollPositionStack.current.pop() ?? 0;\n\n\t\t// Use flushSync to force synchronous DOM update so scroll can be\n\t\t// restored immediately after the new content is rendered\n\t\tflushSync(() => {\n\t\t\tsetSubHeaderStack(newSubHeaderStack);\n\t\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t\tsetSearchText('');\n\t\t\t}\n\t\t\tif (_searchText.length > 0) {\n\t\t\t\t// maintain the search result when going back\n\t\t\t\tconst dataSource =\n\t\t\t\t\tnewSubHeaderStack.length > 0\n\t\t\t\t\t\t? [newSubHeaderStack[newSubHeaderStack.length - 1]]\n\t\t\t\t\t\t: data;\n\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t_searchText,\n\t\t\t\t\tdataSource,\n\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t);\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newSubHeaderStack.length > 0) {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t[newSubHeaderStack[newSubHeaderStack.length - 1].variables],\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables([\n\t\t\t\t\t\t\tnewSubHeaderStack[newSubHeaderStack.length - 1].variables,\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Restore scroll after accordion expand animation completes.\n\t\t// The BikAccordion uses a 250ms CSS transition on max-height when\n\t\t// autoOpen fires. We must wait for that to finish so the Container\n\t\t// has enough scrollHeight to scroll to the saved position.\n\t\tif (containerRef.current && savedScrollTop > 0) {\n\t\t\tconst el = containerRef.current;\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.scrollTo({ top: savedScrollTop, behavior: 'smooth' });\n\t\t\t}, 300);\n\t\t}\n\t};\n\n\tconst handleRecommendedChange = async (val) => {\n\t\tsetShowRecommended(val);\n\t\tif (val) {\n\t\t\tconst output = showOnlyRecommendedVariables(variables, subHeaderStack);\n\t\t\tsetVariables(output);\n\t\t} else {\n\t\t\tif (subHeaderStack.length > 0) {\n\t\t\t\t// dont apply search if not in the page where search started\n\t\t\t\tconst isInSearchStartPage =\n\t\t\t\t\tsearchedFrom == subHeaderStack[subHeaderStack.length - 1].displayName;\n\t\t\t\tif (searchText.length > 0 && isInSearchStartPage) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables([subHeaderStack[subHeaderStack.length - 1].variables]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (searchText.length > 0) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst calculateHeight = () => {\n\t\tif (contentHeight) {\n\t\t\treturn contentHeight;\n\t\t}\n\t\tlet pickerContentHeight = 131;\n\t\tif (!(props.showSearch ?? true)) {\n\t\t\tpickerContentHeight -= 52;\n\t\t}\n\t\tif (!(props.showRecommendedBar ?? true)) {\n\t\t\tpickerContentHeight -= 45;\n\t\t}\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tpickerContentHeight += 32;\n\t\t}\n\t\tif (props.showHeader || props.showBackButton) {\n\t\t\tpickerContentHeight += 40;\n\t\t}\n\t\treturn `calc(100% - ${pickerContentHeight}px)`;\n\t};\n\n\tconst onSearch = (text: string) => {\n\t\tif (!text) {\n\t\t\tsetSearchedFrom('');\n\t\t}\n\t\tconst result = searchVariables(text, dataSource, subHeaderStack);\n\t\tif (showRecommended) {\n\t\t\tconst recommended = showOnlyRecommendedVariables(result, subHeaderStack);\n\t\t\tsetVariables(recommended);\n\t\t} else {\n\t\t\tsetVariables(result);\n\t\t}\n\t\tsetSearchText(text);\n\t\tconst latestSubHeader =\n\t\t\tsubHeaderStack.length > 0\n\t\t\t\t? subHeaderStack[subHeaderStack.length - 1].displayName\n\t\t\t\t: 'home';\n\t\tsetSearchedFrom(latestSubHeader);\n\t};\n\n\tconst HeaderBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={16}\n\t\t\t\theight={16}\n\t\t\t\tstyle={{ display: 'flex', color: COLORS.content.primary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst GoBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={12}\n\t\t\t\theight={12}\n\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst onSelectingVariable = (variable: VariableV3) => {\n\t\tif (props.disabled) return;\n\t\tif (isEvaluationList) {\n\t\t\tconst evalVariableValue = matchVariable(variable as VariableV3);\n\t\t\tonSelect({\n\t\t\t\t...variable,\n\t\t\t\tactualValue: evalVariableValue,\n\t\t\t} as VariableV3);\n\t\t} else {\n\t\t\tif (variable.isDefaultValueSupported && !skipDefaultVariableContent) {\n\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(variable as VariableV3);\n\t\t}\n\t};\n\n\treturn (\n\t\t<VariablePickerContext.Provider\n\t\t\tvalue={{\n\t\t\t\tvariables,\n\t\t\t\tsearchText,\n\t\t\t\tsubHeaderStack,\n\t\t\t\tshowRecommended,\n\t\t\t\tsetSubHeaderStack,\n\t\t\t\tsetSearchText,\n\t\t\t\tsetVariables,\n\t\t\t\tsetShowRecommended,\n\t\t\t\tcontainerRef,\n\t\t\t\tscrollPositionStack,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\ttabIndex={-1}\n\t\t\t\tid=\"variable-picker-v3\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: 'white',\n\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\theight: '100%',\n\t\t\t\t\toutline: 'none',\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{(showHeader || showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t<HeaderWrapper openDefault={openDefaultVariablePanel}>\n\t\t\t\t\t\t<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n\t\t\t\t\t\t\t{(showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tIcon={HeaderBackIcon}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (openDefaultVariablePanel) {\n\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(false);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonBackButtonClick && onBackButtonClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(showHeader || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<TitleRegular>\n\t\t\t\t\t\t\t\t\t{openDefaultVariablePanel\n\t\t\t\t\t\t\t\t\t\t? 'Set up'\n\t\t\t\t\t\t\t\t\t\t: headerText ?? 'Select Variable'}\n\t\t\t\t\t\t\t\t</TitleRegular>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{shouldShowHeaderInsideCross && (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tstyle={{ color: '#212121' }}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\tonClick={() => props.onClose && props.onClose()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</HeaderWrapper>\n\t\t\t\t)}\n\t\t\t\t{openDefaultVariablePanel &&\n\t\t\t\tchosenForDefault &&\n\t\t\t\t!skipDefaultVariableContent ? (\n\t\t\t\t\t<DefaultVariableContent\n\t\t\t\t\t\tvariable={chosenForDefault}\n\t\t\t\t\t\tonInsertVariable={(updated) => {\n\t\t\t\t\t\t\tonSelect(updated);\n\t\t\t\t\t\t\tonDefaultVariableSelect?.(updated);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(props.showSearch ?? true) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(props.showRecommendedBar ?? true) && (\n\t\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</RecommendWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{subHeaderStack.length > 0 && (\n\t\t\t\t\t\t\t<BackHeader>\n\t\t\t\t\t\t\t\t<div style={{ position: 'absolute', left: 16 }}>\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tid=\"back-btn-v3\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex' }}\n\t\t\t\t\t\t\t\t\t\tIcon={GoBackIcon}\n\t\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{subHeaderStack[subHeaderStack.length - 1].displayName}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</BackHeader>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{variables.length > 0 ? (\n\t\t\t\t\t\t\t\t<Container ref={containerRef} height={calculateHeight()}>\n\t\t\t\t\t\t\t\t\t{variables.map((variable, index) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tvariable.displayName &&\n\t\t\t\t\t\t\t\t\t\t\ttypeof variable.variables !== 'undefined'\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={variable.displayName + showRecommended} // to re-render the component\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<BikAccordion\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarrowColor={COLORS.content.primary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoOpen={autoOpenFirst && index === 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaderPadding=\"12px 16px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TitleSmall\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentVariable={variable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={variable.variables}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.isDefaultValueSupported &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!skipDefaultVariableContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(variable as VariableV3);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</BikAccordion>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (variable.displayName) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody={renderTooltipBody(variable as VariableV3)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (variable as VariableV3)?.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(variable as VariableV3)?.selected ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<AddIcon width={14} height={14} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: COLORS.text.primary,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!variable.isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip body=\"Not Recommended\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex', marginTop: 2 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<WarnIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubText={variable.description || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable as unknown as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key: string]: SubHeader | VariableV3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable: VariableV3) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<NoResult height={calculateHeight()} searchText={searchText} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</VariablePickerContext.Provider>\n\t);\n};\n"],"names":["variableRegex","checkIfArray","value","matchVariable","variable","path","evalVariableValue","index","matches","arrayName","VariablePickerContent","props","data","onSelect","showHeader","showBackButton","hideHeaderCross","onBackButtonClick","isEvaluationList","autoOpenFirst","headerText","contentHeight","onDefaultVariableSelect","skipDefaultVariableContent","variables","setVariables","useState","searchText","setSearchText","subHeaderStack","setSubHeaderStack","searchedFrom","setSearchedFrom","showRecommended","setShowRecommended","dataSource","setDataSource","openDefaultVariablePanel","setOpenDefaultVariablePanel","chosenForDefault","setChosenForDefault","containerRef","useRef","scrollPositionStack","shouldShowHeaderInsideCross","PickerType","useEffect","handleRecommendedChange","handleBackClick","_searchText","newSubHeaderStack","poppedElement","savedScrollTop","flushSync","result","searchVariables","recommended","showOnlyRecommendedVariables","el","val","output","isInSearchStartPage","calculateHeight","pickerContentHeight","onSearch","text","latestSubHeader","HeaderBackIcon","jsx","BackIcon","COLORS","GoBackIcon","onSelectingVariable","VariablePickerContext","jsxs","HeaderWrapper","IconButton","TitleRegular","CrossIcon","DefaultVariableContent","updated","Fragment","Input","RecommendWrapper","BodySecondary","Switch","BackHeader","BodyCaption","Container","BikAccordion","TitleSmall","highlightSearchText","SubHeaderItems","Tooltip","renderTooltipBody","ListItem","AddIcon","WarnIcon","NoResult"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../../../src/components/variable-picker-v3/Content.tsx"],"sourcesContent":["import BackIcon from '@src/assets/icons/arrow_back.svg';\nimport CrossIcon from '@src/assets/icons/cross.svg';\nimport AddIcon from '@src/assets/icons/plus.svg';\nimport WarnIcon from '@src/assets/icons/triangle_error.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { COLORS } from '@src/constants/Theme';\nimport { BikAccordion } from '../accordion';\nimport { IconButton } from '../icon-button';\nimport { Input } from '../input';\nimport { ListItem } from '../list-item';\nimport { Switch } from '../switch';\nimport { Tooltip } from '../tooltips';\nimport {\n\tBodyCaption,\n\tBodySecondary,\n\tTitleRegular,\n\tTitleSmall,\n} from '../TypographyStyle';\nimport { VariablePickerContext } from './context';\nimport { DefaultVariableContent } from './DefaultVariableContent';\nimport { highlightSearchText } from './highlightSearchText';\nimport {\n\tPickerType,\n\tSubHeader,\n\tVariablePickerV3Props,\n\tVariableV3,\n} from './model';\nimport NoResult from './NoResult';\nimport { showOnlyRecommendedVariables } from './recommendVaribles';\nimport { searchVariables } from './searchVariables';\nimport {\n\tBackHeader,\n\tContainer,\n\tHeaderWrapper,\n\tRecommendWrapper,\n} from './styles';\nimport SubHeaderItems, { renderTooltipBody } from './SubHeaderItems';\n\ntype Props = VariablePickerV3Props;\n\nconst variableRegex = /.*\\..*/;\nconst checkIfArray = (value: string) => {\n\tconst regex = /\\w+\\[\\d+\\]/g;\n\treturn regex.test(value);\n};\n\nconst matchVariable = (variable: VariableV3) => {\n\tif (variable.actualValue.match(variableRegex)) {\n\t\tconst path = variable.actualValue\n\t\t\t.replace('{{', '')\n\t\t\t.replace('}}', '')\n\t\t\t.split('.');\n\t\tlet evalVariableValue = path[0];\n\t\tpath.forEach((value, index) => {\n\t\t\tif (index === 0) return;\n\t\t\tconst isArray = checkIfArray(value);\n\t\t\tif (isArray) {\n\t\t\t\t// ex: event_memberships[0] -> ['event_memberships'][0]\n\t\t\t\tconst matches = value.match(/(\\w+)\\[(\\d+)\\]/);\n\t\t\t\tif (matches) {\n\t\t\t\t\tconst arrayName = matches[1];\n\t\t\t\t\tconst index = matches[2];\n\t\t\t\t\tevalVariableValue = evalVariableValue + `['${arrayName}'][${index}]`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tevalVariableValue = evalVariableValue + `['${value}']`;\n\t\t\t}\n\t\t});\n\t\treturn evalVariableValue;\n\t} else {\n\t\tconst value = variable.actualValueEval\n\t\t\t? variable.actualValueEval\n\t\t\t: variable.actualValue;\n\t\treturn value;\n\t}\n};\n\nexport const VariablePickerContent: React.FC<Props> = (\n\tprops: VariablePickerV3Props,\n) => {\n\tconst {\n\t\tdata,\n\t\tonSelect,\n\t\tshowHeader,\n\t\tshowBackButton,\n\t\thideHeaderCross,\n\t\tonBackButtonClick,\n\t\tisEvaluationList,\n\t\tautoOpenFirst,\n\t\theaderText,\n\t\tcontentHeight,\n\t\tonDefaultVariableSelect,\n\t\tskipDefaultVariableContent,\n\t} = props;\n\n\tconst [variables, setVariables] = useState(data); // modified data after search\n\tconst [searchText, setSearchText] = useState<string>('');\n\tconst [subHeaderStack, setSubHeaderStack] = useState<any[]>([]); // push variable object after every level\n\tconst [searchedFrom, setSearchedFrom] = useState<string>(''); // from which level did the user search from\n\tconst [showRecommended, setShowRecommended] = useState<boolean>(false);\n\tconst [dataSource, setDataSource] = useState<any[]>([]); // for search, maintaining original copy\n\tconst [openDefaultVariablePanel, setOpenDefaultVariablePanel] =\n\t\tuseState(false);\n\tconst [chosenForDefault, setChosenForDefault] = useState<VariableV3 | null>();\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst scrollPositionStack = useRef<number[]>([]);\n\tconst shouldShowHeaderInsideCross =\n\t\topenDefaultVariablePanel &&\n\t\tprops.type === PickerType.EMBEDDED &&\n\t\t!hideHeaderCross;\n\n\t// useEffect(() => {\n\t// \t// TODO: based on new data, update existing variables if available\n\t// \tsetVariables(data);\n\t// }, [data]);\n\n\tuseEffect(() => {\n\t\thandleRecommendedChange(props.showRecommendedBar ?? true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tsetDataSource([subHeaderStack[subHeaderStack.length - 1]]);\n\t\t} else {\n\t\t\tsetDataSource(data);\n\t\t}\n\t}, [subHeaderStack]);\n\n\tconst handleBackClick = (e: any) => {\n\t\te.stopPropagation();\n\t\tlet _searchText = searchText;\n\t\tconst newSubHeaderStack = [...subHeaderStack];\n\t\tconst poppedElement = newSubHeaderStack.pop();\n\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t_searchText = ''; // so that search is not trigerred in the below code\n\t\t}\n\t\tconst savedScrollTop = scrollPositionStack.current.pop() ?? 0;\n\n\t\t// Use flushSync to force synchronous DOM update so scroll can be\n\t\t// restored immediately after the new content is rendered\n\t\tflushSync(() => {\n\t\t\tsetSubHeaderStack(newSubHeaderStack);\n\t\t\tif (poppedElement.displayName === searchedFrom) {\n\t\t\t\tsetSearchText('');\n\t\t\t}\n\t\t\tif (_searchText.length > 0) {\n\t\t\t\t// maintain the search result when going back\n\t\t\t\tconst dataSource =\n\t\t\t\t\tnewSubHeaderStack.length > 0\n\t\t\t\t\t\t? [newSubHeaderStack[newSubHeaderStack.length - 1]]\n\t\t\t\t\t\t: data;\n\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t_searchText,\n\t\t\t\t\tdataSource,\n\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t);\n\t\t\t\tif (showRecommended) {\n\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newSubHeaderStack.length > 0) {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\t[newSubHeaderStack[newSubHeaderStack.length - 1].variables],\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables([\n\t\t\t\t\t\t\tnewSubHeaderStack[newSubHeaderStack.length - 1].variables,\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (showRecommended) {\n\t\t\t\t\t\tconst recommended = showOnlyRecommendedVariables(\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\tnewSubHeaderStack,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetVariables(recommended);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetVariables(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Restore scroll after accordion expand animation completes.\n\t\t// The BikAccordion uses a 250ms CSS transition on max-height when\n\t\t// autoOpen fires. We must wait for that to finish so the Container\n\t\t// has enough scrollHeight to scroll to the saved position.\n\t\tif (containerRef.current && savedScrollTop > 0) {\n\t\t\tconst el = containerRef.current;\n\t\t\tsetTimeout(() => {\n\t\t\t\tel.scrollTo({ top: savedScrollTop, behavior: 'smooth' });\n\t\t\t}, 300);\n\t\t}\n\t};\n\n\tconst handleRecommendedChange = async (val) => {\n\t\tsetShowRecommended(val);\n\t\tif (val) {\n\t\t\tconst output = showOnlyRecommendedVariables(variables, subHeaderStack);\n\t\t\tsetVariables(output);\n\t\t} else {\n\t\t\tif (subHeaderStack.length > 0) {\n\t\t\t\t// dont apply search if not in the page where search started\n\t\t\t\tconst isInSearchStartPage =\n\t\t\t\t\tsearchedFrom == subHeaderStack[subHeaderStack.length - 1].displayName;\n\t\t\t\tif (searchText.length > 0 && isInSearchStartPage) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables([subHeaderStack[subHeaderStack.length - 1].variables]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (searchText.length > 0) {\n\t\t\t\t\tconst result = searchVariables(\n\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\tsubHeaderStack,\n\t\t\t\t\t);\n\t\t\t\t\tsetVariables(result);\n\t\t\t\t} else {\n\t\t\t\t\tsetVariables(data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst calculateHeight = () => {\n\t\tif (contentHeight) {\n\t\t\treturn contentHeight;\n\t\t}\n\t\tlet pickerContentHeight = 131;\n\t\tif (!(props.showSearch ?? true)) {\n\t\t\tpickerContentHeight -= 52;\n\t\t}\n\t\tif (!(props.showRecommendedBar ?? true)) {\n\t\t\tpickerContentHeight -= 45;\n\t\t}\n\t\tif (subHeaderStack.length > 0) {\n\t\t\tpickerContentHeight += 32;\n\t\t}\n\t\tif (props.showHeader || props.showBackButton) {\n\t\t\tpickerContentHeight += 40;\n\t\t}\n\t\treturn `calc(100% - ${pickerContentHeight}px)`;\n\t};\n\n\tconst onSearch = (text: string) => {\n\t\tif (!text) {\n\t\t\tsetSearchedFrom('');\n\t\t}\n\t\tconst result = searchVariables(text, dataSource, subHeaderStack);\n\t\tif (showRecommended) {\n\t\t\tconst recommended = showOnlyRecommendedVariables(result, subHeaderStack);\n\t\t\tsetVariables(recommended);\n\t\t} else {\n\t\t\tsetVariables(result);\n\t\t}\n\t\tsetSearchText(text);\n\t\tconst latestSubHeader =\n\t\t\tsubHeaderStack.length > 0\n\t\t\t\t? subHeaderStack[subHeaderStack.length - 1].displayName\n\t\t\t\t: 'home';\n\t\tsetSearchedFrom(latestSubHeader);\n\t};\n\n\tconst HeaderBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={16}\n\t\t\t\theight={16}\n\t\t\t\tstyle={{ display: 'flex', color: COLORS.content.primary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst GoBackIcon = () => {\n\t\treturn (\n\t\t\t<BackIcon\n\t\t\t\twidth={12}\n\t\t\t\theight={12}\n\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst onSelectingVariable = (variable: VariableV3) => {\n\t\tif (props.disabled) return;\n\t\tif (isEvaluationList) {\n\t\t\tconst evalVariableValue = matchVariable(variable as VariableV3);\n\t\t\tonSelect({\n\t\t\t\t...variable,\n\t\t\t\tactualValue: evalVariableValue,\n\t\t\t} as VariableV3);\n\t\t} else {\n\t\t\tif (variable.isDefaultValueSupported && !skipDefaultVariableContent) {\n\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(variable as VariableV3);\n\t\t}\n\t};\n\n\treturn (\n\t\t<VariablePickerContext.Provider\n\t\t\tvalue={{\n\t\t\t\tvariables,\n\t\t\t\tsearchText,\n\t\t\t\tsubHeaderStack,\n\t\t\t\tshowRecommended,\n\t\t\t\tsetSubHeaderStack,\n\t\t\t\tsetSearchText,\n\t\t\t\tsetVariables,\n\t\t\t\tsetShowRecommended,\n\t\t\t\tcontainerRef,\n\t\t\t\tscrollPositionStack,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\ttabIndex={-1}\n\t\t\t\tid=\"variable-picker-v3\"\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: 'white',\n\t\t\t\t\tborderRadius: 8,\n\t\t\t\t\theight: '100%',\n\t\t\t\t\toutline: 'none',\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{(showHeader || showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t<HeaderWrapper openDefault={openDefaultVariablePanel}>\n\t\t\t\t\t\t<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n\t\t\t\t\t\t\t{(showBackButton || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tIcon={HeaderBackIcon}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (openDefaultVariablePanel) {\n\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(false);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonBackButtonClick && onBackButtonClick();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(showHeader || openDefaultVariablePanel) && (\n\t\t\t\t\t\t\t\t<TitleRegular>\n\t\t\t\t\t\t\t\t\t{openDefaultVariablePanel\n\t\t\t\t\t\t\t\t\t\t? 'Set up'\n\t\t\t\t\t\t\t\t\t\t: headerText ?? 'Select Variable'}\n\t\t\t\t\t\t\t\t</TitleRegular>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{shouldShowHeaderInsideCross && (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tstyle={{ color: '#212121' }}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\tonClick={() => props.onClose && props.onClose()}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</HeaderWrapper>\n\t\t\t\t)}\n\t\t\t\t{openDefaultVariablePanel &&\n\t\t\t\tchosenForDefault &&\n\t\t\t\t!skipDefaultVariableContent ? (\n\t\t\t\t\t<DefaultVariableContent\n\t\t\t\t\t\tvariable={chosenForDefault}\n\t\t\t\t\t\tonInsertVariable={(updated) => {\n\t\t\t\t\t\t\tonSelect(updated);\n\t\t\t\t\t\t\tonDefaultVariableSelect?.(updated);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{(props.showSearch ?? true) && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpadding: '0 16px',\n\t\t\t\t\t\t\t\t\tpaddingTop: 12,\n\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.surface.subdued,\n\t\t\t\t\t\t\t\t\tborderTopLeftRadius: 8,\n\t\t\t\t\t\t\t\t\tborderTopRightRadius: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tid=\"search-bar-v3-picker\"\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\tprops.onSearchBlur && props.onSearchBlur(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvalue={searchText}\n\t\t\t\t\t\t\t\t\tnoKeyDownChange\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tonChangeText={onSearch}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{(props.showRecommendedBar ?? true) && (\n\t\t\t\t\t\t\t<RecommendWrapper>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ color: COLORS.content.secondary }}>\n\t\t\t\t\t\t\t\t\tOnly Recommended\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\tdata-test=\"variable-recommended-toggle\"\n\t\t\t\t\t\t\t\t\tvalue={showRecommended}\n\t\t\t\t\t\t\t\t\tonValueChange={async (val) => {\n\t\t\t\t\t\t\t\t\t\tawait handleRecommendedChange(val);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</RecommendWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{subHeaderStack.length > 0 && (\n\t\t\t\t\t\t\t<BackHeader>\n\t\t\t\t\t\t\t\t<div style={{ position: 'absolute', left: 16 }}>\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tid=\"back-btn-v3\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex' }}\n\t\t\t\t\t\t\t\t\t\tIcon={GoBackIcon}\n\t\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: COLORS.content.secondary,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{subHeaderStack[subHeaderStack.length - 1].displayName}\n\t\t\t\t\t\t\t\t</BodyCaption>\n\t\t\t\t\t\t\t</BackHeader>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{variables.length > 0 ? (\n\t\t\t\t\t\t\t\t<Container ref={containerRef} height={calculateHeight()}>\n\t\t\t\t\t\t\t\t\t{variables.map((variable, index) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tvariable.displayName &&\n\t\t\t\t\t\t\t\t\t\t\ttypeof variable.variables !== 'undefined'\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={variable.displayName + showRecommended} // to re-render the component\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<BikAccordion\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarrowColor={COLORS.content.primary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoOpen={autoOpenFirst && index === 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theaderPadding=\"12px 16px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theader={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<TitleSmall\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: COLORS.content.secondary }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentVariable={variable}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={variable.variables}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.isDefaultValueSupported &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!skipDefaultVariableContent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetChosenForDefault(variable);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenDefaultVariablePanel(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect(variable as VariableV3);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</BikAccordion>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (variable.displayName) {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody={renderTooltipBody(variable as VariableV3)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'readonly'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: (variable as VariableV3)?.selected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'selected'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tversion=\"2.0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleadingIcon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(variable as VariableV3)?.selected ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.disabled ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<AddIcon width={14} height={14} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomListItemLabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: 4,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<BodySecondary\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: COLORS.text.primary,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlightSearchText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!variable.isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Tooltip body=\"Not Recommended\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ display: 'flex', marginTop: 2 }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<WarnIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor={COLORS.content.secondary}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistItem={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: variable.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubText={variable.description || ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<SubHeaderItems\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={props.disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchText={searchText}\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariable={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariable as unknown as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[key: string]: SubHeader | VariableV3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={(variable: VariableV3) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelectingVariable(variable as VariableV3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<NoResult height={calculateHeight()} searchText={searchText} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</VariablePickerContext.Provider>\n\t);\n};\n"],"names":["variableRegex","checkIfArray","value","matchVariable","variable","path","evalVariableValue","index","matches","arrayName","VariablePickerContent","props","data","onSelect","showHeader","showBackButton","hideHeaderCross","onBackButtonClick","isEvaluationList","autoOpenFirst","headerText","contentHeight","onDefaultVariableSelect","skipDefaultVariableContent","variables","setVariables","useState","searchText","setSearchText","subHeaderStack","setSubHeaderStack","searchedFrom","setSearchedFrom","showRecommended","setShowRecommended","dataSource","setDataSource","openDefaultVariablePanel","setOpenDefaultVariablePanel","chosenForDefault","setChosenForDefault","containerRef","useRef","scrollPositionStack","shouldShowHeaderInsideCross","PickerType","useEffect","handleRecommendedChange","handleBackClick","_searchText","newSubHeaderStack","poppedElement","savedScrollTop","flushSync","result","searchVariables","recommended","showOnlyRecommendedVariables","el","val","output","isInSearchStartPage","calculateHeight","pickerContentHeight","onSearch","text","latestSubHeader","HeaderBackIcon","jsx","BackIcon","COLORS","GoBackIcon","onSelectingVariable","VariablePickerContext","jsxs","HeaderWrapper","IconButton","TitleRegular","CrossIcon","DefaultVariableContent","updated","Fragment","Input","RecommendWrapper","BodySecondary","Switch","BackHeader","BodyCaption","Container","BikAccordion","TitleSmall","highlightSearchText","SubHeaderItems","Tooltip","renderTooltipBody","ListItem","AddIcon","WarnIcon","NoResult"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs as u, jsx as d } from "react/jsx-runtime";
|
|
2
2
|
import { getMarkRange as Ee } from "../node_modules/@tiptap/core/dist/index.js";
|
|
3
|
-
import { useEditor as
|
|
4
|
-
import { forwardRef as
|
|
3
|
+
import { useEditor as Te, EditorContent as ee } from "@tiptap/react";
|
|
4
|
+
import { forwardRef as Ae, useState as x, useRef as a, useEffect as Ie, useImperativeHandle as Je } from "react";
|
|
5
5
|
import { BodyCaption as te } from "../components/TypographyStyle.js";
|
|
6
|
-
import { BikEditorShell as
|
|
6
|
+
import { BikEditorShell as Me, BikJsonHeader as Re, BikJsonBody as Le, BikJsonEmptyState as Oe, BikJsonError as Fe } from "./BikEditor.styles.js";
|
|
7
7
|
import { DEFAULT_FORMAT_STATE as ne } from "./BikEditor.types.js";
|
|
8
|
-
import { buildJsonCodeBlockHtml as je, buildSectionedContent as oe, normalizeHtml as i, extractActiveFormats as re, extractContent as se, getCodeBlockText as g, parseJson as p, extractBodyContent as ze, extractSectionContent as Ne, setCodeBlockText as
|
|
8
|
+
import { buildJsonCodeBlockHtml as je, buildSectionedContent as oe, normalizeHtml as i, extractActiveFormats as re, extractContent as se, getCodeBlockText as g, parseJson as p, extractBodyContent as ze, extractSectionContent as Ne, setCodeBlockText as v, findSectionEndPos as ie, findSectionStartPos as He, setSectionContentInEditor as I, insertInlineHtml as we } from "./BikEditor.utils.js";
|
|
9
9
|
import { buildExtensions as Pe } from "./extensions/buildExtensions.js";
|
|
10
10
|
import { LinkBubbleMenu as De } from "./floating/LinkBubbleMenu.js";
|
|
11
11
|
import qe from "../icons/BIK AI specific/WandSparkles.js";
|
|
@@ -14,10 +14,10 @@ import $e from "../icons/Actions/Common actions/Code.js";
|
|
|
14
14
|
import We from "../icons/Informational/General/Info.js";
|
|
15
15
|
function Ve(k) {
|
|
16
16
|
return Object.entries(k).map(
|
|
17
|
-
([
|
|
17
|
+
([b, C]) => `${b.replace(/([A-Z])/g, (y) => `-${y.toLowerCase()}`)}:${C}`
|
|
18
18
|
).join(";");
|
|
19
19
|
}
|
|
20
|
-
const _e = (k,
|
|
20
|
+
const _e = (k, b) => {
|
|
21
21
|
const {
|
|
22
22
|
initialContent: C,
|
|
23
23
|
sections: y,
|
|
@@ -32,10 +32,10 @@ const _e = (k, v) => {
|
|
|
32
32
|
slashCommands: S,
|
|
33
33
|
link: me,
|
|
34
34
|
onPaste: fe,
|
|
35
|
-
onReady:
|
|
36
|
-
onChange:
|
|
35
|
+
onReady: M,
|
|
36
|
+
onChange: R,
|
|
37
37
|
onSend: E,
|
|
38
|
-
onFocus:
|
|
38
|
+
onFocus: L,
|
|
39
39
|
onBlur: O,
|
|
40
40
|
onSelectionChange: F,
|
|
41
41
|
minHeight: ge,
|
|
@@ -45,19 +45,19 @@ const _e = (k, v) => {
|
|
|
45
45
|
editorClassName: j,
|
|
46
46
|
editorStyle: z,
|
|
47
47
|
renderJsonError: N
|
|
48
|
-
} = k, m = !!B?.jsonMode, [f, H] = x(null), [Se, w] = x(!1), [
|
|
48
|
+
} = k, m = !!B?.jsonMode, [f, H] = x(null), [Se, w] = x(!1), [T, P] = x(
|
|
49
49
|
m && !(C ?? "").trim()
|
|
50
50
|
), [ke, D] = x(!1), ye = m ? je(C ?? "") : y?.length ? oe(
|
|
51
51
|
i(C ?? ""),
|
|
52
52
|
y.map((e) => ({ ...e, content: i(e.content) }))
|
|
53
|
-
) : i(C ?? ""),
|
|
54
|
-
U.current =
|
|
55
|
-
const $ = a(
|
|
56
|
-
$.current =
|
|
53
|
+
) : i(C ?? ""), A = a([]), q = a(!1), U = a(M);
|
|
54
|
+
U.current = M;
|
|
55
|
+
const $ = a(R);
|
|
56
|
+
$.current = R;
|
|
57
57
|
const W = a(F);
|
|
58
58
|
W.current = F;
|
|
59
|
-
const V = a(ne), _ = a(
|
|
60
|
-
_.current =
|
|
59
|
+
const V = a(ne), _ = a(L);
|
|
60
|
+
_.current = L;
|
|
61
61
|
const Q = a(O);
|
|
62
62
|
Q.current = O;
|
|
63
63
|
const Z = a(E);
|
|
@@ -68,7 +68,7 @@ const _e = (k, v) => {
|
|
|
68
68
|
K.current = l?.teams ?? [];
|
|
69
69
|
const X = a(S?.items ?? []);
|
|
70
70
|
X.current = S?.items ?? [];
|
|
71
|
-
const n =
|
|
71
|
+
const n = Te({
|
|
72
72
|
extensions: Pe({
|
|
73
73
|
features: B,
|
|
74
74
|
placeholder: k.placeholder,
|
|
@@ -122,15 +122,15 @@ const _e = (k, v) => {
|
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
124
|
function s(e) {
|
|
125
|
-
n ? e(n) :
|
|
125
|
+
n ? e(n) : A.current.push(e);
|
|
126
126
|
}
|
|
127
127
|
Ie(() => {
|
|
128
|
-
if (n && (
|
|
128
|
+
if (n && (A.current.length > 0 && A.current.splice(0).forEach((t) => t(n)), q.current || (q.current = !0, U.current?.()), m)) {
|
|
129
129
|
const e = g(n), t = p(e);
|
|
130
130
|
H(t.valid ? null : t), P(!e.trim());
|
|
131
131
|
}
|
|
132
132
|
}, [n, m]), Je(
|
|
133
|
-
|
|
133
|
+
b,
|
|
134
134
|
() => ({
|
|
135
135
|
// ── Focus ────────────────────────────────────────────────────────
|
|
136
136
|
focus: (e) => s((t) => t.commands.focus(e)),
|
|
@@ -295,10 +295,10 @@ const _e = (k, v) => {
|
|
|
295
295
|
n && (t !== void 0 ? n.chain().focus().extendMarkRange("link").command(({ tr: o, state: r }) => {
|
|
296
296
|
const { from: c, to: h } = o.selection, Y = r.schema.marks.link;
|
|
297
297
|
if (!Y) return !1;
|
|
298
|
-
const
|
|
298
|
+
const ve = r.schema.text(t, [
|
|
299
299
|
Y.create({ href: e })
|
|
300
|
-
]),
|
|
301
|
-
return o.replaceWith(c, h, [
|
|
300
|
+
]), be = r.schema.text(" ");
|
|
301
|
+
return o.replaceWith(c, h, [ve, be]), !0;
|
|
302
302
|
}).run() : n.chain().focus().extendMarkRange("link").setLink({ href: e }).insertContent(" ").run());
|
|
303
303
|
},
|
|
304
304
|
updateLink: (e) => n?.chain().focus().extendMarkRange("link").setLink({ href: e }).run(),
|
|
@@ -306,6 +306,12 @@ const _e = (k, v) => {
|
|
|
306
306
|
insertEmoji: (e) => n?.chain().focus().insertContent(e).run(),
|
|
307
307
|
insertVariable: (e) => n?.chain().focus().insertContent(`{{${e}}}`).run(),
|
|
308
308
|
insertHtml: (e) => n?.commands.insertContent(i(e)),
|
|
309
|
+
openMentionMenu: (e = "@") => {
|
|
310
|
+
if (!n)
|
|
311
|
+
return;
|
|
312
|
+
const { to: t } = n.state.selection, o = t > 1 ? n.state.doc.textBetween(t - 1, t) : "", r = o !== "" && !/\s/.test(o);
|
|
313
|
+
n.chain().focus().setTextSelection(t).insertContent(r ? ` ${e}` : e).run();
|
|
314
|
+
},
|
|
309
315
|
undo: () => n?.chain().focus().undo().run(),
|
|
310
316
|
redo: () => n?.chain().focus().redo().run(),
|
|
311
317
|
canUndo: () => n?.can().undo() ?? !1,
|
|
@@ -317,16 +323,16 @@ const _e = (k, v) => {
|
|
|
317
323
|
// ── JSON body ─────────────────────────────────────────────────────
|
|
318
324
|
json: B?.jsonMode ? {
|
|
319
325
|
getText: () => n ? g(n) : "",
|
|
320
|
-
setText: (e) => s((t) =>
|
|
326
|
+
setText: (e) => s((t) => v(t, e)),
|
|
321
327
|
parse: () => p(n ? g(n) : ""),
|
|
322
328
|
isValid: () => p(n ? g(n) : "").valid,
|
|
323
329
|
format: (e = 2) => s((t) => {
|
|
324
330
|
const { valid: o, value: r } = p(g(t));
|
|
325
|
-
!o || r === null ||
|
|
331
|
+
!o || r === null || v(t, JSON.stringify(r, null, e));
|
|
326
332
|
}),
|
|
327
333
|
minify: () => s((e) => {
|
|
328
334
|
const { valid: t, value: o } = p(g(e));
|
|
329
|
-
!t || o === null ||
|
|
335
|
+
!t || o === null || v(e, JSON.stringify(o));
|
|
330
336
|
})
|
|
331
337
|
} : void 0
|
|
332
338
|
}),
|
|
@@ -336,12 +342,12 @@ const _e = (k, v) => {
|
|
|
336
342
|
const Be = () => {
|
|
337
343
|
if (!n) return;
|
|
338
344
|
const { valid: e, value: t } = p(g(n));
|
|
339
|
-
!e || t === null ||
|
|
345
|
+
!e || t === null || v(n, JSON.stringify(t, null, 2));
|
|
340
346
|
}, xe = () => {
|
|
341
347
|
n && (navigator.clipboard?.writeText(g(n)), w(!0), setTimeout(() => w(!1), 1500));
|
|
342
348
|
};
|
|
343
349
|
return n ? /* @__PURE__ */ u(
|
|
344
|
-
|
|
350
|
+
Me,
|
|
345
351
|
{
|
|
346
352
|
minHeight: ge,
|
|
347
353
|
maxHeight: he,
|
|
@@ -350,7 +356,7 @@ const _e = (k, v) => {
|
|
|
350
356
|
style: pe,
|
|
351
357
|
className: Ce,
|
|
352
358
|
children: [
|
|
353
|
-
m && /* @__PURE__ */ u(
|
|
359
|
+
m && /* @__PURE__ */ u(Re, { children: [
|
|
354
360
|
/* @__PURE__ */ d("span", { className: "bik-json-header-label", children: "JSON" }),
|
|
355
361
|
/* @__PURE__ */ u("div", { className: "bik-json-header-actions", children: [
|
|
356
362
|
/* @__PURE__ */ u(
|
|
@@ -358,7 +364,7 @@ const _e = (k, v) => {
|
|
|
358
364
|
{
|
|
359
365
|
type: "button",
|
|
360
366
|
onClick: Be,
|
|
361
|
-
disabled: !!f ||
|
|
367
|
+
disabled: !!f || T,
|
|
362
368
|
title: "Format JSON",
|
|
363
369
|
children: [
|
|
364
370
|
/* @__PURE__ */ d(qe, { size: 16 }),
|
|
@@ -371,7 +377,7 @@ const _e = (k, v) => {
|
|
|
371
377
|
{
|
|
372
378
|
type: "button",
|
|
373
379
|
onClick: xe,
|
|
374
|
-
disabled:
|
|
380
|
+
disabled: T,
|
|
375
381
|
title: "Copy JSON",
|
|
376
382
|
children: [
|
|
377
383
|
/* @__PURE__ */ d(Ue, { size: 16 }),
|
|
@@ -381,9 +387,9 @@ const _e = (k, v) => {
|
|
|
381
387
|
)
|
|
382
388
|
] })
|
|
383
389
|
] }),
|
|
384
|
-
m ? /* @__PURE__ */ u(
|
|
390
|
+
m ? /* @__PURE__ */ u(Le, { $error: !!f, children: [
|
|
385
391
|
/* @__PURE__ */ d(ee, { editor: n }),
|
|
386
|
-
|
|
392
|
+
T && !ke && /* @__PURE__ */ u(Oe, { "aria-hidden": !0, children: [
|
|
387
393
|
/* @__PURE__ */ d($e, { size: 20 }),
|
|
388
394
|
/* @__PURE__ */ d("span", { children: k.placeholder ?? "Type or paste JSON here" })
|
|
389
395
|
] })
|
|
@@ -405,7 +411,7 @@ const _e = (k, v) => {
|
|
|
405
411
|
]
|
|
406
412
|
}
|
|
407
413
|
) : null;
|
|
408
|
-
}, Qe =
|
|
414
|
+
}, Qe = Ae(
|
|
409
415
|
_e
|
|
410
416
|
);
|
|
411
417
|
Qe.displayName = "BikEditor";
|