@bigbinary/neeto-tags-frontend 2.2.19 → 2.2.20

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 (69) hide show
  1. package/README.md +0 -2
  2. package/app/javascript/src/translations/hu.json +63 -0
  3. package/dist/.ready +1 -0
  4. package/dist/{ManageTags-WZiLyYNb.js → ManageTags-BnIsCqI7.js} +4 -4
  5. package/dist/{ManageTags-WZiLyYNb.js.map → ManageTags-BnIsCqI7.js.map} +1 -1
  6. package/dist/{ManageTags-IiSPrjYH.js → ManageTags-CDe724nr.js} +3 -3
  7. package/dist/{ManageTags-IiSPrjYH.js.map → ManageTags-CDe724nr.js.map} +1 -1
  8. package/dist/ManageTags-Cxg9R7JI.js +189 -0
  9. package/dist/ManageTags-Cxg9R7JI.js.map +1 -0
  10. package/dist/ManageTags-D523YbMW.js +166 -0
  11. package/dist/ManageTags-D523YbMW.js.map +1 -0
  12. package/dist/ManageTags.js +2 -2
  13. package/dist/NeetoTags.js +9 -524
  14. package/dist/NeetoTags.js.map +1 -1
  15. package/dist/TagsComponent.js +6 -6
  16. package/dist/TagsComponent.js.map +1 -1
  17. package/dist/cjs/ManageTags.js +2 -2
  18. package/dist/cjs/NeetoTags.js +9 -524
  19. package/dist/cjs/NeetoTags.js.map +1 -1
  20. package/dist/cjs/TagsComponent.js +6 -6
  21. package/dist/cjs/TagsComponent.js.map +1 -1
  22. package/dist/cjs/index.js +4 -3
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/cjs/utils.js +1 -1
  25. package/dist/cjs/v2/ManageTags.js +24 -0
  26. package/dist/cjs/v2/ManageTags.js.map +1 -0
  27. package/dist/cjs/v2/NeetoTags.js +823 -0
  28. package/dist/cjs/v2/NeetoTags.js.map +1 -0
  29. package/dist/cjs/v2/TagsComponent.js +316 -0
  30. package/dist/cjs/v2/TagsComponent.js.map +1 -0
  31. package/dist/cjs/v2/utils.js +15 -0
  32. package/dist/cjs/v2/utils.js.map +1 -0
  33. package/dist/constants-AJMWkdYm.js +36 -0
  34. package/dist/constants-AJMWkdYm.js.map +1 -0
  35. package/dist/constants-BP1u7ku6.js +43 -0
  36. package/dist/constants-BP1u7ku6.js.map +1 -0
  37. package/dist/index.js +4 -3
  38. package/dist/index.js.map +1 -1
  39. package/dist/inject-css-B6qYtOJe.js +6 -0
  40. package/dist/inject-css-B6qYtOJe.js.map +1 -0
  41. package/dist/inject-css-C2dztUxs.js +4 -0
  42. package/dist/inject-css-C2dztUxs.js.map +1 -0
  43. package/dist/pluralize-BjPF_ZHA.js +520 -0
  44. package/dist/pluralize-BjPF_ZHA.js.map +1 -0
  45. package/dist/pluralize-CSZDNFkc.js +518 -0
  46. package/dist/pluralize-CSZDNFkc.js.map +1 -0
  47. package/dist/useTagsApi-CaVQT--T.js +110 -0
  48. package/dist/useTagsApi-CaVQT--T.js.map +1 -0
  49. package/dist/{useTagsApi-CbashvsV.js → useTagsApi-DXIKl4Re.js} +2 -2
  50. package/dist/useTagsApi-DXIKl4Re.js.map +1 -0
  51. package/dist/{useTagsApi-CmFEGxns.js → useTagsApi-DpuKCFy0.js} +2 -2
  52. package/dist/{useTagsApi-CbashvsV.js.map → useTagsApi-DpuKCFy0.js.map} +1 -1
  53. package/dist/useTagsApi-LD-QEuoN.js +103 -0
  54. package/dist/useTagsApi-LD-QEuoN.js.map +1 -0
  55. package/dist/utils.js +1 -1
  56. package/dist/v2/ManageTags.js +18 -0
  57. package/dist/v2/ManageTags.js.map +1 -0
  58. package/dist/v2/NeetoTags.js +821 -0
  59. package/dist/v2/NeetoTags.js.map +1 -0
  60. package/dist/v2/TagsComponent.js +314 -0
  61. package/dist/v2/TagsComponent.js.map +1 -0
  62. package/dist/v2/utils.js +9 -0
  63. package/dist/v2/utils.js.map +1 -0
  64. package/package.json +38 -30
  65. package/dist/inject-css-DmrvuTKK.js +0 -4
  66. package/dist/inject-css-DmrvuTKK.js.map +0 -1
  67. package/dist/inject-css-vQvjPR2x.js +0 -6
  68. package/dist/inject-css-vQvjPR2x.js.map +0 -1
  69. package/dist/useTagsApi-CmFEGxns.js.map +0 -1
package/README.md CHANGED
@@ -42,8 +42,6 @@ The engine is used to manage tags for any entity across neeto products.
42
42
  ```ruby
43
43
  mount NeetoTagsEngine::Engine, at: "/neeto_tags"
44
44
  ```
45
- **NOTE: The mount point must be `/neeto_tags` and cannot be changed to any
46
- other path.**
47
45
  4. Run the following command to copy the migrations from the engine to the host
48
46
  application:
