@bigbinary/neeto-approvals-frontend 1.2.15 → 1.2.18

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 (90) hide show
  1. package/README.md +0 -2
  2. package/app/javascript/src/translations/hu.json +100 -0
  3. package/dist/.ready +1 -0
  4. package/dist/Approvals.js +44 -107
  5. package/dist/Approvals.js.map +1 -1
  6. package/dist/Form.js +9 -32
  7. package/dist/Form.js.map +1 -1
  8. package/dist/Public.js +7 -50
  9. package/dist/Public.js.map +1 -1
  10. package/dist/RequestDetailsPane.js +4 -2
  11. package/dist/RequestDetailsPane.js.map +1 -1
  12. package/dist/cjs/Approvals.js +83 -146
  13. package/dist/cjs/Approvals.js.map +1 -1
  14. package/dist/cjs/Form.js +15 -38
  15. package/dist/cjs/Form.js.map +1 -1
  16. package/dist/cjs/Public.js +10 -53
  17. package/dist/cjs/Public.js.map +1 -1
  18. package/dist/cjs/RequestDetailsPane.js +4 -2
  19. package/dist/cjs/RequestDetailsPane.js.map +1 -1
  20. package/dist/cjs/index.js +12 -7
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/v2/Approvals.js +1007 -0
  23. package/dist/cjs/v2/Approvals.js.map +1 -0
  24. package/dist/cjs/v2/Form.js +199 -0
  25. package/dist/cjs/v2/Form.js.map +1 -0
  26. package/dist/cjs/v2/Public.js +130 -0
  27. package/dist/cjs/v2/Public.js.map +1 -0
  28. package/dist/cjs/v2/RequestDetailsPane.js +31 -0
  29. package/dist/cjs/v2/RequestDetailsPane.js.map +1 -0
  30. package/dist/cjs/v2/index.js +59 -0
  31. package/dist/cjs/v2/index.js.map +1 -0
  32. package/dist/{constants-BX-hlAjh.js → constants-BwvPJzqf.js} +1 -16
  33. package/dist/constants-BwvPJzqf.js.map +1 -0
  34. package/dist/constants-DaDwtZe3.js +83 -0
  35. package/dist/constants-DaDwtZe3.js.map +1 -0
  36. package/dist/constants-DzID-rqV.js +53 -0
  37. package/dist/constants-DzID-rqV.js.map +1 -0
  38. package/dist/{constants-B5EiwxHH.js → constants-qLYJlKc6.js} +2 -14
  39. package/dist/constants-qLYJlKc6.js.map +1 -0
  40. package/dist/index-C8moxeiZ.js +225 -0
  41. package/dist/index-C8moxeiZ.js.map +1 -0
  42. package/dist/{index-pLvVQgrV.js → index-CFiP9Hcn.js} +4 -49
  43. package/dist/index-CFiP9Hcn.js.map +1 -0
  44. package/dist/index-hZqdAkyl.js +229 -0
  45. package/dist/index-hZqdAkyl.js.map +1 -0
  46. package/dist/{index-BBsNL9uK.js → index-t8u9Sjvr.js} +4 -48
  47. package/dist/index-t8u9Sjvr.js.map +1 -0
  48. package/dist/index.js +12 -7
  49. package/dist/index.js.map +1 -1
  50. package/dist/queryConstants-DjYiOKxE.js +18 -0
  51. package/dist/queryConstants-DjYiOKxE.js.map +1 -0
  52. package/dist/queryConstants-Vrcjv9lF.js +14 -0
  53. package/dist/queryConstants-Vrcjv9lF.js.map +1 -0
  54. package/dist/useApprovalRequest-D_WJmB5t.js +53 -0
  55. package/dist/useApprovalRequest-D_WJmB5t.js.map +1 -0
  56. package/dist/useApprovalRequest-XjfcKfLQ.js +57 -0
  57. package/dist/useApprovalRequest-XjfcKfLQ.js.map +1 -0
  58. package/dist/useApproversApi-B7ChYonT.js +32 -0
  59. package/dist/useApproversApi-B7ChYonT.js.map +1 -0
  60. package/dist/useApproversApi-BO6XC1KJ.js +34 -0
  61. package/dist/useApproversApi-BO6XC1KJ.js.map +1 -0
  62. package/dist/useRequestsApi-DEGfFuv5.js +50 -0
  63. package/dist/useRequestsApi-DEGfFuv5.js.map +1 -0
  64. package/dist/useRequestsApi-DO-oEAzQ.js +53 -0
  65. package/dist/useRequestsApi-DO-oEAzQ.js.map +1 -0
  66. package/dist/{useTemplatesApi-CwlWKJYa.js → useTemplatesApi-BII_qvcl.js} +4 -3
  67. package/dist/useTemplatesApi-BII_qvcl.js.map +1 -0
  68. package/dist/{useTemplatesApi-BhdNkkYy.js → useTemplatesApi-ByO6idQD.js} +15 -14
  69. package/dist/useTemplatesApi-ByO6idQD.js.map +1 -0
  70. package/dist/useViewsApi-B1OpZkLp.js +76 -0
  71. package/dist/useViewsApi-B1OpZkLp.js.map +1 -0
  72. package/dist/useViewsApi-k6u7op_J.js +71 -0
  73. package/dist/useViewsApi-k6u7op_J.js.map +1 -0
  74. package/dist/v2/Approvals.js +986 -0
  75. package/dist/v2/Approvals.js.map +1 -0
  76. package/dist/v2/Form.js +197 -0
  77. package/dist/v2/Form.js.map +1 -0
  78. package/dist/v2/Public.js +128 -0
  79. package/dist/v2/Public.js.map +1 -0
  80. package/dist/v2/RequestDetailsPane.js +25 -0
  81. package/dist/v2/RequestDetailsPane.js.map +1 -0
  82. package/dist/v2/index.js +50 -0
  83. package/dist/v2/index.js.map +1 -0
  84. package/package.json +48 -38
  85. package/dist/constants-B5EiwxHH.js.map +0 -1
  86. package/dist/constants-BX-hlAjh.js.map +0 -1
  87. package/dist/index-BBsNL9uK.js.map +0 -1
  88. package/dist/index-pLvVQgrV.js.map +0 -1
  89. package/dist/useTemplatesApi-BhdNkkYy.js.map +0 -1
  90. package/dist/useTemplatesApi-CwlWKJYa.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CFiP9Hcn.js","sources":["../app/javascript/src/components/Approvals/RequestDetailsPane/Footer.jsx","../app/javascript/src/components/Approvals/utils.js","../app/javascript/src/components/Approvals/RequestDetailsPane/index.jsx"],"sourcesContent":["import { Button, Pane } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { STATUSES } from \"../constants\";\n\nconst Footer = ({\n isLoading,\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n}) => {\n const { t } = useTranslation();\n\n if (!isCurrentUserApprover && !isCurrentUserRequester) return null;\n\n if (isCurrentUserApprover) {\n return (\n <Pane.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.approve\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.approved)}\n />\n <Button\n label={t(\"neetoApprovals.buttons.decline\")}\n loading={isLoading}\n style=\"text\"\n onClick={() => handleSubmit(STATUSES.rejected)}\n />\n </Pane.Footer>\n );\n }\n\n return (\n <Pane.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.cancelRequest\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.cancelled)}\n />\n </Pane.Footer>\n );\n};\n\nexport default Footer;\n","import dayjs from \"dayjs\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\nimport { t } from \"i18next\";\nimport { findBy, isPresent } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const updateApprovalDetails = ({ requestsData, approvalDetails }) => {\n if (isPresent(requestsData?.requests) && isPresent(approvalDetails)) {\n const request =\n findBy({ id: approvalDetails.id }, requestsData.requests) || {};\n\n return request;\n }\n\n return {};\n};\n\nexport const timeInZone = time => {\n globalProps.user?.timeZone && dayjs.tz.setDefault(globalProps.user?.timeZone);\n\n return dayjs(time).tz();\n};\n\nexport const getApprovalFilter = () => ({\n PENDING: { label: t(\"neetoApprovals.common.pending\"), value: \"PENDING\" },\n TEMPLATES: {\n label: t(\"neetoApprovals.common.template\", PLURAL),\n value: \"TEMPLATES\",\n },\n HISTORY: { label: t(\"neetoApprovals.common.history\"), value: \"HISTORY\" },\n});\n","import { memo, useEffect, useState } from \"react\";\n\nimport { capitalize } from \"neetocist\";\nimport { dateFormat, withEventTargetValue } from \"neetocommons/utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Label, Pane, Tag, Textarea, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateRequest } from \"hooks/reactQuery/requests/useRequestsApi\";\n\nimport Footer from \"./Footer\";\n\nimport { STATUSES, STATUS_TAG_STYLE, STATUS_UPDATED_BY } from \"../constants\";\nimport { timeInZone } from \"../utils\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst RequestDetailsPane = ({\n isOpen,\n onClose,\n approvalDetails,\n isPending = false,\n}) => {\n const { t } = useTranslation();\n\n const {\n title,\n status = \"\",\n message,\n createdAt,\n approverName,\n approverEmail,\n note: initialNote = \"\",\n requesterName,\n requesterEmail,\n } = approvalDetails;\n\n const [note, setNote] = useState(initialNote);\n\n const { mutate: updatePendingRequest, isPending: isUpdateRequestPending } =\n useUpdateRequest();\n\n useEffect(() => {\n setNote(initialNote);\n }, [initialNote]);\n\n const requesterOrApproverDetails =\n status === STATUSES.cancelled\n ? `${requesterName} (${requesterEmail})`\n : `${approverName} (${approverEmail})`;\n\n const isCurrentUserApprover =\n window.globalProps?.user?.email === approverEmail;\n\n const isCurrentUserRequester =\n window.globalProps?.user?.email === requesterEmail;\n\n const getStatusLabel = () => {\n if (isPending) {\n return t(\"neetoApprovals.common.waitingFor\");\n }\n\n return STATUS_UPDATED_BY[status];\n };\n\n const handleOnClose = () => {\n setNote(\"\");\n onClose();\n };\n\n const handleSubmit = status =>\n updatePendingRequest(\n {\n id: approvalDetails.id,\n payload: { status, note, [`${status}At`]: new Date() },\n },\n { onSuccess: handleOnClose }\n );\n\n return (\n <Pane\n {...{ isOpen }}\n className=\"flex flex-col\"\n size=\"large\"\n onClose={handleOnClose}\n >\n <Pane.Header className=\"space-y-2\">\n <Typography style=\"h2\">{title}</Typography>\n <Tag label={capitalize(status)} style={STATUS_TAG_STYLE[status]} />\n </Pane.Header>\n <Pane.Body className=\"h-auto flex-grow space-y-6 pb-6\">\n <div className=\"neeto-ui-rounded w-full divide-y border p-2\">\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">{getStatusLabel()}</Label>\n <Typography style=\"body2\" weight=\"medium\">\n {requesterOrApproverDetails}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">\n {t(\"neetoApprovals.common.created\")}\n </Label>\n <Typography style=\"body2\" weight=\"medium\">\n {dateFormat.defaultWithTime(timeInZone(createdAt))}\n </Typography>\n </div>\n </div>\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.inputs.labels.message\")}</Label>\n <MemoizedEditorContent\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\"\n content={message}\n />\n </div>\n {isPending && isCurrentUserApprover && (\n <Textarea\n className=\"w-full\"\n disabled={!isPending}\n label={t(\"neetoApprovals.common.note\")}\n value={note}\n placeholder={t(\"neetoApprovals.inputs.placeholders.add_\", {\n what: t(\"neetoApprovals.common.note\"),\n })}\n onChange={withEventTargetValue(setNote)}\n />\n )}\n {!isPending && note && (\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.common.note\")}</Label>\n <div className=\"neeto-ui-bg-gray-100 p-4\">{note}</div>\n </div>\n )}\n </Pane.Body>\n {isPending && (\n <Footer\n {...{\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n }}\n isLoading={isUpdateRequestPending}\n />\n )}\n </Pane>\n );\n};\n\nexport default RequestDetailsPane;\n"],"names":["Footer","_ref","isLoading","handleSubmit","isCurrentUserApprover","isCurrentUserRequester","_useTranslation","useTranslation","t","_jsxs","Pane","className","children","_jsx","Button","label","loading","type","onClick","STATUSES","approved","style","rejected","cancelled","dayjs","extend","utc","timezone","updateApprovalDetails","requestsData","approvalDetails","isPresent","requests","request","findBy","id","timeInZone","time","_globalProps$user","_globalProps$user2","globalProps","user","timeZone","tz","setDefault","getApprovalFilter","PENDING","value","TEMPLATES","PLURAL","HISTORY","MemoizedEditorContent","memo","EditorContent","RequestDetailsPane","_window$globalProps","_window$globalProps2","isOpen","onClose","_ref$isPending","isPending","title","_approvalDetails$stat","status","message","createdAt","approverName","approverEmail","_approvalDetails$note","note","initialNote","requesterName","requesterEmail","_useState","useState","_useState2","_slicedToArray","setNote","_useUpdateRequest","useUpdateRequest","updatePendingRequest","mutate","isUpdateRequestPending","useEffect","requesterOrApproverDetails","concat","window","email","getStatusLabel","STATUS_UPDATED_BY","handleOnClose","payload","_defineProperty","Date","onSuccess","size","Header","Typography","Tag","capitalize","STATUS_TAG_STYLE","Body","Label","weight","dateFormat","defaultWithTime","content","Textarea","disabled","placeholder","what","onChange","withEventTargetValue"],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var react = require('react');
6
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
7
+ var neetoCist = require('@bigbinary/neeto-cist');
8
+ var utils$1 = require('@bigbinary/neeto-commons-frontend/v2/utils');
9
+ var EditorContent = require('@bigbinary/neeto-editor/v2/EditorContent');
10
+ var reactI18next = require('react-i18next');
11
+ var useRequestsApi = require('./useRequestsApi-DO-oEAzQ.js');
12
+ var constants = require('./constants-DaDwtZe3.js');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+ var timezone = require('@bigbinary/neeto-commons-frontend/utils/timezonePlugin');
15
+ var utc = require('dayjs/plugin/utc');
16
+ var i18next = require('i18next');
17
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
18
+ var constants$1 = require('@bigbinary/neeto-commons-frontend/v2/constants');
19
+ var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
20
+
21
+ var Footer = function Footer(_ref) {
22
+ var isLoading = _ref.isLoading,
23
+ handleSubmit = _ref.handleSubmit,
24
+ isCurrentUserApprover = _ref.isCurrentUserApprover,
25
+ isCurrentUserRequester = _ref.isCurrentUserRequester;
26
+ var _useTranslation = reactI18next.useTranslation(),
27
+ t = _useTranslation.t;
28
+ if (!isCurrentUserApprover && !isCurrentUserRequester) return null;
29
+ if (isCurrentUserApprover) {
30
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Footer, {
31
+ className: "flex flex-shrink-0 gap-x-2",
32
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
33
+ label: t("neetoApprovals.buttons.approve"),
34
+ loading: isLoading,
35
+ type: "submit",
36
+ onClick: function onClick() {
37
+ return handleSubmit(constants.STATUSES.approved);
38
+ }
39
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
40
+ label: t("neetoApprovals.buttons.decline"),
41
+ loading: isLoading,
42
+ variant: "ghost",
43
+ onClick: function onClick() {
44
+ return handleSubmit(constants.STATUSES.rejected);
45
+ }
46
+ })]
47
+ });
48
+ }
49
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Footer, {
50
+ className: "flex flex-shrink-0 gap-x-2",
51
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
52
+ label: t("neetoApprovals.buttons.cancelRequest"),
53
+ loading: isLoading,
54
+ type: "submit",
55
+ onClick: function onClick() {
56
+ return handleSubmit(constants.STATUSES.cancelled);
57
+ }
58
+ })
59
+ });
60
+ };
61
+
62
+ utils.dayjs.extend(utc);
63
+ utils.dayjs.extend(timezone);
64
+ var updateApprovalDetails = function updateApprovalDetails(_ref) {
65
+ var requestsData = _ref.requestsData,
66
+ approvalDetails = _ref.approvalDetails;
67
+ if (neetoCist.isPresent(requestsData === null || requestsData === void 0 ? void 0 : requestsData.requests) && neetoCist.isPresent(approvalDetails)) {
68
+ return neetoCist.findBy({
69
+ id: approvalDetails.id
70
+ }, requestsData.requests) || {};
71
+ }
72
+ return {};
73
+ };
74
+ var timeInZone = function timeInZone(time) {
75
+ var _globalProps$user, _globalProps$user2;
76
+ ((_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone) && utils.dayjs.tz.setDefault((_globalProps$user2 = initializers.globalProps.user) === null || _globalProps$user2 === void 0 ? void 0 : _globalProps$user2.timeZone);
77
+ return utils.dayjs(time).tz();
78
+ };
79
+ var getApprovalFilter = function getApprovalFilter() {
80
+ return {
81
+ PENDING: {
82
+ label: i18next.t("neetoApprovals.common.pending"),
83
+ value: "PENDING"
84
+ },
85
+ TEMPLATES: {
86
+ label: i18next.t("neetoApprovals.common.template", constants$1.PLURAL),
87
+ value: "TEMPLATES"
88
+ },
89
+ HISTORY: {
90
+ label: i18next.t("neetoApprovals.common.history"),
91
+ value: "HISTORY"
92
+ }
93
+ };
94
+ };
95
+
96
+ var MemoizedEditorContent = /*#__PURE__*/react.memo(EditorContent);
97
+ var RequestDetailsPane = function RequestDetailsPane(_ref) {
98
+ var _window$globalProps, _window$globalProps2;
99
+ var isOpen = _ref.isOpen,
100
+ onClose = _ref.onClose,
101
+ approvalDetails = _ref.approvalDetails,
102
+ _ref$isPending = _ref.isPending,
103
+ isPending = _ref$isPending === void 0 ? false : _ref$isPending;
104
+ var _useTranslation = reactI18next.useTranslation(),
105
+ t = _useTranslation.t;
106
+ var title = approvalDetails.title,
107
+ _approvalDetails$stat = approvalDetails.status,
108
+ status = _approvalDetails$stat === void 0 ? "" : _approvalDetails$stat,
109
+ message = approvalDetails.message,
110
+ createdAt = approvalDetails.createdAt,
111
+ approverName = approvalDetails.approverName,
112
+ approverEmail = approvalDetails.approverEmail,
113
+ _approvalDetails$note = approvalDetails.note,
114
+ initialNote = _approvalDetails$note === void 0 ? "" : _approvalDetails$note,
115
+ requesterName = approvalDetails.requesterName,
116
+ requesterEmail = approvalDetails.requesterEmail;
117
+ var _useState = react.useState(initialNote),
118
+ _useState2 = _slicedToArray(_useState, 2),
119
+ note = _useState2[0],
120
+ setNote = _useState2[1];
121
+ var _useUpdateRequest = useRequestsApi.useUpdateRequest(),
122
+ updatePendingRequest = _useUpdateRequest.mutate,
123
+ isUpdateRequestPending = _useUpdateRequest.isPending;
124
+ react.useEffect(function () {
125
+ setNote(initialNote);
126
+ }, [initialNote]);
127
+ var requesterOrApproverDetails = status === constants.STATUSES.cancelled ? "".concat(requesterName, " (").concat(requesterEmail, ")") : "".concat(approverName, " (").concat(approverEmail, ")");
128
+ var isCurrentUserApprover = ((_window$globalProps = window.globalProps) === null || _window$globalProps === void 0 || (_window$globalProps = _window$globalProps.user) === null || _window$globalProps === void 0 ? void 0 : _window$globalProps.email) === approverEmail;
129
+ var isCurrentUserRequester = ((_window$globalProps2 = window.globalProps) === null || _window$globalProps2 === void 0 || (_window$globalProps2 = _window$globalProps2.user) === null || _window$globalProps2 === void 0 ? void 0 : _window$globalProps2.email) === requesterEmail;
130
+ var getStatusLabel = function getStatusLabel() {
131
+ if (isPending) {
132
+ return t("neetoApprovals.common.waitingFor");
133
+ }
134
+ return constants.STATUS_UPDATED_BY[status];
135
+ };
136
+ var handleOnClose = function handleOnClose() {
137
+ setNote("");
138
+ onClose();
139
+ };
140
+ var handleSubmit = function handleSubmit(status) {
141
+ return updatePendingRequest({
142
+ id: approvalDetails.id,
143
+ payload: _defineProperty({
144
+ status: status,
145
+ note: note
146
+ }, "".concat(status, "At"), new Date())
147
+ }, {
148
+ onSuccess: handleOnClose
149
+ });
150
+ };
151
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
152
+ isOpen: isOpen,
153
+ className: "flex flex-col",
154
+ size: "large",
155
+ onClose: handleOnClose,
156
+ children: [/*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Header, {
157
+ className: "space-y-2",
158
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
159
+ variant: "h2",
160
+ children: title
161
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
162
+ variant: constants.STATUS_BADGE_VARIANT[constants.STATUS_TAG_STYLE[status]],
163
+ children: neetoCist.capitalize(status)
164
+ })]
165
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Body, {
166
+ className: "h-auto flex-grow space-y-6 pb-6",
167
+ hasFooter: isPending,
168
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
169
+ className: "w-full divide-y rounded border p-2",
170
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
171
+ className: "flex flex-col gap-2 p-2 lg:flex-row lg:gap-3",
172
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
173
+ className: "font-normal",
174
+ children: getStatusLabel()
175
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
176
+ variant: "body2",
177
+ weight: "medium",
178
+ children: requesterOrApproverDetails
179
+ })]
180
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
181
+ className: "flex flex-col gap-2 p-2 lg:flex-row lg:gap-3",
182
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
183
+ className: "font-normal",
184
+ children: t("neetoApprovals.common.created")
185
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
186
+ variant: "body2",
187
+ weight: "medium",
188
+ children: utils$1.dateFormat.defaultWithTime(timeInZone(createdAt))
189
+ })]
190
+ })]
191
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
192
+ className: "w-full space-y-2",
193
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
194
+ children: t("neetoApprovals.inputs.labels.message")
195
+ }), /*#__PURE__*/jsxRuntime.jsx(MemoizedEditorContent, {
196
+ className: "rounded bg-muted p-4",
197
+ content: message
198
+ })]
199
+ }), isPending && isCurrentUserApprover && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Textarea, {
200
+ className: "w-full",
201
+ disabled: !isPending,
202
+ label: t("neetoApprovals.common.note"),
203
+ value: note,
204
+ placeholder: t("neetoApprovals.inputs.placeholders.add_", {
205
+ what: t("neetoApprovals.common.note")
206
+ }),
207
+ onChange: utils$1.withEventTargetValue(setNote)
208
+ }), !isPending && note && /*#__PURE__*/jsxRuntime.jsxs("div", {
209
+ className: "w-full space-y-2",
210
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
211
+ children: t("neetoApprovals.common.note")
212
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
213
+ className: "bg-muted p-4",
214
+ children: note
215
+ })]
216
+ })]
217
+ }), isPending && /*#__PURE__*/jsxRuntime.jsx(Footer, {
218
+ handleSubmit: handleSubmit,
219
+ isCurrentUserApprover: isCurrentUserApprover,
220
+ isCurrentUserRequester: isCurrentUserRequester,
221
+ isLoading: isUpdateRequestPending
222
+ })]
223
+ });
224
+ };
225
+
226
+ exports.RequestDetailsPane = RequestDetailsPane;
227
+ exports.getApprovalFilter = getApprovalFilter;
228
+ exports.updateApprovalDetails = updateApprovalDetails;
229
+ //# sourceMappingURL=index-hZqdAkyl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-hZqdAkyl.js","sources":["../app/javascript/src/v2/components/Approvals/RequestDetailsPane/Footer.jsx","../app/javascript/src/v2/components/Approvals/utils.js","../app/javascript/src/v2/components/Approvals/RequestDetailsPane/index.jsx"],"sourcesContent":["import { Button, Sheet } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { STATUSES } from \"../constants\";\n\nconst Footer = ({\n isLoading,\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n}) => {\n const { t } = useTranslation();\n\n if (!isCurrentUserApprover && !isCurrentUserRequester) return null;\n\n if (isCurrentUserApprover) {\n return (\n <Sheet.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.approve\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.approved)}\n />\n <Button\n label={t(\"neetoApprovals.buttons.decline\")}\n loading={isLoading}\n variant=\"ghost\"\n onClick={() => handleSubmit(STATUSES.rejected)}\n />\n </Sheet.Footer>\n );\n }\n\n return (\n <Sheet.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.cancelRequest\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.cancelled)}\n />\n </Sheet.Footer>\n );\n};\n\nexport default Footer;\n","import timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\nimport { t } from \"i18next\";\nimport { findBy, isPresent } from \"neetocist\";\nimport { dayjs } from \"neetocommons/utils\";\nimport { PLURAL } from \"neetocommons/v2/constants\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const updateApprovalDetails = ({ requestsData, approvalDetails }) => {\n if (isPresent(requestsData?.requests) && isPresent(approvalDetails)) {\n return findBy({ id: approvalDetails.id }, requestsData.requests) || {};\n }\n\n return {};\n};\n\nexport const timeInZone = time => {\n globalProps.user?.timeZone && dayjs.tz.setDefault(globalProps.user?.timeZone);\n\n return dayjs(time).tz();\n};\n\nexport const getApprovalFilter = () => ({\n PENDING: { label: t(\"neetoApprovals.common.pending\"), value: \"PENDING\" },\n TEMPLATES: {\n label: t(\"neetoApprovals.common.template\", PLURAL),\n value: \"TEMPLATES\",\n },\n HISTORY: { label: t(\"neetoApprovals.common.history\"), value: \"HISTORY\" },\n});\n","import { memo, useEffect, useState } from \"react\";\n\nimport {\n Badge,\n Label,\n Sheet,\n Textarea,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport { dateFormat, withEventTargetValue } from \"neetocommons/v2/utils\";\nimport EditorContent from \"neetoeditor/v2/EditorContent\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateRequest } from \"hooks/reactQuery/requests/useRequestsApi\";\n\nimport Footer from \"./Footer\";\n\nimport {\n STATUSES,\n STATUS_BADGE_VARIANT,\n STATUS_TAG_STYLE,\n STATUS_UPDATED_BY,\n} from \"../constants\";\nimport { timeInZone } from \"../utils\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst RequestDetailsPane = ({\n isOpen,\n onClose,\n approvalDetails,\n isPending = false,\n}) => {\n const { t } = useTranslation();\n\n const {\n title,\n status = \"\",\n message,\n createdAt,\n approverName,\n approverEmail,\n note: initialNote = \"\",\n requesterName,\n requesterEmail,\n } = approvalDetails;\n\n const [note, setNote] = useState(initialNote);\n\n const { mutate: updatePendingRequest, isPending: isUpdateRequestPending } =\n useUpdateRequest();\n\n useEffect(() => {\n setNote(initialNote);\n }, [initialNote]);\n\n const requesterOrApproverDetails =\n status === STATUSES.cancelled\n ? `${requesterName} (${requesterEmail})`\n : `${approverName} (${approverEmail})`;\n\n const isCurrentUserApprover =\n window.globalProps?.user?.email === approverEmail;\n\n const isCurrentUserRequester =\n window.globalProps?.user?.email === requesterEmail;\n\n const getStatusLabel = () => {\n if (isPending) {\n return t(\"neetoApprovals.common.waitingFor\");\n }\n\n return STATUS_UPDATED_BY[status];\n };\n\n const handleOnClose = () => {\n setNote(\"\");\n onClose();\n };\n\n const handleSubmit = status =>\n updatePendingRequest(\n {\n id: approvalDetails.id,\n payload: { status, note, [`${status}At`]: new Date() },\n },\n { onSuccess: handleOnClose }\n );\n\n return (\n <Sheet\n {...{ isOpen }}\n className=\"flex flex-col\"\n size=\"large\"\n onClose={handleOnClose}\n >\n <Sheet.Header className=\"space-y-2\">\n <Typography variant=\"h2\">{title}</Typography>\n <Badge variant={STATUS_BADGE_VARIANT[STATUS_TAG_STYLE[status]]}>\n {capitalize(status)}\n </Badge>\n </Sheet.Header>\n <Sheet.Body\n className=\"h-auto flex-grow space-y-6 pb-6\"\n hasFooter={isPending}\n >\n <div className=\"w-full divide-y rounded border p-2\">\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">{getStatusLabel()}</Label>\n <Typography variant=\"body2\" weight=\"medium\">\n {requesterOrApproverDetails}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">\n {t(\"neetoApprovals.common.created\")}\n </Label>\n <Typography variant=\"body2\" weight=\"medium\">\n {dateFormat.defaultWithTime(timeInZone(createdAt))}\n </Typography>\n </div>\n </div>\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.inputs.labels.message\")}</Label>\n <MemoizedEditorContent\n className=\"rounded bg-muted p-4\"\n content={message}\n />\n </div>\n {isPending && isCurrentUserApprover && (\n <Textarea\n className=\"w-full\"\n disabled={!isPending}\n label={t(\"neetoApprovals.common.note\")}\n value={note}\n placeholder={t(\"neetoApprovals.inputs.placeholders.add_\", {\n what: t(\"neetoApprovals.common.note\"),\n })}\n onChange={withEventTargetValue(setNote)}\n />\n )}\n {!isPending && note && (\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.common.note\")}</Label>\n <div className=\"bg-muted p-4\">{note}</div>\n </div>\n )}\n </Sheet.Body>\n {isPending && (\n <Footer\n {...{\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n }}\n isLoading={isUpdateRequestPending}\n />\n )}\n </Sheet>\n );\n};\n\nexport default RequestDetailsPane;\n"],"names":["Footer","_ref","isLoading","handleSubmit","isCurrentUserApprover","isCurrentUserRequester","_useTranslation","useTranslation","t","_jsxs","Sheet","className","children","_jsx","Button","label","loading","type","onClick","STATUSES","approved","variant","rejected","cancelled","dayjs","extend","utc","timezone","updateApprovalDetails","requestsData","approvalDetails","isPresent","requests","findBy","id","timeInZone","time","_globalProps$user","_globalProps$user2","globalProps","user","timeZone","tz","setDefault","getApprovalFilter","PENDING","value","TEMPLATES","PLURAL","HISTORY","MemoizedEditorContent","memo","EditorContent","RequestDetailsPane","_window$globalProps","_window$globalProps2","isOpen","onClose","_ref$isPending","isPending","title","_approvalDetails$stat","status","message","createdAt","approverName","approverEmail","_approvalDetails$note","note","initialNote","requesterName","requesterEmail","_useState","useState","_useState2","_slicedToArray","setNote","_useUpdateRequest","useUpdateRequest","updatePendingRequest","mutate","isUpdateRequestPending","useEffect","requesterOrApproverDetails","concat","window","email","getStatusLabel","STATUS_UPDATED_BY","handleOnClose","payload","_defineProperty","Date","onSuccess","size","Header","Typography","Badge","STATUS_BADGE_VARIANT","STATUS_TAG_STYLE","capitalize","Body","hasFooter","Label","weight","dateFormat","defaultWithTime","content","Textarea","disabled","placeholder","what","onChange","withEventTargetValue"],"mappings":"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"}
@@ -10,11 +10,9 @@ import Tag from '@bigbinary/neetoui/Tag';
10
10
  import Textarea from '@bigbinary/neetoui/Textarea';
