@bigbinary/neeto-molecules 1.15.17 → 1.15.19-beta

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 (58) hide show
  1. package/dist/Builder.js +90 -22
  2. package/dist/Builder.js.map +1 -1
  3. package/dist/Codeblock.js +2 -0
  4. package/dist/Codeblock.js.map +1 -1
  5. package/dist/CopyToClipboardButton.js +8 -3
  6. package/dist/CopyToClipboardButton.js.map +1 -1
  7. package/dist/CustomDomain.js +2 -2
  8. package/dist/CustomDomainDashboard.js +2 -1
  9. package/dist/CustomDomainDashboard.js.map +1 -1
  10. package/dist/Header.js +2 -0
  11. package/dist/Header.js.map +1 -1
  12. package/dist/Rename.js +3 -2
  13. package/dist/Rename.js.map +1 -1
  14. package/dist/Search.js +34 -13
  15. package/dist/Search.js.map +1 -1
  16. package/dist/Security.js +1 -0
  17. package/dist/Security.js.map +1 -1
  18. package/dist/SendToFields.js +6 -5
  19. package/dist/SendToFields.js.map +1 -1
  20. package/dist/Settings.js +1 -0
  21. package/dist/Settings.js.map +1 -1
  22. package/dist/SuffixedInput.js +1 -0
  23. package/dist/SuffixedInput.js.map +1 -1
  24. package/dist/Taxonomy.js +1 -0
  25. package/dist/Taxonomy.js.map +1 -1
  26. package/dist/cjs/Builder.js +90 -22
  27. package/dist/cjs/Builder.js.map +1 -1
  28. package/dist/cjs/Codeblock.js +2 -0
  29. package/dist/cjs/Codeblock.js.map +1 -1
  30. package/dist/cjs/CopyToClipboardButton.js +8 -3
  31. package/dist/cjs/CopyToClipboardButton.js.map +1 -1
  32. package/dist/cjs/CustomDomain.js +2 -2
  33. package/dist/cjs/CustomDomainDashboard.js +2 -1
  34. package/dist/cjs/CustomDomainDashboard.js.map +1 -1
  35. package/dist/cjs/Header.js +2 -0
  36. package/dist/cjs/Header.js.map +1 -1
  37. package/dist/cjs/Rename.js +3 -2
  38. package/dist/cjs/Rename.js.map +1 -1
  39. package/dist/cjs/Search.js +33 -12
  40. package/dist/cjs/Search.js.map +1 -1
  41. package/dist/cjs/Security.js +1 -0
  42. package/dist/cjs/Security.js.map +1 -1
  43. package/dist/cjs/SendToFields.js +6 -5
  44. package/dist/cjs/SendToFields.js.map +1 -1
  45. package/dist/cjs/Settings.js +1 -0
  46. package/dist/cjs/Settings.js.map +1 -1
  47. package/dist/cjs/SuffixedInput.js +1 -0
  48. package/dist/cjs/SuffixedInput.js.map +1 -1
  49. package/dist/cjs/Taxonomy.js +1 -0
  50. package/dist/cjs/Taxonomy.js.map +1 -1
  51. package/dist/cjs/{index-35629600.js → index-408d5262.js} +1 -1
  52. package/dist/cjs/{index-35629600.js.map → index-408d5262.js.map} +1 -1
  53. package/dist/{index-2fe27725.js → index-203143d9.js} +1 -1
  54. package/dist/{index-2fe27725.js.map → index-203143d9.js.map} +1 -1
  55. package/package.json +1 -1
  56. package/src/translations/en.json +6 -4
  57. package/types/Builder.d.ts +8 -2
  58. package/types/Search.d.ts +2 -0
@@ -16,7 +16,8 @@ import { prop } from 'ramda';
16
16
  import { string } from 'yup';
17
17
 
18
18
  var ALLOWED_FILE_TYPES = [".csv"];
19
- var ONE_MEGABYTE_IN_BYTES = 1024 * 1024;
19
+ var CSV_FILE_SIZE_IN_KB = 32;
20
+ var ONE_KILOBYTE_IN_BYTES = 1024;
20
21
  var DOWNLOAD_SAMPLE_EMAIL_CSV_FILE = "https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv";
21
22
 
