iguazio.dashboard-react-controls 3.0.4 → 3.1.1

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.
Files changed (178) hide show
  1. package/dist/components/ActionsMenu/ActionsMenu.d.ts +18 -0
  2. package/dist/components/ActionsMenu/ActionsMenu.d.ts.map +1 -0
  3. package/dist/components/ActionsMenu/ActionsMenu.mjs +126 -0
  4. package/dist/components/ActionsMenu/ActionsMenu.mjs.map +1 -0
  5. package/dist/components/BlockerSpy/BlockerSpy.d.ts +12 -0
  6. package/dist/components/BlockerSpy/BlockerSpy.d.ts.map +1 -0
  7. package/dist/components/BlockerSpy/BlockerSpy.mjs +18 -0
  8. package/dist/components/BlockerSpy/BlockerSpy.mjs.map +1 -0
  9. package/dist/components/Button/Button.mjs +21 -20
  10. package/dist/components/Button/Button.mjs.map +1 -1
  11. package/dist/components/Chip/Chip.d.ts +3 -0
  12. package/dist/components/Chip/Chip.d.ts.map +1 -0
  13. package/dist/components/Chip/Chip.mjs +153 -0
  14. package/dist/components/Chip/Chip.mjs.map +1 -0
  15. package/dist/components/Chip/Chip.stories.d.ts +26 -0
  16. package/dist/components/Chip/Chip.stories.d.ts.map +1 -0
  17. package/dist/components/ChipCell/ChipCell.d.ts +3 -0
  18. package/dist/components/ChipCell/ChipCell.d.ts.map +1 -0
  19. package/dist/components/ChipCell/ChipCell.mjs +212 -0
  20. package/dist/components/ChipCell/ChipCell.mjs.map +1 -0
  21. package/dist/components/ChipCell/ChipTooltip/ChipTooltip.d.ts +15 -0
  22. package/dist/components/ChipCell/ChipTooltip/ChipTooltip.d.ts.map +1 -0
  23. package/dist/components/ChipCell/ChipTooltip/ChipTooltip.mjs +36 -0
  24. package/dist/components/ChipCell/ChipTooltip/ChipTooltip.mjs.map +1 -0
  25. package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts +35 -0
  26. package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts.map +1 -0
  27. package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs +73 -0
  28. package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs.map +1 -0
  29. package/dist/components/ChipForm/ChipForm.d.ts +25 -0
  30. package/dist/components/ChipForm/ChipForm.d.ts.map +1 -0
  31. package/dist/components/ChipForm/ChipForm.mjs +184 -0
  32. package/dist/components/ChipForm/ChipForm.mjs.map +1 -0
  33. package/dist/components/CopyToClipboard/CopyToClipboard.d.ts +18 -0
  34. package/dist/components/CopyToClipboard/CopyToClipboard.d.ts.map +1 -0
  35. package/dist/components/CopyToClipboard/CopyToClipboard.mjs +51 -0
  36. package/dist/components/CopyToClipboard/CopyToClipboard.mjs.map +1 -0
  37. package/dist/components/ErrorMessage/ErrorMessage.d.ts +12 -0
  38. package/dist/components/ErrorMessage/ErrorMessage.d.ts.map +1 -0
  39. package/dist/components/ErrorMessage/ErrorMessage.mjs +23 -0
  40. package/dist/components/ErrorMessage/ErrorMessage.mjs.map +1 -0
  41. package/dist/components/FormChipCell/FormChipCellView.mjs +1 -1
  42. package/dist/components/LoadButton/LoadButton.d.ts +16 -0
  43. package/dist/components/LoadButton/LoadButton.d.ts.map +1 -0
  44. package/dist/components/LoadButton/LoadButton.mjs +22 -0
  45. package/dist/components/LoadButton/LoadButton.mjs.map +1 -0
  46. package/dist/components/LoadButton/LoadButton.stories.d.ts +10 -0
  47. package/dist/components/LoadButton/LoadButton.stories.d.ts.map +1 -0
  48. package/dist/components/Loader/Loader.d.ts +3 -0
  49. package/dist/components/Loader/Loader.d.ts.map +1 -0
  50. package/dist/components/Loader/Loader.mjs +24 -0
  51. package/dist/components/Loader/Loader.mjs.map +1 -0
  52. package/dist/components/Loader/LoaderForSuspenseFallback.d.ts +3 -0
  53. package/dist/components/Loader/LoaderForSuspenseFallback.d.ts.map +1 -0
  54. package/dist/components/Loader/LoaderForSuspenseFallback.mjs +13 -0
  55. package/dist/components/Loader/LoaderForSuspenseFallback.mjs.map +1 -0
  56. package/dist/components/TableCell/TableCell.d.ts +28 -0
  57. package/dist/components/TableCell/TableCell.d.ts.map +1 -0
  58. package/dist/components/TableCell/TableCell.mjs +104 -0
  59. package/dist/components/TableCell/TableCell.mjs.map +1 -0
  60. package/dist/components/TabsSlider/TabsSlider.d.ts +20 -0
  61. package/dist/components/TabsSlider/TabsSlider.d.ts.map +1 -0
  62. package/dist/components/TabsSlider/TabsSlider.mjs +133 -0
  63. package/dist/components/TabsSlider/TabsSlider.mjs.map +1 -0
  64. package/dist/components/index.d.ts +12 -1
  65. package/dist/components/index.d.ts.map +1 -1
  66. package/dist/components/index.mjs +60 -38
  67. package/dist/components/index.mjs.map +1 -1
  68. package/dist/constants.d.ts +8 -0
  69. package/dist/constants.d.ts.map +1 -1
  70. package/dist/constants.mjs +34 -26
  71. package/dist/constants.mjs.map +1 -1
  72. package/dist/elements/ActionsMenuItem/ActionsMenuItem.d.ts +16 -0
  73. package/dist/elements/ActionsMenuItem/ActionsMenuItem.d.ts.map +1 -0
  74. package/dist/elements/ActionsMenuItem/ActionsMenuItem.mjs +51 -0
  75. package/dist/elements/ActionsMenuItem/ActionsMenuItem.mjs.map +1 -0
  76. package/dist/elements/TableHead/TableHead.d.ts +20 -0
  77. package/dist/elements/TableHead/TableHead.d.ts.map +1 -0
  78. package/dist/elements/TableHead/TableHead.mjs +58 -0
  79. package/dist/elements/TableHead/TableHead.mjs.map +1 -0
  80. package/dist/elements/TableLinkCell/TableLinkCell.d.ts +24 -0
  81. package/dist/elements/TableLinkCell/TableLinkCell.d.ts.map +1 -0
  82. package/dist/elements/TableLinkCell/TableLinkCell.mjs +87 -0
  83. package/dist/elements/TableLinkCell/TableLinkCell.mjs.map +1 -0
  84. package/dist/elements/TableTypeCell/TableTypeCell.d.ts +12 -0
  85. package/dist/elements/TableTypeCell/TableTypeCell.d.ts.map +1 -0
  86. package/dist/elements/TableTypeCell/TableTypeCell.mjs +37 -0
  87. package/dist/elements/TableTypeCell/TableTypeCell.mjs.map +1 -0
  88. package/dist/elements/index.d.ts +5 -1
  89. package/dist/elements/index.d.ts.map +1 -1
  90. package/dist/elements/index.mjs +18 -10
  91. package/dist/elements/index.mjs.map +1 -1
  92. package/dist/hooks/index.d.ts +3 -0
  93. package/dist/hooks/index.mjs +14 -8
  94. package/dist/hooks/index.mjs.map +1 -1
  95. package/dist/hooks/useDetails.hook.d.ts +72 -0
  96. package/dist/hooks/useDetails.hook.d.ts.map +1 -0
  97. package/dist/hooks/useDetails.hook.mjs +204 -0
  98. package/dist/hooks/useDetails.hook.mjs.map +1 -0
  99. package/dist/hooks/useDetailsHeader.hook.d.ts +77 -0
  100. package/dist/hooks/useDetailsHeader.hook.d.ts.map +1 -0
  101. package/dist/hooks/useDetailsHeader.hook.mjs +219 -0
  102. package/dist/hooks/useDetailsHeader.hook.mjs.map +1 -0
  103. package/dist/hooks/useTable.hook.d.ts +60 -0
  104. package/dist/hooks/useTable.hook.d.ts.map +1 -0
  105. package/dist/hooks/useTable.hook.mjs +129 -0
  106. package/dist/hooks/useTable.hook.mjs.map +1 -0
  107. package/dist/images/add.svg.mjs +2 -3
  108. package/dist/images/add.svg.mjs.map +1 -1
  109. package/dist/images/add.svg2.mjs +6 -0
  110. package/dist/images/add.svg2.mjs.map +1 -0
  111. package/dist/images/cancel.svg +3 -0
  112. package/dist/images/copy-to-clipboard-icon.svg.mjs +6 -0
  113. package/dist/images/copy-to-clipboard-icon.svg.mjs.map +1 -0
  114. package/dist/images/elipsis.svg.mjs +6 -0
  115. package/dist/images/elipsis.svg.mjs.map +1 -0
  116. package/dist/images/history.svg.mjs +6 -0
  117. package/dist/images/history.svg.mjs.map +1 -0
  118. package/dist/images/ml-enlarge.svg.mjs +6 -0
  119. package/dist/images/ml-enlarge.svg.mjs.map +1 -0
  120. package/dist/images/ml-minimize.svg.mjs +6 -0
  121. package/dist/images/ml-minimize.svg.mjs.map +1 -0
  122. package/dist/images/refresh.svg.mjs +6 -0
  123. package/dist/images/refresh.svg.mjs.map +1 -0
  124. package/dist/images/unsuccess_alert.svg.mjs +6 -0
  125. package/dist/images/unsuccess_alert.svg.mjs.map +1 -0
  126. package/dist/index.css +1 -1
  127. package/dist/index.d.ts +2 -1
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.mjs +10 -8
  130. package/dist/index.mjs.map +1 -1
  131. package/dist/reducers/commonDetailsReducer.d.ts +12 -0
  132. package/dist/reducers/commonDetailsReducer.d.ts.map +1 -0
  133. package/dist/reducers/commonDetailsReducer.mjs +77 -0
  134. package/dist/reducers/commonDetailsReducer.mjs.map +1 -0
  135. package/dist/reducers/index.d.ts +3 -0
  136. package/dist/reducers/index.d.ts.map +1 -0
  137. package/dist/reducers/index.mjs +7 -0
  138. package/dist/reducers/index.mjs.map +1 -0
  139. package/dist/reducers/notificationReducer.d.ts +3 -0
  140. package/dist/reducers/notificationReducer.d.ts.map +1 -0
  141. package/dist/reducers/notificationReducer.mjs +21 -0
  142. package/dist/reducers/notificationReducer.mjs.map +1 -0
  143. package/dist/scss/common.scss +655 -0
  144. package/dist/scss/details.scss +376 -0
  145. package/dist/scss/mixins.scss +1 -1
  146. package/dist/scss/table.scss +283 -0
  147. package/dist/types.d.ts +6 -0
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.mjs +89 -45
  150. package/dist/types.mjs.map +1 -1
  151. package/dist/utils/chips.util.d.ts +30 -0
  152. package/dist/utils/chips.util.d.ts.map +1 -0
  153. package/dist/utils/chips.util.mjs +75 -0
  154. package/dist/utils/chips.util.mjs.map +1 -0
  155. package/dist/utils/common.util.d.ts +5 -0
  156. package/dist/utils/common.util.d.ts.map +1 -1
  157. package/dist/utils/common.util.mjs +80 -33
  158. package/dist/utils/common.util.mjs.map +1 -1
  159. package/dist/utils/datetime.util.d.ts +9 -0
  160. package/dist/utils/datetime.util.d.ts.map +1 -0
  161. package/dist/utils/datetime.util.mjs +53 -0
  162. package/dist/utils/datetime.util.mjs.map +1 -0
  163. package/dist/utils/filter.util.d.ts +5 -0
  164. package/dist/utils/filter.util.d.ts.map +1 -0
  165. package/dist/utils/filter.util.mjs +23 -0
  166. package/dist/utils/filter.util.mjs.map +1 -0
  167. package/dist/utils/index.d.ts +5 -0
  168. package/dist/utils/index.mjs +22 -12
  169. package/dist/utils/index.mjs.map +1 -1
  170. package/dist/utils/notification.util.d.ts +2 -0
  171. package/dist/utils/notification.util.d.ts.map +1 -0
  172. package/dist/utils/notification.util.mjs +17 -0
  173. package/dist/utils/notification.util.mjs.map +1 -0
  174. package/dist/utils/string.util.d.ts +6 -0
  175. package/dist/utils/string.util.d.ts.map +1 -0
  176. package/dist/utils/string.util.mjs +13 -0
  177. package/dist/utils/string.util.mjs.map +1 -0
  178. package/package.json +11 -1