11
11
  import Typography from '@bigbinary/neetoui/Typography';
12
12
  import { useTranslation } from 'react-i18next';
13
- import { useQuery, keepPreviousData } from '@tanstack/react-query';
14
- import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
15
- import axios from 'axios';
16
- import { B as BASE_URL, Q as QUERY_KEYS, S as STATUSES, a as STATUS_TAG_STYLE, b as STATUS_UPDATED_BY } from './constants-B5EiwxHH.js';
13
+ import { u as useUpdateRequest } from './useRequestsApi-DEGfFuv5.js';
17
14
  import Button from '@bigbinary/neetoui/Button';
15
+ import { S as STATUSES, a as STATUS_TAG_STYLE, b as STATUS_UPDATED_BY } from './constants-qLYJlKc6.js';
18
16
  import { jsxs, jsx } from 'react/jsx-runtime';
19
17
  import dayjs from 'dayjs';
20
18
  import timezone from '@bigbinary/neeto-commons-frontend/utils/timezonePlugin';
@@ -23,48 +21,6 @@ import { t } from 'i18next';
23
21
  import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
24
22
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
25
23
 
26
- var fetch = function fetch(params, url) {
27
- return axios.get(url, {
28
- params: params
29
- });
30
- };
31
- var update = function update(_ref) {
32
- var id = _ref.id,
33
- payload = _ref.payload;
34
- return axios.put("".concat(BASE_URL, "/requests/").concat(id), {
35
- request: payload
36
- });
37
- };
38
- var requestsApi = {
39
- fetch: fetch,
40
- update: update
41
- };
42
-
43
- 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; }
44
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
45
- var useFetchRequests = function useFetchRequests(_ref) {
46
- var requestUrl = _ref.requestUrl,
47
- _ref$params = _ref.params,
48
- params = _ref$params === void 0 ? {} : _ref$params,
49
- _ref$options = _ref.options,
50
- options = _ref$options === void 0 ? {} : _ref$options;
51
- return useQuery(_objectSpread({
52
- queryKey: [QUERY_KEYS.REQUESTS, params],
53
- queryFn: function queryFn() {
54
- return requestsApi.fetch(params, requestUrl);
55
- },
56
- select: function select(response) {
57
- return response.data || response;
58
- },
59
- placeholderData: keepPreviousData
60
- }, options));
61
- };
62
- var useUpdateRequest = function useUpdateRequest(options) {
63
- return useMutationWithInvalidation(requestsApi.update, _objectSpread({
64
- keysToInvalidate: [[QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
65
- }, options));
66
- };
67
-
68
24
  var Footer = function Footer(_ref) {
69
25
  var isLoading = _ref.isLoading,
70
26
  handleSubmit = _ref.handleSubmit,
@@ -270,5 +226,5 @@ var RequestDetailsPane = function RequestDetailsPane(_ref) {
270
226
  });
271
227
  };
272
228
 
273
- export { RequestDetailsPane as R, updateApprovalDetails as a, getApprovalFilter as g, useFetchRequests as u };
274
- //# sourceMappingURL=index-BBsNL9uK.js.map
229
+ export { RequestDetailsPane as R, getApprovalFilter as g, updateApprovalDetails as u };
230
+ //# sourceMappingURL=index-t8u9Sjvr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-t8u9Sjvr.js","sources":["../app/javascript/src/components/Approvals/RequestDetailsPane/Footer.jsx","../app/javascript/src/components/Approvals/utils.js","../app/javascript/src/components/Approvals/RequestDetailsPane/index.jsx"],"sourcesContent":["import { Button, Pane } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { STATUSES } from \"../constants\";\n\nconst Footer = ({\n isLoading,\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n}) => {\n const { t } = useTranslation();\n\n if (!isCurrentUserApprover && !isCurrentUserRequester) return null;\n\n if (isCurrentUserApprover) {\n return (\n <Pane.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.approve\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.approved)}\n />\n <Button\n label={t(\"neetoApprovals.buttons.decline\")}\n loading={isLoading}\n style=\"text\"\n onClick={() => handleSubmit(STATUSES.rejected)}\n />\n </Pane.Footer>\n );\n }\n\n return (\n <Pane.Footer className=\"flex flex-shrink-0 gap-x-2\">\n <Button\n label={t(\"neetoApprovals.buttons.cancelRequest\")}\n loading={isLoading}\n type=\"submit\"\n onClick={() => handleSubmit(STATUSES.cancelled)}\n />\n </Pane.Footer>\n );\n};\n\nexport default Footer;\n","import dayjs from \"dayjs\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport utc from \"dayjs/plugin/utc\";\nimport { t } from \"i18next\";\nimport { findBy, isPresent } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const updateApprovalDetails = ({ requestsData, approvalDetails }) => {\n if (isPresent(requestsData?.requests) && isPresent(approvalDetails)) {\n const request =\n findBy({ id: approvalDetails.id }, requestsData.requests) || {};\n\n return request;\n }\n\n return {};\n};\n\nexport const timeInZone = time => {\n globalProps.user?.timeZone && dayjs.tz.setDefault(globalProps.user?.timeZone);\n\n return dayjs(time).tz();\n};\n\nexport const getApprovalFilter = () => ({\n PENDING: { label: t(\"neetoApprovals.common.pending\"), value: \"PENDING\" },\n TEMPLATES: {\n label: t(\"neetoApprovals.common.template\", PLURAL),\n value: \"TEMPLATES\",\n },\n HISTORY: { label: t(\"neetoApprovals.common.history\"), value: \"HISTORY\" },\n});\n","import { memo, useEffect, useState } from \"react\";\n\nimport { capitalize } from \"neetocist\";\nimport { dateFormat, withEventTargetValue } from \"neetocommons/utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Label, Pane, Tag, Textarea, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateRequest } from \"hooks/reactQuery/requests/useRequestsApi\";\n\nimport Footer from \"./Footer\";\n\nimport { STATUSES, STATUS_TAG_STYLE, STATUS_UPDATED_BY } from \"../constants\";\nimport { timeInZone } from \"../utils\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst RequestDetailsPane = ({\n isOpen,\n onClose,\n approvalDetails,\n isPending = false,\n}) => {\n const { t } = useTranslation();\n\n const {\n title,\n status = \"\",\n message,\n createdAt,\n approverName,\n approverEmail,\n note: initialNote = \"\",\n requesterName,\n requesterEmail,\n } = approvalDetails;\n\n const [note, setNote] = useState(initialNote);\n\n const { mutate: updatePendingRequest, isPending: isUpdateRequestPending } =\n useUpdateRequest();\n\n useEffect(() => {\n setNote(initialNote);\n }, [initialNote]);\n\n const requesterOrApproverDetails =\n status === STATUSES.cancelled\n ? `${requesterName} (${requesterEmail})`\n : `${approverName} (${approverEmail})`;\n\n const isCurrentUserApprover =\n window.globalProps?.user?.email === approverEmail;\n\n const isCurrentUserRequester =\n window.globalProps?.user?.email === requesterEmail;\n\n const getStatusLabel = () => {\n if (isPending) {\n return t(\"neetoApprovals.common.waitingFor\");\n }\n\n return STATUS_UPDATED_BY[status];\n };\n\n const handleOnClose = () => {\n setNote(\"\");\n onClose();\n };\n\n const handleSubmit = status =>\n updatePendingRequest(\n {\n id: approvalDetails.id,\n payload: { status, note, [`${status}At`]: new Date() },\n },\n { onSuccess: handleOnClose }\n );\n\n return (\n <Pane\n {...{ isOpen }}\n className=\"flex flex-col\"\n size=\"large\"\n onClose={handleOnClose}\n >\n <Pane.Header className=\"space-y-2\">\n <Typography style=\"h2\">{title}</Typography>\n <Tag label={capitalize(status)} style={STATUS_TAG_STYLE[status]} />\n </Pane.Header>\n <Pane.Body className=\"h-auto flex-grow space-y-6 pb-6\">\n <div className=\"neeto-ui-rounded w-full divide-y border p-2\">\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">{getStatusLabel()}</Label>\n <Typography style=\"body2\" weight=\"medium\">\n {requesterOrApproverDetails}\n </Typography>\n </div>\n <div className=\"flex flex-col gap-2 p-2 lg:flex-row lg:gap-3\">\n <Label className=\"font-normal\">\n {t(\"neetoApprovals.common.created\")}\n </Label>\n <Typography style=\"body2\" weight=\"medium\">\n {dateFormat.defaultWithTime(timeInZone(createdAt))}\n </Typography>\n </div>\n </div>\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.inputs.labels.message\")}</Label>\n <MemoizedEditorContent\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\"\n content={message}\n />\n </div>\n {isPending && isCurrentUserApprover && (\n <Textarea\n className=\"w-full\"\n disabled={!isPending}\n label={t(\"neetoApprovals.common.note\")}\n value={note}\n placeholder={t(\"neetoApprovals.inputs.placeholders.add_\", {\n what: t(\"neetoApprovals.common.note\"),\n })}\n onChange={withEventTargetValue(setNote)}\n />\n )}\n {!isPending && note && (\n <div className=\"w-full space-y-2\">\n <Label>{t(\"neetoApprovals.common.note\")}</Label>\n <div className=\"neeto-ui-bg-gray-100 p-4\">{note}</div>\n </div>\n )}\n </Pane.Body>\n {isPending && (\n <Footer\n {...{\n handleSubmit,\n isCurrentUserApprover,\n isCurrentUserRequester,\n }}\n isLoading={isUpdateRequestPending}\n />\n )}\n </Pane>\n );\n};\n\nexport default RequestDetailsPane;\n"],"names":["Footer","_ref","isLoading","handleSubmit","isCurrentUserApprover","isCurrentUserRequester","_useTranslation","useTranslation","t","_jsxs","Pane","className","children","_jsx","Button","label","loading","type","onClick","STATUSES","approved","style","rejected","cancelled","dayjs","extend","utc","timezone","updateApprovalDetails","requestsData","approvalDetails","isPresent","requests","request","findBy","id","timeInZone","time","_globalProps$user","_globalProps$user2","globalProps","user","timeZone","tz","setDefault","getApprovalFilter","PENDING","value","TEMPLATES","PLURAL","HISTORY","MemoizedEditorContent","memo","EditorContent","RequestDetailsPane","_window$globalProps","_window$globalProps2","isOpen","onClose","_ref$isPending","isPending","title","_approvalDetails$stat","status","message","createdAt","approverName","approverEmail","_approvalDetails$note","note","initialNote","requesterName","requesterEmail","_useState","useState","_useState2","_slicedToArray","setNote","_useUpdateRequest","useUpdateRequest","updatePendingRequest","mutate","isUpdateRequestPending","useEffect","requesterOrApproverDetails","concat","window","email","getStatusLabel","STATUS_UPDATED_BY","handleOnClose","payload","_defineProperty","Date","onSuccess","size","Header","Typography","Tag","capitalize","STATUS_TAG_STYLE","Body","Label","weight","dateFormat","defaultWithTime","content","Textarea","disabled","placeholder","what","onChange","withEventTargetValue"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,35 +1,38 @@
1
1
  export { default as Approvals } from './Approvals.js';
2
2
  export { default as Form } from './Form.js';
3
3
  export { default as Public } from './Public.js';
4
- export { R as RequestDetailsPane } from './index-BBsNL9uK.js';
4
+ export { R as RequestDetailsPane } from './index-t8u9Sjvr.js';
5
5
  import '@babel/runtime/helpers/defineProperty';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import 'react';
8
8
  import '@bigbinary/neeto-commons-frontend/react-utils';
9
9
  import '@bigbinary/neeto-molecules/Container';
10
10
  import 'react-router-dom';
11
- import 'i18next';
11
+ import './useViewsApi-k6u7op_J.js';
12
+ import 'ramda';
12
13
  import '@bigbinary/neeto-commons-frontend/constants';
14
+ import '@tanstack/react-query';
15
+ import 'axios';
16
+ import './queryConstants-Vrcjv9lF.js';
17
+ import 'i18next';
13
18
  import '@bigbinary/neetoui/Button';
14
19
  import '@bigbinary/neeto-cist';
15
20
  import '@bigbinary/neeto-molecules/TableWrapper';
16
21
  import '@bigbinary/neetoui/Table';
17
22
  import '@bigbinary/neetoui/NoData';
18
- import 'ramda';
19
23
  import 'react-i18next';
24
+ import './useRequestsApi-DEGfFuv5.js';
20
25
  import '@bigbinary/neeto-molecules/DateFormat';
21
26
  import '@bigbinary/neetoui/Tag';
22
- import './constants-B5EiwxHH.js';
27
+ import './constants-qLYJlKc6.js';
23
28
  import '@bigbinary/neeto-editor/utils';
24
29
  import 'yup';
25
30
  import 'react/jsx-runtime';
26
31
  import '@babel/runtime/helpers/objectWithoutProperties';
27
32
  import '@bigbinary/neeto-molecules/PageLoader';
28
33
  import '@bigbinary/neetoui/Alert';
29
- import './useTemplatesApi-CwlWKJYa.js';
30
- import '@tanstack/react-query';
34
+ import './useTemplatesApi-BII_qvcl.js';
31
35
  import '@bigbinary/neeto-commons-frontend/utils';
32
- import 'axios';
33
36
  import '@bigbinary/neetoui/Pane';
34
37
  import '@bigbinary/neetoui/Typography';
35
38
  import '@bigbinary/neetoui/formik/ActionBlock';
@@ -46,9 +49,11 @@ import '@bigbinary/neeto-molecules/Header';
46
49
  import '@bigbinary/neetoui/Tab';
47
50
  import '@bigbinary/neeto-commons-frontend/initializers';
48
51
  import '@bigbinary/neetoui/Select';
52
+ import './useApproversApi-B7ChYonT.js';
49
53
  import '@bigbinary/neeto-molecules/CardLayout';
50
54
  import '@bigbinary/neetoui/Callout';
51
55
  import '@bigbinary/neetoui/Textarea';
56
+ import './useApprovalRequest-D_WJmB5t.js';
52
57
  import 'dayjs';
53
58
  import '@bigbinary/neeto-commons-frontend/utils/timezonePlugin';
54
59
  import 'dayjs/plugin/utc';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var BASE_URL = "neeto_approvals";
4
+ var TEMPLATE_URL = "".concat(BASE_URL, "/templates");
5
+
6
+ var QUERY_KEYS = {
7
+ APPROVERS: "neeto-approvals-approvers",
8
+ TEMPLATES: "neeto-approvals-templates",
9
+ REQUESTS: "neeto-approvals-requests",
10
+ SHOW_TEMPLATE: "neeto-approvals-show-template",
11
+ SHOW_PUBLIC_REQUEST: "neeto-approvals-show-public-request",
12
+ VIEWS: "neeto-approvals-views"
13
+ };
14
+
15
+ exports.BASE_URL = BASE_URL;
16
+ exports.QUERY_KEYS = QUERY_KEYS;
17
+ exports.TEMPLATE_URL = TEMPLATE_URL;
18
+ //# sourceMappingURL=queryConstants-DjYiOKxE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryConstants-DjYiOKxE.js","sources":["../app/javascript/src/common/constants.js","../app/javascript/src/common/queryConstants.js"],"sourcesContent":["export const MANAGE_MEMBER_PERMISSIONS = [\n \"members.manage_members\",\n \"agents.manage_agents\",\n];\nexport const DEFAULT_PERMISSION = true; // Until we add permission prop to all neeto apps, this is the default permission.\n\nexport const BASE_URL = \"neeto_approvals\";\nexport const TEMPLATE_URL = `${BASE_URL}/templates`;\n","export const QUERY_KEYS = {\n APPROVERS: \"neeto-approvals-approvers\",\n TEMPLATES: \"neeto-approvals-templates\",\n REQUESTS: \"neeto-approvals-requests\",\n SHOW_TEMPLATE: \"neeto-approvals-show-template\",\n SHOW_PUBLIC_REQUEST: \"neeto-approvals-show-public-request\",\n VIEWS: \"neeto-approvals-views\",\n};\n"],"names":["BASE_URL","TEMPLATE_URL","concat","QUERY_KEYS","APPROVERS","TEMPLATES","REQUESTS","SHOW_TEMPLATE","SHOW_PUBLIC_REQUEST","VIEWS"],"mappings":";;AAMO,IAAMA,QAAQ,GAAG;IACXC,YAAY,GAAA,EAAA,CAAAC,MAAA,CAAMF,QAAQ,EAAA,YAAA;;ACPhC,IAAMG,UAAU,GAAG;AACxBC,EAAAA,SAAS,EAAE,2BAA2B;AACtCC,EAAAA,SAAS,EAAE,2BAA2B;AACtCC,EAAAA,QAAQ,EAAE,0BAA0B;AACpCC,EAAAA,aAAa,EAAE,+BAA+B;AAC9CC,EAAAA,mBAAmB,EAAE,qCAAqC;AAC1DC,EAAAA,KAAK,EAAE;AACT;;;;;;"}
@@ -0,0 +1,14 @@
1
+ var BASE_URL = "neeto_approvals";
2
+ var TEMPLATE_URL = "".concat(BASE_URL, "/templates");
3
+
4
+ var QUERY_KEYS = {
5
+ APPROVERS: "neeto-approvals-approvers",
6
+ TEMPLATES: "neeto-approvals-templates",
7
+ REQUESTS: "neeto-approvals-requests",
8
+ SHOW_TEMPLATE: "neeto-approvals-show-template",
9
+ SHOW_PUBLIC_REQUEST: "neeto-approvals-show-public-request",
10
+ VIEWS: "neeto-approvals-views"
11
+ };
12
+
13
+ export { BASE_URL as B, QUERY_KEYS as Q, TEMPLATE_URL as T };
14
+ //# sourceMappingURL=queryConstants-Vrcjv9lF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryConstants-Vrcjv9lF.js","sources":["../app/javascript/src/common/constants.js","../app/javascript/src/common/queryConstants.js"],"sourcesContent":["export const MANAGE_MEMBER_PERMISSIONS = [\n \"members.manage_members\",\n \"agents.manage_agents\",\n];\nexport const DEFAULT_PERMISSION = true; // Until we add permission prop to all neeto apps, this is the default permission.\n\nexport const BASE_URL = \"neeto_approvals\";\nexport const TEMPLATE_URL = `${BASE_URL}/templates`;\n","export const QUERY_KEYS = {\n APPROVERS: \"neeto-approvals-approvers\",\n TEMPLATES: \"neeto-approvals-templates\",\n REQUESTS: \"neeto-approvals-requests\",\n SHOW_TEMPLATE: \"neeto-approvals-show-template\",\n SHOW_PUBLIC_REQUEST: \"neeto-approvals-show-public-request\",\n VIEWS: \"neeto-approvals-views\",\n};\n"],"names":["BASE_URL","TEMPLATE_URL","concat","QUERY_KEYS","APPROVERS","TEMPLATES","REQUESTS","SHOW_TEMPLATE","SHOW_PUBLIC_REQUEST","VIEWS"],"mappings":"AAMO,IAAMA,QAAQ,GAAG;IACXC,YAAY,GAAA,EAAA,CAAAC,MAAA,CAAMF,QAAQ,EAAA,YAAA;;ACPhC,IAAMG,UAAU,GAAG;AACxBC,EAAAA,SAAS,EAAE,2BAA2B;AACtCC,EAAAA,SAAS,EAAE,2BAA2B;AACtCC,EAAAA,QAAQ,EAAE,0BAA0B;AACpCC,EAAAA,aAAa,EAAE,+BAA+B;AAC9CC,EAAAA,mBAAmB,EAAE,qCAAqC;AAC1DC,EAAAA,KAAK,EAAE;AACT;;;;"}
@@ -0,0 +1,53 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import axios from 'axios';
5
+ import { B as BASE_URL, Q as QUERY_KEYS } from './queryConstants-Vrcjv9lF.js';
6
+
7
+ var show = function show(id) {
8
+ return axios.get("".concat(BASE_URL, "/public/requests/").concat(id));
9
+ };
10
+ var accept = function accept(_ref) {
11
+ var id = _ref.id,
12
+ note = _ref.note;
13
+ return axios.patch("".concat(BASE_URL, "/public/requests/").concat(id, "/accept"), {
14
+ note: note
15
+ });
16
+ };
17
+ var decline = function decline(_ref2) {
18
+ var id = _ref2.id,
19
+ note = _ref2.note;
20
+ return axios.patch("".concat(BASE_URL, "/public/requests/").concat(id, "/decline"), {
21
+ note: note
22
+ });
23
+ };
24
+ var publicRequestsApi = {
25
+ show: show,
26
+ accept: accept,
27
+ decline: decline
28
+ };
29
+
30
+ 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; }
31
+ 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; }
32
+ var useFetchPublicRequest = function useFetchPublicRequest(_ref, options) {
33
+ var requestId = _ref.requestId;
34
+ return useQuery(_objectSpread({
35
+ queryKey: [QUERY_KEYS.SHOW_PUBLIC_REQUEST, requestId],
36
+ queryFn: function queryFn() {
37
+ return publicRequestsApi.show(requestId);
38
+ }
39
+ }, options));
40
+ };
41
+ var useAcceptPendingRequest = function useAcceptPendingRequest(options) {
42
+ return useMutationWithInvalidation(publicRequestsApi.accept, _objectSpread({
43
+ keysToInvalidate: [[QUERY_KEYS.SHOW_PUBLIC_REQUEST], [QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
44
+ }, options));
45
+ };
46
+ var useDeclinePendingRequest = function useDeclinePendingRequest(options) {
47
+ return useMutationWithInvalidation(publicRequestsApi.decline, _objectSpread({
48
+ keysToInvalidate: [[QUERY_KEYS.SHOW_PUBLIC_REQUEST], [QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
49
+ }, options));
50
+ };
51
+
52
+ export { useAcceptPendingRequest as a, useDeclinePendingRequest as b, useFetchPublicRequest as u };
53
+ //# sourceMappingURL=useApprovalRequest-D_WJmB5t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApprovalRequest-D_WJmB5t.js","sources":["../app/javascript/src/apis/public/requests.js","../app/javascript/src/hooks/reactQuery/public/requests/useApprovalRequest.js"],"sourcesContent":["import axios from \"axios\";\nimport { BASE_URL } from \"common/constants\";\n\nconst show = id => axios.get(`${BASE_URL}/public/requests/${id}`);\n\nconst accept = ({ id, note }) =>\n axios.patch(`${BASE_URL}/public/requests/${id}/accept`, { note });\n\nconst decline = ({ id, note }) =>\n axios.patch(`${BASE_URL}/public/requests/${id}/decline`, { note });\n\nconst publicRequestsApi = { show, accept, decline };\n\nexport default publicRequestsApi;\n","import { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { useQuery } from \"@tanstack/react-query\";\n\nimport publicRequestsApi from \"apis/public/requests\";\nimport { QUERY_KEYS } from \"common/queryConstants\";\n\nconst useFetchPublicRequest = ({ requestId }, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.SHOW_PUBLIC_REQUEST, requestId],\n queryFn: () => publicRequestsApi.show(requestId),\n ...options,\n });\n\nconst useAcceptPendingRequest = options =>\n useMutationWithInvalidation(publicRequestsApi.accept, {\n keysToInvalidate: [\n [QUERY_KEYS.SHOW_PUBLIC_REQUEST],\n [QUERY_KEYS.REQUESTS],\n [QUERY_KEYS.VIEWS],\n ],\n ...options,\n });\n\nconst useDeclinePendingRequest = options =>\n useMutationWithInvalidation(publicRequestsApi.decline, {\n keysToInvalidate: [\n [QUERY_KEYS.SHOW_PUBLIC_REQUEST],\n [QUERY_KEYS.REQUESTS],\n [QUERY_KEYS.VIEWS],\n ],\n ...options,\n });\n\nexport {\n useFetchPublicRequest,\n useAcceptPendingRequest,\n useDeclinePendingRequest,\n};\n"],"names":["show","id","axios","get","concat","BASE_URL","accept","_ref","note","patch","decline","_ref2","publicRequestsApi","useFetchPublicRequest","options","requestId","useQuery","_objectSpread","queryKey","QUERY_KEYS","SHOW_PUBLIC_REQUEST","queryFn","useAcceptPendingRequest","useMutationWithInvalidation","keysToInvalidate","REQUESTS","VIEWS","useDeclinePendingRequest"],"mappings":";;;;;;AAGA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,CAAGC,EAAE,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAA,EAAA,CAAAC,MAAA,CAAIC,QAAQ,EAAA,mBAAA,CAAA,CAAAD,MAAA,CAAoBH,EAAE,CAAE,CAAC;AAAA,CAAA;AAEjE,IAAMK,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMN,EAAE,GAAAM,IAAA,CAAFN,EAAE;IAAEO,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAAA,OACxBN,KAAK,CAACO,KAAK,CAAA,EAAA,CAAAL,MAAA,CAAIC,QAAQ,EAAA,mBAAA,CAAA,CAAAD,MAAA,CAAoBH,EAAE,EAAA,SAAA,CAAA,EAAW;AAAEO,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC;AAAA,CAAA;AAEnE,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMV,EAAE,GAAAU,KAAA,CAAFV,EAAE;IAAEO,IAAI,GAAAG,KAAA,CAAJH,IAAI;EAAA,OACzBN,KAAK,CAACO,KAAK,CAAA,EAAA,CAAAL,MAAA,CAAIC,QAAQ,EAAA,mBAAA,CAAA,CAAAD,MAAA,CAAoBH,EAAE,EAAA,UAAA,CAAA,EAAY;AAAEO,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC;AAAA,CAAA;AAEpE,IAAMI,iBAAiB,GAAG;AAAEZ,EAAAA,IAAI,EAAJA,IAAI;AAAEM,EAAAA,MAAM,EAANA,MAAM;AAAEI,EAAAA,OAAO,EAAPA;AAAQ,CAAC;;;;ACLnD,IAAMG,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAN,IAAA,EAAmBO,OAAO,EAAA;AAAA,EAAA,IAApBC,SAAS,GAAAR,IAAA,CAATQ,SAAS;EAAA,OACxCC,QAAQ,CAAAC,aAAA,CAAA;AACNC,IAAAA,QAAQ,EAAE,CAACC,UAAU,CAACC,mBAAmB,EAAEL,SAAS,CAAC;IACrDM,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQT,iBAAiB,CAACZ,IAAI,CAACe,SAAS,CAAC;AAAA,IAAA;GAAA,EAC7CD,OAAO,CACX,CAAC;AAAA;AAEJ,IAAMQ,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGR,OAAO,EAAA;AAAA,EAAA,OACrCS,2BAA2B,CAACX,iBAAiB,CAACN,MAAM,EAAAW,aAAA,CAAA;AAClDO,IAAAA,gBAAgB,EAAE,CAChB,CAACL,UAAU,CAACC,mBAAmB,CAAC,EAChC,CAACD,UAAU,CAACM,QAAQ,CAAC,EACrB,CAACN,UAAU,CAACO,KAAK,CAAC;GACnB,EACEZ,OAAO,CACX,CAAC;AAAA;AAEJ,IAAMa,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGb,OAAO,EAAA;AAAA,EAAA,OACtCS,2BAA2B,CAACX,iBAAiB,CAACF,OAAO,EAAAO,aAAA,CAAA;AACnDO,IAAAA,gBAAgB,EAAE,CAChB,CAACL,UAAU,CAACC,mBAAmB,CAAC,EAChC,CAACD,UAAU,CAACM,QAAQ,CAAC,EACrB,CAACN,UAAU,CAACO,KAAK,CAAC;GACnB,EACEZ,OAAO,CACX,CAAC;AAAA;;;;"}