@bigbinary/neeto-tags-frontend 1.5.5 → 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 +89 -32
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +90 -33
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.cjs.js
CHANGED
|
@@ -5,13 +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');
|
|
12
14
|
var classNames = require('classnames');
|
|
13
15
|
var reactRouterDom = require('react-router-dom');
|
|
14
|
-
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
15
16
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
16
17
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
17
18
|
var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
@@ -20,7 +21,6 @@ var reactQuery = require('react-query');
|
|
|
20
21
|
var axios = require('axios');
|
|
21
22
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
22
23
|
var formik = require('@bigbinary/neetoui/formik');
|
|
23
|
-
var i18next = require('i18next');
|
|
24
24
|
var yup = require('yup');
|
|
25
25
|
var devtools = require('react-query/devtools');
|
|
26
26
|
|
|
@@ -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);
|
|
@@ -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",
|