22
23
  var Requirements = withT(function (_ref) {
@@ -56,7 +57,7 @@ var BulkUploadPane = function BulkUploadPane(_ref) {
56
57
  var _useDropzone = useDropzone({
57
58
  accept: fileType,
58
59
  maxFiles: 1,
59
- maxSize: fileSize * ONE_MEGABYTE_IN_BYTES,
60
+ maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,
60
61
  onDrop: function onDrop(files) {
61
62
  return files[0] && handleFileSubmit(files[0]);
62
63
  }
@@ -78,9 +79,9 @@ var BulkUploadPane = function BulkUploadPane(_ref) {
78
79
  var _useTranslation = useTranslation(),
79
80
  t = _useTranslation.t;
80
81
  return /*#__PURE__*/React__default.createElement(Pane, {
81
- "data-testid": "bulk-upload-pane",
82
82
  isOpen: isOpen,
83
- onClose: onClose
83
+ onClose: onClose,
84
+ "data-testid": "bulk-upload-pane"
84
85
  }, /*#__PURE__*/React__default.createElement("div", {
85
86
  tabIndex: 0
86
87
  }, /*#__PURE__*/React__default.createElement(Pane.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
@@ -248,7 +249,7 @@ var SendToFields = function SendToFields(_ref) {
248
249
  }, ccInputProps)), /*#__PURE__*/React__default.createElement(MultiEmailInput, _extends({
249
250
  name: "sendToCc"
250
251
  }, bccInputProps))), /*#__PURE__*/React__default.createElement(BulkUploadPane, {
251
- fileSize: globalProps.endUserUploadedFileSizeLimitInMb,
252
+ fileSize: CSV_FILE_SIZE_IN_KB,
252
253
  fileType: ALLOWED_FILE_TYPES,
253
254
  handleFileSubmit: handleCSVFile,
254
255
  isOpen: isBulkUploadPaneOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"SendToFields.js","sources":["../src/components/SendToFields/constants.js","../src/components/SendToFields/Requirements.jsx","../src/components/SendToFields/BulkUploadPane.jsx","../src/components/SendToFields/utils.js","../src/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const ALLOWED_FILE_TYPES = [\".csv\"];\nexport const ONE_MEGABYTE_IN_BYTES = 1024 * 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Download } from \"neetoicons\";\nimport { Button, Callout } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" style=\"info\">\n <ul className=\"list-outside list-disc space-y-1 font-normal leading-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n style=\"link\"\n />\n </Callout>\n));\n\nexport default React.memo(Requirements);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Typography, Pane } from \"neetoui\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_MEGABYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({\n isOpen,\n fileType,\n fileSize,\n onClose,\n handleFileSubmit,\n}) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: fileType,\n maxFiles: 1,\n maxSize: fileSize * ONE_MEGABYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"neeto-ui-text-error-500 items\"\n data-cy=\"file-input-error-message\"\n key={code}\n style=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Pane data-testid=\"bulk-upload-pane\" {...{ isOpen, onClose }}>\n <div tabIndex={0}>\n <Pane.Header>\n <Typography\n data-testid=\"bulk-upload-header\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center\",\n {\n \"neeto-ui-border-gray-100\": isDragActive,\n \"neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center space-y-3 p-4\">\n <Upload className=\"neeto-ui-text-primary-500\" size={32} />\n <input\n {...getInputProps()}\n data-cy=\"csv-upload-input\"\n data-testid=\"csv-upload-input\"\n />\n {isDragActive ? (\n <Typography style=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center space-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button style=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body3\"\n >\n {fileType && (\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType }}\n components={{\n code: (\n <code className=\"neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0\" />\n ),\n }}\n />\n )}{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer className=\"flex items-center space-x-2\">\n <Button\n data-cy=\"bulk-upload-cancel-button\"\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n type=\"reset\"\n onClick={onClose}\n />\n </Pane.Footer>\n </div>\n </Pane>\n );\n};\n\nexport default BulkUploadPane;\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import React, { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Toastr } from \"neetoui\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { ALLOWED_FILE_TYPES, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div\n className=\"relative w-full flex-col gap-2\"\n data-testid=\"send-to-text-field\"\n >\n {showUploadCsvButton && (\n <Button\n className=\"absolute right-1 top-0\"\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"small\"\n style=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n )}\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-cy=\"cc-bcc-button\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"small\"\n style=\"link\"\n onClick={handelCcBccButtonClick}\n />\n )\n }\n />\n {showCopyEmails && (\n <div className=\"mt-5 flex w-full flex-col gap-6\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n <BulkUploadPane\n fileSize={globalProps.endUserUploadedFileSizeLimitInMb}\n fileType={ALLOWED_FILE_TYPES}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["ALLOWED_FILE_TYPES","ONE_MEGABYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","React","createElement","Callout","className","style","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","fileType","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","key","_useTranslation","useTranslation","Pane","tabIndex","Header","weight","Body","classNames","length","Upload","size","_extends","values","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","undefined","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix","globalProps","endUserUploadedFileSizeLimitInMb"],"mappings":";;;;;;;;;;;;;;;;;AACO,IAAMA,kBAAkB,GAAG,CAAC,MAAM,CAAC,CAAA;AACnC,IAAMC,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAA;AACzC,IAAMC,8BAA8B,GACzC,oEAAoE;;ACKtE,IAAMC,YAAY,GAAGC,KAAK,CAAC,UAAAC,IAAA,EAAA;AAAA,EAAA,IAAGC,CAAC,GAAAD,IAAA,CAADC,CAAC;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ,CAAA;AAAA,EAAA,oBACvCC,cAAA,CAAAC,aAAA,CAACC,OAAO,EAAA;AAACC,IAAAA,SAAS,EAAC,iCAAiC;AAACC,IAAAA,KAAK,EAAC,MAAA;GACzDJ,eAAAA,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIE,IAAAA,SAAS,EAAC,6DAAA;GACXJ,EAAAA,QAAQ,iBACPC,cAAA,CAAAC,aAAA,CACGH,IAAAA,EAAAA,IAAAA,EAAAA,CAAC,CAAC,0DAA0D,EAAE;AAC7DO,IAAAA,KAAK,EAAEN,QAAAA;GACR,CACC,CACL,eACDC,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAA;AACJC,IAAAA,UAAU,EAAE;MAAEC,MAAM,eAAER,cAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQE,QAAAA,SAAS,EAAC,eAAA;OAAiB,CAAA;KAAI;AAC7DM,IAAAA,OAAO,EAAC,+DAAA;GACT,CACC,CACF,CAAC,eACLT,cAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AACLC,IAAAA,IAAI,EAAEjB,8BAA+B;AACrCkB,IAAAA,IAAI,EAAEC,QAAS;AACfC,IAAAA,YAAY,EAAC,MAAM;AACnBC,IAAAA,KAAK,EAAEjB,CAAC,CAAC,8DAA8D,CAAE;AACzEM,IAAAA,KAAK,EAAC,MAAA;AAAM,GACb,CACM,CAAC,CAAA;AAAA,CACX,CAAC,CAAA;AAEF,qBAAA,aAAeJ,cAAK,CAACgB,IAAI,CAACrB,YAAY,CAAC;;ACzBvC,IAAMsB,cAAc,GAAG,SAAjBA,cAAcA,CAAApB,IAAA,EAMd;AAAA,EAAA,IAAAqB,gBAAA,CAAA;AAAA,EAAA,IALJC,MAAM,GAAAtB,IAAA,CAANsB,MAAM;IACNC,QAAQ,GAAAvB,IAAA,CAARuB,QAAQ;IACRrB,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRsB,OAAO,GAAAxB,IAAA,CAAPwB,OAAO;IACPC,gBAAgB,GAAAzB,IAAA,CAAhByB,gBAAgB,CAAA;EAEhB,IAAAC,YAAA,GACEC,WAAW,CAAC;AACVC,MAAAA,MAAM,EAAEL,QAAQ;AAChBM,MAAAA,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE5B,QAAQ,GAAGN,qBAAqB;MACzCmC,MAAM,EAAE,SAAAA,MAAAA,CAAAC,KAAK,EAAA;QAAA,OAAIA,KAAK,CAAC,CAAC,CAAC,IAAIP,gBAAgB,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,OAAA;AACzD,KAAC,CAAC;IANIC,YAAY,GAAAP,YAAA,CAAZO,YAAY;IAAEC,aAAa,GAAAR,YAAA,CAAbQ,aAAa;IAAEC,YAAY,GAAAT,YAAA,CAAZS,YAAY;IAAEC,cAAc,GAAAV,YAAA,CAAdU,cAAc,CAAA;AAQjE,EAAA,IAAMC,MAAM,GAAAhB,CAAAA,gBAAA,GAAGe,cAAc,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAf,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,gBAAA,CAAmBgB,MAAM,CAACC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI,CAAA;AAAA,IAAA,oBAC3DtC,cAAA,CAAAC,aAAA,CAACsC,UAAU,EAAA;AACTpC,MAAAA,SAAS,EAAC,+BAA+B;AACzC,MAAA,SAAA,EAAQ,0BAA0B;AAClCqC,MAAAA,GAAG,EAAEF,IAAK;AACVlC,MAAAA,KAAK,EAAC,OAAA;AAAO,KAAA,EAEZiC,OACS,CAAC,CAAA;AAAA,GACd,CAAC,CAAA;AAEF,EAAA,IAAAI,eAAA,GAAcC,cAAc,EAAE;IAAtB5C,CAAC,GAAA2C,eAAA,CAAD3C,CAAC,CAAA;AAET,EAAA,oBACEE,cAAA,CAAAC,aAAA,CAAC0C,IAAI,EAAA;AAAC,IAAA,aAAA,EAAY,kBAAkB;AAAOxB,IAAAA,MAAM,EAANA,MAAM;AAAEE,IAAAA,OAAO,EAAPA,OAAAA;GACjDrB,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK2C,IAAAA,QAAQ,EAAE,CAAA;AAAE,GAAA,eACf5C,cAAA,CAAAC,aAAA,CAAC0C,IAAI,CAACE,MAAM,EAAA,IAAA,eACV7C,cAAA,CAAAC,aAAA,CAACsC,UAAU,EAAA;AACT,IAAA,aAAA,EAAY,oBAAoB;AAChCnC,IAAAA,KAAK,EAAC,IAAI;AACV0C,IAAAA,MAAM,EAAC,UAAA;AAAU,GAAA,EAEhBhD,CAAC,CAAC,wCAAwC,CACjC,CACD,CAAC,eACdE,cAAA,CAAAC,aAAA,CAAC0C,IAAI,CAACI,IAAI,EACR/C,IAAAA,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,eAC/BH,cAAA,CAAAC,aAAA,CAACN,cAAY,EAAA;AAAOI,IAAAA,QAAQ,EAARA,QAAAA;AAAQ,GAAK,CAAC,eAClCC,cAAA,CAAAC,aAAA,CAAA,KAAA,EACM6B,YAAY,CAAC;AACf3B,IAAAA,SAAS,EAAE6C,UAAU,CACnB,mLAAmL,EACnL;AACE,MAAA,0BAA0B,EAAEhB,YAAY;MACxC,2EAA2E,EACzEC,cAAc,CAACgB,MAAAA;KAErB,CAAA;AACF,GAAC,CAAC,eAEFjD,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,0CAAA;AAA0C,GAAA,eACvDH,cAAA,CAAAC,aAAA,CAACiD,MAAM,EAAA;AAAC/C,IAAAA,SAAS,EAAC,2BAA2B;AAACgD,IAAAA,IAAI,EAAE,EAAA;GAAK,CAAC,eAC1DnD,cAAA,CAAAC,aAAA,UAAAmD,QAAA,CAAA,EAAA,EACMrB,aAAa,EAAE,EAAA;AACnB,IAAA,SAAA,EAAQ,kBAAkB;IAC1B,aAAY,EAAA,kBAAA;GACb,CAAA,CAAC,EACDC,YAAY,gBACXhC,cAAA,CAAAC,aAAA,CAACsC,UAAU,EAAA;AAACnC,IAAAA,KAAK,EAAC,OAAA;GACfN,EAAAA,CAAC,CACA,yDACF,CACU,CAAC,gBAEbE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,sCAAA;GACbH,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,iDAAA;AAAiD,GAAA,eAC9DH,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAA;AACJG,IAAAA,OAAO,EAAC,sDAAsD;AAC9DF,IAAAA,UAAU,EAAE;AACVG,MAAAA,MAAM,eAAEV,cAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AAACN,QAAAA,KAAK,EAAC,MAAA;OAAQ,CAAA;AAChC,KAAA;AAAE,GACH,CACE,CAAC,eACNJ,cAAA,CAAAC,aAAA,CAACsC,UAAU,EAAA;AACTpC,IAAAA,SAAS,EAAC,wBAAwB;AAClCC,IAAAA,KAAK,EAAC,OAAA;AAAO,GAAA,EAEZgB,QAAQ,iBACPpB,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAA;AACJG,IAAAA,OAAO,EAAC,4DAA4D;AACpE4C,IAAAA,MAAM,EAAE;AAAEjC,MAAAA,QAAQ,EAARA,QAAAA;KAAW;AACrBb,IAAAA,UAAU,EAAE;MACV+B,IAAI,eACFtC,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAC,8EAAA;OAAgF,CAAA;AAEpG,KAAA;GACD,CACF,EAAE,GAAG,EACLJ,QAAQ,IACPD,CAAC,CACC,0DAA0D,EAC1D;AAAEC,IAAAA,QAAQ,EAARA,QAAAA;AAAS,GACb,CACQ,CACT,CAEJ,CAAC,EACLmC,MACE,CACF,CACI,CAAC,eACZlC,cAAA,CAAAC,aAAA,CAAC0C,IAAI,CAACW,MAAM,EAAA;AAACnD,IAAAA,SAAS,EAAC,6BAAA;AAA6B,GAAA,eAClDH,cAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AACL,IAAA,SAAA,EAAQ,2BAA2B;AACnC,IAAA,aAAA,EAAY,2BAA2B;AACvCK,IAAAA,KAAK,EAAEjB,CAAC,CAAC,sCAAsC,CAAE;AACjDM,IAAAA,KAAK,EAAC,MAAM;AACZmD,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,OAAO,EAAEnC,OAAAA;GACV,CACU,CACV,CACD,CAAC,CAAA;AAEX,CAAC;;AC5HD,IAAMoC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAA;EAAA,OAAIC,MAAM,EAAE,CAACD,KAAK,EAAE,CAACE,WAAW,CAACF,KAAK,CAAC,CAAA;AAAA,CAAA,CAAA;AAE1D,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;AAAA,EAAA,IAAIC,MAAM,GAAAC,SAAA,CAAAd,MAAA,GAAA,CAAA,IAAAc,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAC5CD,MAAM,CAAC3B,GAAG,CAAC,UAAAuB,KAAK,EAAA;IAAA,OAAK;AACnB3C,MAAAA,KAAK,EAAE2C,KAAK;AACZO,MAAAA,KAAK,EAAEP,KAAK;MACZQ,KAAK,EAAET,YAAY,CAACC,KAAK,CAAA;KAC1B,CAAA;AAAA,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEE,IAAMS,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,SAAS,EAAK;AACjDC,EAAAA,IAAI,CAACC,KAAK,CAACH,IAAI,EAAE;AACfI,IAAAA,MAAM,EAAE,IAAI;AACZC,IAAAA,cAAc,EAAE,IAAI;IACpBC,eAAe,EAAE,SAAAA,eAAAA,CAAAC,CAAC,EAAA;MAAA,OAAIA,CAAC,CAACC,WAAW,EAAE,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAAA,KAAA;AACxDC,IAAAA,QAAQ,EAAE,SAAAA,QAAAC,CAAAA,OAAO,EAAI;AAAA,MAAA,IAAAC,oBAAA,CAAA;AACnB,MAAA,IAAMC,mBAAmB,GAAAD,CAAAA,oBAAA,GAAGD,OAAO,CAACG,IAAI,CAACC,MAAM,MAAA,IAAA,IAAAH,oBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqBI,QAAQ,CAAC,OAAO,CAAC,CAAA;AAClE,MAAA,IAAIH,mBAAmB,EAAE;AACvB,QAAA,IAAMnB,MAAM,GAAGiB,OAAO,CAACM,IAAI,CACxBC,MAAM,CAACC,IAAI,CAAC,OAAO,CAAC,CAAC,CACrBpD,GAAG,CAAC,UAAAqD,IAAI,EAAA;AAAA,UAAA,OAAIA,IAAI,CAAC9B,KAAK,CAAC+B,IAAI,EAAE,CAAA;SAAC,CAAA,CAAA;AACjCpB,QAAAA,SAAS,CAACR,kBAAkB,CAACC,MAAM,CAAC,CAAC,CAAA;AACvC,OAAC,MAAM;AACL4B,QAAAA,MAAM,CAACC,KAAK,CAAC7F,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAA;AAClE,OAAA;AACF,KAAA;AACF,GAAC,CAAC,CAAA;AACJ,CAAC;;ACnBD,IAAM8F,YAAY,GAAG,SAAfA,YAAYA,CAAA/F,IAAA,EAMZ;AAAA,EAAA,IALJgG,eAAe,GAAAhG,IAAA,CAAfgG,eAAe;IACfC,YAAY,GAAAjG,IAAA,CAAZiG,YAAY;IACZC,aAAa,GAAAlG,IAAA,CAAbkG,aAAa;IAAAC,qBAAA,GAAAnG,IAAA,CACboG,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAAAE,oBAAA,GAAArG,IAAA,CAC3BsG,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA,CAAA;AAEvB,EAAA,IAAAE,SAAA,GAAwDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhEI,IAAAA,oBAAoB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,uBAAuB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAMI,cAAc,GAAGC,MAAM,EAAE,CAAA;AAC/B,EAAA,IAAAC,iBAAA,GAMIC,gBAAgB,EAAE;IAAAC,qBAAA,GAAAF,iBAAA,CALpBvD,MAAM;IACJ0D,cAAc,GAAAD,qBAAA,CAAdC,cAAc;AACsBC,IAAAA,oBAAoB,GAAAF,qBAAA,CAAvDjB,eAAe,CAACoB,IAAI,IAAI,QAAQ,CAAA;IAEnCC,aAAa,GAAAN,iBAAA,CAAbM,aAAa,CAAA;AAEf,EAAA,IAAAzE,eAAA,GAAcC,cAAc,EAAE;IAAtB5C,CAAC,GAAA2C,eAAA,CAAD3C,CAAC,CAAA;AAET,EAAA,IAAMqH,aAAa,GAAG,SAAhBA,aAAaA,CAAG/C,IAAI,EAAI;IAC5B,IAAI;AAAA,MAAA,IAAAgD,qBAAA,CAAA;AACF,MAAA,IAAM/C,SAAS,GAAG,SAAZA,SAASA,CAAGhB,MAAM,EAAA;AAAA,QAAA,OACtB6D,aAAa,CAACrB,eAAe,CAACoB,IAAI,IAAI,QAAQ,EAAAI,EAAAA,CAAAA,MAAA,CAAAC,kBAAA,CACzCN,oBAAoB,CAAA,EAAAM,kBAAA,CACpBjE,MAAM,EACV,CAAC,CAAA;AAAA,OAAA,CAAA;AAEJc,MAAAA,cAAc,CAACC,IAAI,EAAEC,SAAS,CAAC,CAAA;MAC/BoC,uBAAuB,CAAC,KAAK,CAAC,CAAA;AAC9B,MAAA,CAAAW,qBAAA,GAAAV,cAAc,CAACa,OAAO,MAAA,IAAA,IAAAH,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,qBAAA,CAAwBI,KAAK,EAAE,CAAA;KAChC,CAAC,OAAO7B,KAAK,EAAE;AACdD,MAAAA,MAAM,CAACC,KAAK,CAACA,KAAK,CAAC,CAAA;AACrB,KAAA;GACD,CAAA;AAED,EAAA,IAAM8B,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,CAAC,EAAI;IAClCA,CAAC,CAACC,eAAe,EAAE,CAAA;AACnBT,IAAAA,aAAa,CAAC,gBAAgB,EAAE,CAACH,cAAc,CAAC,CAAA;GACjD,CAAA;EAED,oBACE/G,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEE,IAAAA,SAAS,EAAC,gCAAgC;IAC1C,aAAY,EAAA,oBAAA;AAAoB,GAAA,EAE/B8F,mBAAmB,iBAClBjG,cAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AACLP,IAAAA,SAAS,EAAC,wBAAwB;AAClC,IAAA,aAAA,EAAY,oBAAoB;AAChCS,IAAAA,IAAI,EAAEsC,MAAO;AACbnC,IAAAA,KAAK,EAAEjB,CAAC,CAAC,wCAAwC,CAAE;AACnDqD,IAAAA,IAAI,EAAC,OAAO;AACZ/C,IAAAA,KAAK,EAAC,MAAM;IACZoD,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMiD,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAAA,KAAA;GAC7C,CACF,eACDzG,cAAA,CAAAC,aAAA,CAAC2H,eAAe,EAAAxE,QAAA,CAAA;AACd6D,IAAAA,IAAI,EAAC,QAAQ;AACbY,IAAAA,GAAG,EAAEnB,cAAAA;AAAe,GAAA,EAChBb,eAAe,EAAA;AACnBiC,IAAAA,MAAM,EACJ3B,eAAe,iBACbnG,cAAA,CAAAC,aAAA,CAACS,MAAM,EAAA;AACL,MAAA,SAAA,EAAQ,eAAe;AACvB,MAAA,aAAA,EAAY,eAAe;AAC3BK,MAAAA,KAAK,EAAEjB,CAAC,CAAC,uCAAuC,CAAE;AAClDqD,MAAAA,IAAI,EAAC,OAAO;AACZ/C,MAAAA,KAAK,EAAC,MAAM;AACZoD,MAAAA,OAAO,EAAEiE,sBAAAA;KACV,CAAA;AAEJ,GAAA,CACF,CAAC,EACDV,cAAc,iBACb/G,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,iCAAA;AAAiC,GAAA,eAC9CH,cAAA,CAAAC,aAAA,CAAC2H,eAAe,EAAAxE,QAAA,CAAA;AAAC6D,IAAAA,IAAI,EAAC,WAAA;GAAgBnB,EAAAA,YAAY,CAAG,CAAC,eACtD9F,cAAA,CAAAC,aAAA,CAAC2H,eAAe,EAAAxE,QAAA,CAAA;AAAC6D,IAAAA,IAAI,EAAC,UAAA;GAAelB,EAAAA,aAAa,CAAG,CAClD,CACN,eACD/F,cAAA,CAAAC,aAAA,CAACgB,cAAc,EAAA;IACblB,QAAQ,EAAEgI,WAAW,CAACC,gCAAiC;AACvD5G,IAAAA,QAAQ,EAAE5B,kBAAmB;AAC7B8B,IAAAA,gBAAgB,EAAE6F,aAAc;AAChChG,IAAAA,MAAM,EAAEqF,oBAAqB;IAC7BnF,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMoF,uBAAuB,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AAAC,GAC/C,CACE,CAAC,CAAA;AAEV;;;;"}
1
+ {"version":3,"file":"SendToFields.js","sources":["../src/components/SendToFields/constants.js","../src/components/SendToFields/Requirements.jsx","../src/components/SendToFields/BulkUploadPane.jsx","../src/components/SendToFields/utils.js","../src/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const ALLOWED_FILE_TYPES = [\".csv\"];\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Download } from \"neetoicons\";\nimport { Button, Callout } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" style=\"info\">\n <ul className=\"list-outside list-disc space-y-1 font-normal leading-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n style=\"link\"\n />\n </Callout>\n));\n\nexport default React.memo(Requirements);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Typography, Pane } from \"neetoui\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({\n isOpen,\n fileType,\n fileSize,\n onClose,\n handleFileSubmit,\n}) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: fileType,\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"neeto-ui-text-error-500 items\"\n data-cy=\"file-input-error-message\"\n key={code}\n style=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Pane {...{ isOpen, onClose }} data-testid=\"bulk-upload-pane\">\n <div tabIndex={0}>\n <Pane.Header>\n <Typography\n data-testid=\"bulk-upload-header\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center\",\n {\n \"neeto-ui-border-gray-100\": isDragActive,\n \"neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center space-y-3 p-4\">\n <Upload className=\"neeto-ui-text-primary-500\" size={32} />\n <input\n {...getInputProps()}\n data-cy=\"csv-upload-input\"\n data-testid=\"csv-upload-input\"\n />\n {isDragActive ? (\n <Typography style=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center space-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button style=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body3\"\n >\n {fileType && (\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType }}\n components={{\n code: (\n <code className=\"neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0\" />\n ),\n }}\n />\n )}{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer className=\"flex items-center space-x-2\">\n <Button\n data-cy=\"bulk-upload-cancel-button\"\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n type=\"reset\"\n onClick={onClose}\n />\n </Pane.Footer>\n </div>\n </Pane>\n );\n};\n\nexport default BulkUploadPane;\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import React, { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Toastr } from \"neetoui\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { ALLOWED_FILE_TYPES, CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div\n className=\"relative w-full flex-col gap-2\"\n data-testid=\"send-to-text-field\"\n >\n {showUploadCsvButton && (\n <Button\n className=\"absolute right-1 top-0\"\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"small\"\n style=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n )}\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-cy=\"cc-bcc-button\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"small\"\n style=\"link\"\n onClick={handelCcBccButtonClick}\n />\n )\n }\n />\n {showCopyEmails && (\n <div className=\"mt-5 flex w-full flex-col gap-6\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n fileType={ALLOWED_FILE_TYPES}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["ALLOWED_FILE_TYPES","CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","React","createElement","Callout","className","style","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","fileType","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","key","_useTranslation","useTranslation","Pane","tabIndex","Header","weight","Body","classNames","length","Upload","size","_extends","values","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","undefined","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix"],"mappings":"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"}
package/dist/Settings.js CHANGED
@@ -19,6 +19,7 @@ import './slicedToArray-b4278ecd.js';
19
19
  import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
20
20
  import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
21
21
  import '@bigbinary/neeto-icons';
22
+ import '@bigbinary/neeto-commons-frontend/utils';
22
23
  import './MoreDropdown.js';
23
24
 
24
25
  var UNSUPPORTED_LINK_PROPS = ["staticContext"];
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../src/components/Settings/constants.js","../src/components/Settings/Item.jsx","../src/components/Settings/Category.jsx","../src/components/Settings/utils.js","../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex cursor-pointer flex-col border p-6 no-underline outline-none transition-colors\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n {Icon && <Icon className=\"neeto-ui-text-gray-600 mb-4\" size={32} />}\n <Typography\n className=\"mb-2\"\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport IntegrationCard from \"components/IntegrationCard\";\n\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationCard : Item;\n\n return (\n <div {...{ id }} className=\"flex flex-col py-6\">\n <Typography\n className=\"mb-6\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({ isTitleHidden = false, categories = [] }) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={{\n className: \"w-72\",\n placeholder: t(\"neetoMolecules.settingsPage.placeholder.search\"),\n }}\n />\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full space-y-12\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","Category","items","id","isIntegration","SettingsCard","IntegrationCard","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","_objectSpread","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","useEffect","classNames","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
1
+ {"version":3,"file":"Settings.js","sources":["../src/components/Settings/constants.js","../src/components/Settings/Item.jsx","../src/components/Settings/Category.jsx","../src/components/Settings/utils.js","../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex cursor-pointer flex-col border p-6 no-underline outline-none transition-colors\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n {Icon && <Icon className=\"neeto-ui-text-gray-600 mb-4\" size={32} />}\n <Typography\n className=\"mb-2\"\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport IntegrationCard from \"components/IntegrationCard\";\n\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationCard : Item;\n\n return (\n <div {...{ id }} className=\"flex flex-col py-6\">\n <Typography\n className=\"mb-6\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({ isTitleHidden = false, categories = [] }) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={{\n className: \"w-72\",\n placeholder: t(\"neetoMolecules.settingsPage.placeholder.search\"),\n }}\n />\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full space-y-12\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","Category","items","id","isIntegration","SettingsCard","IntegrationCard","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","_objectSpread","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","useEffect","classNames","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
@@ -12,6 +12,7 @@ import './objectWithoutProperties-a0edb288.js';
12
12
  import 'classnames';
13
13
  import '@bigbinary/neeto-commons-frontend/utils/general';
14
14
  import '@bigbinary/neetoui';
15
+ import 'react-i18next';
15
16
 
16
17
  var INPUT_FIELD_MIN_WIDTH = 60;
17
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"SuffixedInput.js","sources":["../src/components/SuffixedInput/constants.js","../src/components/SuffixedInput/index.jsx"],"sourcesContent":["export const INPUT_FIELD_MIN_WIDTH = 60;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport { Info } from \"neetoicons\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport { INPUT_FIELD_MIN_WIDTH } from \"./constants\";\nimport \"./suffixed-input.scss\";\n\nconst SuffixedInput = ({\n placeholder,\n helpUrl,\n helpIconTooltipContent,\n label,\n value,\n getInputRef,\n suffix,\n isCopyToClipboardEnabled = false,\n name = \"email\",\n inputProps = {},\n}) => {\n const [initialInputWidth, setInitialInputWidth] = useState(\n INPUT_FIELD_MIN_WIDTH\n );\n const inputRef = useRef(null);\n const placeholderRef = useRef(null);\n\n const setInputRef = ref => {\n inputRef.current = ref;\n getInputRef?.(ref);\n };\n\n useEffect(() => {\n //To handle the input width on initial render.\n const placeholderSpanWidth = placeholderRef.current?.offsetWidth;\n setInitialInputWidth(placeholderSpanWidth);\n }, []);\n\n return (\n <>\n <span // Dummy element to calculate the width to be set for the input. Do not remove.\n className=\"pointer-events-none invisible absolute pl-2\"\n ref={placeholderRef}\n >\n {value || placeholder}\n </span>\n <div className=\"inline-flex max-w-full items-end gap-2\">\n <Input\n {...{ label, name, placeholder, ...inputProps }}\n className=\"nm-suffixed-input-field\"\n ref={setInputRef}\n type=\"text\"\n labelProps={{\n helpIconProps: isPresent(helpUrl) && {\n icon: Info,\n className:\n \"cursor-pointer opacity-75 hover:opacity-100 transition-opacity duration-300 ease-in-out\",\n onClick: () => window.open(helpUrl, \"_blank\"),\n tooltipProps: {\n content: helpIconTooltipContent,\n position: \"right\",\n disabled: isNotPresent(helpUrl),\n },\n },\n }}\n style={{\n minWidth: isEmpty(value) ? INPUT_FIELD_MIN_WIDTH : 0,\n width: placeholderRef.current?.offsetWidth ?? initialInputWidth, // Additional 2px to act as a buffer.\n }}\n suffix={\n // Added onClick to focus the input even when the suffix part is clicked.\n <span onClick={() => inputRef.current?.focus()}>{suffix}</span>\n }\n />\n {isCopyToClipboardEnabled && (\n <CopyToClipboardButton\n disabled={isEmpty(value)}\n style=\"text\"\n value={`${value}${suffix}`}\n />\n )}\n </div>\n </>\n );\n};\n\nSuffixedInput.propTypes = {\n /**\n * Placeholder of the input field.\n */\n placeholder: PropTypes.string,\n /**\n * A help icon will be displayed next to the label if helpUrl is present. On clicking the icon will take the user to the URL.\n */\n helpUrl: PropTypes.string,\n /**\n * Text to be displayed inside the tooltip of the help icon.\n */\n helpIconTooltipContent: PropTypes.string,\n /**\n * Label of the input field.\n */\n label: PropTypes.string,\n /**\n * The value entered by the user, eg: email.\n */\n value: PropTypes.string,\n /**\n * A method to get the ref of the input field.\n */\n getInputRef: PropTypes.func,\n /**\n * Domain name to be rendered next to the input field.\n */\n suffix: PropTypes.string,\n /**\n * Whether to show the copy to clipboard button.\n */\n isCopyToClipboardEnabled: PropTypes.bool,\n /**\n * Formik field name of the input field.\n */\n name: PropTypes.string,\n /**\n * This will be passed down to the `Input` component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default SuffixedInput;\n"],"names":["INPUT_FIELD_MIN_WIDTH","SuffixedInput","_ref","_placeholderRef$curre2","_placeholderRef$curre3","placeholder","helpUrl","helpIconTooltipContent","label","value","getInputRef","suffix","_ref$isCopyToClipboar","isCopyToClipboardEnabled","_ref$name","name","_ref$inputProps","inputProps","_useState","useState","_useState2","_slicedToArray","initialInputWidth","setInitialInputWidth","inputRef","useRef","placeholderRef","setInputRef","ref","current","useEffect","_placeholderRef$curre","placeholderSpanWidth","offsetWidth","React","createElement","Fragment","className","Input","_extends","_objectSpread","type","labelProps","helpIconProps","isPresent","icon","Info","onClick","window","open","tooltipProps","content","position","disabled","isNotPresent","style","minWidth","isEmpty","width","_inputRef$current","focus","CopyToClipboardButton","concat"],"mappings":"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"}
1
+ {"version":3,"file":"SuffixedInput.js","sources":["../src/components/SuffixedInput/constants.js","../src/components/SuffixedInput/index.jsx"],"sourcesContent":["export const INPUT_FIELD_MIN_WIDTH = 60;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport { Info } from \"neetoicons\";\nimport { Input } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport { INPUT_FIELD_MIN_WIDTH } from \"./constants\";\nimport \"./suffixed-input.scss\";\n\nconst SuffixedInput = ({\n placeholder,\n helpUrl,\n helpIconTooltipContent,\n label,\n value,\n getInputRef,\n suffix,\n isCopyToClipboardEnabled = false,\n name = \"email\",\n inputProps = {},\n}) => {\n const [initialInputWidth, setInitialInputWidth] = useState(\n INPUT_FIELD_MIN_WIDTH\n );\n const inputRef = useRef(null);\n const placeholderRef = useRef(null);\n\n const setInputRef = ref => {\n inputRef.current = ref;\n getInputRef?.(ref);\n };\n\n useEffect(() => {\n //To handle the input width on initial render.\n const placeholderSpanWidth = placeholderRef.current?.offsetWidth;\n setInitialInputWidth(placeholderSpanWidth);\n }, []);\n\n return (\n <>\n <span // Dummy element to calculate the width to be set for the input. Do not remove.\n className=\"pointer-events-none invisible absolute pl-2\"\n ref={placeholderRef}\n >\n {value || placeholder}\n </span>\n <div className=\"inline-flex max-w-full items-end gap-2\">\n <Input\n {...{ label, name, placeholder, ...inputProps }}\n className=\"nm-suffixed-input-field\"\n ref={setInputRef}\n type=\"text\"\n labelProps={{\n helpIconProps: isPresent(helpUrl) && {\n icon: Info,\n className:\n \"cursor-pointer opacity-75 hover:opacity-100 transition-opacity duration-300 ease-in-out\",\n onClick: () => window.open(helpUrl, \"_blank\"),\n tooltipProps: {\n content: helpIconTooltipContent,\n position: \"right\",\n disabled: isNotPresent(helpUrl),\n },\n },\n }}\n style={{\n minWidth: isEmpty(value) ? INPUT_FIELD_MIN_WIDTH : 0,\n width: placeholderRef.current?.offsetWidth ?? initialInputWidth, // Additional 2px to act as a buffer.\n }}\n suffix={\n // Added onClick to focus the input even when the suffix part is clicked.\n <span onClick={() => inputRef.current?.focus()}>{suffix}</span>\n }\n />\n {isCopyToClipboardEnabled && (\n <CopyToClipboardButton\n disabled={isEmpty(value)}\n style=\"text\"\n value={`${value}${suffix}`}\n />\n )}\n </div>\n </>\n );\n};\n\nSuffixedInput.propTypes = {\n /**\n * Placeholder of the input field.\n */\n placeholder: PropTypes.string,\n /**\n * A help icon will be displayed next to the label if helpUrl is present. On clicking the icon will take the user to the URL.\n */\n helpUrl: PropTypes.string,\n /**\n * Text to be displayed inside the tooltip of the help icon.\n */\n helpIconTooltipContent: PropTypes.string,\n /**\n * Label of the input field.\n */\n label: PropTypes.string,\n /**\n * The value entered by the user, eg: email.\n */\n value: PropTypes.string,\n /**\n * A method to get the ref of the input field.\n */\n getInputRef: PropTypes.func,\n /**\n * Domain name to be rendered next to the input field.\n */\n suffix: PropTypes.string,\n /**\n * Whether to show the copy to clipboard button.\n */\n isCopyToClipboardEnabled: PropTypes.bool,\n /**\n * Formik field name of the input field.\n */\n name: PropTypes.string,\n /**\n * This will be passed down to the `Input` component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default SuffixedInput;\n"],"names":["INPUT_FIELD_MIN_WIDTH","SuffixedInput","_ref","_placeholderRef$curre2","_placeholderRef$curre3","placeholder","helpUrl","helpIconTooltipContent","label","value","getInputRef","suffix","_ref$isCopyToClipboar","isCopyToClipboardEnabled","_ref$name","name","_ref$inputProps","inputProps","_useState","useState","_useState2","_slicedToArray","initialInputWidth","setInitialInputWidth","inputRef","useRef","placeholderRef","setInputRef","ref","current","useEffect","_placeholderRef$curre","placeholderSpanWidth","offsetWidth","React","createElement","Fragment","className","Input","_extends","_objectSpread","type","labelProps","helpIconProps","isPresent","icon","Info","onClick","window","open","tooltipProps","content","position","disabled","isNotPresent","style","minWidth","isEmpty","width","_inputRef$current","focus","CopyToClipboardButton","concat"],"mappings":"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"}
package/dist/Taxonomy.js CHANGED
@@ -32,6 +32,7 @@ import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
32
32
  import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
33
33
  import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
34
34
  import '@bigbinary/neeto-icons';
35
+ import '@bigbinary/neeto-commons-frontend/utils';
35
36
  import './Columns-2bdb8579.js';
36
37
  import 'zustand';
37
38
  import 'zustand/middleware';
@@ -1 +1 @@
1
- {"version":3,"file":"Taxonomy.js","sources":["../src/components/Taxonomy/constants.js","../src/components/Taxonomy/api.js","../src/components/Taxonomy/useTaxonomyApi.js","../src/components/Taxonomy/utils.jsx","../src/components/Taxonomy/EditPane.jsx","../src/components/Taxonomy/LeftActionBlock.jsx","../src/components/Taxonomy/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const LABEL_REJECT_CHARS_REGEX = /[^a-zA-Z\\d\\s_-]+/;\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n singularLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.singularLabelRequired\")\n ),\n pluralLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.pluralLabelRequired\")\n ),\n});\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst update = ({ keyName, payload }) =>\n axios.patch(`${BASE_API_V1_URL}/taxonomies/${keyName}`, payload);\n\nconst bulkDestroy = payload =>\n axios.delete(`${BASE_API_V1_URL}/taxonomies/bulk_destroy`, {\n data: payload,\n });\n\nconst taxonomiesApi = { update, bulkDestroy };\n\nexport default taxonomiesApi;\n","import { useMutation } from \"react-query\";\n\nimport taxonomiesApi from \"./api\";\n\nconst useUpdateTaxonomy = options => useMutation(taxonomiesApi.update, options);\n\nconst useBulkDestroyTaxonomies = options =>\n useMutation(taxonomiesApi.bulkDestroy, options);\n\nexport { useUpdateTaxonomy, useBulkDestroyTaxonomies };\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { capitalize } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { fromPairs, toPairs } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nexport const formatLabel = label => capitalize(label.trim());\n\nexport const formatDataForTable = taxonomies =>\n toPairs(taxonomies).map(([keyName, labels]) => ({\n keyName,\n singularLabel: labels[\"singular\"],\n pluralLabel: labels[\"plural\"],\n }));\n\nexport const getColumnData = (\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n) => [\n {\n title: t(\"neetoMolecules.taxonomy.defaultLabel\"),\n dataIndex: \"default\",\n key: \"defaultLabel\",\n width: 400,\n render: (_, values) => {\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"neetoMolecules.common.actions.edit\"),\n onClick: () => handleEdit(values),\n },\n {\n key: \"reset\",\n label: t(\"neetoMolecules.common.actions.resetToDefaults\"),\n onClick: () => {\n setCurrentKeys([values.keyName]);\n setIsResetModalOpen(true);\n },\n },\n ];\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography style=\"body2\">\n {t(`taxonomyDefaultLabels.${values.keyName}.singular`)}\n </Typography>\n <MoreDropdown\n dropdownProps={{ strategy: \"fixed\" }}\n dropdownButtonProps={{\n \"data-testid\": `nui-dropdown-icon-${values.keyName}`,\n }}\n {...{ menuItems }}\n />\n </div>\n );\n },\n },\n {\n title: t(\"neetoMolecules.taxonomy.singularLabel\"),\n dataIndex: \"singularLabel\",\n key: \"singularLabel\",\n width: 300,\n },\n {\n title: t(\"neetoMolecules.taxonomy.pluralLabel\"),\n dataIndex: \"pluralLabel\",\n key: \"pluralLabel\",\n width: 300,\n },\n];\n\nexport const getFilteredTaxonomies = (matchString, taxonomies) => {\n const filteredArray = toPairs(taxonomies).filter(([key, value]) => {\n const defaultLabel = t(`taxonomyDefaultLabels.${key}.singular`);\n const valuesToSearch = [defaultLabel, ...Object.values(value)];\n\n return valuesToSearch.some(str =>\n str.toLowerCase().includes(matchString.toLowerCase())\n );\n });\n\n return fromPairs(filteredArray);\n};\n","import React, { useRef } from \"react\";\n\nimport { Pane, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { LABEL_REJECT_CHARS_REGEX, VALIDATION_SCHEMA } from \"./constants\";\nimport { useUpdateTaxonomy } from \"./useTaxonomyApi\";\nimport { formatLabel } from \"./utils\";\n\nconst EditPane = ({ initialValues, isOpen, onClose }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef(null);\n\n const { mutate: updateTaxonomy } = useUpdateTaxonomy();\n\n const handleSubmit = (values, { setSubmitting }) => {\n const { keyName, singularLabel, pluralLabel } = values;\n\n const payload = {\n taxonomy: {\n keyName,\n singularLabel: formatLabel(singularLabel),\n pluralLabel: formatLabel(pluralLabel),\n },\n };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n onSettled: () => setSubmitting(false),\n };\n\n updateTaxonomy({ keyName, payload }, options);\n };\n\n return (\n <Pane\n {...{ initialFocusRef, isOpen, onClose }}\n data-testid=\"taxonomy-edit-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.taxonomy.editPane.title\", {\n entity: t(\n `taxonomyDefaultLabels.${initialValues.keyName}.singular`\n ).toLocaleLowerCase(),\n })}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-6\">\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-singular-input-field\"\n data-testid=\"taxonomy-singular-input-field\"\n label={t(\"neetoMolecules.taxonomy.singularLabel\")}\n name=\"singularLabel\"\n ref={initialFocusRef}\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-plural-input-field\"\n data-testid=\"taxonomy-plural-input-field\"\n label={t(\"neetoMolecules.taxonomy.pluralLabel\")}\n name=\"pluralLabel\"\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose, disabled: false }}\n className=\"flex items-center space-x-2\"\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default EditPane;\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LeftActionBlock = ({\n selectedCount,\n totalCount,\n setIsResetModalOpen,\n setCurrentKeys,\n selectedRowIds,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n return (\n !!totalCount && (\n <>\n {selectedCount > 0 ? (\n <>\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.actionBlock.selectedTaxonomy\"\n values={{ count: selectedCount, totalCount }}\n components={{\n span: <span className=\"neeto-ui-text-gray-600\" />,\n }}\n />\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n label={t(\"neetoMolecules.taxonomy.actionBlock.takeAction\")}\n >\n <Menu>\n <MenuItem.Button\n style=\"secondary\"\n onClick={() => {\n setCurrentKeys(selectedRowIds);\n setIsResetModalOpen(true);\n }}\n >\n {t(\"neetoMolecules.common.actions.resetToDefaults\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </>\n ) : (\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n {t(\"neetoMolecules.taxonomy.actionBlock.taxonomyWithCount\", {\n count: totalCount,\n })}\n </Typography>\n )}\n </>\n )\n );\n};\n\nexport default LeftActionBlock;\n","import React, { useState, useEffect } from \"react\";\n\nimport { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { taxonomies, globalProps } from \"neetocommons/initializers\";\nimport withTitle from \"neetocommons/react-utils/withTitle\";\nimport { Alert, NoData, Table, Toastr } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop, pick, keys } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport SubHeader from \"components/SubHeader\";\nimport TableWrapper from \"components/TableWrapper\";\n\nimport EditPane from \"./EditPane\";\nimport LeftActionBlock from \"./LeftActionBlock\";\nimport { useBulkDestroyTaxonomies } from \"./useTaxonomyApi\";\nimport {\n formatDataForTable,\n getColumnData,\n getFilteredTaxonomies,\n} from \"./utils\";\n\nconst Taxonomy = ({ breadcrumbs }) => {\n const [isResetModalOpen, setIsResetModalOpen] = useState(false);\n const [isEditTaxonomyPaneOpen, setIsEditTaxonomyPaneOpen] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const [selectedRowIds, setSelectedRowIds] = useState([]);\n const [searchString, setSearchString] = useState(\"\");\n const [currentKeys, setCurrentKeys] = useState([]);\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const { mutate: bulkDestroyTaxonomies } = useBulkDestroyTaxonomies();\n\n const hostTaxonomyKeys = keys(globalProps.taxonomies);\n const hostTaxonomies = pick(hostTaxonomyKeys, taxonomies);\n\n const [filteredTaxonomies, setFilteredTaxonomies] = useState(hostTaxonomies);\n\n const handleRowSelect = ids => setSelectedRowIds(ids);\n\n const handleDelete = () => {\n const payload = { keyNames: currentKeys };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n };\n\n bulkDestroyTaxonomies(payload, options);\n };\n\n const handleEdit = values => {\n setInitialValues(values);\n setIsEditTaxonomyPaneOpen(true);\n };\n\n const handleSearch = event => {\n setSearchString(event.target.value);\n const newTaxonomies = getFilteredTaxonomies(\n event.target.value,\n hostTaxonomies\n );\n setFilteredTaxonomies(newTaxonomies);\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs }}\n size={isMobileScreen ? \"small\" : \"large\"}\n title={t(\"neetoMolecules.taxonomy.title\")}\n searchProps={{\n onChange: handleSearch,\n value: searchString,\n placeholder: t(\"neetoMolecules.taxonomy.searchTaxonomy\"),\n }}\n />\n <SubHeader\n leftActionBlock={\n <LeftActionBlock\n {...{ selectedRowIds, setCurrentKeys, setIsResetModalOpen }}\n selectedCount={selectedRowIds.length}\n totalCount={Object.entries(filteredTaxonomies).length}\n />\n }\n />\n {isNotEmpty(filteredTaxonomies) ? (\n <TableWrapper>\n <Table\n fixedHeight\n rowSelection\n allowRowClick={false}\n rowData={formatDataForTable(filteredTaxonomies)}\n rowKey={prop(\"keyName\")}\n scroll={{ x: 0 }}\n selectedRowKeys={selectedRowIds}\n tableLayout=\"fixed\"\n columnData={getColumnData(\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n )}\n onRowSelect={handleRowSelect}\n />\n <EditPane\n {...{ initialValues }}\n isOpen={isEditTaxonomyPaneOpen}\n onClose={() => setIsEditTaxonomyPaneOpen(false)}\n />\n <Alert\n isOpen={isResetModalOpen}\n submitButtonLabel={t(\"neetoMolecules.common.actions.proceed\")}\n title={t(\"neetoMolecules.taxonomy.resetAlert.title\")}\n message={\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.resetAlert.message\"\n values={{\n count: currentKeys.length,\n what: t(`taxonomyDefaultLabels.${currentKeys[0]}.singular`),\n }}\n />\n }\n onClose={() => setIsResetModalOpen(false)}\n onSubmit={handleDelete}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(\"neetoMolecules.taxonomy.noData\")} />\n </div>\n )}\n </Container>\n );\n};\n\nTaxonomy.propTypes = {\n /**\n * To show breadcrumbs. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n};\n\nexport default withTitle(Taxonomy, t(\"neetoMolecules.taxonomy.browserTitle\"));\n"],"names":["LABEL_REJECT_CHARS_REGEX","VALIDATION_SCHEMA","yup","object","shape","singularLabel","string","trim","required","t","pluralLabel","update","_ref","keyName","payload","axios","patch","concat","BASE_API_V1_URL","bulkDestroy","data","taxonomiesApi","useUpdateTaxonomy","options","useMutation","useBulkDestroyTaxonomies","formatLabel","label","capitalize","formatDataForTable","taxonomies","toPairs","map","_ref2","_slicedToArray","labels","getColumnData","handleEdit","setCurrentKeys","setIsResetModalOpen","title","dataIndex","key","width","render","_","values","menuItems","onClick","React","createElement","className","Typography","style","MoreDropdown","dropdownProps","strategy","dropdownButtonProps","getFilteredTaxonomies","matchString","filteredArray","filter","_ref3","_ref4","value","defaultLabel","valuesToSearch","_toConsumableArray","Object","some","str","toLowerCase","includes","fromPairs","EditPane","initialValues","isOpen","onClose","_useTranslation","useTranslation","initialFocusRef","useRef","_useUpdateTaxonomy","updateTaxonomy","mutate","handleSubmit","setSubmitting","taxonomy","onSuccess","window","location","reload","onError","error","Toastr","onSettled","Pane","Header","weight","entity","toLocaleLowerCase","Form","formikProps","validationSchema","onSubmit","Body","Input","name","ref","rejectCharsRegex","Footer","ActionBlock","cancelButtonProps","disabled","LeftActionBlock","selectedCount","totalCount","selectedRowIds","Menu","Dropdown","MenuItem","Fragment","component","Trans","i18nKey","count","components","span","buttonStyle","Button","Taxonomy","breadcrumbs","_useState","useState","_useState2","isResetModalOpen","_useState3","_useState4","isEditTaxonomyPaneOpen","setIsEditTaxonomyPaneOpen","_useState5","_useState6","setInitialValues","_useState7","_useState8","setSelectedRowIds","_useState9","_useState10","searchString","setSearchString","_useState11","_useState12","currentKeys","_useState13","_useState14","isMobileScreen","setIsMobileScreen","isLargerScreen","innerWidth","_useBulkDestroyTaxono","bulkDestroyTaxonomies","hostTaxonomyKeys","keys","globalProps","hostTaxonomies","pick","_useState15","_useState16","filteredTaxonomies","setFilteredTaxonomies","handleRowSelect","ids","handleDelete","keyNames","handleSearch","event","target","newTaxonomies","useEffect","handleResize","addEventListener","removeEventListener","Container","size","searchProps","onChange","placeholder","SubHeader","leftActionBlock","length","entries","isNotEmpty","TableWrapper","Table","fixedHeight","rowSelection","allowRowClick","rowData","rowKey","prop","scroll","x","selectedRowKeys","tableLayout","columnData","onRowSelect","Alert","submitButtonLabel","message","what","NoData","withTitle"],"mappings":"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"}
1
+ {"version":3,"file":"Taxonomy.js","sources":["../src/components/Taxonomy/constants.js","../src/components/Taxonomy/api.js","../src/components/Taxonomy/useTaxonomyApi.js","../src/components/Taxonomy/utils.jsx","../src/components/Taxonomy/EditPane.jsx","../src/components/Taxonomy/LeftActionBlock.jsx","../src/components/Taxonomy/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const LABEL_REJECT_CHARS_REGEX = /[^a-zA-Z\\d\\s_-]+/;\n\nexport const VALIDATION_SCHEMA = yup.object().shape({\n singularLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.singularLabelRequired\")\n ),\n pluralLabel: yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.taxonomy.editPane.validations.pluralLabelRequired\")\n ),\n});\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst update = ({ keyName, payload }) =>\n axios.patch(`${BASE_API_V1_URL}/taxonomies/${keyName}`, payload);\n\nconst bulkDestroy = payload =>\n axios.delete(`${BASE_API_V1_URL}/taxonomies/bulk_destroy`, {\n data: payload,\n });\n\nconst taxonomiesApi = { update, bulkDestroy };\n\nexport default taxonomiesApi;\n","import { useMutation } from \"react-query\";\n\nimport taxonomiesApi from \"./api\";\n\nconst useUpdateTaxonomy = options => useMutation(taxonomiesApi.update, options);\n\nconst useBulkDestroyTaxonomies = options =>\n useMutation(taxonomiesApi.bulkDestroy, options);\n\nexport { useUpdateTaxonomy, useBulkDestroyTaxonomies };\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { capitalize } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { fromPairs, toPairs } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nexport const formatLabel = label => capitalize(label.trim());\n\nexport const formatDataForTable = taxonomies =>\n toPairs(taxonomies).map(([keyName, labels]) => ({\n keyName,\n singularLabel: labels[\"singular\"],\n pluralLabel: labels[\"plural\"],\n }));\n\nexport const getColumnData = (\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n) => [\n {\n title: t(\"neetoMolecules.taxonomy.defaultLabel\"),\n dataIndex: \"default\",\n key: \"defaultLabel\",\n width: 400,\n render: (_, values) => {\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"neetoMolecules.common.actions.edit\"),\n onClick: () => handleEdit(values),\n },\n {\n key: \"reset\",\n label: t(\"neetoMolecules.common.actions.resetToDefaults\"),\n onClick: () => {\n setCurrentKeys([values.keyName]);\n setIsResetModalOpen(true);\n },\n },\n ];\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography style=\"body2\">\n {t(`taxonomyDefaultLabels.${values.keyName}.singular`)}\n </Typography>\n <MoreDropdown\n dropdownProps={{ strategy: \"fixed\" }}\n dropdownButtonProps={{\n \"data-testid\": `nui-dropdown-icon-${values.keyName}`,\n }}\n {...{ menuItems }}\n />\n </div>\n );\n },\n },\n {\n title: t(\"neetoMolecules.taxonomy.singularLabel\"),\n dataIndex: \"singularLabel\",\n key: \"singularLabel\",\n width: 300,\n },\n {\n title: t(\"neetoMolecules.taxonomy.pluralLabel\"),\n dataIndex: \"pluralLabel\",\n key: \"pluralLabel\",\n width: 300,\n },\n];\n\nexport const getFilteredTaxonomies = (matchString, taxonomies) => {\n const filteredArray = toPairs(taxonomies).filter(([key, value]) => {\n const defaultLabel = t(`taxonomyDefaultLabels.${key}.singular`);\n const valuesToSearch = [defaultLabel, ...Object.values(value)];\n\n return valuesToSearch.some(str =>\n str.toLowerCase().includes(matchString.toLowerCase())\n );\n });\n\n return fromPairs(filteredArray);\n};\n","import React, { useRef } from \"react\";\n\nimport { Pane, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { LABEL_REJECT_CHARS_REGEX, VALIDATION_SCHEMA } from \"./constants\";\nimport { useUpdateTaxonomy } from \"./useTaxonomyApi\";\nimport { formatLabel } from \"./utils\";\n\nconst EditPane = ({ initialValues, isOpen, onClose }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef(null);\n\n const { mutate: updateTaxonomy } = useUpdateTaxonomy();\n\n const handleSubmit = (values, { setSubmitting }) => {\n const { keyName, singularLabel, pluralLabel } = values;\n\n const payload = {\n taxonomy: {\n keyName,\n singularLabel: formatLabel(singularLabel),\n pluralLabel: formatLabel(pluralLabel),\n },\n };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n onSettled: () => setSubmitting(false),\n };\n\n updateTaxonomy({ keyName, payload }, options);\n };\n\n return (\n <Pane\n {...{ initialFocusRef, isOpen, onClose }}\n data-testid=\"taxonomy-edit-pane\"\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.taxonomy.editPane.title\", {\n entity: t(\n `taxonomyDefaultLabels.${initialValues.keyName}.singular`\n ).toLocaleLowerCase(),\n })}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues,\n validationSchema: VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-6\">\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-singular-input-field\"\n data-testid=\"taxonomy-singular-input-field\"\n label={t(\"neetoMolecules.taxonomy.singularLabel\")}\n name=\"singularLabel\"\n ref={initialFocusRef}\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n <Input\n required\n className=\"w-full\"\n data-cy=\"taxonomy-plural-input-field\"\n data-testid=\"taxonomy-plural-input-field\"\n label={t(\"neetoMolecules.taxonomy.pluralLabel\")}\n name=\"pluralLabel\"\n rejectCharsRegex={LABEL_REJECT_CHARS_REGEX}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose, disabled: false }}\n className=\"flex items-center space-x-2\"\n />\n </Pane.Footer>\n </Form>\n </Pane>\n );\n};\n\nexport default EditPane;\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { Dropdown, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LeftActionBlock = ({\n selectedCount,\n totalCount,\n setIsResetModalOpen,\n setCurrentKeys,\n selectedRowIds,\n}) => {\n const { Menu, MenuItem } = Dropdown;\n\n return (\n !!totalCount && (\n <>\n {selectedCount > 0 ? (\n <>\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.actionBlock.selectedTaxonomy\"\n values={{ count: selectedCount, totalCount }}\n components={{\n span: <span className=\"neeto-ui-text-gray-600\" />,\n }}\n />\n </Typography>\n <Dropdown\n buttonStyle=\"secondary\"\n label={t(\"neetoMolecules.taxonomy.actionBlock.takeAction\")}\n >\n <Menu>\n <MenuItem.Button\n style=\"secondary\"\n onClick={() => {\n setCurrentKeys(selectedRowIds);\n setIsResetModalOpen(true);\n }}\n >\n {t(\"neetoMolecules.common.actions.resetToDefaults\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n </>\n ) : (\n <Typography\n className=\"mr-4 font-semibold\"\n component=\"h4\"\n data-cy=\"item-count\"\n >\n {t(\"neetoMolecules.taxonomy.actionBlock.taxonomyWithCount\", {\n count: totalCount,\n })}\n </Typography>\n )}\n </>\n )\n );\n};\n\nexport default LeftActionBlock;\n","import React, { useState, useEffect } from \"react\";\n\nimport { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { taxonomies, globalProps } from \"neetocommons/initializers\";\nimport withTitle from \"neetocommons/react-utils/withTitle\";\nimport { Alert, NoData, Table, Toastr } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop, pick, keys } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport SubHeader from \"components/SubHeader\";\nimport TableWrapper from \"components/TableWrapper\";\n\nimport EditPane from \"./EditPane\";\nimport LeftActionBlock from \"./LeftActionBlock\";\nimport { useBulkDestroyTaxonomies } from \"./useTaxonomyApi\";\nimport {\n formatDataForTable,\n getColumnData,\n getFilteredTaxonomies,\n} from \"./utils\";\n\nconst Taxonomy = ({ breadcrumbs }) => {\n const [isResetModalOpen, setIsResetModalOpen] = useState(false);\n const [isEditTaxonomyPaneOpen, setIsEditTaxonomyPaneOpen] = useState(false);\n const [initialValues, setInitialValues] = useState({});\n const [selectedRowIds, setSelectedRowIds] = useState([]);\n const [searchString, setSearchString] = useState(\"\");\n const [currentKeys, setCurrentKeys] = useState([]);\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const { mutate: bulkDestroyTaxonomies } = useBulkDestroyTaxonomies();\n\n const hostTaxonomyKeys = keys(globalProps.taxonomies);\n const hostTaxonomies = pick(hostTaxonomyKeys, taxonomies);\n\n const [filteredTaxonomies, setFilteredTaxonomies] = useState(hostTaxonomies);\n\n const handleRowSelect = ids => setSelectedRowIds(ids);\n\n const handleDelete = () => {\n const payload = { keyNames: currentKeys };\n\n const options = {\n onSuccess: () => window.location.reload(),\n onError: error => Toastr.error(error),\n };\n\n bulkDestroyTaxonomies(payload, options);\n };\n\n const handleEdit = values => {\n setInitialValues(values);\n setIsEditTaxonomyPaneOpen(true);\n };\n\n const handleSearch = event => {\n setSearchString(event.target.value);\n const newTaxonomies = getFilteredTaxonomies(\n event.target.value,\n hostTaxonomies\n );\n setFilteredTaxonomies(newTaxonomies);\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs }}\n size={isMobileScreen ? \"small\" : \"large\"}\n title={t(\"neetoMolecules.taxonomy.title\")}\n searchProps={{\n onChange: handleSearch,\n value: searchString,\n placeholder: t(\"neetoMolecules.taxonomy.searchTaxonomy\"),\n }}\n />\n <SubHeader\n leftActionBlock={\n <LeftActionBlock\n {...{ selectedRowIds, setCurrentKeys, setIsResetModalOpen }}\n selectedCount={selectedRowIds.length}\n totalCount={Object.entries(filteredTaxonomies).length}\n />\n }\n />\n {isNotEmpty(filteredTaxonomies) ? (\n <TableWrapper>\n <Table\n fixedHeight\n rowSelection\n allowRowClick={false}\n rowData={formatDataForTable(filteredTaxonomies)}\n rowKey={prop(\"keyName\")}\n scroll={{ x: 0 }}\n selectedRowKeys={selectedRowIds}\n tableLayout=\"fixed\"\n columnData={getColumnData(\n handleEdit,\n setCurrentKeys,\n setIsResetModalOpen\n )}\n onRowSelect={handleRowSelect}\n />\n <EditPane\n {...{ initialValues }}\n isOpen={isEditTaxonomyPaneOpen}\n onClose={() => setIsEditTaxonomyPaneOpen(false)}\n />\n <Alert\n isOpen={isResetModalOpen}\n submitButtonLabel={t(\"neetoMolecules.common.actions.proceed\")}\n title={t(\"neetoMolecules.taxonomy.resetAlert.title\")}\n message={\n <Trans\n i18nKey=\"neetoMolecules.taxonomy.resetAlert.message\"\n values={{\n count: currentKeys.length,\n what: t(`taxonomyDefaultLabels.${currentKeys[0]}.singular`),\n }}\n />\n }\n onClose={() => setIsResetModalOpen(false)}\n onSubmit={handleDelete}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(\"neetoMolecules.taxonomy.noData\")} />\n </div>\n )}\n </Container>\n );\n};\n\nTaxonomy.propTypes = {\n /**\n * To show breadcrumbs. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n};\n\nexport default withTitle(Taxonomy, t(\"neetoMolecules.taxonomy.browserTitle\"));\n"],"names":["LABEL_REJECT_CHARS_REGEX","VALIDATION_SCHEMA","yup","object","shape","singularLabel","string","trim","required","t","pluralLabel","update","_ref","keyName","payload","axios","patch","concat","BASE_API_V1_URL","bulkDestroy","data","taxonomiesApi","useUpdateTaxonomy","options","useMutation","useBulkDestroyTaxonomies","formatLabel","label","capitalize","formatDataForTable","taxonomies","toPairs","map","_ref2","_slicedToArray","labels","getColumnData","handleEdit","setCurrentKeys","setIsResetModalOpen","title","dataIndex","key","width","render","_","values","menuItems","onClick","React","createElement","className","Typography","style","MoreDropdown","dropdownProps","strategy","dropdownButtonProps","getFilteredTaxonomies","matchString","filteredArray","filter","_ref3","_ref4","value","defaultLabel","valuesToSearch","_toConsumableArray","Object","some","str","toLowerCase","includes","fromPairs","EditPane","initialValues","isOpen","onClose","_useTranslation","useTranslation","initialFocusRef","useRef","_useUpdateTaxonomy","updateTaxonomy","mutate","handleSubmit","setSubmitting","taxonomy","onSuccess","window","location","reload","onError","error","Toastr","onSettled","Pane","Header","weight","entity","toLocaleLowerCase","Form","formikProps","validationSchema","onSubmit","Body","Input","name","ref","rejectCharsRegex","Footer","ActionBlock","cancelButtonProps","disabled","LeftActionBlock","selectedCount","totalCount","selectedRowIds","Menu","Dropdown","MenuItem","Fragment","component","Trans","i18nKey","count","components","span","buttonStyle","Button","Taxonomy","breadcrumbs","_useState","useState","_useState2","isResetModalOpen","_useState3","_useState4","isEditTaxonomyPaneOpen","setIsEditTaxonomyPaneOpen","_useState5","_useState6","setInitialValues","_useState7","_useState8","setSelectedRowIds","_useState9","_useState10","searchString","setSearchString","_useState11","_useState12","currentKeys","_useState13","_useState14","isMobileScreen","setIsMobileScreen","isLargerScreen","innerWidth","_useBulkDestroyTaxono","bulkDestroyTaxonomies","hostTaxonomyKeys","keys","globalProps","hostTaxonomies","pick","_useState15","_useState16","filteredTaxonomies","setFilteredTaxonomies","handleRowSelect","ids","handleDelete","keyNames","handleSearch","event","target","newTaxonomies","useEffect","handleResize","addEventListener","removeEventListener","Container","size","searchProps","onChange","placeholder","SubHeader","leftActionBlock","length","entries","isNotEmpty","TableWrapper","Table","fixedHeight","rowSelection","allowRowClick","rowData","rowKey","prop","scroll","x","selectedRowKeys","tableLayout","columnData","onRowSelect","Alert","submitButtonLabel","message","what","NoData","withTitle"],"mappings":"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"}