@bigbinary/neeto-pdf-frontend 1.0.1

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 (82) hide show
  1. package/README.md +413 -0
  2. package/app/javascript/src/translations/ar.json +5 -0
  3. package/app/javascript/src/translations/bg.json +5 -0
  4. package/app/javascript/src/translations/ca.json +5 -0
  5. package/app/javascript/src/translations/cs.json +5 -0
  6. package/app/javascript/src/translations/da.json +5 -0
  7. package/app/javascript/src/translations/de.json +5 -0
  8. package/app/javascript/src/translations/en.json +109 -0
  9. package/app/javascript/src/translations/es-MX.json +5 -0
  10. package/app/javascript/src/translations/es.json +5 -0
  11. package/app/javascript/src/translations/et.json +5 -0
  12. package/app/javascript/src/translations/fi.json +5 -0
  13. package/app/javascript/src/translations/fil.json +5 -0
  14. package/app/javascript/src/translations/fr.json +5 -0
  15. package/app/javascript/src/translations/he.json +5 -0
  16. package/app/javascript/src/translations/hi.json +5 -0
  17. package/app/javascript/src/translations/hr.json +5 -0
  18. package/app/javascript/src/translations/hu.json +5 -0
  19. package/app/javascript/src/translations/id.json +5 -0
  20. package/app/javascript/src/translations/index.js +3 -0
  21. package/app/javascript/src/translations/it.json +5 -0
  22. package/app/javascript/src/translations/ja.json +5 -0
  23. package/app/javascript/src/translations/ko.json +5 -0
  24. package/app/javascript/src/translations/nl.json +5 -0
  25. package/app/javascript/src/translations/pl.json +5 -0
  26. package/app/javascript/src/translations/pt-BR.json +5 -0
  27. package/app/javascript/src/translations/pt.json +5 -0
  28. package/app/javascript/src/translations/ro.json +5 -0
  29. package/app/javascript/src/translations/ru.json +5 -0
  30. package/app/javascript/src/translations/sk.json +5 -0
  31. package/app/javascript/src/translations/sl.json +5 -0
  32. package/app/javascript/src/translations/sv.json +5 -0
  33. package/app/javascript/src/translations/th.json +5 -0
  34. package/app/javascript/src/translations/tr.json +5 -0
  35. package/app/javascript/src/translations/uk.json +5 -0
  36. package/app/javascript/src/translations/vi.json +5 -0
  37. package/app/javascript/src/translations/zh-CN.json +5 -0
  38. package/app/javascript/src/translations/zh-TW.json +5 -0
  39. package/dist/.ready +1 -0
  40. package/dist/AttachmentCard-75GY2Thb.js +64 -0
  41. package/dist/AttachmentCard-75GY2Thb.js.map +1 -0
  42. package/dist/AttachmentCard-D_Gp0f5r.js +67 -0
  43. package/dist/AttachmentCard-D_Gp0f5r.js.map +1 -0
  44. package/dist/FilenameUtilities-Cw9Tvd6k.js +329 -0
  45. package/dist/FilenameUtilities-Cw9Tvd6k.js.map +1 -0
  46. package/dist/FilenameUtilities-De2k_NXh.js +318 -0
  47. package/dist/FilenameUtilities-De2k_NXh.js.map +1 -0
  48. package/dist/IconBlock-BTPLDDiO.js +15 -0
  49. package/dist/IconBlock-BTPLDDiO.js.map +1 -0
  50. package/dist/IconBlock-hZ_gOnb1.js +17 -0
  51. package/dist/IconBlock-hZ_gOnb1.js.map +1 -0
  52. package/dist/PdfAttachmentSelector.js +94 -0
  53. package/dist/PdfAttachmentSelector.js.map +1 -0
  54. package/dist/PdfAttachmentsPreview.js +43 -0
  55. package/dist/PdfAttachmentsPreview.js.map +1 -0
  56. package/dist/PdfDocumentsPage.js +555 -0
  57. package/dist/PdfDocumentsPage.js.map +1 -0
  58. package/dist/PdfEditorPage.js +2051 -0
  59. package/dist/PdfEditorPage.js.map +1 -0
  60. package/dist/cjs/PdfAttachmentSelector.js +96 -0
  61. package/dist/cjs/PdfAttachmentSelector.js.map +1 -0
  62. package/dist/cjs/PdfAttachmentsPreview.js +45 -0
  63. package/dist/cjs/PdfAttachmentsPreview.js.map +1 -0
  64. package/dist/cjs/PdfDocumentsPage.js +557 -0
  65. package/dist/cjs/PdfDocumentsPage.js.map +1 -0
  66. package/dist/cjs/PdfEditorPage.js +2072 -0
  67. package/dist/cjs/PdfEditorPage.js.map +1 -0
  68. package/dist/cjs/index.js +75 -0
  69. package/dist/cjs/index.js.map +1 -0
  70. package/dist/constants-CTDOz942.js +5 -0
  71. package/dist/constants-CTDOz942.js.map +1 -0
  72. package/dist/constants-DvvJYjxW.js +8 -0
  73. package/dist/constants-DvvJYjxW.js.map +1 -0
  74. package/dist/index.js +66 -0
  75. package/dist/index.js.map +1 -0
  76. package/package.json +240 -0
  77. package/types/PdfAttachmentSelector.d.ts +2 -0
  78. package/types/PdfAttachmentsPreview.d.ts +2 -0
  79. package/types/PdfDocumentsPage.d.ts +6 -0
  80. package/types/PdfEditorPage.d.ts +7 -0
  81. package/types/index.d.ts +88 -0
  82. package/types.d.ts +1 -0
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Bem-vindo ao neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Bine ai venit la neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Добро пожаловать в neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Vitajte na neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Dobrodošli v neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Välkommen till neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "ยินดีต้อนรับสู่ neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Neeto Wheel Nano'ya Hoş Geldiniz"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Ласкаво просимо до neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "Chào mừng bạn đến với neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "欢迎使用 neeto wheel nano"
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "neetoWheel": {
3
+ "welcomeScreen": "歡迎使用 neeto wheel nano"
4
+ }
5
+ }
package/dist/.ready ADDED
@@ -0,0 +1 @@
1
+ Built at 2026-07-15T06:55:27.881Z
@@ -0,0 +1,64 @@
1
+ import classNames from 'classnames';
2
+ import File from '@bigbinary/neeto-icons/File';
3
+ import Typography from '@bigbinary/neetoui/Typography';
4
+ import { useTranslation } from 'react-i18next';
5
+ import { I as IconBlock } from './IconBlock-BTPLDDiO.js';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var getSelectedPdfDocuments = function getSelectedPdfDocuments() {
9
+ var documents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
10
+ var selectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
11
+ var selectedIdSet = new Set(selectedIds);
12
+ return documents.filter(function (document) {
13
+ return selectedIdSet.has(document.id);
14
+ });
15
+ };
16
+ var formatFileSize = function formatFileSize(byteSize) {
17
+ if (!byteSize) return "";
18
+ if (byteSize < 1024 * 1024) return "".concat(Math.ceil(byteSize / 1024), " KB");
19
+ return "".concat((byteSize / (1024 * 1024)).toFixed(1), " MB");
20
+ };
21
+
22
+ var AttachmentCard = function AttachmentCard(_ref) {
23
+ var _document$templateFil;
24
+ var document = _ref.document,
25
+ _ref$compact = _ref.compact,
26
+ compact = _ref$compact === void 0 ? false : _ref$compact,
27
+ _ref$variant = _ref.variant,
28
+ variant = _ref$variant === void 0 ? "card" : _ref$variant;
29
+ var _useTranslation = useTranslation(),
30
+ t = _useTranslation.t;
31
+ var fileSize = formatFileSize((_document$templateFil = document.templateFile) === null || _document$templateFil === void 0 ? void 0 : _document$templateFil.byteSize);
32
+ var isCard = variant === "card";
33
+ return /*#__PURE__*/jsxs("div", {
34
+ className: classNames("flex min-w-0 items-start text-left", {
35
+ "neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-rounded-lg neeto-ui-shadow-sm gap-3 border px-4 py-3": isCard,
36
+ "gap-4": !isCard
37
+ }),
38
+ children: [/*#__PURE__*/jsx("div", {
39
+ className: "mt-1 shrink-0",
40
+ children: /*#__PURE__*/jsx(IconBlock, {
41
+ icon: File
42
+ })
43
+ }), /*#__PURE__*/jsxs("div", {
44
+ className: "min-w-0 flex-1",
45
+ children: [/*#__PURE__*/jsx(Typography, {
46
+ className: "truncate",
47
+ style: compact ? "body2" : "h4",
48
+ weight: "semibold",
49
+ children: document.name
50
+ }), /*#__PURE__*/jsx(Typography, {
51
+ className: "neeto-ui-text-gray-500 truncate font-mono",
52
+ style: "body2",
53
+ children: document.outputFilename
54
+ }), fileSize && /*#__PURE__*/jsxs(Typography, {
55
+ className: "neeto-ui-text-gray-500",
56
+ style: "body3",
57
+ children: [t("neetoPdf.pdfDocuments.attachments.fileType"), " - ", fileSize]
58
+ })]
59
+ })]
60
+ });
61
+ };
62
+
63
+ export { AttachmentCard as A, getSelectedPdfDocuments as g };
64
+ //# sourceMappingURL=AttachmentCard-75GY2Thb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentCard-75GY2Thb.js","sources":["../app/javascript/src/components/PdfDocuments/utils.js","../app/javascript/src/components/PdfDocuments/AttachmentCard.jsx"],"sourcesContent":["export const buildSubmitterEmailNotificationParams = formId => ({\n notificationHolderType: \"Form\",\n notificationHolderId: formId,\n customFields: { notificationType: \"ThankYou\" },\n});\n\nexport const buildReceiverEmailNotificationParams = formId => ({\n notificationHolderType: \"Form\",\n notificationHolderId: formId,\n customFields: { notificationType: \"Push\" },\n});\n\nexport const getSelectedPdfDocumentIds = emailNotification =>\n emailNotification?.customFields?.pdfDocumentIds || [];\n\nexport const getSelectedPdfDocuments = (documents = [], selectedIds = []) => {\n const selectedIdSet = new Set(selectedIds);\n\n return documents.filter(document => selectedIdSet.has(document.id));\n};\n\nexport const formatFileSize = byteSize => {\n if (!byteSize) return \"\";\n\n if (byteSize < 1024 * 1024) return `${Math.ceil(byteSize / 1024)} KB`;\n\n return `${(byteSize / (1024 * 1024)).toFixed(1)} MB`;\n};\n","import classNames from \"classnames\";\nimport { File } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport IconBlock from \"./IconBlock\";\nimport { formatFileSize } from \"./utils\";\n\nconst AttachmentCard = ({ document, compact = false, variant = \"card\" }) => {\n const { t } = useTranslation();\n const fileSize = formatFileSize(document.templateFile?.byteSize);\n const isCard = variant === \"card\";\n\n return (\n <div\n className={classNames(\"flex min-w-0 items-start text-left\", {\n \"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-rounded-lg neeto-ui-shadow-sm gap-3 border px-4 py-3\":\n isCard,\n \"gap-4\": !isCard,\n })}\n >\n <div className=\"mt-1 shrink-0\">\n <IconBlock icon={File} />\n </div>\n <div className=\"min-w-0 flex-1\">\n <Typography\n className=\"truncate\"\n style={compact ? \"body2\" : \"h4\"}\n weight=\"semibold\"\n >\n {document.name}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 truncate font-mono\"\n style=\"body2\"\n >\n {document.outputFilename}\n </Typography>\n {fileSize && (\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.attachments.fileType\")} - {fileSize}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default AttachmentCard;\n"],"names":["getSelectedPdfDocuments","documents","arguments","length","undefined","selectedIds","selectedIdSet","Set","filter","document","has","id","formatFileSize","byteSize","concat","Math","ceil","toFixed","AttachmentCard","_ref","_document$templateFil","_ref$compact","compact","_ref$variant","variant","_useTranslation","useTranslation","t","fileSize","templateFile","isCard","_jsxs","className","classNames","children","_jsx","IconBlock","icon","File","Typography","style","weight","name","outputFilename"],"mappings":";;;;;;;IAeaA,uBAAuB,GAAG,SAA1BA,uBAAuBA,GAAyC;AAAA,EAAA,IAArCC,SAAS,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,IAAEG,WAAW,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACtE,EAAA,IAAMI,aAAa,GAAG,IAAIC,GAAG,CAACF,WAAW,CAAC;AAE1C,EAAA,OAAOJ,SAAS,CAACO,MAAM,CAAC,UAAAC,QAAQ,EAAA;AAAA,IAAA,OAAIH,aAAa,CAACI,GAAG,CAACD,QAAQ,CAACE,EAAE,CAAC;EAAA,CAAA,CAAC;AACrE;AAEO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,QAAQ,EAAI;AACxC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAO,EAAE;AAExB,EAAA,IAAIA,QAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,OAAA,EAAA,CAAAC,MAAA,CAAUC,IAAI,CAACC,IAAI,CAACH,QAAQ,GAAG,IAAI,CAAC,EAAA,KAAA,CAAA;AAEhE,EAAA,OAAA,EAAA,CAAAC,MAAA,CAAU,CAACD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEI,OAAO,CAAC,CAAC,CAAC,EAAA,KAAA,CAAA;AACjD,CAAC;;ACnBD,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAwD;AAAA,EAAA,IAAAC,qBAAA;AAAA,EAAA,IAAlDX,QAAQ,GAAAU,IAAA,CAARV,QAAQ;IAAAY,YAAA,GAAAF,IAAA,CAAEG,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,YAAA;IAAAE,YAAA,GAAAJ,IAAA,CAAEK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,YAAA;AACnE,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AACT,EAAA,IAAMC,QAAQ,GAAGhB,cAAc,CAAA,CAAAQ,qBAAA,GAACX,QAAQ,CAACoB,YAAY,cAAAT,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAA,CAAuBP,QAAQ,CAAC;AAChE,EAAA,IAAMiB,MAAM,GAAGN,OAAO,KAAK,MAAM;AAEjC,EAAA,oBACEO,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,SAAS,EAAEC,UAAU,CAAC,oCAAoC,EAAE;AAC1D,MAAA,0GAA0G,EACxGH,MAAM;AACR,MAAA,OAAO,EAAE,CAACA;AACZ,KAAC,CAAE;AAAAI,IAAAA,QAAA,gBAEHC,GAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,eAAe;MAAAE,QAAA,eAC5BC,GAAA,CAACC,SAAS,EAAA;AAACC,QAAAA,IAAI,EAAEC;OAAO;KACrB,CAAC,eACNP,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,gBAAgB;MAAAE,QAAA,EAAA,cAC7BC,GAAA,CAACI,UAAU,EAAA;AACTP,QAAAA,SAAS,EAAC,UAAU;AACpBQ,QAAAA,KAAK,EAAElB,OAAO,GAAG,OAAO,GAAG,IAAK;AAChCmB,QAAAA,MAAM,EAAC,UAAU;QAAAP,QAAA,EAEhBzB,QAAQ,CAACiC;AAAI,OACJ,CAAC,eACbP,GAAA,CAACI,UAAU,EAAA;AACTP,QAAAA,SAAS,EAAC,2CAA2C;AACrDQ,QAAAA,KAAK,EAAC,OAAO;QAAAN,QAAA,EAEZzB,QAAQ,CAACkC;AAAc,OACd,CAAC,EACZf,QAAQ,iBACPG,IAAA,CAACQ,UAAU,EAAA;AAACP,QAAAA,SAAS,EAAC,wBAAwB;AAACQ,QAAAA,KAAK,EAAC,OAAO;QAAAN,QAAA,EAAA,CACzDP,CAAC,CAAC,4CAA4C,CAAC,EAAC,KAAG,EAACC,QAAQ;AAAA,OACnD,CACb;AAAA,KACE,CAAC;AAAA,GACH,CAAC;AAEV;;;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var classNames = require('classnames');
4
+ var File = require('@bigbinary/neeto-icons/File');
5
+ var Typography = require('@bigbinary/neetoui/Typography');
6
+ var reactI18next = require('react-i18next');
7
+ var IconBlock = require('./IconBlock-hZ_gOnb1.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ var getSelectedPdfDocuments = function getSelectedPdfDocuments() {
11
+ var documents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
12
+ var selectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
13
+ var selectedIdSet = new Set(selectedIds);
14
+ return documents.filter(function (document) {
15
+ return selectedIdSet.has(document.id);
16
+ });
17
+ };
18
+ var formatFileSize = function formatFileSize(byteSize) {
19
+ if (!byteSize) return "";
20
+ if (byteSize < 1024 * 1024) return "".concat(Math.ceil(byteSize / 1024), " KB");
21
+ return "".concat((byteSize / (1024 * 1024)).toFixed(1), " MB");
22
+ };
23
+
24
+ var AttachmentCard = function AttachmentCard(_ref) {
25
+ var _document$templateFil;
26
+ var document = _ref.document,
27
+ _ref$compact = _ref.compact,
28
+ compact = _ref$compact === void 0 ? false : _ref$compact,
29
+ _ref$variant = _ref.variant,
30
+ variant = _ref$variant === void 0 ? "card" : _ref$variant;
31
+ var _useTranslation = reactI18next.useTranslation(),
32
+ t = _useTranslation.t;
33
+ var fileSize = formatFileSize((_document$templateFil = document.templateFile) === null || _document$templateFil === void 0 ? void 0 : _document$templateFil.byteSize);
34
+ var isCard = variant === "card";
35
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
36
+ className: classNames("flex min-w-0 items-start text-left", {
37
+ "neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-rounded-lg neeto-ui-shadow-sm gap-3 border px-4 py-3": isCard,
38
+ "gap-4": !isCard
39
+ }),
40
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
41
+ className: "mt-1 shrink-0",
42
+ children: /*#__PURE__*/jsxRuntime.jsx(IconBlock.IconBlock, {
43
+ icon: File
44
+ })
45
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
46
+ className: "min-w-0 flex-1",
47
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
48
+ className: "truncate",
49
+ style: compact ? "body2" : "h4",
50
+ weight: "semibold",
51
+ children: document.name
52
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
53
+ className: "neeto-ui-text-gray-500 truncate font-mono",
54
+ style: "body2",
55
+ children: document.outputFilename
56
+ }), fileSize && /*#__PURE__*/jsxRuntime.jsxs(Typography, {
57
+ className: "neeto-ui-text-gray-500",
58
+ style: "body3",
59
+ children: [t("neetoPdf.pdfDocuments.attachments.fileType"), " - ", fileSize]
60
+ })]
61
+ })]
62
+ });
63
+ };
64
+
65
+ exports.AttachmentCard = AttachmentCard;
66
+ exports.getSelectedPdfDocuments = getSelectedPdfDocuments;
67
+ //# sourceMappingURL=AttachmentCard-D_Gp0f5r.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentCard-D_Gp0f5r.js","sources":["../app/javascript/src/components/PdfDocuments/utils.js","../app/javascript/src/components/PdfDocuments/AttachmentCard.jsx"],"sourcesContent":["export const buildSubmitterEmailNotificationParams = formId => ({\n notificationHolderType: \"Form\",\n notificationHolderId: formId,\n customFields: { notificationType: \"ThankYou\" },\n});\n\nexport const buildReceiverEmailNotificationParams = formId => ({\n notificationHolderType: \"Form\",\n notificationHolderId: formId,\n customFields: { notificationType: \"Push\" },\n});\n\nexport const getSelectedPdfDocumentIds = emailNotification =>\n emailNotification?.customFields?.pdfDocumentIds || [];\n\nexport const getSelectedPdfDocuments = (documents = [], selectedIds = []) => {\n const selectedIdSet = new Set(selectedIds);\n\n return documents.filter(document => selectedIdSet.has(document.id));\n};\n\nexport const formatFileSize = byteSize => {\n if (!byteSize) return \"\";\n\n if (byteSize < 1024 * 1024) return `${Math.ceil(byteSize / 1024)} KB`;\n\n return `${(byteSize / (1024 * 1024)).toFixed(1)} MB`;\n};\n","import classNames from \"classnames\";\nimport { File } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport IconBlock from \"./IconBlock\";\nimport { formatFileSize } from \"./utils\";\n\nconst AttachmentCard = ({ document, compact = false, variant = \"card\" }) => {\n const { t } = useTranslation();\n const fileSize = formatFileSize(document.templateFile?.byteSize);\n const isCard = variant === \"card\";\n\n return (\n <div\n className={classNames(\"flex min-w-0 items-start text-left\", {\n \"neeto-ui-border-gray-200 neeto-ui-bg-white neeto-ui-rounded-lg neeto-ui-shadow-sm gap-3 border px-4 py-3\":\n isCard,\n \"gap-4\": !isCard,\n })}\n >\n <div className=\"mt-1 shrink-0\">\n <IconBlock icon={File} />\n </div>\n <div className=\"min-w-0 flex-1\">\n <Typography\n className=\"truncate\"\n style={compact ? \"body2\" : \"h4\"}\n weight=\"semibold\"\n >\n {document.name}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 truncate font-mono\"\n style=\"body2\"\n >\n {document.outputFilename}\n </Typography>\n {fileSize && (\n <Typography className=\"neeto-ui-text-gray-500\" style=\"body3\">\n {t(\"neetoPdf.pdfDocuments.attachments.fileType\")} - {fileSize}\n </Typography>\n )}\n </div>\n </div>\n );\n};\n\nexport default AttachmentCard;\n"],"names":["getSelectedPdfDocuments","documents","arguments","length","undefined","selectedIds","selectedIdSet","Set","filter","document","has","id","formatFileSize","byteSize","concat","Math","ceil","toFixed","AttachmentCard","_ref","_document$templateFil","_ref$compact","compact","_ref$variant","variant","_useTranslation","useTranslation","t","fileSize","templateFile","isCard","_jsxs","className","classNames","children","_jsx","IconBlock","icon","File","Typography","style","weight","name","outputFilename"],"mappings":"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"}
@@ -0,0 +1,329 @@
1
+ 'use strict';
2
+
3
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var reactQuery = require('@tanstack/react-query');
6
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
7
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
8
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
+ var axios = require('axios');
10
+
11
+ var trimTrailingSlash = function trimTrailingSlash(value) {
12
+ return (value === null || value === void 0 ? void 0 : value.replace(/\/+$/, "")) || "";
13
+ };
14
+ var documentsUrl = function documentsUrl(apiBaseUrl) {
15
+ return "".concat(trimTrailingSlash(apiBaseUrl), "/documents");
16
+ };
17
+ var documentUrl = function documentUrl(_ref) {
18
+ var apiBaseUrl = _ref.apiBaseUrl,
19
+ documentId = _ref.documentId;
20
+ return "".concat(documentsUrl(apiBaseUrl), "/").concat(documentId);
21
+ };
22
+ var documentActionUrl = function documentActionUrl(_ref2) {
23
+ var apiBaseUrl = _ref2.apiBaseUrl,
24
+ documentId = _ref2.documentId,
25
+ _ref2$suffix = _ref2.suffix,
26
+ suffix = _ref2$suffix === void 0 ? "" : _ref2$suffix;
27
+ return "".concat(documentUrl({
28
+ apiBaseUrl: apiBaseUrl,
29
+ documentId: documentId
30
+ })).concat(suffix);
31
+ };
32
+ var normalizeResponse = /*#__PURE__*/function () {
33
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(request) {
34
+ var _response$data;
35
+ var response;
36
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
37
+ while (1) switch (_context.prev = _context.next) {
38
+ case 0:
39
+ _context.next = 2;
40
+ return request;
41
+ case 2:
42
+ response = _context.sent;
43
+ return _context.abrupt("return", (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response);
44
+ case 4:
45
+ case "end":
46
+ return _context.stop();
47
+ }
48
+ }, _callee);
49
+ }));
50
+ return function normalizeResponse(_x) {
51
+ return _ref3.apply(this, arguments);
52
+ };
53
+ }();
54
+ var list = function list(_ref4) {
55
+ var apiBaseUrl = _ref4.apiBaseUrl,
56
+ ownerId = _ref4.ownerId;
57
+ return normalizeResponse(axios.get(documentsUrl(apiBaseUrl), {
58
+ params: {
59
+ ownerId: ownerId
60
+ }
61
+ }));
62
+ };
63
+ var show = function show(_ref5) {
64
+ var apiBaseUrl = _ref5.apiBaseUrl,
65
+ ownerId = _ref5.ownerId,
66
+ documentId = _ref5.documentId;
67
+ return normalizeResponse(axios.get(documentUrl({
68
+ apiBaseUrl: apiBaseUrl,
69
+ documentId: documentId
70
+ }), {
71
+ params: {
72
+ ownerId: ownerId
73
+ }
74
+ }));
75
+ };
76
+ var create = function create(_ref6) {
77
+ var _file$name2, _file$name2$trim;
78
+ var apiBaseUrl = _ref6.apiBaseUrl,
79
+ ownerId = _ref6.ownerId,
80
+ file = _ref6.file;
81
+ if (file !== null && file !== void 0 && file.signedId) {
82
+ var _file$name;
83
+ return normalizeResponse(axios.post(documentsUrl(apiBaseUrl), {
84
+ template_file: file.signedId,
85
+ name: (_file$name = file.name) === null || _file$name === void 0 ? void 0 : _file$name.replace(/\.[^/.]+$/, "")
86
+ }, {
87
+ params: {
88
+ ownerId: ownerId
89
+ },
90
+ transformRequestCase: false
91
+ }));
92
+ }
93
+ var formData = new FormData();
94
+ var sanitizedName = file === null || file === void 0 || (_file$name2 = file.name) === null || _file$name2 === void 0 || (_file$name2$trim = _file$name2.trim) === null || _file$name2$trim === void 0 ? void 0 : _file$name2$trim.call(_file$name2).replace(/\.[^/.]+$/, "");
95
+ var baseName = sanitizedName || "";
96
+ formData.append("template_file", file);
97
+ formData.append("name", baseName);
98
+ return normalizeResponse(axios.post(documentsUrl(apiBaseUrl), formData, {
99
+ params: {
100
+ ownerId: ownerId
101
+ },
102
+ transformRequestCase: false
103
+ }));
104
+ };
105
+ var update = function update(_ref7) {
106
+ var apiBaseUrl = _ref7.apiBaseUrl,
107
+ ownerId = _ref7.ownerId,
108
+ documentId = _ref7.documentId,
109
+ payload = _ref7.payload;
110
+ return normalizeResponse(axios.put(documentUrl({
111
+ apiBaseUrl: apiBaseUrl,
112
+ documentId: documentId
113
+ }), payload, {
114
+ params: {
115
+ ownerId: ownerId
116
+ }
117
+ }));
118
+ };
119
+ var updateTemplateFile = function updateTemplateFile(_ref8) {
120
+ var apiBaseUrl = _ref8.apiBaseUrl,
121
+ ownerId = _ref8.ownerId,
122
+ documentId = _ref8.documentId,
123
+ file = _ref8.file;
124
+ if (file !== null && file !== void 0 && file.signedId) {
125
+ return normalizeResponse(axios.patch(documentActionUrl({
126
+ apiBaseUrl: apiBaseUrl,
127
+ documentId: documentId,
128
+ suffix: "/template_file"
129
+ }), {
130
+ template_file: file.signedId
131
+ }, {
132
+ params: {
133
+ ownerId: ownerId
134
+ },
135
+ transformRequestCase: false
136
+ }));
137
+ }
138
+ var formData = new FormData();
139
+ formData.append("template_file", file);
140
+ return normalizeResponse(axios.patch(documentActionUrl({
141
+ apiBaseUrl: apiBaseUrl,
142
+ documentId: documentId,
143
+ suffix: "/template_file"
144
+ }), formData, {
145
+ params: {
146
+ ownerId: ownerId
147
+ },
148
+ transformRequestCase: false
149
+ }));
150
+ };
151
+ var clone = function clone(_ref9) {
152
+ var apiBaseUrl = _ref9.apiBaseUrl,
153
+ ownerId = _ref9.ownerId,
154
+ documentId = _ref9.documentId;
155
+ return normalizeResponse(axios.post(documentActionUrl({
156
+ apiBaseUrl: apiBaseUrl,
157
+ documentId: documentId,
158
+ suffix: "/clone"
159
+ }), null, {
160
+ params: {
161
+ ownerId: ownerId
162
+ }
163
+ }));
164
+ };
165
+ var destroy = function destroy(_ref0) {
166
+ var apiBaseUrl = _ref0.apiBaseUrl,
167
+ ownerId = _ref0.ownerId,
168
+ documentId = _ref0.documentId;
169
+ return normalizeResponse(axios["delete"](documentUrl({
170
+ apiBaseUrl: apiBaseUrl,
171
+ documentId: documentId
172
+ }), {
173
+ params: {
174
+ ownerId: ownerId
175
+ }
176
+ }));
177
+ };
178
+ var pdfDocumentsApi = {
179
+ clone: clone,
180
+ create: create,
181
+ update: update,
182
+ updateTemplateFile: updateTemplateFile,
183
+ destroy: destroy,
184
+ list: list,
185
+ show: show
186
+ };
187
+
188
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
189
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
190
+ var documentKeys = function documentKeys(ownerId, apiBaseUrl) {
191
+ return ["neeto-pdf-documents", apiBaseUrl, ownerId];
192
+ };
193
+ var useInvalidatingMutation = function useInvalidatingMutation(mutationFn, ownerId, apiBaseUrl) {
194
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
195
+ return reactUtils.useMutationWithInvalidation(mutationFn, _objectSpread({
196
+ keysToInvalidate: [documentKeys(ownerId, apiBaseUrl)]
197
+ }, options));
198
+ };
199
+ var getPdfDocumentApiErrorMessage = function getPdfDocumentApiErrorMessage(error, fallback) {
200
+ var _error$response;
201
+ return (error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 ? void 0 : _error$response.error) || fallback;
202
+ };
203
+ var useFetchPdfDocuments = function useFetchPdfDocuments(_ref) {
204
+ var apiBaseUrl = _ref.apiBaseUrl,
205
+ ownerId = _ref.ownerId,
206
+ _ref$options = _ref.options,
207
+ options = _ref$options === void 0 ? {} : _ref$options;
208
+ return reactQuery.useQuery(_objectSpread({
209
+ queryKey: documentKeys(ownerId, apiBaseUrl),
210
+ queryFn: function queryFn() {
211
+ return pdfDocumentsApi.list({
212
+ apiBaseUrl: apiBaseUrl,
213
+ ownerId: ownerId
214
+ });
215
+ },
216
+ enabled: Boolean(apiBaseUrl && ownerId)
217
+ }, options));
218
+ };
219
+ var useFetchPdfDocument = function useFetchPdfDocument(_ref2) {
220
+ var apiBaseUrl = _ref2.apiBaseUrl,
221
+ ownerId = _ref2.ownerId,
222
+ documentId = _ref2.documentId,
223
+ _ref2$options = _ref2.options,
224
+ options = _ref2$options === void 0 ? {} : _ref2$options;
225
+ return reactQuery.useQuery(_objectSpread({
226
+ queryKey: [].concat(_toConsumableArray(documentKeys(ownerId, apiBaseUrl)), [documentId]),
227
+ queryFn: function queryFn() {
228
+ return pdfDocumentsApi.show({
229
+ apiBaseUrl: apiBaseUrl,
230
+ ownerId: ownerId,
231
+ documentId: documentId
232
+ });
233
+ },
234
+ enabled: Boolean(apiBaseUrl && ownerId && documentId)
235
+ }, options));
236
+ };
237
+ var useCreatePdfDocument = function useCreatePdfDocument(_ref3) {
238
+ var apiBaseUrl = _ref3.apiBaseUrl,
239
+ ownerId = _ref3.ownerId,
240
+ _ref3$options = _ref3.options,
241
+ options = _ref3$options === void 0 ? {} : _ref3$options;
242
+ return useInvalidatingMutation(function (file) {
243
+ return pdfDocumentsApi.create({
244
+ apiBaseUrl: apiBaseUrl,
245
+ ownerId: ownerId,
246
+ file: file
247
+ });
248
+ }, ownerId, apiBaseUrl, options);
249
+ };
250
+ var useUpdatePdfDocument = function useUpdatePdfDocument(_ref4) {
251
+ var apiBaseUrl = _ref4.apiBaseUrl,
252
+ ownerId = _ref4.ownerId,
253
+ _ref4$options = _ref4.options,
254
+ options = _ref4$options === void 0 ? {} : _ref4$options;
255
+ return useInvalidatingMutation(function (_ref5) {
256
+ var documentId = _ref5.documentId,
257
+ payload = _ref5.payload;
258
+ return pdfDocumentsApi.update({
259
+ apiBaseUrl: apiBaseUrl,
260
+ ownerId: ownerId,
261
+ documentId: documentId,
262
+ payload: payload
263
+ });
264
+ }, ownerId, apiBaseUrl, options);
265
+ };
266
+ var useUpdatePdfDocumentTemplateFile = function useUpdatePdfDocumentTemplateFile(_ref6) {
267
+ var apiBaseUrl = _ref6.apiBaseUrl,
268
+ ownerId = _ref6.ownerId,
269
+ _ref6$options = _ref6.options,
270
+ options = _ref6$options === void 0 ? {} : _ref6$options;
271
+ return useInvalidatingMutation(function (_ref7) {
272
+ var documentId = _ref7.documentId,
273
+ file = _ref7.file;
274
+ return pdfDocumentsApi.updateTemplateFile({
275
+ apiBaseUrl: apiBaseUrl,
276
+ ownerId: ownerId,
277
+ documentId: documentId,
278
+ file: file
279
+ });
280
+ }, ownerId, apiBaseUrl, options);
281
+ };
282
+ var useClonePdfDocument = function useClonePdfDocument(_ref8) {
283
+ var apiBaseUrl = _ref8.apiBaseUrl,
284
+ ownerId = _ref8.ownerId,
285
+ _ref8$options = _ref8.options,
286
+ options = _ref8$options === void 0 ? {} : _ref8$options;
287
+ return useInvalidatingMutation(function (documentId) {
288
+ return pdfDocumentsApi.clone({
289
+ apiBaseUrl: apiBaseUrl,
290
+ ownerId: ownerId,
291
+ documentId: documentId
292
+ });
293
+ }, ownerId, apiBaseUrl, options);
294
+ };
295
+ var useDeletePdfDocument = function useDeletePdfDocument(_ref9) {
296
+ var apiBaseUrl = _ref9.apiBaseUrl,
297
+ ownerId = _ref9.ownerId,
298
+ _ref9$options = _ref9.options,
299
+ options = _ref9$options === void 0 ? {} : _ref9$options;
300
+ return useInvalidatingMutation(function (documentId) {
301
+ return pdfDocumentsApi.destroy({
302
+ apiBaseUrl: apiBaseUrl,
303
+ ownerId: ownerId,
304
+ documentId: documentId
305
+ });
306
+ }, ownerId, apiBaseUrl, options);
307
+ };
308
+
309
+ var buildOutputFilenameTemplate = function buildOutputFilenameTemplate(name) {
310
+ var parameterizedName = (name || "").trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
311
+ return "".concat(parameterizedName || "document", "-{{id}}.pdf");
312
+ };
313
+ var buildOutputFilename = function buildOutputFilename(pdfDocument, submission) {
314
+ var base = (pdfDocument === null || pdfDocument === void 0 ? void 0 : pdfDocument.outputFilename) || "".concat((pdfDocument === null || pdfDocument === void 0 ? void 0 : pdfDocument.name) || "document", ".pdf");
315
+ var withId = base.replace(/\{\{\s*id\s*\}\}/g, (submission === null || submission === void 0 ? void 0 : submission.id) || "");
316
+ return withId.endsWith(".pdf") ? withId : "".concat(withId, ".pdf");
317
+ };
318
+
319
+ exports.buildOutputFilename = buildOutputFilename;
320
+ exports.buildOutputFilenameTemplate = buildOutputFilenameTemplate;
321
+ exports.getPdfDocumentApiErrorMessage = getPdfDocumentApiErrorMessage;
322
+ exports.useClonePdfDocument = useClonePdfDocument;
323
+ exports.useCreatePdfDocument = useCreatePdfDocument;
324
+ exports.useDeletePdfDocument = useDeletePdfDocument;
325
+ exports.useFetchPdfDocument = useFetchPdfDocument;
326
+ exports.useFetchPdfDocuments = useFetchPdfDocuments;
327
+ exports.useUpdatePdfDocument = useUpdatePdfDocument;
328
+ exports.useUpdatePdfDocumentTemplateFile = useUpdatePdfDocumentTemplateFile;
329
+ //# sourceMappingURL=FilenameUtilities-Cw9Tvd6k.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilenameUtilities-Cw9Tvd6k.js","sources":["../app/javascript/src/apis/pdf_documents.js","../app/javascript/src/hooks/usePdfDocumentsApi.js","../app/javascript/src/components/PdfDocuments/FilenameUtilities.js"],"sourcesContent":["import axios from \"axios\";\n\nconst trimTrailingSlash = value => value?.replace(/\\/+$/, \"\") || \"\";\n\nconst documentsUrl = apiBaseUrl => `${trimTrailingSlash(apiBaseUrl)}/documents`;\n\nconst documentUrl = ({ apiBaseUrl, documentId }) =>\n `${documentsUrl(apiBaseUrl)}/${documentId}`;\n\nconst documentActionUrl = ({ apiBaseUrl, documentId, suffix = \"\" }) =>\n `${documentUrl({ apiBaseUrl, documentId })}${suffix}`;\n\nconst normalizeResponse = async request => {\n const response = await request;\n\n return response?.data ?? response;\n};\n\nconst list = ({ apiBaseUrl, ownerId }) =>\n normalizeResponse(\n axios.get(documentsUrl(apiBaseUrl), { params: { ownerId } })\n );\n\nconst show = ({ apiBaseUrl, ownerId, documentId }) =>\n normalizeResponse(\n axios.get(documentUrl({ apiBaseUrl, documentId }), {\n params: { ownerId },\n })\n );\n\nconst create = ({ apiBaseUrl, ownerId, file }) => {\n if (file?.signedId) {\n return normalizeResponse(\n axios.post(\n documentsUrl(apiBaseUrl),\n {\n template_file: file.signedId,\n name: file.name?.replace(/\\.[^/.]+$/, \"\"),\n },\n { params: { ownerId }, transformRequestCase: false }\n )\n );\n }\n\n const formData = new FormData();\n const sanitizedName = file?.name?.trim?.().replace(/\\.[^/.]+$/, \"\");\n const baseName = sanitizedName || \"\";\n\n formData.append(\"template_file\", file);\n formData.append(\"name\", baseName);\n\n return normalizeResponse(\n axios.post(documentsUrl(apiBaseUrl), formData, {\n params: { ownerId },\n transformRequestCase: false,\n })\n );\n};\n\nconst update = ({ apiBaseUrl, ownerId, documentId, payload }) =>\n normalizeResponse(\n axios.put(documentUrl({ apiBaseUrl, documentId }), payload, {\n params: { ownerId },\n })\n );\n\nconst updateTemplateFile = ({ apiBaseUrl, ownerId, documentId, file }) => {\n if (file?.signedId) {\n return normalizeResponse(\n axios.patch(\n documentActionUrl({ apiBaseUrl, documentId, suffix: \"/template_file\" }),\n { template_file: file.signedId },\n { params: { ownerId }, transformRequestCase: false }\n )\n );\n }\n\n const formData = new FormData();\n formData.append(\"template_file\", file);\n\n return normalizeResponse(\n axios.patch(\n documentActionUrl({ apiBaseUrl, documentId, suffix: \"/template_file\" }),\n formData,\n { params: { ownerId }, transformRequestCase: false }\n )\n );\n};\n\nconst clone = ({ apiBaseUrl, ownerId, documentId }) =>\n normalizeResponse(\n axios.post(\n documentActionUrl({ apiBaseUrl, documentId, suffix: \"/clone\" }),\n null,\n { params: { ownerId } }\n )\n );\n\nconst destroy = ({ apiBaseUrl, ownerId, documentId }) =>\n normalizeResponse(\n axios.delete(documentUrl({ apiBaseUrl, documentId }), {\n params: { ownerId },\n })\n );\n\nconst pdfDocumentsApi = {\n clone,\n create,\n update,\n updateTemplateFile,\n destroy,\n list,\n show,\n};\n\nexport default pdfDocumentsApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport pdfDocumentsApi from \"src/apis/pdf_documents\";\n\nconst documentKeys = (ownerId, apiBaseUrl) => [\n \"neeto-pdf-documents\",\n apiBaseUrl,\n ownerId,\n];\n\nconst useInvalidatingMutation = (\n mutationFn,\n ownerId,\n apiBaseUrl,\n options = {}\n) =>\n useMutationWithInvalidation(mutationFn, {\n keysToInvalidate: [documentKeys(ownerId, apiBaseUrl)],\n ...options,\n });\n\nexport const getPdfDocumentApiErrorMessage = (error, fallback) =>\n error?.response?.data?.error || fallback;\n\nexport const useFetchPdfDocuments = ({ apiBaseUrl, ownerId, options = {} }) =>\n useQuery({\n queryKey: documentKeys(ownerId, apiBaseUrl),\n queryFn: () => pdfDocumentsApi.list({ apiBaseUrl, ownerId }),\n enabled: Boolean(apiBaseUrl && ownerId),\n ...options,\n });\n\nexport const useFetchPdfDocument = ({\n apiBaseUrl,\n ownerId,\n documentId,\n options = {},\n}) =>\n useQuery({\n queryKey: [...documentKeys(ownerId, apiBaseUrl), documentId],\n queryFn: () => pdfDocumentsApi.show({ apiBaseUrl, ownerId, documentId }),\n enabled: Boolean(apiBaseUrl && ownerId && documentId),\n ...options,\n });\n\nexport const useCreatePdfDocument = ({ apiBaseUrl, ownerId, options = {} }) =>\n useInvalidatingMutation(\n file => pdfDocumentsApi.create({ apiBaseUrl, ownerId, file }),\n ownerId,\n apiBaseUrl,\n options\n );\n\nexport const useUpdatePdfDocument = ({ apiBaseUrl, ownerId, options = {} }) =>\n useInvalidatingMutation(\n ({ documentId, payload }) =>\n pdfDocumentsApi.update({ apiBaseUrl, ownerId, documentId, payload }),\n ownerId,\n apiBaseUrl,\n options\n );\n\nexport const useUpdatePdfDocumentTemplateFile = ({\n apiBaseUrl,\n ownerId,\n options = {},\n}) =>\n useInvalidatingMutation(\n ({ documentId, file }) =>\n pdfDocumentsApi.updateTemplateFile({\n apiBaseUrl,\n ownerId,\n documentId,\n file,\n }),\n ownerId,\n apiBaseUrl,\n options\n );\n\nexport const useClonePdfDocument = ({ apiBaseUrl, ownerId, options = {} }) =>\n useInvalidatingMutation(\n documentId => pdfDocumentsApi.clone({ apiBaseUrl, ownerId, documentId }),\n ownerId,\n apiBaseUrl,\n options\n );\n\nexport const useDeletePdfDocument = ({ apiBaseUrl, ownerId, options = {} }) =>\n useInvalidatingMutation(\n documentId => pdfDocumentsApi.destroy({ apiBaseUrl, ownerId, documentId }),\n ownerId,\n apiBaseUrl,\n options\n );\n","export const buildOutputFilenameTemplate = name => {\n const parameterizedName = (name || \"\")\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n\n return `${parameterizedName || \"document\"}-{{id}}.pdf`;\n};\n\nexport const buildOutputFilename = (pdfDocument, submission) => {\n const base =\n pdfDocument?.outputFilename || `${pdfDocument?.name || \"document\"}.pdf`;\n const withId = base.replace(/\\{\\{\\s*id\\s*\\}\\}/g, submission?.id || \"\");\n\n return withId.endsWith(\".pdf\") ? withId : `${withId}.pdf`;\n};\n"],"names":["trimTrailingSlash","value","replace","documentsUrl","apiBaseUrl","concat","documentUrl","_ref","documentId","documentActionUrl","_ref2","_ref2$suffix","suffix","normalizeResponse","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","request","_response$data","response","wrap","_callee$","_context","prev","next","sent","abrupt","data","stop","_x","apply","arguments","list","_ref4","ownerId","axios","get","params","show","_ref5","create","_ref6","_file$name2","_file$name2$trim","file","signedId","_file$name","post","template_file","name","transformRequestCase","formData","FormData","sanitizedName","trim","call","baseName","append","update","_ref7","payload","put","updateTemplateFile","_ref8","patch","clone","_ref9","destroy","_ref0","pdfDocumentsApi","documentKeys","useInvalidatingMutation","mutationFn","options","length","undefined","useMutationWithInvalidation","_objectSpread","keysToInvalidate","getPdfDocumentApiErrorMessage","error","fallback","_error$response","useFetchPdfDocuments","_ref$options","useQuery","queryKey","queryFn","enabled","Boolean","useFetchPdfDocument","_ref2$options","_toConsumableArray","useCreatePdfDocument","_ref3$options","useUpdatePdfDocument","_ref4$options","useUpdatePdfDocumentTemplateFile","_ref6$options","useClonePdfDocument","_ref8$options","useDeletePdfDocument","_ref9$options","buildOutputFilenameTemplate","parameterizedName","toLowerCase","buildOutputFilename","pdfDocument","submission","base","outputFilename","withId","id","endsWith"],"mappings":"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"}