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.
- package/dist/components/ActionsMenu/ActionsMenu.d.ts +18 -0
- package/dist/components/ActionsMenu/ActionsMenu.d.ts.map +1 -0
- package/dist/components/ActionsMenu/ActionsMenu.mjs +126 -0
- package/dist/components/ActionsMenu/ActionsMenu.mjs.map +1 -0
- package/dist/components/BlockerSpy/BlockerSpy.d.ts +12 -0
- package/dist/components/BlockerSpy/BlockerSpy.d.ts.map +1 -0
- package/dist/components/BlockerSpy/BlockerSpy.mjs +18 -0
- package/dist/components/BlockerSpy/BlockerSpy.mjs.map +1 -0
- package/dist/components/Button/Button.mjs +21 -20
- package/dist/components/Button/Button.mjs.map +1 -1
- package/dist/components/Chip/Chip.d.ts +3 -0
- package/dist/components/Chip/Chip.d.ts.map +1 -0
- package/dist/components/Chip/Chip.mjs +153 -0
- package/dist/components/Chip/Chip.mjs.map +1 -0
- package/dist/components/Chip/Chip.stories.d.ts +26 -0
- package/dist/components/Chip/Chip.stories.d.ts.map +1 -0
- package/dist/components/ChipCell/ChipCell.d.ts +3 -0
- package/dist/components/ChipCell/ChipCell.d.ts.map +1 -0
- package/dist/components/ChipCell/ChipCell.mjs +212 -0
- package/dist/components/ChipCell/ChipCell.mjs.map +1 -0
- package/dist/components/ChipCell/ChipTooltip/ChipTooltip.d.ts +15 -0
- package/dist/components/ChipCell/ChipTooltip/ChipTooltip.d.ts.map +1 -0
- package/dist/components/ChipCell/ChipTooltip/ChipTooltip.mjs +36 -0
- package/dist/components/ChipCell/ChipTooltip/ChipTooltip.mjs.map +1 -0
- package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts +35 -0
- package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts.map +1 -0
- package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs +73 -0
- package/dist/components/ChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs.map +1 -0
- package/dist/components/ChipForm/ChipForm.d.ts +25 -0
- package/dist/components/ChipForm/ChipForm.d.ts.map +1 -0
- package/dist/components/ChipForm/ChipForm.mjs +184 -0
- package/dist/components/ChipForm/ChipForm.mjs.map +1 -0
- package/dist/components/CopyToClipboard/CopyToClipboard.d.ts +18 -0
- package/dist/components/CopyToClipboard/CopyToClipboard.d.ts.map +1 -0
- package/dist/components/CopyToClipboard/CopyToClipboard.mjs +51 -0
- package/dist/components/CopyToClipboard/CopyToClipboard.mjs.map +1 -0
- package/dist/components/ErrorMessage/ErrorMessage.d.ts +12 -0
- package/dist/components/ErrorMessage/ErrorMessage.d.ts.map +1 -0
- package/dist/components/ErrorMessage/ErrorMessage.mjs +23 -0
- package/dist/components/ErrorMessage/ErrorMessage.mjs.map +1 -0
- package/dist/components/FormChipCell/FormChipCellView.mjs +1 -1
- package/dist/components/LoadButton/LoadButton.d.ts +16 -0
- package/dist/components/LoadButton/LoadButton.d.ts.map +1 -0
- package/dist/components/LoadButton/LoadButton.mjs +22 -0
- package/dist/components/LoadButton/LoadButton.mjs.map +1 -0
- package/dist/components/LoadButton/LoadButton.stories.d.ts +10 -0
- package/dist/components/LoadButton/LoadButton.stories.d.ts.map +1 -0
- package/dist/components/Loader/Loader.d.ts +3 -0
- package/dist/components/Loader/Loader.d.ts.map +1 -0
- package/dist/components/Loader/Loader.mjs +24 -0
- package/dist/components/Loader/Loader.mjs.map +1 -0
- package/dist/components/Loader/LoaderForSuspenseFallback.d.ts +3 -0
- package/dist/components/Loader/LoaderForSuspenseFallback.d.ts.map +1 -0
- package/dist/components/Loader/LoaderForSuspenseFallback.mjs +13 -0
- package/dist/components/Loader/LoaderForSuspenseFallback.mjs.map +1 -0
- package/dist/components/TableCell/TableCell.d.ts +28 -0
- package/dist/components/TableCell/TableCell.d.ts.map +1 -0
- package/dist/components/TableCell/TableCell.mjs +104 -0
- package/dist/components/TableCell/TableCell.mjs.map +1 -0
- package/dist/components/TabsSlider/TabsSlider.d.ts +20 -0
- package/dist/components/TabsSlider/TabsSlider.d.ts.map +1 -0
- package/dist/components/TabsSlider/TabsSlider.mjs +133 -0
- package/dist/components/TabsSlider/TabsSlider.mjs.map +1 -0
- package/dist/components/index.d.ts +12 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.mjs +60 -38
- package/dist/components/index.mjs.map +1 -1
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.mjs +34 -26
- package/dist/constants.mjs.map +1 -1
- package/dist/elements/ActionsMenuItem/ActionsMenuItem.d.ts +16 -0
- package/dist/elements/ActionsMenuItem/ActionsMenuItem.d.ts.map +1 -0
- package/dist/elements/ActionsMenuItem/ActionsMenuItem.mjs +51 -0
- package/dist/elements/ActionsMenuItem/ActionsMenuItem.mjs.map +1 -0
- package/dist/elements/TableHead/TableHead.d.ts +20 -0
- package/dist/elements/TableHead/TableHead.d.ts.map +1 -0
- package/dist/elements/TableHead/TableHead.mjs +58 -0
- package/dist/elements/TableHead/TableHead.mjs.map +1 -0
- package/dist/elements/TableLinkCell/TableLinkCell.d.ts +24 -0
- package/dist/elements/TableLinkCell/TableLinkCell.d.ts.map +1 -0
- package/dist/elements/TableLinkCell/TableLinkCell.mjs +87 -0
- package/dist/elements/TableLinkCell/TableLinkCell.mjs.map +1 -0
- package/dist/elements/TableTypeCell/TableTypeCell.d.ts +12 -0
- package/dist/elements/TableTypeCell/TableTypeCell.d.ts.map +1 -0
- package/dist/elements/TableTypeCell/TableTypeCell.mjs +37 -0
- package/dist/elements/TableTypeCell/TableTypeCell.mjs.map +1 -0
- package/dist/elements/index.d.ts +5 -1
- package/dist/elements/index.d.ts.map +1 -1
- package/dist/elements/index.mjs +18 -10
- package/dist/elements/index.mjs.map +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.mjs +14 -8
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/useDetails.hook.d.ts +72 -0
- package/dist/hooks/useDetails.hook.d.ts.map +1 -0
- package/dist/hooks/useDetails.hook.mjs +204 -0
- package/dist/hooks/useDetails.hook.mjs.map +1 -0
- package/dist/hooks/useDetailsHeader.hook.d.ts +77 -0
- package/dist/hooks/useDetailsHeader.hook.d.ts.map +1 -0
- package/dist/hooks/useDetailsHeader.hook.mjs +219 -0
- package/dist/hooks/useDetailsHeader.hook.mjs.map +1 -0
- package/dist/hooks/useTable.hook.d.ts +60 -0
- package/dist/hooks/useTable.hook.d.ts.map +1 -0
- package/dist/hooks/useTable.hook.mjs +129 -0
- package/dist/hooks/useTable.hook.mjs.map +1 -0
- package/dist/images/add.svg.mjs +2 -3
- package/dist/images/add.svg.mjs.map +1 -1
- package/dist/images/add.svg2.mjs +6 -0
- package/dist/images/add.svg2.mjs.map +1 -0
- package/dist/images/cancel.svg +3 -0
- package/dist/images/copy-to-clipboard-icon.svg.mjs +6 -0
- package/dist/images/copy-to-clipboard-icon.svg.mjs.map +1 -0
- package/dist/images/elipsis.svg.mjs +6 -0
- package/dist/images/elipsis.svg.mjs.map +1 -0
- package/dist/images/history.svg.mjs +6 -0
- package/dist/images/history.svg.mjs.map +1 -0
- package/dist/images/ml-enlarge.svg.mjs +6 -0
- package/dist/images/ml-enlarge.svg.mjs.map +1 -0
- package/dist/images/ml-minimize.svg.mjs +6 -0
- package/dist/images/ml-minimize.svg.mjs.map +1 -0
- package/dist/images/refresh.svg.mjs +6 -0
- package/dist/images/refresh.svg.mjs.map +1 -0
- package/dist/images/unsuccess_alert.svg.mjs +6 -0
- package/dist/images/unsuccess_alert.svg.mjs.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +10 -8
- package/dist/index.mjs.map +1 -1
- package/dist/reducers/commonDetailsReducer.d.ts +12 -0
- package/dist/reducers/commonDetailsReducer.d.ts.map +1 -0
- package/dist/reducers/commonDetailsReducer.mjs +77 -0
- package/dist/reducers/commonDetailsReducer.mjs.map +1 -0
- package/dist/reducers/index.d.ts +3 -0
- package/dist/reducers/index.d.ts.map +1 -0
- package/dist/reducers/index.mjs +7 -0
- package/dist/reducers/index.mjs.map +1 -0
- package/dist/reducers/notificationReducer.d.ts +3 -0
- package/dist/reducers/notificationReducer.d.ts.map +1 -0
- package/dist/reducers/notificationReducer.mjs +21 -0
- package/dist/reducers/notificationReducer.mjs.map +1 -0
- package/dist/scss/common.scss +655 -0
- package/dist/scss/details.scss +376 -0
- package/dist/scss/mixins.scss +1 -1
- package/dist/scss/table.scss +283 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.mjs +89 -45
- package/dist/types.mjs.map +1 -1
- package/dist/utils/chips.util.d.ts +30 -0
- package/dist/utils/chips.util.d.ts.map +1 -0
- package/dist/utils/chips.util.mjs +75 -0
- package/dist/utils/chips.util.mjs.map +1 -0
- package/dist/utils/common.util.d.ts +5 -0
- package/dist/utils/common.util.d.ts.map +1 -1
- package/dist/utils/common.util.mjs +80 -33
- package/dist/utils/common.util.mjs.map +1 -1
- package/dist/utils/datetime.util.d.ts +9 -0
- package/dist/utils/datetime.util.d.ts.map +1 -0
- package/dist/utils/datetime.util.mjs +53 -0
- package/dist/utils/datetime.util.mjs.map +1 -0
- package/dist/utils/filter.util.d.ts +5 -0
- package/dist/utils/filter.util.d.ts.map +1 -0
- package/dist/utils/filter.util.mjs +23 -0
- package/dist/utils/filter.util.mjs.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.mjs +22 -12
- package/dist/utils/index.mjs.map +1 -1
- package/dist/utils/notification.util.d.ts +2 -0
- package/dist/utils/notification.util.d.ts.map +1 -0
- package/dist/utils/notification.util.mjs +17 -0
- package/dist/utils/notification.util.mjs.map +1 -0
- package/dist/utils/string.util.d.ts +6 -0
- package/dist/utils/string.util.d.ts.map +1 -0
- package/dist/utils/string.util.mjs +13 -0
- package/dist/utils/string.util.mjs.map +1 -0
- 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
|