se-design 0.0.124 → 0.0.125

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/index23.js CHANGED
@@ -1,97 +1,97 @@
1
1
  var F = Object.defineProperty, G = Object.defineProperties;
2
2
  var H = Object.getOwnPropertyDescriptors;
3
- var k = Object.getOwnPropertySymbols;
3
+ var N = Object.getOwnPropertySymbols;
4
4
  var K = Object.prototype.hasOwnProperty, L = Object.prototype.propertyIsEnumerable;
5
- var N = (e, n, d) => n in e ? F(e, n, { enumerable: !0, configurable: !0, writable: !0, value: d }) : e[n] = d, w = (e, n) => {
6
- for (var d in n || (n = {}))
7
- K.call(n, d) && N(e, d, n[d]);
8
- if (k)
9
- for (var d of k(n))
10
- L.call(n, d) && N(e, d, n[d]);
5
+ var s = (e, c, d) => c in e ? F(e, c, { enumerable: !0, configurable: !0, writable: !0, value: d }) : e[c] = d, w = (e, c) => {
6
+ for (var d in c || (c = {}))
7
+ K.call(c, d) && s(e, d, c[d]);
8
+ if (N)
9
+ for (var d of N(c))
10
+ L.call(c, d) && s(e, d, c[d]);
11
11
  return e;
12
- }, $ = (e, n) => G(e, H(n));
13
- import l, { useState as P, useRef as Q, useEffect as U } from "react";
12
+ }, V = (e, c) => G(e, H(c));
13
+ import l, { useState as $, useRef as Q, useEffect as U } from "react";
14
14
  import { Popover as Y } from "./index17.js";
15
- import { Icon as V } from "./index5.js";
15
+ import { Icon as A } from "./index5.js";
16
16
  import { Checkbox as Z } from "./index21.js";
