@bigbinary/neeto-approvals-frontend 0.2.7 → 0.2.9

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/index.js CHANGED
@@ -1,27 +1,26 @@
1
- import React, { useMemo, useState, useCallback, useEffect, useRef } from 'react';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
2
  import Container from '@bigbinary/neeto-molecules/Container';
3
- import { useLocation, useHistory, Link, Switch, Route, Redirect, useParams } from 'react-router-dom';
3
+ import { Link, useLocation, useHistory, Switch, Route, Redirect, useParams } from 'react-router-dom';
4
4
  import i18next, { t as t$1 } from 'i18next';
5
- import * as yup from 'yup';
6
- import { DEFAULT_PAGE_INDEX, SINGULAR, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
7
- import { Pane, Typography, Button, Dropdown, NoData, Table as Table$1, Alert, Tag, Label, Textarea, Tab as Tab$1, Select as Select$1, Callout } from '@bigbinary/neetoui';
8
- import { useMutationWithInvalidation, useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
9
- import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
5
+ import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE, PLURAL, SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
6
+ import { Button, Tag, Pane, Typography, Label, Textarea, Table as Table$1, NoData, Alert, Tab as Tab$1, Select as Select$1, Callout } from '@bigbinary/neetoui';
7
+ import { curryN, isNil, curry, complement, either, isEmpty, keys } from 'ramda';
8
+ import { useMutationWithInvalidation, useDebounce, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
10
9
  import { useTranslation, Trans } from 'react-i18next';
11
- import { isEmpty, curryN, isNil, complement, either, curry, fromPairs, assoc, keys, modify } from 'ramda';
12
10
  import { useQuery, useQueryClient } from 'react-query';
13
11
  import axios from 'axios';
14
- import { Form as Form$3, Input, Textarea as Textarea$1, Select } from '@bigbinary/neetoui/formik';
15
- import { MenuHorizontal, Delete } from '@bigbinary/neeto-icons';
16
- import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
17
12
  import { dateFormat, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils';
18
13
  import dayjs from 'dayjs';
19
14
  import timezone from 'dayjs/plugin/timezone';
20
15
  import utc from 'dayjs/plugin/utc';
21
16
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
22
- import { EditorContent, isEditorEmpty, FormikEditor, substituteVariables } from '@bigbinary/neeto-editor';
23
- import { removeBy } from '@bigbinary/neeto-commons-frontend/pure';
24
- import { useFormikContext, FieldArray } from 'formik';
17
+ import { EditorContent, isEditorEmpty, FormikEditor } from '@bigbinary/neeto-editor';
18
+ import { removeBy, findById } from '@bigbinary/neeto-commons-frontend/pure';
19
+ import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
20
+ import { Form as Form$2, Input, Textarea as Textarea$1, Select } from '@bigbinary/neetoui/formik';
21
+ import * as yup from 'yup';
22
+ import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
23
+ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
25
24
  import NeetoHeader from '@bigbinary/neeto-molecules/Header';
26
25
 
27
26
  function _typeof$1(obj) {
@@ -120,12 +119,9 @@ function _slicedToArray$1(arr, i) {
120
119
  return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
121
120
  }
122
121
 
123
- var BASE_URL = "neeto_approvals";
124
- var TEMPLATE_URL = "".concat(BASE_URL, "/templates");
125
122
  var routes = {
126
123
  home: "/",
127
124
  approvals: "/approvals/",
128
- approvers: "approvers",
129
125
  pending: "pending",
130
126
  history: "history",
131
127
  templates: {
@@ -136,597 +132,6 @@ var routes = {
136
132
  "public": "approvals/public/request/:id"
137
133
  };
138
134
 
139
- new URLSearchParams(window.location.search);
140
- var DEFAULT_PAGE_SIZE = 8;
141
- var DEFAULT_FILTER_VALUES = {
142
- searchTerm: "",
143
- sortBy: "",
144
- orderBy: ""
145
- };
146
- var SEARCH_DELAY = 750;
147
- var STATUSES = {
148
- approved: "approved",
149
- rejected: "rejected",
150
- pending: "pending",
151
- cancelled: "cancelled"
152
- };
153
- var STATUS_TAG_STYLE = {
154
- pending: "primary",
155
- approved: "success",
156
- rejected: "danger",
157
- cancelled: "warning"
158
- };
159
- var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
160
- message: "",
161
- variables: []
162
- };
163
- var APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA = yup.object().shape({
164
- variables: yup.array().of(yup.object().shape({
165
- variable: yup.string().trim().required(t$1("neetoApprovals.validations.required", {
166
- what: t$1("neetoApprovals.common.field")
167
- }))
168
- }))
169
- });
170
- var STATUS_UPDATED_BY = {
171
- rejected: t$1("neetoApprovals.common.rejectedBy"),
172
- approved: t$1("neetoApprovals.common.approvedBy"),
173
- cancelled: t$1("neetoApprovals.common.cancelledBy")
174
- };
175
-
176
- var handleEmptyPage = function handleEmptyPage(data, pageProperties, handleTablePagination) {
177
- if (isEmpty(data) && pageProperties.page !== 1) {
178
- handleTablePagination(pageProperties.page - 1, pageProperties.pageSize);
179
- }
180
- };
181
-
182
- var fetch$3 = function fetch(params) {
183
- return axios.get("".concat(BASE_URL, "/approvers"), {
184
- params: params
185
- });
186
- };
187
- var create$1 = function create(payload) {
188
- return axios.post("".concat(BASE_URL, "/approvers"), payload);
189
- };
190
- var update$2 = function update(_ref) {
191
- var id = _ref.id,
192
- payload = _ref.payload;
193
- return axios.put("".concat(BASE_URL, "/approvers/").concat(id), {
194
- approver: payload
195
- });
196
- };
197
- var destroy$1 = function destroy(_ref2) {
198
- var approverId = _ref2.approverId;
199
- return axios["delete"]("".concat(BASE_URL, "/approvers/").concat(approverId));
200
- };
201
- var approversApi = {
202
- create: create$1,
203
- fetch: fetch$3,
204
- update: update$2,
205
- destroy: destroy$1
206
- };
207
-
208
- var QUERY_KEYS = {
209
- APPROVERS: "neeto-approvals-approvers",
210
- TEMPLATES: "neeto-approvals-templates",
211
- REQUESTS: "neeto-approvals-requests",
212
- SHOW_TEMPLATE: "neeto-approvals-show-template",
213
- SHOW_PUBLIC_REQUEST: "neeto-approvals-show-public-request",
214
- VIEWS: "neeto-approvals-views"
215
- };
216
-
217
- function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
218
- function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$c(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
219
- var useFetchApprovers = function useFetchApprovers() {
220
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
221
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
222
- return useQuery([QUERY_KEYS.APPROVERS, params], function () {
223
- return approversApi.fetch(params);
224
- }, _objectSpread$c({
225
- select: function select(response) {
226
- return response.data || response;
227
- },
228
- keepPreviousData: true,
229
- onSuccess: function onSuccess(_ref) {
230
- var _params$onSuccess;
231
- var approvers = _ref.approvers;
232
- return params === null || params === void 0 ? void 0 : (_params$onSuccess = params.onSuccess) === null || _params$onSuccess === void 0 ? void 0 : _params$onSuccess.call(params, approvers);
233
- }
234
- }, options));
235
- };
236
- var useCreateApprover = function useCreateApprover(options) {
237
- return useMutationWithInvalidation(approversApi.create, _objectSpread$c({
238
- keysToInvalidate: [QUERY_KEYS.APPROVERS, QUERY_KEYS.VIEWS]
239
- }, options));
240
- };
241
- var useUpdateApprover = function useUpdateApprover(options) {
242
- return useMutationWithInvalidation(approversApi.update, _objectSpread$c({
243
- keysToInvalidate: [QUERY_KEYS.APPROVERS]
244
- }, options));
245
- };
246
- var useDeleteApprover = function useDeleteApprover(options) {
247
- return useMutationWithInvalidation(approversApi.destroy, _objectSpread$c({
248
- keysToInvalidate: [QUERY_KEYS.APPROVERS, QUERY_KEYS.VIEWS]
249
- }, options));
250
- };
251
-
252
- var useUrlSearchParams = function useUrlSearchParams() {
253
- var _useLocation = useLocation(),
254
- search = _useLocation.search;
255
- return useMemo(function () {
256
- return new URLSearchParams(search);
257
- }, [search]);
258
- };
259
-
260
- var usePaginate = function usePaginate() {
261
- var urlParams = useUrlSearchParams();
262
- var _useState = useState({
263
- page: Number(urlParams.get("page")) || DEFAULT_PAGE_INDEX,
264
- pageSize: Number(urlParams.get("size")) || DEFAULT_PAGE_SIZE
265
- }),
266
- _useState2 = _slicedToArray$1(_useState, 2),
267
- pageProperties = _useState2[0],
268
- setPageProperties = _useState2[1];
269
- var history = useHistory();
270
- var handleTablePagination = useCallback(function (page, pageSize) {
271
- urlParams.set("page", page);
272
- urlParams.set("size", pageSize);
273
- history.push({
274
- search: urlParams.toString()
275
- });
276
- setPageProperties({
277
- page: page,
278
- pageSize: pageSize
279
- });
280
- }, [urlParams, history]);
281
- useEffect(function () {
282
- var page = urlParams.get("page") || DEFAULT_PAGE_INDEX;
283
- var pageSize = urlParams.get("size") || DEFAULT_PAGE_SIZE;
284
- setPageProperties({
285
- page: Number(page),
286
- pageSize: Number(pageSize)
287
- });
288
- }, [urlParams]);
289
- return {
290
- pageProperties: pageProperties,
291
- handleTablePagination: handleTablePagination
292
- };
293
- };
294
-
295
- var _t$1, _t2;
296
- var MAX_NAME_LENGTH = 40;
297
- var APPROVER_FORM_INITIAL_VALUES = {
298
- firstName: "",
299
- lastName: "",
300
- email: ""
301
- };
302
- var APPROVER_FORM_VALIDATION_SCHEMA = yup.object().shape({
303
- firstName: yup.string().trim().max(MAX_NAME_LENGTH, t$1("neetoApprovals.validations.limitExceeded", {
304
- what: (_t$1 = t$1("neetoApprovals.inputs.labels.firstName")) === null || _t$1 === void 0 ? void 0 : _t$1.toLocaleLowerCase(),
305
- limit: MAX_NAME_LENGTH
306
- })).required(t$1("neetoApprovals.validations.required", {
307
- what: t$1("neetoApprovals.inputs.labels.firstName")
308
- })),
309
- lastName: yup.string().trim().max(MAX_NAME_LENGTH, t$1("neetoApprovals.validations.limitExceeded", {
310
- what: (_t2 = t$1("neetoApprovals.inputs.labels.lastName")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
311
- limit: MAX_NAME_LENGTH
312
- })).required(t$1("neetoApprovals.validations.required", {
313
- what: t$1("neetoApprovals.inputs.labels.lastName")
314
- })),
315
- email: yup.string().email().required(t$1("neetoApprovals.validations.required", {
316
- what: t$1("neetoApprovals.common.email")
317
- }))
318
- });
319
-
320
- var Form$2 = function Form(_ref) {
321
- var isOpen = _ref.isOpen,
322
- onClose = _ref.onClose,
323
- onSubmit = _ref.onSubmit,
324
- _ref$initialData = _ref.initialData,
325
- initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
326
- isLoading = _ref.isLoading;
327
- var inputReference = useRef(null);
328
- var _useTranslation = useTranslation(),
329
- t = _useTranslation.t;
330
- return /*#__PURE__*/React.createElement(Pane, {
331
- initialFocusRef: inputReference,
332
- isOpen: isOpen,
333
- onClose: onClose
334
- }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
335
- style: "h2"
336
- }, isEmpty(initialData) ? t("neetoApprovals.typography.newApprover") : t("neetoApprovals.typography.editApprover"))), /*#__PURE__*/React.createElement(Form$3, {
337
- formikProps: {
338
- initialValues: initialData || APPROVER_FORM_INITIAL_VALUES,
339
- validationSchema: APPROVER_FORM_VALIDATION_SCHEMA,
340
- onSubmit: onSubmit
341
- }
342
- }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
343
- className: "w-full space-y-6"
344
- }, /*#__PURE__*/React.createElement(Input, {
345
- required: true,
346
- className: "w-full",
347
- label: t("neetoApprovals.inputs.labels.firstName"),
348
- name: "firstName",
349
- placeholder: t("neetoApprovals.inputs.placeholders.firstName"),
350
- ref: inputReference
351
- }), /*#__PURE__*/React.createElement(Input, {
352
- required: true,
353
- className: "w-full",
354
- label: t("neetoApprovals.inputs.labels.lastName"),
355
- name: "lastName",
356
- placeholder: t("neetoApprovals.inputs.placeholders.lastName")
357
- }), /*#__PURE__*/React.createElement(Input, {
358
- required: true,
359
- className: "w-full",
360
- label: t("neetoApprovals.common.email"),
361
- name: "email",
362
- placeholder: t("neetoApprovals.inputs.placeholders.email")
363
- }))), /*#__PURE__*/React.createElement(Pane.Footer, {
364
- className: "flex gap-x-2"
365
- }, /*#__PURE__*/React.createElement(Button, {
366
- label: t("neetoApprovals.buttons.saveChanges"),
367
- loading: isLoading,
368
- type: "submit"
369
- }), /*#__PURE__*/React.createElement(Button, {
370
- label: t("neetoApprovals.buttons.cancel"),
371
- style: "text",
372
- onClick: onClose
373
- })))));
374
- };
375
-
376
- var Create$1 = function Create(_ref) {
377
- var isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
378
- setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
379
- pageProperties = _ref.pageProperties,
380
- handleTablePagination = _ref.handleTablePagination,
381
- totalCount = _ref.totalCount;
382
- var _useCreateApprover = useCreateApprover(),
383
- createApprover = _useCreateApprover.mutate,
384
- isLoading = _useCreateApprover.isLoading;
385
- var getLastPageNumber = function getLastPageNumber() {
386
- return Math.ceil((totalCount + 1) / pageProperties.pageSize);
387
- };
388
- var onSubmit = function onSubmit(approver) {
389
- return createApprover({
390
- approver: approver
391
- }, {
392
- onSuccess: function onSuccess() {
393
- var lastPageNumber = getLastPageNumber();
394
- lastPageNumber !== pageProperties.page && handleTablePagination(lastPageNumber, pageProperties.pageSize);
395
- setIsNewApproverPaneOpen(false);
396
- }
397
- });
398
- };
399
- return /*#__PURE__*/React.createElement(Form$2, {
400
- isLoading: isLoading,
401
- onSubmit: onSubmit,
402
- isOpen: isNewApproverPaneOpen,
403
- onClose: function onClose() {
404
- return setIsNewApproverPaneOpen(false);
405
- }
406
- });
407
- };
408
- var Create$2 = /*#__PURE__*/React.memo(Create$1);
409
-
410
- var Edit$1 = function Edit(_ref) {
411
- var approver = _ref.approver,
412
- setApproverToEdit = _ref.setApproverToEdit;
413
- var _useUpdateApprover = useUpdateApprover(),
414
- updateApprover = _useUpdateApprover.mutate,
415
- isLoading = _useUpdateApprover.isLoading;
416
- var onSubmit = function onSubmit(_ref2) {
417
- var firstName = _ref2.firstName,
418
- lastName = _ref2.lastName,
419
- email = _ref2.email;
420
- return updateApprover({
421
- id: approver.id,
422
- payload: {
423
- firstName: firstName,
424
- lastName: lastName,
425
- email: email
426
- }
427
- }, {
428
- onSuccess: function onSuccess() {
429
- return setApproverToEdit("");
430
- }
431
- });
432
- };
433
- return /*#__PURE__*/React.createElement(Form$2, {
434
- initialData: approver,
435
- isLoading: isLoading,
436
- isOpen: !!approver,
437
- onClose: function onClose() {
438
- return setApproverToEdit("");
439
- },
440
- onSubmit: onSubmit
441
- });
442
- };
443
- var Edit$2 = /*#__PURE__*/React.memo(Edit$1);
444
-
445
- var Menu$1 = Dropdown.Menu,
446
- MenuItem$1 = Dropdown.MenuItem;
447
- var columnData$1 = function columnData(_ref) {
448
- var onEditClick = _ref.onEditClick,
449
- onDeleteClick = _ref.onDeleteClick;
450
- return [{
451
- dataIndex: "name",
452
- key: "name",
453
- sorter: true,
454
- title: i18next.t("neetoApprovals.common.name")
455
- }, {
456
- dataIndex: "email",
457
- key: "email",
458
- sorter: true,
459
- title: i18next.t("neetoApprovals.common.email")
460
- }, {
461
- key: "actions",
462
- ellipsis: true,
463
- render: function render(_, approver) {
464
- return /*#__PURE__*/React.createElement("div", {
465
- className: "flex flex-row items-center justify-end space-x-3",
466
- onClick: function onClick(event) {
467
- return event.stopPropagation();
468
- }
469
- }, /*#__PURE__*/React.createElement(Dropdown, {
470
- autoWidth: true,
471
- buttonProps: {
472
- style: "text"
473
- },
474
- className: "flex-shrink-0",
475
- icon: MenuHorizontal,
476
- position: "bottom-end",
477
- strategy: "fixed"
478
- }, /*#__PURE__*/React.createElement(Menu$1, null, /*#__PURE__*/React.createElement(MenuItem$1.Button, {
479
- "data-cy": "approvers-edit-button",
480
- onClick: function onClick() {
481
- return onEditClick(approver);
482
- }
483
- }, i18next.t("neetoApprovals.common.edit")), /*#__PURE__*/React.createElement(MenuItem$1.Button, {
484
- "data-cy": "approvers-delete-button",
485
- onClick: function onClick() {
486
- return onDeleteClick(approver);
487
- }
488
- }, i18next.t("neetoApprovals.common.delete")))));
489
- }
490
- }];
491
- };
492
-
493
- function _extends() {
494
- _extends = Object.assign ? Object.assign.bind() : function (target) {
495
- for (var i = 1; i < arguments.length; i++) {
496
- var source = arguments[i];
497
- for (var key in source) {
498
- if (Object.prototype.hasOwnProperty.call(source, key)) {
499
- target[key] = source[key];
500
- }
501
- }
502
- }
503
- return target;
504
- };
505
- return _extends.apply(this, arguments);
506
- }
507
-
508
- function _objectWithoutPropertiesLoose(source, excluded) {
509
- if (source == null) return {};
510
- var target = {};
511
- var sourceKeys = Object.keys(source);
512
- var key, i;
513
- for (i = 0; i < sourceKeys.length; i++) {
514
- key = sourceKeys[i];
515
- if (excluded.indexOf(key) >= 0) continue;
516
- target[key] = source[key];
517
- }
518
- return target;
519
- }
520
-
521
- function _objectWithoutProperties(source, excluded) {
522
- if (source == null) return {};
523
- var target = _objectWithoutPropertiesLoose(source, excluded);
524
- var key, i;
525
- if (Object.getOwnPropertySymbols) {
526
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
527
- for (i = 0; i < sourceSymbolKeys.length; i++) {
528
- key = sourceSymbolKeys[i];
529
- if (excluded.indexOf(key) >= 0) continue;
530
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
531
- target[key] = source[key];
532
- }
533
- }
534
- return target;
535
- }
536
-
537
- var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
538
- var entity = _ref.entity,
539
- url = _ref.url;
540
- return /*#__PURE__*/React.createElement(Trans, {
541
- i18nKey: "neetoApprovals.common.noDataHelpText",
542
- values: {
543
- entity: entity
544
- },
545
- components: {
546
- a: /*#__PURE__*/React.createElement(Link, {
547
- className: "neeto-ui-text-primary-600 underline",
548
- target: "_blank",
549
- to: {
550
- pathname: url
551
- }
552
- })
553
- }
554
- });
555
- };
556
-
557
- var _excluded$1 = ["entity", "columnData", "items", "totalCount", "filters", "setFilters", "setIsPaneOpen", "helpDocUrl", "onEditClick", "onDeleteClick"];
558
- function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
559
- function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
560
- var Table = function Table(_ref) {
561
- var _t;
562
- var entity = _ref.entity,
563
- columnData = _ref.columnData,
564
- items = _ref.items,
565
- totalCount = _ref.totalCount,
566
- filters = _ref.filters,
567
- setFilters = _ref.setFilters,
568
- setIsPaneOpen = _ref.setIsPaneOpen,
569
- helpDocUrl = _ref.helpDocUrl,
570
- onEditClick = _ref.onEditClick,
571
- onDeleteClick = _ref.onDeleteClick,
572
- otherProps = _objectWithoutProperties(_ref, _excluded$1);
573
- var _usePaginate = usePaginate(),
574
- pageProperties = _usePaginate.pageProperties,
575
- handleTablePagination = _usePaginate.handleTablePagination;
576
- var _useTranslation = useTranslation(),
577
- t = _useTranslation.t;
578
- var columns = columnData({
579
- onEditClick: onEditClick,
580
- onDeleteClick: onDeleteClick
581
- });
582
- var handleTableChange = function handleTableChange(_, __, sorter) {
583
- setFilters(_objectSpread$b(_objectSpread$b({}, filters), {}, {
584
- sortBy: sorter.field,
585
- orderBy: sorter.order
586
- }));
587
- };
588
- var noDataProps = {
589
- primaryButtonProps: {
590
- label: t("neetoApprovals.common.add_", {
591
- what: (_t = t("neetoApprovals.common.template", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
592
- }),
593
- onClick: function onClick() {
594
- return setIsPaneOpen(true);
595
- }
596
- },
597
- helpText: renderNoDataHelpText({
598
- entity: entity,
599
- url: helpDocUrl
600
- })
601
- };
602
- if (isEmpty(items)) {
603
- return /*#__PURE__*/React.createElement("div", {
604
- className: "flex h-full w-full flex-grow items-center justify-center"
605
- }, /*#__PURE__*/React.createElement(NoData, _extends({
606
- title: t("neetoApprovals.common.notFound_", {
607
- what: entity
608
- })
609
- }, !filters.searchTerm && noDataProps)));
610
- }
611
- return /*#__PURE__*/React.createElement(TableWrapper, {
612
- className: "mt-12",
613
- hasPagination: totalCount > pageProperties.pageSize
614
- }, /*#__PURE__*/React.createElement(Table$1, _extends({
615
- fixedHeight: true,
616
- columnData: columns,
617
- currentPageNumber: pageProperties.page,
618
- defaultPageSize: pageProperties.pageSize,
619
- handlePageChange: handleTablePagination,
620
- rowData: items,
621
- paginationProps: {
622
- hideOnSinglePage: (items === null || items === void 0 ? void 0 : items.length) < DEFAULT_PAGE_SIZE + 1
623
- },
624
- onChange: handleTableChange
625
- }, _objectSpread$b({
626
- totalCount: totalCount
627
- }, otherProps))));
628
- };
629
-
630
- function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
631
- function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
632
- var Approvers = function Approvers(_ref) {
633
- var _t, _t2, _t3;
634
- var filters = _ref.filters,
635
- isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
636
- setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
637
- helpDocUrl = _ref.helpDocUrl,
638
- setFilters = _ref.setFilters;
639
- var _useState = useState(""),
640
- _useState2 = _slicedToArray$1(_useState, 2),
641
- approverToEdit = _useState2[0],
642
- setApproverToEdit = _useState2[1];
643
- var _useState3 = useState(""),
644
- _useState4 = _slicedToArray$1(_useState3, 2),
645
- approverToDelete = _useState4[0],
646
- setApproverToDelete = _useState4[1];
647
- var debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);
648
- var _usePaginate = usePaginate(),
649
- pageProperties = _usePaginate.pageProperties,
650
- handleTablePagination = _usePaginate.handleTablePagination;
651
- var _useTranslation = useTranslation(),
652
- t = _useTranslation.t;
653
- var _useFetchApprovers = useFetchApprovers(_objectSpread$a(_objectSpread$a(_objectSpread$a({}, pageProperties), filters), {}, {
654
- searchTerm: debouncedSearchTerm.trim()
655
- }), {
656
- onSuccess: function onSuccess(approvers) {
657
- handleEmptyPage(approvers, pageProperties, handleTablePagination);
658
- }
659
- }),
660
- _useFetchApprovers$da = _useFetchApprovers.data,
661
- _useFetchApprovers$da2 = _useFetchApprovers$da === void 0 ? {} : _useFetchApprovers$da,
662
- _useFetchApprovers$da3 = _useFetchApprovers$da2.approvers,
663
- approvers = _useFetchApprovers$da3 === void 0 ? [] : _useFetchApprovers$da3,
664
- _useFetchApprovers$da4 = _useFetchApprovers$da2.totalCount,
665
- totalCount = _useFetchApprovers$da4 === void 0 ? 0 : _useFetchApprovers$da4,
666
- isApproverLoading = _useFetchApprovers.isLoading;
667
- var _useDeleteApprover = useDeleteApprover(),
668
- deleteApprover = _useDeleteApprover.mutate,
669
- isDeleting = _useDeleteApprover.isLoading;
670
- var onEditClick = function onEditClick(approver) {
671
- var name = approver.name.split(" ");
672
- setApproverToEdit(_objectSpread$a(_objectSpread$a({}, approver), {}, {
673
- firstName: name[0],
674
- lastName: name[1]
675
- }));
676
- };
677
- var onDeleteClick = function onDeleteClick(approver) {
678
- setApproverToDelete(approver);
679
- };
680
- var entity = (_t = t("neetoApprovals.common.approver", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
681
- var handleDelete = function handleDelete(approverId) {
682
- deleteApprover({
683
- approverId: approverId
684
- });
685
- setApproverToDelete("");
686
- };
687
- return /*#__PURE__*/React.createElement(React.Fragment, null, isApproverLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Table, {
688
- items: approvers,
689
- setIsPaneOpen: setIsNewApproverPaneOpen,
690
- columnData: columnData$1,
691
- entity: entity,
692
- filters: filters,
693
- helpDocUrl: helpDocUrl,
694
- onDeleteClick: onDeleteClick,
695
- onEditClick: onEditClick,
696
- setFilters: setFilters,
697
- totalCount: totalCount
698
- }), /*#__PURE__*/React.createElement(Create$2, {
699
- handleTablePagination: handleTablePagination,
700
- isNewApproverPaneOpen: isNewApproverPaneOpen,
701
- pageProperties: pageProperties,
702
- setIsNewApproverPaneOpen: setIsNewApproverPaneOpen,
703
- totalCount: totalCount
704
- }), /*#__PURE__*/React.createElement(Edit$2, {
705
- approver: approverToEdit,
706
- setApproverToEdit: setApproverToEdit
707
- }), /*#__PURE__*/React.createElement(Alert, {
708
- isOpen: !!approverToDelete,
709
- isSubmitting: isDeleting,
710
- submitButtonLabel: t("neetoApprovals.buttons.delete"),
711
- message: /*#__PURE__*/React.createElement(Trans, {
712
- i18nKey: "neetoApprovals.alerts.deleting_",
713
- values: {
714
- what: (_t2 = t("neetoApprovals.common.approver", SINGULAR)) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase(),
715
- name: approverToDelete === null || approverToDelete === void 0 ? void 0 : approverToDelete.name
716
- }
717
- }),
718
- title: t("neetoApprovals.common.delete_", {
719
- what: (_t3 = t("neetoApprovals.common.approver", SINGULAR)) === null || _t3 === void 0 ? void 0 : _t3.toLocaleLowerCase()
720
- }),
721
- onClose: function onClose() {
722
- return setApproverToDelete("");
723
- },
724
- onSubmit: function onSubmit() {
725
- return handleDelete(approverToDelete === null || approverToDelete === void 0 ? void 0 : approverToDelete.id);
726
- }
727
- }));
728
- };
729
-
730
135
  function _arrayWithHoles(arr) {
731
136
  if (Array.isArray(arr)) return arr;
732
137
  }
@@ -848,16 +253,20 @@ var filterNonNull = function filterNonNull(object) {
848
253
  }));
