@bikdotai/bik-component-library 0.0.874-beta.0 → 0.0.875-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/agent-builder/components/ConfigToolPanel.js +5 -5
- package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/cjs/components/agent-builder/components/HandoverMethodSection.js +2 -0
- package/dist/cjs/components/agent-builder/components/HandoverMethodSection.js.map +1 -0
- package/dist/cjs/components/agent-builder/components/UndoToast.js +1 -1
- package/dist/cjs/components/agent-builder/components/UndoToast.js.map +1 -1
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js +1 -1
- package/dist/cjs/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js +1 -1
- package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
- package/dist/cjs/components/input/Input.js +1 -1
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +57 -55
- package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
- package/dist/esm/components/agent-builder/components/HandoverMethodSection.d.ts +22 -0
- package/dist/esm/components/agent-builder/components/HandoverMethodSection.js +109 -0
- package/dist/esm/components/agent-builder/components/HandoverMethodSection.js.map +1 -0
- package/dist/esm/components/agent-builder/components/UndoToast.js +6 -7
- package/dist/esm/components/agent-builder/components/UndoToast.js.map +1 -1
- package/dist/esm/components/agent-builder/index.d.ts +3 -1
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.d.ts +3 -2
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js +31 -117
- package/dist/esm/components/agent-builder/steps/Step4HandoverRules.js.map +1 -1
- package/dist/esm/components/dropdown/Dropdown.js +14 -12
- package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/input/Input.js +40 -38
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.model.d.ts +3 -0
- package/dist/esm/index.js +318 -314
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as r, Fragment as W, jsxs as k } from "react/jsx-runtime";
|
|
2
|
-
import { useState as x, useRef as J, useEffect as
|
|
2
|
+
import { useState as x, useRef as J, useEffect as O } from "react";
|
|
3
3
|
import { COLORS as i, BASE_COLORS as K } from "../../constants/Theme.js";
|
|
4
4
|
import Q from "../../assets/icons/chevronDown.svg.js";
|
|
5
5
|
import { InputStyleContext as X } from "../input/context/InputStyleProvider.js";
|
|
@@ -7,7 +7,7 @@ import Y from "./ChipInput.js";
|
|
|
7
7
|
import { DropdownPopover as Z } from "./DropdownPopover/index.js";
|
|
8
8
|
import { getSelectedOptionsAsText as $ } from "./OpenedDropdown/utils/iterationOnOptions.js";
|
|
9
9
|
import { Input as H } from "../input/Input.js";
|
|
10
|
-
function
|
|
10
|
+
function E() {
|
|
11
11
|
}
|
|
12
12
|
const D = ({
|
|
13
13
|
placeHolder: s,
|
|
@@ -20,7 +20,7 @@ const D = ({
|
|
|
20
20
|
placeHolderHeight: y,
|
|
21
21
|
showPlaceholderWhenSelected: A = !1,
|
|
22
22
|
inputStyle: R = {},
|
|
23
|
-
inputType:
|
|
23
|
+
inputType: C = "default",
|
|
24
24
|
onDeleteChip: T,
|
|
25
25
|
truncatedText: L,
|
|
26
26
|
showLeadingIconInPlaceholder: V = !1,
|
|
@@ -31,13 +31,13 @@ const D = ({
|
|
|
31
31
|
onDropdownVisbilityChange: F,
|
|
32
32
|
...t
|
|
33
33
|
}) => {
|
|
34
|
-
const [h, B] = x(!1), [
|
|
34
|
+
const [h, B] = x(!1), [S, I] = x(!1), n = b ?? "default", N = J(), [c, f] = x(
|
|
35
35
|
l ?? []
|
|
36
36
|
);
|
|
37
37
|
function U(e) {
|
|
38
38
|
Array.isArray(e) ? f([...e]) : f([e]), M?.(e);
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
O(() => {
|
|
41
41
|
const e = [];
|
|
42
42
|
t?.options?.forEach((m) => {
|
|
43
43
|
m.options ? m.options.forEach((v) => {
|
|
@@ -47,7 +47,7 @@ const D = ({
|
|
|
47
47
|
});
|
|
48
48
|
}) : m.selected && e.push(m);
|
|
49
49
|
}), f([...e]);
|
|
50
|
-
}, [t.options]),
|
|
50
|
+
}, [t.options]), O(() => {
|
|
51
51
|
l && f([...l]);
|
|
52
52
|
}, [l]);
|
|
53
53
|
const _ = $(c), q = A ? s : _ ?? s ?? "Select an option", g = t.buttonWidth, p = g ?? t.width ?? "100%", G = t.dropdownWidth ?? p;
|
|
@@ -62,11 +62,11 @@ const D = ({
|
|
|
62
62
|
zIndex: 1,
|
|
63
63
|
cursor: "pointer",
|
|
64
64
|
padding: n === "x-small" ? "4px 8px" : "6px 8px",
|
|
65
|
-
backgroundColor: o && a ? i.background.base : t.version === "3.0" ? h ||
|
|
65
|
+
backgroundColor: o && a ? i.background.base : t.version === "3.0" ? h || S ? i.surface.hovered : i.surface.standard : u && d !== void 0 ? K.positive[100] : (
|
|
66
66
|
// The hover wrapper also contains the popover, so while the
|
|
67
67
|
// dropdown is open, hovering an option would grey the input
|
|
68
68
|
// — only show hover feedback while closed.
|
|
69
|
-
|
|
69
|
+
S && !h ? i.background.inactive : i.surface.standard
|
|
70
70
|
),
|
|
71
71
|
transition: "background-color 0.3s ease",
|
|
72
72
|
...R
|
|
@@ -96,7 +96,7 @@ const D = ({
|
|
|
96
96
|
},
|
|
97
97
|
width: G,
|
|
98
98
|
children: [
|
|
99
|
-
|
|
99
|
+
C == "default" && /* @__PURE__ */ r(
|
|
100
100
|
H,
|
|
101
101
|
{
|
|
102
102
|
version: t.version,
|
|
@@ -107,7 +107,9 @@ const D = ({
|
|
|
107
107
|
errorMessage: t.error,
|
|
108
108
|
variant: n,
|
|
109
109
|
placeholder: s ?? "Select an option",
|
|
110
|
-
onChangeText:
|
|
110
|
+
onChangeText: E,
|
|
111
|
+
readOnly: !0,
|
|
112
|
+
autoComplete: "off",
|
|
111
113
|
leftIcon: V && c[0]?.leadingIcon ? {
|
|
112
114
|
icon: () => /* @__PURE__ */ r(W, { children: c[0]?.leadingIcon })
|
|
113
115
|
} : void 0,
|
|
@@ -126,7 +128,7 @@ const D = ({
|
|
|
126
128
|
style: {
|
|
127
129
|
transform: h ? "rotate(180deg)" : "rotate(0deg)"
|
|
128
130
|
},
|
|
129
|
-
onClick:
|
|
131
|
+
onClick: E,
|
|
130
132
|
width: n === "x-small" ? 16 : n === "small" ? 20 : 24,
|
|
131
133
|
height: n === "x-small" ? 16 : n === "small" ? 20 : 24,
|
|
132
134
|
color: u ? i.content.positive : i.content.primary
|
|
@@ -139,7 +141,7 @@ const D = ({
|
|
|
139
141
|
truncateText: L ?? !0
|
|
140
142
|
}
|
|
141
143
|
),
|
|
142
|
-
|
|
144
|
+
C == "chip" && /* @__PURE__ */ r(
|
|
143
145
|
Y,
|
|
144
146
|
{
|
|
145
147
|
placeholder: s ?? "Select options",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../../src/components/dropdown/Dropdown.tsx"],"sourcesContent":["import React, { Ref, useEffect, useRef, useState } from 'react';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\nimport DownIcon from '../../assets/icons/chevronDown.svg';\nimport { Input } from '../input';\nimport { InputStyleContext } from '../input/context/InputStyleProvider';\nimport ChipInput from './ChipInput';\nimport { DropdownPopover } from './DropdownPopover';\nimport { getSelectedOptionsAsText } from './OpenedDropdown/utils/iterationOnOptions';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from './type';\n\nexport type DropdownProps = OpenDropdownProps & {\n\tplaceHolder?: string;\n\tsize?: 'default' | 'small' | 'x-small';\n\tdisabled?: boolean;\n\t/** When disabled, render a solid grey box (background.base) with secondary text and no opacity wash. */\n\tsolidDisabled?: boolean;\n\tnoErrorHint?: boolean;\n\tbuttonWidth?: string;\n\tplaceHolderHeight?: string;\n\tshowPlaceholderWhenSelected?: boolean;\n\tinputStyle?: React.CSSProperties;\n\tinputType?: 'chip' | 'default';\n\tonDeleteChip?: (chip: SingleOption) => void;\n\ttruncatedText?: boolean;\n\t'data-test'?: string;\n\tshowLeadingIconInPlaceholder?: boolean;\n\tshowTrailingIconPlaceholder?: boolean;\n\tshowLabelsOnMoreHover?: boolean;\n\tbackgroundColor?: string;\n\tvalue?: string;\n\tshowSelected?: boolean;\n\t/** Fired when the dropdown opens/closes. Runs alongside internal open state. */\n\tonDropdownVisbilityChange?: (isOpen: boolean) => void;\n};\n\nfunction noop() {\n\t/** empty */\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n\tplaceHolder,\n\tsize,\n\tonSelect,\n\tdefaultOptions,\n\tdisabled,\n\tsolidDisabled,\n\tnoErrorHint,\n\tplaceHolderHeight,\n\tshowPlaceholderWhenSelected = false,\n\tinputStyle = {},\n\tinputType = 'default',\n\tonDeleteChip,\n\ttruncatedText,\n\tshowLeadingIconInPlaceholder = false,\n\tshowTrailingIconPlaceholder = false,\n\tshowLabelsOnMoreHover = false,\n\tvalue,\n\tshowSelected = false,\n\tonDropdownVisbilityChange,\n\t...openDropdownProps\n}) => {\n\tconst [isDropdownOpened, setDropdownOpenFlag] = useState(false);\n\tconst [isHovering, setIsHovering] = useState(false);\n\tconst sizeToUse = size ?? 'default';\n\tconst dropdownVisibilityRef = useRef<{\n\t\topenDropdown: boolean;\n\t}>();\n\tconst [selectedOption, setSelectedOption] = useState<DropdownOption[]>(\n\t\tdefaultOptions ?? [],\n\t);\n\tfunction handleSelection(option: DropdownOption | DropdownOption[]) {\n\t\tif (Array.isArray(option)) {\n\t\t\tsetSelectedOption([...option]);\n\t\t} else {\n\t\t\tsetSelectedOption([...[option]]);\n\t\t}\n\t\tonSelect?.(option);\n\t}\n\n\tuseEffect(() => {\n\t\tconst flatSelectedOption: SingleOption[] = [];\n\t\topenDropdownProps?.options?.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t(option as GroupedOption).options.forEach((op) => {\n\t\t\t\t\tif (op.selected) {\n\t\t\t\t\t\tflatSelectedOption.push({\n\t\t\t\t\t\t\t...op,\n\t\t\t\t\t\t\tlabel: op.label,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif ((option as SingleOption).selected) {\n\t\t\t\t\tflatSelectedOption.push(option as SingleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetSelectedOption([...flatSelectedOption]);\n\t}, [openDropdownProps.options]);\n\n\tuseEffect(() => {\n\t\tif (defaultOptions) {\n\t\t\tsetSelectedOption([...defaultOptions]);\n\t\t}\n\t}, [defaultOptions]);\n\n\tconst textVal = getSelectedOptionsAsText(selectedOption);\n\tconst displayText = showPlaceholderWhenSelected\n\t\t? placeHolder\n\t\t: textVal ?? placeHolder ?? 'Select an option';\n\n\tconst configuredMaxWidth = openDropdownProps.buttonWidth;\n\n\t// Shared width for the input wrapper and dropdown popover\n\tconst inputWidth = configuredMaxWidth ?? openDropdownProps.width ?? '100%';\n\n\t// Width passed to dropdown popover — matches input box width\n\tconst dropdownWidth = openDropdownProps.dropdownWidth ?? inputWidth;\n\n\treturn (\n\t\t<>\n\t\t\t<InputStyleContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\tInputWrapper: {\n\t\t\t\t\t\theight: placeHolderHeight\n\t\t\t\t\t\t\t? placeHolderHeight\n\t\t\t\t\t\t\t: sizeToUse === 'x-small'\n\t\t\t\t\t\t\t? 24\n\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t? 32\n\t\t\t\t\t\t\t: 48,\n\t\t\t\t\t\twidth: inputWidth,\n\t\t\t\t\t\t...(configuredMaxWidth ? { maxWidth: configuredMaxWidth } : {}),\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tpadding: sizeToUse === 'x-small' ? '4px 8px' : '6px 8px',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t? COLORS.background.base\n\t\t\t\t\t\t\t\t: openDropdownProps.version === '3.0'\n\t\t\t\t\t\t\t\t? isDropdownOpened || isHovering\n\t\t\t\t\t\t\t\t\t? COLORS.surface.hovered\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? BASE_COLORS.positive['100']\n\t\t\t\t\t\t\t\t: // The hover wrapper also contains the popover, so while the\n\t\t\t\t\t\t\t\t// dropdown is open, hovering an option would grey the input\n\t\t\t\t\t\t\t\t// — only show hover feedback while closed.\n\t\t\t\t\t\t\t\tisHovering && !isDropdownOpened\n\t\t\t\t\t\t\t\t? COLORS.background.inactive\n\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\ttransition: 'background-color 0.3s ease',\n\t\t\t\t\t\t...inputStyle,\n\t\t\t\t\t},\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tminHeight: '100%',\n\t\t\t\t\t\tmaxWidth: '100%',\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t? COLORS.content.secondary\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tonMouseEnter={() => setIsHovering(true)}\n\t\t\t\t\tonMouseLeave={() => setIsHovering(false)}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\topenDropdownProps.width\n\t\t\t\t\t\t\t? { width: openDropdownProps.width }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownPopover\n\t\t\t\t\t\tdata-test={openDropdownProps['data-test']}\n\t\t\t\t\t\tref={\n\t\t\t\t\t\t\tdropdownVisibilityRef as Ref<{\n\t\t\t\t\t\t\t\topenDropdown: boolean;\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={handleSelection}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t{...openDropdownProps}\n\t\t\t\t\t\tonDropdownVisbilityChange={(isOpen) => {\n\t\t\t\t\t\t\t// Keep the internal open flag (carat/open styling) AND forward\n\t\t\t\t\t\t\t// to a consumer-provided handler so callers can react to open state.\n\t\t\t\t\t\t\tsetDropdownOpenFlag(isOpen);\n\t\t\t\t\t\t\tonDropdownVisbilityChange?.(isOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\twidth={dropdownWidth}\n\t\t\t\t\t>\n\t\t\t\t\t\t{inputType == 'default' && (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tversion={openDropdownProps.version}\n\t\t\t\t\t\t\t\tnoErrorHint={noErrorHint}\n\t\t\t\t\t\t\t\tstate={disabled ? 'disabled' : 'none'}\n\t\t\t\t\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\t\t\t\t\tvalue={value === undefined ? displayText : value}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tvariant={sizeToUse}\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select an option'}\n\t\t\t\t\t\t\t\tonChangeText={noop}\n\t\t\t\t\t\t\t\tleftIcon={\n\t\t\t\t\t\t\t\t\tshowLeadingIconInPlaceholder && selectedOption[0]?.leadingIcon\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\ticon: () => <>{selectedOption[0]?.leadingIcon}</>,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trightIcon={{\n\t\t\t\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\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}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{showTrailingIconPlaceholder &&\n\t\t\t\t\t\t\t\t\t\t\t\t(selectedOption[0] as SingleOption)?.trailingIcon}\n\t\t\t\t\t\t\t\t\t\t\t<DownIcon\n\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\ttransform: isDropdownOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'rotate(180deg)'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'rotate(0deg)',\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\tonClick={noop}\n\t\t\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\theight={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\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</div>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttruncateText={truncatedText ?? true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{inputType == 'chip' && (\n\t\t\t\t\t\t\t<ChipInput\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select options'}\n\t\t\t\t\t\t\t\tplaceholderColor={\n\t\t\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t\t\t? COLORS.content.secondary\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchips={selectedOption as SingleOption[]}\n\t\t\t\t\t\t\t\tonDeleteChip={(chip) => {\n\t\t\t\t\t\t\t\t\tonDeleteChip?.(chip);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tisDropdownOpened={isDropdownOpened}\n\t\t\t\t\t\t\t\tsizeToUse={sizeToUse}\n\t\t\t\t\t\t\t\tcontainerStyle={{\n\t\t\t\t\t\t\t\t\twidth: openDropdownProps.width ?? '100%',\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t...(disabled && solidDisabled\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.background.base,\n\t\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\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}}\n\t\t\t\t\t\t\t\tshowLabelsOnMoreHover={showLabelsOnMoreHover}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownPopover>\n\t\t\t\t</div>\n\t\t\t</InputStyleContext.Provider>\n\t\t</>\n\t);\n};\n\nDropdown.displayName = 'Dropdown';\n"],"names":["noop","Dropdown","placeHolder","size","onSelect","defaultOptions","disabled","solidDisabled","noErrorHint","placeHolderHeight","showPlaceholderWhenSelected","inputStyle","inputType","onDeleteChip","truncatedText","showLeadingIconInPlaceholder","showTrailingIconPlaceholder","showLabelsOnMoreHover","value","showSelected","onDropdownVisbilityChange","openDropdownProps","isDropdownOpened","setDropdownOpenFlag","useState","isHovering","setIsHovering","sizeToUse","dropdownVisibilityRef","useRef","selectedOption","setSelectedOption","handleSelection","option","useEffect","flatSelectedOption","op","textVal","getSelectedOptionsAsText","displayText","configuredMaxWidth","inputWidth","dropdownWidth","jsx","Fragment","InputStyleContext","COLORS","BASE_COLORS","jsxs","DropdownPopover","isOpen","Input","DownIcon","ChipInput","chip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../../src/components/dropdown/Dropdown.tsx"],"sourcesContent":["import React, { Ref, useEffect, useRef, useState } from 'react';\nimport { BASE_COLORS, COLORS } from '@src/constants/Theme';\nimport DownIcon from '../../assets/icons/chevronDown.svg';\nimport { Input } from '../input';\nimport { InputStyleContext } from '../input/context/InputStyleProvider';\nimport ChipInput from './ChipInput';\nimport { DropdownPopover } from './DropdownPopover';\nimport { getSelectedOptionsAsText } from './OpenedDropdown/utils/iterationOnOptions';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from './type';\n\nexport type DropdownProps = OpenDropdownProps & {\n\tplaceHolder?: string;\n\tsize?: 'default' | 'small' | 'x-small';\n\tdisabled?: boolean;\n\t/** When disabled, render a solid grey box (background.base) with secondary text and no opacity wash. */\n\tsolidDisabled?: boolean;\n\tnoErrorHint?: boolean;\n\tbuttonWidth?: string;\n\tplaceHolderHeight?: string;\n\tshowPlaceholderWhenSelected?: boolean;\n\tinputStyle?: React.CSSProperties;\n\tinputType?: 'chip' | 'default';\n\tonDeleteChip?: (chip: SingleOption) => void;\n\ttruncatedText?: boolean;\n\t'data-test'?: string;\n\tshowLeadingIconInPlaceholder?: boolean;\n\tshowTrailingIconPlaceholder?: boolean;\n\tshowLabelsOnMoreHover?: boolean;\n\tbackgroundColor?: string;\n\tvalue?: string;\n\tshowSelected?: boolean;\n\t/** Fired when the dropdown opens/closes. Runs alongside internal open state. */\n\tonDropdownVisbilityChange?: (isOpen: boolean) => void;\n};\n\nfunction noop() {\n\t/** empty */\n}\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n\tplaceHolder,\n\tsize,\n\tonSelect,\n\tdefaultOptions,\n\tdisabled,\n\tsolidDisabled,\n\tnoErrorHint,\n\tplaceHolderHeight,\n\tshowPlaceholderWhenSelected = false,\n\tinputStyle = {},\n\tinputType = 'default',\n\tonDeleteChip,\n\ttruncatedText,\n\tshowLeadingIconInPlaceholder = false,\n\tshowTrailingIconPlaceholder = false,\n\tshowLabelsOnMoreHover = false,\n\tvalue,\n\tshowSelected = false,\n\tonDropdownVisbilityChange,\n\t...openDropdownProps\n}) => {\n\tconst [isDropdownOpened, setDropdownOpenFlag] = useState(false);\n\tconst [isHovering, setIsHovering] = useState(false);\n\tconst sizeToUse = size ?? 'default';\n\tconst dropdownVisibilityRef = useRef<{\n\t\topenDropdown: boolean;\n\t}>();\n\tconst [selectedOption, setSelectedOption] = useState<DropdownOption[]>(\n\t\tdefaultOptions ?? [],\n\t);\n\tfunction handleSelection(option: DropdownOption | DropdownOption[]) {\n\t\tif (Array.isArray(option)) {\n\t\t\tsetSelectedOption([...option]);\n\t\t} else {\n\t\t\tsetSelectedOption([...[option]]);\n\t\t}\n\t\tonSelect?.(option);\n\t}\n\n\tuseEffect(() => {\n\t\tconst flatSelectedOption: SingleOption[] = [];\n\t\topenDropdownProps?.options?.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t(option as GroupedOption).options.forEach((op) => {\n\t\t\t\t\tif (op.selected) {\n\t\t\t\t\t\tflatSelectedOption.push({\n\t\t\t\t\t\t\t...op,\n\t\t\t\t\t\t\tlabel: op.label,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif ((option as SingleOption).selected) {\n\t\t\t\t\tflatSelectedOption.push(option as SingleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tsetSelectedOption([...flatSelectedOption]);\n\t}, [openDropdownProps.options]);\n\n\tuseEffect(() => {\n\t\tif (defaultOptions) {\n\t\t\tsetSelectedOption([...defaultOptions]);\n\t\t}\n\t}, [defaultOptions]);\n\n\tconst textVal = getSelectedOptionsAsText(selectedOption);\n\tconst displayText = showPlaceholderWhenSelected\n\t\t? placeHolder\n\t\t: textVal ?? placeHolder ?? 'Select an option';\n\n\tconst configuredMaxWidth = openDropdownProps.buttonWidth;\n\n\t// Shared width for the input wrapper and dropdown popover\n\tconst inputWidth = configuredMaxWidth ?? openDropdownProps.width ?? '100%';\n\n\t// Width passed to dropdown popover — matches input box width\n\tconst dropdownWidth = openDropdownProps.dropdownWidth ?? inputWidth;\n\n\treturn (\n\t\t<>\n\t\t\t<InputStyleContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\tInputWrapper: {\n\t\t\t\t\t\theight: placeHolderHeight\n\t\t\t\t\t\t\t? placeHolderHeight\n\t\t\t\t\t\t\t: sizeToUse === 'x-small'\n\t\t\t\t\t\t\t? 24\n\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t? 32\n\t\t\t\t\t\t\t: 48,\n\t\t\t\t\t\twidth: inputWidth,\n\t\t\t\t\t\t...(configuredMaxWidth ? { maxWidth: configuredMaxWidth } : {}),\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\tpadding: sizeToUse === 'x-small' ? '4px 8px' : '6px 8px',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t? COLORS.background.base\n\t\t\t\t\t\t\t\t: openDropdownProps.version === '3.0'\n\t\t\t\t\t\t\t\t? isDropdownOpened || isHovering\n\t\t\t\t\t\t\t\t\t? COLORS.surface.hovered\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? BASE_COLORS.positive['100']\n\t\t\t\t\t\t\t\t: // The hover wrapper also contains the popover, so while the\n\t\t\t\t\t\t\t\t// dropdown is open, hovering an option would grey the input\n\t\t\t\t\t\t\t\t// — only show hover feedback while closed.\n\t\t\t\t\t\t\t\tisHovering && !isDropdownOpened\n\t\t\t\t\t\t\t\t? COLORS.background.inactive\n\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\ttransition: 'background-color 0.3s ease',\n\t\t\t\t\t\t...inputStyle,\n\t\t\t\t\t},\n\t\t\t\t\tinput: {\n\t\t\t\t\t\tminHeight: '100%',\n\t\t\t\t\t\tmaxWidth: '100%',\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t? COLORS.content.secondary\n\t\t\t\t\t\t\t\t: showSelected && value !== undefined\n\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tonMouseEnter={() => setIsHovering(true)}\n\t\t\t\t\tonMouseLeave={() => setIsHovering(false)}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\topenDropdownProps.width\n\t\t\t\t\t\t\t? { width: openDropdownProps.width }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownPopover\n\t\t\t\t\t\tdata-test={openDropdownProps['data-test']}\n\t\t\t\t\t\tref={\n\t\t\t\t\t\t\tdropdownVisibilityRef as Ref<{\n\t\t\t\t\t\t\t\topenDropdown: boolean;\n\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={handleSelection}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t{...openDropdownProps}\n\t\t\t\t\t\tonDropdownVisbilityChange={(isOpen) => {\n\t\t\t\t\t\t\t// Keep the internal open flag (carat/open styling) AND forward\n\t\t\t\t\t\t\t// to a consumer-provided handler so callers can react to open state.\n\t\t\t\t\t\t\tsetDropdownOpenFlag(isOpen);\n\t\t\t\t\t\t\tonDropdownVisbilityChange?.(isOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\twidth={dropdownWidth}\n\t\t\t\t\t>\n\t\t\t\t\t\t{inputType == 'default' && (\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tversion={openDropdownProps.version}\n\t\t\t\t\t\t\t\tnoErrorHint={noErrorHint}\n\t\t\t\t\t\t\t\tstate={disabled ? 'disabled' : 'none'}\n\t\t\t\t\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\t\t\t\t\tvalue={value === undefined ? displayText : value}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tvariant={sizeToUse}\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select an option'}\n\t\t\t\t\t\t\t\tonChangeText={noop}\n\t\t\t\t\t\t\t\t// Display-only box (onChangeText is noop) — readOnly keeps\n\t\t\t\t\t\t\t\t// browser autofill from writing an address into it.\n\t\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\tleftIcon={\n\t\t\t\t\t\t\t\t\tshowLeadingIconInPlaceholder && selectedOption[0]?.leadingIcon\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\ticon: () => <>{selectedOption[0]?.leadingIcon}</>,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trightIcon={{\n\t\t\t\t\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\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}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{showTrailingIconPlaceholder &&\n\t\t\t\t\t\t\t\t\t\t\t\t(selectedOption[0] as SingleOption)?.trailingIcon}\n\t\t\t\t\t\t\t\t\t\t\t<DownIcon\n\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\ttransform: isDropdownOpened\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'rotate(180deg)'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'rotate(0deg)',\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\tonClick={noop}\n\t\t\t\t\t\t\t\t\t\t\t\twidth={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\theight={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsizeToUse === 'x-small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 16\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: sizeToUse === 'small'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 20\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 24\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\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.positive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: COLORS.content.primary\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</div>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttruncateText={truncatedText ?? true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{inputType == 'chip' && (\n\t\t\t\t\t\t\t<ChipInput\n\t\t\t\t\t\t\t\tplaceholder={placeHolder ?? 'Select options'}\n\t\t\t\t\t\t\t\tplaceholderColor={\n\t\t\t\t\t\t\t\t\tdisabled && solidDisabled\n\t\t\t\t\t\t\t\t\t\t? COLORS.content.secondary\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchips={selectedOption as SingleOption[]}\n\t\t\t\t\t\t\t\tonDeleteChip={(chip) => {\n\t\t\t\t\t\t\t\t\tonDeleteChip?.(chip);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terrorMessage={openDropdownProps.error}\n\t\t\t\t\t\t\t\tisDropdownOpened={isDropdownOpened}\n\t\t\t\t\t\t\t\tsizeToUse={sizeToUse}\n\t\t\t\t\t\t\t\tcontainerStyle={{\n\t\t\t\t\t\t\t\t\twidth: openDropdownProps.width ?? '100%',\n\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t...(disabled && solidDisabled\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: COLORS.background.base,\n\t\t\t\t\t\t\t\t\t\t\t\tpointerEvents: 'none',\n\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}}\n\t\t\t\t\t\t\t\tshowLabelsOnMoreHover={showLabelsOnMoreHover}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownPopover>\n\t\t\t\t</div>\n\t\t\t</InputStyleContext.Provider>\n\t\t</>\n\t);\n};\n\nDropdown.displayName = 'Dropdown';\n"],"names":["noop","Dropdown","placeHolder","size","onSelect","defaultOptions","disabled","solidDisabled","noErrorHint","placeHolderHeight","showPlaceholderWhenSelected","inputStyle","inputType","onDeleteChip","truncatedText","showLeadingIconInPlaceholder","showTrailingIconPlaceholder","showLabelsOnMoreHover","value","showSelected","onDropdownVisbilityChange","openDropdownProps","isDropdownOpened","setDropdownOpenFlag","useState","isHovering","setIsHovering","sizeToUse","dropdownVisibilityRef","useRef","selectedOption","setSelectedOption","handleSelection","option","useEffect","flatSelectedOption","op","textVal","getSelectedOptionsAsText","displayText","configuredMaxWidth","inputWidth","dropdownWidth","jsx","Fragment","InputStyleContext","COLORS","BASE_COLORS","jsxs","DropdownPopover","isOpen","Input","DownIcon","ChipInput","chip"],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as a, jsx as n, Fragment as Ee } from "react/jsx-runtime";
|
|
2
2
|
import He from "../../assets/icons/info.svg.js";
|
|
3
3
|
import { escapeFormulaInjection as _e } from "../../helpers/sanitize.js";
|
|
4
4
|
import { forwardRef as ke, useState as v, useContext as Ae, useRef as Fe, useEffect as d } from "react";
|
|
5
|
-
import { isFunction as ne, shouldSanitizeForType as
|
|
6
|
-
import { TitleSmall as
|
|
5
|
+
import { isFunction as ne, shouldSanitizeForType as Oe, sanitizeUnsafeInput as Re, validateInput as De } from "./Input-helper.js";
|
|
6
|
+
import { TitleSmall as Be, BodySecondary as ze } from "../TypographyStyle.js";
|
|
7
7
|
import { COLORS as ie } from "../../constants/Theme.js";
|
|
8
8
|
import Pe from "../../assets/icons/errorInfo.svg.js";
|
|
9
9
|
import { InputStyleContext as Ke } from "./context/InputStyleProvider.js";
|
|
10
10
|
import { RootContainer as Ne, InputFooter as je, MaxCharStyle as le, InputWrapper as Ve, IconHolder as re, PrefixHolder as We, InputContainer as Xe, InputContainerSmall as Ue, InputContainerXSmall as qe, SuffixHolder as Ge, InputHeader as Ye } from "./Input.styled.js";
|
|
11
|
-
import { Button as
|
|
11
|
+
import { Button as ae } from "../button/Button.js";
|
|
12
12
|
import { Tooltip as $e } from "../tooltips/Tooltip.js";
|
|
13
13
|
const Je = ke(
|
|
14
|
-
(e,
|
|
14
|
+
(e, oe) => {
|
|
15
15
|
const {
|
|
16
16
|
placeholder: H,
|
|
17
17
|
leftIcon: _,
|
|
@@ -23,18 +23,18 @@ const Je = ke(
|
|
|
23
23
|
type: c,
|
|
24
24
|
state: b,
|
|
25
25
|
validate: ce,
|
|
26
|
-
variant:
|
|
26
|
+
variant: o,
|
|
27
27
|
button: u,
|
|
28
28
|
suffixText: F,
|
|
29
|
-
prefixText:
|
|
30
|
-
onChangeText:
|
|
29
|
+
prefixText: O,
|
|
30
|
+
onChangeText: R,
|
|
31
31
|
value: m,
|
|
32
32
|
noErrorHint: se,
|
|
33
|
-
reset:
|
|
33
|
+
reset: D,
|
|
34
34
|
rangeValidation: ue,
|
|
35
35
|
noKeyDownChange: he,
|
|
36
36
|
version: de,
|
|
37
|
-
noMaxCharCheck:
|
|
37
|
+
noMaxCharCheck: B,
|
|
38
38
|
labelElement: z,
|
|
39
39
|
autoGrow: S,
|
|
40
40
|
minHeight: M,
|
|
@@ -63,7 +63,7 @@ const Je = ke(
|
|
|
63
63
|
minCharsToTrigger: 0,
|
|
64
64
|
maxCharAlignment: !1,
|
|
65
65
|
...e
|
|
66
|
-
}, X = _?.icon, U = y?.icon, [p, I] = v(!1), [Me, w] = v(!1), [h, q] = v(), G =
|
|
66
|
+
}, X = _?.icon, U = y?.icon, [p, I] = v(!1), [Me, w] = v(!1), [h, q] = v(), G = o === "x-small" ? "12px" : o === "small" ? "18px" : "22px", C = Ae(Ke), [Y, L] = v(""), pe = Fe(null), l = oe ?? pe;
|
|
67
67
|
d(() => {
|
|
68
68
|
L(m || ""), !m && S && (l.current.style.height = M || "48px");
|
|
69
69
|
}, [m]), d(() => {
|
|
@@ -75,8 +75,8 @@ const Je = ke(
|
|
|
75
75
|
t.removeEventListener("wheel", Q);
|
|
76
76
|
};
|
|
77
77
|
}, []), d(() => {
|
|
78
|
-
|
|
79
|
-
}, [
|
|
78
|
+
D && L("");
|
|
79
|
+
}, [D]), d(() => {
|
|
80
80
|
w(!!e.isActive), e.isActive && l.current?.focus();
|
|
81
81
|
}, [e.isActive]), d(() => {
|
|
82
82
|
q(e.errorMessage);
|
|
@@ -89,16 +89,16 @@ const Je = ke(
|
|
|
89
89
|
ne(t) && t(...i);
|
|
90
90
|
}, $ = () => c === "zip" ? 6 : 2e3, J = (t) => {
|
|
91
91
|
const i = r !== 0 ? r : $(), g = [8], x = j, s = t.target.value;
|
|
92
|
-
N && (!s.length || s.length >= x) && N(t), !he && (!s.length || s.length >= x) &&
|
|
92
|
+
N && (!s.length || s.length >= x) && N(t), !he && (!s.length || s.length >= x) && R(m || "", t), !B && !g.includes(t.which) && i > 0 && s.length >= i && t.preventDefault();
|
|
93
93
|
}, Q = (t) => {
|
|
94
94
|
t.preventDefault();
|
|
95
95
|
}, Z = (t) => {
|
|
96
96
|
let i = t.target.value;
|
|
97
97
|
const g = r !== 0 ? r + 1 : $(), x = j;
|
|
98
|
-
if (!Te &&
|
|
98
|
+
if (!Te && Oe(c) && (i = Re(i)), be && (i = _e(i)), !B && g > 0 && i.length >= g && (i = i.substring(0, g - 1)), e.textControl || L(i || ""), x && i && i.length < x)
|
|
99
99
|
return;
|
|
100
|
-
|
|
101
|
-
const s = ce ||
|
|
100
|
+
R(i, t), S && (l.current.style.height = `${l.current.scrollHeight}px`, i || (l.current.style.height = M || "48px"));
|
|
101
|
+
const s = ce || De;
|
|
102
102
|
if (!s || !ne(s))
|
|
103
103
|
return;
|
|
104
104
|
const [we, Le] = s(
|
|
@@ -111,7 +111,7 @@ const Je = ke(
|
|
|
111
111
|
e.skipFocus || w(!0), f(e.onFocus?.(t));
|
|
112
112
|
}, te = (t) => {
|
|
113
113
|
e.skipFocus || w(!1), f(e.onBlur?.(t));
|
|
114
|
-
}, E = () => /* @__PURE__ */
|
|
114
|
+
}, E = () => /* @__PURE__ */ a(Ee, { children: [
|
|
115
115
|
c !== "multiline" && /* @__PURE__ */ n(
|
|
116
116
|
"input",
|
|
117
117
|
{
|
|
@@ -123,6 +123,8 @@ const Je = ke(
|
|
|
123
123
|
disabled: V,
|
|
124
124
|
type: ["phonenumber", "zip", "number"].includes(c) ? "number" : c,
|
|
125
125
|
value: Y,
|
|
126
|
+
readOnly: e.readOnly,
|
|
127
|
+
autoComplete: e.autoComplete,
|
|
126
128
|
onFocus: (t) => ee(t),
|
|
127
129
|
onBlur: (t) => te(t),
|
|
128
130
|
placeholder: H || "Enter here",
|
|
@@ -148,7 +150,7 @@ const Je = ke(
|
|
|
148
150
|
}
|
|
149
151
|
)
|
|
150
152
|
] });
|
|
151
|
-
return /* @__PURE__ */
|
|
153
|
+
return /* @__PURE__ */ a(
|
|
152
154
|
Ne,
|
|
153
155
|
{
|
|
154
156
|
width: e.width,
|
|
@@ -158,21 +160,21 @@ const Je = ke(
|
|
|
158
160
|
type: c,
|
|
159
161
|
style: C?.RootContainer ?? {},
|
|
160
162
|
children: [
|
|
161
|
-
/* @__PURE__ */
|
|
162
|
-
!se && (!!A || !!h) && /* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ a("div", { className: "flex-align-center", children: [
|
|
164
|
+
!se && (!!A || !!h) && /* @__PURE__ */ a(je, { invalid: !!h, children: [
|
|
163
165
|
!!h && /* @__PURE__ */ n(Pe, { width: 16, height: 16 }),
|
|
164
166
|
h || A
|
|
165
167
|
] }),
|
|
166
|
-
r > 0 && P === "BOTTOM" && /* @__PURE__ */
|
|
168
|
+
r > 0 && P === "BOTTOM" && /* @__PURE__ */ a(le, { position: "BOTTOM", style: K, children: [
|
|
167
169
|
(m ?? "").toString()?.length ?? 0,
|
|
168
170
|
"/",
|
|
169
171
|
r
|
|
170
172
|
] })
|
|
171
173
|
] }),
|
|
172
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ a(
|
|
173
175
|
Ve,
|
|
174
176
|
{
|
|
175
|
-
variant:
|
|
177
|
+
variant: o,
|
|
176
178
|
state: b,
|
|
177
179
|
solidDisabled: W,
|
|
178
180
|
width: e.width,
|
|
@@ -187,7 +189,7 @@ const Je = ke(
|
|
|
187
189
|
!!X && /* @__PURE__ */ n(
|
|
188
190
|
re,
|
|
189
191
|
{
|
|
190
|
-
variant:
|
|
192
|
+
variant: o,
|
|
191
193
|
iconSize: G,
|
|
192
194
|
onClick: () => f(_?.callback),
|
|
193
195
|
isLeft: !0,
|
|
@@ -198,8 +200,8 @@ const Je = ke(
|
|
|
198
200
|
children: /* @__PURE__ */ n(X, {})
|
|
199
201
|
}
|
|
200
202
|
),
|
|
201
|
-
!!
|
|
202
|
-
|
|
203
|
+
!!O && /* @__PURE__ */ n(We, { variant: o, children: O }),
|
|
204
|
+
o === "default" && /* @__PURE__ */ n(
|
|
203
205
|
Xe,
|
|
204
206
|
{
|
|
205
207
|
height: e.height,
|
|
@@ -210,12 +212,12 @@ const Je = ke(
|
|
|
210
212
|
children: E()
|
|
211
213
|
}
|
|
212
214
|
),
|
|
213
|
-
|
|
214
|
-
|
|
215
|
+
o === "small" && /* @__PURE__ */ n(Ue, { height: e.height, type: e.type, children: E() }),
|
|
216
|
+
o === "x-small" && /* @__PURE__ */ n(qe, { height: e.height, type: e.type, children: E() }),
|
|
215
217
|
!!U && /* @__PURE__ */ n(
|
|
216
218
|
re,
|
|
217
219
|
{
|
|
218
|
-
variant:
|
|
220
|
+
variant: o,
|
|
219
221
|
iconSize: G,
|
|
220
222
|
onClick: () => f(y?.callback),
|
|
221
223
|
isLeft: !1,
|
|
@@ -223,31 +225,31 @@ const Je = ke(
|
|
|
223
225
|
children: /* @__PURE__ */ n(U, {})
|
|
224
226
|
}
|
|
225
227
|
),
|
|
226
|
-
!!F && /* @__PURE__ */ n(Ge, { variant:
|
|
228
|
+
!!F && /* @__PURE__ */ n(Ge, { variant: o, children: F }),
|
|
227
229
|
u && u.text && /* @__PURE__ */ n(
|
|
228
|
-
|
|
230
|
+
ae,
|
|
229
231
|
{
|
|
230
232
|
buttonText: u.text,
|
|
231
233
|
buttonType: u.buttonType,
|
|
232
234
|
onClick: () => f(u?.onClick)
|
|
233
235
|
}
|
|
234
236
|
),
|
|
235
|
-
u && u.buttonProps && /* @__PURE__ */ n(
|
|
237
|
+
u && u.buttonProps && /* @__PURE__ */ n(ae, { ...u.buttonProps })
|
|
236
238
|
]
|
|
237
239
|
}
|
|
238
240
|
),
|
|
239
|
-
!Ie && (!!T || !!r) && /* @__PURE__ */
|
|
241
|
+
!Ie && (!!T || !!r) && /* @__PURE__ */ a(
|
|
240
242
|
Ye,
|
|
241
243
|
{
|
|
242
244
|
invalid: p,
|
|
243
245
|
maxCharAlignment: ye,
|
|
244
246
|
children: [
|
|
245
247
|
z && z,
|
|
246
|
-
/* @__PURE__ */
|
|
247
|
-
me ? /* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ a("div", { className: "label__container", children: [
|
|
249
|
+
me ? /* @__PURE__ */ a(Be, { children: [
|
|
248
250
|
T,
|
|
249
251
|
k ? /* @__PURE__ */ n("span", { children: "*" }) : ""
|
|
250
|
-
] }) : /* @__PURE__ */
|
|
252
|
+
] }) : /* @__PURE__ */ a(ze, { children: [
|
|
251
253
|
T,
|
|
252
254
|
k ? /* @__PURE__ */ n("span", { children: "*" }) : ""
|
|
253
255
|
] }),
|
|
@@ -262,7 +264,7 @@ const Je = ke(
|
|
|
262
264
|
}
|
|
263
265
|
) }) })
|
|
264
266
|
] }),
|
|
265
|
-
r > 0 && P === "TOP" && /* @__PURE__ */
|
|
267
|
+
r > 0 && P === "TOP" && /* @__PURE__ */ a(le, { style: K, children: [
|
|
266
268
|
(m ?? "").toString()?.length ?? 0,
|
|
267
269
|
"/",
|
|
268
270
|
r
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/input/Input.tsx"],"sourcesContent":["import InfoIcon from '@src/assets/icons/info.svg';\nimport { escapeFormulaInjection } from '@src/helpers/sanitize';\nimport React, {\n\tforwardRef,\n\tMutableRefObject,\n\tRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { Button } from '@src/components/button';\nimport {\n\tisFunction,\n\tsanitizeUnsafeInput,\n\tshouldSanitizeForType,\n\tvalidateInput,\n} from '@src/components/input/Input-helper';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport ErrorIcon from '../../assets/icons/errorInfo.svg';\nimport { InputStyleContext } from './context/InputStyleProvider';\nimport { InputProps, InputTypeI, InputVariant } from './Input.model';\nimport * as SC from './Input.styled';\nimport { PrefixHolder, SuffixHolder } from './Input.styled';\n\nexport const Input = forwardRef(\n\t(\n\t\tprops: InputProps,\n\t\tfRef: React.ForwardedRef<HTMLInputElement | HTMLTextAreaElement | null>,\n\t) => {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tleftIcon,\n\t\t\trightIcon,\n\t\t\tlabelText,\n\t\t\tmaxCharLimit,\n\t\t\tisRequired,\n\t\t\thintText,\n\t\t\ttype,\n\t\t\tstate,\n\t\t\tvalidate,\n\t\t\tvariant,\n\t\t\tbutton,\n\t\t\tsuffixText,\n\t\t\tprefixText,\n\t\t\tonChangeText,\n\t\t\tvalue,\n\t\t\tnoErrorHint,\n\t\t\treset,\n\t\t\trangeValidation,\n\t\t\tnoKeyDownChange,\n\t\t\tversion,\n\t\t\tnoMaxCharCheck,\n\t\t\tlabelElement,\n\t\t\tautoGrow,\n\t\t\tminHeight,\n\t\t\tmaxHeight,\n\t\t\tlabelTextBold,\n\t\t\ttruncateText,\n\t\t\tmaxCharLimitPosition,\n\t\t\tmaxCharStyle,\n\t\t\thightlightInputColor,\n\t\t\tonKeyDownEvent,\n\t\t\thideInputHeader,\n\t\t\thideBorder,\n\t\t\tinputWrapperStyles,\n\t\t\tminCharsToTrigger,\n\t\t\tmaxCharAlignment,\n\t\t\tisDisabled = false,\n\t\t\tsolidDisabled = false,\n\t\t\tallowUnsafeInput,\n\t\t\tpreventFormulaInjection,\n\t\t\tleftIconStyle,\n\t\t} = {\n\t\t\tmaxCharLimit: 0,\n\t\t\ttype: 'text' as InputTypeI,\n\t\t\tvariant: 'default' as InputVariant,\n\t\t\tmaxCharLimitPosition: 'TOP',\n\t\t\tminCharsToTrigger: 0,\n\t\t\tmaxCharAlignment: false,\n\t\t\t...props,\n\t\t};\n\t\tconst LeftIcon = leftIcon?.icon;\n\t\tconst RightIcon = rightIcon?.icon;\n\t\tconst [isInvalid, setIsInvalid] = useState<boolean>(false);\n\t\tconst [isActive, setIsActive] = useState<boolean>(false);\n\t\tconst [errorMessage, setErrorMessage] = useState<string>();\n\t\tconst iconSize =\n\t\t\tvariant === 'x-small' ? '12px' : variant === 'small' ? '18px' : '22px';\n\t\tconst stylesFromOutside = useContext(InputStyleContext);\n\t\tconst [inputValue, setInputValue] = useState<string>('');\n\t\tconst _ref = useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\t\tconst inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement> =\n\t\t\t(fRef ?? _ref) as MutableRefObject<\n\t\t\t\tHTMLInputElement | HTMLTextAreaElement\n\t\t\t>;\n\n\t\tuseEffect(() => {\n\t\t\tsetInputValue(value || '');\n\t\t\tif (!value && autoGrow) {\n\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t}\n\t\t}, [value]);\n\n\t\tuseEffect(() => {\n\t\t\tif (!inputRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprops.onReferenceInit?.(inputRef.current);\n\t\t}, [inputRef]);\n\n\t\tuseEffect(() => {\n\t\t\tconst numberInput = inputRef.current;\n\t\t\tif (numberInput && ['phonenumber', 'zip', 'number'].includes(type)) {\n\t\t\t\tnumberInput.addEventListener('wheel', onWheel, { passive: false });\n\n\t\t\t\treturn () => {\n\t\t\t\t\tnumberInput.removeEventListener('wheel', onWheel);\n\t\t\t\t};\n\t\t\t}\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (!reset) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetInputValue('');\n\t\t}, [reset]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsActive(!!props.isActive);\n\t\t\tif (props.isActive) {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.isActive]);\n\n\t\tuseEffect(() => {\n\t\t\tsetErrorMessage(props.errorMessage);\n\t\t}, [props.errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(false);\n\t\t\tif (\n\t\t\t\tprops.state === 'invalid' ||\n\t\t\t\terrorMessage ||\n\t\t\t\tprops.state === 'disabled-invalid'\n\t\t\t) {\n\t\t\t\tsetIsInvalid(true);\n\t\t\t}\n\t\t\tif (props.state === 'active') {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.state, errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(!!errorMessage || props.state === 'invalid');\n\t\t}, [errorMessage, props.state]);\n\n\t\tconst executeCallback = (cb: any, ...params: any[]): void => {\n\t\t\tif (!isFunction(cb)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcb(...params);\n\t\t};\n\n\t\tconst getMaxChar = () => {\n\t\t\tif (type === 'zip') {\n\t\t\t\treturn 6;\n\t\t\t}\n\t\t\treturn 2000;\n\t\t};\n\n\t\tconst onKeyDown = (e) => {\n\t\t\tconst MAX_CHAR_LIMIT = maxCharLimit !== 0 ? maxCharLimit : getMaxChar();\n\t\t\tconst KEY_CODES_TO_BE_EXCLUDED = [8];\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\t\t\tconst inputText = e.target.value;\n\t\t\tif (\n\t\t\t\tonKeyDownEvent &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonKeyDownEvent(e);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noKeyDownChange &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonChangeText(value || '', e);\n\t\t\t}\n\t\t\tif (noMaxCharCheck) return;\n\n\t\t\tif (\n\t\t\t\t!KEY_CODES_TO_BE_EXCLUDED.includes(e.which) &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\n\t\tconst onWheel = (event) => {\n\t\t\tevent.preventDefault(); // Prevent the default scroll behavior\n\t\t};\n\n\t\tconst onChange = (e) => {\n\t\t\tlet inputText = e.target.value;\n\t\t\tconst MAX_CHAR_LIMIT =\n\t\t\t\tmaxCharLimit !== 0 ? maxCharLimit + 1 : getMaxChar();\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\n\t\t\tif (!allowUnsafeInput && shouldSanitizeForType(type)) {\n\t\t\t\tinputText = sanitizeUnsafeInput(inputText);\n\t\t\t}\n\n\t\t\tif (preventFormulaInjection) {\n\t\t\t\tinputText = escapeFormulaInjection(inputText);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noMaxCharCheck &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\t// letting user to copy paste text upto max limit instead of blank action\n\t\t\t\tinputText = inputText.substring(0, MAX_CHAR_LIMIT - 1);\n\t\t\t}\n\n\t\t\tif (!props.textControl) {\n\t\t\t\tsetInputValue(inputText || '');\n\t\t\t}\n\t\t\tif (MIN_CHAR_LIMIT && inputText && inputText.length < MIN_CHAR_LIMIT) {\n\t\t\t\t// if minCharsToTrigger exists and is not reached, do nothing\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonChangeText(inputText, e);\n\t\t\tif (autoGrow) {\n\t\t\t\tinputRef.current.style.height = `${inputRef.current.scrollHeight}px`;\n\t\t\t\tif (!inputText) {\n\t\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst validateFunction = validate || validateInput;\n\t\t\tif (!validateFunction || !isFunction(validateFunction)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [isValid, error] = validateFunction(\n\t\t\t\tinputText,\n\t\t\t\ttype,\n\t\t\t\trangeValidation,\n\t\t\t);\n\n\t\t\tsetIsInvalid(!isValid);\n\t\t\tsetErrorMessage(props.errorMessage ? props.errorMessage : error);\n\t\t};\n\n\t\tconst onFocus = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(true);\n\t\t\t}\n\t\t\texecuteCallback(props.onFocus?.(e));\n\t\t};\n\n\t\tconst onBlur = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(false);\n\t\t\t}\n\t\t\texecuteCallback(props.onBlur?.(e));\n\t\t};\n\n\t\tconst getInputHTML = () => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{type !== 'multiline' && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName={truncateText ? 'truncate-class' : ''}\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tid={props.id}\n\t\t\t\t\t\t\tstyle={stylesFromOutside?.input ?? {}}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLInputElement>}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\ttype={\n\t\t\t\t\t\t\t\t['phonenumber', 'zip', 'number'].includes(type)\n\t\t\t\t\t\t\t\t\t? 'number'\n\t\t\t\t\t\t\t\t\t: type\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{type === 'multiline' && (\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLTextAreaElement>}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t\tmaxLength={maxCharLimit > 0 ? maxCharLimit : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<SC.RootContainer\n\t\t\t\twidth={props.width}\n\t\t\t\theight={props.height}\n\t\t\t\tstate={state}\n\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\ttype={type}\n\t\t\t\tstyle={stylesFromOutside?.RootContainer ?? {}}\n\t\t\t>\n\t\t\t\t<div className=\"flex-align-center\">\n\t\t\t\t\t{!noErrorHint && (!!hintText || !!errorMessage) && (\n\t\t\t\t\t\t<SC.InputFooter invalid={!!errorMessage}>\n\t\t\t\t\t\t\t{!!errorMessage && <ErrorIcon width={16} height={16} />}\n\t\t\t\t\t\t\t{errorMessage || hintText}\n\t\t\t\t\t\t</SC.InputFooter>\n\t\t\t\t\t)}\n\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'BOTTOM' && (\n\t\t\t\t\t\t<SC.MaxCharStyle position={'BOTTOM'} style={maxCharStyle}>\n\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<SC.InputWrapper\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tstate={state}\n\t\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\t\twidth={props.width}\n\t\t\t\t\tisActive={state === 'active' || isActive}\n\t\t\t\t\tisInvalid={isInvalid}\n\t\t\t\t\tstyle={stylesFromOutside?.InputWrapper ?? inputWrapperStyles ?? {}}\n\t\t\t\t\tversion={version}\n\t\t\t\t\theight={props.height}\n\t\t\t\t\thightlightInputColor={hightlightInputColor}\n\t\t\t\t\thideBorder={hideBorder}\n\t\t\t\t>\n\t\t\t\t\t{!!LeftIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(leftIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={true}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t...(stylesFromOutside?.IconHolder ?? {}),\n\t\t\t\t\t\t\t\t...leftIconStyle,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LeftIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!prefixText && (\n\t\t\t\t\t\t<PrefixHolder variant={variant}>{prefixText}</PrefixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'default' && (\n\t\t\t\t\t\t<SC.InputContainer\n\t\t\t\t\t\t\theight={props.height}\n\t\t\t\t\t\t\ttype={props.type}\n\t\t\t\t\t\t\tminHeight={minHeight}\n\t\t\t\t\t\t\tmaxHeight={maxHeight}\n\t\t\t\t\t\t\tautoGrow={autoGrow}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainer>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'small' && (\n\t\t\t\t\t\t<SC.InputContainerSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'x-small' && (\n\t\t\t\t\t\t<SC.InputContainerXSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerXSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!RightIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(rightIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={false}\n\t\t\t\t\t\t\tdata-test={rightIcon?.['data-test']}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RightIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!suffixText && (\n\t\t\t\t\t\t<SuffixHolder variant={variant}>{suffixText}</SuffixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.text && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tbuttonText={button.text}\n\t\t\t\t\t\t\tbuttonType={button.buttonType}\n\t\t\t\t\t\t\tonClick={() => executeCallback(button?.onClick)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.buttonProps && <Button {...button.buttonProps} />}\n\t\t\t\t</SC.InputWrapper>\n\t\t\t\t{!hideInputHeader && (!!labelText || !!maxCharLimit) && (\n\t\t\t\t\t<SC.InputHeader\n\t\t\t\t\t\tinvalid={isInvalid}\n\t\t\t\t\t\tmaxCharAlignment={maxCharAlignment}\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelElement && labelElement}\n\t\t\t\t\t\t<div className=\"label__container\">\n\t\t\t\t\t\t\t{labelTextBold ? (\n\t\t\t\t\t\t\t\t<TitleSmall>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<BodySecondary>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.tooltipText && (\n\t\t\t\t\t\t\t\t<Tooltip body={props.tooltipText} placement={'top'}>\n\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t<InfoIcon\n\t\t\t\t\t\t\t\t\t\t\tdata-test=\"input-tooltip-icon\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: -3 }}\n\t\t\t\t\t\t\t\t\t\t\twidth={props.tooltipIconSize ?? 18}\n\t\t\t\t\t\t\t\t\t\t\theight={props.tooltipIconSize ?? 18}\n\t\t\t\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\tisInvalid\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.negative\n\t\t\t\t\t\t\t\t\t\t\t\t\t: props.tooltipIconColor ?? COLORS.content.primary\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'TOP' && (\n\t\t\t\t\t\t\t<SC.MaxCharStyle style={maxCharStyle}>\n\t\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SC.InputHeader>\n\t\t\t\t)}\n\t\t\t</SC.RootContainer>\n\t\t);\n\t},\n);\n\nInput.displayName = 'Input';\n"],"names":["Input","forwardRef","props","fRef","placeholder","leftIcon","rightIcon","labelText","maxCharLimit","isRequired","hintText","type","state","validate","variant","button","suffixText","prefixText","onChangeText","value","noErrorHint","reset","rangeValidation","noKeyDownChange","version","noMaxCharCheck","labelElement","autoGrow","minHeight","maxHeight","labelTextBold","truncateText","maxCharLimitPosition","maxCharStyle","hightlightInputColor","onKeyDownEvent","hideInputHeader","hideBorder","inputWrapperStyles","minCharsToTrigger","maxCharAlignment","isDisabled","solidDisabled","allowUnsafeInput","preventFormulaInjection","leftIconStyle","LeftIcon","RightIcon","isInvalid","setIsInvalid","useState","isActive","setIsActive","errorMessage","setErrorMessage","iconSize","stylesFromOutside","useContext","InputStyleContext","inputValue","setInputValue","_ref","useRef","inputRef","useEffect","numberInput","onWheel","executeCallback","cb","params","isFunction","getMaxChar","onKeyDown","e","MAX_CHAR_LIMIT","KEY_CODES_TO_BE_EXCLUDED","MIN_CHAR_LIMIT","inputText","event","onChange","shouldSanitizeForType","sanitizeUnsafeInput","escapeFormulaInjection","validateFunction","validateInput","isValid","error","onFocus","onBlur","getInputHTML","jsxs","Fragment","jsx","SC.RootContainer","SC.InputFooter","ErrorIcon","SC.MaxCharStyle","SC.InputWrapper","SC.IconHolder","PrefixHolder","SC.InputContainer","SC.InputContainerSmall","SC.InputContainerXSmall","SuffixHolder","Button","SC.InputHeader","TitleSmall","BodySecondary","Tooltip","InfoIcon","COLORS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/input/Input.tsx"],"sourcesContent":["import InfoIcon from '@src/assets/icons/info.svg';\nimport { escapeFormulaInjection } from '@src/helpers/sanitize';\nimport React, {\n\tforwardRef,\n\tMutableRefObject,\n\tRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { Button } from '@src/components/button';\nimport {\n\tisFunction,\n\tsanitizeUnsafeInput,\n\tshouldSanitizeForType,\n\tvalidateInput,\n} from '@src/components/input/Input-helper';\nimport { Tooltip } from '@src/components/tooltips';\nimport { BodySecondary, TitleSmall } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\nimport ErrorIcon from '../../assets/icons/errorInfo.svg';\nimport { InputStyleContext } from './context/InputStyleProvider';\nimport { InputProps, InputTypeI, InputVariant } from './Input.model';\nimport * as SC from './Input.styled';\nimport { PrefixHolder, SuffixHolder } from './Input.styled';\n\nexport const Input = forwardRef(\n\t(\n\t\tprops: InputProps,\n\t\tfRef: React.ForwardedRef<HTMLInputElement | HTMLTextAreaElement | null>,\n\t) => {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tleftIcon,\n\t\t\trightIcon,\n\t\t\tlabelText,\n\t\t\tmaxCharLimit,\n\t\t\tisRequired,\n\t\t\thintText,\n\t\t\ttype,\n\t\t\tstate,\n\t\t\tvalidate,\n\t\t\tvariant,\n\t\t\tbutton,\n\t\t\tsuffixText,\n\t\t\tprefixText,\n\t\t\tonChangeText,\n\t\t\tvalue,\n\t\t\tnoErrorHint,\n\t\t\treset,\n\t\t\trangeValidation,\n\t\t\tnoKeyDownChange,\n\t\t\tversion,\n\t\t\tnoMaxCharCheck,\n\t\t\tlabelElement,\n\t\t\tautoGrow,\n\t\t\tminHeight,\n\t\t\tmaxHeight,\n\t\t\tlabelTextBold,\n\t\t\ttruncateText,\n\t\t\tmaxCharLimitPosition,\n\t\t\tmaxCharStyle,\n\t\t\thightlightInputColor,\n\t\t\tonKeyDownEvent,\n\t\t\thideInputHeader,\n\t\t\thideBorder,\n\t\t\tinputWrapperStyles,\n\t\t\tminCharsToTrigger,\n\t\t\tmaxCharAlignment,\n\t\t\tisDisabled = false,\n\t\t\tsolidDisabled = false,\n\t\t\tallowUnsafeInput,\n\t\t\tpreventFormulaInjection,\n\t\t\tleftIconStyle,\n\t\t} = {\n\t\t\tmaxCharLimit: 0,\n\t\t\ttype: 'text' as InputTypeI,\n\t\t\tvariant: 'default' as InputVariant,\n\t\t\tmaxCharLimitPosition: 'TOP',\n\t\t\tminCharsToTrigger: 0,\n\t\t\tmaxCharAlignment: false,\n\t\t\t...props,\n\t\t};\n\t\tconst LeftIcon = leftIcon?.icon;\n\t\tconst RightIcon = rightIcon?.icon;\n\t\tconst [isInvalid, setIsInvalid] = useState<boolean>(false);\n\t\tconst [isActive, setIsActive] = useState<boolean>(false);\n\t\tconst [errorMessage, setErrorMessage] = useState<string>();\n\t\tconst iconSize =\n\t\t\tvariant === 'x-small' ? '12px' : variant === 'small' ? '18px' : '22px';\n\t\tconst stylesFromOutside = useContext(InputStyleContext);\n\t\tconst [inputValue, setInputValue] = useState<string>('');\n\t\tconst _ref = useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\t\tconst inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement> =\n\t\t\t(fRef ?? _ref) as MutableRefObject<\n\t\t\t\tHTMLInputElement | HTMLTextAreaElement\n\t\t\t>;\n\n\t\tuseEffect(() => {\n\t\t\tsetInputValue(value || '');\n\t\t\tif (!value && autoGrow) {\n\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t}\n\t\t}, [value]);\n\n\t\tuseEffect(() => {\n\t\t\tif (!inputRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprops.onReferenceInit?.(inputRef.current);\n\t\t}, [inputRef]);\n\n\t\tuseEffect(() => {\n\t\t\tconst numberInput = inputRef.current;\n\t\t\tif (numberInput && ['phonenumber', 'zip', 'number'].includes(type)) {\n\t\t\t\tnumberInput.addEventListener('wheel', onWheel, { passive: false });\n\n\t\t\t\treturn () => {\n\t\t\t\t\tnumberInput.removeEventListener('wheel', onWheel);\n\t\t\t\t};\n\t\t\t}\n\t\t}, []);\n\n\t\tuseEffect(() => {\n\t\t\tif (!reset) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetInputValue('');\n\t\t}, [reset]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsActive(!!props.isActive);\n\t\t\tif (props.isActive) {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.isActive]);\n\n\t\tuseEffect(() => {\n\t\t\tsetErrorMessage(props.errorMessage);\n\t\t}, [props.errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(false);\n\t\t\tif (\n\t\t\t\tprops.state === 'invalid' ||\n\t\t\t\terrorMessage ||\n\t\t\t\tprops.state === 'disabled-invalid'\n\t\t\t) {\n\t\t\t\tsetIsInvalid(true);\n\t\t\t}\n\t\t\tif (props.state === 'active') {\n\t\t\t\tinputRef.current?.focus();\n\t\t\t}\n\t\t}, [props.state, errorMessage]);\n\n\t\tuseEffect(() => {\n\t\t\tsetIsInvalid(!!errorMessage || props.state === 'invalid');\n\t\t}, [errorMessage, props.state]);\n\n\t\tconst executeCallback = (cb: any, ...params: any[]): void => {\n\t\t\tif (!isFunction(cb)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcb(...params);\n\t\t};\n\n\t\tconst getMaxChar = () => {\n\t\t\tif (type === 'zip') {\n\t\t\t\treturn 6;\n\t\t\t}\n\t\t\treturn 2000;\n\t\t};\n\n\t\tconst onKeyDown = (e) => {\n\t\t\tconst MAX_CHAR_LIMIT = maxCharLimit !== 0 ? maxCharLimit : getMaxChar();\n\t\t\tconst KEY_CODES_TO_BE_EXCLUDED = [8];\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\t\t\tconst inputText = e.target.value;\n\t\t\tif (\n\t\t\t\tonKeyDownEvent &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonKeyDownEvent(e);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noKeyDownChange &&\n\t\t\t\t(!inputText.length || inputText.length >= MIN_CHAR_LIMIT)\n\t\t\t) {\n\t\t\t\tonChangeText(value || '', e);\n\t\t\t}\n\t\t\tif (noMaxCharCheck) return;\n\n\t\t\tif (\n\t\t\t\t!KEY_CODES_TO_BE_EXCLUDED.includes(e.which) &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t};\n\n\t\tconst onWheel = (event) => {\n\t\t\tevent.preventDefault(); // Prevent the default scroll behavior\n\t\t};\n\n\t\tconst onChange = (e) => {\n\t\t\tlet inputText = e.target.value;\n\t\t\tconst MAX_CHAR_LIMIT =\n\t\t\t\tmaxCharLimit !== 0 ? maxCharLimit + 1 : getMaxChar();\n\t\t\tconst MIN_CHAR_LIMIT = minCharsToTrigger;\n\n\t\t\tif (!allowUnsafeInput && shouldSanitizeForType(type)) {\n\t\t\t\tinputText = sanitizeUnsafeInput(inputText);\n\t\t\t}\n\n\t\t\tif (preventFormulaInjection) {\n\t\t\t\tinputText = escapeFormulaInjection(inputText);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!noMaxCharCheck &&\n\t\t\t\tMAX_CHAR_LIMIT > 0 &&\n\t\t\t\tinputText.length >= MAX_CHAR_LIMIT\n\t\t\t) {\n\t\t\t\t// letting user to copy paste text upto max limit instead of blank action\n\t\t\t\tinputText = inputText.substring(0, MAX_CHAR_LIMIT - 1);\n\t\t\t}\n\n\t\t\tif (!props.textControl) {\n\t\t\t\tsetInputValue(inputText || '');\n\t\t\t}\n\t\t\tif (MIN_CHAR_LIMIT && inputText && inputText.length < MIN_CHAR_LIMIT) {\n\t\t\t\t// if minCharsToTrigger exists and is not reached, do nothing\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonChangeText(inputText, e);\n\t\t\tif (autoGrow) {\n\t\t\t\tinputRef.current.style.height = `${inputRef.current.scrollHeight}px`;\n\t\t\t\tif (!inputText) {\n\t\t\t\t\tinputRef.current.style.height = minHeight || '48px';\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst validateFunction = validate || validateInput;\n\t\t\tif (!validateFunction || !isFunction(validateFunction)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [isValid, error] = validateFunction(\n\t\t\t\tinputText,\n\t\t\t\ttype,\n\t\t\t\trangeValidation,\n\t\t\t);\n\n\t\t\tsetIsInvalid(!isValid);\n\t\t\tsetErrorMessage(props.errorMessage ? props.errorMessage : error);\n\t\t};\n\n\t\tconst onFocus = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(true);\n\t\t\t}\n\t\t\texecuteCallback(props.onFocus?.(e));\n\t\t};\n\n\t\tconst onBlur = (e) => {\n\t\t\tif (!props.skipFocus) {\n\t\t\t\tsetIsActive(false);\n\t\t\t}\n\t\t\texecuteCallback(props.onBlur?.(e));\n\t\t};\n\n\t\tconst getInputHTML = () => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{type !== 'multiline' && (\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName={truncateText ? 'truncate-class' : ''}\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tid={props.id}\n\t\t\t\t\t\t\tstyle={stylesFromOutside?.input ?? {}}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLInputElement>}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\ttype={\n\t\t\t\t\t\t\t\t['phonenumber', 'zip', 'number'].includes(type)\n\t\t\t\t\t\t\t\t\t? 'number'\n\t\t\t\t\t\t\t\t\t: type\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\treadOnly={props.readOnly}\n\t\t\t\t\t\t\tautoComplete={props.autoComplete}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{type === 'multiline' && (\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tdata-test={props['data-test']}\n\t\t\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\t\t\tref={inputRef as Ref<HTMLTextAreaElement>}\n\t\t\t\t\t\t\tonFocus={(e) => onFocus(e)}\n\t\t\t\t\t\t\tonBlur={(e) => onBlur(e)}\n\t\t\t\t\t\t\tonClick={(e) => executeCallback(props.onClick)}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\tplaceholder={placeholder || 'Enter here'}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tonKeyDown={(e) => onKeyDown(e)}\n\t\t\t\t\t\t\tmaxLength={maxCharLimit > 0 ? maxCharLimit : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<SC.RootContainer\n\t\t\t\twidth={props.width}\n\t\t\t\theight={props.height}\n\t\t\t\tstate={state}\n\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\ttype={type}\n\t\t\t\tstyle={stylesFromOutside?.RootContainer ?? {}}\n\t\t\t>\n\t\t\t\t<div className=\"flex-align-center\">\n\t\t\t\t\t{!noErrorHint && (!!hintText || !!errorMessage) && (\n\t\t\t\t\t\t<SC.InputFooter invalid={!!errorMessage}>\n\t\t\t\t\t\t\t{!!errorMessage && <ErrorIcon width={16} height={16} />}\n\t\t\t\t\t\t\t{errorMessage || hintText}\n\t\t\t\t\t\t</SC.InputFooter>\n\t\t\t\t\t)}\n\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'BOTTOM' && (\n\t\t\t\t\t\t<SC.MaxCharStyle position={'BOTTOM'} style={maxCharStyle}>\n\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<SC.InputWrapper\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\tstate={state}\n\t\t\t\t\tsolidDisabled={solidDisabled}\n\t\t\t\t\twidth={props.width}\n\t\t\t\t\tisActive={state === 'active' || isActive}\n\t\t\t\t\tisInvalid={isInvalid}\n\t\t\t\t\tstyle={stylesFromOutside?.InputWrapper ?? inputWrapperStyles ?? {}}\n\t\t\t\t\tversion={version}\n\t\t\t\t\theight={props.height}\n\t\t\t\t\thightlightInputColor={hightlightInputColor}\n\t\t\t\t\thideBorder={hideBorder}\n\t\t\t\t>\n\t\t\t\t\t{!!LeftIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(leftIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={true}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t...(stylesFromOutside?.IconHolder ?? {}),\n\t\t\t\t\t\t\t\t...leftIconStyle,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LeftIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!prefixText && (\n\t\t\t\t\t\t<PrefixHolder variant={variant}>{prefixText}</PrefixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'default' && (\n\t\t\t\t\t\t<SC.InputContainer\n\t\t\t\t\t\t\theight={props.height}\n\t\t\t\t\t\t\ttype={props.type}\n\t\t\t\t\t\t\tminHeight={minHeight}\n\t\t\t\t\t\t\tmaxHeight={maxHeight}\n\t\t\t\t\t\t\tautoGrow={autoGrow}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainer>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'small' && (\n\t\t\t\t\t\t<SC.InputContainerSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{variant === 'x-small' && (\n\t\t\t\t\t\t<SC.InputContainerXSmall height={props.height} type={props.type}>\n\t\t\t\t\t\t\t{getInputHTML()}\n\t\t\t\t\t\t</SC.InputContainerXSmall>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!RightIcon && (\n\t\t\t\t\t\t<SC.IconHolder\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\tonClick={() => executeCallback(rightIcon?.callback)}\n\t\t\t\t\t\t\tisLeft={false}\n\t\t\t\t\t\t\tdata-test={rightIcon?.['data-test']}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RightIcon />\n\t\t\t\t\t\t</SC.IconHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!suffixText && (\n\t\t\t\t\t\t<SuffixHolder variant={variant}>{suffixText}</SuffixHolder>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.text && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tbuttonText={button.text}\n\t\t\t\t\t\t\tbuttonType={button.buttonType}\n\t\t\t\t\t\t\tonClick={() => executeCallback(button?.onClick)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{button && button.buttonProps && <Button {...button.buttonProps} />}\n\t\t\t\t</SC.InputWrapper>\n\t\t\t\t{!hideInputHeader && (!!labelText || !!maxCharLimit) && (\n\t\t\t\t\t<SC.InputHeader\n\t\t\t\t\t\tinvalid={isInvalid}\n\t\t\t\t\t\tmaxCharAlignment={maxCharAlignment}\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelElement && labelElement}\n\t\t\t\t\t\t<div className=\"label__container\">\n\t\t\t\t\t\t\t{labelTextBold ? (\n\t\t\t\t\t\t\t\t<TitleSmall>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</TitleSmall>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<BodySecondary>\n\t\t\t\t\t\t\t\t\t{labelText}\n\t\t\t\t\t\t\t\t\t{isRequired ? <span>*</span> : ''}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.tooltipText && (\n\t\t\t\t\t\t\t\t<Tooltip body={props.tooltipText} placement={'top'}>\n\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t<InfoIcon\n\t\t\t\t\t\t\t\t\t\t\tdata-test=\"input-tooltip-icon\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginTop: -3 }}\n\t\t\t\t\t\t\t\t\t\t\twidth={props.tooltipIconSize ?? 18}\n\t\t\t\t\t\t\t\t\t\t\theight={props.tooltipIconSize ?? 18}\n\t\t\t\t\t\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\t\t\t\t\t\tisInvalid\n\t\t\t\t\t\t\t\t\t\t\t\t\t? COLORS.content.negative\n\t\t\t\t\t\t\t\t\t\t\t\t\t: props.tooltipIconColor ?? COLORS.content.primary\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{maxCharLimit > 0 && maxCharLimitPosition === 'TOP' && (\n\t\t\t\t\t\t\t<SC.MaxCharStyle style={maxCharStyle}>\n\t\t\t\t\t\t\t\t{(value ?? '').toString()?.length ?? 0}/{maxCharLimit}\n\t\t\t\t\t\t\t</SC.MaxCharStyle>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SC.InputHeader>\n\t\t\t\t)}\n\t\t\t</SC.RootContainer>\n\t\t);\n\t},\n);\n\nInput.displayName = 'Input';\n"],"names":["Input","forwardRef","props","fRef","placeholder","leftIcon","rightIcon","labelText","maxCharLimit","isRequired","hintText","type","state","validate","variant","button","suffixText","prefixText","onChangeText","value","noErrorHint","reset","rangeValidation","noKeyDownChange","version","noMaxCharCheck","labelElement","autoGrow","minHeight","maxHeight","labelTextBold","truncateText","maxCharLimitPosition","maxCharStyle","hightlightInputColor","onKeyDownEvent","hideInputHeader","hideBorder","inputWrapperStyles","minCharsToTrigger","maxCharAlignment","isDisabled","solidDisabled","allowUnsafeInput","preventFormulaInjection","leftIconStyle","LeftIcon","RightIcon","isInvalid","setIsInvalid","useState","isActive","setIsActive","errorMessage","setErrorMessage","iconSize","stylesFromOutside","useContext","InputStyleContext","inputValue","setInputValue","_ref","useRef","inputRef","useEffect","numberInput","onWheel","executeCallback","cb","params","isFunction","getMaxChar","onKeyDown","e","MAX_CHAR_LIMIT","KEY_CODES_TO_BE_EXCLUDED","MIN_CHAR_LIMIT","inputText","event","onChange","shouldSanitizeForType","sanitizeUnsafeInput","escapeFormulaInjection","validateFunction","validateInput","isValid","error","onFocus","onBlur","getInputHTML","jsxs","Fragment","jsx","SC.RootContainer","SC.InputFooter","ErrorIcon","SC.MaxCharStyle","SC.InputWrapper","SC.IconHolder","PrefixHolder","SC.InputContainer","SC.InputContainerSmall","SC.InputContainerXSmall","SuffixHolder","Button","SC.InputHeader","TitleSmall","BodySecondary","Tooltip","InfoIcon","COLORS"],"mappings":"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"}
|
|
@@ -47,6 +47,9 @@ export interface InputProps {
|
|
|
47
47
|
onClick?: (e: any) => void;
|
|
48
48
|
isActive?: boolean;
|
|
49
49
|
id?: string;
|
|
50
|
+
/** Native readOnly — also stops browser autofill (e.g. dropdown display boxes). */
|
|
51
|
+
readOnly?: boolean;
|
|
52
|
+
autoComplete?: string;
|
|
50
53
|
onReferenceInit?: (element: HTMLInputElement | HTMLTextAreaElement) => void;
|
|
51
54
|
rangeValidation?: {
|
|
52
55
|
min: number;
|