@@ -0,0 +1,212 @@
1
+ import { jsx as f, jsxs as R } from "react/jsx-runtime";
2
+ import G, { useState as J, useMemo as Q, useCallback as I } from "react";
3
+ import A from "classnames";
4
+ import r from "prop-types";
5
+ import X from "../Chip/Chip.mjs";
6
+ import Y from "./ChipTooltip/ChipTooltip.mjs";
7
+ import Z from "./HiddenChipsBlock/HiddenChipsBlock.mjs";
8
+ import { CHIP_OPTIONS as O } from "../../types.mjs";
9
+ import { CLICK as L, TAB as M, TAB_SHIFT as ee } from "../../constants.mjs";
10
+ import { cutChips as ie } from "../../utils/chips.util.mjs";
11
+ import { isEveryObjectValueEmpty as se } from "../../utils/common.util.mjs";
12
+ import "../../hooks/index.mjs";
13
+ import re from "../../images/add.svg.mjs";
14
+ /* empty css */
15
+ import { useChipCell as oe } from "../../hooks/useChipCell.hook.mjs";
16
+ const H = ({
17
+ addChip: N = () => {
18
+ },
19
+ chipOptions: l = {
20
+ background: "purple",
21
+ boldValue: !1,
22
+ borderRadius: "primary",
23
+ borderColor: "transparent",
24
+ density: "dense",
25
+ font: "purple"
26
+ },
27
+ className: b,
28
+ delimiter: x = null,
29
+ editChip: F = () => {
30
+ },
31
+ elements: o = [],
32
+ isEditMode: t = !1,
33
+ onClick: y = () => {
34
+ },
35
+ removeChip: g = () => {
36
+ },
37
+ shortChips: S = !1,
38
+ setValidation: j = null,
39
+ visibleChipsMaxLength: u = null
40
+ }) => {
41
+ const {
42
+ chipsCellRef: k,
43
+ chipsWrapperRef: B,
44
+ handleShowElements: v,
45
+ hiddenChipsCounterRef: T,
46
+ hiddenChipsPopUpRef: D,
47
+ setChipsSizes: V,
48
+ setShowHiddenChips: $,
49
+ showChips: z,
50
+ showHiddenChips: w,
51
+ visibleChipsCount: E
52
+ } = oe(t, u), [s, n] = J({
53
+ chipIndex: null,
54
+ isEdit: !1,
55
+ isKeyFocused: !0,
56
+ isValueFocused: !1,
57
+ isNewChip: !1
58
+ }), U = A(
59
+ "button-add",
60
+ b,
61
+ l.background && `button-add-background_${l.background}`,
62
+ l.borderColor && `button-add-border_${l.borderColor}`,
63
+ l.font && `button-add-font_${l.font}`,
64
+ l.density && `button-add-density_${l.density}`
65
+ ), W = A("chips-wrapper", t && "fixed-max-width");
66
+ let C = Q(() => t && !u || u === "all" ? {
67
+ visibleChips: o.map((e) => ({
68
+ value: e,
69
+ delimiter: x
70
+ }))
71
+ } : ie(
72
+ o,
73
+ u || E,
74
+ x
75
+ ), [x, o, t, E, u]);
76
+ const q = I(
77
+ (e, i) => {
78
+ e.preventDefault(), !s.isEdit && !s.chipIndex && N(i, o), w && $(!1), n({
79
+ chipIndex: o.length,
80
+ isEdit: !0,
81
+ isKeyFocused: !0,
82
+ isValueFocused: !1,
83
+ isNewChip: !0
84
+ });
85
+ },
86
+ [
87
+ s.isEdit,
88
+ s.chipIndex,
89
+ w,
90
+ o,
91
+ N,
92
+ $
93
+ ]
94
+ ), a = I(
95
+ (e, i) => {
96
+ e.stopPropagation();
97
+ const c = o.filter((h, m) => m !== i);
98
+ g(c);
99
+ },
100
+ [o, g]
101
+ ), _ = I(
102
+ (e, i, c) => {
103
+ var m, P;
104
+ e.preventDefault();
105
+ const h = !!(i.key && i.value && ((m = i.key) != null && m.trim()) && ((P = i.value) != null && P.trim()));
106
+ if (h) {
107
+ const d = [...o];
108
+ d[s.chipIndex] = `${i.key}: ${i.value}`, F(d);
109
+ }
110
+ c === L ? (s.isNewChip && !h && a(e, s.chipIndex), n({
111
+ chipIndex: null,
112
+ isEdit: !1,
113
+ isKeyFocused: !0,
114
+ isValueFocused: !1,
115
+ isNewChip: !1
116
+ })) : c === M ? (s.isNewChip && !h && a(e, s.chipIndex), n((d) => {
117
+ const p = d.chipIndex + 1 > o.length - 1;
118
+ return {
119
+ chipIndex: p ? null : d.chipIndex + 1,
120
+ isEdit: !p,
121
+ isKeyFocused: !0,
122
+ isValueFocused: !1,
123
+ isNewChip: !1
124
+ };
125
+ })) : c === ee && (s.isNewChip && !h && a(e, s.chipIndex), n((d) => {
126
+ const p = d.chipIndex - 1 < 0;
127
+ return {
128
+ chipIndex: p ? null : d.chipIndex - 1,
129
+ isEdit: !p,
130
+ isKeyFocused: p,
131
+ isValueFocused: !p,
132
+ isNewChip: !1
133
+ };
134
+ }));
135
+ },
136
+ [o, s.chipIndex, s.isNewChip, F, a]
137
+ ), K = I(
138
+ (e, i) => {
139
+ t && (e.stopPropagation(), n({
140
+ chipIndex: i,
141
+ isEdit: !0,
142
+ isKeyFocused: !0,
143
+ isValueFocused: !1
144
+ })), y && y();
145
+ },
146
+ [t, y]
147
+ );
148
+ return (t || !se(C)) && /* @__PURE__ */ f("div", { className: "chips-cell", ref: k, children: /* @__PURE__ */ R("div", { className: W, ref: B, children: [
149
+ C.visibleChips.map((e, i) => /* @__PURE__ */ R("div", { className: "chip-block", children: [
150
+ /* @__PURE__ */ f(Y, { chip: e, editConfig: s, children: /* @__PURE__ */ f(
151
+ X,
152
+ {
153
+ chip: e,
154
+ chipIndex: i,
155
+ chipOptions: l,
156
+ className: b,
157
+ editConfig: s,
158
+ handleEditChip: _,
159
+ handleIsEdit: K,
160
+ handleRemoveChip: a,
161
+ isEditMode: t,
162
+ onClick: v,
163
+ ref: { chipsCellRef: k, hiddenChipsCounterRef: T },
164
+ setChipsSizes: V,
165
+ setEditConfig: n,
166
+ setValidation: j,
167
+ shortChip: S,
168
+ showChips: z,
169
+ textOverflowEllipsis: !0
170
+ }
171
+ ) }, e.value),
172
+ C.visibleChips.length - 1 === i && w && /* @__PURE__ */ f(
173
+ Z,
174
+ {
175
+ chipOptions: l,
176
+ className: b,
177
+ chips: C.hiddenChips,
178
+ chipIndex: i,
179
+ editConfig: s,
180
+ handleEditChip: _,
181
+ handleIsEdit: K,
182
+ handleRemoveChip: a,
183
+ handleShowElements: v,
184
+ isEditMode: t,
185
+ setEditConfig: n,
186
+ setChipsSizes: V,
187
+ ref: { hiddenChipsCounterRef: T, hiddenChipsPopUpRef: D }
188
+ }
189
+ )
190
+ ] }, `${e.value}${i}`)),
191
+ t && /* @__PURE__ */ f("button", { className: U, onClick: (e) => q(e, ":"), children: /* @__PURE__ */ f(re, {}) })
192
+ ] }) });
193
+ };
194
+ H.propTypes = {
195
+ addChip: r.func,
196
+ chipOptions: O,
197
+ className: r.string,
198
+ delimiter: r.oneOfType([r.string, r.element]),
199
+ editChip: r.func,
200
+ elements: r.arrayOf(r.string),
201
+ isEditMode: r.bool,
202
+ onClick: r.func,
203
+ removeChip: r.func,
204
+ setValidation: r.func,
205
+ shortChips: r.bool,
206
+ visibleChipsMaxLength: r.oneOfType([r.string, r.number])
207
+ };
208
+ const ye = G.memo(H);
209
+ export {
210
+ ye as default
211
+ };
212
+ //# sourceMappingURL=ChipCell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipCell.mjs","sources":["../../../src/lib/components/ChipCell/ChipCell.jsx"],"sourcesContent":["/*\nCopyright 2019 Iguazio Systems Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\") with\nan addition restriction as set forth herein. You may not use this\nfile except in compliance with the License. You may obtain a copy of\nthe License at http://www.apache.org/licenses/LICENSE-2.0.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied. See the License for the specific language governing\npermissions and limitations under the License.\n\nIn addition, you may not use the software for any purposes that are\nillegal under applicable law, and the grant of the foregoing license\nunder the Apache 2.0 license is conditioned upon your compliance with\nsuch restriction.\n*/\nimport React, { useState, useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport PropTypes from 'prop-types'\n\nimport Chip from '../Chip/Chip'\nimport ChipTooltip from './ChipTooltip/ChipTooltip'\nimport HiddenChipsBlock from './HiddenChipsBlock/HiddenChipsBlock'\n\nimport { CHIP_OPTIONS } from '../../types'\nimport { CLICK, TAB, TAB_SHIFT } from '../../constants'\nimport { cutChips } from '../../utils/chips.util'\nimport { isEveryObjectValueEmpty } from '../../utils/common.util'\nimport { useChipCell } from '../../hooks'\n\nimport Add from '../../images/add.svg'\n\nimport './chipCell.scss'\n\nconst ChipCell = ({\n addChip = () => {},\n chipOptions = {\n background: 'purple',\n boldValue: false,\n borderRadius: 'primary',\n borderColor: 'transparent',\n density: 'dense',\n font: 'purple'\n },\n className,\n delimiter = null,\n editChip = () => {},\n elements = [],\n isEditMode = false,\n onClick = () => {},\n removeChip = () => {},\n shortChips = false,\n setValidation = null,\n visibleChipsMaxLength = null\n}) => {\n const {\n chipsCellRef,\n chipsWrapperRef,\n handleShowElements,\n hiddenChipsCounterRef,\n hiddenChipsPopUpRef,\n setChipsSizes,\n setShowHiddenChips,\n showChips,\n showHiddenChips,\n visibleChipsCount\n } = useChipCell(isEditMode, visibleChipsMaxLength)\n const [editConfig, setEditConfig] = useState({\n chipIndex: null,\n isEdit: false,\n isKeyFocused: true,\n isValueFocused: false,\n isNewChip: false\n })\n\n const buttonAddClassNames = classnames(\n 'button-add',\n className,\n chipOptions.background && `button-add-background_${chipOptions.background}`,\n chipOptions.borderColor && `button-add-border_${chipOptions.borderColor}`,\n chipOptions.font && `button-add-font_${chipOptions.font}`,\n chipOptions.density && `button-add-density_${chipOptions.density}`\n )\n const wrapperClassNames = classnames('chips-wrapper', isEditMode && 'fixed-max-width')\n\n let chips = useMemo(() => {\n return (isEditMode && !visibleChipsMaxLength) || visibleChipsMaxLength === 'all'\n ? {\n visibleChips: elements.map(chip => ({\n value: chip,\n delimiter\n }))\n }\n : cutChips(\n elements,\n visibleChipsMaxLength ? visibleChipsMaxLength : visibleChipsCount,\n delimiter\n )\n }, [delimiter, elements, isEditMode, visibleChipsCount, visibleChipsMaxLength])\n\n const handleAddNewChip = useCallback(\n (event, chip) => {\n event.preventDefault()\n\n if (!editConfig.isEdit && !editConfig.chipIndex) {\n addChip(chip, elements)\n }\n\n if (showHiddenChips) {\n setShowHiddenChips(false)\n }\n\n setEditConfig({\n chipIndex: elements.length,\n isEdit: true,\n isKeyFocused: true,\n isValueFocused: false,\n isNewChip: true\n })\n },\n [\n editConfig.isEdit,\n editConfig.chipIndex,\n showHiddenChips,\n elements,\n addChip,\n setShowHiddenChips\n ]\n )\n\n const handleRemoveChip = useCallback(\n (event, chipIndex) => {\n event.stopPropagation()\n\n const newChips = elements.filter((value, index) => index !== chipIndex)\n\n removeChip(newChips)\n },\n [elements, removeChip]\n )\n\n const handleEditChip = useCallback(\n (event, chip, nameEvent) => {\n event.preventDefault()\n const isChipNotEmpty = !!(chip.key && chip.value && chip.key?.trim() && chip.value?.trim())\n\n if (isChipNotEmpty) {\n const newChips = [...elements]\n newChips[editConfig.chipIndex] = `${chip.key}: ${chip.value}`\n\n editChip(newChips)\n }\n\n if (nameEvent === CLICK) {\n if (editConfig.isNewChip && !isChipNotEmpty) {\n handleRemoveChip(event, editConfig.chipIndex)\n }\n\n setEditConfig({\n chipIndex: null,\n isEdit: false,\n isKeyFocused: true,\n isValueFocused: false,\n isNewChip: false\n })\n } else if (nameEvent === TAB) {\n if (editConfig.isNewChip && !isChipNotEmpty) {\n handleRemoveChip(event, editConfig.chipIndex)\n }\n\n setEditConfig(prevState => {\n const isNextChipIndexExists = prevState.chipIndex + 1 > elements.length - 1\n\n return {\n chipIndex: isNextChipIndexExists ? null : prevState.chipIndex + 1,\n isEdit: !isNextChipIndexExists,\n isKeyFocused: true,\n isValueFocused: false,\n isNewChip: false\n }\n })\n } else if (nameEvent === TAB_SHIFT) {\n if (editConfig.isNewChip && !isChipNotEmpty) {\n handleRemoveChip(event, editConfig.chipIndex)\n }\n\n setEditConfig(prevState => {\n const isPrevChipIndexExists = prevState.chipIndex - 1 < 0\n\n return {\n chipIndex: isPrevChipIndexExists ? null : prevState.chipIndex - 1,\n isEdit: !isPrevChipIndexExists,\n isKeyFocused: isPrevChipIndexExists,\n isValueFocused: !isPrevChipIndexExists,\n isNewChip: false\n }\n })\n }\n },\n [elements, editConfig.chipIndex, editConfig.isNewChip, editChip, handleRemoveChip]\n )\n\n const handleIsEdit = useCallback(\n (event, index) => {\n if (isEditMode) {\n event.stopPropagation()\n\n setEditConfig({\n chipIndex: index,\n isEdit: true,\n isKeyFocused: true,\n isValueFocused: false\n })\n }\n\n onClick && onClick()\n },\n [isEditMode, onClick]\n )\n\n return (\n (isEditMode || !isEveryObjectValueEmpty(chips)) && (\n <div className=\"chips-cell\" ref={chipsCellRef}>\n <div className={wrapperClassNames} ref={chipsWrapperRef}>\n {chips.visibleChips.map((chip, index) => {\n return (\n <div className=\"chip-block\" key={`${chip.value}${index}`}>\n <ChipTooltip chip={chip} editConfig={editConfig} key={chip.value}>\n <Chip\n chip={chip}\n chipIndex={index}\n chipOptions={chipOptions}\n className={className}\n editConfig={editConfig}\n handleEditChip={handleEditChip}\n handleIsEdit={handleIsEdit}\n handleRemoveChip={handleRemoveChip}\n isEditMode={isEditMode}\n onClick={handleShowElements}\n ref={{ chipsCellRef, hiddenChipsCounterRef }}\n setChipsSizes={setChipsSizes}\n setEditConfig={setEditConfig}\n setValidation={setValidation}\n shortChip={shortChips}\n showChips={showChips}\n textOverflowEllipsis\n />\n </ChipTooltip>\n {chips.visibleChips.length - 1 === index && showHiddenChips && (\n <HiddenChipsBlock\n chipOptions={chipOptions}\n className={className}\n chips={chips.hiddenChips}\n chipIndex={index}\n editConfig={editConfig}\n handleEditChip={handleEditChip}\n handleIsEdit={handleIsEdit}\n handleRemoveChip={handleRemoveChip}\n handleShowElements={handleShowElements}\n isEditMode={isEditMode}\n setEditConfig={setEditConfig}\n setChipsSizes={setChipsSizes}\n ref={{ hiddenChipsCounterRef, hiddenChipsPopUpRef }}\n />\n )}\n </div>\n )\n })}\n {isEditMode && (\n <button className={buttonAddClassNames} onClick={e => handleAddNewChip(e, ':')}>\n <Add />\n </button>\n )}\n </div>\n </div>\n )\n )\n}\n\nChipCell.propTypes = {\n addChip: PropTypes.func,\n chipOptions: CHIP_OPTIONS,\n className: PropTypes.string,\n delimiter: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n editChip: PropTypes.func,\n elements: PropTypes.arrayOf(PropTypes.string),\n isEditMode: PropTypes.bool,\n onClick: PropTypes.func,\n removeChip: PropTypes.func,\n setValidation: PropTypes.func,\n shortChips: PropTypes.bool,\n visibleChipsMaxLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n}\n\nexport default React.memo(ChipCell)\n"],"names":["ChipCell","addChip","chipOptions","className","delimiter","editChip","elements","isEditMode","onClick","removeChip","shortChips","setValidation","visibleChipsMaxLength","chipsCellRef","chipsWrapperRef","handleShowElements","hiddenChipsCounterRef","hiddenChipsPopUpRef","setChipsSizes","setShowHiddenChips","showChips","showHiddenChips","visibleChipsCount","useChipCell","editConfig","setEditConfig","useState","buttonAddClassNames","classnames","wrapperClassNames","chips","useMemo","chip","cutChips","handleAddNewChip","useCallback","event","handleRemoveChip","chipIndex","newChips","value","index","handleEditChip","nameEvent","isChipNotEmpty","_a","_b","CLICK","TAB","prevState","isNextChipIndexExists","TAB_SHIFT","isPrevChipIndexExists","handleIsEdit","isEveryObjectValueEmpty","jsxs","jsx","ChipTooltip","Chip","HiddenChipsBlock","Add","PropTypes","CHIP_OPTIONS","ChipCell$1","React"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export default ChipTooltip;
2
+ declare function ChipTooltip({ children, chip, editConfig }: {
3
+ children: any;
4
+ chip: any;
5
+ editConfig?: {};
6
+ }): JSX.Element;
7
+ declare namespace ChipTooltip {
8
+ namespace propTypes {
9
+ export let children: any;
10
+ export { CHIP as chip };
11
+ export let editConfig: any;
12
+ }
13
+ }
14
+ import { CHIP } from '../../../types';
15
+ //# sourceMappingURL=ChipTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipTooltip.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/ChipCell/ChipTooltip/ChipTooltip.jsx"],"names":[],"mappings":";AA4BA;;;;gBAyBC;;;;;;;;qBA3BoB,gBAAgB"}
@@ -0,0 +1,36 @@
1
+ import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
+ import { useMemo as s } from "react";
3
+ import o from "prop-types";
4
+ import a from "../../Tooltip/Tooltip.mjs";
5
+ import d from "../../TooltipTemplate/TextTooltipTemplate.mjs";
6
+ import { getChipLabelAndValue as n } from "../../../utils/chips.util.mjs";
7
+ import { CHIP as c } from "../../../types.mjs";
8
+ const f = ({ children: i, chip: e, editConfig: r = {} }) => {
9
+ const { chipLabel: m, chipValue: p } = s(() => n(e), [e]);
10
+ return /* @__PURE__ */ t(
11
+ a,
12
+ {
13
+ hidden: r.isEdit || /^\+ [\d]+/g.test(e.value),
14
+ template: /* @__PURE__ */ t(
15
+ d,
16
+ {
17
+ text: e.delimiter ? /* @__PURE__ */ l("span", { className: "chip__content", children: [
18
+ m,
19
+ /* @__PURE__ */ t("span", { className: "chip__delimiter", children: e.delimiter }),
20
+ p
21
+ ] }) : e.value
22
+ }
23
+ ),
24
+ children: i
25
+ }
26
+ );
27
+ };
28
+ f.propTypes = {
29
+ children: o.node.isRequired,
30
+ chip: c,
31
+ editConfig: o.object
32
+ };
33
+ export {
34
+ f as default
35
+ };
36
+ //# sourceMappingURL=ChipTooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipTooltip.mjs","sources":["../../../../src/lib/components/ChipCell/ChipTooltip/ChipTooltip.jsx"],"sourcesContent":["/*\nCopyright 2019 Iguazio Systems Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\") with\nan addition restriction as set forth herein. You may not use this\nfile except in compliance with the License. You may obtain a copy of\nthe License at http://www.apache.org/licenses/LICENSE-2.0.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied. See the License for the specific language governing\npermissions and limitations under the License.\n\nIn addition, you may not use the software for any purposes that are\nillegal under applicable law, and the grant of the foregoing license\nunder the Apache 2.0 license is conditioned upon your compliance with\nsuch restriction.\n*/\nimport React, { useMemo } from 'react'\nimport PropTypes from 'prop-types'\n\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport TextTooltipTemplate from '../../../components/TooltipTemplate/TextTooltipTemplate'\n\nimport { getChipLabelAndValue } from '../../../utils/chips.util'\nimport { CHIP } from '../../../types'\n\nconst ChipTooltip = ({ children, chip, editConfig = {} }) => {\n const { chipLabel, chipValue } = useMemo(() => getChipLabelAndValue(chip), [chip])\n\n return (\n <Tooltip\n hidden={editConfig.isEdit || /^\\+ [\\d]+/g.test(chip.value)}\n template={\n <TextTooltipTemplate\n text={\n chip.delimiter ? (\n <span className=\"chip__content\">\n {chipLabel}\n <span className=\"chip__delimiter\">{chip.delimiter}</span>\n {chipValue}\n </span>\n ) : (\n chip.value\n )\n }\n />\n }\n >\n {children}\n </Tooltip>\n )\n}\n\nChipTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n chip: CHIP,\n editConfig: PropTypes.object\n}\n\nexport default ChipTooltip\n"],"names":["ChipTooltip","children","chip","editConfig","chipLabel","chipValue","useMemo","getChipLabelAndValue","jsx","Tooltip","TextTooltipTemplate","jsxs","PropTypes","CHIP"],"mappings":";;;;;;;AA4BM,MAAAA,IAAc,CAAC,EAAE,UAAAC,GAAU,MAAAC,GAAM,YAAAC,IAAa,SAAS;AACrD,QAAA,EAAE,WAAAC,GAAW,WAAAC,EAAA,IAAcC,EAAQ,MAAMC,EAAqBL,CAAI,GAAG,CAACA,CAAI,CAAC;AAG/E,SAAA,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQN,EAAW,UAAU,aAAa,KAAKD,EAAK,KAAK;AAAA,MACzD,UACE,gBAAAM;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,MACER,EAAK,YACF,gBAAAS,EAAA,QAAA,EAAK,WAAU,iBACb,UAAA;AAAA,YAAAP;AAAA,YACA,gBAAAI,EAAA,QAAA,EAAK,WAAU,mBAAmB,YAAK,WAAU;AAAA,YACjDH;AAAA,UAAA,EACH,CAAA,IAEAH,EAAK;AAAA,QAAA;AAAA,MAGX;AAAA,MAGD,UAAAD;AAAA,IAAA;AAAA,EACH;AAEJ;AAEAD,EAAY,YAAY;AAAA,EACtB,UAAUY,EAAU,KAAK;AAAA,EACzB,MAAMC;AAAA,EACN,YAAYD,EAAU;AACxB;"}
@@ -0,0 +1,35 @@
1
+ export default HiddenChipsBlock;
2
+ declare function HiddenChipsBlock({ chips, chipIndex, chipOptions, className, editConfig, handleEditChip, handleIsEdit, handleRemoveChip, handleShowElements, isEditMode, setEditConfig }: {
3
+ chips?: any[];
4
+ chipIndex?: number;
5
+ chipOptions: any;
6
+ className: any;
7
+ editConfig?: {};
8
+ handleEditChip: any;
9
+ handleIsEdit?: () => void;
10
+ handleRemoveChip: any;
11
+ handleShowElements: any;
12
+ isEditMode?: boolean;
13
+ setEditConfig?: () => void;
14
+ }, { hiddenChipsCounterRef, hiddenChipsPopUpRef }: {
15
+ hiddenChipsCounterRef: any;
16
+ hiddenChipsPopUpRef: any;
17
+ }): import("react").ReactPortal;
18
+ declare namespace HiddenChipsBlock {
19
+ let displayName: string;
20
+ namespace propTypes {
21
+ export let className: any;
22
+ export { CHIPS as chips };
23
+ export let chipOptions: any;
24
+ export let chipIndex: any;
25
+ export let editConfig: any;
26
+ export let handleEditChip: any;
27
+ export let handleIsEdit: any;
28
+ export let handleRemoveChip: any;
29
+ export let handleShowElements: any;
30
+ export let isEditMode: any;
31
+ export let setEditConfig: any;
32
+ }
33
+ }
34
+ import { CHIPS } from '../../../types';
35
+ //# sourceMappingURL=HiddenChipsBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenChipsBlock.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.jsx"],"names":[],"mappings":";AA6BA;;;;;;;;;;;;;;;gCAwDC;;;;;;;;;;;;;;;;;sBA3DmC,gBAAgB"}
@@ -0,0 +1,73 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import k, { useEffect as v } from "react";
3
+ import e from "prop-types";
4
+ import { createPortal as B } from "react-dom";
5
+ import H from "../../Chip/Chip.mjs";
6
+ import N from "../ChipTooltip/ChipTooltip.mjs";
7
+ import { CHIP_OPTIONS as _, CHIPS as b } from "../../../types.mjs";
8
+ import "../../../hooks/index.mjs";
9
+ import { useHiddenChipsBlock as g } from "../../../hooks/useHiddenChipsBlock.hook.mjs";
10
+ let i = ({
11
+ chips: o = [],
12
+ chipIndex: l = 0,
13
+ chipOptions: n,
14
+ className: s,
15
+ editConfig: c = {},
16
+ handleEditChip: a,
17
+ handleIsEdit: p = () => {
18
+ },
19
+ handleRemoveChip: m,
20
+ handleShowElements: f,
21
+ isEditMode: h = !1,
22
+ setEditConfig: u = () => {
23
+ }
24
+ }, { hiddenChipsCounterRef: C, hiddenChipsPopUpRef: t }) => {
25
+ const { hiddenChipsBlockClassNames: E } = g(
26
+ C,
27
+ t
28
+ );
29
+ return v(() => {
30
+ o.length === 0 && f();
31
+ }), B(
32
+ /* @__PURE__ */ r("div", { ref: t, className: E, children: /* @__PURE__ */ r("div", { className: "chip-block-hidden__scrollable-container", children: o == null ? void 0 : o.map((d, I) => /* @__PURE__ */ r(N, { chip: d, children: /* @__PURE__ */ r(
33
+ H,
34
+ {
35
+ chip: d,
36
+ chipIndex: I + l,
37
+ chipOptions: n,
38
+ className: s,
39
+ editConfig: c,
40
+ handleEditChip: a,
41
+ handleIsEdit: p,
42
+ handleRemoveChip: m,
43
+ hiddenChips: !0,
44
+ isEditMode: h,
45
+ ref: t,
46
+ setEditConfig: u,
47
+ showChips: !0,
48
+ textOverflowEllipsis: !0
49
+ }
50
+ ) }, d.value)) }) }),
51
+ document.getElementById("overlay_container")
52
+ );
53
+ };
54
+ i = k.forwardRef(i);
55
+ i.displayName = "HiddenChipsBlock";
56
+ i.propTypes = {
57
+ className: e.string,
58
+ chips: b,
59
+ chipOptions: _.isRequired,
60
+ chipIndex: e.number,
61
+ editConfig: e.object,
62
+ handleEditChip: e.func,
63
+ handleIsEdit: e.func,
64
+ handleRemoveChip: e.func,
65
+ handleShowElements: e.func.isRequired,
66
+ isEditMode: e.bool,
67
+ setEditConfig: e.func
68
+ };
69
+ const q = i;
70
+ export {
71
+ q as default
72
+ };
73
+ //# sourceMappingURL=HiddenChipsBlock.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenChipsBlock.mjs","sources":["../../../../src/lib/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.jsx"],"sourcesContent":["/*\nCopyright 2019 Iguazio Systems Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\") with\nan addition restriction as set forth herein. You may not use this\nfile except in compliance with the License. You may obtain a copy of\nthe License at http://www.apache.org/licenses/LICENSE-2.0.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied. See the License for the specific language governing\npermissions and limitations under the License.\n\nIn addition, you may not use the software for any purposes that are\nillegal under applicable law, and the grant of the foregoing license\nunder the Apache 2.0 license is conditioned upon your compliance with\nsuch restriction.\n*/\nimport React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { createPortal } from 'react-dom'\n\nimport Chip from '../../Chip/Chip'\nimport ChipTooltip from '../ChipTooltip/ChipTooltip'\n\nimport { CHIP_OPTIONS, CHIPS } from '../../../types'\nimport { useHiddenChipsBlock } from '../../../hooks'\n\nlet HiddenChipsBlock = (\n {\n chips = [],\n chipIndex = 0,\n chipOptions,\n className,\n editConfig = {},\n handleEditChip,\n handleIsEdit = () => {},\n handleRemoveChip,\n handleShowElements,\n isEditMode = false,\n setEditConfig = () => {}\n },\n { hiddenChipsCounterRef, hiddenChipsPopUpRef }\n) => {\n const { hiddenChipsBlockClassNames } = useHiddenChipsBlock(\n hiddenChipsCounterRef,\n hiddenChipsPopUpRef\n )\n\n useEffect(() => {\n if (chips.length === 0) {\n handleShowElements()\n }\n })\n\n return createPortal(\n <div ref={hiddenChipsPopUpRef} className={hiddenChipsBlockClassNames}>\n <div className=\"chip-block-hidden__scrollable-container\">\n {chips?.map((element, index) => {\n return (\n <ChipTooltip chip={element} key={element.value}>\n <Chip\n chip={element}\n chipIndex={index + chipIndex}\n chipOptions={chipOptions}\n className={className}\n editConfig={editConfig}\n handleEditChip={handleEditChip}\n handleIsEdit={handleIsEdit}\n handleRemoveChip={handleRemoveChip}\n hiddenChips\n isEditMode={isEditMode}\n ref={hiddenChipsPopUpRef}\n setEditConfig={setEditConfig}\n showChips={true}\n textOverflowEllipsis\n />\n </ChipTooltip>\n )\n })}\n </div>\n </div>,\n document.getElementById('overlay_container')\n )\n}\n\nHiddenChipsBlock = React.forwardRef(HiddenChipsBlock)\n\nHiddenChipsBlock.displayName = 'HiddenChipsBlock'\n\nHiddenChipsBlock.propTypes = {\n className: PropTypes.string,\n chips: CHIPS,\n chipOptions: CHIP_OPTIONS.isRequired,\n chipIndex: PropTypes.number,\n editConfig: PropTypes.object,\n handleEditChip: PropTypes.func,\n handleIsEdit: PropTypes.func,\n handleRemoveChip: PropTypes.func,\n handleShowElements: PropTypes.func.isRequired,\n isEditMode: PropTypes.bool,\n setEditConfig: PropTypes.func\n}\n\nexport default HiddenChipsBlock\n"],"names":["HiddenChipsBlock","chips","chipIndex","chipOptions","className","editConfig","handleEditChip","handleIsEdit","handleRemoveChip","handleShowElements","isEditMode","setEditConfig","hiddenChipsCounterRef","hiddenChipsPopUpRef","hiddenChipsBlockClassNames","useHiddenChipsBlock","useEffect","createPortal","jsx","element","index","ChipTooltip","Chip","React","PropTypes","CHIPS","CHIP_OPTIONS","HiddenChipsBlock$1"],"mappings":";;;;;;;;;AA6BA,IAAIA,IAAmB,CACrB;AAAA,EACE,OAAAC,IAAQ,CAAC;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC,IAAa,CAAC;AAAA,EACd,gBAAAC;AAAA,EACA,cAAAC,IAAe,MAAM;AAAA,EAAC;AAAA,EACtB,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,eAAAC,IAAgB,MAAM;AAAA,EAAA;AACxB,GACA,EAAE,uBAAAC,GAAuB,qBAAAC,QACtB;AACG,QAAA,EAAE,4BAAAC,MAA+BC;AAAA,IACrCH;AAAA,IACAC;AAAA,EACF;AAEA,SAAAG,EAAU,MAAM;AACV,IAAAf,EAAM,WAAW,KACAQ,EAAA;AAAA,EACrB,CACD,GAEMQ;AAAA,IACJ,gBAAAC,EAAA,OAAA,EAAI,KAAKL,GAAqB,WAAWC,GACxC,UAAA,gBAAAI,EAAC,OAAI,EAAA,WAAU,2CACZ,UAAAjB,KAAA,gBAAAA,EAAO,IAAI,CAACkB,GAASC,MAElB,gBAAAF,EAACG,GAAY,EAAA,MAAMF,GACjB,UAAA,gBAAAD;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAMH;AAAA,QACN,WAAWC,IAAQlB;AAAA,QACnB,aAAAC;AAAA,QACA,WAAAC;AAAA,QACA,YAAAC;AAAA,QACA,gBAAAC;AAAA,QACA,cAAAC;AAAA,QACA,kBAAAC;AAAA,QACA,aAAW;AAAA,QACX,YAAAE;AAAA,QACA,KAAKG;AAAA,QACL,eAAAF;AAAA,QACA,WAAW;AAAA,QACX,sBAAoB;AAAA,MAAA;AAAA,IAAA,EACtB,GAhB+BQ,EAAQ,KAiBzC,IAGN,EACF,CAAA;AAAA,IACA,SAAS,eAAe,mBAAmB;AAAA,EAC7C;AACF;AAEAnB,IAAmBuB,EAAM,WAAWvB,CAAgB;AAEpDA,EAAiB,cAAc;AAE/BA,EAAiB,YAAY;AAAA,EAC3B,WAAWwB,EAAU;AAAA,EACrB,OAAOC;AAAA,EACP,aAAaC,EAAa;AAAA,EAC1B,WAAWF,EAAU;AAAA,EACrB,YAAYA,EAAU;AAAA,EACtB,gBAAgBA,EAAU;AAAA,EAC1B,cAAcA,EAAU;AAAA,EACxB,kBAAkBA,EAAU;AAAA,EAC5B,oBAAoBA,EAAU,KAAK;AAAA,EACnC,YAAYA,EAAU;AAAA,EACtB,eAAeA,EAAU;AAC3B;AAEA,MAAAG,IAAe3B;"}
@@ -0,0 +1,25 @@
1
+ export default ChipForm;
2
+ declare function ChipForm({ checkValidation, chipOptions, className, editConfig, onChange, setEditConfig, validationRules, value }: {
3
+ checkValidation?: any;
4
+ chipOptions: any;
5
+ className?: string;
6
+ editConfig: any;
7
+ onChange: any;
8
+ setEditConfig: any;
9
+ validationRules?: any[];
10
+ value: any;
11
+ }, ref: any): JSX.Element;
12
+ declare namespace ChipForm {
13
+ let displayName: string;
14
+ namespace propTypes {
15
+ let checkValidation: any;
16
+ let chipOptions: any;
17
+ let className: any;
18
+ let editConfig: any;
19
+ let onChange: any;
20
+ let setEditConfig: any;
21
+ let validationRules: any;
22
+ let value: any;
23
+ }
24
+ }
25
+ //# sourceMappingURL=ChipForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipForm.d.ts","sourceRoot":"","sources":["../../../src/lib/components/ChipForm/ChipForm.jsx"],"names":[],"mappings":";AAgCA;;;;;;;;;0BAiPC"}
@@ -0,0 +1,184 @@
1
+ import { jsx as m, jsxs as x, Fragment as S } from "react/jsx-runtime";
2
+ import A, { useState as H, useMemo as z, useRef as _, useLayoutEffect as G, useEffect as O, useCallback as y } from "react";
3
+ import a from "prop-types";
4
+ import b from "classnames";
5
+ import { isEmpty as J } from "lodash";
6
+ import Q from "../../elements/OptionsMenu/OptionsMenu.mjs";
7
+ import U from "../../elements/ValidationTemplate/ValidationTemplate.mjs";
8
+ import { TAB as I, TAB_SHIFT as X } from "../../constants.mjs";
9
+ import { CHIP_OPTIONS as Y } from "../../types.mjs";
10
+ /* empty css */
11
+ let F = ({
12
+ checkValidation: W = null,
13
+ chipOptions: $,
14
+ className: q = "",
15
+ editConfig: r,
16
+ onChange: o,
17
+ setEditConfig: k,
18
+ validationRules: d = [],
19
+ value: j
20
+ }, V) => {
21
+ const [i, n] = H({
22
+ ...j,
23
+ keyFieldWidth: 0,
24
+ valueFieldWidth: 0
25
+ }), c = z(() => {
26
+ var e;
27
+ return ((e = V.current) == null ? void 0 : e.clientWidth) - 50;
28
+ }, [V]), { background: v, borderColor: N, density: E, font: P, borderRadius: R } = $, h = 25, p = 35, s = _(), l = _(), f = _(), B = b(
29
+ q,
30
+ !r.isKeyFocused && "item_edited",
31
+ !J(d) && "item_edited_invalid"
32
+ ), C = b(
33
+ "edit-chip-container",
34
+ v && `edit-chip-container-background_${v}`,
35
+ N && `edit-chip-container-border_${N}`,
36
+ P && `edit-chip-container-font_${P}`,
37
+ E && `edit-chip-container-density_${E}`,
38
+ R && `edit-chip-container-border_${R}`,
39
+ (r.isEdit || r.isNewChip) && "edit-chip-container_edited"
40
+ ), D = b(
41
+ "input-label-value",
42
+ !r.isValueFocused && "item_edited"
43
+ );
44
+ G(() => {
45
+ if (!i.keyFieldWidth && !i.valueFieldWidth) {
46
+ const e = s.current.scrollWidth + 1, t = l.current.scrollWidth + 1;
47
+ i.key && i.value ? n((u) => ({
48
+ ...u,
49
+ keyFieldWidth: e >= c ? c : e,
50
+ valueFieldWidth: t >= c ? c : t
51
+ })) : n((u) => ({
52
+ ...u,
53
+ keyFieldWidth: h,
54
+ valueFieldWidth: p
55
+ }));
56
+ }
57
+ }, [
58
+ i.key,
59
+ i.keyFieldWidth,
60
+ i.value,
61
+ i.valueFieldWidth,
62
+ c,
63
+ s,
64
+ l
65
+ ]), O(() => {
66
+ r.isKeyFocused ? s.current.focus() : r.isValueFocused && l.current.focus();
67
+ }, [r.isKeyFocused, r.isValueFocused, s, l]);
68
+ const K = y(
69
+ (e) => {
70
+ var u;
71
+ e.stopPropagation(), (e.path ?? ((u = e.composedPath) == null ? void 0 : u.call(e))).includes(f.current) || o(e, i, "Click");
72
+ },
73
+ [i, o, f]
74
+ );
75
+ O(() => {
76
+ if (r.isEdit)
77
+ return document.addEventListener("click", K, !0), () => {
78
+ document.removeEventListener("click", K, !0);
79
+ };
80
+ }, [K, r.isEdit]);
81
+ const L = y(
82
+ (e) => {
83
+ e.stopPropagation(), !e.shiftKey && e.key === I && r.isValueFocused ? o(e, i, I) : e.shiftKey && e.key === I && r.isKeyFocused && o(e, i, X), (e.key === "Backspace" || e.key === "Delete") && n((t) => ({
84
+ ...t,
85
+ keyFieldWidth: r.isKeyFocused ? h : t.keyFieldWidth,
86
+ valueFieldWidth: r.isValueFocused ? p : t.valueFieldWidth
87
+ }));
88
+ },
89
+ [r, o, i]
90
+ ), T = y(
91
+ (e) => {
92
+ e.target.name === "key" ? (s.current.selectionStart = s.current.selectionEnd, k((t) => ({
93
+ ...t,
94
+ isKeyFocused: !0,
95
+ isValueFocused: !1
96
+ }))) : (l.current.selectionStart = l.current.selectionEnd, k((t) => ({
97
+ ...t,
98
+ isKeyFocused: !1,
99
+ isValueFocused: !0
100
+ })));
101
+ },
102
+ [s, l, k]
103
+ ), w = y(
104
+ (e) => {
105
+ if (e.preventDefault(), e.target.name === "key") {
106
+ const t = s.current.scrollWidth;
107
+ W && W(s.current.value), n((u) => ({
108
+ ...u,
109
+ key: s.current.value,
110
+ keyFieldWidth: s.current.value.length <= 1 ? h : t >= c ? c : t > h ? t + 2 : h
111
+ }));
112
+ } else {
113
+ const t = l.current.scrollWidth;
114
+ n((u) => ({
115
+ ...u,
116
+ value: l.current.value,
117
+ valueFieldWidth: l.current.value.length <= 1 ? p : t >= c ? c : t > p ? t + 2 : p
118
+ }));
119
+ }
120
+ },
121
+ [W, c, s, l]
122
+ ), M = y(() => d.map(({ isValid: e = !1, label: t, name: u }) => /* @__PURE__ */ m(U, { valid: e, validationMessage: t }, u)), [d]);
123
+ return /* @__PURE__ */ x(S, { children: [
124
+ /* @__PURE__ */ x(
125
+ "div",
126
+ {
127
+ ref: f,
128
+ className: C,
129
+ onKeyDown: (e) => r.isEdit && L(e),
130
+ children: [
131
+ /* @__PURE__ */ m(
132
+ "input",
133
+ {
134
+ autoComplete: "off",
135
+ className: B,
136
+ name: "key",
137
+ style: { width: i.keyFieldWidth },
138
+ onChange: w,
139
+ onFocus: T,
140
+ placeholder: "key",
141
+ ref: s,
142
+ type: "text",
143
+ value: i.key
144
+ }
145
+ ),
146
+ /* @__PURE__ */ m("div", { className: "edit-chip-separator", children: ":" }),
147
+ /* @__PURE__ */ m(
148
+ "input",
149
+ {
150
+ autoComplete: "off",
151
+ className: D,
152
+ name: "value",
153
+ onChange: w,
154
+ onFocus: T,
155
+ placeholder: "value",
156
+ ref: l,
157
+ style: { width: i.valueFieldWidth },
158
+ type: "text",
159
+ value: i.value
160
+ }
161
+ )
162
+ ]
163
+ }
164
+ ),
165
+ d.length > 0 && /* @__PURE__ */ m(Q, { show: d.length > 0, ref: { refInputContainer: f }, children: M() })
166
+ ] });
167
+ };
168
+ F = A.forwardRef(F);
169
+ F.displayName = "ChipForm";
170
+ F.propTypes = {
171
+ checkValidation: a.func,
172
+ chipOptions: Y.isRequired,
173
+ className: a.string,
174
+ editConfig: a.object.isRequired,
175
+ onChange: a.func.isRequired,
176
+ setEditConfig: a.func.isRequired,
177
+ validationRules: a.array,
178
+ value: a.object.isRequired
179
+ };
180
+ const ae = F;
181
+ export {
182
+ ae as default
183
+ };
184
+ //# sourceMappingURL=ChipForm.mjs.map