@bigbinary/neeto-tags-frontend 1.5.4 → 1.5.6
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/README.md +1 -1
- package/app/javascript/src/translations/en.json +3 -0
- package/dist/index.cjs.js +93 -36
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +93 -36
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.cjs.js
CHANGED
|
@@ -5,12 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
7
7
|
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
8
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
8
9
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
9
10
|
var neetoui = require('@bigbinary/neetoui');
|
|
10
11
|
var ramda = require('ramda');
|
|
11
12
|
var reactI18next = require('react-i18next');
|
|
13
|
+
var i18next = require('i18next');
|
|
14
|
+
var classNames = require('classnames');
|
|
12
15
|
var reactRouterDom = require('react-router-dom');
|
|
13
|
-
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
14
16
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
15
17
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
16
18
|
var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
@@ -19,9 +21,7 @@ var reactQuery = require('react-query');
|
|
|
19
21
|
var axios = require('axios');
|
|
20
22
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
21
23
|
var formik = require('@bigbinary/neetoui/formik');
|
|
22
|
-
var i18next = require('i18next');
|
|
23
24
|
var yup = require('yup');
|
|
24
|
-
var classames = require('classnames');
|
|
25
25
|
var devtools = require('react-query/devtools');
|
|
26
26
|
|
|
27
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -45,6 +45,7 @@ function _interopNamespace(e) {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
48
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
48
49
|
var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
|
|
49
50
|
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
50
51
|
var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
|
|
@@ -52,7 +53,6 @@ var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
|
|
|
52
53
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
53
54
|
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
54
55
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
55
|
-
var classames__default = /*#__PURE__*/_interopDefaultLegacy(classames);
|
|
56
56
|
|
|
57
57
|
function _extends() {
|
|
58
58
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -124,18 +124,70 @@ function _slicedToArray(arr, i) {
|
|
|
124
124
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
var KEYBOARD_SHORTCUTS = {
|
|
128
|
+
addTag: {
|
|
129
|
+
sequence: "t",
|
|
130
|
+
description: i18next.t("neetoTags.shortcuts.addTag")
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
127
134
|
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
128
135
|
|
|
129
|
-
var css$1 = ".neeto-
|
|
136
|
+
var css$1 = ".neeto-tags__metadata-card__spinner{scale:.6}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9jb21wb25lbnRzL1RhZ3Mvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQ0UsUUFDRiIsInNvdXJjZXNDb250ZW50IjpbIi5uZWV0by10YWdzX19tZXRhZGF0YS1jYXJkX19zcGlubmVyIHtcbiAgc2NhbGU6IDAuNjtcbn1cbiJdfQ== */";
|
|
130
137
|
n(css$1,{});
|
|
131
138
|
|
|
139
|
+
var TagsList = function TagsList(_ref) {
|
|
140
|
+
var selectedTags = _ref.selectedTags,
|
|
141
|
+
isDisabled = _ref.isDisabled,
|
|
142
|
+
handleDeleteTag = _ref.handleDeleteTag,
|
|
143
|
+
tagProps = _ref.tagProps;
|
|
144
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
145
|
+
className: "neeto-ui-flex neeto-ui-flex-row neeto-ui-flex-wrap neeto-ui-items-start neeto-ui-justify-start gap-2 break-all"
|
|
146
|
+
}, selectedTags === null || selectedTags === void 0 ? void 0 : selectedTags.map(function (tag) {
|
|
147
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends({
|
|
148
|
+
disabled: isDisabled,
|
|
149
|
+
key: tag.value,
|
|
150
|
+
label: tag.label,
|
|
151
|
+
style: "primary",
|
|
152
|
+
className: classNames__default["default"]({
|
|
153
|
+
"cursor-not-allowed opacity-50": isDisabled
|
|
154
|
+
}),
|
|
155
|
+
onClose: function onClose() {
|
|
156
|
+
return !isDisabled && handleDeleteTag(tag);
|
|
157
|
+
}
|
|
158
|
+
}, tagProps));
|
|
159
|
+
}));
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var TagsSelector = reactUtils.withT(function (_ref) {
|
|
163
|
+
var t = _ref.t,
|
|
164
|
+
defaultMenuIsOpen = _ref.defaultMenuIsOpen,
|
|
165
|
+
tags = _ref.tags,
|
|
166
|
+
onChange = _ref.onChange,
|
|
167
|
+
onCreateOption = _ref.onCreateOption,
|
|
168
|
+
selectProps = _ref.selectProps;
|
|
169
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
|
|
170
|
+
defaultMenuIsOpen: defaultMenuIsOpen,
|
|
171
|
+
onChange: onChange,
|
|
172
|
+
onCreateOption: onCreateOption,
|
|
173
|
+
autoFocus: true,
|
|
174
|
+
isCreateable: true,
|
|
175
|
+
className: "neeto-ui-mt-4",
|
|
176
|
+
maxLength: 50,
|
|
177
|
+
options: tags,
|
|
178
|
+
placeholder: t("neetoTags.placeholder.selectOrCreateTag")
|
|
179
|
+
}, selectProps));
|
|
180
|
+
});
|
|
181
|
+
|
|
132
182
|
var Title = function Title(_ref) {
|
|
133
183
|
var _ref$titleProps = _ref.titleProps,
|
|
134
184
|
titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
|
|
135
185
|
title = _ref.title,
|
|
136
186
|
isUpdating = _ref.isUpdating,
|
|
137
187
|
setIsTagsDropdownVisible = _ref.setIsTagsDropdownVisible,
|
|
138
|
-
showAddTagsOnTitle = _ref.showAddTagsOnTitle
|
|
188
|
+
showAddTagsOnTitle = _ref.showAddTagsOnTitle,
|
|
189
|
+
isDisabled = _ref.isDisabled,
|
|
190
|
+
isLoading = _ref.isLoading;
|
|
139
191
|
var _useTranslation = reactI18next.useTranslation(),
|
|
140
192
|
t = _useTranslation.t;
|
|
141
193
|
var tagsTitle = title || t("neetoTags.common.tag", constants.PLURAL);
|
|
@@ -160,7 +212,7 @@ var Title = function Title(_ref) {
|
|
|
160
212
|
}, 5000);
|
|
161
213
|
}, [didStartUpdate, isUpdating]);
|
|
162
214
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
163
|
-
className: "flex w-full items-center justify-between gap-2"
|
|
215
|
+
className: classNames__default["default"]("flex w-full items-center justify-between gap-2", titleProps.containerClassName)
|
|
164
216
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
165
217
|
className: "flex items-center gap-2"
|
|
166
218
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, _extends({
|
|
@@ -169,12 +221,13 @@ var Title = function Title(_ref) {
|
|
|
169
221
|
weight: "bold"
|
|
170
222
|
}, titleProps), tagsTitle), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
171
223
|
className: "inline-flex h-6 items-center"
|
|
172
|
-
}, isUpdating && /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
|
|
173
|
-
className: "neeto-
|
|
224
|
+
}, (isUpdating || isLoading) && /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
|
|
225
|
+
className: "neeto-tags__metadata-card__spinner"
|
|
174
226
|
}), !isUpdating && isCheckIconVisible && /*#__PURE__*/React__default["default"].createElement(neetoIcons.Check, {
|
|
175
227
|
className: "neeto-ui-text-success-500",
|
|
176
228
|
size: 20
|
|
177
229
|
}))), showAddTagsOnTitle && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
230
|
+
disabled: isDisabled,
|
|
178
231
|
icon: neetoIcons.Settings,
|
|
179
232
|
size: "15",
|
|
180
233
|
style: "icon",
|
|
@@ -211,16 +264,24 @@ var Tags$2 = function Tags(_ref) {
|
|
|
211
264
|
isUpdating = _ref$isUpdating === void 0 ? false : _ref$isUpdating,
|
|
212
265
|
_ref$showAddTagsOnTit = _ref.showAddTagsOnTitle,
|
|
213
266
|
showAddTagsOnTitle = _ref$showAddTagsOnTit === void 0 ? true : _ref$showAddTagsOnTit,
|
|
267
|
+
_ref$isLoading = _ref.isLoading,
|
|
268
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
214
269
|
_ref$showTitleBar = _ref.showTitleBar,
|
|
215
270
|
showTitleBar = _ref$showTitleBar === void 0 ? true : _ref$showTitleBar,
|
|
216
271
|
_ref$bodyProps = _ref.bodyProps,
|
|
217
|
-
bodyProps = _ref$bodyProps === void 0 ? {} : _ref$bodyProps
|
|
272
|
+
bodyProps = _ref$bodyProps === void 0 ? {} : _ref$bodyProps,
|
|
273
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
274
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
|
|
218
275
|
var _useTranslation = reactI18next.useTranslation(),
|
|
219
276
|
t = _useTranslation.t;
|
|
220
277
|
var _useState = React.useState(false),
|
|
221
278
|
_useState2 = _slicedToArray(_useState, 2),
|
|
222
279
|
isTagsDropdownVisible = _useState2[0],
|
|
223
280
|
setIsTagsDropdownVisible = _useState2[1];
|
|
281
|
+
reactUtils.useHotKeys(KEYBOARD_SHORTCUTS.addTag.sequence, function (event) {
|
|
282
|
+
event.preventDefault();
|
|
283
|
+
setIsTagsDropdownVisible(true);
|
|
284
|
+
});
|
|
224
285
|
var tags = React.useMemo(function () {
|
|
225
286
|
if (!allTags) return [];
|
|
226
287
|
if (!selectedTags) return allTags;
|
|
@@ -249,44 +310,40 @@ var Tags$2 = function Tags(_ref) {
|
|
|
249
310
|
};
|
|
250
311
|
var isAddTagsButtonVisible = !showAddTagsOnTitle && !isTagsDropdownVisible;
|
|
251
312
|
var isTagsBodyVisible = neetoCist.isNotEmpty(selectedTags) || isTagsDropdownVisible || isAddTagsButtonVisible;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
313
|
+
var titleComponentProps = {
|
|
314
|
+
isDisabled: isDisabled,
|
|
315
|
+
isLoading: isLoading,
|
|
255
316
|
isUpdating: isUpdating,
|
|
256
317
|
setIsTagsDropdownVisible: setIsTagsDropdownVisible,
|
|
257
318
|
showAddTagsOnTitle: showAddTagsOnTitle,
|
|
258
319
|
title: title,
|
|
259
320
|
titleProps: titleProps
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
style: "primary",
|
|
269
|
-
onClose: function onClose() {
|
|
270
|
-
return handleDeleteTag(tag);
|
|
271
|
-
}
|
|
272
|
-
}, tagProps));
|
|
273
|
-
})), isTagsDropdownVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
|
|
274
|
-
autoFocus: true,
|
|
275
|
-
isCreateable: true,
|
|
276
|
-
className: "neeto-ui-mt-4",
|
|
321
|
+
};
|
|
322
|
+
var tagsListProps = {
|
|
323
|
+
handleDeleteTag: handleDeleteTag,
|
|
324
|
+
isDisabled: isDisabled,
|
|
325
|
+
selectedTags: selectedTags,
|
|
326
|
+
tagProps: tagProps
|
|
327
|
+
};
|
|
328
|
+
var tagsSelectorProps = {
|
|
277
329
|
defaultMenuIsOpen: showAddTagsOnTitle,
|
|
278
|
-
|
|
279
|
-
options: tags,
|
|
280
|
-
placeholder: t("neetoTags.placeholder.selectOrCreateTag"),
|
|
330
|
+
tags: tags,
|
|
281
331
|
onChange: function onChange(event) {
|
|
282
332
|
return handleAddExistingTag(event);
|
|
283
333
|
},
|
|
284
334
|
onCreateOption: function onCreateOption(event) {
|
|
285
335
|
setIsTagsDropdownVisible(false);
|
|
286
336
|
onTagCreate(event);
|
|
287
|
-
}
|
|
288
|
-
|
|
337
|
+
},
|
|
338
|
+
selectProps: selectProps
|
|
339
|
+
};
|
|
340
|
+
return /*#__PURE__*/React__default["default"].createElement("div", _extends({
|
|
341
|
+
className: "neeto-ui-tags-wrapper flex w-full flex-col items-start gap-2"
|
|
342
|
+
}, containerProps), showTitleBar && /*#__PURE__*/React__default["default"].createElement(Title, titleComponentProps), isTagsBodyVisible && /*#__PURE__*/React__default["default"].createElement("div", _extends({
|
|
343
|
+
className: "neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded-lg w-full border p-4"
|
|
344
|
+
}, bodyProps), neetoCist.isNotEmpty(selectedTags) && /*#__PURE__*/React__default["default"].createElement(TagsList, tagsListProps), isTagsDropdownVisible && /*#__PURE__*/React__default["default"].createElement(TagsSelector, tagsSelectorProps), isAddTagsButtonVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
|
|
289
345
|
className: "neeto-ui-mt-4",
|
|
346
|
+
disabled: isDisabled,
|
|
290
347
|
icon: neetoIcons.Plus,
|
|
291
348
|
label: t("neetoTags.button.addTag", constants.SINGULAR),
|
|
292
349
|
size: "small",
|
|
@@ -1028,7 +1085,7 @@ var List = function List(_ref) {
|
|
|
1028
1085
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1029
1086
|
"data-cy": "neeto-tags-merge-".concat(listType.value, "-tags"),
|
|
1030
1087
|
key: tag.id,
|
|
1031
|
-
className:
|
|
1088
|
+
className: classNames__default["default"]("neeto-ui-flex neeto-ui-justify-between neeto-ui-items-center neeto-tags-border neeto-ui-border-white neeto-ui-p-2 neeto-ui-rounded-lg neeto-ui-mt-2 neeto-ui-cursor-pointer", {
|
|
1032
1089
|
"neeto-ui-bg-pastel-blue neeto-ui-border-primary-600": selectedTagIds,
|
|
1033
1090
|
"hover:neeto-ui-bg-gray-100": !selectedTagIds,
|
|
1034
1091
|
"neeto-ui-cursor-not-allowed neeto-ui-bg-gray-100 neeto-ui-text-gray-500": selectedCounterTags
|