849
254
  };
850
255
  nullSafe(filterNonNull);
851
- var findById = /*#__PURE__*/curry(function (id, array) {
852
- return array.find(function (item) {
853
- return item.id === id;
854
- });
855
- });
856
256
  var findBy = /*#__PURE__*/curry(function (pattern, array) {
857
257
  return array.find(matches(pattern));
858
258
  });
859
259
 
860
- var fetch$2 = function fetch(params, url) {
260
+ var handleEmptyPage = function handleEmptyPage(data, pageProperties, handlePageChange) {
261
+ if (isEmpty(data) && pageProperties.page !== 1) {
262
+ handlePageChange(pageProperties.page - 1, pageProperties.pageSize);
263
+ }
264
+ };
265
+
266
+ var BASE_URL = "neeto_approvals";
267
+ var TEMPLATE_URL = "".concat(BASE_URL, "/templates");
268
+
269
+ var fetch$3 = function fetch(params, url) {
861
270
  return axios.get(url, {
862
271
  params: params
863
272
  });
@@ -870,12 +279,21 @@ var update$1 = function update(_ref) {
870
279
  });
871
280
  };
872
281
  var requestsApi = {
873
- fetch: fetch$2,
282
+ fetch: fetch$3,
874
283
  update: update$1
875
284
  };
