@bigbinary/neeto-approvals-frontend 1.1.0 → 1.2.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.
- package/dist/Approvals.js +1088 -0
- package/dist/Approvals.js.map +1 -0
- package/dist/Form.js +219 -0
- package/dist/Form.js.map +1 -0
- package/dist/Public.js +174 -0
- package/dist/Public.js.map +1 -0
- package/dist/RequestDetailsPane.js +26 -0
- package/dist/RequestDetailsPane.js.map +1 -0
- package/dist/cjs/Approvals.js +1136 -0
- package/dist/cjs/Approvals.js.map +1 -0
- package/dist/cjs/Form.js +231 -0
- package/dist/cjs/Form.js.map +1 -0
- package/dist/cjs/Public.js +188 -0
- package/dist/cjs/Public.js.map +1 -0
- package/dist/cjs/RequestDetailsPane.js +32 -0
- package/dist/cjs/RequestDetailsPane.js.map +1 -0
- package/dist/cjs/index.js +62 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/constants-752da2ba.js +158 -0
- package/dist/constants-752da2ba.js.map +1 -0
- package/dist/constants-d561fb6c.js +194 -0
- package/dist/constants-d561fb6c.js.map +1 -0
- package/dist/index-458211fe.js +271 -0
- package/dist/index-458211fe.js.map +1 -0
- package/dist/index-c6f5a782.js +290 -0
- package/dist/index-c6f5a782.js.map +1 -0
- package/dist/index.js +50 -1919
- package/dist/index.js.map +1 -1
- package/dist/useTemplatesApi-5d82bdca.js +107 -0
- package/dist/useTemplatesApi-5d82bdca.js.map +1 -0
- package/dist/useTemplatesApi-dc60dcdd.js +97 -0
- package/dist/useTemplatesApi-dc60dcdd.js.map +1 -0
- package/package.json +24 -12
- package/dist/index.cjs.js +0 -1979
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var i18next = require('i18next');
|
|
4
|
+
var utils = require('@bigbinary/neeto-editor/utils');
|
|
5
|
+
var yup = require('yup');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n["default"] = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
26
|
+
|
|
27
|
+
function _typeof(o) {
|
|
28
|
+
"@babel/helpers - typeof";
|
|
29
|
+
|
|
30
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
31
|
+
return typeof o;
|
|
32
|
+
} : function (o) {
|
|
33
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
34
|
+
}, _typeof(o);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _toPrimitive(input, hint) {
|
|
38
|
+
if (_typeof(input) !== "object" || input === null) return input;
|
|
39
|
+
var prim = input[Symbol.toPrimitive];
|
|
40
|
+
if (prim !== undefined) {
|
|
41
|
+
var res = prim.call(input, hint || "default");
|
|
42
|
+
if (_typeof(res) !== "object") return res;
|
|
43
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
44
|
+
}
|
|
45
|
+
return (hint === "string" ? String : Number)(input);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function _toPropertyKey(arg) {
|
|
49
|
+
var key = _toPrimitive(arg, "string");
|
|
50
|
+
return _typeof(key) === "symbol" ? key : String(key);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function _defineProperty(obj, key, value) {
|
|
54
|
+
key = _toPropertyKey(key);
|
|
55
|
+
if (key in obj) {
|
|
56
|
+
Object.defineProperty(obj, key, {
|
|
57
|
+
value: value,
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
obj[key] = value;
|
|
64
|
+
}
|
|
65
|
+
return obj;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function _arrayWithHoles(arr) {
|
|
69
|
+
if (Array.isArray(arr)) return arr;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function _iterableToArrayLimit(r, l) {
|
|
73
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
74
|
+
if (null != t) {
|
|
75
|
+
var e,
|
|
76
|
+
n,
|
|
77
|
+
i,
|
|
78
|
+
u,
|
|
79
|
+
a = [],
|
|
80
|
+
f = !0,
|
|
81
|
+
o = !1;
|
|
82
|
+
try {
|
|
83
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
|
84
|
+
if (Object(t) !== t) return;
|
|
85
|
+
f = !1;
|
|
86
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
87
|
+
} catch (r) {
|
|
88
|
+
o = !0, n = r;
|
|
89
|
+
} finally {
|
|
90
|
+
try {
|
|
91
|
+
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
|
92
|
+
} finally {
|
|
93
|
+
if (o) throw n;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return a;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function _arrayLikeToArray(arr, len) {
|
|
101
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
102
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
103
|
+
return arr2;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
107
|
+
if (!o) return;
|
|
108
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
109
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
110
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
111
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
112
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function _nonIterableRest() {
|
|
116
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function _slicedToArray(arr, i) {
|
|
120
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var BASE_URL = "neeto_approvals";
|
|
124
|
+
var TEMPLATE_URL = "".concat(BASE_URL, "/templates");
|
|
125
|
+
|
|
126
|
+
var QUERY_KEYS = {
|
|
127
|
+
APPROVERS: "neeto-approvals-approvers",
|
|
128
|
+
TEMPLATES: "neeto-approvals-templates",
|
|
129
|
+
REQUESTS: "neeto-approvals-requests",
|
|
130
|
+
SHOW_TEMPLATE: "neeto-approvals-show-template",
|
|
131
|
+
SHOW_PUBLIC_REQUEST: "neeto-approvals-show-public-request",
|
|
132
|
+
VIEWS: "neeto-approvals-views"
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
var DEFAULT_FILTER_VALUES = {
|
|
136
|
+
searchTerm: "",
|
|
137
|
+
sortBy: "",
|
|
138
|
+
orderBy: ""
|
|
139
|
+
};
|
|
140
|
+
var SEARCH_DELAY = 750;
|
|
141
|
+
var STATUSES = {
|
|
142
|
+
approved: "approved",
|
|
143
|
+
rejected: "rejected",
|
|
144
|
+
pending: "pending",
|
|
145
|
+
cancelled: "cancelled"
|
|
146
|
+
};
|
|
147
|
+
var STATUS_TAG_STYLE = {
|
|
148
|
+
pending: "primary",
|
|
149
|
+
approved: "success",
|
|
150
|
+
rejected: "danger",
|
|
151
|
+
cancelled: "warning"
|
|
152
|
+
};
|
|
153
|
+
var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
|
|
154
|
+
message: "",
|
|
155
|
+
approver: {}
|
|
156
|
+
};
|
|
157
|
+
var STATUS_UPDATED_BY = {
|
|
158
|
+
rejected: i18next.t("neetoApprovals.common.rejectedBy"),
|
|
159
|
+
approved: i18next.t("neetoApprovals.common.approvedBy"),
|
|
160
|
+
cancelled: i18next.t("neetoApprovals.common.cancelledBy")
|
|
161
|
+
};
|
|
162
|
+
var DATA_CY_KEY = "data-cy";
|
|
163
|
+
var SORT_ORDER = {
|
|
164
|
+
ascend: "asc",
|
|
165
|
+
descend: "desc"
|
|
166
|
+
};
|
|
167
|
+
var REQUEST_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
|
|
168
|
+
message: yup__namespace.string().test("message", i18next.t("neetoApprovals.validations.required", {
|
|
169
|
+
what: i18next.t("neetoApprovals.inputs.labels.message")
|
|
170
|
+
}), function (content) {
|
|
171
|
+
return !utils.isEditorEmpty(content);
|
|
172
|
+
}),
|
|
173
|
+
approver: yup__namespace.object().required(i18next.t("neetoApprovals.validations.approver"))
|
|
174
|
+
});
|
|
175
|
+
var EVENTS = {
|
|
176
|
+
APPROVAL_TEMPLATE_CREATED: "approval_template_created"
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
exports.APPROVAL_REQUEST_FORM_INITIAL_VALUES = APPROVAL_REQUEST_FORM_INITIAL_VALUES;
|
|
180
|
+
exports.BASE_URL = BASE_URL;
|
|
181
|
+
exports.DATA_CY_KEY = DATA_CY_KEY;
|
|
182
|
+
exports.DEFAULT_FILTER_VALUES = DEFAULT_FILTER_VALUES;
|
|
183
|
+
exports.EVENTS = EVENTS;
|
|
184
|
+
exports.QUERY_KEYS = QUERY_KEYS;
|
|
185
|
+
exports.REQUEST_FORM_VALIDATION_SCHEMA = REQUEST_FORM_VALIDATION_SCHEMA;
|
|
186
|
+
exports.SEARCH_DELAY = SEARCH_DELAY;
|
|
187
|
+
exports.SORT_ORDER = SORT_ORDER;
|
|
188
|
+
exports.STATUSES = STATUSES;
|
|
189
|
+
exports.STATUS_TAG_STYLE = STATUS_TAG_STYLE;
|
|
190
|
+
exports.STATUS_UPDATED_BY = STATUS_UPDATED_BY;
|
|
191
|
+
exports.TEMPLATE_URL = TEMPLATE_URL;
|
|
192
|
+
exports._defineProperty = _defineProperty;
|
|
193
|
+
exports._slicedToArray = _slicedToArray;
|
|
194
|
+
//# sourceMappingURL=constants-d561fb6c.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-d561fb6c.js","sources":["../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../app/javascript/src/common/constants.js","../app/javascript/src/common/queryConstants.js","../app/javascript/src/components/Approvals/constants.js"],"sourcesContent":["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","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","import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport * as yup from \"yup\";\n\nexport const DEFAULT_RADIX = 10;\n\nexport const DEFAULT_FILTER_VALUES = {\n searchTerm: \"\",\n sortBy: \"\",\n orderBy: \"\",\n};\n\nexport const SEARCH_DELAY = 750;\n\nexport const STATUSES = {\n approved: \"approved\",\n rejected: \"rejected\",\n pending: \"pending\",\n cancelled: \"cancelled\",\n};\n\nexport const STATUS_TAG_STYLE = {\n pending: \"primary\",\n approved: \"success\",\n rejected: \"danger\",\n cancelled: \"warning\",\n};\n\nexport const APPROVAL_REQUEST_FORM_INITIAL_VALUES = {\n message: \"\",\n approver: {},\n};\n\nexport const STATUS_UPDATED_BY = {\n rejected: t(\"neetoApprovals.common.rejectedBy\"),\n approved: t(\"neetoApprovals.common.approvedBy\"),\n cancelled: t(\"neetoApprovals.common.cancelledBy\"),\n};\n\nexport const DATA_CY_KEY = \"data-cy\";\n\nexport const SORT_ORDER = { ascend: \"asc\", descend: \"desc\" };\n\nexport const REQUEST_FORM_VALIDATION_SCHEMA = yup.object().shape({\n message: yup.string().test(\n \"message\",\n t(\"neetoApprovals.validations.required\", {\n what: t(\"neetoApprovals.inputs.labels.message\"),\n }),\n content => !isEditorEmpty(content)\n ),\n approver: yup.object().required(t(\"neetoApprovals.validations.approver\")),\n});\n\nexport const EVENTS = {\n APPROVAL_TEMPLATE_CREATED: \"approval_template_created\",\n};\n"],"names":["toPrimitive","toPropertyKey","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","BASE_URL","TEMPLATE_URL","concat","QUERY_KEYS","APPROVERS","TEMPLATES","REQUESTS","SHOW_TEMPLATE","SHOW_PUBLIC_REQUEST","VIEWS","DEFAULT_FILTER_VALUES","searchTerm","sortBy","orderBy","SEARCH_DELAY","STATUSES","approved","rejected","pending","cancelled","STATUS_TAG_STYLE","APPROVAL_REQUEST_FORM_INITIAL_VALUES","message","approver","STATUS_UPDATED_BY","t","DATA_CY_KEY","SORT_ORDER","ascend","descend","REQUEST_FORM_VALIDATION_SCHEMA","yup","object","shape","string","test","what","content","isEditorEmpty","required","EVENTS","APPROVAL_TEMPLATE_CREATED"],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { B as BASE_URL, c as _defineProperty, Q as QUERY_KEYS, b as STATUSES, _ as _slicedToArray, S as STATUS_TAG_STYLE, f as STATUS_UPDATED_BY } from './constants-752da2ba.js';
|
|
2
|
+
import { useState, useEffect, memo } from 'react';
|
|
3
|
+
import { isPresent, findBy, capitalize } from '@bigbinary/neeto-cist';
|
|
4
|
+
import { dateFormat, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils';
|
|
5
|
+
import EditorContent from '@bigbinary/neeto-editor/EditorContent';
|
|
6
|
+
import Label from '@bigbinary/neetoui/Label';
|
|
7
|
+
import Pane from '@bigbinary/neetoui/Pane';
|
|
8
|
+
import Tag from '@bigbinary/neetoui/Tag';
|
|
9
|
+
import Textarea from '@bigbinary/neetoui/Textarea';
|
|
10
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
12
|
+
import { useQuery, keepPreviousData } from '@tanstack/react-query';
|
|
13
|
+
import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
14
|
+
import axios from 'axios';
|
|
15
|
+
import Button from '@bigbinary/neetoui/Button';
|
|
16
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
17
|
+
import dayjs from 'dayjs';
|
|
18
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
19
|
+
import utc from 'dayjs/plugin/utc';
|
|
20
|
+
import { t } from 'i18next';
|
|
21
|
+
import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
22
|
+
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
23
|
+
|
|
24
|
+
var fetch = function fetch(params, url) {
|
|
25
|
+
return axios.get(url, {
|
|
26
|
+
params: params
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
var update = function update(_ref) {
|
|
30
|
+
var id = _ref.id,
|
|
31
|
+
payload = _ref.payload;
|
|
32
|
+
return axios.put("".concat(BASE_URL, "/requests/").concat(id), {
|
|
33
|
+
request: payload
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var requestsApi = {
|
|
37
|
+
fetch: fetch,
|
|
38
|
+
update: update
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
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; }
|
|
42
|
+
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; }
|
|
43
|
+
var useFetchRequests = function useFetchRequests(_ref) {
|
|
44
|
+
var requestUrl = _ref.requestUrl,
|
|
45
|
+
_ref$params = _ref.params,
|
|
46
|
+
params = _ref$params === void 0 ? {} : _ref$params,
|
|
47
|
+
_ref$options = _ref.options,
|
|
48
|
+
options = _ref$options === void 0 ? {} : _ref$options;
|
|
49
|
+
return useQuery(_objectSpread({
|
|
50
|
+
queryKey: [QUERY_KEYS.REQUESTS, params],
|
|
51
|
+
queryFn: function queryFn() {
|
|
52
|
+
return requestsApi.fetch(params, requestUrl);
|
|
53
|
+
},
|
|
54
|
+
select: function select(response) {
|
|
55
|
+
return response.data || response;
|
|
56
|
+
},
|
|
57
|
+
placeholderData: keepPreviousData
|
|
58
|
+
}, options));
|
|
59
|
+
};
|
|
60
|
+
var useUpdateRequest = function useUpdateRequest(options) {
|
|
61
|
+
return useMutationWithInvalidation(requestsApi.update, _objectSpread({
|
|
62
|
+
keysToInvalidate: [[QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
|
|
63
|
+
}, options));
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
var Footer = function Footer(_ref) {
|
|
67
|
+
var isLoading = _ref.isLoading,
|
|
68
|
+
handleSubmit = _ref.handleSubmit,
|
|
69
|
+
isCurrentUserApprover = _ref.isCurrentUserApprover,
|
|
70
|
+
isCurrentUserRequester = _ref.isCurrentUserRequester;
|
|
71
|
+
var _useTranslation = useTranslation(),
|
|
72
|
+
t = _useTranslation.t;
|
|
73
|
+
if (!isCurrentUserApprover && !isCurrentUserRequester) return null;
|
|
74
|
+
if (isCurrentUserApprover) {
|
|
75
|
+
return /*#__PURE__*/jsxs(Pane.Footer, {
|
|
76
|
+
className: "flex gap-x-2",
|
|
77
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
78
|
+
label: t("neetoApprovals.buttons.approve"),
|
|
79
|
+
loading: isLoading,
|
|
80
|
+
type: "submit",
|
|
81
|
+
onClick: function onClick() {
|
|
82
|
+
return handleSubmit(STATUSES.approved);
|
|
83
|
+
}
|
|
84
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
85
|
+
label: t("neetoApprovals.buttons.decline"),
|
|
86
|
+
loading: isLoading,
|
|
87
|
+
style: "text",
|
|
88
|
+
onClick: function onClick() {
|
|
89
|
+
return handleSubmit(STATUSES.rejected);
|
|
90
|
+
}
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return /*#__PURE__*/jsx(Pane.Footer, {
|
|
95
|
+
className: "flex gap-x-2",
|
|
96
|
+
children: /*#__PURE__*/jsx(Button, {
|
|
97
|
+
label: t("neetoApprovals.buttons.cancelRequest"),
|
|
98
|
+
loading: isLoading,
|
|
99
|
+
type: "submit",
|
|
100
|
+
onClick: function onClick() {
|
|
101
|
+
return handleSubmit(STATUSES.cancelled);
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
dayjs.extend(utc);
|
|
108
|
+
dayjs.extend(timezone);
|
|
109
|
+
var updateApprovalDetails = function updateApprovalDetails(_ref) {
|
|
110
|
+
var requestsData = _ref.requestsData,
|
|
111
|
+
approvalDetails = _ref.approvalDetails;
|
|
112
|
+
if (isPresent(requestsData === null || requestsData === void 0 ? void 0 : requestsData.requests) && isPresent(approvalDetails)) {
|
|
113
|
+
var request = findBy({
|
|
114
|
+
id: approvalDetails.id
|
|
115
|
+
}, requestsData.requests) || {};
|
|
116
|
+
return request;
|
|
117
|
+
}
|
|
118
|
+
return {};
|
|
119
|
+
};
|
|
120
|
+
var timeInZone = function timeInZone(time) {
|
|
121
|
+
var _globalProps$user, _globalProps$user2;
|
|
122
|
+
((_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.timeZone) && dayjs.tz.setDefault((_globalProps$user2 = globalProps.user) === null || _globalProps$user2 === void 0 ? void 0 : _globalProps$user2.timeZone);
|
|
123
|
+
return dayjs(time).tz();
|
|
124
|
+
};
|
|
125
|
+
var getApprovalFilter = function getApprovalFilter() {
|
|
126
|
+
return {
|
|
127
|
+
PENDING: {
|
|
128
|
+
label: t("neetoApprovals.common.pending"),
|
|
129
|
+
value: "PENDING"
|
|
130
|
+
},
|
|
131
|
+
TEMPLATES: {
|
|
132
|
+
label: t("neetoApprovals.common.template", PLURAL),
|
|
133
|
+
value: "TEMPLATES"
|
|
134
|
+
},
|
|
135
|
+
HISTORY: {
|
|
136
|
+
label: t("neetoApprovals.common.history"),
|
|
137
|
+
value: "HISTORY"
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
var MemoizedEditorContent = /*#__PURE__*/memo(EditorContent);
|
|
143
|
+
var RequestDetailsPane = function RequestDetailsPane(_ref) {
|
|
144
|
+
var _window$globalProps, _window$globalProps2;
|
|
145
|
+
var isOpen = _ref.isOpen,
|
|
146
|
+
onClose = _ref.onClose,
|
|
147
|
+
approvalDetails = _ref.approvalDetails,
|
|
148
|
+
_ref$isPending = _ref.isPending,
|
|
149
|
+
isPending = _ref$isPending === void 0 ? false : _ref$isPending;
|
|
150
|
+
var _useTranslation = useTranslation(),
|
|
151
|
+
t = _useTranslation.t;
|
|
152
|
+
var title = approvalDetails.title,
|
|
153
|
+
_approvalDetails$stat = approvalDetails.status,
|
|
154
|
+
status = _approvalDetails$stat === void 0 ? "" : _approvalDetails$stat,
|
|
155
|
+
message = approvalDetails.message,
|
|
156
|
+
createdAt = approvalDetails.createdAt,
|
|
157
|
+
approverName = approvalDetails.approverName,
|
|
158
|
+
approverEmail = approvalDetails.approverEmail,
|
|
159
|
+
_approvalDetails$note = approvalDetails.note,
|
|
160
|
+
initialNote = _approvalDetails$note === void 0 ? "" : _approvalDetails$note,
|
|
161
|
+
requesterName = approvalDetails.requesterName,
|
|
162
|
+
requesterEmail = approvalDetails.requesterEmail;
|
|
163
|
+
var _useState = useState(initialNote),
|
|
164
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
165
|
+
note = _useState2[0],
|
|
166
|
+
setNote = _useState2[1];
|
|
167
|
+
var _useUpdateRequest = useUpdateRequest(),
|
|
168
|
+
updatePendingRequest = _useUpdateRequest.mutate,
|
|
169
|
+
isUpdateRequestPending = _useUpdateRequest.isPending;
|
|
170
|
+
useEffect(function () {
|
|
171
|
+
setNote(initialNote);
|
|
172
|
+
}, [initialNote]);
|
|
173
|
+
var requesterOrApproverDetails = status === STATUSES.cancelled ? "".concat(requesterName, " (").concat(requesterEmail, ")") : "".concat(approverName, " (").concat(approverEmail, ")");
|
|
174
|
+
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;
|
|
175
|
+
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;
|
|
176
|
+
var getStatusLabel = function getStatusLabel() {
|
|
177
|
+
if (isPending) {
|
|
178
|
+
return t("neetoApprovals.common.waitingFor");
|
|
179
|
+
}
|
|
180
|
+
return STATUS_UPDATED_BY[status];
|
|
181
|
+
};
|
|
182
|
+
var handleOnClose = function handleOnClose() {
|
|
183
|
+
setNote("");
|
|
184
|
+
onClose();
|
|
185
|
+
};
|
|
186
|
+
var handleSubmit = function handleSubmit(status) {
|
|
187
|
+
return updatePendingRequest({
|
|
188
|
+
id: approvalDetails.id,
|
|
189
|
+
payload: _defineProperty({
|
|
190
|
+
status: status,
|
|
191
|
+
note: note
|
|
192
|
+
}, "".concat(status, "At"), new Date())
|
|
193
|
+
}, {
|
|
194
|
+
onSuccess: handleOnClose
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
return /*#__PURE__*/jsxs(Pane, {
|
|
198
|
+
isOpen: isOpen,
|
|
199
|
+
size: "large",
|
|
200
|
+
onClose: handleOnClose,
|
|
201
|
+
children: [/*#__PURE__*/jsxs(Pane.Header, {
|
|
202
|
+
className: "space-y-2",
|
|
203
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
204
|
+
style: "h2",
|
|
205
|
+
children: title
|
|
206
|
+
}), /*#__PURE__*/jsx(Tag, {
|
|
207
|
+
label: capitalize(status),
|
|
208
|
+
style: STATUS_TAG_STYLE[status]
|
|
209
|
+
})]
|
|
210
|
+
}), /*#__PURE__*/jsxs(Pane.Body, {
|
|
211
|
+
className: "space-y-6",
|
|
212
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
213
|
+
className: "w-full divide-y border px-3",
|
|
214
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
215
|
+
className: "flex space-x-3 p-2",
|
|
216
|
+
children: [/*#__PURE__*/jsx(Label, {
|
|
217
|
+
className: "font-normal",
|
|
218
|
+
children: getStatusLabel()
|
|
219
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
220
|
+
style: "body2",
|
|
221
|
+
weight: "medium",
|
|
222
|
+
children: requesterOrApproverDetails
|
|
223
|
+
})]
|
|
224
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
225
|
+
className: "flex space-x-3 p-2",
|
|
226
|
+
children: [/*#__PURE__*/jsx(Label, {
|
|
227
|
+
className: "font-normal",
|
|
228
|
+
children: t("neetoApprovals.common.created")
|
|
229
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
230
|
+
style: "body2",
|
|
231
|
+
weight: "medium",
|
|
232
|
+
children: dateFormat.defaultWithTime(timeInZone(createdAt))
|
|
233
|
+
})]
|
|
234
|
+
})]
|
|
235
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
236
|
+
className: "w-full space-y-2",
|
|
237
|
+
children: [/*#__PURE__*/jsx(Label, {
|
|
238
|
+
children: t("neetoApprovals.inputs.labels.message")
|
|
239
|
+
}), /*#__PURE__*/jsx(MemoizedEditorContent, {
|
|
240
|
+
className: "neeto-ui-bg-gray-100 p-4",
|
|
241
|
+
content: message
|
|
242
|
+
})]
|
|
243
|
+
}), isPending && isCurrentUserApprover && /*#__PURE__*/jsx(Textarea, {
|
|
244
|
+
className: "w-full",
|
|
245
|
+
disabled: !isPending,
|
|
246
|
+
label: t("neetoApprovals.common.note"),
|
|
247
|
+
value: note,
|
|
248
|
+
placeholder: t("neetoApprovals.inputs.placeholders.add_", {
|
|
249
|
+
what: t("neetoApprovals.common.note")
|
|
250
|
+
}),
|
|
251
|
+
onChange: withEventTargetValue(setNote)
|
|
252
|
+
}), !isPending && note && /*#__PURE__*/jsxs("div", {
|
|
253
|
+
className: "w-full space-y-2",
|
|
254
|
+
children: [/*#__PURE__*/jsx(Label, {
|
|
255
|
+
children: t("neetoApprovals.common.note")
|
|
256
|
+
}), /*#__PURE__*/jsx("div", {
|
|
257
|
+
className: "neeto-ui-bg-gray-100 p-4",
|
|
258
|
+
children: note
|
|
259
|
+
})]
|
|
260
|
+
})]
|
|
261
|
+
}), isPending && /*#__PURE__*/jsx(Footer, {
|
|
262
|
+
handleSubmit: handleSubmit,
|
|
263
|
+
isCurrentUserApprover: isCurrentUserApprover,
|
|
264
|
+
isCurrentUserRequester: isCurrentUserRequester,
|
|
265
|
+
isLoading: isUpdateRequestPending
|
|
266
|
+
})]
|
|
267
|
+
});
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
export { RequestDetailsPane as R, updateApprovalDetails as a, getApprovalFilter as g, useFetchRequests as u };
|
|
271
|
+
//# sourceMappingURL=index-458211fe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-458211fe.js","sources":["../app/javascript/src/apis/requests.js","../app/javascript/src/hooks/reactQuery/requests/useRequestsApi.js","../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 axios from \"axios\";\n\nimport { BASE_URL } from \"common/constants\";\n\nconst fetch = (params, url) => axios.get(url, { params });\n\nconst update = ({ id, payload }) =>\n axios.put(`${BASE_URL}/requests/${id}`, { request: payload });\n\nconst requestsApi = { fetch, update };\n\nexport default requestsApi;\n","import { keepPreviousData, useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport requestsApi from \"apis/requests\";\nimport { QUERY_KEYS } from \"common/queryConstants\";\n\nconst useFetchRequests = ({ requestUrl, params = {}, options = {} }) =>\n useQuery({\n queryKey: [QUERY_KEYS.REQUESTS, params],\n queryFn: () => requestsApi.fetch(params, requestUrl),\n select: response => response.data || response,\n placeholderData: keepPreviousData,\n ...options,\n });\n\nconst useUpdateRequest = options =>\n useMutationWithInvalidation(requestsApi.update, {\n keysToInvalidate: [[QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]],\n ...options,\n });\n\nexport { useFetchRequests, useUpdateRequest };\n","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 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 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 {...{ isOpen }} size=\"large\" onClose={handleOnClose}>\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=\"space-y-6\">\n <div className=\"w-full divide-y border px-3\">\n <div className=\"flex space-x-3 p-2\">\n <Label className=\"font-normal\">{getStatusLabel()}</Label>\n <Typography style=\"body2\" weight=\"medium\">\n {requesterOrApproverDetails}\n </Typography>\n </div>\n <div className=\"flex space-x-3 p-2\">\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 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":["fetch","params","url","axios","get","update","_ref","id","payload","put","concat","BASE_URL","request","requestsApi","useFetchRequests","requestUrl","_ref$params","_ref$options","options","useQuery","_objectSpread","queryKey","QUERY_KEYS","REQUESTS","queryFn","select","response","data","placeholderData","keepPreviousData","useUpdateRequest","useMutationWithInvalidation","keysToInvalidate","VIEWS","Footer","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","findBy","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","updatePendingRequest","mutate","isUpdateRequestPending","useEffect","requesterOrApproverDetails","window","email","getStatusLabel","STATUS_UPDATED_BY","handleOnClose","_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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"}
|