@bigbinary/neeto-fields-frontend 2.4.8 → 3.0.0

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 (65) hide show
  1. package/README.md +43 -6
  2. package/app/javascript/src/translations/ar.json +1 -1
  3. package/app/javascript/src/translations/bg.json +1 -1
  4. package/app/javascript/src/translations/ca.json +1 -1
  5. package/app/javascript/src/translations/cs.json +1 -1
  6. package/app/javascript/src/translations/da.json +1 -1
  7. package/app/javascript/src/translations/es-MX.json +1 -1
  8. package/app/javascript/src/translations/et.json +1 -1
  9. package/app/javascript/src/translations/fi.json +1 -1
  10. package/app/javascript/src/translations/fil.json +1 -1
  11. package/app/javascript/src/translations/hi.json +1 -1
  12. package/app/javascript/src/translations/hr.json +1 -1
  13. package/app/javascript/src/translations/id.json +1 -1
  14. package/app/javascript/src/translations/it.json +1 -1
  15. package/app/javascript/src/translations/ja.json +1 -1
  16. package/app/javascript/src/translations/ko.json +1 -1
  17. package/app/javascript/src/translations/nl.json +1 -1
  18. package/app/javascript/src/translations/pl.json +1 -1
  19. package/app/javascript/src/translations/pt-BR.json +1 -1
  20. package/app/javascript/src/translations/pt.json +1 -1
  21. package/app/javascript/src/translations/ro.json +1 -1
  22. package/app/javascript/src/translations/ru.json +1 -1
  23. package/app/javascript/src/translations/sk.json +1 -1
  24. package/app/javascript/src/translations/sl.json +1 -1
  25. package/app/javascript/src/translations/sv.json +1 -1
  26. package/app/javascript/src/translations/th.json +1 -1
  27. package/app/javascript/src/translations/tr.json +1 -1
  28. package/app/javascript/src/translations/uk.json +1 -1
  29. package/app/javascript/src/translations/vi.json +1 -1
  30. package/app/javascript/src/translations/zh-CN.json +1 -1
  31. package/app/javascript/src/translations/zh-TW.json +1 -1
  32. package/dist/{DeleteAlert-DE15i_yx.js → DeleteAlert-BWq3eZio.js} +5 -4
  33. package/dist/DeleteAlert-BWq3eZio.js.map +1 -0
  34. package/dist/{DeleteAlert-BQqfe0QG.js → DeleteAlert-BcSFSbN1.js} +5 -4
  35. package/dist/DeleteAlert-BcSFSbN1.js.map +1 -0
  36. package/dist/FieldDeleteAlert.js +2 -2
  37. package/dist/FieldValuesContainer.js +7 -4
  38. package/dist/FieldValuesContainer.js.map +1 -1
  39. package/dist/FieldsDashboard.js +21 -12
  40. package/dist/FieldsDashboard.js.map +1 -1
  41. package/dist/FieldsPane.js +1 -1
  42. package/dist/InlineFieldValueInput.js +4 -4
  43. package/dist/InlineFieldValueInput.js.map +1 -1
  44. package/dist/cjs/FieldDeleteAlert.js +2 -2
  45. package/dist/cjs/FieldValuesContainer.js +10 -7
  46. package/dist/cjs/FieldValuesContainer.js.map +1 -1
  47. package/dist/cjs/FieldsDashboard.js +21 -12
  48. package/dist/cjs/FieldsDashboard.js.map +1 -1
  49. package/dist/cjs/FieldsPane.js +1 -1
  50. package/dist/cjs/InlineFieldValueInput.js +3 -3
  51. package/dist/cjs/InlineFieldValueInput.js.map +1 -1
  52. package/dist/cjs/hooks.js +1 -1
  53. package/dist/cjs/index.js +3 -3
  54. package/dist/hooks.js +1 -1
  55. package/dist/index.js +3 -3
  56. package/dist/{useFieldsApi-j7CdIR66.js → useFieldsApi-CH-3Pwp9.js} +4 -2
  57. package/dist/useFieldsApi-CH-3Pwp9.js.map +1 -0
  58. package/dist/{useFieldsApi-BW5VaJf3.js → useFieldsApi-CLKUViDe.js} +4 -2
  59. package/dist/useFieldsApi-CLKUViDe.js.map +1 -0
  60. package/package.json +6 -6
  61. package/types.d.ts +2 -0
  62. package/dist/DeleteAlert-BQqfe0QG.js.map +0 -1
  63. package/dist/DeleteAlert-DE15i_yx.js.map +0 -1
  64. package/dist/useFieldsApi-BW5VaJf3.js.map +0 -1
  65. package/dist/useFieldsApi-j7CdIR66.js.map +0 -1