876
285
 
877
- function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
878
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
286
+ var QUERY_KEYS = {
287
+ APPROVERS: "neeto-approvals-approvers",
288
+ TEMPLATES: "neeto-approvals-templates",
289
+ REQUESTS: "neeto-approvals-requests",
290
+ SHOW_TEMPLATE: "neeto-approvals-show-template",
291
+ SHOW_PUBLIC_REQUEST: "neeto-approvals-show-public-request",
292
+ VIEWS: "neeto-approvals-views"
293
+ };
294
+
295
+ function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
296
+ function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
879
297
  var useFetchRequests = function useFetchRequests(_ref) {
880
298
  var requestUrl = _ref.requestUrl,
881
299
  _ref$params = _ref.params,
@@ -884,7 +302,7 @@ var useFetchRequests = function useFetchRequests(_ref) {
884
302
  options = _ref$options === void 0 ? {} : _ref$options;
885
303
  return useQuery([QUERY_KEYS.REQUESTS, params], function () {
886
304
  return requestsApi.fetch(params, requestUrl);
887
- }, _objectSpread$9({
305
+ }, _objectSpread$b({
888
306
  select: function select(response) {
889
307
  return response.data || response;
890
308
  },
@@ -897,11 +315,67 @@ var useFetchRequests = function useFetchRequests(_ref) {
897
315
  }, options));
898
316
  };
899
317
  var useUpdateRequest = function useUpdateRequest(options) {
900
- return useMutationWithInvalidation(requestsApi.update, _objectSpread$9({
318
+ return useMutationWithInvalidation(requestsApi.update, _objectSpread$b({
901
319
  keysToInvalidate: [QUERY_KEYS.REQUESTS, QUERY_KEYS.VIEWS]
902
320
  }, options));
903
321
  };
904
322
 
323
+ var usePaginate = function usePaginate() {
324
+ var _useState = useState({
325
+ page: DEFAULT_PAGE_INDEX,
326
+ pageSize: DEFAULT_PAGE_SIZE
327
+ }),
328
+ _useState2 = _slicedToArray$1(_useState, 2),
329
+ pageProperties = _useState2[0],
330
+ setPageProperties = _useState2[1];
331
+ var resetPageProperties = function resetPageProperties() {
332
+ return setPageProperties({
333
+ page: DEFAULT_PAGE_INDEX,
334
+ pageSize: DEFAULT_PAGE_SIZE
335
+ });
336
+ };
337
+ var handlePageChange = function handlePageChange(page, pageSize) {
338
+ setPageProperties({
339
+ page: page,
340
+ pageSize: pageSize
341
+ });
342
+ };
343
+ return {
344
+ pageProperties: pageProperties,
345
+ resetPageProperties: resetPageProperties,
346
+ handlePageChange: handlePageChange
347
+ };
348
+ };
349
+
350
+ new URLSearchParams(window.location.search);
351
+ var DEFAULT_FILTER_VALUES = {
352
+ searchTerm: "",
353
+ sortBy: "",
354
+ orderBy: ""
355
+ };
356
+ var SEARCH_DELAY = 750;
357
+ var STATUSES = {
358
+ approved: "approved",
359
+ rejected: "rejected",
360
+ pending: "pending",
361
+ cancelled: "cancelled"
362
+ };
363
+ var STATUS_TAG_STYLE = {
364
+ pending: "primary",
365
+ approved: "success",
366
+ rejected: "danger",
367
+ cancelled: "warning"
368
+ };
369
+ var APPROVAL_REQUEST_FORM_INITIAL_VALUES = {
370
+ message: "",
371
+ additionalInfo: ""
372
+ };
373
+ var STATUS_UPDATED_BY = {
374
+ rejected: t$1("neetoApprovals.common.rejectedBy"),
375
+ approved: t$1("neetoApprovals.common.approvedBy"),
376
+ cancelled: t$1("neetoApprovals.common.cancelledBy")
377
+ };
378
+
905
379
  dayjs.extend(utc);
906
380
  dayjs.extend(timezone);
907
381
  var updateApprovalDetails = function updateApprovalDetails(_ref) {
@@ -933,10 +407,6 @@ var getApprovalFilter = function getApprovalFilter() {
933
407
  HISTORY: {
934
408
  label: t$1("neetoApprovals.common.history"),
935
409
  value: "HISTORY"
936
- },
937
- APPROVERS: {
938
- label: t$1("neetoApprovals.common.approver", PLURAL),
939
- value: "APPROVERS"
940
410
  }
941
411
  };
942
412
  };
@@ -1003,6 +473,7 @@ var ApprovalsDetails = function ApprovalsDetails(_ref) {
1003
473
  _approvalDetails$stat = approvalDetails.status,
1004
474
  status = _approvalDetails$stat === void 0 ? "" : _approvalDetails$stat,
1005
475
  message = approvalDetails.message,
476
+ additionalInfo = approvalDetails.additionalInfo,
1006
477
  createdAt = approvalDetails.createdAt,
1007
478
  approverName = approvalDetails.approverName,
1008
479
  approverEmail = approvalDetails.approverEmail,
@@ -1062,6 +533,11 @@ var ApprovalsDetails = function ApprovalsDetails(_ref) {
1062
533
  }, /*#__PURE__*/React.createElement(Label, null, t("neetoApprovals.inputs.labels.message")), /*#__PURE__*/React.createElement(MemoizedEditorContent$1, {
1063
534
  className: "neeto-ui-bg-gray-100 p-4",
1064
535
  content: message
536
+ })), additionalInfo && /*#__PURE__*/React.createElement("div", {
537
+ className: "w-full space-y-2"
538
+ }, /*#__PURE__*/React.createElement(Label, null, t("neetoApprovals.inputs.labels.additionalInfo")), /*#__PURE__*/React.createElement(MemoizedEditorContent$1, {
539
+ className: "neeto-ui-bg-gray-100 p-4",
540
+ content: additionalInfo
1065
541
  })), isPending && isCurrentUserApprover && /*#__PURE__*/React.createElement(Textarea, {
1066
542
  className: "w-full",
1067
543
  disabled: !isPending,
@@ -1094,8 +570,8 @@ var ApprovalsDetails = function ApprovalsDetails(_ref) {
1094
570
  })));
1095
571
  };
1096
572
 
1097
- function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1098
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
573
+ function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
574
+ function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1099
575
  var History = function History(_ref) {
1100
576
  var _t;
1101
577
  var requestUrl = _ref.requestUrl;
@@ -1106,7 +582,7 @@ var History = function History(_ref) {
1106
582
  var debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);
1107
583
  var _usePaginate = usePaginate(),
1108
584
  pageProperties = _usePaginate.pageProperties,
1109
- handleTablePagination = _usePaginate.handleTablePagination;
585
+ handlePageChange = _usePaginate.handlePageChange;
1110
586
  var _useState3 = useState({}),
1111
587
  _useState4 = _slicedToArray$1(_useState3, 2),
1112
588
  approvalDetails = _useState4[0],
@@ -1114,13 +590,14 @@ var History = function History(_ref) {
1114
590
  var _useTranslation = useTranslation(),
1115
591
  t = _useTranslation.t;
1116
592
  var _useFetchRequests = useFetchRequests({
1117
- params: _objectSpread$8(_objectSpread$8(_objectSpread$8({}, pageProperties), filters), {}, {
593
+ params: _objectSpread$a(_objectSpread$a(_objectSpread$a({}, pageProperties), filters), {}, {
1118
594
  searchTerm: debouncedSearchTerm.trim(),
1119
595
  status: [STATUSES.approved, STATUSES.rejected, STATUSES.cancelled]
1120
596
  }),
1121
597
  options: {
1122
- onSuccess: function onSuccess(requests) {
1123
- handleEmptyPage(requests, pageProperties, handleTablePagination);
598
+ onSuccess: function onSuccess(_ref2) {
599
+ var requests = _ref2.requests;
600
+ handleEmptyPage(requests, pageProperties, handlePageChange);
1124
601
  setApprovalDetails(function (approvalDetails) {
1125
602
  return updateApprovalDetails({
1126
603
  requestsData: requests,
@@ -1138,8 +615,8 @@ var History = function History(_ref) {
1138
615
  _useFetchRequests$dat4 = _useFetchRequests$dat2.totalCount,
1139
616
  totalCount = _useFetchRequests$dat4 === void 0 ? 0 : _useFetchRequests$dat4;
1140
617
  var handleTableChange = function handleTableChange(_, __, sorter) {
1141
- setFilters(_objectSpread$8(_objectSpread$8({}, filters), {}, {
1142
- sortBy: camelToSnakeCase(sorter.field),
618
+ setFilters(_objectSpread$a(_objectSpread$a({}, filters), {}, {
619
+ sortBy: camelToSnakeCase(sorter.field || ""),
1143
620
  orderBy: sorter.order
1144
621
  }));
1145
622
  };
@@ -1152,8 +629,8 @@ var History = function History(_ref) {
1152
629
  currentPageNumber: pageProperties.page,
1153
630
  defaultPageSize: pageProperties.pageSize,
1154
631
  rowData: approvalHistories,
632
+ handlePageChange: handlePageChange,
1155
633
  totalCount: totalCount,
1156
- handlePageChange: handleTablePagination,
1157
634
  paginationProps: {
1158
635
  hideOnSinglePage: (approvalHistories === null || approvalHistories === void 0 ? void 0 : approvalHistories.length) < DEFAULT_PAGE_SIZE + 1
1159
636
  },
@@ -1180,8 +657,8 @@ var PENDING_TABLE_COLUMNS = removeBy({
1180
657
  key: "status"
1181
658
  }, HISTORY_TABLE_COLUMNS);
1182
659
 
1183
- function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1184
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
660
+ function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
661
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1185
662
  var PendingRequests = function PendingRequests(_ref) {
1186
663
  var _t;
1187
664
  var requestUrl = _ref.requestUrl;
@@ -1196,17 +673,18 @@ var PendingRequests = function PendingRequests(_ref) {
1196
673
  var debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);
1197
674
  var _usePaginate = usePaginate(),
1198
675
  pageProperties = _usePaginate.pageProperties,
1199
- handleTablePagination = _usePaginate.handleTablePagination;
676
+ handlePageChange = _usePaginate.handlePageChange;
1200
677
  var _useTranslation = useTranslation(),
1201
678
  t = _useTranslation.t;
1202
679
  var _useFetchRequests = useFetchRequests({
1203
- params: _objectSpread$7(_objectSpread$7(_objectSpread$7({}, pageProperties), filters), {}, {
680
+ params: _objectSpread$9(_objectSpread$9(_objectSpread$9({}, pageProperties), filters), {}, {
1204
681
  searchTerm: debouncedSearchTerm.trim(),
1205
682
  status: [STATUSES.pending]
1206
683
  }),
1207
684
  options: {
1208
- onSuccess: function onSuccess(requests) {
1209
- handleEmptyPage(requests, pageProperties, handleTablePagination);
685
+ onSuccess: function onSuccess(_ref2) {
686
+ var requests = _ref2.requests;
687
+ handleEmptyPage(requests, pageProperties, handlePageChange);
1210
688
  }
1211
689
  },
1212
690
  requestUrl: requestUrl
@@ -1221,8 +699,8 @@ var PendingRequests = function PendingRequests(_ref) {
1221
699
  updatePendingRequest = _useUpdateRequest.mutate,
1222
700
  isLoading = _useUpdateRequest.isLoading;
1223
701
  var handleTableChange = function handleTableChange(_, __, sorter) {
1224
- setFilters(_objectSpread$7(_objectSpread$7({}, filters), {}, {
1225
- sortBy: camelToSnakeCase(sorter.field),
702
+ setFilters(_objectSpread$9(_objectSpread$9({}, filters), {}, {
703
+ sortBy: camelToSnakeCase(sorter.field || ""),
1226
704
  orderBy: sorter.order
1227
705
  }));
1228
706
  };
@@ -1245,8 +723,8 @@ var PendingRequests = function PendingRequests(_ref) {
1245
723
  currentPageNumber: pageProperties.page,
1246
724
  defaultPageSize: pageProperties.pageSize,
1247
725
  rowData: pendingRequests,
726
+ handlePageChange: handlePageChange,
1248
727
  totalCount: totalCount,
1249
- handlePageChange: handleTablePagination,
1250
728
  paginationProps: {
1251
729
  hideOnSinglePage: (pendingRequests === null || pendingRequests === void 0 ? void 0 : pendingRequests.length) < DEFAULT_PAGE_SIZE + 1
1252
730
  },
@@ -1269,10 +747,54 @@ var PendingRequests = function PendingRequests(_ref) {
1269
747
  onClose: function onClose() {
1270
748
  return setApprovalDetails({});
1271
749
  }
1272
- }));
1273
- };
750
+ }));
751
+ };
752
+
753
+ function _extends() {
754
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
755
+ for (var i = 1; i < arguments.length; i++) {
756
+ var source = arguments[i];
757
+ for (var key in source) {
758
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
759
+ target[key] = source[key];
760
+ }
761
+ }
762
+ }
763
+ return target;
764
+ };
765
+ return _extends.apply(this, arguments);
766
+ }
767
+
768
+ function _objectWithoutPropertiesLoose(source, excluded) {
769
+ if (source == null) return {};
770
+ var target = {};
771
+ var sourceKeys = Object.keys(source);
772
+ var key, i;
773
+ for (i = 0; i < sourceKeys.length; i++) {
774
+ key = sourceKeys[i];
775
+ if (excluded.indexOf(key) >= 0) continue;
776
+ target[key] = source[key];
777
+ }
778
+ return target;
779
+ }
780
+
781
+ function _objectWithoutProperties(source, excluded) {
782
+ if (source == null) return {};
783
+ var target = _objectWithoutPropertiesLoose(source, excluded);
784
+ var key, i;
785
+ if (Object.getOwnPropertySymbols) {
786
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
787
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
788
+ key = sourceSymbolKeys[i];
789
+ if (excluded.indexOf(key) >= 0) continue;
790
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
791
+ target[key] = source[key];
792
+ }
793
+ }
794
+ return target;
795
+ }
1274
796
 
1275
- var fetch$1 = function fetch(params) {
797
+ var fetch$2 = function fetch(params) {
1276
798
  return axios.get(TEMPLATE_URL, {
1277
799
  params: params
1278
800
  });
@@ -1299,20 +821,20 @@ var destroy = function destroy(_ref3) {
1299
821
  };
1300
822
  var templatesApi = {
1301
823
  create: create,
1302
- fetch: fetch$1,
824
+ fetch: fetch$2,
1303
825
  update: update,
1304
826
  destroy: destroy,
1305
827
  show: show$1
1306
828
  };
1307
829
 
1308
- function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1309
- function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
830
+ function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
831
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1310
832
  var useFetchTemplates = function useFetchTemplates() {
1311
833
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1312
834
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1313
835
  return useQuery([QUERY_KEYS.TEMPLATES, params], function () {
1314
836
  return templatesApi.fetch(params);
1315
- }, _objectSpread$6({
837
+ }, _objectSpread$8({
1316
838
  select: function select(response) {
1317
839
  return response.data || response;
1318
840
  },
@@ -1325,12 +847,12 @@ var useFetchTemplates = function useFetchTemplates() {
1325
847
  }, options));
1326
848
  };
1327
849
  var useCreateTemplate = function useCreateTemplate(options) {
1328
- return useMutationWithInvalidation(templatesApi.create, _objectSpread$6({
850
+ return useMutationWithInvalidation(templatesApi.create, _objectSpread$8({
1329
851
  keysToInvalidate: [QUERY_KEYS.TEMPLATES, QUERY_KEYS.VIEWS]
1330
852
  }, options));
1331
853
  };
1332
854
  var useUpdateTemplate = function useUpdateTemplate(options) {
1333
- return useMutationWithInvalidation(templatesApi.update, _objectSpread$6({
855
+ return useMutationWithInvalidation(templatesApi.update, _objectSpread$8({
1334
856
  keysToInvalidate: [QUERY_KEYS.TEMPLATES, function (_, _ref3) {
1335
857
  var id = _ref3.id;
1336
858
  return [QUERY_KEYS.SHOW_TEMPLATE, id];
@@ -1338,39 +860,44 @@ var useUpdateTemplate = function useUpdateTemplate(options) {
1338
860
  }, options));
1339
861
  };
1340
862
  var useDeleteTemplate = function useDeleteTemplate(options) {
1341
- return useMutationWithInvalidation(templatesApi.destroy, _objectSpread$6({
863
+ return useMutationWithInvalidation(templatesApi.destroy, _objectSpread$8({
1342
864
  keysToInvalidate: [QUERY_KEYS.TEMPLATES, QUERY_KEYS.VIEWS]
1343
865
  }, options));
1344
866
  };
1345
867
 
1346
- function _arrayWithoutHoles(arr) {
1347
- if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
1348
- }
1349
-
1350
- function _iterableToArray(iter) {
1351
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1352
- }
1353
-
1354
- function _nonIterableSpread() {
1355
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1356
- }
1357
-
1358
- function _toConsumableArray(arr) {
1359
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
1360
- }
868
+ var fetch$1 = function fetch(params) {
869
+ return axios.get("".concat(BASE_URL, "/approvers"), {
870
+ params: params
871
+ });
872
+ };
873
+ var approversApi = {
874
+ fetch: fetch$1
875
+ };
1361
876
 
1362
- var _t;
1363
- var VALID_VARIABLE_NAME_REGEX = /^[a-z](?:\w*[a-z0-9])*$/i;
1364
- var EVERYONE_VISIBILITY = {
1365
- label: t$1("neetoApprovals.select.visibility.everyone"),
1366
- value: "everyone"
877
+ function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
878
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
879
+ var useFetchApprovers = function useFetchApprovers() {
880
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
881
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
882
+ return useQuery([QUERY_KEYS.APPROVERS, params], function () {
883
+ return approversApi.fetch(params);
884
+ }, _objectSpread$7({
885
+ select: function select(response) {
886
+ return response.data || response;
887
+ },
888
+ keepPreviousData: true,
889
+ onSuccess: function onSuccess(_ref) {
890
+ var _params$onSuccess;
891
+ var approvers = _ref.approvers;
892
+ return params === null || params === void 0 ? void 0 : (_params$onSuccess = params.onSuccess) === null || _params$onSuccess === void 0 ? void 0 : _params$onSuccess.call(params, approvers);
893
+ }
894
+ }, options));
1367
895
  };
896
+
1368
897
  var TEMPLATE_FORM_INITIAL_VALUES = {
1369
898
  name: "",
1370
899
  description: "",
1371
- visibility: EVERYONE_VISIBILITY,
1372
900
  approver: "",
1373
- variables: [],
1374
901
  message: ""
1375
902
  };
1376
903
  var TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object().shape({
@@ -1382,87 +909,27 @@ var TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object().shape({
1382
909
  what: t$1("neetoApprovals.inputs.labels.message")
1383
910
  }), function (content) {
1384
911
  return !isEditorEmpty(content);
1385
- }),
1386
- variables: yup.array().of(yup.object().shape({
1387
- variable: yup.string().trim().required(t$1("neetoApprovals.validations.pleaseEnter_", {
1388
- what: (_t = t$1("neetoApprovals.common.variable")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
1389
- })).matches(VALID_VARIABLE_NAME_REGEX, t$1("neetoApprovals.validations.variableName"))
1390
- }))
912
+ })
1391
913
  });
1392
914
 
1393
- var DynamicBlock = function DynamicBlock() {
1394
- var _useTranslation = useTranslation(),
1395
- t = _useTranslation.t;
1396
- var _useFormikContext = useFormikContext(),
1397
- _useFormikContext$val = _useFormikContext.values.variables,
1398
- variables = _useFormikContext$val === void 0 ? [] : _useFormikContext$val;
1399
- var editorVariables = variables.map(function (_ref, index) {
1400
- var variable = _ref.variable;
1401
- var variableValue = variable || "variable_".concat(index + 1);
1402
- return {
1403
- key: variableValue,
1404
- label: variableValue
1405
- };
1406
- });
1407
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1408
- className: "space-y-2 "
1409
- }, /*#__PURE__*/React.createElement(Label, null, t("neetoApprovals.inputs.labels.variableMapping")), /*#__PURE__*/React.createElement(FieldArray, {
1410
- name: "variables"
1411
- }, function (_ref2) {
1412
- var remove = _ref2.remove,
1413
- push = _ref2.push;
1414
- return /*#__PURE__*/React.createElement("div", {
1415
- className: "neeto-ui-bg-gray-100 w-full p-3"
1416
- }, /*#__PURE__*/React.createElement("div", {
1417
- className: "grid grid-cols-2 gap-4"
1418
- }, variables === null || variables === void 0 ? void 0 : variables.map(function (_, index) {
1419
- return /*#__PURE__*/React.createElement("div", {
1420
- className: "mb-2 flex space-x-2",
1421
- key: index
1422
- }, /*#__PURE__*/React.createElement(Input, {
1423
- autoFocus: true,
1424
- required: true,
1425
- name: "variables[".concat(index, "][variable]"),
1426
- label: t("neetoApprovals.common.variable_", {
1427
- number: index + 1
1428
- })
1429
- }), /*#__PURE__*/React.createElement(Button, {
1430
- className: "my-5",
1431
- icon: Delete,
1432
- style: "text",
1433
- onClick: function onClick() {
1434
- return remove(index);
1435
- }
1436
- }));
1437
- })), /*#__PURE__*/React.createElement(Button, {
1438
- style: "link",
1439
- label: t("neetoApprovals.common.add_", {
1440
- what: t("neetoApprovals.common.variable")
1441
- }),
1442
- onClick: function onClick() {
1443
- return push({
1444
- variable: ""
1445
- });
1446
- }
1447
- }));
1448
- })), /*#__PURE__*/React.createElement(FormikEditor, {
915
+ var MessageEditor = withT(function (_ref) {
916
+ var t = _ref.t,
917
+ _ref$placeholders = _ref.placeholders,
918
+ placeholders = _ref$placeholders === void 0 ? [] : _ref$placeholders;
919
+ return /*#__PURE__*/React.createElement(FormikEditor, {
1449
920
  required: true,
1450
- key: variables,
1451
921
  label: t("neetoApprovals.inputs.labels.message"),
1452
922
  name: "message",
1453
923
  rows: 3,
1454
- variables: editorVariables,
924
+ variables: placeholders,
1455
925
  placeholder: t("neetoApprovals.inputs.placeholders.enter_", {
1456
926
  what: t("neetoApprovals.inputs.labels.message")
1457
- }),
1458
- shouldUpdate: function shouldUpdate(nextProps, prevProps) {
1459
- return nextProps.variables !== prevProps.variables;
1460
- }
1461
- }));
1462
- };
927
+ })
928
+ });
929
+ });
1463
930
 
1464
931
  var Form$1 = function Form(_ref) {
1465
- var _t, _t2;
932
+ var _t;
1466
933
  var isOpen = _ref.isOpen,
1467
934
  onClose = _ref.onClose,
1468
935
  _ref$initialData = _ref.initialData,
@@ -1471,7 +938,7 @@ var Form$1 = function Form(_ref) {
1471
938
  onSubmit = _ref$onSubmit === void 0 ? noop : _ref$onSubmit,
1472
939
  _ref$isLoading = _ref.isLoading,
1473
940
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
1474
- visibilityOptions = _ref.visibilityOptions;
941
+ placeholders = _ref.placeholders;
1475
942
  var inputReference = useRef(null);
1476
943
  var _useTranslation = useTranslation(),
1477
944
  t = _useTranslation.t;
@@ -1480,10 +947,10 @@ var Form$1 = function Form(_ref) {
1480
947
  _useFetchApprovers$da2 = _useFetchApprovers$da === void 0 ? {} : _useFetchApprovers$da,
1481
948
  _useFetchApprovers$da3 = _useFetchApprovers$da2.approvers,
1482
949
  approvers = _useFetchApprovers$da3 === void 0 ? [] : _useFetchApprovers$da3;
1483
- var header = isEmpty(initialData) ? t("neetoApprovals.common.add_", {
1484
- what: t("neetoApprovals.common.approvalTemplate", SINGULAR).toLocaleLowerCase()
950
+ var header = isEmpty(initialData) ? t("neetoApprovals.common.addNew_", {
951
+ what: t("neetoApprovals.common.template", SINGULAR).toLocaleLowerCase()
1485
952
  }) : t("neetoApprovals.common.edit_", {
1486
- what: t("neetoApprovals.common.approvalTemplate", SINGULAR).toLocaleLowerCase()
953
+ what: t("neetoApprovals.common.template", SINGULAR).toLocaleLowerCase()
1487
954
  });
1488
955
  return /*#__PURE__*/React.createElement(Pane, {
1489
956
  initialFocusRef: inputReference,
@@ -1492,7 +959,7 @@ var Form$1 = function Form(_ref) {
1492
959
  onClose: onClose
1493
960
  }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(Typography, {
1494
961
  style: "h2"
1495
- }, header)), /*#__PURE__*/React.createElement(Form$3, {
962
+ }, header)), /*#__PURE__*/React.createElement(Form$2, {
1496
963
  formikProps: {
1497
964
  enableReinitialize: true,
1498
965
  initialValues: isPresent(initialData) ? initialData : TEMPLATE_FORM_INITIAL_VALUES,
@@ -1504,7 +971,6 @@ var Form$1 = function Form(_ref) {
1504
971
  }, /*#__PURE__*/React.createElement(Input, {
1505
972
  autoFocus: true,
1506
973
  required: true,
1507
- className: "w-1/2",
1508
974
  label: t("neetoApprovals.common.name"),
1509
975
  name: "name",
1510
976
  placeholder: t("neetoApprovals.inputs.placeholders.name")
@@ -1528,14 +994,9 @@ var Form$1 = function Form(_ref) {
1528
994
  placeholder: t("neetoApprovals.inputs.placeholders.select_", {
1529
995
  what: (_t = t("neetoApprovals.common.approver", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
1530
996
  })
1531
- }), /*#__PURE__*/React.createElement(Select, {
1532
- label: t("neetoApprovals.common.visibility"),
1533
- name: "visibility",
1534
- options: [].concat(_toConsumableArray(visibilityOptions), [EVERYONE_VISIBILITY]),
1535
- placeholder: t("neetoApprovals.inputs.placeholders.select_", {
1536
- what: (_t2 = t("neetoApprovals.common.visibility")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase()
1537
- })
1538
- })), /*#__PURE__*/React.createElement(DynamicBlock, null))), /*#__PURE__*/React.createElement(Pane.Footer, {
997
+ })), /*#__PURE__*/React.createElement(MessageEditor, {
998
+ placeholders: placeholders
999
+ }))), /*#__PURE__*/React.createElement(Pane.Footer, {
1539
1000
  className: "flex gap-x-2"
1540
1001
  }, /*#__PURE__*/React.createElement(Button, {
1541
1002
  label: t("neetoApprovals.buttons.saveChanges"),
@@ -1548,45 +1009,31 @@ var Form$1 = function Form(_ref) {
1548
1009
  })))));
1549
1010
  };
1550
1011
 
1551
- function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1552
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1012
+ function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1013
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1553
1014
  var buildTemplatePayload = function buildTemplatePayload(template) {
1554
- var variables = template.variables,
1555
- visibility = template.visibility,
1556
- approver = template.approver;
1557
- var indexedVariables = variables.map(function (_ref, index) {
1558
- var variable = _ref.variable;
1559
- return ["variable".concat(index + 1), variable];
1560
- });
1015
+ var approver = template.approver;
1561
1016
  var payload = {
1562
- template: _objectSpread$5(_objectSpread$5({}, template), {}, {
1563
- accessibleId: visibility.value || visibility,
1564
- approverId: approver.value,
1565
- variables: fromPairs(indexedVariables)
1017
+ template: _objectSpread$6(_objectSpread$6({}, template), {}, {
1018
+ approverId: approver.value
1566
1019
  })
1567
1020
  };
1568
1021
  return payload;
1569
1022
  };
1570
1023
  var generateInitialData = function generateInitialData(template) {
1571
- return _objectSpread$5(_objectSpread$5({}, template), {}, {
1572
- visibility: template.accessibleId || EVERYONE_VISIBILITY.value,
1024
+ return _objectSpread$6(_objectSpread$6({}, template), {}, {
1573
1025
  approver: {
1574
1026
  label: template.approverName,
1575
1027
  value: template.approverId
1576
- },
1577
- variables: template.variables && Object.values(template.variables).map(function (variable) {
1578
- return {
1579
- variable: variable
1580
- };
1581
- })
1028
+ }
1582
1029
  });
1583
1030
  };
1584
1031
 
1585
1032
  var Create = function Create(_ref) {
1586
- var visibilityOptions = _ref.visibilityOptions,
1587
- templateUrl = _ref.templateUrl,
1033
+ var templateUrl = _ref.templateUrl,
1588
1034
  isOpen = _ref.isOpen,
1589
- onClose = _ref.onClose;
1035
+ onClose = _ref.onClose,
1036
+ templatePlaceholders = _ref.templatePlaceholders;
1590
1037
  var _useCreateTemplate = useCreateTemplate(),
1591
1038
  createTemplate = _useCreateTemplate.mutate,
1592
1039
  isLoading = _useCreateTemplate.isLoading;
@@ -1600,21 +1047,21 @@ var Create = function Create(_ref) {
1600
1047
  });
1601
1048
  };
1602
1049
  return /*#__PURE__*/React.createElement(Form$1, {
1050
+ placeholders: templatePlaceholders,
1603
1051
  isLoading: isLoading,
1604
1052
  isOpen: isOpen,
1605
1053
  onClose: onClose,
1606
- onSubmit: onSubmit,
1607
- visibilityOptions: visibilityOptions
1054
+ onSubmit: onSubmit
1608
1055
  });
1609
1056
  };
1610
1057
 
1611
1058
  var Edit = function Edit(_ref) {
1612
- var visibilityOptions = _ref.visibilityOptions,
1613
- templateUrl = _ref.templateUrl,
1059
+ var templateUrl = _ref.templateUrl,
1614
1060
  template = _ref.template,
1615
1061
  setTemplate = _ref.setTemplate,
1616
1062
  isOpen = _ref.isOpen,
1617
- onClose = _ref.onClose;
1063
+ onClose = _ref.onClose,
1064
+ templatePlaceholders = _ref.templatePlaceholders;
1618
1065
  var _useUpdateTemplate = useUpdateTemplate({
1619
1066
  onSuccess: function onSuccess() {
1620
1067
  return setTemplate({});
@@ -1633,10 +1080,10 @@ var Edit = function Edit(_ref) {
1633
1080
  return /*#__PURE__*/React.createElement(Form$1, {
1634
1081
  initialData: generateInitialData(template),
1635
1082
  isLoading: isUpdating,
1083
+ placeholders: templatePlaceholders,
1636
1084
  isOpen: isOpen,
1637
1085
  onClose: onClose,
1638
- onSubmit: onSubmit,
1639
- visibilityOptions: visibilityOptions
1086
+ onSubmit: onSubmit
1640
1087
  });
1641
1088
  };
1642
1089
 
@@ -1655,7 +1102,6 @@ var Field$1 = /*#__PURE__*/React.memo(Field);
1655
1102
 
1656
1103
  var MemoizedEditorContent = /*#__PURE__*/React.memo(EditorContent);
1657
1104
  var TemplateDetails = function TemplateDetails(_ref) {
1658
- var _Object$entries;
1659
1105
  var isOpen = _ref.isOpen,
1660
1106
  onClose = _ref.onClose,
1661
1107
  template = _ref.template;
@@ -1664,8 +1110,6 @@ var TemplateDetails = function TemplateDetails(_ref) {
1664
1110
  var name = template.name,
1665
1111
  description = template.description,
1666
1112
  approverName = template.approverName,
1667
- accessible = template.accessible,
1668
- variables = template.variables,
1669
1113
  message = template.message;
1670
1114
  return /*#__PURE__*/React.createElement(Pane, {
1671
1115
  isOpen: isOpen,
@@ -1685,18 +1129,6 @@ var TemplateDetails = function TemplateDetails(_ref) {
1685
1129
  }), /*#__PURE__*/React.createElement(Field$1, {
1686
1130
  label: t("neetoApprovals.common.approver", SINGULAR),
1687
1131
  value: approverName
1688
- }), /*#__PURE__*/React.createElement(Field$1, {
1689
- label: t("neetoApprovals.common.visibility"),
1690
- value: (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label
1691
- }), (_Object$entries = Object.entries(variables || {})) === null || _Object$entries === void 0 ? void 0 : _Object$entries.map(function (_ref2) {
1692
- var _ref3 = _slicedToArray$1(_ref2, 2),
1693
- variable = _ref3[0],
1694
- value = _ref3[1];
1695
- return /*#__PURE__*/React.createElement(Field$1, {
1696
- key: value,
1697
- label: capitalize(variable),
1698
- value: value
1699
- });
1700
1132
  }), /*#__PURE__*/React.createElement("div", {
1701
1133
  className: "flex w-full flex-col space-y-4"
1702
1134
  }, /*#__PURE__*/React.createElement(Label, {
@@ -1707,8 +1139,100 @@ var TemplateDetails = function TemplateDetails(_ref) {
1707
1139
  }))));
1708
1140
  };
1709
1141
 
1710
- var Menu = Dropdown.Menu,
1711
- MenuItem = Dropdown.MenuItem;
1142
+ var renderNoDataHelpText = function renderNoDataHelpText(_ref) {
1143
+ var entity = _ref.entity,
1144
+ url = _ref.url;
1145
+ return /*#__PURE__*/React.createElement(Trans, {
1146
+ i18nKey: "neetoApprovals.common.noDataHelpText",
1147
+ values: {
1148
+ entity: entity
1149
+ },
1150
+ components: {
1151
+ a: /*#__PURE__*/React.createElement(Link, {
1152
+ className: "neeto-ui-text-primary-600 underline",
1153
+ target: "_blank",
1154
+ to: {
1155
+ pathname: url
1156
+ }
1157
+ })
1158
+ }
1159
+ });
1160
+ };
1161
+
1162
+ var _excluded$1 = ["entity", "columnData", "rowData", "totalCount", "filters", "setFilters", "setIsPaneOpen", "helpDocUrl", "onEditClick", "onDeleteClick", "pageProperties"];
1163
+ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1164
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1165
+ var Table = function Table(_ref) {
1166
+ var _t;
1167
+ var entity = _ref.entity,
1168
+ columnData = _ref.columnData,
1169
+ rowData = _ref.rowData,
1170
+ totalCount = _ref.totalCount,
1171
+ filters = _ref.filters,
1172
+ setFilters = _ref.setFilters,
1173
+ setIsPaneOpen = _ref.setIsPaneOpen,
1174
+ helpDocUrl = _ref.helpDocUrl,
1175
+ onEditClick = _ref.onEditClick,
1176
+ onDeleteClick = _ref.onDeleteClick,
1177
+ pageProperties = _ref.pageProperties,
1178
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
1179
+ var _useTranslation = useTranslation(),
1180
+ t = _useTranslation.t;
1181
+ var columns = columnData({
1182
+ onEditClick: onEditClick,
1183
+ onDeleteClick: onDeleteClick
1184
+ });
1185
+ var handleTableChange = function handleTableChange(_, __, sorter) {
1186
+ setFilters(_objectSpread$5(_objectSpread$5({}, filters), {}, {
1187
+ sortBy: sorter.field,
1188
+ orderBy: sorter.order
1189
+ }));
1190
+ };
1191
+ var noDataProps = {
1192
+ primaryButtonProps: {
1193
+ label: t("neetoApprovals.common.addNew_", {
1194
+ what: (_t = t("neetoApprovals.common.template", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
1195
+ }),
1196
+ onClick: function onClick() {
1197
+ return setIsPaneOpen(true);
1198
+ }
1199
+ },
1200
+ helpText: renderNoDataHelpText({
1201
+ entity: entity,
1202
+ url: helpDocUrl
1203
+ })
1204
+ };
1205
+ if (isEmpty(rowData)) {
1206
+ return /*#__PURE__*/React.createElement("div", {
1207
+ className: "flex h-full w-full flex-grow items-center justify-center"
1208
+ }, /*#__PURE__*/React.createElement(NoData, _extends({
1209
+ title: t("neetoApprovals.common.notFound_", {
1210
+ what: entity
1211
+ })
1212
+ }, !filters.searchTerm && noDataProps)));
1213
+ }
1214
+ return /*#__PURE__*/React.createElement(TableWrapper, {
1215
+ className: "mt-12",
1216
+ hasPagination: totalCount > pageProperties.pageSize
1217
+ }, /*#__PURE__*/React.createElement(Table$1, _extends({
1218
+ fixedHeight: true,
1219
+ columnData: columns,
1220
+ currentPageNumber: pageProperties.page,
1221
+ defaultPageSize: pageProperties.pageSize,
1222
+ scroll: {
1223
+ x: 0
1224
+ },
1225
+ tableLayout: "fixed",
1226
+ paginationProps: {
1227
+ hideOnSinglePage: (rowData === null || rowData === void 0 ? void 0 : rowData.length) < DEFAULT_PAGE_SIZE + 1
1228
+ },
1229
+ onChange: handleTableChange
1230
+ }, _objectSpread$5({
1231
+ rowData: rowData,
1232
+ totalCount: totalCount
1233
+ }, otherProps))));
1234
+ };
1235
+
1712
1236
  var columnData = function columnData(_ref) {
1713
1237
  var onEditClick = _ref.onEditClick,
1714
1238
  onDeleteClick = _ref.onDeleteClick;
@@ -1716,86 +1240,90 @@ var columnData = function columnData(_ref) {
1716
1240
  dataIndex: "name",
1717
1241
  key: "name",
1718
1242
  sorter: true,
1719
- title: i18next.t("neetoApprovals.common.name")
1720
- }, {
1721
- dataIndex: "visibility",
1722
- key: "visibility",
1723
- title: i18next.t("neetoApprovals.common.visibility"),
1724
- render: function render(_, _ref2) {
1725
- var accessible = _ref2.accessible;
1726
- return (accessible === null || accessible === void 0 ? void 0 : accessible.label) || EVERYONE_VISIBILITY.label;
1727
- }
1728
- }, {
1729
- key: "actions",
1243
+ title: i18next.t("neetoApprovals.common.name"),
1730
1244
  ellipsis: true,
1731
1245
  render: function render(_, template) {
1732
1246
  return /*#__PURE__*/React.createElement("div", {
1733
- className: "flex flex-row items-center justify-end space-x-3",
1734
- onClick: function onClick(event) {
1735
- return event.stopPropagation();
1736
- }
1737
- }, /*#__PURE__*/React.createElement(Dropdown, {
1738
- autoWidth: true,
1739
- buttonProps: {
1740
- style: "text"
1247
+ className: "flex items-center justify-between gap-x-3"
1248
+ }, /*#__PURE__*/React.createElement(Typography, {
1249
+ className: "truncate",
1250
+ style: "body2"
1251
+ }, template.name), /*#__PURE__*/React.createElement(MoreDropdown, {
1252
+ dropdownProps: {
1253
+ strategy: "fixed",
1254
+ onClick: function onClick(e) {
1255
+ return e.stopPropagation();
1256
+ }
1741
1257
  },
1742
- className: "flex-shrink-0",
1743
- icon: MenuHorizontal,
1744
- position: "bottom-end",
1745
- strategy: "fixed"
1746
- }, /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(MenuItem.Button, {
1747
- "data-cy": "approvers-edit-button",
1748
- onClick: function onClick() {
1749
- return onEditClick(template);
1750
- }
1751
- }, i18next.t("neetoApprovals.common.edit")), /*#__PURE__*/React.createElement(MenuItem.Button, {
1752
- "data-cy": "approvers-delete-button",
1753
- onClick: function onClick() {
1754
- return onDeleteClick(template);
1755
- }
1756
- }, i18next.t("neetoApprovals.common.delete")))));
1258
+ menuItems: [{
1259
+ key: "edit",
1260
+ label: i18next.t("neetoApprovals.common.edit"),
1261
+ onClick: function onClick(event) {
1262
+ return onEditClick(event, template);
1263
+ }
1264
+ }, {
1265
+ key: "delete",
1266
+ label: i18next.t("neetoApprovals.common.delete"),
1267
+ onClick: function onClick(event) {
1268
+ return onDeleteClick(event, template);
1269
+ }
1270
+ }]
1271
+ }));
1757
1272
  }
1273
+ }, {
1274
+ dataIndex: "approverName",
1275
+ key: "approverName",
1276
+ sorter: true,
1277
+ title: i18next.t("neetoApprovals.common.approver", SINGULAR)
1758
1278
  }];
1759
1279
  };
1760
1280
 
1761
- var _excluded = ["filters", "isNewTemplatePaneOpen", "setFilters", "setIsNewTemplatePaneOpen", "helpDocUrl"];
1281
+ var _excluded = ["searchTerm", "isNewTemplatePaneOpen", "setIsNewTemplatePaneOpen", "helpDocUrl"];
1762
1282
  function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1763
1283
  function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1764
1284
  var Templates = function Templates(_ref) {
1765
1285
  var _t, _t2, _t3;
1766
- var filters = _ref.filters,
1286
+ var searchTerm = _ref.searchTerm,
1767
1287
  isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
1768
- setFilters = _ref.setFilters,
1769
1288
  setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen,
1770
1289
  helpDocUrl = _ref.helpDocUrl,
1771
1290
  otherProps = _objectWithoutProperties(_ref, _excluded);
1772
- var _useState = useState({}),
1291
+ var _useState = useState(DEFAULT_FILTER_VALUES),
1773
1292
  _useState2 = _slicedToArray$1(_useState, 2),
1774
- selectedTemplate = _useState2[0],
1775
- setSelectedTemplate = _useState2[1];
1776
- var _useState3 = useState(false),
1293
+ filters = _useState2[0],
1294
+ setFilters = _useState2[1];
1295
+ var _useState3 = useState({}),
1777
1296
  _useState4 = _slicedToArray$1(_useState3, 2),
1778
- isDeleteAlertOpen = _useState4[0],
1779
- setIsDeleteAlertOpen = _useState4[1];
1297
+ selectedTemplate = _useState4[0],
1298
+ setSelectedTemplate = _useState4[1];
1780
1299
  var _useState5 = useState(false),
1781
1300
  _useState6 = _slicedToArray$1(_useState5, 2),
1782
- isEditPaneOpen = _useState6[0],
1783
- setIsEditPaneOpen = _useState6[1];
1301
+ isDeleteAlertOpen = _useState6[0],
1302
+ setIsDeleteAlertOpen = _useState6[1];
1784
1303
  var _useState7 = useState(false),
1785
1304
  _useState8 = _slicedToArray$1(_useState7, 2),
1786
- isShowPaneOpen = _useState8[0],
1787
- setIsShowPaneOpen = _useState8[1];
1788
- var debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);
1305
+ isEditPaneOpen = _useState8[0],
1306
+ setIsEditPaneOpen = _useState8[1];
1307
+ var _useState9 = useState(false),
1308
+ _useState10 = _slicedToArray$1(_useState9, 2),
1309
+ isShowPaneOpen = _useState10[0],
1310
+ setIsShowPaneOpen = _useState10[1];
1789
1311
  var _usePaginate = usePaginate(),
1790
1312
  pageProperties = _usePaginate.pageProperties,
1791
- handleTablePagination = _usePaginate.handleTablePagination;
1313
+ handlePageChange = _usePaginate.handlePageChange,
1314
+ resetPageProperties = _usePaginate.resetPageProperties;
1792
1315
  var _useTranslation = useTranslation(),
1793
1316
  t = _useTranslation.t;
1317
+ var debouncedSearchTerm = useDebounce(searchTerm, SEARCH_DELAY);
1318
+ useEffect(function () {
1319
+ resetPageProperties();
1320
+ }, [searchTerm]);
1794
1321
  var _useFetchTemplates = useFetchTemplates(_objectSpread$4(_objectSpread$4(_objectSpread$4({}, pageProperties), filters), {}, {
1795
1322
  searchTerm: debouncedSearchTerm.trim()
1796
1323
  }), {
1797
- onSuccess: function onSuccess(templates) {
1798
- handleEmptyPage(templates, pageProperties, handleTablePagination);
1324
+ onSuccess: function onSuccess(_ref2) {
1325
+ var templates = _ref2.templates;
1326
+ handleEmptyPage(templates, pageProperties, handlePageChange);
1799
1327
  }
1800
1328
  }),
1801
1329
  _useFetchTemplates$da = _useFetchTemplates.data,
@@ -1815,7 +1343,8 @@ var Templates = function Templates(_ref) {
1815
1343
  setIsShowPaneOpen(false);
1816
1344
  }
1817
1345
  }, [selectedTemplate]);
1818
- var onEditClick = function onEditClick(template) {
1346
+ var onEditClick = function onEditClick(event, template) {
1347
+ event.stopPropagation();
1819
1348
  setSelectedTemplate(template);
1820
1349
  setIsEditPaneOpen(true);
1821
1350
  };
@@ -1823,7 +1352,8 @@ var Templates = function Templates(_ref) {
1823
1352
  setSelectedTemplate(templateDetails);
1824
1353
  setIsShowPaneOpen(true);
1825
1354
  };
1826
- var onDeleteClick = function onDeleteClick(template) {
1355
+ var onDeleteClick = function onDeleteClick(event, template) {
1356
+ event.stopPropagation();
1827
1357
  setSelectedTemplate(template);
1828
1358
  setIsDeleteAlertOpen(true);
1829
1359
  };
@@ -1835,15 +1365,18 @@ var Templates = function Templates(_ref) {
1835
1365
  };
1836
1366
  var entity = (_t = t("neetoApprovals.common.template", PLURAL)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase();
1837
1367
  return /*#__PURE__*/React.createElement(React.Fragment, null, isTemplateLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(Table, {
1838
- items: templates,
1368
+ rowData: templates,
1839
1369
  setIsPaneOpen: setIsNewTemplatePaneOpen,
1840
1370
  columnData: columnData,
1841
1371
  entity: entity,
1842
1372
  filters: filters,
1373
+ handlePageChange: handlePageChange,
1843
1374
  helpDocUrl: helpDocUrl,
1844
1375
  onDeleteClick: onDeleteClick,
1845
1376
  onEditClick: onEditClick,
1846
1377
  onRowClick: onRowClick,
1378
+ pageProperties: pageProperties,
1379
+ searchTerm: searchTerm,
1847
1380
  setFilters: setFilters,
1848
1381
  totalCount: totalCount
1849
1382
  }), /*#__PURE__*/React.createElement(Create, _extends({
@@ -1892,49 +1425,23 @@ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if
1892
1425
  function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1893
1426
  var createRoutes = function createRoutes(_ref) {
1894
1427
  var config = _ref.config,
1895
- filters = _ref.filters,
1896
- isNewApproverPaneOpen = _ref.isNewApproverPaneOpen,
1897
1428
  isNewTemplatePaneOpen = _ref.isNewTemplatePaneOpen,
1898
- setFilters = _ref.setFilters,
1899
- setIsNewApproverPaneOpen = _ref.setIsNewApproverPaneOpen,
1429
+ searchTerm = _ref.searchTerm,
1900
1430
  setIsNewTemplatePaneOpen = _ref.setIsNewTemplatePaneOpen;
1901
1431
  return [{
1902
- component: function component() {
1903
- return /*#__PURE__*/React.createElement(Approvers, _objectSpread$3({
1904
- filters: filters,
1905
- isNewApproverPaneOpen: isNewApproverPaneOpen,
1906
- setFilters: setFilters,
1907
- setIsNewApproverPaneOpen: setIsNewApproverPaneOpen
1908
- }, config));
1909
- },
1910
- path: "".concat(config.approvalsPath).concat(routes.approvers),
1911
- actionBlock: function actionBlock() {
1912
- return /*#__PURE__*/React.createElement(Button, {
1913
- label: t$1("neetoApprovals.common.add_", {
1914
- what: t$1("neetoApprovals.common.approver", SINGULAR).toLocaleLowerCase()
1915
- }),
1916
- onClick: function onClick() {
1917
- return setIsNewApproverPaneOpen(true);
1918
- }
1919
- });
1920
- },
1921
- searchPlaceholder: t$1("neetoApprovals.inputs.placeholders.search_", {
1922
- what: t$1("neetoApprovals.common.approver", PLURAL).toLocaleLowerCase()
1923
- })
1924
- }, {
1925
1432
  component: function component() {
1926
1433
  return /*#__PURE__*/React.createElement(Templates, _objectSpread$3({
1927
- filters: filters,
1928
1434
  isNewTemplatePaneOpen: isNewTemplatePaneOpen,
1929
- setFilters: setFilters,
1435
+ searchTerm: searchTerm,
1930
1436
  setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
1931
1437
  }, config));
1932
1438
  },
1933
1439
  path: "".concat(config.approvalsPath).concat(routes.templates.index),
1934
1440
  actionBlock: function actionBlock() {
1441
+ var _t;
1935
1442
  return /*#__PURE__*/React.createElement(Button, {
1936
- label: t$1("neetoApprovals.common.add_", {
1937
- what: t$1("neetoApprovals.common.approvalTemplate", SINGULAR).toLocaleLowerCase()
1443
+ label: t$1("neetoApprovals.common.addNew_", {
1444
+ what: (_t = t$1("neetoApprovals.common.template", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
1938
1445
  }),
1939
1446
  onClick: function onClick() {
1940
1447
  return setIsNewTemplatePaneOpen(true);
@@ -1961,8 +1468,8 @@ var Header = function Header(_ref) {
1961
1468
  var _currentTab$actionBlo;
1962
1469
  var appRoutes = _ref.appRoutes,
1963
1470
  breadcrumbs = _ref.breadcrumbs,
1964
- filters = _ref.filters,
1965
- setFilters = _ref.setFilters;
1471
+ setSearchTerm = _ref.setSearchTerm,
1472
+ searchTerm = _ref.searchTerm;
1966
1473
  var _useTranslation = useTranslation(),
1967
1474
  t = _useTranslation.t;
1968
1475
  var _useLocation = useLocation(),
@@ -1975,9 +1482,9 @@ var Header = function Header(_ref) {
1975
1482
  title: t("neetoApprovals.common.approval", PLURAL),
1976
1483
  searchProps: (currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder) && {
1977
1484
  onChange: function onChange(event) {
1978
- return setFilters(assoc("searchTerm", event.target.value));
1485
+ return setSearchTerm(event.target.value);
1979
1486
  },
1980
- value: filters.searchTerm,
1487
+ value: searchTerm,
1981
1488
  placeholder: currentTab === null || currentTab === void 0 ? void 0 : currentTab.searchPlaceholder
1982
1489
  },
1983
1490
  breadcrumbs: breadcrumbs
@@ -2041,33 +1548,26 @@ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if
2041
1548
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2042
1549
  var Approvals = function Approvals(_ref) {
2043
1550
  var config = _ref.config;
2044
- var _useState = useState(DEFAULT_FILTER_VALUES),
1551
+ var _useState = useState(""),
2045
1552
  _useState2 = _slicedToArray$1(_useState, 2),
2046
- filters = _useState2[0],
2047
- setFilters = _useState2[1];
1553
+ searchTerm = _useState2[0],
1554
+ setSearchTerm = _useState2[1];
2048
1555
  var _useState3 = useState(false),
2049
1556
  _useState4 = _slicedToArray$1(_useState3, 2),
2050
1557
  isNewTemplatePaneOpen = _useState4[0],
2051
1558
  setIsNewTemplatePaneOpen = _useState4[1];
2052
- var _useState5 = useState(false),
2053
- _useState6 = _slicedToArray$1(_useState5, 2),
2054
- isNewApproverPaneOpen = _useState6[0],
2055
- setIsNewApproverPaneOpen = _useState6[1];
2056
1559
  var appRoutes = createRoutes({
2057
1560
  config: config,
2058
- filters: filters,
2059
- isNewApproverPaneOpen: isNewApproverPaneOpen,
1561
+ searchTerm: searchTerm,
2060
1562
  isNewTemplatePaneOpen: isNewTemplatePaneOpen,
2061
- setFilters: setFilters,
2062
- setIsNewApproverPaneOpen: setIsNewApproverPaneOpen,
2063
1563
  setIsNewTemplatePaneOpen: setIsNewTemplatePaneOpen
2064
1564
  });
2065
1565
  return /*#__PURE__*/React.createElement("div", {
2066
1566
  className: "neeto-approvals"
2067
1567
  }, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Header, _objectSpread$1({
2068
1568
  appRoutes: appRoutes,
2069
- filters: filters,
2070
- setFilters: setFilters
1569
+ searchTerm: searchTerm,
1570
+ setSearchTerm: setSearchTerm
2071
1571
  }, config)), /*#__PURE__*/React.createElement(Tab, {
2072
1572
  approvalsPath: config.approvalsPath
2073
1573
  }), /*#__PURE__*/React.createElement(Switch, null, appRoutes.map(function (_ref2) {
@@ -2093,15 +1593,18 @@ var Form = function Form(_ref) {
2093
1593
  var isOpen = _ref.isOpen,
2094
1594
  setIsPaneOpen = _ref.setIsPaneOpen,
2095
1595
  onSubmit = _ref.onSubmit,
2096
- isLoading = _ref.isLoading;
1596
+ isLoading = _ref.isLoading,
1597
+ _ref$requestableId = _ref.requestableId,
1598
+ requestableId = _ref$requestableId === void 0 ? "" : _ref$requestableId;
2097
1599
  var _useState = useState({}),
2098
1600
  _useState2 = _slicedToArray$1(_useState, 2),
2099
1601
  selectedTemplateData = _useState2[0],
2100
1602
  setSelectedTemplateData = _useState2[1];
2101
1603
  var _useTranslation = useTranslation(),
2102
1604
  t = _useTranslation.t;
2103
- var variables = Object.values((selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.variables) || {});
2104
- var _useFetchTemplates = useFetchTemplates(),
1605
+ var _useFetchTemplates = useFetchTemplates({
1606
+ requestableId: requestableId
1607
+ }),
2105
1608
  _useFetchTemplates$da = _useFetchTemplates.data,
2106
1609
  _useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
2107
1610
  _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
@@ -2116,37 +1619,14 @@ var Form = function Form(_ref) {
2116
1619
  resetForm();
2117
1620
  var template = findById(selectedTemplate.value, templates);
2118
1621
  setSelectedTemplateData(template);
2119
- setFieldValue("message", template.message);
2120
- var variables = Object.values(template.variables);
2121
- if (isPresent(variables)) {
2122
- variables.forEach(function (_, index) {
2123
- return setFieldValue("variables[".concat(index, "].variable"), "");
2124
- });
2125
- } else {
2126
- setFieldValue("variables", []);
2127
- }
1622
+ setFieldValue("message", template.parsedMessage || template.message);
2128
1623
  };
2129
1624
  var onClose = function onClose() {
2130
1625
  setIsPaneOpen(false);
2131
1626
  setSelectedTemplateData({});
2132
1627
  };
2133
- var parseVariables = function parseVariables(variableValues) {
2134
- return variables.map(function (variable, index) {
2135
- var _variableValues$index;
2136
- return {
2137
- key: variable,
2138
- value: (_variableValues$index = variableValues[index]) === null || _variableValues$index === void 0 ? void 0 : _variableValues$index["variable"]
2139
- };
2140
- });
2141
- };
2142
1628
  var handleSubmit = function handleSubmit(values) {
2143
- var parsedVariables = parseVariables(values.variables);
2144
- var parsedMessage = {
2145
- message: modify("message", function (message) {
2146
- return substituteVariables(message, parsedVariables);
2147
- }, values).message
2148
- };
2149
- onSubmit(parsedMessage, selectedTemplateData, onClose);
1629
+ return onSubmit(values, selectedTemplateData, onClose);
2150
1630
  };
2151
1631
  return /*#__PURE__*/React.createElement(Pane, {
2152
1632
  isOpen: isOpen,
@@ -2155,15 +1635,14 @@ var Form = function Form(_ref) {
2155
1635
  style: "h2"
2156
1636
  }, t("neetoApprovals.common.add_", {
2157
1637
  what: (_t = t("neetoApprovals.common.approval", SINGULAR)) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
2158
- }))), /*#__PURE__*/React.createElement(Form$3, {
1638
+ }))), /*#__PURE__*/React.createElement(Form$2, {
2159
1639
  formikProps: {
2160
1640
  onSubmit: handleSubmit,
2161
- initialValues: APPROVAL_REQUEST_FORM_INITIAL_VALUES,
2162
- validationSchema: APPROVAL_REQUEST_FORM_VALIDATION_SCHEMA
1641
+ initialValues: APPROVAL_REQUEST_FORM_INITIAL_VALUES
2163
1642
  }
2164
1643
  }, function (_ref2) {
1644
+ var _t2;
2165
1645
  var setFieldValue = _ref2.setFieldValue,
2166
- values = _ref2.values,
2167
1646
  resetForm = _ref2.resetForm,
2168
1647
  dirty = _ref2.dirty;
2169
1648
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
@@ -2174,30 +1653,20 @@ var Form = function Form(_ref) {
2174
1653
  onChange: function onChange(selectedTemplate) {
2175
1654
  return handleTemplateChange(selectedTemplate, setFieldValue, resetForm);
2176
1655
  }
2177
- }), isPresent(variables) && /*#__PURE__*/React.createElement("div", {
2178
- className: "space-y-2"
2179
- }, /*#__PURE__*/React.createElement(Label, null, t("neetoApprovals.inputs.labels.variableMapping")), /*#__PURE__*/React.createElement("div", {
2180
- className: "neeto-ui-bg-gray-100 neeto-ui-border-gray-300 neeto-ui-rounded-lg space-y-4 border p-3"
2181
- }, /*#__PURE__*/React.createElement(FieldArray, {
2182
- name: "variables"
2183
- }, function () {
2184
- return variables.map(function (variable, index) {
2185
- return /*#__PURE__*/React.createElement(Input, {
2186
- required: true,
2187
- className: "w-full",
2188
- key: variable,
2189
- label: variable,
2190
- name: "variables[".concat(index, "][variable]")
2191
- });
2192
- });
2193
- }))), (selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.message) && /*#__PURE__*/React.createElement("div", {
1656
+ }), (selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.message) && /*#__PURE__*/React.createElement("div", {
2194
1657
  className: "space-y-2"
2195
1658
  }, /*#__PURE__*/React.createElement(Label, null, t("neetoApprovals.inputs.labels.message")), /*#__PURE__*/React.createElement(EditorContent, {
2196
1659
  className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3",
2197
- content: selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.message,
2198
1660
  name: "message",
2199
- variables: parseVariables(values === null || values === void 0 ? void 0 : values.variables)
2200
- })))), /*#__PURE__*/React.createElement(Pane.Footer, {
1661
+ content: (selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.parsedMessage) || (selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.message)
1662
+ })), /*#__PURE__*/React.createElement(FormikEditor, {
1663
+ label: t("neetoApprovals.inputs.labels.additionalInfo"),
1664
+ name: "additionalInfo",
1665
+ rows: 3,
1666
+ placeholder: t("neetoApprovals.inputs.placeholders.enter_", {
1667
+ what: (_t2 = t("neetoApprovals.inputs.labels.additionalInfo")) === null || _t2 === void 0 ? void 0 : _t2.toLocaleLowerCase()
1668
+ })
1669
+ }))), /*#__PURE__*/React.createElement(Pane.Footer, {
2201
1670
  className: "flex gap-x-2"
2202
1671
  }, /*#__PURE__*/React.createElement(Button, {
2203
1672
  disabled: !dirty,