49
47
  ```ruby
@@ -0,0 +1,63 @@
1
+ {
2
+ "neetoTags": {
3
+ "alert": {
4
+ "title": {
5
+ "deleteTag": "Címke törlése?"
6
+ },
7
+ "message": {
8
+ "deleteTag_": "Örökre törli a <strong>{{name, anyCase}}</strong> címkét. Ez nem vonható vissza."
9
+ }
10
+ },
11
+ "button": {
12
+ "addTag_one": "Címke hozzáadása",
13
+ "addTag_other": "Címkék hozzáadása",
14
+ "cancel": "Mégse",
15
+ "delete": "Törlés",
16
+ "edit": "Szerkesztés",
17
+ "goBack": "Vissza",
18
+ "merge": "Egyesít",
19
+ "proceed": "Tovább",
20
+ "saveChanges": "Változások mentése"
21
+ },
22
+ "common": {
23
+ "addNewTag_one": "Új címke hozzáadása",
24
+ "addNewTag_other": "Új címkék hozzáadása",
25
+ "description": "Leírás",
26
+ "editTag": "Címke szerkesztése",
27
+ "mergeTag_one": "Címke egyesítése",
28
+ "mergeTag_other": "Címkék egyesítése",
29
+ "name": "Név",
30
+ "tag_one": "Címke",
31
+ "tag_other": "Címkék"
32
+ },
33
+ "helper": {
34
+ "mergeTagsMessage_one": "A {{- sourceTags, boldList}} címke egyesítve lesz a <strong>{{destinationTag}}</strong> címkével. Ez a {{entities}}-t is érinti, amelyek a <strong>{{sourceTags, anyCase}}</strong> címkéhez vannak rendelve. Folytatni szeretné?",
35
+ "mergeTagsMessage_other": "A {{- sourceTags, boldList}} címkék egyesítve lesznek a <strong>{{destinationTag}}</strong> címkével. Ez a {{entities}}-t is érinti, amelyek ezekkel a <strong>{{count}}</strong> címkével vannak ellátva. Folytatni szeretné?",
36
+ "tagWithCount_one": "{{count}} {{type}} címke",
37
+ "tagWithCount_other": "{{count}} {{type}} címkék",
38
+ "tagWithType_one": "{{type}} címke",
39
+ "tagWithType_other": "{{type}} címkék"
40
+ },
41
+ "placeholder": {
42
+ "selectOrCreateTag": "Válasszon vagy hozzon létre címkét",
43
+ "searchTags": "Címkék keresése"
44
+ },
45
+ "title": {
46
+ "noTagsToShow": "Nincsenek megjeleníthető címkék.",
47
+ "selectDestinationTag_one": "Válassza ki a célcímkét",
48
+ "selectDestinationTag_other": "Válassza ki a célcímkéket",
49
+ "selectSourceTag_one": "Válassza ki a forráscímkét",
50
+ "selectSourceTag_other": "Válassza ki a forrást címkéket"
51
+ },
52
+ "validation": {
53
+ "descriptionMustBeString": "A leírásnak szövegnek kell lennie.",
54
+ "descriptionMaxLength": "A leírásnak kevesebb mint {{length}} karakterből kell állnia.",
55
+ "nameMaxLength": "A névnek kevesebb mint {{length}} karakterből kell állnia.",
56
+ "nameRequired": "A név kötelező mező.",
57
+ "nameMustBeString": "A névnek szövegnek kell lennie."
58
+ },
59
+ "shortcuts": {
60
+ "addTag": "Címkék hozzáadása"
61
+ }
62
+ }
63
+ }
package/dist/.ready ADDED
@@ -0,0 +1 @@
1
+ Built at 2026-04-16T09:50:20.006Z
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { useRef } from 'react';
3
3
  import { toLabelAndValue } from '@bigbinary/neeto-cist';
4
- import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE, SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
4
+ import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX, SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
5
5
  import Pane from '@bigbinary/neetoui/Pane';
6
6
  import Typography from '@bigbinary/neetoui/Typography';
7
7
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
@@ -10,7 +10,7 @@ import Input from '@bigbinary/neetoui/formik/Input';
10
10
  import Select from '@bigbinary/neetoui/formik/Select';
11
11
  import Textarea from '@bigbinary/neetoui/formik/Textarea';
12
12
  import { useTranslation } from 'react-i18next';
13
- import { u as useUpdateTag, a as useCreateTag, T as TAG_STYLES, P as PANE_TYPES, I as INITIAL_TAG_VALUES } from './useTagsApi-CmFEGxns.js';
13
+ import { u as useUpdateTag, a as useCreateTag, T as TAG_STYLES, P as PANE_TYPES, I as INITIAL_TAG_VALUES } from './useTagsApi-DpuKCFy0.js';
14
14
  import { mergeLeft } from 'ramda';
15
15
  import { t } from 'i18next';
16
16
  import * as yup from 'yup';
@@ -91,7 +91,7 @@ var useTagsForm = function useTagsForm(_ref) {
91
91
  };
92
92
 
93
93
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
94
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
94
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
95
95
  var ManageTags = function ManageTags(_ref) {
96
96
  var createTags = _ref.createTags,
97
97
  goToFirstPage = _ref.goToFirstPage,
@@ -170,4 +170,4 @@ var ManageTags = function ManageTags(_ref) {
170
170
  };
171
171
 
172
172
  export { DEFAULT_FILTERS as D, ManageTags as M, NEETO_FILTERS as N };
173
- //# sourceMappingURL=ManageTags-WZiLyYNb.js.map
173
+ //# sourceMappingURL=ManageTags-BnIsCqI7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManageTags-WZiLyYNb.js","sources":["../app/javascript/src/components/Dashboard/constants.js","../app/javascript/src/hooks/useTagsForm.js","../app/javascript/src/components/Dashboard/ManageTags.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const TAG_NAME_MAX_LENGTH = 50;\n\nexport const TAG_DESCRIPTION_ROW_LENGTH = 3;\n\nexport const TAG_DESCRIPTION_MAX_LENGTH = 255;\n\nexport const TAG_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .typeError(t(\"neetoTags.validation.nameMustBeString\"))\n .required(t(\"neetoTags.validation.nameRequired\"))\n .max(\n TAG_NAME_MAX_LENGTH,\n t(\"neetoTags.validation.nameMaxLength\", {\n length: TAG_NAME_MAX_LENGTH,\n })\n ),\n description: yup\n .string()\n .typeError(t(\"neetoTags.validation.descriptionMustBeString\"))\n .nullable()\n .max(\n TAG_DESCRIPTION_MAX_LENGTH,\n t(\"neetoTags.validation.descriptionMaxLength\", {\n length: TAG_DESCRIPTION_MAX_LENGTH,\n })\n ),\n});\n\nexport const TAGS_FORMIK_PROPS = {\n validateOnBlur: true,\n validateOnChange: true,\n validationSchema: TAG_SCHEMA,\n};\n\nexport const DEFAULT_FILTERS = {\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const NEETO_FILTERS = [\n {\n key: \"name\",\n label: t(\"neetoTags.common.name\"),\n node: \"name\",\n type: \"text\",\n },\n];\n","import { mergeLeft } from \"ramda\";\n\nimport { useCreateTag, useUpdateTag } from \"./useTagsApi\";\n\nconst useTagsForm = ({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n}) => {\n const tagModification = isEdit ? useUpdateTag : useCreateTag;\n const tagOperation = isEdit ? updateTags : createTags;\n const { mutate, isPending: isSubmitting } = tagModification();\n\n const handleSubmit = (values, { resetForm }) => {\n const tagData = {\n url: tagType.url,\n payload: {\n tag: mergeLeft(\n {\n description: values.description?.trim(),\n style: values.style.value,\n },\n values\n ),\n },\n };\n\n if (isEdit) {\n tagData.id = values.id;\n }\n\n mutate(tagData, {\n onSuccess: response => {\n !isEdit && goToFirstPage?.();\n tagOperation?.onSuccess?.callback(response);\n onClose();\n },\n onError: () => {\n resetForm();\n },\n });\n };\n\n return { handleSubmit, isSubmitting };\n};\n\nexport default useTagsForm;\n","import { useRef } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input, Select, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PANE_TYPES, INITIAL_TAG_VALUES, TAG_STYLES } from \"common/constants\";\nimport useTagsForm from \"src/hooks/useTagsForm\";\n\nimport {\n TAGS_FORMIK_PROPS,\n TAG_DESCRIPTION_MAX_LENGTH,\n TAG_DESCRIPTION_ROW_LENGTH,\n TAG_NAME_MAX_LENGTH,\n} from \"./constants\";\n\nconst ManageTags = ({\n createTags,\n goToFirstPage,\n onClose,\n tag,\n tagType,\n type,\n updateTags,\n}) => {\n const { t } = useTranslation();\n const isEdit = type === PANE_TYPES.EDIT;\n const initialValues = isEdit ? tag : INITIAL_TAG_VALUES;\n const inputReference = useRef(null);\n\n const { handleSubmit, isSubmitting } = useTagsForm({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n });\n\n return (\n <Pane {...{ onClose }} initialFocusRef={inputReference} isOpen={!!type}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoTags.common.editTag\")\n : t(\"neetoTags.common.addNewTag\", SINGULAR)}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n ...TAGS_FORMIK_PROPS,\n initialValues,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"neeto-ui-flex neeto-ui-w-full neeto-ui-flex-col neeto-ui-gap-4\">\n <Input\n required\n unlimitedChars\n data-testid=\"tag-name-text-field\"\n label={t(\"neetoTags.common.name\")}\n maxLength={TAG_NAME_MAX_LENGTH}\n name=\"name\"\n ref={inputReference}\n />\n <Textarea\n unlimitedChars\n data-testid=\"tag-description-text-area\"\n label={t(\"neetoTags.common.description\")}\n maxLength={TAG_DESCRIPTION_MAX_LENGTH}\n name=\"description\"\n rows={TAG_DESCRIPTION_ROW_LENGTH}\n />\n <Select\n name=\"style\"\n options={Object.values(TAG_STYLES).map(toLabelAndValue)}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-submit-button\",\n }}\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default ManageTags;\n"],"names":["TAG_NAME_MAX_LENGTH","TAG_DESCRIPTION_ROW_LENGTH","TAG_DESCRIPTION_MAX_LENGTH","TAG_SCHEMA","yup","object","shape","name","string","typeError","t","required","max","length","description","nullable","TAGS_FORMIK_PROPS","validateOnBlur","validateOnChange","validationSchema","DEFAULT_FILTERS","page","DEFAULT_PAGE_INDEX","pageSize","DEFAULT_PAGE_SIZE","sortBy","orderBy","NEETO_FILTERS","key","label","node","type","useTagsForm","_ref","createTags","goToFirstPage","isEdit","onClose","tagType","updateTags","tagModification","useUpdateTag","useCreateTag","tagOperation","_tagModification","mutate","isSubmitting","isPending","handleSubmit","values","_ref2","_values$description","resetForm","tagData","url","payload","tag","mergeLeft","trim","style","value","id","onSuccess","response","_tagOperation$onSucce","callback","onError","ManageTags","_useTranslation","useTranslation","PANE_TYPES","EDIT","initialValues","INITIAL_TAG_VALUES","inputReference","useRef","_useTagsForm","_jsxs","Pane","initialFocusRef","isOpen","children","_jsx","Header","Typography","weight","SINGULAR","Form","formikProps","_objectSpread","onSubmit","Body","className","Input","unlimitedChars","maxLength","ref","Textarea","rows","Select","options","Object","TAG_STYLES","map","toLabelAndValue","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
1
+ {"version":3,"file":"ManageTags-BnIsCqI7.js","sources":["../app/javascript/src/components/Dashboard/constants.js","../app/javascript/src/hooks/useTagsForm.js","../app/javascript/src/components/Dashboard/ManageTags.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const TAG_NAME_MAX_LENGTH = 50;\n\nexport const TAG_DESCRIPTION_ROW_LENGTH = 3;\n\nexport const TAG_DESCRIPTION_MAX_LENGTH = 255;\n\nexport const TAG_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .typeError(t(\"neetoTags.validation.nameMustBeString\"))\n .required(t(\"neetoTags.validation.nameRequired\"))\n .max(\n TAG_NAME_MAX_LENGTH,\n t(\"neetoTags.validation.nameMaxLength\", {\n length: TAG_NAME_MAX_LENGTH,\n })\n ),\n description: yup\n .string()\n .typeError(t(\"neetoTags.validation.descriptionMustBeString\"))\n .nullable()\n .max(\n TAG_DESCRIPTION_MAX_LENGTH,\n t(\"neetoTags.validation.descriptionMaxLength\", {\n length: TAG_DESCRIPTION_MAX_LENGTH,\n })\n ),\n});\n\nexport const TAGS_FORMIK_PROPS = {\n validateOnBlur: true,\n validateOnChange: true,\n validationSchema: TAG_SCHEMA,\n};\n\nexport const DEFAULT_FILTERS = {\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const NEETO_FILTERS = [\n {\n key: \"name\",\n label: t(\"neetoTags.common.name\"),\n node: \"name\",\n type: \"text\",\n },\n];\n","import { mergeLeft } from \"ramda\";\n\nimport { useCreateTag, useUpdateTag } from \"./useTagsApi\";\n\nconst useTagsForm = ({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n}) => {\n const tagModification = isEdit ? useUpdateTag : useCreateTag;\n const tagOperation = isEdit ? updateTags : createTags;\n const { mutate, isPending: isSubmitting } = tagModification();\n\n const handleSubmit = (values, { resetForm }) => {\n const tagData = {\n url: tagType.url,\n payload: {\n tag: mergeLeft(\n {\n description: values.description?.trim(),\n style: values.style.value,\n },\n values\n ),\n },\n };\n\n if (isEdit) {\n tagData.id = values.id;\n }\n\n mutate(tagData, {\n onSuccess: response => {\n !isEdit && goToFirstPage?.();\n tagOperation?.onSuccess?.callback(response);\n onClose();\n },\n onError: () => {\n resetForm();\n },\n });\n };\n\n return { handleSubmit, isSubmitting };\n};\n\nexport default useTagsForm;\n","import { useRef } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input, Select, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PANE_TYPES, INITIAL_TAG_VALUES, TAG_STYLES } from \"common/constants\";\nimport useTagsForm from \"src/hooks/useTagsForm\";\n\nimport {\n TAGS_FORMIK_PROPS,\n TAG_DESCRIPTION_MAX_LENGTH,\n TAG_DESCRIPTION_ROW_LENGTH,\n TAG_NAME_MAX_LENGTH,\n} from \"./constants\";\n\nconst ManageTags = ({\n createTags,\n goToFirstPage,\n onClose,\n tag,\n tagType,\n type,\n updateTags,\n}) => {\n const { t } = useTranslation();\n const isEdit = type === PANE_TYPES.EDIT;\n const initialValues = isEdit ? tag : INITIAL_TAG_VALUES;\n const inputReference = useRef(null);\n\n const { handleSubmit, isSubmitting } = useTagsForm({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n });\n\n return (\n <Pane {...{ onClose }} initialFocusRef={inputReference} isOpen={!!type}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoTags.common.editTag\")\n : t(\"neetoTags.common.addNewTag\", SINGULAR)}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n ...TAGS_FORMIK_PROPS,\n initialValues,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"neeto-ui-flex neeto-ui-w-full neeto-ui-flex-col neeto-ui-gap-4\">\n <Input\n required\n unlimitedChars\n data-testid=\"tag-name-text-field\"\n label={t(\"neetoTags.common.name\")}\n maxLength={TAG_NAME_MAX_LENGTH}\n name=\"name\"\n ref={inputReference}\n />\n <Textarea\n unlimitedChars\n data-testid=\"tag-description-text-area\"\n label={t(\"neetoTags.common.description\")}\n maxLength={TAG_DESCRIPTION_MAX_LENGTH}\n name=\"description\"\n rows={TAG_DESCRIPTION_ROW_LENGTH}\n />\n <Select\n name=\"style\"\n options={Object.values(TAG_STYLES).map(toLabelAndValue)}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-submit-button\",\n }}\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default ManageTags;\n"],"names":["TAG_NAME_MAX_LENGTH","TAG_DESCRIPTION_ROW_LENGTH","TAG_DESCRIPTION_MAX_LENGTH","TAG_SCHEMA","yup","object","shape","name","string","typeError","t","required","max","length","description","nullable","TAGS_FORMIK_PROPS","validateOnBlur","validateOnChange","validationSchema","DEFAULT_FILTERS","page","DEFAULT_PAGE_INDEX","pageSize","DEFAULT_PAGE_SIZE","sortBy","orderBy","NEETO_FILTERS","key","label","node","type","useTagsForm","_ref","createTags","goToFirstPage","isEdit","onClose","tagType","updateTags","tagModification","useUpdateTag","useCreateTag","tagOperation","_tagModification","mutate","isSubmitting","isPending","handleSubmit","values","_ref2","_values$description","resetForm","tagData","url","payload","tag","mergeLeft","trim","style","value","id","onSuccess","response","_tagOperation$onSucce","callback","onError","ManageTags","_useTranslation","useTranslation","PANE_TYPES","EDIT","initialValues","INITIAL_TAG_VALUES","inputReference","useRef","_useTagsForm","_jsxs","Pane","initialFocusRef","isOpen","children","_jsx","Header","Typography","weight","SINGULAR","Form","formikProps","_objectSpread","onSubmit","Body","className","Input","unlimitedChars","maxLength","ref","Textarea","rows","Select","options","Object","TAG_STYLES","map","toLabelAndValue","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
@@ -12,7 +12,7 @@ var Input = require('@bigbinary/neetoui/formik/Input');
12
12
  var Select = require('@bigbinary/neetoui/formik/Select');
13
13
  var Textarea = require('@bigbinary/neetoui/formik/Textarea');
14
14
  var reactI18next = require('react-i18next');
15
- var useTagsApi = require('./useTagsApi-CbashvsV.js');
15
+ var useTagsApi = require('./useTagsApi-DXIKl4Re.js');
16
16
  var ramda = require('ramda');
17
17
  var i18next = require('i18next');
18
18
  var yup = require('yup');
@@ -112,7 +112,7 @@ var useTagsForm = function useTagsForm(_ref) {
112
112
  };
113
113
 
114
114
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
115
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
115
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
116
116
  var ManageTags = function ManageTags(_ref) {
117
117
  var createTags = _ref.createTags,
118
118
  goToFirstPage = _ref.goToFirstPage,
@@ -193,4 +193,4 @@ var ManageTags = function ManageTags(_ref) {
193
193
  exports.DEFAULT_FILTERS = DEFAULT_FILTERS;
194
194
  exports.ManageTags = ManageTags;
195
195
  exports.NEETO_FILTERS = NEETO_FILTERS;
196
- //# sourceMappingURL=ManageTags-IiSPrjYH.js.map
196
+ //# sourceMappingURL=ManageTags-CDe724nr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManageTags-IiSPrjYH.js","sources":["../app/javascript/src/components/Dashboard/constants.js","../app/javascript/src/hooks/useTagsForm.js","../app/javascript/src/components/Dashboard/ManageTags.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const TAG_NAME_MAX_LENGTH = 50;\n\nexport const TAG_DESCRIPTION_ROW_LENGTH = 3;\n\nexport const TAG_DESCRIPTION_MAX_LENGTH = 255;\n\nexport const TAG_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .typeError(t(\"neetoTags.validation.nameMustBeString\"))\n .required(t(\"neetoTags.validation.nameRequired\"))\n .max(\n TAG_NAME_MAX_LENGTH,\n t(\"neetoTags.validation.nameMaxLength\", {\n length: TAG_NAME_MAX_LENGTH,\n })\n ),\n description: yup\n .string()\n .typeError(t(\"neetoTags.validation.descriptionMustBeString\"))\n .nullable()\n .max(\n TAG_DESCRIPTION_MAX_LENGTH,\n t(\"neetoTags.validation.descriptionMaxLength\", {\n length: TAG_DESCRIPTION_MAX_LENGTH,\n })\n ),\n});\n\nexport const TAGS_FORMIK_PROPS = {\n validateOnBlur: true,\n validateOnChange: true,\n validationSchema: TAG_SCHEMA,\n};\n\nexport const DEFAULT_FILTERS = {\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const NEETO_FILTERS = [\n {\n key: \"name\",\n label: t(\"neetoTags.common.name\"),\n node: \"name\",\n type: \"text\",\n },\n];\n","import { mergeLeft } from \"ramda\";\n\nimport { useCreateTag, useUpdateTag } from \"./useTagsApi\";\n\nconst useTagsForm = ({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n}) => {\n const tagModification = isEdit ? useUpdateTag : useCreateTag;\n const tagOperation = isEdit ? updateTags : createTags;\n const { mutate, isPending: isSubmitting } = tagModification();\n\n const handleSubmit = (values, { resetForm }) => {\n const tagData = {\n url: tagType.url,\n payload: {\n tag: mergeLeft(\n {\n description: values.description?.trim(),\n style: values.style.value,\n },\n values\n ),\n },\n };\n\n if (isEdit) {\n tagData.id = values.id;\n }\n\n mutate(tagData, {\n onSuccess: response => {\n !isEdit && goToFirstPage?.();\n tagOperation?.onSuccess?.callback(response);\n onClose();\n },\n onError: () => {\n resetForm();\n },\n });\n };\n\n return { handleSubmit, isSubmitting };\n};\n\nexport default useTagsForm;\n","import { useRef } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input, Select, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PANE_TYPES, INITIAL_TAG_VALUES, TAG_STYLES } from \"common/constants\";\nimport useTagsForm from \"src/hooks/useTagsForm\";\n\nimport {\n TAGS_FORMIK_PROPS,\n TAG_DESCRIPTION_MAX_LENGTH,\n TAG_DESCRIPTION_ROW_LENGTH,\n TAG_NAME_MAX_LENGTH,\n} from \"./constants\";\n\nconst ManageTags = ({\n createTags,\n goToFirstPage,\n onClose,\n tag,\n tagType,\n type,\n updateTags,\n}) => {\n const { t } = useTranslation();\n const isEdit = type === PANE_TYPES.EDIT;\n const initialValues = isEdit ? tag : INITIAL_TAG_VALUES;\n const inputReference = useRef(null);\n\n const { handleSubmit, isSubmitting } = useTagsForm({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n });\n\n return (\n <Pane {...{ onClose }} initialFocusRef={inputReference} isOpen={!!type}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoTags.common.editTag\")\n : t(\"neetoTags.common.addNewTag\", SINGULAR)}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n ...TAGS_FORMIK_PROPS,\n initialValues,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"neeto-ui-flex neeto-ui-w-full neeto-ui-flex-col neeto-ui-gap-4\">\n <Input\n required\n unlimitedChars\n data-testid=\"tag-name-text-field\"\n label={t(\"neetoTags.common.name\")}\n maxLength={TAG_NAME_MAX_LENGTH}\n name=\"name\"\n ref={inputReference}\n />\n <Textarea\n unlimitedChars\n data-testid=\"tag-description-text-area\"\n label={t(\"neetoTags.common.description\")}\n maxLength={TAG_DESCRIPTION_MAX_LENGTH}\n name=\"description\"\n rows={TAG_DESCRIPTION_ROW_LENGTH}\n />\n <Select\n name=\"style\"\n options={Object.values(TAG_STYLES).map(toLabelAndValue)}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-submit-button\",\n }}\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default ManageTags;\n"],"names":["TAG_NAME_MAX_LENGTH","TAG_DESCRIPTION_ROW_LENGTH","TAG_DESCRIPTION_MAX_LENGTH","TAG_SCHEMA","yup","object","shape","name","string","typeError","t","required","max","length","description","nullable","TAGS_FORMIK_PROPS","validateOnBlur","validateOnChange","validationSchema","DEFAULT_FILTERS","page","DEFAULT_PAGE_INDEX","pageSize","DEFAULT_PAGE_SIZE","sortBy","orderBy","NEETO_FILTERS","key","label","node","type","useTagsForm","_ref","createTags","goToFirstPage","isEdit","onClose","tagType","updateTags","tagModification","useUpdateTag","useCreateTag","tagOperation","_tagModification","mutate","isSubmitting","isPending","handleSubmit","values","_ref2","_values$description","resetForm","tagData","url","payload","tag","mergeLeft","trim","style","value","id","onSuccess","response","_tagOperation$onSucce","callback","onError","ManageTags","_useTranslation","useTranslation","PANE_TYPES","EDIT","initialValues","INITIAL_TAG_VALUES","inputReference","useRef","_useTagsForm","_jsxs","Pane","initialFocusRef","isOpen","children","_jsx","Header","Typography","weight","SINGULAR","Form","formikProps","_objectSpread","onSubmit","Body","className","Input","unlimitedChars","maxLength","ref","Textarea","rows","Select","options","Object","TAG_STYLES","map","toLabelAndValue","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
1
+ {"version":3,"file":"ManageTags-CDe724nr.js","sources":["../app/javascript/src/components/Dashboard/constants.js","../app/javascript/src/hooks/useTagsForm.js","../app/javascript/src/components/Dashboard/ManageTags.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const TAG_NAME_MAX_LENGTH = 50;\n\nexport const TAG_DESCRIPTION_ROW_LENGTH = 3;\n\nexport const TAG_DESCRIPTION_MAX_LENGTH = 255;\n\nexport const TAG_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .typeError(t(\"neetoTags.validation.nameMustBeString\"))\n .required(t(\"neetoTags.validation.nameRequired\"))\n .max(\n TAG_NAME_MAX_LENGTH,\n t(\"neetoTags.validation.nameMaxLength\", {\n length: TAG_NAME_MAX_LENGTH,\n })\n ),\n description: yup\n .string()\n .typeError(t(\"neetoTags.validation.descriptionMustBeString\"))\n .nullable()\n .max(\n TAG_DESCRIPTION_MAX_LENGTH,\n t(\"neetoTags.validation.descriptionMaxLength\", {\n length: TAG_DESCRIPTION_MAX_LENGTH,\n })\n ),\n});\n\nexport const TAGS_FORMIK_PROPS = {\n validateOnBlur: true,\n validateOnChange: true,\n validationSchema: TAG_SCHEMA,\n};\n\nexport const DEFAULT_FILTERS = {\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const NEETO_FILTERS = [\n {\n key: \"name\",\n label: t(\"neetoTags.common.name\"),\n node: \"name\",\n type: \"text\",\n },\n];\n","import { mergeLeft } from \"ramda\";\n\nimport { useCreateTag, useUpdateTag } from \"./useTagsApi\";\n\nconst useTagsForm = ({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n}) => {\n const tagModification = isEdit ? useUpdateTag : useCreateTag;\n const tagOperation = isEdit ? updateTags : createTags;\n const { mutate, isPending: isSubmitting } = tagModification();\n\n const handleSubmit = (values, { resetForm }) => {\n const tagData = {\n url: tagType.url,\n payload: {\n tag: mergeLeft(\n {\n description: values.description?.trim(),\n style: values.style.value,\n },\n values\n ),\n },\n };\n\n if (isEdit) {\n tagData.id = values.id;\n }\n\n mutate(tagData, {\n onSuccess: response => {\n !isEdit && goToFirstPage?.();\n tagOperation?.onSuccess?.callback(response);\n onClose();\n },\n onError: () => {\n resetForm();\n },\n });\n };\n\n return { handleSubmit, isSubmitting };\n};\n\nexport default useTagsForm;\n","import { useRef } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input, Select, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PANE_TYPES, INITIAL_TAG_VALUES, TAG_STYLES } from \"common/constants\";\nimport useTagsForm from \"src/hooks/useTagsForm\";\n\nimport {\n TAGS_FORMIK_PROPS,\n TAG_DESCRIPTION_MAX_LENGTH,\n TAG_DESCRIPTION_ROW_LENGTH,\n TAG_NAME_MAX_LENGTH,\n} from \"./constants\";\n\nconst ManageTags = ({\n createTags,\n goToFirstPage,\n onClose,\n tag,\n tagType,\n type,\n updateTags,\n}) => {\n const { t } = useTranslation();\n const isEdit = type === PANE_TYPES.EDIT;\n const initialValues = isEdit ? tag : INITIAL_TAG_VALUES;\n const inputReference = useRef(null);\n\n const { handleSubmit, isSubmitting } = useTagsForm({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n });\n\n return (\n <Pane {...{ onClose }} initialFocusRef={inputReference} isOpen={!!type}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoTags.common.editTag\")\n : t(\"neetoTags.common.addNewTag\", SINGULAR)}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n ...TAGS_FORMIK_PROPS,\n initialValues,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"neeto-ui-flex neeto-ui-w-full neeto-ui-flex-col neeto-ui-gap-4\">\n <Input\n required\n unlimitedChars\n data-testid=\"tag-name-text-field\"\n label={t(\"neetoTags.common.name\")}\n maxLength={TAG_NAME_MAX_LENGTH}\n name=\"name\"\n ref={inputReference}\n />\n <Textarea\n unlimitedChars\n data-testid=\"tag-description-text-area\"\n label={t(\"neetoTags.common.description\")}\n maxLength={TAG_DESCRIPTION_MAX_LENGTH}\n name=\"description\"\n rows={TAG_DESCRIPTION_ROW_LENGTH}\n />\n <Select\n name=\"style\"\n options={Object.values(TAG_STYLES).map(toLabelAndValue)}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-submit-button\",\n }}\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default ManageTags;\n"],"names":["TAG_NAME_MAX_LENGTH","TAG_DESCRIPTION_ROW_LENGTH","TAG_DESCRIPTION_MAX_LENGTH","TAG_SCHEMA","yup","object","shape","name","string","typeError","t","required","max","length","description","nullable","TAGS_FORMIK_PROPS","validateOnBlur","validateOnChange","validationSchema","DEFAULT_FILTERS","page","DEFAULT_PAGE_INDEX","pageSize","DEFAULT_PAGE_SIZE","sortBy","orderBy","NEETO_FILTERS","key","label","node","type","useTagsForm","_ref","createTags","goToFirstPage","isEdit","onClose","tagType","updateTags","tagModification","useUpdateTag","useCreateTag","tagOperation","_tagModification","mutate","isSubmitting","isPending","handleSubmit","values","_ref2","_values$description","resetForm","tagData","url","payload","tag","mergeLeft","trim","style","value","id","onSuccess","response","_tagOperation$onSucce","callback","onError","ManageTags","_useTranslation","useTranslation","PANE_TYPES","EDIT","initialValues","INITIAL_TAG_VALUES","inputReference","useRef","_useTagsForm","_jsxs","Pane","initialFocusRef","isOpen","children","_jsx","Header","Typography","weight","SINGULAR","Form","formikProps","_objectSpread","onSubmit","Body","className","Input","unlimitedChars","maxLength","ref","Textarea","rows","Select","options","Object","TAG_STYLES","map","toLabelAndValue","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var react = require('react');
5
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
6
+ var formik = require('@bigbinary/neeto-atoms/formik');
7
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
8
+ var reactI18next = require('react-i18next');
9
+ var i18next = require('i18next');
10
+ var yup = require('yup');
11
+ var constants$1 = require('./constants-BP1u7ku6.js');
12
+ var ramda = require('ramda');
13
+ var useTagsApi = require('./useTagsApi-CaVQT--T.js');
14
+ var jsxRuntime = require('react/jsx-runtime');
15
+
16
+ function _interopNamespaceDefault(e) {
17
+ var n = Object.create(null);
18
+ if (e) {
19
+ Object.keys(e).forEach(function (k) {
20
+ if (k !== 'default') {
21
+ var d = Object.getOwnPropertyDescriptor(e, k);
22
+ Object.defineProperty(n, k, d.get ? d : {
23
+ enumerable: true,
24
+ get: function () { return e[k]; }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ n.default = e;
30
+ return Object.freeze(n);
31
+ }
32
+
33
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
34
+
35
+ var TAG_NAME_MAX_LENGTH = 50;
36
+ var TAG_DESCRIPTION_ROW_LENGTH = 3;
37
+ var TAG_DESCRIPTION_MAX_LENGTH = 255;
38
+ var TAG_SCHEMA = yup__namespace.object().shape({
39
+ name: yup__namespace.string().typeError(i18next.t("neetoTags.validation.nameMustBeString")).required(i18next.t("neetoTags.validation.nameRequired")).max(TAG_NAME_MAX_LENGTH, i18next.t("neetoTags.validation.nameMaxLength", {
40
+ length: TAG_NAME_MAX_LENGTH
41
+ })),
42
+ description: yup__namespace.string().typeError(i18next.t("neetoTags.validation.descriptionMustBeString")).nullable().max(TAG_DESCRIPTION_MAX_LENGTH, i18next.t("neetoTags.validation.descriptionMaxLength", {
43
+ length: TAG_DESCRIPTION_MAX_LENGTH
44
+ }))
45
+ });
46
+ var TAGS_FORMIK_PROPS = {
47
+ validateOnBlur: true,
48
+ validateOnChange: true,
49
+ validationSchema: TAG_SCHEMA
50
+ };
51
+ var DEFAULT_FILTERS = {
52
+ page: constants.DEFAULT_PAGE_INDEX,
53
+ pageSize: constants.DEFAULT_PAGE_SIZE,
54
+ sortBy: "",
55
+ orderBy: ""
56
+ };
57
+ var NEETO_FILTERS = [{
58
+ key: "name",
59
+ label: i18next.t("neetoTags.common.name"),
60
+ node: "name",
61
+ type: "text"
62
+ }];
63
+
64
+ var useTagsForm = function useTagsForm(_ref) {
65
+ var createTags = _ref.createTags,
66
+ goToFirstPage = _ref.goToFirstPage,
67
+ isEdit = _ref.isEdit,
68
+ onClose = _ref.onClose,
69
+ tagType = _ref.tagType,
70
+ updateTags = _ref.updateTags;
71
+ var tagModification = isEdit ? useTagsApi.useUpdateTag : useTagsApi.useCreateTag;
72
+ var tagOperation = isEdit ? updateTags : createTags;
73
+ var _tagModification = tagModification(),
74
+ mutate = _tagModification.mutate,
75
+ isSubmitting = _tagModification.isPending;
76
+ var handleSubmit = function handleSubmit(values, _ref2) {
77
+ var _values$description;
78
+ var resetForm = _ref2.resetForm;
79
+ var tagData = {
80
+ url: tagType.url,
81
+ payload: {
82
+ tag: ramda.mergeLeft({
83
+ description: (_values$description = values.description) === null || _values$description === void 0 ? void 0 : _values$description.trim(),
84
+ style: values.style
85
+ }, values)
86
+ }
87
+ };
88
+ if (isEdit) {
89
+ tagData.id = values.id;
90
+ }
91
+ mutate(tagData, {
92
+ onSuccess: function onSuccess(response) {
93
+ var _tagOperation$onSucce;
94
+ !isEdit && (goToFirstPage === null || goToFirstPage === void 0 ? void 0 : goToFirstPage());
95
+ tagOperation === null || tagOperation === void 0 || (_tagOperation$onSucce = tagOperation.onSuccess) === null || _tagOperation$onSucce === void 0 || _tagOperation$onSucce.callback(response);
96
+ onClose();
97
+ },
98
+ onError: function onError() {
99
+ resetForm();
100
+ }
101
+ });
102
+ };
103
+ return {
104
+ handleSubmit: handleSubmit,
105
+ isSubmitting: isSubmitting
106
+ };
107
+ };
108
+
109
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
110
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
111
+ var ManageTags = function ManageTags(_ref) {
112
+ var createTags = _ref.createTags,
113
+ goToFirstPage = _ref.goToFirstPage,
114
+ onClose = _ref.onClose,
115
+ tag = _ref.tag,
116
+ tagType = _ref.tagType,
117
+ type = _ref.type,
118
+ updateTags = _ref.updateTags;
119
+ var _useTranslation = reactI18next.useTranslation(),
120
+ t = _useTranslation.t;
121
+ var isEdit = type === constants$1.PANE_TYPES.EDIT;
122
+ var initialValues = isEdit ? _objectSpread(_objectSpread({}, tag), {}, {
123
+ style: (tag === null || tag === void 0 ? void 0 : tag.style) || constants$1.INITIAL_TAG_VALUES.style
124
+ }) : constants$1.INITIAL_TAG_VALUES;
125
+ var inputReference = react.useRef(null);
126
+ var _useTagsForm = useTagsForm({
127
+ createTags: createTags,
128
+ goToFirstPage: goToFirstPage,
129
+ isEdit: isEdit,
130
+ onClose: onClose,
131
+ tagType: tagType,
132
+ updateTags: updateTags
133
+ }),
134
+ handleSubmit = _useTagsForm.handleSubmit,
135
+ isSubmitting = _useTagsForm.isSubmitting;
136
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
137
+ onClose: onClose,
138
+ initialFocusRef: inputReference,
139
+ isOpen: !!type,
140
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
141
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
142
+ children: isEdit ? t("neetoTags.common.editTag") : t("neetoTags.common.addNewTag", constants.SINGULAR)
143
+ })
144
+ }), /*#__PURE__*/jsxRuntime.jsxs(formik.Form, {
145
+ formikProps: _objectSpread(_objectSpread({}, TAGS_FORMIK_PROPS), {}, {
146
+ initialValues: initialValues,
147
+ onSubmit: handleSubmit
148
+ }),
149
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
150
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
151
+ className: "flex w-full flex-col gap-4",
152
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik.FormikInput, {
153
+ required: true,
154
+ "data-testid": "tag-name-text-field",
155
+ label: t("neetoTags.common.name"),
156
+ maxLength: TAG_NAME_MAX_LENGTH,
157
+ name: "name",
158
+ ref: inputReference
159
+ }), /*#__PURE__*/jsxRuntime.jsx(formik.FormikTextarea, {
160
+ "data-testid": "tag-description-text-area",
161
+ label: t("neetoTags.common.description"),
162
+ maxLength: TAG_DESCRIPTION_MAX_LENGTH,
163
+ name: "description",
164
+ rows: TAG_DESCRIPTION_ROW_LENGTH
165
+ }), /*#__PURE__*/jsxRuntime.jsx(formik.FormikSelect, {
166
+ name: "style",
167
+ options: constants$1.TAG_STYLE_OPTIONS
168
+ })]
169
+ })
170
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Footer, {
171
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.FormikActionBlock, {
172
+ isSubmitting: isSubmitting,
173
+ cancelButtonProps: {
174
+ "data-testid": "neeto-tags-manage-tag-cancel-button",
175
+ onClick: onClose
176
+ },
177
+ submitButtonProps: {
178
+ "data-testid": "neeto-tags-manage-tag-submit-button"
179
+ }
180
+ })
181
+ })]
182
+ })]
183
+ });
184
+ };
185
+
186
+ exports.DEFAULT_FILTERS = DEFAULT_FILTERS;
187
+ exports.ManageTags = ManageTags;
188
+ exports.NEETO_FILTERS = NEETO_FILTERS;
189
+ //# sourceMappingURL=ManageTags-Cxg9R7JI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManageTags-Cxg9R7JI.js","sources":["../app/javascript/src/components/v2/components/Dashboard/constants.js","../app/javascript/src/components/v2/hooks/useTagsForm.js","../app/javascript/src/components/v2/components/Dashboard/ManageTags.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nexport const TAG_NAME_MAX_LENGTH = 50;\n\nexport const TAG_DESCRIPTION_ROW_LENGTH = 3;\n\nexport const TAG_DESCRIPTION_MAX_LENGTH = 255;\n\nexport const TAG_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .typeError(t(\"neetoTags.validation.nameMustBeString\"))\n .required(t(\"neetoTags.validation.nameRequired\"))\n .max(\n TAG_NAME_MAX_LENGTH,\n t(\"neetoTags.validation.nameMaxLength\", {\n length: TAG_NAME_MAX_LENGTH,\n })\n ),\n description: yup\n .string()\n .typeError(t(\"neetoTags.validation.descriptionMustBeString\"))\n .nullable()\n .max(\n TAG_DESCRIPTION_MAX_LENGTH,\n t(\"neetoTags.validation.descriptionMaxLength\", {\n length: TAG_DESCRIPTION_MAX_LENGTH,\n })\n ),\n});\n\nexport const TAGS_FORMIK_PROPS = {\n validateOnBlur: true,\n validateOnChange: true,\n validationSchema: TAG_SCHEMA,\n};\n\nexport const DEFAULT_FILTERS = {\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const NEETO_FILTERS = [\n {\n key: \"name\",\n label: t(\"neetoTags.common.name\"),\n node: \"name\",\n type: \"text\",\n },\n];\n","import { mergeLeft } from \"ramda\";\n\nimport { useCreateTag, useUpdateTag } from \"./useTagsApi\";\n\nconst useTagsForm = ({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n}) => {\n const tagModification = isEdit ? useUpdateTag : useCreateTag;\n const tagOperation = isEdit ? updateTags : createTags;\n const { mutate, isPending: isSubmitting } = tagModification();\n\n const handleSubmit = (values, { resetForm }) => {\n const tagData = {\n url: tagType.url,\n payload: {\n tag: mergeLeft(\n {\n description: values.description?.trim(),\n style: values.style,\n },\n values\n ),\n },\n };\n\n if (isEdit) {\n tagData.id = values.id;\n }\n\n mutate(tagData, {\n onSuccess: response => {\n !isEdit && goToFirstPage?.();\n tagOperation?.onSuccess?.callback(response);\n onClose();\n },\n onError: () => {\n resetForm();\n },\n });\n };\n\n return { handleSubmit, isSubmitting };\n};\n\nexport default useTagsForm;\n","import { useRef } from \"react\";\n\nimport { Sheet } from \"@bigbinary/neeto-atoms\";\nimport {\n Form,\n FormikActionBlock,\n FormikInput,\n FormikSelect,\n FormikTextarea,\n} from \"@bigbinary/neeto-atoms/formik\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TAGS_FORMIK_PROPS,\n TAG_DESCRIPTION_MAX_LENGTH,\n TAG_DESCRIPTION_ROW_LENGTH,\n TAG_NAME_MAX_LENGTH,\n} from \"./constants\";\n\nimport {\n PANE_TYPES,\n INITIAL_TAG_VALUES,\n TAG_STYLE_OPTIONS,\n} from \"../../common/constants\";\nimport useTagsForm from \"../../hooks/useTagsForm\";\n\nconst ManageTags = ({\n createTags,\n goToFirstPage,\n onClose,\n tag,\n tagType,\n type,\n updateTags,\n}) => {\n const { t } = useTranslation();\n const isEdit = type === PANE_TYPES.EDIT;\n const initialValues = isEdit\n ? { ...tag, style: tag?.style || INITIAL_TAG_VALUES.style }\n : INITIAL_TAG_VALUES;\n const inputReference = useRef(null);\n\n const { handleSubmit, isSubmitting } = useTagsForm({\n createTags,\n goToFirstPage,\n isEdit,\n onClose,\n tagType,\n updateTags,\n });\n\n return (\n <Sheet {...{ onClose }} initialFocusRef={inputReference} isOpen={!!type}>\n <Sheet.Header>\n <Sheet.Title>\n {isEdit\n ? t(\"neetoTags.common.editTag\")\n : t(\"neetoTags.common.addNewTag\", SINGULAR)}\n </Sheet.Title>\n </Sheet.Header>\n <Form\n formikProps={{\n ...TAGS_FORMIK_PROPS,\n initialValues,\n onSubmit: handleSubmit,\n }}\n >\n <Sheet.Body>\n <div className=\"flex w-full flex-col gap-4\">\n <FormikInput\n required\n data-testid=\"tag-name-text-field\"\n label={t(\"neetoTags.common.name\")}\n maxLength={TAG_NAME_MAX_LENGTH}\n name=\"name\"\n ref={inputReference}\n />\n <FormikTextarea\n data-testid=\"tag-description-text-area\"\n label={t(\"neetoTags.common.description\")}\n maxLength={TAG_DESCRIPTION_MAX_LENGTH}\n name=\"description\"\n rows={TAG_DESCRIPTION_ROW_LENGTH}\n />\n <FormikSelect name=\"style\" options={TAG_STYLE_OPTIONS} />\n </div>\n </Sheet.Body>\n <Sheet.Footer>\n <FormikActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-testid\": \"neeto-tags-manage-tag-submit-button\",\n }}\n />\n </Sheet.Footer>\n </Form>\n </Sheet>\n );\n};\n\nexport default ManageTags;\n"],"names":["TAG_NAME_MAX_LENGTH","TAG_DESCRIPTION_ROW_LENGTH","TAG_DESCRIPTION_MAX_LENGTH","TAG_SCHEMA","yup","object","shape","name","string","typeError","t","required","max","length","description","nullable","TAGS_FORMIK_PROPS","validateOnBlur","validateOnChange","validationSchema","DEFAULT_FILTERS","page","DEFAULT_PAGE_INDEX","pageSize","DEFAULT_PAGE_SIZE","sortBy","orderBy","NEETO_FILTERS","key","label","node","type","useTagsForm","_ref","createTags","goToFirstPage","isEdit","onClose","tagType","updateTags","tagModification","useUpdateTag","useCreateTag","tagOperation","_tagModification","mutate","isSubmitting","isPending","handleSubmit","values","_ref2","_values$description","resetForm","tagData","url","payload","tag","mergeLeft","trim","style","id","onSuccess","response","_tagOperation$onSucce","callback","onError","ManageTags","_useTranslation","useTranslation","PANE_TYPES","EDIT","initialValues","_objectSpread","INITIAL_TAG_VALUES","inputReference","useRef","_useTagsForm","_jsxs","Sheet","initialFocusRef","isOpen","children","_jsx","Header","Title","SINGULAR","Form","formikProps","onSubmit","Body","className","FormikInput","maxLength","ref","FormikTextarea","rows","FormikSelect","options","TAG_STYLE_OPTIONS","Footer","FormikActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}