@@ -3,7 +3,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import { useState } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { findBy, isNotEmpty, noop } from '@bigbinary/neeto-cist';
6
- import { dateFormat, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
6
+ import { dateFormat, hasPermission, hyphenize } from '@bigbinary/neeto-commons-frontend/utils';
7
7
  import { u as useFieldValues, F as FieldValueInputWrapper } from './FieldValueInputWrapper-D_HtxLWU.js';
8
8
  import { b as getValueFromBool, a as getFieldInput, D as DIRECT_EDIT_INPUT_FIELDS, M as MISSING_VALUE_PLACEHOLDER, c as DISPLAY_COMPONENT_MAP } from './utils-BBFK9qDC.js';
9
9
  import Typography from '@bigbinary/neetoui/Typography';
@@ -101,8 +101,7 @@ var InlineFieldValueInput = function InlineFieldValueInput(_ref) {
101
101
  _onMutate = _ref$onMutate === void 0 ? noop : _ref$onMutate,
102
102
  _ref$customDisplayCom = _ref.customDisplayComponents,
103
103
  customDisplayComponents = _ref$customDisplayCom === void 0 ? {} : _ref$customDisplayCom,
104
- _ref$canManageFieldVa = _ref.canManageFieldValues,
105
- canManageFieldValues = _ref$canManageFieldVa === void 0 ? true : _ref$canManageFieldVa;
104
+ canManageFieldValues = _ref.canManageFieldValues;
106
105
  var _useState = useState(false),
107
106
  _useState2 = _slicedToArray(_useState, 2),
108
107
  editMode = _useState2[0],
@@ -127,7 +126,8 @@ var InlineFieldValueInput = function InlineFieldValueInput(_ref) {
127
126
  field: field
128
127
  });
129
128
  var fieldKind = field.kind;
130
- var isManageable = !field.isSystem && canManageFieldValues;
129
+ var isAllowedToManageFieldValues = canManageFieldValues !== null && canManageFieldValues !== void 0 ? canManageFieldValues : hasPermission("neeto_fields_engine.manage_field_values");
130
+ var isManageable = !field.isSystem && isAllowedToManageFieldValues;
131
131
  var isEditable = isManageable && (editMode || DIRECT_EDIT_INPUT_FIELDS.includes(fieldKind));
132
132
  var displayValue = renderDataAsText(field, fieldValues) || MISSING_VALUE_PLACEHOLDER;
133
133
  var _ref2 = customDisplayComponents[fieldKind] || {},
@@ -1 +1 @@
1
- {"version":3,"file":"InlineFieldValueInput.js","sources":["../app/javascript/src/components/InlineFieldValueInput/components/Text.jsx","../app/javascript/src/components/InlineFieldValueInput/utils.js","../app/javascript/src/components/InlineFieldValueInput/index.jsx"],"sourcesContent":["import { Typography } from \"neetoui\";\n\nconst Text = ({ value }) => (\n <Typography className=\"text-wrap\" style=\"body2\">\n {value}\n </Typography>\n);\n\nexport default Text;\n","import { findBy, isNotEmpty } from \"neetocist\";\nimport { dateFormat } from \"neetocommons/utils\";\n\nimport { KINDS } from \"components/FieldsDashBoard/constants\";\n\nimport { getValueFromBool } from \"../commons/FieldInputs/utils\";\n\nexport const renderDataAsText = (field, fieldValues) => {\n let fieldValueData = findBy({ fieldId: field.id }, fieldValues)?.data?.value;\n\n switch (field.kind) {\n case KINDS.date:\n return fieldValueData && dateFormat.date(fieldValueData);\n case KINDS.time:\n return fieldValueData && dateFormat.time(fieldValueData);\n case KINDS.datetime:\n return fieldValueData && dateFormat.dateTime(fieldValueData);\n case KINDS.dateRange:\n return (\n fieldValueData &&\n isNotEmpty(fieldValueData) &&\n `${dateFormat.date(fieldValueData[0])} - ${dateFormat.date(\n fieldValueData[1]\n )}`\n );\n case KINDS.timeRange:\n return (\n fieldValueData &&\n `${dateFormat.time(fieldValueData[0])} - ${dateFormat.time(\n fieldValueData[1]\n )}`\n );\n case KINDS.singleOption:\n return findBy({ id: fieldValueData }, field.data)?.label;\n case KINDS.multiOption:\n fieldValueData = findBy({ fieldId: field.id }, fieldValues)?.data?.values;\n\n return (\n fieldValueData &&\n fieldValueData\n .map(optionId => findBy({ id: optionId }, field.data)?.label)\n .join(\", \")\n );\n\n case KINDS.checkbox:\n return getValueFromBool(fieldValueData);\n\n default:\n return fieldValueData;\n }\n};\n","import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { hyphenize } from \"neetocommons/utils\";\n\nimport FieldValueInputWrapper from \"components/FieldValuesContainer/FieldValueInputWrapper\";\nimport { getFieldInput } from \"components/utils\";\nimport useFieldValues from \"hooks/useFieldValues\";\n\nimport TextDisplayComponent from \"./components/Text\";\nimport {\n DIRECT_EDIT_INPUT_FIELDS,\n DISPLAY_COMPONENT_MAP,\n MISSING_VALUE_PLACEHOLDER,\n} from \"./constants\";\nimport { renderDataAsText } from \"./utils\";\n\nconst InlineFieldValueInput = ({\n field,\n fieldValues,\n resourceType,\n resourceId,\n ownerId = \"\",\n onMutationSuccess = noop,\n onMutate = noop,\n customDisplayComponents = {},\n canManageFieldValues = true,\n}) => {\n const [editMode, setEditMode] = useState(false);\n\n const queryOptions = {\n onMutate: variables => onMutate(variables.payload || variables),\n onSuccess: (...params) => {\n setEditMode(false);\n onMutationSuccess(...params);\n },\n };\n\n const { handleSubmit } = useFieldValues({\n resourceId,\n resourceType,\n ownerId,\n queryOptions,\n });\n\n const Field = getFieldInput({ field });\n\n const fieldKind = field.kind;\n const isManageable = !field.isSystem && canManageFieldValues;\n const isEditable =\n isManageable && (editMode || DIRECT_EDIT_INPUT_FIELDS.includes(fieldKind));\n\n const displayValue =\n renderDataAsText(field, fieldValues) || MISSING_VALUE_PLACEHOLDER;\n\n const {\n props: customDisplayComponentProps = {},\n component: CustomDisplayComponent = null,\n } = customDisplayComponents[fieldKind] || {};\n\n const DefaultDisplayComponent =\n DISPLAY_COMPONENT_MAP[fieldKind] || TextDisplayComponent;\n const DisplayComponent = CustomDisplayComponent || DefaultDisplayComponent;\n\n return isEditable ? (\n <div data-cy={`inline-field-value-input-${hyphenize(field.name)}`}>\n <FieldValueInputWrapper\n {...{ field, fieldValues }}\n onSubmit={values => handleSubmit(field, values)}\n >\n <Field\n {...{ ...field }}\n individualSubmit\n isInline\n onBlur={() => setEditMode(false)}\n />\n </FieldValueInputWrapper>\n </div>\n ) : (\n <div\n className={classnames({ \"cursor-pointer\": isManageable })}\n onClick={() => isManageable && setEditMode(true)}\n >\n <DisplayComponent\n {...{ resourceId }}\n value={displayValue}\n {...customDisplayComponentProps}\n />\n </div>\n );\n};\n\nexport default InlineFieldValueInput;\n"],"names":["Text","_ref","value","_jsx","Typography","className","style","children","renderDataAsText","field","fieldValues","_findBy","_findBy2","_findBy3","fieldValueData","findBy","fieldId","id","data","kind","KINDS","date","dateFormat","time","datetime","dateTime","dateRange","isNotEmpty","concat","timeRange","singleOption","label","multiOption","values","map","optionId","_findBy4","join","checkbox","getValueFromBool","InlineFieldValueInput","resourceType","resourceId","_ref$ownerId","ownerId","_ref$onMutationSucces","onMutationSuccess","noop","_ref$onMutate","onMutate","_ref$customDisplayCom","customDisplayComponents","_ref$canManageFieldVa","canManageFieldValues","_useState","useState","_useState2","_slicedToArray","editMode","setEditMode","queryOptions","variables","payload","onSuccess","apply","arguments","_useFieldValues","useFieldValues","handleSubmit","Field","getFieldInput","fieldKind","isManageable","isSystem","isEditable","DIRECT_EDIT_INPUT_FIELDS","includes","displayValue","MISSING_VALUE_PLACEHOLDER","_ref2","_ref2$props","props","customDisplayComponentProps","_ref2$component","component","CustomDisplayComponent","DefaultDisplayComponent","DISPLAY_COMPONENT_MAP","TextDisplayComponent","DisplayComponent","hyphenize","name","FieldValueInputWrapper","onSubmit","_objectSpread","individualSubmit","isInline","onBlur","classnames","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"InlineFieldValueInput.js","sources":["../app/javascript/src/components/InlineFieldValueInput/components/Text.jsx","../app/javascript/src/components/InlineFieldValueInput/utils.js","../app/javascript/src/components/InlineFieldValueInput/index.jsx"],"sourcesContent":["import { Typography } from \"neetoui\";\n\nconst Text = ({ value }) => (\n <Typography className=\"text-wrap\" style=\"body2\">\n {value}\n </Typography>\n);\n\nexport default Text;\n","import { findBy, isNotEmpty } from \"neetocist\";\nimport { dateFormat } from \"neetocommons/utils\";\n\nimport { KINDS } from \"components/FieldsDashBoard/constants\";\n\nimport { getValueFromBool } from \"../commons/FieldInputs/utils\";\n\nexport const renderDataAsText = (field, fieldValues) => {\n let fieldValueData = findBy({ fieldId: field.id }, fieldValues)?.data?.value;\n\n switch (field.kind) {\n case KINDS.date:\n return fieldValueData && dateFormat.date(fieldValueData);\n case KINDS.time:\n return fieldValueData && dateFormat.time(fieldValueData);\n case KINDS.datetime:\n return fieldValueData && dateFormat.dateTime(fieldValueData);\n case KINDS.dateRange:\n return (\n fieldValueData &&\n isNotEmpty(fieldValueData) &&\n `${dateFormat.date(fieldValueData[0])} - ${dateFormat.date(\n fieldValueData[1]\n )}`\n );\n case KINDS.timeRange:\n return (\n fieldValueData &&\n `${dateFormat.time(fieldValueData[0])} - ${dateFormat.time(\n fieldValueData[1]\n )}`\n );\n case KINDS.singleOption:\n return findBy({ id: fieldValueData }, field.data)?.label;\n case KINDS.multiOption:\n fieldValueData = findBy({ fieldId: field.id }, fieldValues)?.data?.values;\n\n return (\n fieldValueData &&\n fieldValueData\n .map(optionId => findBy({ id: optionId }, field.data)?.label)\n .join(\", \")\n );\n\n case KINDS.checkbox:\n return getValueFromBool(fieldValueData);\n\n default:\n return fieldValueData;\n }\n};\n","import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { hyphenize, hasPermission } from \"neetocommons/utils\";\n\nimport FieldValueInputWrapper from \"components/FieldValuesContainer/FieldValueInputWrapper\";\nimport { getFieldInput } from \"components/utils\";\nimport useFieldValues from \"hooks/useFieldValues\";\n\nimport TextDisplayComponent from \"./components/Text\";\nimport {\n DIRECT_EDIT_INPUT_FIELDS,\n DISPLAY_COMPONENT_MAP,\n MISSING_VALUE_PLACEHOLDER,\n} from \"./constants\";\nimport { renderDataAsText } from \"./utils\";\n\nconst InlineFieldValueInput = ({\n field,\n fieldValues,\n resourceType,\n resourceId,\n ownerId = \"\",\n onMutationSuccess = noop,\n onMutate = noop,\n customDisplayComponents = {},\n canManageFieldValues,\n}) => {\n const [editMode, setEditMode] = useState(false);\n\n const queryOptions = {\n onMutate: variables => onMutate(variables.payload || variables),\n onSuccess: (...params) => {\n setEditMode(false);\n onMutationSuccess(...params);\n },\n };\n\n const { handleSubmit } = useFieldValues({\n resourceId,\n resourceType,\n ownerId,\n queryOptions,\n });\n\n const Field = getFieldInput({ field });\n\n const fieldKind = field.kind;\n const isAllowedToManageFieldValues =\n canManageFieldValues ??\n hasPermission(\"neeto_fields_engine.manage_field_values\");\n const isManageable = !field.isSystem && isAllowedToManageFieldValues;\n const isEditable =\n isManageable && (editMode || DIRECT_EDIT_INPUT_FIELDS.includes(fieldKind));\n\n const displayValue =\n renderDataAsText(field, fieldValues) || MISSING_VALUE_PLACEHOLDER;\n\n const {\n props: customDisplayComponentProps = {},\n component: CustomDisplayComponent = null,\n } = customDisplayComponents[fieldKind] || {};\n\n const DefaultDisplayComponent =\n DISPLAY_COMPONENT_MAP[fieldKind] || TextDisplayComponent;\n const DisplayComponent = CustomDisplayComponent || DefaultDisplayComponent;\n\n return isEditable ? (\n <div data-cy={`inline-field-value-input-${hyphenize(field.name)}`}>\n <FieldValueInputWrapper\n {...{ field, fieldValues }}\n onSubmit={values => handleSubmit(field, values)}\n >\n <Field\n {...{ ...field }}\n individualSubmit\n isInline\n onBlur={() => setEditMode(false)}\n />\n </FieldValueInputWrapper>\n </div>\n ) : (\n <div\n className={classnames({ \"cursor-pointer\": isManageable })}\n onClick={() => isManageable && setEditMode(true)}\n >\n <DisplayComponent\n {...{ resourceId }}\n value={displayValue}\n {...customDisplayComponentProps}\n />\n </div>\n );\n};\n\nexport default InlineFieldValueInput;\n"],"names":["Text","_ref","value","_jsx","Typography","className","style","children","renderDataAsText","field","fieldValues","_findBy","_findBy2","_findBy3","fieldValueData","findBy","fieldId","id","data","kind","KINDS","date","dateFormat","time","datetime","dateTime","dateRange","isNotEmpty","concat","timeRange","singleOption","label","multiOption","values","map","optionId","_findBy4","join","checkbox","getValueFromBool","InlineFieldValueInput","resourceType","resourceId","_ref$ownerId","ownerId","_ref$onMutationSucces","onMutationSuccess","noop","_ref$onMutate","onMutate","_ref$customDisplayCom","customDisplayComponents","canManageFieldValues","_useState","useState","_useState2","_slicedToArray","editMode","setEditMode","queryOptions","variables","payload","onSuccess","apply","arguments","_useFieldValues","useFieldValues","handleSubmit","Field","getFieldInput","fieldKind","isAllowedToManageFieldValues","hasPermission","isManageable","isSystem","isEditable","DIRECT_EDIT_INPUT_FIELDS","includes","displayValue","MISSING_VALUE_PLACEHOLDER","_ref2","_ref2$props","props","customDisplayComponentProps","_ref2$component","component","CustomDisplayComponent","DefaultDisplayComponent","DISPLAY_COMPONENT_MAP","TextDisplayComponent","DisplayComponent","hyphenize","name","FieldValueInputWrapper","onSubmit","_objectSpread","individualSubmit","isInline","onBlur","classnames","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,oBACnBC,GAAA,CAACC,UAAU,EAAA;AAACC,IAAAA,SAAS,EAAC,WAAW;AAACC,IAAAA,KAAK,EAAC,OAAO;AAAAC,IAAAA,QAAA,EAC5CL;AAAK,GACI,CAAC;AAAA,CACd;;ACCM,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAK,EAAEC,WAAW,EAAK;AAAA,EAAA,IAAAC,OAAA,EAAAC,QAAA,EAAAC,QAAA;AACtD,EAAA,IAAIC,cAAc,GAAA,CAAAH,OAAA,GAAGI,MAAM,CAAC;IAAEC,OAAO,EAAEP,KAAK,CAACQ;AAAG,GAAC,EAAEP,WAAW,CAAC,MAAAC,IAAAA,IAAAA,OAAA,gBAAAA,OAAA,GAA1CA,OAAA,CAA4CO,IAAI,MAAAP,IAAAA,IAAAA,OAAA,KAAhDA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAA,CAAkDT,KAAK;EAE5E,QAAQO,KAAK,CAACU,IAAI;IAChB,KAAKC,KAAK,CAACC,IAAI;AACb,MAAA,OAAOP,cAAc,IAAIQ,UAAU,CAACD,IAAI,CAACP,cAAc,CAAC;IAC1D,KAAKM,KAAK,CAACG,IAAI;AACb,MAAA,OAAOT,cAAc,IAAIQ,UAAU,CAACC,IAAI,CAACT,cAAc,CAAC;IAC1D,KAAKM,KAAK,CAACI,QAAQ;AACjB,MAAA,OAAOV,cAAc,IAAIQ,UAAU,CAACG,QAAQ,CAACX,cAAc,CAAC;IAC9D,KAAKM,KAAK,CAACM,SAAS;AAClB,MAAA,OACEZ,cAAc,IACda,UAAU,CAACb,cAAc,CAAC,IAAAc,EAAAA,CAAAA,MAAA,CACvBN,UAAU,CAACD,IAAI,CAACP,cAAc,CAAC,CAAC,CAAC,CAAC,EAAA,KAAA,CAAA,CAAAc,MAAA,CAAMN,UAAU,CAACD,IAAI,CACxDP,cAAc,CAAC,CAAC,CAClB,CAAC,CAAE;IAEP,KAAKM,KAAK,CAACS,SAAS;MAClB,OACEf,cAAc,IAAAc,EAAAA,CAAAA,MAAA,CACXN,UAAU,CAACC,IAAI,CAACT,cAAc,CAAC,CAAC,CAAC,CAAC,EAAAc,KAAAA,CAAAA,CAAAA,MAAA,CAAMN,UAAU,CAACC,IAAI,CACxDT,cAAc,CAAC,CAAC,CAClB,CAAC,CAAE;IAEP,KAAKM,KAAK,CAACU,YAAY;MACrB,OAAAlB,CAAAA,QAAA,GAAOG,MAAM,CAAC;AAAEE,QAAAA,EAAE,EAAEH;OAAgB,EAAEL,KAAK,CAACS,IAAI,CAAC,cAAAN,QAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1CA,QAAA,CAA4CmB,KAAK;IAC1D,KAAKX,KAAK,CAACY,WAAW;AACpBlB,MAAAA,cAAc,GAAAD,CAAAA,QAAA,GAAGE,MAAM,CAAC;QAAEC,OAAO,EAAEP,KAAK,CAACQ;AAAG,OAAC,EAAEP,WAAW,CAAC,MAAAG,IAAAA,IAAAA,QAAA,gBAAAA,QAAA,GAA1CA,QAAA,CAA4CK,IAAI,MAAAL,IAAAA,IAAAA,QAAA,KAAhDA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAA,CAAkDoB,MAAM;AAEzE,MAAA,OACEnB,cAAc,IACdA,cAAc,CACXoB,GAAG,CAAC,UAAAC,QAAQ,EAAA;AAAA,QAAA,IAAAC,QAAA;QAAA,OAAAA,CAAAA,QAAA,GAAIrB,MAAM,CAAC;AAAEE,UAAAA,EAAE,EAAEkB;SAAU,EAAE1B,KAAK,CAACS,IAAI,CAAC,cAAAkB,QAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAApCA,QAAA,CAAsCL,KAAK;AAAA,OAAA,CAAC,CAC5DM,IAAI,CAAC,IAAI,CAAC;IAGjB,KAAKjB,KAAK,CAACkB,QAAQ;MACjB,OAAOC,gBAAgB,CAACzB,cAAc,CAAC;AAEzC,IAAA;AACE,MAAA,OAAOA,cAAc;AACzB;AACF,CAAC;;;;AChCD,IAAM0B,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAvC,IAAA,EAUrB;AAAA,EAAA,IATJQ,KAAK,GAAAR,IAAA,CAALQ,KAAK;IACLC,WAAW,GAAAT,IAAA,CAAXS,WAAW;IACX+B,YAAY,GAAAxC,IAAA,CAAZwC,YAAY;IACZC,UAAU,GAAAzC,IAAA,CAAVyC,UAAU;IAAAC,YAAA,GAAA1C,IAAA,CACV2C,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,YAAA;IAAAE,qBAAA,GAAA5C,IAAA,CACZ6C,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,qBAAA;IAAAG,aAAA,GAAA/C,IAAA,CACxBgD,QAAQ;AAARA,IAAAA,SAAQ,GAAAD,aAAA,KAAGD,KAAAA,CAAAA,GAAAA,IAAI,GAAAC,aAAA;IAAAE,qBAAA,GAAAjD,IAAA,CACfkD,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IAC5BE,oBAAoB,GAAAnD,IAAA,CAApBmD,oBAAoB;AAEpB,EAAA,IAAAC,SAAA,GAAgCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAxCI,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAMI,YAAY,GAAG;AACnBV,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEW,SAAS,EAAA;AAAA,MAAA,OAAIX,SAAQ,CAACW,SAAS,CAACC,OAAO,IAAID,SAAS,CAAC;AAAA,KAAA;AAC/DE,IAAAA,SAAS,EAAE,SAAXA,SAASA,GAAiB;MACxBJ,WAAW,CAAC,KAAK,CAAC;AAClBZ,MAAAA,iBAAiB,CAAAiB,KAAA,CAAAC,KAAAA,CAAAA,EAAAA,SAAU,CAAC;AAC9B;GACD;EAED,IAAAC,eAAA,GAAyBC,cAAc,CAAC;AACtCxB,MAAAA,UAAU,EAAVA,UAAU;AACVD,MAAAA,YAAY,EAAZA,YAAY;AACZG,MAAAA,OAAO,EAAPA,OAAO;AACPe,MAAAA,YAAY,EAAZA;AACF,KAAC,CAAC;IALMQ,YAAY,GAAAF,eAAA,CAAZE,YAAY;EAOpB,IAAMC,KAAK,GAAGC,aAAa,CAAC;AAAE5D,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;AAEtC,EAAA,IAAM6D,SAAS,GAAG7D,KAAK,CAACU,IAAI;EAC5B,IAAMoD,4BAA4B,GAChCnB,oBAAoB,KAApBA,IAAAA,IAAAA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,oBAAoB,GACpBoB,aAAa,CAAC,yCAAyC,CAAC;AAC1D,EAAA,IAAMC,YAAY,GAAG,CAAChE,KAAK,CAACiE,QAAQ,IAAIH,4BAA4B;AACpE,EAAA,IAAMI,UAAU,GACdF,YAAY,KAAKhB,QAAQ,IAAImB,wBAAwB,CAACC,QAAQ,CAACP,SAAS,CAAC,CAAC;EAE5E,IAAMQ,YAAY,GAChBtE,gBAAgB,CAACC,KAAK,EAAEC,WAAW,CAAC,IAAIqE,yBAAyB;EAEnE,IAAAC,KAAA,GAGI7B,uBAAuB,CAACmB,SAAS,CAAC,IAAI,EAAE;IAAAW,WAAA,GAAAD,KAAA,CAF1CE,KAAK;AAAEC,IAAAA,2BAA2B,GAAAF,WAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,WAAA;IAAAG,eAAA,GAAAJ,KAAA,CACvCK,SAAS;AAAEC,IAAAA,sBAAsB,GAAAF,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;AAG1C,EAAA,IAAMG,uBAAuB,GAC3BC,qBAAqB,CAAClB,SAAS,CAAC,IAAImB,IAAoB;AAC1D,EAAA,IAAMC,gBAAgB,GAAGJ,sBAAsB,IAAIC,uBAAuB;EAE1E,OAAOZ,UAAU,gBACfxE,GAAA,CAAA,KAAA,EAAA;IAAK,SAAAyB,EAAAA,2BAAAA,CAAAA,MAAA,CAAqC+D,SAAS,CAAClF,KAAK,CAACmF,IAAI,CAAC,CAAG;IAAArF,QAAA,eAChEJ,GAAA,CAAC0F,sBAAsB,EAAA;AACfpF,MAAAA,KAAK,EAALA,KAAK;AAAEC,MAAAA,WAAW,EAAXA,WAAW;AACxBoF,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE7D,MAAM,EAAA;AAAA,QAAA,OAAIkC,YAAY,CAAC1D,KAAK,EAAEwB,MAAM,CAAC;OAAC;MAAA1B,QAAA,eAEhDJ,GAAA,CAACiE,KAAK,EAAA2B,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAA,aAAA,CAAA,EAAA,EACKtF,KAAK,CAAA,CAAA,EAAA,EAAA,EAAA;QACduF,gBAAgB,EAAA,IAAA;QAChBC,QAAQ,EAAA,IAAA;QACRC,MAAM,EAAE,SAARA,MAAMA,GAAA;UAAA,OAAQxC,WAAW,CAAC,KAAK,CAAC;AAAA;OACjC,CAAA;KACqB;GACrB,CAAC,gBAENvD,GAAA,CAAA,KAAA,EAAA;IACEE,SAAS,EAAE8F,UAAU,CAAC;AAAE,MAAA,gBAAgB,EAAE1B;AAAa,KAAC,CAAE;IAC1D2B,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ3B,YAAY,IAAIf,WAAW,CAAC,IAAI,CAAC;KAAC;AAAAnD,IAAAA,QAAA,eAEjDJ,GAAA,CAACuF,gBAAgB,EAAAK,aAAA,CAAA;AACTrD,MAAAA,UAAU,EAAVA,UAAU;AAChBxC,MAAAA,KAAK,EAAE4E;AAAa,KAAA,EAChBK,2BAA2B,CAChC;AAAC,GACC,CACN;AACH;;;;"}
@@ -3,8 +3,8 @@
3
3
  require('@bigbinary/neeto-cist');
4
4
  require('@bigbinary/neetoui/Alert');
5
5
  require('react-i18next');
6
- require('../useFieldsApi-j7CdIR66.js');
7
- var FieldDeleteAlert = require('../DeleteAlert-BQqfe0QG.js');
6
+ require('../useFieldsApi-CH-3Pwp9.js');
7
+ var FieldDeleteAlert = require('../DeleteAlert-BcSFSbN1.js');
8
8
  require('react/jsx-runtime');
9
9
  require('@babel/runtime/helpers/toConsumableArray');
10
10
  require('@babel/runtime/helpers/defineProperty');
@@ -3,13 +3,14 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var classnames = require('classnames');
5
5
  var neetoCist = require('@bigbinary/neeto-cist');
6
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
6
7
  var Spinner = require('@bigbinary/neetoui/Spinner');
7
8
  var Typography = require('@bigbinary/neetoui/Typography');
8
9
  var ramda = require('ramda');
9
10
  var reactI18next = require('react-i18next');
10
- var utils = require('../utils-CY-OOclj.js');
11
+ var utils$1 = require('../utils-CY-OOclj.js');
11
12
  var FieldValueInputWrapper = require('../FieldValueInputWrapper-CCQZHCjA.js');
12
- var useFieldsApi = require('../useFieldsApi-j7CdIR66.js');
13
+ var useFieldsApi = require('../useFieldsApi-CH-3Pwp9.js');
13
14
  var formik = require('formik');
14
15
  var Alert = require('@bigbinary/neetoui/Alert');
15
16
  var react = require('react');
@@ -17,7 +18,6 @@ var reactRouterDom = require('react-router-dom');
17
18
  var i18next = require('i18next');
18
19
  var jsxRuntime = require('react/jsx-runtime');
19
20
  require('@babel/runtime/helpers/toConsumableArray');
20
- require('@bigbinary/neeto-commons-frontend/utils');
21
21
  require('../constants-C4kiF-ZI.js');
22
22
  require('@bigbinary/neeto-molecules/CopyToClipboardButton');
23
23
  require('@bigbinary/neeto-icons/Redirect');
@@ -157,9 +157,11 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
157
157
  _ref$blockNavigation = _ref.blockNavigation,
158
158
  blockNavigation = _ref$blockNavigation === void 0 ? false : _ref$blockNavigation,
159
159
  _ref$blockNavigationA = _ref.blockNavigationAlertProps,
160
- blockNavigationAlertProps = _ref$blockNavigationA === void 0 ? {} : _ref$blockNavigationA;
160
+ blockNavigationAlertProps = _ref$blockNavigationA === void 0 ? {} : _ref$blockNavigationA,
161
+ canManageFieldValues = _ref.canManageFieldValues;
161
162
  var _useTranslation = reactI18next.useTranslation(),
162
163
  t = _useTranslation.t;
164
+ var isAllowedToManageFieldValues = canManageFieldValues !== null && canManageFieldValues !== void 0 ? canManageFieldValues : utils.hasPermission("neeto_fields_engine.manage_field_values");
163
165
  var queryOptions = {
164
166
  onMutate: function onMutate(variables) {
165
167
  return _onMutate(variables.payload || variables);
@@ -187,6 +189,7 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
187
189
  handleSubmit = _useFieldValues.handleSubmit,
188
190
  submittingFieldDetails = _useFieldValues.submittingFieldDetails;
189
191
  var fields = propFields || fetchedFields;
192
+ var isFieldsDisabled = disabled || !isAllowedToManageFieldValues;
190
193
  return /*#__PURE__*/jsxRuntime.jsx("div", {
191
194
  className: classnames("space-y-3 py-3", {
192
195
  "neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border px-4 py-2": showBorder
@@ -194,8 +197,8 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
194
197
  children: isFieldsLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
195
198
  className: "flex items-center justify-center",
196
199
  children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
197
- }) : utils.getNonSystemFields(fields).map(function (field) {
198
- var Field = utils.getFieldInput({
200
+ }) : utils$1.getNonSystemFields(fields).map(function (field) {
201
+ var Field = utils$1.getFieldInput({
199
202
  field: field,
200
203
  customComponents: customComponents
201
204
  });
@@ -213,11 +216,11 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
213
216
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
214
217
  className: "w-full",
215
218
  children: [/*#__PURE__*/jsxRuntime.jsx(Field, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, field), {}, {
216
- disabled: disabled,
217
219
  formRefs: formRefs,
218
220
  isRequiredColumnName: isRequiredColumnName
219
221
  })), {}, {
220
222
  individualSubmit: true,
223
+ disabled: isFieldsDisabled,
221
224
  submissionStatus: (_submittingFieldDetai = submittingFieldDetails[field.id]) === null || _submittingFieldDetai === void 0 ? void 0 : _submittingFieldDetai.status
222
225
  })), /*#__PURE__*/jsxRuntime.jsx(BlockNavigation, {
223
226
  blockNavigation: blockNavigation,
@@ -1 +1 @@
1
- {"version":3,"file":"FieldValuesContainer.js","sources":["../../node_modules/react-router-nav-prompt/dist/useNavPrompt.js","../../app/javascript/src/components/FieldValuesContainer/constants.js","../../app/javascript/src/components/FieldValuesContainer/BlockNavigation.jsx","../../app/javascript/src/components/FieldValuesContainer/index.jsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nconst useNavPrompt = ({\n shouldBlock\n}) => {\n const history = useHistory();\n\n const _unblock = useRef(null);\n\n const _navPath = useRef(null);\n\n const [blocked, setBlocked] = useState(false);\n useEffect(() => {\n if (shouldBlock) {\n _unblock.current = history.block(location => {\n // need to use ref?\n setBlocked(true);\n _navPath.current = location.pathname + location.search; // $FlowFixMe - See https://github.com/ReactTraining/history/issues/728\n\n return false;\n });\n return () => {\n if (_unblock.current) {\n _unblock.current();\n }\n };\n }\n }, [shouldBlock]);\n\n const navigate = () => {\n if (_unblock.current) {\n _unblock.current();\n\n setBlocked(false);\n\n if (_navPath.current) {\n history.push(_navPath.current);\n }\n }\n };\n\n const hidePrompt = () => {\n setBlocked(false);\n };\n\n return {\n blocked,\n navigate,\n hidePrompt\n };\n};\n\nexport default useNavPrompt;","import { t } from \"i18next\";\n\nexport const DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS = {\n title: t(\"neetoFields.messages.blockNavigationAlert.title\"),\n message: t(\"neetoFields.messages.blockNavigationAlert.message\"),\n submitButtonLabel: t(\n \"neetoFields.messages.blockNavigationAlert.submitButtonLabel\"\n ),\n cancelButtonLabel: t(\n \"neetoFields.messages.blockNavigationAlert.cancelButtonLabel\"\n ),\n};\n","import { useFormikContext } from \"formik\";\nimport { Alert } from \"neetoui\";\nimport { useNavPrompt } from \"react-router-nav-prompt\";\n\nimport { DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS } from \"./constants\";\n\nconst BlockNavigation = ({ blockNavigation, blockNavigationAlertProps }) => {\n const { dirty } = useFormikContext();\n const { blocked, hidePrompt, navigate } = useNavPrompt({\n shouldBlock: blockNavigation && dirty,\n });\n\n const alertProps = {\n ...DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS,\n ...blockNavigationAlertProps,\n };\n\n return (\n <Alert\n cancelButtonLabel={alertProps[\"cancelButtonLabel\"]}\n isOpen={blocked}\n message={alertProps[\"message\"]}\n submitButtonLabel={alertProps[\"submitButtonLabel\"]}\n title={alertProps[\"title\"]}\n onClose={hidePrompt}\n onSubmit={navigate}\n />\n );\n};\n\nexport default BlockNavigation;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Spinner, Typography } from \"neetoui\";\nimport { isEmpty, isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFieldInput, getNonSystemFields } from \"components/utils\";\nimport useFieldValues from \"hooks/useFieldValues\";\nimport { useFetchFields } from \"src/hooks/reactQuery/useFieldsApi\";\n\nimport BlockNavigationAlert from \"./BlockNavigation\";\nimport FieldValueInputWrapper from \"./FieldValueInputWrapper\";\n\nconst FieldValuesContainer = ({\n resourceType = \"\",\n fieldValues = [],\n fields: propFields,\n ownerId = \"\",\n resourceId,\n customComponents = {},\n className = \"\",\n showBorder = true,\n formRefs,\n disabled = false,\n isRequiredColumnName,\n fieldClassName,\n onMutate = noop,\n onMutationSuccess = noop,\n blockNavigation = false,\n blockNavigationAlertProps = {},\n}) => {\n const { t } = useTranslation();\n\n const queryOptions = {\n onMutate: variables => onMutate(variables.payload || variables),\n onSuccess: onMutationSuccess,\n };\n\n const {\n data: { fields: fetchedFields = [] } = {},\n isLoading: isFieldsLoading,\n } = useFetchFields(\n {\n resourceType: isEmpty(resourceType) ? undefined : resourceType,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n state: \"active\",\n },\n { enabled: isNil(propFields) }\n );\n\n const { handleSubmit, submittingFieldDetails } = useFieldValues({\n resourceId,\n resourceType,\n ownerId,\n queryOptions,\n });\n\n const fields = propFields || fetchedFields;\n\n return (\n <div\n className={classnames(\n \"space-y-3 py-3\",\n {\n \"neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border px-4 py-2\":\n showBorder,\n },\n className\n )}\n >\n {isFieldsLoading ? (\n <div className=\"flex items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n getNonSystemFields(fields).map(field => {\n const Field = getFieldInput({ field, customComponents });\n\n if (Field) {\n return (\n <div\n className={classnames(fieldClassName, \"space-y-1\")}\n key={field.id}\n >\n <FieldValueInputWrapper\n {...{ field, fieldValues }}\n className={fieldClassName}\n onSubmit={values => handleSubmit(field, values)}\n >\n <div className=\"w-full\">\n <Field\n {...{\n ...field,\n disabled,\n formRefs,\n isRequiredColumnName,\n }}\n individualSubmit\n submissionStatus={\n submittingFieldDetails[field.id]?.status\n }\n />\n <BlockNavigationAlert\n {...{ blockNavigation, blockNavigationAlertProps }}\n />\n </div>\n </FieldValueInputWrapper>\n </div>\n );\n }\n\n return (\n <Typography key={field.id} style=\"body2\">\n {t(\"neetoFields.messages.invalidKind\")}\n </Typography>\n );\n })\n )}\n </div>\n );\n};\n\nexport default FieldValuesContainer;\n"],"names":["useHistory","useRef","useState","useEffect","DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS","title","t","message","submitButtonLabel","cancelButtonLabel","BlockNavigation","_ref","blockNavigation","blockNavigationAlertProps","_useFormikContext","useFormikContext","dirty","_useNavPrompt","useNavPrompt","shouldBlock","blocked","hidePrompt","navigate","alertProps","_objectSpread","_jsx","Alert","isOpen","onClose","onSubmit","FieldValuesContainer","_ref$resourceType","resourceType","_ref$fieldValues","fieldValues","propFields","fields","_ref$ownerId","ownerId","resourceId","_ref$customComponents","customComponents","_ref$className","className","_ref$showBorder","showBorder","formRefs","_ref$disabled","disabled","isRequiredColumnName","fieldClassName","_ref$onMutate","onMutate","noop","_ref$onMutationSucces","onMutationSuccess","_ref$blockNavigation","_ref$blockNavigationA","_useTranslation","useTranslation","queryOptions","variables","payload","onSuccess","_useFetchFields","useFetchFields","isEmpty","undefined","state","enabled","isNil","_useFetchFields$data","data","_useFetchFields$data2","_useFetchFields$data3","fetchedFields","isFieldsLoading","isLoading","_useFieldValues","useFieldValues","handleSubmit","submittingFieldDetails","classnames","children","Spinner","getNonSystemFields","map","field","Field","getFieldInput","_submittingFieldDetai","FieldValueInputWrapper","values","_jsxs","individualSubmit","submissionStatus","id","status","BlockNavigationAlert","Typography","style"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"FieldValuesContainer.js","sources":["../../node_modules/react-router-nav-prompt/dist/useNavPrompt.js","../../app/javascript/src/components/FieldValuesContainer/constants.js","../../app/javascript/src/components/FieldValuesContainer/BlockNavigation.jsx","../../app/javascript/src/components/FieldValuesContainer/index.jsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nconst useNavPrompt = ({\n shouldBlock\n}) => {\n const history = useHistory();\n\n const _unblock = useRef(null);\n\n const _navPath = useRef(null);\n\n const [blocked, setBlocked] = useState(false);\n useEffect(() => {\n if (shouldBlock) {\n _unblock.current = history.block(location => {\n // need to use ref?\n setBlocked(true);\n _navPath.current = location.pathname + location.search; // $FlowFixMe - See https://github.com/ReactTraining/history/issues/728\n\n return false;\n });\n return () => {\n if (_unblock.current) {\n _unblock.current();\n }\n };\n }\n }, [shouldBlock]);\n\n const navigate = () => {\n if (_unblock.current) {\n _unblock.current();\n\n setBlocked(false);\n\n if (_navPath.current) {\n history.push(_navPath.current);\n }\n }\n };\n\n const hidePrompt = () => {\n setBlocked(false);\n };\n\n return {\n blocked,\n navigate,\n hidePrompt\n };\n};\n\nexport default useNavPrompt;","import { t } from \"i18next\";\n\nexport const DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS = {\n title: t(\"neetoFields.messages.blockNavigationAlert.title\"),\n message: t(\"neetoFields.messages.blockNavigationAlert.message\"),\n submitButtonLabel: t(\n \"neetoFields.messages.blockNavigationAlert.submitButtonLabel\"\n ),\n cancelButtonLabel: t(\n \"neetoFields.messages.blockNavigationAlert.cancelButtonLabel\"\n ),\n};\n","import { useFormikContext } from \"formik\";\nimport { Alert } from \"neetoui\";\nimport { useNavPrompt } from \"react-router-nav-prompt\";\n\nimport { DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS } from \"./constants\";\n\nconst BlockNavigation = ({ blockNavigation, blockNavigationAlertProps }) => {\n const { dirty } = useFormikContext();\n const { blocked, hidePrompt, navigate } = useNavPrompt({\n shouldBlock: blockNavigation && dirty,\n });\n\n const alertProps = {\n ...DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS,\n ...blockNavigationAlertProps,\n };\n\n return (\n <Alert\n cancelButtonLabel={alertProps[\"cancelButtonLabel\"]}\n isOpen={blocked}\n message={alertProps[\"message\"]}\n submitButtonLabel={alertProps[\"submitButtonLabel\"]}\n title={alertProps[\"title\"]}\n onClose={hidePrompt}\n onSubmit={navigate}\n />\n );\n};\n\nexport default BlockNavigation;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { hasPermission } from \"neetocommons/utils\";\nimport { Spinner, Typography } from \"neetoui\";\nimport { isEmpty, isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { getFieldInput, getNonSystemFields } from \"components/utils\";\nimport useFieldValues from \"hooks/useFieldValues\";\nimport { useFetchFields } from \"src/hooks/reactQuery/useFieldsApi\";\n\nimport BlockNavigationAlert from \"./BlockNavigation\";\nimport FieldValueInputWrapper from \"./FieldValueInputWrapper\";\n\nconst FieldValuesContainer = ({\n resourceType = \"\",\n fieldValues = [],\n fields: propFields,\n ownerId = \"\",\n resourceId,\n customComponents = {},\n className = \"\",\n showBorder = true,\n formRefs,\n disabled = false,\n isRequiredColumnName,\n fieldClassName,\n onMutate = noop,\n onMutationSuccess = noop,\n blockNavigation = false,\n blockNavigationAlertProps = {},\n canManageFieldValues,\n}) => {\n const { t } = useTranslation();\n\n const isAllowedToManageFieldValues =\n canManageFieldValues ??\n hasPermission(\"neeto_fields_engine.manage_field_values\");\n\n const queryOptions = {\n onMutate: variables => onMutate(variables.payload || variables),\n onSuccess: onMutationSuccess,\n };\n\n const {\n data: { fields: fetchedFields = [] } = {},\n isLoading: isFieldsLoading,\n } = useFetchFields(\n {\n resourceType: isEmpty(resourceType) ? undefined : resourceType,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n state: \"active\",\n },\n { enabled: isNil(propFields) }\n );\n\n const { handleSubmit, submittingFieldDetails } = useFieldValues({\n resourceId,\n resourceType,\n ownerId,\n queryOptions,\n });\n\n const fields = propFields || fetchedFields;\n\n const isFieldsDisabled = disabled || !isAllowedToManageFieldValues;\n\n return (\n <div\n className={classnames(\n \"space-y-3 py-3\",\n {\n \"neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border px-4 py-2\":\n showBorder,\n },\n className\n )}\n >\n {isFieldsLoading ? (\n <div className=\"flex items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n getNonSystemFields(fields).map(field => {\n const Field = getFieldInput({ field, customComponents });\n\n if (Field) {\n return (\n <div\n className={classnames(fieldClassName, \"space-y-1\")}\n key={field.id}\n >\n <FieldValueInputWrapper\n {...{ field, fieldValues }}\n className={fieldClassName}\n onSubmit={values => handleSubmit(field, values)}\n >\n <div className=\"w-full\">\n <Field\n {...{\n ...field,\n formRefs,\n isRequiredColumnName,\n }}\n individualSubmit\n disabled={isFieldsDisabled}\n submissionStatus={\n submittingFieldDetails[field.id]?.status\n }\n />\n <BlockNavigationAlert\n {...{ blockNavigation, blockNavigationAlertProps }}\n />\n </div>\n </FieldValueInputWrapper>\n </div>\n );\n }\n\n return (\n <Typography key={field.id} style=\"body2\">\n {t(\"neetoFields.messages.invalidKind\")}\n </Typography>\n );\n })\n )}\n </div>\n );\n};\n\nexport default FieldValuesContainer;\n"],"names":["useHistory","useRef","useState","useEffect","DEAFULT_BLOCK_NAVIGATION_ALERT_PROPS","title","t","message","submitButtonLabel","cancelButtonLabel","BlockNavigation","_ref","blockNavigation","blockNavigationAlertProps","_useFormikContext","useFormikContext","dirty","_useNavPrompt","useNavPrompt","shouldBlock","blocked","hidePrompt","navigate","alertProps","_objectSpread","_jsx","Alert","isOpen","onClose","onSubmit","FieldValuesContainer","_ref$resourceType","resourceType","_ref$fieldValues","fieldValues","propFields","fields","_ref$ownerId","ownerId","resourceId","_ref$customComponents","customComponents","_ref$className","className","_ref$showBorder","showBorder","formRefs","_ref$disabled","disabled","isRequiredColumnName","fieldClassName","_ref$onMutate","onMutate","noop","_ref$onMutationSucces","onMutationSuccess","_ref$blockNavigation","_ref$blockNavigationA","canManageFieldValues","_useTranslation","useTranslation","isAllowedToManageFieldValues","hasPermission","queryOptions","variables","payload","onSuccess","_useFetchFields","useFetchFields","isEmpty","undefined","state","enabled","isNil","_useFetchFields$data","data","_useFetchFields$data2","_useFetchFields$data3","fetchedFields","isFieldsLoading","isLoading","_useFieldValues","useFieldValues","handleSubmit","submittingFieldDetails","isFieldsDisabled","classnames","children","Spinner","getNonSystemFields","map","field","Field","getFieldInput","_submittingFieldDetai","FieldValueInputWrapper","values","_jsxs","individualSubmit","submissionStatus","id","status","BlockNavigationAlert","Typography","style"],"mappings":"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","x_google_ignoreList":[0]}
@@ -3,6 +3,7 @@
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var neetoCist = require('@bigbinary/neeto-cist');
5
5
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
6
+ var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
6
7
  var Container = require('@bigbinary/neeto-molecules/Container');
7
8
  var Spinner = require('@bigbinary/neetoui/Spinner');
8
9
  var ramda = require('ramda');
@@ -12,15 +13,14 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
13
  var react = require('react');
13
14
  var reactQuery = require('@tanstack/react-query');
14
15
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
15
- var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
16
16
  var utils = require('@bigbinary/neeto-filters-frontend/utils');
17
17
  var reactRouterDom = require('react-router-dom');
18
18
  var constants$1 = require('../constants-C4kiF-ZI.js');
19
- var FieldDeleteAlert = require('../DeleteAlert-BQqfe0QG.js');
19
+ var FieldDeleteAlert = require('../DeleteAlert-BcSFSbN1.js');
20
20
  var axios = require('axios');
21
21
  var index = require('../index-Ck5frOOX.js');
22
22
  var query = require('../query-DXkir3SS.js');
23
- var useFieldsApi = require('../useFieldsApi-j7CdIR66.js');
23
+ var useFieldsApi = require('../useFieldsApi-CH-3Pwp9.js');
24
24
  var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
25
25
  var NoData = require('@bigbinary/neetoui/NoData');
26
26
  var Table = require('@bigbinary/neetoui/Table');
@@ -80,6 +80,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
80
80
  title = _ref.title,
81
81
  resources = _ref.resources,
82
82
  showStateFilter = _ref.showStateFilter,
83
+ canManageFields = _ref.canManageFields,
83
84
  _ref$onDeleteSuccess = _ref.onDeleteSuccess,
84
85
  onDeleteSuccess = _ref$onDeleteSuccess === void 0 ? neetoCist.noop : _ref$onDeleteSuccess;
85
86
  var _useState = react.useState(false),
@@ -189,7 +190,8 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
189
190
  };
190
191
  var defaultColumns = FieldDeleteAlert.buildDefaultColumns({
191
192
  onDeleteClick: handleDeleteButtonClick,
192
- onEditClick: handleEditButtonClick
193
+ onEditClick: handleEditButtonClick,
194
+ canManageFields: canManageFields
193
195
  });
194
196
  var columnData = buildColumnData({
195
197
  onEditClick: handleEditButtonClick,
@@ -318,7 +320,8 @@ var FieldsTable = function FieldsTable(_ref) {
318
320
  title = _ref.title,
319
321
  pageProps = _ref.pageProps,
320
322
  setPageProps = _ref.setPageProps,
321
- showStateFilter = _ref.showStateFilter;
323
+ showStateFilter = _ref.showStateFilter,
324
+ canManageFields = _ref.canManageFields;
322
325
  var _useTranslation = reactI18next.useTranslation(),
323
326
  t = _useTranslation.t;
324
327
  var showNoDataScreen = isFetched && ramda.isEmpty(rowData);
@@ -337,7 +340,7 @@ var FieldsTable = function FieldsTable(_ref) {
337
340
  if (helpDocUrl) {
338
341
  noDataProps.helpText = FieldDeleteAlert.renderNoDataHelpText(title, helpDocUrl);
339
342
  }
340
- if (constants$1.FIELD_STATES.active === state) {
343
+ if (constants$1.FIELD_STATES.active === state && canManageFields) {
341
344
  noDataProps.primaryButtonProps = {
342
345
  label: t("neetoFields.labels.addField"),
343
346
  onClick: function onClick() {
@@ -385,13 +388,14 @@ var Header = reactUtils.withT(function (_ref) {
385
388
  helpDescription = _ref.helpDescription,
386
389
  size = _ref.size,
387
390
  setIsPaneOpen = _ref.setIsPaneOpen,
388
- t = _ref.t;
391
+ t = _ref.t,
392
+ canManageFields = _ref.canManageFields;
389
393
  return /*#__PURE__*/jsxRuntime.jsx(NeetoUIHeader, {
390
394
  breadcrumbs: breadcrumbs,
391
395
  size: size,
392
396
  title: title,
393
397
  searchProps: searchInputProps,
394
- actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button, {
398
+ actionBlock: canManageFields && /*#__PURE__*/jsxRuntime.jsx(Button, {
395
399
  "data-cy": "neeto-fields-add-button",
396
400
  label: t("neetoFields.labels.addField"),
397
401
  onClick: function onClick() {
@@ -696,12 +700,14 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
696
700
  resources = _ref.resources,
697
701
  _ref$headerSize = _ref.headerSize,
698
702
  headerSize = _ref$headerSize === void 0 ? "small" : _ref$headerSize,
703
+ canManageFields = _ref.canManageFields,
699
704
  _ref$onDeleteSuccess = _ref.onDeleteSuccess,
700
705
  onDeleteSuccess = _ref$onDeleteSuccess === void 0 ? neetoCist.noop : _ref$onDeleteSuccess,
701
706
  _ref$onReorderSuccess = _ref.onReorderSuccess,
702
707
  onReorderSuccess = _ref$onReorderSuccess === void 0 ? neetoCist.noop : _ref$onReorderSuccess;
703
708
  var _useTranslation = reactI18next.useTranslation(),
704
709
  t = _useTranslation.t;
710
+ var isAllowedToManageFields = canManageFields !== null && canManageFields !== void 0 ? canManageFields : utils$1.hasPermission("neeto_fields_engine.manage_fields");
705
711
  var title = neetoCist.capitalize(headerTitle || t("neetoFields.titles.field", constants.PLURAL));
706
712
  var _useFieldsDashboard = useFieldsDashboard({
707
713
  buildColumnData: buildColumnData,
@@ -711,7 +717,8 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
711
717
  title: title,
712
718
  resources: resources,
713
719
  onDeleteSuccess: onDeleteSuccess,
714
- showStateFilter: showStateFilter
720
+ showStateFilter: showStateFilter,
721
+ canManageFields: isAllowedToManageFields
715
722
  }),
716
723
  isPaneOpen = _useFieldsDashboard.isPaneOpen,
717
724
  setIsPaneOpen = _useFieldsDashboard.setIsPaneOpen,
@@ -749,7 +756,8 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
749
756
  searchInputProps: searchInputProps,
750
757
  setIsPaneOpen: setIsPaneOpen,
751
758
  title: headerDisplayTitle,
752
- size: headerSize
759
+ size: headerSize,
760
+ canManageFields: isAllowedToManageFields
753
761
  };
754
762
  var showSubheader = showCountSubheader || neetoCist.isPresent(searchKeywordProps.value);
755
763
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -759,10 +767,10 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
759
767
  }), /*#__PURE__*/jsxRuntime.jsxs(Container, {
760
768
  children: [/*#__PURE__*/jsxRuntime.jsx(Header, _objectSpread({}, headerProps)), showStateFilter && stateFilterTabs, /*#__PURE__*/jsxRuntime.jsx(Subheader, {
761
769
  count: count,
762
- reorderable: reorderable,
763
770
  searchKeywordProps: searchKeywordProps,
764
771
  setIsReorderPaneOpen: setIsReorderPaneOpen,
765
- showSubheader: showSubheader
772
+ showSubheader: showSubheader,
773
+ reorderable: reorderable && isAllowedToManageFields
766
774
  }), isScreenLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
767
775
  className: "flex h-full w-full items-center justify-center",
768
776
  children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
@@ -775,6 +783,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
775
783
  setPageProps: setPageProps,
776
784
  showStateFilter: showStateFilter,
777
785
  title: title,
786
+ canManageFields: isAllowedToManageFields,
778
787
  isFetched: isFieldsFetched,
779
788
  isFetching: isFieldsFetching,
780
789
  rowData: ramda.isEmpty(rowData) ? fields : rowData,