17
- import { Button as j } from "./index3.js";
18
- const ne = (e) => {
19
- const [n, d] = P(!1), [a, i] = P(() => e != null && e.defaultSelectedValue ? [e.defaultSelectedValue] : []), f = Q(null), {
20
- selectBy: u = "",
17
+ import { Button as P } from "./index3.js";
18
+ const ce = (e) => {
19
+ const [c, d] = $(!1), [n, u] = $(() => e != null && e.defaultSelectedValue ? Array.isArray(e == null ? void 0 : e.defaultSelectedValue) ? e == null ? void 0 : e.defaultSelectedValue : [e.defaultSelectedValue] : []), f = Q(null), {
20
+ selectBy: o = "",
21
21
  optionsUniqueBy: m = "",
22
- displaySelected: I = !1,
23
- dropDownOptions: o,
24
- defaultText: s = "Select",
22
+ displaySelected: j = !1,
23
+ dropDownOptions: i,
24
+ defaultText: y = "Select",
25
25
  iconColor: x = "var(--color-gray-700)",
26
26
  disabled: v = !1,
27
- dropdownClassName: M = "",
27
+ dropdownClassName: I = "",
28
28
  hasError: h = !1,
29
- errorMessage: A = ""
29
+ errorMessage: M = ""
30
30
  } = e;
31
31
  U(() => {
32
- i(e != null && e.defaultSelectedValue ? [e.defaultSelectedValue] : []);
32
+ u(e != null && e.defaultSelectedValue ? Array.isArray(e == null ? void 0 : e.defaultSelectedValue) ? e == null ? void 0 : e.defaultSelectedValue : [e.defaultSelectedValue] : []);
33
33
  }, [e == null ? void 0 : e.defaultSelectedValue]);
34
- const y = (e == null ? void 0 : e.type) === "multi-select", B = (t) => {
35
- var c, r;
36
- i([t]), (c = f.current) == null || c.togglePopover(), (r = e == null ? void 0 : e.onOptionClick) == null || r.call(e, t);
37
- }, R = (t) => y ? s : (t == null ? void 0 : t[u]) || s, T = () => {
38
- i([]);
39
- }, S = (t) => e != null && e.renderOptionChip ? e == null ? void 0 : e.renderOptionChip(t) : /* @__PURE__ */ l.createElement("p", {
34
+ const b = (e == null ? void 0 : e.type) === "multi-select", B = (t) => {
35
+ var a, r;
36
+ u([t]), (a = f.current) == null || a.togglePopover(), (r = e == null ? void 0 : e.onOptionClick) == null || r.call(e, t);
37
+ }, R = (t) => b ? y : (t == null ? void 0 : t[o]) || y, T = () => {
38
+ u([]);
39
+ }, C = (t) => e != null && e.renderOptionChip ? e == null ? void 0 : e.renderOptionChip(t) : /* @__PURE__ */ l.createElement("p", {
40
40
  className: "option-chip flex flex-1 items-center justify-between"
41
- }, R(t), " ", y && (a == null ? void 0 : a.length) > 0 && /* @__PURE__ */ l.createElement("span", {
41
+ }, R(t), " ", b && (n == null ? void 0 : n.length) > 0 && /* @__PURE__ */ l.createElement("span", {
42
42
  className: "w-5 h-5 mx-1 rounded-full bg-[var(--color-gray-700)] text-[var(--color-white)] text-sm flex items-center justify-center"
43
- }, a == null ? void 0 : a.length)), J = (t) => {
44
- var C, E;
45
- const c = t[u], r = ((C = a[0]) == null ? void 0 : C[u]) || s, b = m != null && m.length ? t[m] == ((E = a[0]) == null ? void 0 : E[m]) : !0, g = I && c === r && b;
43
+ }, n == null ? void 0 : n.length)), J = (t) => {
44
+ var E, k;
45
+ const a = t[o], r = ((E = n[0]) == null ? void 0 : E[o]) || y, g = m != null && m.length ? t[m] == ((k = n[0]) == null ? void 0 : k[m]) : !0, S = j && a === r && g;
46
46
  return /* @__PURE__ */ l.createElement("div", {
47
- key: `$drop-option-${c}`,
48
- className: `option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${g ? "selected" : ""}`,
47
+ key: `$drop-option-${a}`,
48
+ className: `option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${S ? "selected" : ""}`,
49
49
  onClick: () => B(t)
50
- }, S($(w({}, t), {
51
- isOptionSelected: g
52
- })), g && /* @__PURE__ */ l.createElement(V, {
50
+ }, C(V(w({}, t), {
51
+ isOptionSelected: S
52
+ })), S && /* @__PURE__ */ l.createElement(A, {
53
53
  name: "checkmark",
54
54
  stroke: x
55
55
  }));
56
56
  }, _ = () => /* @__PURE__ */ l.createElement("div", {
57
57
  className: "dropdown-content dropdown-options"
58
- }, o == null ? void 0 : o.map((t) => J(t))), W = (t, c) => {
58
+ }, i == null ? void 0 : i.map((t) => J(t))), W = (t, a) => {
59
59
  let r = [];
60
- t ? r = [...a, c] : r = a == null ? void 0 : a.filter((b) => b[m] !== c[m]), i(r);
60
+ t ? r = [...n, a] : r = n == null ? void 0 : n.filter((g) => g[m] !== a[m]), u(r);
61
61
  }, X = () => {
62
- var t, c;
63
- (t = f.current) == null || t.togglePopover(), (c = e == null ? void 0 : e.onApply) == null || c.call(e, a);
62
+ var t, a;
63
+ (t = f.current) == null || t.togglePopover(), (a = e == null ? void 0 : e.onApply) == null || a.call(e, n);
64
64
  }, q = (t) => {
65
- const c = a.some((r) => r[m] === t[m]);
65
+ const a = n.some((r) => r[m] === t[m]);
66
66
  return /* @__PURE__ */ l.createElement("div", {
67
- key: `$drop-option-${t[u]}`,
67
+ key: `$drop-option-${t[o]}`,
68
68
  className: "option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between"
69
69
  }, /* @__PURE__ */ l.createElement(Z, {
70
70
  automationId: "checkbox",
71
71
  className: "checkbox",
72
- defaultChecked: c,
72
+ defaultChecked: a,
73
73
  onChange: (r) => W(r, t),
74
74
  label: t == null ? void 0 : t.label
75
75
  }));
76
76
  }, z = () => /* @__PURE__ */ l.createElement("div", {
77
77
  className: "dropdown-content dropdown-options"
78
- }, o == null ? void 0 : o.map((t) => q(t)), /* @__PURE__ */ l.createElement("div", {
78
+ }, i == null ? void 0 : i.map((t) => q(t)), /* @__PURE__ */ l.createElement("div", {
79
79
  className: "flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]"
80
- }, /* @__PURE__ */ l.createElement(j, {
80
+ }, /* @__PURE__ */ l.createElement(P, {
81
81
  label: "Clear",
82
82
  type: "link",
83
83
  onClick: T
84
- }), /* @__PURE__ */ l.createElement(j, {
84
+ }), /* @__PURE__ */ l.createElement(P, {
85
85
  label: "Apply",
86
86
  type: "primary",
87
87
  onClick: X
88
88
  }))), D = () => {
89
- const t = n ? "border-[var(--color-blue-500)]" : v ? "border-[var(--color-gray-300)]" : "border-[var(--color-gray-600)]", c = h ? "border-[var(--color-red-500)]" : "", r = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${c || t} flex items-center ${M}`;
89
+ const t = c ? "border-[var(--color-blue-500)]" : v ? "border-[var(--color-gray-300)]" : "border-[var(--color-gray-600)]", a = h ? "border-[var(--color-red-500)]" : "", r = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${a || t} flex items-center ${I}`;
90
90
  return /* @__PURE__ */ l.createElement("div", {
91
91
  className: r
92
- }, S(a[0]), /* @__PURE__ */ l.createElement(V, {
92
+ }, C(n[0]), /* @__PURE__ */ l.createElement(A, {
93
93
  name: "chevron",
94
- rotation: n ? "180" : "0",
94
+ rotation: c ? "180" : "0",
95
95
  className: "ml-auto transition-transform",
96
96
  stroke: x
97
97
  }));
@@ -106,16 +106,16 @@ const ne = (e) => {
106
106
  className: `${v ? "bg-[var(--color-gray-50)] rounded-md cursor-not-allowed" : ""}`
107
107
  }, /* @__PURE__ */ l.createElement(Y, {
108
108
  ref: f,
109
- renderPopoverContents: y ? z : _,
109
+ renderPopoverContents: b ? z : _,
110
110
  contentWidth: "full",
111
111
  renderPopoverSrcElement: D,
112
112
  onPopoverToggle: (t) => d(t),
113
113
  disabled: v
114
114
  })), h && /* @__PURE__ */ l.createElement("div", {
115
115
  className: "text-[var(--color-red-500)] text-sm"
116
- }, A));
116
+ }, M));
117
117
  };
118
118
  export {
119
- ne as Dropdown
119
+ ce as Dropdown
120
120
  };
121
121
  //# sourceMappingURL=index23.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index23.js","sources":["../src/components/Dropdown/index.tsx"],"sourcesContent":["import React, { FC, useState, useRef, useEffect } from 'react';\n\nimport { Popover, PopoverHandle } from 'src/components/Popover';\nimport { Icon } from 'components/Icon';\nimport { Checkbox } from '../Checkbox';\nimport { Button } from '../Button';\n\ntype DropdownValue = {\n [key: string]: any;\n};\n\ntype DropdownProps = {\n label?: string;\n type: 'select' | 'multi-select';\n dropDownOptions?: DropdownValue[];\n defaultText?: string;\n selectBy?: string;\n optionsUniqueBy?: string;\n displaySelected?: boolean;\n defaultSelectedValue?: DropdownValue;\n onOptionClick?: (selectedValue: DropdownValue) => void;\n style?: React.CSSProperties;\n renderOptionChip?: (option: DropdownValue) => React.ReactNode;\n className?: string;\n iconColor?: string;\n disabled?: boolean;\n dropdownClassName?: string;\n hasError?: boolean;\n errorMessage?: string;\n onApply?: (selectedValue: DropdownValue[]) => void;\n};\n\nexport const Dropdown: FC<DropdownProps> = (props) => {\n const [isDropDownOpen, setIsDropDownOpen] = useState(false);\n const [selectedDropDownValues, setSelectedDropDownValues] = useState<DropdownValue[]>(() =>\n props?.defaultSelectedValue ? [props.defaultSelectedValue] : []\n );\n const popoverRef = useRef<HTMLDivElement & PopoverHandle>(null);\n\n const {\n selectBy = '',\n optionsUniqueBy = '',\n displaySelected = false,\n dropDownOptions,\n defaultText = 'Select',\n iconColor = 'var(--color-gray-700)',\n disabled = false,\n dropdownClassName = '',\n hasError = false,\n errorMessage = ''\n } = props;\n\n useEffect(() => {\n setSelectedDropDownValues(props?.defaultSelectedValue ? [props.defaultSelectedValue] : []);\n }, [props?.defaultSelectedValue]);\n\n const isMultiSelect = props?.type === 'multi-select';\n\n const handleDropDownOptionClick = (dropDownOption: any) => {\n setSelectedDropDownValues([dropDownOption]);\n popoverRef.current?.togglePopover();\n props?.onOptionClick?.(dropDownOption);\n };\n\n const getSelectedDropDownValue = (option: DropdownValue) => {\n if (isMultiSelect) {\n return defaultText;\n }\n return option?.[selectBy] || defaultText;\n };\n\n const clearSelectedDropDownValues = () => {\n setSelectedDropDownValues([]);\n };\n\n const optionChip = (option: DropdownValue) => {\n if (props?.renderOptionChip) {\n return props?.renderOptionChip(option);\n }\n return (\n <p className={`option-chip flex flex-1 items-center justify-between`}>\n {getSelectedDropDownValue(option)}{' '}\n {isMultiSelect && selectedDropDownValues?.length > 0 && (\n <span className=\"w-5 h-5 mx-1 rounded-full bg-[var(--color-gray-700)] text-[var(--color-white)] text-sm flex items-center justify-center\">\n {selectedDropDownValues?.length}\n </span>\n )}\n </p>\n );\n };\n\n const dropDownOptionJsx = (dropDownOption: DropdownValue) => {\n const optionTxt = dropDownOption[selectBy];\n const dropDownSelectedValue = selectedDropDownValues[0]?.[selectBy] || defaultText;\n const selectByUniqueId = optionsUniqueBy?.length\n ? dropDownOption[optionsUniqueBy] == selectedDropDownValues[0]?.[optionsUniqueBy]\n : true;\n const isOptionSelected = displaySelected && optionTxt === dropDownSelectedValue && selectByUniqueId;\n return (\n <div\n key={`$drop-option-${optionTxt}`}\n className={`option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${isOptionSelected ? 'selected' : ''}`}\n onClick={() => handleDropDownOptionClick(dropDownOption)}\n >\n {optionChip({ ...dropDownOption, isOptionSelected })}\n {isOptionSelected && <Icon name=\"checkmark\" stroke={iconColor} />}\n </div>\n );\n };\n\n const renderDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => dropDownOptionJsx(dropDownOption))}\n </div>\n );\n };\n\n const handleMultiSelectDropdownOptionClick = (isSelected: boolean, dropDownOption: DropdownValue) => {\n let newSelectedDropDownValue: DropdownValue[] = [];\n if (isSelected) {\n newSelectedDropDownValue = [...selectedDropDownValues, dropDownOption];\n } else {\n newSelectedDropDownValue = selectedDropDownValues?.filter(\n (option) => option[optionsUniqueBy] !== dropDownOption[optionsUniqueBy]\n );\n }\n setSelectedDropDownValues(newSelectedDropDownValue);\n };\n\n const handleApplySelectedDropDownValues = () => {\n popoverRef.current?.togglePopover();\n props?.onApply?.(selectedDropDownValues);\n };\n\n const multiSelectDropdownOptionJSX = (dropDownOption: DropdownValue) => {\n const isOptionSelected = selectedDropDownValues.some(\n (option) => option[optionsUniqueBy] === dropDownOption[optionsUniqueBy]\n );\n return (\n <div\n key={`$drop-option-${dropDownOption[selectBy]}`}\n className=\"option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between\"\n >\n <Checkbox\n automationId=\"checkbox\"\n className=\"checkbox\"\n defaultChecked={isOptionSelected}\n onChange={(value) => handleMultiSelectDropdownOptionClick(value, dropDownOption)}\n label={dropDownOption?.label}\n />\n </div>\n );\n };\n\n const renderMultiSelectDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => multiSelectDropdownOptionJSX(dropDownOption))}\n <div className=\"flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]\">\n <Button label=\"Clear\" type=\"link\" onClick={clearSelectedDropDownValues} />\n <Button label=\"Apply\" type=\"primary\" onClick={handleApplySelectedDropDownValues} />\n </div>\n </div>\n );\n };\n\n const renderDropdownSelect = () => {\n const borderColor = isDropDownOpen ? 'border-[var(--color-blue-500)]' : disabled ? 'border-[var(--color-gray-300)]' : 'border-[var(--color-gray-600)]';\n const errorBorderColor = hasError ? 'border-[var(--color-red-500)]' : '';\n const dropDownSelectClass = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${errorBorderColor ? errorBorderColor : borderColor} flex items-center ${dropdownClassName}`;\n\n return (\n <div className={dropDownSelectClass}>\n {optionChip(selectedDropDownValues[0])}\n <Icon\n name={'chevron'}\n rotation={isDropDownOpen ? '180' : '0'}\n className={`ml-auto transition-transform`}\n stroke={iconColor}\n />\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-dropdown-container${props?.className ? ` ${props?.className}` : ''}`}\n style={props?.style}\n >\n {props?.label && (\n <div className=\"se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm\">{props?.label}</div>\n )}\n <div\n style={props?.style}\n className={`${disabled ? 'bg-[var(--color-gray-50)] rounded-md cursor-not-allowed' : ''}`}\n >\n <Popover\n ref={popoverRef}\n renderPopoverContents={isMultiSelect ? renderMultiSelectDropdownContents : renderDropdownContents}\n contentWidth={'full'}\n renderPopoverSrcElement={renderDropdownSelect}\n onPopoverToggle={(value) => setIsDropDownOpen(value)}\n disabled={disabled}\n />\n </div>\n {hasError && <div className=\"text-[var(--color-red-500)] text-sm\">{errorMessage}</div>}\n </div>\n );\n};\n"],"names":["React__default","useState","useRef","useEffect","Popover","Icon","Checkbox","Button","Dropdown","props","isDropDownOpen","setIsDropDownOpen","selectedDropDownValues","setSelectedDropDownValues","defaultSelectedValue","popoverRef","selectBy","optionsUniqueBy","displaySelected","dropDownOptions","defaultText","iconColor","disabled","dropdownClassName","hasError","errorMessage","isMultiSelect","type","handleDropDownOptionClick","dropDownOption","_a","_b","current","togglePopover","onOptionClick","getSelectedDropDownValue","option","clearSelectedDropDownValues","optionChip","renderOptionChip","React","createElement","className","length","dropDownOptionJsx","optionTxt","dropDownSelectedValue","selectByUniqueId","isOptionSelected","key","onClick","__spreadProps","__spreadValues","name","stroke","renderDropdownContents","map","handleMultiSelectDropdownOptionClick","isSelected","newSelectedDropDownValue","filter","handleApplySelectedDropDownValues","onApply","multiSelectDropdownOptionJSX","some","automationId","defaultChecked","onChange","value","label","renderMultiSelectDropdownContents","renderDropdownSelect","borderColor","errorBorderColor","dropDownSelectClass","rotation","style","ref","renderPopoverContents","contentWidth","renderPopoverSrcElement","onPopoverToggle"],"mappings":"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"}
1
+ {"version":3,"file":"index23.js","sources":["../src/components/Dropdown/index.tsx"],"sourcesContent":["import React, { FC, useState, useRef, useEffect } from 'react';\n\nimport { Popover, PopoverHandle } from 'src/components/Popover';\nimport { Icon } from 'components/Icon';\nimport { Checkbox } from '../Checkbox';\nimport { Button } from '../Button';\n\ntype DropdownValue = {\n [key: string]: any;\n};\n\ntype DropdownProps = {\n label?: string;\n type: 'select' | 'multi-select';\n dropDownOptions?: DropdownValue[];\n defaultText?: string;\n selectBy?: string;\n optionsUniqueBy?: string;\n displaySelected?: boolean;\n defaultSelectedValue?: DropdownValue | DropdownValue[];\n onOptionClick?: (selectedValue: DropdownValue) => void;\n style?: React.CSSProperties;\n renderOptionChip?: (option: DropdownValue) => React.ReactNode;\n className?: string;\n iconColor?: string;\n disabled?: boolean;\n dropdownClassName?: string;\n hasError?: boolean;\n errorMessage?: string;\n onApply?: (selectedValue: DropdownValue[]) => void;\n};\n\nexport const Dropdown: FC<DropdownProps> = (props) => {\n const [isDropDownOpen, setIsDropDownOpen] = useState(false);\n const [selectedDropDownValues, setSelectedDropDownValues] = useState<DropdownValue[]>(() =>\n props?.defaultSelectedValue\n ? Array.isArray(props?.defaultSelectedValue)\n ? props?.defaultSelectedValue\n : [props.defaultSelectedValue]\n : []\n );\n const popoverRef = useRef<HTMLDivElement & PopoverHandle>(null);\n\n const {\n selectBy = '',\n optionsUniqueBy = '',\n displaySelected = false,\n dropDownOptions,\n defaultText = 'Select',\n iconColor = 'var(--color-gray-700)',\n disabled = false,\n dropdownClassName = '',\n hasError = false,\n errorMessage = ''\n } = props;\n\n useEffect(() => {\n setSelectedDropDownValues(\n props?.defaultSelectedValue\n ? Array.isArray(props?.defaultSelectedValue)\n ? props?.defaultSelectedValue\n : [props.defaultSelectedValue]\n : []\n );\n }, [props?.defaultSelectedValue]);\n\n const isMultiSelect = props?.type === 'multi-select';\n\n const handleDropDownOptionClick = (dropDownOption: any) => {\n setSelectedDropDownValues([dropDownOption]);\n popoverRef.current?.togglePopover();\n props?.onOptionClick?.(dropDownOption);\n };\n\n const getSelectedDropDownValue = (option: DropdownValue) => {\n if (isMultiSelect) {\n return defaultText;\n }\n return option?.[selectBy] || defaultText;\n };\n\n const clearSelectedDropDownValues = () => {\n setSelectedDropDownValues([]);\n };\n\n const optionChip = (option: DropdownValue) => {\n if (props?.renderOptionChip) {\n return props?.renderOptionChip(option);\n }\n return (\n <p className={`option-chip flex flex-1 items-center justify-between`}>\n {getSelectedDropDownValue(option)}{' '}\n {isMultiSelect && selectedDropDownValues?.length > 0 && (\n <span className=\"w-5 h-5 mx-1 rounded-full bg-[var(--color-gray-700)] text-[var(--color-white)] text-sm flex items-center justify-center\">\n {selectedDropDownValues?.length}\n </span>\n )}\n </p>\n );\n };\n\n const dropDownOptionJsx = (dropDownOption: DropdownValue) => {\n const optionTxt = dropDownOption[selectBy];\n const dropDownSelectedValue = selectedDropDownValues[0]?.[selectBy] || defaultText;\n const selectByUniqueId = optionsUniqueBy?.length\n ? dropDownOption[optionsUniqueBy] == selectedDropDownValues[0]?.[optionsUniqueBy]\n : true;\n const isOptionSelected = displaySelected && optionTxt === dropDownSelectedValue && selectByUniqueId;\n return (\n <div\n key={`$drop-option-${optionTxt}`}\n className={`option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between ${isOptionSelected ? 'selected' : ''}`}\n onClick={() => handleDropDownOptionClick(dropDownOption)}\n >\n {optionChip({ ...dropDownOption, isOptionSelected })}\n {isOptionSelected && <Icon name=\"checkmark\" stroke={iconColor} />}\n </div>\n );\n };\n\n const renderDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => dropDownOptionJsx(dropDownOption))}\n </div>\n );\n };\n\n const handleMultiSelectDropdownOptionClick = (isSelected: boolean, dropDownOption: DropdownValue) => {\n let newSelectedDropDownValue: DropdownValue[] = [];\n if (isSelected) {\n newSelectedDropDownValue = [...selectedDropDownValues, dropDownOption];\n } else {\n newSelectedDropDownValue = selectedDropDownValues?.filter(\n (option) => option[optionsUniqueBy] !== dropDownOption[optionsUniqueBy]\n );\n }\n setSelectedDropDownValues(newSelectedDropDownValue);\n };\n\n const handleApplySelectedDropDownValues = () => {\n popoverRef.current?.togglePopover();\n props?.onApply?.(selectedDropDownValues);\n };\n\n const multiSelectDropdownOptionJSX = (dropDownOption: DropdownValue) => {\n const isOptionSelected = selectedDropDownValues.some(\n (option) => option[optionsUniqueBy] === dropDownOption[optionsUniqueBy]\n );\n return (\n <div\n key={`$drop-option-${dropDownOption[selectBy]}`}\n className=\"option px-3 py-2 hover:bg-gray-100 cursor-pointer flex items-center justify-between\"\n >\n <Checkbox\n automationId=\"checkbox\"\n className=\"checkbox\"\n defaultChecked={isOptionSelected}\n onChange={(value) => handleMultiSelectDropdownOptionClick(value, dropDownOption)}\n label={dropDownOption?.label}\n />\n </div>\n );\n };\n\n const renderMultiSelectDropdownContents = () => {\n return (\n <div className=\"dropdown-content dropdown-options\">\n {dropDownOptions?.map((dropDownOption) => multiSelectDropdownOptionJSX(dropDownOption))}\n <div className=\"flex items-center justify-end gap-4 p-3 border-t border-[var(--color-gray-200)]\">\n <Button label=\"Clear\" type=\"link\" onClick={clearSelectedDropDownValues} />\n <Button label=\"Apply\" type=\"primary\" onClick={handleApplySelectedDropDownValues} />\n </div>\n </div>\n );\n };\n\n const renderDropdownSelect = () => {\n const borderColor = isDropDownOpen\n ? 'border-[var(--color-blue-500)]'\n : disabled\n ? 'border-[var(--color-gray-300)]'\n : 'border-[var(--color-gray-600)]';\n const errorBorderColor = hasError ? 'border-[var(--color-red-500)]' : '';\n const dropDownSelectClass = `dropdown-src-element bg-[var(--color-white)] flex px-3 py-2 border rounded-md ${errorBorderColor ? errorBorderColor : borderColor} flex items-center ${dropdownClassName}`;\n\n return (\n <div className={dropDownSelectClass}>\n {optionChip(selectedDropDownValues[0])}\n <Icon\n name={'chevron'}\n rotation={isDropDownOpen ? '180' : '0'}\n className={`ml-auto transition-transform`}\n stroke={iconColor}\n />\n </div>\n );\n };\n\n return (\n <div\n className={`se-design-dropdown-container${props?.className ? ` ${props?.className}` : ''}`}\n style={props?.style}\n >\n {props?.label && (\n <div className=\"se-design-dropdown-label mb-[3px] text-[var(--color-gray-700)] text-sm\">{props?.label}</div>\n )}\n <div\n style={props?.style}\n className={`${disabled ? 'bg-[var(--color-gray-50)] rounded-md cursor-not-allowed' : ''}`}\n >\n <Popover\n ref={popoverRef}\n renderPopoverContents={isMultiSelect ? renderMultiSelectDropdownContents : renderDropdownContents}\n contentWidth={'full'}\n renderPopoverSrcElement={renderDropdownSelect}\n onPopoverToggle={(value) => setIsDropDownOpen(value)}\n disabled={disabled}\n />\n </div>\n {hasError && <div className=\"text-[var(--color-red-500)] text-sm\">{errorMessage}</div>}\n </div>\n );\n};\n"],"names":["React__default","useState","useRef","useEffect","Popover","Icon","Checkbox","Button","Dropdown","props","isDropDownOpen","setIsDropDownOpen","selectedDropDownValues","setSelectedDropDownValues","defaultSelectedValue","Array","isArray","popoverRef","selectBy","optionsUniqueBy","displaySelected","dropDownOptions","defaultText","iconColor","disabled","dropdownClassName","hasError","errorMessage","isMultiSelect","type","handleDropDownOptionClick","dropDownOption","_a","_b","current","togglePopover","onOptionClick","getSelectedDropDownValue","option","clearSelectedDropDownValues","optionChip","renderOptionChip","React","createElement","className","length","dropDownOptionJsx","optionTxt","dropDownSelectedValue","selectByUniqueId","isOptionSelected","key","onClick","__spreadProps","__spreadValues","name","stroke","renderDropdownContents","map","handleMultiSelectDropdownOptionClick","isSelected","newSelectedDropDownValue","filter","handleApplySelectedDropDownValues","onApply","multiSelectDropdownOptionJSX","some","automationId","defaultChecked","onChange","value","label","renderMultiSelectDropdownContents","renderDropdownSelect","borderColor","errorBorderColor","dropDownSelectClass","rotation","style","ref","renderPopoverContents","contentWidth","renderPopoverSrcElement","onPopoverToggle"],"mappings":";;;;;;;;;;;;AAgCO,OAAAA,KAAA,YAAAC,GAAA,UAAAC,GAAA,aAAAC,SAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,SAAA,YAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,MAAMC,KAA+BC,CAAUA,MAAA;AACpD,QAAM,CAACC,GAAgBC,CAAiB,IAAIV,EAAS,EAAK,GACpD,CAACW,GAAwBC,CAAyB,IAAIZ,EAA0B,MACpFQ,KAAAA,QAAAA,EAAOK,uBACHC,MAAMC,QAAQP,KAAAA,gBAAAA,EAAOK,oBAAoB,IACvCL,KAAAA,gBAAAA,EAAOK,uBACP,CAACL,EAAMK,oBAAoB,IAC7B,EACN,GACMG,IAAaf,EAAuC,IAAI,GAExD;AAAA,IACJgB,UAAAA,IAAW;AAAA,IACXC,iBAAAA,IAAkB;AAAA,IAClBC,iBAAAA,IAAkB;AAAA,IAClBC,iBAAAA;AAAAA,IACAC,aAAAA,IAAc;AAAA,IACdC,WAAAA,IAAY;AAAA,IACZC,UAAAA,IAAW;AAAA,IACXC,mBAAAA,IAAoB;AAAA,IACpBC,UAAAA,IAAW;AAAA,IACXC,cAAAA,IAAe;AAAA,EAAA,IACblB;AAEJN,EAAAA,EAAU,MAAM;AACdU,IAAAA,EACEJ,KAAAA,QAAAA,EAAOK,uBACHC,MAAMC,QAAQP,KAAAA,gBAAAA,EAAOK,oBAAoB,IACvCL,KAAAA,gBAAAA,EAAOK,uBACP,CAACL,EAAMK,oBAAoB,IAC7B,CAAA,CACN;AAAA,EAAA,GACC,CAACL,KAAAA,gBAAAA,EAAOK,oBAAoB,CAAC;AAE1Bc,QAAAA,KAAgBnB,KAAAA,gBAAAA,EAAOoB,UAAS,gBAEhCC,IAA4BA,CAACC,MAAwB;AApCtD,QAAAC,GAAAC;AAqCuB,IAAApB,EAAA,CAACkB,CAAc,CAAC,IAC1Cd,IAAAA,EAAWiB,YAAXjB,QAAAA,EAAoBkB,kBACpB1B,IAAAA,KAAAA,gBAAAA,EAAO2B,kBAAP3B,QAAAA,EAAAA,KAAAA,GAAuBsB;AAAAA,EACzB,GAEMM,IAA2BA,CAACC,MAC5BV,IACKN,KAEFgB,KAAAA,gBAAAA,EAASpB,OAAaI,GAGzBiB,IAA8BA,MAAM;AACxC1B,IAAAA,EAA0B,CAAA,CAAE;AAAA,EAC9B,GAEM2B,IAAaA,CAACF,MACd7B,KAAAA,QAAAA,EAAOgC,mBACFhC,KAAAA,gBAAAA,EAAOgC,iBAAiBH,KAG/BI,gBAAAA,EAAAC,cAAA,KAAA;AAAA,IAAGC,WAAW;AAAA,EAAuD,GAClEP,EAAyBC,CAAM,GAAG,KAClCV,MAAiBhB,KAAAA,gBAAAA,EAAwBiC,UAAS,KACjDF,gBAAAA,EAAAA,cAAA,QAAA;AAAA,IAAMC,WAAU;AAAA,EAAA,GACbhC,KAAAA,gBAAAA,EAAwBiC,MACrB,CAEP,GAIDC,IAAoBA,CAACf,MAAkC;AArExD,QAAAC,GAAAC;AAsEGc,UAAAA,IAAYhB,EAAeb,CAAQ,GACnC8B,MAAwBpC,IAAAA,EAAuB,CAAC,MAAxBA,gBAAAA,EAA4BM,OAAaI,GACjE2B,IAAmB9B,KAAAA,QAAAA,EAAiB0B,SACtCd,EAAeZ,CAAe,OAAKP,IAAAA,EAAuB,CAAC,MAAxBA,gBAAAA,EAA4BO,MAC/D,IACE+B,IAAmB9B,KAAmB2B,MAAcC,KAAyBC;AAEjFP,WAAAA,gBAAAA,EAAAC,cAAA,OAAA;AAAA,MACEQ,KAAK,gBAAgBJ,CAAS;AAAA,MAC9BH,WAAW,uFAAuFM,IAAmB,aAAa,EAAE;AAAA,MACpIE,SAASA,MAAMtB,EAA0BC,CAAc;AAAA,OAEtDS,EAAWa,EAAAC,EAAA,IAAKvB,IAAL;AAAA,MAAqBmB,kBAAAA;AAAAA,IAAkB,EAAA,GAClDA,KAAoBR,gBAAAA,EAAAC,cAACtC,GAAI;AAAA,MAACkD,MAAK;AAAA,MAAYC,QAAQjC;AAAAA,IAAAA,CAAY,CAC7D;AAAA,EAET,GAEMkC,IAAyBA,MAE3Bf,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,EAAA,GACZvB,KAAAA,gBAAAA,EAAiBqC,IAAK3B,OAAmBe,EAAkBf,CAAc,EACvE,GAIH4B,IAAuCA,CAACC,GAAqB7B,MAAkC;AACnG,QAAI8B,IAA4C,CAAE;AAClD,IAAID,IACyBC,IAAA,CAAC,GAAGjD,GAAwBmB,CAAc,IAE1CnB,IAAAA,KAAAA,gBAAAA,EAAwBkD,OAChDxB,CAAWA,MAAAA,EAAOnB,CAAe,MAAMY,EAAeZ,CAAe,IAG1EN,EAA0BgD,CAAwB;AAAA,EACpD,GAEME,IAAoCA,MAAM;AA5G3C,QAAA/B,GAAAC;AA6GHhB,KAAAA,IAAAA,EAAWiB,YAAXjB,QAAAA,EAAoBkB,kBACpB1B,IAAAA,KAAAA,gBAAAA,EAAOuD,YAAPvD,QAAAA,EAAAA,KAAAA,GAAiBG;AAAAA,EACnB,GAEMqD,IAA+BA,CAAClC,MAAkC;AAChEmB,UAAAA,IAAmBtC,EAAuBsD,KAC7C5B,CAAAA,MAAWA,EAAOnB,CAAe,MAAMY,EAAeZ,CAAe,CACxE;AAEEuB,WAAAA,gBAAAA,EAAAC,cAAA,OAAA;AAAA,MACEQ,KAAK,gBAAgBpB,EAAeb,CAAQ,CAAC;AAAA,MAC7C0B,WAAU;AAAA,IAAA,GAEVD,gBAAAA,EAAAA,cAACrC,GAAQ;AAAA,MACP6D,cAAa;AAAA,MACbvB,WAAU;AAAA,MACVwB,gBAAgBlB;AAAAA,MAChBmB,UAAWC,CAAAA,MAAUX,EAAqCW,GAAOvC,CAAc;AAAA,MAC/EwC,OAAOxC,KAAAA,gBAAAA,EAAgBwC;AAAAA,IAAAA,CACxB,CACE;AAAA,EAET,GAEMC,IAAoCA,MAEtC9B,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,EAAA,GACZvB,KAAAA,gBAAAA,EAAiBqC,IAAK3B,CAAmBkC,MAAAA,EAA6BlC,CAAc,IACrFY,gBAAAA,EAAAA,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,EAAA,GACbD,gBAAAA,EAAAA,cAACpC,GAAM;AAAA,IAACgE,OAAM;AAAA,IAAQ1C,MAAK;AAAA,IAAOuB,SAASb;AAAAA,EAAAA,CAA8B,GACzEI,gBAAAA,EAAAA,cAACpC,GAAM;AAAA,IAACgE,OAAM;AAAA,IAAQ1C,MAAK;AAAA,IAAUuB,SAASW;AAAAA,EAAoC,CAAA,CAC/E,CACF,GAIHU,IAAuBA,MAAM;AACjC,UAAMC,IAAchE,IAChB,mCACAc,IACE,mCACA,kCACAmD,IAAmBjD,IAAW,kCAAkC,IAChEkD,IAAsB,iFAAiFD,KAAsCD,CAAW,sBAAsBjD,CAAiB;AAGnMiB,WAAAA,gBAAAA,EAAAC,cAAA,OAAA;AAAA,MAAKC,WAAWgC;AAAAA,IAAAA,GACbpC,EAAW5B,EAAuB,CAAC,CAAC,GACrC8B,gBAAAA,EAAAC,cAACtC,GAAI;AAAA,MACHkD,MAAM;AAAA,MACNsB,UAAUnE,IAAiB,QAAQ;AAAA,MACnCkC,WAAW;AAAA,MACXY,QAAQjC;AAAAA,IAAAA,CACT,CACE;AAAA,EAET;AAGEmB,SAAAA,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEC,WAAW,+BAA+BnC,KAAAA,QAAAA,EAAOmC,YAAY,IAAInC,KAAAA,gBAAAA,EAAOmC,SAAS,KAAK,EAAE;AAAA,IACxFkC,OAAOrE,KAAAA,gBAAAA,EAAOqE;AAAAA,EAEbrE,IAAAA,KAAAA,gBAAAA,EAAO8D,UACN7B,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,KAA0EnC,KAAAA,gBAAAA,EAAO8D,KAAW,GAE7G7B,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IACEmC,OAAOrE,KAAAA,gBAAAA,EAAOqE;AAAAA,IACdlC,WAAW,GAAGpB,IAAW,4DAA4D,EAAE;AAAA,EAAA,GAEvFmB,gBAAAA,EAAAA,cAACvC,GAAO;AAAA,IACN2E,KAAK9D;AAAAA,IACL+D,uBAAuBpD,IAAgB4C,IAAoCf;AAAAA,IAC3EwB,cAAc;AAAA,IACdC,yBAAyBT;AAAAA,IACzBU,iBAAkBb,CAAU3D,MAAAA,EAAkB2D,CAAK;AAAA,IACnD9C,UAAAA;AAAAA,EACD,CAAA,CACE,GACJE,KAAYgB,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKC,WAAU;AAAA,EAAqC,GAAEjB,CAAkB,CAClF;AAET;"}
package/dist/index38.js CHANGED
@@ -1,87 +1,87 @@
1
- import n, { useState as h, useRef as $, useEffect as s, useMemo as z } from "react";
2
- import { Icon as g } from "./index5.js";
1
+ import n, { useState as b, useRef as $, useEffect as s, useMemo as z } from "react";
2
+ import { Icon as N } from "./index5.js";
3
3
  import { LabelChip as D } from "./index9.js";
4
4
  import { debounce as F } from "./index140.js";
5
5
  /* empty css */
6
- function q(r) {
6
+ function q(o) {
7
7
  const {
8
- disabled: v = !1,
9
- placeholder: N = "Search",
10
- debounceDuration: f = 500,
11
- onInputChange: l = () => {
8
+ disabled: S = !1,
9
+ placeholder: p = "Search",
10
+ debounceDuration: E = 500,
11
+ onInputChange: c = () => {
12
12
  },
13
- onSearchClear: S = () => {
13
+ onSearchClear: I = () => {
14
14
  },
15
- onChipRemove: I = () => {
15
+ onChipRemove: k = () => {
16
16
  },
17
- updateSearchString: i = "",
18
- collapsible: p = !1,
19
- width: k = "200px",
20
- chips: m = [],
21
- showSearchIcon: w = !0,
22
- renderFilterComponent: b = null
23
- } = r, [t, d] = h(""), [o, E] = h(!(r != null && r.collapsible)), [a, x] = h(m || []), c = $(null);
17
+ updateSearchString: m = "",
18
+ collapsible: h = !1,
19
+ width: w = "200px",
20
+ chips: i = [],
21
+ showSearchIcon: y = !0,
22
+ renderFilterComponent: v = null
23
+ } = o, [t, u] = b(""), [l, x] = b(!(o != null && o.collapsible)), [a, C] = b(i || []), r = $(null);
24
24
  s(() => {
25
- o && c.current && setTimeout(() => {
25
+ l && r.current && setTimeout(() => {
26
26
  var e;
27
- return (e = c == null ? void 0 : c.current) == null ? void 0 : e.focus();
27
+ return (e = r == null ? void 0 : r.current) == null ? void 0 : e.focus();
28
28
  }, 0);
29
- }, [o]), s(() => {
30
- i !== t && d(i);
31
- }, [i]), s(() => {
32
- x(m);
33
- }, [m]);
34
- const u = z(() => F(l, f), [l, f]);
29
+ }, [l]), s(() => {
30
+ m !== t && u(m);
31
+ }, [m]), s(() => {
32
+ C(i);
33
+ }, [i]);
34
+ const d = z(() => F(c, E), [c, E]);
35
35
  s(() => () => {
36
- u.cancel();
37
- }, [u]);
38
- const y = (e) => {
39
- d(e), u(e);
40
- }, B = () => {
41
- d(""), l(""), S();
36
+ d.cancel();
37
+ }, [d]);
38
+ const B = (e) => {
39
+ u(e), d(e);
42
40
  }, H = () => {
43
- p && (t == null ? void 0 : t.trimEnd()) === "" && E(!1);
44
- }, _ = (e) => {
45
- x(a.filter((R) => R !== e)), I(e);
46
- }, C = (a == null ? void 0 : a.length) > 0;
41
+ u(""), c(""), I();
42
+ }, _ = () => {
43
+ h && (t == null ? void 0 : t.trimEnd()) === "" && x(!1);
44
+ }, R = (e) => {
45
+ C(a.filter((f) => (f == null ? void 0 : f.value) !== (e == null ? void 0 : e.value))), k(e);
46
+ }, g = (a == null ? void 0 : a.length) > 0;
47
47
  return /* @__PURE__ */ n.createElement("div", {
48
- className: `se-search-box ${o ? "expand-box" : "shrink-box"}`,
48
+ className: `se-search-box ${l ? "expand-box" : "shrink-box"}`,
49
49
  style: {
50
- width: k
50
+ width: w
51
51
  }
52
- }, o && /* @__PURE__ */ n.createElement("div", {
52
+ }, l && /* @__PURE__ */ n.createElement("div", {
53
53
  className: "search-box-container"
54
54
  }, /* @__PURE__ */ n.createElement("div", {
55
- className: `chips-and-search-box-container${C ? " has-chips" : ""}`
56
- }, C && (a == null ? void 0 : a.map((e) => /* @__PURE__ */ n.createElement(D, {
57
- key: e,
58
- label: e,
55
+ className: `chips-and-search-box-container${g ? " has-chips" : ""}`
56
+ }, g && (a == null ? void 0 : a.map((e) => /* @__PURE__ */ n.createElement(D, {
57
+ key: e == null ? void 0 : e.value,
58
+ label: e == null ? void 0 : e.label,
59
59
  icon: "close",
60
- onIconClick: () => _(e),
60
+ onIconClick: () => R(e),
61
61
  size: "lg"
62
62
  }))), /* @__PURE__ */ n.createElement("div", {
63
63
  className: "search-input-container"
64
- }, w && /* @__PURE__ */ n.createElement(g, {
64
+ }, y && /* @__PURE__ */ n.createElement(N, {
65
65
  name: "search",
66
66
  className: "search-icon img-wrap",
67
- onClick: () => p && E((e) => !e)
67
+ onClick: () => h && x((e) => !e)
68
68
  }), /* @__PURE__ */ n.createElement("input", {
69
- ref: c,
69
+ ref: r,
70
70
  className: "search-input border-transparent focus:border-transparent active:border-transparent focus:ring-0",
71
71
  id: "search_bar",
72
72
  type: "text",
73
- placeholder: N,
74
- onChange: (e) => y(e.target.value),
73
+ placeholder: p,
74
+ onChange: (e) => B(e.target.value),
75
75
  value: t,
76
- disabled: v,
77
- onBlur: H
78
- }), !!t && /* @__PURE__ */ n.createElement(g, {
76
+ disabled: S,
77
+ onBlur: _
78
+ }), !!t && /* @__PURE__ */ n.createElement(N, {
79
79
  name: "close",
80
80
  className: "cross-icon img-wrap",
81
- onClick: B
82
- }))), b && /* @__PURE__ */ n.createElement("div", {
81
+ onClick: H
82
+ }))), v && /* @__PURE__ */ n.createElement("div", {
83
83
  className: "filter-component-container"
84
- }, b())));
84
+ }, v())));
85
85
  }
86
86
  export {
87
87
  q as SearchBox
@@ -1 +1 @@
1
- {"version":3,"file":"index38.js","sources":["../src/components/SearchBox/index.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useRef } from 'react';\n\nimport { Icon } from 'components/Icon';\nimport { LabelChip } from 'components/LabelChip';\nimport { debounce } from 'utils/debounce';\n\nimport './style.scss';\n\nexport interface SearchBoxProps {\n disabled?: boolean;\n placeholder?: string;\n debounceDuration?: number;\n onInputChange?: (value: string) => void;\n onSearchClear?: () => void;\n onChipRemove?: (chip: string) => void;\n updateSearchString?: string;\n collapsible?: boolean;\n width?: string;\n chips?: string[];\n showSearchIcon?: boolean;\n renderFilterComponent?: () => React.ReactNode;\n}\n\nexport function SearchBox(props: SearchBoxProps) {\n const {\n disabled = false,\n placeholder = 'Search',\n debounceDuration = 500,\n onInputChange = () => {},\n onSearchClear = () => {},\n onChipRemove = () => {},\n updateSearchString = '',\n collapsible = false,\n width = '200px',\n chips = [],\n showSearchIcon = true,\n renderFilterComponent = null\n } = props;\n const [inputValue, setInputValue] = useState('');\n const [isExpanded, setIsExpanded] = useState(!props?.collapsible);\n const [searchChips, setSearchChips] = useState<string[]>(chips || []);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (isExpanded && inputRef.current) {\n setTimeout(() => inputRef?.current?.focus(), 0);\n }\n }, [isExpanded]);\n\n // Manually update the searchbox text\n useEffect(() => {\n if (updateSearchString !== inputValue) {\n setInputValue(updateSearchString);\n }\n }, [updateSearchString]);\n\n useEffect(() => {\n setSearchChips(chips);\n }, [chips]);\n\n const debouncedOnInputChange = useMemo(\n () => debounce(onInputChange, debounceDuration),\n [onInputChange, debounceDuration]\n );\n\n useEffect(() => {\n return () => {\n debouncedOnInputChange.cancel();\n };\n }, [debouncedOnInputChange]);\n\n const onChangeHandler = (value: string) => {\n setInputValue(value);\n debouncedOnInputChange(value);\n };\n\n const iconClickHandler = () => {\n setInputValue('');\n onInputChange('');\n onSearchClear();\n };\n\n const onBlurHandler = () => {\n if (collapsible && inputValue?.trimEnd() === '') {\n setIsExpanded(false);\n }\n };\n\n const removeChip = (chip: string) => {\n setSearchChips(searchChips.filter((c) => c !== chip));\n onChipRemove(chip);\n };\n\n const hasChips = searchChips?.length > 0;\n\n return (\n <div className={`se-search-box ${isExpanded ? 'expand-box' : 'shrink-box'}`} style={{ width: width }}>\n {/* <Icon name=\"search\" className=\"search-icon img-wrap\" onClick={() => collapsible && setIsExpanded((prev) => !prev)} /> */}\n {isExpanded && (\n <div className=\"search-box-container\">\n <div className={`chips-and-search-box-container${hasChips ? ' has-chips' : ''}`}>\n {hasChips &&\n searchChips?.map((chip) => (\n <LabelChip key={chip} label={chip} icon=\"close\" onIconClick={() => removeChip(chip)} size=\"lg\" />\n ))}\n <div className=\"search-input-container\">\n {showSearchIcon && (\n <Icon\n name=\"search\"\n className=\"search-icon img-wrap\"\n onClick={() => collapsible && setIsExpanded((prev) => !prev)}\n />\n )}\n <input\n ref={inputRef}\n className={`search-input border-transparent focus:border-transparent active:border-transparent focus:ring-0`}\n id=\"search_bar\"\n type=\"text\"\n placeholder={placeholder}\n onChange={(e) => onChangeHandler(e.target.value)}\n value={inputValue}\n disabled={disabled}\n onBlur={onBlurHandler}\n />\n {!!inputValue && <Icon name=\"close\" className=\"cross-icon img-wrap\" onClick={iconClickHandler} />}\n </div>\n </div>\n {renderFilterComponent && <div className=\"filter-component-container\">{renderFilterComponent()}</div>}\n </div>\n )}\n </div>\n );\n}\n"],"names":["SearchBox","props","disabled","placeholder","debounceDuration","onInputChange","onSearchClear","onChipRemove","updateSearchString","collapsible","width","chips","showSearchIcon","renderFilterComponent","inputValue","setInputValue","useState","isExpanded","setIsExpanded","searchChips","setSearchChips","inputRef","useRef","useEffect","current","setTimeout","focus","debouncedOnInputChange","useMemo","debounce","cancel","onChangeHandler","value","iconClickHandler","onBlurHandler","trimEnd","removeChip","chip","filter","c","hasChips","length","React","createElement","className","style","map","LabelChip","key","label","icon","onIconClick","size","Icon","name","onClick","prev","ref","id","type","onChange","e","target","onBlur"],"mappings":"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"}
1
+ {"version":3,"file":"index38.js","sources":["../src/components/SearchBox/index.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useRef } from 'react';\n\nimport { Icon } from 'components/Icon';\nimport { LabelChip } from 'components/LabelChip';\nimport { debounce } from 'utils/debounce';\n\nimport './style.scss';\ninterface ChipType {\n label: string;\n value: string;\n}\n\nexport interface SearchBoxProps {\n disabled?: boolean;\n placeholder?: string;\n debounceDuration?: number;\n onInputChange?: (value: string) => void;\n onSearchClear?: () => void;\n onChipRemove?: (chip: ChipType) => void;\n updateSearchString?: string;\n collapsible?: boolean;\n width?: string;\n chips?: ChipType[];\n showSearchIcon?: boolean;\n renderFilterComponent?: () => React.ReactNode;\n}\n\nexport function SearchBox(props: SearchBoxProps) {\n const {\n disabled = false,\n placeholder = 'Search',\n debounceDuration = 500,\n onInputChange = () => {},\n onSearchClear = () => {},\n onChipRemove = () => {},\n updateSearchString = '',\n collapsible = false,\n width = '200px',\n chips = [],\n showSearchIcon = true,\n renderFilterComponent = null\n } = props;\n const [inputValue, setInputValue] = useState('');\n const [isExpanded, setIsExpanded] = useState(!props?.collapsible);\n const [searchChips, setSearchChips] = useState<ChipType[]>(chips || []);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (isExpanded && inputRef.current) {\n setTimeout(() => inputRef?.current?.focus(), 0);\n }\n }, [isExpanded]);\n\n // Manually update the searchbox text\n useEffect(() => {\n if (updateSearchString !== inputValue) {\n setInputValue(updateSearchString);\n }\n }, [updateSearchString]);\n\n useEffect(() => {\n setSearchChips(chips);\n }, [chips]);\n\n const debouncedOnInputChange = useMemo(\n () => debounce(onInputChange, debounceDuration),\n [onInputChange, debounceDuration]\n );\n\n useEffect(() => {\n return () => {\n debouncedOnInputChange.cancel();\n };\n }, [debouncedOnInputChange]);\n\n const onChangeHandler = (value: string) => {\n setInputValue(value);\n debouncedOnInputChange(value);\n };\n\n const iconClickHandler = () => {\n setInputValue('');\n onInputChange('');\n onSearchClear();\n };\n\n const onBlurHandler = () => {\n if (collapsible && inputValue?.trimEnd() === '') {\n setIsExpanded(false);\n }\n };\n\n const removeChip = (chip: ChipType) => {\n setSearchChips(searchChips.filter((c) => c?.value !== chip?.value));\n onChipRemove(chip);\n };\n\n const hasChips = searchChips?.length > 0;\n\n return (\n <div className={`se-search-box ${isExpanded ? 'expand-box' : 'shrink-box'}`} style={{ width: width }}>\n {/* <Icon name=\"search\" className=\"search-icon img-wrap\" onClick={() => collapsible && setIsExpanded((prev) => !prev)} /> */}\n {isExpanded && (\n <div className=\"search-box-container\">\n <div className={`chips-and-search-box-container${hasChips ? ' has-chips' : ''}`}>\n {hasChips &&\n searchChips?.map((chip) => (\n <LabelChip\n key={chip?.value}\n label={chip?.label}\n icon=\"close\"\n onIconClick={() => removeChip(chip)}\n size=\"lg\"\n />\n ))}\n <div className=\"search-input-container\">\n {showSearchIcon && (\n <Icon\n name=\"search\"\n className=\"search-icon img-wrap\"\n onClick={() => collapsible && setIsExpanded((prev) => !prev)}\n />\n )}\n <input\n ref={inputRef}\n className={`search-input border-transparent focus:border-transparent active:border-transparent focus:ring-0`}\n id=\"search_bar\"\n type=\"text\"\n placeholder={placeholder}\n onChange={(e) => onChangeHandler(e.target.value)}\n value={inputValue}\n disabled={disabled}\n onBlur={onBlurHandler}\n />\n {!!inputValue && <Icon name=\"close\" className=\"cross-icon img-wrap\" onClick={iconClickHandler} />}\n </div>\n </div>\n {renderFilterComponent && <div className=\"filter-component-container\">{renderFilterComponent()}</div>}\n </div>\n )}\n </div>\n );\n}\n"],"names":["SearchBox","props","disabled","placeholder","debounceDuration","onInputChange","onSearchClear","onChipRemove","updateSearchString","collapsible","width","chips","showSearchIcon","renderFilterComponent","inputValue","setInputValue","useState","isExpanded","setIsExpanded","searchChips","setSearchChips","inputRef","useRef","useEffect","current","setTimeout","focus","debouncedOnInputChange","useMemo","debounce","cancel","onChangeHandler","value","iconClickHandler","onBlurHandler","trimEnd","removeChip","chip","filter","c","hasChips","length","React","createElement","className","style","map","LabelChip","key","label","icon","onIconClick","size","Icon","name","onClick","prev","ref","id","type","onChange","e","target","onBlur"],"mappings":"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"}
package/dist/index43.js CHANGED
@@ -1,41 +1,41 @@
1
- var q = Object.defineProperty;
2
- var m = Object.getOwnPropertySymbols;
3
- var $ = Object.prototype.hasOwnProperty, b = Object.prototype.propertyIsEnumerable;
4
- var I = (e, t, a) => t in e ? q(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a, x = (e, t) => {
1
+ var D = Object.defineProperty;
2
+ var d = Object.getOwnPropertySymbols;
3
+ var $ = Object.prototype.hasOwnProperty, x = Object.prototype.propertyIsEnumerable;
4
+ var I = (e, t, a) => t in e ? D(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a, S = (e, t) => {
5
5
  for (var a in t || (t = {}))
6
6
  $.call(t, a) && I(e, a, t[a]);
7
- if (m)
8
- for (var a of m(t))
9
- b.call(t, a) && I(e, a, t[a]);
7
+ if (d)
8
+ for (var a of d(t))
9
+ x.call(t, a) && I(e, a, t[a]);
10
10
  return e;
11
11
  };
12
- var S = (e, t) => {
12
+ var y = (e, t) => {
13
13
  var a = {};
14
14
  for (var l in e)
15
15
  $.call(e, l) && t.indexOf(l) < 0 && (a[l] = e[l]);
16
- if (e != null && m)
17
- for (var l of m(e))
18
- t.indexOf(l) < 0 && b.call(e, l) && (a[l] = e[l]);
16
+ if (e != null && d)
17
+ for (var l of d(e))
18
+ t.indexOf(l) < 0 && x.call(e, l) && (a[l] = e[l]);
19
19
  return a;
20
20
  };
21
- import n, { useRef as D, useEffect as y } from "react";
21
+ import n, { useRef as G, useEffect as B } from "react";
22
22
  /* empty css */
23
- import { Icon as B } from "./index5.js";
24
- const P = /* @__PURE__ */ n.memo((G) => {
25
- var h = G, {
23
+ import { Icon as L } from "./index5.js";
24
+ const Q = /* @__PURE__ */ n.memo((H) => {
25
+ var w = H, {
26
26
  value: e,
27
27
  onChange: t,
28
28
  disabled: a = !1,
29
29
  maxLength: l,
30
- tag: L = "input",
31
- error: d = !1,
32
- errorMessage: _,
33
- label: E,
30
+ tag: _ = "input",
31
+ error: f = !1,
32
+ errorMessage: j,
33
+ label: N,
34
34
  placeholder: z,
35
35
  suggestions: i = [],
36
- customRenderSuggestions: s,
37
- onSuggestionClick: N
38
- } = h, A = S(h, [
36
+ customRenderSuggestions: m,
37
+ onSuggestionClick: v
38
+ } = w, A = y(w, [
39
39
  "value",
40
40
  "onChange",
41
41
  "disabled",
@@ -49,77 +49,79 @@ const P = /* @__PURE__ */ n.memo((G) => {
49
49
  "customRenderSuggestions",
50
50
  "onSuggestionClick"
51
51
  ]);
52
- const [o, f] = n.useState([...i]), [w, p] = n.useState(!1), u = D(null), F = n.useCallback((r) => {
52
+ const [o, p] = n.useState([...i]), [h, E] = n.useState(!1), u = G(null), F = n.useCallback((r) => {
53
53
  const c = r.target.value;
54
- if (s)
54
+ if (m)
55
55
  t(c, !1);
56
56
  else if (t(c), c === "")
57
- f([...i]);
57
+ p([...i]);
58
58
  else if (c) {
59
- const j = i == null ? void 0 : i.filter((C) => {
60
- var k;
61
- return typeof C == "string" && C.toLowerCase().includes((k = c == null ? void 0 : c.toLowerCase()) != null ? k : "");
59
+ const q = i == null ? void 0 : i.filter((s) => {
60
+ var k, b;
61
+ return typeof s == "object" && ((b = s == null ? void 0 : s.label) == null ? void 0 : b.toLowerCase().includes((k = c == null ? void 0 : c.toLowerCase()) != null ? k : ""));
62
62
  });
63
- f([...j]);
63
+ p([...q]);
64
64
  }
65
- }, [t, i, s]);
66
- y(() => {
67
- f([...i]);
68
- }, [i]), y(() => {
65
+ }, [t, i, m]);
66
+ B(() => {
67
+ p([...i]);
68
+ }, [i]), B(() => {
69
69
  const r = (c) => {
70
- u.current && !u.current.contains(c.target) && p(!1);
70
+ u.current && !u.current.contains(c.target) && E(!1);
71
71
  };
72
72
  return document.addEventListener("mousedown", r), () => {
73
73
  document.removeEventListener("mousedown", r);
74
74
  };
75
75
  }, []);
76
76
  const O = () => {
77
- p(!0);
78
- }, v = (r) => {
79
- t(r, !0), p(!1), N && N(r);
77
+ E(!0);
78
+ }, C = (r) => {
79
+ t(r, !0), E(!1), v && v(r);
80
80
  }, V = () => {
81
81
  t("", !1);
82
82
  };
83
83
  return /* @__PURE__ */ n.createElement("div", {
84
84
  className: "main-container-autocomplete-se-design",
85
85
  ref: u
86
- }, E && /* @__PURE__ */ n.createElement("label", {
86
+ }, N && /* @__PURE__ */ n.createElement("span", {
87
87
  className: "label-container"
88
- }, E), /* @__PURE__ */ n.createElement("div", {
88
+ }, N), /* @__PURE__ */ n.createElement("div", {
89
+ className: "input-container-wrapper"
90
+ }, /* @__PURE__ */ n.createElement("div", {
89
91
  className: "input-wrapper"
90
- }, /* @__PURE__ */ n.createElement(L, x({
92
+ }, /* @__PURE__ */ n.createElement(_, S({
91
93
  value: e,
92
94
  onChange: F,
93
95
  onClick: O,
94
96
  disabled: a,
95
- className: `${d ? "input-container-error" : "input-container-default"} ${a ? "input-container-disabled" : ""} ${o.length > 0 || e ? "with-icon" : ""} ${o.length > 0 && e ? "with-icons" : ""}`,
97
+ className: `${f ? "input-container-error" : "input-container-default"} ${a ? "input-container-disabled" : ""} ${o.length > 0 || e ? "with-icon" : ""} ${o.length > 0 && e ? "with-icons" : ""}`,
96
98
  maxLength: l,
97
99
  placeholder: z
98
- }, A)), e && /* @__PURE__ */ n.createElement(B, {
100
+ }, A)), e && /* @__PURE__ */ n.createElement(L, {
99
101
  name: "close",
100
102
  className: "input-icon-close",
101
103
  size: 15,
102
104
  onClick: V
103
- }), o.length > 0 && /* @__PURE__ */ n.createElement(B, {
105
+ }), o.length > 0 && /* @__PURE__ */ n.createElement(L, {
104
106
  name: "chevron",
105
- rotation: w ? "180" : "0",
107
+ rotation: h ? "180" : "0",
106
108
  className: "input-icon-chevron"
107
- })), w && o.length > 0 && /* @__PURE__ */ n.createElement("div", {
109
+ })), h && o.length > 0 && /* @__PURE__ */ n.createElement("div", {
108
110
  className: "suggestions-list"
109
- }, s ? s(o, v) : o.map((r, c) => /* @__PURE__ */ n.createElement("div", {
111
+ }, m ? m(o, C) : o.map((r, c) => /* @__PURE__ */ n.createElement("div", {
110
112
  key: c,
111
113
  className: "suggestion-item",
112
- onClick: () => v(r)
113
- }, r))), /* @__PURE__ */ n.createElement("div", {
114
- className: `${d ? "error-and-max-word" : "max-word-container"}`
115
- }, d && /* @__PURE__ */ n.createElement("div", {
114
+ onClick: () => C(r.value)
115
+ }, r.label)))), /* @__PURE__ */ n.createElement("div", {
116
+ className: `${f ? "error-and-max-word" : "max-word-container"}`
117
+ }, f && /* @__PURE__ */ n.createElement("div", {
116
118
  id: "error-message",
117
119
  className: "error-message"
118
- }, _), l && /* @__PURE__ */ n.createElement("div", {
120
+ }, j), l && /* @__PURE__ */ n.createElement("div", {
119
121
  className: "max-word"
120
122
  }, e.length, "/", l)));
121
123
  });
122
124
  export {
123
- P as AutoCompleteInput
125
+ Q as AutoCompleteInput
124
126
  };
125
127
  //# sourceMappingURL=index43.js.map